:root{
  --bg:#f4f4f2; --panel:#ffffff; --ink:#1e2228; --muted:#6b7280; --line:#e6e7ea;
  --accent:#7c5cff; --accent-soft:#efeaff; --ok:#1a7f37; --bad:#cf222e; --warn:#b26b00; --off:#b6bac2;
  --work:#3257d6; --ctx:#8a8f98; --travel:#b26b00; --shadow:0 1px 3px rgba(0,0,0,.07);
  --c-me:#3257d6; --c-me-soft:#e4eaff; --c-cas:#1a7f37; --c-cas-soft:#e3f5e8; --c-isa:#c2410c; --c-isa-soft:#ffe9dd;
  --c-family:#7c5cff; --c-family-soft:#efeaff; --c-plan:#0e7490; --c-plan-soft:#dff6fb;
  --tabs-h:64px;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#0f1115; --panel:#171a21; --ink:#e7e9ee; --muted:#9aa0a6; --line:#262b34;
  --accent:#a58bff; --accent-soft:#241f39; --ok:#3fb950; --bad:#f85149; --warn:#e0a04a; --off:#4b515b;
  --work:#7aa2ff; --ctx:#8a8f98; --travel:#e0a04a; --shadow:0 1px 3px rgba(0,0,0,.3);
  --c-me:#7aa2ff; --c-me-soft:#1b2540; --c-cas:#3fb950; --c-cas-soft:#12301b; --c-isa:#f59e6b; --c-isa-soft:#3a2214;
  --c-family:#a58bff; --c-family-soft:#241f39; --c-plan:#38bdf8; --c-plan-soft:#0f2a35;
}}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{height:100%;-webkit-text-size-adjust:100%}
body{margin:0;min-height:100%;background:var(--bg);color:var(--ink);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.45}
button{font:inherit;color:inherit}
input,select{font:inherit}

/* header */
header{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;padding:10px 14px;border-bottom:1px solid var(--line);
  background:var(--panel);position:sticky;top:0;z-index:20;padding-top:calc(10px + env(safe-area-inset-top))}
header h1{font-size:18px;margin:0;letter-spacing:-.02em}
header .date{color:var(--muted);font-size:13px}
header .tools{margin-left:auto;display:flex;gap:6px;align-items:center;position:relative}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--bg)}
.seg button{border:0;background:transparent;padding:6px 12px;font-size:14px;font-weight:600;color:var(--muted);cursor:pointer;min-height:38px}
.seg button[aria-pressed="true"]{background:var(--accent);color:#fff}
.seg.small button{padding:4px 10px;font-size:13px;min-height:30px}
.iconbtn{border:1px solid var(--line);background:var(--bg);border-radius:10px;padding:6px 12px;font-size:14px;cursor:pointer;min-height:38px}
.iconbtn:hover{border-color:var(--accent)}
.pill{display:inline-block;padding:3px 10px;border-radius:20px;background:var(--accent-soft);font-size:13px;font-weight:600}
.menu{position:relative}
.menuList{position:absolute;right:0;top:44px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:0 8px 24px rgba(0,0,0,.12);
  min-width:220px;padding:6px;z-index:30;display:flex;flex-direction:column;gap:2px}
.menuList button{border:0;background:transparent;text-align:left;padding:10px 12px;border-radius:8px;cursor:pointer;font-size:15px}
.menuList button:hover{background:var(--accent-soft)}
.menuList .sub{font-size:12px;color:var(--muted);padding:8px 12px 2px;text-transform:uppercase;letter-spacing:.06em}

/* tabs: top strip on desktop, bottom bar on phones */
.tabs{display:flex;gap:4px;padding:8px 14px 0;background:var(--panel);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:15}
.tabs button{border:0;background:transparent;padding:10px 14px;border-radius:10px 10px 0 0;font-weight:600;color:var(--muted);cursor:pointer;
  display:flex;gap:8px;align-items:center;min-height:44px}
.tabs button[aria-pressed="true"]{color:var(--accent);box-shadow:inset 0 -3px 0 var(--accent)}
.tabs .ico{font-size:18px}
main{max-width:1180px;margin:0 auto;padding:16px 14px 40px}
.tab{display:flex;flex-direction:column;gap:14px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);overflow:hidden}
.card h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:8px}
.card h2 .right{margin-left:auto;font-weight:500;text-transform:none;letter-spacing:0;font-size:12px}

