@import "https://fonts.googleapis.com/css2?family=Syne:wght@400;500;600;700&family=DM+Sans:wght@300;400;500&display=swap";
*,:before,:after{box-sizing:border-box}html{-webkit-tap-highlight-color:transparent}:root{--bg-primary:#0a0a0f;--bg-secondary:#0f172a;--bg-card:#ffffff0a;--bg-card-hover:#ffffff12;--bg-input:#ffffff0d;--border:#ffffff14;--border-strong:#ffffff26;--text-primary:#fff;--text-secondary:#9ca3af;--text-muted:#4b5563;--text-faint:#1f2937;--accent:#a78bfa;--accent-bg:#a78bfa1f;--accent-border:#a78bfa4d;--success:#34d399;--success-bg:#34d3991f;--warning:#fbbf24;--warning-bg:#fbbf241f;--danger:#f87171;--danger-bg:#ef44441a;--shadow-card:0 2px 12px #0000004d;--shadow-glow:0 4px 20px #7c3aed33}[data-theme=light]{--bg-primary:#f8f7ff;--bg-secondary:#fff;--bg-card:#fff;--bg-card-hover:#f3f0ff;--bg-input:#f5f3ff;--border:#00000014;--border-strong:#0000002e;--text-primary:#0f0a1e;--text-secondary:#374151;--text-muted:#6b7280;--text-faint:#9ca3af;--accent:#7c3aed;--accent-bg:#7c3aed14;--accent-border:#7c3aed40;--success:#059669;--success-bg:#05966914;--warning:#d97706;--warning-bg:#d9770614;--danger:#dc2626;--danger-bg:#dc26260f;--shadow-card:0 2px 12px #00000014;--shadow-glow:0 4px 20px #7c3aed26}body{background:var(--bg-primary);color:var(--text-primary);-webkit-font-smoothing:antialiased;font-family:DM Sans,system-ui,sans-serif;transition:background .3s,color .3s}::-webkit-scrollbar{width:3px;height:3px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:2px}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes shimmer{0%,to{opacity:.3}50%{opacity:.7}}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@keyframes checkPop{0%{transform:scale(1)}40%{transform:scale(1.35)}70%{transform:scale(.9)}to{transform:scale(1)}}@keyframes streakFlame{0%,to{transform:scale(1)rotate(-3deg)}50%{transform:scale(1.2)rotate(3deg)}}@keyframes successPulse{0%{box-shadow:0 0 #34d39966}70%{box-shadow:0 0 0 8px #34d39900}to{box-shadow:0 0 #34d39900}}@keyframes slideDown{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}@keyframes ringDraw{0%{stroke-dashoffset:var(--dash-total)}to{stroke-dashoffset:var(--dash-offset)}}.btn-press{transition:transform .1s,box-shadow .15s,opacity .15s;position:relative;overflow:hidden}.btn-press:active{transform:scale(.96)}.btn-press:hover:not(:disabled){transform:translateY(-1px)}.btn-press:disabled{opacity:.5;cursor:not-allowed}.btn-primary{color:#fff;box-shadow:var(--shadow-glow);background:linear-gradient(135deg,#7c3aed,#2563eb);border:none;font-weight:600;transition:all .2s}.btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 25px #7c3aed66}.btn-success{color:#fff;background:linear-gradient(135deg,#059669,#0d9488);border:none;font-weight:600;transition:all .2s}.btn-success:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 8px 25px #0596694d}.btn-ghost{background:var(--bg-card);border:1px solid var(--border);color:var(--text-muted);transition:all .15s}.btn-ghost:hover:not(:disabled){background:var(--bg-card-hover);color:var(--text-primary);border-color:var(--border-strong)}.item-card-rich{background:var(--bg-card);border:1px solid var(--border);box-shadow:var(--shadow-card);cursor:pointer;border-radius:14px;transition:all .2s;overflow:hidden}.item-card-rich:hover{background:var(--bg-card-hover);border-color:var(--border-strong);transform:translateY(-1px);box-shadow:0 4px 20px #00000026}.item-card-rich.expanded{border-color:var(--border-strong);border-radius:14px 14px 0 0}.domain-pill{white-space:nowrap;border:1px solid;border-radius:20px;align-items:center;gap:4px;padding:3px 9px;font-size:11px;font-weight:500;display:inline-flex}.status-badge{cursor:pointer;border:none;border-radius:20px;padding:3px 9px;font-size:11px;font-weight:500;transition:all .15s}.status-badge:hover{filter:brightness(1.1);transform:scale(1.05)}.status-badge:active{transform:scale(.95)}.input-field{background:var(--bg-input);border:1px solid var(--border);color:var(--text-primary);transition:border-color .2s,box-shadow .2s}.input-field:focus{border-color:var(--accent-border);box-shadow:0 0 0 3px var(--accent-bg);outline:none}.input-field::placeholder{color:var(--text-muted)}.table-row{cursor:pointer;transition:background .12s}.table-row:hover{background:var(--bg-card-hover)!important}.habit-check{transition:all .2s cubic-bezier(.34,1.56,.64,1)}.habit-check:hover:not(:disabled){transform:scale(1.1)}.habit-check:active:not(:disabled){transform:scale(.9)}.habit-check.done{animation:.4s cubic-bezier(.34,1.56,.64,1) forwards checkPop}.nav-pill{transition:all .15s}.nav-pill:hover{filter:brightness(1.1);transform:translateY(-1px)}.nav-pill:active{transform:scale(.95)}.skeleton{background:var(--bg-card);border-radius:6px;animation:1.4s ease-in-out infinite shimmer}.stagger>*{animation:.25s ease-out both fadeUp}.stagger>:first-child{animation-delay:0s}.stagger>:nth-child(2){animation-delay:40ms}.stagger>:nth-child(3){animation-delay:80ms}.stagger>:nth-child(4){animation-delay:.12s}.stagger>:nth-child(5){animation-delay:.16s}.stagger>:nth-child(6){animation-delay:.2s}.stagger>:nth-child(7){animation-delay:.24s}.stagger>:nth-child(8){animation-delay:.28s}.progress-ring circle.track{stroke:var(--border)}.progress-ring circle.fill{transform-origin:50%;animation:.8s ease-out forwards ringDraw;transform:rotate(-90deg)}[data-theme=light] .on-dark{display:none}[data-theme=light] .on-light{display:block}.on-light{display:none}.on-dark{display:block}.theme-toggle{border:1px solid var(--border);background:var(--bg-card);width:36px;height:36px;color:var(--text-secondary);cursor:pointer;border-radius:50%;justify-content:center;align-items:center;font-size:16px;transition:all .2s;display:flex}.theme-toggle:hover{background:var(--bg-card-hover);border-color:var(--border-strong);transform:rotate(20deg)}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
