/* HR for I.T Academy (/reseller/academy/*). Sits inside the reseller portal shell and uses its --rp-* tokens. */

.ac-icon { width: 1.1em; height: 1.1em; flex: none; }

/* ---- Academy sub-navigation ------------------------------------------------ */
.ac-nav {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: .75rem 1.25rem;
    margin-bottom: 1.25rem;
    border: 1px solid var(--rp-line);
    border-radius: 1rem;
    background: rgba(255, 255, 255, .85);
    padding: .55rem .6rem .55rem .9rem;
    backdrop-filter: blur(8px);
}
.ac-nav-brand { display: inline-flex; align-items: center; gap: .55rem; color: var(--rp-ink); font-size: .95rem; text-decoration: none; }
.ac-nav-brand b { color: var(--rp-blue); }
.ac-nav-mark { display: grid; place-items: center; width: 2rem; height: 2rem; border-radius: .6rem; background: linear-gradient(135deg, #0b1733, #1b4fd8); color: #fff; }
.ac-nav-links { display: flex; gap: .25rem; }
.ac-nav-links a {
    display: inline-flex; align-items: center; gap: .4rem;
    border-radius: .65rem; padding: .45rem .75rem;
    color: var(--rp-muted); font-size: .88rem; font-weight: 700; text-decoration: none;
}
.ac-nav-links a:hover { background: #f1f5fb; color: var(--rp-ink); }
.ac-nav-links a.active { background: var(--rp-blue-soft); color: var(--rp-blue); }
.ac-nav-search {
    display: flex; align-items: center; gap: .45rem;
    margin-left: auto; min-width: min(20rem, 100%);
    border: 1px solid #cfd9e8; border-radius: .7rem; background: #fff; padding: 0 .7rem;
    color: var(--rp-muted);
}
.ac-nav-search:focus-within { border-color: var(--rp-blue); box-shadow: 0 0 0 3px rgba(0, 87, 230, .12); }
.ac-nav-search input { flex: 1; min-width: 0; border: 0; background: none; padding: .55rem 0; font-size: .9rem; outline: none; }

/* ---- Shared bits ----------------------------------------------------------- */
.ac-kicker { margin: 0 0 .35rem; color: var(--rp-blue); font-size: .72rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.ac-page-title { margin: 0; font-size: 1.6rem; font-weight: 800; letter-spacing: -.03em; }
.ac-bar { position: relative; display: block; height: .4rem; overflow: hidden; border-radius: 999px; background: #e7edf6; }
.ac-bar i { position: absolute; inset: 0 auto 0 0; border-radius: 999px; background: linear-gradient(90deg, var(--rp-mint), #37c98f); transition: width .4s ease; }
.ac-badge { display: inline-flex; align-items: center; border-radius: 999px; padding: .12rem .55rem; font-size: .7rem; font-weight: 800; white-space: nowrap; }
.ac-badge.is-grey { background: #eef1f6; color: #4b5a74; }
.ac-badge.is-mint { background: var(--rp-mint-soft); color: #0a7d57; }
.ac-badge.is-amber { background: var(--rp-amber-soft); color: var(--rp-amber); }
.ac-badge.is-blue { background: var(--rp-blue-soft); color: var(--rp-blue); }
.ac-back { display: inline-flex; align-items: center; gap: .35rem; color: var(--rp-muted); font-size: .82rem; font-weight: 700; text-decoration: none; }
.ac-back:hover { color: var(--rp-blue); }
.ac-block { margin-top: 1.5rem; }
.ac-block-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: .75rem; margin-bottom: .9rem; }
.ac-block-head h2 { margin: 0; font-size: 1.15rem; font-weight: 800; }
.ac-block-head p { margin: .25rem 0 0; color: var(--rp-muted); font-size: .88rem; }
.ac-course-meta { display: flex; flex-wrap: wrap; gap: .4rem 1rem; color: var(--rp-muted); font-size: .8rem; }
.ac-course-meta > span { display: inline-flex; align-items: center; gap: .3rem; }
.ac-course-icon {
    display: grid; place-items: center; width: 2.6rem; height: 2.6rem; flex: none;
    border-radius: .8rem; background: var(--rp-blue-soft); color: var(--rp-blue); font-size: 1.25rem;
}
.ac-course-icon.is-large { width: 3.5rem; height: 3.5rem; border-radius: 1rem; font-size: 1.6rem; }

/* ---- Home hero -------------------------------------------------------------- */
.ac-hero {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    align-items: center;
    gap: 2rem;
    overflow: hidden;
    border-radius: 1.4rem;
    background:
        radial-gradient(40rem 20rem at 110% -20%, rgba(55, 201, 143, .28), transparent 60%),
        radial-gradient(30rem 18rem at -10% 120%, rgba(79, 141, 255, .35), transparent 60%),
        linear-gradient(135deg, #0b1733 0%, #0f2a66 100%);
    padding: 2.25rem 2.5rem;
    color: #fff;
    box-shadow: 0 30px 60px -40px rgba(11, 23, 51, .8);
}
.ac-hero::after {
    content: ""; position: absolute; inset: 0; pointer-events: none;
    background-image: linear-gradient(rgba(255,255,255,.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.05) 1px, transparent 1px);
    background-size: 32px 32px;
    mask-image: linear-gradient(90deg, transparent, #000 70%);
}
.ac-hero-copy { position: relative; z-index: 1; max-width: 40rem; }
.ac-hero .ac-kicker { color: #8fd9bb; }
.ac-hero h1 { margin: 0; font-size: 2.1rem; font-weight: 800; letter-spacing: -.035em; }
.ac-hero p { margin: .6rem 0 0; color: #c9d6ef; line-height: 1.55; }
.ac-resume { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem 1rem; margin-top: 1.4rem; }
.ac-resume .btn { display: inline-flex; align-items: center; gap: .45rem; }
.ac-resume > span { color: #c9d6ef; font-size: .85rem; }
.ac-resume b { color: #fff; }
.ac-hero-done { display: flex; align-items: center; gap: .5rem; color: #8fd9bb !important; font-weight: 600; }
.ac-hero-progress { position: relative; z-index: 1; display: grid; place-items: center; width: 9.5rem; height: 9.5rem; }
.ac-hero-progress svg { position: absolute; inset: 0; transform: rotate(-90deg); }
.ac-ring-track { fill: none; stroke: rgba(255, 255, 255, .12); stroke-width: 10; }
.ac-ring-value { fill: none; stroke: #37c98f; stroke-width: 10; stroke-linecap: round; transition: stroke-dasharray .6s ease; }
.ac-hero-progress div { display: grid; text-align: center; }
.ac-hero-progress strong { font-size: 2rem; font-weight: 800; letter-spacing: -.03em; }
.ac-hero-progress span { color: #c9d6ef; font-size: .72rem; }

/* ---- Course cards ------------------------------------------------------------ */
.ac-courses { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1rem; }
.ac-course {
    display: flex; flex-direction: column; gap: .55rem;
    border: 1px solid var(--rp-line); border-radius: 1.1rem; background: #fff; padding: 1.15rem;
    color: var(--rp-ink); text-decoration: none;
    box-shadow: 0 10px 30px -26px rgba(11, 23, 51, .45);
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.ac-course:hover { transform: translateY(-2px); border-color: #b9c9e4; box-shadow: 0 18px 36px -24px rgba(11, 23, 51, .45); }
.ac-course:focus-visible { outline: 3px solid rgba(0, 87, 230, .35); outline-offset: 2px; }
.ac-course-top { display: flex; align-items: center; justify-content: space-between; }
.ac-course-number { color: var(--rp-muted); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ac-course h3 { margin: .2rem 0 0; font-size: 1.05rem; font-weight: 800; }
.ac-course p { flex: 1; margin: 0; color: var(--rp-muted); font-size: .85rem; line-height: 1.5; }
.ac-course-status { display: inline-flex; align-items: center; gap: .3rem; color: var(--rp-muted); font-size: .78rem; font-weight: 700; }
.ac-course.is-started .ac-course-status { color: var(--rp-blue); }
.ac-course.is-done { border-color: #bfe8d6; }
.ac-course.is-done .ac-course-icon { background: var(--rp-mint-soft); color: var(--rp-mint); }
.ac-course.is-done .ac-course-status { color: var(--rp-mint); }

/* ---- Home: practice + quick reference ---------------------------------------- */
.ac-two { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.5rem; }
.ac-decks { display: grid; gap: .6rem; }
.ac-deck {
    display: flex; align-items: center; gap: .85rem;
    border: 1px solid var(--rp-line); border-radius: .95rem; background: #fff; padding: .8rem .95rem;
    color: var(--rp-ink); text-decoration: none; transition: border-color .15s ease, transform .15s ease;
}
.ac-deck:hover { border-color: #b9c9e4; transform: translateX(2px); }
.ac-deck-icon { display: grid; place-items: center; width: 2.3rem; height: 2.3rem; border-radius: .7rem; background: #fff4e0; color: var(--rp-amber); }
.ac-deck-copy { display: grid; flex: 1; }
.ac-deck-copy small { color: var(--rp-muted); }
.ac-deck-go { color: var(--rp-muted); }
.ac-quick { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .6rem; }
.ac-quick a {
    display: grid; gap: .15rem; border: 1px solid var(--rp-line); border-radius: .95rem; background: #fff;
    padding: .8rem .95rem; color: var(--rp-ink); text-decoration: none; transition: border-color .15s ease;
}
.ac-quick a:hover { border-color: #b9c9e4; }
.ac-quick strong { font-size: .9rem; }
.ac-quick small { color: var(--rp-muted); font-size: .78rem; }
.ac-footnote { margin: 2rem 0 0; color: var(--rp-muted); font-size: .78rem; text-align: center; }

/* ---- Course overview ------------------------------------------------------------ */
.ac-course-hero { display: grid; gap: 1rem; border: 1px solid var(--rp-line); border-radius: 1.3rem; background: #fff; padding: 1.5rem; }
.ac-course-hero-main { display: flex; gap: 1rem; align-items: flex-start; }
.ac-course-hero h1 { margin: 0; font-size: 1.7rem; font-weight: 800; letter-spacing: -.03em; }
.ac-course-hero-main p:not(.ac-kicker) { margin: .35rem 0 0; color: var(--rp-muted); max-width: 44rem; }
.ac-outcome { display: flex; gap: .7rem; align-items: flex-start; border-radius: .9rem; background: var(--rp-mint-soft); padding: .8rem 1rem; color: #0a7d57; }
.ac-outcome div { display: grid; gap: .1rem; }
.ac-outcome span { color: #135c44; font-size: .9rem; }
.ac-course-hero-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; }
.ac-course-hero-foot .btn, .ac-lesson-foot .btn { display: inline-flex; align-items: center; gap: .45rem; }

.ac-lessons { display: grid; gap: .6rem; margin: 1rem 0 0; padding: 0; list-style: none; }
.ac-lessons a {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 1rem;
    border: 1px solid var(--rp-line); border-radius: 1rem; background: #fff; padding: .9rem 1.1rem;
    color: var(--rp-ink); text-decoration: none; transition: border-color .15s ease, box-shadow .15s ease;
}
.ac-lessons a:hover { border-color: #b9c9e4; box-shadow: 0 10px 24px -20px rgba(11, 23, 51, .5); }
.ac-lessons li.is-next a { border-color: var(--rp-blue); box-shadow: 0 0 0 3px rgba(0, 87, 230, .1); }
.ac-lesson-marker {
    display: grid; place-items: center; width: 2rem; height: 2rem; flex: none;
    border: 1.5px solid #cfd9e8; border-radius: 50%; color: var(--rp-muted); font-size: .8rem; font-weight: 800;
}
li.is-done .ac-lesson-marker { border-color: var(--rp-mint); background: var(--rp-mint); color: #fff; }
li.is-next .ac-lesson-marker { border-color: var(--rp-blue); color: var(--rp-blue); }
.ac-lesson-copy { display: grid; gap: .15rem; }
.ac-lesson-copy strong { font-size: .95rem; }
.ac-lesson-copy small { color: var(--rp-muted); font-size: .82rem; }
.ac-lesson-side { display: flex; align-items: center; gap: .75rem; color: var(--rp-muted); font-size: .8rem; white-space: nowrap; }

/* ---- Reader (lessons and documents) -------------------------------------------- */
.ac-reader { display: grid; grid-template-columns: 17rem minmax(0, 1fr); gap: 1.5rem; align-items: start; }
.ac-outline { position: sticky; top: 5.5rem; display: grid; gap: .9rem; max-height: calc(100vh - 7rem); overflow-y: auto; padding-right: .25rem; }
.ac-outline ol { display: grid; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.ac-outline li a {
    display: flex; align-items: center; gap: .6rem; border-radius: .7rem; padding: .45rem .5rem;
    color: var(--rp-muted); font-size: .84rem; line-height: 1.35; text-decoration: none;
}
.ac-outline li a:hover { background: #fff; color: var(--rp-ink); }
.ac-outline li.is-current a { background: #fff; color: var(--rp-ink); font-weight: 700; box-shadow: 0 6px 18px -14px rgba(11, 23, 51, .5); }
.ac-outline .ac-lesson-marker { width: 1.6rem; height: 1.6rem; font-size: .72rem; }
.ac-outline li.is-current .ac-lesson-marker { border-color: var(--rp-blue); color: var(--rp-blue); }
.ac-outline-progress { display: grid; gap: .35rem; color: var(--rp-muted); font-size: .75rem; font-weight: 700; }
.ac-toc ol { counter-reset: toc; }
.ac-toc li a { padding-left: .65rem; border-left: 2px solid transparent; border-radius: 0 .6rem .6rem 0; }
.ac-toc li a:hover { border-left-color: var(--rp-blue); }
.ac-toc-title { display: flex; justify-content: space-between; margin: 0; color: var(--rp-ink); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.ac-toc-title span { color: var(--rp-muted); font-weight: 700; letter-spacing: 0; text-transform: none; }
.ac-used-in { display: grid; gap: .35rem; border-top: 1px solid var(--rp-line); padding-top: .9rem; }
.ac-used-in a { display: flex; align-items: center; gap: .45rem; color: var(--rp-blue); font-size: .82rem; font-weight: 700; text-decoration: none; }

.ac-lesson { min-width: 0; border: 1px solid var(--rp-line); border-radius: 1.3rem; background: #fff; padding: 2rem 2.25rem; box-shadow: 0 10px 30px -26px rgba(11, 23, 51, .45); }
.ac-lesson-head { display: grid; gap: .75rem; border-bottom: 1px solid var(--rp-line); padding-bottom: 1.25rem; margin-bottom: 1.25rem; }
.ac-lesson-head h1 { margin: 0; font-size: 1.9rem; font-weight: 800; letter-spacing: -.035em; line-height: 1.15; }
.ac-lesson-head .ac-kicker { margin: 0; }
.ac-lesson-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem 1rem; color: var(--rp-muted); font-size: .82rem; }
.ac-lesson-meta > span, .ac-lesson-meta > a { display: inline-flex; align-items: center; gap: .3rem; }
.ac-lesson-meta a { color: var(--rp-blue); font-weight: 700; text-decoration: none; }
.ac-focus { display: flex; gap: .6rem; align-items: flex-start; border-left: 3px solid var(--rp-blue); border-radius: 0 .8rem .8rem 0; background: var(--rp-blue-soft); padding: .7rem .9rem; color: var(--rp-blue); }
.ac-focus p { margin: 0; color: #22325a; font-size: .9rem; }
.ac-downloads { display: flex; flex-wrap: wrap; gap: .45rem; }
.ac-download {
    display: inline-flex; align-items: center; gap: .35rem;
    border: 1px solid var(--rp-line); border-radius: .65rem; background: #fff; padding: .35rem .7rem;
    color: var(--rp-ink); font: inherit; font-size: .8rem; font-weight: 700; text-decoration: none; cursor: pointer;
}
.ac-download:hover { border-color: var(--rp-blue); color: var(--rp-blue); }

.ac-lesson-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem; margin-top: 2rem; border-top: 1px solid var(--rp-line); padding-top: 1.25rem; }
.ac-lesson-foot-main { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.ac-done-toggle { display: inline-flex; align-items: center; gap: .35rem; border: 0; background: none; color: var(--rp-mint); font: inherit; font-size: .85rem; font-weight: 700; cursor: pointer; }
.ac-done-toggle:hover { text-decoration: underline; }
.ac-celebrate {
    display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; margin-top: 1.25rem;
    border-radius: 1rem; background: linear-gradient(135deg, #e5f8f0, #e8f0ff); padding: 1rem 1.25rem;
    color: var(--rp-mint); font-size: 1.6rem; animation: ac-pop .45s cubic-bezier(.22, 1, .36, 1);
}
.ac-celebrate div { display: grid; flex: 1; font-size: .9rem; color: var(--rp-ink); }
.ac-celebrate span { color: var(--rp-muted); }
@keyframes ac-pop { from { transform: scale(.96); opacity: 0; } to { transform: none; opacity: 1; } }

/* ---- Prose ---------------------------------------------------------------------- */
.ac-prose { color: #1f2a44; font-size: .98rem; line-height: 1.7; }
.ac-section { scroll-margin-top: 6rem; }
.ac-section + .ac-section { margin-top: 1.75rem; }
.ac-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: .5rem; }
.ac-prose h2, .ac-section-head h2 { margin: 0; color: var(--rp-ink); font-size: 1.3rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.3; }
.ac-prose h3 { margin: 1.4rem 0 .4rem; color: var(--rp-ink); font-size: 1.05rem; font-weight: 800; }
.ac-prose h4 { margin: 1.1rem 0 .3rem; color: var(--rp-ink); font-size: .95rem; font-weight: 800; }
.ac-prose p { margin: .6rem 0; }
.ac-prose ul, .ac-prose ol { margin: .6rem 0; padding-left: 1.4rem; }
.ac-prose li { margin: .25rem 0; }
.ac-prose li::marker { color: var(--rp-blue); }
.ac-prose a { color: var(--rp-blue); font-weight: 600; text-underline-offset: 2px; }
.ac-prose strong { color: var(--rp-ink); }
.ac-prose blockquote { margin: .9rem 0; border-left: 3px solid var(--rp-mint); border-radius: 0 .7rem .7rem 0; background: #f4fbf8; padding: .6rem 1rem; color: #22423a; }
.ac-prose code { border-radius: .35rem; background: #f1f4f9; padding: .1rem .35rem; font-size: .86em; }
.ac-prose pre { overflow-x: auto; border-radius: .8rem; background: #0b1733; padding: .9rem 1rem; color: #e6edf9; }
.ac-prose pre code { background: none; padding: 0; color: inherit; }
.ac-prose hr { margin: 1.5rem 0; border: 0; border-top: 1px solid var(--rp-line); }
.ac-table { margin: .9rem 0; overflow-x: auto; border: 1px solid var(--rp-line); border-radius: .8rem; }
.ac-prose table { width: 100%; border-collapse: collapse; font-size: .88rem; line-height: 1.5; }
.ac-prose th { background: #f6f8fc; color: var(--rp-ink); font-weight: 800; text-align: left; }
.ac-prose th, .ac-prose td { border-bottom: 1px solid #eef2f8; padding: .55rem .75rem; vertical-align: top; }
.ac-prose tr:last-child td { border-bottom: 0; }
.ac-copy {
    display: inline-flex; flex: none; align-items: center; gap: .3rem; margin-top: .15rem;
    border: 1px solid var(--rp-line); border-radius: .6rem; background: #fff; padding: .25rem .55rem;
    color: var(--rp-muted); font: inherit; font-size: .75rem; font-weight: 700; cursor: pointer;
    opacity: .75; transition: opacity .15s ease, color .15s ease, border-color .15s ease;
}
.ac-section:hover .ac-copy, .ac-copy:focus-visible { opacity: 1; }
.ac-copy:hover { border-color: var(--rp-blue); color: var(--rp-blue); }

/* ---- Library -------------------------------------------------------------------- */
.ac-library-head { display: grid; gap: .4rem; margin-bottom: 1.25rem; }
.ac-library-head > p:not(.ac-kicker) { margin: 0; color: var(--rp-muted); }
.ac-legend { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; margin-top: .4rem; color: var(--rp-muted); font-size: .78rem; }
.ac-legend > span { display: inline-flex; align-items: center; gap: .4rem; }
.ac-groups { columns: 2 22rem; column-gap: 1rem; }
.ac-group { break-inside: avoid; margin-bottom: 1rem; border: 1px solid var(--rp-line); border-radius: 1.1rem; background: #fff; padding: 1.1rem; }
.ac-group header { display: flex; gap: .8rem; align-items: flex-start; margin-bottom: .6rem; }
.ac-group-number { color: #b9c9e4; font-size: 1.3rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; }
.ac-group h2 { margin: 0; font-size: 1rem; font-weight: 800; }
.ac-group header p { margin: .15rem 0 0; color: var(--rp-muted); font-size: .82rem; }
.ac-group ul { display: grid; gap: .15rem; margin: 0; padding: 0; list-style: none; }
.ac-group li a {
    display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .35rem .75rem;
    border-radius: .7rem; padding: .5rem .6rem; color: var(--rp-ink); text-decoration: none;
}
.ac-group li a:hover { background: #f5f8fd; }
.ac-doc-title { font-size: .9rem; font-weight: 700; }
.ac-doc-meta { display: inline-flex; align-items: center; gap: .45rem; color: var(--rp-muted); font-size: .75rem; }
.ac-format { border-radius: .35rem; background: #f1f4f9; padding: .05rem .35rem; font-size: .65rem; font-weight: 800; letter-spacing: .04em; }

.ac-results { display: grid; gap: .6rem; margin: 0; padding: 0; list-style: none; }
.ac-results a { display: grid; gap: .25rem; border: 1px solid var(--rp-line); border-radius: 1rem; background: #fff; padding: .9rem 1.1rem; color: var(--rp-ink); text-decoration: none; }
.ac-results a:hover { border-color: #b9c9e4; }
.ac-result-path { color: var(--rp-muted); font-size: .75rem; font-weight: 700; }
.ac-result-snippet { color: #3a4763; font-size: .86rem; line-height: 1.55; }
.ac-result-snippet mark { border-radius: .2rem; background: #fff1c2; padding: 0 .1rem; color: inherit; }

/* ---- Practice ------------------------------------------------------------------- */
.ac-deck-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); gap: 1rem; }
.ac-deck-card {
    display: flex; flex-direction: column; align-items: flex-start; gap: .6rem;
    border: 1px solid var(--rp-line); border-radius: 1.2rem; background: #fff; padding: 1.3rem;
    color: var(--rp-ink); text-decoration: none; transition: transform .18s ease, border-color .18s ease;
}
.ac-deck-card:hover { transform: translateY(-2px); border-color: #b9c9e4; }
.ac-deck-card .ac-course-icon { background: #fff4e0; color: var(--rp-amber); }
.ac-deck-card h2 { margin: .2rem 0 0; font-size: 1.1rem; font-weight: 800; }
.ac-deck-card p { flex: 1; margin: 0; color: var(--rp-muted); font-size: .88rem; line-height: 1.5; }

.ac-practice { display: grid; gap: .8rem; max-width: 50rem; margin: 0 auto; }
.ac-practice-top { display: flex; justify-content: space-between; color: var(--rp-muted); font-size: .82rem; font-weight: 700; }
.ac-flashcard {
    display: grid; gap: 1rem; justify-items: start;
    border: 1px solid var(--rp-line); border-radius: 1.4rem; background: #fff; padding: 2rem;
    box-shadow: 0 24px 50px -36px rgba(11, 23, 51, .55);
    animation: ac-pop .35s cubic-bezier(.22, 1, .36, 1);
}
.ac-flashcard blockquote {
    position: relative; margin: 0; padding-left: 1.4rem;
    color: var(--rp-ink); font-size: 1.55rem; font-weight: 800; letter-spacing: -.02em; line-height: 1.3;
}
.ac-flashcard blockquote::before { content: "“"; position: absolute; left: -.2rem; top: -.35rem; color: var(--rp-blue); font-size: 2.6rem; line-height: 1; }
.ac-flash-hint { margin: 0; color: var(--rp-muted); }
.ac-flash-answer { width: 100%; border-top: 1px dashed var(--rp-line); padding-top: .8rem; animation: ac-pop .35s ease; }
.ac-flash-grade { display: flex; flex-wrap: wrap; align-items: center; gap: .6rem; width: 100%; border-top: 1px solid var(--rp-line); padding-top: 1rem; }
.ac-flash-grade > span { margin-right: auto; color: var(--rp-muted); font-weight: 700; }
.ac-flash-grade .btn { display: inline-flex; align-items: center; gap: .4rem; }
.ac-practice-done { display: grid; justify-items: center; gap: .6rem; max-width: 40rem; margin: 2rem auto; text-align: center; }
.ac-practice-done h1 { margin: .4rem 0 0; font-size: 1.7rem; font-weight: 800; }
.ac-practice-done p { margin: 0; color: var(--rp-muted); }
.ac-practice-done .ac-course-icon { background: var(--rp-mint-soft); color: var(--rp-mint); }
.ac-review-list { width: 100%; border: 1px solid var(--rp-line); border-radius: 1rem; background: #fff; padding: 1rem 1.2rem; text-align: left; }
.ac-review-list ul { margin: .5rem 0 0; padding-left: 1.2rem; }

/* ---- Reseller portal hooks ------------------------------------------------------- */
.rp-preview-banner { margin: 0 0 1rem; border-radius: .8rem; background: var(--rp-amber-soft); padding: .6rem .9rem; color: #6b4200; font-size: .85rem; font-weight: 600; }
.rp-academy-card {
    display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(12rem, auto); align-items: center; gap: 1rem;
    margin-top: 1rem !important; color: var(--rp-ink); text-decoration: none;
    background: linear-gradient(120deg, #fff 55%, #eef4ff);
}
.rp-academy-card:hover { border-color: #b9c9e4; }
.rp-academy-icon { display: grid; place-items: center; width: 3rem; height: 3rem; border-radius: .9rem; background: linear-gradient(135deg, #0b1733, #1b4fd8); color: #fff; font-size: 1.4rem; }
.rp-academy-copy { display: grid; gap: .15rem; }
.rp-academy-copy > span { color: var(--rp-muted); font-size: .88rem; }
.rp-academy-progress { display: grid; gap: .6rem; justify-items: end; }
.rp-academy-progress .ac-bar { width: 100%; }
.rp-academy-mini { display: inline-flex; align-items: center; gap: .5rem; color: var(--rp-muted); font-size: .78rem; font-variant-numeric: tabular-nums; }
.rp-academy-mini .ac-bar { width: 4.5rem; }

/* ---- Responsive & print ----------------------------------------------------------- */
@media (max-width: 1000px) {
    .ac-reader { grid-template-columns: 1fr; }
    .ac-outline { position: static; max-height: none; }
    .ac-toc ol, .ac-outline ol { display: none; }
    .ac-two { grid-template-columns: 1fr; }
    .rp-academy-card { grid-template-columns: auto minmax(0, 1fr); }
    .rp-academy-progress { grid-column: 1 / -1; justify-items: stretch; }
}
@media (max-width: 700px) {
    .ac-hero { grid-template-columns: 1fr; padding: 1.5rem; }
    .ac-hero h1 { font-size: 1.6rem; }
    .ac-hero-progress { width: 7.5rem; height: 7.5rem; }
    .ac-nav-search { margin-left: 0; width: 100%; }
    .ac-lesson { padding: 1.25rem; }
    .ac-lesson-head h1 { font-size: 1.5rem; }
    .ac-lessons a { grid-template-columns: auto minmax(0, 1fr); }
    .ac-lesson-side { grid-column: 2; }
    .ac-quick { grid-template-columns: 1fr; }
    .ac-flashcard { padding: 1.25rem; }
    .ac-flashcard blockquote { font-size: 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .ac-course, .ac-deck, .ac-deck-card, .ac-flashcard, .ac-flash-answer, .ac-celebrate, .ac-bar i, .ac-ring-value { transition: none; animation: none; }
}
@media print {
    .rp-topbar, .ac-nav, .ac-outline, .ac-downloads, .ac-copy, .ac-lesson-foot, .rp-preview-banner, .skip-link { display: none !important; }
    .rp-shell { background: #fff; }
    .ac-reader { display: block; }
    .ac-lesson { border: 0; box-shadow: none; padding: 0; }
}

/* ---- Live prices ------------------------------------------------------------------ */
.ac-price { border-bottom: 1.5px dotted var(--rp-mint); font-weight: 700; white-space: nowrap; cursor: help; }
.ac-price.is-fallback { border-bottom-color: var(--rp-amber); }
.ac-margin-table tr.is-recommended td { background: var(--rp-mint-soft); font-weight: 700; }
.ac-price-note { margin-top: -.4rem !important; color: var(--rp-muted); font-size: .8rem; }
.ac-price-missing { border-radius: .7rem; background: var(--rp-amber-soft); padding: .6rem .8rem; color: #6b4200; font-size: .88rem; }
.ac-live-pricing { display: flex; gap: .6rem; align-items: flex-start; border-radius: .8rem; background: var(--rp-mint-soft); padding: .6rem .85rem; color: #135c44; font-size: .85rem; }

/* Explainer videos */
.ac-video-card { display: grid; gap: 1rem; margin: 1.25rem 0; border: 1px solid var(--rp-line); border-radius: 1.3rem; background: #fff; padding: 1.25rem; }
.ac-video-head { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: .75rem; }
.ac-video-head h2 { margin: 0; font-size: 1.25rem; font-weight: 800; letter-spacing: -.02em; }
.ac-video-head p:not(.ac-kicker) { margin: .3rem 0 0; color: var(--rp-muted); }
.ac-video-watched { display: inline-flex; align-items: center; gap: .35rem; border-radius: 999px; background: var(--rp-mint-soft, #e5f8f0); color: var(--rp-mint, #0d9f6e); padding: .3rem .7rem; font-size: .85rem; font-weight: 700; }
.ac-video-watched svg { width: 1rem; height: 1rem; }
.ac-video-frame { overflow: hidden; border-radius: 1rem; background: #0b1733; }
.ac-video-frame video { display: block; width: 100%; aspect-ratio: 16 / 9; background: #0b1733; }
