:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;--font-body:"FiraCode Nerd Font", "FiraCode Nerd Font Mono", ui-monospace, "SF Mono", Menlo, Consolas, monospace;--font-timer:var(--font-body);--root-size:112.5%;--text-xs:.75rem;--text-sm:.875rem;--text-md:.9375rem;--text-lg:1.25rem;--text-xl:1.75rem;--text-timer:clamp(2.75rem, min(8.5vh, 15vw), 6.5rem);--text-timer-solo:clamp(3.5rem, min(14vh, 16vw), 11rem);--weight-light:400;--weight-regular:400;--weight-medium:700;--weight-bold:700;--leading:1.5;--weight-timer:700;--tracking-label:.12em;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.5rem;--space-6:2rem;--space-7:3rem;--space-8:4.5rem;--radius-sm:8px;--radius-md:12px;--radius-lg:18px;--content-width:64rem;--main-width:none;--page-width:46rem;--sidebar-width:17rem;--gutter:clamp(1rem, 3vw, 3.5rem);--tap-size:2.75rem;--ring-size:clamp(16rem, 44vh, 30rem);--ring-size-solo:clamp(18rem, 72vh, 52rem);--ring-width:3;--motion-fast:.16s;--motion-slow:1.2s;--motion-fade:.9s;--breath:7s;--wash-focus:#eef2f7;--wash-short-break:#ecf3ee;--wash-long-break:#f1eef7;--phase-focus:#3d5a80;--phase-short-break:#3f7259;--phase-long-break:#64508f;--color-surface:#fff;--color-text:#1c2733;--color-text-muted:#4a5868;--color-border:#d5dde8;--color-ring-track:#cfd8e4;--color-on-accent:#fff;--color-danger:#9f1f26;--color-danger-solid:#a4262c;--color-on-danger:#fff;--shadow-ring:0 0 0 1px #1717171a;--shadow-ring-strong:0 0 0 1px #1717174d;--shadow-card:0 0 0 1px #17171714, 0 2px 2px #1717170a, 0 8px 16px -8px #1717171a;--shadow-raised:0 0 0 1px #1717171f, 0 4px 6px #1717170d, 0 12px 24px -8px #17171729;--color-focus:#0072f5;--color-bg:var(--wash-focus);--color-accent:var(--phase-focus)}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--wash-focus:#121923;--wash-short-break:#111d17;--wash-long-break:#191525;--phase-focus:#8fb1d8;--phase-short-break:#8cc3a3;--phase-long-break:#b4a6e0;--color-surface:#1a2230;--color-text:#e8edf3;--color-text-muted:#a8b4c3;--color-border:#2a3546;--color-ring-track:#263243;--color-on-accent:#0d141d;--color-danger:#ffb4ab;--color-danger-solid:#b83b34;--color-on-danger:#fff;--shadow-ring:0 0 0 1px #ffffff1f;--shadow-ring-strong:0 0 0 1px #ffffff57;--shadow-card:0 0 0 1px #ffffff1a, 0 2px 2px #0000004d, 0 8px 16px -8px #00000080;--shadow-raised:0 0 0 1px #ffffff29, 0 4px 6px #00000059, 0 12px 24px -8px #0009;--color-focus:#479dff}}@media (width<=24rem){:root{--root-size:100%}}@media (width>=52rem){:root{--root-size:125%}}@font-face{font-family:FiraCode Nerd Font;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/FiraCodeNerdFont-Regular.subset-8A7mk5qa.woff2)format("woff2")}@font-face{font-family:FiraCode Nerd Font;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/FiraCodeNerdFont-Bold.subset-Cd3-TUrn.woff2)format("woff2")}*,:before,:after{box-sizing:border-box}html{font-size:var(--root-size)}html,body,#root{min-height:100%}body{font-family:var(--font-body);font-size:var(--text-md);line-height:var(--leading);color:var(--color-text);background:var(--color-bg);transition:background-color var(--motion-slow) ease;-webkit-font-smoothing:antialiased;margin:0;overflow-x:hidden}html[data-phase=short_break]{--color-bg:var(--wash-short-break);--color-accent:var(--phase-short-break)}html[data-phase=long_break]{--color-bg:var(--wash-long-break);--color-accent:var(--phase-long-break)}h1,h2,h3{margin:0 0 var(--space-3);text-wrap:balance}h2{font-size:var(--text-lg);font-weight:var(--weight-medium)}p{text-wrap:pretty;margin:0}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button,input,select,textarea{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.shell{flex-direction:column;min-height:100vh;display:flex}.app-header{width:100%;max-width:var(--content-width);padding:max(var(--space-5), env(safe-area-inset-top)) max(var(--gutter), env(safe-area-inset-right)) var(--space-3) max(var(--gutter), env(safe-area-inset-left));justify-content:space-between;align-items:center;margin:0 auto;display:flex}.wordmark{font-size:var(--text-lg);font-weight:var(--weight-regular);letter-spacing:var(--tracking-label);color:var(--color-text);text-decoration:none}.header-nav{gap:var(--space-1);display:flex}.nav-link{min-height:var(--tap-size);padding:0 var(--space-4);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-sm);transition:background-color var(--motion-fast), color var(--motion-fast), box-shadow var(--motion-fast);align-items:center;text-decoration:none;display:inline-flex}.nav-link:hover{color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-ring)}.nav-link.active{color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-ring-strong)}.content{width:100%;max-width:var(--content-width);padding:var(--space-4) max(var(--gutter), env(safe-area-inset-right)) max(var(--space-8), env(safe-area-inset-bottom)) max(var(--gutter), env(safe-area-inset-left));flex-direction:column;flex:1;margin:0 auto;display:flex}.center,.center-text{text-align:center}.center{place-items:center;min-height:100vh;display:grid}.muted{color:var(--color-text-muted)}.error-text{color:var(--color-danger);font-size:var(--text-sm)}.field-message{min-height:1.4em;color:var(--color-danger);font-size:var(--text-sm)}.btn{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--tap-size);min-width:var(--tap-size);padding:0 var(--space-4);white-space:nowrap;border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-ring);color:var(--color-text);cursor:pointer;transition:background-color var(--motion-fast), box-shadow var(--motion-fast), transform var(--motion-fast);border:none;display:inline-flex}.btn:hover:not(:disabled){box-shadow:var(--shadow-ring-strong)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.55;cursor:not-allowed}.btn[aria-busy=true]{cursor:progress}.btn-primary{background:var(--color-accent);box-shadow:none;color:var(--color-on-accent);font-weight:var(--weight-medium)}.btn-primary:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 86%, var(--color-text));box-shadow:none}.btn-large{min-width:10rem;min-height:3.5rem;font-size:var(--text-lg)}.btn-quiet{box-shadow:none;color:var(--color-text-muted);background:0 0}.btn-quiet:hover:not(:disabled){color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-ring)}.btn-pill{min-height:2.25rem;font-size:var(--text-sm);background:0 0}.btn-pill[aria-pressed=true]{background:var(--color-accent);box-shadow:none;color:var(--color-on-accent)}.btn-icon{width:var(--tap-size);box-shadow:none;color:var(--color-text-muted);font-size:var(--text-lg);background:0 0;padding:0;line-height:1}.btn-icon:hover:not(:disabled){color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-ring)}.btn-more{box-shadow:var(--shadow-ring);color:var(--color-text)}.btn-danger{background:var(--color-danger-solid);box-shadow:none;color:var(--color-on-danger)}.btn-danger:hover:not(:disabled){box-shadow:var(--shadow-ring-strong)}.spinner{flex:none;width:1em;height:1em;animation:.8s linear infinite spin}.spinner circle{fill:none;stroke:currentColor;stroke-width:3px;stroke-dasharray:42 100;stroke-linecap:round}input[type=text],input[type=password],input[type=number],input[type=date],select,textarea{min-height:var(--tap-size);padding:0 var(--space-4);border-radius:var(--radius-sm);background:var(--color-surface);box-shadow:var(--shadow-ring);color:var(--color-text);width:100%;font-size:max(16px, var(--text-md));transition:box-shadow var(--motion-fast);border:none}input[aria-invalid=true]{box-shadow:0 0 0 1px var(--color-danger)}input::placeholder{color:var(--color-text-muted);opacity:1}input[type=checkbox]{appearance:none;width:1.5rem;height:1.5rem;box-shadow:inset 0 0 0 2px var(--color-text-muted);cursor:pointer;transition:box-shadow var(--motion-fast), background-color var(--motion-fast);background:0 0;border-radius:50%;flex:none;place-content:center;margin:0;display:inline-grid}input[type=checkbox]:hover{box-shadow:inset 0 0 0 2px var(--color-accent)}input[type=checkbox]:checked{background:var(--color-accent);box-shadow:inset 0 0 0 2px var(--color-accent)}input[type=checkbox]:checked:after{content:"";background:var(--color-on-accent);clip-path:polygon(14% 44%,0 65%,50% 100%,100% 16%,80% 0%,43% 62%);width:.75rem;height:.75rem}.inline-form{gap:var(--space-2);flex-wrap:wrap;align-items:center;display:flex}.inline-form input[type=text]{flex:10rem;width:auto}.inline-form input[type=number]{width:6rem}.inline-form input[type=date]{width:auto}.inline-form .field-message{flex-basis:100%}.field{gap:var(--space-1);max-width:24rem;display:grid}.field label{font-size:var(--text-sm);color:var(--color-text-muted)}.field-check{align-items:center;gap:var(--space-3);display:flex}.field-check label{color:var(--color-text);font-size:var(--text-md)}.card{background:var(--color-surface);border-radius:var(--radius-md);padding:var(--space-5);box-shadow:var(--shadow-card)}.login{min-height:100vh;padding:var(--space-4);place-items:center;display:grid}.login-form{gap:var(--space-3);width:min(100%,22rem);display:grid}.login-form h1{font-weight:var(--weight-regular);letter-spacing:var(--tracking-label);text-align:center;margin-bottom:var(--space-2)}.home{grid-template-columns:var(--sidebar-width) minmax(0, 1fr);gap:var(--space-7);flex:1;align-items:start;display:grid}.main{gap:var(--space-7);width:100%;max-width:var(--main-width);justify-self:center;min-width:0;display:grid}@media (width<=52rem){.home{gap:var(--space-5);grid-template-columns:minmax(0,1fr)}}.timer{justify-items:center;gap:var(--space-5);padding-top:var(--space-4);display:grid}.timer-ring{width:min(80vw, var(--ring-size));aspect-ratio:1;place-items:center;display:grid;position:relative}.ring-svg{width:100%;height:100%;position:absolute;inset:0;transform:rotate(-90deg)}.ring-track,.ring-progress{fill:none;stroke-width:var(--ring-width)}.ring-track{stroke:var(--color-ring-track)}.ring-progress{stroke:var(--color-accent);stroke-linecap:round;transition:stroke var(--motion-slow) ease}.ring-glow{background:radial-gradient(circle, color-mix(in srgb, var(--color-accent) 22%, transparent) 0%, transparent 68%);opacity:.5;border-radius:50%;position:absolute;inset:8%}.timer-ring[data-running=true] .ring-glow{animation:breathe var(--breath) ease-in-out infinite}.ring-content{justify-items:center;gap:var(--space-2);display:grid;position:relative}.timer-phase{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--color-text-muted)}.timer-clock{font-family:var(--font-timer);font-size:var(--text-timer);font-weight:var(--weight-timer);font-variant-numeric:tabular-nums;line-height:1}.timer-controls{gap:var(--space-2);flex-wrap:wrap;justify-content:center;align-items:center;display:flex}.timer-focus{color:var(--color-text-muted);min-height:var(--tap-size);text-align:center}.timer-focus .btn-icon{vertical-align:middle;margin-left:var(--space-1)}.timer-focus strong{color:var(--color-text);font-weight:var(--weight-medium)}.alert-banner{justify-content:space-between;align-items:center;gap:var(--space-3);background:var(--color-surface);border-radius:var(--radius-md);width:100%;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);box-shadow:var(--shadow-card), inset 3px 0 0 var(--color-accent);display:flex}@media (width<=30rem){.btn-large{min-width:7.5rem;padding:0 var(--space-4)}.timer-controls{gap:var(--space-1);flex-wrap:nowrap}}.workspace{gap:var(--space-4);min-width:0;display:grid}.project-nav{gap:var(--space-1);top:var(--space-5);max-height:calc(100vh - 2 * var(--space-5));flex-direction:column;margin:-2px;padding:2px;display:flex;position:sticky;overflow-y:auto}.side-label{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--color-text-muted);margin:0 var(--space-3) var(--space-2) calc(1.5rem + var(--space-1) + var(--space-3))}.project-nav>.project-item,.project-nav>.project-form{margin-left:calc(1.5rem + var(--space-1));width:auto}.project-row{align-items:center;gap:var(--space-1);border-radius:var(--radius-sm);transition:transform var(--motion-fast);display:flex}.project-row .project-item{flex:1;min-width:0}.drag-handle{border-radius:var(--radius-sm);width:1.5rem;height:2.5rem;color:var(--color-text-muted);cursor:grab;touch-action:none;opacity:0;transition:opacity var(--motion-fast);background:0 0;border:none;flex:none;place-items:center;padding:0;display:grid}.drag-handle svg{fill:currentColor;width:.7rem;height:1.1rem}.project-row:hover .drag-handle,.project-row:focus-within .drag-handle{opacity:1}.drag-handle:hover{color:var(--color-text)}@media (hover:none){.drag-handle{opacity:.7}}.project-row[data-dragging=true]{background:var(--color-surface);box-shadow:var(--shadow-raised);z-index:1;position:relative;transform:scale(1.02)}.project-row[data-dragging=true] .drag-handle{cursor:grabbing;opacity:1}html[data-dragging]{-webkit-user-select:none;user-select:none;cursor:grabbing}.project-item{justify-content:space-between;align-items:center;gap:var(--space-2);width:100%;min-height:2.5rem;padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--color-text-muted);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background-color var(--motion-fast), color var(--motion-fast), box-shadow var(--motion-fast);background:0 0;border:none;display:flex}.project-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.project-item:hover{color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-ring)}.project-item[aria-pressed=true]{color:var(--color-text);background:var(--color-surface);box-shadow:var(--shadow-ring), inset 3px 0 0 var(--color-accent)}.project-count{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.project-new{margin-top:var(--space-2);box-shadow:var(--shadow-ring)}.project-form{gap:var(--space-1);margin-top:var(--space-2);display:grid}@media (width<=52rem){.project-nav{align-items:center;gap:var(--space-2);flex-flow:wrap;max-height:none;position:static;overflow:visible}.side-label{display:none}.project-nav>.project-item,.project-nav>.project-form{margin-left:0}.project-row{gap:0}.drag-handle{opacity:.7;width:1.25rem;height:2.25rem}.project-item{width:auto;min-height:2.25rem;padding:0 var(--space-4);box-shadow:var(--shadow-ring)}.project-item[aria-pressed=true]{background:var(--color-accent);color:var(--color-on-accent);box-shadow:none}.project-item[aria-pressed=true] .project-count{color:var(--color-on-accent)}.project-new{margin-top:0}.project-form{flex-wrap:wrap;margin-top:0;display:flex}}.project-header{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.project-title{margin:0}.project-menu{gap:var(--space-2);flex-wrap:wrap;flex-basis:100%;display:flex}.confirm-box{background:var(--color-surface);border-radius:var(--radius-sm);padding:var(--space-4);gap:var(--space-2);box-shadow:var(--shadow-card);flex-wrap:wrap;flex-basis:100%;align-items:center;display:flex}.confirm-box p{flex-basis:100%}.quick-add-wrap{gap:var(--space-1);display:grid}.quick-add{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);background:var(--color-surface);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);transition:box-shadow var(--motion-fast);display:flex}.quick-add:focus-within{outline:2px solid var(--color-focus);outline-offset:2px}.quick-add input.quick-add-input{min-width:0;box-shadow:none;background:0 0;outline:none;flex:1;padding:0}.quick-add select.quick-add-project{border-radius:calc(var(--radius-lg) - var(--space-2));width:auto;max-width:9rem;font-size:max(16px, var(--text-sm));color:var(--color-text-muted)}.btn-add{background:var(--color-accent);box-shadow:none;color:var(--color-on-accent);border-radius:calc(var(--radius-lg) - var(--space-2))}.btn-add:hover:not(:disabled){background:color-mix(in srgb, var(--color-accent) 86%, var(--color-text));box-shadow:none;color:var(--color-on-accent)}.task-group{gap:var(--space-1);display:grid}.group-title{font-size:var(--text-xs);font-weight:var(--weight-medium);text-transform:uppercase;letter-spacing:var(--tracking-label);color:var(--color-text-muted);margin:var(--space-3) 0 var(--space-1) var(--space-2)}.task-list{margin:0;padding:0;list-style:none;display:grid}.task-row{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);transition:background-color var(--motion-fast), box-shadow var(--motion-fast);content-visibility:auto;contain-intrinsic-size:auto 4.5rem;flex-wrap:wrap;display:flex}.task-row:hover{background:var(--color-surface);box-shadow:var(--shadow-ring)}.task-row[data-active=true]{background:var(--color-surface);box-shadow:var(--shadow-card), inset 3px 0 0 var(--color-accent)}.task-main{flex:5rem;gap:2px;min-width:0;display:grid}.task-title{overflow-wrap:anywhere}.task-row-done .task-title{color:var(--color-text-muted);text-decoration:line-through}.task-progress{font-size:var(--text-xs);color:var(--color-text-muted);font-variant-numeric:tabular-nums}.task-more{gap:var(--space-1);padding-left:calc(1.5rem + var(--space-2));flex-wrap:wrap;flex-basis:100%;display:flex}.task-edit{flex:1}.completed-toggle{padding:var(--space-2) var(--space-3);min-height:var(--tap-size);color:var(--color-text-muted);font-size:var(--text-sm);cursor:pointer;border-radius:var(--radius-sm);transition:color var(--motion-fast), background-color var(--motion-fast);background:0 0;border:none}.completed-toggle:hover{color:var(--color-text);background:var(--color-surface)}.empty{color:var(--color-text-muted);text-align:center;padding:var(--space-6) var(--space-4)}.skeleton{background:var(--color-ring-track);border-radius:var(--radius-sm);animation:1.6s ease-in-out infinite pulse}.skeleton-ring{pointer-events:none}.skeleton-disc{aspect-ratio:1;opacity:.35;border-radius:50%;width:100%}.skeleton-button-large{width:10rem;height:3.5rem}.skeleton-line{width:min(100%,14rem);height:1.1rem}.skeleton-check{border-radius:50%;width:1.5rem;height:1.5rem}.skeleton-button{width:5rem;height:2.25rem}.error-banner{justify-content:space-between;align-items:center;gap:var(--space-3);background:var(--color-surface);color:var(--color-danger);border-radius:var(--radius-md);padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);margin-bottom:var(--space-4);box-shadow:var(--shadow-card), inset 3px 0 0 var(--color-danger-solid);display:flex}.reports-page,.settings-page{gap:var(--space-5);width:100%;max-width:var(--page-width);margin:0 auto;display:grid}.stats{gap:var(--space-4);margin-top:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(8rem,1fr));display:grid}.stat{gap:var(--space-1);display:grid}.stat-label{color:var(--color-text-muted);font-size:var(--text-sm)}.stat-value{font-size:var(--text-xl);font-weight:var(--weight-regular);font-variant-numeric:tabular-nums}.report-table{border-collapse:collapse;width:100%;margin-top:var(--space-3)}.report-table th,.report-table td{text-align:left;padding:var(--space-2);box-shadow:inset 0 -1px 0 var(--color-border);font-variant-numeric:tabular-nums}.report-table th{font-size:var(--text-xs);font-weight:var(--weight-medium);color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-label)}.report-table th[scope=row]{font-size:var(--text-md);font-weight:var(--weight-regular);text-transform:none;letter-spacing:0;color:var(--color-text)}.settings-form{gap:var(--space-4);display:grid}.settings-form h2{margin-top:var(--space-3)}.settings-form h2:first-child{margin-top:0}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes settle{0%{transform:translateY(-14vh)scale(.72)}to{transform:none}}@keyframes breathe{0%,to{opacity:.45;transform:scale(.94)}50%{opacity:1;transform:scale(1.06)}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:.55}50%{opacity:1}}.app-header,.sidebar,.workspace{animation:fade-in var(--motion-fade) ease both;transition:opacity var(--motion-fade) ease}html[data-focus] .app-header,html[data-focus] .sidebar,html[data-focus] .workspace{opacity:0;pointer-events:none}html[data-focus=solo] .app-header,html[data-focus=solo] .sidebar,html[data-focus=solo] .workspace{display:none}html[data-focus=solo] .home{grid-template-columns:minmax(0,1fr);align-items:center}html[data-focus=solo] .timer{animation:settle var(--motion-fade) ease both;padding-top:0}html[data-focus=solo] .timer-ring{width:min(86vw, var(--ring-size-solo))}html[data-focus=solo] .timer-clock{font-size:var(--text-timer-solo)}html[data-focus] .timer-controls{opacity:.3;transition:opacity var(--motion-fast)}html[data-focus] .timer-controls:hover,html[data-focus] .timer-controls:focus-within{opacity:1}html[data-focus] .timer-focus-label,html[data-focus] .timer-focus .btn-icon{display:none}html[data-focus] .timer-focus[data-empty=true]{visibility:hidden}html[data-focus] .timer-focus strong{font-size:var(--text-xl);font-weight:var(--weight-regular);color:var(--color-text)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}}
