/* Sahasra Apps: shared look for the all-ages web apps (Daily Brain Gym, Typing Quest, Money Smart).
   Same colors and fonts as sahasraapps.com. Each app sets --app (its accent) on <html>. */
:root{--bg:#F6F7FC;--surface:#FFFFFF;--surface2:#EEF1FA;--ink:#141A3A;--muted:#4F567A;--line:#DDE1F0;--accent:#1F5FD1;
 --gold:#F7A51C;--gold-ink:#0B1446;--ok:#0B6E45;--ok-soft:#E2F5EC;--bad:#B42318;--bad-soft:#FDECEA;--band1:#0B1446;--band2:#2A1A77;
 --app:#1F5FD1;--app-soft:color-mix(in srgb,var(--app) 12%,var(--surface));--app-ink:var(--app);
 --shadow:0 1px 2px rgba(11,20,70,.06),0 8px 24px rgba(11,20,70,.08);--r:18px}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){--bg:#0A1030;--surface:#131B45;--surface2:#1A2356;--ink:#EEF0FF;--muted:#AEB4D6;--line:#26306A;
 --accent:#8DBBFF;--ok:#5FD7A0;--ok-soft:#123A2C;--bad:#FF8A80;--bad-soft:#3A1620;--app-ink:color-mix(in srgb,var(--app) 45%,#fff);--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35)}}
:root[data-theme="dark"]{--bg:#0A1030;--surface:#131B45;--surface2:#1A2356;--ink:#EEF0FF;--muted:#AEB4D6;--line:#26306A;
 --accent:#8DBBFF;--ok:#5FD7A0;--ok-soft:#123A2C;--bad:#FF8A80;--bad-soft:#3A1620;--app-ink:color-mix(in srgb,var(--app) 45%,#fff);--shadow:0 1px 2px rgba(0,0,0,.3),0 8px 24px rgba(0,0,0,.35)}
*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.55 "Nunito Sans",system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh}
h1,h2,h3{font-family:Fraunces,Georgia,serif;font-weight:700;line-height:1.2;margin:0}
a{color:var(--accent)}
button{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px;border-radius:8px}
.sr{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip{position:absolute;left:-9999px;top:8px;background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:10px;z-index:20}.skip:focus{left:16px}

/* top bar */
.bar{background:linear-gradient(160deg,var(--band1) 0%,#101E63 60%,var(--band2) 100%);color:#fff}
.bar .in{max-width:980px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.bar .home{display:flex;align-items:center;gap:8px;color:#C9CEF0;text-decoration:none;font-weight:700;font-size:14px}
.bar .home img{width:28px;height:28px;border-radius:8px}
.bar .title{display:flex;align-items:center;gap:10px;font:700 22px/1.1 Fraunces,Georgia,serif;color:#fff;margin-right:auto;text-decoration:none}
.bar .title .ic{display:grid;place-items:center;width:38px;height:38px;border-radius:11px;background:var(--app);font-size:22px}
.bar .stats{display:flex;gap:8px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:4px 12px;font-weight:800;font-size:14px;color:#fff;white-space:nowrap}
nav.tabs{max-width:980px;margin:0 auto;padding:0 16px;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
nav.tabs::-webkit-scrollbar{display:none}
nav.tabs[hidden]{display:none}
nav.tabs button{background:none;border:0;border-bottom:3px solid transparent;color:#C9CEF0;font-weight:800;padding:10px 12px;cursor:pointer;white-space:nowrap}
nav.tabs button[aria-selected="true"]{color:#fff;border-bottom-color:var(--gold)}
nav.tabs button:hover{color:#fff}

main{max-width:980px;margin:0 auto;padding:20px 16px 48px}
section[hidden]{display:none!important}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));gap:14px}
.grid.two{grid-template-columns:repeat(auto-fit,minmax(min(100%,360px),1fr))}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow)}
.card h2{font-size:22px;margin-bottom:6px}.card h3{font-size:19px;margin-bottom:4px}
.card p{margin:0 0 10px}
.muted{color:var(--muted)}
.small{font-size:14px}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.spread{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.stack>*+*{margin-top:12px}
.hero{background:var(--app-soft);border:1px solid color-mix(in srgb,var(--app) 25%,var(--line));border-radius:22px;padding:22px;display:grid;gap:10px}
.hero h1{font-size:clamp(26px,4.6vw,36px)}
.eyebrow{font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--app-ink)}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:10px 18px;border-radius:12px;border:0;background:var(--gold);color:var(--gold-ink);font-weight:800;cursor:pointer;text-decoration:none}
.btn:hover{filter:brightness(1.05)}
.btn.app{background:var(--app);color:#fff}
.btn.alt{background:var(--surface);color:var(--ink);border:1px solid var(--line)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.btn.sm{min-height:36px;padding:6px 12px;font-size:15px;border-radius:10px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.chip{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:800;padding:3px 10px;border-radius:999px;background:var(--surface2);color:var(--muted);border:1px solid var(--line)}
.chip.ok{background:var(--ok-soft);color:var(--ok);border-color:transparent}
.chip.app{background:var(--app-soft);color:var(--app-ink);border-color:transparent}

.seg{display:inline-flex;background:var(--surface2);border:1px solid var(--line);border-radius:12px;padding:3px;gap:3px;flex-wrap:wrap}
.seg button{border:0;background:none;padding:6px 12px;border-radius:9px;font-weight:800;cursor:pointer;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(0,0,0,.12)}

.meter{height:10px;border-radius:999px;background:var(--surface2);overflow:hidden;border:1px solid var(--line)}
.meter>i{display:block;height:100%;background:var(--app);border-radius:999px;transition:width .3s}

.stat{display:grid;gap:2px}.stat b{font:700 28px/1.1 Fraunces,Georgia,serif}.stat span{color:var(--muted);font-size:14px;font-weight:700}
.stats4{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px}

.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:10px}
.choice{min-height:52px;padding:10px 14px;border-radius:14px;border:2px solid var(--line);background:var(--surface);font-weight:800;font-size:18px;cursor:pointer;text-align:center}
.choice:hover:not(:disabled){border-color:var(--app)}
.choice.right{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}
.choice.wrong{border-color:var(--bad);background:var(--bad-soft);color:var(--bad)}
.choice:disabled{cursor:default}

.feedback{border-radius:14px;padding:12px 14px;font-weight:700}
.feedback.ok{background:var(--ok-soft);color:var(--ok)}
.feedback.bad{background:var(--bad-soft);color:var(--bad)}

input[type=text],input[type=number],select{font:inherit;color:var(--ink);background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-height:46px;width:100%}
label.f{display:grid;gap:4px;font-weight:700;font-size:15px}
label.f span.h{font-weight:400;color:var(--muted);font-size:13px}

.cal{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal i{aspect-ratio:1;border-radius:8px;background:var(--surface2);border:1px solid var(--line);display:grid;place-items:center;font-style:normal;font-size:12px;font-weight:800;color:var(--muted)}
.cal i.on{background:var(--app);border-color:var(--app);color:#fff}
.cal i.today{outline:2px solid var(--gold);outline-offset:1px}

.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}
.badge{display:grid;justify-items:center;gap:4px;text-align:center;padding:12px 8px;border-radius:14px;border:1px solid var(--line);background:var(--surface);font-size:13px;font-weight:800}
.badge .b{font-size:30px;line-height:1}
.badge.off{opacity:.45;filter:grayscale(1)}

table.t{width:100%;border-collapse:collapse;font-size:15px}
table.t th,table.t td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
table.t th{color:var(--muted);font-size:13px;text-transform:uppercase;letter-spacing:.05em}
.tablewrap{overflow-x:auto}

.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:12px;font-weight:800;opacity:0;transition:.25s;z-index:50;pointer-events:none;max-width:calc(100% - 32px);text-align:center}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}

footer.ft{max-width:980px;margin:0 auto;padding:20px 16px 40px;color:var(--muted);font-size:14px;display:flex;gap:8px 18px;flex-wrap:wrap;justify-content:space-between;border-top:1px solid var(--line)}
footer.ft a{color:var(--muted);font-weight:700}
footer.ft nav{display:flex;gap:6px 16px;flex-wrap:wrap}

.timer{height:6px;border-radius:999px;background:var(--surface2);overflow:hidden}
.timer>i{display:block;height:100%;background:var(--gold);transition:width .2s linear}
.big{font:700 clamp(30px,7vw,48px)/1.1 Fraunces,Georgia,serif}
.center{text-align:center}
.pop{animation:pop .35s ease}
@keyframes pop{0%{transform:scale(.92);opacity:.4}100%{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
@media (max-width:520px){.bar .title{font-size:19px}.bar .title .ic{width:32px;height:32px;font-size:18px}.card{padding:14px}.hero{padding:16px}}

/* profiles ("Who's using this?") */
.who-btn{cursor:pointer;font:inherit;font-weight:800;font-size:14px;max-width:170px;overflow:hidden;text-overflow:ellipsis}
.who-btn:hover{background:rgba(255,255,255,.18)}
.who-ov{position:fixed;inset:0;background:rgba(6,10,40,.55);display:grid;place-items:center;z-index:60;padding:16px;overflow-y:auto}
.who-box{width:min(520px,100%);display:grid;gap:14px;max-height:calc(100vh - 32px);overflow-y:auto}
.who-box h2{font-size:24px}
.who-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}
.who-p{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:14px;border:2px solid var(--line);background:var(--surface);cursor:pointer;font-weight:800;text-align:left;min-height:56px}
.who-p:hover{border-color:var(--app)}
.who-p.on{border-color:var(--app);background:var(--app-soft)}
.who-p .av{font-size:28px;line-height:1}
.who-p small{display:block;font-size:12px;color:var(--muted);font-weight:700}
.who-new{border-top:1px solid var(--line);padding-top:14px}
.who-av{display:flex;flex-wrap:wrap;gap:6px}
.who-av button{width:42px;height:42px;border-radius:12px;border:2px solid var(--line);background:var(--surface);font-size:22px;cursor:pointer;padding:0}
.who-av button[aria-pressed="true"]{border-color:var(--app);background:var(--app-soft)}
.who-err{color:var(--bad);font-weight:700;margin:0;min-height:0}
.who-err:empty{display:none}
