/**
 * TreasuryPro — Bloomberg Terminal visual layer (black background)
 */

/* ── Design tokens ─────────────────────────────────────────────── */
body.tp-bloomberg {
  --bb-black: #000000;
  --bb-panel: #010101;
  --bb-panel-hi: #060606;
  --bb-border: rgba(255, 255, 255, 0.10);
  --bb-border-dim: rgba(255, 255, 255, 0.05);
  --bb-orange: #FF9E00;
  --bb-orange-hi: #FFB833;
  --bb-ink: #8a8a8a;
  --bb-ink-hi: #d4d4d4;
  --bb-ink-dim: #5a5a5a;
  --bb-green: #3dd68c;
  --bb-red: #f07178;
  --bb-cyan: #5ac8fa;
  --bb-purple: #c792ea;
  --bb-radius: 2px;
}

body.tp-bloomberg,
body.tp-bloomberg:not(.light) {
  background: var(--bb-black) !important;
}

/* ── KPI strip — Bloomberg terminal tiles ──────────────────────── */
body.tp-bloomberg .kpi-grid,
body.tp-bloomberg .bb-kpi-strip {
  gap: 6px !important;
  margin-bottom: 14px !important;
}

body.tp-bloomberg .kpi,
body.tp-bloomberg .kpi-grid .kpi,
body.tp-bloomberg .bb-kpi {
  background: var(--bb-panel) !important;
  border: 1px solid var(--bb-border-dim) !important;
  border-radius: var(--bb-radius) !important;
  padding: 10px 12px 28px !important;
  box-shadow: none !important;
  transform: none !important;
  cursor: pointer;
  min-height: 88px;
}

body.tp-bloomberg .kpi:hover,
body.tp-bloomberg .bb-kpi:hover,
body.tp-bloomberg .pos-kpi:hover,
body.tp-bloomberg .cf-kpi-card:hover {
  background: var(--bb-panel) !important;
  border-color: rgba(255, 158, 0, 0.32) !important;
  box-shadow:
    0 0 0 1px rgba(255, 158, 0, 0.10),
    0 0 18px rgba(255, 158, 0, 0.10),
    inset 0 1px 0 rgba(255, 158, 0, 0.04) !important;
  transform: none !important;
}

/* No top accent bars on any tiles */
body.tp-bloomberg .kpi::before,
body.tp-bloomberg .ch-wrap::before,
body.tp-bloomberg .ch-wrap.ch-premium::before,
body.tp-bloomberg .cf-chart-wrap::before,
body.tp-bloomberg .bb-chart::before,
body.tp-bloomberg .card::before {
  display: none !important;
  content: none !important;
  height: 0 !important;
}

body.tp-bloomberg .kpi-top,
body.tp-bloomberg .kpi-icon {
  display: none !important;
}

body.tp-bloomberg .kpi-label {
  display: block !important;
  font-family: 'Inter', Arial, Helvetica, sans-serif !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.14em !important;
  text-transform: uppercase !important;
  color: var(--bb-ink) !important;
  margin: 0 0 6px !important;
  line-height: 1.2 !important;
}

body.tp-bloomberg .kpi-val {
  font-family: 'JetBrains Mono', Consolas, 'SF Mono', monospace !important;
  font-size: 24px !important;
  font-weight: 700 !important;
  letter-spacing: -0.03em !important;
  line-height: 1.1 !important;
  color: var(--bb-orange-hi) !important;
  margin: 0 !important;
}

body.tp-bloomberg .kpi-val.cg { color: var(--bb-green) !important; }
body.tp-bloomberg .kpi-val.cr { color: var(--bb-red) !important; }
body.tp-bloomberg .kpi-val.cb,
body.tp-bloomberg .kpi-val.cy { color: var(--bb-orange-hi) !important; }
body.tp-bloomberg .kpi-val.cp { color: var(--bb-purple) !important; }
body.tp-bloomberg .kpi-val.cv { color: var(--bb-cyan) !important; }

body.tp-bloomberg .kpi-footer {
  margin-top: 6px !important;
  font-size: 9.5px !important;
  line-height: 1.35 !important;
  color: var(--bb-ink-dim) !important;
  font-family: 'JetBrains Mono', Consolas, monospace !important;
  white-space: normal !important;
}

body.tp-bloomberg .kpi-footer .up { color: var(--bb-green) !important; font-weight: 700 !important; }
body.tp-bloomberg .kpi-footer .down { color: var(--bb-red) !important; font-weight: 700 !important; }
body.tp-bloomberg .kpi-footer .cs { color: var(--bb-ink) !important; }

body.tp-bloomberg .kpi-spark {
  opacity: 0.55 !important;
  bottom: 4px !important;
  right: 4px !important;
  width: 72px !important;
  height: 28px !important;
  z-index: 0 !important;
}

body.tp-bloomberg .kpi .kpi-label,
body.tp-bloomberg .kpi .kpi-val,
body.tp-bloomberg .kpi .kpi-footer {
  position: relative;
  z-index: 1;
}

