:root{--bg:#f6f6f9;--surface:#fff;--surface-2:#f0f0f5;--border:#e3e3ea;--text:#1c1c28;--text-2:#55566a;--muted:#8a8b9c;--accent:#6d4aff;--accent-ink:#fff;--accent-soft:#ece7ff;--gold:#e8a317;--danger:#d23c3c;--q1:#d9483b;--q2:#6d4aff;--q3:#d98a1c;--q4:#8a8b9c;--heat-0:#ebebf0;--heat-1:#d5cbff;--heat-2:#aa95ff;--heat-3:#8264ff;--heat-4:#5733e0;--shadow:0 1px 2px #1414280d, 0 4px 16px #1414280d;--radius:14px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#111118;--surface:#1a1a24;--surface-2:#23232f;--border:#2e2e3c;--text:#ececf3;--text-2:#b0b1c3;--muted:#7d7e92;--accent:#8e74ff;--accent-ink:#fff;--accent-soft:#2a2447;--q1:#ef6a5d;--q2:#9d86ff;--q3:#eaa33d;--q4:#7d7e92;--heat-0:#262632;--heat-1:#3b3170;--heat-2:#5a44b5;--heat-3:#7d62f0;--heat-4:#b3a1ff;--shadow:0 1px 2px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}}:root[data-theme=dark]{--bg:#111118;--surface:#1a1a24;--surface-2:#23232f;--border:#2e2e3c;--text:#ececf3;--text-2:#b0b1c3;--muted:#7d7e92;--accent:#8e74ff;--accent-ink:#fff;--accent-soft:#2a2447;--q1:#ef6a5d;--q2:#9d86ff;--q3:#eaa33d;--q4:#7d7e92;--heat-0:#262632;--heat-1:#3b3170;--heat-2:#5a44b5;--heat-3:#7d62f0;--heat-4:#b3a1ff;--shadow:0 1px 2px #0000004d;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;font:15px/1.5 system-ui,-apple-system,sans-serif}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}h1,h2,p{margin:0}code{background:var(--surface-2);border-radius:5px;padding:1px 5px;font-size:.85em}.loading{height:100vh;color:var(--muted);place-items:center;display:grid}.muted{color:var(--muted)}.small{font-size:.82rem}.spacer{flex:1}.eyebrow{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.75rem;font-weight:600}.app{grid-template-columns:240px 1fr;min-height:100vh;display:grid}.sidebar{background:var(--surface);border-right:1px solid var(--border);flex-direction:column;gap:18px;height:100vh;padding:20px 14px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:10px;padding:0 6px;font-size:1.15rem;font-weight:700;display:flex}.brand-mark{background:linear-gradient(135deg, var(--accent), #b04aff);color:#fff;border-radius:9px;place-items:center;width:30px;height:30px;font-size:.95rem;display:grid}.apps-link{z-index:25;border:1px solid var(--border);background:var(--surface);color:var(--text-2);box-shadow:var(--shadow);border-radius:99px;align-items:center;gap:6px;padding:7px 12px;font-size:.85rem;font-weight:500;text-decoration:none;display:inline-flex;position:fixed;top:14px;right:20px}.apps-link:hover{color:var(--text);border-color:var(--accent)}.ws-switch{border:1px solid var(--border);background:var(--surface-2);border-radius:10px;align-items:center;gap:8px;padding:8px 10px;display:flex}.ws-switch select{background:0 0;border:0;outline:none;flex:1;min-width:0;font-weight:500}nav{flex-direction:column;gap:2px;display:flex}nav a{color:var(--text-2);border-radius:9px;align-items:center;gap:10px;padding:8px 10px;font-weight:500;text-decoration:none;display:flex}nav a:hover{background:var(--surface-2);color:var(--text)}nav a.active{background:var(--accent-soft);color:var(--accent)}.nav-icon{text-align:center;width:18px}.sync{text-align:left;color:var(--muted);background:0 0;border:0;border-radius:8px;margin-top:auto;padding:4px 8px;font-size:.78rem;text-decoration:none}.sync:hover{background:var(--surface-2)}.sync-warn{color:var(--gold)}.sync+.player{margin-top:0}.player{background:var(--surface-2);color:inherit;border-radius:12px;align-items:center;gap:10px;margin-top:auto;padding:12px;text-decoration:none;display:flex}.player-info{flex-direction:column;flex:1;gap:4px;min-width:0;display:flex}.player-row{justify-content:space-between;font-size:.88rem;display:flex}.streak{font-size:.85rem}.level-badge{background:linear-gradient(135deg, var(--gold), #f2c14e);color:#3b2800;border-radius:12px;flex:none;place-items:center;width:40px;height:40px;font-weight:700;display:grid}.level-badge.big{border-radius:20px;width:72px;height:72px;font-size:1.9rem}.xpbar{background:var(--border);border-radius:99px;height:10px;overflow:hidden}.xpbar.small{height:6px}.xpbar>div{background:linear-gradient(90deg, var(--accent), #b04aff);border-radius:99px;height:100%;transition:width .6s}.main{min-width:0;padding:64px 40px 80px}.view{flex-direction:column;gap:22px;max-width:860px;margin:0 auto;display:flex}.view-wide{max-width:1200px}.view-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.view-header h1{letter-spacing:-.02em;font-size:1.9rem}.header-note{max-width:360px;font-size:.88rem}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:18px 20px;display:flex}.card-title{font-size:1rem;font-weight:600}.today-cards{grid-template-columns:1.4fr 1fr 1fr;gap:14px;display:grid}.stat-grid{grid-template-columns:repeat(4,1fr);gap:14px;display:grid}.stat-label{color:var(--muted);font-size:.8rem;font-weight:500}.stat-value{letter-spacing:-.02em;font-size:1.7rem;font-weight:700;line-height:1.2}.stat-value small{color:var(--muted);font-size:.85rem;font-weight:500}.goal-card{flex-direction:row;align-items:center;gap:16px}.ring{flex:none;width:76px;height:76px}.ring circle{fill:none;stroke-width:8px}.ring-track{stroke:var(--border)}.ring-fill{stroke:var(--accent);stroke-linecap:round;transition:stroke-dashoffset .6s}.ring-fill.complete{stroke:var(--gold)}.level-card{flex-direction:row;align-items:center;gap:20px}.level-info{flex-direction:column;flex:1;gap:6px;display:flex}.level-info h2{font-size:1.4rem}.btn{border:1px solid var(--border);background:var(--surface);white-space:nowrap;border-radius:9px;padding:8px 14px;font-weight:500}.btn:hover{background:var(--surface-2)}.btn:disabled{opacity:.5;cursor:default}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.btn-primary:hover{background:var(--accent);filter:brightness(1.08)}.btn-small{padding:4px 10px;font-size:.82rem}.btn-danger-ghost{color:var(--danger)}.btn-danger{background:var(--danger);border-color:var(--danger);color:#fff}.btn-danger:hover{background:var(--danger);filter:brightness(1.08)}.link{color:var(--accent);background:0 0;border:0;padding:0;font-size:.85rem}.icon-btn{border:1px solid var(--border);background:var(--surface);border-radius:8px;width:30px;height:30px;font-size:1.1rem;line-height:1}input:not([type=range]):not([type=checkbox]),select,textarea{border:1px solid var(--border);background:var(--surface);border-radius:9px;outline:none;padding:8px 10px}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.search{width:220px}.toggle{border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:99px;padding:4px 10px;font-size:.82rem}.toggle.on{background:var(--accent-soft);border-color:var(--accent);color:var(--accent);font-weight:600}.seg{border:1px solid var(--border);border-radius:99px;display:inline-flex;overflow:hidden}.seg button{background:var(--surface);color:var(--text-2);border:0;padding:4px 11px;font-size:.82rem}.seg button+button{border-left:1px solid var(--border)}.seg button.on{background:var(--accent-soft);color:var(--accent);font-weight:600}.pill{background:var(--surface-2);color:var(--text-2);white-space:nowrap;border-radius:99px;align-items:center;gap:5px;padding:1px 8px;font-size:.76rem;font-weight:500;display:inline-flex}.pill.q1{color:var(--q1)}.pill.q2{color:var(--q2)}.pill.q3{color:var(--q3)}.pill.q4{color:var(--q4)}.pill-overdue{color:var(--danger);background:color-mix(in srgb, var(--danger) 12%, transparent)}.pill-doing{color:var(--accent);background:var(--accent-soft)}.pill-ws{color:var(--text)}.pill-blocked{color:var(--text-2);border:1px dashed var(--muted);text-overflow:ellipsis;background:0 0;max-width:260px;overflow:hidden}.pill-unblocks{color:var(--gold);background:color-mix(in srgb, var(--gold) 14%, transparent)}.task.is-blocked .task-title{color:var(--text-2)}.task.is-blocked .check{border-style:dashed}.dot{border-radius:50%;flex:none;width:8px;height:8px;display:inline-block}.dot.big{width:12px;height:12px}.quickadd{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:8px;padding:10px 12px;display:flex}.quickadd-row{align-items:center;gap:8px;display:flex}.quickadd-row input{flex:1;min-width:0;font-size:1rem;box-shadow:none!important;background:0 0!important;border:0!important;padding:6px 2px!important}.quickadd-plus{color:var(--accent);text-align:center;width:20px;font-size:1.3rem;font-weight:600}.quickadd-opts{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.quickadd-opts .link{margin-left:auto}.ws-target{border:1px solid var(--border);background:var(--surface);border-radius:99px;align-items:center;gap:6px;padding:2px 4px 2px 10px;display:inline-flex}.ws-target select{font-size:.82rem;box-shadow:none!important;background:0 0!important;border:0!important;padding:2px 4px!important}.quickadd-help{color:var(--text-2);font-size:.82rem;line-height:1.8}.section-title{color:var(--text-2);margin-bottom:8px;font-size:.85rem;font-weight:600}.overdue-title{color:var(--danger)}.task-list{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.task{background:var(--surface);border:1px solid var(--border);border-radius:11px;align-items:center;gap:10px;padding:8px 12px;transition:border-color .15s,transform .15s;display:flex}.task:hover{border-color:color-mix(in srgb, var(--accent) 40%, var(--border))}.task[draggable=true]{cursor:grab}.check{border:2px solid var(--muted);background:0 0;border-radius:50%;flex:none;place-items:center;width:22px;height:22px;padding:0;display:grid}.check svg{fill:none;stroke:#0000;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.check:hover{border-color:var(--accent)}.check:hover svg{stroke:var(--accent)}.task.is-done .check{background:var(--accent);border-color:var(--accent)}.task.is-done .check svg{stroke:#fff}.task.is-done .task-title{color:var(--muted);text-decoration:line-through}.task-body{text-align:left;background:0 0;border:0;flex-direction:column;flex:1;gap:3px;min-width:0;padding:2px 0;display:flex}.task-title{overflow-wrap:anywhere}.task-meta{flex-wrap:wrap;gap:4px;display:flex}.task-meta:empty{display:none}.xp-preview{color:var(--gold);flex:none;font-size:.78rem;font-weight:600}.empty{color:var(--muted);text-align:center;border:1px dashed var(--border);border-radius:var(--radius);padding:26px}.empty.small{padding:14px;font-size:.85rem}.chips{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);background:var(--surface);color:var(--text-2);border-radius:99px;align-items:center;gap:6px;padding:5px 12px;font-size:.85rem;font-weight:500;display:inline-flex}.chip.on{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.chip-count{color:var(--muted);font-size:.75rem}.chip-add{border-style:dashed}.chip-input{width:160px;font-size:.85rem;border-radius:99px!important;padding:4px 12px!important}.tabs{border-bottom:1px solid var(--border);gap:4px;display:flex}.tabs button{color:var(--text-2);background:0 0;border:0;border-bottom:2px solid #0000;margin-bottom:-1px;padding:8px 12px;font-weight:500}.tabs button.on{color:var(--accent);border-bottom-color:var(--accent)}.matrix{grid-template-columns:1fr 1fr;gap:14px;display:grid}.quadrant{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);border-top:4px solid var(--qc);flex-direction:column;gap:10px;min-height:260px;padding:14px;display:flex}.quadrant-1{--qc:var(--q1)}.quadrant-2{--qc:var(--q2)}.quadrant-3{--qc:var(--q3)}.quadrant-4{--qc:var(--q4)}.quadrant>header{justify-content:space-between;align-items:flex-start;display:flex}.quadrant h2{color:var(--qc);font-size:1.05rem}.quadrant .muted{font-size:.8rem}.quadrant.drag-over{background:color-mix(in srgb, var(--qc) 8%, var(--surface));border-color:var(--qc)}.quadrant .task{background:var(--surface-2);border-color:#0000}.quadrant .quickadd{box-shadow:none;background:var(--surface-2)}.chart,.chart-plot{position:relative}.chart-svg{width:100%;height:auto;display:block;overflow:visible}.axis{stroke:var(--border)}.refline{stroke:var(--muted);stroke-dasharray:4 4;opacity:.7}.axis-label{fill:var(--muted);font-size:10px}.bar{fill:var(--accent);transition:opacity .15s}.bar.dim{opacity:.35}.chart-tip{pointer-events:none;z-index:5;background:var(--text);color:var(--bg);white-space:nowrap;box-shadow:var(--shadow);border-radius:8px;flex-direction:column;padding:6px 10px;font-size:.78rem;display:flex;position:absolute;transform:translate(-50%,-100%)}.chart-tip span{opacity:.75}.heat{stroke:var(--surface);stroke-width:1px}.heat.is-today{stroke:var(--text);stroke-width:1.5px}.h0{fill:var(--heat-0);background:var(--heat-0)}.h1{fill:var(--heat-1);background:var(--heat-1)}.h2{fill:var(--heat-2);background:var(--heat-2)}.h3{fill:var(--heat-3);background:var(--heat-3)}.h4{fill:var(--heat-4);background:var(--heat-4)}.heat-legend{color:var(--muted);justify-content:flex-end;align-items:center;gap:4px;margin-top:6px;font-size:.75rem;display:flex}.heat-swatch{border-radius:3px;width:11px;height:11px;display:inline-block}.hbars{flex-direction:column;gap:8px;display:flex}.hbar-row{grid-template-columns:90px 1fr 80px;align-items:center;gap:10px;font-size:.88rem;display:grid}.hbar-track{background:var(--surface-2);border-radius:99px;height:10px;overflow:hidden}.hbar-fill{background:var(--accent);border-radius:99px;height:100%;display:block}.hbar-value{text-align:right;font-weight:600}.hbar-value small{color:var(--muted);font-weight:400}.achievements{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:10px;display:grid}.achievement{border:1px solid var(--border);background:var(--surface);border-radius:12px;gap:12px;padding:12px;display:flex}.achievement-icon{font-size:1.6rem;line-height:1}.achievement strong{font-size:.9rem}.achievement p{color:var(--text-2);font-size:.8rem}.achievement.locked{opacity:.55;background:0 0}.achievement.unlocked{border-color:color-mix(in srgb, var(--gold) 50%, var(--border))}.xp-log{margin:0;padding:0;list-style:none}.xp-log li{border-bottom:1px solid var(--border);grid-template-columns:1fr auto 50px;gap:12px;padding:7px 0;font-size:.88rem;display:grid}.xp-log li:last-child{border-bottom:0}.xp-log strong{text-align:right;color:var(--gold)}.settings-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.settings-list li{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.settings-list li.archived{opacity:.55}.inline-input{flex:1;min-width:140px}.inline-form{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.inline-form input:not([type=range]){flex:1;min-width:180px}.swatches{gap:4px;display:inline-flex}.swatch{border:2px solid #0000;border-radius:50%;width:18px;height:18px;padding:0}.swatch.on{border-color:var(--text)}.modal-backdrop{z-index:50;background:#0a0a1473;place-items:center;padding:16px;animation:.15s fade;display:grid;position:fixed;inset:0}.modal{background:var(--surface);border-radius:16px;flex-direction:column;gap:12px;width:min(560px,100%);padding:20px;display:flex;box-shadow:0 20px 60px #0000004d}.modal>*{flex-shrink:0}.modal-title{font-size:1.15rem;font-weight:600;box-shadow:none!important;border:0!important;padding:4px 0!important}.modal textarea{resize:vertical}.field-grid{grid-template-columns:1fr 1fr;gap:12px;display:grid}.field-grid label{color:var(--muted);flex-direction:column;gap:4px;font-size:.8rem;font-weight:500;display:flex}.field-grid .seg{align-self:flex-start}.priority-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.deps{border-top:1px solid var(--border);flex-direction:column;gap:6px;padding-top:4px;display:flex}.deps-label{color:var(--muted);padding-top:8px;font-size:.8rem;font-weight:500}.deps-list{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.dep-pill{padding-right:4px}.dep-pill button{color:var(--muted);background:0 0;border:0;padding:0 4px;font-size:1rem;line-height:1}.dep-pill button:hover{color:var(--danger)}.dep-done{opacity:.7;text-decoration:line-through}.dep-add{max-width:240px;font-size:.8rem;border-radius:99px!important;padding:3px 8px!important}.modal-actions{align-items:center;gap:8px;padding-top:6px;display:flex}.dialog-backdrop{z-index:70}.dialog{gap:14px;width:min(420px,100%)}.dialog-title{font-size:1.1rem;font-weight:600}.dialog-message{color:var(--text-2);font-size:.92rem}.dialog input{width:100%}.toasts{z-index:60;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:20px;right:20px}.toast{background:var(--text);color:var(--bg);border-radius:12px;align-items:center;gap:10px;padding:10px 16px;animation:.35s cubic-bezier(.2,1.4,.4,1) pop;display:flex;box-shadow:0 8px 30px #0003}.toast>div{flex-direction:column;display:flex}.toast span{opacity:.75;font-size:.8rem}.toast-xp strong{color:var(--gold);font-size:1.05rem}.toast-achievement{border:2px solid var(--gold)}.toast-icon{font-size:1.8rem}.levelup{text-align:center;background:var(--surface);border-radius:22px;flex-direction:column;align-items:center;gap:6px;width:min(360px,100%);padding:36px 24px 28px;animation:.45s cubic-bezier(.2,1.4,.4,1) pop;display:flex;position:relative;overflow:hidden}.levelup-num{background:linear-gradient(135deg, var(--gold), #b04aff);color:#0000;-webkit-background-clip:text;background-clip:text;font-size:4.5rem;font-weight:800;line-height:1}.levelup-rank{color:var(--text-2);margin-bottom:14px;font-weight:600}.confetti{pointer-events:none;position:absolute;inset:0}.confetti i{top:-10px;left:calc(var(--i) * 2.8%);background:hsl(calc(var(--i) * 47) 85% 60%);width:7px;height:11px;animation:fall calc(1.6s + (var(--i) * 37ms)) calc(var(--i) * 25ms) ease-in forwards;border-radius:2px;position:absolute}@keyframes fall{to{transform:translateY(420px) rotate(calc(var(--i) * 83deg));opacity:0}}@keyframes pop{0%{opacity:0;transform:scale(.85)}}@keyframes fade{0%{opacity:0}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}@media (width<=900px){.today-cards,.stat-grid{grid-template-columns:1fr 1fr}.goal-card{grid-column:1/-1}}@media (width<=760px){.app{grid-template-columns:minmax(0,1fr)}.sidebar{z-index:20;height:auto;padding:calc(env(safe-area-inset-top) + 10px) 16px 10px;border-right:0;border-bottom:1px solid var(--border);background:var(--surface);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px 10px;display:grid;position:sticky;top:0}.brand{padding:0}.ws-switch{grid-column:1/-1;padding:6px 10px}.sync{grid-column:1/-1;margin:-4px 0 0;padding:0 2px}.player{display:none}.apps-link{top:calc(env(safe-area-inset-top) + 10px);box-shadow:none;padding:6px 11px;right:16px}nav{z-index:30;padding:6px 4px calc(env(safe-area-inset-bottom) + 6px);background:color-mix(in srgb, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-top:1px solid var(--border);grid-template-columns:repeat(5,minmax(0,1fr));gap:0;display:grid;position:fixed;bottom:0;left:0;right:0}nav a{border-radius:10px;flex-direction:column;justify-content:center;gap:2px;padding:6px 0;font-size:.68rem}nav a.active{background:0 0}.nav-icon{width:auto;font-size:1.25rem;line-height:1.2}.main{padding:18px 16px calc(96px + env(safe-area-inset-bottom))}.view{gap:18px}.view-header h1{font-size:1.6rem}.today-cards{gap:10px}.card{padding:14px 16px}.stat-value{font-size:1.45rem}.matrix,.field-grid{grid-template-columns:1fr}.search{width:100%}input:not([type=range]):not([type=checkbox]),select,textarea{font-size:16px}.modal-backdrop{place-items:end stretch;padding:0}.modal{width:100%;max-height:92vh;padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:20px 20px 0 0;overflow-y:auto}.toasts{left:16px;right:16px;bottom:calc(84px + env(safe-area-inset-bottom))}}.guest-bar{background:var(--accent-soft);color:var(--text);text-align:center;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:2px 8px;padding:6px 16px;font-size:.8rem;display:flex}.guest-bar strong{color:var(--accent)}.main>.guest-bar{border-radius:10px;margin-bottom:12px}.ambient{z-index:-1;pointer-events:none;position:fixed;inset:0;overflow:hidden}.ambient span{filter:blur(90px);opacity:.22;border-radius:50%;width:60vmax;height:60vmax;animation:26s ease-in-out infinite alternate drift;position:absolute}.ambient span:first-child{background:#6d4aff;top:-25vmax;left:-20vmax}.ambient span:nth-child(2){opacity:.14;background:#f29a38;animation-duration:32s;top:10vmax;right:-25vmax}.ambient span:nth-child(3){opacity:.14;background:#2fb67c;animation-duration:38s;bottom:-35vmax;left:10vmax}@keyframes drift{to{transform:translate(6vmax,4vmax)scale(1.08)}}@media (prefers-reduced-motion:reduce){.ambient span{animation:none}}
