:root{
  --bg:#F1F5F2;
  --surface:#FFFFFF;
  --surface-2:#E3E8EF;
  --ink:#14261C;
  --ink-muted:#586479;
  --border:#D6DCE6;
  --accent:#0B6B3A;
  --accent-strong:#07472A;
  --accent-ink:#FFFFFF;
  --gold:#C99700;
  --gold-soft:#FFF4CC;
  --good:#2F7A54;
  --good-soft:#DFF0E7;
  --warn:#B2621B;
  --warn-soft:#F6E4CF;
  --bad:#B23A3A;
  --bad-soft:#F8DEDE;
  --shadow: 0 1px 2px rgba(20,32,51,0.06), 0 8px 24px -12px rgba(20,32,51,0.18);
  --radius: 14px;
  color-scheme: light;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0E141E; --surface:#161F2C; --surface-2:#1E2A3A; --ink:#E8ECF3; --ink-muted:#96A3B8;
    --border:#2A3850; --accent:#4CC287; --accent-strong:#7FD9A9; --accent-ink:#0B1420;
    --gold:#D9AC6C; --gold-soft:#3A2E1C; --good:#57B888; --good-soft:#173226;
    --warn:#E29A54; --warn-soft:#3A2A16; --bad:#E27272; --bad-soft:#3A1E1E;
    --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 12px 28px -14px rgba(0,0,0,0.55);
    color-scheme: dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0E141E; --surface:#161F2C; --surface-2:#1E2A3A; --ink:#E8ECF3; --ink-muted:#96A3B8;
  --border:#2A3850; --accent:#4CC287; --accent-strong:#7FD9A9; --accent-ink:#0B1420;
  --gold:#D9AC6C; --gold-soft:#3A2E1C; --good:#57B888; --good-soft:#173226;
  --warn:#E29A54; --warn-soft:#3A2A16; --bad:#E27272; --bad-soft:#3A1E1E;
  --shadow: 0 1px 2px rgba(0,0,0,0.3), 0 12px 28px -14px rgba(0,0,0,0.55);
  color-scheme: dark;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
body{
  background:var(--bg); color:var(--ink);
  font-family:"Times New Roman", Times, serif;
  font-size:12pt;
  line-height:1.5;
}
h1,h2,h3,h4{font-family:"Fraunces", Georgia, serif; font-weight:600; text-wrap:balance; margin:0 0 .35em 0; color:var(--ink);}
a{color:inherit;}
.mono{font-family:"IBM Plex Mono", ui-monospace, monospace; font-variant-numeric:tabular-nums;}
.muted{color:var(--ink-muted);}
.eyebrow{text-transform:uppercase; letter-spacing:.09em; font-size:.72rem; font-weight:600; color:var(--ink-muted);}
.eyebrow-link{text-decoration:none; display:inline-block;}
.eyebrow-link:hover, .eyebrow-link:focus-visible{color:var(--accent-strong, var(--ink-muted)); text-decoration:underline;}
button{font-family:inherit; font-size:12pt; cursor:pointer;}
input,select,textarea{font-family:inherit; font-size:1rem;}
:focus-visible{outline:2px solid var(--accent); outline-offset:2px;}

.shell{max-width:1180px; margin:0 auto; padding-inline:20px;}
/* Two-row header: a dark brand bar (logo + account actions) with a second
   row of section links underneath, in the site's existing navy/gold accent
   colors -- not new colors, just a layout inspired by common exam-prep sites. */
.topbar{position:sticky; top:0; z-index:20; background:var(--accent-strong); border-bottom:1px solid rgba(0,0,0,.15); box-shadow:var(--shadow);}
.topbar-main{display:flex; align-items:center; justify-content:space-between; gap:18px; padding-block:14px; flex-wrap:wrap;}
.brand{display:flex; align-items:center; gap:12px; font-family:"Fraunces",serif; font-weight:800; font-size:1.9rem; text-decoration:none; white-space:nowrap; color:#fff;}
.brand-c1{color:#fff;}
.brand-c2{color:#FFD23F;}
.brand-c3{color:#FF7A85;}
@media (max-width:640px){ .brand{font-size:1.5rem;} }
.topbar-subnav{background:rgba(0,0,0,.18);}
.topbar-subnav-inner{display:flex;}
.nav{display:grid; grid-template-columns:1fr auto 1fr; align-items:center; width:100%; column-gap:10px;}
.nav-left{display:flex; flex-wrap:wrap; gap:2px; justify-self:start;}
.nav-center{justify-self:center; display:flex; align-items:center;}
.nav-right{display:flex; flex-wrap:wrap; gap:2px; justify-self:end;}
.nav a, .nav-left button, .nav-right button{padding:14px 19px; border-radius:0; border:none; border-bottom:2px solid transparent; background:transparent; color:rgba(255,255,255,.75); text-decoration:none; font-weight:600; font-size:1.02rem;}
.nav a:hover, .nav-left button:hover, .nav-right button:hover{color:#fff;}
.nav a.active, .nav-left button.active, .nav-right button.active{color:#fff; border-bottom-color:var(--gold);}
@media (max-width:640px){
  .nav{display:flex; flex-wrap:wrap; gap:2px;}
  .nav-left, .nav-right{justify-self:auto;}
  .nav-center{order:99; width:100%; justify-content:center; padding:6px 0;}
}
.topbar-search{position:relative; display:flex; align-items:center; flex:1 1 320px; max-width:420px; margin:0 8px;}
.topbar-search-icon{position:absolute; left:14px; top:50%; transform:translateY(-50%); color:var(--ink-muted); display:flex; pointer-events:none;}
.topbar-search input{width:100%; padding:9px 42px 9px 38px; border-radius:999px; border:none; background:rgba(255,255,255,.94); color:var(--ink); font-size:.9rem;}
.topbar-search input::placeholder{color:var(--ink-muted);}
.topbar-search-btn{position:absolute; right:4px; top:50%; transform:translateY(-50%); width:28px; height:28px; border-radius:50%; border:none; background:var(--gold); color:#241a0c; display:flex; align-items:center; justify-content:center; cursor:pointer;}
.pill-courses{display:inline-flex; align-items:center; gap:6px; border-radius:999px;}
a.courses-cta{
  flex:0 0 auto;
  background:var(--gold); border:1px solid var(--gold); color:#241a0c;
  font-size:1.05rem; font-weight:800; padding:13px 26px;
  box-shadow:0 4px 14px rgba(168,118,58,.4);
  transition:transform .15s ease, box-shadow .15s ease, background .15s ease;
  white-space:nowrap;
}
a.courses-cta:hover, a.courses-cta:focus-visible{filter:brightness(1.1); box-shadow:0 6px 18px rgba(168,118,58,.55); transform:translateY(-1px);}
.courses-cta svg{width:17px; height:17px;}
@media (max-width:900px){ a.courses-cta{padding:10px 18px; font-size:.95rem;} }
button.admin-cta{
  flex:0 0 auto;
  background:linear-gradient(135deg, #E7C583, #A8763A);
  border:1px solid #C79A50; color:#2b1d08;
  font-size:.82rem; font-weight:700; padding:8px 14px;
  box-shadow:0 3px 10px rgba(168,118,58,.4);
  transition:transform .15s ease, box-shadow .15s ease, filter .15s ease;
  white-space:nowrap;
}
button.admin-cta:hover, button.admin-cta:focus-visible{filter:brightness(1.08); box-shadow:0 5px 14px rgba(168,118,58,.55); transform:translateY(-1px);}
button.admin-cta.active{outline:2px solid #fff; outline-offset:1px;}
@media (max-width:900px){ button.admin-cta{padding:8px 14px; font-size:.85rem;} }
.who{display:flex; align-items:center; gap:10px;}
.who input{width:120px; padding:7px 10px; border-radius:999px; border:1px solid var(--border); background:var(--surface); color:var(--ink);}
.account-actions{display:flex; align-items:center; gap:8px;}
.account-chip{display:flex; align-items:center; gap:10px; padding:6px 6px 6px 14px; border-radius:999px; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.22);}
.account-name{color:#fff; font-size:.85rem; max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
.topbar-main .btn.ghost{color:#fff; border-color:rgba(255,255,255,.4);}
.topbar-main .btn.ghost:hover{background:rgba(255,255,255,.12);}
.topbar-main .btn.primary{background:var(--gold); border-color:var(--gold); color:#241a0c;}
.topbar-main .btn.primary.signup-cta{background:#FFC72C; border-color:#FFC72C; color:#241a0c; box-shadow:0 3px 10px rgba(255,199,44,.45);}
.topbar-main .btn.primary.signup-cta:hover, .topbar-main .btn.primary.signup-cta:focus-visible{background:#FFD75E; border-color:#FFD75E;}

main{padding-block:28px 64px;}

.hero{position:relative; overflow:hidden; background:linear-gradient(135deg, var(--accent-strong) 0%, var(--accent) 55%, #8E1B1B 100%); color:#fff; border-radius:20px; padding:34px 32px; margin-bottom:28px; display:flex; flex-wrap:wrap; gap:24px; align-items:center; justify-content:space-between;}
.hero::before{content:""; position:absolute; top:-60px; right:-60px; width:280px; height:280px; border-radius:50%; background:radial-gradient(circle, rgba(216,163,74,.38), transparent 70%); pointer-events:none;}
.hero::after{content:""; position:absolute; bottom:-90px; left:-40px; width:260px; height:260px; border-radius:50%; background:radial-gradient(circle, rgba(244,42,65,.22), transparent 70%); pointer-events:none;}
.hero > *{position:relative; z-index:1;}
.hero-content{flex:1 1 auto; max-width:none; width:100%;}
.hero-content p{max-width:none;}
.hero-badge-row{display:flex; align-items:center; gap:9px; margin-bottom:8px;}
.hero-bounce-badge{flex:none; animation:heroBadgeBounce 2.4s ease-in-out infinite;}
@keyframes heroBadgeBounce{0%,100%{transform:translateY(0) rotate(-4deg);} 50%{transform:translateY(-6px) rotate(4deg);}}
@media (prefers-reduced-motion: reduce){ .hero-bounce-badge{animation:none;} }
.hero-rotator{position:relative; height:1.3em; overflow:hidden; flex:1;}
.hero-rotator span{position:absolute; left:0; top:0; width:100%; color:var(--gold); font-weight:700; font-size:.86rem; text-transform:uppercase; letter-spacing:.08em; opacity:0;}
@media (prefers-reduced-motion: no-preference){
  .hero-rotator span{animation:heroRotate 20s cubic-bezier(.65,0,.35,1) infinite;}
  .hero-rotator span:nth-child(1){animation-delay:0s;}
  .hero-rotator span:nth-child(2){animation-delay:5s;}
  .hero-rotator span:nth-child(3){animation-delay:10s;}
  .hero-rotator span:nth-child(4){animation-delay:15s;}
  @keyframes heroRotate{
    0%{opacity:0; transform:translateY(8px);}
    6%,20%{opacity:1; transform:translateY(0);}
    26%,100%{opacity:0; transform:translateY(-8px);}
  }
}
@media (prefers-reduced-motion: reduce){
  .hero-rotator span:first-child{opacity:1;}
}
.hero h1{color:#fff; font-size:clamp(1.3rem, 2.1vw, 1.85rem); max-width:32ch;}
.sr-only{position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0;}
.hero-headline-rotator{position:relative; min-height:1.35em; max-width:100%; width:100%; margin-bottom:10px; font-family:"Fraunces", Georgia, serif; font-size:clamp(2.1rem, 4vw, 3.4rem);}
.hero-headline-rotator span{position:absolute; left:0; top:0; width:100%; white-space:nowrap; font-weight:800; line-height:1.22; opacity:0;
  background-repeat:no-repeat; -webkit-background-clip:text; background-clip:text; color:transparent;}
.hero-headline-rotator span:nth-child(1){background-image:linear-gradient(90deg,#fff 0%,var(--gold) 50%,#FF9AA6 100%);}
.hero-headline-rotator span:nth-child(2){background-image:linear-gradient(90deg,var(--gold) 0%,#fff 45%,#8FE0C4 100%);}
.hero-headline-rotator span:nth-child(3){background-image:linear-gradient(90deg,#FF9AA6 0%,#fff 45%,var(--gold) 100%);}
.hero-headline-rotator span:nth-child(4){background-image:linear-gradient(90deg,#fff 0%,#8FE0C4 50%,var(--gold) 100%);}
.hero-headline-rotator span:nth-child(5){background-image:linear-gradient(90deg,var(--gold) 0%,#FF9AA6 50%,#fff 100%);}
.hero-headline-rotator span:nth-child(6){background-image:linear-gradient(90deg,#8FE0C4 0%,var(--gold) 50%,#FF9AA6 100%);}
@media (prefers-reduced-motion: no-preference){
  .hero-headline-rotator span{
    animation-name: heroHeadlineRotate;
    animation-duration: 30s;
    animation-timing-function: cubic-bezier(.65,0,.35,1);
    animation-iteration-count: infinite;
  }
  .hero-headline-rotator span:nth-child(1){animation-delay:0s;}
  .hero-headline-rotator span:nth-child(2){animation-delay:5s;}
  .hero-headline-rotator span:nth-child(3){animation-delay:10s;}
  .hero-headline-rotator span:nth-child(4){animation-delay:15s;}
  .hero-headline-rotator span:nth-child(5){animation-delay:20s;}
  .hero-headline-rotator span:nth-child(6){animation-delay:25s;}
  @keyframes heroHeadlineRotate{
    0%{opacity:0; transform:translateY(10px) scale(.985);}
    5%,13%{opacity:1; transform:translateY(0) scale(1);}
    18%,100%{opacity:0; transform:translateY(-10px) scale(.985);}
  }
}
@media (prefers-reduced-motion: reduce){
  .hero-headline-rotator span:first-child{opacity:1;}
}
@media (max-width:640px){
  .hero-headline-rotator{min-height:1.3em;}
  .hero{padding:24px 16px;}
}
#browse-courses{scroll-margin-top:140px;}
.featured-section{margin-bottom:32px;}
.featured-head{display:flex; align-items:flex-end; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:16px;}
.featured-head h2{margin-bottom:.2em;}
.featured-head p{margin:0;}
.see-all-link{color:var(--gold); font-weight:700; text-decoration:none; white-space:nowrap;}
.see-all-link:hover{text-decoration:underline;}
.featured-grid{margin-bottom:4px;}

/* Course list (main browse area) */
.course-list{display:flex; flex-direction:column; gap:0;}
.course-row{display:flex; gap:20px; align-items:center; padding:20px 4px; border-bottom:1px solid var(--border);}
.course-row:first-child{border-top:1px solid var(--border);}
.course-row-media{flex:0 0 180px; width:180px; height:112px; border-radius:12px; overflow:hidden; background:var(--surface-2);}
.course-row-media img{width:100%; height:100%; object-fit:cover; display:block;}
.row-media-fallback{width:100%; height:100%; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg, var(--accent-strong), var(--accent)); color:rgba(255,255,255,.85); text-align:center; padding:8px; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.06em;}
.course-row-body{flex:1; min-width:0;}
.course-row-body h3{margin:.15em 0;}
.course-title-link{color:inherit; text-decoration:none;}
.course-title-link:hover, .course-title-link:focus-visible{text-decoration:underline; color:var(--accent-strong, inherit);}
.course-row-body p{margin:0; max-width:60ch;}
.course-row-action{flex:0 0 auto;}
.btn.pill{border-radius:999px;}
@media (max-width:640px){
  .course-row{flex-wrap:wrap;}
  .course-row-media{flex:0 0 100%; width:100%; height:150px;}
}

/* Pagination */
.pagination{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-top:22px;}
.page-btns{display:flex; align-items:center; gap:6px; flex-wrap:wrap;}
.page-btn{min-width:34px; height:34px; padding:0 10px; border-radius:999px; border:1px solid var(--border); background:var(--surface); color:var(--ink); font-weight:700; cursor:pointer;}
.page-btn.active{background:var(--accent); border-color:var(--accent); color:var(--accent-ink);}
.page-btn:disabled{opacity:.4; cursor:not-allowed;}
.page-ellipsis{color:var(--ink-muted); padding:0 2px;}

/* Footer */
.site-footer{background:var(--accent-strong); color:rgba(255,255,255,.82); margin-top:48px;}
.footer-inner{padding-block:28px; text-align:center;}
.footer-top{display:flex; justify-content:center; align-items:center; gap:14px; margin-bottom:16px; position:relative;}
.footer-links{display:flex; justify-content:center; flex-wrap:wrap; gap:10px; font-weight:600;}
.footer-links a{color:#fff; text-decoration:none;}
.footer-links a:hover{text-decoration:underline;}
.footer-links .sep{color:rgba(255,255,255,.4);}
.footer-icon-btn{position:absolute; right:0; top:50%; transform:translateY(-50%); width:32px; height:32px; border-radius:8px; background:rgba(255,255,255,.12); color:#fff; display:flex; align-items:center; justify-content:center; text-decoration:none; font-size:.95rem;}
.footer-icon-btn:hover{background:rgba(255,255,255,.22);}
@media (max-width:560px){ .footer-top{flex-direction:column;} .footer-icon-btn{position:static; transform:none; margin-top:4px;} }
.footer-copy{margin:0 0 10px 0; font-size:.85rem;}
.footer-pwa{margin:0 0 14px 0; font-size:.82rem; color:rgba(255,255,255,.85);}
.footer-note-details{max-width:640px; margin:0 auto; font-size:.78rem; line-height:1.6; color:rgba(255,255,255,.7);}
.footer-note-details summary{list-style:none; cursor:pointer;}
.footer-note-details summary::-webkit-details-marker{display:none;}
.footer-more-link{color:#fff; text-decoration:underline; font-weight:600;}
.footer-note-details[open] .footer-more-link{display:none;}
.hero p{color:#fff; max-width:none; margin:0; font-weight:700; font-size:12pt; line-height:1.55;}
.hero-stats{display:flex; gap:22px; flex-wrap:wrap;}
.hero-stat b{display:block; font-family:"Fraunces",serif; font-size:1.7rem;}
.hero-stat span{font-size:.78rem; text-transform:uppercase; letter-spacing:.07em; color:rgba(255,255,255,.75);}

.search-row{display:flex; gap:10px; flex-wrap:wrap; margin-bottom:18px; align-items:center;}
.search-row input[type="search"]{flex:1 1 240px; padding:11px 14px; border-radius:12px; border:1px solid var(--border); background:var(--surface); color:var(--ink);}
.chips{display:flex; gap:8px; flex-wrap:wrap;}
.chip{padding:7px 13px; border-radius:999px; border:1px solid var(--border); background:var(--surface); color:var(--ink-muted); font-weight:600; font-size:.85rem;}
.chip.active{background:var(--accent); border-color:var(--accent); color:var(--accent-ink);}

.grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(250px,1fr)); gap:16px;}
.card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); display:flex; flex-direction:column; gap:10px; overflow:hidden;}
.card > .card-body{padding:18px; display:flex; flex-direction:column; gap:10px; flex:1;}
.card:not(.has-media) > .card-body{padding:18px;}
.cat-tag{align-self:flex-start; font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em; padding:4px 9px; border-radius:999px; background:var(--surface-2); color:var(--ink-muted);}
.card-media{position:relative; aspect-ratio:16/9; background:var(--surface-2); overflow:hidden;}
.card-media img{width:100%; height:100%; object-fit:cover; display:block;}
.card-media .media-scrim{position:absolute; left:0; right:0; bottom:0; padding:8px 12px; background:linear-gradient(to top, rgba(10,14,22,.82), rgba(10,14,22,0)); }
.card-media .media-scrim span, .card-media .media-scrim a{color:#fff; font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.05em;}
.card-media .media-scrim a{text-decoration:none;}
.card-media .media-scrim a:hover, .card-media .media-scrim a:focus-visible{text-decoration:underline; color:var(--gold, #fff);}
.course-card h3{font-size:1.05rem;}
.course-card .meta{display:flex; justify-content:space-between; align-items:center; margin-top:auto; font-size:.85rem;}
.btn{display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:10px 16px; border-radius:11px; border:1px solid var(--border); background:var(--surface-2); color:var(--ink); font-weight:600; text-decoration:none;}
.btn.primary{background:var(--accent); border-color:var(--accent); color:var(--accent-ink);}
.btn.gold{background:var(--gold); border-color:var(--gold); color:#241a0c;}
.btn.ghost{background:transparent;}
.btn.danger{background:var(--bad-soft); border-color:var(--bad); color:var(--bad);}
.btn.small{padding:6px 11px; font-size:.85rem; border-radius:9px;}
.btn:disabled{opacity:.5; cursor:not-allowed;}
.icon-btn{border:1px solid var(--border); background:var(--surface); border-radius:999px; width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; color:var(--ink-muted);}
.icon-btn.fav-on{color:var(--bad); border-color:var(--bad);}

.empty{border:1px dashed var(--border); border-radius:var(--radius); padding:34px; text-align:center; color:var(--ink-muted);}

.course-head{display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between; align-items:flex-start; margin-bottom:20px;}
.course-head .titles{display:flex; flex-direction:column; gap:6px;}
.course-head .actions{display:flex; gap:10px; flex-wrap:wrap;}

.stat-row{display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:12px; margin-bottom:22px;}
.stat-tile{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px; position:relative; overflow:hidden;}
.stat-tile .seal-mark{position:absolute; right:-14px; top:-14px; opacity:.12;}
.stat-tile b{display:block; font-family:"IBM Plex Mono",monospace; font-size:1.6rem;}
.stat-tile span{font-size:.76rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-muted);}

.panels{display:grid; grid-template-columns:1.3fr 1fr; gap:18px;}
@media (max-width:780px){ .panels{grid-template-columns:1fr;} }
.panel{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:20px;}
.panel h3{font-size:1rem; display:flex; justify-content:space-between; align-items:center;}

/* ---- Course dashboard hub ---- */
.dash-head{display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; align-items:center; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:16px 20px; margin-bottom:16px;}
.dash-tagline{margin:0; max-width:56ch; color:var(--ink-muted);}
.dash-head-actions{display:flex; gap:10px; flex-wrap:wrap;}
.dash-cta-row{display:flex; gap:14px; flex-wrap:wrap; margin-bottom:26px;}
.dash-cta-row .btn{flex:1 1 260px; padding:16px 20px; font-size:1.02rem; border-radius:var(--radius); box-shadow:var(--shadow);}
.dash-cta-primary{background:var(--accent); border-color:var(--accent); color:var(--accent-ink);}
.dash-cta-dark{background:var(--accent-strong); border-color:var(--accent-strong); color:#fff;}
.dash-cta-dark .pill{margin-left:8px;}
.dash-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:14px; margin-bottom:28px;}
.dash-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); padding:18px; display:flex; flex-direction:column; gap:14px; justify-content:space-between;}
.dash-card-top{display:flex; gap:12px; align-items:flex-start;}
.dash-card-icon{flex:none; width:38px; height:38px; border-radius:10px; background:var(--gold-soft); color:var(--gold); display:flex; align-items:center; justify-content:center; font-size:1.05rem;}
.dash-card-top h3{margin:0 0 3px 0; font-size:1rem;}
.dash-card-top p{margin:0; font-size:.86rem; line-height:1.35;}
.dash-card-action{margin-top:auto;}

.ready-banner{display:flex; flex-wrap:wrap; gap:16px; align-items:center; justify-content:space-between; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); padding:20px 24px; margin-bottom:28px;}
.ready-banner-actions{display:flex; gap:10px; flex-wrap:wrap;}

/* ---- Pricing (membership) ---- */
.pricing-intro{text-align:center; max-width:640px; margin:6px auto 24px auto;}
.pricing-intro h2{margin-bottom:6px;}
.pricing-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:16px; margin-bottom:30px;}
@media (max-width:860px){ .pricing-grid{grid-template-columns:1fr;} }
.price-card{position:relative; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); padding:26px 22px; display:flex; flex-direction:column; gap:10px;}
.price-card.featured{background:var(--accent-strong); border-color:var(--accent-strong); color:#fff; transform:scale(1.02);}
.price-card.featured h3, .price-card.featured .price-amount{color:#fff;}
.price-card.featured .muted{color:rgba(255,255,255,.72);}
.price-card.featured .price-was{color:rgba(255,255,255,.55);}
.price-badge{position:absolute; top:-13px; left:20px; background:var(--gold); color:#241a0c; font-weight:700; font-size:.76rem; padding:4px 10px; border-radius:999px;}
.price-amount{font-family:"Fraunces",serif; font-size:2rem; font-weight:700;}
.price-was{font-size:1rem; font-weight:500; text-decoration:line-through; opacity:.6;}
.price-card h3{margin:0;}
.price-features{list-style:none; margin:6px 0 14px 0; padding:0; display:flex; flex-direction:column; gap:8px; font-size:.9rem;}
.price-cta{margin-top:auto; width:100%; text-align:center;}

/* ---- Cart ---- */
.nav-cart{position:relative;}
.cart-badge{display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; border-radius:999px; background:var(--gold); color:#241a0c; font-size:.72rem; font-weight:800; margin-left:2px; vertical-align:2px;}
.cart-row{display:flex; align-items:center; gap:14px; flex-wrap:wrap; padding:14px 0; border-bottom:1px solid var(--border);}
.cart-row-body{flex:1 1 220px; display:flex; flex-direction:column; gap:2px;}
.cart-row-body h3{margin:0; font-size:1rem;}
.cart-row-price{flex:0 0 auto; font-size:1.05rem;}
.cart-total{display:flex; justify-content:flex-end; gap:8px; padding-top:12px; font-size:1.05rem;}

/* ---- Per-course FAQ ---- */
.faq-intro{text-align:center; margin-bottom:30px;}
.faq-block{display:flex; align-items:center; gap:40px; margin-bottom:56px; flex-wrap:wrap;}
.faq-block.reverse{flex-direction:row-reverse;}
.faq-block-text{flex:1 1 320px; min-width:260px;}
.faq-block-text h3{margin-bottom:10px;}
.faq-block-text p{margin-bottom:16px;}
.faq-block-visual{flex:1 1 280px; min-width:220px; aspect-ratio:16/10; border-radius:var(--radius); background:linear-gradient(135deg, var(--accent-strong) 0%, var(--accent) 55%, #8E1B1B 100%); display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow);}
.faq-visual-icon{font-size:3.4rem;}
@media (max-width:640px){ .faq-block, .faq-block.reverse{flex-direction:column;} }

.cep-toast{position:fixed; left:50%; bottom:26px; transform:translate(-50%,16px); background:var(--accent-strong); color:#fff; padding:12px 20px; border-radius:999px; box-shadow:var(--shadow); font-size:.88rem; max-width:90vw; text-align:center; opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease; z-index:60;}
.cep-toast.show{opacity:1; transform:translate(-50%,0);}

/* ---- Course quick-nav menu bar ---- */
.course-menu-bar{position:relative; display:flex; align-items:center; gap:22px; border-bottom:1px solid var(--border); margin-bottom:20px; padding-bottom:0;}
.course-menu-dropdown{position:relative; margin-bottom:-1px;}
.course-menu-dropdown summary{list-style:none; cursor:pointer; font-weight:700; color:var(--accent); display:flex; align-items:center; gap:4px; padding:8px 2px 12px 2px; user-select:none;}
.course-menu-dropdown summary::-webkit-details-marker{display:none;}
.course-menu-dropdown[open] summary{color:var(--accent-strong);}
.course-menu-panel{position:absolute; top:100%; left:0; margin-top:4px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); box-shadow:var(--shadow); padding:8px; display:flex; flex-direction:column; min-width:230px; z-index:15;}
.course-menu-panel a, .course-menu-panel button{display:block; text-align:left; width:100%; background:none; border:none; padding:9px 10px; border-radius:8px; color:var(--ink); font-size:.92rem; text-decoration:none; cursor:pointer; font-family:inherit;}
.course-menu-panel a:hover, .course-menu-panel button:hover{background:var(--surface-2);}
.course-menu-tab{font-weight:700; color:var(--ink-muted); text-decoration:none; padding:8px 2px 12px 2px; border-bottom:2px solid transparent; margin-bottom:-1px;}
.course-menu-tab.active{color:var(--accent); border-bottom-color:var(--accent);}

table{width:100%; border-collapse:collapse; font-size:.88rem;}
th,td{text-align:left; padding:8px 6px; border-bottom:1px solid var(--border);}
th{color:var(--ink-muted); font-weight:600; font-size:.75rem; text-transform:uppercase; letter-spacing:.04em;}
.table-wrap{overflow-x:auto;}
.pill{padding:2px 9px; border-radius:999px; font-size:.76rem; font-weight:700;}
.pill.good{background:var(--good-soft); color:var(--good);}
.pill.warn{background:var(--warn-soft); color:var(--warn);}
.pill.bad{background:var(--bad-soft); color:var(--bad);}
.pill.sample{background:var(--gold-soft); color:var(--gold);}

.quiz-wrap{max-width:720px; margin:0 auto;}
.quiz-progress{height:6px; background:var(--surface-2); border-radius:999px; overflow:hidden; margin-bottom:18px;}
.quiz-progress > i{display:block; height:100%; background:var(--accent);}
.question-card{background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:24px; box-shadow:var(--shadow);}
.qnum{font-family:"IBM Plex Mono",monospace; color:var(--ink-muted); font-size:.85rem;}
.qtext{font-size:1.15rem; margin:8px 0 20px 0; font-weight:600;}
.choice{display:flex; gap:12px; align-items:flex-start; width:100%; text-align:left; padding:13px 14px; border-radius:11px; border:1px solid var(--border); background:var(--surface); margin-bottom:10px; color:var(--ink);}
.choice .letter{flex:0 0 auto; width:26px; height:26px; border-radius:50%; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:.8rem; font-weight:700; color:var(--ink-muted);}
.choice:hover{border-color:var(--accent);}
.choice.selected{border-color:var(--accent); background:color-mix(in srgb, var(--accent) 10%, var(--surface));}
.choice.correct{border-color:var(--good); background:var(--good-soft);}
.choice.incorrect{border-color:var(--bad); background:var(--bad-soft);}
.choice.correct .letter{background:var(--good); color:#fff; border-color:var(--good);}
.choice.incorrect .letter{background:var(--bad); color:#fff; border-color:var(--bad);}
.explain{margin-top:14px; padding:12px 14px; border-radius:10px; background:var(--surface-2); font-size:12pt;}
.quiz-actions{display:flex; justify-content:space-between; margin-top:18px;}

/* Question Bank: read-only choices that only light up once the answer is revealed */
.bank-choice{cursor:default; margin-bottom:8px; padding:10px 12px;}
.bank-choice:hover{border-color:var(--border);}
.bank-q.revealed .bank-choice.is-correct{border-color:var(--good); background:var(--good-soft);}
.bank-q.revealed .bank-choice.is-correct .letter{background:var(--good); color:#fff; border-color:var(--good);}
.bank-answer{margin-top:4px;}
.bank-answer > summary{list-style:none;}
.bank-answer > summary::-webkit-details-marker{display:none;}
.bank-answer > summary::marker{content:"";}

.result-hero{text-align:center; padding:30px 20px; border-radius:var(--radius); background:var(--surface); border:1px solid var(--border); margin-bottom:22px;}
.result-score{font-family:"Fraunces",serif; font-size:3rem; margin:6px 0;}

.form-grid{display:grid; gap:12px;}
.form-grid label{display:flex; flex-direction:column; gap:5px; font-size:.85rem; font-weight:600; color:var(--ink-muted);}
.form-grid input, .form-grid textarea, .form-grid select{padding:10px 12px; border-radius:9px; border:1px solid var(--border); background:var(--surface); color:var(--ink); font-weight:400;}
.row2{display:grid; grid-template-columns:1fr 1fr; gap:12px;}
@media (max-width:560px){ .row2{grid-template-columns:1fr;} }

.banner{padding:12px 16px; border-radius:11px; font-size:.9rem; margin-bottom:16px; display:flex; gap:10px; align-items:center; flex-wrap:wrap;}
.banner.info{background:var(--surface-2); color:var(--ink-muted); border:1px solid var(--border);}
.banner.sample{background:var(--gold-soft); color:var(--gold); border:1px solid var(--gold);}
.banner.warn{background:var(--warn-soft); color:var(--warn); border:1px solid var(--warn);}
.banner.success{background:var(--good-soft); color:var(--good); border:1px solid var(--good);}
.banner.error{background:var(--bad-soft); color:var(--bad); border:1px solid var(--bad);}

.admin-list-row{display:flex; justify-content:space-between; align-items:center; padding:10px 0; border-bottom:1px solid var(--border); gap:12px; flex-wrap:wrap;}
.modal-backdrop{position:fixed; inset:0; background:rgba(10,14,22,.5); display:flex; align-items:center; justify-content:center; padding:20px; z-index:50;}
.modal{background:var(--surface); border-radius:var(--radius); padding:24px; max-width:420px; width:100%; box-shadow:var(--shadow); max-height:85vh; overflow-y:auto;}

footer{border-top:1px solid var(--border); padding:22px 0; text-align:center; color:var(--ink-muted); font-size:.85rem;}

.sparkline-wrap svg text{fill:var(--ink-muted); font-size:10px; font-family:"IBM Plex Mono",monospace;}
.sparkline-wrap svg .gridline{stroke:var(--border);}
.sparkline-wrap svg .line{stroke:var(--accent); fill:none;}
.sparkline-wrap svg .area{fill:color-mix(in srgb, var(--accent) 14%, transparent);}
.sparkline-wrap svg .dot{fill:var(--accent); stroke:var(--surface); stroke-width:2;}
textarea#publish-output{width:100%; min-height:160px; font-family:"IBM Plex Mono",monospace; font-size:.78rem;}

/* Three-option pricing (single test / 1-year / monthly) */
.pricing-grid-3 { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
@media (min-width: 900px) { .pricing-grid-3 { grid-template-columns: repeat(3, 1fr); } }

/* ---------- ABBtests additions ---------- */
.hero{border-bottom:6px solid transparent; border-image:linear-gradient(90deg,#0B6B3A 0 33.3%,#F2B705 33.3% 66.6%,#C62828 66.6% 100%) 1;}
.chip-group-label{font-family:"IBM Plex Mono",monospace; font-size:.75rem; letter-spacing:.12em; color:var(--ink-muted); align-self:center; margin:0 2px 0 10px;}
.cert-info{background:var(--surface); border:1px solid var(--border); border-left:6px solid var(--gold); border-radius:var(--radius); padding:16px 20px; margin:0 0 20px; box-shadow:var(--shadow);}
.cert-info h2{margin:.2em 0 .4em;}
.cert-info p{margin:0;}
.cert-links{display:flex; flex-wrap:wrap; gap:4px; align-items:center;}
.cert-sep{color:var(--ink-muted);}
.pill.soon{background:var(--gold-soft); color:#7A5B00; border:1px solid #E9C95A; white-space:nowrap;}
.explain-extra{margin-top:8px; font-size:.95em;}
.explain-extra .xk{display:inline-block; font-family:"IBM Plex Mono",monospace; font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; background:var(--gold-soft); color:#6B5000; border-radius:6px; padding:1px 7px; margin-right:6px;}
.explain-tags{margin-top:10px; display:flex; flex-wrap:wrap; gap:6px;}
.review-explain{margin-top:8px;} .review-explain summary{cursor:pointer; color:var(--accent); font-weight:600;}
.dtable td{vertical-align:middle;} .dbar{height:10px; background:var(--border); border-radius:6px; overflow:hidden;}
.dbar i{display:block; height:100%; background:var(--good);} .dbar i.warn{background:var(--warn);} .dbar i.bad{background:var(--bad);}
.start-card h2{margin-top:.3em;}
.start-facts{display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:10px; margin:14px 0 16px;}
.start-facts div{background:color-mix(in srgb, var(--accent) 7%, var(--surface)); border:1px solid var(--border); border-radius:12px; padding:12px; text-align:center;}
.start-facts b{display:block; font-size:1.5rem; color:var(--accent);} .start-facts span{font-size:.85rem; color:var(--ink-muted);}
.start-modes{display:flex; gap:10px; flex-wrap:wrap; margin:16px 0 8px;}
.small-note{font-size:.88rem;}
.exam-bar{display:flex; justify-content:space-between; align-items:center; gap:10px; flex-wrap:wrap; margin-bottom:10px;}
.exam-clock{font-size:1.35rem; font-weight:600; background:var(--accent-strong); color:#fff; border-radius:10px; padding:4px 12px;}
.exam-clock.low{background:var(--bad);}
.flag-btn.on{border-color:#E08A00; color:#B36B00;}
.qnav{margin-top:16px; background:var(--surface); border:1px solid var(--border); border-radius:var(--radius); padding:12px 14px;}
.qnav-grid{display:grid; grid-template-columns:repeat(auto-fill,minmax(38px,1fr)); gap:6px; margin-top:8px;}
.qnav-btn{border:1px solid var(--border); background:var(--surface); color:var(--ink); border-radius:8px; padding:6px 0; font-family:"IBM Plex Mono",monospace; font-size:.85rem;}
.qnav-btn.done{background:var(--good-soft); border-color:var(--good);}
.qnav-btn.flag{box-shadow:inset 0 -3px 0 #E08A00;}
.qnav-btn.cur{outline:2px solid var(--accent); outline-offset:1px;}
.confirm-bar{margin-top:12px;}

/* Owner standard: ALL body text is Times New Roman, 12 pt. Headings, logo and numeric labels keep their own faces. */
body, p, li, td, th, label, blockquote, summary, details, .muted, .small-note, .qtext, .choice, .explain, .explain-extra,
.banner, .dash-tagline, .course-row p, .card-body p, .faq-block-text p, .price-card li, .footer-copy, .footer-links a,
.nav a, .course-menu-panel a, .course-menu-panel button, input, select, textarea, button, .btn {
  font-family:"Times New Roman", Times, serif !important;
  font-size:12pt !important;
}
