/* CramLab app styles — "the testing center's blackboard, done right."
   Palette: chalkboard slate #1C2523 · chalk white #F4F6F4 · chalk amber #FFB830
   red chalk #E0593F (mistakes / flags only) · paper cream #F6F1E4 (contrast sections)
   Type: Fraunces (display) · Inter (body) · Caveat (chalk marginalia, sparing) */
:root{
  --slate:#1C2523; --slate-2:#222D29; --slate-3:#2A3631; --chalk-line:#3A4A42;
  --white:#F4F6F4; --chalk-dim:#A9B8AF;
  --amber:#FFB830; --amber-deep:#C77F00;
  --red:#E0593F; --green:#4ADE80; --ink:#10150F;
  --cream:#F6F1E4; --cream-ink:#26332D; --cream-muted:#67716A; --cream-line:#E3D9C1;
  --radius:14px;
  --font-display:'Fraunces',Georgia,'Times New Roman',serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',system-ui,sans-serif;
  --font-hand:'Caveat',cursive;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--font-body);background:var(--slate);color:var(--white);line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:hidden}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:radial-gradient(1200px 600px at 20% -10%, rgba(255,255,255,.05), transparent 60%),
             radial-gradient(900px 500px at 90% 110%, rgba(255,184,48,.04), transparent 60%)}
body>*{position:relative;z-index:1}
::selection{background:var(--amber);color:var(--ink)}
.wrap{max-width:980px;margin:0 auto;padding:0 24px}
section{padding:56px 0}
/* cream contrast section — the paper half of the blackboard rhythm */
section.paper{background:var(--cream);color:var(--cream-ink)}
section.paper h1,section.paper h2{color:var(--cream-ink)}
section.paper .sub{color:var(--cream-muted)}
section.paper .note{color:var(--cream-muted)}
section.paper .eyebrow{color:var(--amber-deep)}
section.paper .card{background:#FFFDF7;border-color:var(--cream-line);color:var(--cream-ink)}

/* nav (slim app version) */
.nav{position:sticky;top:0;z-index:50;background:rgba(28,37,35,.94);backdrop-filter:blur(10px);border-bottom:1px solid var(--chalk-line)}
.nav-inner{display:flex;align-items:center;justify-content:space-between;height:64px;max-width:980px;margin:0 auto;padding:0 24px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--white);font-weight:800;font-size:1.05rem}
.brand-mark{flex:none;display:block}
.brand .lab-accent{color:var(--amber)}
.nav-links{display:flex;align-items:center;gap:22px}
.nav-links a{text-decoration:none;color:var(--chalk-dim);font-weight:600;font-size:.9rem}
.nav-links a:hover{color:var(--white)}
.nav-links a.on{color:var(--amber)}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:13px 26px;border-radius:10px;
  font-weight:700;font-size:1rem;text-decoration:none;cursor:pointer;border:none;font-family:inherit;transition:transform .12s,box-shadow .12s}
.btn-amber{background:var(--amber);color:var(--ink)}
.btn-amber:hover{transform:translateY(-1px);box-shadow:0 6px 20px rgba(255,184,48,.25)}
.btn-ghost{background:transparent;color:var(--white);border:1px solid var(--chalk-line)}
.btn-ghost:hover{border-color:var(--amber)}
section.paper .btn-ghost{color:var(--cream-ink);border-color:var(--cream-line)}
section.paper .btn-ghost:hover{border-color:var(--amber-deep)}
.btn:disabled{opacity:.45;cursor:not-allowed;transform:none}

/* headings */
.eyebrow{display:inline-block;font-weight:700;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--amber);margin-bottom:12px}
h1{font-family:var(--font-display);font-weight:600;font-size:clamp(1.9rem,4.5vw,2.7rem);letter-spacing:-.01em;margin-bottom:10px;line-height:1.15}
h2{font-family:var(--font-display);font-weight:600;font-size:1.45rem;margin-bottom:10px;line-height:1.25}
.sub{color:var(--chalk-dim);max-width:640px;margin-bottom:28px}
/* hand-drawn chalk underline motif */
.u-chalk{text-decoration:underline wavy var(--amber);text-decoration-thickness:2px;text-underline-offset:8px}
/* chalk marginalia — Caveat, sparing */
.marginalia{font-family:var(--font-hand);font-size:1.32rem;line-height:1.35;color:var(--amber);transform:rotate(-1.2deg);margin:0 0 26px;max-width:640px}
section.paper .marginalia{color:var(--amber-deep)}

