:root{--bg-base:#0f172a;--bg-surface:#1e293b;--bg-surface-hover:#334155;--text-primary:#f8fafc;--text-secondary:#94a3b8;--text-muted:#64748b;--accent-primary:#3b82f6;--accent-hover:#2563eb;--status-success:#10b981;--status-error:#ef4444;--status-warning:#f59e0b;--border-color:#334155;--radius-md:8px;--radius-lg:12px;--transition:.2s ease}body.theme-light{--bg-base:#f8fafc;--bg-surface:#fff;--bg-surface-hover:#f1f5f9;--text-primary:#0f172a;--text-secondary:#475569;--text-muted:#94a3b8;--accent-primary:#2563eb;--accent-hover:#1d4ed8;--status-success:#059669;--status-error:#dc2626;--status-warning:#d97706;--border-color:#e2e8f0}body.theme-light-catppuccin{--bg-base:#eaecf0;--bg-surface:#e6e9ef;--bg-surface-hover:#dce0e8;--text-primary:#4c4f69;--text-secondary:#5c5f77;--text-muted:#6c6f85;--accent-primary:#8839ef;--accent-hover:#722bca;--border-color:#ccd0da}body.theme-light-onelight{--bg-base:#f5f5f5;--bg-surface:#fafafa;--bg-surface-hover:#e5e5e6;--text-primary:#383a42;--text-secondary:#696c77;--text-muted:#a0a1a7;--accent-primary:#4078f2;--accent-hover:#275bce;--border-color:#e5e5e6}body.theme-light-solarized{--bg-base:#fdf6e3;--bg-surface:#eee8d5;--bg-surface-hover:#e6dfcb;--text-primary:#586e75;--text-secondary:#657b83;--text-muted:#839496;--accent-primary:#cb4b16;--accent-hover:#dc322f;--border-color:#93a1a1}body.theme-dark-catppuccin{--bg-base:#24273a;--bg-surface:#363a4f;--bg-surface-hover:#494d64;--text-primary:#cad3f5;--text-secondary:#b8c0e0;--text-muted:#a5adcb;--accent-primary:#c6a0f6;--accent-hover:#b48ead;--border-color:#5b6078}body.theme-dark-dracula{--bg-base:#282a36;--bg-surface:#44475a;--bg-surface-hover:#6272a4;--text-primary:#f8f8f2;--text-secondary:#bfbfbf;--text-muted:#6272a4;--accent-primary:#bd93f9;--accent-hover:#ff79c6;--border-color:#44475a}body.theme-dark-monokai{--bg-base:#272822;--bg-surface:#3e3d32;--bg-surface-hover:#49483e;--text-primary:#f8f8f2;--text-secondary:#cfcfc2;--text-muted:#75715e;--accent-primary:#f92672;--accent-hover:#fd971f;--border-color:#75715e}body.theme-dark-onedark{--bg-base:#282c34;--bg-surface:#2c313a;--bg-surface-hover:#3e4451;--text-primary:#abb2bf;--text-secondary:#828997;--text-muted:#5c6370;--accent-primary:#61afef;--accent-hover:#528bff;--border-color:#181a1f}body.theme-dark-tokyonight{--bg-base:#1a1b26;--bg-surface:#24283b;--bg-surface-hover:#414868;--text-primary:#a9b1d6;--text-secondary:#c0caf5;--text-muted:#565f89;--accent-primary:#7aa2f7;--accent-hover:#bb9af7;--border-color:#414868}body.theme-dark-nord{--bg-base:#2e3440;--bg-surface:#3b4252;--bg-surface-hover:#434c5e;--text-primary:#d8dee9;--text-secondary:#e5e9f0;--accent-primary:#88c0d0;--accent-hover:#81a1c1;--border-color:#4c566a}body.theme-dark-gruvbox{--bg-base:#282828;--bg-surface:#3c3836;--bg-surface-hover:#504945;--text-primary:#ebdbb2;--text-secondary:#d5c4a1;--accent-primary:#fabd2f;--accent-hover:#fe8019;--border-color:#665c54}body.theme-dark-synthwave{--bg-base:#2b213a;--bg-surface:#241b2f;--bg-surface-hover:#262335;--text-primary:#f92aad;--text-secondary:#8c8c8c;--accent-primary:#f92aad;--accent-hover:#36f9f6;--border-color:#f92aad}body.theme-dark-rosepine{--bg-base:#191724;--bg-surface:#1f1d2e;--bg-surface-hover:#26233a;--text-primary:#e0def4;--text-secondary:#908caa;--accent-primary:#c4a7e7;--accent-hover:#ebbcba;--border-color:#44415a}body.theme-light-github{--bg-base:#fff;--bg-surface:#f6f8fa;--bg-surface-hover:#eaeef2;--text-primary:#24292f;--text-secondary:#57606a;--accent-primary:#0969da;--accent-hover:#0550ae;--border-color:#d0d7de}body.theme-light-gruvbox{--bg-base:#fbf1c7;--bg-surface:#ebdbb2;--bg-surface-hover:#d5c4a1;--text-primary:#3c3836;--text-secondary:#504945;--accent-primary:#b57614;--accent-hover:#af3a03;--border-color:#bdae93}body.theme-sleek-ocean{--bg-base:#0a192f;--bg-surface:#112240;--bg-surface-hover:#233554;--text-primary:#ccd6f6;--text-secondary:#8892b0;--accent-primary:#0af;--accent-hover:#64ffda;--border-color:#1e2d4a}body.theme-sleek-ruby{--bg-base:#2a0808;--bg-surface:#3a1010;--bg-surface-hover:#4a1818;--text-primary:#ffebeb;--text-secondary:#dca3a3;--accent-primary:#ff4d4d;--accent-hover:#ff8080;--border-color:#5a2020}body.theme-sleek-emerald{--bg-base:#062a1a;--bg-surface:#0a3a24;--bg-surface-hover:#124d33;--text-primary:#e6f7ef;--text-secondary:#9fceb8;--accent-primary:#10b981;--accent-hover:#34d399;--border-color:#185c3e}body.theme-sleek-amethyst{--bg-base:#1f0f2e;--bg-surface:#2d1842;--bg-surface-hover:#3e2459;--text-primary:#f2e6ff;--text-secondary:#cba3f0;--accent-primary:#a855f7;--accent-hover:#c084fc;--border-color:#4b306b}body.theme-sleek-amber{--bg-base:#2e1d08;--bg-surface:#3d2912;--bg-surface-hover:#4d361c;--text-primary:#fff3e0;--text-secondary:#d9ab73;--accent-primary:#f59e0b;--accent-hover:#fbbf24;--border-color:#5c4326}body.theme-custom{--bg-surface:color-mix(in srgb, var(--bg-base) 90%, var(--text-primary) 10%);--bg-surface-hover:color-mix(in srgb, var(--bg-base) 80%, var(--text-primary) 20%);--text-secondary:color-mix(in srgb, var(--text-primary) 70%, transparent);--text-muted:color-mix(in srgb, var(--text-primary) 40%, transparent);--accent-hover:color-mix(in srgb, var(--accent-primary) 80%, white 20%);--border-color:color-mix(in srgb, var(--text-primary) 20%, transparent);--status-success:#10b981;--status-error:#ef4444;--status-warning:#f59e0b}body.theme-antigravity{--bg-base:#101010;--bg-surface:#1a1a1a;--bg-surface-hover:#222;--text-primary:#ccc;--text-secondary:#999;--text-muted:#666;--accent-primary:#007acc;--accent-hover:#005999;--status-success:#10b981;--status-error:#ef4444;--status-warning:#f59e0b;--border-color:#333}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-base);color:var(--text-primary);height:100vh;font-family:Inter,sans-serif;line-height:1.5;overflow:hidden}.app-container{height:100vh;display:flex}.sidebar{background-color:var(--bg-surface);border-right:1px solid var(--border-color);flex-direction:column;width:250px;padding:24px 16px;display:flex}.logo{margin-bottom:40px;padding:0 8px}.logo h2{letter-spacing:-.5px;font-size:24px;font-weight:700}.badge{color:var(--accent-primary);background-color:#3b82f61a;border-radius:12px;margin-top:4px;padding:2px 8px;font-size:11px;font-weight:600;display:inline-block}.main-nav{flex-direction:column;flex:1;gap:8px;display:flex}.nav-item{color:var(--text-secondary);border-radius:var(--radius-md);transition:var(--transition);padding:10px 16px;font-weight:500;text-decoration:none}.nav-item:hover{background-color:var(--bg-surface-hover);color:var(--text-primary)}.nav-item.active{color:var(--accent-primary);background-color:#3b82f61a}.sound-source-row{cursor:pointer;border:1px solid var(--border-color);background:var(--bg-base);-webkit-user-select:none;user-select:none;border-radius:6px;align-items:center;gap:10px;padding:8px 10px;display:flex}.sound-source-row:hover{background:var(--bg-surface-hover)}.database-status{border-top:1px solid var(--border-color);padding:16px 8px}.database-status h3{text-transform:uppercase;letter-spacing:1px;color:var(--text-muted);margin-bottom:8px;font-size:12px}.status-indicator{color:var(--text-secondary);align-items:center;gap:8px;font-size:13px;display:flex}.dot{background-color:var(--status-warning);border-radius:50%;width:8px;height:8px}.dot.success{background-color:var(--status-success)}.dot.error{background-color:var(--status-error)}.main-content{flex-direction:column;flex:1;padding:32px 40px;display:flex;overflow-y:auto}.top-bar{justify-content:space-between;align-items:center;gap:24px;margin-bottom:40px;display:flex}.input-container{flex:1;gap:12px;display:flex}#action-input{background-color:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-lg);transition:var(--transition);outline:none;flex:1;padding:16px 20px;font-family:Inter,sans-serif;font-size:16px}#action-input:focus{border-color:var(--accent-primary);box-shadow:0 0 0 2px #3b82f633}.abbrev-preview{z-index:20;color:var(--text-muted);background:var(--bg-base);padding:2px 4px;font-family:monospace;font-size:12px;transition:opacity .15s;position:absolute;top:100%;left:0;right:0}.abbrev-preview:before{content:"→ ";opacity:.5}.btn{cursor:pointer;border-radius:var(--radius-lg);transition:var(--transition);border:none;padding:16px 32px;font-family:Inter,sans-serif;font-size:16px;font-weight:600}.btn.primary{background-color:var(--accent-primary);color:#fff}.btn.primary:hover{background-color:var(--accent-hover)}.timer-display{font-variant-numeric:tabular-nums;letter-spacing:-1px;color:var(--text-primary);font-size:32px;font-weight:700}.dashboard-grid{grid-template-columns:2fr 1fr;align-items:start;gap:24px;display:grid}.card{background-color:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);flex-direction:column;display:flex}.card-header{border-bottom:1px solid var(--border-color);padding:20px 24px}.card-header h3{font-size:16px;font-weight:600}.card-body{padding:24px}.action-list{list-style:none}@keyframes row-flash{0%{background-color:color-mix(in srgb, var(--status-success) 22%, transparent)}to{background-color:#0000}}.row-flash{border-radius:4px;animation:1.2s ease-out forwards row-flash}.empty-state{color:var(--text-muted);font-style:italic}.summary-stat{flex-direction:column;gap:4px;display:flex}.stat-label{color:var(--text-secondary);font-size:14px}.stat-value{font-size:28px;font-weight:700}.view{flex-direction:column;height:100%;display:flex}.hidden{display:none!important}.view.hidden{display:none}.settings-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding-bottom:20px;display:flex}.btn.small{padding:8px 16px;font-size:14px}.btn.danger{color:var(--status-error);border:1px solid var(--status-error);background-color:#0000}.btn.danger:hover{background-color:#ef44441a}.dynamic-list{flex-direction:column;gap:12px;display:flex}.dynamic-row{align-items:center;gap:12px;display:flex}.dynamic-input{background-color:var(--bg-base);border:1px solid var(--border-color);color:var(--text-primary);border-radius:var(--radius-md);outline:none;flex:1;padding:10px 14px;font-family:Inter,sans-serif}.dynamic-input:focus{border-color:var(--accent-primary)}.timeline-row{border-bottom:1px solid var(--border-color);align-items:center;gap:16px;padding:12px 0;display:flex}.timeline-time{color:var(--text-muted);font-variant-numeric:tabular-nums;width:65px;font-size:13px}.timeline-input{color:var(--text-primary);border-radius:var(--radius-md);transition:var(--transition);background:0 0;border:1px solid #0000;outline:none;flex:1;padding:6px 12px;font-family:Inter,sans-serif;font-size:15px}.timeline-input:hover{background-color:var(--bg-base)}.timeline-input:focus{background-color:var(--bg-base);border-color:var(--accent-primary)}.timeline-duration{color:var(--text-secondary);font-variant-numeric:tabular-nums;text-align:right;width:70px;font-size:14px}.timeline-actions{opacity:0;transition:var(--transition);gap:8px;display:flex}.timeline-row:hover .timeline-actions{opacity:1}.heatmap-wrapper{align-items:flex-start;gap:16px;display:flex}.heatmap-grid{gap:4px;display:flex}.heatmap-col{flex-direction:column;gap:4px;display:flex}.heatmap-cell{background-color:var(--bg-surface-hover);width:44px;height:44px;color:var(--text-primary);text-align:center;cursor:crosshair;border-radius:4px;justify-content:center;align-items:center;font-size:11px;line-height:1.2;display:flex;position:relative}.heatmap-cell.empty{pointer-events:none;background-color:#0000}.heat-level-0{background-color:var(--bg-surface-hover)}.heat-level-1{color:#1e3a8a;background-color:#dbeafe}.heat-level-2{color:#1e3a8a;background-color:#93c5fd}.heat-level-3{color:#fff;background-color:#3b82f6}.heat-level-4{color:#fff;background-color:#1d4ed8}.heat-level-5{color:#fff;background-color:#1e3a8a}.heatmap-cell[title]:hover:after{content:attr(title);color:#fff;white-space:pre-line;z-index:10;pointer-events:none;background:#000;border-radius:4px;margin-bottom:6px;padding:6px 10px;font-size:12px;position:absolute;bottom:100%;left:50%;transform:translate(-50%)}.action-tree-container details{margin-bottom:2px}.tree-summary{cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:4px;justify-content:space-between;padding:6px 8px;list-style:none;transition:background-color .2s;display:flex;position:relative}.tree-summary::-webkit-details-marker{display:none}.tree-summary:before{content:"›";color:var(--text-muted);opacity:0;font-size:16px;transition:transform .2s,opacity .2s;position:absolute;top:50%;left:-12px;transform:translateY(-50%)}details:hover>.tree-summary:before{opacity:1}details[open]>.tree-summary:before{transform:translateY(-50%)rotate(90deg)}details.no-children>.tree-summary:before{display:none!important}details.no-children>.tree-summary{cursor:default}.tree-summary:hover{background-color:var(--card-bg)}.set-summary{color:var(--text-primary);border-bottom:1px solid var(--border-color);border-radius:0;margin-bottom:4px;font-weight:600}.set-summary:hover{background-color:#0000}.set-summary:before{font-size:20px;left:-16px}.project-summary{font-weight:500}.node-summary{color:var(--text-secondary);font-size:.9em;font-weight:400}.tree-mult{color:var(--primary-color);font-size:.9em;font-weight:600}.tree-time{font-variant-numeric:tabular-nums;color:var(--text-secondary);font-family:monospace}.tree-project{margin-left:20px}.tree-children{border-left:1px dashed #0000;margin-left:16px;padding-left:8px}.show-lines .tree-children{border-left:1px dashed var(--border-color)}.tree-summary.hl-up{background-color:color-mix(in srgb, var(--accent-primary) 12%, transparent)}.tree-summary.hl-down{background-color:color-mix(in srgb, var(--status-error) 12%, transparent)}.row-menu-btn{opacity:0;transition:opacity .2s}.action-row:hover .row-menu-btn{opacity:1}@media (width<=768px){.row-menu-btn{opacity:1}}.pomodoro-box{background:var(--bg-surface);border:1px solid var(--border-color);border-radius:var(--radius-lg);margin:0;padding:16px 20px}.pomodoro-box.pom-completed{border-color:var(--status-warning);box-shadow:0 0 0 1px var(--status-warning), 0 0 18px #f59e0b38;animation:2.2s ease-in-out infinite pom-pulse}@keyframes pom-pulse{0%,to{box-shadow:0 0 0 1px var(--status-warning), 0 0 18px #f59e0b38}50%{box-shadow:0 0 0 1px var(--status-warning), 0 0 30px #f59e0b61}}
