
: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;}
}

/* ===================================================================== */
/* RR360-UX-PHASE-B START (2026-10-16) -- additive learner-UX block.      */
/* Presentation only: no content, scoring or API behaviour lives here.    */
/* Defects: RR-UX-001..006, RR-SHELL-001..003, RR-UX-007/008, A11Y-001.   */
/* ===================================================================== */

/* ---- Global accessibility primitives ---- */
.rr-sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
.rr-skip-link{position:absolute;left:12px;top:-80px;z-index:200;background:#2f6fe0;color:#fff;padding:10px 16px;border-radius:8px;font-weight:700;text-decoration:none;}
.rr-skip-link:focus{top:12px;}
:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--steel);outline-offset:2px;}
.search-box:focus-within{border-color:var(--steel);box-shadow:0 0 0 1px var(--steel);}
main:focus{outline:none;}
/* Primary button: white text needs >= 4.5:1 (was 3.31:1 on #3D8BFF). */
.btn{background:linear-gradient(135deg,#2f6fe0,#2558c4);}
.btn:disabled,.btn[aria-disabled="true"]{opacity:.55;}
a.btn{display:inline-block;text-decoration:none;}

/* ---- Semantic navigation (sidebar now <nav> + <a>) ---- */
a.sb-item{text-decoration:none;color:#a3a8c9;}
a.sb-item.active{color:var(--paper);}
.sb-group-label{color:#8b909b;}
.sb-tag{color:#a3a8c9;}
/* Pill labels: #3D8BFF text on its own tint measured 3.49:1; raised to >= 6.4:1. */
.tag-pill{color:#9cc3ff;border-color:rgba(156,195,255,.45);}
a.sb-user{text-decoration:none;color:inherit;}
.sb-uplan{color:#a3a8c9;}
.sb-menu-toggle{display:none;}
.view-switch a.view-switch-opt{text-decoration:none;color:#a3a8c9;display:block;}
.view-switch a.view-switch-opt:hover{color:var(--paper);}
a.bell-btn{text-decoration:none;}

/* ---- Readable notice / alert cards (replace light-theme inline cards) ---- */
.rr-notice{background:var(--panel-2);border:1px solid var(--line-2);border-left:3px solid #a3a8c9;border-radius:14px;padding:18px 22px;color:var(--paper);margin-bottom:18px;}
.rr-notice.is-warn{border-left-color:var(--warn);}
.rr-notice.is-error{border-left-color:var(--red);}
.rr-notice.is-success{border-left-color:var(--green);}
.rr-notice p{margin:0;color:var(--paper);line-height:1.55;}
.rr-notice p + p{margin-top:8px;}
.rr-notice .rr-muted{color:var(--paper-dim);font-size:13px;}
.rr-notice-title{display:block;font-weight:700;margin-bottom:6px;}

/* ---- Shared answer-choice group (native radios) ---- */
.rr-choices{border:0;margin:0;padding:0;min-width:0;}
.rr-choices > legend{display:block;width:100%;font-size:17px;font-weight:600;line-height:1.5;color:var(--paper);margin:0 0 16px;padding:0;}
.rr-choice{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;margin:0 0 10px;border:1.5px solid #7c82b8;border-radius:11px;background:var(--asphalt);color:var(--paper);font-size:15px;line-height:1.5;cursor:pointer;transition:border-color .12s,background .12s;}
.rr-choice input[type=radio]{margin:3px 0 0;width:18px;height:18px;flex-shrink:0;accent-color:#3D8BFF;cursor:pointer;}
.rr-choice-text{flex:1;min-width:0;}
.rr-choice:hover{border-color:#9cc3ff;}
.rr-choice:focus-within{outline:2px solid var(--steel);outline-offset:2px;}
.rr-choice.is-selected{border-color:#3D8BFF;background:#17264c;}
.rr-choice.is-locked{cursor:default;}
.rr-choice.is-locked input{cursor:default;}
.rr-choice.is-correct{border-color:var(--green);background:#13332f;}
.rr-choice.is-incorrect{border-color:var(--red);background:#2b1734;}
.rr-choice-status{margin-left:auto;padding-left:10px;font-size:12.5px;font-weight:700;white-space:nowrap;}
.rr-choice.is-correct .rr-choice-status{color:var(--green);}
.rr-choice.is-incorrect .rr-choice-status{color:#ff8fa3;}
.rr-actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:16px;}

/* ---- Feedback, inline alerts, progress ---- */
.rr-feedback{margin-top:16px;padding:16px 18px;border-radius:11px;border:1.5px solid var(--line-2);background:var(--panel-2);color:var(--paper);font-size:14.5px;line-height:1.6;}
.rr-feedback.is-correct{border-color:var(--green);}
.rr-feedback.is-incorrect{border-color:var(--red);}
.rr-feedback-title{display:block;font-weight:700;font-size:15px;margin-bottom:6px;}
.rr-feedback.is-correct .rr-feedback-title{color:var(--green);}
.rr-feedback.is-incorrect .rr-feedback-title{color:#ff8fa3;}
.rr-feedback:focus,.rr-focus-target:focus{outline:2px solid var(--steel);outline-offset:3px;}
.rr-citation{margin-top:10px;font-size:13px;color:var(--paper-dim);}
.rr-inline-alert{margin-top:12px;padding:10px 14px;border-radius:9px;border:1.5px solid var(--warn);background:#2a2440;color:var(--paper);font-size:13.5px;line-height:1.5;}
.rr-inline-alert:empty{display:none;}
.rr-progress{height:8px;border-radius:5px;background:var(--panel-2);overflow:hidden;margin:8px 0 18px;}
.rr-progress-fill{height:100%;background:linear-gradient(90deg,#3D8BFF,var(--steel));border-radius:5px;transition:width .3s ease;}
.rr-q-meta{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px;font-size:13.5px;color:var(--paper-dim);}
.rr-q-meta b{color:var(--paper);}
.rr-quiz-shell{max-width:780px;}
/* D-5: progress bars rendered without inline colour now have a visible fill. */
.bar-fill{background:#3D8BFF;}

/* ---- Legacy class aliases (pages still emitting these get visible affordances) ---- */
.quiz-q-text{font-size:17px;font-weight:600;line-height:1.5;margin-bottom:16px;}
.quiz-progress{font-family:var(--mono);font-size:12px;color:var(--paper-dim);margin-bottom:10px;}
.quiz-choice{padding:14px 16px;margin:0 0 10px;border:1.5px solid #7c82b8;border-radius:11px;background:var(--asphalt);cursor:pointer;line-height:1.5;}
.quiz-choice.correct{border-color:var(--green);}
.quiz-choice.incorrect{border-color:var(--red);}
.quiz-explain{margin-top:14px;padding:14px 16px;border-radius:11px;background:var(--panel-2);border-left:3px solid var(--steel);line-height:1.6;}
.citation{font-size:12.5px;color:var(--paper-dim);}

/* ---- Curriculum accordion (RR-UX-001) ---- */
button.module-accordion-header{width:100%;background:none;border:0;color:inherit;font:inherit;text-align:left;}
button.module-accordion-header:focus-visible{outline:2px solid var(--steel);outline-offset:-2px;border-radius:14px;}
.module-accordion-body[hidden]{display:none;}
button.module-accordion-header > span,button.module-accordion-header .module-accordion-name,button.module-accordion-header .module-accordion-count,button.module-accordion-header .css-ring-small,button.module-accordion-header .pct-label{display:block;}
button.module-accordion-header .module-accordion-progress-ring .pct-label{display:flex;}

/* ---- Pre-Trip activity-first layout (RR-UX-002) ---- */
#pretripCard{scroll-margin-top:84px;margin-bottom:26px;}
#pretripActivityTitle:focus{outline:none;}
.pt-activity-title{margin:0;font-family:var(--display);font-size:20px;font-weight:600;color:var(--paper);letter-spacing:.2px;}
.pt-picker-head{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:8px;margin:6px 0 12px;}
.pt-picker-head h2{margin:0;}
details.pt-area{border:1px solid var(--line-2);border-radius:12px;background:var(--panel);margin-bottom:10px;}
details.pt-area > summary{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:13px 16px;cursor:pointer;list-style:none;font-family:var(--display);font-size:15px;font-weight:600;}
details.pt-area > summary::-webkit-details-marker{display:none;}
details.pt-area > summary::before{content:"\25B8";color:var(--paper-dim);margin-right:8px;transition:transform .2s;display:inline-block;}
details.pt-area[open] > summary::before{transform:rotate(90deg);}
details.pt-area > summary .pt-area-count{margin-left:auto;}
details.pt-area .pt-chip-wrap{padding:4px 14px 14px;}
.pt-card[aria-current="true"]{border-color:#3D8BFF;box-shadow:0 0 0 1px #3D8BFF inset;}
.pt-current-label{font-family:var(--mono);font-size:10.5px;color:#9cc3ff;text-transform:uppercase;letter-spacing:.5px;display:block;margin-top:6px;}

/* ---- Scenario library (RR-UX-003) ---- */
.sc-filter-label{color:var(--paper-dim);}
.sc-filter-chip[aria-pressed="true"]{border-color:#3D8BFF;background:var(--amber-glow);color:#9cc3ff;}
details.sc-more-filters{margin:0 0 14px;}
details.sc-more-filters > summary{cursor:pointer;display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--paper-dim);padding:6px 0;}
details.sc-more-filters[open] > summary{margin-bottom:8px;}
details.sc-more-filters > summary{list-style:none;}
details.sc-more-filters > summary::-webkit-details-marker{display:none;}
details.sc-more-filters > summary::before{content:"\25B8";display:inline-block;transition:transform .2s;}
details.sc-more-filters[open] > summary::before{transform:rotate(90deg);}
.sc-result-row{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin:4px 0 12px;font-size:13.5px;color:var(--paper-dim);}
.sc-result-row b{color:var(--paper);}
.sc-clear{background:none;border:0;color:#9cc3ff;font:inherit;font-weight:600;cursor:pointer;text-decoration:underline;padding:4px;}
.sc-card{display:flex;flex-direction:column;}
.sc-card-title{order:-1;}
.sc-card-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:8px;padding-top:6px;}
.sc-card-cta{font-size:12.5px;font-weight:700;color:#9cc3ff;}
.sc-card:focus-visible{outline:2px solid var(--steel);outline-offset:2px;}
.sc-remediation{margin-top:14px;padding:14px 16px;border-radius:11px;border:1.5px dashed var(--line-2);background:var(--panel-2);font-size:13.5px;line-height:1.55;color:var(--paper);}
.scenario-choice.is-chosen{border-color:#3D8BFF;}
.scenario-choice:disabled{opacity:1;}

/* ---- Practice exam selection (RR-UX-004) ---- */
.exam-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px;max-width:1180px;}
.exam-grid .card{display:flex;flex-direction:column;gap:10px;}
.exam-grid .card h2{margin:0;}
.exam-grid .card .rr-muted{color:var(--paper-dim);font-size:13.5px;margin:0;}
.exam-grid .card .btn{align-self:flex-start;margin-top:auto;}
.exam-results .card{margin:14px 0;}
.exam-missed p{margin:0 0 8px;}
.exam-missed .exam-your{color:#ff8fa3;}
.exam-missed .exam-correct{color:var(--green);}
.exam-missed .exam-expl{color:var(--paper-dim);}

/* ---- State Guide (RR-UX-006) -- D-1 Option A: state_guide.php stays      */
/* byte-identical; these rules neutralise its light-theme inline styles.   */
.page-state_guide main .card p[style*="#2a2f3a"]{color:var(--paper)!important;font-size:15px;line-height:1.65;}
.page-state_guide main .card p[style*="#8b909b"]{color:var(--paper-dim)!important;font-size:12.5px!important;}
.page-state_guide main .card[style*="#f7f8fa"],
.page-state_guide main .card[style*="#fdecec"]{background:var(--panel-2)!important;color:var(--paper);}
.page-state_guide main .card[style*="#f7f8fa"] p[style*="#4a4f59"]{color:var(--paper-dim)!important;}
.page-state_guide main .card > .tag-pill:first-child{font-size:12px;letter-spacing:.6px;color:#9cc3ff;border-color:rgba(156,195,255,.45);padding:4px 10px;margin-bottom:8px;}
.page-state_guide main .card .weak-item + .weak-item{border-top:1px solid var(--line)!important;}

/* ---- Responsive application shell (RR-SHELL-001 / D-2) ---- */
@media (max-width:900px){
  .sidebar{position:static;width:auto;border-right:0;border-bottom:1px solid var(--line);}
  .sb-brand{padding:12px 16px;border-bottom:0;}
  .sb-menu-toggle{display:inline-flex;align-items:center;gap:8px;margin-left:auto;background:var(--panel);border:1px solid var(--line-2);border-radius:9px;color:var(--paper);font:inherit;font-weight:600;font-size:13.5px;padding:8px 14px;cursor:pointer;}
  .sidebar.nav-collapsed .sb-nav,.sidebar.nav-collapsed .sb-foot{display:none;}
  .sb-nav{padding:0 12px 8px;overflow:visible;}
  .sb-group-label{padding:10px 8px 4px;}
  .sb-item.active::before{display:none;}
  .sb-foot{padding:10px 16px 14px;}
  .main-col{margin-left:0;}
  .topbar{position:static;height:auto;flex-wrap:wrap;gap:10px;padding:10px 16px;}
  .search-box{width:100%;}
  .top-right{flex-wrap:wrap;gap:10px;}
  main{padding:20px 16px 60px;}
  .grid2,.exam-grid{grid-template-columns:1fr;}
  .pt-card{max-width:none;flex:1 1 100%;}
  .pt-progress-summary{flex-direction:column;align-items:flex-start;}
  .module-accordion-header{padding:14px;}
  .lesson-row{flex-wrap:wrap;}
  .rr-choice{font-size:14.5px;}
}

/* ---- Heading resets for elements promoted to real headings ---- */
h3.pt-step-title{margin:10px 0 12px;}
h3.pt-outcome-score{margin:0 0 4px;}
h2.scenario-setup-eyebrow,h2.scenario-outcome-label,h2.sc-debrief-summary{margin:0 0 8px;}
h2.scenario-setup-eyebrow{font-size:12px;}
h2.scenario-outcome-label{font-size:13px;}
h2.sc-debrief-summary{font-size:19px;}
.sc-card-title{font-family:var(--display);}

/* ---- Reduced motion (RR-A11Y-001) ---- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
  .btn:hover,.pt-card:hover,.sc-card:hover,.scen-card:hover,.scenario-choice:hover{transform:none!important;}
}
/* ---- RR360 Phase B.1: the header search control is not functional yet.  */
/* Hidden from the student interface (and from the tab order / a11y tree)  */
/* without touching header.php markup; remove these two rules to restore.  */
.topbar .search-box{display:none;}
.topbar{justify-content:flex-end;}
/* ===================== RR360-UX-PHASE-B END ===================== */
