:root{--bg:#0f0f13;--surface:#1a1a24;--surface2:#22222e;--border:#2e2e3d;--text:#f0f0f8;--muted:#88a;--accent:#6366f1;--green:#10b981;--amber:#f59e0b;--red:#f43f5e;--radius:14px}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg);color:var(--text);min-height:100dvh;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:15px}.app{flex-direction:column;max-width:480px;height:100dvh;margin:0 auto;display:flex}.app-header{background:var(--surface);border-bottom:1px solid var(--border);padding:14px 20px 10px}.header-row{align-items:center;gap:10px;display:flex}.header-sub-row{justify-content:space-between;align-items:center;margin-top:3px;display:flex}.sync-btn{color:var(--muted);cursor:pointer;white-space:nowrap;background:#ffffff14;border:1px solid #ffffff1f;border-radius:20px;align-items:center;gap:4px;padding:3px 8px;font-size:10px;transition:all .2s;display:flex}.sync-btn:hover{color:#fff;background:#ffffff24}.sync-btn.spinning svg{animation:.8s linear infinite spin}.app-header h1{flex:1;font-size:17px;font-weight:800}.header-badge{background:var(--green);color:#000;letter-spacing:.04em;border-radius:20px;padding:2px 8px;font-size:10px;font-weight:700}.subtitle{color:var(--muted);margin-top:3px;font-size:11px}.app-content{flex:1;padding-bottom:12px;overflow-y:auto}.bottom-nav{background:var(--surface);border-top:1px solid var(--border);padding:6px 0 env(safe-area-inset-bottom,6px);display:flex}.nav-btn{color:var(--muted);cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;align-items:center;gap:3px;padding:6px 4px;font-size:9px;transition:color .15s;display:flex}.nav-btn.active{color:var(--accent)}.view{padding:16px}.loading{height:200px;color:var(--muted);justify-content:center;align-items:center;font-size:14px;display:flex}.net-worth-card{border-radius:var(--radius);background:linear-gradient(135deg,#3730a3,#6366f1);margin-bottom:16px;padding:20px}.nw-top{justify-content:space-between;align-items:flex-start;display:flex}.nw-label{opacity:.8;text-transform:uppercase;letter-spacing:.08em;margin-bottom:4px;font-size:11px}.nw-amount{font-size:34px;font-weight:800}.nw-row2{justify-content:space-between;margin-top:8px;display:flex}.nw-sub{opacity:.7;font-size:11px}.refresh-btn{color:#fff;cursor:pointer;background:#ffffff26;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;transition:transform .4s;display:flex}.refresh-btn.spinning{animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.section-header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.section-header h2{font-size:15px;font-weight:700}.total-badge{background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:2px 10px;font-size:12px;font-weight:600}.card-list{flex-direction:column;gap:8px;display:flex}.account-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;padding:14px 16px;transition:border-color .15s}.account-card.open{border-color:var(--accent)}.account-main{justify-content:space-between;align-items:center;display:flex}.account-left{align-items:center;gap:10px;display:flex}.account-emoji{font-size:22px}.account-name{font-size:14px;font-weight:600;display:block}.account-badge{background:var(--surface2);color:var(--muted);text-transform:capitalize;border-radius:20px;margin-top:2px;padding:2px 8px;font-size:10px;display:inline-block}.account-right{color:var(--muted);align-items:center;gap:8px;display:flex}.bal-amount{color:var(--text);font-size:16px;font-weight:700}.account-detail{border-top:1px solid var(--border);flex-direction:column;gap:6px;margin-top:12px;padding-top:12px;display:flex}.detail-row{justify-content:space-between;font-size:12px;display:flex}.detail-row span:first-child{color:var(--muted)}.chart-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;padding:12px 4px 4px}.category-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:0;overflow:hidden}.category-row.clickable{cursor:pointer;transition:border-color .15s}.category-row.clickable:active{border-color:var(--accent)}.cat-main{align-items:center;gap:10px;padding:10px 14px;display:flex}.cat-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.cat-info{flex:1;min-width:0}.cat-name{font-size:13px;font-weight:500;display:block}.budget-bar-wrap{background:var(--surface2);border-radius:2px;height:3px;margin-top:4px;overflow:hidden}.budget-bar{border-radius:2px;height:100%;transition:width .4s}.cat-right{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:2px;display:flex}.cat-amount{font-size:14px;font-weight:700}.cat-budget-label{color:var(--muted);font-size:10px}.cat-budget-label.over{color:var(--red)}.cat-count{color:var(--muted);font-size:10px}.filter-scroll{scrollbar-width:none;gap:8px;display:flex;overflow-x:auto}.filter-scroll::-webkit-scrollbar{display:none}.filter-chip{border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;white-space:nowrap;border-radius:20px;flex-shrink:0;align-items:center;gap:4px;padding:5px 12px;font-size:12px;display:flex}.filter-chip.active{background:var(--accent);border-color:var(--accent);color:#fff}.search-wrap{margin-bottom:10px;position:relative}.search-icon{color:var(--muted);pointer-events:none;position:absolute;top:50%;left:12px;transform:translateY(-50%)}.search-input{background:var(--surface);border:1px solid var(--border);width:100%;color:var(--text);border-radius:10px;outline:none;padding:9px 36px;font-size:14px}.search-input:focus{border-color:var(--accent)}.search-clear{color:var(--muted);cursor:pointer;background:0 0;border:none;padding:4px;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.drill-banner{background:#6366f122;border:1px solid #6366f144;border-radius:8px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:8px 12px;font-size:12px;display:flex}.drill-banner button{color:var(--accent);cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;font-size:12px;display:flex}.txn-list{flex-direction:column;gap:2px;display:flex}.date-divider{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;padding:12px 0 4px;font-size:11px}.txn-row{background:var(--surface);border-radius:10px;align-items:center;gap:10px;padding:10px 14px;display:flex}.txn-info{flex-direction:column;flex:1;gap:2px;display:flex}.txn-merchant{font-size:13px;font-weight:500}.txn-cat{color:var(--muted);font-size:11px}.txn-amount{flex-shrink:0;font-size:14px;font-weight:700}.cashflow-summary{gap:10px;margin-bottom:14px;display:flex}.cf-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;flex:1;align-items:center;gap:4px;padding:12px;display:flex}.cf-label{color:var(--muted);font-size:11px}.cf-val{font-size:15px;font-weight:700}.cf-val.income{color:var(--green)}.cf-val.expenses{color:var(--red)}.budget-settings-list{flex-direction:column;gap:6px;display:flex}.budget-setting-row{background:var(--surface);border:1px solid var(--border);border-radius:10px;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.bsr-left{flex:1}.bsr-name{font-size:13px;font-weight:500}.bsr-right{align-items:center;gap:6px;display:flex}.bsr-dollar{color:var(--muted);font-size:14px}.bsr-input{background:var(--surface2);border:1px solid var(--border);color:var(--text);text-align:right;border-radius:8px;outline:none;width:80px;padding:4px 8px;font-size:14px;font-weight:600}.bsr-input:focus{border-color:var(--accent)}.bsr-delete{color:var(--red);cursor:pointer;opacity:.6;background:0 0;border:none;padding:4px;display:flex}.bsr-delete:hover{opacity:1}.add-row{align-items:center;gap:8px;margin-bottom:16px;display:flex}.add-input{background:var(--surface);border:1px solid var(--border);color:var(--text);border-radius:10px;outline:none;flex:1;padding:9px 12px;font-size:13px}.add-input:focus{border-color:var(--accent)}.add-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;display:flex}.save-btn{background:var(--accent);color:#fff;cursor:pointer;border:none;border-radius:12px;justify-content:center;align-items:center;gap:8px;width:100%;margin-top:16px;padding:14px;font-size:15px;font-weight:600;transition:background .2s;display:flex}.save-btn.saved{background:var(--green)}.save-btn:disabled{opacity:.6}.hint{color:var(--muted);margin-top:14px;font-size:12px;line-height:1.5}
