:root,[data-theme=dark]{--bg-page:#0d1117;--bg-card:#161b22;--bg-card-hover:#ffffff0a;--bg-subtle:#ffffff05;--bg-field:#ffffff0a;--border:#ffffff12;--border-strong:#ffffff26;--text-primary:#e6edf3;--text-secondary:#8b949e;--text-muted:#484f58;--purple:#7c5fe6;--purple-light:#a78bfa;--purple-dim:#7c5fe626;--green:#3fb950;--red:#f85149;--amber:#d29922;--shadow-modal:0 16px 40px #00000080}[data-theme=light]{--bg-page:#f6f7f9;--bg-card:#fff;--bg-card-hover:#00000006;--bg-subtle:#00000005;--bg-field:#00000009;--border:#00000014;--border-strong:#00000029;--text-primary:#1c2128;--text-secondary:#57606a;--text-muted:#8b949e;--purple:#6d4fd4;--purple-light:#7c5fe6;--purple-dim:#7c5fe61a;--green:#1a7f37;--red:#cf222e;--amber:#9a6700;--shadow-modal:0 16px 40px #00000026}.topbar{justify-content:space-between;align-items:center;padding:0 2px 6px;display:flex}.topbar-logo{color:var(--text-secondary);letter-spacing:.04em;text-transform:uppercase;align-items:center;gap:8px;font-size:13px;font-weight:600;display:flex}.topbar-logo svg{color:var(--purple)}.topbar-actions{gap:8px;display:flex}.topbar-icon-btn{background:var(--bg-card);border:.5px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--text-secondary);border-radius:8px;justify-content:center;align-items:center;transition:all .15s;display:flex}.topbar-icon-btn:hover{color:var(--text-primary);border-color:var(--border-strong)}.greeting{text-align:center;padding:8px 0 4px}.greeting-text{color:var(--text-primary);letter-spacing:-.3px;margin-bottom:6px;font-size:26px;font-weight:600}.greeting-name{color:var(--purple-light)}.greeting-clock{color:var(--text-primary);letter-spacing:-2px;font-variant-numeric:tabular-nums;font-size:48px;font-weight:700;line-height:1}.greeting-seconds{color:var(--purple-light)}.greeting-date{color:var(--text-secondary);letter-spacing:.02em;margin-top:6px;font-size:13px}.dev-watermark{background:var(--purple-dim);border:.5px solid var(--border);width:fit-content;color:var(--purple-light);letter-spacing:.01em;border-radius:999px;justify-content:center;align-items:center;gap:6px;margin:0 auto 14px;padding:6px 14px;font-size:11px;font-weight:600;display:flex}.dev-watermark-dot{background:var(--purple-light);width:6px;height:6px;box-shadow:0 0 6px var(--purple-light);border-radius:50%;flex-shrink:0}.bento-grid{grid-template-columns:280px 1fr;gap:12px;display:grid}.bottom-grid{grid-template-columns:1fr 240px;gap:12px;display:grid}@media (width<=700px){.bento-grid,.bottom-grid{grid-template-columns:1fr}}.card{background:var(--bg-card);border:.5px solid var(--border);border-radius:14px;transition:border-color .2s;overflow:hidden}.card:hover{border-color:var(--border-strong)}.card-header{justify-content:space-between;align-items:center;padding:14px 16px 0;display:flex}.card-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;align-items:center;gap:6px;font-size:11px;font-weight:600;display:flex}.card-body{padding:14px 16px}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;grid-column:1/-1;align-items:center;gap:8px;padding:24px;font-size:12px;display:flex}.btn{cursor:pointer;border:.5px solid var(--border);background:0 0;border-radius:8px;align-items:center;gap:5px;height:34px;padding:0 14px;font-size:12px;font-weight:600;transition:all .15s;display:inline-flex}.btn-primary{background:var(--purple);color:#fff;border-color:#0000}.btn-primary:hover{background:#6d4fd4}.btn-secondary{background:var(--bg-field);color:var(--text-primary)}.btn-secondary:hover{border-color:var(--border-strong)}.btn-ghost{color:var(--text-secondary);background:0 0}.btn-ghost:hover{color:var(--text-primary);border-color:var(--border-strong)}.input{background:var(--bg-field);border:.5px solid var(--border);height:34px;color:var(--text-primary);border-radius:8px;outline:none;flex:1;width:100%;padding:0 12px;font-size:13px;transition:border-color .15s}.input:focus{border-color:var(--purple-light)}.input::placeholder{color:var(--text-muted)}.modal-overlay{z-index:100;background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal{background:var(--bg-card);border:.5px solid var(--border-strong);width:340px;max-width:90vw;box-shadow:var(--shadow-modal);border-radius:14px;padding:20px}.modal-title-row{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.modal-title{color:var(--text-primary);font-size:14px;font-weight:600}.modal-close-btn{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;display:flex}.modal-close-btn:hover{background:var(--bg-subtle);color:var(--text-primary)}.modal-content{flex-direction:column;gap:8px;display:flex}.modal-actions{gap:8px;margin-top:6px;display:flex}.modal-actions .btn{flex:1}.timer-card{background:linear-gradient(160deg, color-mix(in srgb, var(--purple) 18%, var(--bg-card)) 0%, var(--bg-card) 60%);border-color:var(--purple-dim);flex-direction:column;display:flex}.mode-pill-row{padding:10px 16px 0}.mode-pill{text-transform:uppercase;letter-spacing:.06em;background:var(--purple-dim);color:var(--purple-light);border:.5px solid var(--purple-dim);border-radius:20px;align-items:center;gap:4px;padding:3px 8px;font-size:10px;font-weight:600;display:inline-flex}.mode-dot{background:var(--purple-light);border-radius:50%;width:5px;height:5px}.timer-ring-wrap{justify-content:center;align-items:center;padding:20px 0 10px;display:flex;position:relative}.timer-ring-running .timer-fg-ring{animation:.9s ease-in-out infinite ring-pulse}@keyframes ring-pulse{0%,to{filter:drop-shadow(0 0 #0000);opacity:1}50%{filter:drop-shadow(0 0 6px var(--purple-light));opacity:.85}}.timer-display.timer-tick{animation:.18s ease-out tick-scale}@keyframes tick-scale{0%{transform:scale(1.08)}to{transform:scale(1)}}.timer-svg{transform:rotate(-90deg)}.timer-bg-ring{fill:none;stroke:var(--purple-dim);stroke-width:5px}.timer-fg-ring{fill:none;stroke:var(--purple-light);stroke-width:5px;stroke-linecap:round;transition:stroke-dashoffset .5s}.timer-center{text-align:center;position:absolute}.timer-display{color:var(--text-primary);letter-spacing:-1px;font-variant-numeric:tabular-nums;transform-origin:50%;font-size:34px;font-weight:700;display:block}.timer-sublabel{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.1em;margin-top:2px;font-size:10px;display:block}.timer-controls{gap:8px;padding:0 16px 8px;display:flex}.timer-btn{border:.5px solid var(--purple-dim);background:var(--purple-dim);height:34px;color:var(--purple-light);cursor:pointer;border-radius:8px;flex:1;justify-content:center;align-items:center;gap:4px;font-size:12px;font-weight:600;transition:all .15s;display:flex}.timer-btn:hover{background:color-mix(in srgb, var(--purple) 25%, transparent)}.timer-btn-primary{background:var(--purple);color:#fff;border-color:#0000}.timer-btn-primary:hover{background:#6d4fd4}.timer-duration{padding:0 16px 16px}.dur-label{color:var(--text-secondary);margin-bottom:8px;font-size:11px;display:block}.dur-presets{gap:6px;margin-bottom:10px;display:flex}.dur-btn{background:var(--bg-subtle);border:.5px solid var(--border);height:28px;color:var(--text-secondary);cursor:pointer;border-radius:6px;flex:1;font-size:11px;font-weight:600;transition:all .15s}.dur-btn:hover:not(:disabled){color:var(--text-primary);border-color:var(--border-strong)}.dur-btn:disabled{opacity:.5;cursor:not-allowed}.dur-btn.active{background:var(--purple-dim);border-color:var(--purple-light);color:var(--purple-light)}.dur-custom{align-items:center;gap:8px;display:flex}.dur-custom .input{height:28px;font-size:12px}.dur-input-label{color:var(--text-secondary);flex-shrink:0;font-size:11px}.dur-set-btn{flex:none;padding:0 10px}.timer-sessions{padding:0 16px 14px}.sessions-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.07em;margin-bottom:6px;font-size:10px;display:block}.session-dots{gap:5px;display:flex}.session-dot{background:var(--bg-subtle);border:.5px solid var(--border);border-radius:50%;width:10px;height:10px}.session-dot.done{background:var(--purple);border-color:#0000}.todo-input-row{gap:8px;margin-bottom:12px;display:flex}.todo-add-btn{white-space:nowrap;flex:none}.quickadd-section{margin-bottom:12px}.quickadd-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.07em;align-items:center;gap:4px;margin-bottom:6px;font-size:10px;display:flex}.cat-tabs{flex-wrap:wrap;gap:5px;margin-bottom:8px;display:flex}.cat-tab{border:.5px solid var(--border);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:0 0;border-radius:20px;align-items:center;gap:4px;padding:4px 9px;font-size:10.5px;font-weight:600;transition:all .15s;display:flex}.cat-tab:hover{color:var(--text-primary);border-color:var(--border-strong)}.cat-tab.active{background:var(--purple-dim);border-color:var(--purple-light);color:var(--purple-light)}.template-chips{flex-wrap:wrap;gap:5px;display:flex}.template-chip{border:.5px solid var(--border);background:var(--bg-subtle);color:var(--text-secondary);cursor:pointer;border-radius:20px;padding:4px 10px;font-size:11px;transition:all .15s}.template-chip:hover{background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-strong)}.todo-toolbar{border-bottom:.5px solid var(--border);justify-content:space-between;align-items:center;margin-bottom:8px;padding-bottom:8px;display:flex}.todo-count{color:var(--text-secondary);font-size:11px}.text-done{color:var(--green)}.sort-select{background:var(--bg-field);border:.5px solid var(--border);color:var(--text-secondary);cursor:pointer;border-radius:6px;outline:none;padding:3px 8px;font-size:11px}.todo-list{flex-direction:column;gap:5px;min-height:80px;display:flex}.todo-item{background:var(--bg-subtle);border:.5px solid var(--border);border-radius:8px;align-items:center;gap:10px;padding:9px 12px;transition:all .15s;display:flex}.todo-item:hover{background:var(--bg-card-hover);border-color:var(--border-strong)}.todo-checkbox{border:1.5px solid var(--text-muted);cursor:pointer;color:#0000;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:16px;height:16px;transition:all .15s;display:flex}.todo-checkbox.checked{background:var(--purple);color:#fff;border-color:#0000}.todo-text{color:var(--text-primary);flex:1;font-size:13px}.todo-text.done{color:var(--text-muted);text-decoration:line-through}.todo-category-badge{background:var(--purple-dim);color:var(--purple-light);letter-spacing:.03em;white-space:nowrap;border-radius:10px;padding:2px 7px;font-size:10px;font-weight:600}.todo-delete-btn{width:20px;height:20px;color:var(--text-muted);cursor:pointer;opacity:0;background:0 0;border:none;border-radius:4px;justify-content:center;align-items:center;transition:all .15s;display:flex}.todo-item:hover .todo-delete-btn{opacity:1}.todo-delete-btn:hover{color:var(--red);background:color-mix(in srgb, var(--red) 12%, transparent)}.link-add-btn{height:26px;padding:0 10px;font-size:11px}.add-link-form{flex-direction:column;gap:6px;margin-bottom:12px;display:flex}.add-link-form .input{height:30px;font-size:12px}.link-form-actions{gap:6px;display:flex}.link-form-actions .btn{flex:1;height:28px;font-size:11px}.links-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px;display:grid}.link-tile{background:var(--bg-subtle);border:.5px solid var(--border);cursor:pointer;border-radius:10px;flex-direction:column;align-items:center;gap:6px;padding:12px 8px;text-decoration:none;transition:all .15s;display:flex;position:relative}.link-tile:hover{background:var(--bg-card-hover);border-color:var(--border-strong);transform:translateY(-1px)}.link-favicon{border:.5px solid var(--border);background:var(--bg-subtle);border-radius:8px;justify-content:center;align-items:center;width:32px;height:32px;font-size:16px;display:flex}.link-name{color:var(--text-secondary);text-align:center;text-overflow:ellipsis;white-space:nowrap;max-width:90px;font-size:11px;overflow:hidden}.link-delete-btn{background:color-mix(in srgb, var(--red) 15%, transparent);width:18px;height:18px;color:var(--red);cursor:pointer;border:none;border-radius:4px;justify-content:center;align-items:center;display:none;position:absolute;top:4px;right:4px}.link-tile:hover .link-delete-btn{display:flex}.stat-row{border-bottom:.5px solid var(--border);justify-content:space-between;align-items:center;padding:8px 0;display:flex}.stat-row:last-child{border-bottom:none}.stat-label{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.stat-label svg{color:var(--purple-light)}.stat-value-col{text-align:right}.stat-value{color:var(--text-primary);font-variant-numeric:tabular-nums;letter-spacing:-.5px;font-size:18px;font-weight:700;display:block}.stat-green{color:var(--green)}.stat-amber{color:var(--amber)}.progress-track{background:var(--bg-subtle);border-radius:2px;width:80px;height:3px;margin-top:3px;overflow:hidden}.progress-fill{background:var(--purple);border-radius:2px;height:100%;transition:width .3s}.progress-green{background:var(--green)}.loading-screen{background:var(--bg-page);justify-content:center;align-items:center;min-height:100vh;display:flex}.loading-spinner{border:3px solid var(--border);border-top-color:var(--purple);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-page{background:var(--bg-page);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.login-card{background:var(--bg-card);border:.5px solid var(--border);text-align:center;border-radius:18px;flex-direction:column;align-items:center;gap:16px;width:100%;max-width:400px;padding:40px 36px;display:flex}.login-logo{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:8px;margin-bottom:8px;font-size:12px;font-weight:700;display:flex}.login-logo-dot{background:var(--purple);border-radius:50%;width:8px;height:8px}.login-title{color:var(--text-primary);letter-spacing:-.5px;font-size:26px;font-weight:700}.login-subtitle{color:var(--text-secondary);max-width:300px;font-size:14px;line-height:1.6}.login-btn-github{background:var(--text-primary);width:100%;height:44px;color:var(--bg-page);cursor:pointer;border:none;border-radius:10px;justify-content:center;align-items:center;gap:10px;margin-top:8px;font-family:inherit;font-size:14px;font-weight:600;transition:opacity .15s;display:flex}.login-btn-github:hover{opacity:.85}.login-btn-google{background:var(--bg-card);width:100%;height:44px;color:var(--text-primary);border:.5px solid var(--border);cursor:pointer;border-radius:10px;justify-content:center;align-items:center;gap:10px;margin-top:8px;font-family:inherit;font-size:14px;font-weight:600;transition:all .15s;display:flex}.login-btn-google:hover{border-color:var(--border-strong);color:var(--text-primary)}.login-note{color:var(--text-muted);font-size:12px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg-page);color:var(--text-primary);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;transition:background .2s,color .2s}button,input,select{color:inherit;font-family:inherit}.dashboard{flex-direction:column;gap:14px;max-width:1100px;min-height:100vh;margin:0 auto;padding:20px;display:flex}
