:root,[data-theme=dark]{--bg:#0e0e11;--bg-subtle:#141418;--surface:#1a1a20;--surface-raised:#222230;--accent:#0a7ea4;--accent-hover:#0d9bcc;--accent-soft:#0a7ea41a;--accent-glow:#0a7ea42e;--success:#22c55e;--success-soft:#22c55e1a;--warning:#f59e0b;--warning-soft:#f59e0b1a;--error:#ef4444;--error-soft:#ef44441a;--text:#eff0f1;--text-secondary:#a4a9ae;--text-dim:#6e7178;--border:#33333d;--border-subtle:#26262e;--input-bg:#16161c;--input-border:#3a3a45;--input-border-focus:var(--accent);--shadow:0 2px 8px #00000040;--shadow-lg:0 8px 32px #00000059}[data-theme=light]{--bg:#f8f8fa;--bg-subtle:#f0f0f3;--surface:#fff;--surface-raised:#f5f5f7;--accent:#0a7ea4;--accent-hover:#087a9e;--accent-soft:#0a7ea40f;--accent-glow:#0a7ea41a;--success:#16a34a;--success-soft:#16a34a0f;--warning:#d97706;--warning-soft:#d977060f;--error:#dc2626;--error-soft:#dc26260f;--text:#11181c;--text-secondary:#687076;--text-dim:#a0a0a8;--border:#e2e2e8;--border-subtle:#ececf0;--input-bg:#fff;--input-border:#d1d5db;--input-border-focus:var(--accent);--shadow:0 2px 8px #0000000f;--shadow-lg:0 8px 32px #00000014}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Noto Sans,Helvetica,Arial,sans-serif;font-size:16px;line-height:1.5;overflow-x:hidden}a{color:var(--accent);text-decoration:none}button{cursor:pointer;color:inherit;background:0 0;border:none;font-family:inherit}input,select,textarea{color:var(--text);background:var(--input-bg);border:1px solid var(--input-border);border-radius:10px;outline:none;width:100%;padding:13px 16px;font-family:inherit;font-size:16px;transition:border-color .2s,box-shadow .2s}input:focus,select:focus,textarea:focus{border-color:var(--input-border-focus);box-shadow:0 0 0 3px var(--accent-soft)}input:hover,select:hover,textarea:hover{border-color:var(--text-dim)}input::placeholder{color:var(--text-dim)}select{cursor:pointer}.field-label{color:var(--text-secondary);margin-bottom:6px;font-size:13px;font-weight:500;display:block}.btn-ghost{color:var(--text-secondary);border:1px solid var(--border);border-radius:8px;align-items:center;gap:6px;padding:8px 16px;font-size:14px;font-weight:500;transition:all .15s;display:inline-flex}.btn-ghost:hover{background:var(--surface);border-color:var(--text-dim);color:var(--text)}.app-shell{flex-direction:column;min-height:100dvh;display:flex}.app-main{flex-direction:column;flex:1;display:flex}.screen{flex:1;width:100%;max-width:600px;margin:0 auto;padding:20px 20px 100px}.screen-title{letter-spacing:-.5px;margin-bottom:20px;font-size:28px;font-weight:700}.sidebar{display:none}@media (width>=768px){.app-shell{flex-direction:row}.sidebar{background:var(--surface);border-right:1px solid var(--border-subtle);z-index:60;flex-direction:column;flex-shrink:0;width:240px;height:100dvh;padding:24px 16px;display:flex;position:fixed;top:0;left:0}.app-main{margin-left:240px}.screen{max-width:900px;padding:32px 40px 40px}.tab-bar,.fab{display:none}}.sidebar-top{margin-bottom:32px}.sidebar-logo{letter-spacing:-.3px;margin-bottom:20px;padding:0 8px;font-size:20px;font-weight:700}.sidebar-logo span{color:var(--accent)}.sidebar-add{background:var(--accent);color:#fff;border-radius:10px;align-items:center;gap:8px;width:100%;padding:10px 14px;font-size:14px;font-weight:600;transition:background .15s;display:flex}.sidebar-add:hover{background:var(--accent-hover)}.sidebar-nav{flex-direction:column;flex:1;gap:2px;display:flex}.sidebar-nav a{color:var(--text-secondary);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.sidebar-nav a:hover{background:var(--bg-subtle);color:var(--text)}.sidebar-nav a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.sidebar-nav button{color:var(--text-secondary);border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:14px;font-weight:500;text-decoration:none;transition:all .15s;display:flex}.sidebar-nav button:hover{background:var(--bg-subtle);color:var(--text)}.sidebar-nav a svg,.sidebar-nav button svg{flex-shrink:0;width:20px;height:20px}.sidebar-bottom{border-top:1px solid var(--border-subtle);padding:12px 8px}.add-debt-side{display:none}.add-debt-form{max-width:520px}@media (width>=768px){.dashboard-grid{grid-template-columns:1fr 1fr;gap:16px;display:grid}.dashboard-grid .hero-card{grid-column:1/-1}.debt-columns{grid-template-columns:1fr 1fr;gap:8px;display:grid}.plan-layout{grid-template-columns:320px 1fr;align-items:start;gap:24px;display:grid}.plan-controls{position:sticky;top:32px}.add-debt-screen{max-width:820px}.add-debt-layout{grid-template-columns:240px 1fr;align-items:start;gap:48px;display:grid}.add-debt-side{scrollbar-width:thin;scrollbar-color:var(--border) transparent;max-height:calc(100vh - 48px);padding-top:60px;display:block;position:sticky;top:32px;overflow-y:auto}.add-debt-form{max-width:none}}.onboarding{flex-direction:column;align-items:center;padding-top:32px;display:flex}.onboarding-hero{margin-bottom:32px;position:relative}.onboarding-ring{width:120px;height:120px;position:relative}.onboarding-ring-text{text-align:center;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.onboarding-steps{background:var(--surface);border:1px solid var(--border-subtle);border-radius:14px;flex-direction:column;gap:2px;width:100%;margin-top:8px;display:flex;overflow:hidden}.onboarding-step{align-items:center;gap:14px;padding:16px 18px;display:flex}.onboarding-step+.onboarding-step{border-top:1px solid var(--border-subtle)}.onboarding-step-num{background:var(--accent);color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:28px;height:28px;font-size:13px;font-weight:700;display:flex}.onboarding-step-num.dim{background:var(--surface-raised);color:var(--text-dim)}.dialog-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1100;background:#0009;justify-content:center;align-items:center;padding:20px;animation:.15s dialog-fade-in;display:flex;position:fixed;inset:0}@keyframes dialog-fade-in{0%{opacity:0}to{opacity:1}}.dialog-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:16px;width:100%;max-width:360px;padding:28px 24px 20px;animation:.2s dialog-slide-up}@keyframes dialog-slide-up{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.dialog-icon{border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;margin:0 auto 16px;display:flex}.dialog-icon-error{color:#ef4444;background:#ef444426}.dialog-icon-success{color:#22c55e;background:#22c55e26}.dialog-icon-warning{color:#f59e0b;background:#f59e0b26}.dialog-title{margin-bottom:8px;font-size:17px;font-weight:600}.dialog-message{color:var(--text-secondary);margin-bottom:24px;font-size:14px;line-height:1.5}.dialog-actions{gap:10px;display:flex}.dialog-btn{cursor:pointer;border-radius:10px;flex:1;padding:12px 16px;font-size:14px;font-weight:600}.dialog-btn-destructive{color:#fff;background:#ef4444;border:none}.dialog-btn-destructive:hover{background:#dc2626}.pin-screen{background:var(--bg);z-index:2000;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.pin-content{text-align:center;flex-direction:column;align-items:center;width:100%;max-width:320px;padding:20px;display:flex}.pin-dots{gap:16px;margin:24px 0;display:flex}.pin-dot{border:2px solid var(--border);background:0 0;border-radius:50%;width:16px;height:16px;transition:all .15s}.pin-dot-filled{background:var(--accent);border-color:var(--accent)}.pin-dot-error{border-color:var(--error)}.pin-dot-filled.pin-dot-error{background:var(--error)}.pin-shake{animation:.4s pin-shake}@keyframes pin-shake{0%,to{transform:translate(0)}20%{transform:translate(-8px)}40%{transform:translate(8px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}.pin-keypad{grid-template-columns:repeat(3,1fr);gap:10px;width:100%;max-width:280px;margin-top:8px;display:grid}.pin-key{aspect-ratio:1.4;background:var(--surface);width:100%;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:14px;justify-content:center;align-items:center;font-size:24px;font-weight:600;transition:background .1s;display:flex}.pin-key:active{background:var(--surface-raised)}.pin-key:disabled{opacity:.3;cursor:default}.pin-key-sm{aspect-ratio:1.6;border-radius:10px;font-size:20px}.pin-keypad-compact{gap:8px;max-width:240px}.pin-setup-card{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:20px;flex-direction:column;align-items:center;width:100%;max-width:340px;padding:28px 24px 20px;animation:.2s dialog-slide-up;display:flex}.template-highlight{animation:2s ease-in-out 3 template-pulse;border-color:var(--accent)!important;color:var(--accent)!important}@keyframes template-pulse{0%,to{box-shadow:none}50%{box-shadow:0 0 12px #ff6b354d}}.tab-bar{bottom:max(16px, env(safe-area-inset-bottom,16px));-webkit-backdrop-filter:blur(20px);border:1px solid var(--border);z-index:50;background:#161619d9;border-radius:20px;align-items:center;gap:4px;padding:6px;display:flex;position:fixed;left:50%;transform:translate(-50%)}[data-theme=light] .tab-bar{background:#ffffffd9}.tab-bar a{width:44px;height:44px;color:var(--text-dim);border-radius:14px;justify-content:center;align-items:center;font-size:0;text-decoration:none;transition:all .2s;display:flex}.tab-bar a.active{color:var(--accent);background:var(--accent-soft)}.tab-bar a svg{width:20px;height:20px}.fab{background:var(--accent);color:#fff;z-index:50;width:44px;height:44px;box-shadow:none;border-radius:14px;justify-content:center;align-items:center;transition:background .15s,transform .1s;display:flex;position:static}.fab:hover{background:var(--accent-hover)}.fab:active{transform:scale(.92)}.fab svg{width:20px;height:20px}@media (width>=768px){.tab-bar,.fab{display:none!important}}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;transition:border-color .15s}.card:hover{border-color:var(--text-dim)}button.card:active,a.card:active{opacity:.7}.card-sm{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;transition:border-color .15s}.card-sm:hover{border-color:var(--text-dim)}button.card-sm:active{opacity:.7}.hero-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;margin-bottom:24px;padding:24px}.btn-primary{background:var(--accent);color:#fff;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:16px;font-weight:600;transition:background .15s,transform .1s;display:flex}.btn-primary:hover{background:var(--accent-hover)}.btn-primary:active{opacity:.9;transform:scale(.97)}.btn-outline{border:1px solid var(--border);border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:16px;font-weight:500;transition:border-color .15s;display:flex}.btn-outline:hover{border-color:var(--text-dim)}.btn-danger{color:var(--error);font-weight:500}.section-label{color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;margin-top:28px;margin-bottom:12px;font-size:13px;font-weight:600}.pill{border-radius:20px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;display:inline-flex}.pill-accent{background:var(--accent-soft);color:var(--accent)}.pill-success{background:var(--success-soft);color:var(--success)}.pill-warning{background:var(--warning-soft);color:var(--warning)}.empty-state{text-align:center;padding:48px 20px}.empty-state svg{width:48px;height:48px;color:var(--text-dim);margin-bottom:16px}.empty-state h3{margin-bottom:8px;font-size:18px;font-weight:600}.empty-state p{color:var(--text-secondary);margin-bottom:20px;font-size:14px}.warning-box{border-radius:10px;align-items:flex-start;gap:8px;margin-bottom:16px;padding:12px 14px;font-size:13px;display:flex}.warning-box.warn{background:var(--warning-soft);color:var(--warning)}.warning-box.info{background:var(--accent-soft);color:var(--accent)}.warning-box.err{background:var(--error-soft);color:var(--error)}.warning-box svg{flex-shrink:0;width:16px;height:16px;margin-top:1px}.modal-overlay{z-index:200;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.modal-sheet{background:var(--surface);border-radius:20px;width:100%;max-width:480px;max-height:85dvh;padding:24px;overflow-y:auto}.modal-sheet h2{margin-bottom:8px;font-size:20px;font-weight:700}.modal-actions{gap:8px;margin-top:20px;display:flex}.modal-actions button{flex:1}.toggle-group{background:var(--bg);border-radius:10px;gap:3px;padding:3px;display:flex}.toggle-btn{text-align:center;color:var(--text-dim);border-radius:8px;flex:1;padding:10px 12px;font-size:14px;font-weight:500;transition:all .15s}.toggle-btn:active{transform:scale(.98)}.toggle-btn.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.chip-row{scrollbar-width:none;gap:6px;padding:2px 0;display:flex;overflow-x:auto}.chip-row::-webkit-scrollbar{display:none}.chip{white-space:nowrap;border:1px solid var(--border);color:var(--text-secondary);border-radius:20px;flex-shrink:0;padding:8px 14px;font-size:13px;font-weight:500;transition:all .15s}.chip.active{background:var(--accent-soft);border-color:var(--accent);color:var(--accent)}.chip.disabled{opacity:.4;cursor:default}.pro-badge{text-transform:uppercase;letter-spacing:.04em;color:var(--accent);background:var(--accent-soft);border-radius:4px;align-items:center;gap:3px;padding:2px 6px;font-size:10px;font-weight:700;display:inline-flex}input[type=range]{appearance:none;background:var(--border);border:none;border-radius:3px;height:6px;padding:0}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;background:var(--accent);cursor:pointer;border:3px solid var(--surface);width:22px;height:22px;box-shadow:var(--shadow);border-radius:50%}input[type=range]::-moz-range-thumb{background:var(--accent);cursor:pointer;border:3px solid var(--surface);width:22px;height:22px;box-shadow:var(--shadow);border-radius:50%}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.fade-in{animation:.3s fadeIn}
