:root{--bg:#FAF8F4;--surface:#FFFFFF;--surface-sunk:#F3F0EA;--ink:#1A1A17;--ink-2:#55534D;--ink-3:#8A877F;--line:#E6E2D9;--line-strong:#CFCAC0;--green:#1E5B3E;--green-press:#164630;--green-tint:#E7F0EA;--green-line:#B9D2C2;--muted-bg:#EFEDE8;--muted-ink:#8F8C84;--scrim:rgba(26,26,23,.45);--font:"Inter",-apple-system,BlinkMacSystemFont,"SF Pro Text",system-ui,"Segoe UI",Roboto,sans-serif;--fs-hero:56px;--lh-hero:60px;--fs-time-xl:40px;--lh-time-xl:44px;--fs-time-lg:28px;--lh-time-lg:32px;--fs-title:22px;--lh-title:28px;--fs-body:17px;--lh-body:24px;--fs-label:15px;--lh-label:20px;--fs-caption:13px;--lh-caption:18px;--ampm-scale-lg:.5em;--ampm-scale-sm:.8em;--ampm-weight:500;--ampm-opacity:.6;--ampm-gap:.14em;--s-1:4px;--s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;--s-10:40px;--s-14:56px;--r-sm:10px;--r-md:16px;--r-lg:24px;--r-pill:999px;--shadow-card:0 1px 2px rgba(26,26,23,.04);--shadow-sheet:0 -8px 32px rgba(26,26,23,.18);--on-ink:#FFFFFF;--on-green:#FFFFFF;--err-bg:#F7EBE7;--err-line:#E2C4BA;--err-ink:#5C2B1E;--danger:#A1281B;--warn-bg:#FBF3E2;--warn-line:#E8D3A6;--warn-ink:#6A4B12;--ok-bg:var(--green-tint);--ok-ink:var(--green-press);--hover:rgba(0,0,0,.03);--focus:#1E5B3E;color-scheme:light}:root[data-theme=dark]{--bg:#121412;--surface:#1A1D1B;--surface-sunk:#222622;--ink:#ECEAE4;--ink-2:#B8B5AD;--ink-3:#8C8980;--line:#2E322F;--line-strong:#3E4440;--green:#5DB386;--green-press:#4A9C71;--green-tint:#18291F;--green-line:#2C5440;--muted-bg:#262A27;--muted-ink:#8C8980;--scrim:rgba(0,0,0,.6);--shadow-card:0 1px 2px rgba(0,0,0,.4);--shadow-sheet:0 -8px 32px rgba(0,0,0,.55);--on-ink:#121412;--on-green:#0D1A12;--err-bg:#2E1A16;--err-line:#5A2E25;--err-ink:#F2C4B8;--danger:#F08A7A;--warn-bg:#2B2414;--warn-line:#5A4A22;--warn-ink:#EBD49E;--hover:rgba(255,255,255,.04);--focus:#8FD1AC;color-scheme:dark}*{box-sizing:border-box}body,html{margin:0;padding:0}body{color:var(--ink);font-family:var(--font);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;font-feature-settings:"cv11","ss03"}.tnum{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}.phone{width:390px;min-height:844px;margin:0;position:relative;background:var(--bg);overflow:hidden;padding-bottom:104px}.phone.no-tabs{padding-bottom:0}.statusbar{height:47px;padding:14px 26px 0 32px;justify-content:space-between;font-size:16px;font-weight:600;letter-spacing:-.01em}.statusbar,.statusbar .icons{display:flex;align-items:center}.statusbar .icons{gap:6px}.appbar{height:52px;padding:0 var(--s-5);display:flex;align-items:center}.appbar .school{font-size:var(--fs-label);font-weight:600;letter-spacing:.01em;color:var(--ink)}.content{padding:0 var(--s-5)}.week-head{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s-2)}.week-head h1{margin:0;font-size:var(--fs-title);line-height:var(--lh-title);font-weight:650;letter-spacing:-.015em}.week-nav{display:flex;gap:var(--s-1)}.icon-btn{width:40px;height:40px;border-radius:var(--r-pill);display:grid;place-items:center;color:var(--ink-2);border:1px solid var(--line);background:var(--surface)}.strip{display:grid;grid-template-columns:repeat(5,1fr);grid-gap:var(--s-2);gap:var(--s-2);margin-top:var(--s-4)}.day{display:flex;flex-direction:column;align-items:center;padding:var(--s-2) 0 var(--s-3);border-radius:var(--r-md);gap:2px}.day .dow{font-size:var(--fs-caption);line-height:var(--lh-caption);color:var(--ink-3);font-weight:500}.day .num{font-size:22px;line-height:28px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.day .mark{width:7px;height:7px;border-radius:50%;margin-top:4px}.day .mark.open{border:1.5px solid var(--ink-3)}.day .mark.booked{background:var(--green)}.day .mark.none{visibility:hidden}.day.selected{background:var(--ink);color:var(--on-ink)}.day.selected .dow{color:color-mix(in srgb,var(--on-ink) 72%,transparent)}.day.selected .mark.open{border-color:color-mix(in srgb,var(--on-ink) 80%,transparent)}.day.selected .mark.booked{background:#8FD1AC;box-shadow:0 0 0 2px var(--ink)}.day-title{margin:var(--s-8) 0 var(--s-4);display:flex;align-items:baseline;justify-content:space-between}.day-title h2{margin:0;font-size:var(--fs-body);line-height:var(--lh-body);font-weight:600}.day-title .sub{font-size:var(--fs-caption);color:var(--ink-3);font-weight:500}.slots{flex-direction:column}.slot,.slots{display:flex;gap:var(--s-3)}.slot{align-items:center;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-4) var(--s-4) var(--s-4) var(--s-5);box-shadow:var(--shadow-card);min-height:88px}.slot .main{flex:1 1;min-width:0}.slot .name{font-size:var(--fs-label);line-height:var(--lh-label);font-weight:500;color:var(--ink-2)}.slot .time{font-size:var(--fs-time-lg);line-height:var(--lh-time-lg);font-weight:600;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:2px;white-space:nowrap}.slot .chev{color:var(--ink-3);flex:none}.chip{flex:none;display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 12px;border-radius:var(--r-pill);font-size:var(--fs-label);font-weight:500;white-space:nowrap;border:1px solid var(--line);color:var(--ink-2);background:var(--surface);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip.few{border-color:var(--ink);color:var(--ink);font-weight:650}.chip.full{background:transparent;border-color:transparent;color:var(--muted-ink);font-weight:600;padding:0 4px}.chip.yours{background:var(--green);border-color:var(--green);color:var(--on-green);font-weight:600}.slot.full{background:var(--muted-bg);border-color:var(--muted-bg);box-shadow:none}.slot.full .name,.slot.full .time{color:var(--muted-ink)}.slot.yours{background:var(--green-tint);border-color:var(--green-line)}.slot.yours .name{color:var(--green)}.slot.yours .time{color:var(--green-press)}.tabbar{position:absolute;left:0;right:0;bottom:0;height:84px;background:color-mix(in srgb,var(--bg) 96%,transparent);border-top:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);padding:8px 12px 0}.tab{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-3);font-size:12px;line-height:16px;font-weight:500}.tab svg{width:26px;height:26px}.tab.active{color:var(--ink);font-weight:650}.home-ind{left:50%;bottom:8px;transform:translateX(-50%);width:134px;height:5px;border-radius:3px;background:var(--ink)}.home-ind,.scrim{position:absolute}.scrim{inset:0;background:var(--scrim);z-index:5}.sheet{position:absolute;left:0;right:0;bottom:0;z-index:6;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;box-shadow:var(--shadow-sheet);padding:var(--s-3) var(--s-6) 42px}.grabber{width:40px;height:5px;border-radius:3px;background:var(--line-strong);margin:0 auto var(--s-6)}.sheet .s-name{font-size:var(--fs-body);font-weight:600;color:var(--ink-2)}.sheet .s-time{font-size:var(--fs-time-xl);line-height:var(--lh-time-xl);font-weight:650;letter-spacing:-.025em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:var(--s-1)}.sheet .s-date{font-size:var(--fs-body);color:var(--ink-2);margin-top:var(--s-1)}.facts{margin:var(--s-6) 0 var(--s-6);border-top:1px solid var(--line)}.fact{display:flex;justify-content:space-between;align-items:center;padding:var(--s-4) 0;border-bottom:1px solid var(--line);font-size:var(--fs-body)}.fact .k{color:var(--ink-3);font-size:var(--fs-label)}.fact .v{font-weight:550;text-align:right}.seats{display:inline-flex;gap:5px;margin-right:10px;vertical-align:1px}.seats i{width:10px;height:10px;border-radius:50%;background:var(--line-strong);display:inline-block}.seats i.open{background:transparent;border:1.5px solid var(--ink)}.btn{display:flex;align-items:center;justify-content:center;gap:var(--s-2);width:100%;height:56px;border-radius:var(--r-md);font-size:var(--fs-body);font-weight:650;letter-spacing:-.005em}.btn-primary{background:var(--green);color:var(--on-green)}.btn-secondary{background:var(--surface);color:var(--ink);border:1px solid var(--line-strong)}.btn-text{height:48px;color:var(--ink-2);font-weight:550;margin-top:var(--s-2)}.btn-dashed{background:transparent;border:1.5px dashed var(--line-strong);color:var(--ink);font-weight:600}.confirm{background:var(--green-tint);border:1px solid var(--green-line);border-radius:var(--r-md);padding:var(--s-5);margin-bottom:var(--s-4)}.confirm .c-head{display:flex;align-items:center;gap:var(--s-3);color:var(--green);font-weight:650;font-size:var(--fs-body)}.confirm .tick{width:28px;height:28px;border-radius:50%;background:var(--green);color:var(--on-green);display:grid;place-items:center;flex:none}.confirm .c-name{margin-top:var(--s-4);font-size:var(--fs-label);color:var(--ink-2);font-weight:500}.confirm .c-time{font-size:var(--fs-time-lg);line-height:var(--lh-time-lg);font-weight:650;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;margin-top:2px}.confirm .c-meta{margin-top:var(--s-1);color:var(--ink-2);font-size:var(--fs-label)}.confirm .c-foot{display:flex;justify-content:space-between;align-items:center;margin-top:var(--s-4);padding-top:var(--s-3);border-top:1px solid var(--green-line);font-size:var(--fs-label)}.confirm .c-foot .note{color:var(--ink-3);font-size:var(--fs-caption)}.confirm .c-foot button{color:var(--green);font-weight:650}.page-title{margin:var(--s-2) 0 var(--s-5);font-size:var(--fs-title);line-height:var(--lh-title);font-weight:650;letter-spacing:-.015em}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-card)}.hours-card{padding:var(--s-6) var(--s-5) var(--s-5)}.hours-row{display:flex;align-items:baseline;gap:var(--s-2)}.hours-num{font-size:var(--fs-hero);line-height:var(--lh-hero);font-weight:650;letter-spacing:-.035em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hours-of{font-size:var(--fs-title);color:var(--ink-2);font-weight:500;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hours-label{font-size:var(--fs-label);color:var(--ink-3);font-weight:500}.bar{height:14px;border-radius:var(--r-pill);background:var(--surface-sunk);margin-top:var(--s-5);overflow:hidden;border:1px solid var(--line)}.bar>span{display:block;height:100%;background:var(--green);border-radius:var(--r-pill)}.bar-legend{display:flex;justify-content:space-between;margin-top:var(--s-2);font-size:var(--fs-caption);color:var(--ink-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.bar-legend b{color:var(--ink);font-weight:600}.install{margin-top:var(--s-4);padding:var(--s-4) var(--s-5);display:flex;gap:var(--s-4);align-items:center}.install .app-ic{width:44px;height:44px;border-radius:11px;background:var(--green);color:var(--on-green);display:grid;place-items:center;flex:none;font-weight:700;font-size:18px;letter-spacing:-.03em}.install .txt{flex:1 1}.install .t1{font-size:var(--fs-label);font-weight:650;line-height:var(--lh-label)}.install .t2{font-size:var(--fs-caption);color:var(--ink-2);line-height:var(--lh-caption)}.install .acts{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.install .add{font-size:var(--fs-label);font-weight:650;color:var(--ink);background:var(--surface-sunk);border-radius:var(--r-pill);padding:6px 14px}.install .later{padding:4px 6px}.install .later,.section-h{font-size:var(--fs-caption);color:var(--ink-3)}.section-h{margin:var(--s-8) 0 var(--s-3);line-height:var(--lh-caption);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.list{padding:0 var(--s-5)}.li{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);padding:var(--s-4) 0;border-bottom:1px solid var(--line)}.li:last-child{border-bottom:0}.li .l1{font-size:var(--fs-body);font-weight:550}.li .l2{font-size:var(--fs-label);color:var(--ink-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.li .r{font-size:var(--fs-body);font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap}.li .r.yours{color:var(--green);font-size:var(--fs-label);font-weight:600;display:flex;align-items:center;gap:6px}.li .r.yours:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--green)}.reg-h{margin:var(--s-4) 0 var(--s-2);font-size:28px;line-height:34px;font-weight:650;letter-spacing:-.02em}.reg-sub{margin:0 0 var(--s-6);color:var(--ink-2);font-size:var(--fs-body)}.google-row{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--surface-sunk);font-size:var(--fs-label);color:var(--ink-2);margin-bottom:var(--s-6)}.google-row b{color:var(--ink);font-weight:600}.field{margin-bottom:var(--s-5)}.field label{display:flex;justify-content:space-between;align-items:baseline;font-size:var(--fs-label);font-weight:600;margin-bottom:var(--s-2)}.field label .opt{font-size:var(--fs-caption);font-weight:500;color:var(--ink-3)}.input{height:52px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);padding:0 var(--s-4);display:flex;align-items:center;font-size:var(--fs-body)}.input.placeholder{color:var(--ink-3)}.input.focus{border-color:var(--ink);box-shadow:0 0 0 3px rgba(26,26,23,.08)}.hint{font-size:var(--fs-caption);color:var(--ink-3);margin-top:6px}.child{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-4);margin-bottom:var(--s-3)}.child .av{width:40px;height:40px;border-radius:50%;background:var(--surface-sunk);display:grid;place-items:center;font-weight:650;color:var(--ink-2);flex:none}.child .cn{font-weight:600;font-size:var(--fs-body)}.child .cm,.child .edit{font-size:var(--fs-label);color:var(--ink-2)}.child .edit{margin-left:auto;font-weight:550}.child-form{padding:var(--s-4);margin-bottom:var(--s-3)}.child-form .row2{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--s-3);gap:var(--s-3)}.child-form .field{margin-bottom:var(--s-3)}.child-form .field:last-child{margin-bottom:0}.footer-cta{padding:var(--s-6) var(--s-5) 42px}.admin{width:1280px;min-height:800px;background:var(--bg);font-size:15px;line-height:22px}.a-top{height:60px;display:flex;align-items:center;gap:var(--s-8);padding:0 var(--s-8);border-bottom:1px solid var(--line);background:var(--surface)}.a-top .school{font-weight:650;font-size:16px}.a-top nav{display:flex;gap:var(--s-1)}.a-top nav a{padding:8px 12px;border-radius:var(--r-sm);color:var(--ink-2);text-decoration:none;font-weight:500}.a-top nav a.on{background:var(--surface-sunk);color:var(--ink);font-weight:600}.a-top .me{margin-left:auto;color:var(--ink-2);font-size:14px;display:flex;align-items:center;gap:10px}.a-top .me .av{width:30px;height:30px;border-radius:50%;background:var(--surface-sunk);display:grid;place-items:center;font-weight:650;font-size:13px;color:var(--ink-2)}.a-wrap{padding:var(--s-6) var(--s-8) var(--s-10);max-width:1280px}.crumbs{font-size:14px;color:var(--ink-3)}.crumbs span{margin:0 6px}.a-head{display:flex;align-items:flex-end;justify-content:space-between;margin-top:var(--s-2)}.a-head h1{margin:0;font-size:28px;line-height:34px;font-weight:650;letter-spacing:-.02em}.a-head .meta{color:var(--ink-2);margin-top:4px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.a-head .stats{display:flex;gap:var(--s-6);text-align:right}.a-head .stats .n{font-size:22px;font-weight:650;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:28px}.a-head .stats .k{font-size:13px;color:var(--ink-3)}.actionbar{position:-webkit-sticky;position:sticky;top:0;z-index:2;margin-top:var(--s-5);display:flex;align-items:center;gap:var(--s-5);padding:var(--s-4) var(--s-5);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:0 4px 16px rgba(26,26,23,.05)}.btn-mark{height:48px;padding:0 var(--s-6);border-radius:12px;background:var(--green);color:var(--on-green);font-weight:650;font-size:16px;display:inline-flex;align-items:center;gap:10px;width:auto}.actionbar .explain{color:var(--ink-2);font-size:14px}.actionbar .explain b{color:var(--ink)}.actionbar .right{margin-left:auto;display:flex;gap:var(--s-2);align-items:center}.btn-ghost{height:40px;padding:0 var(--s-4);border-radius:10px;border:1px solid var(--line-strong);background:var(--surface);font-weight:550;font-size:14px}.filter{display:flex;gap:2px;background:var(--surface-sunk);border-radius:10px;padding:3px;font-size:13px}.filter span{padding:6px 10px;border-radius:8px;color:var(--ink-2);font-weight:500}.filter span.on{color:var(--ink);font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.06)}.filter span.on,.roster{background:var(--surface)}.roster{margin-top:var(--s-4);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}.r-row{display:grid;grid-template-columns:36px 2.1fr 1.6fr 140px 150px 1.5fr;align-items:center;grid-gap:var(--s-4);gap:var(--s-4);padding:0 var(--s-5);min-height:58px;border-bottom:1px solid var(--line);font-size:14px}.r-row:last-child{border-bottom:0}.r-row.head{min-height:40px;background:var(--surface-sunk);color:var(--ink-3);font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.r-row .idx{color:var(--ink-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.r-row .vn{font-weight:600;font-size:15px}.r-row .ve{color:var(--ink-3);font-size:13px;line-height:18px}.r-row .kids{color:var(--ink-2)}.pill{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:var(--r-pill);font-size:13px;font-weight:600;white-space:nowrap}.pill:before{content:"";width:7px;height:7px;border-radius:50%}.pill.signed{border:1px solid var(--line-strong);color:var(--ink-2)}.pill.signed:before{border:1.5px solid var(--ink-3);width:6px;height:6px}.pill.done{background:var(--green-tint);color:var(--green)}.pill.done:before{background:var(--green)}.pill.noshow{background:var(--ink);color:var(--on-ink)}.pill.noshow:before{background:var(--on-ink)}.pill.canceled{background:var(--muted-bg);color:var(--muted-ink)}.pill.canceled:before{background:var(--muted-ink)}.hrs{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;display:flex;gap:8px}.hrs,.hrs .box{align-items:center}.hrs .box{width:64px;height:34px;border:1px solid var(--line-strong);border-radius:8px;display:inline-flex;justify-content:flex-end;padding:0 10px;font-weight:600;background:var(--surface)}.hrs .dash,.hrs .edited{color:var(--ink-3)}.hrs .edited{font-size:12px;line-height:16px}.acts{display:flex;gap:var(--s-4);justify-content:flex-end;font-size:14px}.acts a{color:var(--ink-2);text-decoration:underline;text-underline-offset:3px;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);font-weight:500}.acts a.undo{color:var(--ink);font-weight:600}.r-row.is-canceled .vn{color:var(--muted-ink);text-decoration:line-through;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong)}.r-row.is-canceled .kids,.r-row.is-canceled .ve{color:var(--muted-ink)}.a-foot{display:flex;justify-content:space-between;margin-top:var(--s-4);color:var(--ink-3);font-size:13px}.acts a,.btn-ghost,.btn-mark,.filter span{white-space:nowrap}.btn-mark{flex:none}.actionbar .explain{flex:1 1;min-width:0}.r-row{grid-template-columns:36px 2fr 1.4fr 130px 200px 250px}.ampm{font-size:var(--ampm-scale-sm);font-weight:var(--ampm-weight);opacity:var(--ampm-opacity);margin-left:var(--ampm-gap);letter-spacing:.02em}.c-time .ampm,.s-time .ampm,.slot .time .ampm{font-size:var(--ampm-scale-lg);margin-left:.2em;margin-right:.14em;letter-spacing:.03em}.c-time,.s-time{white-space:nowrap}.slot{padding:var(--s-4) var(--s-3) var(--s-4) var(--s-5)}.slot .top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);min-height:32px}.slot .time{margin-top:var(--s-1)}.slot.full .chip.full{padding-right:0}.li.earlier .l1{font-weight:500}.li.earlier .l1,.li.earlier .r{color:var(--ink-2)}.seg{display:grid;grid-template-columns:repeat(4,1fr);background:var(--surface-sunk);border:1px solid var(--line);border-radius:12px;padding:3px;margin-top:var(--s-1)}.seg button{height:36px;border-radius:9px;font-size:var(--fs-label);font-weight:550;color:var(--ink-2)}.seg button.on{background:var(--surface);color:var(--ink);font-weight:650;box-shadow:0 1px 3px rgba(26,26,23,.12)}.period{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s-5)}.period h1{margin:0;font-size:var(--fs-title);line-height:var(--lh-title);font-weight:650;letter-spacing:-.015em;white-space:nowrap}.period .nav{display:flex;gap:var(--s-1);align-items:center}.today-btn{height:40px;padding:0 var(--s-3);border-radius:var(--r-pill);border:1px solid var(--line);background:var(--surface);font-size:var(--fs-label);font-weight:600;color:var(--ink);margin-right:var(--s-1)}.period+.strip{margin-top:var(--s-4)}.mk{width:7px;height:7px;border-radius:50%;display:block}.mk.open{border:1.5px solid var(--ink-3)}.mk.booked{background:var(--green)}.mk.none{visibility:hidden}.mgrid{display:grid;grid-template-columns:repeat(7,1fr);grid-row-gap:4px;row-gap:4px;margin-top:var(--s-4)}.mgrid .wd{text-align:center;font-size:12px;line-height:16px;color:var(--ink-3);font-weight:600;padding-bottom:var(--s-2)}.mcell{height:56px;display:flex;flex-direction:column;align-items:center;gap:5px;padding-top:7px;border-radius:14px;margin:0 2px}.mcell .n{font-size:18px;line-height:24px;font-weight:550;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mcell.noslots .n{color:var(--ink-3);font-weight:450}.mcell.past .n{color:var(--muted-ink);font-weight:450}.mcell.blank{visibility:hidden}.mcell.today{box-shadow:inset 0 0 0 1.5px var(--ink)}.mcell.today .n{font-weight:700}.mcell.pressed{background:var(--ink)}.mcell.pressed .n{color:var(--on-ink);font-weight:700}.mcell.pressed .mk.open{border-color:color-mix(in srgb,var(--on-ink) 85%,transparent)}.legend{display:flex;gap:var(--s-5);margin-top:var(--s-4);font-size:var(--fs-caption);color:var(--ink-2);align-items:center;flex-wrap:wrap}.legend span{gap:7px}.annot,.legend span{display:inline-flex;align-items:center}.annot{gap:6px;margin-top:var(--s-3);font-size:12px;line-height:16px;font-style:italic;color:var(--ink-3);border:1px dashed var(--line-strong);border-radius:8px;padding:4px 9px}.annot.admin-annot{font-size:12px;margin-top:0}.ygrid{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--s-6) var(--s-5);gap:var(--s-6) var(--s-5);margin-top:var(--s-5)}.ymonth h3{margin:0 0 var(--s-1);font-size:var(--fs-label);line-height:var(--lh-label);font-weight:650}.ymonth.pastm h3{color:var(--ink-3)}.ydays{display:grid;grid-template-columns:repeat(7,1fr)}.ydays .wd{font-size:10px;line-height:16px;color:var(--ink-3);text-align:center;font-weight:600}.yd{height:27px;display:flex;flex-direction:column;align-items:center}.yd .n{width:21px;height:21px;display:grid;place-items:center;font-size:12px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;color:var(--ink);letter-spacing:-.02em}.yd .dot,.yd .n{border-radius:50%}.yd .dot{width:4px;height:4px;margin-top:1px}.yd.open .dot{background:var(--ink-3)}.yd.noslots .n{color:var(--ink-3);font-weight:450}.yd.past .n{color:var(--ink-3);font-weight:400}.yd.booked .n{background:var(--green);color:var(--on-green)}.yd.today .n{box-shadow:0 0 0 1.5px var(--ink)}.yd.today.booked .n{box-shadow:0 0 0 1.5px var(--bg),0 0 0 3px var(--ink)}.yd.pressed .n{background:var(--ink);color:var(--on-ink)}.yd.blank{visibility:hidden}.ylegend-booked{width:14px;height:14px;border-radius:50%;background:var(--green);display:inline-block}.steps{display:flex;gap:var(--s-3);font-size:14px;color:var(--ink-3);font-weight:550}.steps,.steps .st{align-items:center}.steps .st{display:inline-flex;gap:var(--s-2);white-space:nowrap}.steps .st i{font-style:normal;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:700;border:1.5px solid var(--line-strong);color:var(--ink-3)}.steps .st.on{color:var(--ink);font-weight:650}.steps .st.on i{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.steps .st.done{color:var(--ink-2)}.steps .st.done i{background:var(--surface-sunk);border-color:var(--surface-sunk);color:var(--ink)}.steps .sep{width:28px;height:1.5px;background:var(--line-strong)}.a-titlebar{display:flex;align-items:center;justify-content:space-between;margin-top:var(--s-2)}.a-titlebar h1{margin:0;font-size:28px;line-height:34px;font-weight:650;letter-spacing:-.02em}.choice-wrap{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--s-6);gap:var(--s-6);margin-top:var(--s-8)}.choice{position:relative;background:var(--surface);border:1.5px solid var(--line);border-radius:20px;padding:var(--s-8);min-height:300px;display:flex;flex-direction:column}.choice.sel{border:2px solid var(--ink);box-shadow:0 6px 24px rgba(26,26,23,.07)}.choice .radio{position:absolute;top:var(--s-6);right:var(--s-6);width:24px;height:24px;border-radius:50%;border:2px solid var(--line-strong)}.choice.sel .radio{border:7px solid var(--ink)}.choice .ic{width:52px;height:52px;border-radius:14px;background:var(--surface-sunk);display:grid;place-items:center;color:var(--ink)}.choice h2{margin:var(--s-5) 0 var(--s-2);font-size:22px;line-height:28px;font-weight:650}.choice p{margin:0;color:var(--ink-2);font-size:15px;line-height:22px;max-width:440px}.choice .ex{margin-top:auto;padding-top:var(--s-6);display:flex;flex-wrap:wrap;gap:var(--s-2)}.choice .ex span{font-size:13px;padding:5px 10px;border-radius:var(--r-pill);background:var(--surface-sunk);color:var(--ink-2);font-weight:500;white-space:nowrap}.choice .what{margin-top:var(--s-5);font-size:14px;color:var(--ink-2);border-top:1px solid var(--line);padding-top:var(--s-4);line-height:20px}.choice .what b{color:var(--ink)}.a-footer{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid var(--line)}.a-footer .grow{flex:1 1}.a-footer .note{color:var(--ink-3);font-size:13px}.btn-a{height:44px;padding:0 var(--s-5);border-radius:12px;font-weight:650;font-size:15px;display:inline-flex;align-items:center;gap:var(--s-2);white-space:nowrap}.btn-a.primary{background:var(--green);color:var(--on-green)}.btn-a.ghost{background:var(--surface);border:1px solid var(--line-strong);color:var(--ink);font-weight:600}.btn-a.text{color:var(--ink-2);font-weight:550;padding:0 var(--s-3)}.seg2{display:inline-grid;grid-template-columns:1fr 1fr;background:var(--surface-sunk);border:1px solid var(--line);border-radius:12px;padding:3px}.seg2 span{height:34px;padding:0 var(--s-5);display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);border-radius:9px;font-size:14px;font-weight:550;color:var(--ink-2);white-space:nowrap}.seg2 span.on{background:var(--surface);color:var(--ink);font-weight:650;box-shadow:0 1px 3px rgba(26,26,23,.12)}.form-cols{display:grid;grid-template-columns:minmax(0,1fr) 340px;grid-gap:var(--s-6);gap:var(--s-6);margin-top:var(--s-5);align-items:start}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-6)}.panel+.panel{margin-top:var(--s-5)}.panel h2{margin:0 0 var(--s-4);font-size:17px;line-height:24px;font-weight:650;display:flex;align-items:baseline;justify-content:space-between}.panel h2 small{font-size:13px;color:var(--ink-3);font-weight:500}.admin .field{margin-bottom:var(--s-4)}.admin .field label{font-size:13px;font-weight:600;margin-bottom:6px;color:var(--ink)}.admin .field label .opt{font-size:12px}.admin .input{height:42px;font-size:15px;border-radius:9px;padding:0 var(--s-3)}.admin .input.area{height:66px;align-items:flex-start;padding-top:10px;line-height:21px;color:var(--ink)}.admin .input .ic{color:var(--ink-3);margin-right:8px;display:inline-flex}.admin .input .tail{margin-left:auto;color:var(--ink-3);font-size:13px}.f2{grid-template-columns:1fr 1fr;grid-gap:var(--s-4)}.f2,.f3{display:grid;gap:var(--s-4)}.f3{grid-template-columns:1.3fr 1fr 1fr;grid-gap:var(--s-4)}.admin .hint{font-size:12px;margin-top:5px}.slot-ed{border:1px solid var(--line);border-radius:12px;overflow:hidden}.se-row{display:grid;grid-template-columns:28px minmax(0,1.5fr) 150px 150px 96px 76px 32px;grid-gap:var(--s-3);gap:var(--s-3);align-items:center;padding:10px var(--s-4);border-bottom:1px solid var(--line)}.se-row:last-child{border-bottom:0}.se-row.head{background:var(--surface-sunk);padding-top:8px;padding-bottom:8px;font-size:12px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}.se-row .grip{color:var(--line-strong);display:grid;place-items:center}.se-row .input{height:40px}.se-row .hrs-calc{font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-weight:600;text-align:right;font-size:14px}.se-row .rm{color:var(--ink-3);display:grid;place-items:center;width:32px;height:32px;border-radius:8px}.add-slot{margin-top:var(--s-3);height:44px;width:100%;border:1.5px dashed var(--line-strong);border-radius:12px;display:flex;align-items:center;justify-content:center;gap:var(--s-2);font-weight:600;font-size:15px;color:var(--ink)}.sum-list{margin:0;padding:0;list-style:none;font-size:14px}.sum-list li{display:flex;justify-content:space-between;gap:var(--s-3);padding:9px 0;border-bottom:1px solid var(--line)}.sum-list li:last-child{border-bottom:0}.sum-list .k{color:var(--ink-3)}.sum-list .v{font-weight:600;text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.status-pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:var(--r-pill);background:var(--surface-sunk);color:var(--ink-2);font-size:12px;font-weight:650;text-transform:uppercase;letter-spacing:.05em}.wdpick{display:flex;gap:var(--s-2)}.wdpick span{width:52px;height:42px;border-radius:10px;display:grid;place-items:center;font-size:14px;font-weight:600;border:1px solid var(--line-strong);color:var(--ink-2);background:var(--surface)}.wdpick span.on{background:var(--ink);border-color:var(--ink);color:var(--on-ink)}.count-card{background:var(--surface);border:2px solid var(--ink);border-radius:var(--r-md);padding:var(--s-6)}.count-card .big{font-size:30px;line-height:36px;font-weight:700;letter-spacing:-.02em}.count-card .big .num{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.count-card .calc{margin-top:var(--s-2);color:var(--ink-2);font-size:14px;line-height:20px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.count-card .warn{margin-top:var(--s-4);padding:var(--s-3);border-radius:10px;background:var(--surface-sunk);color:var(--ink-2);font-size:13px;line-height:19px}.minis{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:var(--s-4);gap:var(--s-4);margin-top:var(--s-5)}.mini h4{margin:0 0 4px;font-size:12px;font-weight:650}.mini .g{display:grid;grid-template-columns:repeat(7,1fr);grid-gap:2px;gap:2px}.mini .g b{height:12px;border-radius:3px;background:var(--surface-sunk)}.mini .g b.on{background:var(--ink)}.mini .g b.blank{background:transparent}.mini .c{margin-top:4px;font-size:11px;color:var(--ink-3);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.review-cols{display:grid;grid-template-columns:minmax(0,1fr) 420px;grid-gap:var(--s-6);gap:var(--s-6);margin-top:var(--s-5);align-items:start}.rv-table{width:100%;border-collapse:collapse;font-size:14px}.rv-table th{text-align:left;font-size:12px;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.06em;padding:8px 0}.rv-table td,.rv-table th{border-bottom:1px solid var(--line)}.rv-table td{padding:12px 0;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.rv-table tr:last-child td{border-bottom:0}.rv-table td.r,.rv-table th.r{text-align:right}.rv-table tfoot td{font-weight:650;border-top:1px solid var(--line-strong);border-bottom:0}.preview{background:var(--bg);border:1px solid var(--line);border-radius:20px;padding:var(--s-5)}.preview .pv-h{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}.preview .pv-day,.preview .pv-h{font-weight:600;margin-bottom:var(--s-3)}.preview .pv-day{font-size:17px}.preview .slots{gap:10px}.publish-box{margin-top:var(--s-5);padding:var(--s-5);border-radius:var(--r-md);background:var(--surface);border:1px solid var(--line);font-size:14px;color:var(--ink-2);line-height:20px}.publish-box b{color:var(--ink)}.legend.yl{gap:var(--s-4)}.lg-booked,.lg-none,.lg-open{font-style:normal;position:relative;width:21px;height:21px;border-radius:50%;display:inline-grid;place-items:center;font-size:12px;font-weight:600;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.lg-open{color:var(--ink)}.lg-open:after{content:"";position:absolute;bottom:-4px;left:50%;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--ink-3)}.lg-booked{background:var(--green);color:var(--on-green)}.lg-none{color:var(--ink-3);font-weight:450}.seg{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:1fr}.mini .g b.skip{background:linear-gradient(to top right,transparent calc(50% - .8px),var(--ink) calc(50% - .8px),var(--ink) calc(50% + .8px),transparent calc(50% + .8px));box-shadow:inset 0 0 0 1.5px var(--ink)}.mini .c b.cnt{color:var(--ink);font-weight:650}.mini-legend{display:flex;gap:var(--s-4);margin-top:var(--s-3);font-size:12px;color:var(--ink-3)}.mini-legend span{display:inline-flex;align-items:center;gap:6px}.mini-legend b{width:12px;height:12px;border-radius:3px;background:var(--surface-sunk);display:inline-block}.mini-legend b.on{background:var(--ink)}.mini-legend b.skip{background:linear-gradient(to top right,transparent calc(50% - .8px),var(--ink) calc(50% - .8px),var(--ink) calc(50% + .8px),transparent calc(50% + .8px));box-shadow:inset 0 0 0 1.5px var(--ink)}.count-card .big .skipped{color:var(--ink-2);font-weight:600}.skip-row{display:flex;align-items:center;gap:var(--s-2);flex-wrap:wrap}.admin .input.skip-input{width:200px;flex:none}.chip-x{display:inline-flex;align-items:center;gap:4px;height:34px;padding:0 6px 0 12px;border-radius:var(--r-pill);background:var(--surface-sunk);border:1px solid var(--line);font-size:14px;font-weight:600;color:var(--ink);white-space:nowrap;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.chip-x button{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;color:var(--ink-2)}.chip-x.ro{height:28px;padding:0 12px;font-size:13px}.chips-inline{display:inline-flex;gap:6px;justify-content:flex-end}.sum-list li.total{border-top:1px solid var(--line-strong);margin-top:2px}.sum-list li.total .k{color:var(--ink);font-weight:650}.sum-list li.total .v{font-size:17px}.sum-list li{align-items:center}.minis.wide{grid-template-columns:repeat(3,minmax(0,200px));gap:var(--s-8);margin-top:0}.minis.wide .g b{height:18px;border-radius:4px}.pv-note{margin-top:var(--s-3);font-size:13px;color:var(--ink-3)}.mini .c+.c{margin-top:0}.mini .c{line-height:15px}body,html{min-height:100%}body{background:var(--bg)}a{color:inherit;text-decoration:none}.app-frame{width:100%;max-width:430px;min-height:100dvh;margin:0 auto;position:relative;background:var(--bg);padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom, 0px) + 24px)}.app-frame.no-tabs{padding-bottom:calc(24px + env(safe-area-inset-bottom, 0px))}:root{--tabbar-h:64px}.app-frame .tabbar{height:auto;min-height:var(--tabbar-h);padding-bottom:env(safe-area-inset-bottom,0)}.week-swipe{touch-action:pan-y}.app-frame .tabbar{position:fixed;left:50%;transform:translateX(-50%);width:100%;max-width:430px;bottom:0;z-index:10}.login-pad{padding-top:var(--s-4)}.input-el{width:100%;height:52px;border:1px solid var(--line-strong);border-radius:var(--r-sm);background:var(--surface);padding:0 var(--s-4);font:inherit;font-size:var(--fs-body);color:var(--ink)}.input-el:focus{outline:none;border-color:var(--ink);box-shadow:0 0 0 3px rgba(26,26,23,.08)}.input-el::placeholder{color:var(--ink-3)}.form-error{margin-top:var(--s-4);border-radius:var(--r-sm);background:var(--err-bg);border:1px solid var(--err-line);color:var(--err-ink);font-weight:500}.form-error,.notice{padding:var(--s-3) var(--s-4);font-size:var(--fs-label)}.notice{margin:0 0 var(--s-5);border-radius:var(--r-md);background:var(--surface-sunk);color:var(--ink-2)}.empty-state{padding:var(--s-6) var(--s-5);text-align:left}.empty-title{margin:0 0 var(--s-2);font-size:var(--fs-body);font-weight:650}.empty-body{margin:0;color:var(--ink-2);font-size:var(--fs-label)}.day.today-outline{box-shadow:inset 0 0 0 1.5px var(--ink)}.admin-shell{min-height:100dvh;padding-bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom, 0px) + 24px);background:var(--bg);font-size:15px;line-height:22px}.admin-shell .a-top{height:60px;display:flex;align-items:center;gap:var(--s-8);padding:0 var(--s-8);border-bottom:1px solid var(--line);background:var(--surface)}.admin-shell .a-top .school{font-weight:650;font-size:16px}.admin-shell .a-top nav{display:flex;gap:var(--s-1)}.admin-shell .a-top nav a{padding:8px 12px;border-radius:var(--r-sm);color:var(--ink-2);font-weight:500}.admin-shell .a-top nav a.on{background:var(--surface-sunk);color:var(--ink);font-weight:600}.admin-shell .a-top .me{margin-left:auto;color:var(--ink-2);font-size:14px;display:flex;align-items:center;gap:10px}.admin-shell .a-top .me .av{width:30px;height:30px;border-radius:50%;background:var(--surface-sunk);display:grid;place-items:center;font-weight:650;font-size:13px;color:var(--ink-2)}.admin-shell .a-wrap{padding:var(--s-6) var(--s-8) var(--s-10);max-width:960px}@media (max-width:720px){.admin-shell .a-top{padding:0 var(--s-4);gap:var(--s-3)}.admin-shell .a-wrap{padding:var(--s-5) var(--s-4)}}.r-row.ev-row{grid-template-columns:2.2fr 1fr 1.6fr 1fr 1fr;text-decoration:none;color:inherit}a.r-row.ev-row:hover{background:var(--hover)}.r-row.sl-row{grid-template-columns:1.4fr 1.4fr 1fr .9fr 1.8fr;align-items:start}.inline-form{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;margin-top:8px}.inline-form label{display:flex;flex-direction:column;font-size:12px;color:var(--ink-3);gap:2px}.inline-form input,.inline-form select,.inline-form textarea{font:inherit;font-size:14px;padding:6px 8px;border:1px solid var(--line,#e4e0d8);border-radius:8px;background:var(--surface);color:var(--ink)}.linkish{background:none;border:0;padding:0;font:inherit;color:var(--ink-2,#4a4a44);text-decoration:underline;cursor:pointer}.acts form{display:inline}.acts .linkish{margin-left:12px}details>summary{cursor:pointer}.mode-pick{display:flex;gap:8px;margin:var(--s-4) 0}.slot-ed-row{display:grid;grid-template-columns:1.4fr 1.2fr 1fr 1fr .8fr auto;grid-gap:8px;gap:8px;align-items:flex-end;margin-bottom:8px}.slot-ed-row input{width:100%}.wdpick button{font:inherit}.admin-grid{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);grid-gap:var(--s-5);gap:var(--s-5);align-items:start;margin-top:var(--s-5)}@media (max-width:900px){.admin-grid{grid-template-columns:1fr}.r-row.ev-row,.r-row.sl-row{grid-template-columns:1fr 1fr}}.app-frame .tabbar.tabs-4{grid-template-columns:repeat(4,1fr);padding-left:4px;padding-right:4px}.tabbar .tab{min-height:48px;justify-content:flex-start;padding-top:2px;-webkit-tap-highlight-color:transparent}.back-parent{font-weight:650;padding:8px 10px;margin-left:-10px;border-radius:8px;white-space:nowrap}.back-parent:hover{background:var(--hover)}.profile-section{margin-bottom:var(--s-6)}.profile-section h2{font-size:17px;font-weight:650;margin:0 0 var(--s-3)}.profile-ro{color:var(--ink-2);padding:12px 0}.profile-msg{padding:10px 12px;border-radius:10px;margin-bottom:var(--s-4);font-size:14px}.profile-msg.ok{background:var(--green-tint);color:var(--green)}.profile-msg.err{background:var(--err-bg);color:var(--err-ink)}.child-card{padding:var(--s-4);margin-bottom:var(--s-3)}.child-card .row2{display:grid;grid-template-columns:1fr 1fr;grid-gap:var(--s-3);gap:var(--s-3)}.danger-text{color:var(--danger)}.btn-attend{background:var(--green);color:var(--on-green);border:0;border-radius:999px;padding:8px 14px;font-weight:600;font-size:14px;min-height:40px;cursor:pointer}.btn-attend:active{opacity:.85}.btn.btn-attend-lg{background:var(--green);color:var(--on-green);border-color:var(--green)}.self-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;background:var(--green-tint);color:var(--green);vertical-align:middle}.li .r form{display:inline}.scrim.fixed{position:fixed;z-index:40}.sheet.fixed{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:430px;z-index:41;padding-bottom:calc(var(--s-6) + env(safe-area-inset-bottom, 0px))}.install-sheet .ig-h{font-size:20px;line-height:26px;font-weight:650;letter-spacing:-.01em;margin-bottom:var(--s-4)}.ig-steps{list-style:none;padding:0;margin:0 0 var(--s-4);display:grid;grid-gap:var(--s-3);gap:var(--s-3)}.ig-steps li{display:flex;align-items:center;gap:var(--s-3);font-size:var(--fs-body);color:var(--ink);flex-wrap:wrap}.ig-steps .n{width:28px;height:28px;border-radius:50%;background:var(--green-tint);color:var(--green);font-weight:700;display:grid;place-items:center;flex:none;font-size:14px}.ig-steps .pill{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:var(--r-pill);background:var(--surface-sunk);border:1px solid var(--line);font-weight:600;font-size:var(--fs-label)}.share-ic{width:18px;height:18px;color:#0A7AFF}.ig-note{color:var(--ink-2);font-size:var(--fs-label);line-height:var(--lh-label);margin-bottom:var(--s-4)}.ig-url{margin-bottom:var(--s-3);font-size:15px}.ig-arrow{position:fixed;left:50%;transform:translateX(-50%);z-index:42;bottom:calc(4px + env(safe-area-inset-bottom, 0px));width:36px;height:36px;color:#fff;pointer-events:none;animation:ig-bob 1.2s ease-in-out infinite}.ig-arrow svg{width:100%;height:100%;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}@keyframes ig-bob{50%{transform:translate(-50%,6px)}}@media (prefers-reduced-motion:reduce){.ig-arrow{animation:none}}.install-section .btn{margin-top:0}.install-inline{margin-top:var(--s-4);display:flex;align-items:center;justify-content:center;gap:var(--s-3)}.install-inline .app-ic.sm{width:28px;height:28px;border-radius:7px;background:var(--green);color:var(--on-green);display:grid;place-items:center;font-weight:700;font-size:12px}body,html{background:var(--bg);color:var(--ink)}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.skip-link{position:absolute;left:8px;top:-60px;z-index:1000;background:var(--surface);color:var(--ink);padding:8px 14px;border-radius:8px;border:1px solid var(--line-strong)}.skip-link:focus{top:8px}.sr-only{padding:0;margin:-1px;border:0}.loading{min-height:50vh;display:grid;place-items:center}.spinner{width:28px;height:28px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--green);animation:vf-spin .8s linear infinite}@keyframes vf-spin{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}button[aria-busy=true],button[disabled]{opacity:.6;cursor:progress}.chip .t,.s-name,.school,.trunc,.ve,.vn{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell,.r-row>div,.r-row>span{min-width:0}.s-name{white-space:normal;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.a-head h1,.page-title,.s-name{overflow-wrap:anywhere}.form-ok{background:var(--ok-bg);color:var(--ok-ink);border-radius:10px;margin:12px 0}.banner.warn,.form-ok{padding:10px 12px;font-size:14px}.banner.warn{border:1px solid var(--warn-line);border-radius:10px;margin:10px 0;line-height:1.4}.banner.warn,.pill.warn{background:var(--warn-bg);color:var(--warn-ink)}.pill.warn{margin-left:6px}.btn-a.danger{background:transparent;color:var(--danger);border:1px solid var(--danger)}label.check{font-size:14px}.wd-field{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px;align-items:center}.wd-field legend{font-size:13px;color:var(--ink-2);margin-bottom:4px}.seg3{display:inline-flex;background:var(--surface-sunk);border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px}.seg3 button{border:0;background:transparent;color:var(--ink-2);font:inherit;font-size:15px;padding:8px 16px;border-radius:999px;min-height:40px;cursor:pointer}.seg3 button.on{background:var(--surface);color:var(--ink);font-weight:650;box-shadow:var(--shadow-card)}.status-page{text-align:center;padding-top:18vh;display:grid;grid-gap:14px;gap:14px;justify-items:center}.panel form.inline-form+form.inline-form{margin-top:10px}.r-row.vol-row{grid-template-columns:2.2fr 1.6fr .8fr .8fr .8fr;text-decoration:none;color:inherit}a.r-row.vol-row:hover{background:var(--hover)}.r-row.hist-row{grid-template-columns:1fr 2fr 1.4fr .9fr .6fr}.r-row.mh-row{grid-template-columns:80px 1fr auto;align-items:center}.r-row.inv-row{grid-template-columns:.7fr 1.2fr 1fr .7fr .8fr .8fr;align-items:center}.big-num{font-size:32px;font-weight:700;margin:0}.plain-list{list-style:none;margin:0;padding:0;display:grid;grid-gap:6px;gap:6px}.invite-out{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--hover)}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}label.check{display:inline-flex;gap:6px;align-items:center}@media (max-width:900px){.r-row.hist-row,.r-row.inv-row,.r-row.vol-row{grid-template-columns:1fr 1fr}}.admin-shell .a-wrap{max-width:1280px;margin:0 auto;width:100%}.att-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-gap:var(--s-3);gap:var(--s-3);margin:var(--s-5) 0 var(--s-4)}.att-stats .stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:var(--s-3) var(--s-4)}.att-stats .stat .n{font-size:24px;font-weight:650;line-height:30px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.att-stats .stat .l{font-size:13px;color:var(--ink-3)}.r-row.att-row{grid-template-columns:minmax(200px,2.2fr) minmax(110px,1.2fr) minmax(170px,auto) 110px minmax(220px,1.6fr);align-items:start;padding-top:var(--s-3);padding-bottom:var(--s-3)}.r-row.att-row.head{align-items:center;padding-top:0;padding-bottom:0}.r-row.att-row>span:nth-child(3){display:flex;flex-wrap:wrap;gap:4px;align-items:center;overflow:visible}.r-row.att-row .kids{white-space:normal;overflow-wrap:anywhere}.r-row.att-row .acts{display:flex;flex-wrap:wrap;gap:4px 12px;align-items:center}@media (max-width:900px){.att-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.r-row.att-row{grid-template-columns:1fr 1fr}.r-row.att-row.head{display:none}}.vf-dialog{border:1px solid var(--line);border-radius:16px;padding:var(--s-5);max-width:min(420px,calc(100vw - 32px));background:var(--surface);color:var(--ink);box-shadow:var(--shadow-sheet)}.vf-dialog::-webkit-backdrop{background:var(--scrim)}.vf-dialog::backdrop{background:var(--scrim)}.vf-dialog h2{margin:0 0 var(--s-2);font-size:18px;line-height:24px}.vf-dialog p{margin:0 0 var(--s-4);color:var(--ink-2)}.vf-dialog-acts{display:flex;gap:var(--s-3);justify-content:flex-end;margin-top:var(--s-4)}.vf-dialog-acts .btn{width:auto;padding:0 var(--s-5)}.btn-danger{background:var(--danger,#B3261E);color:#fff}.vf-toasts{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(var(--tabbar-h, 64px) + env(safe-area-inset-bottom, 0px) + 12px);z-index:1000;display:flex;flex-direction:column;gap:8px;width:min(440px,calc(100vw - 24px))}.admin-shell~.vf-toasts,body:has(.admin-shell) .vf-toasts{bottom:24px}.vf-toast{pointer-events:auto;display:flex;align-items:center;gap:12px;justify-content:space-between;background:var(--ink);color:var(--on-ink);border-radius:12px;padding:12px 16px;font-size:15px;box-shadow:var(--shadow-sheet)}.vf-toast.err{background:var(--err-bg);color:var(--err-ink);border:1px solid var(--err-line)}.vf-toast button{background:none;border:0;color:inherit;font-weight:700;text-decoration:underline;cursor:pointer;padding:4px;min-height:32px}:root[data-theme=dark] .btn-a.primary,:root[data-theme=dark] .btn-mark,:root[data-theme=dark] .btn-primary,:root[data-theme=dark] .install .app-ic{background:#1E5B3E;color:#F2F7F3}:root[data-theme=dark] .btn-a.primary:hover,:root[data-theme=dark] .btn-mark:hover,:root[data-theme=dark] .btn-primary:hover{background:#24704C}:root[data-theme=dark] .btn-a.primary:active,:root[data-theme=dark] .btn-mark:active,:root[data-theme=dark] .btn-primary:active{background:#164630}:root[data-theme=dark] .btn-a.primary:disabled,:root[data-theme=dark] .btn-primary:disabled{background:#2A3A31;color:#9FB0A5}.sheet.cal-sheet{max-height:88dvh;overflow-y:auto}.mgrid.is-loading .mcell:not(.past):not(.blank) .mk{visibility:visible;background:var(--line-strong);animation:vf-pulse 1s ease-in-out infinite alternate}@keyframes vf-pulse{0%{opacity:.35}to{opacity:.9}}@media (prefers-reduced-motion:reduce){.mgrid.is-loading .mk{animation:none}}.up-row{display:block;padding:0}.up-tap{display:grid;grid-template-columns:1fr auto;width:100%;text-align:left;background:none;border:0;padding:var(--s-4) var(--s-5,16px);color:inherit;font:inherit;cursor:pointer;min-height:56px}.up-tap .l1,.up-tap .l2{grid-column:1}.up-tap .up-chev{grid-column:2;grid-row:1/span 2;align-self:center;color:var(--ink-3);font-size:22px;transition:transform .15s}.up-row.open .up-chev{transform:rotate(90deg)}.up-actions{padding:0 var(--s-5,16px) var(--s-4)}.btn-danger-text{background:none;border:1px solid var(--line-strong);color:#B42318;border-radius:10px;padding:10px 14px;font:inherit;font-weight:600;min-height:44px;cursor:pointer}@media (prefers-color-scheme:dark){.btn-danger-text{color:#F97066}}.card.install.compact{display:flex;align-items:center;gap:10px;padding:8px 8px 8px 12px;min-height:0}.card.install.compact .app-ic{width:32px;height:32px;font-size:12px;border-radius:8px;flex:none}.card.install.compact .txt{flex:1 1;min-width:0}.card.install.compact .t1{font-size:15px;font-weight:600}.card.install.compact .add{min-height:36px;padding:0 14px}.install-x{background:none;border:0;color:var(--ink-3);font-size:22px;line-height:1;width:40px;height:40px;border-radius:10px;cursor:pointer;flex:none}.install-x:hover{background:var(--line)}.sort-h{color:inherit;text-decoration:none;white-space:nowrap}.sort-h.on,.sort-h:hover{color:var(--ink);text-decoration:underline;text-underline-offset:3px}.login-invite{margin-top:var(--s-2)}.install-sec-h{display:flex;align-items:center;justify-content:space-between;gap:8px}.install-sec-h h2{margin:0}.vf-toasts{pointer-events:none}.vf-toasts .vf-toast{pointer-events:auto}body:has(.sheet.fixed,.sheet[role=dialog],dialog[open]) .vf-toasts{top:calc(env(safe-area-inset-top, 0px) + 12px);bottom:auto}.fam-sub{margin:-8px 0 var(--s-4)}.carry-note{margin-top:var(--s-3);font-size:13px}.who-tag{display:inline-block;margin-left:6px;padding:1px 7px;border-radius:999px;font-size:11px;font-weight:600;background:var(--surface-sunk);color:var(--ink-2,var(--ink));border:1px solid var(--line);vertical-align:middle}.fam-invite{display:flex;flex-direction:column;gap:var(--s-2);margin-top:var(--s-2)}.fam-invite .input-el{font-size:13px}.fam-members{list-style:none;margin:0;padding:0;gap:6px}.fam-members,.fam-members li{display:flex;flex-direction:column}.fam-members li{padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.fam-members li span{font-size:13px;color:var(--ink-3,var(--ink));opacity:.8}.fam-row{display:grid;grid-template-columns:1.4fr 1.4fr 1fr .7fr .7fr .7fr;grid-gap:12px;gap:12px;align-items:center}.fam-edit{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-end;padding:8px 0 4px}.fam-edit label{display:flex;flex-direction:column;font-size:12px;gap:2px}@media (max-width:760px){.fam-row{grid-template-columns:1fr 1fr}}