/* Kompass – Gestaltung „Ruhig“
   Warmes Papier, schlichte weiße Karten, Serifenschrift nur für Überschriften und große Zahlen, eine Akzentfarbe (Salbei).
   Layout: Seitenleiste auf PC/iPad quer, Tab-Leiste unten auf iPhone. */
:root{
  --bg:#F6F3EE; --surface:#FFFFFF; --sunk:#EFE9E1; --line:#ECE5DB;
  --fg:#2A2622; --muted:#8C8378; --ink:#2A2622; --on-ink:#F6F3EE;
  --rose:#F6E1DC; --rose-ink:#8C3B2E; --sage:#E2EDE0; --sage-ink:#3D6340;
  --sky:#DCE6F2; --sky-ink:#2E4F7A; --butter:#F4EBD3; --butter-ink:#6E5313;
  --lav:#E7E2F0; --lav-ink:#4B3F70; --sand:#EEE7DC; --sand-ink:#6B5A44;
  --peach:#F6E5D6; --peach-ink:#8A4A22;
  --accent:#7C9A84; --ok:#5F8A68; --warn:#A8721A; --bad:#B4553E;
  --display:'Newsreader', Georgia, 'Times New Roman', serif;
  --body:'Instrument Sans', 'Segoe UI', system-ui, -apple-system, sans-serif;
  --mono:ui-monospace, 'Cascadia Mono', Menlo, Consolas, monospace;
  --r:16px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#1C1A17; --surface:#262320; --sunk:#2F2B27; --line:#36312C;
  --fg:#ECE6DD; --muted:#A39888; --ink:#F3EEE6; --on-ink:#1C1A17;
  --rose:#40292A; --rose-ink:#F0C2B8; --sage:#283428; --sage-ink:#C3DCC4;
  --sky:#26303D; --sky-ink:#BBD0EA; --butter:#3A3222; --butter-ink:#E9D49C;
  --lav:#312C40; --lav-ink:#D3CAEA; --sand:#342E27; --sand-ink:#E0D2BE;
  --peach:#3F2F26; --peach-ink:#EFC7A6;
  --accent:#9DBBA5; --ok:#9DC4A3; --warn:#E0B060; --bad:#E8907A; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#1C1A17; --surface:#262320; --sunk:#2F2B27; --line:#36312C;
  --fg:#ECE6DD; --muted:#A39888; --ink:#F3EEE6; --on-ink:#1C1A17;
  --rose:#40292A; --rose-ink:#F0C2B8; --sage:#283428; --sage-ink:#C3DCC4;
  --sky:#26303D; --sky-ink:#BBD0EA; --butter:#3A3222; --butter-ink:#E9D49C;
  --lav:#312C40; --lav-ink:#D3CAEA; --sand:#342E27; --sand-ink:#E0D2BE;
  --peach:#3F2F26; --peach-ink:#EFC7A6;
  --accent:#9DBBA5; --ok:#9DC4A3; --warn:#E0B060; --bad:#E8907A; color-scheme:dark}

*{box-sizing:border-box}
html,body{height:100%;margin:0}
body{background:var(--bg);color:var(--fg);font-family:var(--body);font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
h1,h2,h3{font-family:var(--display);font-weight:400;text-wrap:balance;margin:0;color:var(--ink);letter-spacing:-.01em}
h1{font-size:34px;line-height:1.1} h2{font-size:20px} h3{font-size:18px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.muted{color:var(--muted)} .small{font-size:13px}
.eyebrow{font-size:12px;font-weight:500;color:var(--muted)}
.num{font-variant-numeric:tabular-nums}

/* Gerüst */
.app{display:grid;grid-template-columns:230px minmax(0,1fr);min-height:100%}
.side{background:var(--bg);border-right:1px solid var(--line);padding:26px 14px;display:flex;flex-direction:column;gap:2px;position:sticky;top:0;height:100vh;overflow:auto}
.brand{font-family:var(--display);font-size:26px;padding:0 10px 18px;color:var(--ink)}
.brand small{display:block;font-family:var(--body);font-size:12px;color:var(--muted);margin-top:2px}
.nav{display:flex;align-items:center;gap:10px;border:0;background:none;text-align:left;padding:9px 10px;border-radius:12px;font-weight:500;color:var(--muted)}
.nav:hover{color:var(--fg)}
.nav[aria-current="page"]{background:var(--surface);color:var(--fg)}
.nav .ic{width:22px;text-align:center;filter:grayscale(1);opacity:.7}
.nav[aria-current="page"] .ic{filter:none;opacity:1}
.badge{margin-left:auto;font-size:11px;font-weight:600;background:var(--sage);color:var(--sage-ink);border-radius:20px;padding:1px 8px}
.side-foot{margin-top:auto;font-size:12px;color:var(--muted);padding:10px;border-top:1px solid var(--line)}
main{padding-block:24px 110px;padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px));max-width:1120px;width:100%}
.view{display:flex;flex-direction:column;gap:18px}
.head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap}
.tabbar{display:none}

