/* Halaga Dashboard V2 — Forest + Sand / Charcoal + Emerald */
.dashboard-v2{--dash-forest:#27352E;--dash-forest-2:#566C5D;--dash-sand:#B49A6A;--dash-cream:#F4F1EA;--dash-charcoal:#2F312E;--dash-emerald:#8A9A8D;--dash-surface:#FFFCF6;--dash-line:#DDD7CA}
.dashboard-v2{max-width:100%;color:var(--text)}
.dashboard-v2-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin-bottom:14px}
.dashboard-v2-head h2{margin:0;color:var(--dash-forest);letter-spacing:-.03em}
.dashboard-v2-head p{margin:4px 0 0;color:var(--muted)}
.dashboard-v2-tools{align-items:center}
.dashboard-v2-focus{display:none}
.dashboard-v2-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:12px}
.dashboard-v2-metric{min-height:88px;display:flex;align-items:center;gap:12px;padding:14px;border:1px solid var(--dash-line);background:var(--card);box-shadow:0 5px 18px rgba(24,58,50,.04)}
.dashboard-v2-metric h3{margin:4px 0 3px;font-size:21px;color:var(--dash-forest)}
.dashboard-v2-metric small{font-weight:700;color:var(--muted)}
.dashboard-v2-delta{font-size:10px;color:var(--muted)}
.dashboard-v2-delta.positive{color:#26765e}.dashboard-v2-delta.negative{color:#a05252}
.dashboard-v2-main-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.78fr) minmax(270px,.78fr);gap:12px;align-items:start}
.dashboard-v2-left,.dashboard-v2-center,.dashboard-v2-right{display:grid;gap:12px;min-width:0}
.dashboard-v2 .card{border-color:var(--dash-line);box-shadow:0 4px 18px rgba(24,58,50,.035)}
.dashboard-v2 .title h3{color:var(--dash-forest)}
.dashboard-v2-chart-card{min-height:300px}
.dashboard-v2-chart{min-height:235px}.dashboard-v2-chart-empty{min-height:235px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;padding:24px;border:1px dashed var(--dash-line);border-radius:12px;background:var(--dash-surface);color:var(--muted)}.dashboard-v2-chart-empty strong{font-size:16px;color:var(--dash-forest)}.dashboard-v2-chart-empty span{max-width:420px;font-size:13px;line-height:1.55}
.dashboard-v2-chart svg{display:block;width:100%;height:auto}
.dashboard-v2-chart .axis{stroke:var(--line);stroke-width:1}
.dashboard-v2-chart .income-line{stroke:var(--dash-forest-2);fill:none;stroke-width:3}
.dashboard-v2-chart .expense-line{stroke:var(--dash-emerald);fill:none;stroke-width:3}
.dashboard-v2-chart .income-fill{fill:rgba(85,122,108,.10)}
.dashboard-v2-chart .expense-fill{fill:rgba(121,185,165,.08)}
.dashboard-v2-expense{min-height:300px}
.dashboard-v2-expense #cats{min-height:235px}
.dashboard-v2-expense .expense-category-wrap{height:100%;display:flex;flex-direction:column;justify-content:center}
.dashboard-v2-expense .expense-category-total{display:flex;justify-content:space-between;align-items:end;margin-bottom:10px}
.dashboard-v2-expense .expense-category-visual{display:grid;grid-template-columns:150px minmax(0,1fr);align-items:center;gap:14px}
.dashboard-v2-expense .donut-chart{width:145px;height:145px}
.dashboard-v2-expense .donut-legend{max-height:175px;overflow:auto}
.dashboard-v2-savings{min-height:200px}
.dashboard-v2-savings .progress{background:#e7eee8}.dashboard-v2-savings .progress i{background:linear-gradient(90deg,var(--dash-forest),var(--dash-emerald))}
.dashboard-v2-right>.card{min-width:0}
.dashboard-v2-right .title{gap:8px}
#financeHealthBody{padding-top:6px}
.dashboard-health-score{display:flex;align-items:end;justify-content:space-between;gap:12px;margin:6px 0 12px}
.dashboard-health-score strong{font-size:20px;color:var(--dash-forest)}
.dashboard-health-bar{height:9px;border-radius:999px;background:var(--line);overflow:hidden}
.dashboard-health-bar i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--dash-forest),var(--dash-emerald))}
.dashboard-health-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:12px}
.dashboard-health-grid div{padding:9px;border:1px solid var(--dash-line);border-radius:10px;background:var(--bg)}
.dashboard-health-grid small{display:block;color:var(--muted)}
.dashboard-health-grid strong{display:block;margin-top:3px;color:var(--dash-forest)}
.dashboard-v2-account-list{display:grid;gap:8px}
.dashboard-account-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px;border:1px solid var(--dash-line);border-radius:11px;background:var(--bg)}
.dashboard-account-row strong{color:var(--dash-forest)}
.dashboard-account-row small{display:block;color:var(--muted)}
.dashboard-account-icon{width:32px;height:32px;border-radius:9px;display:grid;place-items:center;background:var(--dash-forest);color:#fff;font-size:12px;flex:0 0 auto}
.dashboard-v2-activity-list{display:grid;gap:8px}
.dashboard-activity{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:start}
.dashboard-activity-icon{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:rgba(121,185,165,.22);color:var(--dash-forest);font-size:12px}
.dashboard-activity strong{display:block;font-size:11px}.dashboard-activity small{display:block;color:var(--muted);margin-top:2px}
.dashboard-v2-transactions{min-height:330px}
.dashboard-v2-search{width:180px;max-width:42%;border:1px solid var(--dash-line);border-radius:10px;padding:9px 11px;background:var(--bg);color:var(--text)}
.dashboard-v2-transactions .table th{color:var(--muted)}
.dashboard-v2-transactions .table td{border-color:var(--dash-line)}
.dashboard-v2-lower-grid{display:none}
.dashboard-v2-hidden-source{display:none!important}
.dashboard-v2 .metric-icon{box-shadow:none}
.dashboard-v2 .metric-icon.greenbg{background:rgba(85,122,108,.14);color:var(--dash-forest)}
.dashboard-v2 .metric-icon.redbg{background:rgba(213,185,138,.22);color:#805f2e}
.dashboard-v2 .metric-icon.purplebg{background:rgba(85,122,108,.11);color:var(--dash-forest-2)}
.dashboard-v2 .metric-icon.bluebg{background:rgba(121,185,165,.16);color:var(--dash-forest)}
body.dark .dashboard-v2{--dash-surface:#18211f;--dash-line:#29453d}
body.dark .dashboard-v2-head h2,.dark .dashboard-v2-head h2{color:#dff2e9}
body.dark .dashboard-v2 .title h3,.dark .dashboard-v2 .title h3,.dark .dashboard-v2-metric h3{color:#dff2e9}
body.dark .dashboard-v2-metric{background:#18211f;border-color:#29453d;box-shadow:none}
body.dark .dashboard-v2 .card{background:#18211f;border-color:#29453d;box-shadow:none}
body.dark .dashboard-v2 .btn-secondary{background:#202d2a;border-color:#315c50;color:#dff2e9}
body.dark .dashboard-v2 .tool-chip{background:#1e302b;border-color:#315c50;color:#a9dbc9}
body.dark .dashboard-v2 .table td{border-color:#29453d}
body.dark .dashboard-v2 .dashboard-account-row,body.dark .dashboard-health-grid div{background:#111918;border-color:#29453d}
body.dark .dashboard-account-row strong,body.dark .dashboard-health-grid strong{color:#bfe8d9}
body.dark .dashboard-v2-search{background:#111918;border-color:#315c50}
body.dark .dashboard-v2-chart .axis{stroke:#315c50}
body.dark .dashboard-v2-chart .income-line{stroke:#79b9a5}.dark .dashboard-v2-chart .income-line{stroke:#79b9a5}
body.dark .dashboard-v2-chart .expense-line{stroke:#55bfa3}
@media(max-width:1180px){.dashboard-v2-main-grid{grid-template-columns:minmax(0,1.3fr) minmax(280px,.9fr)}.dashboard-v2-right{grid-column:1/-1;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}.dashboard-v2-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.dashboard-v2-head{align-items:stretch;flex-direction:column}.dashboard-v2-tools{width:100%;justify-content:stretch}.dashboard-v2-tools>*{flex:1}.dashboard-v2-main-grid{grid-template-columns:1fr}.dashboard-v2-right{grid-column:auto;grid-template-columns:1fr}.dashboard-v2-metrics{grid-template-columns:1fr 1fr}.dashboard-v2-expense .expense-category-visual{grid-template-columns:120px minmax(0,1fr)}.dashboard-v2-expense .donut-chart{width:115px;height:115px}.dashboard-v2-search{max-width:100%;width:100%}.dashboard-v2-transactions .title{align-items:stretch;flex-direction:column}}
@media(max-width:430px){.dashboard-v2-metrics{grid-template-columns:1fr}.dashboard-v2-head h2{font-size:24px}.dashboard-v2-expense .expense-category-visual{grid-template-columns:1fr}.dashboard-v2-expense .donut-chart{margin:0 auto}.dashboard-v2-expense .donut-legend{max-height:none}.dashboard-v2-transactions{overflow:hidden}.dashboard-v2-transactions .table-wrap{overflow-x:auto}}

/* Navigation color treatment only — structure and behavior remain unchanged. */
#appView .sidebar{background:linear-gradient(180deg,#edf2df,#f7f3ea);border-right-color:#dfe5df}
#appView .brand,#appView .brand h2{color:#183a32}
#appView .brand small{color:#557a6c}
#appView .nav button{color:#557a6c}
#appView .nav button:hover{background:#e4ecdf;color:#183a32}
#appView .nav button.active{background:#183a32;color:#fff;border-color:#183a32}
#appView .nav button.active .icon,#appView .nav button.active .icon-svg{color:#d5b98a}
#appView .nav .icon,#appView .nav .icon-svg{color:#557a6c}
#appView .nav-group.has-active>.nav-group-toggle{background:#e4ecdf;color:#183a32}
#appView .nav-group.has-active>.nav-group-toggle .nav-chevron{color:#557a6c}
#appView .topbar{background:#f7f3ea;border-bottom-color:#dfe5df;box-shadow:0 1px 0 rgba(24,58,50,.04)}
body.dark #appView .sidebar{background:linear-gradient(180deg,#202725,#111918);border-right-color:#29453d}
body.dark #appView .brand,body.dark #appView .brand h2{color:#e2f0ea}
body.dark #appView .brand small{color:#8db9a8}
body.dark #appView .nav button{color:#9dc0b3}
body.dark #appView .nav button:hover{background:#29453d;color:#e7f6ef}
body.dark #appView .nav button.active{background:#315c50;color:#fff;border-color:#79b9a5}
body.dark #appView .nav button.active .icon,body.dark #appView .nav button.active .icon-svg{color:#d5b98a}
body.dark #appView .nav .icon,body.dark #appView .nav .icon-svg{color:#79b9a5}
body.dark #appView .nav-group.has-active>.nav-group-toggle{background:#29453d;color:#e7f6ef}
body.dark #appView .nav-group.has-active>.nav-group-toggle .nav-chevron{color:#79b9a5}
body.dark #appView .topbar{background:#202725;border-bottom-color:#29453d;box-shadow:none}


/* WHIMSICAL DASHBOARD LAYOUT — explicit structure, no implicit placement. */
.dashboard-v2 .dashboard-v2-metrics{display:none !important}
.dashboard-v2 .dashboard-v2-main-grid{
  display:grid !important;
  grid-template-columns:minmax(0,1fr) !important;
  grid-template-rows:auto auto auto auto !important;
  grid-template-areas:
    "cashflow"
    "overview"
    "lower"
    "savings" !important;
  gap:16px !important;
  width:100% !important;
  align-items:stretch !important;
}
.dashboard-v2 .dashboard-v2-main-grid > .dashboard-v2-chart-card{
  grid-area:cashflow !important;
  width:100% !important;
  min-width:0 !important;
}
.dashboard-v2 .dashboard-v2-main-grid > .dashboard-v2-account-overview{
  grid-area:overview !important;
  width:100% !important;
  min-width:0 !important;
  margin:0 !important;
}
.dashboard-v2 .dashboard-v2-account-summary{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:10px !important;
  width:100% !important;
  min-height:56px !important;
  margin:0 !important;
  padding:12px 14px !important;
  list-style:none !important;
  cursor:pointer;
  user-select:none;
  box-sizing:border-box;
}
.dashboard-v2 .dashboard-v2-account-summary::-webkit-details-marker{display:none !important}
.dashboard-v2 .dashboard-v2-account-summary::marker{content:"" !important}
.dashboard-v2 .dashboard-v2-account-summary-icon{
  display:grid !important;
  place-items:center !important;
  flex:0 0 28px !important;
  width:28px !important;
  height:28px !important;
}
.dashboard-v2 .dashboard-v2-account-summary-icon .icon-svg{
  width:19px !important;
  height:19px !important;
}
.dashboard-v2 .dashboard-v2-account-summary-copy{
  display:block !important;
  flex:1 1 auto !important;
  min-width:0 !important;
  line-height:1.25 !important;
}
.dashboard-v2 .dashboard-v2-account-summary-copy strong{
  display:block !important;
  margin:0 !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}
.dashboard-v2 .dashboard-v2-account-summary-chevron{
  display:grid !important;
  place-items:center !important;
  flex:0 0 28px !important;
  width:28px !important;
  height:28px !important;
  margin-left:auto !important;
}
.dashboard-v2 .dashboard-v2-account-summary-chevron .icon-svg{
  width:17px !important;
  height:17px !important;
}
.dashboard-v2 .dashboard-v2-account-grid{
  display:grid !important;
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:14px !important;
  padding:18px !important;
  width:100% !important;
}
.dashboard-v2 .dashboard-v2-account-grid > .card{
  min-width:0 !important;
  width:100% !important;
  min-height:200px !important;
}
.dashboard-v2 .dashboard-v2-main-grid > .dashboard-v2-bottom-grid{
  grid-area:lower !important;
  display:grid !important;
  grid-template-columns:minmax(0,2fr) minmax(320px,1fr) !important;
  grid-template-rows:1fr !important;
  gap:16px !important;
  width:100% !important;
  min-width:0 !important;
  align-items:stretch !important;
}
.dashboard-v2 .dashboard-v2-bottom-grid > .dashboard-v2-transactions{
  grid-column:1 !important;
  grid-row:1 !important;
  min-width:0 !important;
  width:100% !important;
  min-height:390px !important;
  overflow:hidden !important;
}
.dashboard-v2 .dashboard-v2-bottom-grid > .dashboard-v2-expense{
  grid-column:2 !important;
  grid-row:1 !important;
  min-width:0 !important;
  width:100% !important;
  min-height:390px !important;
  overflow:hidden !important;
}
.dashboard-v2 .dashboard-v2-expense #cats{
  width:100% !important;
  min-width:0 !important;
  min-height:280px !important;
}
.dashboard-v2 .dashboard-v2-expense .expense-category-visual{
  grid-template-columns:150px minmax(0,1fr) !important;
  gap:18px !important;
  width:100% !important;
  min-width:0 !important;
  align-items:center !important;
}
.dashboard-v2 .dashboard-v2-expense .donut-chart{
  width:150px !important;
  height:150px !important;
  max-width:100% !important;
  flex:0 0 auto !important;
}
.dashboard-v2 .dashboard-v2-expense .donut-legend{
  display:grid !important;
  gap:6px !important;
  min-width:0 !important;
  max-height:220px !important;
  overflow:auto !important;
  padding-right:4px !important;
}
.dashboard-v2 .dashboard-v2-expense .donut-legend-row{
  min-height:28px !important;
  grid-template-columns:10px minmax(0,1fr) auto !important;
  gap:8px !important;
  font-size:12px !important;
}
.dashboard-v2 .dashboard-v2-expense .donut-swatch{
  width:10px !important;
  height:10px !important;
}
.dashboard-v2 .dashboard-v2-expense .donut-label{
  min-width:0 !important;
  line-height:1.25 !important;
}
.dashboard-v2 .dashboard-v2-expense .donut-percent{
  white-space:nowrap !important;
  font-size:11px !important;
}
.dashboard-v2 .dashboard-v2-main-grid > .dashboard-v2-savings{
  grid-area:savings !important;
  width:100% !important;
  min-width:0 !important;
  min-height:230px !important;
}
.dashboard-v2 .dashboard-v2-main-grid > .dashboard-v2-savings #goalSnapshot{
  min-height:150px;
}
@media(max-width:900px){
  .dashboard-v2 .dashboard-v2-account-grid{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }
  .dashboard-v2 .dashboard-v2-bottom-grid{
    grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr) !important;
  }
}
@media(max-width:760px){
  .dashboard-v2 .dashboard-v2-main-grid{
    grid-template-columns:1fr !important;
    grid-template-areas:"cashflow" "overview" "lower" "savings" !important;
  }
  .dashboard-v2 .dashboard-v2-account-grid{
    grid-template-columns:1fr !important;
    padding:12px !important;
  }
  .dashboard-v2 .dashboard-v2-account-grid > .card{
    min-height:0 !important;
  }
  .dashboard-v2 .dashboard-v2-main-grid > .dashboard-v2-bottom-grid{
    grid-template-columns:1fr !important;
    grid-template-rows:auto auto !important;
    gap:12px !important;
  }
  .dashboard-v2 .dashboard-v2-bottom-grid > .dashboard-v2-transactions,
  .dashboard-v2 .dashboard-v2-bottom-grid > .dashboard-v2-expense{
    grid-column:1 !important;
    grid-row:auto !important;
    min-height:0 !important;
  }
  .dashboard-v2 .dashboard-v2-expense .expense-category-visual{
    grid-template-columns:120px minmax(0,1fr) !important;
    justify-items:stretch !important;
    gap:14px !important;
  }
  .dashboard-v2 .dashboard-v2-expense .donut-chart{
    width:120px !important;
    height:120px !important;
  }
  .dashboard-v2 .dashboard-v2-expense .donut-legend{
    width:100% !important;
    max-height:210px !important;
  }
  .dashboard-v2 .dashboard-v2-main-grid > .dashboard-v2-savings{
    min-height:210px !important;
  }
}
@media(max-width:430px){
  .dashboard-v2 .dashboard-v2-account-summary{min-height:68px}
  .dashboard-v2 .dashboard-v2-account-grid{padding:10px !important}
  .dashboard-v2 .dashboard-v2-bottom-grid > .dashboard-v2-transactions,
  .dashboard-v2 .dashboard-v2-bottom-grid > .dashboard-v2-expense{overflow:visible !important}
  .dashboard-v2 .dashboard-v2-expense .expense-category-visual{
    grid-template-columns:1fr !important;
    justify-items:center !important;
    gap:14px !important;
  }
  .dashboard-v2 .dashboard-v2-expense .donut-chart{
    width:112px !important;
    height:112px !important;
  }
  .dashboard-v2 .dashboard-v2-expense .donut-legend{
    max-height:none !important;
    width:100% !important;
    padding-right:0 !important;
  }
}


/* Dashboard layout lock: do not modify card order, structure, or placement.
   This lock preserves the approved Whimsical layout. Changes in this file for
   the Cash Flow card must be limited to chart presentation unless the layout
   owner explicitly approves a new layout. */
.dashboard-v2{
  --dash-income:#16b67b;
  --dash-expense:#ef6572;
}
.dashboard-v2-cashflow-svg .income-line{stroke:var(--dash-income) !important}
.dashboard-v2-cashflow-svg .expense-line{stroke:var(--dash-expense) !important}
.dashboard-v2-chart-scroll{
  width:100%;
  max-width:100%;
  overflow-x:scroll;
  overflow-y:hidden;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
  scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track);
}
.dashboard-v2-cashflow-svg{
  display:block;
  width:auto !important;
  max-width:none !important;
  min-width:700px;
  height:235px;
}
.dashboard-v2-chart-scroll::-webkit-scrollbar{height:10px}
.dashboard-v2-chart-scroll::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:999px}
.dashboard-v2-chart-scroll::-webkit-scrollbar-thumb{background:linear-gradient(90deg,var(--scrollbar-start),var(--scrollbar-end));border:2px solid var(--scrollbar-track);border-radius:999px}
.dashboard-v2-chart-scroll::-webkit-scrollbar-thumb:hover{background:linear-gradient(90deg,var(--scrollbar-end),var(--scrollbar-start))}
.dashboard-v2 .incomeDot{background:var(--dash-income) !important}
.dashboard-v2 .expenseDot{background:var(--dash-expense) !important}
