:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:#e9f3f8;background:#091621;font-synthesis:none}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse 1000px 600px at 30% -200px,#194456 0%,transparent 75%),#091621;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}a{color:inherit}.boot{padding:20vh;text-align:center}.topbar{height:84px;display:flex;align-items:center;justify-content:space-between;padding:0 max(calc((100vw - 1280px)/2),30px);border-bottom:1px solid #294353;background:#0d1c28e3;position:sticky;top:0;z-index:20;backdrop-filter:blur(20px)}.brand{border:0;background:none;color:inherit;display:flex;align-items:center;gap:12px;text-align:left;padding:0}.brand-mark{display:block;background:none;height:46px;width:46px;border-radius:14px;overflow:hidden;box-shadow:0 4px 25px #e5a85433;flex:0 0 auto}.brand-mark img{display:block;width:100%;height:100%}.brand strong{font-family:Georgia,serif;font-size:22px;letter-spacing:-.5px;display:block}.brand small{display:block;color:#89a1ac;font-size:11px;letter-spacing:.4px}.nav{display:flex;gap:5px}.nav button{border:0;background:transparent;color:#9eb2c0;border-radius:12px;padding:11px 15px;font-size:13px;font-weight:650}.nav button.active,.nav button:hover{background:#21404b;color:#f4e9cc}.container{max-width:1280px;margin:auto;padding:24px 30px 80px;min-height:calc(100vh - 164px)}.eyebrow{color:#e8bd70;font-weight:800;letter-spacing:1.8px;font-size:10px;text-transform:uppercase}.hero{min-height:422px;border:1px solid #466174;border-radius:24px;position:relative;overflow:hidden;background:#0e303f;box-shadow:0 18px 65px #0004}.hero-art{position:absolute;inset:0 0 0 42%;overflow:hidden}.hero-art img{width:100%;height:100%;object-fit:cover;object-position:center}.hero:after{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(90deg,#102939 0%,#102939 33%,#102939d6 46%,#10293911 74%,transparent 100%)}.hero-content{padding:47px 48px;max-width:700px;position:relative;z-index:2}.hero h1{font-family:Georgia,"Times New Roman",serif;line-height:1.08;font-size:clamp(32px,4vw,56px);font-weight:550;letter-spacing:-1.6px;margin:22px 0}.hero h1 em{font-style:normal;color:#f1cd8a}.hero p{color:#cadce3;max-width:480px;line-height:1.75;font-size:15px}.hero-buttons{display:flex;gap:12px;margin-top:24px;flex-wrap:wrap}.hero-meta{display:flex;gap:19px;color:#acc1c7;font-size:11px;margin-top:33px;flex-wrap:wrap}.btn{border:1px solid transparent;padding:14px 21px;border-radius:12px;color:#e8f2f7;font-weight:800;font-size:13px;transition:background .15s,transform .15s}.btn:active{transform:scale(.98)}.btn.primary{background:linear-gradient(135deg,#f5d78e,#d7a454);color:#27303a;box-shadow:0 7px 20px #e2b05730}.btn.primary:hover{filter:brightness(1.06)}.btn.ghost{background:#183c49cc;border-color:#50707d}.btn.outline{background:transparent;border-color:#496473}.btn.full{width:100%}.section-header{margin:42px 0 21px}.section-header h2,.page-intro h1{font-family:Georgia,serif;font-size:34px;font-weight:500;letter-spacing:-.4px;margin:8px 0 9px}.section-header p,.page-intro p{color:#9aafbc;font-size:14px;line-height:1.7;margin:0;max-width:740px}.subject-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.subject-card{min-height:140px;background:linear-gradient(140deg,#182c3b,#102330);border:1px solid #304d5e;border-radius:17px;color:inherit;text-align:left;padding:18px;display:flex;flex-direction:column;gap:12px}.subject-card.available{border-color:#669d88;background:linear-gradient(140deg,#1d504e,#153039)}.subject-card:not(:disabled):hover{transform:translateY(-2px);border-color:#e9bf7a}.subject-card.locked{opacity:.63}.subject-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);font-weight:750;font-size:23px}.subject-text{display:flex;flex-direction:column;gap:5px}.subject-text strong{font-size:16px}.subject-text small,.subject-status{font-size:11px;color:#96aebb}.subject-status{color:var(--accent);font-weight:800;margin-top:auto}.home-bottom{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:21px 0}.highlight-card,.panel{border:1px solid #2e495b;background:linear-gradient(140deg,#132a3a,#102230);border-radius:18px;padding:25px}.highlight-card.alt{background:linear-gradient(145deg,#293b3e,#102633)}.highlight-card h3,.panel h3{font-family:Georgia,serif;font-size:22px;font-weight:500;margin:8px 0 9px}.highlight-card p,.panel p{color:#afc0c8;font-size:14px;line-height:1.7}.progress-track{background:#29404d;border-radius:20px;height:8px;overflow:hidden;margin:15px 0}.progress-track span{display:block;height:100%;background:linear-gradient(90deg,#67bb9d,#b0eac1);border-radius:20px}.inline-action{border:0;background:none;padding:7px 0;color:#f1cb84;font-weight:800;font-size:13px}.footer{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:22px 32px;color:#8298a4;border-top:1px solid #273c49;font-size:11px;flex-wrap:wrap}.text-btn{background:transparent;border:0;color:#eac37e;padding:0}.page-intro{padding:26px 0 30px}.page-intro h1{font-size:clamp(32px,4vw,43px)}.pill{border:1px solid #476074;background:#203343;color:#c6d7df;border-radius:20px;padding:5px 10px;font-size:10px;font-weight:800;display:inline-block}.pill.gold{border-color:#93794d;background:#493b2d;color:#f0cd87}.intro-summary{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}.curriculum-layout,.campaign-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;align-items:start;gap:22px}.lesson-list{display:flex;flex-direction:column;gap:11px}.lesson-card{display:flex;align-items:center;gap:16px;width:100%;text-align:left;border:1px solid #2e4759;background:#122837;border-radius:15px;padding:16px 20px;color:inherit;min-height:93px}.lesson-card:hover,.lesson-card.next{border-color:#b3a06f}.lesson-card.complete{background:#193c3c}.lesson-number{font-family:Georgia,serif;min-width:46px;height:46px;border-radius:13px;display:grid;place-items:center;background:#1d3a4a;color:#d9b56a;font-size:19px}.lesson-card.complete .lesson-number{background:#2a6455;color:#94ebbc}.lesson-description{display:flex;flex-direction:column;gap:5px;flex:1}.lesson-description strong{font-size:17px}.lesson-description small{color:#b7c8d0;font-size:12px}.lesson-meta{font-size:10px;color:#86a0ad;margin-top:4px}.lesson-arrow{font-size:23px;color:#e7c07e}.aside-stack{display:flex;flex-direction:column;gap:14px}.panel.dark{background:linear-gradient(140deg,#254851,#172733);border-color:#517074}.callout{padding:13px 15px;border-left:3px solid #dab26f;background:#233542;border-radius:5px;color:#c9d8df;font-size:12px;line-height:1.6;margin-top:14px}.callout p{font-size:12px;margin:5px 0 0}.mini-city{overflow:hidden;border-radius:12px;height:160px;background:#12353e}.mini-city img{width:100%;height:100%;object-fit:cover}.back{border:0;color:#d2b577;background:none;padding:9px 0;font-weight:700}.lesson-top{display:flex;justify-content:space-between;align-items:center;color:#829ba6;font-size:11px;gap:12px}.lesson-workspace{display:grid;grid-template-columns:228px minmax(0,1fr);gap:29px;margin-top:20px}.lesson-steps{background:#102634;border:1px solid #2c4555;border-radius:18px;padding:23px 17px;height:max-content;position:sticky;top:105px}.step{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:13px 8px;background:none;border:0;color:#9ab2bd;border-radius:11px}.step.current{background:#23434c;color:#fff}.step-circle{min-width:27px;height:27px;display:grid;place-items:center;border:1px solid #526a77;border-radius:50%;font-size:11px;font-weight:800}.step.current .step-circle{background:#edc781;color:#193343;border-color:#edc781}.step strong,.step small{display:block}.step strong{font-size:12px}.step small{font-size:10px;margin-top:3px}.lesson-help{color:#829ba6;font-size:11px;line-height:1.6;margin:18px 6px}.lesson-main{min-width:0}.lesson-title h1{font-family:Georgia,serif;font-weight:500;letter-spacing:-.6px;font-size:clamp(29px,4vw,42px);margin:13px 0 3px}.lesson-title p{color:#a7bdc9;margin-top:4px}.story-card,.theory-card,.concept-area,.check-card{border:1px solid #375365;background:linear-gradient(130deg,#152f3d,#132735);border-radius:18px;padding:27px;margin-top:20px}.story-visual{display:grid;place-items:center;width:100%;height:165px;margin:16px 0;border-radius:13px;background:radial-gradient(circle at 55% 45%,#4b8079 0%,#1c4a57 38%,#132835 80%);font-size:100px;color:#e2c280;text-shadow:0 10px 40px #e4b56a65}.story-card h2,.theory-card h2,.check-card h2{font-family:Georgia,serif;font-size:24px;font-weight:500;line-height:1.4;margin:12px 0}.story-card p,.theory-card p,.concept-area p,.check-card p{color:#bbcad2;line-height:1.8}.step-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end;margin:20px 0 30px}.theory-card{margin-top:13px}.concept-area{margin-top:12px}.concept-area h3{margin:0}.chips{display:flex;flex-wrap:wrap;gap:8px;margin:16px 0 4px}.term-chip{font-size:12px;color:#f1d39d;background:#333c3d;border:1px solid #655b4b;border-radius:20px;padding:9px 12px}.term-chip:hover{background:#52503f}.experiment{border:1px solid #416172;border-radius:18px;background:#152d3b;padding:25px;margin-top:20px}.experiment-header h3{font-family:Georgia,serif;font-size:25px;font-weight:500;margin:10px 0 6px}.experiment-header p{color:#9eb7c3;font-size:13px;line-height:1.7}.experiment-controls{margin-top:24px;border-radius:15px;padding:21px;background:#0d2230}.slider-line{display:block;margin:14px 0 22px}.slider-line span{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:10px;color:#cbdce3;font-size:13px}.slider-line b{color:#f2cb84;white-space:nowrap}.slider-line input{width:100%;accent-color:#e8be76;cursor:pointer}.experiment-result{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:15px;border-radius:10px;background:#204650;color:#c0d5dc;font-size:12px;margin-top:12px}.experiment-result strong{color:#a2e5c1;font-size:19px;white-space:nowrap}.experiment-result strong.danger{color:#ff9a9a}.explain-note{border-left:3px solid #75af9c;margin-top:17px;padding:8px 12px;font-size:12px;color:#aec5cf;line-height:1.6}.barter-scene{display:grid;grid-template-columns:1fr 40px 1fr;gap:10px;align-items:center}.barter-scene>div:not(.barter-arrows){display:flex;gap:8px;flex-direction:column;align-items:center;text-align:center;background:#224350;padding:16px;border-radius:10px;font-size:28px}.barter-scene strong{font-size:13px}.barter-scene span{font-size:11px;color:#bdd2dc}.barter-arrows{text-align:center;font-size:20px}.answers{display:grid;gap:10px;margin-top:24px}.answer{display:flex;align-items:center;gap:15px;padding:14px;border:1px solid #456072;background:#142f40;color:#e0ebee;text-align:left;line-height:1.5;border-radius:12px}.answer span{display:grid;place-items:center;min-width:32px;height:32px;border-radius:9px;background:#2a4b59;color:#edc783;font-weight:800}.answer:hover,.answer.selected{border-color:#e4be76;background:#25444b}.result{padding:18px;border-radius:12px;margin:20px 0}.result.success{background:#1e574b;color:#b7f1d4}.result.warning{background:#504131;color:#f1d6a8}.result p{margin-bottom:0}.glossary-layout{display:grid;grid-template-columns:320px minmax(0,1fr);gap:18px}.concept-list{border:1px solid #30495b;padding:16px;background:#102533;border-radius:16px;max-height:600px;overflow:auto}.search{width:100%;border:1px solid #486274;border-radius:10px;color:#fff;background:#1b3543;padding:13px}.concept-item{display:flex;justify-content:space-between;width:100%;padding:13px 9px;background:transparent;border:0;border-bottom:1px solid #263c4c;color:#bacbd4;text-align:left;font-size:12px}.concept-item b{font-size:10px;color:#8ee0bb}.concept-item.active{color:#f4d18f}.concept-detail h2{font-family:Georgia,serif;font-size:32px;margin:12px 0 26px}.concept-detail h3{margin-top:24px;font-size:14px}.review-layout{display:grid;grid-template-columns:minmax(0,1fr) 290px;gap:20px}.review-definition{font-family:Georgia,serif;font-size:25px!important;color:#e6f1f3!important}.empty-state{text-align:center;padding:50px 15px}.empty-state>span{font-size:48px;color:#7ac6a8}.stats-inline{display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid #354e5e;padding:12px 0}.stats-inline strong{font-size:26px;color:#e2c47e}.stats-inline span{font-size:12px;color:#9eb8c4}.city-scene{height:320px;border:1px solid #4b6c72;overflow:hidden;border-radius:19px;position:relative;background:#31565a}.city-scene img{width:100%;height:100%;object-fit:cover}.city-label{position:absolute;bottom:15px;left:15px;background:#132c39dc;border:1px solid #6c8b84;border-radius:10px;padding:12px 17px;font-weight:800;color:#f7d68e}.city-status{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:13px 0}.city-status>div{background:#193745;border:1px solid #375463;border-radius:10px;padding:13px}.city-status small{display:block;color:#9eb4bf;font-size:11px}.city-status strong{display:block;font-size:19px;margin-top:7px;color:#f1d397}.campaign-main>.panel{margin-top:15px}.campaign-main h2{font-family:Georgia,serif;font-weight:500;font-size:25px}.field-label{display:flex;flex-direction:column;gap:9px;color:#b9ced6;font-size:13px;margin:22px 0}.field-label select,.field-label textarea{color:#e8f1f5;border:1px solid #476272;background:#102a3a;border-radius:10px;padding:12px;width:100%}.field-label textarea{min-height:120px;resize:vertical}.outcome-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.outcome-grid>div{padding:16px;background:#234450;border-radius:10px}.outcome-grid small{color:#b7ccd3;display:block}.outcome-grid strong{font-size:25px;color:#f1d094}.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:15px}.profile-stats .panel{display:flex;flex-direction:column;gap:8px}.profile-stats span{color:#9eb3bd;font-size:12px}.profile-stats strong{font-size:25px;color:#e7cb8c}.profile-stats+.panel{margin-bottom:12px}.feedback{max-width:670px}.muted{color:#93aeb9!important}.small{font-size:11px!important}.toast{border:1px solid #74b499;background:#1a5349;color:#eafff3;padding:13px 16px;border-radius:10px;margin-bottom:20px}.modal-overlay{position:fixed;inset:0;background:#051019c9;z-index:50;display:grid;place-items:center;padding:24px}.modal{background:linear-gradient(135deg,#1b3a47,#102734);border:1px solid #607885;border-radius:20px;padding:32px;max-width:520px;width:100%;position:relative;box-shadow:0 40px 100px #0009;max-height:80vh;overflow:auto}.modal h2{font-family:Georgia,serif;font-weight:500;font-size:30px}.modal h3{font-size:14px;margin-top:23px}.modal p{line-height:1.7;color:#c3d1d8}.modal-close{position:absolute;right:15px;top:15px;border:0;background:#345161;border-radius:8px;color:#fff;padding:8px 12px}
@media(max-width:990px){.topbar{padding:0 20px}.container{padding:22px 20px 70px}.nav button{padding:11px}.subject-grid{grid-template-columns:repeat(3,1fr)}.curriculum-layout,.campaign-layout{grid-template-columns:minmax(0,1fr) 270px}.lesson-workspace{grid-template-columns:180px minmax(0,1fr)}.hero-art{left:35%}}
@media(max-width:700px){.topbar{height:70px;justify-content:space-between;padding:0 12px}.brand-mark{height:36px;width:36px}.brand strong{font-size:17px}.brand small{font-size:9px}.nav{gap:0}.nav button{font-size:20px;padding:8px 9px}.nav button span{display:none}.container{padding:15px 13px 50px}.hero{min-height:460px}.hero-art{inset:0;height:53%}.hero:after{background:linear-gradient(0deg,#102c39 30%,#102c39cc 45%,transparent 90%)}.hero-content{padding:179px 23px 22px}.hero h1{font-size:31px;margin:10px 0}.hero p{font-size:12px;line-height:1.6}.hero-meta{margin-top:17px;gap:10px;font-size:9px}.hero-buttons{margin-top:18px}.btn{padding:12px 14px;font-size:12px}.section-header h2,.page-intro h1{font-size:29px}.subject-grid{grid-template-columns:repeat(2,1fr);gap:9px}.subject-card{min-height:145px;padding:13px}.subject-text strong{font-size:14px}.home-bottom,.curriculum-layout,.campaign-layout,.glossary-layout,.review-layout{grid-template-columns:1fr}.page-intro{padding:16px 0 23px}.lesson-workspace{display:block;margin-top:9px}.lesson-steps{display:flex;gap:5px;padding:6px;position:static;overflow:auto;margin-bottom:16px}.lesson-steps>.eyebrow,.lesson-help{display:none}.step{padding:7px;gap:6px;min-width:0;flex:1;justify-content:center}.step span:last-child{display:none}.step-circle{min-width:31px;height:31px}.lesson-title h1{font-size:30px}.story-card,.theory-card,.concept-area,.check-card,.experiment{padding:19px}.lesson-top span{font-size:9px}.story-visual{height:110px;font-size:68px}.story-card h2,.theory-card h2{font-size:20px}.city-scene{height:220px}.profile-stats{grid-template-columns:repeat(2,1fr)}.footer{padding:18px 15px}.panel{padding:19px}.review-definition{font-size:21px!important}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}

/* S1: readable navigation and resilient narrow layouts. */
:focus-visible{outline:3px solid #f1cd8a;outline-offset:3px}
button,a,input,select,textarea{touch-action:manipulation}
button{min-height:44px}
.container>*{min-width:0}
.lesson-description,.subject-text{min-width:0;overflow-wrap:anywhere}
.story-card p,.theory-card p{max-width:70ch}
img,svg{max-width:100%}
@media(max-width:1024px) and (min-width:701px){.curriculum-layout,.campaign-layout,.review-layout{grid-template-columns:minmax(0,1fr)}.glossary-layout{grid-template-columns:250px minmax(0,1fr)}}
@media(max-width:700px){
.topbar{height:auto;min-height:70px;flex-wrap:wrap;padding:12px;gap:12px;position:relative}
.nav{width:100%;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:2px}
.nav button{font-size:18px;padding:6px 2px;min-height:52px}
.nav button span{display:block;font-size:10px;overflow-wrap:anywhere}
.boot{padding:25vh 20px}
.lesson-top{flex-wrap:wrap}
.experiment-result{flex-wrap:wrap}
.experiment-result strong{white-space:normal}
.city-status{grid-template-columns:1fr}
.modal-overlay{padding:12px}.modal{padding:24px 18px;max-height:90dvh}
.hero-content{padding-inline:18px}
}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
.locale-control select{background:#193745;color:#e9f3f8;border:1px solid #50707d;border-radius:10px;padding:10px;min-height:44px;max-width:125px}
.topbar{gap:16px;height:auto;min-height:84px;padding-block:12px;flex-wrap:wrap}
@media(max-width:1100px){.nav{order:3;width:100%;justify-content:center}.locale-control{margin-left:auto}}
@media(max-width:700px){.nav{order:3}.locale-control select{max-width:110px}.topbar{gap:10px}.brand{gap:7px}.brand small{font-size:9px}}
/* Text resizing: long concepts and control captions must remain inside their cards. */
.container{overflow-wrap:anywhere}
.panel,.concept-list,.concept-detail,.campaign-main,.outcome-grid>div{min-width:0}
.concept-item{gap:10px;align-items:baseline;flex-wrap:wrap}
.concept-item span{min-width:0;overflow-wrap:anywhere}
.slider-line span{flex-wrap:wrap}
.slider-line b{white-space:normal}
.outcome-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:400px){.outcome-grid{grid-template-columns:1fr}}
input[type="range"]{min-height:44px}
.modal{overflow-wrap:anywhere;min-width:0}
.modal h2{padding-right:30px}
.search,.answer,.field-label select,.field-label textarea,.locale-control select{border-color:#7895a5}
@media(max-width:700px){.barter-scene{grid-template-columns:minmax(0,1fr)}.barter-arrows{transform:rotate(90deg)}}

.account-panel{margin-bottom:22px}.account-panel form{max-width:520px}.account-panel h2{overflow-wrap:anywhere}

/* S3: evidence-based mastery, independent tasks and the knowledge map. */
.route-panel{margin:30px 0 8px}.route-panel .section-header{display:flex;justify-content:space-between;align-items:flex-end;gap:18px;flex-wrap:wrap;margin-top:0}.route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.route-card{border:1px solid #365565;background:linear-gradient(140deg,#183343,#102633);border-radius:16px;padding:20px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}.route-card.review{border-color:#6f9475}.route-card.deepen{border-color:#a58a52}.route-card.next{border-color:#4e7589}.route-label{font-size:10px;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:#e8bd70}.route-card h3{font-family:Georgia,serif;font-size:21px;font-weight:500;margin:2px 0}.route-card p{color:#b5c7cf;font-size:13px;line-height:1.6;margin:0;flex:1}.route-card .btn{margin-top:6px}.route-date{font-size:11px;color:#9fb6c0}
.mastery-badge,.mastery-tag{display:inline-flex;align-items:center;gap:5px;border:1px solid #466476;background:#1b3543;color:#c9dce3;border-radius:20px;padding:5px 10px;font-size:10px;font-weight:800;line-height:1.35;margin:8px 0 0}.mastery-tag{margin:2px 0 0;font-size:9px;padding:3px 7px;max-width:100%;overflow-wrap:anywhere}.mastery-badge.mastered,.mastery-tag.mastered{border-color:#5d9c80;background:#173f39;color:#a8f0cb}.mastery-badge.deepening,.mastery-tag.deepening{border-color:#a98b55;background:#3d3424;color:#f0d397}.mastery-badge.completed,.mastery-tag.completed{border-color:#55798c;background:#1b3545;color:#c7dce5}.mastery-badge.available,.mastery-tag.available{border-color:#8a7955;background:#302c22;color:#e9d2a0}.mastery-badge.started{border-color:#6b7e97;background:#1d3041;color:#cad9e8}
.lesson-plan{border:1px solid #314d5e;background:#102736;border-radius:14px;padding:0 17px;margin:16px 0 4px}.lesson-plan summary{cursor:pointer;padding:14px 0;display:flex;justify-content:space-between;gap:12px;align-items:center;color:#e8c987;font-weight:800;font-size:12px}.lesson-plan summary small{color:#8fa8b4;font-weight:600;font-size:10px;text-align:right}.lesson-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:0 0 18px}.lesson-plan-grid section{min-width:0}.lesson-plan-grid h3{font-size:12px;margin:4px 0 8px;color:#e4c584}.lesson-plan-grid ul{margin:0;padding-left:18px;color:#b9cbd3;font-size:12px;line-height:1.6}.lesson-plan-grid li{margin:4px 0}.source-list li{margin:7px 0}.source-list a{color:#efd092;font-weight:700}.source-list small,.source-list span{display:block;color:#8fa8b4;font-size:10px;line-height:1.45}
.assessment-section{margin-top:24px}.assessment-header{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin-bottom:12px}.assessment-header h2{font-family:Georgia,serif;font-size:27px;font-weight:500;margin:8px 0 4px}.assessment-header p{color:#a9bec8;font-size:13px;line-height:1.7;margin:0;max-width:70ch}.assessment-card{border:1px solid #3c5969;background:linear-gradient(140deg,#152f3d,#102534);border-radius:16px;padding:22px;margin:12px 0}.assessment-card.passed{border-color:#5b957d}.assessment-card.failed{border-color:#95754b}.assessment-card-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.assessment-card h3{font-family:Georgia,serif;font-size:21px;font-weight:500;line-height:1.45;margin:12px 0}.assessment-card .btn{margin-top:12px}.assessment-input{width:100%;min-height:120px;resize:vertical;border:1px solid #7895a5;background:#102a3a;color:#e8f1f5;border-radius:10px;padding:12px;line-height:1.6}.assessment-input-line{display:flex;align-items:center;gap:9px}.assessment-input-line .search{flex:1;min-width:0}.assessment-unit{color:#e4c584;font-size:12px;font-weight:800;white-space:nowrap}.assessment-result{margin-top:16px;padding:16px;border-radius:11px;display:flex;flex-direction:column;gap:8px}.assessment-result.success{background:#1b4a41;color:#c6f2da}.assessment-result.warning{background:#463a2b;color:#f0d8ad}.assessment-result>span{font-size:12px;font-weight:800}.assessment-result .callout{margin-top:4px}.assessment-expected{font-size:12px;font-weight:800;margin:0}.assessment-response{font-size:12px;color:#a9c5ce;margin:0;overflow-wrap:anywhere}.rubric-list{list-style:none;margin:2px 0;padding:0;display:grid;gap:5px;font-size:12px}.rubric-list li{display:flex;gap:8px;align-items:flex-start}.rubric-list li.met span{color:#8fe4b8}.rubric-list li.missed span{color:#e3b77d}
.mastery-panel{margin-bottom:15px}.mastery-panel .section-header{margin-top:0;display:flex;justify-content:space-between;gap:16px;align-items:flex-start;flex-wrap:wrap}.mastery-panel .section-header h2{font-size:27px}.mastery-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.mastery-stats>div{border:1px solid #304d5e;border-radius:10px;padding:12px;background:#142d3b}.mastery-stats strong{display:block;font-size:21px;color:#e7cb8c}.mastery-stats span{display:block;color:#9fb6c1;font-size:11px;line-height:1.5;margin-top:4px}
.concept-map{display:flex;flex-direction:column;gap:22px}.map-group h2{font-family:Georgia,serif;font-weight:500;font-size:25px;margin:0 0 10px}.map-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px}.concept-node{border:1px solid #385565;background:#112938;border-radius:14px;padding:16px;min-width:0;display:flex;flex-direction:column;gap:7px}.concept-node.mastered{border-color:#5f9b80;background:#153a35}.concept-node.learning{border-color:#9a8358;background:#2d2b24}.concept-node.upcoming{opacity:.82}.concept-node-title{border:0;background:none;color:#f3d69c;text-align:left;font-family:Georgia,serif;font-size:18px;padding:6px 0;min-height:44px;display:flex;align-items:center}.concept-node-title:hover{text-decoration:underline}.concept-node p{color:#b5c7cf;font-size:12px;line-height:1.55;margin:0;flex:1}.node-meta{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:10px;color:#9fb6c1}.node-meta .mastery-badge{margin:0;font-size:9px;padding:3px 7px}.node-lessons,.node-related{display:flex;flex-wrap:wrap;gap:6px}.node-lessons .inline-action,.node-related .term-chip{font-size:10px;padding:4px 7px;margin:0}.map-footer{margin-top:22px;display:flex;justify-content:space-between;gap:14px;align-items:center;flex-wrap:wrap}.map-footer p{margin:0;max-width:70ch}
.concept-progress{border-top:1px solid #37515f;margin-top:22px;padding-top:18px}.concept-progress h3{font-size:14px;margin:0 0 10px}.concept-progress-summary{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin-bottom:10px;font-size:11px;color:#a9bfc8}.concept-progress-summary .mastery-badge{margin:0}.history-list{list-style:none;margin:0;padding:0;display:grid;gap:6px}.history-list li{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:baseline;border-bottom:1px solid #2b4656;padding:6px 0;font-size:11px;color:#aec3cc}.history-list strong{color:#e5cd9b;font-size:10px}.history-list time{color:#8fa8b4;font-size:10px}
.payment-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:14px}.payment-option{border:1px solid #385766;background:#122a38;border-radius:12px;padding:14px;min-width:0}.payment-option.selected{border-color:#d9b979;background:#293d42}.payment-option strong{display:block;color:#f0d39a;font-family:Georgia,serif;font-size:18px;margin-bottom:8px}.payment-option dl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 9px;margin:0;font-size:11px}.payment-option dt{color:#8fa8b4}.payment-option dd{margin:0;color:#c5d6dd;font-weight:700;overflow-wrap:anywhere}
.scenario-switch{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0 22px}.scenario-tab{display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left;border:1px solid #355463;background:#102735;color:#dfeaf0;border-radius:13px;padding:13px 15px;min-width:0}.scenario-tab.active{border-color:#dfb977;background:#263d42}.scenario-tab strong{font-family:Georgia,serif;font-size:18px;font-weight:500}.scenario-tab small{font-size:10px;color:#9fb6c0}.scenario-step{margin-top:20px}.scenario-step h3{font-size:14px;margin:0 0 10px}.scenario-choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.scenario-choice{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;border:1px solid #3c5a68;background:#122b39;color:#dbe9ee;border-radius:12px;padding:12px;min-width:0}.scenario-choice.selected{border-color:#e0bb79;background:#2c4142}.scenario-choice strong{font-size:13px}.scenario-choice small{font-size:10px;color:#9fb6c1;line-height:1.45;overflow-wrap:anywhere}.outcomes.success{border-color:#5c977e;background:#173c36}.outcomes.warning{border-color:#a27b4d;background:#3d3327}.outcomes .danger{color:#ff9a9a}
@media(max-width:990px){.route-grid,.map-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.lesson-plan-grid{grid-template-columns:1fr}}
@media(max-width:700px){.scenario-switch,.scenario-choices{grid-template-columns:1fr}}
@media(max-width:700px){.payment-grid{grid-template-columns:1fr}}
@media(max-width:700px){.route-grid,.map-grid,.mastery-stats{grid-template-columns:1fr}.route-panel .section-header,.mastery-panel .section-header{align-items:flex-start}.assessment-card,.route-card{padding:16px}.lesson-plan{padding-inline:13px}.lesson-plan summary{align-items:flex-start;flex-direction:column}.lesson-plan summary small{text-align:left}.assessment-input-line{flex-wrap:wrap}.concept-progress-summary{gap:6px}}


/* S5: entry diagnostics, safe skipping and gap reporting. */
.diagnostic-entry{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;border:1px solid #3e6072;background:linear-gradient(135deg,#17313f,#102532);border-radius:18px;padding:22px;margin:22px 0}.diagnostic-entry.cleared{border-color:#5d9c80;background:linear-gradient(135deg,#173d38,#102a31)}.diagnostic-entry.gapped{border-color:#a18352}.diagnostic-entry-text{min-width:0}.diagnostic-entry-text h2{font-family:Georgia,serif;font-size:25px;font-weight:500;margin:6px 0 6px;overflow-wrap:anywhere}.diagnostic-entry-text p{color:#b6c8d0;font-size:13px;line-height:1.65;margin:0;max-width:75ch}.diagnostic-entry-score{color:#e7cb8c!important;font-weight:700;margin-top:8px!important;font-size:12px!important}.diagnostic-entry-actions{display:flex;flex-direction:column;align-items:flex-start;gap:7px;max-width:260px}.diagnostic-entry-actions small{color:#8fa8b4;font-size:10px;line-height:1.45}.diagnostic-tag{display:inline-flex;align-items:center;border:1px solid #5d9c80;background:#173f39;color:#a8f0cb;border-radius:20px;padding:3px 8px;font-size:9px;font-weight:800;line-height:1.35;max-width:100%;overflow-wrap:anywhere}.diagnostic-intro .callout{margin-top:14px;max-width:78ch}.diagnostic-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:16px;align-items:start}.diagnostic-main{min-width:0}.diagnostic-task .answers{margin-top:4px}.diagnostic-submit{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-top:14px}.diagnostic-submit p{margin:3px 0 0}.diagnostic-report{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}.diagnostic-report.success{border-color:#5c977e;background:linear-gradient(140deg,#173c36,#112b2c)}.diagnostic-report.warning{border-color:#a27b4d;background:linear-gradient(140deg,#3a3227,#27291f)}.diagnostic-report h2{font-family:Georgia,serif;font-size:27px;font-weight:500;margin:2px 0}.diagnostic-report p{color:#c3d3d9;font-size:13px;line-height:1.65;margin:0;max-width:80ch}.diagnostic-report .mastery-stats{margin-top:6px}.diagnostic-gaps{border-top:1px solid #ffffff1f;margin-top:8px;padding-top:10px}.diagnostic-gaps h3{font-size:13px;margin:0 0 6px;color:#f0d39a}.diagnostic-gaps ul{margin:0;padding-left:18px;display:grid;gap:4px}.diagnostic-gaps li{font-size:12px;color:#c3d3d9}.diagnostic-gaps .inline-action{font-size:12px;min-height:32px}.diagnostic-no-gaps{color:#a8f0cb!important;font-weight:700}.diagnostic-answer{color:#b9cbd3;font-size:12px;line-height:1.55;margin:0}.diagnostic-answer strong{color:#e7cb8c}.diagnostic-results{display:flex;flex-direction:column;gap:0}.diagnostic-results .diagnostic-task{margin:10px 0}
@media(max-width:990px){.diagnostic-layout{grid-template-columns:minmax(0,1fr)}.diagnostic-entry{grid-template-columns:minmax(0,1fr)}.diagnostic-entry-actions{max-width:none}}
@media(max-width:700px){.diagnostic-entry{padding:16px;margin:16px 0}.diagnostic-entry-actions .btn{width:100%}.diagnostic-submit{flex-direction:column;align-items:stretch}.diagnostic-submit .btn{width:100%}.diagnostic-report h2{font-size:23px}.diagnostic-report .mastery-stats{grid-template-columns:1fr}.diagnostic-tag{white-space:normal}.diagnostic-task{padding:16px}.diagnostic-task h3{font-size:19px}}

/* S6: multiple entry diagnostics. */
.diagnostic-stack{display:grid;gap:12px;margin:22px 0}.diagnostic-stack .diagnostic-entry{margin:0}

.diagnostic-values{white-space:normal!important;font-size:12px!important;text-align:right}
