:root {
  --font-display:'Fraunces',Georgia,serif;
  --font-body:'IBM Plex Sans',system-ui,sans-serif;
  --font-mono:'JetBrains Mono','Courier New',monospace;
}
:root[data-theme="dark"] {
  --bg-base:#0A0F1C; --bg-surface:#131A2A; --bg-elevated:#1B2438; --bg-hover:#243049;
  --border-subtle:#232C42; --border-default:#2D3855; --border-strong:#3A476A;
  --text-primary:#F5F1EA; --text-secondary:#B5BCCC; --text-muted:#8A95A8; --text-subtle:#5C6678;
  --accent:#E8A317; --accent-hover:#F2B530; --accent-dim:rgba(232,163,23,.12);
  --cyan:#4ECDC4; --cyan-dim:rgba(78,205,196,.12);
  --success:#6EE7B7; --success-dim:rgba(110,231,183,.12);
  --danger:#F87171; --danger-dim:rgba(248,113,113,.12);
  --warning:#FBBF24; --warning-dim:rgba(251,191,36,.12);
  --magenta:#C084FC; --magenta-dim:rgba(192,132,252,.12);
  --logo-bg:#FFFFFF; --bg-r1:rgba(232,163,23,.04); --bg-r2:rgba(78,205,196,.03);
}
:root[data-theme="light"] {
  --bg-base:#F5F2EC; --bg-surface:#FFFFFF; --bg-elevated:#FBF9F4; --bg-hover:#F0EDE5;
  --border-subtle:#E8E2D5; --border-default:#CFC8B7; --border-strong:#A89F8A;
  --text-primary:#1A2238; --text-secondary:#3D4660; --text-muted:#6B7384; --text-subtle:#8A92A3;
  --accent:#B8821C; --accent-hover:#9A6E16; --accent-dim:rgba(184,130,28,.10);
  --cyan:#0E9488; --cyan-dim:rgba(14,148,136,.10);
  --success:#16A34A; --success-dim:rgba(22,163,74,.10);
  --danger:#DC2626; --danger-dim:rgba(220,38,38,.10);
  --warning:#D97706; --warning-dim:rgba(217,119,6,.10);
  --magenta:#9333EA; --magenta-dim:rgba(147,51,234,.10);
  --logo-bg:transparent; --bg-r1:rgba(184,130,28,.05); --bg-r2:rgba(14,148,136,.04);
}
*{margin:0;padding:0;box-sizing:border-box;}
html,body{min-height:100vh;background:radial-gradient(ellipse at top left,var(--bg-r1),transparent 50%),radial-gradient(ellipse at bottom right,var(--bg-r2),transparent 50%),var(--bg-base);color:var(--text-primary);font-family:var(--font-body);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;}
body{display:flex;}