/* cards */
.card{background:var(--slate-2);border:1px solid var(--chalk-line);border-radius:var(--radius);padding:28px;margin-bottom:20px}
/* Career-ladder next step (cross-venture link rendered as career guidance) */
.next-step{border-left:3px solid var(--amber)}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:700px){.grid2{grid-template-columns:1fr}}

/* readiness gauge */
.gauge-wrap{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.gauge{position:relative;width:170px;height:170px;flex:none}
.gauge svg{transform:rotate(-90deg)}
.gauge .g-num{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.gauge .g-num b{font-family:var(--font-display);font-weight:600;font-size:2.4rem}
.gauge .g-num span{font-size:.78rem;color:var(--chalk-dim);font-weight:600}
.band{font-size:.8rem;font-weight:700;padding:4px 12px;border-radius:99px;display:inline-block;margin-top:6px}
.band.ready{background:rgba(74,222,128,.14);color:var(--green)}
.band.close{background:rgba(255,184,48,.14);color:var(--amber)}
.band.working{background:rgba(224,89,63,.13);color:var(--red)}
.formula{background:var(--slate-3);border:1px solid var(--chalk-line);border-radius:8px;padding:16px 18px;
  font-family:ui-monospace,Menlo,monospace;font-size:.88rem;color:var(--chalk-dim);margin:14px 0;line-height:1.9;overflow-wrap:anywhere}
.formula .var{color:var(--amber);font-weight:700}
.sig-row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px dashed var(--chalk-line);font-size:.92rem}
.sig-row:last-child{border-bottom:none}
.sig-row .sv{font-weight:700;color:var(--white);text-align:right}

/* gap map bars */
.gap-row{margin:12px 0}
.gap-top{display:flex;justify-content:space-between;gap:8px;font-size:.9rem;margin-bottom:6px}
.gap-top .gs{font-weight:700;white-space:nowrap}
.gap-bar{height:10px;background:var(--slate-3);border-radius:99px;overflow:hidden}
.gap-fill{height:100%;border-radius:99px;transition:width .5s}
.gap-fill.weak{background:var(--red)} .gap-fill.solid{background:var(--amber)} .gap-fill.strong{background:var(--green)}
.gap-tag{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;padding:2px 9px;border-radius:99px;margin-left:8px;white-space:nowrap}
.gap-tag.weak{background:rgba(224,89,63,.14);color:var(--red)}
.gap-tag.solid{background:rgba(255,184,48,.14);color:var(--amber)}
.gap-tag.strong{background:rgba(74,222,128,.14);color:var(--green)}

/* question UI */
.q-meta{display:flex;justify-content:space-between;align-items:center;gap:8px;flex-wrap:wrap;font-size:.85rem;color:var(--chalk-dim);margin-bottom:14px;font-weight:600}
.q-topic{color:var(--amber);font-weight:700;font-size:.78rem;text-transform:uppercase;letter-spacing:.1em}
.q-progress{height:8px;background:var(--slate-3);border-radius:99px;overflow:hidden;margin-bottom:22px}
.q-progress>div{height:100%;background:var(--amber);border-radius:99px;transition:width .3s}
.q-stem{font-family:var(--font-display);font-weight:600;font-size:1.22rem;margin:10px 0 20px;line-height:1.5}
.q-opts{display:grid;gap:12px}
.q-opt{display:flex;gap:14px;align-items:flex-start;text-align:left;background:var(--slate-2);border:1px solid var(--chalk-line);
  border-radius:16px;padding:15px 18px;color:var(--white);font-size:.98rem;cursor:pointer;font-family:inherit;width:100%;transition:border-color .15s,background .15s}
.q-opt:hover:not(:disabled){border-color:var(--amber);background:var(--slate-3)}
.q-opt .letter{flex:none;width:30px;height:30px;border-radius:8px;background:var(--slate-3);border:1px solid var(--chalk-line);
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;color:var(--amber)}
.q-opt:disabled{cursor:default}
.q-opt.right{border-color:var(--green);background:rgba(74,222,128,.08)}
.q-opt.right .letter{background:var(--green);color:var(--ink);border-color:var(--green)}
.q-opt.wrong{border-color:var(--red);background:rgba(224,89,63,.08)}
.q-opt.wrong .letter{background:var(--red);color:var(--ink);border-color:var(--red)}
.q-opt.dim{opacity:.55}
.q-why{margin-top:18px;background:rgba(255,184,48,.06);border-left:3px solid var(--amber);border-radius:0 8px 8px 0;padding:16px 18px;font-size:.95rem;display:none}
.q-why.show{display:block}
.q-why strong{color:var(--amber)}
.q-nav{display:flex;justify-content:space-between;align-items:center;margin-top:26px;gap:12px;flex-wrap:wrap}
.q-hint{font-size:.85rem;color:var(--chalk-dim)}

/* flashcards */
.deck-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;margin-bottom:8px}
.deck{background:var(--slate-2);border:1px solid var(--chalk-line);border-radius:var(--radius);padding:22px;cursor:pointer;transition:border-color .15s,transform .12s;text-align:left;color:var(--white);font-family:inherit;width:100%}
.deck:hover{border-color:var(--amber);transform:translateY(-2px)}
.deck h3{font-family:var(--font-display);font-weight:600;margin-bottom:6px}
.deck p{font-size:.88rem;color:var(--chalk-dim)}
.deck .cnt{font-size:.78rem;font-weight:700;color:var(--amber);text-transform:uppercase;letter-spacing:.08em}
.fcard{perspective:1200px;max-width:560px;margin:0 auto 22px;cursor:pointer}
.fcard-inner{position:relative;min-height:300px;transform-style:preserve-3d;transition:transform .5s}
.fcard.flipped .fcard-inner{transform:rotateY(180deg)}
.fface{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  background:var(--slate-2);border:1px solid var(--chalk-line);border-radius:24px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;padding:36px;text-align:center}
.fface.back{transform:rotateY(180deg);background:var(--slate-3)}
.fface .flabel{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.14em;color:var(--amber);margin-bottom:14px}
.fface .ftext{font-family:var(--font-display);font-weight:600;font-size:1.3rem;line-height:1.45}
.fface.back .ftext{font-family:var(--font-body);font-size:1.02rem;font-weight:400;color:var(--white)}
.fcard-nav{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;align-items:center}
.fprog{font-size:.88rem;color:var(--chalk-dim);font-weight:600}