/* Position page KPIs */
body.tp-bloomberg .pos-kpi {
  background: var(--bb-panel) !important;
  border: 1px solid var(--bb-border-dim) !important;
  border-radius: var(--bb-radius) !important;
  box-shadow: none !important;
}

/* ── KPI tiles — Cashflow (.cf-kpi-*) ─────────────────────────── */
body.tp-bloomberg .cf-kpi-card {
  background: var(--bb-panel) !important;
  border: 1px solid var(--bb-border-dim) !important;
  border-radius: var(--bb-radius) !important;
  padding: 10px 12px !important;
  box-shadow: none !important;
}

body.tp-bloomberg .cf-kpi-card:hover {
  border-color: rgba(255, 158, 0, 0.32) !important;
  background: var(--bb-panel) !important;
  box-shadow:
    0 0 0 1px rgba(255, 158, 0, 0.10),
    0 0 18px rgba(255, 158, 0, 0.10) !important;
}

body.tp-bloomberg .cf-kpi-ico {
  display: none !important;
}

body.tp-bloomberg .cf-kpi-lbl {
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: var(--bb-ink) !important;
}

body.tp-bloomberg .cf-kpi-val {
  font-family: 'JetBrains Mono', Consolas, monospace !important;
  font-size: 22px !important;
  font-weight: 700 !important;
  color: var(--bb-orange-hi) !important;
}

body.tp-bloomberg .cf-kpi-pos { color: var(--bb-green) !important; }
body.tp-bloomberg .cf-kpi-neg { color: var(--bb-red) !important; }
body.tp-bloomberg .cf-kpi-blue { color: var(--bb-cyan) !important; }

body.tp-bloomberg .cf-kpi-sub {
  font-family: 'JetBrains Mono', Consolas, monospace !important;
  font-size: 9px !important;
  color: var(--bb-ink-dim) !important;
}

/* ── Chart containers — flush, no decorative chrome ─────────────── */
body.tp-bloomberg .ch-wrap,
body.tp-bloomberg .ch-wrap.ch-premium,
body.tp-bloomberg .ch-wrap.bb-chart,
body.tp-bloomberg:not(.light) .ch-wrap:not(.ch-fill),
body.tp-bloomberg .cf-chart-wrap,
body.tp-bloomberg .bb-chart,
body.tp-bloomberg .card .ch-wrap {
  border-radius: 0 !important;
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
  padding: 0 !important;
  margin: 0 !important;
  position: relative;
  overflow: hidden;
}

body.tp-bloomberg .card .ch-wrap.ch-fill {
  background: transparent !important;
}

body.tp-bloomberg:not(.light) .ch-wrap::after {
  display: none !important;
}

body.tp-bloomberg:not(.light) .ch-echarts,
body.tp-bloomberg:not(.light) .ch-host {
  background: transparent !important;
}

body.tp-bloomberg:not(.light) .ch-wrap canvas,
body.tp-bloomberg .cf-chart-wrap canvas {
  position: relative;
  z-index: 1;
  width: 100% !important;
  height: 100% !important;
  display: block;
}

/* Cards */
body.tp-bloomberg:not(.light) .card {
  background: var(--bb-panel) !important;
  border: 1px solid var(--bb-border-dim) !important;
  border-radius: var(--bb-radius) !important;
  box-shadow: none !important;
}

body.tp-bloomberg:not(.light) .card:hover {
  border-color: var(--bb-border) !important;
}

body.tp-bloomberg:not(.light) .card-t {
  color: var(--bb-ink-hi) !important;
  font-weight: 600 !important;
  letter-spacing: -0.02em !important;
}

body.tp-bloomberg:not(.light) .card-s {
  color: var(--bb-ink) !important;
}

body.tp-bloomberg .cf-card {
  background: var(--bb-panel) !important;
  border-color: var(--bb-border-dim) !important;
}

/* Cash map legend */
body.tp-bloomberg:not(.light) .c-legend .c-row {
  border-color: var(--bb-border-dim) !important;
}

body.tp-bloomberg:not(.light) .c-legend .c-row:hover {
  border-color: var(--bb-orange) !important;
  background: rgba(255, 158, 0, 0.06) !important;
}

/* Theme toggles removed */
body.tp-bloomberg .theme-toggle,
body.tp-bloomberg #mtnThemeBtn {
  display: none !important;
}

/* ── All dashboard tiles — near-black panels on pure black canvas ─── */
body.tp-bloomberg .premium-tile,
body.tp-bloomberg .tile-mini,
body.tp-bloomberg .fi-metric,
body.tp-bloomberg .scenario-card,
body.tp-bloomberg .ai-metric-card,
body.tp-bloomberg .ai-q-card,
body.tp-bloomberg .stat,
body.tp-bloomberg .modal,
body.tp-bloomberg .tab-nav {
  background: var(--bb-panel) !important;
  border-color: var(--bb-border-dim) !important;
  box-shadow: none !important;
}