/* Bausteine */
.panel{background:var(--surface);border-radius:var(--r);padding:18px;min-width:0}
.panel > h2{margin-bottom:10px;font-family:var(--body);font-size:13px;font-weight:500;color:var(--muted);letter-spacing:0}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
/* Kennzahlen: weiße Karten, Farbe nur als kleiner Punkt vor dem Titel */
.k{border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:4px;min-width:0;border:0;text-align:left;background:var(--surface)!important;color:var(--fg)!important}
button.k:hover{box-shadow:0 0 0 1px var(--line)}
.k .l{font-size:12px;font-weight:500;color:var(--muted);display:flex;align-items:center;gap:6px}
.k .l::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--kc,var(--line));flex:none}
.k.c-rose{--kc:var(--rose-ink)} .k.c-sky{--kc:var(--sky-ink)} .k.c-lav{--kc:var(--lav-ink)} .k.c-sage{--kc:var(--sage-ink)} .k.c-butter{--kc:var(--butter-ink)} .k.c-sand{--kc:var(--sand-ink)} .k.c-peach{--kc:var(--peach-ink)}
.k .n{font-family:var(--display);font-size:34px;line-height:1.05;font-variant-numeric:tabular-nums;color:var(--ink)}
.k .d{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.list{display:flex;flex-direction:column}
.row{display:flex;align-items:center;gap:10px;padding:9px 0;border-top:1px solid var(--line);min-width:0}
.row:first-child{border-top:0}
.row .grow{flex:1;min-width:0;overflow-wrap:anywhere}
.row.link{cursor:pointer;border-radius:8px}
.row.link:hover{background:var(--sunk)}
.empty{padding:14px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);font-size:14px;text-align:center}
.pill{font-size:11px;font-weight:600;border-radius:20px;padding:3px 9px;white-space:nowrap;display:inline-block}
.c-rose{background:var(--rose);color:var(--rose-ink)} .c-sky{background:var(--sky);color:var(--sky-ink)} .c-lav{background:var(--lav);color:var(--lav-ink)}
.c-sage{background:var(--sage);color:var(--sage-ink)} .c-butter{background:var(--butter);color:var(--butter-ink)} .c-sand{background:var(--sand);color:var(--sand-ink)} .c-peach{background:var(--peach);color:var(--peach-ink)}
.t-ok{color:var(--ok)} .t-warn{color:var(--warn)} .t-bad{color:var(--bad)}
/* Fortschrittsbalken (K.bar) – Farbe folgt t-ok / t-warn / t-bad, sonst Akzent */
.bar{color:var(--accent);display:inline-flex;align-items:center;min-width:72px;flex:none}
.bar.t-ok{color:var(--ok)} .bar.t-warn{color:var(--warn)} .bar.t-bad{color:var(--bad)}
.k .d.bar{display:flex;margin-top:6px}
.meter{display:block;width:100%;min-width:72px;height:6px;border-radius:6px;background:var(--sunk);overflow:hidden}
.meter b{display:block;height:100%;background:currentColor;border-radius:6px}
.chk{width:22px;height:22px;border-radius:50%;border:1.5px solid #C9C0B4;background:none;display:grid;place-items:center;flex:none;font-size:12px;line-height:1;padding:0;color:transparent}
.chk[aria-pressed="true"]{background:var(--accent);border-color:var(--accent);color:var(--surface)}
.done .grow{text-decoration:line-through;color:var(--muted)}
.btn{border:0;border-radius:999px;padding:9px 18px;font-weight:600;background:var(--ink);color:var(--on-ink);display:inline-flex;align-items:center;gap:6px;text-decoration:none}
.btn.soft{background:var(--surface);color:var(--fg);box-shadow:inset 0 0 0 1px var(--line)}
.panel .btn.soft{background:var(--bg)}
.btn.danger{background:var(--rose);color:var(--rose-ink)}
.btn.sm{padding:6px 13px;font-size:13px}
.btn:disabled{opacity:.5;cursor:not-allowed}
.icon-btn{border:0;background:none;padding:4px 6px;border-radius:8px;color:var(--muted)}
.icon-btn:hover{background:var(--sunk);color:var(--fg)}
.icon-btn:disabled{opacity:.25;cursor:default;background:none}
input,select,textarea{font:inherit;color:var(--fg);background:var(--bg);border:1px solid var(--line);border-radius:12px;padding:9px 12px;min-width:0;max-width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent);background:var(--surface)}
input[type="checkbox"]{accent-color:var(--accent);width:18px;height:18px}
textarea{width:100%;resize:vertical;line-height:1.6}
label.f{display:flex;flex-direction:column;gap:5px;font-size:12px;font-weight:500;color:var(--muted);min-width:0}
label.f > input,label.f > select,label.f > textarea{font-weight:500;color:var(--fg)}
.form{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px;align-items:end}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.seg{display:inline-flex;background:var(--sunk);border-radius:999px;padding:3px;gap:2px;flex-wrap:wrap}
.seg button{border:0;background:none;border-radius:999px;padding:6px 14px;font-weight:500;font-size:13px;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--fg)}
.toast{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(88px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--on-ink);padding:10px 18px;border-radius:999px;font-size:14px;font-weight:500;opacity:0;transition:opacity .2s;pointer-events:none;z-index:50;max-width:calc(100% - 32px);text-align:center}
.toast.on{opacity:1}