/* lessons */
.lesson-list{display:grid;gap:14px}
.lesson-row{display:flex;gap:18px;align-items:center;background:var(--slate-2);border:1px solid var(--chalk-line);
  border-radius:var(--radius);padding:20px 24px;text-decoration:none;color:var(--white);transition:border-color .15s}
.lesson-row:hover{border-color:var(--amber)}
.lesson-row .lnum{flex:none;width:44px;height:44px;border-radius:16px;background:var(--slate-3);border:1px solid var(--chalk-line);
  display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--amber);font-size:1.1rem}
.lesson-row.done .lnum{background:var(--green);color:var(--ink);border-color:var(--green)}
.lesson-row h3{font-family:var(--font-display);font-weight:600;margin-bottom:2px}
.lesson-row p{font-size:.88rem;color:var(--chalk-dim);margin:0}
.mode-tabs{display:flex;gap:10px;margin:0 0 24px;flex-wrap:wrap}
.mode-tab{padding:10px 22px;border-radius:99px;border:1px solid var(--chalk-line);background:var(--slate-2);color:var(--chalk-dim);
  font-weight:700;font-size:.92rem;cursor:pointer;font-family:inherit}
.mode-tab.on{background:var(--amber);color:var(--ink);border-color:var(--amber)}
.mode-tab:disabled{opacity:.4;cursor:not-allowed}
.lesson-body{font-size:1.02rem}
.lesson-body p{margin-bottom:16px}
.lesson-body ul{margin:0 0 16px 22px}
.lesson-body li{margin-bottom:8px}
.lesson-body strong{color:var(--white)}
.coming{background:var(--slate-2);border:1px dashed var(--chalk-line);border-radius:var(--radius);padding:36px;text-align:center;color:var(--chalk-dim)}
/* dated content-status note (copy-honesty: TX state-law expert review) */
.content-note{font-size:.9rem;color:var(--chalk-dim);border-left:3px dashed var(--amber);
  background:rgba(255,184,48,.05);border-radius:0 10px 10px 0;padding:12px 18px;margin:0 0 30px;max-width:700px}
.content-note strong{color:var(--amber)}