body.tp-bloomberg .premium-tile:hover,
body.tp-bloomberg .tile-mini:hover,
body.tp-bloomberg .scenario-card:hover,
body.tp-bloomberg:not(.light) .card:hover {
  background: var(--bb-panel) !important;
  border-color: rgba(255, 158, 0, 0.28) !important;
  box-shadow:
    0 0 0 1px rgba(255, 158, 0, 0.08),
    0 0 16px rgba(255, 158, 0, 0.08) !important;
}

body.tp-bloomberg .ai-ins-card {
  background: var(--bb-panel) !important;
  border-color: var(--bb-border-dim) !important;
}

body.tp-bloomberg .ai-ins-card.risk {
  background: #050303 !important;
  border-color: rgba(239, 68, 68, 0.18) !important;
}

body.tp-bloomberg .ai-ins-card.opportunity {
  background: #030504 !important;
  border-color: rgba(16, 185, 129, 0.18) !important;
}

body.tp-bloomberg .ai-ins-card.alert,
body.tp-bloomberg .ai-ins-card.recommendation,
body.tp-bloomberg .ai-ins-card.observation {
  background: #050403 !important;
}

body.tp-bloomberg:not(.light) .card::after {
  display: none !important;
}

/* Chart / visual card headers — [class*="card"] must not paint card-h navy */
body.tp-bloomberg .card-h,
body.tp-bloomberg .card-h-tight,
body.tp-bloomberg .card-t,
body.tp-bloomberg .card-s,
body.tp-bloomberg .card-chart,
body.tp-bloomberg .card-chart-compact {
  background: transparent !important;
  border: none !important;
  box-shadow: none !important;
}

body.tp-bloomberg .card.card-chart,
body.tp-bloomberg .card.card-chart-compact {
  background: var(--bb-panel) !important;
  border: 1px solid var(--bb-border-dim) !important;
  padding: 12px 14px 10px !important;
}

body.tp-bloomberg .card.card-chart:hover,
body.tp-bloomberg .card.card-chart-compact:hover {
  background: var(--bb-panel) !important;
  border-color: rgba(255, 158, 0, 0.28) !important;
  box-shadow:
    0 0 0 1px rgba(255, 158, 0, 0.08),
    0 0 16px rgba(255, 158, 0, 0.08) !important;
}

body.tp-bloomberg .card-t {
  color: var(--bb-ink-hi) !important;
  font-weight: 600 !important;
}

body.tp-bloomberg .card-s {
  color: var(--bb-ink-dim) !important;
}

body.tp-bloomberg .period-tog {
  background: #030303 !important;
  border-color: var(--bb-border-dim) !important;
}

body.tp-bloomberg .period-btn {
  color: var(--bb-ink-dim) !important;
}

body.tp-bloomberg .period-btn.on {
  background: var(--bb-orange) !important;
  color: #000 !important;
  box-shadow: 0 0 12px rgba(255, 158, 0, 0.22) !important;
}

/* Beat legacy navy/gold KPI rules loaded later in index.html */
body.tp-bloomberg:not(.light):not(.mtn) .kpi,
body.tp-bloomberg:not(.light):not(.mtn) .card,
body.tp-bloomberg:not(.light):not(.mtn) .pos-kpi,
body.tp-bloomberg:not(.light) .kpi,
body.tp-bloomberg:not(.light) .card,
body.tp-bloomberg:not(.light) .pos-kpi,
body.tp-bloomberg .kpi.green,
body.tp-bloomberg .kpi.blue,
body.tp-bloomberg .kpi.cyan,
body.tp-bloomberg .kpi.purple,
body.tp-bloomberg .kpi.yellow,
body.tp-bloomberg .kpi.red,
body.tp-bloomberg .kpi.orange {
  background: var(--bb-panel) !important;
  border: 1px solid var(--bb-border-dim) !important;
  border-radius: var(--bb-radius) !important;
  box-shadow: none !important;
}

body.tp-bloomberg:not(.light):not(.mtn) .kpi:hover,
body.tp-bloomberg:not(.light):not(.mtn) .card:hover,
body.tp-bloomberg:not(.light):not(.mtn) .pos-kpi:hover,
body.tp-bloomberg:not(.light) .kpi:hover,
body.tp-bloomberg:not(.light) .card:hover,
body.tp-bloomberg:not(.light) .pos-kpi:hover {
  background: var(--bb-panel) !important;
  border-color: rgba(255, 158, 0, 0.32) !important;
  box-shadow:
    0 0 0 1px rgba(255, 158, 0, 0.10),
    0 0 18px rgba(255, 158, 0, 0.10),
    inset 0 1px 0 rgba(255, 158, 0, 0.04) !important;
  transform: none !important;
}

/* ── Compact page bar (Overview + modules) ───────────────────────── */
body.tp-bloomberg .bb-pg-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--bb-border-dim);
}

body.tp-bloomberg .bb-pg-bar-left {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  min-width: 0;
}

body.tp-bloomberg .bb-pg-label {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--bb-orange-hi);
  font-family: 'Inter', Arial, sans-serif;
}

body.tp-bloomberg .bb-pg-meta {
  font-size: 10px;
  color: var(--bb-ink-dim);
  font-family: 'JetBrains Mono', Consolas, monospace;
  letter-spacing: 0.02em;
}