/* ── SIDEBAR ─────────────────────────────────────────────── */
.sidebar{width:240px;min-height:100vh;background:var(--bg-surface);border-right:1px solid var(--border-subtle);display:flex;flex-direction:column;flex-shrink:0;position:sticky;top:0;height:100vh;overflow:hidden;transition:width .28s cubic-bezier(.4,0,.2,1);z-index:100;}
.sidebar.collapsed{width:56px;}
.sb-header{display:flex;align-items:center;justify-content:space-between;padding:18px 12px 18px 16px;border-bottom:1px solid var(--border-subtle);min-height:72px;flex-shrink:0;}
.sb-logo-wrap{display:flex;align-items:center;gap:10px;overflow:hidden;}
.sb-logo-icon{width:36px;height:36px;border-radius:50%;flex-shrink:0;object-fit:cover;}
.sb-logo-label{font-family:var(--font-display);font-weight:500;font-size:17px;color:var(--text-primary);white-space:nowrap;opacity:1;transition:opacity .2s,transform .2s;}
.sidebar.collapsed .sb-logo-label{opacity:0;pointer-events:none;transform:translateX(-6px);}
.sb-toggle{background:transparent;border:1px solid var(--border-subtle);color:var(--text-muted);width:28px;height:28px;border-radius:4px;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:border-color .2s,color .2s,transform .28s;}
.sb-toggle:hover{border-color:var(--border-strong);color:var(--text-primary);}
.sb-toggle svg{width:14px;height:14px;}
.sidebar.collapsed .sb-toggle{transform:rotate(180deg);}
.sb-nav{flex:1;overflow-y:auto;overflow-x:hidden;padding:12px 0;}
.sb-nav::-webkit-scrollbar{width:4px;}
.sb-nav::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:4px;}
.sb-item{display:flex;align-items:flex-start;gap:10px;padding:9px 14px;cursor:pointer;transition:background .15s;position:relative;overflow:hidden;}
.sb-item:hover{background:var(--bg-hover);}
.sb-item-parent{padding:10px 14px;}
.sb-item-parent .sb-label{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);font-weight:500;flex:1;padding-top:1px;}
.sb-item-child .sb-label{font-family:var(--font-body);font-size:12px;font-weight:500;color:var(--text-secondary);line-height:1.4;flex:1;}
.sb-item-active .sb-label{color:var(--accent);}
.sb-item-active::before{content:'';position:absolute;left:0;top:4px;bottom:4px;width:3px;background:var(--accent);border-radius:0 2px 2px 0;}
.sb-item-active{background:var(--accent-dim);}
.sb-icon{width:18px;height:18px;flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-top:1px;}
.sb-icon svg{width:15px;height:15px;stroke:var(--text-muted);}
.sb-item-active .sb-icon svg{stroke:var(--accent);}
.sb-chevron{margin-left:auto;width:16px;height:16px;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:transform .2s;margin-top:2px;}
.sb-chevron svg{width:12px;height:12px;stroke:var(--text-subtle);}
.sb-item-parent[data-expanded="false"] .sb-chevron{transform:rotate(-90deg);}
.sb-children{overflow:hidden;max-height:600px;transition:max-height .4s ease;background:var(--bg-base);border-top:1px solid var(--border-subtle);border-bottom:1px solid var(--border-subtle);}
.sb-children.hidden{max-height:0;border-color:transparent;}
.sb-item-child{padding-left:38px;}
.sidebar.collapsed .sb-label,.sidebar.collapsed .sb-chevron,.sidebar.collapsed .sb-footer-text{opacity:0;pointer-events:none;}
.sidebar.collapsed .sb-item{padding:10px 0;justify-content:center;}
.sidebar.collapsed .sb-item-child{padding-left:0;}
.sidebar.collapsed .sb-icon{margin:0;}
.sidebar.collapsed .sb-children{background:transparent;border:none;}
.sb-footer{padding:12px 16px;border-top:1px solid var(--border-subtle);flex-shrink:0;}
.sb-footer-text{font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);white-space:nowrap;transition:opacity .2s;}

/* ── MAIN WRAPPER ────────────────────────────────────────── */
.main-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;}
.shell{max-width:1600px;margin:0 auto;padding:28px 24px 60px;width:100%;}

/* ── HEADER ──────────────────────────────────────────────── */
.hdr{display:flex;justify-content:space-between;align-items:flex-end;padding-bottom:20px;border-bottom:1px solid var(--border-subtle);margin-bottom:20px;gap:20px;flex-wrap:wrap;}
.brand{display:flex;align-items:center;gap:14px;}
.brand-logo{height:52px;background:var(--logo-bg);border-radius:6px;padding:6px 12px;display:flex;align-items:center;transition:background .3s;}
.brand-logo img{height:100%;width:auto;display:block;}
.brand-divider{width:1px;height:34px;background:var(--border-default);margin:0 4px;}
.brand-text h1{font-family:var(--font-display);font-weight:400;font-size:28px;letter-spacing:-.01em;line-height:1;margin-bottom:5px;}
.brand-text h1 em{font-style:italic;font-weight:500;color:var(--accent);}
.tag{font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);display:flex;align-items:center;gap:8px;}
.dot{width:6px;height:6px;border-radius:50%;background:var(--success);box-shadow:0 0 8px var(--success);animation:pulse 2s ease-in-out infinite;}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1);}50%{opacity:.5;transform:scale(.85);}}
.hdr-meta{display:flex;align-items:center;gap:18px;flex-wrap:wrap;}
.hdr-meta-item{text-align:right;}
.hdr-meta-item .label{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);margin-bottom:4px;}
.hdr-meta-item .value{font-family:var(--font-mono);color:var(--text-primary);font-size:11px;font-weight:500;}
.btn-hdr{background:var(--bg-elevated);border:1px solid var(--border-default);color:var(--text-primary);padding:8px 14px;font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:4px;display:flex;align-items:center;gap:8px;transition:all .2s;}
.btn-hdr:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim);}
.btn-hdr svg{width:12px;height:12px;}
.btn-hdr.loading svg{animation:spin 1s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}

