:root{--ink:#102033;--muted:#718092;--paper:#f5f1e9;--white:#fffdf8;--line:#d9d6cc;--accent:#e65c3f;--teal:#187b78;--yellow:#e6b84b}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,sans-serif}button,input{font:inherit}button{cursor:pointer}.auth-layout{min-height:100vh;display:grid;grid-template-columns:1.05fr .95fr}.auth-intro{padding:52px clamp(32px,8vw,130px);background:var(--ink);color:var(--white);display:flex;flex-direction:column}.brand-mark{font:500 18px 'DM Mono',monospace;letter-spacing:1px}.brand-mark span{color:var(--accent);margin:0 5px}.eyebrow{font:500 11px 'DM Mono',monospace;letter-spacing:1.2px;margin:0}.auth-intro .eyebrow{margin-top:auto;color:#aeb9c4}.auth-intro h1{font-size:clamp(42px,5vw,76px);line-height:1.03;letter-spacing:-2px;margin:16px 0 25px}.auth-intro h1 em{color:#e8c36e;font-style:normal}.intro-copy{max-width:420px;color:#b9c5cf;line-height:1.7;margin:0}.signal{display:flex;align-items:center;gap:13px;margin-top:auto}.signal>span{width:9px;height:9px;background:#69bba1;border-radius:50%;box-shadow:0 0 0 5px #285064}.signal strong,.signal small{display:block}.signal strong{font:500 10px 'DM Mono',monospace;letter-spacing:1px}.signal small{font-size:12px;color:#9eabb6;margin-top:5px}.auth-panel{display:grid;place-items:center;padding:36px}.auth-card{width:min(100%,400px)}.card-kicker{font:500 10px 'DM Mono',monospace;letter-spacing:1px;color:var(--teal)}.card-kicker span{display:inline-block;width:5px;height:5px;background:var(--accent);border-radius:50%;margin-left:5px}.auth-card h2{font-size:36px;letter-spacing:-1px;margin:28px 0 8px}.muted{color:var(--muted);line-height:1.6}.auth-card form{margin-top:34px}.auth-card label{display:block;font-size:12px;font-weight:700;margin:18px 0;color:var(--ink)}input{display:block;width:100%;border:0;border-bottom:1px solid #b8b5ac;background:transparent;padding:13px 0;color:var(--ink);outline:0}input:focus{border-color:var(--accent)}.button{border:0;padding:15px 18px;font-weight:800;display:flex;align-items:center;justify-content:space-between;gap:22px}.button-accent{background:var(--accent);color:white;width:100%;margin-top:30px}.button-light{background:var(--white);color:var(--ink);margin-top:27px}.button-dark{background:var(--ink);color:white}.button:disabled{opacity:.55;cursor:wait}.text-button{background:none;border:0;color:var(--muted);padding:16px 0;font-size:12px}.text-button strong{color:var(--ink)}.form-message{color:var(--accent);font-size:12px;min-height:18px}.privacy-note{color:#95978f;font-size:11px}.app-shell{display:flex;min-height:100vh}.sidebar{background:var(--ink);color:white;width:264px;padding:34px 22px 24px;display:flex;flex-direction:column}.student-chip{display:flex;align-items:center;gap:10px;margin:57px 10px 34px}.avatar{display:grid;place-items:center;width:33px;height:33px;background:var(--yellow);color:var(--ink);font-weight:800}.student-chip strong,.student-chip small{display:block}.student-chip strong{font-size:12px}.student-chip small{font:9px 'DM Mono',monospace;color:#96a7b2;margin-top:4px}.sidebar nav{display:grid;gap:2px}.nav-item{border:0;background:none;color:#9eacb7;text-align:left;padding:11px 10px;font-size:12px;display:flex;gap:11px;align-items:center}.nav-item.active,.nav-item:hover{background:#1a3042;color:white}.nav-index{font:10px 'DM Mono',monospace;color:#547084}.nav-item.active .nav-index{color:var(--accent)}.sign-out{margin-top:auto;background:none;border:0;color:#91a2ae;text-align:left;padding:12px 10px;font-size:12px;display:flex;justify-content:space-between}.workspace{flex:1;min-width:0}.topbar{height:130px;border-bottom:1px solid var(--line);padding:34px clamp(26px,5vw,76px);display:flex;justify-content:space-between;align-items:center}.topbar h1{font-size:22px;margin:10px 0 0;letter-spacing:-.5px}.top-actions{display:flex;gap:24px;align-items:center}.secure-badge{font:10px 'DM Mono',monospace;color:var(--teal)}.secure-badge span{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--teal);margin-right:7px}.icon-button{border:1px solid var(--line);background:transparent;width:34px;height:34px}.content{padding:54px clamp(26px,5vw,76px);max-width:1200px}.welcome-row{display:flex;justify-content:space-between;align-items:flex-end}.welcome-row h2,.module-view h2{font-size:38px;letter-spacing:-1.5px;margin:13px 0 4px}.accent-text{color:var(--accent)}.readiness{border-left:1px solid var(--line);padding-left:28px;min-width:150px}.readiness span,.readiness small{display:block;font:10px 'DM Mono',monospace;color:var(--muted)}.readiness strong{display:block;font-size:44px;line-height:1;margin:10px 0}.readiness strong span{display:inline;font:18px Manrope;color:var(--accent)}.readiness small{color:var(--teal)}.dashboard-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:18px;margin-top:48px}.mission-panel,.baseline-panel{padding:30px;background:var(--ink);color:white;min-height:270px}.baseline-panel{background:#e8c36e;color:var(--ink)}.panel-heading{display:flex;align-items:flex-start;gap:15px}.number-tag{font:12px 'DM Mono',monospace;color:#6f8492}.panel-heading h3{font-size:24px;margin:8px 0}.status-dot{margin-left:auto;border:1px solid #516675;border-radius:20px;padding:6px 9px;font:9px 'DM Mono',monospace;color:#b6c3cb}.mission-copy{max-width:400px;color:#adbbc4;font-size:13px;line-height:1.7;margin:23px 0}.progress-line,.score-bar{height:3px;background:#35495a;margin-top:30px}.progress-line span{height:100%;display:block;background:var(--accent)}.mission-meta{display:flex;justify-content:space-between;margin-top:10px;font:10px 'DM Mono',monospace;color:#93a6b1}.mission-meta strong{color:white}.baseline-panel .eyebrow{color:#65716a}.score{font-size:55px;font-weight:800;letter-spacing:-3px;margin:35px 0 10px}.score span{font-size:17px;font-weight:500;letter-spacing:0;color:#7a785f}.score-bar{background:#d2b45f;margin-top:0}.score-bar span{display:block;height:100%;background:var(--teal)}.metric-row{display:flex;justify-content:space-between;gap:10px;margin-top:27px;font:9px 'DM Mono',monospace;color:#6b6b59}.metric-row b{display:block;font:700 18px Manrope;color:var(--ink);margin-top:4px}.section-heading{display:flex;justify-content:space-between;align-items:end;margin-top:62px}.section-heading h3{margin:12px 0 0;font-size:22px}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:22px}.map-item{border:1px solid var(--line);background:var(--white);text-align:left;padding:22px;min-height:140px;position:relative}.map-item>span{font:10px 'DM Mono',monospace;color:var(--muted)}.map-item strong,.map-item small{display:block}.map-item strong{margin-top:24px;font-size:15px}.map-item small{color:var(--muted);font-size:11px;margin-top:5px}.map-item b{position:absolute;right:20px;top:20px}.map-item.ready{border-top:3px solid var(--teal)}.map-item.warm{border-top:3px solid var(--accent)}.map-item.cool{border-top:3px solid var(--yellow)}.module-view{max-width:700px}.empty-module{margin-top:45px;border-top:1px solid var(--line);padding-top:25px}.empty-module span{font:11px 'DM Mono',monospace;color:var(--accent)}.empty-module strong,.empty-module small{display:block;margin-top:14px}.empty-module small{color:var(--muted);font-size:12px}.practice-result{margin-top:32px;background:var(--white);padding:24px;line-height:1.7}.answer-options{display:grid;gap:8px;margin-top:18px}.answer-options button{background:transparent;border:1px solid var(--line);padding:12px;text-align:left}.authoritative-result{border-top:1px solid var(--line);margin-top:20px;padding-top:18px}.state-screen{min-height:100vh;display:grid;place-content:center;justify-items:center;text-align:center;gap:10px;padding:30px}.state-screen h1{margin:16px 0 0}.state-screen p{color:var(--muted);max-width:380px}.pulse-mark{display:grid;place-items:center;width:55px;height:55px;background:var(--ink);color:var(--yellow);font:14px 'DM Mono',monospace}
@media(max-width:800px){.auth-layout{grid-template-columns:1fr}.auth-intro{min-height:48vh;padding:30px}.auth-intro .eyebrow{margin-top:80px}.auth-intro h1{font-size:45px}.auth-panel{padding:48px 25px}.sidebar{width:65px;padding:25px 10px}.sidebar .brand-mark{font-size:12px}.student-chip,.sidebar nav .nav-item:not(.active)::after,.nav-item:not(.active){font-size:0}.student-chip{margin:55px 6px 25px}.student-chip span:not(.avatar),.nav-index{display:none}.nav-item{justify-content:center;padding:13px 5px}.nav-item.active{font-size:0}.nav-item.active:after{content:'•';font-size:20px;color:var(--accent)}.sign-out{font-size:0;justify-content:center}.sign-out span{font-size:14px}.topbar{height:106px;padding:25px 20px}.topbar h1{font-size:18px}.secure-badge{display:none}.content{padding:35px 20px}.welcome-row{align-items:flex-start;gap:20px}.welcome-row h2,.module-view h2{font-size:30px}.readiness{min-width:90px;padding-left:14px}.readiness strong{font-size:32px}.dashboard-grid,.map-grid{grid-template-columns:1fr}.dashboard-grid{margin-top:35px}.section-heading{margin-top:40px}.section-heading .text-button{padding-bottom:0}.metric-row{gap:5px}.metric-row span{font-size:8px}.metric-row b{font-size:15px}}
/* ===== Mastery Map v0.1 ===== */

.mastery-map {
  margin-top: 32px;
}

.mastery-map .dashboard-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 18px;
  max-width: 980px;
}

