*{box-sizing:border-box}html{background:var(--color-canvas);min-width:320px}body{color:var(--color-ink);background:linear-gradient(#5b493009 1px, transparent 1px), var(--color-canvas);font:var(--font-size-16)/var(--line-height-body) var(--font-family-ui);background-size:100% 32px;margin:0}button,input{color:inherit;font:inherit}button{cursor:pointer}button:disabled,input:disabled{cursor:not-allowed}:focus-visible{border-radius:var(--radius-sm);outline:var(--focus-width) solid var(--color-focus)!important;outline-offset:var(--focus-offset)!important}[hidden]{display:none!important}.visually-hidden{clip:rect(0, 0, 0, 0)!important;white-space:nowrap!important;border:0!important;width:1px!important;height:1px!important;margin:-1px!important;padding:0!important;position:absolute!important;overflow:hidden!important}.skip-link{z-index:100;top:var(--space-3);left:var(--space-3);padding:var(--space-3) var(--space-4);color:var(--color-on-brand);background:var(--color-brand);border:1px solid var(--color-on-brand);position:fixed;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.app-shell{width:min(100%, var(--layout-page-max));background:var(--color-surface);min-height:100vh;box-shadow:var(--shadow-raised);margin-inline:auto}.desktop-rail{height:100vh;color:var(--color-on-brand);background:var(--color-brand);flex-direction:column;padding:34px 26px;display:none;position:sticky;top:0}.wordmark{color:inherit;font:var(--font-weight-bold) var(--font-size-20)/1 var(--font-family-display);align-items:center;gap:10px;text-decoration:none;display:inline-flex}.wordmark-mark{width:26px;height:26px;font:var(--font-weight-heavy) var(--font-size-13)/1 var(--font-family-ui);border:1px solid;border-radius:50%;place-items:center;display:grid}.rail-date{color:#bfc8bb;font-size:var(--font-size-12);letter-spacing:var(--letter-spacing-eyebrow);margin:54px 0 8px}.rail-day{font:var(--font-weight-semibold) var(--font-size-32)/1.18 var(--font-family-display);margin:0}.rail-rule{width:44px;margin:var(--space-6) 0;border:0;border-top:2px solid #d76a4d}.rail-copy{color:var(--color-on-brand-muted);font-size:var(--font-size-14);line-height:var(--line-height-relaxed);margin:0}.rail-count{padding-top:var(--space-8);margin-top:auto}.rail-count strong{font:var(--font-weight-semibold) var(--font-size-56)/1 var(--font-family-display);display:block}.rail-count span{color:var(--color-on-brand-muted);font-size:var(--font-size-13)}.mobile-header{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:64px;padding:var(--space-4) var(--layout-gutter-narrow);border-bottom:1px solid var(--color-line);background:#fffaf1f0;display:flex}.mobile-header .wordmark-mark{color:var(--color-ink)}.mobile-date{color:var(--color-ink-muted);font-size:var(--font-size-12);font-weight:var(--font-weight-bold)}.page-main{min-width:0}.page-inner{width:min(100%, var(--layout-content-max));padding:34px var(--layout-gutter-narrow) var(--space-16);margin-inline:auto}.page-head{justify-content:space-between;align-items:end;gap:var(--space-6);margin-bottom:var(--space-8);display:flex}.kicker{color:var(--color-accent-active);font-size:var(--font-size-13);font-weight:var(--font-weight-heavy);margin:0 0 7px}h1{font:var(--font-weight-bold) clamp(2.35rem, 6vw, var(--font-size-56))/var(--line-height-tight) var(--font-family-display);letter-spacing:var(--letter-spacing-tight);margin:0}.summary{margin:var(--space-3) 0 0;color:var(--color-ink-muted);font-size:var(--font-size-14)}.page-head>.summary{margin-bottom:var(--space-1);flex:none}#mobileSummary{display:none}.quick-add{gap:var(--space-3);padding:var(--space-3);border:1px solid var(--color-line-strong);box-shadow:var(--shadow-offset);background:#fff;grid-template-columns:minmax(0,1fr);display:grid}.input-wrap{min-width:0}.quick-add input{width:100%;min-width:0;min-height:48px;padding:0 var(--space-2);color:var(--color-ink);background:0 0;border:0}.quick-add input::placeholder{color:var(--color-ink-subtle);opacity:1}.quick-add input:focus-visible,.field input:focus-visible{outline:var(--focus-width) solid var(--color-focus)!important;outline-offset:var(--focus-offset)!important}.field-error{margin:var(--space-1) var(--space-2) 0;color:var(--color-danger);font-size:var(--font-size-13);font-weight:var(--font-weight-bold)}.button{min-height:var(--target-min);justify-content:center;align-items:center;gap:var(--space-2);padding:9px var(--space-4);border-radius:var(--radius-none);font-weight:var(--font-weight-bold);transition:background var(--duration-fast) var(--ease-standard), color var(--duration-fast) var(--ease-standard), border-color var(--duration-fast) var(--ease-standard);border:1px solid #0000;text-decoration:none;display:inline-flex}.button-primary{color:var(--color-on-accent);background:var(--color-accent);border-color:var(--color-accent-active)}.button-primary:hover:not(:disabled){background:var(--color-accent-hover)}.button-secondary{color:var(--color-ink);background:var(--color-surface-raised);border-color:var(--color-line-strong)}.button-secondary:hover:not(:disabled){background:var(--color-surface-sunken)}.button-danger{color:#fff;background:var(--color-danger);border-color:var(--color-danger-hover)}.button-danger:hover:not(:disabled){background:var(--color-danger-hover)}.button-quiet{color:var(--color-ink-muted);background:0 0;border-color:#0000}.button-quiet:hover:not(:disabled){color:var(--color-ink);border-color:var(--color-line)}.button:disabled{color:var(--color-disabled-ink);background:var(--color-disabled-surface);border-color:var(--color-line);opacity:1}.list-section{margin-top:var(--space-8)}.toolbar{justify-content:space-between;align-items:center;gap:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px solid var(--color-line);display:flex}.list-heading{font:var(--font-weight-semibold) var(--font-size-20)/1.3 var(--font-family-display);margin:0}.filters{flex-wrap:wrap;gap:6px;display:flex}.filter{min-height:var(--target-min);padding:7px var(--space-3);color:var(--color-ink-muted);font-weight:var(--font-weight-bold);background:0 0;border:1px solid #0000}.filter:hover:not(:disabled){color:var(--color-ink);border-color:var(--color-line)}.filter[aria-pressed=true]{color:var(--color-ink);background:var(--color-surface-sunken);border-color:var(--color-line-strong);box-shadow:inset 0 -2px 0 var(--color-accent)}.filter:disabled{color:var(--color-disabled-ink);cursor:not-allowed}.save-status{justify-content:flex-end;align-items:center;gap:var(--space-2);min-height:24px;margin:var(--space-3) 0 0;color:var(--color-ink-muted);font-size:var(--font-size-12);display:flex}.save-dot{background:var(--color-success);border-radius:50%;width:7px;height:7px}.todo-list{margin:0;padding:0;list-style:none}.todo{align-items:start;gap:var(--space-4);border-bottom:1px solid var(--color-line);grid-template-columns:auto minmax(0,1fr);padding:18px 0;display:grid}.check{appearance:none;border:var(--border-width-control) solid #71695f;border-radius:var(--radius-none);background:#fff;place-content:center;width:26px;height:26px;margin:1px 0 0;display:grid}.check:checked{background:var(--color-success);border-color:var(--color-success-strong)}.check:checked:before{content:"✓";color:#fff;font-weight:var(--font-weight-heavy)}.todo-body{min-width:0}.todo-title{overflow-wrap:anywhere;font:var(--font-weight-semibold) var(--font-size-16)/1.45 var(--font-family-display);margin:0}.todo-meta{color:var(--color-ink-muted);font-size:var(--font-size-12);margin:3px 0 0}.todo.completed .todo-title{color:#5c5a55;text-decoration:line-through;text-decoration-thickness:2px}.done-label{margin-left:var(--space-2);color:var(--color-success-strong);background:var(--color-success-surface);font:var(--font-weight-heavy) var(--font-size-11)/1.4 var(--font-family-ui);vertical-align:2px;border:1px solid #a8b4a2;align-items:center;gap:4px;padding:2px 7px;text-decoration:none;display:inline-flex}.todo-actions{gap:var(--space-1);grid-column:2;display:flex}.todo-action{min-width:62px;min-height:var(--target-min);padding:7px var(--space-2);text-align:left}.todo-action.delete{color:var(--color-danger)}.todo-action.delete:hover:not(:disabled){border-color:#cfa9a2}.state-panel{margin-top:var(--space-5);background:var(--color-surface-raised);border:1px solid var(--color-line);text-align:center;padding:clamp(24px,5vw,44px)}.state-symbol{width:52px;height:52px;margin:0 auto var(--space-4);color:var(--color-accent-active);background:var(--color-surface-sunken);border:1px solid var(--color-line-strong);font:var(--font-weight-heavy) var(--font-size-24)/1 var(--font-family-display);border-radius:50%;place-items:center;display:grid}.state-panel h2{font:var(--font-weight-semibold) var(--font-size-24)/1.25 var(--font-family-display);margin:0}.state-panel p{max-width:560px;margin:var(--space-2) auto 0;color:var(--color-ink-muted)}.state-actions{justify-content:center;gap:var(--space-3);margin-top:var(--space-5);flex-wrap:wrap;display:flex}.alert{margin:var(--space-5) 0 0;padding:var(--space-4);align-items:start;gap:var(--space-3);border:1px solid;grid-template-columns:auto minmax(0,1fr) auto;display:grid}.alert-danger{color:#672017;background:var(--color-danger-surface);border-color:#c88d84}.alert-icon{font-weight:var(--font-weight-heavy)}.alert h2{font-size:var(--font-size-16);margin:0}.alert p{font-size:var(--font-size-13);line-height:var(--line-height-body);margin:3px 0 0}.alert .button{align-self:center}.skeleton-list{margin-top:var(--space-4)}.skeleton{gap:var(--space-4);border-bottom:1px solid var(--color-line);grid-template-columns:26px 1fr;align-items:center;min-height:82px;display:grid}.skeleton-box,.skeleton-line{background:linear-gradient(90deg, var(--color-skeleton), var(--color-skeleton-shine), var(--color-skeleton));background-size:220% 100%;animation:1.4s linear infinite shimmer}.skeleton-box{width:26px;height:26px}.skeleton-copy{gap:9px;display:grid}.skeleton-line{width:min(360px,80%);height:14px}.skeleton-line.short{width:112px;height:10px}@keyframes shimmer{to{background-position:-220% 0}}dialog{width:min(520px,100% - 24px);max-height:min(680px,100vh - 24px);color:var(--color-ink);background:var(--color-surface);border:1px solid var(--color-line-strong);border-radius:var(--radius-md);box-shadow:var(--shadow-dialog);margin:auto;padding:0}dialog::backdrop{background:var(--color-scrim)}.dialog-body{padding:clamp(22px,4vw,32px)}.dialog-eyebrow{margin:0 0 var(--space-2);color:var(--color-accent-active);font-size:var(--font-size-12);font-weight:var(--font-weight-heavy);letter-spacing:var(--letter-spacing-label)}.dialog-title{font:var(--font-weight-semibold) var(--font-size-32)/var(--line-height-title) var(--font-family-display);margin:0}.dialog-copy{margin:var(--space-3) 0 0;color:var(--color-ink-muted)}.dialog-copy strong{color:var(--color-ink)}.field{margin-top:var(--space-6)}.field label{margin-bottom:var(--space-2);font-size:var(--font-size-14);font-weight:var(--font-weight-bold);display:block}.field input{width:100%;min-height:48px;padding:10px var(--space-3);color:var(--color-ink);border:1px solid var(--color-line-strong);background:#fff}.dialog-actions{justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-8);padding-top:var(--space-5);border-top:1px solid var(--color-line);display:flex}.design-inspector{z-index:var(--z-toast);right:var(--space-4);bottom:var(--space-4);color:#f8f3e9;background:#1d241e;border:1px solid #667267;width:min(360px,100% - 32px);position:fixed;box-shadow:0 14px 44px #00000040}.design-inspector summary{min-height:var(--target-min);padding:11px var(--space-4);cursor:pointer;font-size:var(--font-size-13);font-weight:var(--font-weight-heavy)}.inspector-content{padding:0 var(--space-4) var(--space-4)}.inspector-content p{margin:0 0 var(--space-3);color:#cbd1c7;font-size:var(--font-size-12)}.state-switcher{flex-wrap:wrap;gap:6px;display:flex}.state-switcher button{color:#f8f3e9;min-height:36px;font-size:var(--font-size-12);background:0 0;border:1px solid #667267;padding:6px 9px}.state-switcher button[aria-pressed=true]{color:#182019;font-weight:var(--font-weight-heavy);background:#e8dfcd;border-color:#e8dfcd}@media (width>=640px){.page-inner{padding:42px var(--space-8) var(--space-20)}.quick-add{grid-template-columns:minmax(0,1fr) auto;padding-left:18px}.quick-add .button{min-width:150px}.todo{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;min-height:82px;padding:10px 0}.todo-actions{grid-column:3}.todo-action{text-align:center;min-width:58px}}@media (width>=960px){.app-shell{grid-template-columns:var(--layout-rail-width) minmax(0, 1fr);display:grid}.desktop-rail{display:flex}.mobile-header{display:none}.page-inner{padding:46px var(--layout-gutter-wide) var(--space-20)}}@media (width<=639px){.page-head{margin-bottom:var(--space-6);display:block}.page-head>.summary{margin-top:var(--space-3)}#mobileSummary{display:block}#desktopSummary{display:none}.toolbar{flex-direction:column;align-items:flex-start}.filters{width:100%}.filter{flex:auto}.alert{grid-template-columns:auto minmax(0,1fr)}.alert .button{grid-column:1/-1;width:100%}dialog{border-radius:var(--radius-lg) var(--radius-lg) var(--radius-sm) var(--radius-sm);margin:auto auto 12px}.dialog-actions{flex-direction:column}.dialog-actions .button-primary,.dialog-actions .button-danger{order:2}.dialog-actions .button{width:100%}.design-inspector{width:auto;margin:var(--space-4);position:relative;bottom:auto;right:auto}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}