:root{--bg: #f7f6f4;--surface: #ffffff;--text: #1c1917;--muted: #78716c;--border: #e7e5e4;--accent: #c2410c;--accent-soft: #ffedd5;--present: #16a34a;--present-soft: #dcfce7;--half: #d97706;--half-soft: #fef3c7;--absent: #dc2626;--absent-soft: #fee2e2;--extra: #2563eb;--extra-soft: #dbeafe;--off-soft: #f1f0ee;--radius: 14px;color-scheme:light;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}@media (prefers-color-scheme: dark){:root{--bg: #0f0e0d;--surface: #1c1a18;--text: #ecebe9;--muted: #a8a29e;--border: #2f2c29;--accent: #fb923c;--accent-soft: #431407;--present: #4ade80;--present-soft: #14321f;--half: #fbbf24;--half-soft: #3d2e0a;--absent: #f87171;--absent-soft: #3f1515;--extra: #60a5fa;--extra-soft: #172a4a;--off-soft: #252321;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);-webkit-tap-highlight-color:transparent}button,input,select,textarea{font:inherit;color:inherit}h1{font-size:1.4rem;margin:0}h2{font-size:1.15rem;margin:0}h3{font-size:.95rem;margin:0 0 10px}.muted{color:var(--muted)}.small{font-size:.85rem}.grow{flex:1;min-width:0}.over-text{color:var(--absent)}.credit-text{color:var(--present)}.app{max-width:640px;margin:0 auto;min-height:100dvh}.content{padding:calc(12px + env(safe-area-inset-top)) 16px calc(96px + env(safe-area-inset-bottom))}.page-head{display:flex;align-items:center;justify-content:center;flex-direction:column;gap:6px;padding:8px 0 12px}.hint{text-align:center;margin:0 0 12px}.month-picker{display:flex;align-items:center;gap:12px;font-weight:600}.month-picker span{min-width:140px;text-align:center}.icon-btn{border:1px solid var(--border);background:var(--surface);width:36px;height:36px;border-radius:50%;cursor:pointer;font-size:1.1rem;line-height:1;display:inline-flex;align-items:center;justify-content:center;text-decoration:none;flex-shrink:0}.icon-btn.small{width:28px;height:28px;font-size:.8rem}.icon-btn:disabled{opacity:.35;cursor:default}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px;margin-bottom:12px}.card-head{display:flex;justify-content:space-between;align-items:baseline}.card.empty{text-align:center;padding:28px 16px}.card.empty p{margin:0 0 8px}.btn{border:1px solid var(--border);background:var(--surface);border-radius:10px;padding:10px 14px;cursor:pointer;font-weight:600}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.ghost{background:transparent}.btn.danger{color:var(--absent)}.btn.block{display:block;width:100%;margin-top:10px}.btn:disabled{opacity:.45;cursor:default}.link{background:none;border:none;color:var(--accent);cursor:pointer;padding:0 0 10px;font-weight:600}.link.center{display:block;margin:-6px auto 0}.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.chips{display:flex;gap:8px;flex-wrap:wrap}.chips.segmented{margin-bottom:12px}.chips.segmented .chip{flex:1}.chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:7px 14px;cursor:pointer;font-size:.9rem;white-space:nowrap}.chip.ghost{border-style:dashed;color:var(--muted)}.chip.on{font-weight:600}.chip.on.present{background:var(--present-soft);border-color:var(--present)}.chip.on.half{background:var(--half-soft);border-color:var(--half)}.chip.on.absent{background:var(--absent-soft);border-color:var(--absent)}.chip.on.extra{background:var(--extra-soft);border-color:var(--extra)}.helper-card{border-left:4px solid var(--border)}.helper-card.s-present{border-left-color:var(--present)}.helper-card.s-half{border-left-color:var(--half)}.helper-card.s-absent{border-left-color:var(--absent)}.helper-card.s-extra{border-left-color:var(--extra)}.helper-name{display:flex;align-items:center;gap:10px;width:100%;background:none;border:none;padding:0 0 12px;cursor:pointer;text-align:left}.helper-name small,.helper-row small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}.chev{margin-left:auto;color:var(--muted);font-size:1.3rem}.avatar{width:40px;height:40px;border-radius:50%;background:var(--accent-soft);display:inline-flex;align-items:center;justify-content:center;font-size:1.25rem;flex-shrink:0}.note{margin:8px 0 0}.day-control{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.stepper{display:flex;align-items:center;gap:10px}.qty{min-width:56px;text-align:center;font-weight:700;font-size:1.1rem;font-variant-numeric:tabular-nums}.qty small{font-weight:400;color:var(--muted)}.sync-badge{display:inline-flex;align-items:center;gap:6px;border:none;background:none;color:var(--muted);font-size:.75rem;cursor:pointer;padding:2px 6px}.sync-badge i{width:7px;height:7px;border-radius:50%;background:var(--present)}.sync-badge.warn i{background:var(--half)}.sync-badge.over i{background:var(--absent)}.helper-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;cursor:pointer}.helper-row .right{text-align:right;font-variant-numeric:tabular-nums}.archived summary{color:var(--muted);cursor:pointer;margin:18px 0 10px}.archived .helper-row{opacity:.7}.detail-head{display:flex;align-items:center;gap:10px;padding:6px 0 4px}.detail-head h1{font-size:1.2rem}.hero-label{color:var(--muted);font-size:.85rem}.hero-amount{font-size:2rem;font-weight:700;margin:2px 0 10px;font-variant-numeric:tabular-nums}.kv{display:flex;justify-content:space-between;gap:12px;padding:7px 0;border-top:1px solid var(--border);font-size:.92rem}.kv b{font-variant-numeric:tabular-nums;white-space:nowrap}.share{color:var(--accent)}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-head{text-align:center;font-size:.75rem;color:var(--muted);padding-bottom:2px}.cal-day{position:relative;aspect-ratio:1;border-radius:10px;border:1px solid transparent;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:.9rem;padding:0;line-height:1.1;font-variant-numeric:tabular-nums}.cal-day small{font-size:.65rem;opacity:.8}.cal-day.today{border-color:var(--text);font-weight:700}.cal-day.future:not(.marked){opacity:.5}.note-dot{position:absolute;top:4px;right:4px;width:5px;height:5px;border-radius:50%;background:var(--text);opacity:.6}.s-present.cal-day,.swatch.s-present{background:var(--present-soft)}.s-half.cal-day,.swatch.s-half{background:var(--half-soft)}.s-absent.cal-day,.swatch.s-absent{background:var(--absent-soft)}.s-extra.cal-day,.swatch.s-extra{background:var(--extra-soft)}.s-off.cal-day,.swatch.s-off{background:var(--off-soft);color:var(--muted)}.legend{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;font-size:.78rem;color:var(--muted)}.legend span{display:inline-flex;align-items:center;gap:5px}.swatch{width:12px;height:12px;border-radius:4px;display:inline-block}.payment{display:flex;align-items:center;gap:10px;padding:8px 0;border-top:1px solid var(--border)}.payment small{display:block;font-size:.8rem}.code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-size:1.4rem;font-weight:700;letter-spacing:.08em;text-align:center;padding:12px;border-radius:10px;background:var(--accent-soft)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}.field>span{font-size:.85rem;color:var(--muted)}.field input,.field select{border:1px solid var(--border);background:var(--bg);border-radius:10px;padding:10px 12px;min-width:0;width:100%}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}.field-row.three{grid-template-columns:.7fr 1fr 1fr}.weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.weekdays .chip{padding:7px 0}.error{color:var(--absent);font-size:.9rem}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:20}.sheet{background:var(--surface);width:100%;max-width:640px;max-height:92dvh;overflow-y:auto;border-radius:18px 18px 0 0;padding:16px 16px calc(20px + env(safe-area-inset-bottom))}.sheet-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:center;background:var(--surface);border-top:1px solid var(--border);padding-bottom:env(safe-area-inset-bottom);z-index:10}.tabbar button{flex:1;max-width:213px;background:none;border:none;padding:8px 0 10px;display:flex;flex-direction:column;align-items:center;gap:2px;font-size:.75rem;color:var(--muted);cursor:pointer}.tabbar button.active{color:var(--accent);font-weight:600}.tab-icon{font-size:1.25rem}.onboarding{padding:calc(32px + env(safe-area-inset-top)) 16px 32px}.brand{text-align:center;margin-bottom:24px}.brand img{border-radius:16px}.brand h1{margin:10px 0 6px}.section-head{display:flex;justify-content:space-between;align-items:baseline;margin:18px 2px 10px}.section-head .link{padding:0}.empty-line{margin:4px 0 8px}.list-row{display:flex;align-items:center;gap:12px;width:100%;text-align:left;background:none;border:none;border-top:1px solid var(--border);padding:10px 0;cursor:pointer}.list-row.static{cursor:default}.card-head+.list-row,.card-head+.muted+.list-row{border-top:none}.list-row small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}.list-row .right{text-align:right;font-variant-numeric:tabular-nums}.archived .list-row{opacity:.7}.task-list{padding:4px 14px}.task{display:flex;align-items:flex-start;gap:12px;padding:10px 0;border-top:1px solid var(--border)}.task:first-child{border-top:none}.check{width:24px;height:24px;margin-top:1px;border-radius:50%;border:2px solid var(--muted);background:none;cursor:pointer;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;padding:0}.task.done .check{background:var(--present);border-color:var(--present);color:#fff}.task-body{flex:1;min-width:0;background:none;border:none;padding:0;text-align:left;cursor:pointer}.task-title{display:block;overflow-wrap:anywhere}.task-body small{display:block;color:var(--muted);font-size:.8rem;margin-top:2px}.task.overdue small{color:var(--absent)}.task.done .task-title{text-decoration:line-through;color:var(--muted)}.add-task{padding:10px 0}.group-head{margin:16px 2px 8px}.group-head.overdue{color:var(--absent)}.date-chip{border:1px solid var(--border);background:var(--surface);border-radius:999px;padding:5px 10px;font-size:.9rem}.fab{position:fixed;right:max(16px,calc(50% - 304px));bottom:calc(76px + env(safe-area-inset-bottom));width:56px;height:56px;border-radius:50%;border:none;background:var(--accent);color:#fff;font-size:1.8rem;line-height:1;cursor:pointer;box-shadow:0 4px 14px #0003;z-index:11}
