:root{--bg:var(--lightningcss-light,#f6f7f9)var(--lightningcss-dark,#111317);--surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#1a1d23);--text:var(--lightningcss-light,#1c1f24)var(--lightningcss-dark,#e8eaed);--muted:var(--lightningcss-light,#6b7280)var(--lightningcss-dark,#9aa0a9);--border:var(--lightningcss-light,#e3e5e9)var(--lightningcss-dark,#2c3038);--accent:var(--lightningcss-light,#4f46e5)var(--lightningcss-dark,#818cf8);--accent-text:var(--lightningcss-light,#fff)var(--lightningcss-dark,#111317);--danger:var(--lightningcss-light,#dc2626)var(--lightningcss-dark,#f87171);--radius:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;line-height:1.5}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*,:before,:after{box-sizing:border-box}body{background:var(--bg);color:var(--text);margin:0}a{color:var(--accent)}button{font:inherit;background:var(--accent);color:var(--accent-text);cursor:pointer;border:none;border-radius:8px;padding:.6rem 1rem}button:disabled{opacity:.6;cursor:default}button.ghost{color:var(--text);border:1px solid var(--border);background:0 0;padding:.35rem .75rem}input{font:inherit;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);border-radius:8px;padding:.55rem .7rem}.muted{color:var(--muted)}.small{font-size:.875rem}.error{color:var(--danger);margin:0}.spacer{flex:1}.center{place-items:center;min-height:100vh;padding:16px;display:grid}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:1rem;width:100%;max-width:360px;padding:2rem;display:flex}.auth-card h1{margin:0;font-size:1.5rem}.auth-card p{margin:0}.auth-card label{flex-direction:column;gap:.3rem;font-size:.875rem;display:flex}.topbar{background:var(--surface);border-bottom:1px solid var(--border);align-items:center;gap:.75rem;padding:.75rem 16px;display:flex}.page{max-width:1200px;margin:0 auto;padding:1.5rem 16px}.brand{color:var(--text);font-weight:700;text-decoration:none}button.icon{color:var(--muted);background:0 0;padding:.1rem .5rem;font-size:1.25rem;line-height:1}button.icon:hover{color:var(--text);background:var(--border)}.grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem;display:grid}@media (width<=639px){.grid{grid-template-columns:1fr}.hide-mobile{display:none}}.card{background:var(--surface);border:1px solid var(--border);border-left:4px solid var(--task-color);border-radius:var(--radius);flex-direction:column;gap:.6rem;padding:1rem;transition:box-shadow .15s;display:flex;position:relative}.card:hover{box-shadow:0 2px 10px #00000014}.card-head{align-items:center;gap:.5rem;display:flex}.card-title{min-width:0;color:var(--text);overflow-wrap:anywhere;flex:1;font-weight:600;text-decoration:none}.card-title:after{content:"";border-radius:var(--radius);position:absolute;inset:0}.card-title:focus-visible{outline:none}.card-title:focus-visible:after{outline:2px solid var(--accent);outline-offset:2px}.card-check,.card .menu,.card .bar-input{z-index:1;position:relative}.card-check{width:1.15rem;height:1.15rem;accent-color:var(--task-color);cursor:pointer}.card.complete .card-title{color:var(--muted)}.card-bar{align-items:center;gap:.75rem;display:flex}.card-status{text-align:right;font-variant-numeric:tabular-nums;min-width:4.5rem;font-size:.875rem}.card-meta{margin-top:auto}.bar{background:var(--border);border-radius:999px;flex:1;height:10px;overflow:hidden}.bar-fill{background:var(--task-color);border-radius:inherit;height:100%;transition:width .25s}.bar-input{appearance:none;background:linear-gradient(to right, var(--task-color) var(--value), var(--border) var(--value));cursor:pointer;border:none;width:auto;margin:0;padding:0;overflow:visible}.bar-input:focus{outline:none}.bar-input:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.bar-input::-webkit-slider-thumb{-webkit-appearance:none;background:var(--surface);border:3px solid var(--task-color);border-radius:50%;width:18px;height:18px}.bar-input::-moz-range-thumb{background:var(--surface);border:3px solid var(--task-color);border-radius:50%;width:12px;height:12px}.add-card{border:2px dashed var(--border);min-height:7.5rem;color:var(--muted);background:0 0;justify-content:center;align-items:center}.add-card:hover{color:var(--text);border-color:var(--muted)}.level-head{flex-direction:column;gap:.5rem;margin-bottom:1.5rem;display:flex}.level-head .up{align-self:flex-start;font-size:.875rem;text-decoration:none}.level-title{align-items:center;gap:.5rem;display:flex}.level-title h1{overflow-wrap:anywhere;margin:0;font-size:1.5rem}.menu{position:relative}.menu-list{z-index:10;background:var(--surface);border:1px solid var(--border);border-radius:8px;min-width:140px;margin:4px 0 0;padding:4px;list-style:none;position:absolute;top:100%;right:0;box-shadow:0 4px 16px #0000001f}.menu-list button{text-align:left;width:100%;color:var(--text);background:0 0;border-radius:6px;padding:.45rem .75rem}.menu-list button:hover{background:var(--bg)}.menu-list button.danger{color:var(--danger)}.dialog{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:min(440px,100vw - 32px);max-height:calc(100dvh - 2rem);color:var(--text);padding:0;overflow-y:auto}.dialog::backdrop{background:#0006}.dialog form{flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.dialog h2{margin:0;font-size:1.15rem}.dialog label{flex-direction:column;gap:.3rem;font-size:.875rem;display:flex}.dialog fieldset{border:none;min-width:0;margin:0;padding:0}.dialog legend{margin-bottom:.4rem;font-size:.875rem}.dialog label.radio{flex-direction:row;align-items:center;gap:.5rem;font-size:1rem}.dialog label.radio input{width:auto}.dialog-actions{justify-content:flex-end;gap:.5rem;display:flex}@media (width<=639px){.dialog{border-radius:var(--radius) var(--radius) 0 0;width:100vw;max-width:100vw;margin:auto 0 0}}.swatches{flex-wrap:wrap;gap:.5rem;display:flex}.swatch{background:var(--swatch);border:2px solid #0000;border-radius:50%;width:2rem;height:2rem;padding:0}.swatch[aria-pressed=true]{outline:2px solid var(--text);outline-offset:2px}.swatch.inherit{border:4px dotted var(--swatch);background:0 0}.toast{background:var(--text);max-width:calc(100vw - 32px);color:var(--bg);z-index:100;border-radius:8px;padding:.7rem 1rem;position:fixed;bottom:1.5rem;left:50%;transform:translate(-50%)}.drag-handle{z-index:1;cursor:grab;touch-action:manipulation;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;margin-left:-.4rem;position:relative}.card.dragging{z-index:5;cursor:grabbing;box-shadow:0 8px 24px #0000002e}.dialog-body{flex-direction:column;gap:1rem;padding:1.5rem;display:flex}.move-list,.move-list ul{margin:0;padding:0;list-style:none}.move-list{border:1px solid var(--border);border-radius:8px;max-height:55vh;padding:4px;overflow-y:auto}.move-target{text-align:left;width:100%;color:var(--text);background:0 0;border-radius:6px;align-items:center;gap:.5rem;padding:.45rem .75rem;display:flex}.move-target:hover:not(:disabled){background:var(--bg)}.move-target:disabled{opacity:.55}.move-target .dot{background:var(--task-color);border-radius:50%;flex:none;width:.6rem;height:.6rem}textarea{font:inherit;border:1px solid var(--border);background:var(--bg);width:100%;color:var(--text);resize:vertical;border-radius:8px;padding:.55rem .7rem}.due-inputs{gap:.5rem;display:flex}.due-inputs input{min-width:0}.due-inputs input[type=date]{flex:3}.due-inputs input[type=time]{flex:2}.due-inputs input:disabled{opacity:.5}.card-meta{flex-wrap:wrap;justify-content:space-between;gap:.25rem .75rem;display:flex}.card-notes{-webkit-line-clamp:2;white-space:pre-line;-webkit-box-orient:vertical;margin:0;display:-webkit-box;overflow:hidden}.due{white-space:nowrap}.due.today{color:var(--accent);font-weight:600}.due.overdue{color:var(--danger);font-weight:600}.level-head .due{color:var(--muted);font-size:.875rem}.level-head .due.today{color:var(--accent)}.level-head .due.overdue{color:var(--danger)}.level-notes{white-space:pre-wrap;overflow-wrap:anywhere;color:var(--muted);margin:0}select{font:inherit;border:1px solid var(--border);background:var(--bg);color:var(--text);border-radius:8px;padding:.5rem .6rem}.repeat{flex-wrap:wrap;align-items:center;gap:.5rem .75rem;display:flex}.dialog label.inline{flex-direction:row;align-items:center;gap:.4rem;font-size:1rem}.dialog label.inline input[type=number]{width:4.5rem}.dialog label.inline input[type=time]{width:auto}.weekdays{gap:.35rem;margin-top:.6rem;display:flex}.weekdays button{background:var(--bg);min-width:0;color:var(--text);border:1px solid var(--border);flex:1;padding:.45rem 0}.weekdays button[aria-pressed=true]{background:var(--accent);color:var(--accent-text);border-color:var(--accent)}.dialog .hint{margin:.5rem 0 0}.recurrence{white-space:nowrap}.recurrence-icon{font-weight:700}.card-meta>:first-child{margin-right:auto}.level-dates{color:var(--muted);flex-wrap:wrap;gap:.25rem 1rem;font-size:.875rem;display:flex}button.theme-toggle{justify-content:center;align-items:center;width:2.25rem;height:2.25rem;padding:0;display:inline-flex}.theme-toggle svg{width:1.15rem;height:1.15rem}.auth-theme{position:fixed;top:12px;right:16px}
