﻿.page-shell:has(.presentation-dashboard){width:min(1500px,calc(100% - 24px));}
.presentation-dashboard{--dash-navy:#10233f;--dash-teal:#078b91;--dash-blue:#2f68d8;--dash-green:#1ca35b;--dash-yellow:#e6a317;--dash-red:#dc3545;--dash-brown:#7a5a42;display:grid;gap:16px;color:#10233f}.dashboard-hero{min-height:150px;padding:34px;border-radius:20px;background:linear-gradient(115deg,#10233f 0%,#0d5870 58%,#15978c 100%);color:#fff;display:flex;align-items:center;justify-content:space-between;gap:28px;box-shadow:0 12px 30px rgba(16,35,63,.14)}.dashboard-hero h1{font-size:clamp(2rem,4vw,3.2rem);line-height:1.05;margin:8px 0}.dashboard-hero p{margin:0;max-width:900px;font-size:1.05rem}.dashboard-eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.16em;color:#22c9e7}.dashboard-live-pill{white-space:nowrap;border:1px solid rgba(255,255,255,.28);background:rgba(4,47,59,.56);padding:12px 17px;border-radius:999px;font-weight:700}.dashboard-live-pill span{display:inline-block;width:10px;height:10px;border-radius:50%;background:#42e68a;box-shadow:0 0 0 5px rgba(66,230,138,.18);margin-right:8px}.dashboard-control-bar,.dashboard-filter-bar{background:#fff;border:1px solid #d9e2ec;border-radius:14px;padding:12px 14px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}.dashboard-updated{margin-left:auto;color:#75849a;font-size:.86rem}.dashboard-primary,.dashboard-secondary,.dashboard-clear{border-radius:6px;padding:10px 14px;font-weight:700;text-decoration:none;cursor:pointer}.dashboard-primary{border:1px solid #087f96;background:#087f96;color:#fff}.dashboard-secondary{border:1px solid #a9b8ca;background:#fff;color:#183450}.dashboard-clear{border:0;background:transparent;color:#68798e}.dashboard-filter-bar label{display:grid;gap:4px;min-width:210px;font-size:.75rem;font-weight:700;color:#53667c}.dashboard-filter-bar select{height:38px;border:1px solid #cbd6e2;border-radius:6px;background:#fff;padding:0 9px;color:#10233f}.dashboard-kpis{display:grid;grid-template-columns:repeat(4,minmax(180px,1fr));gap:14px}.dashboard-kpi{position:relative;overflow:hidden;min-height:112px;padding:18px;border:1px solid #dce5ee;border-top:5px solid var(--kpi-accent,#2f68d8);border-radius:14px;background:#fff}.dashboard-kpi:after{content:"";position:absolute;width:95px;height:95px;border-radius:50%;right:-24px;bottom:-34px;background:#eef4f8}.dashboard-kpi-label{font-size:.76rem;font-weight:800;letter-spacing:.08em;color:#66778d}.dashboard-kpi-value{position:relative;z-index:1;font-size:2rem;font-weight:800;margin-top:8px}.dashboard-kpi-note{position:relative;z-index:1;color:#71839a;font-size:.82rem}.dashboard-chart-grid{display:grid;gap:14px}.dashboard-chart-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-card{min-width:0;background:#fff;border:1px solid #dce5ee;border-radius:14px;padding:14px;box-shadow:0 5px 16px rgba(29,57,84,.04)}.dashboard-card header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:6px}.dashboard-card h2{margin:0;font-size:1.05rem}.dashboard-card small{color:#7a899d}.dashboard-card-wide{grid-column:1/-1}.dashboard-chart{height:330px}.dashboard-chart-tall{height:410px}.dashboard-grid-card{margin-bottom:18px}.dashboard-detail-grid{height:430px!important;min-height:430px}.dashboard-status-green{color:#16894e;font-weight:800}.dashboard-status-yellow{color:#b57900;font-weight:800}.dashboard-status-red{color:#c62c3c;font-weight:800}.dashboard-status-brown{color:#73513b;font-weight:800}@media(max-width:1000px){.dashboard-kpis{grid-template-columns:repeat(2,minmax(160px,1fr))}.dashboard-chart-grid-two{grid-template-columns:1fr}.dashboard-card-wide{grid-column:auto}.dashboard-hero{align-items:flex-start;flex-direction:column}}@media(max-width:600px){.dashboard-kpis{grid-template-columns:1fr}.dashboard-hero{padding:24px}.dashboard-filter-bar label{width:100%}}

/* Dashboard chart readability: long contractor/site/Safety Index names must remain readable. */
.presentation-dashboard .dashboard-card header > *{min-width:0}
.presentation-dashboard .dashboard-card h2,.presentation-dashboard .dashboard-card small{overflow-wrap:anywhere}
.presentation-dashboard .dashboard-card small{max-width:52%;text-align:right;line-height:1.35}
.presentation-dashboard .dashboard-chart{width:100%;min-width:0}
@media(max-width:720px){.presentation-dashboard .dashboard-card header{display:grid}.presentation-dashboard .dashboard-card small{max-width:none;text-align:left}}

/* Owner/contractor dashboard readability: preserve wrapped axis/grid labels instead of clipping them. */
.presentation-dashboard .dashboard-chart{overflow:visible}
.presentation-dashboard .ag-cell.ag-cell-wrap-text{white-space:normal!important;line-height:1.3!important}
.presentation-dashboard .ag-cell-value{overflow-wrap:anywhere}
.presentation-dashboard .ag-header-cell-label{white-space:normal;line-height:1.2}