body.tp-bloomberg .bb-pg-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

body.tp-bloomberg .btn-compact {
  font-size: 10px !important;
  padding: 4px 10px !important;
  border-radius: 2px !important;
}

/* ── Overview grid: 60 / 40 chart split ─────────────────────────── */
body.tp-bloomberg .g2-60-40 {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 12px;
  align-items: stretch;
}

@media (max-width: 1100px) {
  body.tp-bloomberg .g2-60-40 {
    grid-template-columns: 1fr;
  }
}

body.tp-bloomberg .g2e {
  gap: 12px !important;
}

body.tp-bloomberg .main {
  padding: 16px 20px 32px !important;
}

/* ── Chart card footer strip ───────────────────────────────────── */
body.tp-bloomberg .chart-card-foot {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-shrink: 0;
  padding: 7px 0 0;
  margin-top: 6px;
  border-top: 1px solid var(--bb-border-dim);
}

body.tp-bloomberg .chart-card-foot-note {
  font-size: 10px;
  color: var(--bb-ink-dim);
  line-height: 1.35;
}

/* ── Inline stat chips (chart headers) ─────────────────────────── */
body.tp-bloomberg .bb-stat-strip {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

body.tp-bloomberg .bb-stat-chip {
  text-align: right;
  line-height: 1.25;
  padding-left: 8px;
  border-left: 1px solid var(--bb-border-dim);
}

body.tp-bloomberg .bb-stat-chip:first-child {
  padding-left: 0;
  border-left: none;
}

body.tp-bloomberg .bb-stat-chip .bb-stat-val {
  font-family: 'JetBrains Mono', Consolas, monospace;
  font-size: 12px;
  font-weight: 700;
  color: var(--bb-ink-hi);
}

body.tp-bloomberg .bb-stat-chip .bb-stat-lbl {
  font-size: 9px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--bb-ink-dim);
}

body.tp-bloomberg .bb-stat-chip .bb-stat-delta {
  font-family: 'JetBrains Mono', Consolas, monospace;
  font-size: 9px;
  font-weight: 600;
}

body.tp-bloomberg .bb-stat-delta.up { color: var(--bb-green) !important; }
body.tp-bloomberg .bb-stat-delta.down { color: var(--bb-red) !important; }

/* ── Terminal tables (compact density) ─────────────────────────── */
body.tp-bloomberg .bb-table,
body.tp-bloomberg table.bb-table,
body.tp-bloomberg .forecast-tbl.bb-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}

body.tp-bloomberg .bb-table thead th,
body.tp-bloomberg .forecast-tbl.bb-table thead th {
  background: #030303 !important;
  color: var(--bb-ink) !important;
  font-size: 9px !important;
  font-weight: 700 !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  padding: 8px 12px !important;
  border-bottom: 1px solid var(--bb-border-dim) !important;
  position: sticky;
  top: 0;
  z-index: 2;
}

body.tp-bloomberg .bb-table-compact thead th,
body.tp-bloomberg .bb-table-compact td {
  padding: 6px 10px !important;
}

body.tp-bloomberg .bb-table tbody td,
body.tp-bloomberg .forecast-tbl.bb-table tbody td {
  padding: 8px 12px !important;
  border-bottom: 1px solid var(--bb-border-dim) !important;
  color: var(--bb-ink-hi) !important;
}

body.tp-bloomberg .bb-table tbody tr:hover td,
body.tp-bloomberg .forecast-tbl.bb-table tbody tr:hover td {
  background: rgba(255, 158, 0, 0.04) !important;
  box-shadow: inset 3px 0 0 rgba(255, 158, 0, 0.35);
}

body.tp-bloomberg .bb-table .mono,
body.tp-bloomberg .forecast-tbl.bb-table .mono {
  font-family: 'JetBrains Mono', Consolas, monospace !important;
  font-size: 11px !important;
  text-align: right;
}

body.tp-bloomberg .forecast-tbl.bb-table td:first-child,
body.tp-bloomberg .forecast-tbl.bb-table th:first-child {
  background: #010101 !important;
  text-align: left !important;
}

body.tp-bloomberg .forecast-tbl.bb-table thead th:first-child {
  background: #030303 !important;
}

/* ── Transaction rows (compact) ────────────────────────────────── */
body.tp-bloomberg .tx-row.bb-tx-compact {
  padding: 7px 0 !important;
  gap: 10px !important;
  border-bottom-color: var(--bb-border-dim) !important;
}

body.tp-bloomberg .tx-row.bb-tx-compact:hover {
  background: rgba(255, 158, 0, 0.04) !important;
  box-shadow: inset 3px 0 0 rgba(255, 158, 0, 0.28);
}

body.tp-bloomberg .tx-row .tx-desc {
  font-size: 12px !important;
  font-weight: 600 !important;
  color: var(--bb-ink-hi) !important;
}

body.tp-bloomberg .tx-row .tx-meta {
  font-size: 10px !important;
  color: var(--bb-ink-dim) !important;
}

