@import "https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&family=JetBrains+Mono:wght@500;600;700&display=swap";:root{--bg-primary:#070a12;--bg-secondary:#0e1526;--bg-card:#121a2cb8;--bg-card-hover:#1a2640d9;--border-subtle:#ffffff14;--border-bright:#ffffff29;--border-accent:#10b9814d;--accent-emerald:#10b981;--accent-emerald-light:#34d399;--accent-emerald-glow:#10b98140;--accent-gold:#f59e0b;--accent-gold-light:#fbbf24;--accent-gold-glow:#f59e0b40;--accent-blue:#3b82f6;--accent-blue-glow:#3b82f640;--accent-rose:#f43f5e;--text-main:#f8fafc;--text-muted:#94a3b8;--text-dim:#64748b;--font-sans:"Plus Jakarta Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", monospace;--radius-sm:8px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-pill:9999px;--shadow-card:0 10px 30px -10px #00000080, 0 0 1px 1px #ffffff0d;--shadow-glow:0 0 25px -5px var(--accent-emerald-glow);--transition:all .25s cubic-bezier(.16, 1, .3, 1)}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-primary);color:var(--text-main);background-image:radial-gradient(circle at 15% 10%,#10b9811f 0%,#0000 45%),radial-gradient(circle at 85% 25%,#3b82f61a 0%,#0000 40%),radial-gradient(circle at 50% 80%,#f59e0b0f 0%,#0000 50%);background-attachment:fixed;justify-content:center;min-height:100vh;line-height:1.5;display:flex;overflow-x:hidden}.app-viewport{background:var(--bg-secondary);width:100%;max-width:480px;min-height:100vh;padding-bottom:calc(85px + env(safe-area-inset-bottom,16px));border-left:1px solid #ffffff0d;border-right:1px solid #ffffff0d;flex-direction:column;display:flex;position:relative;box-shadow:0 0 50px #000000b3}@media (width>=900px){body.wide-mode .app-viewport{max-width:980px}}.app-header{z-index:40;-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--border-subtle);background:#0e1526d9;justify-content:space-between;align-items:center;padding:18px 20px 14px;display:flex;position:sticky;top:0}.brand-section{align-items:center;gap:10px;display:flex}.brand-logo{color:#fff;background:linear-gradient(135deg,#10b981,#047857);border-radius:10px;justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 4px 12px #10b98166}.brand-title{letter-spacing:-.3px;background:linear-gradient(90deg,#fff,#cbd5e1);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:17px;font-weight:700}.brand-subtitle{color:var(--text-dim);font-size:11px}.header-actions{align-items:center;gap:8px;display:flex}.icon-btn{border:1px solid var(--border-subtle);color:var(--text-muted);cursor:pointer;width:34px;height:34px;transition:var(--transition);background:#ffffff0f;border-radius:50%;justify-content:center;align-items:center;display:flex}.icon-btn:hover,.icon-btn:active{color:var(--text-main);background:#ffffff1f;transform:scale(1.05)}.app-content{flex:1;padding:16px 18px 24px}.hero-card{border:1px solid var(--border-bright);border-radius:var(--radius-xl);background:linear-gradient(145deg,#162138f2,#0d1424f2);margin-bottom:20px;padding:22px 20px;position:relative;overflow:hidden;box-shadow:0 20px 40px -15px #000000b3}.hero-card:before{content:"";pointer-events:none;background:radial-gradient(circle,#10b98133,#0000 70%);width:160px;height:160px;position:absolute;top:-60px;right:-60px}.hero-meta{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.hero-label{text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);align-items:center;gap:6px;font-size:12px;display:flex}.privacy-toggle{cursor:pointer;opacity:.7;transition:var(--transition)}.privacy-toggle:hover{opacity:1}.hero-total-amount{font-family:var(--font-mono);letter-spacing:-.8px;color:#fff;text-shadow:0 2px 10px #0000004d;align-items:baseline;gap:4px;font-size:32px;font-weight:800;display:flex}.hero-total-amount .currency{color:var(--accent-emerald-light);font-size:20px;font-weight:600}.hero-progress-box{margin-top:14px;margin-bottom:18px}.progress-header{color:var(--text-muted);justify-content:space-between;margin-bottom:6px;font-size:11px;display:flex}.progress-track{border-radius:var(--radius-pill);background:#ffffff14;width:100%;height:7px;position:relative;overflow:hidden}.progress-fill{border-radius:var(--radius-pill);background:linear-gradient(90deg,#059669,#10b981,#34d399);height:100%;transition:width .8s cubic-bezier(.16,1,.3,1);box-shadow:0 0 10px #10b98199}.hero-grid{border-top:1px solid var(--border-subtle);grid-template-columns:1fr 1fr;gap:12px;padding-top:14px;display:grid}.hero-stat-item{border-radius:var(--radius-md);background:#ffffff08;border:1px solid #ffffff0a;padding:10px 12px}.hero-stat-label{color:var(--text-dim);margin-bottom:2px;font-size:11px}.hero-stat-val{font-family:var(--font-mono);color:#f1f5f9;font-size:16px;font-weight:700}.hero-stat-val.gold{color:var(--accent-gold-light)}.hero-stat-val.emerald{color:var(--accent-emerald-light)}.cashflow-summary-strip{border-top:1px dashed #ffffff14;justify-content:space-between;align-items:center;margin-top:14px;padding-top:12px;font-size:11px;display:flex}.strip-item{flex-direction:column;display:flex}.strip-label{color:var(--text-dim);font-size:10px}.strip-val{font-family:var(--font-mono);color:#e2e8f0;font-size:13px;font-weight:700}.strip-val.green{color:var(--accent-emerald-light)}.payment-radar-banner{border-radius:var(--radius-lg);background:linear-gradient(135deg,#f59e0b1f,#162138cc);border:1px solid #f59e0b4d;justify-content:space-between;align-items:center;margin-bottom:22px;padding:14px 16px;display:flex;box-shadow:0 4px 20px -4px #f59e0b26}.radar-left{align-items:center;gap:12px;display:flex}.radar-pulse-icon{width:36px;height:36px;color:var(--accent-gold);background:#f59e0b33;border-radius:10px;justify-content:center;align-items:center;display:flex;position:relative}.radar-pulse-icon:after{content:"";border:2px solid var(--accent-gold);opacity:.6;border-radius:12px;animation:2s infinite pulse;position:absolute;inset:-2px}@keyframes pulse{0%{opacity:.8;transform:scale(.95)}70%{opacity:0;transform:scale(1.15)}to{opacity:0;transform:scale(1.15)}}.radar-title{color:#fff;font-size:13px;font-weight:700}.radar-desc{color:var(--text-muted);font-size:11px}.radar-right{text-align:right}.radar-amount{font-family:var(--font-mono);color:var(--accent-gold-light);font-size:15px;font-weight:700}.radar-tag{color:var(--accent-gold);background:#f59e0b33;border-radius:10px;margin-top:2px;padding:2px 7px;font-size:10px;display:inline-block}.section-header{justify-content:space-between;align-items:center;margin-top:10px;margin-bottom:12px;display:flex}.section-title{color:#fff;align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.section-badge{border-radius:var(--radius-pill);color:var(--text-muted);background:#ffffff14;padding:2px 8px;font-size:11px;font-weight:500}.section-actions{align-items:center;gap:8px;display:flex}.month-selector{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;background:#ffffff0f;align-items:center;gap:4px;padding:4px 10px;font-size:12px;display:flex}.timeline-list{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.timeline-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:var(--transition);padding:16px;position:relative;overflow:hidden}.timeline-card:hover{background:var(--bg-card-hover);border-color:var(--border-bright)}.timeline-card.is-paid{opacity:.65;background:#0e152680;border-color:#10b98133}.timeline-card.is-paid .debt-name{color:var(--text-dim);text-decoration:line-through}.timeline-card.is-highlight{background:linear-gradient(145deg,#1e2944cc,#141d30cc);border-color:#f59e0b66}.card-top{justify-content:space-between;align-items:flex-start;margin-bottom:12px;display:flex}.card-bank-info{align-items:center;gap:10px;display:flex}.bank-avatar{color:#fff;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:13px;font-weight:700;display:flex;box-shadow:0 4px 10px #0000004d}.bank-details{flex-direction:column;display:flex}.debt-name{color:#fff;font-size:14px;font-weight:700}.debt-sub-info{color:var(--text-dim);align-items:center;gap:6px;margin-top:2px;font-size:11px;display:flex}.pill-tag{color:var(--text-muted);background:#ffffff14;border-radius:4px;padding:1px 6px;font-size:10px}.card-due-tag{text-align:right;flex-direction:column;align-items:flex-end;display:flex}.due-day-num{font-family:var(--font-mono);color:#fff;font-size:13px;font-weight:700}.due-countdown-label{color:var(--text-dim);margin-top:2px;font-size:10px}.due-countdown-label.urgent{color:var(--accent-gold-light);font-weight:600}.card-bottom{border-top:1px solid #ffffff0a;justify-content:space-between;align-items:center;padding-top:10px;display:flex}.repay-amount-box{flex-direction:column;display:flex}.amount-label{color:var(--text-dim);font-size:10px}.amount-num{font-family:var(--font-mono);color:#fff;font-size:17px;font-weight:700}.check-pay-btn{border-radius:var(--radius-pill);cursor:pointer;transition:var(--transition);border:1px solid var(--border-subtle);color:#cbd5e1;background:#ffffff0f;align-items:center;gap:6px;padding:6px 14px;font-size:12px;font-weight:600;display:flex}.check-pay-btn:hover{color:var(--accent-emerald-light);background:#10b98126;border-color:#10b9814d}.check-pay-btn.checked{border-color:var(--accent-emerald);color:var(--accent-emerald-light);background:#10b98133}.debt-item-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);transition:var(--transition);margin-bottom:12px;padding:16px}.debt-item-card:hover{background:var(--bg-card-hover);border-color:var(--border-bright)}.debt-card-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.debt-amount-row{justify-content:space-between;margin-bottom:8px;display:flex}.amount-left .label,.amount-right .label{color:var(--text-dim);font-size:11px}.amount-left .val{font-family:var(--font-mono);color:#fff;font-size:16px;font-weight:700}.amount-right{text-align:right}.amount-right .val{font-family:var(--font-mono);color:var(--text-muted);font-size:14px}.debt-progress-wrap{margin:10px 0 12px}.debt-actions-bar{border-top:1px solid #ffffff0a;justify-content:flex-end;gap:8px;padding-top:10px;display:flex}.sm-action-btn{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-muted);cursor:pointer;transition:var(--transition);background:#ffffff0d;align-items:center;gap:4px;padding:4px 10px;font-size:11px;display:flex}.sm-action-btn:hover{color:#fff;background:#ffffff1a}.chart-card{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);margin-bottom:18px;padding:18px}.chart-card-title{color:#fff;margin-bottom:4px;font-size:14px;font-weight:700}.chart-card-subtitle{color:var(--text-dim);margin-bottom:14px;font-size:11px}.chart-canvas-box{justify-content:center;width:100%;display:flex;position:relative}.tip-callout{border-radius:var(--radius-md);color:#93c5fd;background:#3b82f614;border:1px solid #3b82f633;align-items:flex-start;gap:10px;margin-top:14px;padding:12px 14px;font-size:12px;display:flex}.roadmap-step-item{margin-bottom:16px;padding-left:28px;position:relative}.roadmap-step-item:before{content:"";background:#ffffff1a;width:2px;position:absolute;top:6px;bottom:-16px;left:6px}.roadmap-step-item:last-child:before{display:none}.roadmap-dot{background:var(--accent-emerald);width:14px;height:14px;box-shadow:0 0 10px var(--accent-emerald-glow);border-radius:50%;position:absolute;top:2px;left:0}.roadmap-step-title{color:#fff;margin-bottom:4px;font-size:13px;font-weight:700}.roadmap-step-desc{color:var(--text-muted);font-size:12px;line-height:1.5}.bottom-nav{-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border-subtle);width:100%;max-width:480px;padding:8px 12px calc(8px + env(safe-area-inset-bottom,12px));z-index:50;background:#0b101de6;justify-content:space-around;display:flex;position:fixed;bottom:0}@media (width>=900px){body.wide-mode .bottom-nav{max-width:980px}}.nav-item{color:var(--text-dim);cursor:pointer;border-radius:var(--radius-md);transition:var(--transition);background:0 0;border:none;flex-direction:column;align-items:center;gap:4px;padding:4px 10px;font-size:11px;font-weight:500;display:flex}.nav-item svg{stroke-width:2px;width:20px;height:20px}.nav-item:hover,.nav-item.active{color:var(--accent-emerald-light)}.nav-item.active{background:#10b9811a}.fab-btn{bottom:calc(75px + env(safe-area-inset-bottom,16px));color:#fff;cursor:pointer;z-index:45;width:48px;height:48px;transition:var(--transition);background:linear-gradient(135deg,#10b981,#059669);border:none;border-radius:50%;justify-content:center;align-items:center;display:flex;position:fixed;right:calc(50% - 220px);box-shadow:0 8px 25px #10b98180}@media (width<=480px){.fab-btn{right:20px}}.fab-btn:hover{transform:scale(1.08)rotate(90deg)}.modal-overlay{-webkit-backdrop-filter:blur(8px);z-index:100;opacity:0;visibility:hidden;background:#000000bf;justify-content:center;align-items:flex-end;transition:opacity .3s,visibility .3s;display:flex;position:fixed;inset:0}.modal-overlay.active{opacity:1;visibility:visible}.modal-sheet{border-top-left-radius:var(--radius-xl);border-top-right-radius:var(--radius-xl);border-top:1px solid var(--border-bright);background:#0f172a;width:100%;max-width:480px;max-height:85vh;padding:24px 20px 32px;transition:transform .35s cubic-bezier(.16,1,.3,1);overflow-y:auto;transform:translateY(100%)}.modal-overlay.active .modal-sheet{transform:translateY(0)}.sheet-handle{background:#fff3;border-radius:2px;width:40px;height:4px;margin:0 auto 16px}.sheet-title{color:#fff;justify-content:space-between;align-items:center;margin-bottom:16px;font-size:17px;font-weight:700;display:flex}.form-group{margin-bottom:14px}.form-label{color:var(--text-muted);margin-bottom:6px;font-size:12px;display:block}.form-input,.form-select{border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:#fff;width:100%;transition:var(--transition);background:#ffffff0d;padding:10px 14px;font-family:inherit;font-size:14px}.form-input:focus,.form-select:focus{border-color:var(--accent-emerald);background:#ffffff14;outline:none;box-shadow:0 0 0 3px #10b98126}.form-submit-btn{color:#fff;border-radius:var(--radius-md);cursor:pointer;width:100%;transition:var(--transition);background:linear-gradient(135deg,#10b981,#059669);border:none;margin-top:10px;padding:12px;font-size:15px;font-weight:700;box-shadow:0 6px 20px #10b9814d}.form-submit-btn:hover{transform:translateY(-1px);box-shadow:0 8px 25px #10b98166}.btn-secondary{color:var(--text-main);box-shadow:none;background:#ffffff14;margin-top:8px}.btn-secondary:hover{background:#ffffff1f}.log-item{border-radius:var(--radius-md);background:#ffffff08;border:1px solid #ffffff0d;justify-content:space-between;align-items:center;margin-bottom:8px;padding:12px 14px;display:flex}.log-left .log-title{color:#fff;font-size:13px;font-weight:600}.log-left .log-time{color:var(--text-dim);font-size:11px}.log-right{text-align:right}.log-amount{font-family:var(--font-mono);color:var(--accent-emerald-light);font-size:14px;font-weight:700}.toast-notice{border:1px solid var(--accent-emerald);color:#fff;border-radius:var(--radius-pill);box-shadow:0 10px 30px #00000080, 0 0 15px var(--accent-emerald-glow);z-index:200;opacity:0;pointer-events:none;background:#101827f2;align-items:center;gap:8px;padding:10px 18px;font-size:13px;font-weight:600;transition:transform .35s cubic-bezier(.16,1,.3,1),opacity .35s;display:flex;position:fixed;top:20px;left:50%;transform:translate(-50%)translateY(-100px)}.toast-notice.show{opacity:1;transform:translate(-50%)translateY(0)}.user-chip{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);color:#cbd5e1;background:#ffffff0f;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:600;display:flex}.user-avatar-dot{background:var(--accent-emerald);width:7px;height:7px;box-shadow:0 0 6px var(--accent-emerald);border-radius:50%}.auth-container{z-index:10;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:30px 24px;display:flex;position:relative}.auth-card{border:1px solid var(--border-bright);border-radius:var(--radius-xl);-webkit-backdrop-filter:blur(20px);background:linear-gradient(160deg,#162138f2,#0b1120f2);width:100%;max-width:400px;padding:32px 24px;box-shadow:0 25px 60px -15px #000c,0 0 40px #10b98114}.auth-header{text-align:center;margin-bottom:24px}.auth-logo-badge{color:#fff;background:linear-gradient(135deg,#10b981,#047857);border-radius:18px;justify-content:center;align-items:center;width:58px;height:58px;margin-bottom:12px;display:inline-flex;box-shadow:0 10px 25px #10b98173}.auth-title{letter-spacing:-.5px;color:#fff;font-size:22px;font-weight:800}.auth-subtitle{color:var(--text-dim);margin-top:4px;font-size:12px}.input-with-icon{align-items:center;display:flex;position:relative}.input-icon-left{color:var(--text-dim);pointer-events:none;position:absolute;left:12px}.input-icon-right{color:var(--text-dim);cursor:pointer;transition:var(--transition);position:absolute;right:12px}.input-icon-right:hover{color:#fff}.input-with-icon .form-input{padding-left:38px;padding-right:38px}
