:root{color-scheme:dark}

.topnav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:16px 28px;border-bottom:1px solid #263248;background:#0b1320}
.topnav-left{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.topnav nav{display:flex;gap:20px}
.topnav a{color:#93a6c2;text-decoration:none;font-size:.88rem}
.topnav a.active,.topnav a:hover{color:#eef3fa}
.topnav-status{display:flex;align-items:center;gap:10px;font-size:.78rem;color:#93a6c2;white-space:nowrap}
.topnav-status .dot{width:8px;height:8px;border-radius:50%;background:#4a5772;flex:none}
.topnav-status .dot.ok{background:#4fbf7a}
.topnav-status .dot.stale{background:#e0a53f}

main.dash{max-width:1560px;margin:0 auto;padding:28px 24px 64px}
main.dash h1,main.dash h2,main.dash h3{margin:0 0 4px;font-size:1.1rem;color:#eef3fa;font-weight:600}
main.dash h3{font-size:.95rem;margin-top:20px}
/* style.css ships a generic bordered-box `section` rule for the plain status
   page; dashboard cards define their own boxes, so give sections here a
   clean, uniform panel look instead of inheriting that unrelated styling. */
main.dash section{background:#101a2c;border:1px solid #223050;border-radius:14px;padding:24px 28px;margin:0 0 28px}
main.dash > section:last-of-type{margin-bottom:0}
.section-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.section-head h2{margin:0}

.disclaimer{display:flex;gap:12px;background:#132038;border:1px solid #2a4570;border-radius:12px;padding:14px 18px;font-size:.85rem;color:#c5d0e0;line-height:1.55;margin-bottom:24px}
.disclaimer .icon{flex:none;color:#7ea6e8;font-size:1rem;line-height:1.55}
.note{color:#8fa1bd;font-size:.82rem;margin:0 0 14px;line-height:1.5}
.note-inline{color:#8fa1bd;font-size:.78rem;font-weight:400}
.callout{background:#241d0f;border:1px solid #5a4620;color:#e3c98a;border-radius:10px;padding:10px 16px;font-size:.85rem;line-height:1.5}
.scope-tag{font-size:.66rem;font-weight:600;letter-spacing:.03em;color:#e3c98a;border:1px solid #5a4620;border-radius:6px;padding:3px 9px;white-space:nowrap}

.filterbar{display:flex;flex-wrap:wrap;gap:18px;align-items:center;padding:16px 20px;margin-bottom:24px;background:#101a2c;border:1px solid #223050;border-radius:14px}
.filter-group{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.filter-group button{background:#182338;border:1px solid #344258;color:#c5d0e0;border-radius:999px;padding:6px 14px;font-size:.82rem;cursor:pointer;transition:background .15s,border-color .15s}
.filter-group button:hover{border-color:#4a6da8}
.filter-group button.active{background:#2c5ba8;border-color:#2c5ba8;color:#fff}
.filter-group label{font-size:.8rem;color:#93a6c2;display:flex;gap:7px;align-items:center}
.filter-group select,.filter-group input[type=date]{background:#0e1727;border:1px solid #344258;color:#eef3fa;border-radius:8px;padding:6px 10px;font-size:.82rem}
.filter-group select:focus,.filter-group input[type=date]:focus{outline:2px solid #2c5ba8;outline-offset:1px}
#flow-mix-note{font-size:.82rem;color:#e3c98a}

.freshness{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.78rem;color:#8fa1bd;padding:10px 16px;border:1px solid #223050;border-radius:10px;margin-bottom:28px;background:#0e1727}
.freshness span{white-space:nowrap}
.freshness .stale{color:#e3a15c}

.kpi-subgroup + .kpi-subgroup{margin-top:20px}
.kpi-subgroup-title{font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:#6f81a0;margin:0 0 10px}
.kpi-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
.kpi{display:flex;flex-direction:column;background:#141d30;border:1px solid #263248;border-radius:12px;padding:14px 16px;min-height:84px}
.kpi .value{font-size:1.5rem;font-weight:650;color:#eef3fa;line-height:1.15}
.kpi .label{font-size:.72rem;color:#93a6c2;text-transform:uppercase;letter-spacing:.04em;word-break:normal;overflow-wrap:break-word;margin-top:3px}
.kpi .caveat{font-size:.74rem;color:#7387a6;line-height:1.45;margin-top:8px}

.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:10px;scrollbar-color:#344258 #101a2c}
.table-wrap::-webkit-scrollbar{height:8px}
.table-wrap::-webkit-scrollbar-track{background:#101a2c}
.table-wrap::-webkit-scrollbar-thumb{background:#344258;border-radius:4px}
table{width:100%;min-width:560px;border-collapse:collapse;font-size:.83rem}
th,td{padding:9px 14px;border-bottom:1px solid #1c2740;text-align:right;white-space:nowrap}
th:first-child,td:first-child,th:nth-child(2),td:nth-child(2){text-align:left}
thead th{color:#7387a6;font-weight:600;font-size:.7rem;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #263248}
tbody tr:hover{background:#141f36}
.table-scroll-y{max-height:420px;overflow-y:auto}

.badge{border-radius:999px;padding:3px 10px;font-size:.7rem;font-weight:600;letter-spacing:.02em;display:inline-block;white-space:nowrap}
.badge.ok{background:#173a24;color:#7fd99b}
.badge.warning{background:#3a2f10;color:#e3c98a}
.badge.critical{background:#3a1414;color:#f19a9a}
.badge.info{background:#122a3a;color:#8ec3e3}

.kpi-delta{display:block;font-size:.74rem;margin-top:6px;font-weight:600}
.kpi-delta.up{color:#7fd99b}
.kpi-delta.down{color:#f19a9a}
.kpi-delta.flat{color:#7387a6}

.stack-bar{display:flex;height:10px;border-radius:6px;overflow:hidden;margin:10px 0 14px;background:#1c2740}
.stack-bar .seg{height:100%}
.stack-bar .seg.high{background:#3f8f5f}
.stack-bar .seg.medium{background:#5c8fc9}
.stack-bar .seg.low{background:#c9a94a}
.stack-bar .seg.none,.stack-bar .seg.undefined{background:#3a4258}
.stack-bar-legend{display:flex;flex-wrap:wrap;gap:18px;font-size:.78rem;color:#93a6c2;margin-bottom:18px}
.stack-bar-legend .item{display:flex;align-items:center;gap:7px}
.stack-bar-legend .swatch{width:9px;height:9px;border-radius:3px;flex:none}
.stack-bar-legend .swatch.high{background:#3f8f5f}
.stack-bar-legend .swatch.medium{background:#5c8fc9}
.stack-bar-legend .swatch.low{background:#c9a94a}
.stack-bar-legend .swatch.undefined{background:#3a4258}
.stack-bar-legend .swatch-spend{background:#5c8fc9}
.stack-bar-legend .swatch-revenue{background:#c9a94a}
.stack-bar-legend b{color:#eef3fa;font-weight:600}

.bar-list{display:flex;flex-direction:column;gap:9px}
.bar-list-row{display:grid;grid-template-columns:150px 1fr auto;align-items:center;gap:14px}
.bar-list-row .bl-label{font-size:.85rem;color:#c5d0e0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.bar-list-row .bl-label.unmapped{color:#7387a6;font-style:italic}
.bar-list-row .bl-track{height:9px;border-radius:5px;background:#1c2740;overflow:hidden}
.bar-list-row .bl-fill{height:100%;background:#4a6da8;border-radius:5px}
.bar-list-row .bl-fill.unmapped{background:#3a4258}
.bar-list-row .bl-value{font-size:.8rem;color:#93a6c2;white-space:nowrap;min-width:110px;text-align:right}
.bar-list-row .bl-value b{color:#eef3fa;font-weight:600}

.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.hist-card{background:#141d30;border:1px solid #263248;border-radius:12px;padding:16px 18px}
.hist-card h4{margin:0 0 4px;font-size:.92rem;color:#eef3fa;font-weight:600}
.hist-card .bar{height:7px;border-radius:4px;background:#1c2740;overflow:hidden;margin:10px 0 12px}
.hist-card .bar > span{display:block;height:100%;background:#5c8fc9}
.hist-card.warning{border-color:#5a4620;background:#1c1508}
.hist-card.warning .warning-text{color:#e3c98a;font-size:.82rem;margin:6px 0 0}
.hist-card table{min-width:0}
.hist-card td{padding:5px 0;border-bottom:1px solid #1e2c48}
.hist-card tr:last-child td{border-bottom:none}

.issue-list{display:flex;flex-direction:column;gap:8px;margin-top:14px}
.issue-row{display:flex;gap:12px;align-items:flex-start;padding:10px 14px;border-radius:10px;border:1px solid #263248;background:#141d30;font-size:.85rem;line-height:1.5}
.issue-row .badge{margin-top:1px}
.issue-row span:last-child{min-width:0}

footer{margin-top:8px;color:#6f81a0;font-size:.8rem;text-align:center}
footer a{color:#93a6c2}

@media (max-width:900px){
  main.dash{padding:20px 14px 48px}
  main.dash section{padding:18px 18px}
  .bar-list-row{grid-template-columns:110px 1fr auto;gap:10px}
}
@media (max-width:700px){
  .topnav{flex-wrap:wrap;gap:10px;padding:14px 18px}
  .topnav-left{gap:14px}
  th,td{white-space:normal}
  .issue-row{flex-wrap:wrap}
}
@media (max-width:480px){
  .bar-list-row{grid-template-columns:1fr;gap:4px}
  .bar-list-row .bl-label{white-space:normal;overflow:visible;text-overflow:clip}
  .bar-list-row .bl-value{text-align:left;min-width:0}
}

.chart-cols{display:flex;align-items:flex-end;gap:3px;height:160px;padding:10px 4px 0;
 border-bottom:1px solid #263248;overflow-x:auto;margin-bottom:8px}
.chart-col{flex:1 0 5px;min-width:5px;height:100%;display:flex;align-items:flex-end}
.chart-bars{display:flex;gap:1px;align-items:flex-end;width:100%;height:100%}
.chart-bar{flex:1;border-radius:2px 2px 0 0;min-height:1px}
.chart-bar.spend{background:#5c8fc9}
.chart-bar.revenue{background:#c9a94a}
