@layer reset{*,:before,:after{box-sizing:border-box}body{margin:0}}@layer tokens{:root{--color-bg:#fffaf3;--color-surface:#fff;--color-text:#2b2118;--color-muted:#6b5d50;--color-border:#d9cbbb;--color-accent:#b5452a;--color-accent-text:#fff;--color-error:#a3261b;--radius:.75rem;--space-s:.5rem;--space-m:1rem;--space-l:1.5rem;--target:2.75rem;--font-body:system-ui, sans-serif}@media (prefers-color-scheme:dark){:root{--color-bg:#1d1712;--color-surface:#2a221b;--color-text:#f5ede4;--color-muted:#c4b5a5;--color-border:#4a3d31;--color-accent:#e07a5f;--color-accent-text:#1d1712;--color-error:#ff8f80}}}@layer base{body{background:var(--color-bg);color:var(--color-text);font-family:var(--font-body);line-height:1.5}h1,h2,h3{line-height:1.25}input,select,button{font:inherit;min-block-size:var(--target)}:focus-visible{outline:3px solid var(--color-accent);outline-offset:2px}}@layer components{.shell{max-inline-size:40rem;padding:var(--space-m);margin-inline:auto}.brand h1{margin-block-end:0}.tagline{color:var(--color-muted);margin-block-start:0}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-l);margin-block:var(--space-m)}.card h2,.card h3{margin-block-start:0}.field{gap:.25rem;margin-block-end:var(--space-m);display:grid}.field label{font-weight:600}.field input,.field select{inline-size:100%;padding-inline:var(--space-s);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:.5rem}.hint{color:var(--color-muted);margin:0;font-size:.9rem}.error,.form-error{color:var(--color-error);margin:0}.form-error{margin-block-end:var(--space-m);font-weight:600}fieldset{border:1px solid var(--color-border);border-radius:var(--radius);padding:var(--space-m);margin-block-end:var(--space-m)}legend{padding-inline:var(--space-s);font-weight:600}.password{gap:var(--space-s);display:flex}.password input{flex:1}.check{gap:var(--space-s);align-items:center;margin-block-end:var(--space-m);display:flex}.check input{block-size:1.25rem;min-block-size:auto;inline-size:1.25rem}button{padding-inline:var(--space-l);border:2px solid var(--color-accent);background:var(--color-accent);color:var(--color-accent-text);cursor:pointer;border-radius:999px;font-weight:600}button:disabled{opacity:.6;cursor:progress}button.secondary{color:var(--color-text);background:0 0}button.link{color:var(--color-accent);padding-inline:var(--space-s);background:0 0;border:none}.actions{gap:var(--space-s);flex-wrap:wrap;display:flex}.bar{align-items:center;gap:var(--space-m);flex-wrap:wrap;display:flex}.bar h2{flex:1;margin:0}.who{color:var(--color-muted)}.empty{color:var(--color-muted);margin:0}.facts{gap:var(--space-s) var(--space-m);grid-template-columns:minmax(0,max-content) 1fr;display:grid}.facts dt{color:var(--color-muted)}.facts dd{margin:0}.kids{margin:0 0 var(--space-m);gap:var(--space-s);padding:0;list-style:none;display:grid}.kids li{align-items:center;gap:var(--space-s) var(--space-m);flex-wrap:wrap;display:flex}.kids li>button{margin-inline-start:auto}.kid-name{flex:1;font-weight:600}.avatar{font-size:2rem;line-height:1}.avatars{gap:var(--space-s);flex-wrap:wrap;display:flex}.avatar-option{inline-size:var(--target);block-size:var(--target);border:2px solid var(--color-border);cursor:pointer;border-radius:50%;place-items:center;font-size:1.5rem;display:grid;position:relative}.avatar-option input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.avatar-option.selected{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent)}.avatar-option:has(input:focus-visible){outline:3px solid var(--color-accent);outline-offset:2px}.qr-card{border:2px dashed var(--color-border);border-radius:var(--radius);padding:var(--space-l);margin-block:var(--space-m);text-align:center}.qr-title{margin-block-start:0;font-size:1.5rem;font-weight:700}.qr{block-size:220px;inline-size:220px;image-rendering:pixelated;background:#fff}.qr-link code{word-break:break-all;font-size:.8rem}.qr-card .actions{justify-content:center}.picker h2{text-align:center}.picker-grid{gap:var(--space-m);grid-template-columns:repeat(auto-fill,minmax(9rem,1fr));display:grid}.pick{justify-items:center;gap:var(--space-s);padding:var(--space-l);border-radius:var(--radius);background:var(--color-surface);color:var(--color-text);border:2px solid var(--color-border);min-block-size:9rem;font-size:1.25rem;display:grid}.pick-avatar{margin:0;font-size:3.5rem;line-height:1}.child-start{text-align:center}.chores,.my-chores{margin:0 0 var(--space-m);gap:var(--space-s);padding:0;list-style:none;display:grid}.chores li,.my-chores li{gap:var(--space-s) var(--space-m);padding-block:var(--space-s);border-block-end:1px solid var(--color-border);text-align:start;flex-wrap:wrap;align-items:center;display:flex}.chore-icon{font-size:2rem;line-height:1}.chore-main{display:grid}.chore-title{font-weight:600}.chore-meta{color:var(--color-muted);font-size:.9rem}.tag{padding-inline:var(--space-s);background:var(--color-bg);border:1px solid var(--color-border);border-radius:999px;margin-inline-start:var(--space-s);font-size:.75rem;font-weight:600}.choice-row{gap:var(--space-s);flex-wrap:wrap;display:flex}.choice{align-items:center;gap:var(--space-s);min-block-size:var(--target);padding-inline:var(--space-m);border:2px solid var(--color-border);cursor:pointer;border-radius:999px;display:inline-flex;position:relative}.choice input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.choice.selected{border-color:var(--color-accent);box-shadow:0 0 0 2px var(--color-accent)}.choice:has(input:focus-visible){outline:3px solid var(--color-accent);outline-offset:2px}.row{gap:var(--space-m);grid-template-columns:repeat(auto-fit,minmax(10rem,1fr));display:grid}.chore-form fieldset{margin-block-end:var(--space-m)}.xp{color:var(--color-muted);white-space:nowrap;font-weight:600}.xp.big{color:var(--color-text);margin-block:0 var(--space-m);font-size:1.25rem}.waiting{gap:var(--space-m);margin:0;padding:0;list-style:none;display:grid}.waiting li{border-block-end:1px solid var(--color-border);padding-block-end:var(--space-m)}.waiting-row{gap:var(--space-m);align-items:center;margin-block-end:var(--space-s);display:flex}.send-back{gap:var(--space-s);display:grid}.send-back input{min-block-size:var(--target);padding-inline:var(--space-s);border:1px solid var(--color-border);background:var(--color-bg);color:var(--color-text);border-radius:.5rem}.my-chores .done{margin-inline-start:auto}.waiting-for-grown-up{opacity:.7}.note{color:var(--color-text);font-size:.9rem;font-style:italic}.shell:has(.dashboard){max-inline-size:72rem}.shell:has(.today){max-inline-size:48rem}.dashboard-grid{gap:0 var(--space-l);grid-template-columns:minmax(0,1fr);display:grid}@media (min-width:56rem){.dashboard-grid{grid-template-columns:minmax(0,3fr) minmax(0,2fr);align-items:start}}.backlog{margin-block:0 var(--space-m);font-weight:600}.today-head{align-items:center;gap:var(--space-m);flex-wrap:wrap;display:flex}.today-head h2{margin:0}.today-head .secondary{margin-inline-start:auto}.progress{gap:var(--space-s);margin-block:var(--space-m);font-weight:600;display:grid}.progress progress{block-size:1rem;inline-size:100%;accent-color:var(--color-accent)}.cheer{font-weight:600}.today-list{gap:var(--space-m);margin:0;padding:0;list-style:none;display:grid}.today-card{align-items:center;gap:var(--space-m);padding:var(--space-m);background:var(--color-surface);border:2px solid var(--color-border);border-radius:var(--radius);display:flex}.today-card.waiting,.today-card.confirmed{opacity:.75}.today-icon{font-size:2.5rem;line-height:1}.today-card .chore-main{flex:1 1 0;min-inline-size:0}.today-title{font-size:1.25rem;font-weight:700}.today-card .done{min-block-size:3.5rem;min-inline-size:6rem;margin-inline-start:auto;font-size:1.1rem}.today-card .badge{margin-inline-start:auto;font-size:1.75rem}.later{margin-block-start:var(--space-l)}.chores li>button{margin-inline-start:auto}.chore-main{flex:12rem;min-inline-size:0}.archived{margin-block-start:var(--space-m)}.history{margin:0 0 var(--space-m);gap:var(--space-s);padding:0;list-style:none;display:grid}.history-item{padding-block:var(--space-s);border-block-end:1px solid var(--color-border)}.chore-main .actions{gap:var(--space-s);flex-wrap:wrap;margin-block-start:var(--space-s);display:flex}button.small{padding-inline:var(--space-s);font-size:.9rem}.child-day+.child-day{margin-block-start:var(--space-m)}.child-day-head{align-items:center;gap:var(--space-s);margin-block:0 var(--space-s);flex-wrap:wrap;display:flex}.child-day-head .chore-meta{margin-inline-start:auto}.chores li.overdue{border-inline-start:3px solid var(--color-accent);padding-inline-start:var(--space-s)}.inbox{position:relative}.inbox-panel{z-index:10;inline-size:min(24rem, calc(100vw - 2 * var(--space-m)));max-block-size:70vh;position:absolute;inset-block-start:calc(100% + var(--space-s));inset-inline-end:0;overflow:auto;box-shadow:0 8px 24px #0000002e}.inbox-item{gap:var(--space-m);padding-block:var(--space-s);border-block-end:1px solid var(--color-border);align-items:center;display:flex}.inbox-item.resolved{opacity:.65}.rows{margin:0 0 var(--space-m);gap:var(--space-s);padding:0;list-style:none;display:grid}.rows li{gap:var(--space-s) var(--space-m);padding-block:var(--space-s);border-block-end:1px solid var(--color-border);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.rows li>span{overflow-wrap:anywhere;min-inline-size:0}.invite-link{gap:var(--space-s);padding:var(--space-m);border:2px dashed var(--color-border);border-radius:var(--radius);margin-block-end:var(--space-m);display:grid}.invite-link p{margin:0}.invite-link input{inline-size:100%;min-inline-size:0;font-family:ui-monospace,monospace}.archived summary{cursor:pointer;min-block-size:var(--target);color:var(--color-muted);align-items:center;display:flex}.later summary{cursor:pointer;min-block-size:var(--target);align-items:center;font-weight:600;display:flex}.empty-today{text-align:center;font-size:1.25rem}@media (min-width:40rem){.today-icon{font-size:3rem}.today-title{font-size:1.4rem}}@media (max-width:30rem){.shell{padding:var(--space-s)}.card{padding:var(--space-m)}.today-card{flex-wrap:wrap}.today-card .done{inline-size:100%;margin-inline-start:0}}}@media print{body *{visibility:hidden}.qr-card,.qr-card *{visibility:visible}.qr-card{color:#000;border:2px dashed #000;position:absolute;inset-block-start:0;inset-inline-start:0}.no-print{display:none}}
