:root{color-scheme:light;--bg:#FAF6F0;--surface:#FFFDFA;--surface-2:#F5EBE1;--border:#DBD5CF;--border-strong:#AFB5BC;--text:#252E3E;--text-muted:#606A7A;--primary:#55647D;--primary-hover:#425068;--primary-soft:#E1E8F4;--on-primary:#FFFFFF;--accent:#4F7857;--accent-soft:#DFF3E2;--wood:#A1876C;--wood-soft:#F4E5D7;--success:#4B7453;--success-soft:#E2F4E4;--warning:#945F00;--warning-soft:#FEEDD9;--danger:#AD4F32;--danger-soft:#FFEBE5;--urgent:#9A2E2C;--urgent-text:#9A2E2C;--shadow:0 1px 3px color-mix(in srgb,var(--text) 8%,transparent);--font-serif:"Literata",Georgia,serif;--font-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,system-ui,sans-serif;--radius:12px;--page-max:620px;--tab-h:62px}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--bg:#13171F;--surface:#1C2129;--surface-2:#252A33;--border:#363B43;--border-strong:#50565C;--text:#E8E4DD;--text-muted:#A8A49E;--primary:#94A5C3;--primary-hover:#A6B8D6;--primary-soft:#283345;--on-primary:#13171F;--accent:#8CB893;--accent-soft:#213324;--wood:#B4997D;--wood-soft:#382B1D;--success:#92BE99;--success-soft:#203023;--warning:#E0A454;--warning-soft:#3D2A10;--danger:#E48162;--danger-soft:#44241A;--urgent:#C64A42;--urgent-text:#E8857E;--shadow:0 1px 3px rgb(0 0 0/0.35)}}:root[data-theme=dark]{color-scheme:dark;--bg:#13171F;--surface:#1C2129;--surface-2:#252A33;--border:#363B43;--border-strong:#50565C;--text:#E8E4DD;--text-muted:#A8A49E;--primary:#94A5C3;--primary-hover:#A6B8D6;--primary-soft:#283345;--on-primary:#13171F;--accent:#8CB893;--accent-soft:#213324;--wood:#B4997D;--wood-soft:#382B1D;--success:#92BE99;--success-soft:#203023;--warning:#E0A454;--warning-soft:#3D2A10;--danger:#E48162;--danger-soft:#44241A;--urgent:#C64A42;--urgent-text:#E8857E;--shadow:0 1px 3px rgb(0 0 0/0.35)}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--bg);color:var(--text);font-family:var(--font-sans);font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}a{text-decoration:none}a,button{color:inherit}button{font:inherit;background:none;border:0;cursor:pointer}.shell{max-width:var(--page-max);margin:0 auto;padding:calc(18px + env(safe-area-inset-top)) 16px calc(var(--tab-h) + 32px + env(safe-area-inset-bottom))}.top{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:22px}.brand{font-size:13px;font-weight:600;color:var(--primary);letter-spacing:.06em}.brand,.top h1{font-family:var(--font-serif)}.top h1{font-weight:500;font-size:28px;line-height:1.15}.top-right{display:flex;align-items:center;gap:6px}.who-btn{font-size:13px;padding:6px 10px;border:1px solid var(--border);border-radius:999px}.theme-toggle,.who-btn{color:var(--text-muted)}.theme-toggle{width:34px;height:34px;border-radius:50%;font-size:16px}.tabbar{position:fixed;left:0;right:0;bottom:0;gap:4px;height:calc(var(--tab-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:color-mix(in srgb,var(--surface) 92%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border)}.tabbar,.tabbar a{display:flex;justify-content:center}.tabbar a{flex:0 1 110px;min-width:0;flex-direction:column;align-items:center;font-size:12px;color:var(--text-muted);gap:2px}.tabbar a.on{color:var(--primary);font-weight:600}.tab-icon{display:block}.field{width:100%;font:inherit;font-size:16px;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:11px 12px}.field::placeholder{color:var(--text-muted)}.field:focus{outline:2px solid var(--primary-soft);border-color:var(--border-strong)}textarea.field{resize:vertical}.btn{padding:10px 16px;border-radius:10px;border:1px solid var(--border);background:var(--surface);font-weight:500;white-space:nowrap}.btn.primary{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}.btn.primary:active{background:var(--primary-hover)}.btn:disabled{opacity:.45;cursor:default}.link{color:var(--text-muted);font-size:14px;text-decoration:underline;text-underline-offset:3px}.link.danger{color:var(--danger)}.chips,.filter{display:flex;flex-wrap:wrap;gap:6px}.filter{margin:18px 0 8px}.chip{padding:6px 13px;border-radius:999px;font-size:14px;border:1px solid var(--border);color:var(--text-muted);background:var(--surface)}.chip.on{background:var(--primary-soft);border-color:var(--primary);color:var(--primary-hover);font-weight:600}.add-row{display:flex;gap:8px}.add-extras{flex-wrap:wrap;gap:10px;margin-top:10px}.add-extras,.date-row{display:flex;align-items:center}.date-row{gap:8px;font-size:14px;color:var(--text-muted)}.date-row .field{width:auto;padding:7px 10px}.notice{margin-top:10px;font-size:14px;color:var(--success)}.notice.bad{color:var(--danger)}.empty{margin:28px 0;text-align:center;color:var(--text-muted);font-family:var(--font-serif);font-style:italic}.list{list-style:none;margin-top:14px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.row+.row{border-top:1px solid var(--surface-2)}.row-main{display:flex;align-items:center;gap:4px;padding:4px 12px 4px 6px}.tick{flex:none;width:44px;height:44px;position:relative}.tick:before{content:"";position:absolute;inset:11px;border-radius:50%;border:2px solid var(--text-muted)}.tick:active:before{background:var(--success-soft)}.tick.on:before{background:var(--success);border-color:var(--success)}.tick-check{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);color:var(--surface);stroke-width:3}.row-text{flex:1 1;text-align:left;padding:9px 0;display:flex;flex-direction:column;min-width:0}.title{font-size:17px;overflow-wrap:anywhere}.note{font-size:14px}.meta,.note{color:var(--text-muted)}.meta{font-size:13px}.meta.late{color:var(--danger);font-weight:600}.meta.soon{color:var(--warning);font-weight:600}.row.is-done .title{color:var(--text-muted);text-decoration:line-through}.who-tag{flex:none;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600;color:var(--text-muted);background:var(--wood-soft)}.editor{padding:4px 14px 14px;display:flex;flex-direction:column;gap:10px}.editor-actions{display:flex;align-items:center;gap:8px}.editor-actions .added{flex:1 1;font-size:12px;color:var(--text-muted)}.section-title{display:flex;align-items:baseline;gap:8px;margin:28px 0 10px;font-family:var(--font-serif);font-size:18px;font-weight:500}.section-title span{font-family:var(--font-sans);font-size:13px;color:var(--text-muted);font-weight:400}.section-title.as-button{width:100%;text-align:left}.again{display:flex;flex-wrap:wrap;gap:8px}.again-chip{padding:8px 13px;border-radius:999px;font-size:15px;border:1px dashed var(--border-strong);color:var(--text)}.again-chip:active{background:var(--primary-soft)}.card{display:block;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px 18px;margin-bottom:14px}.card-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}.card h2{font-weight:500;font-size:20px}.card h2,.count{font-family:var(--font-serif)}.count{font-size:22px;color:var(--primary)}.card-line,.muted{color:var(--text-muted)}.card-list{list-style:none}.card-list li{display:flex;justify-content:space-between;gap:12px;padding:5px 0}.card-list li+li{border-top:1px solid var(--surface-2)}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px 16px}.login-card{width:100%;max-width:360px;background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);padding:28px 24px;display:flex;flex-direction:column;gap:12px}.login-card .brand{font-size:28px;letter-spacing:.02em}.login-tagline{color:var(--text-muted);font-size:14px;margin-top:-10px}.login-q{margin-top:8px;font-weight:500}.who-pick{display:flex;gap:8px}.who-pick .chip{flex:1 1;padding:10px;font-size:16px}.login-error{color:var(--danger);font-size:14px}.btn.grow{flex:1 1}.center{text-align:center}.hint{font-size:13px;color:var(--text-muted)}.presets{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:12px}.presets .again-chip{padding:5px 11px;font-size:14px}.banner{margin-top:14px;padding:10px 14px;border-radius:10px;background:var(--primary-soft);color:var(--text);font-size:15px}.card .banner{margin:4px 0 8px}.date-line{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:6px 14px 6px 10px}.date-line.plain{padding-left:14px}.day-box{flex:none;width:46px;display:flex;flex-direction:column;align-items:center;padding:4px 0;border-radius:8px;background:var(--surface-2)}.day-wd{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.day-num{font-family:var(--font-serif);font-size:20px;line-height:1.1}.kind-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px;vertical-align:1px;background:var(--wood)}.kind-dot.k-away{background:var(--primary)}.kind-dot.k-dog{background:var(--accent)}.cal-card{margin-top:28px}.cal-card .card-line{margin-bottom:10px}.cal-card .add-row{margin:4px 0 10px}.card-head.as-button{width:100%;margin-bottom:0}.cal-card .card-head.as-button{margin-bottom:8px}.sheet-backdrop{position:fixed;inset:0;z-index:20;display:flex;align-items:flex-end;justify-content:center;background:color-mix(in srgb,var(--text) 35%,transparent)}.sheet{width:100%;max-width:var(--page-max);max-height:92vh;overflow-y:auto;background:var(--surface);border-radius:16px 16px 0 0;padding:20px 16px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:12px}@media (min-width:700px){.sheet-backdrop{align-items:center}.sheet{border-radius:16px}}.sheet-title{font-family:var(--font-serif);font-weight:500;font-size:22px}.form-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.form-label{width:76px;font-size:14px;color:var(--text-muted)}.field.narrow{width:auto;padding:8px 10px}.check{display:flex;align-items:center;gap:8px;font-size:15px}.check input{width:18px;height:18px;accent-color:var(--primary)}.pin-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;padding:10px 12px 10px 14px;border-radius:10px;background:var(--surface-2);color:var(--text);font-size:15px}.pin-bar.open{background:var(--warning-soft)}.pin-bar .btn{padding:7px 12px}.info-card{cursor:default}.info-card h3{font-family:var(--font-serif);font-weight:500;font-size:19px}.info-line{display:flex;align-items:baseline;gap:10px;padding:7px 0;border-top:1px solid var(--surface-2)}.info-label{flex:none;width:34%;font-size:14px;color:var(--text-muted);overflow-wrap:anywhere}.lock-mark{margin-left:4px;vertical-align:-1px}.info-value{flex:1 1;min-width:0;overflow-wrap:anywhere}.value-link{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.copy-btn,.info-hidden span{font-size:12px;color:var(--text-muted)}.copy-btn{flex:none;padding:2px 6px;border:1px solid var(--border);border-radius:6px}.info-hidden{flex:1 1;text-align:left;letter-spacing:.1em;color:var(--text-muted)}.info-hidden span{letter-spacing:0;text-decoration:underline;margin-left:6px}.info-note{margin-top:8px;color:var(--text-muted);white-space:pre-wrap;font-size:15px}.qr-btn{margin-top:10px;width:100%}.pin-change{margin-top:24px;text-align:center}.field-rows{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.field-row{display:flex;gap:6px;width:100%}.field-row .label-in{flex:0 0 34%;padding:9px 10px}.field-row .value-in{flex:1 1;min-width:0;padding:9px 10px}.icon-btn{flex:none;width:36px;border-radius:8px;border:1px solid var(--border);color:var(--text-muted);font-size:15px}.icon-btn.on{background:var(--primary-soft);border-color:var(--primary)}.sheet-backdrop.top{z-index:30}.narrow-sheet{max-width:380px}@media (max-width:699px){.narrow-sheet{max-width:none}}.sheet.center{align-items:center;text-align:center}.pin-field{font-size:24px;letter-spacing:.3em;text-align:center}.pin-field::placeholder{letter-spacing:0;font-size:16px}.qr-paper{width:min(280px,80vw);padding:10px;border-radius:12px;background:#FFFDFA}.qr-paper svg{display:block;width:100%;height:auto}.qr-light{fill:#FFFDFA}.qr-dark{fill:#252E3E}.wifi-line{font-size:17px;overflow-wrap:anywhere}.wifi-line span{display:block;font-size:12px;color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em}.idea{padding:10px 14px 12px}.idea-main{display:flex;align-items:flex-start;gap:10px}.idea .row-text{padding:0}.idea-link{flex:none;font-size:13px;margin-top:3px}.likes{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}.like{padding:4px 11px;border-radius:999px;font-size:13px;border:1px solid var(--border);color:var(--text-muted)}.like.on{color:var(--accent);border-color:var(--accent);background:var(--accent-soft)}.like.other{border-style:dashed}.agree-btn{padding:5px 12px;font-size:13px;background:var(--success-soft);border-color:var(--success);color:var(--success)}.idea .editor{padding:12px 0 0}.settings-card h2{margin-bottom:8px}.settings-card .card-line{margin-bottom:12px}.settings-card .btn,a.who-btn{display:inline-block}.balance-card{display:flex;align-items:center;justify-content:space-between;gap:12px}.balance-text{font-family:var(--font-serif);font-size:22px;line-height:1.25}.balance-card.square .balance-text{color:var(--success)}.amount{flex:none;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;font-size:16px}.settle-row .title{color:var(--text-muted);font-style:italic}.amount-row{display:flex;align-items:center;gap:8px;color:var(--text-muted)}.amount-in,.amount-row{font-family:var(--font-serif);font-size:28px}.amount-in{padding:8px 12px}.parts{display:flex;flex-direction:column;gap:8px}.effect{padding:10px 12px;border-radius:10px;background:var(--primary-soft);color:var(--text);font-size:15px}.add-cost{display:inline-block;margin-top:8px;font-size:14px}.more-card h2{font-family:var(--font-serif);font-weight:500;font-size:20px;margin-bottom:4px}.may-today .card-head a h2{color:var(--text)}.may-slots{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px;margin-top:6px}.may-slot{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:var(--surface)}.may-slot.done{background:var(--success-soft);border-color:var(--success)}.may-slot-label{font-size:15px}.may-slot-who{font-size:13px;color:var(--text-muted)}.may-slot.done .may-slot-who{color:var(--success);font-weight:600}.may-extra{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.again-chip.done{border-style:solid;border-color:var(--success);background:var(--success-soft);color:var(--success)}.may-hero{display:flex;align-items:center;gap:16px;margin-bottom:16px}.may-photo{flex:none;width:96px;height:96px;border-radius:50%;object-fit:cover;border:3px solid var(--surface);box-shadow:var(--shadow)}.may-photo.placeholder{display:grid;place-items:center;background:var(--wood-soft);color:var(--text-muted);font-size:14px}.may-name{font-family:var(--font-serif);font-size:30px;line-height:1.1}.year-title{margin:16px 0 6px;font-size:13px;letter-spacing:.08em;color:var(--text-muted);font-weight:600}.may-profile{margin-top:28px}.field.grow-field{flex:1 1;min-width:160px;padding:8px 10px}.may-icon{margin-right:6px;vertical-align:-3px}.icon{display:inline-block;flex:none;vertical-align:-.15em}.with-icon{display:inline-flex;align-items:center;gap:5px}.meta.with-icon{display:flex;gap:0}.meta.with-icon .icon{margin-left:6px}.icon.ok{color:var(--success)}.icon-btn,.theme-toggle{display:inline-grid;place-items:center}.who-btn .icon{margin-left:2px;vertical-align:-2px}.more-card h2{display:flex;align-items:center;gap:8px}.may-slot-who .icon{vertical-align:-2px}.like{display:inline-flex;align-items:center;gap:5px}.value-link .icon{vertical-align:-1px}.prio-0 .title{font-weight:600}.row.prio-0{box-shadow:inset 3px 0 0 var(--urgent)}.prio-2 .title{color:var(--text-muted)}.urgent-text{color:var(--urgent-text);font-weight:600}.add-extras.column{flex-direction:column;align-items:flex-start;gap:8px}.shop-bar{display:flex;gap:6px;margin:16px -16px 0;padding:2px 16px 4px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.shop-bar::-webkit-scrollbar{display:none}.shop-bar .chip{flex:none;white-space:nowrap}.shop-title{margin-top:22px}.sync-note{margin-top:12px;padding:10px 12px;border-radius:10px;font-size:14px;background:var(--warning-soft);color:var(--warning)}.shop-bar .chip.empty-shop{opacity:.55}.shop-hint{margin-top:10px}.bought-bar{position:fixed;z-index:15;left:50%;transform:translateX(-50%);bottom:calc(var(--tab-h) + env(safe-area-inset-bottom) + 10px);width:calc(100% - 24px);max-width:calc(var(--page-max) - 8px);gap:10px;padding:8px 8px 8px 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 6px 20px color-mix(in srgb,var(--text) 16%,transparent)}.bought-bar,.bought-text{display:flex;align-items:center}.bought-text{flex:1 1;min-width:0;font-size:15px;gap:6px}.bought-text .icon{color:var(--success)}.bought-cost{padding:7px 12px}.bought-close{height:32px;border:none}.shop-title.as-button{align-items:center;gap:6px}.fold-chevron{color:var(--text-muted);transition:transform .15s ease}.fold-chevron.open{transform:rotate(90deg)}.shop-title .urgent-text{font-weight:600}