/* hero */
.hero{padding:18px 18px 16px;display:grid;gap:10px}
.hero .big{font-size:24px;font-weight:700;letter-spacing:-.01em}
.hero .row{display:flex;gap:10px;align-items:flex-start;font-size:15px}
.hero .row .k{flex:0 0 auto;width:26px;text-align:center}
.hero .row b{font-weight:650}
.hero .cust{margin:0;font-size:15px;padding:10px 12px;border-radius:12px}
.hero .next{font-size:17px;font-weight:600}

/* agenda list */
.day{padding:6px 12px 10px;border-top:1px solid var(--line)}
.day:first-child{border-top:0}
.day h3{font-size:14px;margin:12px 0 6px;padding:4px 0}
.day.today h3::after{content:" · vandaag";color:var(--accent);font-weight:600}
.cust{display:flex;align-items:center;gap:8px;margin:2px 0 4px;padding:8px 12px;border-radius:10px;background:var(--accent-soft);font-size:14px}
.cust b{font-weight:650}
.who{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:10px 6px 2px;font-weight:700}
.who.me{color:var(--c-me)} .who.cas{color:var(--c-cas)} .who.isa{color:var(--c-isa)} .who.family{color:var(--c-family)}
.ev{display:flex;gap:10px;padding:9px 8px;border-radius:10px;min-height:44px;align-items:flex-start}
.ev:hover{background:var(--accent-soft)}
.ev .t{font-variant-numeric:tabular-nums;color:var(--muted);white-space:nowrap;min-width:96px;font-size:14px;padding-top:2px}
.ev .b{flex:1;min-width:0}
.ev .title{font-weight:550;overflow-wrap:anywhere}
.ev.kid .title{font-weight:500}
.ev.travel .title{color:var(--travel)}
.ev.school{cursor:pointer}
.ev.school .title::before{content:"▸ ";color:var(--muted)}
.ev.school.open .title::before{content:"▾ "}
.lessons{display:none;margin:2px 0 6px 104px;color:var(--muted);font-size:13.5px}
.ev.school.open + .lessons{display:block}
.lessons div{padding:1px 0}
.chip{display:inline-block;font-size:11px;font-weight:600;padding:1px 8px;border-radius:20px;margin-left:8px;background:var(--accent-soft);color:var(--work);vertical-align:1px}
.chip.clash{background:#ffe2e2;color:var(--bad)}
.chip.plan{background:var(--c-plan-soft);color:var(--c-plan)}
@media (prefers-color-scheme:dark){.chip.clash{background:#3a1d1d}}
.loc{color:var(--muted);font-size:13px}
.empty,.error{padding:22px 16px;color:var(--muted);font-size:15px;text-align:center}
.error{color:var(--bad)}
.ev .x{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:15px;padding:2px 8px}
.ev .x:hover{color:var(--bad)}

/* week view */
.weeknav{display:flex;align-items:center;gap:8px}
.wlabel{font-weight:700;font-size:17px;flex:1;text-align:center}
.daystrip{display:none;gap:6px}
.daystrip button{flex:1;border:1px solid var(--line);background:var(--panel);border-radius:12px;padding:8px 2px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;min-height:60px}
.daystrip button .dn{font-size:11px;color:var(--muted);text-transform:uppercase}
.daystrip button .dd{font-size:18px;font-weight:700}
.daystrip button .dots{display:flex;gap:3px;height:6px}
.daystrip button .dots i{width:6px;height:6px;border-radius:50%;display:block}
.daystrip button[aria-pressed="true"]{border-color:var(--accent);background:var(--accent-soft)}
.daystrip button.today .dd{color:var(--accent)}
.wgrid{display:grid;grid-template-columns:52px repeat(7,1fr);font-size:13px}
.wgrid .hcell{padding:8px 6px;border-bottom:1px solid var(--line);border-left:1px solid var(--line);text-align:center;min-height:54px}
.wgrid .hcell .dn{font-size:11px;color:var(--muted);text-transform:uppercase}
.wgrid .hcell .dd{font-size:18px;font-weight:700}
.wgrid .hcell.today .dd{color:var(--accent)}
.wgrid .cband{font-size:11px;padding:2px 4px;border-radius:6px;margin-top:3px;background:var(--accent-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wgrid .cband.away{background:var(--bg);color:var(--muted)}
.wgrid .allday{border-left:1px solid var(--line);border-bottom:1px solid var(--line);padding:4px;min-height:28px;display:flex;flex-direction:column;gap:3px}
.wgrid .corner{border-bottom:1px solid var(--line)}
.wgrid .tcol{position:relative}
.wgrid .hour{height:48px;border-bottom:1px solid var(--line);font-size:11px;color:var(--muted);padding:2px 4px;text-align:right}
.wgrid .dcol{position:relative;border-left:1px solid var(--line);background:
  repeating-linear-gradient(to bottom,transparent 0,transparent 47px,var(--line) 47px,var(--line) 48px)}
.wgrid .dcol.today{background-color:rgba(124,92,255,.04)}
.blk{position:absolute;left:3px;right:3px;border-radius:8px;padding:3px 6px;font-size:12px;line-height:1.25;overflow:hidden;cursor:pointer;
  border-left:4px solid var(--c-family);background:var(--c-family-soft);color:var(--ink)}
.blk .bt{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.blk .bm{color:var(--muted);font-size:11px}
.blk.me{border-left-color:var(--c-me);background:var(--c-me-soft)}
.blk.cas{border-left-color:var(--c-cas);background:var(--c-cas-soft)}
.blk.isa{border-left-color:var(--c-isa);background:var(--c-isa-soft)}
.blk.plan{border-left-style:dashed}
.blk.travel{border-left-color:var(--travel);background:transparent;border:1px dashed var(--travel);border-left-width:4px}
.blk.small .bm{display:none}
.nowline{position:absolute;left:0;right:0;height:2px;background:var(--bad);z-index:2}
.legend{display:flex;flex-wrap:wrap;gap:10px;padding:8px 12px;font-size:12px;color:var(--muted);border-top:1px solid var(--line)}
.legend i{display:inline-block;width:10px;height:10px;border-radius:3px;margin-right:5px;vertical-align:-1px}

/* sheet (event details) */
.sheet{position:fixed;left:50%;bottom:calc(var(--tabs-h) + 12px);transform:translateX(-50%);width:min(520px,calc(100% - 24px));
  background:var(--panel);border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 40px rgba(0,0,0,.18);padding:14px 16px;z-index:40}
.sheet .st{font-size:17px;font-weight:700;margin-bottom:4px}
.sheet .sm{color:var(--muted);font-size:14px}
.sheet .actions{display:flex;gap:8px;margin-top:10px;justify-content:flex-end}

/* chat */
#tab-ask{min-height:calc(100vh - 220px)}
#log{display:flex;flex-direction:column;gap:10px;padding:4px 2px}
#tab-ask .composer{margin-top:auto}
.msg{max-width:88%;padding:12px 14px;border-radius:16px;white-space:pre-wrap;overflow-wrap:anywhere;font-size:16px;line-height:1.45}
.msg.you{align-self:flex-end;background:var(--accent);color:#fff;border-bottom-right-radius:5px}
.msg.you .scope{opacity:.75;font-size:11px;display:block;margin-bottom:2px}
.msg.bot{align-self:flex-start;background:var(--panel);border:1px solid var(--line);border-bottom-left-radius:5px}
.msg.bot strong{font-weight:650}
.msg.bot a{color:var(--accent)}
.msg.bot code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:14px}
.msg.bot .h{display:block;font-weight:700;margin-top:4px}
.hint{color:var(--muted);font-size:14px;text-align:center;margin:14px auto;max-width:420px;padding:0 12px}
.suggest{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0 10px}
.suggest button{border:1px solid var(--line);background:var(--panel);border-radius:20px;padding:8px 13px;font-size:14px;cursor:pointer;min-height:40px}
.composer{display:flex;gap:8px;padding:10px 0 4px;background:transparent;position:sticky;bottom:calc(var(--tabs-h) + 8px)}
.composer input{flex:1;min-width:0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--panel);color:var(--ink);font-size:16px;outline:none}
.composer input:focus{border-color:var(--accent)}
.composer button{padding:0 16px;border:0;border-radius:12px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer;font-size:15px;min-height:46px}
.composer button.iconbtn{background:var(--panel);color:var(--ink);border:1px solid var(--line)}
.composer button:disabled{opacity:.5;cursor:default}
.planform{position:static;padding:12px 14px}
.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:s .7s linear infinite;vertical-align:-2px}
@keyframes s{to{transform:rotate(360deg)}}

/* planning + lists */
.prop{padding:8px 14px 14px;display:grid;gap:10px}
.prop .row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.prop label{font-size:13px;color:var(--muted);min-width:40px}
.prop input,.prop select{padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-size:16px;flex:1;min-width:120px}
button.primary{padding:12px 18px;border:0;border-radius:12px;background:var(--accent);color:#fff;font-weight:600;cursor:pointer;font-size:16px;min-height:46px}
.item{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--line);font-size:16px}
.item label{display:flex;gap:12px;align-items:center;flex:1;cursor:pointer;min-height:32px}
.item input[type=checkbox]{width:24px;height:24px}
.planrow{display:flex;gap:12px;padding:10px 14px;border-top:1px solid var(--line);align-items:flex-start}
.planrow .pd{min-width:110px;color:var(--muted);font-size:14px}
.planrow .pt{font-weight:600}

/* status drawer */
.src{display:flex;gap:10px;align-items:flex-start;padding:8px 14px;border-top:1px solid var(--line);font-size:14px}
.dot{width:10px;height:10px;border-radius:50%;background:var(--off);flex:0 0 10px;margin-top:6px}
.dot.ok{background:var(--ok)} .dot.bad{background:var(--bad)} .dot.warn{background:var(--warn)}
.src .n{font-weight:600;min-width:140px}
.src .d{color:var(--muted);overflow-wrap:anywhere}

/* login */
.wrap.single{display:block;max-width:440px;margin:0 auto;padding:16px 14px}
.whogrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:10px;padding:14px}
.whobtn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 8px;border:1px solid var(--line);border-radius:14px;background:var(--bg);cursor:pointer;font-weight:600}
.avatar{width:48px;height:48px;border-radius:50%;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:700}
.loginform{display:flex;flex-direction:column;gap:10px;padding:14px}
.loginform input{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-size:18px}
.loginform #pin{font-size:20px;letter-spacing:.15em}
.pwrow{display:flex;gap:8px}
.pwrow input{flex:1;min-width:0}
.padbox summary{cursor:pointer;color:var(--muted);font-size:13px;padding:2px 0 8px}
.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.pinpad button{padding:14px 0;font-size:20px;border:1px solid var(--line);border-radius:12px;background:var(--bg);cursor:pointer;min-height:52px}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);overflow:hidden}
.panel h2{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0;padding:12px 16px;border-bottom:1px solid var(--line)}

