/* Elysium v2 — styles added on top of legacy.css. Same tokens, same visual identity. */

#toast{position:fixed;left:50%;bottom:30px;transform:translateX(-50%);background:#0E2A66;color:#fff;border:1px solid var(--line);padding:11px 18px;border-radius:6px;font-family:var(--sans);font-size:13px;z-index:60;box-shadow:0 10px 30px rgba(0,0,0,.5);opacity:0;transition:opacity .25s;pointer-events:none}
a{color:var(--gold-bright)}
.v2link{font-family:var(--sans);font-size:12px;color:var(--gold-bright);text-decoration:none;border-bottom:1px solid rgba(248,222,148,.35)}
.v2link:hover{color:#fff;border-color:#fff}
.v2select{font-family:var(--sans);font-size:12px;color:#fff;background:#1c439f;border:1px solid var(--line);border-radius:4px;padding:6px 9px}
.v2note,.empty{font-family:var(--sans);font-size:13px;color:var(--ink-soft);line-height:1.55}
.empty{font-style:italic}
.sb p.empty{font-family:var(--sans);font-size:13px}
.chk{font-family:var(--sans);font-size:12px;color:var(--ink-soft);display:inline-flex;align-items:center;gap:6px}
.chk input{accent-color:var(--gold)}
.src-tag{font-family:var(--sans);font-size:10.5px;color:var(--ink-soft);letter-spacing:.03em}
.flag{font-family:var(--sans);font-size:10.5px;color:var(--terra);background:rgba(240,145,106,.16);border-radius:4px;padding:1px 7px}
.okflag{font-family:var(--sans);font-size:10.5px;color:var(--green)}
.timerdisp{font-family:var(--roman);font-size:16px;color:var(--gold-bright)}
input[type=text],input[type=search],input[type=number]{font-family:var(--sans);font-size:13px;color:#fff;background:rgba(255,255,255,.10);border:1px solid var(--line);border-radius:3px;padding:9px 11px}
input::placeholder{color:var(--ink-soft)}

/* progress bar: day-numbered, no dates */
.daycolor{display:flex;align-items:center;gap:8px;font-family:var(--sans);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-soft)}
.daycolor i{width:16px;height:16px;border-radius:50%;display:inline-block;border:1.5px solid rgba(255,255,255,.55)}
.daydot{display:inline-block;width:14px;height:14px;border-radius:50%;margin-right:9px;border:1.5px solid rgba(255,255,255,.55);vertical-align:-1px}
.sk .daydot{width:10px;height:10px;margin:0 5px 0 8px}
.day-head{align-items:flex-start;gap:14px;flex-wrap:wrap}
.dayline{font-family:var(--sans);font-size:12.5px;color:var(--ink-soft);margin-top:6px}
.daynav label.dt{text-align:left}
.devbar{margin:14px 26px 0;padding:8px 12px;border:1px dashed var(--line);border-radius:5px;font-family:var(--sans);font-size:12px;color:var(--ink-soft);display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.devbar input{width:64px;padding:5px 7px}
.devbar .navbtn{width:auto;height:auto;padding:5px 10px;font-size:11px}
.pdbanner .pbc b{color:#fff}
.tick:focus-visible{outline:2px solid var(--gold-bright)}
.sb h3{display:flex;align-items:center}

/* technical block */
.instr{font-family:var(--sans);font-size:12.5px;color:#fff;background:rgba(94,134,236,.22);border-left:3px solid var(--cite);border-radius:4px;padding:9px 12px;margin:4px 0 12px;line-height:1.5}
.cluster{border:1px solid var(--line);border-radius:6px;background:var(--card2);padding:13px 15px;margin-top:12px}
.cluster.pulled{border-style:dashed}
.ck,.sk{font-family:var(--roman);font-size:10px;letter-spacing:.2em;color:var(--gold);margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.sk .slot-next,.sk .v2link{letter-spacing:0;font-family:var(--sans)}
.chain{display:flex;flex-wrap:wrap;gap:5px;align-items:center;margin-bottom:8px}
.chain .node{font-family:var(--sans);font-size:12px;color:#fff;background:rgba(255,255,255,.12);border:1px solid var(--line);border-radius:999px;padding:4px 11px}
.chain .arrow{color:var(--gold);font-size:13px}
.litem a.src,.litem .src{text-decoration:none;margin-right:5px}
.litem a.src.ext{background:rgba(255,255,255,.14)}
.litem .pt.first{color:var(--green)} .litem .pt.rep{color:var(--ink-soft)}
.sub-blk{margin-top:16px;border:1px solid var(--line-soft);border-radius:6px;background:rgba(0,0,0,.12);padding:13px 15px}
.sub-blk p{font-family:var(--sans);font-size:13px;color:#dfe7fb;line-height:1.55;margin-bottom:6px}
.sub-blk p b{color:#fff}
.sub-blk .rules{color:var(--gold-bright);font-size:12px}
.sub-blk .egs{color:var(--ink-soft);font-style:italic;font-size:12.5px}
.drills{margin:4px 0 0;padding-left:22px}
.drills li{font-family:var(--sans);font-size:13.5px;color:#fff;padding:7px 0;border-bottom:1px dashed var(--line-soft)}
.drills li:last-child{border-bottom:none}
.drills .dq{margin-bottom:6px;line-height:1.5;white-space:pre-wrap}
.da{display:none;font-family:var(--sans);font-size:12.5px;color:#dfe7fb;background:rgba(0,0,0,.2);border-radius:5px;padding:9px 11px;margin-top:7px;line-height:1.55}
.da.show{display:block} .da b{color:var(--green);font-size:14px}

/* small buttons: marks, reveal, dictate */
.marks{display:flex;gap:7px;flex-wrap:wrap;align-items:center;margin-top:9px}
.mk{font-family:var(--sans);font-size:11.5px;font-weight:600;border-radius:4px;padding:6px 11px;cursor:pointer;border:1px solid var(--line);background:var(--card);color:#fff;text-decoration:none}
.mk:hover{filter:brightness(1.12)}
.mk.got{border-color:var(--green);color:var(--green)} .mk.got.on{background:var(--green);color:#10331F}
.mk.shaky{border-color:var(--gold);color:var(--gold-bright)} .mk.shaky.on{background:var(--gold);color:#163A96}
.mk.missed{border-color:var(--terra);color:var(--terra)} .mk.missed.on{background:var(--terra);color:#3a1505}
.mk.rec{border-color:var(--terra)} .mk.rec.on{background:var(--terra);color:#1a1a1a}

/* active recall */
.rc{border:1px solid var(--line);border-radius:6px;background:var(--card2);padding:13px 15px;margin-top:10px}
.rc-q{font-family:var(--serif);font-size:18px;color:#fff;line-height:1.4}
.rc textarea,.mq textarea{min-height:60px;font-family:var(--sans);font-size:13.5px;background:rgba(255,255,255,.06)}
.rc-fb,.mq-fb{font-family:var(--sans);font-size:12.5px;color:#dfe7fb;line-height:1.55;white-space:pre-wrap;margin-top:8px}
.rc-fb:empty,.mq-fb:empty{display:none}

/* markets + excel blocks */
.sb p.pull,.pull{font-family:var(--sans);font-size:13px;color:#dfe7fb;margin-top:6px;line-height:1.5}
.srcrow{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:8px}
.srcrow .cite{margin-top:0;text-decoration:none}
.factform,.cardform{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-top:11px}
.factform input[type=text],.cardform input[type=text]{flex:1;min-width:190px}
#mkSource{flex:0 1 190px;min-width:140px}
.saved li>span{flex:1}
.rulebar{font-family:var(--roman);font-size:13px;letter-spacing:.12em;color:#163A96;background:var(--gold);border-radius:3px;padding:8px 13px;display:inline-block;margin-bottom:6px}

/* noji */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:9px;margin-top:10px}
.ncard{border:1px solid var(--line);border-radius:6px;background:var(--card2);padding:10px 12px;display:flex;flex-direction:column;gap:6px}
.ncard .nf{font-family:var(--sans);font-size:13px;font-weight:600;color:#fff;line-height:1.4}
.ncard .nb{font-family:var(--sans);font-size:12.5px;color:#dfe7fb;line-height:1.45;border-top:1px dashed var(--line-soft);padding-top:6px;flex:1}
.ncard .nm{display:flex;gap:5px;align-items:center}
.ncard .nm button{margin-left:auto;background:none;border:none;color:var(--terra);cursor:pointer;font-size:15px;line-height:1}
.deck{font-family:var(--sans);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;border-radius:3px;padding:2px 6px;background:var(--cite);color:#fff}
.deck.Lekanis{background:var(--green);color:#10331F} .deck.f{background:rgba(255,255,255,.14);color:var(--ink-soft)}

/* closeout */
button.gate{font:inherit;color:inherit;text-align:left}
.gate.complete{background:rgba(143,208,160,.16);border-color:var(--green)}
.gate.complete:disabled{opacity:.5;cursor:not-allowed;background:var(--card2);border-color:var(--line)}
.gate.complete:disabled:hover{transform:none}

/* mock day */
.mq{border:1px solid var(--line);border-radius:6px;background:var(--card2);padding:13px 15px;margin-top:10px}
.mq-q{font-family:var(--serif);font-size:18px;color:#fff;line-height:1.4}
.mq-video{display:none;width:100%;max-width:420px;border-radius:5px;margin-top:9px;background:#0b1c4c}
.mq-timer{font-family:var(--roman);font-size:15px;color:var(--gold-bright);margin-top:6px;min-height:0}
.mq-key{display:none;font-family:var(--sans);font-size:12.5px;color:#dfe7fb;background:rgba(0,0,0,.2);border-left:3px solid var(--gold);border-radius:4px;padding:9px 11px;margin-top:8px;line-height:1.55}
.mq-key.show{display:block}
.mq-log{font-family:var(--sans);font-size:12px;color:var(--ink-soft);margin-top:8px;line-height:1.5}
.mq-log summary{cursor:pointer;color:var(--gold-bright)}
.gradebar{display:flex;gap:12px;align-items:center;flex-wrap:wrap;padding:18px 26px;border-bottom:1px solid var(--line-soft)}
#mockResult{padding:0 26px}
.mockres{border:1px solid var(--gold);border-radius:6px;background:rgba(242,208,122,.08);padding:14px 16px;margin:14px 0;font-family:var(--sans);font-size:13px;color:#fff;line-height:1.55}
.mockres .score{font-family:var(--roman);font-size:24px;color:var(--gold-bright);margin-right:10px}
.scorechip{display:inline-block;font-size:11.5px;color:var(--ink-soft);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px 10px;margin:6px 5px 0 0}
.scorechip b{color:#fff}
.weak{margin-top:9px}
.weaktag{display:inline-block;font-size:11px;color:var(--terra);background:rgba(240,145,106,.16);border-radius:4px;padding:2px 8px;margin:2px 3px 0 0}
.mt-fb-v2{font-family:var(--sans);font-size:13px;color:#dfe7fb;line-height:1.6;white-space:pre-wrap;margin-top:8px}

/* plan */
.plan{padding:16px 22px 24px}
.pweek{border:1px solid var(--line);border-radius:6px;margin-bottom:14px;overflow:hidden}
.pw-head{display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;padding:11px 14px;background:var(--card2);border-bottom:1px solid var(--line-soft)}
.pw-n{font-family:var(--roman);font-size:11px;letter-spacing:.22em;color:var(--gold)}
.pw-t{font-family:var(--serif);font-size:18px;color:#fff}
.pw-note{font-family:var(--sans);font-size:11px;color:var(--terra)}
.pday{display:flex;gap:14px;padding:11px 14px;border-bottom:1px solid var(--line-soft)}
.pday:last-child{border-bottom:none}
.pday[data-day]{cursor:pointer} .pday[data-day]:hover{background:rgba(255,255,255,.05)}
.pday.cur{background:rgba(248,222,148,.12)}
.pday.mock{background:rgba(240,145,106,.07)}
.pd-n{flex:0 0 64px;font-family:var(--roman);font-size:17px;color:#fff;display:flex;align-items:flex-start}
.pd-n .daydot{margin-top:5px;width:11px;height:11px}
.pd-ck{color:var(--green);font-family:var(--sans);font-size:13px;margin-left:6px}
.pd-b{flex:1;min-width:0}
.pd-row{font-family:var(--sans);font-size:12.5px;color:#dfe7fb;line-height:1.55}
.pd-row b{display:inline-block;min-width:58px;color:var(--gold);font-weight:600;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase}
.pd-mock{font-family:var(--serif);font-size:17px;color:var(--terra)}
.pday.done .pd-row{color:var(--ink-soft)}
.mocklog{margin-bottom:6px}
.ml-h{font-family:var(--serif);font-size:17px;color:#fff}

/* notes tabs + reference pages (formulas, markets, resources) */
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}
.chip{font-family:var(--sans);font-size:12px;color:var(--ink-soft);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:5px 13px;cursor:pointer;user-select:none}
.chip small{opacity:.7;margin-left:3px}
.chip.on{background:rgba(242,208,122,.16);border-color:var(--gold);color:var(--gold-bright)}
.nt-search{width:100%;margin-top:12px}
.nt-link{color:var(--gold-bright);text-decoration:none;border-bottom:1px dotted rgba(248,222,148,.5)}
.nt-q{margin:9px 0}
.nt-q summary{font-family:var(--sans);font-size:12px;color:var(--gold-bright);cursor:pointer}
.nt-card.flash{animation:flash 1.6s ease}
@keyframes flash{0%{background:rgba(248,222,148,.22)}100%{background:transparent}}
#notes .nt-card h3 .ch{font-family:var(--sans);font-size:10px;color:var(--ink-soft);margin-left:8px;letter-spacing:.05em}
#formulas,#markets,#resources{overflow-y:auto}
#formulas .nt-wrap,#markets .nt-wrap,#resources .nt-wrap{max-width:900px;margin:0 auto;padding:26px 26px 60px}
#formulas .nt-head,#markets .nt-head,#resources .nt-head{border-bottom:1px solid var(--line-soft);padding-bottom:16px;margin-bottom:6px}
#formulas .nt-head h2,#markets .nt-head h2,#resources .nt-head h2{font-family:var(--serif);font-weight:500;font-size:27px;color:#fff;line-height:1.2}
.nt-wrap.wide .nt-sub{font-family:var(--sans);font-size:13px;color:var(--ink-soft);margin-top:8px;line-height:1.6}
.nt-wrap.wide .nt-toc{display:flex;flex-wrap:wrap;gap:6px;margin-top:14px}
.nt-wrap.wide .nt-toc a{font-family:var(--sans);font-size:11px;color:var(--gold-bright);background:var(--card);border:1px solid var(--line);border-radius:999px;padding:3px 10px;text-decoration:none}
.fgroup{margin-top:22px}
.fgroup h3,.mk-sec h3{font-family:var(--serif);font-weight:500;font-size:20px;color:var(--gold-bright);margin-bottom:8px}
.fx{display:flex;gap:12px;justify-content:space-between;align-items:baseline;padding:6px 0;border-bottom:1px solid var(--line-soft)}
.fx code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12.5px;color:#dfe9ff;white-space:pre-wrap;flex:1}
.fx a{font-family:var(--sans);font-size:11px;color:var(--ink-soft);text-decoration:none;white-space:nowrap}
.fx a:hover{color:var(--gold-bright)}
.fx-del{background:none;border:none;color:var(--terra);cursor:pointer;font-family:var(--sans);font-size:11px}

.refresh{font-family:var(--sans);font-size:12px;color:#163A96;background:var(--gold);border-radius:4px;padding:6px 11px;display:inline-block;margin-top:12px}
.mk-sec{margin-top:26px;padding-top:18px;border-top:1px solid var(--line-soft);scroll-margin-top:16px}
.mk-note{font-family:var(--sans);font-size:12.5px;color:var(--ink-soft);line-height:1.55;margin-bottom:10px}
.mk-row{display:grid;grid-template-columns:190px 150px 1fr;gap:12px;padding:10px 0;border-bottom:1px solid var(--line-soft);font-family:var(--sans);font-size:13px;color:#dfe7fb;line-height:1.5}
.mk-l{font-family:var(--sans);font-weight:600;font-size:13.5px;color:#fff}
.mk-v{font-family:var(--roman);font-size:16px;color:var(--gold-bright)}
.mk-v .tbd{font-family:var(--sans);font-size:11px;color:var(--ink-soft);font-style:italic}
.mk-src{font-size:11px;color:var(--ink-soft);margin-top:4px}
.mk-src a{color:var(--ink-soft)}
.st{border-radius:3px;padding:1px 6px;font-size:10px}
.st.ok{background:rgba(143,208,160,.2);color:var(--green)} .st.pdf{background:rgba(255,255,255,.12);color:var(--ink-soft)}
.st.miss{background:rgba(240,145,106,.18);color:var(--terra)} .st.warn{background:rgba(242,208,122,.16);color:var(--gold-bright)}
.mk-th{padding:11px 0;border-bottom:1px solid var(--line-soft)}
.mk-th p{font-family:var(--sans);font-size:13px;color:#dfe7fb;line-height:1.55;margin-top:4px}
.mk-check{color:var(--ink-soft)!important;font-size:12.5px!important} .mk-check b{color:#cdd9f5}
.mk-city{border:1px solid var(--line);border-radius:6px;background:var(--card2);padding:14px 16px;margin-bottom:12px}
.city-name{font-weight:600;font-size:14px!important;width:260px;max-width:100%}
.cf{display:block;margin-top:9px}
.cf span{font-family:var(--sans);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.cf textarea{min-height:44px;margin-top:4px;font-family:var(--sans);font-size:13px}
.fu{margin:4px 0 0 18px}
.fu li{font-family:var(--sans);font-size:12.5px;color:#dfe7fb;line-height:1.6}
.mk-logrow{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px dashed var(--line-soft);font-family:var(--sans);font-size:13px;color:#fff;line-height:1.5}
.mk-logrow button{background:none;border:none;color:var(--terra);cursor:pointer;font-family:var(--sans);font-size:12px}
.rs-row{padding:9px 0;border-bottom:1px solid var(--line-soft);font-family:var(--sans)}
.rs-row>a{font-size:14px;color:#fff;text-decoration:none;font-weight:600}
.rs-row>a:hover{color:var(--gold-bright)}
.rs-n{font-size:12.5px;color:#cdd9f5;margin-top:2px;line-height:1.5}
.rs-u{font-size:10.5px;color:var(--ink-soft);margin-top:2px;word-break:break-all}

/* behavioral tab extras */
.bv-bankwrap{padding:0 24px 26px}
.bank-count{font-family:var(--sans);font-size:13px;color:var(--ink-soft);margin-top:14px}
.bank-count b{color:#fff;font-size:16px}
.bank-list{margin-top:12px;max-height:520px;overflow-y:auto;border:1px solid var(--line-soft);border-radius:6px}
.bank-q{display:flex;justify-content:space-between;gap:12px;padding:8px 12px;border-bottom:1px solid var(--line-soft);font-family:var(--sans);font-size:13px;color:#e7ecfb;line-height:1.45}
.bank-q small{color:var(--ink-soft);white-space:nowrap;font-size:10.5px}
#behav .bv-intro a{color:var(--gold-bright)}

/* materials extras */
.mt-status{font-family:var(--sans);font-size:12px;color:var(--ink-soft)}
.mt-min{width:70px}

@media (max-width:720px){
  #app{padding:14px 12px 70px}
  .sec{padding:16px 14px;gap:11px}
  .day-head{padding:18px 14px 14px}
  .closeout,.gradebar{padding:16px 14px}
  .mk-row{grid-template-columns:1fr;gap:3px}
  .pd-n{flex-basis:46px}
  .plan{padding:12px}
  .devbar,.pdbanner{margin-left:14px;margin-right:14px}
  .tab{padding:7px 9px;font-size:11.5px}
}

.exl{font-family:var(--sans);font-size:11px;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}

.litem a.src{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;vertical-align:bottom}
.litem>div{min-width:0}

.daynav .navbtn{width:auto;height:auto;padding:6px 11px;font-size:11.5px}
.daysrc{margin:0 0 4px}
.daysrc .cite{font-size:11px;padding:3px 9px;background:rgba(255,255,255,.14)}