/* Dialog */
dialog{border:0;border-radius:20px;padding:0;background:var(--surface);color:var(--fg);width:min(560px,calc(100% - 24px));max-height:calc(100% - 24px);box-shadow:0 20px 60px rgba(0,0,0,.25)}
dialog::backdrop{background:rgba(30,24,20,.45)}
.dlg{padding:20px;display:flex;flex-direction:column;gap:12px}

/* Kopfbereich */
.banner{position:relative;padding:4px 0 0;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 20px;align-items:end}
.blob{display:none}
.clock{font-family:var(--display);font-size:clamp(40px,6.5vw,58px);line-height:1;color:var(--ink);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.quote{font-size:14px;color:var(--muted);margin-top:6px}
.pomo{background:var(--surface);border-radius:var(--r);padding:16px 18px;display:flex;gap:16px;align-items:center}
.ring{position:relative;width:88px;height:88px;flex:none}
.ring svg{transform:rotate(-90deg)}
.ring .t{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--display);font-size:22px;font-variant-numeric:tabular-nums}

/* Fächer */
.fach-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}
.fach{background:var(--surface);border-radius:var(--r);padding:16px;display:flex;flex-direction:column;gap:6px;text-align:left;border:0}
.fach:hover{box-shadow:0 0 0 1px var(--accent)}
.fach h3{font-size:19px}
.meta{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:13px}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line)}
.tabs button{border:0;background:none;padding:8px 12px;font-weight:500;font-size:14px;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}