/* ── FILTER PANEL ────────────────────────────────────────── */
.filter-panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:6px;margin-bottom:20px;transition:background .3s,border-color .3s;}
.filter-head{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;cursor:pointer;user-select:none;}
.filter-head:hover{background:var(--bg-hover);}
.filter-head-left{display:flex;align-items:center;gap:12px;}
.filter-title{font-family:var(--font-display);font-weight:500;font-size:15px;color:var(--text-primary);}
.filter-active-badge{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);background:var(--bg-elevated);padding:3px 9px;border-radius:10px;border:1px solid var(--border-subtle);transition:all .2s;}
.filter-active-badge.has-active{color:var(--accent);border-color:var(--accent);background:var(--accent-dim);}
.filter-head-right{display:flex;align-items:center;gap:10px;}
.btn-reset{background:transparent;border:1px solid var(--border-default);color:var(--text-muted);padding:5px 10px;font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;border-radius:4px;display:flex;align-items:center;gap:5px;transition:all .2s;}
.btn-reset:hover{border-color:var(--danger);color:var(--danger);}
.btn-reset svg{width:10px;height:10px;}
.filter-collapse-icon{width:16px;height:16px;display:flex;align-items:center;justify-content:center;color:var(--text-muted);transition:transform .25s;}
.filter-collapse-icon svg{width:14px;height:14px;}
.filter-panel.collapsed .filter-collapse-icon{transform:rotate(-90deg);}
.filter-body{border-top:1px solid var(--border-subtle);}
.filter-body.hidden{display:none;}
.filter-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 12px;padding:14px 18px 16px;}
.f-group{display:flex;flex-direction:column;gap:5px;}
.f-group label{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-subtle);}

/* ── DATE INPUT ──────────────────────────────────────────── */
.f-date{background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);padding:7px 10px;font-family:var(--font-mono);font-size:11px;border-radius:4px;outline:none;width:100%;cursor:pointer;transition:border-color .2s;color-scheme:dark;}
:root[data-theme="light"] .f-date{color-scheme:light;}
.f-date:focus{border-color:var(--border-strong);}
.f-date.has-value{border-color:var(--accent);background:var(--accent-dim);color:var(--accent);}