/* phones: bottom tab bar, day strip instead of the grid */
@media (max-width:899px){
  .tabs{position:fixed;top:auto;bottom:0;left:0;right:0;border-bottom:0;border-top:1px solid var(--line);padding:6px 6px calc(6px + env(safe-area-inset-bottom));justify-content:space-around;gap:0}
  .tabs button{flex-direction:column;gap:2px;padding:6px 4px;font-size:11px;border-radius:10px;min-width:56px}
  .tabs button[aria-pressed="true"]{box-shadow:none;background:var(--accent-soft)}
  main{padding-bottom:calc(var(--tabs-h) + 24px)}
  .daystrip{display:flex}
  .wgrid{display:none}
  #dayList[hidden]{display:none}
  .sheet{bottom:calc(var(--tabs-h) + 12px)}
}
@media (min-width:900px){
  :root{--tabs-h:0px}
  #dayList{display:none!important}
  .composer{bottom:8px}
  #tab-ask{min-height:calc(100vh - 200px)}
}

/* delight: themes, toast, badges, typing dots, done items */
body.theme-cas{--accent:var(--c-cas);--accent-soft:var(--c-cas-soft)}
body.theme-isa{--accent:var(--c-isa);--accent-soft:var(--c-isa-soft)}
.hero .sub{color:var(--muted);font-size:14px;margin-top:-6px}
.hero{background:linear-gradient(135deg,var(--accent-soft),var(--panel) 70%)}
.empty.small{padding:6px 8px;text-align:left;font-size:14px}
.lg{display:inline-block;width:10px;height:10px;border-radius:3px;background:var(--c-family)}
.lg.me{background:var(--c-me)} .lg.cas{background:var(--c-cas)} .lg.isa{background:var(--c-isa)} .lg.family{background:var(--c-family)} .lg-plan{background:var(--c-plan)}
.chip.cas{background:var(--c-cas-soft);color:var(--c-cas)} .chip.isa{background:var(--c-isa-soft);color:var(--c-isa)} .chip.me{background:var(--c-me-soft);color:var(--c-me)}
.toast{position:fixed;left:50%;bottom:calc(var(--tabs-h) + 16px);transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:12px 16px;border-radius:14px;
  box-shadow:0 10px 30px rgba(0,0,0,.25);display:flex;gap:14px;align-items:center;z-index:50;font-size:15px;max-width:calc(100% - 24px)}
