:root{--bg: #0d1117;--bg-raised: #161b22;--bg-hover: #1f2630;--border: #2d333b;--text: #e6edf3;--text-dim: #8b949e;--accent: #58a6ff;--accent-dim: rgba(88, 166, 255, .15);--green: #3fb950;--red: #f85149;--red-dim: rgba(248, 81, 73, .15);--amber: #d29922;--purple: #a371f7;--purple-dim: rgba(163, 113, 247, .18);--mono: ui-monospace, "Cascadia Code", "JetBrains Mono", Consolas, monospace}[data-theme=light]{--bg: #f6f8fa;--bg-raised: #ffffff;--bg-hover: #eaeef2;--border: #d0d7de;--text: #1f2328;--text-dim: #59636e;--accent: #0969da;--accent-dim: rgba(9, 105, 218, .12);--green: #1a7f37;--red: #cf222e;--amber: #9a6700;--purple: #8250df;--purple-dim: rgba(130, 80, 223, .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,243,0.075)' transform='rotate(-8 24 60)'>while (!done) %7B focus() %7D</text><text x='290' y='44' fill='rgba(88,166,255,0.095)' transform='rotate(6 290 44)'>setTimeout(ship, 25 * 60e3)</text><text x='40' y='118' fill='rgba(88,166,255,0.09)' transform='rotate(-6 40 118)'>&lt;progress value=18 max=25&gt;</text><text x='250' y='150' fill='rgba(230,237,243,0.06)' font-size='38' transform='rotate(8 250 150)'>%7B</text><text x='60' y='188' fill='rgba(230,237,243,0.075)' transform='rotate(7 60 188)'>foreach (var t in project.Tasks)</text><text x='320' y='236' fill='rgba(230,237,243,0.075)' transform='rotate(-7 320 236)'>public async Task Ship()</text><text x='210' y='270' fill='rgba(230,237,243,0.075)' transform='rotate(-6 210 270)'>task.done = true</text><text x='150' y='310' fill='rgba(240,180,41,0.085)' transform='rotate(6 150 310)'>if (t &lt;= 0) Console.Beep();</text><text x='370' y='356' fill='rgba(88,166,255,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,243,0.075)' 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(27,31,36,0.075)' transform='rotate(-8 24 60)'>while (!done) %7B focus() %7D</text><text x='290' y='44' fill='rgba(9,105,218,0.10)' transform='rotate(6 290 44)'>setTimeout(ship, 25 * 60e3)</text><text x='40' y='118' fill='rgba(9,105,218,0.09)' transform='rotate(-6 40 118)'>&lt;progress value=18 max=25&gt;</text><text x='250' y='150' fill='rgba(27,31,36,0.06)' font-size='38' transform='rotate(8 250 150)'>%7B</text><text x='60' y='188' fill='rgba(27,31,36,0.075)' transform='rotate(7 60 188)'>foreach (var t in project.Tasks)</text><text x='320' y='236' fill='rgba(27,31,36,0.075)' transform='rotate(-7 320 236)'>public async Task Ship()</text><text x='210' y='270' fill='rgba(27,31,36,0.075)' transform='rotate(-6 210 270)'>task.done = true</text><text x='150' y='310' fill='rgba(154,103,0,0.10)' transform='rotate(6 150 310)'>if (t &lt;= 0) Console.Beep();</text><text x='370' y='356' fill='rgba(9,105,218,0.09)' transform='rotate(-8 370 356)'>&lt;time&gt;25:00&lt;/time&gt;</text><text x='40' y='412' fill='rgba(27,31,36,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}.theme-toggle{font-size:15px;padding:4px 7px}.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-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-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-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}.cal-toggle.active{background:var(--accent-dim);color:var(--text)}.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{font-size:11px;padding:1px 8px;border-radius:999px}.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-focus{border-color:var(--accent);background:var(--accent-dim)}.cell-date{font-size:12px;color:var(--text-dim);display:flex;align-items:center;gap:5px}.is-today .cell-date{color:var(--accent);font-weight:700}.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}.ev-mine{background:var(--accent-dim);color:var(--accent)}.ev-shared{background:var(--purple-dim);color:var(--purple)}.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{margin:0 0 4px;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-dim)}.side-date{font-size:16px;font-weight:600;margin-bottom:12px}.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(--purple);border:1px solid var(--purple);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;background:linear-gradient(90deg,#58a6ff,#8957e5);-webkit-background-clip:text;background-clip:text;color:transparent}.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(--accent);border-color:var(--accent);color:#0d1117;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)}.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;justify-content:space-between}.invite-btn{font-size:11px;text-transform:none;letter-spacing:normal;border:1px solid var(--border);border-radius:999px;padding:2px 9px}.invite-btn:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.shared-hint{padding:4px 2px}.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-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 input{width:100%;padding:10px 14px;font-size:15px}.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:center;gap:10px}.task-check{width:16px;height:16px;accent-color:var(--green);cursor:pointer;flex-shrink:0}.task-title{flex:1;cursor:default;overflow-wrap:anywhere}.title-input{flex:1;padding:3px 8px}.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}}.has-notes{color:var(--accent)}.task-row .icon-btn{font-size:16px;padding:5px 8px;display:inline-flex;align-items:center;justify-content:center}.task-row .icon-btn svg,.note-copy svg{display:block}.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{color:var(--text-dim);cursor:pointer;font-size:13px;-webkit-user-select:none;user-select:none}.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 input{padding:12px 14px;font-size:16px}.new-project input,.rename-input,.title-input,.task-notes{font-size:16px}.task{padding:10px 12px}.task-row{display:grid;grid-template-columns:auto 1fr auto auto auto auto;grid-template-areas:"check title edit copy notes del" "x timer timer timer timer cal";column-gap:6px;row-gap:0;align-items:center}.task-copy{grid-area:copy}.task-cal{grid-area:cal;justify-self:end;margin-top:8px}.task-check{grid-area:check;width:20px;height:20px}.task-title,.title-input{grid-area:title}.task-edit{grid-area:edit}.task-notes-btn{grid-area:notes}.task-delete{grid-area:del}.task-timer{display:block;grid-area:timer;justify-self:start;margin-top:8px}.task-timer:empty{display:none;margin:0}.timer-chip{padding:5px 10px;font-size:14px}.task-row .icon-btn{font-size:17px;padding:6px 9px}.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}}
