:root{--bg: #020616;--bg-raised: #0b1220;--bg-hover: #172033;--border: #22304a;--text: #e6edf7;--text-dim: #94a3b8;--accent: #00aeef;--accent-dim: rgba(0, 174, 239, .14);--brand: #0a63c9;--green: #3fa46a;--red: #e5645c;--red-dim: rgba(229, 100, 92, .16);--amber: #d9a036;--shared: #c48cff;--shared-dim: rgba(196, 140, 255, .2);--mono: ui-monospace, "Cascadia Code", "JetBrains Mono", Consolas, monospace}[data-theme=light]{--bg: #f5f5f5;--bg-raised: #ffffff;--bg-hover: #eceff3;--border: #d7dde5;--text: #282c34;--text-dim: #6f6f6f;--accent: #004aad;--accent-dim: rgba(0, 74, 173, .1);--brand: #004aad;--green: #1e7a46;--red: #c0392b;--red-dim: rgba(192, 57, 43, .1);--amber: #8a5a00;--shared: #7c3aed;--shared-dim: rgba(124, 58, 237, .14)}*{box-sizing:border-box}body{margin:0;background-color:var(--bg);background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='520' height='440'><g font-family='Consolas,Menlo,monospace' font-size='13'><text x='24' y='60' fill='rgba(230,237,247,0.07)' transform='rotate(-8 24 60)'>while (!done) %7B focus() %7D</text><text x='290' y='44' fill='rgba(0,174,239,0.10)' transform='rotate(6 290 44)'>setTimeout(ship, 25 * 60e3)</text><text x='40' y='118' fill='rgba(0,174,239,0.09)' transform='rotate(-6 40 118)'>&lt;progress value=18 max=25&gt;</text><text x='250' y='150' fill='rgba(230,237,247,0.055)' font-size='38' transform='rotate(8 250 150)'>%7B</text><text x='60' y='188' fill='rgba(230,237,247,0.07)' transform='rotate(7 60 188)'>foreach (var t in project.Tasks)</text><text x='320' y='236' fill='rgba(230,237,247,0.07)' transform='rotate(-7 320 236)'>public async Task Ship()</text><text x='210' y='270' fill='rgba(230,237,247,0.07)' transform='rotate(-6 210 270)'>task.done = true</text><text x='150' y='310' fill='rgba(230,237,247,0.07)' transform='rotate(6 150 310)'>if (t &lt;= 0) Console.Beep();</text><text x='370' y='356' fill='rgba(0,174,239,0.09)' transform='rotate(-8 370 356)'>&lt;time&gt;25:00&lt;/time&gt;</text><text x='40' y='412' fill='rgba(230,237,247,0.07)' transform='rotate(5 40 412)'>&lt;input type=checkbox checked&gt;</text></g></svg>");color:var(--text);font:14px/1.5 -apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}[data-theme=light] body{background-image:url("data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' width='520' height='440'><g font-family='Consolas,Menlo,monospace' font-size='13'><text x='24' y='60' fill='rgba(40,44,52,0.075)' transform='rotate(-8 24 60)'>while (!done) %7B focus() %7D</text><text x='290' y='44' fill='rgba(0,74,173,0.10)' transform='rotate(6 290 44)'>setTimeout(ship, 25 * 60e3)</text><text x='40' y='118' fill='rgba(0,74,173,0.09)' transform='rotate(-6 40 118)'>&lt;progress value=18 max=25&gt;</text><text x='250' y='150' fill='rgba(40,44,52,0.055)' font-size='38' transform='rotate(8 250 150)'>%7B</text><text x='60' y='188' fill='rgba(40,44,52,0.075)' transform='rotate(7 60 188)'>foreach (var t in project.Tasks)</text><text x='320' y='236' fill='rgba(40,44,52,0.075)' transform='rotate(-7 320 236)'>public async Task Ship()</text><text x='210' y='270' fill='rgba(40,44,52,0.075)' transform='rotate(-6 210 270)'>task.done = true</text><text x='150' y='310' fill='rgba(40,44,52,0.075)' transform='rotate(6 150 310)'>if (t &lt;= 0) Console.Beep();</text><text x='370' y='356' fill='rgba(0,74,173,0.09)' transform='rotate(-8 370 356)'>&lt;time&gt;25:00&lt;/time&gt;</text><text x='40' y='412' fill='rgba(40,44,52,0.075)' transform='rotate(5 40 412)'>&lt;input type=checkbox checked&gt;</text></g></svg>")}button{font:inherit;color:inherit;background:none;border:none;cursor:pointer}input,textarea{font:inherit;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;outline:none}input:focus,textarea:focus{border-color:var(--accent)}.app{display:flex;flex-direction:column;height:100vh;height:100dvh}.task-timer{display:contents}.hamburger,.drawer-actions{display:none}.gate{display:flex;align-items:center;justify-content:center;height:100vh;height:100dvh;position:relative;padding:16px}.gate .theme-toggle{position:absolute;top:16px;right:16px}.gate-glyph{display:flex;animation:pulse 1.2s ease-in-out infinite}.gate-card{display:flex;flex-direction:column;align-items:center;gap:14px;padding:40px 48px;background:var(--bg-raised);border:1px solid var(--border);border-radius:12px}.gate-brand{font-size:30px;margin:0}.gate-disclosure{margin:0;max-width:340px;color:var(--text-dim);font-size:11px;line-height:1.6;text-align:center}.gate-tagline{margin:0;color:var(--text-dim)}.gate-card{max-width:440px}.gate-desc{margin:4px 0 0;color:var(--text-dim);font-size:13px;line-height:1.7;text-align:center}.gate-features{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px;font-size:13px;align-self:flex-start}.gate-features li{display:flex;gap:10px}.gate-features span{flex-shrink:0}.btn-google{display:inline-flex;align-items:center;gap:12px;height:44px;padding:0 20px;background:#fff;color:#1f1f1f;font-family:Roboto,-apple-system,Segoe UI,sans-serif;font-size:15px;font-weight:500;border:1px solid #747775;border-radius:22px}.btn-google:hover{background:#f2f2f2;box-shadow:0 1px 3px #0000004d}.gate-error{margin:0;max-width:320px;color:var(--red);font-size:12px;text-align:center}.legal{max-width:720px;margin:0 auto;padding:24px 24px 48px}.legal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:32px}.legal-brand{display:flex;align-items:center;gap:9px;font-size:17px;text-decoration:none;color:var(--text)}.legal h1{font-size:26px;margin:0 0 4px}.legal h2{font-size:16px;margin:28px 0 8px}.legal p{margin:0 0 12px;color:var(--text-dim);line-height:1.7}.legal a{color:var(--accent)}.legal-links{margin:4px 0 0;font-size:12px;color:var(--text-dim)}.legal-links a{color:var(--text-dim);text-decoration:none}.legal-links a:hover{color:var(--text);text-decoration:underline}.sidebar-footer{margin-top:auto;padding-top:12px;text-align:center}.backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:30}@media(min-width:1200px){.cal-backdrop{display:none}}.cal-panel{width:300px;flex-shrink:0;border-left:1px solid var(--border);padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:12px;background:var(--bg-raised)}@media(max-width:1199px){.cal-panel{position:fixed;top:0;right:0;bottom:0;z-index:40;width:min(320px,90vw);box-shadow:-8px 0 32px #00000073}}.cal-head{display:flex;align-items:center;justify-content:space-between}.cal-target{width:100%;padding:6px 9px;font-size:13px;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px}.cal-title{font-weight:600}.cal-connect{display:flex;flex-direction:column;gap:10px}.cal-warn{display:flex;align-items:center;gap:8px;padding:7px 9px;border-radius:6px;font-size:12px;color:var(--amber);border:1px solid var(--amber);background:color-mix(in srgb,var(--amber) 10%,transparent)}.cal-warn span{flex:1}.cal-warn .btn{padding:3px 9px;font-size:12px}.cal-warn-btn{color:var(--amber);border-color:var(--amber)}.cal-missing,.calview-warn{align-items:flex-start;line-height:1.5}.calview-warn{margin:0 0 10px}.cal-events{display:flex;flex-direction:column;gap:5px}.cal-day{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim);margin:8px 0 4px}.cal-day.is-today-label{color:var(--accent)}.cal-event{display:flex;gap:8px;align-items:baseline;font-size:13px;padding:6px 9px;background:var(--bg);border:1px solid var(--border);border-radius:6px}.cal-event-actions{display:flex;gap:2px;margin-left:auto;flex-shrink:0;opacity:0;transition:opacity .12s ease}.cal-event:hover .cal-event-actions,.side-ev:hover .cal-event-actions,.cal-event-actions:focus-within{opacity:1}.cal-event-actions .icon-btn:disabled{opacity:.3;cursor:default}.cal-del:hover{color:var(--red)}.cal-event.is-editing,.side-ev.is-editing{border-color:var(--accent)}.cal-editing-label{margin:10px 0 -4px;overflow-wrap:anywhere}.side-edit{margin-top:10px;padding-top:10px;border-top:1px solid var(--border)}.side-ev.ev-mine{border-left:3px solid var(--accent)}.side-ev.ev-shared{border-left:3px solid var(--shared)}@media(hover:none){.cal-event-actions{opacity:1}}.cal-time{font-family:var(--mono);font-size:12px;color:var(--accent);white-space:nowrap}.cal-summary{overflow-wrap:anywhere}.cal-form{display:flex;flex-direction:column;gap:6px;margin-top:auto;padding-top:10px;border-top:1px solid var(--border)}.cal-form input{padding:6px 9px;font-size:13px;width:100%}.cal-form-row{display:flex;gap:6px;align-items:center}.cal-mins{max-width:70px}.cal-mins-label{flex-shrink:0}.cal-add{margin-left:auto}.calview{flex:1;display:flex;min-height:0}.calview-main{flex:1;display:flex;flex-direction:column;min-width:0;padding:14px 16px}.calview-head{display:flex;align-items:center;gap:8px;margin-bottom:12px}.calview-title{margin:0 auto 0 6px;font-size:18px}.calview-legend{display:flex;gap:6px;margin-right:6px}.legend-chip{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:4px 12px;font-size:11px;border-radius:999px;border:1px solid currentColor;cursor:pointer;transition:background .15s ease,color .15s ease,border-color .15s ease,opacity .15s ease}.legend-dot{width:8px;height:8px;border-radius:50%;border:1.5px solid currentColor;background:currentColor;flex-shrink:0}.legend-chip.off{color:var(--text-dim);border-color:var(--border);background:transparent;font-weight:400}.legend-chip.off .legend-dot{background:transparent}.legend-chip:hover{border-color:currentColor;opacity:.85}.legend-chip:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(pointer:coarse){.legend-chip{min-height:40px;padding:6px 14px;font-size:12px}}.calview-connect{margin:auto;align-items:center}.calview-week{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-dim);margin-bottom:4px;padding:0 2px}.calview-grid{flex:1;display:grid;grid-template-columns:repeat(7,1fr);grid-auto-rows:1fr;gap:4px;min-height:0}.calview-cell{display:flex;flex-direction:column;gap:2px;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:4px 6px;overflow:hidden;cursor:pointer;min-height:0}.calview-cell:hover{border-color:var(--accent)}.calview-cell.other-month{opacity:.45}.calview-cell.is-today{background:var(--accent-dim);border-color:var(--accent)}.calview-cell.is-focus{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.cell-date{font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:5px}.cell-add{margin-left:auto;width:20px;height:20px;display:grid;place-items:center;border-radius:6px;font-size:15px;line-height:1;color:var(--accent);background:var(--accent-dim);opacity:0;transition:opacity .12s ease,background .12s ease}.calview-cell:hover .cell-add,.cell-add:focus-visible{opacity:1}.cell-add:hover{background:var(--accent);color:var(--bg)}@media(pointer:coarse){.cell-add{opacity:1;width:26px;height:26px}}.is-today .cell-date{color:var(--accent);font-weight:700}.cal-day.is-today-label{color:var(--accent);background:var(--accent-dim);border-radius:4px;padding:2px 7px;align-self:flex-start}.cell-dot{width:5px;height:5px;border-radius:50%;background:var(--accent);display:none}.cell-ev{font-size:11px;line-height:1.5;padding:0 5px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cell-ev.ev-mine{background:var(--accent-dim);color:var(--accent);border-left:3px solid transparent}.cell-ev.ev-shared{background:var(--shared-dim);color:var(--shared);border-left:3px solid var(--shared);font-weight:600}.legend-chip.on.ev-mine{background:var(--accent-dim);color:var(--accent)}.legend-chip.on.ev-shared{background:var(--shared-dim);color:var(--shared);font-weight:600}.cell-more{font-size:10px;color:var(--text-dim)}.calview-side{width:300px;flex-shrink:0;border-left:1px solid var(--border);background:var(--bg-raised);padding:16px;overflow-y:auto}.calview-side-title{display:flex;align-items:baseline;gap:8px;margin:0 0 4px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.side-todos{margin-top:20px;padding-top:16px;border-top:1px solid var(--border)}.side-todo-count{margin-left:auto;flex-shrink:0;font-weight:400;text-transform:none;letter-spacing:normal;color:var(--shared)}.side-todo-list{display:flex;flex-direction:column;gap:2px;margin:8px 0}.side-todo{display:flex;align-items:flex-start;gap:9px;padding:7px 8px;border-radius:8px;font-size:13px;line-height:1.4;cursor:pointer;border:1px solid transparent}.side-todo:hover{background:var(--bg-hover);border-color:var(--border)}.side-todo input{width:17px;height:17px;margin:1px 0 0;flex-shrink:0;accent-color:var(--accent);cursor:pointer}.side-todo.is-done span{text-decoration:line-through;color:var(--text-dim)}.side-todo-add input{width:100%;padding:8px 10px;border-radius:8px;border:1px dashed var(--border);background:transparent;font-size:13px}.side-todo-add input:focus{border-style:solid;border-color:var(--accent);outline:none}@media(pointer:coarse){.side-todo{padding:11px 8px}.side-todo input{width:20px;height:20px}}.side-date{display:flex;align-items:center;gap:10px;font-size:16px;font-weight:600;margin-bottom:12px}.side-add{margin-left:auto;flex-shrink:0;font-size:12px;font-weight:600;padding:6px 12px;color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.side-add:hover{filter:brightness(1.12);background:var(--accent-dim)}.side-ev{display:flex;align-items:baseline;gap:8px;padding:8px 10px;background:var(--bg);border:1px solid var(--border);border-radius:6px;margin-bottom:6px;font-size:13px}.side-ev-tag{margin-left:auto;font-size:10px;color:var(--shared);border:1px solid var(--shared);border-radius:999px;padding:0 7px;flex-shrink:0}@media(max-width:900px){.calview{flex-direction:column}.calview-side{width:100%;max-height:38%;border-left:none;border-top:1px solid var(--border)}.cell-events{display:none}.cell-dot{display:block}}.dialog-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;z-index:100;display:flex;align-items:center;justify-content:center;padding:16px}.dialog{background:var(--bg-raised);border:1px solid var(--border);border-radius:12px;padding:20px 22px;width:100%;max-width:380px;box-shadow:0 16px 48px #00000073;animation:dialog-in .14s ease-out}@keyframes dialog-in{0%{transform:scale(.94);opacity:0}}.dialog-title{margin:0 0 6px;font-size:16px}.dialog-message{margin:0 0 18px;color:var(--text-dim);font-size:13px;line-height:1.6;overflow-wrap:anywhere}.dialog-actions{display:flex;justify-content:flex-end;gap:8px}.dialog-actions .btn{padding:7px 16px}.btn.danger{background:var(--red);border-color:var(--red);color:#fff;font-weight:600}.btn.danger:hover{filter:brightness(1.1)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--bg-raised)}.brand{display:flex;align-items:center;gap:9px;font-size:17px}.brand-word{font-weight:500;letter-spacing:-.02em}.brand-word b{font-weight:800;color:var(--accent)}.sync-badge{font-size:11px;font-family:var(--mono);color:var(--text-dim);border:1px solid var(--border);border-radius:999px;padding:1px 8px;margin-left:6px}.sync-synced{color:var(--green);border-color:var(--green)}.sync-saving{color:var(--amber);border-color:var(--amber)}.sync-error{color:var(--red);border-color:var(--red)}.topbar-actions{display:flex;align-items:center;gap:8px}.user-chip{display:flex;align-items:center;gap:8px;color:var(--text-dim)}.user-chip img{width:24px;height:24px;border-radius:50%}.btn{padding:5px 12px;border-radius:6px;border:1px solid var(--border);background:var(--bg-raised)}.btn:hover{background:var(--bg-hover)}.btn.primary{background:var(--brand);border-color:var(--brand);color:#fff;font-weight:600}.btn.primary:hover{filter:brightness(1.1)}.btn.ghost{background:transparent}.btn.tiny{padding:2px 8px;font-size:12px}.icon-btn{padding:2px 5px;border-radius:4px;color:var(--text-dim);font-size:12px;line-height:1}.icon-btn:hover{background:var(--bg-hover);color:var(--text)}.tool-group{display:flex;align-items:center;gap:6px;padding:3px;border-radius:15px;background:color-mix(in srgb,var(--border) 26%,transparent)}.tool-btn{--tool-size: 42px;width:var(--tool-size);height:var(--tool-size);display:inline-grid;place-items:center;flex-shrink:0;border-radius:12px;border:1px solid transparent;background:var(--bg-raised);color:var(--text-dim);transition:background .16s ease,color .16s ease,border-color .16s ease,transform .1s ease,box-shadow .16s ease}.tool-btn:hover{background:var(--bg-hover);border-color:var(--border);color:var(--text);transform:translateY(-1px);box-shadow:0 4px 12px #0000002e}.tool-btn:active{transform:translateY(0);box-shadow:none}.tool-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.tool-btn.active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.tool-btn.active:hover{background:var(--accent-dim);color:var(--accent)}.theme-swap{position:relative;display:block}.theme-swap svg{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity .22s ease,transform .34s cubic-bezier(.4,0,.2,1)}.theme-swap.is-dark .swap-moon,.theme-swap.is-light .swap-sun{opacity:0;transform:rotate(-90deg) scale(.4)}.theme-swap.is-dark .swap-sun,.theme-swap.is-light .swap-moon{opacity:1;transform:rotate(0) scale(1)}.theme-toggle:hover{color:var(--amber);border-color:var(--amber)}@media(pointer:coarse){.tool-btn{--tool-size: 48px}}@media(prefers-reduced-motion:reduce){.tool-btn,.theme-swap svg{transition:none}}.hint{color:var(--text-dim);font-size:12px}.layout{display:flex;flex:1;min-height:0}.sidebar{width:240px;flex-shrink:0;border-right:1px solid var(--border);padding:12px;overflow-y:auto;display:flex;flex-direction:column;gap:10px;position:relative}.nav-resizer{position:absolute;top:0;bottom:0;right:0;width:6px;cursor:col-resize;-webkit-user-select:none;user-select:none;touch-action:none}.nav-resizer:hover{background:var(--accent-dim)}.nav-tabs{display:flex;gap:4px;margin-bottom:10px}.nav-tab{flex:1;padding:6px 8px;border-radius:6px;border:1px solid var(--border);color:var(--text-dim);font-size:12px;font-weight:600}.nav-tab:hover{background:var(--bg-hover);color:var(--text)}.nav-tab.active{background:var(--accent-dim);border-color:var(--accent);color:var(--text)}.shared-badge{font-size:11px;font-weight:600;color:var(--accent);border:1px solid var(--accent);border-radius:999px;padding:2px 10px;margin-left:10px;vertical-align:middle}.nav-section{display:flex;flex-direction:column;gap:8px}.nav-section+.nav-section{margin-top:14px}.nav-section-title{margin:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.shared-title{display:flex;align-items:center;gap:6px}.shared-title>button:first-of-type{margin-left:auto}.members-btn,.invite-btn{font-size:11px;text-transform:none;letter-spacing:normal;border:1px solid var(--border);border-radius:999px;padding:2px 9px}.members-btn:hover,.invite-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.shared-hint{padding:4px 2px}.members-dialog{max-width:460px;max-height:min(80vh,640px);overflow-y:auto}.member-space+.member-space{margin-top:18px;padding-top:14px;border-top:1px solid var(--border)}.member-space-title{display:flex;align-items:baseline;gap:8px;margin:4px 0 10px;font-size:12px;font-weight:600;color:var(--text-dim);overflow-wrap:anywhere}.member-count{margin-left:auto;flex-shrink:0;font-weight:400}.member-list{display:flex;flex-direction:column;gap:4px}.member-row{display:flex;align-items:center;gap:9px;padding:6px 8px;border-radius:8px;border:1px solid transparent;font-size:13px}.member-row:hover{background:var(--bg-hover);border-color:var(--border)}.member-avatar{display:grid;place-items:center;flex-shrink:0;width:26px;height:26px;border-radius:50%;background:var(--accent-dim);color:var(--accent);font-size:12px;font-weight:700}.member-email{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-tags{display:flex;gap:4px;flex-shrink:0}.member-tag{padding:1px 7px;border-radius:999px;border:1px solid var(--border);font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-dim)}.member-tag.tag-you{border-color:var(--accent);color:var(--accent)}.member-tag.tag-owner,.member-tag.tag-invited-you{border-color:var(--amber);color:var(--amber)}.member-remove{flex-shrink:0;color:var(--red);border-color:transparent;background:transparent;opacity:0}.member-row:hover .member-remove,.member-remove:focus-visible{opacity:1}.member-remove:hover{background:var(--red-dim);border-color:var(--red)}.member-empty,.member-note{padding:4px 2px;font-size:12px;line-height:1.5}.member-note{margin:10px 0 0}@media(hover:none){.member-remove{opacity:1}}.dialog-input{width:100%;padding:8px 10px;margin-bottom:16px}.new-project input{width:100%;padding:6px 10px;background:transparent;border-style:dashed}.new-project input:focus{background:var(--bg-raised);border-style:solid}.project-list{display:flex;flex-direction:column;gap:2px}.project-row{display:flex;align-items:center;gap:6px;padding:7px 10px;border-radius:6px;cursor:pointer;color:var(--text-dim)}.project-row:hover{background:var(--bg-hover);color:var(--text)}.project-row.active{background:var(--accent-dim);color:var(--text)}.project-row.is-dragging{opacity:.4}.project-row.is-over{box-shadow:inset 0 2px 0 var(--accent)}.nav-drag{font-size:12px;margin-left:-4px}.project-row:hover .nav-drag,.project-row.active .nav-drag{opacity:.55}.project-row .nav-drag:hover{opacity:1}.project-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.project-count{font-family:var(--mono);font-size:11px}.project-delete,.project-edit,.project-move{visibility:hidden}.project-row:hover .project-delete,.project-row:hover .project-edit,.project-row:hover .project-move{visibility:visible}.project-row.is-alarm{animation:alarm-blink .9s ease-in-out infinite;color:var(--red)}.rename-input{width:100%;padding:3px 6px}.main{flex:1;overflow-y:auto;padding:24px 32px}.task-panel{max-width:760px;margin:0 auto}.project-title{font-size:20px;margin:0 0 16px}.new-task textarea{width:100%;padding:10px 14px;font-size:15px;line-height:1.5;resize:none;overflow:hidden;min-height:42px;display:block}.project-timer{display:flex;align-items:center;gap:10px;margin:0 0 14px;padding:8px 12px;background:var(--bg-raised);border:1px solid var(--border);border-radius:8px}.project-timer.is-alarm{border-color:var(--red);animation:alarm-blink .9s ease-in-out infinite}.drag-handle{color:var(--text-dim);cursor:grab;font-size:14px;line-height:1;flex-shrink:0;opacity:0}.task-row>.drag-handle{margin-top:calc(.25em + 2px)}.task:hover .drag-handle{opacity:1}.task.is-dragging{opacity:.4}.task.is-over{border-color:var(--accent);box-shadow:inset 0 2px 0 var(--accent)}.task-list{display:flex;flex-direction:column;gap:6px;margin-top:14px}.task{background:var(--bg-raised);border:1px solid var(--border);border-radius:8px;padding:8px 12px}.task-row{display:flex;align-items:flex-start;gap:10px}.task-bar{display:flex;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--border);min-height:44px}.task-actions{display:flex;align-items:center;gap:4px;margin-left:auto;flex-shrink:0}.task-bar-sep{width:1px;align-self:stretch;margin:4px;background:var(--border)}.task-check{--check-size: 16px;width:var(--check-size);height:var(--check-size);margin-top:calc((1.5em - var(--check-size)) / 2 + 2px);accent-color:var(--green);cursor:pointer;flex-shrink:0}.task-title{flex:1;min-width:0;cursor:text;overflow-wrap:anywhere;white-space:pre-wrap;line-height:1.5;padding:2px 6px;margin-left:-6px;border-radius:6px;transition:background .12s ease,box-shadow .12s ease}.task-title:hover{background:color-mix(in srgb,var(--border) 30%,transparent);box-shadow:inset 0 0 0 1px var(--border)}@media(prefers-reduced-motion:reduce){.task-title{transition:none}}.title-input{flex:1;min-width:0;padding:1px 5px;margin-left:-6px;resize:none;overflow:hidden;line-height:1.5;overflow-wrap:anywhere}.task.is-done{opacity:.55}.task.is-done .task-title{text-decoration:line-through}.task-delete,.task-edit{visibility:hidden}.task:hover .task-delete,.task:hover .task-edit{visibility:visible}.task.is-alarm{border-color:var(--red);animation:alarm-blink .9s ease-in-out infinite}@keyframes alarm-blink{50%{background-color:var(--red-dim);opacity:.75}}.task-btn{--task-size: 36px;width:var(--task-size);height:var(--task-size);display:inline-grid;place-items:center;position:relative;flex-shrink:0;border-radius:10px;border:1px solid transparent;color:var(--text-dim);font-size:16px;line-height:1;transition:background .15s ease,color .15s ease,border-color .15s ease,transform .1s ease}.task-btn.is-key{background:color-mix(in srgb,var(--border) 30%,transparent)}.task-btn:hover{background:var(--bg-hover);border-color:var(--border);color:var(--text)}.task-btn:active{transform:scale(.94)}.task-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.task-btn.active,.task-btn.has-notes{color:var(--accent)}.task-btn.active{background:var(--accent-dim);border-color:var(--accent)}.task-cal:hover{color:var(--accent);border-color:var(--accent);background:var(--accent-dim)}.task-delete:hover{color:var(--red);border-color:var(--red);background:var(--red-dim)}.notes-dot{position:absolute;top:5px;right:5px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.task-btn svg,.note-copy svg{display:block}@media(pointer:coarse){.task-btn{--task-size: 44px}}@media(prefers-reduced-motion:reduce){.task-btn{transition:none}}.copied-check{color:var(--green)}.notes-wrap{position:relative}.note-copy{position:absolute;top:14px;right:8px}.task-notes{width:100%;min-height:72px;margin-top:8px;padding:8px 32px 8px 10px;resize:vertical;background:var(--bg);font-family:var(--mono);font-size:13px}.done-section{margin-top:20px}.done-section summary{display:flex;align-items:center;gap:10px;color:var(--text-dim);cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none}.done-section summary::-webkit-details-marker{display:none}.done-section summary:before{content:"▸";font-size:10px;transition:transform .15s ease}.done-section[open] summary:before{transform:rotate(90deg)}.done-count{flex:1}.clear-done{color:var(--red);border-color:transparent;background:transparent;opacity:.75}.clear-done:hover{opacity:1;background:var(--red-dim);border-color:var(--red)}.empty-hint{text-align:center;padding:24px 0}.empty-state{text-align:center;margin-top:20vh}.timer-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;border:1px solid var(--border);font-family:var(--mono);font-size:13px;flex-shrink:0;background:linear-gradient(to right,var(--accent-dim) var(--pct, 0%),transparent var(--pct, 0%))}.timer-chip.is-running{border-color:var(--accent)}.timer-chip.is-low{border-color:var(--amber);background:linear-gradient(to right,rgba(210,153,34,.2) var(--pct, 0%),transparent var(--pct, 0%))}.timer-chip.is-expired{border-color:var(--red);background:var(--red-dim);color:var(--red);animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{50%{opacity:.55}}.timer-time{min-width:42px;text-align:center}.timer-picker{display:inline-flex;align-items:center;gap:4px;flex-shrink:0}.custom-mins input{width:52px;padding:2px 6px;font-size:12px;font-family:var(--mono)}.custom-mins input::-webkit-outer-spin-button,.custom-mins input::-webkit-inner-spin-button{-webkit-appearance:none}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:var(--border);border-radius:5px}::-webkit-scrollbar-track{background:transparent}@media(hover:none){.task-delete,.task-edit,.project-delete,.project-edit,.project-move{visibility:visible}.icon-btn{padding:6px 9px;font-size:14px}}@media(max-width:1024px){.main{padding:20px}}@media(max-width:767px){.hamburger{display:inline-block;font-size:18px;padding:6px 10px}.nav-resizer{display:none}.sidebar{position:fixed;top:0;bottom:0;left:0;width:min(300px,84vw)!important;background:var(--bg-raised);z-index:40;transform:translate(-105%);transition:transform .22s ease;box-shadow:none}.sidebar.open{transform:translate(0);box-shadow:8px 0 32px #00000073}.drawer-actions{display:flex;gap:8px;margin-top:auto}.drawer-actions .btn{flex:1;padding:9px 12px}.sidebar-footer{margin-top:0}.topbar{padding:8px 10px}.topbar-actions>.btn.ghost,.topbar .hint{display:none}.user-chip span,.sync-badge{display:none}.main{padding:14px 12px}.project-title{font-size:18px;margin-bottom:12px}.new-task textarea{padding:12px 14px;font-size:16px}.drag-handle{display:none}.new-project input,.rename-input,.title-input,.task-notes{font-size:16px}.task{padding:10px 12px}.task-check{--check-size: 20px}.timer-chip{padding:5px 10px;font-size:14px}.task-bar{flex-wrap:wrap;row-gap:6px}.task-row{column-gap:4px}.task-btn{--task-size: 40px}.task-btn.is-key{--task-size: 44px}.timer-chip .icon-btn{font-size:14px;padding:4px 7px}.timer-picker{flex-wrap:wrap}.timer-picker .btn.tiny{padding:6px 12px;font-size:14px}.gate-card{padding:28px 22px;width:100%}.gate .theme-toggle{top:12px;right:12px}.legal{padding:16px 16px 40px}}
