:root{--bg:#f6f7f9;--surface:#ffffff;--surface-2:#f1f3f6;--border:#d9dde3;--border-strong:#b9c0ca;--text:#16191d;--text-muted:#5b636e;--text-faint:#838b96;--accent:#2f5fd0;--accent-text:#ffffff;--accent-soft:#e8eefc;--danger:#b4232a;--danger-soft:#fdeaea;--success:#1c6b45;--success-soft:#e4f4ec;--warn:#8a5300;--warn-soft:#fdf0dc;--focus:#0b63e5;--focus-halo:rgba(11,99,229,0.28);--radius:10px;--radius-sm:7px;--shadow:0 1px 2px rgba(16,20,28,0.06),0 4px 14px rgba(16,20,28,0.06);--shadow-lg:0 12px 40px rgba(16,20,28,0.22)}@media (prefers-color-scheme:dark){:root{--bg:#14171c;--surface:#1c2027;--surface-2:#23282f;--border:#333a44;--border-strong:#4a535f;--text:#eef1f5;--text-muted:#a8b1bd;--text-faint:#7f8996;--accent:#6f9bff;--accent-text:#0e1115;--accent-soft:#23304d;--danger:#ff8a8a;--danger-soft:#3a2224;--success:#6fd6a4;--success-soft:#1c3329;--warn:#f0be6d;--warn-soft:#362a17;--focus:#8ab4ff;--focus-halo:rgba(138,180,255,0.35);--shadow:0 1px 2px rgba(0,0,0,0.4),0 4px 14px rgba(0,0,0,0.35);--shadow-lg:0 12px 40px rgba(0,0,0,0.6)}}*,:after,:before{box-sizing:border-box}body,html{margin:0;padding:0}html{scroll-padding-top:5rem}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.55;-webkit-font-smoothing:antialiased}:focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:4px}:focus:not(:focus-visible){outline:none}main.page:focus,main.page:focus-visible{outline:none}input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--focus);outline-offset:1px;box-shadow:0 0 0 4px var(--focus-halo)}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.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:.5rem;top:-3rem;z-index:100;padding:.6rem 1rem;background:var(--accent);color:var(--accent-text);border-radius:var(--radius-sm);font-weight:600;text-decoration:none;transition:top .15s ease}.skip-link:focus{top:.5rem}.app-header{position:-webkit-sticky;position:sticky;top:0;z-index:20;background:color-mix(in srgb,var(--surface) 88%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.app-header__inner{max-width:880px;margin:0 auto;padding:.7rem 1.25rem;display:flex;align-items:center;gap:1rem;flex-wrap:wrap}.brand{display:flex;align-items:baseline;gap:.5rem;font-weight:700;font-size:1.05rem;letter-spacing:-.01em;color:var(--text);text-decoration:none}.brand__dot{width:9px;height:9px;border-radius:50%;background:var(--accent);flex:none}.brand__sub{font-weight:400;font-size:.8rem;color:var(--text-faint)}nav.tabs{display:flex;gap:.3rem;margin-left:auto}.tab,nav.tabs{align-items:center}.tab{display:inline-flex;gap:.45rem;padding:.42rem .8rem;border-radius:999px;font-size:.875rem;font-weight:550;color:var(--text-muted);text-decoration:none;border:1px solid transparent}.tab:hover{background:var(--surface-2);color:var(--text)}.tab[aria-current=page]{background:var(--accent-soft);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 35%,transparent)}.tab__count{min-width:1.35rem;padding:0 .35rem;border-radius:999px;background:var(--surface-2);color:var(--text-muted);font-size:.75rem;font-weight:700;text-align:center}.tab[aria-current=page] .tab__count{background:var(--accent);color:var(--accent-text)}.tab__count--alert{background:var(--danger);color:#fff}main.page{max-width:880px;margin:0 auto;padding:1.5rem 1.25rem 5rem}.page-head{margin-bottom:1.25rem}.page-head h1{margin:0 0 .2rem;font-size:1.5rem;letter-spacing:-.02em}.page-head p{margin:0;color:var(--text-muted);font-size:.9rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow)}.section{margin-bottom:1.75rem}.section__head{display:flex;align-items:center;gap:.6rem;margin:0 0 .6rem;font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em;color:var(--text-faint)}.section__head .pill{text-transform:none;letter-spacing:0}.pill{display:inline-block;padding:.1rem .5rem;border-radius:999px;font-size:.72rem;font-weight:700;background:var(--surface-2);color:var(--text-muted)}.pill--danger{background:var(--danger-soft);color:var(--danger)}.pill--accent{background:var(--accent-soft);color:var(--accent)}.pill--success{background:var(--success-soft);color:var(--success)}.pill--warn{background:var(--warn-soft);color:var(--warn)}.composer{padding:1rem;margin-bottom:1.75rem}.composer__row{display:flex;gap:.6rem;align-items:flex-start;flex-wrap:wrap}.field{display:flex;flex-direction:column;gap:.3rem}.field--grow{flex:1 1 15rem;min-width:0}.field>label{font-size:.78rem;font-weight:650;color:var(--text-muted)}input[type=date],input[type=password],input[type=text],select,textarea{font:inherit;color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);padding:.5rem .65rem;width:100%;min-width:0}textarea{resize:vertical;min-height:2.6rem;max-height:40vh;overflow-y:auto;line-height:1.5}input::placeholder,textarea::placeholder{color:var(--text-faint)}.hint{font-size:.78rem;color:var(--text-faint)}kbd{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.78em;padding:.1rem .35rem;border:solid var(--border-strong);border-width:1px 1px 2px;border-radius:4px;background:var(--surface-2);color:var(--text-muted);white-space:nowrap}button{font:inherit}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.5rem .9rem;border-radius:var(--radius-sm);border:1px solid var(--border-strong);background:var(--surface);color:var(--text);font-weight:600;font-size:.875rem;cursor:pointer;white-space:nowrap}.btn:hover:not(:disabled){background:var(--surface-2)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn--primary:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 88%,#000)}.btn--danger{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 45%,var(--border))}.btn--danger:hover:not(:disabled){background:var(--danger-soft)}.btn--ghost{border-color:transparent;background:transparent;color:var(--text-muted)}.btn--ghost:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.btn--sm{padding:.28rem .55rem;font-size:.8rem}.btn--icon{padding:.35rem;width:2rem;height:2rem;border-color:transparent;background:transparent;color:var(--text-muted)}.btn--icon:hover:not(:disabled){background:var(--surface-2);color:var(--text)}.todo-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.todo{display:flex;align-items:flex-start;gap:.75rem;padding:.7rem .85rem;background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--border-strong);border-radius:var(--radius);box-shadow:var(--shadow)}.todo--high{border-left-color:var(--danger)}.todo--medium{border-left-color:var(--warn)}.todo--low{border-left-color:var(--border-strong)}.todo--done{background:var(--surface-2);border-left-color:var(--success)}.todo--done .todo__title{text-decoration:line-through;color:var(--text-faint)}.todo__check{flex:none;width:1.15rem;height:1.15rem;margin-top:.2rem;accent-color:var(--accent);cursor:pointer}.todo__body{flex:1 1 auto;min-width:0}.todo__title{font-weight:600;overflow-wrap:anywhere}.todo__notes{margin:.2rem 0 0;font-size:.86rem;color:var(--text-muted);white-space:pre-wrap;overflow-wrap:anywhere}.todo__meta{flex-wrap:wrap;gap:.4rem;margin-top:.35rem;font-size:.78rem;color:var(--text-faint)}.todo__actions,.todo__meta{display:flex;align-items:center}.todo__actions{flex:none;gap:.15rem}.empty{padding:2rem 1.25rem;text-align:center;color:var(--text-muted);border:1px dashed var(--border-strong);border-radius:var(--radius);background:var(--surface)}.empty strong{display:block;color:var(--text);margin-bottom:.2rem}.filters{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1rem}.filters__btn{padding:.34rem .7rem;border-radius:999px;border:1px solid var(--border-strong);background:var(--surface);color:var(--text-muted);font-size:.83rem;font-weight:600;cursor:pointer}.filters__btn[aria-pressed=true]{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent) 40%,transparent);color:var(--accent)}.overlay{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:1.25rem;background:rgba(10,13,18,.5)}.modal{width:min(34rem,100%);max-height:min(80vh,42rem);overflow-y:auto;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:1.1rem 1.25rem 1.25rem}.modal h2{margin:0 0 .75rem;font-size:1.1rem}.modal__actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1.1rem}.shortcuts{width:100%;border-collapse:collapse;font-size:.875rem}.shortcuts th{text-align:left;padding:.45rem .5rem .45rem 0;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--text-faint)}.shortcuts td,.shortcuts th{border-bottom:1px solid var(--border)}.shortcuts td{padding:.4rem .5rem .4rem 0;vertical-align:top}.shortcuts td:first-child{white-space:nowrap;width:11rem}.login-wrap{min-height:100dvh;display:grid;place-items:center;padding:1.5rem}.login{width:min(23rem,100%);padding:1.5rem}.login h1{margin:0 0 .3rem;font-size:1.25rem}.login p.hint{margin:0 0 1.1rem}.alert,.login .field{margin-bottom:.9rem}.alert{padding:.6rem .75rem;border-radius:var(--radius-sm);font-size:.86rem;background:var(--danger-soft);color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 35%,transparent)}.toast{position:fixed;left:50%;bottom:1.25rem;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:.75rem;max-width:calc(100vw - 2rem);padding:.6rem .9rem;border-radius:var(--radius);background:var(--surface);border:1px solid var(--border-strong);box-shadow:var(--shadow-lg);font-size:.875rem}@media (max-width:560px){.app-header__inner{padding:.6rem .9rem}nav.tabs{width:100%;margin-left:0}main.page{padding:1.1rem .9rem 4rem}.todo__actions{flex-direction:column}}