.toast button{border:0;background:transparent;color:var(--accent-soft);font-weight:700;cursor:pointer;text-decoration:underline}
.tabs .badge{position:absolute;top:2px;right:6px;background:var(--bad);color:#fff;font-size:11px;border-radius:10px;padding:0 6px;min-width:18px;text-align:center}
.tabs button{position:relative}
.linkbtn{border:0;background:transparent;color:var(--muted);padding:10px 14px;cursor:pointer;font-size:14px;text-decoration:underline}
.item .emo{font-size:20px;width:28px;text-align:center}
.item .txt{flex:1}
.item.done .txt{text-decoration:line-through;color:var(--muted)}
.item input[type=checkbox]{accent-color:var(--accent)}
.dots{display:inline-flex;gap:4px;padding:4px 2px}
.dots i{width:7px;height:7px;border-radius:50%;background:var(--muted);animation:b 1s infinite ease-in-out}
.dots i:nth-child(2){animation-delay:.15s} .dots i:nth-child(3){animation-delay:.3s}
@keyframes b{0%,80%,100%{transform:scale(.6);opacity:.5}40%{transform:scale(1);opacity:1}}
.card,.ev,.item,.blk,.whobtn{transition:transform .12s ease,box-shadow .12s ease}
.blk:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(0,0,0,.12);z-index:3}
button.primary:active,.composer button:active,.tabs button:active{transform:scale(.97)}
.planrow .pb{flex:1}


