@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-vietnamese-wght-normal-qRpaaN48.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-ext-wght-normal-DmpS2jIq.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Plus Jakarta Sans Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/plus-jakarta-sans-latin-wght-normal-eXO_dkmS.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f5f7;--surface:#fff;--surface-2:#e9ebef;--border:#d5d9e0;--text:#1b2230;--text-muted:#5b6270;--accent:#1e2a44;--on-accent:#fff;--status-open:#8a909c;--status-overdue:#b8360a;--status-reported-bg:#fef3c7;--status-reported:#8a3d05;--status-done-bg:#ecf8ef;--status-done:#15803d;--status-done-strong:#166534;--on-done:#fff;--info-bg:#e8effc;--info:#1d4fa8;--remind-bg:#fde8d7;--remind:#8a3d05;--kid-bg:#fff6ec;--kid-track:#f3e3d3;--kid-heading:#6b4423;--shadow:0 1px 2px #1018280f, 0 1px 3px #10182814;--scrim:#0e111773;--radius:20px;--radius-sm:12px;--touch:44px;--touch-kid:56px;--font:"Plus Jakarta Sans Variable", system-ui, -apple-system, "Segoe UI", sans-serif}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1117;--surface:#1a1f29;--surface-2:#252b37;--border:#343b49;--text:#e9ecf1;--text-muted:#a6aebb;--accent:#e9ecf1;--on-accent:#0e1117;--status-open:#8a93a3;--status-overdue:#ff8f6b;--status-reported-bg:#3b2a0b;--status-reported:#f8cf7a;--status-done-bg:#10291b;--status-done:#2db463;--status-done-strong:#8ce5aa;--on-done:#0e1117;--info-bg:#17284a;--info:#9cc0ff;--remind-bg:#3a2414;--remind:#f8b98a;--kid-bg:#14110d;--kid-track:#3a3027;--kid-heading:#c9b9a7;--shadow:none;--scrim:#0009}}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#0e1117;--surface:#1a1f29;--surface-2:#252b37;--border:#343b49;--text:#e9ecf1;--text-muted:#a6aebb;--accent:#e9ecf1;--on-accent:#0e1117;--status-open:#8a93a3;--status-overdue:#ff8f6b;--status-reported-bg:#3b2a0b;--status-reported:#f8cf7a;--status-done-bg:#10291b;--status-done:#2db463;--status-done-strong:#8ce5aa;--on-done:#0e1117;--info-bg:#17284a;--info:#9cc0ff;--remind-bg:#3a2414;--remind:#f8b98a;--kid-bg:#14110d;--kid-track:#3a3027;--kid-heading:#c9b9a7;--shadow:none;--scrim:#0009}.kid{--surface-kid:#fff;--text-kid:var(--text);background:var(--kid-bg);font-size:19px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .kid{--surface-kid:#231d17;--text-kid:#f3ece4;--text-muted:#c9b9a7}}:root[data-theme=dark] .kid{--surface-kid:#231d17;--text-kid:#f3ece4;--text-muted:#c9b9a7}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}body{background:var(--bg);color:var(--text);font-family:var(--font);-webkit-font-smoothing:antialiased;margin:0;font-size:16px;line-height:1.35}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:focus-visible{outline:3px solid var(--info);outline-offset:2px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.num{font-variant-numeric:tabular-nums}.app{min-height:100dvh;display:flex}.main{min-width:0;padding:calc(env(safe-area-inset-top) + 16px) 16px calc(72px + env(safe-area-inset-bottom));flex:1;max-width:760px;margin:0 auto}.main.wide{max-width:1400px}.page-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;display:flex}.eyebrow{color:var(--text-muted);font-size:14px;font-weight:500}h1{letter-spacing:-.02em;margin:4px 0 0;font-size:26px;font-weight:800;line-height:1.1}h2.section{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:18px 4px 6px;font-size:13px;font-weight:700}h2.section.overdue{color:var(--status-overdue)}.tabbar{background:var(--surface);border-top:1px solid var(--border);padding:4px 0 max(4px, calc(env(safe-area-inset-bottom) - 18px));z-index:10;justify-content:space-around;display:flex;position:fixed;inset:auto 0 0}.tabbar a,.sidebar a{min-width:64px;min-height:var(--touch);color:var(--text-muted);flex-direction:column;align-items:center;gap:2px;padding:4px 8px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.tabbar a[aria-current=page],.sidebar a[aria-current=page]{color:var(--text);font-weight:700}.sidebar{display:none}@media (width>=1024px){.tabbar{display:none}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;flex-shrink:0;gap:4px;width:232px;height:100dvh;padding:24px 12px;display:flex;position:sticky;top:0}.sidebar .brand{padding:8px 12px 20px;font-size:20px;font-weight:800}.sidebar a{border-radius:var(--radius-sm);flex-direction:row;justify-content:flex-start;gap:12px;padding:10px 12px;font-size:16px}.sidebar a[aria-current=page]{background:var(--surface-2)}.main{padding-bottom:48px}}.avatar{--size:34px;width:var(--size);height:var(--size);color:#fff;font-weight:700;font-size:calc(var(--size) * .4);border:0;border-radius:50%;flex-shrink:0;place-items:center;padding:0;display:inline-grid}.avatar.lg{--size:44px}.avatar.xl{--size:56px}.chips{scrollbar-width:none;align-items:center;gap:8px;padding:2px;display:flex;overflow-x:auto}.chip{min-height:var(--touch);border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:999px;align-items:center;gap:8px;padding:0 14px;font-size:15px;font-weight:600;display:inline-flex}.chip[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.chip.avatar-chip{background:0 0;border:3px solid #0000;padding:2px}.chip.avatar-chip[aria-pressed=true]{border-color:var(--accent)}.person-filter{margin-top:8px}.divider-v{background:var(--border);flex-shrink:0;width:1px;height:28px}.segmented{background:var(--surface-2);border-radius:14px;gap:4px;padding:4px;display:flex}.segmented button{min-height:var(--touch);color:var(--text-muted);background:0 0;border:0;border-radius:10px;flex:1;padding:0 10px;font-size:15px;font-weight:600}.segmented button[aria-pressed=true]{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.tiles{flex-wrap:wrap;gap:8px;margin:12px 0 4px;display:flex}.tile{background:var(--surface);border-radius:var(--radius-sm);white-space:nowrap;text-align:left;box-shadow:var(--shadow);border:0;flex:auto;align-items:baseline;gap:6px;padding:8px 12px;display:flex}.tile strong{font-size:22px;font-weight:800}.tile span{color:var(--text-muted);font-size:14px;font-weight:500}.tile.overdue strong,.tile.overdue span{color:var(--status-overdue)}.tile.reported{background:var(--status-reported-bg)}.tile.reported strong,.tile.reported span{color:var(--status-reported)}.card{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);overflow:hidden}.card+.card{margin-top:12px}.row{border-bottom:1px solid var(--border);align-items:center;gap:10px;min-height:52px;padding:6px 12px 6px 8px;display:flex}.row:last-child{border-bottom:0}.row.done{background:var(--status-done-bg)}.row .body{text-align:left;background:0 0;border:0;flex:1;min-width:0;padding:0}.row .title{font-size:16px;font-weight:600;display:block}.row.done .title{color:var(--status-done-strong)}.row .meta{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:4px 6px;margin-top:2px;font-size:13px;display:flex}.meta.overdue{color:var(--status-overdue)}.meta.reported{color:var(--status-reported)}.meta.done{color:var(--status-done-strong)}.badge{border-radius:8px;align-items:center;gap:4px;padding:1px 8px;font-size:12px;font-weight:600;display:inline-flex}.badge.ha{background:var(--info-bg);color:var(--info)}.badge.remind{background:var(--remind-bg);color:var(--remind)}.status{border:2px solid var(--status-open);background:0 0;border-radius:50%;flex-shrink:0;place-items:center;width:32px;height:32px;margin:6px;padding:0;display:grid;position:relative}.status:after{content:"";position:absolute;inset:-8px}.status svg{width:18px;height:18px}.status.overdue{border-color:var(--status-overdue);color:var(--status-overdue)}.status.reported{border-color:var(--status-reported);color:var(--status-reported);background:var(--status-reported-bg)}.status.confirmed{border-color:var(--status-done);background:var(--status-done);color:var(--on-done)}.status:disabled{cursor:default}.empty{color:var(--text-muted);text-align:center;padding:20px}.btn{min-height:var(--touch);border:1px solid var(--border);background:var(--surface);border-radius:12px;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-weight:700;display:inline-flex}.btn.primary{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}.btn.success{background:var(--status-done-strong);color:#fff;border-color:var(--status-done-strong)}:root[data-theme=dark] .btn.success{color:#0e1117}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .btn.success{color:#0e1117}}.btn.danger{color:var(--status-overdue)}.btn.block{width:100%}.btn.link{background:0 0;border:0;padding:0 8px}.btn:disabled{opacity:.5}.field{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);margin-bottom:12px;padding:8px 14px;display:block}.field>span{color:var(--text-muted);font-size:14px;font-weight:600;display:block}.field input,.field select,.field textarea{width:100%;min-height:var(--touch);background:0 0;border:0;padding:2px 0;font-size:17px}.field input:focus,.field textarea:focus{outline:none}.field:focus-within{outline:3px solid var(--info)}.group{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);margin-bottom:12px;padding:2px 14px}.group>.label{color:var(--text-muted);padding-top:10px;font-size:14px;font-weight:600}.line{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;min-height:48px;display:flex}.line:last-child{border-bottom:0}.line input,.line select{text-align:right;min-height:var(--touch);background:0 0;border:0;font-size:16px}.line .value{color:var(--text-muted)}.daypicker{grid-template-columns:repeat(7,1fr);gap:6px;padding:8px 0 12px;display:grid}.daypicker button{min-height:var(--touch);border:1px solid var(--border);background:var(--surface);border-radius:12px;font-weight:600}.daypicker button[aria-pressed=true]{background:var(--accent);color:var(--on-accent);border-color:var(--accent)}input.switch{appearance:none;background:var(--surface-2);border:1px solid var(--border);cursor:pointer;border-radius:999px;flex-shrink:0;width:56px;height:32px;min-height:0;margin:0;padding:0;position:relative}input.switch:after{content:"";width:24px;height:24px;box-shadow:var(--shadow);background:#fff;border-radius:50%;transition:transform .15s;position:absolute;top:3px;left:3px}input.switch:checked{background:var(--status-done);border-color:var(--status-done)}input.switch:checked:after{transform:translate(24px)}.form-head{justify-content:space-between;align-items:center;gap:8px;margin-bottom:12px;display:flex}.form-head h1{margin:0;font-size:20px}.error{color:var(--status-overdue);margin:8px 4px;font-weight:600}.hint{color:var(--text-muted);margin:4px 4px 12px;font-size:15px}.scrim{background:var(--scrim);z-index:30;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);width:100%;max-width:560px;padding:12px 20px calc(20px + env(safe-area-inset-bottom));border-radius:24px 24px 0 0;max-height:90dvh;overflow-y:auto}@media (width>=700px){.scrim{align-items:center}.sheet{border-radius:24px}}.sheet .grabber{background:var(--border);border-radius:3px;width:40px;height:5px;margin:0 auto 16px}.sheet h2{margin:0 0 6px;font-size:24px}.sheet .actions{grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;display:grid}.sheet .menu{gap:8px;margin-top:12px;display:grid}.sheet textarea{border:1px solid var(--border);background:var(--surface);border-radius:14px;width:100%;min-height:96px;padding:12px 14px;font-size:18px}.toast{left:50%;bottom:calc(96px + env(safe-area-inset-bottom));background:var(--accent);color:var(--on-accent);z-index:40;border-radius:14px;align-items:center;gap:12px;max-width:calc(100% - 32px);padding:8px 8px 8px 16px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 6px 16px #10182840}.toast button{min-height:var(--touch);color:inherit;background:0 0;border:0;padding:0 12px;font-weight:800;text-decoration:underline}.offline-bar{background:var(--status-reported-bg);color:var(--status-reported);text-align:center;border-radius:var(--radius-sm);margin-bottom:12px;padding:6px;font-size:14px;font-weight:600}.kid .main{padding-top:calc(env(safe-area-inset-top) + 20px)}.kid h1{font-size:30px}.kid .progress{background:var(--surface-kid);border-radius:var(--radius);margin:14px 0;padding:12px 16px}.kid .progress .bar{background:var(--kid-track);border-radius:999px;height:14px;margin-top:12px;overflow:hidden}.kid .progress .bar>div{background:var(--status-done);border-radius:999px;height:100%}.kid h2.kid-heading{color:var(--kid-heading);margin:16px 4px 8px;font-size:17px}.kid-card{background:var(--surface-kid);color:var(--text-kid);border-radius:var(--radius);text-align:left;border:0;align-items:center;gap:16px;width:100%;min-height:72px;margin-bottom:10px;padding:10px 14px;display:flex}.kid-card .status{width:44px;height:44px}.kid-card .status:after{inset:-6px}.kid-card.reported{background:var(--status-reported-bg)}.kid-card.done{background:var(--status-done-bg)}.kid-card .title{font-size:19px;font-weight:700;display:block}.kid-card .meta{color:var(--text-muted);font-size:15px}.kid-card.reported .title,.kid-card.reported .meta{color:var(--status-reported)}.kid-card.done .title,.kid-card.done .meta{color:var(--status-done-strong)}.kid .tabbar a{min-height:var(--touch-kid);font-size:15px}.cal-toolbar{flex-wrap:wrap;align-items:center;gap:8px 12px;margin-bottom:10px;display:flex}.cal-nav{align-items:center;gap:6px;display:flex}.cal-nav .btn{padding:0 12px}.cal-toolbar .segmented{flex:0 240px}.cal-toolbar .chips{margin-left:auto}.cal-grid{grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;display:grid}.cal-day{background:var(--surface);border-radius:var(--radius-sm);min-height:120px;box-shadow:var(--shadow);padding:8px}.cal-day.today{outline:2px solid var(--accent)}.cal-day.other{opacity:.55}.cal-day h3{color:var(--text-muted);margin:0 0 6px;font-size:14px}.cal-entry{text-align:left;border:0;border-left:4px solid var(--person);background:var(--surface-2);text-overflow:ellipsis;white-space:nowrap;border-radius:6px;width:100%;margin-bottom:4px;padding:4px 6px;font-size:13px;display:block;overflow:hidden}.cal-entry.done{opacity:.75;text-decoration:line-through}.cal-week-row{background:var(--surface);border-radius:var(--radius-sm);box-shadow:var(--shadow);grid-column:1/-1;padding:8px}.legend{color:var(--text-muted);flex-wrap:wrap;gap:12px;font-size:14px;display:flex}.legend i{background:var(--person);border-radius:50%;width:10px;height:10px;margin-right:6px;display:inline-block}@media (width<=699px){.cal-toolbar .segmented{flex:100%;order:-1;min-width:0}.cal-toolbar .segmented button{padding:0 4px}.cal-nav .btn{padding:0 10px}.cal-toolbar>.btn{margin-left:auto}.cal-toolbar .chips{flex:100%;order:1;margin-left:0}.cal-grid.week{grid-template-columns:1fr;gap:6px}.cal-grid.week>.eyebrow{display:none}.cal-grid.week .cal-day{min-height:0}.cal-grid.week .cal-entry{white-space:normal;padding:6px 8px;font-size:14px}.cal-grid.month{gap:3px}.cal-grid.month .cal-day{cursor:pointer;min-height:58px;padding:4px}.cal-grid.month .cal-day h3{margin-bottom:3px;font-size:13px}.cal-grid.month .cal-add{display:none}.cal-grid.month .cal-entry{pointer-events:none;background:var(--person);border:0;border-radius:3px;height:5px;margin-bottom:2px;padding:0;font-size:0}}@media (width>=1024px){.cal-grid.week .cal-day{min-height:calc(100dvh - 330px)}.cal-grid.month .cal-day{min-height:112px}}.week-strip{grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:10px;display:grid}.week-strip button{border-radius:var(--radius-sm);background:var(--surface);min-height:56px;color:var(--text-muted);border:0;justify-items:center;gap:1px;padding:4px 0;font-size:12px;display:grid}.week-strip button strong{color:var(--text);font-size:17px}.week-strip button i{min-height:14px;font-size:11px;font-style:normal}.week-strip button.today strong{text-underline-offset:3px;text-decoration:underline}.week-strip button[aria-pressed=true]{background:var(--accent)}.week-strip button[aria-pressed=true],.week-strip button[aria-pressed=true] strong{color:var(--on-accent)}.sheet-actions .btn{white-space:nowrap;min-width:0;padding:0 8px}.stat-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 12px;display:flex}.stat-row:last-child{border-bottom:0}.stat-main{flex:1;min-width:0}.stat-head{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.stat-head .rate{font-size:20px;font-weight:800}.meter{background:var(--surface-2);border-radius:3px;height:6px;margin:4px 0;overflow:hidden}.meter>div{background:var(--status-done);height:100%}.stat-facts{color:var(--text-muted);flex-wrap:wrap;gap:2px 10px;font-size:13px;display:flex}.stat-facts .miss{color:var(--status-overdue)}.bars{flex-shrink:0;align-items:stretch;gap:3px;width:88px;height:40px;display:flex}.bars .bar{background:var(--surface-2);border-radius:3px;flex-direction:column-reverse;flex:1;display:flex;overflow:hidden}.bars .bar .ok{background:var(--status-done)}.bars .bar .miss{background:var(--status-overdue)}@media (width>=700px){.bars{width:160px;height:48px}}.auth{place-items:center;min-height:100dvh;padding:24px 16px;display:grid}.auth-box{width:100%;max-width:400px}.auth-box .logo{background:var(--accent);width:72px;height:72px;color:var(--on-accent);border-radius:22px;place-items:center;margin-bottom:16px;display:grid}.or{text-align:center;color:var(--text-muted);margin:16px 0}.list-plain{margin:0;padding:0;list-style:none}.pool-card{border:2px dashed var(--border);border-radius:var(--radius-sm);align-items:center;gap:12px;margin-bottom:8px;padding:8px 12px;display:flex}.kid .pool-card{border-color:var(--kid-track);padding:14px 16px}.pool-card .title{font-size:16px;font-weight:700;display:block}.kid .pool-card .title{font-size:19px}.pool-card .meta{color:var(--text-muted)}.steps{margin:8px 0 12px;padding-left:22px}.steps li{margin-bottom:6px}pre.code{background:var(--surface-2);border-radius:var(--radius-sm);white-space:pre;padding:12px;font-size:13px;overflow-x:auto}.checklist li+li{border-top:1px solid var(--border)}.checklist button{text-align:left;background:0 0;border:0;align-items:center;gap:14px;width:100%;min-height:56px;padding:8px 16px;font-size:18px;display:flex}.kid .checklist button{min-height:var(--touch-kid);font-size:20px}.checklist .box{border:2.5px solid var(--status-open);border-radius:8px;flex-shrink:0;place-items:center;width:28px;height:28px;display:grid}.checklist .box.on{background:var(--status-done);border-color:var(--status-done);color:var(--on-done)}.checklist .done-text{color:var(--text-muted);text-decoration:line-through}.checklist button:disabled{cursor:default}.list-editor{grid-template-columns:minmax(0,1fr);gap:8px;padding:8px 0 12px;display:grid}.list-editor .item{gap:8px;display:flex}.list-editor .btn{flex-shrink:0}.list-editor input{min-width:0;min-height:var(--touch);border:1px solid var(--border);background:var(--surface);border-radius:10px;flex:1;padding:0 12px;font-size:16px}.template-card{text-align:left;background:var(--surface);border-radius:var(--radius);width:100%;box-shadow:var(--shadow);border:0;align-items:center;gap:14px;min-height:72px;margin-bottom:10px;padding:14px 16px;display:flex}.template-card .emoji{text-align:center;width:44px;font-size:30px}.template-card .title{font-size:18px;font-weight:700;display:block}.template-card .meta{color:var(--text-muted);font-size:15px}a.template-card{color:inherit;margin-bottom:12px;text-decoration:none}.avatar-stack{flex-shrink:0;display:inline-flex}.avatar-stack>*+*{box-shadow:0 0 0 2px var(--surface);margin-left:-10px}.photo{border-radius:var(--radius,12px);max-width:320px;margin-top:12px;display:block;overflow:hidden}.photo img{width:100%;height:auto;display:block}.photo.placeholder{background:var(--surface-2);height:120px}.log{border-top:1px solid var(--surface-2);margin-top:12px;padding-top:10px}.log-entry{text-align:left;width:100%;min-height:44px;color:inherit;font:inherit;background:0 0;border:0;padding:0;display:block}.timetable-wrap{overflow-x:auto}.timetable{border-collapse:collapse;width:100%;font-size:15px}.timetable th,.timetable td{text-align:left;border-bottom:1px solid var(--surface-2);padding:4px}.timetable td input{width:100%;min-width:64px;min-height:44px;font:inherit}.plan-board{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;display:grid}.plan-col{background:var(--surface);border-radius:14px;flex-direction:column;gap:8px;min-height:120px;padding:12px;display:flex}.plan-col.droppable{outline:2px dashed var(--accent,#2a63c7)}.plan-col h3{flex-wrap:wrap;align-items:center;gap:6px;margin:0 0 4px;font-size:17px;display:flex}.plan-col h3 .meta{color:var(--text-muted);white-space:nowrap;font-size:14px;font-weight:500}.plan-col input{width:100%;min-height:44px;font:inherit}.plan-chip{text-align:left;border:1px solid var(--surface-2);background:var(--surface-2);min-height:44px;color:inherit;font:inherit;touch-action:pan-y;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;cursor:grab;border-radius:10px;padding:8px 12px}.plan-chip .meta{font-size:13px;display:block}.plan-chip[aria-pressed=true]{outline:3px solid var(--accent,#2a63c7)}h1.fit{white-space:nowrap;font-size:clamp(20px,6vw,26px)}.week-nav{align-items:center;gap:8px;max-width:480px;margin-bottom:12px;display:flex}.week-nav strong{text-align:center;white-space:nowrap;flex:1}.week-nav .btn{padding:0 12px}.plan-list{border-top:1px solid var(--border);flex-direction:column;gap:2px;margin:4px 0 0;padding:8px 0 0;font-size:13px;list-style:none;display:flex}.plan-list li{align-items:center;min-width:0;display:flex}.plan-item{align-items:stretch;gap:4px;display:flex}.plan-item .plan-chip{flex:1;min-width:0}.plan-line{min-width:0;min-height:var(--touch);color:inherit;font:inherit;text-align:left;background:0 0;border:0;border-radius:8px;flex:1;align-items:center;gap:8px;padding:0 6px;display:flex}button.plan-line{cursor:grab;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}button.plan-line:hover{background:var(--surface-2)}button.plan-line[aria-pressed=true]{outline:3px solid var(--accent,#2a63c7)}.plan-edit{flex:0 0 var(--touch);min-height:var(--touch);color:var(--text-muted);justify-content:center;align-items:center;padding:0;display:inline-flex}.plan-list .meta{color:var(--text-muted);flex:0 0 22px}.plan-list .title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.plan-list li.done .title{color:var(--text-muted);text-decoration:line-through}.plan-ghost{z-index:1000;pointer-events:none;opacity:.85;max-width:240px;position:fixed;top:0;left:0}.board{background:var(--bg,var(--surface-2));min-height:100vh;color:var(--text);padding:24px}.board header{align-items:center;gap:16px;margin-bottom:16px;display:flex}.board h1{margin:0;font-size:clamp(28px,3vw,48px)}.board-cols{gap:16px;display:grid;overflow-x:auto}.board-col{background:var(--surface);border-radius:20px;flex-direction:column;gap:10px;padding:16px;display:flex}.board-col h2{align-items:center;gap:12px;margin:0 0 6px;font-size:clamp(22px,2vw,34px);display:flex}.board-col h2 .meta{font-size:.55em;font-weight:500;display:block}.board-task{background:var(--surface-2);min-height:72px;color:inherit;font:inherit;text-align:left;border:0;border-radius:14px;align-items:center;gap:12px;padding:10px 14px;font-size:clamp(18px,1.6vw,28px);display:flex}.board-task .title{flex:1}.board-task.confirmed{opacity:.55}.board-sheet{z-index:50;background:#00000080;place-items:center;display:grid;position:fixed;inset:0}.board-sheet .panel{background:var(--surface);color:var(--text);border-radius:24px;width:min(520px,100vw - 32px);max-height:calc(100vh - 32px);padding:24px;overflow-y:auto}.board-who{flex-wrap:wrap;gap:10px;margin:10px 0 16px;display:flex}.board-who button{border:2px solid var(--surface-2);min-height:64px;color:inherit;font:inherit;background:0 0;border-radius:40px;align-items:center;gap:8px;padding:6px 16px 6px 6px;font-size:20px;display:flex}.board-who button[aria-pressed=true]{border-color:var(--accent)}.pin-dots{justify-content:center;gap:14px;margin:8px 0 14px;display:flex}.pin-dots span{border:2px solid var(--text-muted,currentColor);border-radius:50%;width:18px;height:18px}.pin-dots span.on{background:var(--text)}.pin-pad{grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px;display:grid}.pin-pad button{background:var(--surface-2);min-height:72px;color:inherit;border:0;border-radius:16px;font-size:30px}.pin-pad button.ok{background:var(--accent);color:var(--on-accent)}.board-toast{background:var(--accent);color:var(--on-accent);border-radius:16px;align-items:center;gap:16px;padding:14px 20px;font-size:22px;display:flex;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.board-empty{max-width:560px;margin:15vh auto;padding:0 16px;font-size:20px}.avatar.photo-avatar{overflow:hidden}.avatar img{object-fit:cover;width:100%;height:100%}.color-picker{cursor:pointer;align-items:center;gap:6px;min-height:44px;display:inline-flex}.color-picker input[type=color]{background:0 0;border:0;width:32px;height:32px;padding:0}.kid-editor .chip,.kid-editor .segmented button,.kid-editor .btn{min-height:56px}.cl-bar{align-items:center;gap:8px;width:100%;max-width:320px;margin-top:6px;display:flex}.cl-bar .track{background:var(--surface-2);border-radius:999px;flex:1;height:8px;overflow:hidden}.cl-bar .fill{background:var(--status-done);border-radius:999px;height:100%;transition:width .4s;display:block}.cl-bar .num{color:var(--status-done-strong,var(--status-done));text-align:right;min-width:3.2em;font-size:14px;font-weight:700}.kid-card .cl-bar .track{height:12px}@media (prefers-reduced-motion:reduce){.cl-bar .fill{transition:none}}.main.split-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:32px;max-width:1500px;display:grid}.split-main .detail-pane{max-height:calc(100dvh - 48px);padding:0 4px 24px;position:sticky;top:24px;overflow-y:auto}.split-main .detail-pane>.empty{margin-top:30vh}.cal-day{cursor:copy}.cal-day h3{justify-content:space-between;align-items:center;display:flex}.cal-add{min-width:32px;min-height:32px;color:var(--text-muted);cursor:pointer;opacity:.5;background:0 0;border:0;border-radius:50%;place-items:center;display:grid}.cal-add:hover,.cal-add:focus-visible{opacity:1;background:var(--surface-2)}@media (hover:hover){.cal-add{opacity:0}.cal-day:hover .cal-add,.cal-add:focus-visible{opacity:1}}.sheet.route-sheet{max-width:680px;padding-top:8px}@media (width<=699px){.sheet.route-sheet{height:100dvh;max-height:100dvh;padding-top:calc(env(safe-area-inset-top) + 8px);border-radius:0}.sheet.route-sheet .grabber{display:none}}.main.split-main.columns{grid-template-columns:minmax(0,1fr) 420px;max-width:none}.person-columns{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;margin-top:16px;display:grid}.person-head{border-bottom:3px solid var(--border);align-items:center;gap:10px;margin:0;padding:8px 4px;font-size:18px;display:flex}.person-head .num{color:var(--text-muted);margin-left:auto;font-size:15px}h3.section{letter-spacing:.06em;text-transform:uppercase;color:var(--text-muted);margin:16px 4px 6px;font-size:13px;font-weight:700}h3.section.overdue{color:var(--status-overdue)}.cal-entry{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.cal-entry.selected{outline:3px solid var(--accent);outline-offset:1px}.cal-day.drop-target{outline:3px dashed var(--accent);background:var(--surface-2)}.drag-ghost{z-index:60;pointer-events:none;border-radius:var(--radius-sm);border-left:4px solid var(--person);background:var(--surface);box-shadow:var(--shadow);white-space:nowrap;text-overflow:ellipsis;max-width:240px;padding:6px 12px;font-weight:600;position:fixed;overflow:hidden;transform:translate(-50%,-120%)}.select-row{text-align:left;width:100%;font:inherit;color:inherit;cursor:pointer;background:0 0;border:0}.select-row .check{border:2px solid var(--border);border-radius:8px;flex:none;place-items:center;width:28px;height:28px;font-weight:800;display:grid}.select-row[aria-pressed=true] .check{background:var(--accent);border-color:var(--accent);color:var(--on-accent)}.bulk-bar{bottom:calc(60px + env(safe-area-inset-bottom));z-index:20;border-radius:var(--radius);background:var(--surface);box-shadow:var(--shadow);flex-wrap:wrap;align-items:center;gap:8px;margin-top:16px;padding:10px 12px;display:flex;position:sticky}.bulk-bar>strong{margin-right:auto}@media (width>=700px){.bulk-bar{bottom:16px}}.popup-nav{justify-content:space-between;align-items:center;gap:8px;display:flex}.popup-nav .hint{text-align:center;margin:0}.popup-paging{display:flex}.popup-paging .btn{gap:2px;padding:0 8px}.route-sheet .detail-back{display:none}@media (hover:none){.popup-nav .hint{display:none}}.top-add{top:calc(env(safe-area-inset-top) + 16px);z-index:12;width:var(--touch);height:var(--touch);background:var(--accent);color:var(--on-accent);box-shadow:var(--shadow);cursor:pointer;border:0;border-radius:14px;place-items:center;display:grid;position:fixed;right:16px}.kid .top-add{width:var(--touch-kid);height:var(--touch-kid);border-radius:18px}.has-add .main .page-head,.has-add .main .form-head{padding-right:calc(var(--touch) + 12px)}.kid.has-add .main .page-head,.kid.has-add .main .form-head{padding-right:calc(var(--touch-kid) + 12px)}.tabbar .more-tab{min-width:64px;min-height:var(--touch);color:var(--text-muted);font:inherit;cursor:pointer;background:0 0;border:0;flex-direction:column;align-items:center;gap:2px;padding:4px 8px;font-size:13px;font-weight:500;display:flex}.tabbar .more-tab.current,.tabbar .more-tab[aria-expanded=true]{color:var(--text);font-weight:700}.more-scrim{z-index:25;position:fixed;inset:0}.more-menu{right:8px;bottom:calc(60px + env(safe-area-inset-bottom));border-radius:var(--radius);background:var(--surface);gap:2px;min-width:240px;padding:8px;display:grid;position:absolute;box-shadow:0 8px 28px #10182840}.more-menu a,.sidebar .more-list a{min-height:var(--touch);border-radius:var(--radius-sm);color:var(--text);flex-direction:row;align-items:center;gap:12px;padding:8px 12px;font-size:16px;text-decoration:none;display:flex}.more-menu a[aria-current=page],.sidebar .more-list a[aria-current=page]{background:var(--surface-2);font-weight:700}@media (width>=1024px){.top-add,.more-scrim{display:none}.has-add .main .page-head,.has-add .main .form-head,.kid.has-add .main .page-head,.kid.has-add .main .form-head{padding-right:0}.sidebar-add{justify-content:center;gap:8px;margin:0 4px 12px}.sidebar .more-toggle{min-height:var(--touch);border-radius:var(--radius-sm);color:var(--text-muted);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;align-items:center;gap:12px;padding:10px 12px;font-size:16px;font-weight:500;display:flex}.sidebar .more-toggle span{margin-left:auto}.sidebar .more-list{gap:2px;padding-left:12px;display:grid}.sidebar .more-list a{font-size:15px}}.kid .tabbar .more-tab,.kid .more-menu a{min-height:var(--touch-kid);font-size:15px}.swipe{border-bottom:1px solid var(--border);position:relative;overflow:hidden}.swipe:last-child{border-bottom:0}.swipe>.row{background:var(--surface);touch-action:pan-y;border-bottom:0;transition:transform .2s;position:relative}.swipe>.row.done{background:var(--status-done-bg)}.swipe-actions{display:flex;position:absolute;inset:0 0 0 auto}.swipe-actions button{border:0;width:84px;font-size:14px;font-weight:700}.swipe-done{background:var(--status-done);color:var(--on-done)}.swipe-delete{background:var(--status-overdue);color:var(--on-done)}.swipe-reopen{background:var(--surface-2);color:var(--text)}@media (prefers-reduced-motion:reduce){.swipe>.row{transition:none}}.app:before{content:"";height:env(safe-area-inset-top);background:var(--bg);z-index:35;position:fixed;inset:0 0 auto}.app.kid:before{background:var(--kid-bg)}@media (width>=1024px) and (pointer:fine){.app:not(.kid){font-size:14.5px}.app:not(.kid) .main{max-width:880px;padding-top:16px}.app:not(.kid) .main.wide,.app:not(.kid) .main.split-main{max-width:1500px}.app:not(.kid) .main.split-main.columns{max-width:none}.app:not(.kid) h1{font-size:22px}.app:not(.kid) .eyebrow{font-size:13px}.app:not(.kid) h2.section{margin:14px 4px 4px;font-size:12px}.app:not(.kid) .page-head{margin-bottom:8px}.app:not(.kid) .avatar{--size:26px}.app:not(.kid) .avatar.lg{--size:34px}.app:not(.kid) .avatar.xl{--size:44px}.app:not(.kid) .chip{min-height:30px;padding:0 12px;font-size:13.5px}.app:not(.kid) .chip.avatar-chip{border-width:2px;padding:0}.app:not(.kid) .segmented{padding:3px}.app:not(.kid) .segmented button{min-height:28px;font-size:13.5px}.app:not(.kid) .btn{border-radius:9px;min-height:32px;padding:0 12px;font-size:14px}.app:not(.kid) .tiles{gap:6px;margin:8px 0 2px}.app:not(.kid) .tile{padding:5px 10px}.app:not(.kid) .tile strong{font-size:17px}.app:not(.kid) .tile span{font-size:13px}.app:not(.kid) .card{border-radius:10px}.app:not(.kid) .row{gap:8px;min-height:38px;padding:3px 10px 3px 4px}.app:not(.kid) .row .title{font-size:14.5px}.app:not(.kid) .row .meta{margin-top:0;font-size:12.5px}.app:not(.kid) .badge{padding:0 6px;font-size:11px}.app:not(.kid) .status{width:24px;height:24px;margin:4px}.app:not(.kid) .status:after{inset:-4px}.app:not(.kid) .status svg{width:14px;height:14px}.app:not(.kid) .cl-bar .track{height:6px}.app:not(.kid) .field{margin-bottom:8px;padding:6px 12px}.app:not(.kid) .field input,.app:not(.kid) .field select,.app:not(.kid) .field textarea{min-height:32px;font-size:15px}.app:not(.kid) .group{margin-bottom:8px}.app:not(.kid) .line{min-height:38px}.app:not(.kid) .line input,.app:not(.kid) .line select,.app:not(.kid) .list-editor input{min-height:32px;font-size:14.5px}.app:not(.kid) .sidebar{gap:2px;width:200px;padding:16px 10px}.app:not(.kid) .sidebar .brand{padding:4px 10px 12px;font-size:17px}.app:not(.kid) .sidebar a,.app:not(.kid) .sidebar .more-toggle{gap:10px;min-height:34px;padding:6px 10px;font-size:14.5px}.app:not(.kid) .sidebar a svg,.app:not(.kid) .sidebar .more-toggle svg{width:18px;height:18px}.app:not(.kid) .sidebar .more-list a{min-height:30px;font-size:13.5px}.app:not(.kid) .sidebar-add{margin:0 0 8px}.app:not(.kid) .cal-day{padding:6px}.app:not(.kid) .cal-day h3{margin-bottom:4px;font-size:12.5px}.app:not(.kid) .cal-entry{margin-bottom:3px;padding:2px 6px;font-size:12px}.app:not(.kid) .week-strip button{min-height:44px}.app:not(.kid) .stat-row{padding:6px 10px}.app:not(.kid) .stat-head .rate{font-size:17px}.app:not(.kid) .person-head{padding:4px;font-size:15px}.app:not(.kid) .split-main{gap:24px}.app:not(.kid) .pool-card{padding:4px 10px}.app:not(.kid) .pool-card .title{font-size:14.5px}.app:not(.kid) .form-head h1{font-size:18px}.app:not(.kid) .template-card{border-radius:10px;gap:10px;padding:6px 12px}.app:not(.kid) .template-card .emoji{width:28px;font-size:20px}.app:not(.kid) .template-card .title{font-size:14.5px}.app:not(.kid) .template-card .meta{font-size:12.5px}.app:not(.kid) input.switch{width:40px;height:24px}.app:not(.kid) input.switch:after{width:18px;height:18px;top:2px;left:2px}.app:not(.kid) input.switch:checked:after{transform:translate(16px)}}