/* Mitschrift */
.split{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:14px;align-items:start}
.pdfbox{background:var(--sunk);border-radius:12px;min-height:260px;display:grid;place-items:center;overflow:auto;max-height:72vh;padding:8px}
.pdfbox canvas{max-width:100%;height:auto;border-radius:6px;box-shadow:0 1px 4px rgba(0,0,0,.12)}
.tools{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}
.editor{min-height:52vh;font-size:15px}

/* Wiederholen */
.review{max-width:580px;margin:0 auto;width:100%;display:flex;flex-direction:column;gap:12px}
.flash{background:var(--surface);border-radius:22px;padding:28px 22px;text-align:center;display:flex;flex-direction:column;gap:10px;min-height:270px}
.flash .term{font-family:var(--display);font-size:30px;color:var(--ink);overflow-wrap:anywhere}
.answer{background:var(--sunk);border-radius:12px;padding:14px;text-align:left;white-space:pre-wrap;overflow-wrap:anywhere}
.rate{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.rate button{border:0;border-radius:14px;padding:12px 4px;font-weight:600;font-size:13px;display:flex;flex-direction:column;gap:2px;align-items:center}
.rate small{font-weight:500;font-size:11px;opacity:.85}
.prog{height:6px;background:var(--sunk);border-radius:6px;overflow:hidden}
.prog i{display:block;height:100%;background:var(--accent);border-radius:6px;transition:width .3s}

/* Gewohnheiten */
.habit-grid{display:grid;grid-template-columns:minmax(130px,1.5fr) repeat(7,minmax(0,1fr));gap:6px;align-items:center;font-size:13px}
.dot{width:28px;height:28px;border-radius:50%;border:0;justify-self:center;background:var(--sunk);box-shadow:inset 0 0 0 1px var(--line);padding:0}
.dot.on{background:var(--ok);box-shadow:none}
.dot.today{outline:2px solid var(--accent);outline-offset:2px}
canvas.chart{width:100%;max-width:100%;display:block}
.legend{display:flex;flex-wrap:wrap;gap:10px;font-size:12px;color:var(--muted)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:4px;vertical-align:-1px}

/* Einrichtung */
.onb{max-width:640px;margin:4vh auto 0;display:flex;flex-direction:column;gap:16px}
.choice{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.choice button{border:0;text-align:left;border-radius:var(--r);padding:16px;background:var(--surface);display:flex;flex-direction:column;gap:4px}
.choice button[aria-pressed="true"]{box-shadow:0 0 0 2px var(--accent)}
.steps{display:flex;gap:6px}
.steps i{height:5px;flex:1;border-radius:4px;background:var(--line)}
.steps i.on{background:var(--accent)}
.steps i.cur{outline:2px solid var(--accent);outline-offset:2px}

/* Morgen-Start */
.up-btn{font-size:19px;padding:16px 30px;border-radius:999px}
.row.quest{width:100%;background:none;border-left:0;border-right:0;border-bottom:0;font:inherit;color:inherit;text-align:left;padding:11px 8px}
.row.quest:first-child{border-top:0}
.row.quest.on{color:var(--muted)}
.row.quest.on .grow{text-decoration:line-through}
.row.cur{background:var(--sage);color:var(--sage-ink);border-radius:12px;padding:10px;border-top:0}
.row.old{opacity:.6}
details.panel > summary{cursor:pointer;font-weight:700;list-style-position:inside}
details.panel[open] > summary{margin-bottom:10px}
.guide{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}

/* Spielelemente */
.stats{display:inline-flex;gap:14px;align-items:center;border:0;background:var(--surface);border-radius:999px;padding:7px 14px;font-size:13px;color:var(--muted)}
.stats b{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}
.stats:hover{box-shadow:0 0 0 1px var(--line)}
.xp-pop{position:fixed;z-index:60;pointer-events:none;transform:translate(-50%,-50%);font-weight:600;font-size:15px;color:var(--ok);animation:xpup .9s ease-out forwards}
@keyframes xpup{0%{opacity:0;transform:translate(-50%,-30%) scale(.8)}20%{opacity:1;transform:translate(-50%,-80%) scale(1.1)}100%{opacity:0;transform:translate(-50%,-260%) scale(1)}}
.confetti{position:fixed;z-index:59;pointer-events:none;width:0;height:0}
.confetti i{position:absolute;width:7px;height:10px;border-radius:2px;animation:conf 1.2s cubic-bezier(.2,.7,.3,1) forwards}
@keyframes conf{0%{transform:translate(0,0) rotate(0);opacity:1}100%{transform:translate(var(--dx),calc(var(--dy) + 120px)) rotate(var(--rot));opacity:0}}
.chk[aria-pressed="true"]{animation:pop .25s ease-out}
@keyframes pop{0%{transform:scale(.7)}60%{transform:scale(1.15)}100%{transform:scale(1)}}
.wkdots{display:flex;gap:6px}
.wkdots span{flex:1;min-width:0;text-align:center;font-size:12px;padding:7px 0;border-radius:10px;background:var(--sunk);color:var(--muted)}
.wkdots .on{background:var(--accent);color:var(--surface)}
.wkdots .miss{background:var(--rose);color:var(--rose-ink)}
.wkdots .plan{box-shadow:inset 0 0 0 1.5px var(--accent);color:var(--fg)}
.wkdots .today{font-weight:700}
.chain{display:flex;gap:4px;align-items:center;flex-wrap:wrap}
.chain i{width:22px;height:12px;border-radius:6px;background:var(--sunk);box-shadow:inset 0 0 0 1px var(--line)}
.chain i.on{background:var(--accent);box-shadow:none}
.chain i.cur{box-shadow:inset 0 0 0 1.5px var(--accent)}
.route{width:100%;max-width:520px;height:auto;display:block;margin:4px auto 0}
.badges{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:8px}
.badge2{background:var(--bg);border-radius:14px;padding:12px 8px;text-align:center;display:flex;flex-direction:column;gap:3px;align-items:center;opacity:.5}
.badge2 .i{font-size:26px;filter:grayscale(1)}
.badge2 .n{font-size:12px;font-weight:500;line-height:1.3}
.badge2 .p{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums}
.badge2.got{opacity:1;background:var(--sage)}
.badge2.got .i{filter:none}
.badge2.got .n{color:var(--sage-ink)}
.segopt{position:relative;cursor:pointer}
.segopt input{position:absolute;opacity:0;pointer-events:none}
.segopt span{display:inline-block;border-radius:999px;padding:6px 12px;font-size:13px;color:var(--muted)}
.segopt input:checked + span{background:var(--surface);color:var(--fg);box-shadow:0 0 0 1px var(--line)}
.segopt input:focus-visible + span{outline:2px solid var(--accent)}
@media (prefers-reduced-motion:reduce){.chk[aria-pressed="true"]{animation:none}}

/* Woche: Lernfenster */
.wk-grid{display:grid;grid-template-columns:28px repeat(7,minmax(44px,1fr));gap:4px;min-width:360px}
.wk-times{position:relative;height:var(--wk-h);margin-top:24px}
.wk-times span{position:absolute;right:2px;transform:translateY(-50%);font-size:10px;color:var(--muted)}
.wk-head{height:20px;margin-bottom:4px;text-align:center;font-size:12px;color:var(--muted)}
.wk-day.today .wk-head{color:var(--ink);font-weight:600}
.wk-day.past{opacity:.55}
.wk-col{position:relative;height:var(--wk-h);border-radius:8px;background:repeating-linear-gradient(to bottom,var(--line) 0 1px,transparent 1px 56px),var(--bg)}
.wk-b{position:absolute;left:2px;right:2px;border-radius:6px;padding:2px 4px;font-size:10px;line-height:1.25;overflow:hidden}
.wk-b span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.k-arbeit{background:var(--lav);color:var(--lav-ink)}
.k-termin{background:var(--sky);color:var(--sky-ink)}
.k-sport{background:var(--peach);color:var(--peach-ink)}
.k-privat{background:var(--rose);color:var(--rose-ink)}
.k-lern{background:var(--sage);color:var(--sage-ink)}
.k-frei{background:transparent;color:var(--sage-ink);box-shadow:inset 0 0 0 1.5px var(--accent);border-radius:6px}
.wk-b.k-frei{background:color-mix(in srgb,var(--sage) 45%,transparent)}
.legend i.k-arbeit,.legend i.k-termin,.legend i.k-privat,.legend i.k-sport,.legend i.k-lern,.legend i.k-frei{width:12px;height:12px}
.wk-col{cursor:copy}
.wk-b{border:0;text-align:left;font:inherit;font-size:10px;cursor:pointer}
.wk-b:hover{filter:brightness(.96);box-shadow:0 0 0 1.5px var(--accent)}
.wk-head{display:block;width:100%;border:0;background:none;font:inherit;font-size:12px;color:var(--muted);cursor:pointer;border-radius:6px;padding:0}
.wk-head:hover{background:var(--sunk)}
.wk-dot{display:inline-block;margin-left:4px;min-width:16px;padding:0 4px;border-radius:8px;background:var(--butter);color:var(--butter-ink);font-size:10px;font-weight:600}
.wk-now{position:absolute;left:0;right:0;height:2px;background:var(--bad);border-radius:2px}

/* Schritte */
.steps7{display:flex;gap:6px;align-items:flex-end;height:64px}
.steps7 i{flex:1;border-radius:4px;background:var(--accent);opacity:.45}
.steps7 i.ok{opacity:.8}
.steps7 i.cur{opacity:1;background:var(--ok)}

/* Diagramme */
.chart-box .ct{font-size:13px;font-weight:600;color:var(--fg)}
.chart-box .cs{font-size:12px;color:var(--muted);margin:2px 0 8px}
.chart-svg{width:100%;height:auto;display:block;max-width:560px}
.chart-svg .ax{font-size:11px;fill:var(--muted);font-family:var(--body)}
.chart-box .legend{margin-top:6px}
.panel .chart-box + .chart-box{margin-top:16px}
.wkdots + p + .chart-box{margin-top:14px}

@media (max-width:820px){
  .app{grid-template-columns:minmax(0,1fr)}
  .side{display:none}
  .tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:20;background:var(--surface);border-top:1px solid var(--line);
    padding:6px max(8px,env(safe-area-inset-right,0px)) calc(6px + env(safe-area-inset-bottom,0px)) max(8px,env(safe-area-inset-left,0px));justify-content:space-around}
  .tabbar button{border:0;background:none;display:flex;flex-direction:column;align-items:center;font-size:11px;gap:1px;padding:4px 6px;border-radius:12px;color:var(--muted);font-weight:500}
  .tabbar button span{font-size:19px;filter:grayscale(1);opacity:.6}
  .tabbar button[aria-current="page"]{color:var(--ink)}
  .tabbar button[aria-current="page"] span{filter:none;opacity:1}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
  .grid2,.split{grid-template-columns:minmax(0,1fr)}
  .banner{grid-template-columns:minmax(0,1fr)}
  h1{font-size:30px}
  .habit-grid{grid-template-columns:minmax(96px,1.2fr) repeat(7,minmax(0,1fr))}
  .dot{width:24px;height:24px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}