/* ── CHECKBOX DROPDOWN ───────────────────────────────────── */
.cs-wrap{position:relative;}
.cs-trigger{width:100%;background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);padding:7px 10px;font-family:var(--font-body);font-size:12px;font-weight:500;border-radius:4px;cursor:pointer;outline:none;display:flex;align-items:center;justify-content:space-between;gap:6px;transition:border-color .2s,background .2s;text-align:left;min-height:34px;}
.cs-trigger:hover{border-color:var(--border-strong);}
.cs-trigger.has-value{border-color:var(--accent);background:var(--accent-dim);}
.cs-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-secondary);font-size:11px;}
.cs-trigger.has-value .cs-value{color:var(--accent);font-weight:600;}
.cs-count{font-family:var(--font-mono);font-size:9px;font-weight:700;background:var(--accent);color:#000;padding:1px 6px;border-radius:8px;white-space:nowrap;flex-shrink:0;}
.cs-chevron{width:12px;height:12px;flex-shrink:0;stroke:var(--text-muted);transition:transform .2s;}
.cs-wrap.open .cs-chevron{transform:rotate(180deg);}
.cs-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:var(--bg-surface);border:1px solid var(--border-default);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.4);z-index:9999;display:none;min-width:220px;max-width:340px;}
.cs-wrap.open .cs-dropdown{display:flex;flex-direction:column;}
.cs-search{padding:8px 10px 6px;border-bottom:1px solid var(--border-subtle);}
.cs-search input{width:100%;background:var(--bg-elevated);border:1px solid var(--border-subtle);color:var(--text-primary);padding:5px 9px;font-family:var(--font-body);font-size:12px;border-radius:3px;outline:none;}
.cs-search input::placeholder{color:var(--text-subtle);}
.cs-search input:focus{border-color:var(--border-strong);}
.cs-list{max-height:200px;overflow-y:auto;padding:4px 0;}
.cs-list::-webkit-scrollbar{width:4px;}
.cs-list::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:4px;}
.cs-option{display:flex;align-items:center;gap:9px;padding:7px 12px;cursor:pointer;transition:background .12s;}
.cs-option:hover{background:var(--bg-hover);}
.cs-option input[type="checkbox"]{width:14px;height:14px;accent-color:var(--accent);flex-shrink:0;cursor:pointer;}
.cs-option span{font-family:var(--font-body);font-size:12px;color:var(--text-secondary);line-height:1.3;}
.cs-option.checked span{color:var(--text-primary);font-weight:500;}
.cs-footer{display:flex;justify-content:space-between;align-items:center;padding:7px 12px;border-top:1px solid var(--border-subtle);}
.cs-sel-count{font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);}
.cs-clear{font-family:var(--font-mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;color:var(--danger);background:transparent;border:none;cursor:pointer;padding:2px 6px;border-radius:3px;transition:background .15s;}
.cs-clear:hover{background:var(--danger-dim);}

/* ── KPI CARDS ───────────────────────────────────────────── */
.kpi-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-bottom:20px;}
@media(max-width:1300px){.kpi-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:800px){.kpi-grid{grid-template-columns:repeat(2,1fr);}}
.kpi{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:6px;padding:18px 20px;position:relative;overflow:hidden;transition:border-color .3s,transform .3s;}
.kpi:hover{border-color:var(--border-strong);transform:translateY(-1px);}
.kpi::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:var(--kpi-accent,var(--accent));}
.kpi-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted);margin-bottom:10px;}
.kpi-value{font-family:var(--font-display);font-weight:400;font-size:30px;line-height:1.1;letter-spacing:-.02em;color:var(--text-primary);margin-bottom:6px;}
.kpi-value .unit{font-size:14px;color:var(--text-muted);font-style:italic;margin-left:2px;}
.kpi-meta{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);}

/* ── TWO-COLUMN LAYOUT ───────────────────────────────────── */
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
@media(max-width:1100px){.two-col{grid-template-columns:1fr;}}
.col-section{display:flex;flex-direction:column;gap:12px;}
.col-header{display:flex;align-items:baseline;gap:10px;padding-bottom:10px;border-bottom:1px solid var(--border-subtle);margin-bottom:2px;}
.col-title{font-family:var(--font-display);font-size:20px;font-weight:500;color:var(--text-primary);}
.col-subtitle{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);}
.col-badge{font-family:var(--font-mono);font-size:9px;padding:3px 9px;border-radius:10px;border:1px solid;margin-left:auto;white-space:nowrap;}
.badge-yoy{color:var(--accent);border-color:var(--accent);background:var(--accent-dim);}
.badge-mtd{color:var(--cyan);border-color:var(--cyan);background:var(--cyan-dim);}

/* ── PANELS ──────────────────────────────────────────────── */
.panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:6px;padding:18px 20px;display:flex;flex-direction:column;}
.panel-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:14px;padding-bottom:12px;border-bottom:1px solid var(--border-subtle);}
.panel-title{font-family:var(--font-display);font-size:16px;font-weight:500;color:var(--text-primary);margin-bottom:3px;}
.panel-sub{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);}
.panel-stat{text-align:right;}
.panel-stat .num{font-family:var(--font-display);font-size:20px;font-weight:500;color:var(--accent);line-height:1;}
.panel-stat .lbl{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);margin-top:3px;}
.chart-host{position:relative;flex:1;}
.chart-host.h200{min-height:200px;}
.chart-host.h240{min-height:240px;}
.chart-host.h180{min-height:180px;}

