:root{
  --bg:#15101d;
  --bg-elevated:#1c1628;
  --surface:#201a2e;
  --surface-hover:#281f39;
  --border:rgba(201,162,75,0.16);
  --border-strong:rgba(201,162,75,0.34);
  --divider:rgba(255,255,255,0.07);
  --text:#f3ead9;
  --text-secondary:#b6a8c9;
  --text-tertiary:#7d6f94;
  --gold:#c9a24b;
  --gold-hover:#ddb85f;
  --gold-soft:rgba(201,162,75,0.13);
  --green:#7fae7a;
  --green-soft:rgba(127,174,122,0.15);
  --red:#c1596a;
  --red-soft:rgba(193,89,106,0.15);
  --amber:#d99a3c;
  --amber-soft:rgba(217,154,60,0.15);
  --violet:#9384cf;
  --violet-soft:rgba(147,132,207,0.15);
  --font-display:'Fraunces',Georgia,serif;
  --font-body:'Manrope',system-ui,sans-serif;
  --radius-s:8px;
  --radius-m:14px;
  --radius-l:20px;
}
*{box-sizing:border-box;}
body{background:var(--bg);color:var(--text);font-family:var(--font-body);}
a{color:inherit;}
.app-shell{width:100%;min-height:100%;background:var(--bg);position:relative;}
.topnav{height:72px;display:flex;align-items:center;gap:28px;padding:0 32px;background:var(--bg-elevated);border-bottom:1px solid var(--border);}
.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--gold);white-space:nowrap;}
.brand svg{width:22px;height:22px;flex-shrink:0;}
.navtabs{display:flex;align-items:center;gap:2px;flex:1;overflow-x:auto;scrollbar-width:none;}
.navtabs::-webkit-scrollbar{display:none;}
.navtab{display:flex;align-items:center;gap:6px;padding:10px 12px;border-radius:10px;font-size:12.5px;font-weight:600;color:var(--text-secondary);text-decoration:none;white-space:nowrap;border-bottom:2px solid transparent;flex-shrink:0;}
.navtab:hover{color:var(--text);background:var(--surface-hover);}
.navtab.active{color:var(--gold);border-bottom:2px solid var(--gold);background:var(--gold-soft);}
.navtab svg{width:15px;height:15px;flex-shrink:0;}
.nav-actions{display:flex;align-items:center;gap:10px;flex-shrink:0;}
.icon-btn{width:38px;height:38px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--surface);border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;text-decoration:none;position:relative;flex-shrink:0;}
.icon-btn:hover{color:var(--gold);border-color:var(--border-strong);}
.icon-btn svg{width:17px;height:17px;}
.dot-badge{position:absolute;top:7px;right:7px;width:7px;height:7px;border-radius:50%;background:var(--red);border:1.5px solid var(--bg-elevated);}
.page{padding:34px 40px 110px;}
.page-header{display:flex;align-items:flex-end;justify-content:space-between;margin-bottom:26px;gap:20px;}
.page-title{font-family:var(--font-display);font-size:29px;font-weight:600;color:var(--text);margin:0;}
.page-sub{font-size:12.5px;color:var(--text-tertiary);margin-top:5px;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:20px;}
.kpi-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:26px;max-width:600px;}
.kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-m);padding:20px 22px;}
.kpi-label{font-size:11.5px;text-transform:uppercase;letter-spacing:0.06em;color:var(--text-tertiary);margin-bottom:8px;font-weight:600;}
.kpi-value{font-family:var(--font-display);font-size:30px;font-weight:600;color:var(--text);}
.kpi-value.positive{color:var(--green);}
.kpi-value.negative{color:var(--red);}
.btn{display:inline-flex;align-items:center;gap:8px;padding:11px 20px;border-radius:10px;font-size:13.5px;font-weight:600;border:1px solid transparent;cursor:pointer;text-decoration:none;white-space:nowrap;}
.btn svg{width:15px;height:15px;}
.btn-primary{background:var(--gold);color:#241b0c;}
.btn-primary:hover{background:var(--gold-hover);}
.btn-ghost{background:transparent;border:1px solid var(--border-strong);color:var(--text);}
.btn-ghost:hover{background:var(--surface-hover);}
.btn-sm{padding:7px 13px;font-size:12.5px;border-radius:8px;}
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:10.5px;font-weight:700;letter-spacing:0.02em;text-transform:uppercase;}
.badge-red{background:var(--red-soft);color:var(--red);}
.badge-amber{background:var(--amber-soft);color:var(--amber);}
.badge-green{background:var(--green-soft);color:var(--green);}
.badge-violet{background:var(--violet-soft);color:var(--violet);}
.badge-gold{background:var(--gold-soft);color:var(--gold);}
.progress{height:8px;border-radius:999px;background:var(--divider);overflow:hidden;}
.progress-bar{height:100%;border-radius:999px;background:var(--gold);}
.progress-bar.green{background:var(--green);}
.progress-bar.amber{background:var(--amber);}
.progress-bar.red{background:var(--red);}
table.data-table{width:100%;border-collapse:collapse;font-size:13px;}
.data-table th{text-align:left;font-size:10.5px;text-transform:uppercase;letter-spacing:0.05em;color:var(--text-tertiary);font-weight:700;padding:10px 14px;border-bottom:1px solid var(--border);}
.data-table td{padding:12px 14px;border-bottom:1px solid var(--divider);color:var(--text);}
.data-table tr:hover td{background:var(--surface-hover);}
.input,.select{background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:10px;padding:11px 14px;font-size:13.5px;color:var(--text);font-family:var(--font-body);width:100%;}
.input::placeholder{color:var(--text-tertiary);}
.field-label{display:block;font-size:11.5px;font-weight:700;color:var(--text-secondary);margin-bottom:6px;text-transform:uppercase;letter-spacing:0.03em;}
.form-row{margin-bottom:18px;}
.form-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.segmented{display:inline-flex;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:10px;padding:3px;}
.segmented-opt{padding:9px 26px;border-radius:8px;font-size:13px;font-weight:700;color:var(--text-secondary);cursor:pointer;}
.segmented-opt.active{background:var(--gold);color:#241b0c;}
.segmented-opt.active.expense{background:var(--red);color:#fff;}
.floating-add{position:fixed;right:36px;bottom:36px;width:56px;height:56px;border-radius:50%;background:var(--gold);color:#241b0c;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 28px rgba(0,0,0,0.45);text-decoration:none;}
.floating-add:hover{background:var(--gold-hover);}
.floating-add svg{width:24px;height:24px;}
.chip{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;background:var(--surface);border:1px solid var(--border);font-size:12px;color:var(--text-secondary);font-weight:600;cursor:pointer;}
.chip.active{background:var(--gold-soft);border-color:var(--border-strong);color:var(--gold);}
.section-title{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--text);margin:0 0 14px;}
.hr{height:1px;background:var(--divider);border:none;margin:26px 0;}
.alert-row{display:flex;align-items:flex-start;gap:12px;padding:13px 15px;border-radius:12px;background:var(--surface);border:1px solid var(--border);}
.alert-row + .alert-row{margin-top:9px;}
.icon-circle{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.icon-circle svg{width:16px;height:16px;}
.modal-backdrop{position:absolute;inset:0;background:rgba(10,7,15,0.62);display:flex;align-items:center;justify-content:center;}
.modal{width:400px;background:var(--bg-elevated);border:1px solid var(--border-strong);border-radius:var(--radius-l);padding:24px;box-shadow:0 24px 70px rgba(0,0,0,0.55);}
.modal-title{font-family:var(--font-display);font-size:19px;font-weight:600;margin:0 0 16px;}
.avatar-tile{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.avatar-tile svg{width:20px;height:20px;}
.sparkbar{display:flex;align-items:flex-end;gap:3px;height:32px;}
.sparkbar div{width:5px;border-radius:2px;background:var(--gold-soft);}
.empty-note{font-size:12.5px;color:var(--text-tertiary);font-style:italic;}
.tab-row-sub{display:flex;gap:8px;margin-bottom:22px;flex-wrap:wrap;}