/* results */
.score-hero{text-align:center;padding:20px 0 8px}
.score-hero .n{font-family:var(--font-display);font-weight:600;font-size:3.4rem}
.score-hero .n small{font-family:var(--font-body);font-size:1.4rem;color:var(--chalk-dim)}
.cta-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}
.note{font-size:.85rem;color:var(--chalk-dim);margin-top:18px}
.kv{display:flex;gap:10px;align-items:baseline;padding:8px 0;border-bottom:1px dashed var(--chalk-line);font-size:.92rem}
.kv:last-child{border:none}
.kv b{color:var(--white)}
footer.app-foot{border-top:1px solid var(--chalk-line);padding:28px 0;color:var(--chalk-dim);font-size:.85rem}
footer.app-foot a{color:var(--amber);text-decoration:none}

/* product preview banner */
.preview-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;background:rgba(255,184,48,.07);
  border:1px dashed var(--amber);border-radius:16px;padding:12px 18px;margin-bottom:24px;font-size:.88rem;color:var(--chalk-dim)}
.preview-banner strong{color:var(--white)}
.preview-badge{flex:none;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;
  background:var(--amber);color:var(--ink);border-radius:99px;padding:4px 12px}
.preview-banner a{color:var(--amber);font-weight:700;text-decoration:none}

/* review screen */
.review-item{background:var(--slate-2);border:1px solid var(--chalk-line);border-radius:16px;padding:16px 18px;margin-bottom:12px}
.review-item .q-stem{font-size:1.02rem;margin:6px 0 10px}
.review-item .you{font-size:.88rem;margin-bottom:4px}
.review-item .you.ok{color:var(--green);font-weight:700}
.review-item .you.miss{color:var(--red);font-weight:700}
.review-item .why-mini{font-size:.88rem;color:var(--chalk-dim);margin-top:8px}
.review-item .why-mini strong{color:var(--amber)}
.timer-chip{font-variant-numeric:tabular-nums;background:var(--slate-3);border:1px solid var(--chalk-line);
  border-radius:99px;padding:4px 14px;font-size:.82rem;font-weight:700;color:var(--white)}
.timer-opt{display:flex;align-items:center;gap:10px;justify-content:center;margin:16px 0;color:var(--chalk-dim);font-size:.92rem}
.timer-opt input{width:18px;height:18px;accent-color:var(--amber)}

/* lesson track outline */
.outline-module{margin-top:28px}
.outline-module h2{font-size:1.2rem;margin-bottom:4px}
.outline-module .mod-note{font-size:.88rem;color:var(--chalk-dim);margin-bottom:12px}
.outline-module .mod-note a{color:var(--amber);font-weight:700;text-decoration:none}
.outline-row{display:flex;gap:14px;align-items:center;background:var(--slate-2);border:1px dashed var(--chalk-line);
  border-radius:16px;padding:14px 18px;margin-bottom:10px;opacity:.75}
.outline-row .lnum{flex:none;width:36px;height:36px;border-radius:8px;background:var(--slate-3);
  display:flex;align-items:center;justify-content:center;font-weight:800;color:var(--chalk-dim);font-size:.95rem}
.outline-row h3{font-family:var(--font-display);font-weight:600;font-size:.98rem;margin:0}
.outline-row p{font-size:.82rem;color:var(--chalk-dim);margin:2px 0 0}
.soon-pill{flex:none;font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em;
  color:var(--amber);border:1px solid var(--amber);border-radius:99px;padding:3px 10px;margin-left:auto;white-space:nowrap}
a.soon-pill{text-decoration:none}
a.soon-pill:hover{background:rgba(255,184,48,.1)}

/* missed-topics smart deck */
.deck.smart{border:1px solid var(--amber);background:rgba(255,184,48,.05)}
.deck.smart .cnt{color:var(--amber)}
.miss-note{font-size:.85rem;color:var(--chalk-dim);margin-top:10px}

/* small screens — 390px phones */
@media(max-width:600px){
  .brand-text{display:none}
  .nav-links{gap:14px}
  .nav-links a{font-size:.82rem}
}
@media(max-width:480px){
  .wrap{padding:0 20px}
  section{padding:44px 0}
  .card{padding:22px}
  .score-hero .n{font-size:2.8rem}
  .fcard-inner{min-height:280px}
  .fface{padding:28px 22px}
  .fface .ftext{font-size:1.15rem}
  .q-stem{font-size:1.1rem}
  .marginalia{font-size:1.2rem}
  .outline-row{padding:12px 14px}
  .q-opt{padding:13px 14px}
}
