@font-face{font-family:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-vietnamese-wght-normal-BUzh504Q.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-ext-wght-normal-CcLUaPy7.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:Bricolage Grotesque Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/bricolage-grotesque-latin-wght-normal-DLoelf7F.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}@font-face{font-family:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-ext-wght-normal-B5bTHO_g.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:Instrument Sans Variable;font-style:normal;font-display:swap;font-weight:400 700;src:url(/assets/instrument-sans-latin-wght-normal-BbzFLZTg.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{--bg:#f5f1e8;--surface:#fffdf8;--surface-2:#eae4d6;--text:#1c2333;--muted:#5a6070;--border:#e3dccd;--border-strong:#d6cdb9;--primary:#2148a8;--primary-text:#fff;--primary-soft:#dce4f7;--primary-ink:#16337a;--points:#f0b43c;--points-soft:#fbebc6;--points-ink:#6b4a0a;--danger:#b8401a;--danger-soft:#f8e0d5;--danger-ink:#9a3412;--danger-border:var(--danger-soft);--warning:#8a5a08;--warning-soft:#fbebc6;--chip-points-bg:var(--points-soft);--chip-points-fg:var(--points-ink);--chip-late-bg:var(--danger-soft);--chip-late-fg:var(--danger-ink);--tint-sun-bg:#fbebc6;--tint-sun-fg:#8a5a08;--tint-blue-bg:#dce4f7;--tint-blue-fg:#16337a;--tint-clay-bg:#f8e0d5;--tint-clay-fg:#9a3412;--tint-green-bg:#e1e8d5;--tint-green-fg:#3f5a22;--tint-sun-soft:#fdf3dc;--tint-blue-soft:#e8edfa;--tint-clay-soft:#fbeae2;--tint-green-soft:#ebf0e2;--hero-bg:#1c2333;--hero-text:#fffdf8;--hero-muted:#c9ccd6;--hero-track:#3a4256;--band-bg:var(--primary);--band-text:#fff;--radius:18px;--radius-control:14px;--shadow:0 1px 2px #1c23330d;--font-display:"Bricolage Grotesque Variable", "Bricolage Grotesque", system-ui, sans-serif;--font-body:"Instrument Sans Variable", "Instrument Sans", system-ui, sans-serif;--tabbar-height:68px;--on-danger:#fff;--stripe:linear-gradient(var(--primary) 0 4px, transparent 4px 6px, var(--primary) 6px 8px, transparent 8px);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--bg:#12151d;--surface:#1b2030;--surface-2:#2c3347;--text:#ece8df;--muted:#a3a8b5;--border:#323950;--border-strong:#4a536b;--primary:#8da8f0;--primary-text:#0e1630;--primary-soft:#24315a;--primary-ink:#c9d6fa;--points:#f5be4a;--points-soft:#3a2e14;--points-ink:#f5be4a;--danger:#f08a63;--danger-soft:#4a2418;--danger-ink:#f6b49a;--danger-border:#c4704f;--warning:#f5be4a;--warning-soft:#3a2e14;--chip-points-bg:#f5be4a;--chip-points-fg:#1c1405;--chip-late-bg:#f08a63;--chip-late-fg:#1f0d05;--tint-sun-bg:#f5be4a;--tint-sun-fg:#1c1405;--tint-blue-bg:#8da8f0;--tint-blue-fg:#0e1630;--tint-clay-bg:#f08a63;--tint-clay-fg:#1f0d05;--tint-green-bg:#a9c48a;--tint-green-fg:#142008;--tint-sun-soft:#2e2715;--tint-blue-soft:#1f2a4a;--tint-clay-soft:#33221c;--tint-green-soft:#222c1c;--hero-bg:#24315a;--hero-text:#ece8df;--hero-muted:#c9d6fa;--hero-track:#34457a;--band-bg:#24315a;--band-text:#ece8df;--shadow:none;--on-danger:#1f0d05;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);font:16px/1.45 var(--font-body);-webkit-tap-highlight-color:transparent;margin:0}h1,h2{line-height:1.15;font-family:var(--font-display);letter-spacing:-.01em;margin:0}h1{font-size:1.85rem;font-weight:750}h2{font-size:1.15rem;font-weight:700}a{color:var(--primary)}.muted{color:var(--muted)}.small{font-size:.85rem}.error{color:var(--danger);margin:.25rem 0 .75rem}.center{place-items:center;min-height:60vh;display:grid}.center-text{text-align:center}.shell{min-height:100dvh}.content{max-width:640px;padding:calc(env(safe-area-inset-top) + 12px) 16px calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 88px);margin:0 auto}.page-header{align-items:center;gap:8px;min-height:48px;margin-bottom:12px;display:flex}.page-header h1{text-overflow:ellipsis;white-space:nowrap;flex:1;overflow:hidden}.tabbar{height:calc(var(--tabbar-height) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:var(--surface);border-top:1px solid var(--border);z-index:10;justify-content:space-around;display:flex;position:fixed;inset:auto 0 0}.tab{color:var(--muted);flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:.75rem;font-weight:600;text-decoration:none;display:flex}.tab svg{box-sizing:content-box;border-radius:999px;padding:4px 16px}.tab.active{color:var(--primary-ink)}.tab.active svg{background:var(--primary-soft)}.fab{right:max(16px,50vw - 304px);bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 16px);background:var(--primary);width:56px;height:56px;color:var(--primary-text);z-index:11;border-radius:20px;place-items:center;display:grid;position:fixed;box-shadow:0 6px 18px #2148a859}button{font:inherit;color:inherit}.button{border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--surface);min-height:48px;color:var(--text);cursor:pointer;justify-content:center;align-items:center;gap:6px;padding:0 20px;font-weight:600;text-decoration:none;display:inline-flex}.button.primary{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.button.danger{color:var(--danger-ink);border-color:var(--danger-border);background:var(--danger-soft)}.button.block{width:100%}.button.small{border-radius:11px;min-height:36px;padding:0 14px;font-size:.875rem}.button:disabled{opacity:.55;cursor:default}.icon-button{border-radius:var(--radius-control);width:44px;height:44px;color:var(--text);cursor:pointer;background:0 0;border:none;place-items:center;font-size:1.4rem;text-decoration:none;display:inline-grid}.icon-button:hover{background:var(--surface-2)}.link-button{color:var(--primary);cursor:pointer;background:0 0;border:none;margin:16px auto;font-weight:600;display:block}.field{flex-direction:column;gap:6px;margin-bottom:16px;display:flex}.field-label{font-size:.9rem;font-weight:600}.field-hint{color:var(--muted);font-size:.8rem}input,select,textarea{border-radius:var(--radius-control);border:1px solid var(--border-strong);background:var(--surface);width:100%;min-height:48px;color:var(--text);font:inherit;padding:10px 14px}input:focus,select:focus,textarea:focus{outline:2px solid var(--primary);outline-offset:-1px}input.narrow{flex:none;width:84px}.code-input,.code{letter-spacing:.15em;font-family:ui-monospace,SF Mono,Consolas,monospace}.row{gap:8px;display:flex}.segmented{background:var(--surface-2);border-radius:14px;gap:4px;margin-bottom:16px;padding:4px;display:flex}.field .segmented{margin-bottom:0}.segmented button{min-height:38px;color:var(--muted);cursor:pointer;background:0 0;border:none;border-radius:11px;flex:1;font-weight:600}.segmented button.active{background:var(--surface);color:var(--primary-ink);box-shadow:var(--shadow)}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border-strong);background:var(--surface);cursor:pointer;border-radius:999px;min-width:44px;min-height:40px;font-weight:600}.chip.active{background:var(--primary);border-color:var(--primary);color:var(--primary-text)}.icon-grid{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.icon-grid button{aspect-ratio:1;border-radius:var(--radius-control);background:var(--surface);cursor:pointer;border:2px solid #0000;place-items:center;padding:0;display:grid}.icon-grid button.active{border-color:var(--primary);background:var(--primary-soft)}.form-actions{flex-direction:column;gap:10px;margin-top:8px;display:flex}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:16px}.card h1,.card h2{margin-bottom:12px}.row-form{align-items:flex-end;gap:8px;display:flex}.row-form .field{flex:1;margin-bottom:0}.section{margin:20px 0}.section>h2{align-items:center;gap:8px;margin-bottom:8px;display:flex}.section.overdue>h2{color:var(--danger-ink)}.count{font-family:var(--font-body);background:var(--surface-2);color:var(--muted);border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:700}.list{flex-direction:column;gap:8px;margin:0 0 12px;padding:0;list-style:none;display:flex}.list-item{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);color:inherit;align-items:center;gap:12px;padding:12px;text-decoration:none;display:flex}.list-main{flex-direction:column;flex:1;min-width:0;display:flex}.list-title{font-weight:600}.thing{border-radius:30%;flex:none;place-items:center;display:inline-grid}.tint-sun{background:var(--tint-sun-bg);color:var(--tint-sun-fg)}.tint-blue{background:var(--tint-blue-bg);color:var(--tint-blue-fg)}.tint-clay{background:var(--tint-clay-bg);color:var(--tint-clay-fg)}.tint-green{background:var(--tint-green-bg);color:var(--tint-green-fg)}.member-actions{align-items:center;gap:4px;display:flex}.member-actions select{width:auto;min-height:36px;padding:4px 8px;font-size:.85rem}.badge{background:var(--surface-2);color:var(--muted);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:600}.badge-admin{background:var(--primary-soft);color:var(--primary-ink)}.avatar{color:#fff;font-family:var(--font-display);border-radius:50%;flex:none;place-items:center;font-weight:700;display:inline-grid}.avatar-placeholder{border:2px dashed var(--border-strong);border-radius:50%;flex:none;width:28px;height:28px}.profile-head{align-items:center;gap:14px;margin-bottom:16px;display:flex}.household-name{margin-bottom:8px}.task-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.task{border-radius:var(--radius);background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow);align-items:center;gap:12px;padding:12px;display:flex}.task.late{border-color:color-mix(in srgb, var(--danger) 35%, var(--border))}.task-check{border-radius:var(--radius-control);border:2px solid var(--primary);background:var(--surface);width:44px;height:44px;color:var(--primary);cursor:pointer;flex:none;place-items:center;display:grid}.task-check:not(:disabled):hover,.task-check:not(:disabled):active{background:var(--primary);color:var(--primary-text)}.task.late .task-check:not(:disabled){border-color:var(--danger);color:var(--danger)}.task.late .task-check:not(:disabled):hover,.task.late .task-check:not(:disabled):active{background:var(--danger);color:var(--on-danger)}.task-check:disabled{border:2px dashed var(--border-strong);color:var(--muted);cursor:default;background:0 0}.task-body{flex:1;min-width:0}.task-body.clickable{cursor:pointer}.task-title{overflow-wrap:anywhere;font-size:1.02rem;font-weight:600}.task-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:4px;font-size:.82rem;display:flex}.task-room{align-items:center;gap:6px;display:inline-flex}.task-meta svg{vertical-align:-1px}.due.late{background:var(--chip-late-bg);color:var(--chip-late-fg);border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:700}.task-blocked,.task-open{margin-top:2px;font-size:.8rem}.task-blocked{color:var(--muted)}.task-open{color:var(--warning)}.empty{text-align:center;padding:40px 16px}.empty-title{margin:0 0 4px;font-size:1.1rem;font-weight:600}.empty .button{margin-top:12px}.summary{background:linear-gradient(var(--points) 0 4px, transparent 4px 6px, var(--points) 6px 8px, transparent 8px) top / 100% 10px no-repeat, var(--hero-bg);color:var(--hero-text);border-radius:20px;flex-direction:column;gap:12px;margin:0 0 16px;padding:24px 16px 16px;text-decoration:none;display:flex}.summary-top{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.summary-label{color:var(--hero-muted);font-size:.82rem;display:block}.summary-points{font-family:var(--font-display);font-size:2.1rem;font-weight:800;line-height:1}.summary-points small{font-size:1rem;font-weight:600}.summary-streak{color:var(--points);align-items:center;gap:6px;font-size:.9rem;font-weight:600;display:inline-flex}.summary-days{text-align:center;color:var(--hero-muted);grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin:0;padding:0;font-size:.7rem;list-style:none;display:grid}.summary-days li:before{content:"";background:var(--hero-track);border-radius:3px;height:6px;margin-bottom:4px;display:block}.summary-days li.done:before{background:var(--points)}.summary-days li.today{color:var(--hero-text);font-weight:700}.points{background:var(--chip-points-bg);color:var(--chip-points-fg);border-radius:999px;padding:1px 8px;font-size:.75rem;font-weight:700}.health{background:var(--surface-2);border-radius:999px;height:6px;margin-top:6px;display:block;overflow:hidden}.health span{border-radius:inherit;height:100%;transition:width .4s;display:block}.health.good span{background:var(--primary)}.health.fair span{background:var(--points)}.health.poor span{background:var(--danger)}.week-label{margin:-6px 0 14px;font-size:.9rem}.streak-card{align-items:center;gap:14px;display:flex}.streak-flame{border-radius:var(--radius-control);width:44px;height:44px}.ranking .rank{width:30px;height:30px;font-family:var(--font-display);color:var(--muted);border-radius:50%;flex:none;place-items:center;font-size:1rem;font-weight:800;display:grid}.ranking .score{font-family:var(--font-display)}.podium{border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);grid-template-columns:repeat(3,minmax(0,1fr));align-items:end;gap:10px;margin:0 0 16px;padding:20px 14px 0;list-style:none;display:grid;overflow:hidden}.podium-2{grid-template-columns:repeat(2,minmax(0,1fr))}.podium-place{flex-direction:column;align-items:center;gap:6px;min-width:0;display:flex}.podium-3 .place-1{order:2}.podium-3 .place-2{order:1}.podium-3 .place-3{order:3}.podium-place.me .avatar{box-shadow:0 0 0 3px var(--points)}.podium-crown{color:var(--tint-sun-fg)}.podium-name{text-overflow:ellipsis;white-space:nowrap;max-width:100%;font-weight:600;overflow:hidden}.podium-block{text-align:center;border-radius:12px 12px 0 0;flex-direction:column;justify-content:center;align-self:stretch;align-items:center;gap:2px;padding:8px 4px;display:flex}.place-1 .podium-block{background:var(--primary);height:108px;color:var(--primary-text)}.place-2 .podium-block{background:var(--primary-soft);height:80px;color:var(--primary-ink)}.place-3 .podium-block{background:var(--surface-2);height:60px;color:var(--text)}.podium-points{font-family:var(--font-display);font-size:1.05rem;font-weight:800;line-height:1.1}.place-1 .podium-points{font-size:1.3rem}.podium-rank{opacity:.85;font-size:.72rem}.ranking .score{white-space:nowrap;font-weight:700}.list-item.me{border-color:var(--primary);background:var(--primary-soft)}.bursts{pointer-events:none;z-index:30;position:fixed;inset:0}.burst{width:0;height:0;position:absolute}.bubble{left:calc(var(--size) / -2);top:calc(var(--size) / -2);width:var(--size);height:var(--size);border:2px solid var(--primary);background:color-mix(in srgb, var(--primary) 18%, transparent);opacity:0;animation:bubble-out .9s ease-out var(--delay) forwards;border-radius:50%;position:absolute}.burst-points{font-family:var(--font-display);color:var(--primary);text-shadow:0 1px 0 var(--surface), 0 0 8px var(--surface);font-size:1.4rem;font-weight:800;animation:1.2s ease-out forwards points-up;position:absolute;top:0;left:0;transform:translate(-50%,-50%)}@keyframes bubble-out{0%{opacity:.9;transform:translate(0)scale(.4)}70%{opacity:.8}to{opacity:0;transform:translate(var(--dx), var(--dy)) scale(1)}}@keyframes points-up{0%{opacity:0;transform:translate(-50%,-50%)scale(.6)}20%{opacity:1;transform:translate(-50%,-110%)scale(1.15)}to{opacity:0;transform:translate(-50%,-260%)scale(1)}}.setup-room{padding:0;overflow:hidden}.setup-room.chosen{border-color:var(--primary)}.setup-room-head,.setup-tasks label{cursor:pointer;align-items:center;gap:12px;padding:12px 16px;display:flex}.setup-room input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--primary);flex:none}.setup-tasks{border-top:1px solid var(--border);margin:0;padding:0 0 6px;list-style:none}.setup-tasks label{padding:8px 16px 8px 24px}.setup-tasks label.present{opacity:.6;cursor:default}.setup-bar{left:0;right:0;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom));background:linear-gradient(transparent, var(--bg) 30%);z-index:9;padding:12px 16px;position:fixed}.setup-bar .button{max-width:608px;margin:0 auto}.success{color:var(--primary);font-weight:600}.profile-photo{flex-direction:column;align-items:center;margin-bottom:8px;display:flex}.profile-photo .link-button{margin:4px auto 0;font-size:.85rem}.profile-photo-picker{cursor:pointer;flex-direction:column;align-items:center;gap:6px;display:flex;position:relative}img.avatar{object-fit:cover;background:var(--surface-2)}.profile-photo-edit{color:var(--primary);font-size:.85rem;font-weight:600}.cropper{z-index:40;background:#0009;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.cropper-panel{border-radius:var(--radius);background:var(--surface);flex-direction:column;align-items:center;gap:12px;width:100%;max-width:400px;padding:16px;display:flex}.cropper-panel h2,.cropper-panel p{align-self:stretch;margin:0}.cropper-frame{touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;background:#000;border-radius:12px;position:relative;overflow:hidden}.cropper-frame:active{cursor:grabbing}.cropper-frame img{transform-origin:0 0;pointer-events:none;max-width:none;position:absolute;top:0;left:0}.cropper-mask{pointer-events:none;border-radius:50%;outline:2px solid #fffc;position:absolute;inset:0;box-shadow:0 0 0 9999px #00000073}.cropper-zoom{color:var(--muted);align-self:stretch;align-items:center;gap:10px;font-weight:700;display:flex}.cropper-zoom input{min-height:0;accent-color:var(--primary);border:none;flex:1;padding:0}.cropper-panel .row{align-self:stretch}.account-block{border-top:1px solid var(--border);flex-direction:column;align-items:flex-start;gap:8px;padding:12px 0;display:flex}.account-block:first-of-type{border-top:none;padding-top:0}.account-value{overflow-wrap:anywhere;margin:0}.account-form{width:100%;margin-top:4px}.kid-hello{margin:calc(-12px - env(safe-area-inset-top)) -16px 30px;padding:calc(env(safe-area-inset-top) + 28px) 20px 22px;background:radial-gradient(circle at 86% 34%, #fff3 0 30px, transparent 31px), radial-gradient(circle at 74% 78%, #ffffff24 0 13px, transparent 14px), radial-gradient(circle at 95% 82%, #ffffff29 0 8px, transparent 9px), radial-gradient(circle at 62% 22%, #ffffff1a 0 6px, transparent 7px), var(--band-bg);color:var(--band-text);align-items:center;gap:16px;display:flex;position:relative}.kid-hello:after{content:"";background:var(--stripe);height:10px;position:absolute;bottom:-14px;left:0;right:0}.kid-hello .avatar{box-shadow:0 0 0 3px var(--surface)}.kid-hello h1{font-size:2.3rem;font-weight:800}.kid-stats{opacity:.88;flex-wrap:wrap;gap:2px 12px;margin:4px 0 0;font-weight:600;display:flex}.kid-stat{white-space:nowrap}.kid-stats svg{vertical-align:-3px}:root:not([data-theme=dark]) .kid-tile .thing,:root:not([data-theme=dark]) .kid-goal .thing{background:var(--surface)}.kid-progress{text-align:center}.kid-progress.all-done{background:var(--points-soft);border-color:#0000}.kid-trophy{background:var(--points);color:#1c1405;border-radius:50%;place-items:center;width:64px;height:64px;margin-bottom:8px;animation:.6s ease-out both pop;display:inline-grid}.kid-stars{color:var(--border-strong);flex-wrap:wrap;justify-content:center;gap:4px;margin:2px 0 6px;display:flex}.kid-stars .on{color:var(--points);animation:.5s ease-out both pop;animation-delay:calc(var(--i) * 90ms)}.kid-stars svg{display:block}@keyframes pop{0%{transform:scale(.3)rotate(-30deg)}70%{transform:scale(1.2)rotate(6deg)}to{transform:none}}.kid-progress-title{font-family:var(--font-display);margin:0 0 10px;font-size:1.3rem;font-weight:700}.kid-bar{background:var(--surface-2);border-radius:999px;height:14px;display:block;overflow:hidden}.kid-bar span{border-radius:inherit;background:var(--primary);height:100%;transition:width .5s;display:block}.kid-progress .small{margin:8px 0 0}.kid-list{flex-direction:column;gap:12px;margin:0;padding:0;list-style:none;display:flex}.kid-task{background:var(--surface);border:none;border-radius:24px;align-items:center;gap:14px;padding:16px 14px 16px 16px;display:flex}.kid-task.tint-card-sun{background:var(--tint-sun-soft)}.kid-task.tint-card-blue{background:var(--tint-blue-soft)}.kid-task.tint-card-clay{background:var(--tint-clay-soft)}.kid-task.tint-card-green{background:var(--tint-green-soft)}.kid-task.late{box-shadow:inset 0 0 0 2px var(--danger)}.kid-list.help .kid-task{outline:2px dashed var(--border-strong);outline-offset:-2px}.kid-tile{flex:none;position:relative}.kid-sticker{background:var(--points);color:#1c1405;font-family:var(--font-display);border-radius:999px;padding:2px 8px;font-size:.9rem;font-weight:800;position:absolute;bottom:-8px;right:-10px;transform:rotate(-8deg);box-shadow:0 2px #1c23332e}.kid-task-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.kid-task-title{font-family:var(--font-display);overflow-wrap:anywhere;font-size:1.3rem;font-weight:700}.kid-task-meta{color:var(--muted);font-weight:600}.kid-late{color:var(--danger-ink)}.kid-check{background:var(--primary);width:64px;height:64px;color:var(--primary-text);cursor:pointer;border:none;border-radius:20px;flex:none;place-items:center;transition:transform .12s ease-out;display:grid;box-shadow:0 4px 12px #2148a847}.kid-check:active{transform:scale(.86)rotate(-6deg)}.kid-check:disabled{opacity:.6}.join-household{margin:0 0 16px;font-size:1.1rem}.invite-banner{background:var(--primary-soft);color:var(--primary-ink)}.offline-bar{z-index:12;padding:calc(env(safe-area-inset-top) + 8px) 16px 8px;background:var(--warning-soft);color:var(--warning);text-align:center;font-size:.85rem;font-weight:600;position:sticky;top:0}.banner{border-radius:var(--radius);background:var(--warning-soft);color:var(--warning);align-items:center;gap:10px;margin:0 0 14px;padding:12px 14px;font-size:.9rem;font-weight:600;text-decoration:none;display:flex}.workload-row{justify-content:space-between;gap:8px;font-weight:600;display:flex}.workload-bar{background:var(--surface-2);border-radius:999px;height:8px;margin-top:6px;display:block;overflow:hidden}.workload-bar span{border-radius:inherit;background:var(--primary);height:100%;display:block}.workload-bar.open span{background:var(--muted)}.take-over{border:1px solid var(--primary);color:var(--primary);cursor:pointer;background:0 0;border-radius:999px;margin-left:8px;padding:2px 10px;font-size:.8rem;font-weight:600}.photo-button{color:var(--muted);flex:none}.history-photo img{object-fit:cover;border-radius:10px;width:56px;height:56px;display:block}.rotation-list{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);margin:8px 0 0;padding:0;list-style:none;overflow:hidden}.rotation-list li{border-top:1px solid var(--border);align-items:center;gap:4px;padding:4px 8px 4px 12px;display:flex}.rotation-list li:first-child{border-top:none}.rotation-list label{cursor:pointer;flex:1;align-items:center;gap:10px;min-height:44px;display:flex}.rotation-list input[type=checkbox]{width:22px;height:22px;min-height:0;accent-color:var(--primary);flex:none}.rotation-position{width:18px;color:var(--primary);font-weight:700}.rotation-list li:not(.on) .list-main{color:var(--muted)}.rotation-move .icon-button{width:36px;height:36px;font-size:1.1rem}.rotation-move .icon-button:disabled{opacity:.3}.month-grid{grid-template-columns:repeat(6,1fr);gap:6px;margin-top:8px;display:grid}.month-grid .chip{min-width:0}.suggestions .chip{padding:0 14px;font-size:.9rem;font-weight:500}.tab{position:relative}.tab-badge{background:var(--danger);min-width:18px;height:18px;color:var(--on-danger);text-align:center;border-radius:999px;padding:0 5px;font-size:.7rem;font-weight:700;line-height:18px;position:absolute;top:4px;left:calc(50% + 10px)}.tab-badge.static{position:static}.rewards-link{color:inherit;text-decoration:none}.card.balance-card{background:linear-gradient(#1c2333 0 4px, transparent 4px 6px, #1c2333 6px 8px) left 0 bottom 14px / 100% 8px no-repeat, var(--points);color:#1c1405;border:none;justify-content:space-between;align-items:center;gap:14px;padding-bottom:38px;display:flex}.balance-card .muted{color:inherit}.balance-value{font-family:var(--font-display);font-size:2.2rem;font-weight:800;line-height:1.1}.reward-list{margin:0 0 12px;padding:0;list-style:none}.reward{align-items:center;gap:14px;margin-bottom:10px;display:flex}.reward-body{overflow-wrap:anywhere;flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.reward-cost{color:var(--points-ink);font-weight:600}.reward .kid-bar{height:8px}.reward-actions,.request-actions{flex:none;align-items:center;gap:6px;display:flex}.request{flex-wrap:wrap}.request .list-main{flex:1;min-width:0}.request-actions{width:100%;padding-left:44px}.check .history-photo img{width:44px;height:44px}.badge-rejected{background:var(--danger-soft);color:var(--danger-ink)}.check-row{align-items:flex-start;gap:12px;margin-bottom:16px;display:flex}.check-row input{margin-top:4px}.kid-goal{color:inherit;align-items:center;gap:14px;text-decoration:none;display:flex}.card.kid-goal{background:var(--points-soft);border-color:#0000}.kid-goal .kid-task-title{font-size:1.05rem}.kid-goal .kid-bar{background:#80808038;height:16px;margin-top:6px}.kid-goal .kid-bar span{background:repeating-linear-gradient(-45deg, var(--points) 0 8px, color-mix(in srgb, var(--points) 75%, #8a5a08) 8px 16px);background-size:22.63px 22.63px;animation:1s linear infinite bar-stripes}@keyframes bar-stripes{to{background-position:22.63px 0}}.auth{max-width:420px;padding:calc(env(safe-area-inset-top) + 32px) 16px calc(env(safe-area-inset-bottom) + 32px);margin:0 auto}.auth-brand{flex-direction:column;gap:6px;margin:24px 0 28px;display:flex}.wordmark{font-family:var(--font-display);letter-spacing:-.03em;color:var(--primary);font-size:3.6rem;font-weight:800;line-height:.95}.tagline{color:var(--muted);margin:0 0 16px;font-size:1.05rem}.auth-brand:after{content:"";background:linear-gradient(var(--primary) 0 12px, transparent 12px 15px, var(--primary) 15px 19px, transparent 19px 21px, var(--primary) 21px 24px);height:24px}.auth-links{text-align:center;margin:12px 0 0;font-size:.9rem}.toasts{left:16px;right:16px;bottom:calc(var(--tabbar-height) + env(safe-area-inset-bottom) + 84px);pointer-events:none;z-index:20;flex-direction:column;align-items:center;gap:8px;display:flex;position:fixed}.toast{background:var(--text);max-width:480px;color:var(--bg);border-radius:12px;padding:12px 18px;font-weight:600;animation:.2s ease-out toast-in;box-shadow:0 6px 20px #0003}.toast-error{background:var(--danger);color:var(--on-danger)}@keyframes toast-in{0%{opacity:0;transform:translateY(8px)}}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@keyframes points-fade{0%,60%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.toast,.spinner{animation:none}.bubble{display:none}.burst-points{animation:1.2s ease-out forwards points-fade;transform:translate(-50%,-150%)}}.with-icon{align-items:center;gap:5px;display:inline-flex}.chip.reward-idea{align-items:center;gap:6px;padding-left:6px;display:inline-flex}.chip.room-chip{align-items:center;gap:8px;min-height:44px;padding:0 14px 0 8px;display:inline-flex}.chip.room-chip.active{background:var(--primary-soft);border-color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary);color:var(--primary-ink)}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){.kid-trophy,.kid-stars .on,.kid-goal .kid-bar span{animation:none}}
