*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#0a0a10;
  --s1:#111119;
  --s2:#18181f;
  --s3:#202028;
  --b1:rgba(255,255,255,.06);
  --b2:rgba(255,255,255,.11);
  --b3:rgba(255,255,255,.18);
  --t1:#f0f0f8;
  --t2:#8a8aaa;
  --t3:#44445a;
  --blue:#4f82f5;
  --blue-s:rgba(79,130,245,.14);
  --blue-b:rgba(79,130,245,.3);
  --green:#22c55e;
  --green-s:rgba(34,197,94,.13);
  --green-b:rgba(34,197,94,.3);
  --amber:#f59e0b;
  --amber-s:rgba(245,158,11,.13);
  --amber-b:rgba(245,158,11,.3);
  --purple:#a78bfa;
  --purple-s:rgba(167,139,250,.13);
  --purple-b:rgba(167,139,250,.3);
  --pink:#f472b6;
  --pink-s:rgba(244,114,182,.13);
  --pink-b:rgba(244,114,182,.3);
  --teal:#2dd4bf;
  --teal-s:rgba(45,212,191,.13);
  --teal-b:rgba(45,212,191,.3);
  --red:#f87171;
  --red-s:rgba(248,113,113,.11);
  --r:14px;
  --r-sm:9px;
}
/* ─── LIGHT MODE ─────────────────────────────────────── */
html.light{
  --bg:#f5f5f7;
  --s1:#ffffff;
  --s2:#f0f0f5;
  --s3:#e4e4ec;
  --b1:rgba(0,0,0,.07);
  --b2:rgba(0,0,0,.12);
  --b3:rgba(0,0,0,.18);
  --t1:#0a0a14;
  --t2:#55556a;
  --t3:#9999b0;
  --blue:#3b6ef0;
  --blue-s:rgba(59,110,240,.10);
  --blue-b:rgba(59,110,240,.28);
  --green:#16a34a;
  --green-s:rgba(22,163,74,.10);
  --green-b:rgba(22,163,74,.28);
  --amber:#d97706;
  --amber-s:rgba(217,119,6,.10);
  --amber-b:rgba(217,119,6,.28);
  --purple:#7c3aed;
  --purple-s:rgba(124,58,237,.10);
  --purple-b:rgba(124,58,237,.28);
  --pink:#db2777;
  --pink-s:rgba(219,39,119,.10);
  --pink-b:rgba(219,39,119,.28);
  --red:#dc2626;
  --red-s:rgba(220,38,38,.09);
  --teal:#0d9488;
  --teal-s:rgba(13,148,136,.10);
  --teal-b:rgba(13,148,136,.28);
}
html.light input,
html.light select,
html.light textarea,
html.light button{color:var(--t1)}
html.light ::-webkit-scrollbar-thumb{background:var(--s3)}
html.light .ob-submit{background:linear-gradient(135deg,#3b6ef0,#6d28d9)}
html.light .home-sub-title span{background:linear-gradient(90deg,#3b6ef0,#7c3aed);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
html.light .today-hero{background:linear-gradient(135deg,rgba(59,110,240,.08),rgba(124,58,237,.05));border-color:rgba(59,110,240,.15)}
html.light .sec-card{box-shadow:0 1px 3px rgba(0,0,0,.06)}
html.light .sec-card:hover{box-shadow:0 4px 12px rgba(0,0,0,.1)}
html.light .card{box-shadow:0 1px 2px rgba(0,0,0,.04)}
html.light .unit{box-shadow:0 1px 2px rgba(0,0,0,.04)}
html.light .met{box-shadow:0 1px 2px rgba(0,0,0,.04)}

/* Theme toggle button */
.theme-btn{position:fixed;top:16px;right:62px;z-index:999;width:36px;height:36px;border-radius:50%;border:1px solid var(--b2);background:var(--s1);color:var(--t2);cursor:pointer;font-size:15px;display:flex;align-items:center;justify-content:center;transition:all .2s;box-shadow:0 2px 8px rgba(0,0,0,.15)}
.theme-btn:hover{background:var(--s2);color:var(--t1);transform:scale(1.05)}

html,body{min-height:100vh;background:var(--bg);color:var(--t1);font-family:'Inter',system-ui,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-thumb{background:var(--s3);border-radius:2px}
input,select,textarea,button{font-family:inherit;color:var(--t1)}

/* ─── APP SHELL ─────────────────────────────────────── */
#app{min-height:100vh;overflow-x:hidden}
html,body{overflow-x:hidden;max-width:100%}
.page{max-width:860px;margin:0 auto;padding:40px 28px;overflow-x:clip}
.page-sm{max-width:620px;margin:0 auto;padding:40px 28px}
@media(max-width:600px){.page,.page-sm{padding:24px 16px}}

/* ─── HOME PAGE ──────────────────────────────────────── */
.home-header{margin-bottom:52px}
.home-wordmark{display:flex;align-items:center;gap:12px;margin-bottom:20px}
.home-icon{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#4f82f5,#a78bfa);display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:800;color:#fff;flex-shrink:0}
.home-title{font-size:17px;font-weight:700;color:var(--t1);letter-spacing:-.3px}
.home-sub-title{font-size:30px;font-weight:700;color:var(--t1);letter-spacing:-.6px;line-height:1.2;margin-bottom:10px}
.home-sub-title span{background:linear-gradient(90deg,#4f82f5,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.home-desc{font-size:15px;color:var(--t2);line-height:1.65;max-width:480px}

.section-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
@media(max-width:700px){.section-grid{grid-template-columns:1fr 1fr}}
@media(max-width:440px){.section-grid{grid-template-columns:1fr}}

.sec-card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);padding:22px 20px;cursor:pointer;transition:all .2s;text-align:left;position:relative;overflow:hidden}
.sec-card::before{content:'';position:absolute;top:0;left:0;right:0;height:2px;opacity:0;transition:opacity .2s}
.sec-card:hover{background:var(--s2);border-color:var(--b2);transform:translateY(-1px)}
.sec-card:hover::before{opacity:1}
.sec-card.blue::before{background:linear-gradient(90deg,#4f82f5,#60a5fa)}
.sec-card.green::before{background:linear-gradient(90deg,#22c55e,#4ade80)}
.sec-card.purple::before{background:linear-gradient(90deg,#a78bfa,#c084fc)}
.sec-card.amber::before{background:linear-gradient(90deg,#f59e0b,#fbbf24)}
.sec-card.pink::before{background:linear-gradient(90deg,#f472b6,#fb7185)}
.sec-card.teal::before{background:linear-gradient(90deg,#2dd4bf,#22d3ee)}
.sec-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:19px;margin-bottom:14px}
.sec-icon.blue{background:var(--blue-s)}
.sec-icon.green{background:var(--green-s)}
.sec-icon.purple{background:var(--purple-s)}
.sec-icon.amber{background:var(--amber-s)}
.sec-icon.pink{background:var(--pink-s)}
.sec-icon.teal{background:rgba(45,212,191,.13)}
.sec-name{font-size:14px;font-weight:600;color:var(--t1);margin-bottom:5px}
.sec-desc{font-size:12px;color:var(--t2);line-height:1.55}
.sec-badge{font-size:10px;font-weight:600;padding:2px 7px;border-radius:4px;margin-top:10px;display:inline-block}
.sec-badge.blue{background:var(--blue-s);color:var(--blue)}
.sec-badge.green{background:var(--green-s);color:var(--green)}
.sec-badge.purple{background:var(--purple-s);color:var(--purple)}
.sec-badge.amber{background:var(--amber-s);color:var(--amber)}
.sec-badge.pink{background:var(--pink-s);color:var(--pink)}
.sec-badge.teal{background:rgba(45,212,191,.13);color:#2dd4bf}
.sec-arrow{position:absolute;bottom:18px;right:18px;font-size:14px;color:var(--t3);transition:color .15s,transform .15s}
.sec-card:hover .sec-arrow{color:var(--t2);transform:translateX(2px)}

/* ─── BACK BUTTON + SECTION HEADER ──────────────────── */
.back-btn{display:inline-flex;align-items:center;gap:7px;background:transparent;border:none;color:var(--t2);cursor:pointer;font-size:13px;font-weight:500;padding:0;margin-bottom:28px;transition:color .15s}
.back-btn:hover{color:var(--t1)}
.section-header{margin-bottom:28px}
.section-header-top{display:flex;align-items:center;gap:14px;margin-bottom:6px}
.section-header-icon{width:36px;height:36px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}
.section-header-name{font-size:22px;font-weight:700;color:var(--t1);letter-spacing:-.4px}
.section-header-desc{font-size:13px;color:var(--t2)}

/* ─── INNER TAB BAR ──────────────────────────────────── */
.tab-bar{display:flex;gap:2px;background:var(--s1);border:1px solid var(--b1);border-radius:10px;padding:4px;margin-bottom:24px;overflow-x:auto}
.tab-bar::-webkit-scrollbar{height:0}
.tb{padding:7px 14px;border-radius:7px;border:none;background:transparent;color:var(--t2);cursor:pointer;font-size:12px;font-weight:500;font-family:inherit;transition:all .15s;white-space:nowrap}
.tb:hover{color:var(--t1);background:var(--s2)}
.tb.on{background:var(--s3);color:var(--t1);font-weight:600}

/* ─── CARDS ──────────────────────────────────────────── */
.card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);padding:22px;margin-bottom:14px}
.card:last-child{margin-bottom:0}
.card-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:14px}
.card-inner{background:var(--s2);border-radius:var(--r-sm);padding:14px;border:1px solid var(--b1)}

.g2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.g5{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}
@media(max-width:640px){.g3,.g4,.g5{grid-template-columns:1fr 1fr}}
@media(max-width:420px){.g2,.g3,.g4,.g5{grid-template-columns:1fr}}

/* ─── METRIC TILES ───────────────────────────────────── */
.met{background:var(--s2);border:1px solid var(--b1);border-radius:10px;padding:16px;text-align:center}
.mn{font-size:26px;font-weight:700;color:var(--t1);letter-spacing:-.5px;line-height:1}
.ml{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);margin-top:5px}
.ms{font-size:11px;color:var(--t2);margin-top:3px}

/* ─── PROGRESS BARS ──────────────────────────────────── */
.bar{height:5px;background:var(--s3);border-radius:3px;overflow:hidden}
.bf{height:100%;border-radius:3px;transition:width .4s cubic-bezier(.4,0,.2,1)}

/* ─── TASKS ──────────────────────────────────────────── */
.task{display:flex;align-items:flex-start;gap:11px;padding:12px 0;border-bottom:1px solid var(--b1);cursor:pointer;user-select:none}
.task:last-child{border-bottom:none}
.task:hover .tl{color:var(--t1)}
.cb{width:18px;height:18px;border-radius:5px;flex-shrink:0;margin-top:1px;border:1.5px solid var(--s3);background:var(--s2);display:flex;align-items:center;justify-content:center;transition:all .18s;font-size:10px;font-weight:700;color:var(--green)}
.cb.on{background:var(--green-s);border-color:var(--green)}
.tl{font-size:13px;color:#c0c0d8;line-height:1.45;flex:1;font-weight:400}
.tl.done{color:var(--t3);text-decoration:line-through}
.td{font-size:11px;color:var(--t3);margin-top:3px;line-height:1.5}
.req{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--red);background:var(--red-s);padding:2px 6px;border-radius:4px;flex-shrink:0;margin-top:1px}
.rev-tag{font-size:9px;font-weight:700;text-transform:uppercase;color:var(--purple);background:var(--purple-s);padding:2px 6px;border-radius:4px;flex-shrink:0;margin-top:1px}
.slbl{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--t3);padding:10px 0 6px;margin-top:4px;border-bottom:1px solid var(--b1)}
.slbl:first-child{margin-top:0}

/* ─── ALERTS ─────────────────────────────────────────── */
.alert{border-radius:var(--r-sm);padding:11px 14px;font-size:12px;line-height:1.65;border:1px solid;margin-bottom:12px}
.ai{background:var(--blue-s);border-color:var(--blue-b);color:#93bbfd}
.ao{background:var(--green-s);border-color:var(--green-b);color:#86efac}
.aw{background:var(--amber-s);border-color:var(--amber-b);color:#fcd34d}
.ae{background:var(--red-s);border-color:rgba(248,113,113,.25);color:#fca5a5}
.ap{background:var(--purple-s);border-color:var(--purple-b);color:#c4b5fd}

/* ─── BUTTONS ────────────────────────────────────────── */
.btn{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r-sm);color:var(--t1);padding:8px 14px;cursor:pointer;font-size:12px;font-weight:500;font-family:inherit;transition:all .15s}
.btn:hover{background:var(--s3);border-color:var(--b3)}
.btns{padding:4px 10px;font-size:11px;border-radius:6px}
.btnon{background:var(--s3);border-color:var(--blue);color:var(--blue);font-weight:600}
.btng{background:var(--green-s);border:1px solid var(--green-b);color:var(--green);font-weight:600;padding:9px 20px;border-radius:var(--r-sm)}
.btng:hover{background:rgba(34,197,94,.2)}

/* ─── INPUTS ─────────────────────────────────────────── */
.inp{background:var(--s2);border:1px solid var(--b2);border-radius:var(--r-sm);color:var(--t1);padding:9px 12px;font-size:13px;outline:none;font-family:inherit;width:100%;transition:border-color .15s}
.inp:focus{border-color:rgba(79,130,245,.5);box-shadow:0 0 0 3px rgba(79,130,245,.08)}
select.inp option{background:var(--s2)}
textarea.inp{resize:vertical;min-height:70px}

/* ─── KA UNITS ───────────────────────────────────────── */
.unit{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);margin-bottom:8px;overflow:hidden}
.unit:hover{border-color:var(--b2)}
.uh{display:flex;align-items:center;gap:10px;padding:14px 16px;cursor:pointer;user-select:none}
.uh:hover{background:var(--s2)}
.uname{font-size:13px;font-weight:600;flex:1;color:var(--t1)}
.upct{font-size:12px;font-weight:700;min-width:36px;text-align:right}
.umeta{font-size:10px;color:var(--t3);text-align:right;min-width:70px}
.chv{font-size:10px;color:var(--t3);transition:transform .2s;min-width:12px}
.subs{border-top:1px solid var(--b1)}
.sub-row{padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.03)}
.sub-row:last-child{border-bottom:none}
.sub-row:hover{background:var(--s2)}
.sub-top{display:flex;align-items:center;gap:8px;cursor:pointer;user-select:none;flex-wrap:wrap}
.sub-bottom{display:flex;align-items:center;gap:8px;margin-top:5px;padding-left:26px}
.sn{font-size:12px;color:#b0b0c8;flex:1;min-width:0;line-height:1.4}
.sn.done{color:var(--t3);text-decoration:line-through}
.minibar{width:64px;height:3px;background:var(--s3);border-radius:2px;overflow:hidden;flex-shrink:0}
.minibf{height:100%;border-radius:2px}
.vcnt{font-size:10px;color:var(--t2);font-family:ui-monospace,monospace;white-space:nowrap}
.plus-btn{padding:2px 8px;font-size:11px;border-radius:5px;border:1px solid var(--b2);background:var(--s2);color:var(--t2);cursor:pointer;font-weight:600;transition:all .12s}
.plus-btn:hover{background:var(--s3);color:var(--t1)}

/* ─── BADGES ─────────────────────────────────────────── */
.wbadge{font-size:9px;padding:2px 6px;border-radius:4px;background:var(--s3);color:var(--t3);font-weight:600;flex-shrink:0}
.wbadge.now{background:var(--amber-s);color:var(--amber)}
.sbadge{font-size:9px;padding:2px 6px;border-radius:4px;font-weight:700;white-space:nowrap;flex-shrink:0}
.bbb{background:var(--blue-s);color:var(--blue)}
.bcp{background:var(--amber-s);color:var(--amber)}
.bps{background:var(--purple-s);color:var(--purple)}

/* ─── AAMC ───────────────────────────────────────────── */
.aamc-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--b1)}
.aamc-row:last-child{border-bottom:none}
.fl-bars{display:flex;gap:10px;align-items:flex-end;height:110px}
.fl-bw{flex:1;display:flex;flex-direction:column;align-items:center;gap:5px}
.fl-bbg{width:100%;height:78px;background:var(--s2);border-radius:6px;overflow:hidden;display:flex;align-items:flex-end}
.fl-b{width:100%;border-radius:5px 5px 0 0;transition:height .5s ease}

/* ─── ACTIVITY GRID ──────────────────────────────────── */
.sg{display:grid;grid-template-columns:repeat(28,1fr);gap:3px;margin:10px 0}
.sd{aspect-ratio:1;border-radius:2px;background:var(--s2)}
.sd.done{background:var(--green);opacity:.7}
.sd.today{background:var(--amber)}

/* ─── MISC ───────────────────────────────────────────── */
.step{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--b1)}
.step:last-child{border-bottom:none}
.stepn{font-size:11px;font-weight:600;color:var(--t3);min-width:18px}
.stept{font-size:12px;line-height:1.65;color:#b0b0cc}
.tbl{width:100%;border-collapse:collapse;font-size:12px}
.th{text-align:left;padding:8px 10px;font-size:9px;color:var(--t3);border-bottom:1px solid var(--b2);font-weight:700;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap}
.td2{padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.03);vertical-align:top;font-size:12px}
.nowrow{background:rgba(79,130,245,.06)}
.pastrow .td2{opacity:.4}
.ovr{overflow-x:auto}
.cpc{border-radius:var(--r-sm);padding:12px 14px;margin-bottom:8px;border-left:3px solid var(--b2);background:var(--s2)}
.rev-box{background:var(--purple-s);border:1px solid var(--purple-b);border-radius:10px;padding:14px;margin-bottom:12px}
.rev-box-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--purple);margin-bottom:10px}
.missed-day{background:var(--s1);border:1px solid rgba(248,113,113,.15);border-radius:10px;margin-bottom:8px;overflow:hidden}
.missed-day-hdr{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;user-select:none}
.missed-day-hdr:hover{background:var(--s2)}
.missed-day-name{font-size:13px;font-weight:500;color:var(--t1);flex:1}
.missed-count{font-size:10px;font-weight:700;background:var(--red-s);color:var(--red);padding:2px 8px;border-radius:10px}
.missed-items{border-top:1px solid rgba(248,113,113,.1);padding:4px 0}
.missed-task{display:flex;gap:10px;padding:9px 14px;align-items:flex-start;cursor:pointer;user-select:none}
.missed-task:hover .tl{color:var(--t1)}
.missed-sec{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);padding:5px 14px 3px;background:var(--s2)}
.ka-day-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--b1)}
.ka-day-row:last-child{border-bottom:none}
.mono{font-family:ui-monospace,'Courier New',monospace}
.flex{display:flex;align-items:center;gap:8px}
.flexb{display:flex;align-items:center;justify-content:space-between}
.mt8{margin-top:8px}.mt12{margin-top:12px}.mt16{margin-top:16px}
.mb8{margin-bottom:8px}.mb12{margin-bottom:12px}
.xs{font-size:11px;color:var(--t3)}
.sm{font-size:12px;color:var(--t2);line-height:1.65}
.saved{font-size:11px;color:var(--green);min-height:16px;display:inline-block}
.today-hero{background:linear-gradient(135deg,rgba(79,130,245,.11),rgba(167,139,250,.07));border:1px solid rgba(79,130,245,.18);border-radius:var(--r);padding:24px;margin-bottom:16px}
.focus-card{background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);padding:18px;margin-bottom:14px}
.phase-badge{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;padding:3px 9px;border-radius:20px;text-transform:uppercase;letter-spacing:.06em}
.phase-1{background:var(--blue-s);color:var(--blue)}
.phase-2{background:var(--green-s);color:var(--green)}
.phase-3{background:var(--purple-s);color:var(--purple)}
.phase-4{background:var(--amber-s);color:var(--amber)}
.focus-tag{font-size:11px;font-weight:500;padding:3px 10px;border-radius:5px;background:var(--s2);color:var(--t2);border:1px solid var(--b1)}

/* ─── ONBOARDING ─────────────────────────────────────── */
/* ─── LANDING / ONBOARDING ───────────────────────────── */
.ob-page{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--bg);position:relative;overflow:hidden}

/* Ambient glow orbs */
.ob-page::before{content:'';position:fixed;top:-20%;left:-10%;width:60vw;height:60vw;border-radius:50%;background:radial-gradient(circle,rgba(79,130,245,.13) 0%,transparent 70%);pointer-events:none;animation:orbFloat1 12s ease-in-out infinite}
.ob-page::after{content:'';position:fixed;bottom:-20%;right:-10%;width:50vw;height:50vw;border-radius:50%;background:radial-gradient(circle,rgba(167,139,250,.10) 0%,transparent 70%);pointer-events:none;animation:orbFloat2 15s ease-in-out infinite}
@keyframes orbFloat1{0%,100%{transform:translate(0,0)}50%{transform:translate(4%,3%)}}
@keyframes orbFloat2{0%,100%{transform:translate(0,0)}50%{transform:translate(-3%,-4%)}}

/* ── LANDING SCREEN ── */
.landing{max-width:640px;width:100%;text-align:center;position:relative;z-index:1}
.landing-badge{display:inline-flex;align-items:center;gap:7px;background:var(--blue-s);border:1px solid var(--blue-b);border-radius:20px;padding:5px 14px;font-size:11px;font-weight:600;color:var(--blue);margin-bottom:28px;opacity:0;animation:fadeUp .6s .1s ease forwards}
.landing-badge-dot{width:6px;height:6px;border-radius:50%;background:var(--blue);animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(.8)}}
.landing-wordmark{display:flex;align-items:center;justify-content:center;gap:12px;margin-bottom:20px;opacity:0;animation:fadeUp .6s .2s ease forwards}
.landing-icon{width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,#4f82f5,#a78bfa);display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:800;color:#fff;flex-shrink:0;box-shadow:0 8px 24px rgba(79,130,245,.3)}
.landing-brand{font-size:18px;font-weight:700;color:var(--t1);letter-spacing:-.3px}
.landing-headline{font-size:clamp(32px,6vw,52px);font-weight:700;color:var(--t1);letter-spacing:-.03em;line-height:1.12;margin-bottom:18px;opacity:0;animation:fadeUp .6s .3s ease forwards}
.landing-headline .grad{background:linear-gradient(135deg,#4f82f5 0%,#a78bfa 50%,#f472b6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}
.landing-sub{font-size:16px;color:var(--t2);line-height:1.65;max-width:480px;margin:0 auto 36px;opacity:0;animation:fadeUp .6s .4s ease forwards}

/* Stats ticker row */
.landing-stats{display:flex;justify-content:center;gap:32px;margin-bottom:40px;flex-wrap:wrap;opacity:0;animation:fadeUp .6s .5s ease forwards}
.lstat{text-align:center}
.lstat-n{font-size:28px;font-weight:700;color:var(--t1);letter-spacing:-.5px;line-height:1}
.lstat-l{font-size:11px;color:var(--t3);margin-top:4px;text-transform:uppercase;letter-spacing:.07em}
.lstat-divider{width:1px;background:var(--b2);align-self:stretch;margin:4px 0}

/* CTA button */
.landing-cta{opacity:0;animation:fadeUp .6s .6s ease forwards;margin-bottom:28px}
.landing-btn{display:inline-flex;align-items:center;gap:10px;background:linear-gradient(135deg,#4f82f5,#7c3aed);border:none;border-radius:12px;color:#fff;padding:15px 32px;font-size:15px;font-weight:600;cursor:pointer;font-family:inherit;transition:all .2s;box-shadow:0 8px 32px rgba(79,130,245,.35);letter-spacing:-.1px}
.landing-btn:hover{transform:translateY(-2px);box-shadow:0 12px 40px rgba(79,130,245,.45)}
.landing-btn:active{transform:translateY(0)}
.landing-btn-arrow{font-size:16px;transition:transform .2s}
.landing-btn:hover .landing-btn-arrow{transform:translateX(4px)}

/* Social proof */
.landing-proof{opacity:0;animation:fadeUp .6s .7s ease forwards;display:flex;align-items:center;justify-content:center;gap:6px;font-size:12px;color:var(--t3)}
.landing-proof-stars{color:#f59e0b;letter-spacing:1px;font-size:13px}

/* ── SETUP SCREEN (slide in from right) ── */
.ob-wrap{position:relative;z-index:1;width:100%;max-width:540px;opacity:1;transform:translateX(0);transition:opacity .45s ease,transform .45s ease}
.ob-wrap.slide-in{animation:slideInRight .45s ease forwards}
.ob-card{background:var(--s1);border:1px solid var(--b2);border-radius:18px;padding:36px}
html.light .ob-card{box-shadow:0 20px 60px rgba(0,0,0,.1)}
.ob-logo{text-align:center;margin-bottom:28px}
.ob-icon{width:52px;height:52px;border-radius:14px;background:linear-gradient(135deg,#4f82f5,#a78bfa);display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;color:#fff;margin:0 auto 12px;box-shadow:0 8px 24px rgba(79,130,245,.25)}
.ob-title{font-size:20px;font-weight:700;color:var(--t1);letter-spacing:-.4px;margin-bottom:6px}
.ob-desc{font-size:13px;color:var(--t2);line-height:1.65}
.ob-section{margin-bottom:20px}
.ob-label{font-size:12px;font-weight:500;color:var(--t2);margin-bottom:8px}
.ob-hint{font-size:11px;color:var(--t3);margin-top:5px;line-height:1.5}
.sit-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.sit-btn{background:var(--s2);border:1.5px solid var(--b1);border-radius:10px;padding:13px 14px;cursor:pointer;text-align:left;transition:all .15s;font-family:inherit;width:100%}
.sit-btn:hover{border-color:var(--b2);background:var(--s3)}
.sit-btn.on{border-color:var(--amber);background:var(--amber-s)}
.sit-btn-label{font-size:13px;font-weight:600;color:var(--t1);display:block;margin-bottom:2px}
.sit-btn.on .sit-btn-label{color:var(--amber)}
.sit-btn-sub{font-size:11px;color:var(--t3)}
.hrs-row{display:flex;gap:6px;flex-wrap:wrap}
.hr-btn{flex:1;min-width:66px;background:var(--s2);border:1.5px solid var(--b1);border-radius:8px;padding:9px 4px;cursor:pointer;font-size:12px;font-weight:500;color:var(--t2);font-family:inherit;transition:all .15s;text-align:center}
.hr-btn:hover{border-color:var(--b2);color:var(--t1);background:var(--s3)}
.hr-btn.on{border-color:var(--blue);background:var(--blue-s);color:var(--blue);font-weight:600}
.ob-preview{background:var(--s2);border:1px solid var(--b2);border-radius:8px;padding:13px 14px;font-size:12px;color:var(--t2);line-height:1.8;display:none;margin-bottom:16px}
.ob-submit{width:100%;background:linear-gradient(135deg,#4f82f5,#7c3aed);border:none;border-radius:10px;color:#fff;padding:14px;font-size:14px;font-weight:600;cursor:pointer;font-family:inherit;transition:opacity .15s;letter-spacing:-.1px;margin-top:4px}
.ob-submit:hover{opacity:.88}
.ob-footer{text-align:center;margin-top:14px;font-size:11px;color:var(--t3)}

/* ─── PLACEHOLDER SECTIONS ───────────────────────────── */
.coming-soon{text-align:center;padding:64px 24px}
.cs-icon{font-size:40px;margin-bottom:16px}
.cs-title{font-size:18px;font-weight:700;color:var(--t1);margin-bottom:8px}
.cs-desc{font-size:13px;color:var(--t2);line-height:1.65;max-width:380px;margin:0 auto 24px}
.cs-features{display:flex;flex-direction:column;gap:8px;max-width:320px;margin:0 auto}
.cs-feat{display:flex;align-items:center;gap:10px;background:var(--s1);border:1px solid var(--b1);border-radius:8px;padding:10px 14px;font-size:12px;color:var(--t2);text-align:left}
.cs-feat-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
@keyframes slideInRight{from{opacity:0;transform:translateX(40px)}to{opacity:1;transform:translateX(0)}}
@keyframes countUp{from{opacity:0}to{opacity:1}}

/* ─── SETTINGS ───────────────────────────────────────── */
.setting-row{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--b1)}
.setting-row:last-child{border-bottom:none}
.setting-label{font-size:13px;color:var(--t1);font-weight:500}
.setting-sub{font-size:11px;color:var(--t3);margin-top:2px}

/* ─── JOURNEY SLIDESHOW ──────────────────────────────── */
.journey-shell{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:32px 24px;background:var(--bg);position:relative;overflow:hidden}
.journey-progress-bar{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--blue),var(--purple));transition:width .5s cubic-bezier(.4,0,.2,1);z-index:100}
.journey-counter{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin-bottom:20px;text-align:center}
.slide-icon-wrap{width:80px;height:80px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:38px;margin:0 auto 24px;transition:background .5s ease}
.slide-headline{font-size:clamp(22px,4vw,30px);font-weight:700;color:var(--t1);letter-spacing:-.5px;line-height:1.2;text-align:center;margin-bottom:12px}
.slide-lead{font-size:15px;color:var(--t2);text-align:center;line-height:1.7;margin-bottom:28px;max-width:460px;margin-left:auto;margin-right:auto}
.slide-facts{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;margin-bottom:28px}
.slide-fact{display:flex;align-items:center;gap:8px;background:var(--s1);border:1px solid var(--b1);border-radius:10px;padding:10px 16px;font-size:12px;color:var(--t1);font-weight:500}
.slide-fact-icon{font-size:15px;flex-shrink:0}
.slide-pmos{background:var(--s1);border:1px solid var(--b2);border-radius:12px;padding:14px 18px;display:flex;align-items:center;gap:12px;margin-bottom:28px;max-width:460px;margin-left:auto;margin-right:auto}
.slide-pmos-icon{width:32px;height:32px;border-radius:8px;background:linear-gradient(135deg,#4f82f5,#a78bfa);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;color:#fff;flex-shrink:0}
.slide-pmos-text{font-size:12px;color:var(--t2);line-height:1.55}
.slide-pmos-text strong{color:var(--t1)}
.slide-nav{display:flex;align-items:center;justify-content:space-between;gap:12px;max-width:580px;width:100%}
.slide-nav-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--b2);background:var(--s1);color:var(--t2);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .18s;flex-shrink:0}
.slide-nav-btn:hover{background:var(--s3);color:var(--t1);border-color:var(--b3)}
.slide-nav-center{flex:1;text-align:center}
.slide-dots{display:flex;gap:6px;justify-content:center;margin-bottom:8px}
.slide-dot{width:7px;height:7px;border-radius:50%;background:var(--b2);transition:all .3s;cursor:pointer}
.slide-dot.active{background:var(--blue);transform:scale(1.3)}
.slide-dot.done{background:var(--green)}
.slide-content{transition:opacity .28s ease,transform .28s ease;max-width:580px;width:100%;margin-bottom:32px}
.slide-content.exit-left{opacity:0;transform:translateX(-28px)}
.slide-content.exit-right{opacity:0;transform:translateX(28px)}
.slide-content.enter{opacity:0;transform:translateX(20px)}
.slide-content.enter-left{opacity:0;transform:translateX(-20px)}

/* ─── MCAT SECTION REDESIGN ──────────────────────────── */
/* Phase-aware colors */
.phase-content  { --pc: var(--blue);   --pc-s: var(--blue-s);   --pc-b: var(--blue-b); }
.phase-practice { --pc: var(--purple); --pc-s: var(--purple-s); --pc-b: var(--purple-b); }
.phase-fl       { --pc: var(--amber);  --pc-s: var(--amber-s);  --pc-b: var(--amber-b); }
.phase-taper    { --pc: var(--green);  --pc-s: var(--green-s);  --pc-b: var(--green-b); }

/* MCAT intro screen */
.mcat-intro { max-width:560px;margin:0 auto;padding:8px 0 24px }
.mcat-intro-grid { display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px }
.mcat-phase-card { border-radius:12px;padding:16px;border:1px solid var(--b1);cursor:default }
.mcat-phase-num  { font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-bottom:6px }
.mcat-phase-title{ font-size:14px;font-weight:700;color:var(--t1);margin-bottom:4px }
.mcat-phase-desc { font-size:11px;color:var(--t2);line-height:1.5 }

/* Today redesign */
.today-phase-banner { border-radius:12px;padding:16px 20px;margin-bottom:16px;border:1px solid }
.today-phase-banner .pb-label { font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;margin-bottom:6px;display:flex;align-items:center;gap:8px }
.today-phase-banner .pb-title { font-size:18px;font-weight:700;letter-spacing:-.3px;margin-bottom:4px }
.today-phase-banner .pb-sub   { font-size:13px;line-height:1.6;opacity:.85 }

/* Session block */
.session-block { background:var(--s1);border:1px solid var(--b1);border-radius:12px;margin-bottom:12px;overflow:hidden }
.session-header { display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--b1);background:var(--s2) }
.session-header-icon { width:28px;height:28px;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:13px;flex-shrink:0 }
.session-header-label { font-size:12px;font-weight:700;color:var(--t1);flex:1 }
.session-header-time  { font-size:11px;color:var(--t3);font-weight:500 }
.session-tasks { padding:4px 0 }

/* Task redesign */
.task-row { display:flex;align-items:flex-start;gap:12px;padding:11px 16px;border-bottom:1px solid rgba(255,255,255,.04);cursor:pointer;transition:background .12s }
.task-row:last-child { border-bottom:none }
.task-row:hover { background:var(--s2) }
.task-check { width:18px;height:18px;border-radius:5px;border:1.5px solid var(--b2);background:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;transition:all .18s;font-size:10px;color:var(--green) }
.task-check.done { background:var(--green-s);border-color:var(--green) }
.task-body { flex:1;min-width:0 }
.task-title { font-size:13px;color:var(--t1);font-weight:500;line-height:1.4 }
.task-title.done { color:var(--t3);text-decoration:line-through;font-weight:400 }
.task-detail { font-size:11px;color:var(--t3);margin-top:3px;line-height:1.5 }
.task-badge { font-size:9px;font-weight:700;padding:2px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:.04em;flex-shrink:0;margin-top:1px }
.task-badge.required { background:var(--red-s);color:var(--red) }
.task-badge.review   { background:var(--purple-s);color:var(--purple) }

/* Coach tip box */
.coach-tip { display:flex;gap:12px;background:var(--s1);border:1px solid var(--b1);border-radius:10px;padding:13px 14px;margin-bottom:12px }
.coach-tip-avatar { width:32px;height:32px;border-radius:50%;background:linear-gradient(135deg,var(--blue),var(--purple));display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;color:#fff;font-weight:700 }
.coach-tip-text { font-size:12px;color:var(--t2);line-height:1.65;flex:1 }
.coach-tip-text strong { color:var(--t1) }

/* Progress ring (redesigned) */
.ring-stat { display:flex;align-items:center;gap:12px }
.ring-mini { position:relative;width:52px;height:52px;flex-shrink:0 }

/* Phase card in Plan tab */
.plan-phase-card { border-radius:12px;padding:20px;border:1px solid var(--b1);margin-bottom:12px;position:relative;overflow:hidden }
.plan-phase-card.current-phase { border-width:1.5px }
.plan-phase-card::before { content:'';position:absolute;top:0;left:0;right:0;height:3px }
.plan-week-row { display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--b1);align-items:flex-start }
.plan-week-row:last-child { border-bottom:none }
.plan-week-num { font-size:11px;font-weight:700;color:var(--t3);min-width:52px;padding-top:2px;font-family:ui-monospace,monospace }
.plan-week-content { flex:1 }
.plan-week-title { font-size:13px;font-weight:600;color:var(--t1);margin-bottom:3px }
.plan-week-desc  { font-size:11px;color:var(--t2);line-height:1.5 }
.plan-now-badge  { font-size:9px;font-weight:700;background:var(--amber-s);color:var(--amber);padding:2px 7px;border-radius:4px;flex-shrink:0;margin-top:2px }

/* UWorld protocol steps */
.protocol-step { display:grid;grid-template-columns:32px 1fr;gap:12px;padding:14px 0;border-bottom:1px solid var(--b1) }
.protocol-step:last-child { border-bottom:none }
.protocol-num { width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;flex-shrink:0;margin-top:2px }
.protocol-body-title { font-size:13px;font-weight:700;color:var(--t1);margin-bottom:4px }
.protocol-body-desc  { font-size:12px;color:var(--t2);line-height:1.6 }

/* Log form */
.log-form { background:var(--s1);border:1px solid var(--b1);border-radius:12px;padding:18px;margin-bottom:12px }
.log-field { margin-bottom:14px }
.log-label { font-size:11px;font-weight:600;color:var(--t2);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px }

/* Tab icons */
.mcat-tab-icon { font-size:14px;margin-right:5px }


/* ─── TAB REDESIGN ───────────────────────────────────── */

/* Stat hero row */
.stat-hero { display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:20px }
@media(max-width:600px){.stat-hero{grid-template-columns:1fr 1fr}}
.stat-hero-tile { background:var(--s1);border:1px solid var(--b1);border-radius:12px;padding:16px;position:relative;overflow:hidden;min-width:0;transition:all .18s }
.stat-hero-tile:hover { border-color:var(--b2);transform:translateY(-1px) }
.stat-hero-tile .sht-bar { position:absolute;bottom:0;left:0;right:0;height:3px }
.stat-hero-tile .sht-val { font-size:26px;font-weight:700;letter-spacing:-.5px;line-height:1;margin-bottom:4px }
.stat-hero-tile .sht-label { font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--t3) }
.stat-hero-tile .sht-sub { font-size:11px;color:var(--t2);margin-top:3px }

/* Section divider */
.section-divider { font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--t3);margin:20px 0 10px;display:flex;align-items:center;gap:10px }
.section-divider::after { content:'';flex:1;height:1px;background:var(--b1) }

/* Info callout (replaces alert for coaching) */
.info-callout { border-radius:12px;padding:16px 18px;margin-bottom:16px;display:flex;gap:14px }
.info-callout-icon { font-size:20px;flex-shrink:0;margin-top:1px }
.info-callout-body { flex:1 }
.info-callout-title { font-size:13px;font-weight:700;color:var(--t1);margin-bottom:4px }
.info-callout-text { font-size:12px;color:var(--t2);line-height:1.65 }
.callout-blue { background:var(--blue-s);border:1px solid var(--blue-b) }
.callout-green { background:var(--green-s);border:1px solid var(--green-b) }
.callout-amber { background:var(--amber-s);border:1px solid var(--amber-b) }
.callout-purple { background:var(--purple-s);border:1px solid var(--purple-b) }
.callout-pink { background:var(--pink-s);border:1px solid var(--pink-b) }

/* KA unit cards */
.ka-unit { background:var(--s1);border:1px solid var(--b1);border-radius:12px;margin-bottom:8px;overflow:hidden;transition:border-color .15s }
.ka-unit:hover { border-color:var(--b2) }
.ka-unit-header { display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer }
.ka-unit-header:hover { background:var(--s2) }
.ka-unit-dot { width:10px;height:10px;border-radius:50%;flex-shrink:0 }
.ka-unit-name { font-size:13px;font-weight:600;color:var(--t1);flex:1;min-width:0;overflow-wrap:anywhere }
.ka-unit-meta { display:flex;align-items:center;gap:8px }
.ka-unit-pct { font-size:13px;font-weight:700 }
.ka-unit-chevron { font-size:11px;color:var(--t3);transition:transform .2s }
.ka-unit-bar { height:2px;margin:0 16px 0 }

.ka-sub { padding:10px 16px;border-top:1px solid var(--b1);display:flex;align-items:center;gap:10px }
.ka-sub:first-child { border-top:none }
.ka-sub-check { width:18px;height:18px;border-radius:5px;border:1.5px solid var(--b2);background:transparent;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--green);flex-shrink:0;cursor:pointer;transition:all .18s }
.ka-sub-check.done { background:var(--green-s);border-color:var(--green) }
.ka-sub-name { font-size:12px;color:var(--t1);flex:1;min-width:0;overflow-wrap:anywhere;line-height:1.4 }
.ka-sub-name.done { color:var(--t3);text-decoration:line-through }
.ka-sub-bar { width:60px;height:3px;background:var(--s3);border-radius:2px;overflow:hidden;flex-shrink:0 }
.ka-sub-bar-fill { height:100%;border-radius:2px;transition:width .3s }
.ka-sub-count { font-size:10px;font-family:ui-monospace,monospace;color:var(--t2);min-width:32px;text-align:right }
.ka-sub-btn { width:24px;height:24px;border-radius:6px;border:1px solid var(--b2);background:var(--s2);color:var(--t2);cursor:pointer;font-size:13px;font-weight:700;display:flex;align-items:center;justify-content:center;transition:all .12s;line-height:1 }
.ka-sub-btn:hover { background:var(--s3);color:var(--t1);border-color:var(--b3) }
.ka-sub-link { font-size:10px;font-weight:600;color:var(--blue);background:var(--blue-s);border:1px solid var(--blue-b);border-radius:4px;padding:2px 7px;text-decoration:none;white-space:nowrap;flex-shrink:0 }
.ka-sub-link:hover { background:rgba(79,130,245,.2) }
.ka-week-tag { font-size:9px;font-weight:700;padding:2px 6px;border-radius:4px;white-space:nowrap;flex-shrink:0 }

/* UWorld session log */
.uw-session-form { background:var(--s1);border:1px solid var(--b1);border-radius:12px;padding:20px }
.uw-step-row { display:flex;gap:14px;padding:12px 0;border-bottom:1px solid var(--b1) }
.uw-step-row:last-child { border-bottom:none }
.uw-step-num { width:28px;height:28px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0;margin-top:2px }
.uw-step-title { font-size:13px;font-weight:700;color:var(--t1);margin-bottom:3px }
.uw-step-desc { font-size:12px;color:var(--t2);line-height:1.6 }

/* Accuracy cards */
.acc-card { border-radius:10px;padding:14px;border:1px solid }
.acc-label { font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px }
.acc-desc { font-size:12px;line-height:1.6 }

/* AAMC FL grid */
.fl-grid { display:grid;grid-template-columns:repeat(6,1fr);gap:8px;margin:14px 0 }
.fl-card { background:var(--s2);border:1px solid var(--b1);border-radius:10px;padding:12px 8px;text-align:center;position:relative;overflow:hidden;transition:all .18s }
.fl-card:hover { border-color:var(--b2) }
.fl-card.done { border-color:var(--green-b) }
.fl-card .fl-num { font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--t3);margin-bottom:8px }
.fl-card .fl-score { font-size:20px;font-weight:700;margin-bottom:4px }
.fl-card .fl-inp { width:100%;text-align:center;background:transparent;border:none;outline:none;font-size:18px;font-weight:700;font-family:inherit;color:var(--t1) }
.fl-card .fl-inp::placeholder { color:var(--t3);font-weight:400;font-size:14px }
.fl-card .fl-done-badge { font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;margin-top:6px }
.fl-card .fl-bar-bg { position:absolute;bottom:0;left:0;right:0;height:3px;background:var(--s3) }
.fl-card .fl-bar-fill { height:100%;transition:width .4s ease }

/* Anki phase card */
.anki-phase-strip { border-radius:12px;padding:18px;margin-bottom:16px;border:1px solid }
.anki-rule { display:flex;gap:12px;padding:11px 0;border-bottom:1px solid var(--b1) }
.anki-rule:last-child { border-bottom:none }
.anki-rule-dot { width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:5px }
.anki-rule-title { font-size:13px;font-weight:600;color:var(--t1);margin-bottom:3px }
.anki-rule-desc { font-size:12px;color:var(--t2);line-height:1.6 }

/* Stats chart bars */
.chart-container { background:var(--s1);border:1px solid var(--b1);border-radius:12px;padding:18px;margin-bottom:12px }
.chart-title { font-size:12px;font-weight:700;color:var(--t1);margin-bottom:14px }
.bar-chart { display:flex;align-items:flex-end;gap:4px;height:80px }
.bar-chart-col { flex:1;display:flex;flex-direction:column;align-items:center;gap:4px }
.bar-chart-bar { width:100%;border-radius:3px 3px 0 0;transition:height .3s ease;min-height:2px }
.bar-chart-label { font-size:8px;color:var(--t3);text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100% }

/* Completion meter */
.comp-row { display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--b1) }
.comp-row:last-child { border-bottom:none }
.comp-name { font-size:12px;font-weight:500;color:var(--t1);width:120px;flex-shrink:0 }
.comp-bar-wrap { flex:1;height:5px;background:var(--s3);border-radius:3px;overflow:hidden }
.comp-bar-fill { height:100%;border-radius:3px;transition:width .4s ease }
.comp-val { font-size:12px;font-weight:700;color:var(--t1);min-width:48px;text-align:right }
.comp-sub { font-size:10px;color:var(--t3);min-width:60px;text-align:right }


/* ─── TODAY TAB REDESIGN ─────────────────────────────── */
.daily-card{border-radius:14px;padding:20px;margin-bottom:16px;border:1.5px solid}
.daily-card-eyebrow{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.daily-card-title{font-size:20px;font-weight:700;color:var(--t1);letter-spacing:-.3px;margin-bottom:4px}
.daily-card-sub{font-size:12px;line-height:1.6;opacity:.8}

/* Task item — collapsed by default */
.task-item{display:flex;align-items:flex-start;gap:12px;padding:12px 0;border-bottom:1px solid var(--b1)}
.task-item:last-child{border-bottom:none}
.task-item-check{width:20px;height:20px;border-radius:6px;border:1.5px solid var(--b2);background:transparent;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;transition:all .18s;font-size:11px;color:var(--green);cursor:pointer}
.task-item-check.done{background:var(--green-s);border-color:var(--green)}
.task-item-main{flex:1;min-width:0}
.task-item-label{font-size:13px;font-weight:500;color:var(--t1);line-height:1.4;cursor:pointer}
.task-item-label.done{color:var(--t3);text-decoration:line-through;font-weight:400}
.task-item-detail{font-size:12px;color:var(--t2);line-height:1.6;margin-top:6px;padding-top:6px;border-top:1px solid var(--b1);display:none}
.task-item-detail.open{display:block}
.task-item-time{font-size:10px;font-family:ui-monospace,monospace;color:var(--t3);white-space:nowrap;flex-shrink:0;margin-top:3px}
.task-expand-btn{font-size:10px;color:var(--t3);background:none;border:none;cursor:pointer;padding:0;margin-top:2px;font-family:inherit;text-decoration:underline;text-decoration-color:transparent;transition:color .15s}
.task-expand-btn:hover{color:var(--t2)}

.task-group-header{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--t3);margin:16px 0 8px;display:flex;align-items:center;gap:8px}
.task-group-header::after{content:'';flex:1;height:1px;background:var(--b1)}
.task-group-header:first-child{margin-top:0}

.req-dot{width:6px;height:6px;border-radius:50%;background:var(--red);flex-shrink:0;margin-top:5px}
.rev-dot{width:6px;height:6px;border-radius:50%;background:var(--purple);flex-shrink:0;margin-top:5px}

/* Progress pill */
.progress-pill{display:flex;align-items:center;gap:10px;background:var(--s2);border:1px solid var(--b1);border-radius:10px;padding:10px 14px;margin-bottom:14px}
.progress-pill-ring{flex-shrink:0}
.progress-pill-text{flex:1}
.progress-pill-action{flex-shrink:0}

/* Log form — collapsible */
.log-toggle{display:flex;align-items:center;justify-content:space-between;padding:12px 0;cursor:pointer;user-select:none;border-top:1px solid var(--b1);margin-top:4px}
.log-toggle-label{font-size:12px;font-weight:600;color:var(--t2);display:flex;align-items:center;gap:7px}
.log-toggle-chv{font-size:10px;color:var(--t3);transition:transform .2s}
.log-panel{display:none;padding-top:12px}
.log-panel.open{display:block}
.log-row{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.log-chip{flex:1;min-width:80px}
.log-chip-label{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--t3);margin-bottom:4px}


/* ─── MICRO-INTERACTIONS ─────────────────────────────── */

/* Tab bar: sliding pill indicator */
.tab-bar { position:relative }
.tab-bar::after {
  content:'';
  position:absolute;
  bottom:4px;
  left:0;
  height:calc(100% - 8px);
  border-radius:6px;
  background:var(--s3);
  transition:left .25s cubic-bezier(.4,0,.2,1), width .25s cubic-bezier(.4,0,.2,1);
  pointer-events:none;
  z-index:0;
}
.tb { position:relative; z-index:1 }
.tb.on { color:var(--t1); font-weight:600; background:transparent !important }
.tb:not(.on):hover { background:rgba(255,255,255,.05) !important }
.tb:active { transform:scale(.96) }

/* Page content: fade+slide in on tab switch */
@keyframes tabContentIn {
  from { opacity:0; transform:translateY(8px) }
  to   { opacity:1; transform:translateY(0) }
}
.tab-content-animate { animation:tabContentIn .22s cubic-bezier(.4,0,.2,1) forwards }

/* Checkbox: pop + draw */
@keyframes checkPop {
  0%   { transform:scale(1) }
  40%  { transform:scale(1.28) }
  70%  { transform:scale(.92) }
  100% { transform:scale(1) }
}
@keyframes checkmarkDraw {
  from { stroke-dashoffset:20 }
  to   { stroke-dashoffset:0 }
}
.task-check-anim { animation:checkPop .32s cubic-bezier(.4,0,.2,1) }

/* Task row: strikethrough sweep */
@keyframes strikeSlide {
  from { width:0 }
  to   { width:100% }
}
.task-strike { position:relative; overflow:hidden }
.task-strike::after {
  content:'';
  position:absolute;
  left:0; top:50%;
  height:1.5px;
  background:var(--t3);
  width:0;
  animation:strikeSlide .25s ease forwards;
}

/* Button press ripple */
@keyframes ripple {
  from { transform:scale(0); opacity:.35 }
  to   { transform:scale(3); opacity:0 }
}
.btn-ripple { position:relative; overflow:hidden }
.btn-ripple .ripple-circle {
  position:absolute;
  border-radius:50%;
  background:currentColor;
  width:40px; height:40px;
  margin:-20px;
  pointer-events:none;
  animation:ripple .5s ease-out forwards;
}

/* Section card hover */
.sec-card { will-change:transform }
.sec-card:hover { transform:translateY(-3px) scale(1.01) }
.sec-card:active { transform:translateY(-1px) scale(.99) }

/* Met tile pulse on update */
@keyframes metPulse {
  0%   { background:var(--s2) }
  50%  { background:var(--s3) }
  100% { background:var(--s2) }
}
.met-pulse { animation:metPulse .4s ease }

/* Stat hero tile */
.stat-hero-tile { transition:transform .18s ease, border-color .18s ease }
.stat-hero-tile:hover { transform:translateY(-2px) }

/* KA unit card open/close */
.ka-unit-chevron { transition:transform .22s cubic-bezier(.4,0,.2,1) !important }

/* Log panel slide */
@keyframes slideDown {
  from { opacity:0; max-height:0; padding-top:0 }
  to   { opacity:1; max-height:400px }
}
.log-panel.open { animation:slideDown .25s ease forwards }

/* Progress bar fill */
.bf, .comp-bar-fill, .ka-sub-bar-fill { transition:width .45s cubic-bezier(.4,0,.2,1) }

/* Page-level entrance */
@keyframes pageEnter {
  from { opacity:0; transform:translateY(12px) }
  to   { opacity:1; transform:translateY(0) }
}
.page-animate { animation:pageEnter .3s cubic-bezier(.4,0,.2,1) forwards }

/* FL card score input focus glow */
.fl-inp:focus { outline:none; box-shadow:0 0 0 3px rgba(79,130,245,.25) }

/* Ob-submit shimmer */
@keyframes shimmer {
  from { background-position:200% center }
  to   { background-position:-200% center }
}
.ob-submit {
  background-size:200% auto;
  transition:transform .18s ease, box-shadow .18s ease;
}
.ob-submit:hover {
  transform:translateY(-2px);
  box-shadow:0 8px 28px rgba(79,130,245,.4);
  animation:shimmer 2s linear infinite;
}
.ob-submit:active { transform:translateY(0) }


/* ─── THEME TRANSITION: smooth color morph across the page ── */

/* Every themed element transitions its colors */
html.theme-transitioning *,
html.theme-transitioning *::before,
html.theme-transitioning *::after {
  transition:
    background-color .45s cubic-bezier(.4,0,.2,1),
    background      .45s cubic-bezier(.4,0,.2,1),
    color           .35s cubic-bezier(.4,0,.2,1),
    border-color    .45s cubic-bezier(.4,0,.2,1),
    box-shadow      .45s cubic-bezier(.4,0,.2,1),
    fill            .45s cubic-bezier(.4,0,.2,1),
    stroke          .45s cubic-bezier(.4,0,.2,1) !important;
}

/* Cosmetic ripple ring — transparent inside, just a visible wave */
#theme-ripple {
  position: fixed;
  z-index: 99999;
  pointer-events: none;
  border-radius: 50%;
  border: 3px solid transparent;
  transform: translate(-50%, -50%);
  width: 0; height: 0;
  opacity: 0;
  transition: none;
}
#theme-ripple.expanding {
  width: 500vmax; height: 500vmax;
  opacity: 0;
  transition:
    width  .65s cubic-bezier(.2,0,.4,1),
    height .65s cubic-bezier(.2,0,.4,1),
    opacity .3s ease .35s;
}

/* Theme button: rotate icon on switch */
.theme-btn {
  transition: all .2s cubic-bezier(.4,0,.2,1) !important;
}
.theme-btn .theme-icon {
  display: inline-block;
  transition: transform .4s cubic-bezier(.4,0,.2,1), opacity .3s ease;
}
.theme-btn.spinning .theme-icon {
  transform: rotate(360deg);
  opacity: 0.5;
}


/* ─── POLISH & ACCESSIBILITY ─────────────────────────── */

/* Smooth scroll */
html { scroll-behavior: smooth }

/* Focus rings for accessibility */
button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible {
  outline: 2px solid var(--blue);
  outline-offset: 2px;
}

/* Prevent text selection on interactive elements */
button, .sec-card, .tb, .task-item, .ka-unit-header { user-select:none }

/* Better mobile tap targets */
@media(max-width:600px){
  .tb { padding:8px 10px; font-size:11px }
  .task-item { padding:14px 0 }
  .sec-card { padding:18px 16px }
}

/* Safe area padding for notched phones */
@supports(padding:env(safe-area-inset-bottom)){
  .page,.page-sm { padding-bottom:calc(28px + env(safe-area-inset-bottom)) }
}

/* Ensure inputs readable in light mode */
html.light input::placeholder,
html.light textarea::placeholder { color:var(--t3) }

/* Card inner shadow lift on light mode */
html.light .card { box-shadow:0 1px 3px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.04) }
html.light .stat-hero-tile { box-shadow:0 1px 3px rgba(0,0,0,.07) }
html.light .sec-card { box-shadow:0 2px 8px rgba(0,0,0,.07) }
html.light .sec-card:hover { box-shadow:0 6px 20px rgba(0,0,0,.12) }

/* Loading state for app div */
#app:empty::after {
  content:'';
  position:fixed;inset:0;
  background:var(--bg);
  z-index:1;
}
/* ─── AUTH / LOGIN SCREEN ──────────────────────────────────────────── */
.auth-wrap{
  min-height:100vh;min-height:100dvh;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:18px;padding:24px;
  padding-top:max(24px,env(safe-area-inset-top));
  padding-bottom:max(24px,env(safe-area-inset-bottom));
}
.auth-card{
  width:100%;max-width:380px;
  background:var(--s1);border:1px solid var(--b1);border-radius:var(--r);
  padding:28px 24px;
  box-shadow:0 20px 60px rgba(0,0,0,.35);
}
.auth-logo{font-size:24px;font-weight:700;color:var(--t1);letter-spacing:-.5px}
.auth-sub{font-size:13px;color:var(--t2);margin:6px 0 22px;line-height:1.5}
.auth-google{
  width:100%;display:flex;align-items:center;justify-content:center;gap:10px;
  padding:11px 14px;border-radius:var(--r-sm);
  border:1px solid var(--b2);background:var(--s2);color:var(--t1);
  font-family:inherit;font-size:14px;font-weight:500;cursor:pointer;
  transition:background .15s,border-color .15s;
}
.auth-google:hover{background:var(--s3);border-color:var(--b3)}
.auth-google:disabled{opacity:.6;cursor:default}
.auth-divider{display:flex;align-items:center;gap:12px;margin:18px 0;color:var(--t3);font-size:12px}
.auth-divider::before,.auth-divider::after{content:"";flex:1;height:1px;background:var(--b1)}
.auth-label{display:block;font-size:12px;font-weight:500;color:var(--t2);margin:0 0 6px}
.auth-input{
  width:100%;padding:11px 13px;margin-bottom:14px;
  border-radius:var(--r-sm);border:1px solid var(--b2);
  background:var(--bg);color:var(--t1);
  font-family:inherit;font-size:14px;outline:none;
  transition:border-color .15s,box-shadow .15s;
}
.auth-input:focus{border-color:var(--blue-b);box-shadow:0 0 0 3px var(--blue-s)}
.auth-submit{
  width:100%;padding:12px 14px;margin-top:4px;
  border:none;border-radius:var(--r-sm);
  background:var(--blue);color:#fff;
  font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;
  transition:filter .15s;
}
.auth-submit:hover{filter:brightness(1.08)}
.auth-submit:disabled{opacity:.65;cursor:default}
.auth-msg{font-size:12.5px;line-height:1.45;margin:2px 0 12px;display:none}
.auth-msg.show{display:block}
.auth-msg.err{color:var(--red)}
.auth-msg.ok{color:var(--green)}
.auth-msg code{background:var(--s3);padding:1px 5px;border-radius:4px;font-size:12px}
.auth-toggle{text-align:center;margin-top:18px;font-size:13px;color:var(--t2)}
.auth-link{background:none;border:none;color:var(--blue);font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;padding:0}
.auth-link:hover{text-decoration:underline}
.auth-footnote{font-size:11.5px;color:var(--t3)}

/* ─── ACCOUNT BADGE (sync status + sign out) ───────────────────────── */
#acct-badge{
  position:fixed;z-index:9000;
  top:16px;right:16px;
}
.acct-toggle{
  display:flex;align-items:center;gap:6px;
  width:36px;height:36px;justify-content:center;
  border-radius:50%;border:1px solid var(--b2);
  background:var(--s1);color:var(--t1);
  font-family:inherit;font-size:14px;font-weight:600;cursor:pointer;
  position:relative;box-shadow:0 4px 14px rgba(0,0,0,.25);
}
.acct-toggle:hover{background:var(--s3)}
.acct-initial{line-height:1}
.acct-dot{
  position:absolute;top:-2px;right:-2px;
  width:10px;height:10px;border-radius:50%;
  border:2px solid var(--bg);background:var(--t3);
}
.acct-dot.status-synced{background:var(--green)}
.acct-dot.status-saving{background:var(--amber)}
.acct-dot.status-offline{background:var(--t3)}
.acct-dot.status-error{background:var(--red)}
.acct-menu{
  position:absolute;top:42px;right:0;width:208px;
  background:var(--s1);border:1px solid var(--b2);border-radius:var(--r-sm);
  padding:12px;box-shadow:0 12px 40px rgba(0,0,0,.4);
}
.acct-menu[hidden]{display:none}
.acct-email{font-size:12.5px;color:var(--t1);font-weight:600;word-break:break-all;margin-bottom:4px}
.acct-status{font-size:11.5px;color:var(--t2);margin-bottom:12px}
.acct-signout{
  width:100%;padding:9px;border-radius:var(--r-sm);
  border:1px solid var(--red-s);background:var(--red-s);color:var(--red);
  font-family:inherit;font-size:13px;font-weight:600;cursor:pointer;
}
.acct-signout:hover{filter:brightness(1.1)}

/* ─── CUSTOM TAB: toggles + day pills ──────────────────────────────── */
.toggle-sw{width:44px;height:26px;border-radius:13px;border:none;background:var(--s3);position:relative;cursor:pointer;flex-shrink:0;transition:background .18s;padding:0}
.toggle-sw.on{background:var(--green)}
.toggle-knob{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left .18s;box-shadow:0 1px 3px rgba(0,0,0,.3)}
.toggle-sw.on .toggle-knob{left:21px}
.day-row{display:flex;gap:6px;flex-wrap:wrap}
.day-pill{position:relative;cursor:pointer;user-select:none}
.day-pill input{position:absolute;opacity:0;width:0;height:0}
.day-pill span{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border-radius:10px;border:1.5px solid var(--b2);background:var(--s2);color:var(--t2);font-size:12px;font-weight:600;transition:all .15s}
.day-pill input:checked+span{background:var(--blue-s);border-color:var(--blue-b);color:var(--blue)}

/* ─── FULL-LENGTHS: score trend ────────────────────────────────────── */
.fl-trend{display:flex;align-items:flex-end;gap:8px;height:150px;padding-top:10px;overflow-x:auto}
.fl-trend-col{flex:1;min-width:42px;display:flex;flex-direction:column;align-items:center;height:100%;justify-content:flex-end}
.fl-trend-val{font-size:11px;font-weight:700;color:var(--t1);margin-bottom:4px}
.fl-trend-bar{width:100%;max-width:46px;border-radius:6px 6px 0 0;min-height:4px;transition:height .4s ease}
.fl-trend-lbl{font-size:9px;color:var(--t3);margin-top:6px;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* ─── FIRST-RUN: welcome tour ──────────────────────────────────────── */
.tour-overlay{position:fixed;inset:0;z-index:9500;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;padding:20px;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
.tour-card{background:var(--s1);border:1px solid var(--b2);border-radius:18px;max-width:380px;width:100%;padding:28px 24px;text-align:center;box-shadow:0 24px 70px rgba(0,0,0,.5);animation:fadeUp .4s ease}
.tour-icon{font-size:40px;margin-bottom:12px}
.tour-step-count{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--t3);margin-bottom:8px}
.tour-title{font-size:20px;font-weight:700;color:var(--t1);letter-spacing:-.3px;margin-bottom:10px}
.tour-desc{font-size:14px;color:var(--t2);line-height:1.65;margin-bottom:18px}
.tour-dots{display:flex;gap:6px;justify-content:center;margin-bottom:20px}
.tour-dot{width:7px;height:7px;border-radius:50%;background:var(--s3);transition:all .2s}
.tour-dot.on{background:var(--blue);width:20px;border-radius:4px}
.tour-actions{display:flex;align-items:center;justify-content:space-between;gap:10px}
.tour-skip{background:none;border:none;color:var(--t3);font-family:inherit;font-size:13px;cursor:pointer;padding:6px}
.tour-skip:hover{color:var(--t1)}

/* ─── ROADMAP: combined vertical timeline ──────────────────────────── */
.rm-tl{display:grid;grid-template-columns:62px 18px 1fr;column-gap:10px}
.rm-tl-date{font-size:11px;font-weight:700;text-align:right;padding-top:1px;white-space:nowrap}
.rm-tl-mid{display:flex;flex-direction:column;align-items:center}
.rm-tl-dot{width:11px;height:11px;border-radius:50%;margin-top:3px;flex-shrink:0}
.rm-tl-mid::after{content:"";width:2px;flex:1;background:var(--b1);margin-top:3px;min-height:8px}
.rm-tl:last-child .rm-tl-mid::after{display:none}
.rm-tl-body{padding-bottom:18px;min-width:0}
.rm-tl-title{font-size:13px;font-weight:700;color:var(--t1)}
.rm-tl-desc{font-size:12px;color:var(--t2);line-height:1.55;margin-top:2px;overflow-wrap:anywhere}

/* ─── WRITING: secondaries school grid ─────────────────────────────── */
.sch-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px}
.sch-sq{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:14px 8px;border-radius:12px;border:1px solid var(--b1);background:var(--s2);cursor:pointer;font-family:inherit;transition:all .15s}
.sch-sq:hover{border-color:var(--b3);background:var(--s3);transform:translateY(-1px)}
.sch-sq-av{width:40px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:#fff;flex-shrink:0}
.sch-sq-name{font-size:11.5px;font-weight:600;color:var(--t1);line-height:1.3;overflow-wrap:anywhere}
.sch-sq-meta{font-size:10px;color:var(--t3)}

/* ─── Tab content cross-fade (smooth, no whole-page jolt) ───────────── */
.tabfade{transition:opacity .18s ease}

/* ─── KA rows: never overflow horizontally (wrap controls if cramped) ─ */
.ka-sub{flex-wrap:wrap}
.ka-sub .ka-sub-name{flex:1 1 120px}

/* ─── Dashboard customize modal ────────────────────────────────────── */
.modal-card{background:var(--s1);border:1px solid var(--b2);border-radius:16px;max-width:440px;width:100%;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.5);animation:fadeUp .35s ease;max-height:86vh;overflow-y:auto}
.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}
.modal-title{font-size:16px;font-weight:700;color:var(--t1)}
.modal-x{background:none;border:none;color:var(--t3);font-size:16px;cursor:pointer;font-family:inherit;padding:4px;line-height:1}
.modal-x:hover{color:var(--t1)}
.dash-opt-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
@media(max-width:520px){.dash-opt-grid{grid-template-columns:repeat(2,1fr)}}

