﻿:root {
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  color: #162033;
  background: #f5f7fb;
  font-synthesis: none;
  text-rendering: optimizeLegibility;
  --bg: #f3f6fa;
  --panel: rgba(255,255,255,.94);
  --panel-solid: #fff;
  --panel-2: #f8fafc;
  --text: #172033;
  --muted: #667085;
  --faint: #98a2b3;
  --line: #e5eaf1;
  --line-strong: #d8dee8;
  --brand: #0b5fff;
  --brand-2: #0a74da;
  --brand-soft: #eaf2ff;
  --green: #12b76a;
  --green-soft: #ecfdf3;
  --orange: #f79009;
  --orange-soft: #fffaeb;
  --red: #f04438;
  --red-soft: #fef3f2;
  --blue: #2e90fa;
  --blue-soft: #eff8ff;
  --shadow: 0 10px 30px rgba(16,24,40,.06);
  --shadow-lg: 0 24px 70px rgba(16,24,40,.16);
}

.dark {
  color-scheme: dark;
  --bg: #0d111a;
  --panel: rgba(20,26,39,.94);
  --panel-solid: #141a27;
  --panel-2: #191f2e;
  --text: #edf2f7;
  --muted: #9aa4b2;
  --faint: #697386;
  --line: #293142;
  --line-strong: #364052;
  --brand: #6ea8ff;
  --brand-2: #8ab8ff;
  --brand-soft: #14294a;
  --green-soft: #123126;
  --orange-soft: #352611;
  --red-soft: #391d1e;
  --blue-soft: #102b48;
  --shadow: 0 12px 34px rgba(0,0,0,.24);
  --shadow-lg: 0 30px 90px rgba(0,0,0,.46);
}

* { box-sizing: border-box; }
html { min-height: 100%; background: var(--bg); }
body { margin: 0; min-width: 320px; min-height: 100vh; background: var(--bg); color: var(--text); }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
input, select, textarea {
  width: 100%; border: 1px solid var(--line-strong); background: var(--panel-solid); color: var(--text);
  border-radius: 11px; padding: 11px 12px; outline: none; transition: .2s ease;
}
input:focus, select:focus, textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 14%, transparent); }
textarea { resize: vertical; }
label { display: grid; gap: 7px; font-size: 12px; font-weight: 700; color: var(--muted); }
label small { font-weight: 500; color: var(--faint); }
::selection { background: color-mix(in srgb, var(--brand) 30%, transparent); }