.mastery-map .mission-panel {
  min-width: 0;
  min-height: 210px;
  padding: 28px;
  display: flex;
  flex-direction: column;
}

.mastery-map .mission-panel .eyebrow {
  margin: 0 0 12px;
}

.mastery-map .mission-panel h3 {
  margin: 0 0 28px;
  font-size: 1.25rem;
}

.mastery-map .progress-line {
  width: 100%;
  margin: 0 0 16px;
  flex: 0 0 auto;
}

.mastery-map .mission-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  margin-bottom: 12px;
}

.mastery-map .mission-meta span,
.mastery-map .mission-meta strong {
  min-width: 0;
}

.mastery-map .mission-meta strong {
  white-space: nowrap;
  text-align: right;
}

.mastery-map .mission-panel > small {
  display: block;
  margin-top: auto;
  line-height: 1.5;
  opacity: 0.8;
}

@media (max-width: 900px) {
  .mastery-map .dashboard-grid {
    grid-template-columns: 1fr;
  }

  .mastery-map .mission-panel {
    min-height: 190px;
  }
}

@media (max-width: 520px) {
  .mastery-map .mission-panel {
    padding: 22px;
  }

  .mastery-map .mission-meta {
    align-items: flex-start;
    flex-direction: column;
    gap: 6px;
  }

  .mastery-map .mission-meta strong {
    text-align: left;
  }
}
