:root{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","Segoe UI",sans-serif;color:#1d1d1f;background:#f5f5f7;line-height:1.45;font-synthesis:none;--blue:#0066cc;--blue-soft:#e8f2ff;--ink:#1d1d1f;--muted:#6e6e73;--line:#d8d8dc;--surface:#fff;--soft:#f0f0f2;--danger:#b42318;--radius:14px;color-scheme:light dark}*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#f5f5f7}body{font-size:15px}button,input,textarea,select{font:inherit}button{cursor:pointer}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;left:12px;top:-50px;background:var(--ink);color:#fff;padding:10px 14px;border-radius:8px;z-index:10}.skip-link:focus{top:12px}.app-shell{min-height:100vh}.topbar{height:64px;background:color-mix(in srgb,var(--surface) 92%,transparent);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:3}.topbar-inner{max-width:1440px;height:100%;margin:auto;padding:0 28px;display:flex;align-items:center;justify-content:space-between}.wordmark{color:var(--ink);text-decoration:none;font-size:18px;font-weight:650;display:flex;align-items:center;gap:10px}.brand-mark{width:48px;height:48px;border-radius:13px;background:var(--ink);color:#fff;display:grid;place-items:center;font-weight:700;font-size:24px}.brand-mark.small{width:28px;height:28px;border-radius:8px;font-size:15px}.top-actions{display:flex;align-items:center;gap:12px}.sync-state{font-size:12px;color:var(--muted)}.layout{max-width:1440px;margin:auto;padding:32px 28px 48px;display:grid;grid-template-columns:210px minmax(380px,1fr) 320px;gap:42px}.sidebar{display:flex;flex-direction:column;min-height:calc(100vh - 144px)}.sidebar-heading{display:flex;align-items:center;justify-content:space-between;padding:0 10px 10px;color:var(--muted);font-size:12px;font-weight:600}.nav-list{display:grid;gap:3px}.nav-item{min-height:42px;padding:0 10px;border:0;background:transparent;color:var(--ink);display:flex;align-items:center;justify-content:space-between;border-radius:9px;text-align:left}.nav-item:hover,.nav-item:focus-visible{background:var(--soft)}.nav-item.active{background:var(--blue-soft);color:var(--blue);font-weight:600}.count{font-size:12px;color:var(--muted)}.nav-item.active .count{color:var(--blue)}.projects-title{margin-top:32px}.sidebar-foot{margin-top:auto;padding:16px 10px;font-size:12px;color:var(--muted)}.content{min-width:0}.content-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:11px;color:var(--muted);font-weight:650;margin:0 0 7px}.content h1{font-size:32px;letter-spacing:-.035em;margin:0}.content h2,.capture-panel h2{font-size:20px;letter-spacing:-.025em;margin:0}.toolbar{display:flex;gap:10px;margin-bottom:22px}.search-field{flex:1;display:block}.search-field input,select,input,textarea{width:100%;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:9px;padding:11px 12px;min-height:44px}textarea{resize:vertical;line-height:1.5}input:focus,select:focus,textarea:focus,button:focus-visible{outline:3px solid color-mix(in srgb,var(--blue) 40%,transparent);outline-offset:1px;border-color:var(--blue)}.button{min-height:44px;border:1px solid transparent;border-radius:9px;padding:0 16px;font-weight:600;white-space:nowrap}.button.primary{background:var(--blue);color:#fff}.button.primary:hover{background:#0057ad}.button.secondary{background:var(--surface);border-color:var(--line);color:var(--ink)}.button.subtle{background:var(--soft);color:var(--ink);padding:0 12px}.button.danger{background:transparent;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 30%,var(--line))}.icon-button{min-height:44px;padding:0 10px;border:0;background:transparent;color:var(--muted);border-radius:8px}.icon-button:hover{background:var(--soft);color:var(--ink)}.icon-button.plus{font-size:24px}.notice{border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin-bottom:14px;background:var(--surface);color:var(--muted)}.notice.error{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 40%,var(--line))}.task-list{display:grid;gap:8px}.task-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:13px;align-items:start;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:15px 14px;transition:border-color .15s,background .15s}.task-row:hover{border-color:#b5b5bb}.task-check{appearance:none;width:22px;height:22px;border-radius:50%;border:1.5px solid #9b9ba1;background:transparent;margin-top:1px;position:relative}.task-check:checked{background:var(--blue);border-color:var(--blue)}.task-check:checked:after{content:"✓";position:absolute;color:#fff;font-size:14px;left:4px;top:-1px}.task-title{font-weight:600;line-height:1.35;overflow-wrap:anywhere}.task-row.done .task-title{text-decoration:line-through;color:var(--muted)}.task-meta{display:flex;flex-wrap:wrap;gap:7px;margin-top:7px;color:var(--muted);font-size:12px}.status-label{border-radius:5px;padding:2px 6px;background:var(--soft)}.status-label.blocked{color:var(--danger);background:#fff0ef}.status-label.doing{color:var(--blue);background:var(--blue-soft)}.task-due.overdue{color:var(--danger)}.task-menu{min-height:36px;padding:0 8px}.empty-state{padding:58px 20px;text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:12px}.empty-state h2{color:var(--ink);margin:0 0 7px;font-size:18px}.capture-panel{background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:20px;align-self:start;position:sticky;top:88px}.panel-heading{display:flex;justify-content:space-between;align-items:start;margin-bottom:17px}.muted{color:var(--muted)}.small-text{font-size:12px}.note-form textarea{min-height:130px;margin-bottom:10px}.note-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.notes-list{display:grid;gap:10px;margin-top:22px}.note-card{border-top:1px solid var(--line);padding-top:12px;font-size:13px}.note-card p{white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 8px}.note-date{font-size:11px;color:var(--muted)}.note-status{font-size:11px;color:var(--blue)}.dialog{width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 32px);border:1px solid var(--line);border-radius:16px;padding:0;background:var(--surface);color:var(--ink);box-shadow:0 18px 60px #0003}.dialog.wide{width:min(720px,calc(100vw - 32px))}.dialog::backdrop{background:#0006}.dialog form{padding:24px;display:grid;gap:10px}.dialog-head{display:flex;justify-content:space-between;align-items:start;margin-bottom:4px}.dialog label{font-size:13px;font-weight:600;margin-top:4px}.dialog input,.dialog textarea,.dialog select{margin-top:-3px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid>div{display:grid;gap:10px}.dialog-actions{display:grid;grid-template-columns:auto 1fr auto auto;gap:8px;align-items:center;margin-top:12px}.form-error{color:var(--danger);font-size:13px;min-height:1.2em;margin:0}.source-note{padding:10px;border-radius:8px;background:var(--soft);color:var(--muted);font-size:12px;white-space:pre-wrap}.questions{padding:12px;border-radius:9px;background:#fff8e8;color:#6b4e00;font-size:13px}.questions:empty{display:none}.questions p{margin:0 0 5px}.proposal-list{display:grid;gap:8px;max-height:40vh;overflow:auto}.proposal{display:grid;grid-template-columns:24px 1fr;gap:9px;padding:12px;border:1px solid var(--line);border-radius:9px}.proposal strong{display:block}.proposal small{display:block;color:var(--muted);margin-top:4px}.dialog-intro{color:var(--muted);margin:0}.check-row{display:flex;align-items:center;gap:9px;font-weight:500!important}.check-row input{width:20px;min-height:20px}.settings-info{border-top:1px solid var(--line);margin-top:8px;padding-top:14px;color:var(--muted);font-size:13px}.settings-info p{margin:0 0 10px}.toast{position:fixed;bottom:22px;left:50%;transform:translate(-50%,20px);background:var(--ink);color:#fff;border-radius:10px;padding:11px 16px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;z-index:9}.toast.show{opacity:1;transform:translate(-50%,0)}.login-view{min-height:100dvh;display:grid;place-items:center;padding:24px}.login-card{width:min(380px,100%);background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:32px}.login-card h1{font-size:30px;letter-spacing:-.04em;margin:18px 0 4px}.login-card>p{color:var(--muted);margin:0 0 26px}.login-card form{display:grid;gap:10px}.login-card label{font-weight:600;font-size:13px}
@media (prefers-color-scheme:dark){:root{--ink:#f5f5f7;--muted:#a1a1a6;--line:#38383d;--surface:#1c1c1e;--soft:#2c2c2e;--blue-soft:#193453;background:#101011}html,body{background:#101011}.topbar{background:color-mix(in srgb,var(--surface) 92%,transparent)}.brand-mark{background:#f5f5f7;color:#1d1d1f}.status-label.blocked{background:#3b2220}.questions{background:#332b16;color:#f3d487}.button.danger{color:#ff6961}}
@media (max-width:1100px){.layout{grid-template-columns:180px minmax(0,1fr);gap:30px}.capture-panel{grid-column:2;position:static}.sidebar{grid-row:1 / span 2}}
@media (max-width:700px){body{font-size:15px}.topbar{height:58px}.topbar-inner{padding:0 16px}.sync-state{display:none}.top-actions{gap:2px}.top-actions .button{padding:0 9px;font-size:13px}.layout{display:block;padding:22px 16px 38px}.sidebar{min-height:0;margin:-4px -4px 24px;overflow:auto}.sidebar-heading,.projects-title,.sidebar-foot{display:none}.nav-list{display:flex;gap:5px;overflow-x:auto;padding:4px}.nav-item{min-height:44px;padding:0 13px;white-space:nowrap;background:var(--surface);border:1px solid var(--line)}.nav-item.active{border-color:var(--blue);background:var(--blue-soft)}.projects{display:none}.content-head{align-items:start;margin-bottom:18px}.content h1{font-size:28px}.content-head .button{min-width:44px;font-size:0;padding:0;width:44px}.content-head .button:after{content:"+";font-size:24px;font-weight:400}.toolbar{flex-wrap:wrap}.search-field{flex-basis:100%}.toolbar select{flex:1}.capture-panel{margin-top:32px;padding:17px}.task-row{grid-template-columns:28px minmax(0,1fr) 36px;padding:14px 11px}.task-menu{padding:0;min-width:36px}.dialog form{padding:20px}.form-grid{grid-template-columns:1fr}.dialog-actions{grid-template-columns:1fr 1fr}.dialog-actions span{display:none}.dialog-actions .danger{grid-column:1 / -1;justify-self:start}.note-actions{grid-template-columns:1fr}.toast{width:calc(100% - 32px);text-align:center}.wordmark{font-size:17px}}
@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important}}
[data-theme="light"]{color-scheme:light}[data-theme="dark"]{color-scheme:dark}[hidden]{display:none!important}.mobile-project-select{display:none}
@media (max-width:700px){.mobile-project-select{display:block;margin:0 4px 8px;width:calc(100% - 8px)}}
.note-actions{grid-template-columns:repeat(3,1fr)}
@media (max-width:700px){.note-actions{grid-template-columns:1fr}}
.task-check{width:44px;height:44px;margin:-10px 0 -10px -11px;transform:scale(.5);transform-origin:center}
[data-theme="dark"]{--ink:#f5f5f7;--muted:#a1a1a6;--line:#38383d;--surface:#1c1c1e;--soft:#2c2c2e;--blue-soft:#193453;background:#101011;color:#f5f5f7}[data-theme="dark"] body,[data-theme="dark"] html{background:#101011}[data-theme="light"]{--ink:#1d1d1f;--muted:#6e6e73;--line:#d8d8dc;--surface:#fff;--soft:#f0f0f2;background:#f5f5f7;color:#1d1d1f}[data-theme="light"] body,[data-theme="light"] html{background:#f5f5f7}
.toolbar .search-field{min-width:0;flex:1 1 auto}.toolbar>select{width:150px;flex:0 0 150px}.projects{max-height:42vh;overflow-y:auto;min-width:0}.projects .nav-item{min-width:0}.projects .nav-item span:first-child{min-width:0;overflow-wrap:anywhere}.task-row{grid-template-columns:44px minmax(0,1fr) auto}.task-check{width:44px;height:44px;margin:-10px 0 -10px -11px;transform:none;border:0;background:transparent;border-radius:50%;position:relative}.task-check::before{content:"";position:absolute;inset:11px;border:1.5px solid #9b9ba1;border-radius:50%;background:transparent}.task-check:checked::before{border-color:var(--blue);background:var(--blue)}.task-check:checked::after{content:"✓";position:absolute;color:#fff;font-size:13px;line-height:22px;left:11px;top:11px;width:22px;text-align:center}.button.primary{background:var(--button-blue,#0066cc)}[data-theme="dark"]{--blue:#5ca9ff;--button-blue:#0066cc;--danger:#ff817a}.status-label.blocked{color:var(--danger);background:color-mix(in srgb,var(--danger) 12%,var(--surface))}.task-due.overdue{color:var(--danger)}
@media (max-width:700px){.layout{padding-left:20px;padding-right:20px}.toolbar>select{width:auto;flex:1 1 0}.projects{max-height:none}}

/* The task list and note form share touch-sized controls without forcing columns wide. */
:root { --page:#f5f5f7; --button-blue:#0066cc; color:var(--ink); }
html, body { background:var(--page); color:var(--ink); }
.brand-mark, .toast, .skip-link { color:var(--surface); }
.brand-mark { background:var(--ink); }
.note-actions { display:flex; flex-wrap:wrap; }
.note-actions .button { flex:1 1 120px; }
.task-check:checked { background:transparent; border:0; }
.task-check:checked::before { background:var(--button-blue); }
.proposal { grid-template-columns:44px minmax(0,1fr); }
.proposal > input[type=checkbox] { width:44px; height:44px; padding:0; accent-color:var(--button-blue); }
.proposal label { display:grid; gap:8px; margin-bottom:10px; }
.proposal .form-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.proposal-list { max-height:50dvh; }
#conflictPanel pre { white-space:pre-wrap; overflow-wrap:anywhere; font:inherit; font-size:13px; }
#conflictPanel article { border-top:1px solid var(--line); padding:12px 0; }
#conflictPanel button { margin:4px; white-space:normal; }
.settings-info label { display:block; margin:12px 0 8px; }
.settings-info input, .settings-info select { margin-bottom:12px; }
#notesList { max-height:55dvh; overflow-y:auto; }
@media (prefers-color-scheme:dark) {
  :root { --page:#101011; --blue:#5ca9ff; --danger:#ff817a; }
}
[data-theme=light] { --page:#f5f5f7; --blue:#0066cc; --danger:#b42318; }
[data-theme=dark] { --page:#101011; --blue:#5ca9ff; --danger:#ff817a; }
@media (max-width:700px) {
  .proposal .form-grid { grid-template-columns:1fr; }
  .proposal { padding:10px; gap:6px; grid-template-columns:32px minmax(0,1fr); }
  .proposal > input[type=checkbox] { width:28px; height:44px; }
  .task-menu { min-width:44px; min-height:44px; }
}

.task-check::before { border-color:#85858a; }
.task-row:not(:has(.task-check)) { grid-template-columns:minmax(0,1fr) auto; }
.task-row:not(:has(.task-check)) .small-text { white-space:pre-line; }
input:not([type=checkbox]), select, textarea { border-color:#85858a; }