/* ---- v3: onderweg, hulp, plannen-sheet, verleden ------------------------------------ */
.sos{border:0;border-radius:999px;background:var(--bad);color:#fff;font-weight:800;padding:7px 12px;cursor:pointer;font-size:14px;min-height:38px;box-shadow:0 4px 12px rgba(220,38,38,.3)}
.sos:active{transform:scale(.96)}
.fab{position:fixed;right:18px;bottom:calc(var(--tabs-h) + 18px);width:58px;height:58px;border-radius:50%;background:var(--accent);color:#fff;font-size:30px;line-height:1;border:0;
  box-shadow:0 10px 26px rgba(0,0,0,.28);z-index:25;cursor:pointer;display:flex;align-items:center;justify-content:center}
.fab:active{transform:scale(.94)}
.sheet.big{width:min(680px,calc(100% - 24px));max-height:min(88vh,calc(100vh - var(--tabs-h) - 24px));overflow:auto;padding:16px 16px 18px;display:block}
.sheet .st{display:flex;align-items:center;gap:10px}
.sheet .st .close{margin-left:auto;min-height:34px;padding:4px 10px}
.sheet .sh{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:16px 0 4px}
.sheet .planrow{padding:10px 0}
.sheet .composer{position:static;padding:8px 0}
.presets{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin:0 0 12px}
.preset{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:14px 14px 12px;border:1px solid var(--line);border-radius:16px;background:var(--panel);cursor:pointer;text-align:left;
  box-shadow:var(--shadow);min-height:96px;color:var(--ink);transition:transform .12s ease,box-shadow .12s ease}
.preset:active{transform:scale(.97)}
.preset .pe{font-size:28px;line-height:1}
.preset .pl{font-weight:700;font-size:15px;line-height:1.2}
.preset .pn{font-size:12px;color:var(--muted);line-height:1.25}
.preset.primary{border-color:var(--accent);background:var(--accent-soft);box-shadow:0 8px 22px rgba(124,92,255,.18)}
.pick{padding:10px 14px 14px;display:grid;gap:10px}
.pk{display:flex;gap:10px;align-items:flex-start;flex-wrap:wrap}
.pkl{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);min-width:34px;padding-top:9px;font-weight:700}
.chips{display:flex;flex-wrap:wrap;gap:6px;flex:1}
.chips button{border:1px solid var(--line);background:var(--bg);border-radius:999px;padding:7px 12px;font-size:14px;cursor:pointer;min-height:36px;color:var(--ink)}
.chips button[aria-pressed="true"]{background:var(--accent);color:#fff;border-color:var(--accent)}
.navstat{font-size:14px;color:var(--muted)}
.rhead{display:flex;flex-wrap:wrap;gap:6px;align-items:center;padding:14px 16px 4px;font-weight:600;font-size:15px}
.rhead .arr{color:var(--muted);padding:0 2px}
.rstats{display:flex;flex-wrap:wrap;gap:14px;align-items:baseline;padding:6px 16px 10px;color:var(--muted);font-size:14px}
.rstats b{font-size:26px;color:var(--ink);font-weight:800;letter-spacing:-.02em}
.rstats .rnote{flex-basis:100%;font-size:13px}
.rbtns{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:0 16px 8px}
.rbtns a.primary{display:flex;align-items:center;justify-content:center;text-decoration:none;padding:14px;border-radius:14px;background:var(--accent);color:#fff;font-weight:700;font-size:16px;text-align:center}
.rbtns .follow{min-height:52px;font-weight:700;font-size:15px}
.rbtns .follow.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}
.rsmall{padding:0 16px 8px;font-size:13px;color:var(--muted);display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.rsmall a{color:var(--muted)}
.rsmall label{display:inline-flex;gap:6px;align-items:center;cursor:pointer}
.steps{list-style:none;margin:0;padding:4px 8px 12px;display:grid;gap:2px}
.step{display:grid;grid-template-columns:40px 1fr auto;gap:8px;align-items:center;padding:9px 8px;border-radius:12px;font-size:15px}
.step .sa{font-size:24px;text-align:center}
.step .ss{color:var(--muted);font-size:13px}
.step .sd{color:var(--muted);font-size:12px;white-space:nowrap}
.step.next{background:var(--accent-soft);font-weight:700}
.step.done{opacity:.45}
.livebar{position:fixed;left:10px;right:10px;bottom:calc(var(--tabs-h) + 12px);background:var(--ink);color:var(--bg);border-radius:20px;padding:12px 14px;z-index:40;
  box-shadow:0 14px 34px rgba(0,0,0,.35);display:flex;gap:12px;align-items:center;max-width:680px;margin:0 auto}
.livebar .arrow{font-size:38px;line-height:1;flex:0 0 auto}
.livebar .lt{flex:1;min-width:0}
.livebar .l1{font-size:18px;font-weight:800;line-height:1.15}
.livebar .l2{font-size:13px;opacity:.8;margin-top:2px}
.livebar .lbtn{border:0;border-radius:999px;background:rgba(255,255,255,.18);color:inherit;padding:8px 12px;font-weight:700;cursor:pointer;text-decoration:none;font-size:14px;flex:0 0 auto}
.livebar.off{background:#b45309}
.livebar.arrived{background:#15803d}
.bigred{width:100%;padding:18px 16px;border-radius:18px;background:var(--bad);color:#fff;border:0;font-size:18px;font-weight:800;cursor:pointer;margin:12px 0 8px;box-shadow:0 10px 26px rgba(220,38,38,.3)}
.bigred:active{transform:scale(.98)}
.way{display:block;padding:10px 12px;border:1px solid var(--line);border-radius:12px;margin:6px 0;text-decoration:none;color:var(--ink);font-weight:600;background:var(--bg)}
.cgroup .who{margin-top:14px}
.contact{display:flex;align-items:center;gap:12px;padding:10px 6px;border-top:1px solid var(--line);font-size:15px}
.contact .ce{font-size:22px;width:30px;text-align:center}
.contact .cl{flex:1;min-width:0;display:flex;flex-direction:column}
.contact .cn{font-size:12px;color:var(--muted)}
.contact .cn.warn{color:#b45309}
.call{margin-left:auto;background:#16a34a;color:#fff;border-radius:999px;padding:9px 14px;text-decoration:none;font-weight:700;white-space:nowrap;font-size:14px;min-height:38px;display:inline-flex;align-items:center}
.cedit{display:grid;gap:8px;margin-top:10px}
.crow{display:grid;grid-template-columns:1fr 1fr auto auto;gap:6px;align-items:center}
.crow input,.crow select{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:var(--bg);color:var(--ink);font-size:15px;min-width:0}
.crow .x{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:16px;padding:4px 8px}
.live{padding:6px 10px}
.lrow{display:flex;align-items:center;gap:10px;padding:8px 6px;font-size:15px}
.lrow .le{font-size:24px}
.lrow .lt{flex:1;min-width:0;display:flex;flex-direction:column}
.lrow .ln{font-size:12px;color:var(--muted)}
.lrow.sos{background:#fee2e2;border-radius:12px}
.lrow .iconbtn{text-decoration:none;color:var(--ink)}
.ev.past{opacity:.5}
.ev.past .t{text-decoration:line-through}
.day:not(.showpast) .ev.past,.day:not(.showpast) .lessons.past,.day:not(.showpast) .who.past{display:none}
.pastfold{border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:13px;padding:4px 8px;margin:2px 0 0}
.chip.now{background:#dcfce7;color:#166534}
.chip.soon{background:var(--accent-soft);color:var(--accent)}
.blk.past{opacity:.45}
.hero .row.tmrw{color:var(--muted)}
.hero .row.tmrw b{color:var(--ink)}
@media (max-width:899px){
  .sos .sl{display:none}
  .rbtns{grid-template-columns:1fr}
  .crow{grid-template-columns:1fr 1fr;grid-auto-rows:auto}
  .presets{grid-template-columns:repeat(2,1fr)}
  .fab{bottom:calc(var(--tabs-h) + 14px);right:14px}
}