body.tp-bloomberg .tx-row .tx-amt {
  font-family: 'JetBrains Mono', Consolas, monospace !important;
  font-size: 11px !important;
  font-weight: 700 !important;
}

/* ── Insight list (no emoji icons) ─────────────────────────────── */
body.tp-bloomberg .insight-row .i-icon {
  display: none !important;
}

body.tp-bloomberg .insight-row {
  padding: 8px 0 !important;
  border-bottom: 1px solid var(--bb-border-dim);
  border-radius: 0 !important;
}

body.tp-bloomberg .insight-row:last-child {
  border-bottom: none;
}

body.tp-bloomberg .insight-row .i-title {
  font-size: 11px !important;
  font-weight: 600 !important;
  color: var(--bb-ink-hi) !important;
}

body.tp-bloomberg .insight-row .i-sub {
  font-size: 10px !important;
  color: var(--bb-ink-dim) !important;
}

/* ── Cashflow module cards ───────────────────────────────────────── */
body.tp-bloomberg .cf-card,
body.tp-bloomberg .cf-driver-card,
body.tp-bloomberg .cf-scenario-card,
body.tp-bloomberg .cf-summary-item,
body.tp-bloomberg .cf-ai-section {
  background: var(--bb-panel) !important;
  border: 1px solid var(--bb-border-dim) !important;
  border-radius: var(--bb-radius) !important;
  box-shadow: none !important;
}

body.tp-bloomberg .cf-card:hover,
body.tp-bloomberg .cf-driver-card:hover {
  border-color: rgba(255, 158, 0, 0.28) !important;
  box-shadow: 0 0 16px rgba(255, 158, 0, 0.08) !important;
}

body.tp-bloomberg .cf-app,
body.tp-bloomberg.cf-root,
body.tp-bloomberg #root {
  background: var(--bb-black) !important;
}

/* ── FX Forecast terminal shell ──────────────────────────────────── */
body.tp-bloomberg.fx-terminal {
  background: var(--bb-black) !important;
  color: var(--bb-ink) !important;
}

body.tp-bloomberg.fx-terminal .bg-terminal-bg,
body.tp-bloomberg.fx-terminal [class*="bg-terminal"] {
  background: var(--bb-black) !important;
}

body.tp-bloomberg.fx-terminal .bg-terminal-card,
body.tp-bloomberg.fx-terminal [class*="bg-terminal-card"] {
  background: var(--bb-panel) !important;
  border-color: var(--bb-border-dim) !important;
}

/* ── Density toggle: Compact (default) vs Standard ─────────────── */
body.tp-bloomberg.tp-density-standard .main {
  padding: 22px 26px 36px !important;
}

body.tp-bloomberg.tp-density-standard .kpi-grid,
body.tp-bloomberg.tp-density-standard .bb-kpi-strip {
  gap: 10px !important;
  margin-bottom: 16px !important;
}

body.tp-bloomberg.tp-density-standard .kpi,
body.tp-bloomberg.tp-density-standard .bb-kpi {
  min-height: 92px !important;
  padding: 12px 14px 30px !important;
}

body.tp-bloomberg.tp-density-standard .kpi-val {
  font-size: 26px !important;
}

body.tp-bloomberg.tp-density-standard .ov-chart-h {
  height: 200px !important;
}

body.tp-bloomberg.tp-density-standard .ov-chart-h-sm {
  height: 220px !important;
}

body.tp-bloomberg.tp-density-standard .bb-table tbody td,
body.tp-bloomberg.tp-density-standard .forecast-tbl.bb-table tbody td {
  padding: 10px 14px !important;
}

body.tp-bloomberg.tp-density-standard .card {
  margin-bottom: 16px !important;
}

body.tp-bloomberg.tp-density-standard .card.card-chart-compact {
  padding: 14px 16px 12px !important;
}

body.tp-bloomberg.tp-density-compact .main {
  padding: 12px 16px 24px !important;
}

body.tp-bloomberg.tp-density-compact .kpi-grid,
body.tp-bloomberg.tp-density-compact .bb-kpi-strip {
  gap: 5px !important;
  margin-bottom: 10px !important;
}

body.tp-bloomberg.tp-density-compact .kpi,
body.tp-bloomberg.tp-density-compact .bb-kpi {
  min-height: 68px !important;
  padding: 7px 9px 20px !important;
}

body.tp-bloomberg.tp-density-compact .kpi-val {
  font-size: 19px !important;
}

body.tp-bloomberg.tp-density-compact .kpi-label {
  font-size: 8px !important;
  margin-bottom: 4px !important;
}

body.tp-bloomberg.tp-density-compact .kpi-footer {
  font-size: 8.5px !important;
  margin-top: 4px !important;
}

body.tp-bloomberg.tp-density-compact .ov-chart-h {
  height: 148px !important;
}

body.tp-bloomberg.tp-density-compact .ov-chart-h-sm {
  height: 168px !important;
}

body.tp-bloomberg.tp-density-compact .bb-pg-bar {
  margin-bottom: 8px !important;
  padding-bottom: 7px !important;
}

body.tp-bloomberg.tp-density-compact .g2-60-40,
body.tp-bloomberg.tp-density-compact .g2e {
  gap: 8px !important;
}

