@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap";:root{--primary: #4F46E5;--primary-light: #EEF2FF;--primary-dark: #3730A3;--green: #10B981;--green-bg: #ECFDF5;--red: #EF4444;--red-bg: #FEF2F2;--orange: #F59E0B;--orange-bg: #FFFBEB;--navy: #0B1220;--navy-2: #141B2E;--page-bg: #F5F6FA;--card-bg: #FFFFFF;--text-dark: #111827;--text-muted: #6B7280;--text-faint: #9CA3AF;--border: #EEF0F4}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;padding:0}html{background:#171A21}body{font-family:Inter,-apple-system,BlinkMacSystemFont,SF Pro Text,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text-dark);-webkit-font-smoothing:antialiased}#root{min-height:100dvh}button,input,select,textarea{font-family:inherit}a{text-decoration:none;color:inherit}::-webkit-scrollbar{width:0;height:0}.app-shell{max-width:480px;margin:0 auto;height:100dvh;background:var(--page-bg);position:relative;display:flex;flex-direction:column;overflow:hidden}@media (min-width: 481px){.app-shell{height:100vh;box-shadow:0 0 0 1px #ffffff0f}}.app-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:calc(83px + env(safe-area-inset-bottom));-ms-overflow-style:none;scrollbar-width:none}.app-scroll::-webkit-scrollbar{display:none}.scr-pad{padding:calc(14px + env(safe-area-inset-top)) 18px 28px}h2.scr-title{font-size:26px;font-weight:800;color:var(--text-dark);margin:4px 0 18px;letter-spacing:-.3px}.section-head{display:flex;align-items:center;justify-content:space-between;margin:22px 0 12px}.section-head h3{font-size:15px;font-weight:700;color:var(--text-dark);margin:0}.section-head a,.link{font-size:13px;color:var(--primary);font-weight:600;text-decoration:none;cursor:pointer;background:none;border:none;padding:0;font-family:inherit}.balance-card{background:linear-gradient(135deg,var(--navy) 0%,#241A45 100%);border-radius:20px;padding:22px 20px;color:#fff;position:relative;overflow:hidden}.balance-card .label{font-size:12px;color:#b7bedc;font-weight:600;letter-spacing:.3px;text-transform:uppercase}.balance-card .amount{font-size:32px;font-weight:700;margin:6px 0 10px;letter-spacing:-.5px}.balance-card .change{display:inline-flex;align-items:center;gap:4px;font-size:13px;font-weight:600;padding:4px 10px;border-radius:20px}.balance-card .change.pos{background:rgba(16,185,129,.18);color:#34d399}.balance-card .change.neg{background:rgba(239,68,68,.18);color:#f87171}.balance-card .change.flat{background:rgba(255,255,255,.12);color:#cbd3f0}.sparkline{position:absolute;right:14px;bottom:14px;opacity:.9}.acc-card{display:flex;align-items:center;gap:12px;background:var(--card-bg);border-radius:16px;padding:14px;margin-bottom:10px;cursor:pointer;border:1px solid var(--border);transition:transform .1s}.acc-card:active{transform:scale(.98)}.acc-logo{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:15px;flex-shrink:0;color:#fff;font-weight:700}.acc-info{flex:1;min-width:0}.acc-info .name{font-size:14px;font-weight:600;color:var(--text-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.acc-info .type{font-size:12px;color:var(--text-muted);margin-top:1px}.acc-right{text-align:right;flex-shrink:0}.acc-right .bal{font-size:14px;font-weight:700;color:var(--text-dark)}.chevron{color:var(--text-faint);margin-left:2px;flex-shrink:0}.quick-actions{display:flex;gap:10px;margin-top:16px}.qa-btn{flex:1;background:var(--card-bg);border:1px solid var(--border);border-radius:14px;padding:12px 6px;text-align:center;cursor:pointer;font-family:inherit}.qa-btn .ic{width:34px;height:34px;border-radius:10px;background:var(--primary-light);color:var(--primary);display:flex;align-items:center;justify-content:center;margin:0 auto 6px}.qa-btn span{font-size:11px;font-weight:600;color:var(--text-dark);display:block}.tx-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--border);cursor:pointer;background:none;border-left:none;border-right:none;border-top:none;width:100%;text-align:left;font-family:inherit}.tx-row:last-child{border-bottom:none}.tx-ic{width:38px;height:38px;border-radius:11px;background:var(--primary-light);display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.tx-mid{flex:1;min-width:0}.tx-mid .m{font-size:14px;font-weight:600;color:var(--text-dark);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-mid .c{font-size:12px;color:var(--text-muted);margin-top:1px}.tx-amt{font-size:14px;font-weight:700;flex-shrink:0}.tx-amt.pos{color:var(--green)}.tx-amt.neg{color:var(--text-dark)}.tx-date-label{font-size:12px;font-weight:700;color:var(--text-faint);text-transform:uppercase;letter-spacing:.4px;margin:16px 0 4px}.tx-date-label:first-child{margin-top:0}.card{background:var(--card-bg);border-radius:16px;padding:14px 16px;border:1px solid var(--border)}.search-box{display:flex;align-items:center;gap:8px;background:var(--card-bg);border:1px solid var(--border);border-radius:12px;padding:10px 12px;margin-bottom:12px}.search-box input{border:none;outline:none;background:transparent;font-size:14px;flex:1;color:var(--text-dark);font-family:inherit;min-width:0}.chip-row{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px;margin-bottom:6px;-ms-overflow-style:none;scrollbar-width:none}.chip-row::-webkit-scrollbar{display:none}.chip{flex-shrink:0;padding:7px 14px;border-radius:20px;background:var(--card-bg);border:1px solid var(--border);font-size:12.5px;font-weight:600;color:var(--text-muted);cursor:pointer;white-space:nowrap;font-family:inherit}.chip.active{background:var(--primary);color:#fff;border-color:var(--primary)}.ring-wrap{display:flex;align-items:center;justify-content:center;padding:14px 0 6px;position:relative}.ring{width:170px;height:170px;border-radius:50%;display:flex;align-items:center;justify-content:center}.ring-inner{width:126px;height:126px;background:var(--page-bg);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center}.ring-inner .pct{font-size:24px;font-weight:700;color:var(--text-dark)}.ring-inner .lbl{font-size:11px;color:var(--text-muted);margin-top:2px;text-align:center;padding:0 10px}.cat-row{cursor:pointer;padding:12px 0;border-bottom:1px solid var(--border)}.cat-row:last-child{border-bottom:none}.cat-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:7px;gap:8px}.cat-name{display:flex;align-items:center;gap:8px;font-size:13.5px;font-weight:600;color:var(--text-dark);min-width:0}.cat-name span.txt{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cat-nums{font-size:12.5px;color:var(--text-muted);font-weight:600;flex-shrink:0}.bar-track{height:7px;background:var(--border);border-radius:6px;overflow:hidden}.bar-fill{height:100%;border-radius:6px;transition:width .3s ease}.cat-detail{max-height:0;overflow:hidden;transition:max-height .2s ease;font-size:12px;color:var(--text-muted)}.cat-row.open .cat-detail{max-height:120px;margin-top:8px}.goal-card{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:15px;margin-bottom:12px;cursor:pointer}.goal-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:10px;gap:8px}.goal-name{font-size:14px;font-weight:700;color:var(--text-dark)}.goal-deadline{font-size:11px;color:var(--text-muted);margin-top:2px}.goal-pct{font-size:13px;font-weight:700;color:var(--primary);flex-shrink:0}.goal-nums{display:flex;justify-content:space-between;font-size:12px;color:var(--text-muted);margin-top:6px}.invest-card{background:var(--card-bg);border:1px solid var(--border);border-radius:16px;padding:16px}.invest-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.invest-total{font-size:24px;font-weight:700;color:var(--text-dark)}.alloc-row{display:flex;align-items:center;gap:10px;padding:8px 0}.alloc-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}.alloc-name{flex:1;font-size:13px;color:var(--text-dark);font-weight:600}.alloc-pct{font-size:12.5px;color:var(--text-muted);font-weight:600}.btn-primary{background:var(--primary);color:#fff;border:none;border-radius:12px;padding:13px;font-size:14px;font-weight:700;width:100%;cursor:pointer;font-family:inherit}.btn-primary:disabled{opacity:.55;cursor:default}.btn-secondary{background:var(--primary-light);color:var(--primary);border:none;border-radius:12px;padding:13px;font-size:14px;font-weight:700;width:100%;cursor:pointer;font-family:inherit}.btn-danger{background:var(--red-bg);color:var(--red);border:none;border-radius:12px;padding:13px;font-size:14px;font-weight:700;width:100%;cursor:pointer;font-family:inherit}.btn-row{display:flex;gap:10px;margin-top:8px}.top-header{display:flex;align-items:center;gap:10px;padding:2px 0 16px}.back-btn{width:32px;height:32px;border-radius:10px;background:var(--card-bg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.top-header h2{font-size:18px;font-weight:700;color:var(--text-dark);margin:0;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.icon-btn{width:32px;height:32px;border-radius:10px;background:var(--card-bg);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;color:var(--text-dark)}.detail-hero{border-radius:20px;padding:22px 20px;color:#fff;margin-bottom:18px}.detail-hero .type{font-size:12px;opacity:.85;font-weight:600;text-transform:uppercase;letter-spacing:.4px}.detail-hero .bal{font-size:30px;font-weight:700;margin:8px 0 4px}.detail-hero .sub{font-size:11.5px;opacity:.75}.tabbar{position:fixed;left:0;right:0;bottom:0;margin:0 auto;max-width:480px;height:calc(83px + env(safe-area-inset-bottom));background:rgba(255,255,255,.96);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--border);display:flex;align-items:flex-start;padding-top:9px;z-index:200}.tab-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;cursor:pointer;color:var(--text-faint);background:none;border:none;font-family:inherit}.tab-item.active{color:var(--primary)}.tab-item span{font-size:10.5px;font-weight:600}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;margin:0 auto;max-width:480px;background:rgba(15,17,23,.45);opacity:0;pointer-events:none;transition:opacity .2s;z-index:300;display:flex;align-items:flex-end}.modal-bg.active{opacity:1;pointer-events:auto}.modal-sheet{background:#fff;width:100%;max-height:88vh;overflow-y:auto;border-radius:24px 24px 0 0;padding:14px 20px calc(24px + env(safe-area-inset-bottom));transform:translateY(100%);transition:transform .25s cubic-bezier(.32,.72,0,1)}.modal-bg.active .modal-sheet{transform:translateY(0)}.modal-handle{width:36px;height:4px;background:var(--border);border-radius:4px;margin:0 auto 16px}.modal-sheet h3{font-size:17px;font-weight:700;color:var(--text-dark);margin:0 0 8px}.modal-sheet p{font-size:13.5px;color:var(--text-muted);line-height:1.5;margin:0 0 12px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;font-weight:600;color:var(--text-muted);margin-bottom:6px}.field input,.field select,.field textarea{width:100%;border:1px solid var(--border);background:var(--page-bg);border-radius:12px;padding:11px 12px;font-size:14px;color:var(--text-dark);outline:none;font-family:inherit}.field textarea{resize:vertical;min-height:70px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--primary)}.field-row{display:flex;gap:10px}.field-row>.field{flex:1;min-width:0}.field-error{color:var(--red);font-size:11.5px;margin-top:4px}.detail-grid{display:flex;flex-direction:column;gap:0}.detail-line{display:flex;justify-content:space-between;gap:12px;padding:9px 0;border-bottom:1px solid var(--border);font-size:13.5px}.detail-line:last-child{border-bottom:none}.detail-line .k{color:var(--text-muted)}.detail-line .v{color:var(--text-dark);font-weight:600;text-align:right}.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:700;padding:3px 9px;border-radius:20px}.badge.paid{background:var(--green-bg);color:var(--green)}.badge.unpaid{background:var(--orange-bg);color:var(--orange)}.badge.overdue{background:var(--red-bg);color:var(--red)}.toast{position:fixed;left:50%;bottom:calc(100px + env(safe-area-inset-bottom));transform:translate(-50%,20px);background:#111827;color:#fff;font-size:12.5px;font-weight:600;padding:10px 18px;border-radius:20px;white-space:nowrap;max-width:90vw;overflow:hidden;text-overflow:ellipsis;opacity:0;pointer-events:none;transition:all .25s;z-index:500}.toast.show{opacity:1;transform:translate(-50%)}.empty-state{text-align:center;padding:34px 16px;color:var(--text-faint);font-size:13px}.empty-state .ic{font-size:28px;margin-bottom:8px}.fab{position:absolute;right:18px;bottom:calc(97px + env(safe-area-inset-bottom));width:52px;height:52px;border-radius:50%;background:var(--primary);color:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 8px 20px #4f46e566;border:none;cursor:pointer;z-index:40}.spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--primary);animation:spin .7s linear infinite;margin:30px auto}@keyframes spin{to{transform:rotate(360deg)}}.center-pad{display:flex;align-items:center;justify-content:center;min-height:60vh}svg{display:block}.chip-row.account-picker{margin-top:4px}.err-banner{background:var(--red-bg);color:var(--red);border-radius:12px;padding:10px 12px;font-size:12.5px;font-weight:600;margin-bottom:12px}