/* ── LOADING OVERLAY ─────────────────────────────────────── */
.overlay{position:fixed;inset:0;background:rgba(10,15,28,.92);backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;z-index:1000;transition:opacity .4s,visibility .4s;}
.overlay.hidden{opacity:0;visibility:hidden;}
.loader{text-align:center;}
.loader-mark{width:72px;height:72px;border-radius:50%;border:2px solid var(--border-default);display:flex;align-items:center;justify-content:center;margin:0 auto 20px;position:relative;overflow:hidden;}
.loader-mark::after{content:'';position:absolute;inset:-2px;border-radius:50%;border:2px solid transparent;border-top-color:var(--accent);border-right-color:var(--accent);animation:spin 1.2s linear infinite;pointer-events:none;}
.loader-logo{width:64px;height:64px;border-radius:50%;object-fit:cover;}
.loader-text{font-family:var(--font-mono);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--text-muted);}
.error-box{max-width:520px;background:var(--bg-surface);border:1px solid var(--danger);border-radius:6px;padding:26px;text-align:center;}
.error-box h2{font-family:var(--font-display);font-size:20px;margin-bottom:12px;color:var(--danger);}
.error-box p{color:var(--text-secondary);font-size:12px;margin-bottom:12px;line-height:1.7;text-align:left;}
.error-box strong{color:var(--text-primary);}
.error-box code{display:block;background:var(--bg-base);padding:10px;border-radius:4px;font-family:var(--font-mono);font-size:10px;color:var(--text-muted);word-break:break-all;text-align:left;border:1px solid var(--border-subtle);margin-top:8px;}
.error-box em{font-family:var(--font-display);font-style:italic;color:var(--accent);font-size:12px;text-transform:none;letter-spacing:0;}

/* ── MISC ────────────────────────────────────────────────── */
.foot{margin-top:40px;padding-top:20px;border-top:1px solid var(--border-subtle);display:flex;justify-content:space-between;align-items:center;font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--text-subtle);flex-wrap:wrap;gap:10px;}
.foot em{font-family:var(--font-display);font-style:italic;color:var(--accent);font-size:10px;letter-spacing:0;text-transform:none;}
::-webkit-scrollbar{width:8px;height:8px;}
::-webkit-scrollbar-track{background:var(--bg-base);}
::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:4px;}
@media(max-width:768px){.shell{padding:16px 12px 40px;}}

/* ── SIDEBAR SECTION DIVIDER ── */
.sb-section{border-bottom:1px solid var(--border-subtle);}
.sb-section:last-child{border-bottom:none;}

/* ── PAGE ROUTING ── */
.page-content{display:none;}
.page-content.active{display:block;}

/* ── COMING SOON ── */
.coming-soon{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:360px;gap:16px;padding:40px;}
.cs-mark{width:64px;height:64px;border:1px dashed var(--border-default);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--text-subtle);font-size:24px;font-family:var(--font-mono);}
.cs-title{font-family:var(--font-display);font-size:22px;font-weight:400;color:var(--text-muted);font-style:italic;}
.cs-sub{font-family:var(--font-mono);font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:var(--text-subtle);}