body.tp-bloomberg.tp-density-compact .bb-table thead th,
body.tp-bloomberg.tp-density-compact .forecast-tbl.bb-table thead th {
  padding: 5px 8px !important;
  font-size: 8px !important;
}

body.tp-bloomberg.tp-density-compact .bb-table tbody td,
body.tp-bloomberg.tp-density-compact .forecast-tbl.bb-table tbody td {
  padding: 4px 8px !important;
  font-size: 11px !important;
}

body.tp-bloomberg.tp-density-compact .tx-row.bb-tx-compact {
  padding: 5px 0 !important;
}

body.tp-bloomberg.tp-density-compact .card {
  margin-bottom: 10px !important;
}

body.tp-bloomberg.tp-density-compact .card.card-chart-compact {
  padding: 8px 10px 8px !important;
}

body.tp-bloomberg.tp-density-compact .card-t {
  font-size: 12px !important;
}

body.tp-bloomberg.tp-density-compact .card-s {
  font-size: 10px !important;
}

/* Density toggle button — Treasury menubar, Cashflow, FX headers */
body.tp-bloomberg .tp-density-btn {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 600;
  font-family: 'Inter', Arial, sans-serif;
  color: var(--bb-ink);
  background: #030303;
  border: 1px solid var(--bb-border-dim);
  border-radius: 2px;
  cursor: pointer;
  transition: border-color 0.15s, box-shadow 0.15s, color 0.15s;
}

body.tp-bloomberg .tp-density-btn:hover {
  border-color: rgba(255, 158, 0, 0.28);
  color: var(--bb-ink-hi);
}

body.tp-bloomberg .tp-density-btn[aria-pressed="true"] {
  border-color: rgba(255, 158, 0, 0.35) !important;
  box-shadow: 0 0 12px rgba(255, 158, 0, 0.12) !important;
  color: var(--bb-orange-hi) !important;
}

body.tp-bloomberg #densityToggleBtn[aria-pressed="true"] .mb-pill-txt {
  color: var(--bb-orange-hi) !important;
}

/* Cashflow / FX compact density on grids */
body.tp-bloomberg.tp-density-compact .cf-grid td,
body.tp-bloomberg.tp-density-compact .cf-grid th {
  padding: 5px 8px !important;
  font-size: 11px !important;
}

body.tp-bloomberg.tp-density-compact #main-table tbody td {
  padding: 4px 8px !important;
  font-size: 11px !important;
}

body.tp-bloomberg.tp-density-standard .cf-grid td,
body.tp-bloomberg.tp-density-standard .cf-grid th {
  padding: 8px 12px !important;
}

body.tp-bloomberg.tp-density-standard #main-table tbody td {
  padding: 8px 12px !important;
}

/* ═══════════════════════════════════════════════════════════════
   GLOBAL BLOOMBERG TERMINAL — cross-dashboard unification
   Applies to all body.tp-bloomberg pages (utility apps, hedging, etc.)
   ═══════════════════════════════════════════════════════════════ */

body.tp-bloomberg {
  --bg: #000000 !important;
  --bg2: #030303 !important;
  --bg3: #060606 !important;
  --bg-card: #010101 !important;
  --bg-input: #030303 !important;
  --surface: #010101 !important;
  --surface-2: #030303 !important;
  --surface-3: #060606 !important;
  --nav: #000000 !important;
  --nav-2: #030303 !important;
  --nav-3: #060606 !important;
  --border: rgba(255,255,255,0.10) !important;
  --border2: rgba(255,255,255,0.08) !important;
  --border-strong: rgba(255,255,255,0.16) !important;
  --accent: #FF9E00 !important;
  --accent-dim: rgba(255,158,0,0.10) !important;
  --cyan: #5ac8fa !important;
  --amber: #FF9E00 !important;
  --text: #d4d4d4 !important;
  --text-sec: #8a8a8a !important;
  --text-muted: #5a5a5a !important;
  --ink: #d4d4d4 !important;
  --ink-2: #8a8a8a !important;
  --ink-bold: #f0f0f0 !important;
  --green: #3dd68c !important;
  --red: #f07178 !important;
  --radius: 2px !important;
  --radius-sm: 2px !important;
  --shadow: none !important;
  font-family: 'Inter', Arial, sans-serif !important;
}

body.tp-bloomberg,
body.tp-bloomberg html {
  background: #000000 !important;
  color: #d4d4d4 !important;
}

/* Utility app chrome */
body.tp-bloomberg .topbar {
  background: #000000 !important;
  border-bottom: 1px solid rgba(255,255,255,0.08) !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  height: 44px !important;
  min-height: 44px !important;
}

body.tp-bloomberg .topbar .logo,
body.tp-bloomberg .topbar h1,
body.tp-bloomberg .topbar-title {
  color: #d4d4d4 !important;
  font-size: 12px !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  font-weight: 700 !important;
}

body.tp-bloomberg .topbar .logo span,
body.tp-bloomberg .topbar .accent {
  color: #FF9E00 !important;
}

