@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+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,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+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-ext-wght-normal-DCwSJGxG.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,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:Figtree Variable;font-style:normal;font-display:swap;font-weight:300 900;src:url(/assets/figtree-latin-wght-normal-D_ZTVpCC.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--paper: #faf6ef;--paper-raised: #ffffff;--paper-sunken: #f1ebe0;--ink: #2b2420;--ink-soft: #6f6258;--ink-faint: #a3958a;--line: #e6dccd;--line-strong: #d4c6b2;--stain: #c75b12;--stain-deep: #a84a0c;--stain-wash: #f7e8da;--iron: #4a4440;--moss: #5f7a4e;--moss-wash: #e9efe2;--danger: #b3392b;--danger-wash: #f7e3df;--radius: 14px;--radius-sm: 9px;--shadow-card: 0 1px 2px rgba(43, 36, 32, .06), 0 4px 16px rgba(43, 36, 32, .05);--shadow-sheet: 0 -8px 40px rgba(43, 36, 32, .22);--font-display: "Bricolage Grotesque Variable", "Bricolage Grotesque", serif;--font-body: "Figtree Variable", "Figtree", sans-serif;--tap: 44px}@media(prefers-color-scheme:dark){:root{--paper: #1d1916;--paper-raised: #282320;--paper-sunken: #161310;--ink: #f0e9e0;--ink-soft: #b3a698;--ink-faint: #7d7164;--line: #393229;--line-strong: #4a4136;--stain: #e8783a;--stain-deep: #f08a4f;--stain-wash: #3a2a1c;--iron: #c9beb2;--moss: #8fae7c;--moss-wash: #28301f;--danger: #e06a55;--danger-wash: #3d211c;--shadow-card: 0 1px 2px rgba(0, 0, 0, .4), 0 4px 16px rgba(0, 0, 0, .3);--shadow-sheet: 0 -8px 40px rgba(0, 0, 0, .6)}}*{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html{height:100%}body{font-family:var(--font-body);background:var(--paper);color:var(--ink);height:100%;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:0;opacity:.35;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3CfeColorMatrix values='0 0 0 0 0.5 0 0 0 0 0.45 0 0 0 0 0.4 0 0 0 0.035 0'/%3E%3C/filter%3E%3Crect width='160' height='160' filter='url(%23n)'/%3E%3C/svg%3E")}#root{position:relative;z-index:1;min-height:100%}input,button,textarea{font:inherit;color:inherit}button{background:none;border:none;cursor:pointer}ul{list-style:none}.screen{max-width:640px;margin:0 auto;padding:max(14px,env(safe-area-inset-top)) 16px calc(76px + env(safe-area-inset-bottom));animation:screen-in .28s cubic-bezier(.2,.8,.25,1)}@keyframes screen-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.screen-header{display:flex;align-items:baseline;gap:12px;padding:10px 2px 16px}.screen-header h1{font-family:var(--font-display);font-weight:700;font-size:30px;letter-spacing:-.5px;flex:1}.screen-header .back{font-family:var(--font-body);font-weight:600;color:var(--stain);font-size:16px;min-height:var(--tap);display:inline-flex;align-items:center}.muted{color:var(--ink-faint);font-size:14px}.list-index{display:flex;flex-direction:column;gap:10px}.list-index li{animation:rise-in .4s cubic-bezier(.2,.8,.25,1) both}.list-index li:nth-child(1){animation-delay:.02s}.list-index li:nth-child(2){animation-delay:.06s}.list-index li:nth-child(3){animation-delay:.1s}.list-index li:nth-child(4){animation-delay:.14s}.list-index li:nth-child(5){animation-delay:.18s}.list-index li:nth-child(6){animation-delay:.22s}.list-index li:nth-child(n+7){animation-delay:.26s}@keyframes rise-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.list-card{width:100%;display:flex;align-items:center;gap:14px;background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:16px;min-height:62px;text-align:left;transition:transform .12s ease,box-shadow .12s ease}.list-card:active{transform:scale(.985)}.list-dot{width:12px;height:12px;border-radius:50%;background:var(--dot, var(--stain));box-shadow:0 0 0 4px color-mix(in srgb,var(--dot, var(--stain)) 18%,transparent);flex-shrink:0}.list-name{font-family:var(--font-display);font-weight:600;font-size:19px;flex:1;letter-spacing:-.2px}.list-count{font-variant-numeric:tabular-nums;font-weight:700;font-size:17px;color:var(--ink-faint)}.list-count:after{content:" open";font-size:11px;font-weight:600;letter-spacing:.06em;color:var(--ink-faint)}.list-card .chev{color:var(--line-strong);flex-shrink:0}.group-section{margin:22px 0 0;animation:rise-in .35s cubic-bezier(.2,.8,.25,1) both}.group-section.dragging{opacity:.85;z-index:5;position:relative}.group-header{display:flex;align-items:center;gap:10px;padding:0 2px 7px;border-bottom:2px solid var(--line-strong);touch-action:pan-y}.group-header h2{font-family:var(--font-display);font-size:13.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);flex:1;min-height:28px;display:flex;align-items:center}.group-header .group-count{font-size:12px;font-weight:700;color:var(--ink-faint);font-variant-numeric:tabular-nums}.group-header .icon-button{color:var(--ink-faint);font-size:17px;letter-spacing:.1em;padding:2px 6px;border-radius:var(--radius-sm);min-width:32px;min-height:28px}.group-header .icon-button:active{background:var(--paper-sunken)}.task-row{position:relative;overflow:hidden}.task-row+.task-row .task-content{border-top:1px solid var(--line)}.task-row.dragging{z-index:10}.task-row.dragging .task-content{background:var(--paper-raised);border-radius:var(--radius-sm);box-shadow:0 6px 24px #2b24202e;border-top:none}.swipe-bg{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:flex-end;padding-right:20px;background:var(--danger);color:#fff;font-weight:700;letter-spacing:.04em;border-radius:var(--radius-sm);transition:opacity .15s}.task-content{position:relative;display:flex;align-items:flex-start;gap:12px;padding:12px 2px;min-height:var(--tap);background:var(--paper);touch-action:pan-y}.checkbox{width:27px;height:27px;border-radius:50%;border:2px solid var(--line-strong);flex-shrink:0;margin-top:1px;display:flex;align-items:center;justify-content:center;color:transparent;font-size:14px;font-weight:800;transition:border-color .15s,background .15s,transform .1s;position:relative}.checkbox:after{content:"";position:absolute;top:-10px;right:-10px;bottom:-10px;left:-10px;border-radius:50%}.checkbox:active{transform:scale(.88)}.checkbox.checked{background:var(--stain);border-color:var(--stain);color:var(--paper-raised);animation:stamp-pop .34s cubic-bezier(.34,1.56,.64,1)}@keyframes stamp-pop{0%{transform:scale(.6)}55%{transform:scale(1.18)}to{transform:scale(1)}}.task-main{flex:1;min-width:0;padding-top:1px}.task-title{display:block;font-size:16.5px;font-weight:500;overflow-wrap:break-word;transition:color .2s}.task-row.done .task-title{color:var(--ink-faint);text-decoration:line-through;text-decoration-color:var(--line-strong);text-decoration-thickness:1.5px}.stamp{display:block;font-size:12.5px;color:var(--moss);font-weight:600;margin-top:2px}.row-chips{display:flex;gap:6px;align-items:center;flex-shrink:0;margin-top:3px}.chip-small{font-size:11.5px;font-weight:700;letter-spacing:.02em;padding:3px 8px;border-radius:999px;background:var(--paper-sunken);color:var(--ink-soft);border:1px solid var(--line);white-space:nowrap}.chip-small.overdue{background:var(--danger-wash);color:var(--danger);border-color:transparent}.chip-small.assignee{background:var(--stain-wash);color:var(--stain-deep);border-color:transparent}.chip-small.note-glyph{padding:3px 6px;display:inline-flex}.chip-small.note-glyph svg{width:12px;height:12px}.inline-edit{width:100%;border:none;border-bottom:2px solid var(--stain);background:transparent;font-size:16.5px;font-weight:500;padding:0 0 2px;outline:none}.add-task{display:flex;align-items:center;gap:12px;padding:10px 2px;min-height:var(--tap)}.add-task .add-plus{width:27px;height:27px;display:flex;align-items:center;justify-content:center;color:var(--ink-faint);font-size:19px;font-weight:600;flex-shrink:0}.add-task input{flex:1;border:none;background:transparent;outline:none;font-size:16px;color:var(--ink)}.add-task input::placeholder{color:var(--ink-faint);font-weight:500}.add-task:focus-within .add-plus{color:var(--stain)}.empty-group{color:var(--ink-faint);font-size:14px;padding:12px 2px}.filter-bar{display:flex;gap:8px;padding:2px 0 4px;flex-wrap:wrap}.filter-bar button{font-size:13.5px;font-weight:650;padding:8px 14px;border-radius:999px;border:1.5px solid var(--line-strong);background:var(--paper-raised);color:var(--ink-soft);min-height:36px;transition:all .15s}.filter-bar button.chip-on{background:var(--iron);border-color:var(--iron);color:var(--paper)}.filter-bar button.chip-on:before{content:"✓ ";font-weight:800}@media(prefers-color-scheme:dark){.filter-bar button.chip-on{background:var(--stain-wash);border-color:var(--stain);color:var(--stain)}}.bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;justify-content:center;gap:6px;padding:8px 12px calc(8px + env(safe-area-inset-bottom));background:color-mix(in srgb,var(--paper-raised) 88%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--line)}.bottom-nav button{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:11.5px;font-weight:650;letter-spacing:.02em;color:var(--ink-soft);padding:4px 18px;border-radius:var(--radius-sm);min-height:var(--tap);min-width:72px;justify-content:center}.bottom-nav button svg{width:21px;height:21px}.bottom-nav button.active,.bottom-nav button:active{color:var(--stain)}.sheet-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:40;background:#1f191473;animation:fade-in .2s ease}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.sheet{position:fixed;left:0;right:0;bottom:0;z-index:41;max-width:640px;margin:0 auto;background:var(--paper-raised);border-radius:22px 22px 0 0;box-shadow:var(--shadow-sheet);padding:10px 20px calc(24px + env(safe-area-inset-bottom));animation:sheet-up .32s cubic-bezier(.2,.9,.3,1);max-height:86vh;overflow-y:auto}@keyframes sheet-up{0%{transform:translateY(40%);opacity:.5}to{transform:none;opacity:1}}.sheet-grip{width:40px;height:4.5px;border-radius:999px;background:var(--line-strong);margin:4px auto 18px}.sheet-title{font-family:var(--font-display);font-size:21px;font-weight:700;letter-spacing:-.3px;width:100%;border:none;background:transparent;outline:none;margin-bottom:14px}.sheet .field{margin:0 0 18px}.sheet .field{display:block}.sheet .field>span{display:block;font-size:11.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);margin-bottom:6px}.sheet textarea,.sheet input[type=date],.sheet select{width:100%;background:var(--paper-sunken);border:1px solid var(--line);border-radius:var(--radius-sm);padding:11px 12px;font-size:15.5px;outline:none;min-height:var(--tap);-webkit-appearance:none;-moz-appearance:none;appearance:none}.sheet textarea{min-height:84px;resize:vertical}.sheet textarea:focus,.sheet input[type=date]:focus,.sheet select:focus{border-color:var(--stain)}.stamps{color:var(--ink-faint);font-size:13px;line-height:1.7;margin-top:4px;padding-top:14px;border-top:1px solid var(--line)}.sheet-actions{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px;padding-bottom:4px}.sheet-actions .danger-button{background:transparent;padding-left:4px}.primary-button{background:var(--stain);color:#fff;font-weight:700;font-size:16px;padding:12px 28px;border-radius:999px;min-height:var(--tap);box-shadow:0 2px 10px color-mix(in srgb,var(--stain) 35%,transparent)}.primary-button:active{transform:scale(.97)}.ghost-button{display:inline-flex;align-items:center;gap:6px;color:var(--stain);font-weight:700;font-size:15.5px;padding:12px 6px;min-height:var(--tap)}.danger-button{background:var(--danger-wash);color:var(--danger);font-weight:700;padding:11px 18px;border-radius:var(--radius-sm);min-height:var(--tap)}.inline-add{display:flex;gap:8px;margin-top:10px}.inline-add input{flex:1;background:var(--paper-raised);border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;outline:none}.inline-add input:focus{border-color:var(--stain)}.inline-add button{background:var(--stain);color:#fff;font-weight:700;border-radius:var(--radius-sm);padding:0 18px;min-height:var(--tap)}.completed-day{font-family:var(--font-display);font-size:13.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-soft);border-bottom:2px solid var(--line-strong);padding:18px 2px 7px}.completed-row{display:flex;gap:12px;align-items:baseline;padding:11px 2px;border-bottom:1px solid var(--line);font-size:15px}.completed-row .who{color:var(--moss);font-weight:650;font-size:13px;white-space:nowrap}.admin-user{background:var(--paper-raised);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:14px 16px;margin-bottom:12px}.admin-user-head{display:flex;align-items:center;gap:10px;margin-bottom:8px}.admin-user-head strong{font-family:var(--font-display);font-size:16.5px;flex:1}.admin-user-head .role{font-size:10.5px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;padding:3px 8px;border-radius:999px;background:var(--stain-wash);color:var(--stain-deep)}.access-grid{display:flex;flex-wrap:wrap;gap:6px}.access-item{font-size:13px;font-weight:650;padding:7px 12px;border-radius:999px;border:1.5px solid var(--line-strong);color:var(--ink-soft);background:transparent;min-height:34px}.access-item.on{background:var(--moss-wash);border-color:var(--moss);color:var(--moss)}.admin-add{display:flex;gap:8px;margin:14px 0;flex-wrap:wrap}.admin-add input,.admin-add select{background:var(--paper-raised);border:1.5px solid var(--line-strong);border-radius:var(--radius-sm);padding:10px 12px;outline:none;flex:1;min-width:150px;min-height:var(--tap)}.empty-state{text-align:center;color:var(--ink-faint);padding:48px 20px;font-size:15.5px}.centered{min-height:80vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:12px;padding:24px}.centered h1{font-family:var(--font-display);font-size:26px}.pending-pill{position:fixed;top:max(10px,env(safe-area-inset-top));right:12px;z-index:50;background:var(--iron);color:var(--paper);font-size:12px;font-weight:700;padding:6px 12px;border-radius:999px;box-shadow:var(--shadow-card);animation:fade-in .3s}.toasts{position:fixed;bottom:calc(76px + env(safe-area-inset-bottom));left:50%;transform:translate(-50%);z-index:60;display:flex;flex-direction:column;gap:8px;width:min(92vw,420px)}.toast{background:var(--ink);color:var(--paper);border-radius:var(--radius-sm);padding:12px 16px;font-size:14.5px;font-weight:550;display:flex;align-items:center;gap:12px;box-shadow:0 8px 28px #0000004d;animation:rise-in .25s cubic-bezier(.2,.8,.25,1)}.toast-action{color:var(--stain);font-weight:800;margin-left:auto;letter-spacing:.02em}@media(prefers-color-scheme:dark){.toast{background:var(--paper-sunken);border:1px solid var(--line)}}.dev-switcher{position:fixed;bottom:calc(58px + env(safe-area-inset-bottom));right:10px;z-index:25;font-size:10.5px;color:var(--ink-faint);background:var(--paper-sunken);border:1px dashed var(--line-strong);padding:4px 8px;border-radius:7px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}.info-button{display:flex;align-items:center;justify-content:center;width:30px;height:30px;color:var(--stain);flex-shrink:0;position:relative;border-radius:50%}.info-button svg{width:19px;height:19px}.info-button:after{content:"";position:absolute;top:-8px;right:-8px;bottom:-8px;left:-8px}.info-button:active{background:var(--stain-wash)}.ptr{position:fixed;top:max(6px,env(safe-area-inset-top));left:50%;z-index:35;width:38px;height:38px;border-radius:50%;background:var(--paper-raised);border:1px solid var(--line);box-shadow:var(--shadow-card);display:flex;align-items:center;justify-content:center;color:var(--ink-faint);transition:opacity .15s;pointer-events:none}.ptr svg{width:20px;height:20px}.ptr.armed{color:var(--stain);border-color:var(--stain)}.ptr.busy svg{animation:ptr-spin .8s linear infinite;color:var(--stain)}@keyframes ptr-spin{to{transform:rotate(360deg)}}.sheet textarea.sheet-title{background:transparent;border:none;border-radius:0;resize:none;overflow:hidden;font-family:var(--font-display);font-size:22px;font-weight:700;letter-spacing:-.3px;line-height:1.3;min-height:0;padding:0 0 10px;margin-bottom:14px;border-bottom:1px solid var(--line)}.sheet textarea.sheet-title:focus{outline:none;border-bottom:2px solid var(--stain);padding-bottom:9px}.sheet{transition:transform .25s cubic-bezier(.2,.9,.3,1)}.sheet{overscroll-behavior:contain}.segmented{display:inline-flex;background:var(--paper-sunken);border:1px solid var(--line);border-radius:999px;padding:3px;gap:2px;margin:2px 0 12px}.segmented button{font-size:13.5px;font-weight:650;padding:7px 18px;border-radius:999px;color:var(--ink-soft);min-height:34px;font-variant-numeric:tabular-nums;transition:background .15s,color .15s}.segmented button.on{background:var(--paper-raised);color:var(--ink);box-shadow:var(--shadow-card)}