/* ── OUTSTANDING LOAN TABLE ── */
.out-section{padding:4px 0;}
.out-table-wrap{overflow:auto;max-height:calc(100vh - 290px);border:1px solid var(--border-subtle);border-radius:6px;}
.out-table{width:100%;border-collapse:collapse;font-size:12px;min-width:900px;}
.out-table thead{position:sticky;top:0;z-index:4;}
.out-table .th-group th{
  position:sticky;top:0;z-index:4;
  background:var(--bg-elevated);
  font-family:var(--font-mono);font-size:10px;font-weight:600;
  letter-spacing:.08em;text-transform:uppercase;
  padding:10px 12px;text-align:center;
  border-bottom:1px solid var(--border-default);
  border-right:1px solid var(--border-subtle);
  color:var(--text-muted);
  white-space:nowrap;
}
.out-table .th-group .th-cust{text-align:left;border-right:2px solid var(--border-default);}
.out-table .th-detail th{
  position:sticky;top:41px;z-index:4;
  background:var(--bg-surface);
  font-family:var(--font-mono);font-size:9px;font-weight:500;
  letter-spacing:.05em;text-transform:uppercase;
  padding:7px 12px;text-align:right;
  border-bottom:2px solid var(--border-default);
  border-right:1px solid var(--border-subtle);
  color:var(--text-subtle);white-space:nowrap;
}
.th-2w{color:var(--warning)!important;border-top:2px solid var(--warning);}
.th-4w{color:var(--cyan)!important;border-top:2px solid var(--cyan);}
.th-4wp{color:var(--magenta)!important;border-top:2px solid var(--magenta);}
.th-total{color:var(--accent)!important;border-top:2px solid var(--accent);}
.th-cyan{color:var(--cyan)!important;border-top:2px solid var(--cyan);}
.out-table tbody tr{border-bottom:1px solid var(--border-subtle);transition:background .12s;}
.out-table tbody tr:hover{background:var(--bg-hover);}
.out-table tbody td{
  padding:9px 12px;
  font-family:var(--font-body);font-size:12px;
  color:var(--text-secondary);
  border-right:1px solid var(--border-subtle);
  vertical-align:middle;
}
.out-table tbody td:first-child{
  font-weight:500;color:var(--text-primary);
  border-right:2px solid var(--border-default);
  max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
}
.out-table td.num{font-family:var(--font-mono);text-align:right;font-size:11px;font-variant-numeric:tabular-nums;}
.out-table td.num.zero{color:var(--text-subtle);}
.out-table td.col-sep{border-right:2px solid var(--border-default);}
.out-table tfoot td{
  padding:10px 12px;
  font-family:var(--font-mono);font-size:10px;font-weight:700;
  letter-spacing:.05em;text-transform:uppercase;
  background:var(--bg-elevated);
  border-top:2px solid var(--border-default);
  color:var(--text-primary);
  text-align:right;
}
.out-table tfoot td:first-child{text-align:left;border-right:2px solid var(--border-default);}
.out-kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px;}
@media(max-width:900px){.out-kpi{grid-template-columns:repeat(2,1fr);}}
.out-kpi-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:6px;padding:14px 16px;position:relative;}
.out-kpi-card::before{content:'';position:absolute;top:0;left:0;width:3px;height:100%;background:var(--kpi-c,var(--accent));border-radius:2px 0 0 2px;}
.out-kpi-label{font-family:var(--font-mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:8px;}
.out-kpi-val{font-family:var(--font-display);font-size:26px;font-weight:400;color:var(--text-primary);line-height:1.1;}
.out-kpi-sub{font-family:var(--font-mono);font-size:9px;color:var(--text-subtle);margin-top:4px;}
.out-empty{text-align:center;padding:60px 20px;color:var(--text-subtle);font-family:var(--font-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;}

/* ── CUSTOMER MAPPING EXTRAS ── */
.out-table-wrap:has(#cm-2w-tbody),.out-table-wrap:has(#cm-4w-tbody),.out-table-wrap:has(#cm-4wp-tbody){max-height:360px;overflow-y:auto;}
/* CM sticky header */
#cm-2w-tbody~*,.out-table-wrap:has(#cm-2w-tbody) thead th,
.out-table-wrap:has(#cm-4w-tbody) thead th,
.out-table-wrap:has(#cm-4wp-tbody) thead th{position:sticky;top:0;z-index:5;background:var(--bg-elevated);}
.dpd-badge{display:inline-block;padding:1px 8px;border-radius:3px;font-family:var(--font-mono);font-size:10px;}
.dpd-ok{background:var(--success-dim);color:var(--success);}
.dpd-warn{background:var(--warning-dim);color:var(--warning);}
.dpd-danger{background:var(--danger-dim);color:var(--danger);}

.coll-table .th-group th{font-size:11px;padding:10px 14px;line-height:1.4;}
.pct-cell{display:flex;align-items:center;gap:8px;justify-content:flex-end;}
.pct-bar-wrap{width:56px;height:6px;background:var(--border-subtle);border-radius:3px;flex-shrink:0;overflow:hidden;}
.pct-bar-fill{height:100%;border-radius:3px;transition:width .4s ease;}
.ltv-badge{display:inline-flex;align-items:center;gap:8px;font-weight:500;}
.ltv-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;}