body.tp-bloomberg .dash-links a,
body.tp-bloomberg .topbar a {
  color: #8a8a8a !important;
  border-radius: 2px !important;
  font-size: 11px !important;
  padding: 4px 8px !important;
}

body.tp-bloomberg .dash-links a:hover,
body.tp-bloomberg .dash-links a.active,
body.tp-bloomberg .topbar a:hover,
body.tp-bloomberg .topbar a.active {
  color: #FF9E00 !important;
  background: rgba(255,158,0,0.08) !important;
}

/* Cards & panels */
body.tp-bloomberg .card,
body.tp-bloomberg .panel,
body.tp-bloomberg .upload-card,
body.tp-bloomberg .entity-card,
body.tp-bloomberg .summary-card,
body.tp-bloomberg .kpi-card,
body.tp-bloomberg .metric-card,
body.tp-bloomberg .stat-card,
body.tp-bloomberg .data-card,
body.tp-bloomberg .chart-card,
body.tp-bloomberg .report-section,
body.tp-bloomberg .glass-panel,
body.tp-bloomberg [class*="rounded-lg"],
body.tp-bloomberg [class*="rounded-xl"] {
  background: #010101 !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
}

body.tp-bloomberg .card:hover,
body.tp-bloomberg .upload-card:hover,
body.tp-bloomberg .kpi-card:hover {
  border-color: rgba(255,158,0,0.22) !important;
  box-shadow: 0 0 12px rgba(255,158,0,0.06) !important;
  transform: none !important;
}

/* KPI tiles */
body.tp-bloomberg .kpi-card .kpi-val,
body.tp-bloomberg .kpi .val,
body.tp-bloomberg .kpi-val,
body.tp-bloomberg .metric-val {
  font-family: 'JetBrains Mono', monospace !important;
  color: #FF9E00 !important;
  font-size: 20px !important;
}

body.tp-bloomberg .kpi-card .kpi-label,
body.tp-bloomberg .kpi .lbl,
body.tp-bloomberg .kpi-label {
  font-size: 9px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  color: #5a5a5a !important;
}

/* Buttons */
body.tp-bloomberg .btn,
body.tp-bloomberg button.btn,
body.tp-bloomberg .btn-primary,
body.tp-bloomberg .btn-secondary {
  border-radius: 2px !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: 0.02em !important;
  box-shadow: none !important;
}

body.tp-bloomberg .btn-primary,
body.tp-bloomberg .btn.accent,
body.tp-bloomberg button.primary {
  background: #FF9E00 !important;
  color: #000000 !important;
  border: 1px solid #FF9E00 !important;
}

body.tp-bloomberg .btn-secondary,
body.tp-bloomberg .btn.ghost {
  background: #030303 !important;
  color: #d4d4d4 !important;
  border: 1px solid rgba(255,255,255,0.12) !important;
}

body.tp-bloomberg .btn:hover,
body.tp-bloomberg .btn-primary:hover {
  filter: brightness(1.05) !important;
}

/* Inputs */
body.tp-bloomberg input,
body.tp-bloomberg select,
body.tp-bloomberg textarea {
  background: #030303 !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 2px !important;
  color: #d4d4d4 !important;
  font-size: 12px !important;
}

body.tp-bloomberg input:focus,
body.tp-bloomberg select:focus,
body.tp-bloomberg textarea:focus {
  border-color: rgba(255,158,0,0.40) !important;
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(255,158,0,0.10) !important;
}

/* Tables */
body.tp-bloomberg table thead th,
body.tp-bloomberg .bb-table thead th,
body.tp-bloomberg thead th {
  background: #030303 !important;
  color: #5a5a5a !important;
  font-size: 9px !important;
  letter-spacing: 0.1em !important;
  text-transform: uppercase !important;
  border-bottom: 1px solid rgba(255,255,255,0.10) !important;
  padding: 6px 10px !important;
}

body.tp-bloomberg table tbody td,
body.tp-bloomberg .bb-table tbody td,
body.tp-bloomberg tbody td {
  border-bottom: 1px solid rgba(255,255,255,0.05) !important;
  padding: 5px 10px !important;
  font-size: 11px !important;
  color: #d4d4d4 !important;
}

body.tp-bloomberg table tbody tr:hover td,
body.tp-bloomberg tbody tr:hover td {
  background: rgba(255,158,0,0.04) !important;
}

body.tp-bloomberg .num,
body.tp-bloomberg td.num,
body.tp-bloomberg .mono {
  font-family: 'JetBrains Mono', monospace !important;
  font-variant-numeric: tabular-nums !important;
}

/* Hedging / counterparty sidebars */
body.tp-bloomberg .sidebar,
body.tp-bloomberg aside.sidebar,
body.tp-bloomberg .cf-sidebar {
  background: #000000 !important;
  border-right: 1px solid rgba(255,255,255,0.08) !important;
}

body.tp-bloomberg .sidebar .nav a.active,
body.tp-bloomberg .sidebar a.active,
body.tp-bloomberg .cf-nav-item.active {
  background: rgba(255,158,0,0.10) !important;
  color: #FF9E00 !important;
  border-color: rgba(255,158,0,0.20) !important;
}