/* ─── Brand polish: gradient wordmark + richer icon squares ─────────── */
.home-title,.landing-brand,.auth-logo{
  background:linear-gradient(90deg,#4f82f5,#a78bfa);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
}
html.light .home-title,html.light .landing-brand,html.light .auth-logo{
  background:linear-gradient(90deg,#3b6ef0,#7c3aed);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
}
.home-icon,.landing-icon{background:linear-gradient(135deg,#4f82f5 0%,#a78bfa 55%,#f472b6 100%)}
.auth-logo{font-weight:800;letter-spacing:-.5px}

/* ─── Animated gradient (logo squares + gradient brand/name text) ───── */
@keyframes gradShift{0%{background-position:0% 50%}50%{background-position:100% 50%}100%{background-position:0% 50%}}
.home-icon,.landing-icon,.home-title,.landing-brand,.auth-logo,.home-sub-title span{
  background-size:220% 220%;
  animation:gradShift 7s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce){
  .home-icon,.landing-icon,.home-title,.landing-brand,.auth-logo,.home-sub-title span{animation:none}
}

/* ─── App footer (copyright + legal) ───────────────────────────────── */
.app-footer{margin-top:34px;padding-top:20px;border-top:1px solid var(--b1);text-align:center;font-size:11px;color:var(--t3);line-height:1.9}
.app-footer-links a{color:var(--t2);text-decoration:none}
.app-footer-links a:hover{color:var(--blue)}

/* ─── MCAT status toggle (was unstyled → unreadable in dark mode) ───── */
.mcat-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px}
@media(max-width:480px){.mcat-toggle{grid-template-columns:1fr}}
.mcat-opt{display:flex;flex-direction:column;gap:3px;background:var(--s2);border:1.5px solid var(--b1);border-radius:10px;padding:13px 14px;cursor:pointer;text-align:left;font-family:inherit;width:100%;transition:all .15s}
.mcat-opt:hover{border-color:var(--b2);background:var(--s3)}
.mcat-opt.on{border-color:var(--blue);background:var(--blue-s)}
.mcat-opt-icon{font-size:18px}
.mcat-opt-label{font-size:13px;font-weight:600;color:var(--t1)}
.mcat-opt.on .mcat-opt-label{color:var(--blue)}
.mcat-opt-sub{font-size:11px;color:var(--t3)}