.app-shell { min-height: 100vh; }
.sidebar {
  position: fixed; inset: 0 auto 0 0; z-index: 30; width: 262px; padding: 18px 15px; display: flex; flex-direction: column;
  background: linear-gradient(180deg,#081426 0%,#0b1b31 58%,#07111f 100%); color: #f4f6fb; border-right: 1px solid rgba(255,255,255,.06);
}
.brand-wrap, .brand-lockup { display: flex; align-items: center; gap: 11px; }
.brand-wrap { padding: 5px 6px 24px; }
.brand-icon { width: 38px; height: 38px; border-radius: 12px; display: grid; place-items: center; color: white; background: linear-gradient(145deg,#0b67e3,#063f9b); box-shadow: 0 10px 28px rgba(11,95,255,.28); flex: 0 0 auto; }
.brand-icon.large { width: 50px; height: 50px; border-radius: 15px; }
.brand-wrap strong, .brand-lockup strong { display: block; font-size: 17px; letter-spacing: -.3px; }
.brand-wrap span, .brand-lockup span { display: block; font-size: 10px; color: #9fa8ba; margin-top: 2px; letter-spacing: 1.3px; text-transform: uppercase; }
.sidebar-close { display: none !important; margin-left: auto; }
.nav-list { display: grid; gap: 4px; }
.nav-caption { font-size: 9px; letter-spacing: 1.6px; color: #697386; padding: 5px 10px 8px; font-weight: 800; }
.nav-item { height: 43px; border: 0; border-radius: 11px; background: transparent; color: #9fa8ba; display: flex; align-items: center; gap: 11px; padding: 0 12px; cursor: pointer; font-size: 13px; font-weight: 650; text-align: left; transition: .18s ease; }
.nav-item:hover { background: rgba(255,255,255,.05); color: #fff; }
.nav-item.active { color: #fff; background: linear-gradient(90deg, rgba(11,95,255,.22), rgba(11,95,255,.045)); box-shadow: inset 3px 0 #3b82f6; }
.nav-item .nav-dot { width: 6px; height: 6px; border-radius: 99px; background: #60a5fa; margin-left: auto; box-shadow: 0 0 0 4px rgba(167,139,250,.12); }
.sidebar-health { margin-top: auto; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.06); border-radius: 13px; padding: 12px; }
.health-head { font-size: 11px; font-weight: 800; display: flex; align-items: center; gap: 7px; }
.sidebar-health p { margin: 5px 0 0; color: #7f8a9f; font-size: 10px; line-height: 1.5; }
.status-dot { width: 7px; height: 7px; border-radius: 50%; display: inline-block; background: #667085; }
.status-dot.ok { background: #32d583; box-shadow: 0 0 0 4px rgba(50,213,131,.1); }
.status-dot.warn { background: #fdb022; box-shadow: 0 0 0 4px rgba(253,176,34,.1); }
.profile-box { margin-top: 10px; padding: 10px 7px; display: flex; align-items: center; gap: 9px; border-top: 1px solid rgba(255,255,255,.06); }
.avatar { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; font-size: 11px; font-weight: 900; background: #292f40; color: #d9def0; }
.profile-copy { min-width: 0; flex: 1; }
.profile-copy strong, .profile-copy span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.profile-copy strong { font-size: 11px; }
.profile-copy span { font-size: 9px; color: #7f8a9f; margin-top: 2px; }
.profile-box .icon-btn { color: #7f8a9f; }

.main-area { min-height: 100vh; margin-left: 262px; }
.topbar { height: 74px; position: sticky; top: 0; z-index: 20; display: flex; align-items: center; justify-content: space-between; padding: 0 28px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--bg) 86%, transparent); backdrop-filter: blur(18px); }
.topbar-left { display: flex; align-items: center; gap: 10px; }
.topbar h1 { margin: 2px 0 0; font-size: 18px; letter-spacing: -.35px; }
.eyebrow { display: block; font-size: 8.5px; color: var(--faint); letter-spacing: 1.4px; font-weight: 900; }
.top-actions { display: flex; gap: 8px; align-items: center; }
.icon-btn { width: 36px; height: 36px; border: 1px solid var(--line); background: var(--panel-solid); border-radius: 10px; display: inline-grid; place-items: center; cursor: pointer; transition: .18s; padding: 0; }
.icon-btn:hover { border-color: var(--line-strong); transform: translateY(-1px); box-shadow: var(--shadow); }
.icon-btn.danger, .row-actions button.danger { color: var(--red); }
.mobile-menu { display: none; }
.sync-pill { height: 34px; border: 1px solid var(--line); background: var(--panel-solid); border-radius: 99px; padding: 0 11px; display: flex; align-items: center; gap: 6px; color: var(--muted); font-size: 10px; font-weight: 800; }
.sync-pill.saving svg { animation: spin 1s linear infinite; }
.sync-pill.error { color: var(--orange); border-color: color-mix(in srgb,var(--orange) 30%,var(--line)); }
.btn { min-height: 40px; border: 1px solid transparent; border-radius: 11px; padding: 0 15px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-weight: 800; font-size: 12px; cursor: pointer; transition: .18s ease; white-space: nowrap; }
.btn:hover { transform: translateY(-1px); }
.btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.btn.primary { background: linear-gradient(145deg,var(--brand-2),var(--brand)); color: white; box-shadow: 0 7px 18px color-mix(in srgb,var(--brand) 22%,transparent); }
.btn.secondary { background: var(--panel-solid); border-color: var(--line); color: var(--text); }
.btn.compact { min-height: 35px; padding: 0 12px; font-size: 11px; }
.btn.light { background: white; color: #2d2250; }
.btn.ghost-on-dark { color: white; border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.07); }
.text-btn { border: 0; background: none; color: var(--brand); font-size: 10px; font-weight: 850; display: inline-flex; align-items: center; gap: 5px; cursor: pointer; }

.page-content { padding: 24px 28px 44px; max-width: 1600px; margin: 0 auto; }
.page-stack { display: grid; gap: 18px; }
.panel { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; box-shadow: var(--shadow); }
.page-title { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; }
.page-title h2 { margin: 0; font-size: 22px; letter-spacing: -.55px; }
.page-title p { margin: 5px 0 0; color: var(--muted); font-size: 11px; }
.page-actions { display: flex; gap: 8px; }
.section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.section-head span { display: block; font-size: 8px; font-weight: 900; color: var(--faint); letter-spacing: 1.3px; }
.section-head h3 { margin: 3px 0 0; font-size: 14px; letter-spacing: -.2px; }

.hero-strip { min-height: 178px; border-radius: 20px; padding: 26px 28px; color: #fff; display: flex; justify-content: space-between; gap: 24px; align-items: center; overflow: hidden; position: relative; background: radial-gradient(circle at 82% 12%,rgba(255,255,255,.16),transparent 24%), linear-gradient(125deg,#071b38 0%,#0b4f9c 48%,#087f8c 100%); box-shadow: 0 24px 60px rgba(7,44,90,.20); }
.hero-strip::after { content:""; width: 240px; height: 240px; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; position: absolute; right: 7%; bottom: -180px; box-shadow: 0 0 0 45px rgba(255,255,255,.025), 0 0 0 90px rgba(255,255,255,.02); }
.hero-strip > * { position: relative; z-index: 1; }
.hero-kicker { font-size: 9px; font-weight: 900; letter-spacing: 1.5px; text-transform: uppercase; color: #c9e2ff; }
.hero-strip h2 { margin: 7px 0 7px; font-size: clamp(22px,2vw,30px); letter-spacing: -.8px; }
.hero-strip p { margin: 0; max-width: 640px; color: #d5e8f7; font-size: 11px; line-height: 1.65; }
.hero-actions { display: flex; gap: 8px; flex: 0 0 auto; }
.kpi-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 12px; }
.kpi-grid.three { grid-template-columns: repeat(3,minmax(0,1fr)); }
.kpi-card { padding: 17px; display: flex; align-items: flex-start; gap: 13px; min-width: 0; }
.kpi-icon { width: 37px; height: 37px; border-radius: 11px; display: grid; place-items: center; flex: 0 0 auto; }
.kpi-icon.violet { color: var(--brand); background: var(--brand-soft); }
.kpi-icon.green { color: var(--green); background: var(--green-soft); }
.kpi-icon.orange { color: var(--orange); background: var(--orange-soft); }
.kpi-icon.blue { color: var(--blue); background: var(--blue-soft); }
.kpi-copy { min-width: 0; }
.kpi-copy span, .kpi-copy strong, .kpi-copy small { display: block; }
.kpi-copy span { font-size: 9px; color: var(--muted); font-weight: 800; }
.kpi-copy strong { margin-top: 4px; font-size: clamp(16px,1.6vw,22px); letter-spacing: -.6px; overflow: hidden; text-overflow: ellipsis; }
.kpi-copy small { margin-top: 4px; font-size: 8.5px; color: var(--faint); line-height: 1.4; }
.dashboard-grid { display: grid; grid-template-columns: minmax(0,1.6fr) minmax(300px,.8fr); gap: 14px; }
.dashboard-grid.lower { grid-template-columns: 1fr 1fr; }
.chart-card { padding: 18px; min-width: 0; }
.chart-wrap { height: 230px; color: var(--brand); }
.chart-wrap.tall { height: 275px; }
.recharts-cartesian-axis-tick text { fill: var(--faint); font-size: 9px; }
.recharts-default-tooltip { background: var(--panel-solid) !important; border: 1px solid var(--line) !important; border-radius: 10px !important; font-size: 10px !important; box-shadow: var(--shadow) !important; }
.category-bars { display: grid; gap: 15px; }
.bar-copy { display: flex; justify-content: space-between; gap: 10px; font-size: 9px; }
.bar-copy span { color: var(--muted); }
.bar-copy strong { font-size: 9px; }
.bar-track { height: 5px; border-radius: 99px; background: var(--panel-2); overflow: hidden; margin-top: 6px; }
.bar-fill { height: 100%; border-radius: inherit; background: var(--brand); }
.bar-fill.c1 { background: var(--green); }.bar-fill.c2{background:var(--orange)}.bar-fill.c3{background:var(--blue)}.bar-fill.c4{background:#e478fa}
.compact-list { display: grid; }
.compact-row { min-height: 61px; display: flex; align-items: center; gap: 11px; border-top: 1px solid var(--line); }
.compact-row:first-child { border-top: 0; }
.compact-row .grow { min-width: 0; flex: 1; }
.compact-row .grow strong, .compact-row .grow span { display: block; }
.compact-row .grow strong { font-size: 10.5px; white-space: nowrap; text-overflow: ellipsis; overflow: hidden; }
.compact-row .grow span { margin-top: 3px; color: var(--faint); font-size: 8.5px; }
.compact-row > strong { font-size: 10px; }
.tx-icon { width: 33px; height: 33px; border-radius: 10px; display: grid; place-items: center; flex: 0 0 auto; }
.tx-icon svg { width: 16px; height: 16px; }
.tx-icon.income { background: var(--green-soft); color: var(--green); }
.tx-icon.expense { background: var(--red-soft); color: var(--red); }
.tx-icon.transfer { background: var(--blue-soft); color: var(--blue); }
.money.income { color: var(--green); }.money.expense{color:var(--red)}.money.transfer{color:var(--blue)}
.date-chip { width: 38px; height: 40px; border-radius: 10px; background: var(--panel-2); display: grid; place-items: center; align-content: center; }
.date-chip strong { font-size: 13px; line-height: 1; }.date-chip span{font-size:7px;color:var(--faint);text-transform:uppercase;margin-top:3px}

.filter-card { padding: 12px; display: grid; grid-template-columns: minmax(240px,1fr) 160px 180px; gap: 9px; box-shadow: none; }
.search-box { position: relative; }
.search-box svg { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); color: var(--faint); }
.search-box input { padding-left: 37px; }
.table-card { overflow: hidden; }
.data-table-wrap { overflow: auto; }
.data-table { width: 100%; border-collapse: collapse; min-width: 780px; }
.data-table th { text-align: left; padding: 11px 14px; background: var(--panel-2); color: var(--faint); font-size: 8px; text-transform: uppercase; letter-spacing: 1px; border-bottom: 1px solid var(--line); }
.data-table td { padding: 11px 14px; border-bottom: 1px solid var(--line); font-size: 10px; vertical-align: middle; }
.data-table tbody tr:last-child td { border-bottom: 0; }
.data-table tbody tr:hover { background: color-mix(in srgb,var(--panel-2) 55%,transparent); }
.data-table .right { text-align: right; }
.table-primary { display: flex; align-items: center; gap: 10px; min-width: 200px; }
.table-primary > div:last-child { min-width: 0; }
.table-primary strong, .table-primary span { display: block; }
.table-primary strong { font-size: 10.5px; max-width: 230px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table-primary span { margin-top: 3px; color: var(--faint); font-size: 8.5px; max-width: 230px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.table-text { color: var(--muted); }
.soft-badge { display: inline-flex; min-height: 22px; align-items: center; padding: 0 8px; border-radius: 99px; background: var(--panel-2); border: 1px solid var(--line); color: var(--muted); font-size: 8px; font-weight: 800; }
.soft-badge.success { background: var(--green-soft); color: var(--green); border-color: color-mix(in srgb,var(--green) 18%,var(--line)); }
.row-actions { display: flex; gap: 4px; justify-content: flex-end; align-items: center; }
.row-actions button { min-width: 29px; height: 29px; border: 0; border-radius: 8px; background: transparent; display: grid; place-items: center; cursor: pointer; }
.row-actions button:hover { background: var(--panel-2); }
.row-actions .mini-action { padding: 0 9px; width: auto; background: var(--brand-soft); color: var(--brand); font-size: 8px; font-weight: 850; }

.account-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 13px; }
.account-card { padding: 18px; min-height: 190px; position: relative; overflow: hidden; }
.account-card::after { content:""; position:absolute; width:150px;height:150px;border-radius:50%;right:-90px;top:-80px;background:color-mix(in srgb,var(--brand) 8%,transparent); }
.account-top { display:flex;justify-content:space-between;align-items:center; position:relative;z-index:1; }
.account-logo { width:39px;height:39px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand); }
.account-logo.cash{background:var(--green-soft);color:var(--green)}.account-logo.wallet{background:var(--blue-soft);color:var(--blue)}.account-logo.paylater{background:var(--orange-soft);color:var(--orange)}.account-logo.investment{background:#fdf2fa;color:#dd2590}
.account-type { display:block;margin-top:14px;color:var(--faint);font-size:7.5px;font-weight:900;letter-spacing:1.1px; }
.account-card h3{margin:3px 0 0;font-size:14px}.account-balance{margin-top:18px}.account-balance span,.account-balance strong{display:block}.account-balance span{font-size:8px;color:var(--faint)}.account-balance strong{font-size:20px;margin-top:3px;letter-spacing:-.55px}.account-meta{margin-top:16px;display:flex;justify-content:space-between;gap:8px;color:var(--muted);font-size:8px}
.info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:18px}.info-grid>div{display:flex;gap:10px;padding:13px;border-radius:12px;background:var(--panel-2)}.info-grid svg{width:18px;flex:0 0 auto;color:var(--brand)}.info-grid strong,.info-grid small{display:block}.info-grid strong{font-size:9px}.info-grid small{margin-top:4px;color:var(--muted);font-size:8px;line-height:1.45}

.segmented { width: fit-content; display:flex; gap:3px; padding:4px; border-radius:12px; background:var(--panel-2); border:1px solid var(--line); }
.segmented button { border:0;background:transparent;border-radius:9px;padding:8px 12px;color:var(--muted);font-size:9px;font-weight:850;cursor:pointer; }.segmented button.active{background:var(--panel-solid);color:var(--text);box-shadow:0 2px 7px rgba(16,24,40,.06)}
.budget-grid,.goal-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.budget-card,.goal-card{padding:17px}.budget-title{display:flex;justify-content:space-between;gap:12px}.budget-title>div span,.budget-title>div strong{display:block}.budget-title>div span{font-size:9px;color:var(--muted);font-weight:800}.budget-title>div strong{margin-top:6px;font-size:14px}.budget-title>div small{font-size:8px;color:var(--faint);font-weight:600}.budget-percent{font-size:10px;font-weight:900;color:var(--green)}.budget-percent.warn{color:var(--orange)}.budget-percent.over{color:var(--red)}
.progress{height:7px;background:var(--panel-2);border-radius:99px;overflow:hidden;margin-top:16px}.progress>div{height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-2));border-radius:inherit}.progress>div.warn{background:var(--orange)}.progress>div.over{background:var(--red)}.budget-foot,.goal-foot{display:flex;justify-content:space-between;align-items:center;margin-top:10px;color:var(--faint);font-size:8px}.budget-foot button,.goal-foot button{border:0;background:none;color:var(--faint);cursor:pointer}.budget-foot button:hover,.goal-foot button:hover{color:var(--red)}
.recurring-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.recurring-card{padding:15px;display:flex;gap:12px;align-items:flex-start}.rec-icon{width:36px;height:36px;border-radius:11px;display:grid;place-items:center;background:var(--red-soft);color:var(--red)}.rec-icon.income{background:var(--green-soft);color:var(--green)}.rec-icon svg{width:17px}.rec-title{display:flex;gap:8px;justify-content:space-between;align-items:center}.rec-title strong{font-size:10.5px}.recurring-card p{margin:4px 0;color:var(--faint);font-size:8.5px}.rec-meta{display:flex;justify-content:space-between;gap:10px;margin-top:9px;font-size:9px}.rec-meta span{color:var(--muted)}
.goal-head{display:flex;justify-content:space-between;align-items:center}.goal-icon{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand)}.priority{font-size:7.5px;font-weight:850;padding:5px 7px;border-radius:99px;background:var(--panel-2);color:var(--muted)}.priority.high{background:var(--red-soft);color:var(--red)}.priority.low{background:var(--green-soft);color:var(--green)}.goal-card h3{margin:16px 0 0;font-size:12px}.goal-values{margin-top:13px}.goal-values strong{font-size:16px}.goal-values span{margin-left:5px;color:var(--faint);font-size:8px}

.donut{height:235px;position:relative}.donut-center{position:absolute;inset:0;display:grid;place-content:center;text-align:center;pointer-events:none}.donut-center strong{font-size:11px}.donut-center span{font-size:7.5px;color:var(--faint);margin-top:3px}.pie-cell{fill:var(--brand)}.pie-cell.c1{fill:var(--green)}.pie-cell.c2{fill:var(--orange)}.pie-cell.c3{fill:var(--blue)}.pie-cell.c4{fill:#e478fa}.legend-list{display:grid;gap:7px}.legend-list>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:7px;font-size:8px}.legend-list span:nth-child(2){color:var(--muted)}.legend-dot{width:7px;height:7px;border-radius:50%;background:var(--brand)}.legend-dot.c1{background:var(--green)}.legend-dot.c2{background:var(--orange)}.legend-dot.c3{background:var(--blue)}.legend-dot.c4{background:#e478fa}.health-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:11px;padding:18px}.health-metric{display:flex;gap:11px;padding:14px;border:1px solid var(--line);border-radius:13px}.metric-badge{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto}.metric-badge svg{width:15px}.metric-badge.good{background:var(--green-soft);color:var(--green)}.metric-badge.watch{background:var(--orange-soft);color:var(--orange)}.health-metric span,.health-metric strong{display:block}.health-metric span{font-size:8px;color:var(--muted)}.health-metric strong{font-size:15px;margin-top:3px}.health-metric p{font-size:8px;color:var(--faint);line-height:1.45;margin:5px 0 0}

.tools-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}.tool-card{padding:19px}.tool-icon{width:38px;height:38px;border-radius:12px;background:var(--brand-soft);color:var(--brand);display:grid;place-items:center}.tool-card h3{font-size:13px;margin:13px 0 5px}.tool-card>p{font-size:9px;color:var(--muted);margin:0 0 15px;line-height:1.5}.tool-card label{margin-top:9px}.two-input{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tool-results{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-top:13px}.tool-results>div,.big-result{padding:11px;border-radius:11px;background:var(--panel-2);border:1px solid var(--line)}.tool-results span,.tool-results strong,.big-result span,.big-result strong{display:block}.tool-results span,.big-result span{font-size:7.5px;color:var(--faint)}.tool-results strong{font-size:10px;margin-top:3px}.big-result{margin-top:13px}.big-result strong{font-size:16px;margin-top:4px;color:var(--brand)}

.settings-layout{display:grid;grid-template-columns:210px minmax(0,1fr);gap:14px}.settings-nav{display:grid;align-content:start;gap:4px}.settings-nav button{height:40px;border:0;border-radius:10px;background:transparent;display:flex;align-items:center;gap:9px;padding:0 11px;color:var(--muted);font-size:9px;font-weight:850;cursor:pointer}.settings-nav button svg{width:16px}.settings-nav button.active{background:var(--brand-soft);color:var(--brand)}.settings-card{padding:20px;max-width:780px}.settings-section{padding-bottom:20px;margin-bottom:20px;border-bottom:1px solid var(--line)}.settings-section:last-child{border-bottom:0;margin-bottom:0}.settings-section h3{font-size:13px;margin:0}.settings-section>p{font-size:9px;color:var(--muted);line-height:1.55;margin:5px 0 15px}.settings-section label{margin-top:11px}.category-chips{display:flex;flex-wrap:wrap;gap:6px}.category-chips span{display:flex;align-items:center;gap:5px;background:var(--panel-2);border:1px solid var(--line);border-radius:99px;padding:6px 8px;font-size:8px;font-weight:750}.category-chips button{border:0;background:none;padding:0;color:var(--faint);display:grid;place-items:center;cursor:pointer}.inline-form{display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:12px}.integration-status{display:flex;align-items:center;gap:8px;font-size:9px;margin:9px 0}.upload-box{min-height:100px;border:1px dashed var(--line-strong);border-radius:13px;display:grid!important;place-items:center;align-content:center;gap:7px;cursor:pointer;background:var(--panel-2)}.upload-box input{display:none}.upload-box span{font-size:9px}.security-banner{display:flex;gap:12px;align-items:center;padding:15px;border-radius:13px;background:var(--green-soft);color:var(--green);margin-bottom:20px}.security-banner strong,.security-banner span{display:block}.security-banner strong{font-size:11px}.security-banner span{font-size:8px;margin-top:3px}.clean-list{list-style:none;padding:0;margin:0;display:grid;gap:9px}.clean-list li{display:flex;align-items:center;gap:8px;font-size:9px;color:var(--muted)}.clean-list svg{width:15px;color:var(--green)}

.modal-backdrop,.drawer-backdrop{position:fixed;inset:0;z-index:70;background:rgba(8,12,20,.58);backdrop-filter:blur(7px);display:grid;place-items:center;padding:18px}.modal{width:min(620px,100%);max-height:92vh;overflow:auto;background:var(--panel-solid);border:1px solid var(--line);border-radius:19px;box-shadow:var(--shadow-lg)}.modal-head{display:flex;align-items:center;justify-content:space-between;padding:17px 19px;border-bottom:1px solid var(--line);position:sticky;top:0;background:var(--panel-solid);z-index:2}.modal-head span{font-size:7.5px;color:var(--faint);font-weight:900;letter-spacing:1.2px}.modal-head h3{font-size:14px;margin:2px 0 0}.modal-body{padding:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.form-grid .full{grid-column:1/-1}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px;padding-top:15px;border-top:1px solid var(--line)}.check-label{display:flex!important;align-items:flex-start;gap:9px;padding:11px;border-radius:11px;background:var(--panel-2);border:1px solid var(--line)}.check-label input{width:16px;height:16px;margin:2px 0 0}.check-label strong,.check-label small{display:block}.check-label strong{color:var(--text);font-size:9px}.check-label small{font-size:8px;margin-top:2px}.transaction-type{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:16px;padding:4px;background:var(--panel-2);border-radius:12px}.transaction-type button{border:0;border-radius:9px;background:transparent;padding:10px 6px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:9px;font-weight:800;color:var(--muted);cursor:pointer}.transaction-type button svg{width:15px}.transaction-type button.active{background:var(--panel-solid);box-shadow:0 2px 8px rgba(16,24,40,.06)}.transaction-type button.active.expense{color:var(--red)}.transaction-type button.active.income{color:var(--green)}.transaction-type button.active.transfer{color:var(--blue)}

.ai-fab{position:fixed;right:24px;bottom:22px;z-index:40;height:42px;border:0;border-radius:99px;padding:0 15px;background:linear-gradient(145deg,#0b67e3,#087f8c);color:white;display:flex;align-items:center;gap:8px;font-size:10px;font-weight:900;box-shadow:0 14px 34px rgba(5,75,132,.30);cursor:pointer}.drawer-backdrop{place-items:stretch end;padding:0}.ai-drawer{width:min(430px,100%);height:100%;background:var(--panel-solid);border-left:1px solid var(--line);display:flex;flex-direction:column;box-shadow:var(--shadow-lg);animation:slideIn .22s ease}.drawer-head{height:68px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;border-bottom:1px solid var(--line)}.ai-title{display:flex;gap:10px;align-items:center}.ai-title strong,.ai-title span{display:block}.ai-title strong{font-size:11px}.ai-title span{font-size:8px;color:var(--faint);margin-top:2px}.ai-prompts{padding:10px 13px;display:flex;gap:6px;overflow:auto;border-bottom:1px solid var(--line)}.ai-prompts button{border:1px solid var(--line);background:var(--panel-2);border-radius:99px;padding:7px 9px;font-size:7.5px;font-weight:800;white-space:nowrap;cursor:pointer}.chat-scroll{flex:1;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:9px}.chat-message{display:flex}.chat-message span{max-width:88%;border-radius:14px;padding:10px 12px;font-size:9.5px;line-height:1.58;white-space:pre-wrap}.chat-message.assistant span{background:var(--panel-2);border:1px solid var(--line);border-top-left-radius:5px}.chat-message.user{justify-content:flex-end}.chat-message.user span{background:var(--brand);color:white;border-top-right-radius:5px}.typing span{display:flex;gap:4px}.typing i{width:5px;height:5px;background:var(--faint);border-radius:50%;animation:pulse 1s infinite}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}.chat-input{padding:12px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 38px;gap:8px;align-items:end}.chat-input textarea{min-height:42px;max-height:120px}.chat-input button{width:38px;height:38px;border:0;border-radius:10px;background:var(--brand);color:white;display:grid;place-items:center;cursor:pointer}.chat-input button:disabled{opacity:.45}

.empty-state{min-height:190px;display:grid;place-items:center;align-content:center;text-align:center;padding:26px}.empty-icon{width:45px;height:45px;border-radius:14px;background:var(--panel-2);border:1px solid var(--line);color:var(--brand);display:grid;place-items:center}.empty-state h3{font-size:12px;margin:10px 0 4px}.empty-state p{max-width:320px;font-size:8.5px;line-height:1.5;color:var(--muted);margin:0 0 12px}.toast{position:fixed;z-index:100;left:50%;bottom:22px;transform:translateX(-50%);min-height:42px;max-width:min(440px,calc(100vw - 28px));display:flex;align-items:center;gap:9px;padding:0 13px;border-radius:12px;background:#101828;color:white;box-shadow:var(--shadow-lg);font-size:9px;font-weight:750}.toast.success svg{color:#6ce9a6}.toast.error svg{color:#fda29b}.toast.info svg{color:#b2ccff}

.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(420px,.85fr);background:#06111f;color:white;overflow:hidden;position:relative}.auth-orb{position:absolute;border-radius:50%;filter:blur(2px);pointer-events:none}.auth-orb.one{width:520px;height:520px;left:-240px;top:-230px;background:radial-gradient(circle,rgba(11,95,255,.25),transparent 68%)}.auth-orb.two{width:580px;height:580px;left:34%;bottom:-410px;background:radial-gradient(circle,rgba(8,127,140,.18),transparent 70%)}.auth-story{padding:50px clamp(34px,6vw,90px);display:flex;flex-direction:column;position:relative;z-index:1}.brand-lockup{width:fit-content}.auth-copy{margin:auto 0;max-width:690px}.hero-badge{display:inline-flex;align-items:center;gap:7px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.05);border-radius:99px;padding:7px 10px;color:#cbe2ff;font-size:9px;font-weight:800}.auth-copy h1{font-size:clamp(38px,5vw,66px);line-height:1.02;letter-spacing:-2.6px;margin:18px 0 17px;max-width:680px}.auth-copy p{font-size:12px;line-height:1.75;color:#a9b1c2;max-width:590px}.auth-features{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.auth-features>div{display:flex;gap:9px;padding:12px;border:1px solid rgba(255,255,255,.07);background:rgba(255,255,255,.03);border-radius:13px}.auth-features svg{width:17px;color:#60a5fa;flex:0 0 auto}.auth-features strong,.auth-features small{display:block}.auth-features strong{font-size:8.5px}.auth-features small{font-size:7.5px;color:#7f8a9f;margin-top:3px}.auth-card-wrap{display:grid;place-items:center;padding:30px;background:#f6f7fb;color:#172033;position:relative;z-index:1}.auth-card{width:min(410px,100%);padding:26px;background:white;border:1px solid #e6e9ef;border-radius:20px;box-shadow:0 30px 90px rgba(16,24,40,.14)}.auth-card-title>span{font-size:17px;font-weight:900;letter-spacing:-.35px}.auth-card-title p{font-size:9px;color:#667085;margin:5px 0 18px}.auth-card label{color:#475467;margin-top:11px}.auth-card input{background:#fff;color:#172033;border-color:#d0d5dd}.input-with-action{display:grid;grid-template-columns:1fr auto;gap:7px}.input-with-action button{border:1px solid #d0d5dd;background:#f9fafb;border-radius:10px;padding:0 11px;font-size:8px;font-weight:850;cursor:pointer}.checking{height:62px;display:flex;align-items:center;gap:9px;justify-content:center;color:#667085;font-size:9px}.auth-error{display:flex;align-items:flex-start;gap:7px;padding:10px;margin-top:12px;border-radius:10px;background:#fef3f2;color:#b42318;font-size:8.5px;line-height:1.45}.auth-submit{width:100%;margin-top:15px}.auth-note{display:flex;align-items:flex-start;gap:7px;margin-top:15px;padding-top:14px;border-top:1px solid #eaecf0;color:#667085;font-size:7.5px;line-height:1.5}.auth-note svg{color:#12b76a;flex:0 0 auto}

.animate-in{animation:fadeIn .24s ease}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}@keyframes slideIn{from{transform:translateX(40px);opacity:.5}to{transform:none;opacity:1}}@keyframes pulse{0%,100%{opacity:.35}50%{opacity:1}}

@media (max-width:1180px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}.dashboard-grid.lower{grid-template-columns:1fr 1fr}.account-grid,.budget-grid,.goal-grid{grid-template-columns:repeat(2,1fr)}.auth-page{grid-template-columns:1fr 460px}.auth-copy h1{font-size:46px}.auth-features{grid-template-columns:1fr}}
@media (max-width:900px){.sidebar{transform:translateX(-105%);transition:.22s ease;box-shadow:var(--shadow-lg)}.sidebar.open{transform:none}.sidebar-close{display:grid!important}.sidebar-backdrop{position:fixed;inset:0;z-index:29;background:rgba(8,12,20,.52);backdrop-filter:blur(4px)}.main-area{margin-left:0}.mobile-menu{display:grid}.topbar{padding:0 18px}.page-content{padding:18px}.auth-page{grid-template-columns:1fr}.auth-story{display:none}.auth-card-wrap{min-height:100vh}.settings-layout{grid-template-columns:1fr}.settings-nav{display:flex;overflow:auto}.settings-nav button{white-space:nowrap}.health-metrics,.info-grid{grid-template-columns:1fr}.tools-grid{grid-template-columns:1fr 1fr}}
@media (max-width:680px){.topbar{height:66px}.topbar .eyebrow,.sync-pill,.top-actions>.icon-btn{display:none}.topbar h1{font-size:15px}.page-content{padding:14px 12px 84px}.page-title{align-items:flex-start;flex-direction:column}.page-actions{width:100%}.page-actions .btn{flex:1}.hero-strip{padding:21px 18px;min-height:210px;align-items:flex-start;flex-direction:column}.hero-actions{width:100%}.hero-actions .btn{flex:1}.kpi-grid,.kpi-grid.three{grid-template-columns:1fr 1fr}.dashboard-grid.lower{grid-template-columns:1fr}.account-grid,.budget-grid,.goal-grid,.recurring-grid{grid-template-columns:1fr}.filter-card{grid-template-columns:1fr 1fr}.filter-card .search-box{grid-column:1/-1}.tools-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:auto}.transaction-type button{font-size:0}.transaction-type button svg{width:18px}.segmented{width:100%;overflow:auto}.segmented button{flex:1;white-space:nowrap}.ai-fab{right:15px;bottom:14px}.ai-fab span{display:none}.ai-fab{width:44px;padding:0;justify-content:center}.toast{bottom:66px}.modal-backdrop{padding:8px}.modal{border-radius:16px}.auth-card-wrap{padding:18px}.auth-card{padding:20px}.tool-results{grid-template-columns:1fr}.two-input{grid-template-columns:1fr}.settings-card{padding:15px}.settings-nav{margin:0 -4px}.settings-nav button{padding:0 9px}.settings-nav button svg{display:none}}
@media (max-width:420px){.kpi-grid,.kpi-grid.three{grid-template-columns:1fr}.top-actions .btn.compact{font-size:0;width:36px;padding:0}.top-actions .btn.compact svg{margin:0}.hero-strip h2{font-size:23px}.auth-card{border-radius:16px}}

@media print {
  .sidebar,.topbar,.ai-fab,.page-title .page-actions,.settings-nav{display:none!important}.main-area{margin:0}.page-content{padding:0}.panel,.hero-strip{box-shadow:none!important;break-inside:avoid}.hero-strip{color:#111!important;background:#fff!important;border:1px solid #ddd}.hero-strip p,.hero-kicker{color:#555!important}.hero-actions{display:none}.page-stack{gap:10px}body{background:white!important;color:#111!important}.dashboard-grid{grid-template-columns:1fr}.chart-wrap{height:220px}
}
.integration-actions{display:flex;gap:8px;margin-top:12px}.settings-action{margin-top:13px}

/* v3 single-owner dynamic forms */
.checkbox-row{display:flex!important;align-items:center;gap:9px;min-height:38px;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel-2)}
.checkbox-row input{width:16px!important;height:16px!important;min-height:0!important;margin:0;accent-color:var(--brand)}
.checkbox-row span{font-size:9px;font-weight:750;color:var(--muted);line-height:1.4}
.account-card .row-actions{margin-left:auto}
.account-card .icon-btn.danger{background:transparent}

/* =========================================================
   FinDompet Personal v3.1 â€” Professional Banking UI Refresh
   Visual-only override layer. Keeps existing app functionality.
   ========================================================= */
:root {
  --bg: #f4f7fb;
  --panel: rgba(255,255,255,.96);
  --panel-solid: #ffffff;
  --panel-2: #f7f9fc;
  --text: #101828;
  --muted: #667085;
  --faint: #98a2b3;
  --line: #e7ebf2;
  --line-strong: #d9e0ea;
  --brand: #2563eb;
  --brand-2: #1d4ed8;
  --brand-soft: #eff6ff;
  --green: #059669;
  --green-soft: #ecfdf5;
  --orange: #d97706;
  --orange-soft: #fffbeb;
  --red: #dc2626;
  --red-soft: #fef2f2;
  --blue: #0284c7;
  --blue-soft: #f0f9ff;
  --shadow: 0 1px 2px rgba(16,24,40,.03), 0 8px 24px rgba(16,24,40,.055);
  --shadow-lg: 0 24px 70px rgba(15,23,42,.18);
  --radius-sm: 10px;
  --radius-md: 14px;
  --radius-lg: 20px;
  --radius-xl: 26px;
}

.dark {
  --bg: #090f1b;
  --panel: rgba(16,24,40,.96);
  --panel-solid: #101828;
  --panel-2: #162033;
  --text: #f8fafc;
  --muted: #a6b0c0;
  --faint: #748094;
  --line: #243044;
  --line-strong: #344158;
  --brand: #60a5fa;
  --brand-2: #3b82f6;
  --brand-soft: #11294b;
  --green: #34d399;
  --green-soft: #0d2c25;
  --orange: #fbbf24;
  --orange-soft: #33250b;
  --red: #f87171;
  --red-soft: #351617;
  --blue: #38bdf8;
  --blue-soft: #0b2a3d;
  --shadow: 0 1px 2px rgba(0,0,0,.12), 0 12px 28px rgba(0,0,0,.22);
  --shadow-lg: 0 28px 80px rgba(0,0,0,.46);
}

html { background: var(--bg); }
body {
  background:
    radial-gradient(circle at 84% -10%, color-mix(in srgb, var(--brand) 7%, transparent), transparent 28rem),
    var(--bg);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  letter-spacing: -.008em;
}
button, input, select, textarea { font-size: 14px; }

/* Form controls */
input, select, textarea {
  min-height: 44px;
  border-color: var(--line-strong);
  border-radius: 12px;
  padding: 10px 13px;
  background: var(--panel-solid);
  box-shadow: inset 0 1px 1px rgba(16,24,40,.015);
}
input::placeholder, textarea::placeholder { color: var(--faint); }
input:hover, select:hover, textarea:hover { border-color: color-mix(in srgb, var(--line-strong) 55%, var(--text)); }
input:focus, select:focus, textarea:focus {
  border-color: var(--brand);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand) 11%, transparent);
}
label { gap: 8px; font-size: 12px; font-weight: 700; color: var(--text); }
label small { font-size: 11px; color: var(--muted); line-height: 1.5; }

/* App navigation */
.sidebar {
  width: 278px;
  padding: 22px 16px 16px;
  background:
    radial-gradient(circle at 28px 30px, rgba(59,130,246,.15), transparent 165px),
    linear-gradient(180deg,#0a1221 0%,#0b1424 58%,#08101d 100%);
  border-right: 1px solid rgba(148,163,184,.10);
  box-shadow: 12px 0 42px rgba(2,6,23,.08);
}
.brand-wrap { padding: 2px 8px 24px; gap: 12px; }
.brand-icon {
  width: 42px; height: 42px; border-radius: 13px;
  background: linear-gradient(145deg,#3b82f6,#1d4ed8);
  box-shadow: 0 10px 28px rgba(37,99,235,.34), inset 0 1px rgba(255,255,255,.22);
}
.brand-icon.large { width: 54px; height: 54px; border-radius: 17px; }
.brand-wrap strong, .brand-lockup strong { font-size: 18px; font-weight: 800; letter-spacing: -.45px; }
.brand-wrap span, .brand-lockup span { font-size: 9px; color: #8391a7; letter-spacing: 1.5px; font-weight: 700; }
.nav-caption { padding: 11px 12px 8px; font-size: 10px; letter-spacing: 1.4px; color: #536176; }
.nav-list { gap: 5px; }
.nav-item {
  height: 46px; padding: 0 12px; gap: 12px; border-radius: 12px;
  color: #9ba8bb; font-size: 13px; font-weight: 650;
}
.nav-item svg { opacity: .92; }
.nav-item:hover { background: rgba(255,255,255,.055); color: #f8fafc; transform: translateX(2px); }
.nav-item.active {
  color: #fff;
  background: linear-gradient(100deg,rgba(59,130,246,.25),rgba(37,99,235,.08));
  box-shadow: inset 0 0 0 1px rgba(96,165,250,.15), 0 8px 24px rgba(0,0,0,.08);
}
.nav-item.active::before { content:""; width:3px; height:20px; border-radius:99px; background:#60a5fa; position:absolute; left:0; }
.nav-item { position:relative; }
.nav-item .nav-dot { width: 6px; height: 6px; background:#60a5fa; box-shadow:0 0 0 4px rgba(96,165,250,.12); }
.sidebar-health {
  padding: 13px; border-radius: 14px;
  background: rgba(255,255,255,.035); border-color: rgba(148,163,184,.10);
}
.health-head { font-size: 11px; }
.sidebar-health p { color:#728096; font-size:10px; }
.profile-box { margin-top:12px; padding:13px 7px 3px; }
.avatar { width:36px; height:36px; border-radius:11px; font-size:12px; background:linear-gradient(145deg,#1e293b,#27364d); }
.profile-copy strong { font-size:12px; }
.profile-copy span { font-size:10px; }

.main-area { margin-left: 278px; }
.topbar {
  height: 78px; padding: 0 32px;
  background: color-mix(in srgb, var(--bg) 82%, transparent);
  border-bottom-color: color-mix(in srgb,var(--line) 85%,transparent);
  backdrop-filter: blur(18px) saturate(150%);
}
.topbar-left { gap: 12px; }
.topbar h1 { font-size: 19px; font-weight: 780; letter-spacing: -.45px; }
.eyebrow { font-size: 9px; letter-spacing: 1.45px; color:var(--faint); }
.top-actions { gap:9px; }
.icon-btn {
  width: 39px; height:39px; border-radius:11px;
  box-shadow: 0 1px 2px rgba(16,24,40,.025);
}
.icon-btn:hover { border-color: color-mix(in srgb,var(--brand) 22%,var(--line)); color:var(--brand); box-shadow:0 7px 20px rgba(16,24,40,.08); }
.sync-pill { height: 36px; padding:0 12px; font-size:11px; background:var(--panel-solid); box-shadow:0 1px 2px rgba(16,24,40,.02); }

/* Buttons */
.btn {
  min-height: 42px; padding: 0 16px; border-radius: 11px;
  font-size: 12px; font-weight: 750; letter-spacing: -.01em;
  box-shadow:none;
}
.btn:hover { transform: translateY(-1px); }
.btn.primary {
  background: linear-gradient(180deg,#3b82f6,#2563eb);
  border-color:#1d4ed8;
  box-shadow: 0 7px 18px rgba(37,99,235,.20), inset 0 1px rgba(255,255,255,.16);
}
.btn.primary:hover { box-shadow:0 10px 24px rgba(37,99,235,.26), inset 0 1px rgba(255,255,255,.2); }
.btn.secondary { background:var(--panel-solid); border-color:var(--line-strong); }
.btn.secondary:hover { border-color: color-mix(in srgb,var(--brand) 30%,var(--line-strong)); color:var(--brand); }
.btn.compact { min-height:37px; padding:0 13px; font-size:11px; }
.btn.light { color:#0f2b5a; background:#fff; border-color:rgba(255,255,255,.6); box-shadow:0 5px 18px rgba(2,6,23,.12); }
.btn.ghost-on-dark { background:rgba(255,255,255,.09); border-color:rgba(255,255,255,.15); backdrop-filter:blur(8px); }
.text-btn { font-size:11px; color:var(--brand); font-weight:750; }

/* Main content */
.page-content { max-width: 1540px; padding: 30px 32px 56px; }
.page-stack { gap: 22px; }
.panel {
  border-radius: var(--radius-lg);
  border-color: var(--line);
  background: var(--panel);
  box-shadow: var(--shadow);
}
.page-title { align-items:center; }
.page-title h2 { font-size: 25px; font-weight: 780; letter-spacing:-.65px; }
.page-title p { margin-top:6px; font-size:12px; line-height:1.55; }
.page-actions { gap:9px; }
.section-head { margin-bottom:18px; }
.section-head span { font-size:9px; letter-spacing:1.25px; color:var(--faint); }
.section-head h3 { margin-top:5px; font-size:15px; font-weight:760; }

/* Premium dashboard hero */
.hero-strip {
  min-height: 202px; padding: 32px 34px; border-radius: 25px;
  background:
    radial-gradient(circle at 88% 16%,rgba(56,189,248,.22),transparent 19%),
    radial-gradient(circle at 73% 115%,rgba(59,130,246,.32),transparent 28%),
    linear-gradient(125deg,#0d2345 0%,#143e78 47%,#1758aa 100%);
  box-shadow:0 20px 45px rgba(15,46,92,.18);
  border:1px solid rgba(255,255,255,.08);
}
.hero-strip::before {
  content:""; position:absolute; right:28px; top:22px; width:140px; height:140px; border-radius:32px;
  border:1px solid rgba(255,255,255,.08); transform:rotate(22deg);
}
.hero-strip::after {
  width:300px; height:300px; right:-55px; bottom:-235px;
  box-shadow:0 0 0 52px rgba(255,255,255,.025),0 0 0 105px rgba(255,255,255,.018);
}
.hero-kicker { font-size:10px; letter-spacing:1.35px; color:#bfdbfe; }
.hero-strip h2 { margin:9px 0 9px; max-width:720px; font-size:clamp(26px,2.2vw,34px); font-weight:780; letter-spacing:-1px; }
.hero-strip p { max-width:720px; color:#c9dbf4; font-size:12px; line-height:1.7; }
.hero-actions { gap:9px; }

/* KPI */
.kpi-grid { gap: 15px; }
.kpi-card {
  min-height: 126px; padding: 19px 20px;
  border-radius: 18px;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.kpi-card:hover { transform:translateY(-2px); border-color:color-mix(in srgb,var(--brand) 14%,var(--line)); box-shadow:0 15px 32px rgba(16,24,40,.08); }
.kpi-icon { width:42px; height:42px; border-radius:12px; }
.kpi-copy span { font-size:11px; font-weight:700; color:var(--muted); }
.kpi-copy strong { font-size:20px; letter-spacing:-.55px; }
.kpi-copy small { font-size:10px; line-height:1.45; }
.kpi-icon.violet { background:#eef2ff; color:#4f46e5; }
.kpi-icon.green { background:var(--green-soft); color:var(--green); }
.kpi-icon.orange { background:var(--orange-soft); color:var(--orange); }
.kpi-icon.blue { background:var(--blue-soft); color:var(--blue); }
.dark .kpi-icon.violet { background:#23264b; color:#a5b4fc; }

/* Charts & data blocks */
.dashboard-grid { gap:15px; }
.chart-card, .table-card { padding: 20px; }
.chart-wrap { min-height:250px; }
.chart-wrap.tall { min-height:300px; }
.category-bars { gap:14px; }
.bar-copy span, .bar-copy strong { font-size:11px; }
.bar-track { height:8px; border-radius:99px; background:var(--panel-2); }
.bar-fill { border-radius:99px; }
.bar-fill.c0,.legend-dot.c0 { background:#2563eb; }
.bar-fill.c1,.legend-dot.c1 { background:#0ea5e9; }
.bar-fill.c2,.legend-dot.c2 { background:#10b981; }
.bar-fill.c3,.legend-dot.c3 { background:#f59e0b; }
.bar-fill.c4,.legend-dot.c4 { background:#8b5cf6; }
.pie-cell.c0 { fill:#2563eb; }.pie-cell.c1{fill:#0ea5e9}.pie-cell.c2{fill:#10b981}.pie-cell.c3{fill:#f59e0b}.pie-cell.c4{fill:#8b5cf6}

/* Lists and tables */
.clean-list { gap:0; }
.compact-row { padding:12px 2px; border-bottom:1px solid var(--line); }
.compact-row:last-child { border-bottom:0; }
.table-card { overflow:hidden; }
.data-table-wrap { border:1px solid var(--line); border-radius:14px; overflow:auto; }
.data-table { border-collapse:separate; border-spacing:0; }
.data-table th {
  background:var(--panel-2); color:var(--muted); font-size:10px; letter-spacing:.45px; text-transform:uppercase;
  padding:12px 14px; border-bottom:1px solid var(--line);
}
.data-table td { padding:13px 14px; font-size:12px; border-bottom:1px solid var(--line); }
.data-table tbody tr:last-child td { border-bottom:0; }
.data-table tbody tr:hover td { background:color-mix(in srgb,var(--brand) 2.5%,var(--panel-solid)); }
.table-primary strong { font-size:12px; }
.table-primary span,.table-text { font-size:10px; }
.tx-icon { width:36px; height:36px; border-radius:11px; }
.soft-badge { font-size:10px; padding:5px 8px; border-radius:999px; }
.row-actions { gap:6px; }
.mini-action { min-height:30px; border-radius:8px; font-size:10px; padding:0 9px; }
.date-chip { font-size:10px; }

/* Cards used by accounts, budgets, goals, recurring */
.account-grid,.budget-grid,.goal-grid,.recurring-grid { gap:15px; }
.account-card,.budget-card,.goal-card,.recurring-card { border-radius:18px; padding:18px; }
.account-card,.budget-card,.goal-card,.recurring-card,.tool-card,.settings-card { transition:border-color .2s ease, box-shadow .2s ease, transform .2s ease; }
.account-card:hover,.budget-card:hover,.goal-card:hover,.recurring-card:hover,.tool-card:hover { border-color:color-mix(in srgb,var(--brand) 14%,var(--line)); box-shadow:0 14px 30px rgba(16,24,40,.065); }
.account-logo,.goal-icon,.rec-icon,.tool-icon { border-radius:13px; }
.account-meta strong,.budget-title strong,.goal-card h3,.rec-title strong { font-size:13px; }
.account-meta span,.budget-title span,.rec-title span { font-size:10px; }
.account-balance { font-size:22px; letter-spacing:-.6px; }
.account-type,.priority { font-size:9px; }
.progress { height:8px; border-radius:99px; background:var(--panel-2); }
.progress>div { border-radius:99px; background:linear-gradient(90deg,#2563eb,#38bdf8); }
.goal-values strong { font-size:18px; }
.goal-values span,.goal-foot,.budget-foot { font-size:10px; }

/* Filters and segmented controls */
.filter-card { padding:14px; gap:10px; }
.search-box { min-height:42px; border-radius:11px; }
.segmented { padding:4px; border-radius:12px; background:var(--panel-2); border:1px solid var(--line); }
.segmented button { min-height:34px; border-radius:9px; font-size:10px; }
.segmented button.active { background:var(--panel-solid); color:var(--brand); box-shadow:0 2px 7px rgba(16,24,40,.08); }
.category-chips { gap:7px; }
.category-chips button { font-size:10px; border-radius:999px; padding:7px 10px; }

/* Modal */
.modal-backdrop,.drawer-backdrop { background:rgba(4,10,20,.56); backdrop-filter:blur(7px); }
.modal {
  border-radius:22px; border-color:var(--line); overflow:hidden;
  box-shadow:0 30px 90px rgba(2,6,23,.25);
}
.modal-head { min-height:66px; padding:0 20px; background:color-mix(in srgb,var(--panel-solid) 95%,var(--brand-soft)); }
.modal-head strong { font-size:15px; }
.modal-body { padding:20px; }
.modal-actions { padding-top:16px; gap:9px; }
.form-grid { gap:14px; }
.transaction-type { padding:5px; border-radius:13px; }
.transaction-type button { min-height:38px; border-radius:10px; font-size:11px; }

/* Settings */
.settings-layout { gap:18px; }
.settings-nav { padding:8px; border-radius:16px; }
.settings-nav button { min-height:42px; border-radius:10px; font-size:11px; }
.settings-nav button.active { background:var(--brand-soft); color:var(--brand); }
.settings-card { padding:21px; border-radius:18px; }
.settings-section h3 { font-size:15px; }
.settings-section p { font-size:11px; line-height:1.6; }
.security-banner { border-radius:16px; padding:15px; background:linear-gradient(135deg,var(--brand-soft),color-mix(in srgb,var(--green-soft) 52%,var(--panel-solid))); }
.security-banner strong { font-size:12px; }.security-banner span{font-size:10px;}
.integration-status { border-radius:12px; padding:11px 12px; }
.integration-status span,.integration-status strong { font-size:10px; }
.checkbox-row { min-height:44px; padding:9px 11px; border-radius:11px; }
.checkbox-row span { font-size:11px; }
.upload-box { border-radius:16px; padding:24px; }

/* Tools */
.tools-grid { gap:15px; }
.tool-card { padding:20px; border-radius:18px; }
.tool-card h3 { font-size:14px; }
.tool-card p { font-size:10.5px; line-height:1.6; }
.tool-results { gap:10px; }
.big-result { font-size:24px; letter-spacing:-.7px; }

/* Empty state */
.empty-state { min-height:220px; padding:30px; }
.empty-icon { width:50px; height:50px; border-radius:15px; background:var(--brand-soft); border-color:color-mix(in srgb,var(--brand) 12%,var(--line)); }
.empty-state h3 { font-size:13px; margin:12px 0 5px; }
.empty-state p { max-width:370px; font-size:10.5px; line-height:1.65; }

/* AI drawer */
.ai-fab {
  min-height:48px; border-radius:999px; padding:0 18px;
  background:linear-gradient(135deg,#1d4ed8,#2563eb 55%,#0ea5e9);
  box-shadow:0 14px 36px rgba(37,99,235,.30);
  font-size:11px;
}
.ai-drawer { width:min(450px,100%); }
.drawer-head { height:72px; padding:0 18px; }
.ai-title strong { font-size:12px; }.ai-title span{font-size:9px;}
.ai-prompts { padding:12px 14px; gap:7px; }
.ai-prompts button { font-size:9px; padding:8px 10px; }
.chat-scroll { padding:18px; gap:11px; }
.chat-message span { font-size:11px; line-height:1.65; padding:11px 13px; border-radius:15px; }
.chat-input { padding:14px; grid-template-columns:1fr 42px; }
.chat-input button { width:42px; height:42px; border-radius:11px; background:linear-gradient(180deg,#3b82f6,#2563eb); }
.toast { min-height:46px; padding:0 15px; border-radius:13px; font-size:11px; box-shadow:0 16px 42px rgba(2,6,23,.26); }

/* Login / first setup */
.auth-page {
  grid-template-columns:minmax(0,1.18fr) minmax(430px,.82fr);
  background:#07101f;
}
.auth-story {
  padding:46px clamp(38px,6vw,92px);
  background:
    radial-gradient(circle at 10% 5%,rgba(37,99,235,.22),transparent 20rem),
    radial-gradient(circle at 82% 88%,rgba(14,165,233,.13),transparent 24rem),
    linear-gradient(145deg,#07101f,#0c1e3a 68%,#0e2c55);
}
.auth-orb.one { background:radial-gradient(circle,rgba(37,99,235,.20),transparent 68%); }
.auth-orb.two { background:radial-gradient(circle,rgba(14,165,233,.12),transparent 70%); }
.hero-badge { color:#bfdbfe; border-color:rgba(147,197,253,.17); background:rgba(59,130,246,.08); font-size:10px; padding:8px 11px; }
.auth-copy h1 { max-width:740px; font-size:clamp(42px,5vw,68px); line-height:1.02; letter-spacing:-3px; font-weight:800; }
.auth-copy p { max-width:640px; font-size:13px; line-height:1.8; color:#a8b7ca; }
.auth-features { gap:12px; }
.auth-features>div { padding:14px; border-radius:15px; background:rgba(255,255,255,.035); border-color:rgba(148,163,184,.10); }
.auth-features svg { color:#60a5fa; }
.auth-features strong { font-size:10px; }.auth-features small{font-size:9px;line-height:1.5;}
.auth-card-wrap {
  padding:34px;
  background:
    radial-gradient(circle at 100% 0%,rgba(37,99,235,.07),transparent 21rem),
    #f5f7fb;
}
.auth-card {
  width:min(430px,100%); padding:30px; border-radius:24px;
  border-color:#e2e8f0; box-shadow:0 28px 80px rgba(15,23,42,.13),0 2px 8px rgba(15,23,42,.04);
}
.auth-card-title>span { font-size:21px; font-weight:800; letter-spacing:-.55px; }
.auth-card-title p { margin:7px 0 22px; font-size:11px; line-height:1.55; }
.auth-card label { margin-top:14px; font-size:12px; }
.auth-card input { min-height:47px; border-radius:12px; }
.auth-error { padding:11px; border-radius:11px; font-size:10px; line-height:1.55; }
.auth-submit { min-height:47px; margin-top:18px; border-radius:12px; }
.auth-note { margin-top:17px; padding-top:16px; font-size:9px; line-height:1.6; }
.checking { height:76px; font-size:11px; }

/* Recharts typography */
.recharts-cartesian-axis-tick-value { fill:var(--muted); font-size:10px; }
.recharts-tooltip-wrapper { outline:none; }
.recharts-default-tooltip { border-radius:12px!important; border:1px solid var(--line)!important; background:var(--panel-solid)!important; box-shadow:0 12px 30px rgba(16,24,40,.12)!important; }
.recharts-tooltip-label,.recharts-tooltip-item { color:var(--text)!important; font-size:11px!important; }

@media (max-width:1180px) {
  .sidebar { width:260px; }
  .main-area { margin-left:260px; }
}
@media (max-width:900px) {
  .sidebar { width:278px; }
  .main-area { margin-left:0; }
  .page-content { padding:22px 18px 46px; }
  .topbar { padding:0 20px; }
  .auth-page { grid-template-columns:1fr; }
  .auth-card-wrap { background:#f4f7fb; }
}
@media (max-width:680px) {
  .topbar { height:68px; }
  .page-content { padding:16px 13px 88px; }
  .page-stack { gap:16px; }
  .page-title h2 { font-size:22px; }
  .hero-strip { min-height:225px; padding:24px 20px; border-radius:20px; }
  .hero-strip h2 { font-size:25px; }
  .hero-strip p { font-size:11px; }
  .kpi-grid { gap:10px; }
  .kpi-card { min-height:112px; padding:15px; }
  .kpi-icon { width:38px;height:38px; }
  .kpi-copy strong { font-size:17px; }
  .panel { border-radius:16px; }
  .chart-card,.table-card { padding:15px; }
  .data-table td,.data-table th { padding:11px 12px; }
  .auth-card-wrap { padding:18px; }
  .auth-card { padding:23px; border-radius:20px; }
}
@media (max-width:420px) {
  .hero-strip { min-height:245px; }
  .kpi-grid,.kpi-grid.three { grid-template-columns:1fr; }
  .kpi-card { min-height:auto; }
  .auth-card-title>span { font-size:19px; }
}

/* FinDompet v3.2 â€” dynamic account types + credit cards + Telegram sync */
.account-card.liability-account{border-color:color-mix(in srgb,var(--red) 22%,var(--line));background:linear-gradient(180deg,color-mix(in srgb,var(--red) 3%,var(--panel-solid)),var(--panel-solid))}
.account-logo.asset{background:color-mix(in srgb,var(--brand) 11%,var(--panel-2));color:var(--brand)}
.account-logo.liability{background:rgba(239,68,68,.09);color:#dc2626}
.account-type.liability{color:#dc2626;background:rgba(239,68,68,.07);border-color:rgba(239,68,68,.14)}
.credit-limit{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:10px 0;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line);margin:2px 0 10px}
.credit-limit>div{display:flex;flex-direction:column;gap:3px}.credit-limit span{font-size:8px;color:var(--faint);text-transform:uppercase;letter-spacing:.7px;font-weight:800}.credit-limit strong{font-size:11px}
.account-cycle{display:flex;align-items:center;gap:5px;margin-top:9px;color:var(--muted);font-size:9px;font-weight:700}
.type-manager{display:flex;flex-direction:column;gap:16px}.muted-copy{margin:0;color:var(--muted);font-size:10px;line-height:1.65}.type-list{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto;padding-right:3px}.type-row{display:grid;grid-template-columns:84px 1fr auto;gap:10px;align-items:center;padding:11px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2)}
.type-nature{height:28px;border-radius:8px;display:grid;place-items:center;font-size:7.5px;font-weight:900;letter-spacing:.7px}.type-nature.asset{background:rgba(37,99,235,.09);color:#2563eb}.type-nature.liability{background:rgba(239,68,68,.09);color:#dc2626}.type-copy{min-width:0}.type-copy strong,.type-copy small{display:block}.type-copy strong{font-size:10px}.type-copy small{font-size:8.5px;color:var(--faint);margin-top:3px}.type-editor{border-top:1px solid var(--line);padding-top:14px}.type-editor h4{margin:0 0 12px;font-size:11px}.inline-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}
.integration-meta{margin-left:auto;font-size:9px;color:var(--brand);font-weight:800}.telegram-toggles{display:grid;gap:8px;margin:10px 0 12px}.integration-actions.wrap{flex-wrap:wrap}.telegram-command-box{margin-top:12px;padding:11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--panel-2);display:flex;flex-direction:column;gap:5px}.telegram-command-box strong{font-size:9px}.telegram-command-box span{font-size:9px;line-height:1.7;color:var(--muted);word-break:break-word}
@media(max-width:680px){.type-row{grid-template-columns:74px 1fr}.type-row .row-actions{grid-column:1/-1;justify-content:flex-end}.credit-limit{grid-template-columns:1fr}.integration-actions.wrap .btn{flex:1 1 45%}}


/* FinDompet FINAL 4.0 â€” modern professional finish */
:root{--radius-card:20px;--focus-ring:0 0 0 4px color-mix(in srgb,var(--brand) 12%,transparent)}
body{background:radial-gradient(circle at 85% -10%,rgba(11,95,255,.07),transparent 28%),var(--bg)}
.panel{border-radius:var(--radius-card);box-shadow:0 8px 26px rgba(16,24,40,.045);transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}
.panel:hover{border-color:color-mix(in srgb,var(--brand) 12%,var(--line));box-shadow:0 14px 38px rgba(16,24,40,.07)}
.sidebar{box-shadow:10px 0 40px rgba(4,17,35,.08)}
.nav-item{height:46px;border-radius:13px;font-size:13px}.nav-caption{margin-top:4px}
.topbar{height:78px}.topbar h1{font-size:20px}.page-content{padding-top:28px}.page-title h2{font-size:25px}.page-title p{font-size:12px}
.hero-strip{min-height:200px;border-radius:26px;padding:32px 34px}.hero-strip h2{font-size:clamp(25px,2.3vw,34px)}.hero-strip p{font-size:12px}
.kpi-card{padding:20px}.kpi-copy>strong{font-size:20px}.kpi-icon{width:42px;height:42px;border-radius:13px}
.data-table th{font-size:10px;letter-spacing:.5px}.data-table td{padding-top:15px;padding-bottom:15px}.data-table tbody tr:hover{background:color-mix(in srgb,var(--brand) 3%,transparent)}
.btn{border-radius:12px;min-height:42px}.btn.primary{background:linear-gradient(135deg,#0b67e3,#0754bd 60%,#087f8c)}
input,select,textarea{border-radius:12px;min-height:42px}.modal{border-radius:22px;box-shadow:0 34px 100px rgba(7,20,38,.24)}
.legacy-feature-wrap{display:grid;gap:18px;min-width:0}.legacy-feature-wrap>div{min-width:0}
.legacy-feature-wrap .rounded-2xl{border-radius:18px!important}.legacy-feature-wrap .shadow-sm{box-shadow:0 8px 26px rgba(16,24,40,.05)!important}
.receipt-upload-field input[type=file]{padding:9px;background:var(--panel-2)}.receipt-preview{width:min(230px,100%);max-height:180px;object-fit:contain;border:1px solid var(--line);border-radius:14px;background:var(--panel-2);padding:6px}
.tx-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.tx-detail-grid>div{padding:13px;border:1px solid var(--line);background:var(--panel-2);border-radius:13px}.tx-detail-grid .full{grid-column:1/-1}.tx-detail-grid span{display:block;font-size:9px;font-weight:900;letter-spacing:.7px;text-transform:uppercase;color:var(--faint);margin-bottom:5px}.tx-detail-grid strong{font-size:12px}.tx-detail-grid p{margin:0;color:var(--muted);font-size:11px;line-height:1.6}.receipt-detail{display:block;max-width:100%;max-height:520px;object-fit:contain;border-radius:12px;margin-top:8px}
.integration-diagnostics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.diag-item{padding:10px;border-radius:11px;border:1px solid var(--line);background:var(--panel-2);font-size:10px}.diag-item.ok{color:var(--green)}.diag-item.warn{color:var(--orange)}
@media(max-width:680px){.hero-strip{border-radius:20px;padding:24px 20px}.tx-detail-grid{grid-template-columns:1fr}.tx-detail-grid .full{grid-column:auto}.legacy-feature-wrap{overflow:hidden}}

/* FINAL 4.0 diagnostics + legacy feature integration */
.diagnostics-panel{background:linear-gradient(180deg,rgba(11,95,255,.045),rgba(15,23,42,.015));border:1px solid rgba(11,95,255,.14)!important}
.diagnostic-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.diagnostic-grid>span{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 13px;border-radius:12px;background:var(--panel-2);border:1px solid var(--line);font-size:12px}
.diagnostic-grid strong{font-size:11px;color:var(--brand)}
.diagnostic-output{margin-top:12px;max-height:260px;overflow:auto;padding:14px;border-radius:13px;background:#07111f;color:#dbeafe;font:11px/1.55 ui-monospace,SFMono-Regular,Menlo,monospace;white-space:pre-wrap;word-break:break-word}
.settings-section code{font:11px ui-monospace,SFMono-Regular,Menlo,monospace;background:var(--panel-2);border:1px solid var(--line);padding:2px 5px;border-radius:6px}
.legacy-feature-wrap{border-radius:22px;overflow:hidden}
@media(max-width:760px){.diagnostic-grid{grid-template-columns:1fr 1fr}}

/* ========================================================================== */
/* FinDompet 4.1 PRO â€” Executive Fintech Theme                               */
/* Restrained slate + emerald palette, consistent light/dark surfaces.        */
/* ========================================================================== */
:root {
  --bg: #f3f6f4;
  --panel: rgba(255,255,255,.96);
  --panel-solid: #ffffff;
  --panel-2: #f7f9f8;
  --text: #10201b;
  --muted: #607069;
  --faint: #8b9a94;
  --line: #e0e7e3;
  --line-strong: #cfdad5;
  --brand: #0f766e;
  --brand-2: #0b5f59;
  --brand-soft: #e8f5f1;
  --green: #15805e;
  --green-soft: #eaf7f1;
  --orange: #b7791f;
  --orange-soft: #fff7e8;
  --red: #c2413b;
  --red-soft: #fff0ef;
  --blue: #2878a5;
  --blue-soft: #eaf5fb;
  --shadow: 0 8px 28px rgba(15, 36, 29, .055);
  --shadow-lg: 0 30px 90px rgba(5, 20, 16, .20);
  --radius-card: 18px;
}

.dark {
  --bg: #07110f;
  --panel: rgba(15, 29, 25, .96);
  --panel-solid: #0f1d19;
  --panel-2: #14251f;
  --text: #edf5f1;
  --muted: #a0b1aa;
  --faint: #6f847b;
  --line: #20342d;
  --line-strong: #2c443b;
  --brand: #47c5aa;
  --brand-2: #25a88f;
  --brand-soft: #12382f;
  --green: #55cf9a;
  --green-soft: #123126;
  --orange: #e6aa52;
  --orange-soft: #352710;
  --red: #f17970;
  --red-soft: #3b1e1c;
  --blue: #75bce1;
  --blue-soft: #123246;
  --shadow: 0 12px 36px rgba(0,0,0,.24);
  --shadow-lg: 0 34px 100px rgba(0,0,0,.50);
}

html, body { background: var(--bg); }
body {
  background:
    radial-gradient(circle at 96% -8%, color-mix(in srgb, var(--brand) 7%, transparent), transparent 26rem),
    linear-gradient(180deg, color-mix(in srgb, var(--panel-2) 58%, var(--bg)) 0, var(--bg) 24rem);
}

.sidebar {
  width: 270px;
  padding: 20px 16px 17px;
  background:
    radial-gradient(circle at 15% -6%, rgba(63, 185, 153, .12), transparent 18rem),
    linear-gradient(180deg, #0b1d19 0%, #0a1714 56%, #07120f 100%);
  border-right: 1px solid rgba(146, 191, 176, .09);
  box-shadow: 12px 0 42px rgba(4, 18, 14, .08);
}
.main-area { margin-left: 270px; }
.brand-wrap { padding: 4px 7px 26px; }
.brand-icon {
  color: #f8fffc;
  background: linear-gradient(145deg, #16a085, #0a6659);
  box-shadow: 0 12px 28px rgba(15, 118, 110, .30), inset 0 1px 0 rgba(255,255,255,.16);
}
.brand-wrap strong, .brand-lockup strong { font-weight: 800; letter-spacing: -.45px; }
.brand-wrap span, .brand-lockup span { color: #7f9a90; letter-spacing: 1.15px; }
.nav-caption { color: #587269; letter-spacing: 1.45px; }
.nav-item { color: #8ca098; border: 1px solid transparent; }
.nav-item:hover { color: #f1faf6; background: rgba(255,255,255,.045); border-color: rgba(255,255,255,.035); }
.nav-item.active {
  color: #f6fffb;
  background: linear-gradient(90deg, rgba(48, 183, 151, .17), rgba(48, 183, 151, .045));
  border-color: rgba(84, 207, 176, .10);
  box-shadow: inset 3px 0 #43c7a8;
}
.nav-item .nav-dot { background: #5bd5b6; box-shadow: 0 0 0 4px rgba(91, 213, 182, .10); }
.sidebar-health { background: rgba(255,255,255,.032); border-color: rgba(255,255,255,.07); }
.sidebar-health p, .profile-copy span { color: #718b81; }
.profile-box { border-top-color: rgba(255,255,255,.065); }
.avatar { background: #143028; color: #cde9df; border: 1px solid rgba(111, 211, 180, .09); }

.topbar {
  height: 76px;
  padding: 0 30px;
  background: color-mix(in srgb, var(--bg) 87%, transparent);
  border-bottom-color: color-mix(in srgb, var(--line) 86%, transparent);
  backdrop-filter: blur(20px) saturate(125%);
}
.topbar h1 { font-size: 20px; font-weight: 760; letter-spacing: -.52px; }
.eyebrow { color: var(--brand); opacity: .78; letter-spacing: 1.25px; }
.page-content { padding: 27px 30px 48px; }
.page-title h2 { font-weight: 780; letter-spacing: -.7px; }
.page-title p { color: var(--muted); }

.panel {
  background: var(--panel);
  border-color: var(--line);
  border-radius: var(--radius-card);
  box-shadow: var(--shadow);
}
.panel:hover { border-color: color-mix(in srgb, var(--brand) 15%, var(--line)); box-shadow: 0 14px 38px rgba(15, 42, 33, .075); }
.dark .panel:hover { box-shadow: 0 15px 38px rgba(0,0,0,.20); }

.hero-strip {
  min-height: 196px;
  border-radius: 24px;
  padding: 31px 33px;
  background:
    radial-gradient(circle at 91% 4%, rgba(147, 231, 204, .16), transparent 16rem),
    radial-gradient(circle at 66% 130%, rgba(51, 163, 135, .20), transparent 23rem),
    linear-gradient(126deg, #0b211c 0%, #0e4a3e 55%, #116455 100%);
  border: 1px solid rgba(182, 232, 216, .11);
  box-shadow: 0 24px 64px rgba(7, 63, 51, .18);
}
.hero-strip::after { border-color: rgba(255,255,255,.07); box-shadow: 0 0 0 45px rgba(255,255,255,.020), 0 0 0 90px rgba(255,255,255,.014); }
.hero-kicker { color: #a8ddcd; }
.hero-strip h2 { font-weight: 760; }
.hero-strip p { color: #c1dcd4; }
.btn.light { color: #133d34; }
.btn.ghost-on-dark { border-color: rgba(219, 246, 237, .19); background: rgba(255,255,255,.055); }

.btn { border-radius: 11px; font-weight: 780; }
.btn.primary {
  background: linear-gradient(135deg, #108273 0%, #0d6e63 58%, #0b5e58 100%);
  box-shadow: 0 8px 20px rgba(15, 118, 110, .20), inset 0 1px 0 rgba(255,255,255,.10);
}
.dark .btn.primary { background: linear-gradient(135deg, #1ba487, #138170); color: #f7fffc; }
.btn.secondary, .icon-btn { background: var(--panel-solid); border-color: var(--line); }
.btn.secondary:hover, .icon-btn:hover { border-color: color-mix(in srgb, var(--brand) 28%, var(--line)); }
.text-btn { color: var(--brand); }
.sync-pill { background: var(--panel-solid); border-color: var(--line); }
.sync-pill.error { cursor: pointer; }

input, select, textarea {
  background: var(--panel-solid);
  border-color: var(--line-strong);
  border-radius: 11px;
}
input:focus, select:focus, textarea:focus { border-color: var(--brand); box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand) 11%, transparent); }

.kpi-card { padding: 20px; gap: 14px; }
.kpi-icon { width: 42px; height: 42px; border-radius: 12px; }
.kpi-icon.violet { color: #0f766e; background: #e6f5f1; }
.kpi-icon.green { color: #16765a; background: #e9f6f0; }
.kpi-icon.orange { color: #a56e24; background: #fff5e5; }
.kpi-icon.blue { color: #2a718f; background: #eaf4f7; }
.dark .kpi-icon.violet { color: #63d5b8; background: #143d33; }
.dark .kpi-icon.green { color: #6ed6aa; background: #15372a; }
.dark .kpi-icon.orange { color: #ecc06d; background: #382b16; }
.dark .kpi-icon.blue { color: #85c9e2; background: #153445; }
.kpi-copy span { letter-spacing: .08px; }
.kpi-copy strong { font-weight: 790; }

.chart-card, .table-card { padding: 20px; }
.data-table-wrap { border-color: var(--line); border-radius: 13px; }
.data-table th { background: var(--panel-2); color: var(--faint); letter-spacing: .72px; }
.data-table tbody tr:hover td { background: color-mix(in srgb, var(--brand) 3.3%, var(--panel-solid)); }
.soft-badge { background: var(--panel-2); }
.bar-fill.c0,.legend-dot.c0 { background:#0f766e; }
.bar-fill.c1,.legend-dot.c1 { background:#2f9d83; }
.bar-fill.c2,.legend-dot.c2 { background:#4d7c78; }
.bar-fill.c3,.legend-dot.c3 { background:#bf862d; }
.bar-fill.c4,.legend-dot.c4 { background:#6c7f99; }
.progress>div { background: linear-gradient(90deg, #0f766e, #37a78d); }

.account-card::after { background: color-mix(in srgb, var(--brand) 7%, transparent); }
.account-card.liability-account { border-color: color-mix(in srgb, var(--red) 22%, var(--line)); background: linear-gradient(180deg, color-mix(in srgb, var(--red) 2.5%, var(--panel-solid)), var(--panel-solid)); }
.account-logo.asset { background: color-mix(in srgb, var(--brand) 11%, var(--panel-2)); color: var(--brand); }
.type-nature.asset { background: color-mix(in srgb, var(--brand) 10%, var(--panel-2)); color: var(--brand); }

.modal-backdrop,.drawer-backdrop { background: rgba(4, 15, 12, .60); backdrop-filter: blur(8px); }
.modal { border-radius: 20px; border-color: var(--line); }
.modal-head { background: color-mix(in srgb, var(--panel-solid) 96%, var(--brand-soft)); }
.transaction-type { border: 1px solid var(--line); }
.ai-fab {
  background: linear-gradient(135deg, #0f7b6d, #0b5d56);
  box-shadow: 0 15px 36px rgba(11, 94, 82, .28);
  border: 1px solid rgba(255,255,255,.09);
}
.chat-message.user span, .chat-input button { background: var(--brand); }
.toast { border: 1px solid color-mix(in srgb, var(--line) 80%, transparent); }

/* Align legacy Tailwind-powered panels with the PRO theme. */
.legacy-feature-wrap .text-blue-500,
.legacy-feature-wrap .text-blue-600,
.legacy-feature-wrap .text-blue-400,
.legacy-feature-wrap .text-sky-500,
.legacy-feature-wrap .text-sky-600 { color: var(--brand) !important; }
.legacy-feature-wrap .bg-blue-600,
.legacy-feature-wrap .bg-sky-600 { background-color: var(--brand) !important; }
.legacy-feature-wrap .border-blue-200,
.legacy-feature-wrap .border-blue-500,
.legacy-feature-wrap .border-sky-200 { border-color: color-mix(in srgb, var(--brand) 25%, var(--line)) !important; }
.legacy-feature-wrap .bg-blue-50 { background-color: color-mix(in srgb, var(--brand) 7%, var(--panel-solid)) !important; }
.legacy-feature-wrap input[type="range"] { accent-color: var(--brand) !important; }

/* Authentication â€” sober private-banking presentation. */
.auth-page {
  background:
    radial-gradient(circle at 2% -8%, rgba(63, 190, 157, .16), transparent 27rem),
    radial-gradient(circle at 45% 110%, rgba(38, 122, 103, .13), transparent 31rem),
    #071511;
}
.auth-orb.one { background: radial-gradient(circle,rgba(49, 183, 149, .16),transparent 68%); }
.auth-orb.two { background: radial-gradient(circle,rgba(13, 107, 91, .18),transparent 70%); }
.hero-badge { color: #bfe5d9; border-color: rgba(153, 222, 201, .13); background: rgba(255,255,255,.04); }
.auth-copy h1 { color: #f4fbf8; font-weight: 760; letter-spacing: -2.7px; }
.auth-copy p { color: #9fb9b0; }
.auth-features>div { background: rgba(255,255,255,.028); border-color: rgba(163, 209, 195, .09); }
.auth-features svg { color: #55c8aa; }
.auth-features small { color: #758e85; }
.auth-card-wrap {
  background:
    radial-gradient(circle at 100% 0%, rgba(15, 118, 110, .08), transparent 21rem),
    #f2f6f4;
}
.auth-card { border-color: #dae4df; box-shadow: 0 30px 90px rgba(7, 31, 24, .14), 0 2px 8px rgba(7,31,24,.04); }
.auth-card input { border-color: #cfdad5; color: #10201b; }
.auth-note svg { color: #168060; }

@media (max-width: 1180px) {
  .sidebar { width: 260px; }
  .main-area { margin-left: 260px; }
}
@media (max-width: 900px) {
  .main-area { margin-left: 0; }
  .sidebar { width: 278px; }
  .topbar { padding: 0 20px; }
  .page-content { padding: 22px 18px 46px; }
}
@media (max-width: 680px) {
  .hero-strip { padding: 24px 20px; border-radius: 19px; }
  .page-content { padding: 16px 13px 88px; }
  .topbar { padding: 0 14px; }
  .sync-pill span { display: none; }
  .sync-pill { width: 36px; padding: 0; justify-content: center; }
}

/* === FinDompet 5.0 Intelligence Workspace === */
.smart-pulse { padding: 18px; margin-top: 18px; }
.smart-pulse-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; margin-bottom:14px; }
.smart-pulse-head h3,.smart-hub-hero h2 { margin:5px 0 4px; letter-spacing:-.45px; }
.smart-pulse-head p,.smart-hub-hero p,.smart-help { margin:0; color:var(--muted); font-size:10.5px; line-height:1.65; }
.smart-kicker { display:flex; align-items:center; gap:6px; color:var(--brand); font-size:8.5px; font-weight:900; letter-spacing:1.4px; }
.smart-alert-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.smart-alert { min-height:78px; border:1px solid var(--line); border-radius:13px; padding:12px; display:flex; gap:10px; background:var(--panel-solid); }
.smart-alert-icon { width:31px;height:31px;border-radius:9px;display:grid;place-items:center;flex:0 0 auto;background:var(--panel-2);color:var(--muted); }
.smart-alert.warn .smart-alert-icon { color:var(--orange); background:var(--orange-soft); }
.smart-alert.danger .smart-alert-icon { color:var(--red); background:var(--red-soft); }
.smart-alert.good .smart-alert-icon { color:var(--green); background:var(--green-soft); }
.smart-alert strong,.smart-alert span { display:block; }
.smart-alert strong { font-size:10.5px; }
.smart-alert span { font-size:9px; color:var(--muted); margin-top:4px; line-height:1.5; }
.smart-hub { margin-bottom:22px; }
.smart-hub-hero { padding:23px 24px; border-radius:18px; border:1px solid var(--line); background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 8%,var(--panel-solid)),var(--panel-solid) 58%); display:flex; justify-content:space-between; align-items:flex-end; gap:18px; box-shadow:var(--shadow); }
.smart-hub-hero h2 { font-size:22px; }
.smart-hub-hero p { max-width:660px; }
.smart-tabbar { display:flex; gap:5px; padding:4px; border:1px solid var(--line); background:var(--panel-2); border-radius:12px; flex-wrap:wrap; }
.smart-tabbar button { border:0; background:transparent; border-radius:9px; padding:8px 11px; font-size:10px; font-weight:800; color:var(--muted); cursor:pointer; }
.smart-tabbar button.active { background:var(--panel-solid); color:var(--brand); box-shadow:0 2px 7px rgba(0,0,0,.06); }
.smart-kpi-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:10px; }
.smart-kpi { border:1px solid var(--line); border-radius:14px; padding:15px; background:var(--panel-solid); }
.smart-kpi span,.smart-kpi strong { display:block; }
.smart-kpi span { color:var(--muted); font-size:9px; font-weight:800; }
.smart-kpi strong { margin-top:5px; font-size:18px; letter-spacing:-.45px; }
.smart-kpi.emphasis { border-color:color-mix(in srgb,var(--brand) 28%,var(--line)); background:color-mix(in srgb,var(--brand) 5%,var(--panel-solid)); }
.smart-two-col { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.smart-card { padding:18px; }
.smart-card>.section-head>svg { color:var(--brand); }
.smart-timeline { display:grid; }
.smart-timeline>div { min-height:52px; display:flex; align-items:center; gap:9px; border-top:1px solid var(--line); }
.smart-timeline>div:first-child { border-top:0; }
.smart-flow-dot { width:8px;height:8px;border-radius:50%;background:var(--red);flex:0 0 auto; }
.smart-flow-dot.income { background:var(--green); }
.smart-timeline .grow { min-width:0; flex:1; }
.smart-timeline strong,.smart-timeline small { display:block; }
.smart-timeline strong { font-size:10px; }
.smart-timeline small { color:var(--faint); font-size:8.5px; margin-top:3px; }
.smart-empty { color:var(--faint); font-size:10px; margin:12px 0; }
.smart-ai-placeholder { min-height:230px; display:flex; flex-direction:column; justify-content:center; align-items:flex-start; gap:9px; padding:15px 5px; }
.smart-ai-placeholder>svg { color:var(--brand); }
.smart-ai-placeholder strong { font-size:14px; }
.smart-ai-placeholder p { margin:0; color:var(--muted); font-size:10px; line-height:1.6; max-width:480px; }
.smart-ai-score { display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border-radius:12px;background:var(--panel-2); }
.smart-ai-score span,.smart-ai-score strong { display:block; }
.smart-ai-score span { font-size:8px;color:var(--faint);font-weight:900;letter-spacing:1px; }
.smart-ai-score strong { margin-top:3px;font-size:11px; }
.smart-ai-score b { font-size:19px;color:var(--brand); }
.smart-plan-list { display:grid; gap:8px; margin:10px 0; }
.smart-plan-list>div { display:flex;gap:9px;padding:10px;border:1px solid var(--line);border-radius:11px; }
.smart-plan-list>div>span { width:22px;height:22px;border-radius:7px;display:grid;place-items:center;background:var(--brand-soft);color:var(--brand);font-size:9px;font-weight:900;flex:0 0 auto; }
.smart-plan-list strong { display:block;font-size:10px; }
.smart-plan-list p { margin:3px 0 0;font-size:9px;color:var(--muted);line-height:1.5; }
.smart-plan-list small { display:block;margin-top:4px;color:var(--faint);font-size:8.5px; }
.smart-capture { max-width:980px; }
.smart-capture-row { display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:14px; }
.smart-note { margin-top:12px;padding:11px;border-radius:11px;background:var(--panel-2);display:flex;align-items:center;gap:8px;color:var(--muted);font-size:9.5px; }
.smart-note .text-btn { margin-left:auto; }
.smart-import-controls { display:grid;grid-template-columns:minmax(220px,320px) 1fr;gap:12px;align-items:end; }
.smart-upload { min-height:64px;border:1px dashed var(--line-strong);border-radius:12px;display:flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;background:var(--panel-2); }
.smart-upload input { display:none; }
.smart-import-summary { display:flex;gap:8px;flex-wrap:wrap;margin:14px 0 9px; }
.smart-import-summary span { border:1px solid var(--line);border-radius:99px;padding:5px 8px;font-size:8.5px;color:var(--muted);font-weight:800;background:var(--panel-solid); }
.smart-table-wrap { overflow:auto;max-height:430px;border:1px solid var(--line);border-radius:12px; }
.smart-table { width:100%;border-collapse:collapse;font-size:9px; }
.smart-table th { position:sticky;top:0;background:var(--panel-2);z-index:1;color:var(--muted);text-align:left;padding:9px;border-bottom:1px solid var(--line); }
.smart-table td { padding:7px 9px;border-bottom:1px solid var(--line);white-space:nowrap; }
.smart-table select { padding:5px 7px;border-radius:8px;font-size:9px;min-width:130px; }
.smart-table .muted-row { opacity:.52; }
.smart-import-actions { display:flex;justify-content:flex-end;gap:8px;margin-top:10px; }
.rule-editor { display:grid;grid-template-columns:1fr minmax(180px,260px) auto;gap:8px;margin-top:14px; }
.rule-list { display:grid;gap:7px;margin-top:12px; }
.rule-list>div { min-height:44px;display:flex;align-items:center;gap:9px;border:1px solid var(--line);border-radius:10px;padding:6px 8px; }
.rule-list code { font-size:9px;background:var(--panel-2);padding:5px 7px;border-radius:7px; }
.rule-list strong { font-size:9.5px;flex:1; }
.smart-check-list { display:grid;gap:8px; }
.smart-check-list>div { display:flex;align-items:center;gap:8px;padding:10px;border:1px solid var(--line);border-radius:10px;font-size:10px; }
.smart-check-list svg { color:var(--green); }
.planning-suite-head { margin:28px 0 14px;padding-top:22px;border-top:1px solid var(--line); }
.planning-suite-head h2 { margin:4px 0;font-size:20px; }
.planning-suite-head p { margin:0;color:var(--muted);font-size:10.5px; }
.split-editor { border:1px solid var(--line);border-radius:12px;padding:11px;background:var(--panel-2); }
.split-head { display:flex;align-items:center;justify-content:space-between;gap:10px; }
.split-head strong,.split-head small { display:block; }
.split-head strong { font-size:10px;color:var(--text); }
.split-head small { margin-top:3px;color:var(--faint);font-size:8.5px;font-weight:500; }
.split-list { display:grid;gap:7px;margin-top:10px; }
.split-row { display:grid;grid-template-columns:1fr 1fr auto;gap:7px;align-items:center; }
.split-footer { display:flex;align-items:center;justify-content:space-between;margin-top:8px;color:var(--muted);font-size:9px; }
.tx-split-detail>div { margin-top:6px;display:grid;gap:5px; }
.tx-split-detail>div>div { display:flex;justify-content:space-between;gap:10px;padding:7px 9px;background:var(--panel-2);border-radius:8px; }
.tx-split-detail b { font-size:10px; }
.smart-advisor-wrap { margin-top:24px;padding-top:22px;border-top:1px solid var(--line); }

@media (max-width: 1000px) {
  .smart-alert-grid,.smart-kpi-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .smart-two-col { grid-template-columns:1fr; }
  .smart-hub-hero { align-items:flex-start;flex-direction:column; }
}
@media (max-width: 680px) {
  .smart-pulse-head { flex-direction:column; }
  .smart-alert-grid,.smart-kpi-grid { grid-template-columns:1fr; }
  .smart-import-controls,.rule-editor,.smart-capture-row { grid-template-columns:1fr; }
  .smart-import-actions { flex-direction:column; }
  .split-row { grid-template-columns:1fr 1fr auto; }
}
.smart-integrations { display:flex;gap:7px;flex-wrap:wrap;margin-top:9px; }
.smart-integrations span { display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border:1px solid var(--line);border-radius:99px;background:var(--panel-solid);font-size:8.5px;font-weight:800;color:var(--muted); }
.smart-integrations i { width:6px;height:6px;border-radius:50%;background:var(--orange); }
.smart-integrations i.ok { background:var(--green);box-shadow:0 0 0 3px color-mix(in srgb,var(--green) 12%,transparent); }

/* 6.1.8 category role separation */
.category-chips span{border-radius:12px;flex-wrap:wrap}
.category-role-select{width:auto!important;min-width:92px;height:26px!important;padding:0 24px 0 8px!important;border-radius:999px!important;font-size:8px!important;background:var(--panel)!important}
.category-add-form{grid-template-columns:minmax(0,1fr) minmax(120px,auto) auto}
@media (max-width:640px){.category-add-form{grid-template-columns:1fr}.category-role-select{min-width:100px}}

/* 6.4.2 utang-piutang + net worth history + amortisasi */
.iou-summary{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.iou-chip{display:flex;align-items:center;gap:10px;padding:10px 16px;border-radius:var(--radius-md);background:var(--panel);border:1px solid var(--line)}
.iou-chip svg{width:18px;height:18px}
.iou-chip span{display:block;font-size:11px;color:var(--muted)}
.iou-chip strong{font-size:15px}
.iou-chip.receivable svg,.iou-chip.receivable strong{color:var(--green)}
.iou-chip.debt svg,.iou-chip.debt strong{color:var(--red)}
.iou-summary .btn{margin-left:auto}
.iou-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.iou-card{display:flex;flex-direction:column;gap:10px;padding:14px 16px}
.iou-card.settled{opacity:.62}
.iou-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.iou-title{display:flex;align-items:center;gap:10px}
.iou-kind{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:10px;flex:none}
.iou-kind.receivable{background:var(--green-soft);color:var(--green)}
.iou-kind.debt{background:var(--red-soft);color:var(--red)}
.iou-title strong{display:block}
.iou-title small{color:var(--muted);font-size:11px}
.iou-amount{font-size:15px;white-space:nowrap}
.iou-meta{display:flex;gap:6px;flex-wrap:wrap;font-size:11px;color:var(--muted)}
.iou-meta span{background:var(--panel);border:1px solid var(--line);border-radius:999px;padding:3px 9px}
.iou-meta span.iou-note{max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.iou-empty{padding:22px;text-align:center}
.iou-empty p{color:var(--muted);font-size:12px;margin-top:6px}
.iou-show-settled{margin-top:12px;background:none;border:1px dashed var(--line-strong);border-radius:999px;color:var(--muted);padding:7px 14px;cursor:pointer;font-size:12px}
.iou-hint{display:flex;gap:7px;align-items:flex-start;margin-top:12px;font-size:11px;color:var(--muted)}
.iou-hint svg{flex:none;margin-top:1px}
.amort-result{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-top:12px}
.amort-result>div{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius-md);padding:10px 12px}
.amort-result span{display:block;font-size:11px;color:var(--muted)}
.amort-result strong{font-size:14px}
.amort-more{display:block;margin-top:8px;color:var(--muted);font-size:11px}
.cashflow-legend .networth i{background:#6366f1}

/* ==== 6.4.2 portofolio + heatmap + sankey + deposito ==== */
.ai-head-actions{display:flex;gap:8px;flex-shrink:0}
.portfolio-stack{display:flex;flex-direction:column;gap:16px}
.portfolio-hero{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:18px 20px}
.portfolio-hero-main{display:flex;flex-direction:column;gap:4px}
.portfolio-hero-main strong{font-size:28px;letter-spacing:-.5px}
.portfolio-hero-main small{display:inline-flex;align-items:center;gap:6px;color:var(--muted)}
.portfolio-hero-main small.income{color:var(--green)}
.portfolio-hero-main small.expense{color:var(--red)}
.portfolio-hero-actions{display:flex;gap:8px;flex-wrap:wrap}
.portfolio-alloc{display:flex;gap:4px;height:26px;border-radius:8px;overflow:hidden}
.portfolio-alloc-bar{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);color:#fff;font-size:11px;font-weight:600;min-width:34px}
.portfolio-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}
.portfolio-card{padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.portfolio-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.portfolio-head .iou-kind.portfolio{background:rgba(99,102,241,.12);color:#6366f1}
.portfolio-amounts{display:flex;flex-direction:column;align-items:flex-end;gap:2px}
.sankey-wrap{height:340px;width:100%}
.deposit-info b{font-variant-numeric:tabular-nums}
.spend-heatmap{display:flex;flex-direction:column;gap:6px}
.spend-heatmap-weekdays,.spend-heatmap-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.spend-heatmap-weekdays span{text-align:center;font-size:11px;color:var(--muted);font-weight:600}
.spend-cell{aspect-ratio:1;border-radius:7px;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:600;background:var(--faint,#f1f5f9);color:var(--muted);cursor:default}
.spend-cell.empty{background:transparent}
.spend-cell.low{background:rgba(99,102,241,.18);color:inherit}
.spend-cell.mid{background:rgba(99,102,241,.42);color:#fff}
.spend-cell.high{background:rgba(234,88,12,.62);color:#fff}
.spend-cell.xhigh{background:var(--red,#dc2626);color:#fff}
.spend-cell.zero{background:rgba(22,163,74,.18)}
.spend-cell.future{opacity:.35}
.spend-cell.today{outline:2px solid var(--blue,#2563eb);outline-offset:1px}
.spend-heatmap-legend{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--muted);flex-wrap:wrap}
.spend-heatmap-legend i{width:14px;height:14px;border-radius:4px;display:inline-block}
.spend-heatmap-legend i.low{background:rgba(99,102,241,.18)}
.spend-heatmap-legend i.mid{background:rgba(99,102,241,.42)}
.spend-heatmap-legend i.high{background:rgba(234,88,12,.62)}
.spend-heatmap-legend i.xhigh{background:var(--red,#dc2626)}
.spend-heatmap-legend b{margin-left:auto;font-variant-numeric:tabular-nums}
@media (max-width:640px){.portfolio-hero{flex-direction:column;align-items:flex-start}.sankey-wrap{height:280px}}

/* ==== 6.4.2 FIRE + ikon kategori ==== */
.fire-wrap{display:flex;flex-direction:column;gap:16px}
.fire-result{display:flex;flex-direction:column;gap:10px}
.fire-main span{display:block;font-size:11px;color:var(--muted);letter-spacing:.08em}
.fire-main strong{font-size:26px;letter-spacing:-.5px}
.fire-status{border-left:3px solid var(--line-strong);padding-left:12px;display:flex;flex-direction:column;gap:2px}
.fire-status.good{border-left-color:var(--green)}
.fire-status strong{font-size:15px}
.fire-status span{color:var(--muted);font-size:13px}
.category-icon-btn{background:var(--faint,#f1f5f9);border:0;border-radius:6px;padding:0 4px;cursor:pointer;font-size:13px;line-height:1.4}