body.tp-bloomberg .sidebar .nav a,
body.tp-bloomberg .cf-nav-item {
  border-radius: 2px !important;
  font-size: 12px !important;
}

/* Login overlays — terminal style */
body.tp-bloomberg #loginOverlay,
body.tp-bloomberg #authOverlay,
body.tp-bloomberg .login-overlay,
body.tp-bloomberg .cf-login-bg {
  background: #000000 !important;
}

body.tp-bloomberg .login-card,
body.tp-bloomberg #loginBox,
body.tp-bloomberg .cf-login-card {
  background: #010101 !important;
  border: 1px solid rgba(255,255,255,0.10) !important;
  border-radius: 2px !important;
  box-shadow: none !important;
}

body.tp-bloomberg .login-title span,
body.tp-bloomberg .login-card h1 span {
  color: #FF9E00 !important;
}

body.tp-bloomberg .login-btn,
body.tp-bloomberg #loginBtn {
  background: #FF9E00 !important;
  color: #000 !important;
  border-radius: 2px !important;
}

/* Hide duplicate per-app dash link rows when nav.js sidebar is present */
body.tp-bloomberg #tp-sidebar ~ * .dash-links,
body.tp-bloomberg:has(#tp-sidebar) .topbar .dash-links {
  display: none !important;
}

/* Scrollbars */
body.tp-bloomberg ::-webkit-scrollbar { width: 5px; height: 5px; }
body.tp-bloomberg ::-webkit-scrollbar-track { background: #000; }
body.tp-bloomberg ::-webkit-scrollbar-thumb { background: #222; border-radius: 2px; }
body.tp-bloomberg ::-webkit-scrollbar-thumb:hover { background: #333; }

/* ═══════════════════════════════════════════════════════════════
   Legacy app compatibility — map old token names to terminal orange
   ═══════════════════════════════════════════════════════════════ */

body.tp-bloomberg {
  --cyan: #FF9E00 !important;
  --cyan-deep: #E68A00 !important;
  --cyan-bg: rgba(255,158,0,0.10) !important;
  --cyan-gradient: linear-gradient(135deg, #FF9E00 0%, #E68A00 100%) !important;
  --cyan-glow: 0 0 0 2px rgba(255,158,0,0.14) !important;
}

body.tp-bloomberg .main::before,
body.tp-bloomberg .content-area::before {
  display: none !important;
}

/* Treasury menubar & sidebar */
body.tp-bloomberg .menubar {
  background: rgba(0,0,0,0.96) !important;
  backdrop-filter: blur(12px) !important;
  border-bottom-color: rgba(255,255,255,0.08) !important;
}

body.tp-bloomberg .sb-item.active {
  background: rgba(255,158,0,0.10) !important;
  border-left: 3px solid #FF9E00 !important;
  color: #FF9E00 !important;
}

body.tp-bloomberg .sb-item:hover {
  background: rgba(255,255,255,0.04) !important;
}

body.tp-bloomberg .period-tog {
  background: #030303 !important;
  border-color: rgba(255,255,255,0.08) !important;
}

body.tp-bloomberg .period-btn {
  color: rgba(255,255,255,0.45) !important;
  background: transparent !important;
  border-radius: 2px !important;
}

body.tp-bloomberg .period-btn.on,
body.tp-bloomberg .period-tog button.active {
  background: #FF9E00 !important;
  color: #000 !important;
  border-color: #FF9E00 !important;
  box-shadow: 0 0 12px rgba(255,158,0,0.25) !important;
}

body.tp-bloomberg .pos-kpi {
  background: #010101 !important;
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 2px !important;
}

/* Cashflow shell */
body.tp-bloomberg .cf-app,
body.tp-bloomberg #root,
body.tp-bloomberg .cf-header,
body.tp-bloomberg .cf-topbar {
  background: #000000 !important;
  border-color: rgba(255,255,255,0.08) !important;
}

body.tp-bloomberg .cf-grid tr:hover td {
  box-shadow: inset 3px 0 0 rgba(255,158,0,0.30) !important;
}

body.tp-bloomberg .cf-driver-card,
body.tp-bloomberg .cf-scenario-card,
body.tp-bloomberg .cf-summary-item,
body.tp-bloomberg .cf-ai-section {
  background: #010101 !important;
  border: 1px solid rgba(255,255,255,0.07) !important;
  border-radius: 2px !important;
}

/* Hedging primary actions */
body.tp-bloomberg .btn-accent,
body.tp-bloomberg .btn-warn,
body.tp-bloomberg .topbar-meta .pill.accent {
  background: #FF9E00 !important;
  color: #000 !important;
  border-color: #FF9E00 !important;
  box-shadow: none !important;
}

body.tp-bloomberg .brand-dot {
  background: #FF9E00 !important;
  box-shadow: 0 0 12px rgba(255,158,0,0.35) !important;
}

body.tp-bloomberg .sidebar {
  background: #000000 !important;
  border-right-color: rgba(255,255,255,0.08) !important;
}
