
:root{
  --asphalt:#10132A; --asphalt-2:#171B3D; --panel:#1D2147; --panel-2:#262B5C;
  --paper:#F5F4FF; --paper-dim:#C7C9E8;
  --amber:#3D8BFF; --amber-dim:#2a6bd9; --amber-glow:rgba(61,139,255,.20);
  --steel:#00D9C0; --red:#FF4D6D; --green:#22D3A0; --coral:#FF5D8F;
  --line:rgba(244,243,255,.09); --line-2:rgba(244,243,255,.16);
  --display:'Oswald',sans-serif; --hero:'Bebas Neue',sans-serif; --body:'Inter',sans-serif; --mono:'IBM Plex Mono',monospace;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--asphalt);color:var(--paper);font-family:var(--body);-webkit-font-smoothing:antialiased;overflow-x:hidden;}
a{color:inherit;}
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-thumb{background:#333944;border-radius:8px;}
::-webkit-scrollbar-track{background:transparent;}
.btn{background:linear-gradient(135deg,var(--amber),#2f6fe0);color:#fff;border:none;padding:12px 22px;border-radius:9px;font-family:var(--body);font-weight:700;font-size:13.5px;cursor:pointer;letter-spacing:.2px;transition:transform .12s,box-shadow .12s;box-shadow:0 6px 18px -6px rgba(61,139,255,.55);}
.btn:hover{transform:translateY(-1px);box-shadow:0 10px 24px -6px rgba(61,139,255,.7);}
.btn:active{transform:translateY(0);}
.btn.ghost{background:transparent;border:1px solid var(--line-2);color:var(--paper);}
.btn.ghost:hover{border-color:#666d78;background:rgba(255,255,255,.03);}
.btn.block{width:100%;}
.btn.sm{padding:8px 14px;font-size:12px;}
.btn:disabled{opacity:.4;cursor:not-allowed;transform:none;}
input,select{font-family:var(--body);}

/* ============ AUTH ============ */
#authWrap{min-height:calc(100vh - 76px);display:flex;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden;}
#authWrap::before{content:"";position:absolute;inset:0;background:
  radial-gradient(650px 450px at 12% 15%, rgba(61,139,255,.20), transparent 60%),
  radial-gradient(700px 550px at 88% 85%, rgba(0,217,192,.18), transparent 60%),
  radial-gradient(500px 400px at 60% 30%, rgba(255,93,143,.10), transparent 65%);
  pointer-events:none;}
.auth-card{position:relative;width:100%;max-width:960px;background:var(--panel);border:1px solid var(--line);border-radius:20px;overflow:hidden;display:grid;grid-template-columns:1fr 1fr;min-height:560px;box-shadow:0 40px 90px -20px rgba(0,0,0,.65);}
@media(max-width:820px){.auth-card{grid-template-columns:1fr;}}
.auth-side{background:linear-gradient(160deg,#1c2154,#0e1030);padding:44px 38px;display:flex;flex-direction:column;justify-content:space-between;position:relative;}
.auth-side::after{content:"";position:absolute;inset:0;background-image:
  repeating-linear-gradient(115deg, rgba(61,139,255,.05) 0px, rgba(61,139,255,.05) 1px, transparent 1px, transparent 44px);}
.auth-side>*{position:relative;}
.auth-form{padding:44px 40px;display:flex;flex-direction:column;justify-content:center;}
.logo-row{display:flex;align-items:center;gap:12px;}
.logo-ring{width:42px;height:42px;border-radius:50%;position:relative;flex-shrink:0;}
.logo-ring img{position:absolute;inset:0;}
.logo-ring .deg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--hero);letter-spacing:.5px;color:var(--amber);font-size:13px;}
.logo-word{font-family:var(--hero);font-weight:400;font-size:26px;letter-spacing:.5px;}
.auth-headline{font-family:var(--display);font-weight:600;font-size:32px;line-height:1.25;margin:28px 0 14px;}
.auth-sub{color:#9aa0ab;font-size:14px;line-height:1.6;max-width:340px;}
.auth-features{margin-top:30px;display:flex;flex-direction:column;gap:14px;}
.auth-feature{display:flex;gap:12px;align-items:flex-start;font-size:13px;color:#c7cbd3;line-height:1.5;}
.auth-feature .dot{width:20px;height:20px;border-radius:6px;background:var(--amber-glow);color:var(--amber);display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0;margin-top:1px;}
.auth-quote{font-size:11.5px;color:#6b7078;font-family:var(--mono);letter-spacing:.3px;}
.form-title{font-family:var(--display);font-size:24px;font-weight:600;margin:0 0 6px;}
.form-sub{color:#9aa0ab;font-size:13.5px;margin:0 0 26px;}
.field{margin-bottom:16px;}
.field label{display:block;font-size:11px;font-weight:600;color:#8b909b;margin-bottom:7px;text-transform:uppercase;letter-spacing:.6px;font-family:var(--mono);}
.field input{width:100%;background:var(--asphalt);border:1px solid var(--line-2);border-radius:9px;color:var(--paper);padding:12px 14px;font-size:14px;}
.field input:focus{outline:none;border-color:var(--amber-dim);}
.auth-switch{margin-top:20px;font-size:13px;color:#9aa0ab;text-align:center;}
.auth-switch b{color:var(--amber);cursor:pointer;font-weight:600;}
.step-dots{display:flex;gap:6px;margin-bottom:20px;}
.step-dots span{height:4px;flex:1;border-radius:3px;background:var(--line-2);}
.step-dots span.on{background:var(--amber);}
.choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.choice-tile{border:1px solid var(--line-2);border-radius:10px;padding:13px 14px;cursor:pointer;font-size:13.5px;font-weight:600;transition:border-color .12s,background .12s;}
.choice-tile:hover{border-color:#565c66;}
.choice-tile.sel{border-color:var(--amber);background:var(--amber-glow);color:var(--amber);}
.chip-wrap{display:flex;flex-wrap:wrap;gap:8px;}
.chip-tile{border:1px solid var(--line-2);border-radius:20px;padding:8px 14px;cursor:pointer;font-size:12.5px;font-weight:600;}
.chip-tile.sel{border-color:var(--amber);background:var(--amber-glow);color:var(--amber);}

/* ============ APP SHELL ============ */
#appShell{display:block;min-height:100vh;}
.sidebar{width:236px;background:var(--asphalt-2);border-right:1px solid var(--line);flex-shrink:0;display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;}
.sb-brand{padding:22px 20px 18px;display:flex;align-items:center;gap:11px;border-bottom:1px solid var(--line);}
.sb-word{font-family:var(--display);font-weight:600;font-size:17px;}
.sb-tag{font-family:var(--mono);font-size:9.5px;color:#6b7078;letter-spacing:1px;text-transform:uppercase;margin-top:1px;}
.sb-group-label{font-family:var(--mono);font-size:10px;color:#565c66;text-transform:uppercase;letter-spacing:1.2px;padding:16px 20px 6px;}
.sb-nav{padding:0 10px;overflow-y:auto;}
.sb-item{display:flex;align-items:center;gap:11px;padding:10px 12px;border-radius:9px;color:#8b909b;font-size:13.5px;font-weight:600;cursor:pointer;margin-bottom:2px;position:relative;transition:background .12s,color .12s;}
.sb-item:hover{color:var(--paper);background:rgba(255,255,255,.03);}
.sb-item.active{color:var(--paper);background:var(--panel-2);}
.sb-item.active::before{content:"";position:absolute;left:-10px;top:8px;bottom:8px;width:3px;background:var(--amber);border-radius:3px;}
.sb-icon{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;flex-shrink:0;opacity:.85;font-size:15px;line-height:1;}
.sb-badge{margin-left:auto;background:var(--red);color:#fff;font-size:10px;font-weight:700;padding:1px 6px;border-radius:20px;font-family:var(--mono);}
.sb-foot{margin-top:auto;padding:16px 20px;border-top:1px solid var(--line);}
.sb-user{display:flex;align-items:center;gap:10px;cursor:pointer;}
.sb-avatar{width:32px;height:32px;border-radius:50%;background:linear-gradient(155deg,var(--steel),#12324a);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:13px;font-weight:600;flex-shrink:0;}
.sb-uname{font-size:12.5px;font-weight:600;}
.sb-uplan{font-size:10.5px;color:#6b7078;font-family:var(--mono);}

.main-col{margin-left:236px;min-height:100vh;display:flex;flex-direction:column;}
.topbar{height:64px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;background:rgba(20,23,28,.88);backdrop-filter:blur(8px);z-index:10;}
.search-box{display:flex;align-items:center;gap:9px;background:var(--panel);border:1px solid var(--line);border-radius:9px;padding:8px 13px;width:280px;}
.search-box span{width:15px;height:15px;color:#6b7078;flex-shrink:0;}
.search-box input{background:none;border:none;color:var(--paper);font-size:13px;width:100%;}
.search-box input:focus{outline:none;}
.top-right{display:flex;align-items:center;gap:16px;}
.streak-pill{font-family:var(--mono);font-size:12.5px;color:var(--amber);display:flex;align-items:center;gap:6px;}
.bell-btn{position:relative;width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#9aa0ab;}
.bell-btn:hover{background:var(--panel);color:var(--paper);}
.bell-btn span{width:18px;height:18px;}
.bell-dot{position:absolute;top:7px;right:8px;width:8px;height:8px;border-radius:50%;background:var(--red);border:2px solid var(--asphalt);}

main{flex:1;padding:30px 34px 70px;max-width:1180px;width:100%;}
.screen{display:none;}
.screen.active{display:block;animation:sc .22s ease;}
@keyframes sc{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
h1{font-family:var(--display);font-weight:600;font-size:26px;margin:0 0 4px;}
h2{font-family:var(--display);font-weight:600;font-size:19px;margin:0 0 4px;}
.lede{color:#9aa0ab;font-size:13.5px;margin:0 0 22px;line-height:1.5;}
.crumbs{display:flex;align-items:center;gap:6px;font-size:12px;color:#6b7078;margin-bottom:14px;font-family:var(--mono);}
.crumbs span.cur{color:var(--paper-dim);}
.crumbs .cl{cursor:pointer;}
.crumbs .cl:hover{color:var(--amber);}

.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px;}
.grid2{display:grid;grid-template-columns:280px 1fr;gap:22px;}
@media(max-width:840px){.grid2{grid-template-columns:1fr;}}

/* gauge */
.gauge-wrap{position:relative;width:190px;height:132px;margin:6px auto 0;}
.gauge-readout{position:absolute;bottom:2px;left:0;right:0;text-align:center;font-family:var(--mono);}
.gauge-num{font-size:30px;font-weight:600;}
.gauge-unit{font-size:10px;color:#8b909b;letter-spacing:1px;}
.weak-item{margin-bottom:12px;}
.weak-top{display:flex;justify-content:space-between;font-size:12px;color:#c7cbd3;margin-bottom:4px;}
.bar-track{height:6px;border-radius:4px;background:#2a2f5c;overflow:hidden;}
.bar-fill{height:100%;border-radius:4px;transition:width .6s ease;}

/* continue card list */
.item-row{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:15px 17px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;margin-bottom:10px;transition:border-color .12s;}
.item-row:hover{border-color:#454b56;}
.item-main{display:flex;align-items:center;gap:13px;min-width:0;}
.item-icon{width:38px;height:38px;border-radius:9px;background:var(--asphalt);display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--line);font-size:16px;}
.item-name{font-weight:600;font-size:14px;}
.item-meta{font-size:11.5px;color:#7a8090;margin-top:2px;font-family:var(--mono);}
.item-pct{font-family:var(--mono);font-size:12.5px;font-weight:600;flex-shrink:0;margin-left:10px;}
.tag-pill{display:inline-block;background:var(--amber-glow);color:var(--amber);font-family:var(--mono);font-size:9.5px;letter-spacing:.8px;text-transform:uppercase;padding:3px 8px;border-radius:20px;border:1px solid rgba(242,169,59,.3);margin-bottom:12px;}

/* curriculum */
.mod-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(255px,1fr));gap:16px;}
.employer-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;transition:border-color .12s;}
.employer-card:hover{border-color:#4a5058;}
.employer-name{font-family:var(--display);font-size:16.5px;font-weight:600;margin-bottom:2px;}
.employer-meta{display:flex;gap:10px;flex-wrap:wrap;font-size:11px;color:#8b909b;font-family:var(--mono);margin-bottom:12px;}
.employer-meta span{background:var(--asphalt);border:1px solid var(--line);border-radius:6px;padding:3px 8px;}
.employer-fit{font-size:12px;color:var(--steel);background:rgba(76,122,148,.12);border:1px solid rgba(76,122,148,.3);border-radius:8px;padding:8px 11px;margin-bottom:14px;line-height:1.4;}
.mod-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:0;cursor:pointer;transition:border-color .12s,transform .12s;position:relative;overflow:hidden;}
.mod-card-body{padding:16px 20px 20px;}
.mod-card .img-ph{border-radius:0;border:none;border-bottom:1px solid var(--line);}
.mod-card:hover{border-color:#4a5058;transform:translateY(-2px);}
.mod-card.locked{opacity:.55;cursor:default;}
.mod-card.locked:hover{transform:none;}
.mod-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:12px;}
.mod-icon{width:42px;height:42px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:19px;background:var(--asphalt);border:1px solid var(--line);}
.mod-name{font-family:var(--display);font-size:16.5px;font-weight:600;margin:2px 0 4px;}
.mod-desc{font-size:12px;color:#8b909b;line-height:1.5;margin-bottom:14px;min-height:34px;}
.mod-foot{display:flex;justify-content:space-between;align-items:center;font-size:11.5px;font-family:var(--mono);color:#7a8090;}

/* lesson list */
.lesson-row{display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:11px;border:1px solid var(--line);margin-bottom:8px;cursor:pointer;background:var(--panel);}
.lesson-row:hover{border-color:#4a5058;}
.lesson-row.done{opacity:.75;}
.lesson-num{width:26px;height:26px;border-radius:50%;background:var(--asphalt);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;flex-shrink:0;}
.lesson-row.done .lesson-num{background:var(--green);border-color:var(--green);color:#0d1a14;}
.lesson-title{font-weight:600;font-size:13.5px;}
.lesson-sub{font-size:11px;color:#7a8090;margin-top:2px;}

/* lesson viewer */
.audio-bar{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 20px;display:flex;align-items:center;gap:16px;margin-bottom:24px;}
.play-btn{width:44px;height:44px;border-radius:50%;background:var(--amber);color:#ffffff;border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;}
.play-btn span{width:18px;height:18px;}
.audio-mid{flex:1;min-width:0;}
.audio-title{font-size:12.5px;font-weight:600;margin-bottom:6px;}
.audio-scrub{height:5px;border-radius:4px;background:#2a2f5c;position:relative;cursor:pointer;}
.audio-scrub-fill{height:100%;background:var(--amber);border-radius:4px;width:0%;}
.audio-time{font-family:var(--mono);font-size:10.5px;color:#7a8090;margin-top:6px;display:flex;justify-content:space-between;}
.audio-speed{font-family:var(--mono);font-size:11.5px;background:var(--asphalt);border:1px solid var(--line-2);border-radius:7px;padding:6px 10px;cursor:pointer;flex-shrink:0;}
.lesson-section{margin-bottom:22px;padding:20px 22px;border-radius:13px;background:var(--panel);border:1px solid var(--line);transition:border-color .3s,background .3s;}
.lesson-section.reading{border-color:var(--amber-dim);background:linear-gradient(180deg,rgba(242,169,59,.05),transparent);}
.sec-kicker{font-family:var(--mono);font-size:10px;letter-spacing:1.2px;text-transform:uppercase;color:var(--steel);margin-bottom:8px;}
.sec-kicker.law{color:var(--red);}
.sec-kicker.tip{color:var(--green);}
.lesson-section p{font-size:14.5px;line-height:1.75;color:#dce0e6;margin:0;}
.key-term{background:rgba(76,122,148,.14);border:1px solid rgba(76,122,148,.35);border-radius:10px;padding:12px 15px;margin-top:12px;font-size:13px;color:#c7cbd3;}
.key-term b{color:var(--steel);}
.lesson-nav{display:flex;justify-content:space-between;align-items:center;margin-top:28px;padding-top:20px;border-top:1px solid var(--line);}

/* quiz */
.progress-track{height:5px;background:var(--panel-2);border-radius:4px;margin-bottom:26px;overflow:hidden;}
.progress-fill{height:100%;background:var(--amber);border-radius:4px;transition:width .3s ease;}
.q-eyebrow{font-family:var(--mono);font-size:11.5px;color:var(--steel);letter-spacing:1.3px;text-transform:uppercase;margin-bottom:10px;}
.q-text{font-size:18.5px;font-weight:600;line-height:1.5;margin-bottom:24px;}
.choice{display:flex;align-items:center;gap:13px;padding:14px 16px;border-radius:11px;background:var(--panel);border:1px solid var(--line);margin-bottom:10px;cursor:pointer;font-size:14px;transition:all .12s;}
.choice:hover{border-color:#4a5058;}
.choice-letter{width:26px;height:26px;border-radius:7px;background:var(--asphalt);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;flex-shrink:0;}
.choice.correct{border-color:var(--green);background:rgba(76,140,107,.14);}
.choice.correct .choice-letter{background:var(--green);color:#0d1a14;border-color:var(--green);}
.choice.incorrect{border-color:var(--red);background:rgba(192,80,63,.14);}
.choice.incorrect .choice-letter{background:var(--red);color:#2a0d09;border-color:var(--red);}
.explain{margin-top:18px;padding:16px 18px;border-radius:11px;background:var(--panel);border-left:3px solid var(--steel);font-size:13.5px;line-height:1.65;color:#c7cbd3;display:none;}
.explain.show{display:block;}
.explain b{color:var(--paper);}

/* results */
.score-hero{text-align:center;padding:36px 20px 26px;}
.score-ring{width:150px;height:150px;margin:0 auto 18px;position:relative;}
.css-ring{width:150px;height:150px;border-radius:50%;
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 12px),#000 calc(100% - 12px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 12px),#000 calc(100% - 12px));}
.score-num{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;}
.score-num .n{font-family:var(--display);font-size:38px;font-weight:600;}
.score-num .l{font-family:var(--mono);font-size:10px;color:#8b909b;letter-spacing:1px;}
.result-topics{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:8px;}
.rt-card{background:var(--panel);border:1px solid var(--line);border-radius:11px;padding:14px 16px;}
.rt-top{display:flex;justify-content:space-between;font-size:12.5px;margin-bottom:8px;}

/* pretrip */
.pretrip-shell{background:var(--panel);border:1px solid var(--line);border-radius:16px;overflow:hidden;}
.pretrip-head{padding:20px 24px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;}
.zone-chip{font-family:var(--mono);font-size:11px;letter-spacing:1px;text-transform:uppercase;color:var(--steel);border:1px solid rgba(76,122,148,.4);background:rgba(76,122,148,.1);padding:4px 10px;border-radius:20px;}
.pretrip-count{font-family:var(--mono);font-size:12px;color:#8b909b;}
.pretrip-count b{color:var(--amber);}
.pretrip-body{padding:26px 24px;}
.component-name{font-family:var(--display);font-size:23px;font-weight:600;margin:0 0 8px;}
.component-prompt{color:#a7acb6;font-size:13.5px;margin-bottom:16px;line-height:1.6;}
textarea{width:100%;min-height:90px;background:var(--asphalt);border:1px solid var(--line-2);border-radius:11px;color:var(--paper);font-family:var(--body);font-size:13.5px;padding:13px;resize:vertical;line-height:1.55;}
textarea:focus{outline:none;border-color:var(--amber-dim);}
.pretrip-actions{display:flex;justify-content:space-between;align-items:center;margin-top:16px;flex-wrap:wrap;gap:10px;}
.talking-points{margin-top:14px;padding:13px 15px;background:var(--asphalt);border-radius:10px;border:1px dashed var(--line-2);font-size:12px;color:#9aa0ab;line-height:1.7;display:none;}
.talking-points.show{display:block;}
.sequence-dots{display:flex;gap:5px;padding:14px 24px;border-top:1px solid var(--line);flex-wrap:wrap;}
.dot{width:7px;height:7px;border-radius:50%;background:var(--line-2);}
.dot.done{background:var(--green);}
.dot.now{background:var(--amber);width:9px;height:9px;}

/* scenarios */
.scen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:16px;}
.scen-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:0;overflow:hidden;cursor:pointer;transition:border-color .12s,transform .12s;}
.scen-card-body{padding:16px 20px 20px;}
.scen-card .img-ph{border-radius:0;border:none;border-bottom:1px solid var(--line);}
.scen-card:hover{border-color:#4a5058;transform:translateY(-2px);}
.scen-card.soon{opacity:.5;cursor:default;}
.scen-card.soon:hover{transform:none;}
.scen-icon{width:42px;height:42px;border-radius:10px;background:var(--asphalt);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:19px;margin-bottom:12px;}
.scen-name{font-family:var(--display);font-size:16px;font-weight:600;margin-bottom:6px;}
.scen-desc{font-size:12px;color:#8b909b;line-height:1.5;}
.scenario-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px;}
.scenario-tag{font-family:var(--mono);font-size:11px;color:var(--red);text-transform:uppercase;letter-spacing:1.4px;margin-bottom:12px;}
.scenario-text{font-size:15.5px;line-height:1.75;color:#dfe2e7;margin-bottom:24px;}
.scenario-choices{display:flex;flex-direction:column;gap:10px;}
.scenario-choice{padding:15px 17px;border-radius:11px;background:var(--asphalt);border:1px solid var(--line-2);cursor:pointer;font-size:14px;transition:border-color .12s;line-height:1.5;}
.scenario-choice:hover{border-color:var(--amber-dim);}
.scenario-outcome{margin-top:22px;padding:18px 20px;border-radius:11px;font-size:14px;line-height:1.65;}
.scenario-outcome.good{background:rgba(76,140,107,.14);border-left:3px solid var(--green);}
.scenario-outcome.bad{background:rgba(192,80,63,.14);border-left:3px solid var(--red);}
.scenario-outcome.mid{background:rgba(242,169,59,.14);border-left:3px solid var(--amber);}
.scenario-progress{display:flex;gap:6px;margin-bottom:18px;}
.scenario-progress span{flex:1;height:4px;border-radius:3px;background:var(--panel-2);}
.scenario-progress span.on{background:var(--red);}

/* exam */
.exam-banner{background:linear-gradient(135deg,#1c2154,#12142f);border:1px solid rgba(61,139,255,.35);border-radius:14px;padding:24px 26px;margin-bottom:22px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px;}
.exam-timer{font-family:var(--mono);font-size:22px;font-weight:600;color:var(--amber);}
.exam-timer-label{font-size:10px;color:#8b909b;letter-spacing:1px;text-transform:uppercase;font-family:var(--mono);}

/* messages */
.msg-shell{display:grid;grid-template-columns:340px 1fr;border:1px solid var(--line);border-radius:14px;overflow:hidden;min-height:520px;}
@media(max-width:840px){.msg-shell{grid-template-columns:1fr;}}
.msg-list{background:var(--panel);border-right:1px solid var(--line);overflow-y:auto;max-height:640px;}
.msg-item{padding:15px 18px;border-bottom:1px solid var(--line);cursor:pointer;position:relative;}
.msg-item:hover{background:var(--panel-2);}
.msg-item.active{background:var(--panel-2);}
.msg-item.unread::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--amber);}
.msg-item-top{display:flex;justify-content:space-between;gap:8px;margin-bottom:4px;}
.msg-from{font-weight:600;font-size:13px;}
.msg-item.unread .msg-from{color:var(--paper);}
.msg-time{font-size:10.5px;color:#6b7078;font-family:var(--mono);flex-shrink:0;}
.msg-subject{font-size:12.5px;color:#c7cbd3;margin-bottom:3px;}
.msg-preview{font-size:11.5px;color:#7a8090;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.msg-detail{background:var(--asphalt-2);padding:28px 32px;overflow-y:auto;max-height:640px;}
.msg-detail-head{border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:20px;}
.bubble{max-width:80%;padding:13px 16px;border-radius:13px;font-size:13.5px;line-height:1.6;margin-bottom:12px;}
.bubble.them{background:var(--panel);border:1px solid var(--line);border-bottom-left-radius:3px;}
.bubble.me{background:var(--amber-glow);border:1px solid rgba(242,169,59,.3);border-bottom-right-radius:3px;margin-left:auto;}
.stat-row{display:flex;gap:14px;flex-wrap:wrap;margin:16px 0;}
.stat-box{background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 16px;flex:1;min-width:110px;text-align:center;}
.stat-box .n{font-family:var(--display);font-size:22px;font-weight:600;color:var(--amber);}
.stat-box .l{font-size:10.5px;color:#8b909b;margin-top:2px;}

/* achievements */
.xp-card{display:flex;align-items:center;gap:24px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:22px 26px;margin-bottom:24px;flex-wrap:wrap;}
.xp-level{width:64px;height:64px;border-radius:50%;background:conic-gradient(var(--amber) 0% 68%, #2a2f5c 68% 100%);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.xp-level-inner{width:52px;height:52px;border-radius:50%;background:var(--panel);display:flex;flex-direction:column;align-items:center;justify-content:center;}
.xp-level-inner .n{font-family:var(--display);font-weight:600;font-size:16px;}
.xp-level-inner .l{font-size:8px;color:#8b909b;}
.streak-cal{display:flex;gap:6px;margin-top:8px;}
.cal-day{width:30px;height:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:10px;font-family:var(--mono);background:var(--panel-2);color:#6b7078;}
.cal-day.on{background:var(--amber);color:#ffffff;font-weight:700;}
.badge-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;}
.badge-tile{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px 14px;text-align:center;}
.badge-tile.locked{opacity:.4;}
.badge-emoji{font-size:30px;margin-bottom:10px;}
.badge-name{font-size:12px;font-weight:600;margin-bottom:3px;}
.badge-desc{font-size:10.5px;color:#7a8090;line-height:1.4;}

/* profile */
.prof-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;}
@media(max-width:840px){.prof-grid{grid-template-columns:1fr;}}
.prof-avatar-row{display:flex;align-items:center;gap:16px;margin-bottom:22px;}
.prof-avatar{width:64px;height:64px;border-radius:50%;background:linear-gradient(155deg,var(--steel),#12324a);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:22px;font-weight:600;}
.toggle-row{display:flex;justify-content:space-between;align-items:center;padding:13px 0;border-bottom:1px solid var(--line);}
.toggle-row:last-child{border-bottom:none;}
.toggle{width:40px;height:22px;border-radius:20px;background:#2a2f5c;position:relative;cursor:pointer;flex-shrink:0;}
.toggle.on{background:var(--amber);}
.toggle-dot{width:16px;height:16px;border-radius:50%;background:#fff;position:absolute;top:3px;left:3px;transition:left .15s;}
.toggle.on .toggle-dot{left:21px;}
.plan-card{background:linear-gradient(135deg,#1c2154,#12142f);border:1px solid rgba(61,139,255,.35);border-radius:14px;padding:20px 22px;}

/* ============ IMAGE PLACEHOLDERS ============ */
.img-ph{position:relative;border-radius:14px;overflow:hidden;display:flex;align-items:flex-end;border:1px solid var(--line-2);isolation:isolate;}
.img-ph .ph-art{position:absolute;inset:0;width:100%;height:100%;}
.img-ph::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,10,26,0) 40%,rgba(8,10,26,.75) 100%);}
.img-ph-badge{position:absolute;top:10px;right:10px;z-index:2;background:rgba(8,10,26,.55);backdrop-filter:blur(6px);color:#fff;font-family:var(--mono);font-size:9.5px;letter-spacing:1px;padding:5px 9px 5px 7px;border-radius:20px;display:flex;align-items:center;gap:5px;border:1px solid rgba(255,255,255,.22);text-transform:uppercase;white-space:nowrap;}
.img-ph-badge span{width:12px;height:12px;flex-shrink:0;}
.img-ph-cap{position:relative;z-index:1;padding:12px 15px;width:100%;font-size:11.5px;color:#fff;font-weight:600;line-height:1.4;}
.img-ph-cap span{display:block;font-weight:400;font-size:10.5px;color:rgba(255,255,255,.65);margin-top:2px;font-family:var(--mono);letter-spacing:.2px;}
.img-ph.sm{min-height:96px;}
.img-ph.md{min-height:150px;}
.img-ph.lg{min-height:230px;}

/* ============ EMPLOYER PORTAL ============ */
.view-switch{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line);border-radius:20px;padding:4px;cursor:pointer;}
.view-switch-opt{padding:6px 13px;border-radius:16px;font-size:11.5px;font-weight:600;color:#7a8090;transition:all .15s;}
.view-switch-opt.on{background:var(--amber);color:#1a1408;}
.auth-emp-link{margin-top:22px;padding-top:18px;border-top:1px solid var(--line);text-align:center;font-size:12.5px;color:#7a8090;}
.auth-emp-link b{color:var(--steel);cursor:pointer;}
.emp-stat-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px;margin-bottom:26px;}
.emp-stat-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px 22px;}
.emp-stat-num{font-family:var(--display);font-size:32px;font-weight:600;color:var(--amber);}
.emp-stat-label{font-size:12px;color:#8b909b;margin-top:4px;}
.cand-toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:center;margin-bottom:18px;}
.cand-toolbar select{background:var(--panel);border:1px solid var(--line-2);color:var(--paper);border-radius:9px;padding:9px 13px;font-size:12.5px;font-family:var(--body);}
.cand-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;}
.cand-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px;cursor:pointer;transition:border-color .12s;}
.cand-card:hover{border-color:#4a5058;}
.cand-top{display:flex;gap:13px;align-items:center;margin-bottom:14px;}
.cand-avatar{width:46px;height:46px;border-radius:50%;background:linear-gradient(155deg,var(--steel),#12324a);display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:16px;font-weight:600;flex-shrink:0;}
.cand-name{font-weight:600;font-size:14.5px;}
.cand-loc{font-size:11px;color:#7a8090;margin-top:1px;}
.cand-score-ring{width:44px;height:44px;margin-left:auto;position:relative;flex-shrink:0;}
.css-ring-cand{width:44px;height:44px;border-radius:50%;
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 4px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 4px));}
.cand-score-num{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:12px;font-weight:600;}
.cand-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
.cand-tag{font-family:var(--mono);font-size:9.5px;letter-spacing:.5px;text-transform:uppercase;background:rgba(76,122,148,.14);color:var(--steel);border:1px solid rgba(76,122,148,.3);border-radius:20px;padding:3px 9px;}
.cand-tag.hazmat{background:rgba(242,169,59,.14);color:var(--amber);border-color:rgba(242,169,59,.3);}
.post-form{max-width:640px;}
.post-form label{display:block;font-size:11px;font-weight:600;color:#8b909b;margin-bottom:7px;margin-top:16px;text-transform:uppercase;letter-spacing:.6px;font-family:var(--mono);}
.post-form label:first-child{margin-top:0;}
.post-form input,.post-form select,.post-form textarea{width:100%;background:var(--asphalt);border:1px solid var(--line-2);border-radius:9px;color:var(--paper);padding:12px 14px;font-size:13.5px;font-family:var(--body);}
.post-form textarea{min-height:80px;resize:vertical;}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;}
.chip-check{border:1px solid var(--line-2);border-radius:20px;padding:8px 14px;font-size:12px;font-weight:600;cursor:pointer;}
.chip-check.on{border-color:var(--amber);background:var(--amber-glow);color:var(--amber);}
.posting-row{display:flex;justify-content:space-between;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:15px 18px;margin-bottom:10px;}
.posting-status{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.5px;padding:3px 9px;border-radius:20px;background:rgba(76,140,107,.16);color:var(--green);}
.pipe-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:20px 22px;margin-bottom:14px;}
.pipe-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;flex-wrap:wrap;gap:10px;}
.pipe-checklist{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;}
.pipe-item{display:flex;align-items:center;gap:9px;background:var(--asphalt);border:1px solid var(--line);border-radius:9px;padding:10px 12px;}
.pipe-stamp{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;}
.pipe-stamp.done{background:rgba(76,140,107,.18);color:var(--green);}
.pipe-stamp.pending{background:rgba(242,169,59,.18);color:var(--amber);}
.pipe-item-text{font-size:11.5px;}
.pipe-item-text .l{font-size:9.5px;color:#7a8090;text-transform:uppercase;letter-spacing:.4px;font-family:var(--mono);}

/* ============ MARKETING LANDING PAGE ============ */
.mkt-nav{display:flex;align-items:center;justify-content:space-between;padding:18px 40px;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(16,19,42,.92);backdrop-filter:blur(10px);z-index:50;}
.mkt-nav-brand{display:flex;align-items:center;gap:12px;font-family:var(--display);font-size:19px;font-weight:600;}
.mkt-nav-links{display:flex;align-items:center;}
.mkt-nav-links a{color:var(--paper-dim);text-decoration:none;font-size:14px;font-weight:500;margin-right:34px;}
.mkt-nav-links a:hover{color:var(--paper);}
.mkt-nav-right{display:flex;align-items:center;gap:18px;}
.mkt-nav-right a.signin{color:var(--paper-dim);text-decoration:none;font-size:14px;font-weight:600;}

.mkt-hero{max-width:1280px;margin:0 auto;padding:70px 40px 90px;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
.mkt-eyebrow{display:inline-flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--line-2);border-radius:20px;padding:7px 16px;font-size:11.5px;font-weight:700;letter-spacing:.5px;color:var(--steel);text-transform:uppercase;margin-bottom:22px;}
.mkt-eyebrow .pulse{width:7px;height:7px;border-radius:50%;background:var(--green);}
.mkt-h1{font-family:var(--display);font-size:52px;font-weight:600;line-height:1.12;margin-bottom:22px;}
.mkt-h1 .hl{color:var(--amber);}
.mkt-lede{font-size:16.5px;color:var(--paper-dim);line-height:1.7;max-width:520px;margin-bottom:32px;}
.mkt-cta-row{display:flex;gap:14px;margin-bottom:26px;flex-wrap:wrap;}
.mkt-cta-row .btn{padding:15px 26px;font-size:14.5px;}
.mkt-trust-row{display:flex;flex-wrap:wrap;}
.mkt-trust-item{display:flex;align-items:center;gap:7px;font-size:12.5px;color:var(--paper-dim);margin-right:26px;margin-bottom:8px;}
.mkt-trust-item span{width:15px;height:15px;color:var(--green);flex-shrink:0;}

.mkt-mockup{background:var(--panel);border:1px solid var(--line-2);border-radius:18px;padding:26px;position:relative;box-shadow:0 30px 80px -20px rgba(0,0,0,.5);}
.mkt-mockup-chip{position:absolute;background:var(--panel-2);border:1px solid var(--line-2);border-radius:10px;padding:9px 13px;font-size:11.5px;font-weight:600;display:flex;align-items:center;gap:7px;box-shadow:0 10px 24px -8px rgba(0,0,0,.5);}

.mkt-section{max-width:1280px;margin:0 auto;padding:80px 40px;}
.mkt-section.narrow{max-width:980px;}
.mkt-section-label{color:var(--steel);font-size:12px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:12px;}
.mkt-section-title{font-family:var(--display);font-size:34px;font-weight:600;margin-bottom:16px;}
.mkt-section-sub{color:var(--paper-dim);font-size:15px;max-width:640px;line-height:1.7;}

.mkt-compare{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:44px;}
.mkt-compare-col{border-radius:16px;padding:30px;}
.mkt-compare-col.bad{background:var(--panel);border:1px solid var(--line);}
.mkt-compare-col.good{background:linear-gradient(160deg,rgba(61,139,255,.14),rgba(61,139,255,.03));border:1px solid rgba(61,139,255,.35);}
.mkt-compare-h{font-family:var(--display);font-size:18px;font-weight:600;margin-bottom:18px;}
.mkt-compare-item{display:flex;align-items:flex-start;font-size:13.5px;color:var(--paper-dim);line-height:1.6;margin-bottom:14px;}
.mkt-compare-item span{margin-right:11px;}

.mkt-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px;}
.mkt-feature-card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:26px;}
.mkt-feature-icon{width:42px;height:42px;border-radius:11px;background:var(--amber-glow);display:flex;align-items:center;justify-content:center;color:var(--amber);margin-bottom:16px;}
.mkt-feature-title{font-family:var(--display);font-size:16.5px;font-weight:600;margin-bottom:9px;}
.mkt-feature-desc{font-size:13px;color:var(--paper-dim);line-height:1.6;}

.mkt-pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:44px;}
.mkt-price-card{background:var(--panel);border:1px solid var(--line-2);border-radius:16px;padding:32px 28px;position:relative;}
.mkt-price-card.featured{background:linear-gradient(160deg,var(--panel-2),var(--panel));border:1.5px solid var(--amber);}
.mkt-price-badge{position:absolute;top:-13px;left:28px;background:var(--amber);color:#fff;font-size:11px;font-weight:700;padding:5px 13px;border-radius:20px;letter-spacing:.3px;}
.mkt-price-name{font-family:var(--display);font-size:19px;font-weight:600;margin-bottom:8px;}
.mkt-price-desc{font-size:12.5px;color:var(--paper-dim);line-height:1.5;margin-bottom:20px;min-height:38px;}
.mkt-price-amount{font-family:var(--display);font-size:42px;font-weight:600;margin-bottom:4px;}
.mkt-price-amount .cents{font-size:20px;color:var(--paper-dim);}
.mkt-price-note{font-size:12px;color:var(--paper-dim);margin-bottom:24px;}
.mkt-price-features{margin-bottom:26px;}
.mkt-price-feature{display:flex;gap:9px;align-items:flex-start;font-size:13px;color:var(--paper-dim);margin-bottom:11px;}
.mkt-price-feature span{width:15px;height:15px;color:var(--green);flex-shrink:0;margin-top:1px;}

.mkt-final-cta{max-width:900px;margin:0 auto;padding:90px 40px;text-align:center;}
.mkt-final-cta .mkt-h1{font-size:38px;}
.mkt-footer{border-top:1px solid var(--line);padding:34px 40px;text-align:center;color:var(--paper-dim);font-size:12.5px;}

@media (max-width:900px){
  .mkt-hero{grid-template-columns:1fr;padding:50px 22px;}
  .mkt-nav{padding:16px 20px;}
  .mkt-nav-links{display:none;}
  .mkt-h1{font-size:36px;}
  .mkt-compare,.mkt-feature-grid,.mkt-pricing-grid{grid-template-columns:1fr;}
  .mkt-section{padding:60px 22px;}
}

/* ============ LESSON PAGE REDESIGN ============ */
.lesson-hero{border-radius:16px;overflow:hidden;margin-bottom:24px;position:relative;min-height:200px;display:flex;align-items:center;background:linear-gradient(135deg,#1c2154,#0e1030);border:1px solid var(--line-2);padding:36px 40px;}
.lesson-hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(500px 300px at 15% 20%, rgba(61,139,255,.28), transparent 60%),
  radial-gradient(450px 300px at 90% 85%, rgba(0,217,192,.22), transparent 60%);}
.lesson-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.lesson-hero-stat-wrap{position:relative;display:flex;align-items:baseline;gap:22px;flex-wrap:wrap;}
.lesson-hero-stat-num{font-family:var(--hero);font-size:76px;line-height:1;color:var(--paper);letter-spacing:.5px;}
.lesson-hero-stat-label{font-size:14.5px;color:var(--paper-dim);max-width:340px;line-height:1.5;}
.lesson-hero-tag{position:absolute;top:18px;right:20px;background:rgba(16,19,42,.6);backdrop-filter:blur(6px);border:1px solid var(--line-2);border-radius:8px;padding:5px 12px;font-size:10px;font-weight:700;letter-spacing:.5px;color:var(--paper-dim);text-transform:uppercase;}

/* Intro breaks from the card grid entirely — feels like the hero continuing */
.lsec-intro-bleed .lsec-body{font-size:17px;color:var(--paper);line-height:1.6;font-family:var(--body);font-weight:500;}

.lsec-highlight{display:inline-flex;flex-direction:column;background:var(--amber);color:#fff;border-radius:12px;padding:12px 20px;margin:14px 0;}
.lsec-highlight .hv{font-family:var(--hero);font-size:28px;line-height:1;}
.lsec-highlight .hl{font-size:11px;text-transform:uppercase;letter-spacing:.4px;opacity:.85;margin-top:3px;}

.lesson-progress{display:flex;gap:5px;margin:18px 0 26px;}
.lesson-progress-dot{height:4px;flex:1;background:var(--line-2);border-radius:3px;overflow:hidden;}
.lesson-progress-dot.done{background:var(--amber);}

.lsec{border-radius:14px;padding:22px 24px;margin-bottom:16px;position:relative;border:1px solid var(--line);background:var(--panel);}
.lsec-head{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.lsec-icon{width:30px;height:30px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.lsec-icon span{font-size:15px;line-height:1;}
.lsec-label{font-family:var(--display);font-size:13.5px;font-weight:600;letter-spacing:.3px;text-transform:uppercase;}
.lsec-body{font-size:14.5px;line-height:1.65;color:var(--paper-dim);}
.lsec .citation{margin-top:12px;font-size:11.5px;color:var(--paper-dim);opacity:.7;font-family:var(--mono);}

.lsec-introduction{background:linear-gradient(135deg,rgba(0,217,192,.10),var(--panel));border-color:rgba(0,217,192,.25);}
.lsec-introduction .lsec-icon{background:rgba(0,217,192,.18);color:var(--steel);}
.lsec-introduction .lsec-label{color:var(--steel);}
.lsec-introduction .lsec-body{font-size:15.5px;color:var(--paper);}

.lsec-concept .lsec-icon{background:var(--amber-glow);color:var(--amber);}
.lsec-concept .lsec-label{color:var(--amber);}

.lsec-definition .lsec-icon{background:rgba(255,93,143,.16);color:var(--coral);}
.lsec-definition .lsec-label{color:var(--coral);}

.lsec-law{background:var(--panel-2);border:1.5px solid var(--amber-dim);}
.lsec-law .lsec-icon{background:var(--amber);color:#fff;}
.lsec-law .lsec-label{color:var(--paper);}
.lsec-law .lsec-body{color:var(--paper);}

.lsec-example .lsec-icon{background:rgba(34,211,160,.16);color:var(--green);}
.lsec-example .lsec-label{color:var(--green);}

.lsec-warning{background:rgba(255,77,109,.08);border-color:rgba(255,77,109,.35);}
.lsec-warning .lsec-icon{background:rgba(255,77,109,.2);color:var(--red);}
.lsec-warning .lsec-label{color:var(--red);}
.lsec-warning .lsec-body{color:var(--paper);}

.lsec-summary{background:var(--panel-2);}
.lsec-summary .lsec-icon{background:rgba(244,243,255,.1);color:var(--paper);}
.lsec-summary .lsec-label{color:var(--paper);}

.lsec-statistic .lsec-icon{background:var(--amber-glow);color:var(--steel);}
.lsec-statistic .lsec-label{color:var(--steel);}

/* Prove step */
.prove-gate{border-radius:16px;padding:26px;margin:28px 0;background:linear-gradient(135deg,var(--panel-2),var(--panel));border:1px solid var(--line-2);}
.prove-eyebrow{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--steel);margin-bottom:8px;}
.prove-q{font-size:15.5px;font-weight:600;margin-bottom:16px;}
.prove-choice{display:block;width:100%;text-align:left;background:var(--panel);border:1px solid var(--line-2);border-radius:10px;padding:13px 16px;margin-bottom:9px;cursor:pointer;font-size:13.5px;color:var(--paper);font-family:var(--body);transition:border-color .12s;}
.prove-choice:hover{border-color:var(--amber-dim);}
.prove-choice.correct{border-color:var(--green);background:rgba(34,211,160,.1);}
.prove-choice.incorrect{border-color:var(--red);background:rgba(255,77,109,.1);}
.prove-feedback{margin-top:14px;padding:14px 16px;border-radius:10px;background:var(--panel);font-size:13px;color:var(--paper-dim);line-height:1.5;}

/* ============ LESSON STEP NAVIGATION ============ */
.lstep{display:none;}
.lstep.active{display:block;animation:stepIn .25s ease;}
@keyframes stepIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}

.step-counter{font-size:12.5px;color:var(--paper-dim);margin-bottom:10px;font-family:var(--mono);}
.lesson-progress-dot{cursor:default;}
.lesson-progress-dot.current{background:var(--steel);}

.step-nav{position:fixed;left:236px;right:0;bottom:0;background:rgba(23,27,61,.95);backdrop-filter:blur(10px);border-top:1px solid var(--line-2);z-index:40;box-shadow:0 -8px 24px rgba(0,0,0,.25);}
.step-nav-inner{max-width:1180px;padding:16px 34px;display:flex;justify-content:space-between;align-items:center;gap:14px;}
.step-nav .btn.ghost:disabled{opacity:.25;}
.step-nav-spacer{flex:1;}
.lesson-steps-wrap{padding-bottom:90px;}

.key-term-step .key-term{margin-bottom:12px;}

/* ============ CURRICULUM PAGE REDESIGN ============ */
.module-progress-head{display:flex;justify-content:space-between;align-items:baseline;margin:26px 0 8px;}
.module-progress-head .mp-name{font-family:var(--display);font-size:15px;font-weight:600;letter-spacing:.3px;}
.module-progress-head .mp-count{font-size:12.5px;color:var(--paper-dim);font-family:var(--mono);}
.module-progress-bar{height:6px;border-radius:4px;background:var(--line-2);overflow:hidden;margin-bottom:16px;}
.module-progress-fill{height:100%;background:linear-gradient(90deg,var(--steel),var(--green));border-radius:4px;transition:width .3s;}

.lesson-row{display:flex;align-items:center;gap:16px;padding:15px 18px;border-radius:12px;border:1px solid var(--line);margin-bottom:9px;cursor:pointer;background:var(--panel);text-decoration:none;transition:border-color .12s,transform .12s;}
.lesson-row:hover{border-color:var(--amber-dim);transform:translateX(2px);}
.lesson-row-badge{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:1.5px solid var(--line-2);background:var(--panel-2);}
.lesson-row-badge span{width:16px;height:16px;color:var(--paper-dim);}
.lesson-row.done .lesson-row-badge{background:var(--green);border-color:var(--green);}
.lesson-row.done .lesson-row-badge span{color:#0d1a14;}
.lesson-row-body{flex:1;min-width:0;}
.lesson-row-title{font-size:14.5px;font-weight:600;color:var(--paper);text-decoration:none;display:block;}
.lesson-row-time{font-size:11.5px;color:var(--paper-dim);font-family:var(--mono);margin-top:2px;}
.lesson-row-arrow{flex-shrink:0;opacity:.5;transition:opacity .12s,transform .12s;}
.lesson-row:hover .lesson-row-arrow{opacity:1;transform:translateX(2px);}

/* ============ SCENARIO PAGE ============ */
.scenario-setup{background:linear-gradient(135deg,#1c2154,#0e1030);border:1px solid var(--line-2);border-radius:16px;padding:28px 32px;margin-bottom:26px;}
.scenario-setup-eyebrow{font-family:var(--display);font-size:12px;font-weight:600;letter-spacing:1px;text-transform:uppercase;color:var(--steel);margin-bottom:10px;}
.scenario-setup-text{font-size:16.5px;line-height:1.6;color:var(--paper);}

.scenario-choice{display:block;width:100%;text-align:left;background:var(--panel);border:1.5px solid var(--line-2);border-radius:12px;padding:16px 20px;margin-bottom:11px;cursor:pointer;font-size:14.5px;color:var(--paper);font-family:var(--body);font-weight:500;transition:border-color .12s,transform .12s;}
.scenario-choice:hover{border-color:var(--amber-dim);transform:translateX(2px);}
.scenario-choice:disabled{cursor:default;}
.scenario-choice.picked-optimal{border-color:var(--green);background:rgba(34,211,160,.08);}
.scenario-choice.picked-suboptimal{border-color:#d4a72c;background:rgba(212,167,44,.08);}
.scenario-choice.picked-unsafe{border-color:var(--red);background:rgba(255,77,109,.08);}

.scenario-outcome{border-radius:14px;padding:22px 24px;margin-top:18px;border:1.5px solid;}
.scenario-outcome.optimal{background:rgba(34,211,160,.1);border-color:var(--green);}
.scenario-outcome.suboptimal{background:rgba(212,167,44,.1);border-color:#d4a72c;}
.scenario-outcome.unsafe{background:rgba(255,77,109,.1);border-color:var(--red);}
.scenario-outcome-label{font-family:var(--display);font-size:13px;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:8px;}
.scenario-outcome.optimal .scenario-outcome-label{color:var(--green);}
.scenario-outcome.suboptimal .scenario-outcome-label{color:#d4a72c;}
.scenario-outcome.unsafe .scenario-outcome-label{color:var(--red);}
.scenario-outcome-text{font-size:14px;line-height:1.6;color:var(--paper);}

/* ============ CURRICULUM ACCORDION ============ */
.module-accordion{border:1px solid var(--line-2);border-radius:14px;margin:14px 0;overflow:hidden;background:var(--panel);}
.module-accordion-header{display:flex;align-items:center;gap:14px;padding:18px 20px;cursor:pointer;user-select:none;}
.module-accordion-header:hover{background:rgba(255,255,255,.02);}
.module-accordion-chevron{flex-shrink:0;transition:transform .2s;color:var(--paper-dim);}
.module-accordion.open .module-accordion-chevron{transform:rotate(90deg);}
.module-accordion-titles{flex:1;min-width:0;}
.module-accordion-name{font-family:var(--display);font-size:16px;font-weight:600;letter-spacing:.2px;}
.module-accordion-count{font-size:12px;color:var(--paper-dim);font-family:var(--mono);margin-top:2px;}
.module-accordion-progress-ring{flex-shrink:0;position:relative;width:40px;height:40px;}
.css-ring-small{width:40px;height:40px;border-radius:50%;
  -webkit-mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 4px));
  mask:radial-gradient(farthest-side,transparent calc(100% - 4px),#000 calc(100% - 4px));}
.module-accordion-progress-ring .pct-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;font-family:var(--mono);}
.module-accordion-body{max-height:0;overflow:hidden;transition:max-height .3s ease;padding:0 20px;}
.module-accordion.open .module-accordion-body{padding:0 20px 18px;}
.module-accordion-body .lesson-list{margin:0;}
.module-accordion-body .lesson-row{margin-bottom:8px;}
.module-accordion-body .lesson-row:last-child{margin-bottom:0;}

/* ============================================================ */
/* RR360 Student Learning UX + Content Depth Directive 2026-09-18 */
/* Pre-Trip status / navigation / feedback + Scenario library/    */
/* debrief. Semantic classes only -- no inline light-on-light     */
/* feedback panels. --warn is a genuine amber, distinct from the  */
/* --amber token (which is actually product blue).                */
/* ============================================================ */
:root{ --warn:#F2A93B; --warn-dim:#c98a1f; }

/* ---- Pre-Trip: status badges ---- */
.pt-badge{display:inline-flex;align-items:center;gap:5px;font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;padding:3px 9px;border-radius:20px;border:1px solid var(--line-2);}
.pt-badge .pt-badge-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0;}
.pt-badge.not-started{color:var(--paper-dim);background:rgba(255,255,255,.04);}
.pt-badge.not-started .pt-badge-dot{background:#565c66;}
.pt-badge.needs-review{color:var(--warn);background:rgba(242,169,59,.12);border-color:var(--warn-dim);}
.pt-badge.needs-review .pt-badge-dot{background:var(--warn);}
.pt-badge.passed{color:var(--green);background:rgba(34,211,160,.12);border-color:var(--green);}
.pt-badge.passed .pt-badge-dot{background:var(--green);}

/* ---- Pre-Trip: progress header ---- */
.pt-progress-summary{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin:14px 0 20px;}
.pt-progress-text{font-size:13.5px;color:var(--paper-dim);}
.pt-progress-text b{color:var(--paper);font-weight:700;}
.pt-progress-bar{width:220px;max-width:100%;height:7px;border-radius:5px;background:var(--panel-2);overflow:hidden;}
.pt-progress-bar-fill{height:100%;background:linear-gradient(90deg,var(--green),var(--steel));border-radius:5px;}

/* ---- Pre-Trip: Federal-area sections ---- */
.pt-area-section{margin-bottom:22px;}
.pt-area-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:4px 2px 10px;border-bottom:1px solid var(--line);margin-bottom:12px;flex-wrap:wrap;}
.pt-area-name{font-family:var(--display);font-size:14.5px;font-weight:600;letter-spacing:.2px;}
.pt-area-count{font-family:var(--mono);font-size:11.5px;color:var(--paper-dim);}
.pt-chip-wrap{display:flex;flex-wrap:wrap;gap:10px;}

/* ---- Pre-Trip: component card ---- */
.pt-card{display:block;text-decoration:none;color:inherit;min-width:168px;max-width:220px;flex:1 1 168px;background:var(--panel);border:1.5px solid var(--line-2);border-radius:12px;padding:12px 14px;transition:border-color .12s,transform .12s;}
.pt-card:hover{border-color:var(--amber-dim);transform:translateY(-1px);}
.pt-card.pt-current{border-color:var(--amber);box-shadow:0 0 0 1px var(--amber) inset;}
.pt-card.pt-passed{border-color:rgba(34,211,160,.4);}
.pt-card.pt-needs-review{border-color:rgba(242,169,59,.4);}
.pt-card-name{font-size:13.5px;font-weight:700;margin-bottom:2px;line-height:1.3;}
.pt-card-zone{font-size:11px;color:var(--paper-dim);margin-bottom:8px;}
.pt-card-best{font-family:var(--mono);font-size:10.5px;color:var(--paper-dim);margin-top:6px;}

/* ---- Pre-Trip: activity header ---- */
.pt-activity-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;padding-bottom:14px;margin-bottom:16px;border-bottom:1px solid var(--line);font-size:12.5px;color:var(--paper-dim);}
.pt-activity-head .pt-area-tag{font-family:var(--mono);text-transform:uppercase;letter-spacing:.6px;color:var(--steel);}
.pt-activity-head .pt-comp-name{font-family:var(--display);font-size:17px;font-weight:600;color:var(--paper);letter-spacing:.2px;}
.pt-textmode-note{background:rgba(0,217,192,.08);border:1px solid rgba(0,217,192,.28);border-radius:10px;padding:12px 14px;font-size:12.5px;color:var(--paper-dim);margin-bottom:16px;line-height:1.55;}
.pt-textmode-note b{color:var(--steel);}

/* ---- Pre-Trip: step indicator ---- */
.pt-step-indicator{display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.pt-step-dots{display:flex;gap:5px;}
.pt-step-dots span{width:26px;height:4px;border-radius:3px;background:var(--panel-2);}
.pt-step-dots span.done{background:var(--steel);}
.pt-step-dots span.on{background:var(--amber);}
.pt-step-count{font-family:var(--mono);font-size:11px;color:var(--paper-dim);}
.pt-step-title{font-family:var(--display);font-size:16px;font-weight:600;margin:10px 0 12px;}

/* ---- Pre-Trip: answer choice ---- */
.pt-choice{border:1.5px solid var(--line-2);border-radius:10px;padding:13px 16px;margin-bottom:9px;cursor:pointer;font-size:14px;line-height:1.5;color:var(--paper);background:var(--asphalt);transition:border-color .12s;}
.pt-choice:hover{border-color:var(--amber-dim);}
.pt-choice.sel{border-color:var(--amber);background:var(--amber-glow);}
.pt-choice:focus-visible,.scenario-choice:focus-visible,.pt-card:focus-visible{outline:2px solid var(--steel);outline-offset:2px;}

/* ---- Pre-Trip: results panel ---- */
.pt-outcome-panel{border-radius:14px;padding:20px 22px;margin-bottom:18px;border:1.5px solid;}
.pt-outcome-panel.needs-review{background:rgba(242,169,59,.1);border-color:var(--warn);}
.pt-outcome-panel.passed{background:rgba(34,211,160,.1);border-color:var(--green);}
.pt-outcome-score{font-family:var(--display);font-size:22px;font-weight:700;margin-bottom:4px;}
.pt-outcome-panel.needs-review .pt-outcome-score{color:var(--warn);}
.pt-outcome-panel.passed .pt-outcome-score{color:var(--green);}
.pt-outcome-sub{font-size:13.5px;color:var(--paper-dim);}

.pt-result-row{border:1.5px solid var(--line-2);border-radius:10px;padding:14px 16px;margin-bottom:10px;background:var(--panel);}
.pt-result-row.correct{border-color:var(--green);}
.pt-result-row.incorrect{border-color:var(--red);}
.pt-result-head{display:flex;align-items:center;gap:8px;font-weight:700;font-size:13.5px;margin-bottom:8px;}
.pt-result-row.correct .pt-result-head{color:var(--green);}
.pt-result-row.incorrect .pt-result-head{color:var(--red);}
.pt-result-detail{font-size:13px;color:var(--paper-dim);line-height:1.6;}
.pt-result-detail b{color:var(--paper);font-weight:600;}
.pt-result-points{font-family:var(--mono);font-size:11px;color:var(--paper-dim);margin-top:6px;}
.pt-explain-block{background:var(--panel);border:1px solid var(--line-2);border-radius:10px;padding:14px 16px;margin-top:14px;font-size:13.5px;line-height:1.65;color:var(--paper-dim);}
.pt-explain-block b{color:var(--paper);}
.pt-next-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}

/* ---- Scenario library ---- */
.sc-lib-stats{font-family:var(--mono);font-size:12.5px;color:var(--paper-dim);margin:6px 0 18px;}
.sc-lib-stats b{color:var(--paper);}
.sc-filter-group{margin-bottom:12px;}
.sc-filter-label{font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:1px;color:#565c66;margin-bottom:7px;}
.sc-filter-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px;}
.sc-filter-chip{border:1px solid var(--line-2);border-radius:20px;padding:7px 14px;font-size:12.5px;font-weight:600;cursor:pointer;background:transparent;color:var(--paper-dim);}
.sc-filter-chip.active{border-color:var(--amber);background:var(--amber-glow);color:var(--amber);}
.sc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px;margin-top:6px;}
.sc-card{text-decoration:none;color:inherit;display:block;background:var(--panel);border:1.5px solid var(--line-2);border-radius:14px;padding:18px;transition:border-color .12s,transform .12s;}
.sc-card:hover{border-color:var(--amber-dim);transform:translateY(-1px);}
.sc-card-meta{font-family:var(--mono);font-size:11px;color:var(--paper-dim);margin-bottom:8px;display:flex;flex-wrap:wrap;gap:6px 8px;align-items:center;}
.sc-card-title{font-family:var(--display);font-size:15.5px;font-weight:600;margin:0 0 8px;line-height:1.3;}
.sc-card-preview{font-size:12.5px;color:var(--paper-dim);margin:0 0 10px;line-height:1.5;}
.sc-status-text{font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.3px;}
.sc-status-new{color:var(--steel);}
.sc-status-completed{color:var(--green);}
.sc-status-completed.low{color:var(--warn);}

/* ---- Shared visual asset slot media frames ----
   Used wherever a bound+approved visual_asset_slots asset may render
   (Pre-Trip component hero, Pre-Trip area overview, Scenario family
   thumbnail, and future Scenario Play / lesson hero slots). Directive
   section 13 / GUI-01: one shared media-frame treatment across pages,
   status never color-only, no broken-image state (a missing asset never
   reaches this frame -- render_visual_slot() returns the text fallback
   markup instead, which callers style on their own, e.g. .pt-textmode-note). */
.visual-slot-frame{position:relative;width:100%;overflow:hidden;border-radius:12px;border:1px solid var(--line-2);background:var(--panel-2);margin-bottom:14px;}
.visual-slot-4x3{aspect-ratio:4/3;}
.visual-slot-16x9{aspect-ratio:16/9;}
.visual-slot-img{display:block;width:100%;height:100%;object-fit:cover;}

/* ---- Scenario Library: optional family thumbnail on cards ---- */
.sc-card-thumb{width:100%;aspect-ratio:16/9;border-radius:10px;overflow:hidden;margin-bottom:12px;background:var(--panel-2);border:1px solid var(--line-2);}
.sc-card-thumb-img{display:block;width:100%;height:100%;object-fit:cover;}

/* ---- Scenario play: extra scaffolding around existing outcome classes ---- */
.sc-step-indicator{font-family:var(--mono);font-size:11px;color:var(--paper-dim);margin-bottom:10px;text-transform:uppercase;letter-spacing:.6px;}
.sc-decision-label{font-size:13px;color:var(--paper-dim);margin-bottom:6px;}
.sc-decision-label b{color:var(--paper);}

/* ---- Scenario terminal debrief ---- */
.sc-debrief-summary{font-family:var(--display);font-size:19px;font-weight:600;margin-bottom:6px;}
.sc-debrief-label{display:inline-block;padding:4px 12px;border-radius:20px;font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin-bottom:16px;}
.sc-debrief-label.strong{background:rgba(34,211,160,.14);color:var(--green);}
.sc-debrief-label.review{background:rgba(242,169,59,.14);color:var(--warn);}
.sc-debrief-label.needs-practice{background:rgba(255,77,109,.14);color:var(--red);}
.sc-debrief-row{border:1.5px solid var(--line-2);border-left-width:4px;border-radius:10px;padding:13px 16px;margin-bottom:10px;background:var(--panel);}
.sc-debrief-row.optimal{border-left-color:var(--green);}
.sc-debrief-row.suboptimal{border-left-color:var(--warn);}
.sc-debrief-row.unsafe{border-left-color:var(--red);}
.sc-debrief-row-head{font-weight:700;font-size:13px;margin-bottom:5px;}
.sc-debrief-row.optimal .sc-debrief-row-head{color:var(--green);}
.sc-debrief-row.suboptimal .sc-debrief-row-head{color:var(--warn);}
.sc-debrief-row.unsafe .sc-debrief-row-head{color:var(--red);}
.sc-debrief-row-body{font-size:12.5px;color:var(--paper-dim);line-height:1.55;}

@media(max-width:840px){
  .pt-chip-wrap,.sc-grid{grid-template-columns:1fr;}
  .pt-card{max-width:none;}
  .pt-progress-summary{flex-direction:column;align-items:flex-start;}
}
