:root{--bg:#f8fafc;--surface:#fff;--surface-2:#f1f5f9;--surface-3:#e2e8f0;--border:#e2e8f0;--border-strong:#cbd5e1;--text:#0f172a;--text-muted:#475569;--text-subtle:#94a3b8;--primary:#6366f1;--primary-hover:#4f46e5;--primary-light:#eef2ff;--primary-text:#4338ca;--success:#10b981;--success-light:#d1fae5;--success-text:#065f46;--warning:#f59e0b;--warning-light:#fef3c7;--danger:#ef4444;--danger-hover:#dc2626;--danger-light:#fee2e2;--shadow-sm:0 1px 2px 0 #0000000d;--shadow:0 1px 3px 0 #0000001a, 0 1px 2px -1px #0000001a;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--radius:8px;--radius-lg:12px;--radius-full:9999px;--font:"Inter", system-ui, -apple-system, sans-serif;--font-mono:"JetBrains Mono", "Fira Code", "Cascadia Code", monospace;--header-h:56px;--max-w:1100px}[data-theme=dark]{--bg:#0f172a;--surface:#1e293b;--surface-2:#334155;--surface-3:#475569;--border:#334155;--border-strong:#475569;--text:#f1f5f9;--text-muted:#94a3b8;--text-subtle:#64748b;--primary:#818cf8;--primary-hover:#6366f1;--primary-light:#1e1b4b;--primary-text:#a5b4fc;--success:#34d399;--success-light:#064e3b;--success-text:#6ee7b7;--warning:#fbbf24;--warning-light:#451a03;--danger:#f87171;--danger-hover:#ef4444;--danger-light:#450a0a;--shadow-sm:0 1px 2px 0 #0000004d;--shadow:0 1px 3px 0 #0006;--shadow-md:0 4px 6px -1px #0006;--shadow-lg:0 10px 15px -3px #0006}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth}body{font-family:var(--font);background:var(--bg);color:var(--text);min-height:100vh;line-height:1.5;transition:background .2s,color .2s}button{cursor:pointer;font-family:inherit}input,textarea,select{font-family:inherit;font-size:inherit}a{color:var(--primary)}.app{flex-direction:column;min-height:100vh;display:flex}.header{z-index:100;height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);box-shadow:var(--shadow-sm);align-items:center;gap:16px;padding:0 24px;display:flex;position:sticky;top:0}.header-brand{color:var(--text);white-space:nowrap;align-items:center;gap:10px;font-size:1.1rem;font-weight:700;text-decoration:none;display:flex}.header-brand-icon{background:var(--primary);border-radius:var(--radius);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.header-timer-pill{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-full);flex:1;align-items:center;gap:10px;min-width:0;max-width:480px;padding:6px 14px 6px 10px;font-size:.85rem;display:flex}.timer-live-dot{background:var(--success);border-radius:50%;flex-shrink:0;width:8px;height:8px;animation:2s infinite pulse}.timer-pill-label{white-space:nowrap;text-overflow:ellipsis;min-width:0;color:var(--text-muted);flex:1;font-size:.83rem;overflow:hidden}.timer-pill-label strong{color:var(--text);font-weight:600}.timer-pill-elapsed{font-family:var(--font-mono);color:var(--primary);white-space:nowrap;font-size:.9rem;font-weight:600}.header-spacer{flex:1}.header-actions{align-items:center;gap:8px;display:flex}.main{max-width:var(--max-w);flex-direction:column;gap:20px;width:100%;margin:0 auto;padding:24px 24px 80px;display:flex}.btn{border-radius:var(--radius);white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;align-items:center;gap:6px;padding:8px 16px;font-size:.875rem;font-weight:500;transition:background .15s,color .15s,opacity .15s,transform .1s;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover{background:var(--primary-hover)}.btn-secondary{background:var(--surface-2);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface-3)}.btn-ghost{color:var(--text-muted);background:0 0}.btn-ghost:hover{background:var(--surface-2);color:var(--text)}.btn-danger{background:var(--danger-light);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:#fff}.btn-success{background:var(--success);color:#fff}.btn-success:hover{background:#059669}.btn-sm{padding:5px 12px;font-size:.8rem}.btn-lg{padding:11px 22px;font-size:.95rem}.btn-icon{border-radius:var(--radius);color:var(--text-muted);background:0 0;border:none;justify-content:center;align-items:center;padding:7px;font-size:1rem;transition:background .15s,color .15s;display:flex}.btn-icon:hover{background:var(--surface-2);color:var(--text)}.form-group{flex-direction:column;gap:4px;display:flex}.form-label{color:var(--text-muted);letter-spacing:.02em;text-transform:uppercase;font-size:.8rem;font-weight:600}input[type=text],input[type=date],input[type=time],input[type=number],textarea,select{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text);outline:none;padding:8px 12px;font-size:.9rem;transition:border-color .15s,box-shadow .15s}input:focus,textarea:focus,select:focus{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 20%, transparent)}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(var(--icon-invert,0));opacity:.6;cursor:pointer}input[type=time]::-webkit-calendar-picker-indicator{filter:invert(var(--icon-invert,0));opacity:.6;cursor:pointer}[data-theme=dark] input[type=date]::-webkit-calendar-picker-indicator{filter:invert()}[data-theme=dark] input[type=time]::-webkit-calendar-picker-indicator{filter:invert()}textarea{resize:vertical;min-height:60px}select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 24 24' stroke='%2394a3b8' stroke-width='2'%3E%3Cpath stroke-linecap='round' stroke-linejoin='round' d='M19 9l-7 7-7-7'/%3E%3C/svg%3E");background-position:right 8px center;background-repeat:no-repeat;background-size:16px;padding-right:32px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.dashboard{grid-template-columns:repeat(3,1fr) auto;align-items:stretch;gap:12px;display:grid}.dashboard-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);flex-direction:column;gap:4px;padding:16px 20px;display:flex}.dashboard-stat-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle);font-size:.75rem;font-weight:600}.dashboard-stat-value{color:var(--text);font-variant-numeric:tabular-nums;font-size:1.75rem;font-weight:700;line-height:1}.dashboard-stat-sub{color:var(--text-subtle);font-size:.78rem}.dashboard-stat.accent{border-color:var(--primary)}.dashboard-stat.accent .dashboard-stat-value{color:var(--primary)}.dashboard-actions{flex-direction:column;justify-content:center;align-items:flex-end;gap:8px;display:flex}.timer-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);padding:20px 24px}.timer-card.running{border-color:var(--primary);box-shadow:0 0 0 1px var(--primary), var(--shadow)}.timer-card-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.timer-card-title{text-transform:uppercase;letter-spacing:.07em;color:var(--text-subtle);font-size:.78rem;font-weight:700}.timer-display{font-family:var(--font-mono);letter-spacing:-.02em;color:var(--primary);font-variant-numeric:tabular-nums;font-size:2.4rem;font-weight:700}.timer-form{flex-direction:column;gap:8px;display:flex}.timer-form-full{width:100%}.timer-inputs-row{gap:8px;display:flex}.timer-input-project{flex:0 0 200px}.timer-input-task{flex:1;min-width:0}.timer-controls{flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px;display:flex}.timer-controls-right{gap:8px;margin-left:auto;display:flex}.shortcut-hint{color:var(--text-subtle);align-items:center;gap:4px;font-size:.72rem;display:flex}kbd{background:var(--surface-2);border:1px solid var(--border);font-family:var(--font-mono);border-radius:4px;padding:1px 5px;font-size:.68rem}.tags{flex-wrap:wrap;gap:4px;display:flex}.tag{border-radius:var(--radius-full);background:var(--primary-light);color:var(--primary-text);white-space:nowrap;align-items:center;gap:4px;padding:2px 8px;font-size:.72rem;font-weight:500;display:inline-flex}.tag-remove{cursor:pointer;color:inherit;opacity:.7;background:0 0;border:none;align-items:center;padding:0;font-size:.85rem;line-height:1;display:flex}.tag-remove:hover{opacity:1}.tag-input-row{flex-wrap:wrap;align-items:center;gap:4px;display:flex}.tag-input{width:120px;min-width:60px;color:var(--text);background:0 0;border:none;outline:none;padding:2px 4px;font-size:.85rem}.tag-input-wrapper{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:text;flex-wrap:wrap;align-items:center;gap:4px;min-height:38px;padding:6px 10px;transition:border-color .15s,box-shadow .15s;display:flex}.tag-input-wrapper:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 20%, transparent)}.tab-bar{border-bottom:1px solid var(--border);align-items:center;gap:0;display:flex}.tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;padding:10px 20px;font-size:.875rem;font-weight:500;transition:color .15s,border-color .15s}.tab:hover{color:var(--text)}.tab.active{color:var(--primary);border-bottom-color:var(--primary)}.tab-spacer{flex:1}.filter-bar{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;display:flex}.filter-bar input,.filter-bar select{width:auto;min-width:0;padding:6px 10px;font-size:.825rem}.filter-bar select{padding-right:28px}.filter-group{align-items:center;gap:6px;display:flex}.filter-label{color:var(--text-subtle);white-space:nowrap;font-size:.75rem;font-weight:600}.filter-sep{background:var(--border);width:1px;height:20px;margin:0 4px}.filter-spacer{flex:1}.segment{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);display:flex;overflow:hidden}.segment-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;padding:5px 12px;font-size:.8rem;font-weight:500;transition:background .15s,color .15s}.segment-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm)}.entry-list{flex-direction:column;gap:16px;display:flex}.entry-group-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:2px;padding:8px 0 6px;display:flex}.entry-group-date{color:var(--text-muted);letter-spacing:.01em;font-size:.825rem;font-weight:700}.entry-group-total{color:var(--primary);background:var(--primary-light);border-radius:var(--radius-full);padding:2px 8px;font-size:.8rem;font-weight:600}.entry-row{border-radius:var(--radius);border:1px solid #0000;grid-template-columns:20px 90px 1fr 1fr 70px auto auto;align-items:center;gap:12px;padding:10px 12px;transition:background .1s;display:grid}.entry-row:hover{background:var(--surface-2)}.entry-row.editing{background:var(--surface);border:1px solid var(--primary);box-shadow:var(--shadow);border-radius:var(--radius)}.entry-time{font-family:var(--font-mono);color:var(--text-muted);white-space:nowrap;font-size:.8rem}.entry-task{color:var(--text);min-width:0;font-size:.875rem;font-weight:500}.entry-task-sub{color:var(--text-subtle);margin-top:2px;font-size:.78rem}.entry-project{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.8rem;overflow:hidden}.entry-duration{color:var(--text);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:.85rem;font-weight:600}.entry-tags{flex-wrap:wrap;gap:3px;display:flex}.entry-row-actions{opacity:0;gap:4px;transition:opacity .1s;display:flex}.entry-row:hover .entry-row-actions{opacity:1}.entry-edit-grid{grid-template-columns:1fr 1fr;gap:8px;padding:12px;display:grid}.entry-edit-row{grid-column:1/-1;gap:8px;display:flex}.entry-edit-row>*{flex:1}.entry-edit-actions{justify-content:flex-end;gap:6px;padding:0 12px 12px;display:flex}.total-bar{background:var(--surface-2);border-radius:var(--radius);justify-content:space-between;align-items:center;padding:10px 16px;font-size:.875rem;display:flex}.total-bar-label{color:var(--text-muted)}.total-bar-value{color:var(--text);font-variant-numeric:tabular-nums;font-weight:700}.empty-state{text-align:center;color:var(--text-subtle);flex-direction:column;align-items:center;gap:12px;padding:64px 32px;display:flex}.empty-state-icon{opacity:.4;font-size:3rem}.empty-state-title{color:var(--text-muted);font-size:1rem;font-weight:600}.empty-state-body{max-width:300px;font-size:.875rem;line-height:1.6}.modal-overlay{z-index:200;padding:16px;padding-top:max(16px, env(safe-area-inset-top));padding-bottom:max(16px, env(safe-area-inset-bottom));background:#00000080;justify-content:center;align-items:flex-end;animation:.15s fadeIn;display:flex;position:fixed;inset:0}@media (width>=640px){.modal-overlay{align-items:center}}.modal{background:var(--surface);border-radius:var(--radius-lg) var(--radius-lg) 0 0;width:100%;max-width:560px;max-height:90dvh;box-shadow:var(--shadow-lg);animation:.2s slideUp;overflow-y:auto}@media (width>=640px){.modal{border-radius:var(--radius-lg);animation:.15s scaleIn}}.modal-header{border-bottom:1px solid var(--border);background:var(--surface);z-index:1;justify-content:space-between;align-items:center;padding:20px 24px 16px;display:flex;position:sticky;top:0}.modal-title{font-size:1rem;font-weight:700}.modal-body{flex-direction:column;gap:16px;padding:20px 24px;display:flex}.modal-footer{border-top:1px solid var(--border);justify-content:space-between;gap:8px;padding:16px 24px;display:flex}.modal-footer-actions{gap:8px;margin-left:auto;display:flex}.time-input-group{align-items:flex-end;gap:8px;display:flex}.time-input-group>*{flex:1}.toggle-row{color:var(--text-muted);cursor:pointer;align-items:center;gap:8px;font-size:.8rem;display:flex}.charts-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:20px}.chart-title{text-transform:uppercase;letter-spacing:.05em;color:var(--text-subtle);margin-bottom:16px;font-size:.825rem;font-weight:700}.chart-svg{width:100%;overflow:visible}.chart-bar{transition:opacity .15s}.chart-bar:hover{opacity:.8}.chart-label{fill:var(--text-muted);font-size:10px}.chart-value{fill:var(--text-muted);font-size:10px;font-family:var(--font-mono)}.chart-gridline{stroke:var(--border);stroke-dasharray:4 2}.chart-legend{flex-wrap:wrap;gap:10px;margin-top:12px;display:flex}.chart-legend-item{color:var(--text-muted);align-items:center;gap:5px;font-size:.78rem;display:flex}.chart-legend-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.idle-modal{text-align:center}.idle-modal .modal-body{align-items:center}.idle-timer-big{font-size:2.5rem;font-family:var(--font-mono);color:var(--warning);font-weight:700}.idle-actions{flex-direction:column;gap:8px;width:100%;display:flex}@keyframes pulse{0%,to{opacity:.4}50%{opacity:1}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(32px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.source-badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;align-items:center;gap:3px;padding:1px 6px;font-size:.68rem;font-weight:600;display:inline-flex}.source-tracked{background:var(--success-light);color:var(--success-text)}.source-manual{background:var(--surface-2);color:var(--text-subtle);border:1px solid var(--border)}.divider{background:var(--border);height:1px}.toast-container{z-index:300;flex-direction:column;gap:8px;display:flex;position:fixed;bottom:24px;right:24px}.toast{background:var(--text);color:var(--bg);border-radius:var(--radius);box-shadow:var(--shadow-md);align-items:center;gap:8px;max-width:320px;padding:10px 16px;font-size:.875rem;font-weight:500;animation:.2s slideUp;display:flex}@media (width<=900px){.dashboard{grid-template-columns:repeat(3,1fr)}.dashboard-actions{flex-direction:row;grid-column:1/-1;align-items:center}.charts-grid{grid-template-columns:1fr}}@media (width<=700px){.header{padding:0 16px}.main{gap:16px;padding:16px 16px 80px}.dashboard{grid-template-columns:1fr 1fr}.timer-inputs-row{flex-direction:column}.timer-input-project{flex:none}.timer-display{font-size:1.8rem}.entry-row{grid-template-rows:auto auto;grid-template-columns:80px 1fr auto}.entry-row-project{grid-area:2/2}.entry-row-duration{grid-area:1/3}.entry-row-actions{opacity:1;grid-area:2/3}.entry-tags{display:none}.filter-bar{gap:6px}.header-timer-pill{display:none}}@media (width<=480px){.dashboard{grid-template-columns:1fr}.entry-row{grid-template-columns:20px 1fr auto}}.entry-checkbox{width:15px;height:15px;accent-color:var(--primary);cursor:pointer;flex-shrink:0}.entry-row-selected{background:var(--primary-light);border-color:var(--primary)}.bulk-bar{background:var(--primary-light);border:1px solid var(--primary);border-radius:var(--radius);align-items:center;gap:8px;padding:10px 16px;animation:.15s fadeIn;display:flex}.bulk-bar-count{color:var(--primary-text);margin-right:4px;font-size:.875rem;font-weight:600}.timer-templates{flex-wrap:wrap;gap:6px;margin-bottom:12px;display:flex}.template-chip{border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;white-space:nowrap;align-items:center;padding:4px 12px;font-size:.78rem;font-weight:500;transition:background .15s,color .15s,border-color .15s;display:inline-flex}.template-chip:hover{background:var(--primary-light);color:var(--primary-text);border-color:var(--primary)}.qe-overlay{z-index:400;background:#00000080;justify-content:center;align-items:flex-start;padding:80px 16px 16px;animation:.1s fadeIn;display:flex;position:fixed;inset:0}.qe-modal{background:var(--surface);border-radius:var(--radius-lg);width:100%;max-width:480px;box-shadow:var(--shadow-lg);animation:.12s scaleIn;overflow:hidden}.qe-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px 12px;display:flex}.qe-title{color:var(--text);font-size:.875rem;font-weight:700}.qe-hint{color:var(--text-subtle);font-size:.75rem}.qe-body{flex-direction:column;gap:12px;padding:16px 20px;display:flex}.qe-duration-row{flex-wrap:wrap;gap:6px;display:flex}.qe-duration-btn{border-radius:var(--radius-full);background:var(--surface-2);color:var(--text-muted);border:1px solid var(--border);cursor:pointer;padding:6px 14px;font-size:.825rem;font-weight:600;transition:background .15s,color .15s,border-color .15s}.qe-duration-btn:hover,.qe-duration-btn.active{background:var(--primary);color:#fff;border-color:var(--primary)}.qe-footer{border-top:1px solid var(--border);justify-content:flex-end;gap:8px;padding:12px 20px 16px;display:flex}.settings-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden}.settings-card-header{background:var(--surface-2);border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:13px 20px;display:flex}.settings-card-icon{font-size:1.1rem;line-height:1}.settings-card-title{color:var(--text);flex:1;font-size:.9rem;font-weight:700}.settings-card-badge{background:var(--primary-light);color:var(--primary-text);border-radius:var(--radius-full);padding:1px 7px;font-size:.72rem;font-weight:600}.settings-field{flex-direction:column;gap:0;padding:18px 20px;display:flex}.settings-field-label{color:var(--text);letter-spacing:.03em;text-transform:uppercase;margin-bottom:6px;font-size:.78rem;font-weight:700}.settings-field-hint{color:var(--text-subtle);margin-bottom:14px;font-size:.82rem;line-height:1.45}.settings-input-wrap{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);align-self:flex-start;align-items:center;gap:8px;padding:0 14px;transition:border-color .15s,box-shadow .15s;display:flex}.settings-input-wrap:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px color-mix(in srgb, var(--primary) 20%, transparent)}.settings-number-input{width:72px;color:var(--text);-moz-appearance:textfield;background:0 0;border:none;outline:none;padding:9px 0;font-size:1.05rem;font-weight:600}.settings-number-input::-webkit-inner-spin-button{-webkit-appearance:none}.settings-number-input::-webkit-outer-spin-button{-webkit-appearance:none}.settings-input-prefix{color:var(--text-muted);font-size:.9rem;font-weight:500}.settings-input-suffix{color:var(--text-muted);white-space:nowrap;font-size:.82rem}.settings-divider{background:var(--border);height:1px}.settings-segment-full{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius);width:100%;display:flex;overflow:hidden}.settings-segment-btn{color:var(--text-muted);cursor:pointer;text-align:center;background:0 0;border:none;flex:1;padding:10px 4px;font-size:.82rem;font-weight:500;transition:background .15s,color .15s}.settings-segment-btn+.settings-segment-btn{border-left:1px solid var(--border)}.settings-segment-btn.active{background:var(--primary);color:#fff;font-weight:600}.settings-segment-btn:hover:not(.active){background:var(--surface-3);color:var(--text)}.settings-empty{color:var(--text-subtle);padding:18px 20px;font-size:.825rem;line-height:1.5}.settings-template-list{flex-direction:column;display:flex}.settings-template-item{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:12px 20px;display:flex}.settings-template-item:last-child{border-bottom:none}.settings-template-info{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.settings-template-project{color:var(--text);font-size:.875rem;font-weight:600}.settings-template-task{color:var(--text-muted);font-size:.8rem}.settings-template-tags{flex-wrap:wrap;gap:4px;margin-top:2px;display:flex}.settings-toggle-row{justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;display:flex}.settings-toggle-info{flex-direction:column;gap:3px;display:flex}.settings-toggle-label{color:var(--text);font-size:.875rem;font-weight:600}.settings-toggle-hint{color:var(--text-subtle);font-size:.8rem}.toggle-switch{cursor:pointer;flex-shrink:0;width:44px;height:26px;position:relative}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-track{background:var(--surface-3);border-radius:var(--radius-full);transition:background .2s;position:absolute;inset:0}.toggle-track:after{content:"";background:#fff;border-radius:50%;width:20px;height:20px;transition:transform .2s;position:absolute;top:3px;left:3px;box-shadow:0 1px 3px #00000040}.toggle-switch input:checked+.toggle-track{background:var(--primary)}.toggle-switch input:checked+.toggle-track:after{transform:translate(18px)}.pomodoro-panel{border-top:1px solid var(--border);background:var(--surface-2);text-align:center;flex-direction:column;align-items:center;gap:6px;padding:16px 20px 20px;display:flex}.pomodoro-phase{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);font-size:.78rem;font-weight:700}.pomodoro-countdown{font-variant-numeric:tabular-nums;color:var(--text);font-size:2.8rem;font-weight:700;line-height:1}.pomodoro-meta{align-items:center;gap:4px;min-height:24px;font-size:.85rem;display:flex}.pomodoro-dot{font-size:.75rem}.pomodoro-count{color:var(--text-muted);margin-left:4px;font-size:.78rem}@media print{.no-print{display:none!important}}.ios-banner{z-index:500;background:var(--surface);border-top:2px solid var(--primary);padding:14px 16px 8px;animation:.3s slideUp;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -4px 24px #00000026}.ios-banner-body{max-width:var(--max-w);align-items:center;gap:12px;margin:0 auto;display:flex}.ios-banner-icon{flex-shrink:0;font-size:1.75rem}.ios-banner-text{color:var(--text-muted);flex-direction:column;flex:1;gap:2px;font-size:.85rem;line-height:1.4;display:flex}.ios-banner-text strong{color:var(--text)}.ios-banner-arrow{text-align:center;color:var(--primary);margin-top:4px;font-size:1.25rem;animation:1.5s ease-in-out infinite bounce}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(5px)}}.focus-overlay{z-index:600;background:#0d0d14;justify-content:center;align-items:center;animation:.25s fadeIn;display:flex;position:fixed;inset:0}.focus-exit{color:#fff6;cursor:pointer;background:#ffffff14;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:1.1rem;transition:background .15s,color .15s;display:flex;position:absolute;top:24px;right:24px}.focus-exit:hover{color:#fff;background:#ffffff26}.focus-body{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:32px;display:flex}.focus-project{text-transform:uppercase;letter-spacing:.12em;color:#ffffff59;font-size:.85rem;font-weight:700}.focus-task{color:#ffffffb3;max-width:480px;font-size:1.1rem;font-weight:500;line-height:1.4}.focus-clock{font-family:var(--font-mono);letter-spacing:-.03em;color:#fff;font-variant-numeric:tabular-nums;font-size:clamp(4rem,14vw,9rem);font-weight:700;line-height:1;transition:color .3s}.focus-clock.paused{color:#ffffff4d}.focus-paused-label{text-transform:uppercase;letter-spacing:.1em;color:#ffffff4d;font-size:.8rem;font-weight:700}.focus-controls{gap:12px;margin-top:8px;display:flex}.goal-bar-wrap{background:var(--surface-3);border-radius:var(--radius-full);height:4px;margin-top:8px;overflow:hidden}.goal-bar-fill{background:var(--primary);border-radius:var(--radius-full);min-width:2px;height:100%;transition:width .4s}.goal-bar-fill.goal-met{background:var(--success)}.streak-badge{background:var(--warning-light);color:var(--warning);border-radius:var(--radius-full);white-space:nowrap;align-items:center;gap:4px;padding:4px 10px;font-size:.8rem;font-weight:700;display:inline-flex}.toast-message{flex:1}.toast-action{color:inherit;border-radius:var(--radius);cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #fff6;padding:3px 10px;font-size:.8rem;font-weight:600;transition:background .15s}.toast-action:hover{background:#ffffff26}.toast-close{color:inherit;opacity:.6;cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0 2px;font-size:.85rem}.toast-close:hover{opacity:1}.heatmap-wrap{flex-direction:column;gap:8px;display:flex;overflow-x:auto}.heatmap-inner{gap:6px;min-width:max-content;display:flex}.heatmap-day-labels{flex-direction:column;padding-top:20px;display:flex}.heatmap-day-label{color:var(--text-subtle);align-items:center;width:16px;font-size:9px;display:flex}.heatmap-month-row{position:relative}.heatmap-month-label{color:var(--text-subtle);white-space:nowrap;font-size:9px;position:absolute}.heatmap-grid{display:grid}.heatmap-cell{cursor:default;transition:opacity .1s}.heatmap-cell:hover{opacity:.75}.heatmap-today{outline:2px solid var(--primary);outline-offset:1px}.heatmap-legend{justify-content:flex-end;align-items:center;gap:4px;display:flex}.heatmap-legend-label{color:var(--text-subtle);font-size:10px}.heatmap-legend-cell{border-radius:2px;width:12px;height:12px}.auth-loading{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;display:flex}.auth-loading-icon{opacity:.4;font-size:2.5rem;animation:1.4s ease-in-out infinite pulse}.auth-screen{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:400px;box-shadow:var(--shadow-lg);padding:40px 32px}.auth-logo{text-align:center;margin-bottom:8px;font-size:2.5rem}.auth-title{text-align:center;margin:0 0 24px;font-size:1.5rem;font-weight:700}.auth-subtitle{text-align:center;color:var(--text-subtle);margin:0 0 20px;font-size:.9rem}.auth-btn{justify-content:center;width:100%;margin-top:8px}.auth-btn-secondary{justify-content:center;width:100%;margin-top:6px;font-size:.875rem}.auth-otp-input{letter-spacing:.5em!important;text-align:center!important;font-size:1.75rem!important;font-family:var(--font-mono)!important}.auth-error{color:var(--danger);border-radius:var(--radius);background:#ef444414;border:1px solid #ef444440;margin-bottom:10px;padding:10px 14px;font-size:.875rem}
