/* One visual system for read-only management data. */
#board.executive-dashboard{max-width:none;padding:0;--dash-blue:#6d8eb2;--dash-green:#548e7e;--dash-copper:#bb8864;--dash-radius:16px;--dash-soft:color-mix(in srgb,var(--ink) 3%,var(--panel));font-variant-numeric:tabular-nums}
#board.executive-dashboard>.finance-heading{align-items:center;margin:0 0 12px;gap:16px}
#board.executive-dashboard .finance-heading h1{font-size:30px;letter-spacing:-1px;margin:0;font-weight:620}
#board.executive-dashboard .finance-actions{gap:8px;justify-content:flex-end}
#board.executive-dashboard .finance-actions select{min-height:40px;padding:8px 12px;border-radius:9px;background:var(--panel);font-size:12px}
#board.executive-dashboard .finance-actions .primary{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:9px 16px;border-radius:9px;font-size:12px}
.dash-icon{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}
.dash-period-status{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 24px}
.dash-period-status>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dash-status{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:550;color:var(--muted);line-height:1.4;padding:4px 8px;border:1px solid var(--line);border-radius:6px;white-space:nowrap}
.dash-status:before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor;flex-shrink:0}
.dash-status.complete{color:var(--green)}.dash-status.draft{color:var(--accent)}.dash-budget-source{font-size:10px;color:var(--muted)}
#board.executive-dashboard .finance-month-summary{margin-bottom:0}
#board.executive-dashboard .finance-month-summary-title{font-size:12px;font-weight:500;color:var(--muted);margin:0 0 12px}
#board.executive-dashboard .finance-month-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 16px}
#board.executive-dashboard .finance-month-metrics .finance-metric{display:flex;flex-direction:column;position:relative;min-width:0;min-height:201px;padding:20px 21px 14px;border:1px solid var(--line);border-radius:var(--dash-radius);background:var(--panel);box-shadow:0 2px 5px #0a0f1e02;overflow:visible}
#board.executive-dashboard .finance-metric h2{display:flex;align-items:center;gap:9px;margin:0 0 14px;font-size:12px;color:var(--muted);font-weight:550}
.dash-kpi-icon{display:inline-flex;color:var(--dash-blue)}[data-revenue-kind=services] .dash-kpi-icon{color:var(--dash-green)}[data-revenue-kind=consultancy] .dash-kpi-icon{color:var(--dash-copper)}
#board.executive-dashboard .finance-month-metrics .finance-metric>strong{font-size:clamp(23px,2vw,30px);letter-spacing:-1.2px;line-height:1.2;font-weight:600;white-space:nowrap;color:var(--ink)}
#board.executive-dashboard .finance-month-metrics .dash-long-number>strong{font-size:25px}
.dash-kpi-state{font-size:10px;color:var(--muted);margin-top:6px}
.dash-kpi-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:auto;padding-top:14px;min-height:44px;font-size:9px;color:var(--muted)}
.dash-kpi-footer>span{text-align:right}.dash-spark{display:block;max-width:100px;width:45%;height:27px;fill:var(--dash-blue);flex-shrink:0;overflow:visible}.dash-spark rect{opacity:.35}.dash-spark rect.selected{opacity:1}.dash-spark-missing{stroke:var(--line);stroke-width:2;fill:none}[data-revenue-kind=services] .dash-spark{fill:var(--dash-green)}[data-revenue-kind=consultancy] .dash-spark{fill:var(--dash-copper)}
#board.executive-dashboard .finance-month-metrics .finance-ebitda-metric{background:#111b2c;border-color:#26354b;color:#f5f0e8;--ink:#f5f0e8;--muted:#b2bece;--line:#354255;--panel:#111b2c;--dash-blue:#d0a683;--green:#9dc4aa;--red:#efada0}
.finance-ebitda-metric .dash-kpi-icon{color:#d0a683}#board.executive-dashboard .finance-ebitda-metric.negative>strong{color:#efada0}
.dash-month-strip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin-bottom:26px;padding:15px 0;border-bottom:1px solid var(--line);gap:24px}
.dash-month-strip>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 12px;min-width:0}.dash-month-strip>div+div{padding-left:24px;border-left:1px solid var(--line)}.dash-month-strip span{font-size:11px;color:var(--muted)}.dash-month-strip strong{font-size:17px;letter-spacing:-.4px;font-weight:600}.dash-month-strip small{grid-column:1/-1;font-size:10px;color:var(--muted)}.dash-strip-track{display:none}
.dash-positive{color:var(--green)}.dash-negative{color:var(--red)}
.dash-panel{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--dash-radius);padding:23px 24px;min-width:0}
.dash-panel-head{display:flex;align-items:center;gap:9px;justify-content:flex-start;margin-bottom:23px;min-width:0}.dash-panel-icon{display:inline-flex;color:var(--accent);flex:0 0 18px}.dash-panel h2{font-size:14px;font-weight:600;letter-spacing:-.25px;margin:0}.dash-panel-head p{font-size:10px;color:var(--muted);margin:4px 0 0;line-height:1.5}
.dash-primary-grid,.dash-secondary-grid,.dash-operations-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(270px,1fr);gap:18px;margin-bottom:18px;align-items:stretch}.dash-primary-grid{margin-top:24px}
.dash-chart{display:block;width:100%;height:auto;fill:none;stroke:none;overflow:visible}.dash-chart text{font-family:inherit;letter-spacing:0;stroke:none;font-variant-numeric:tabular-nums}.dash-axis{fill:var(--muted);font-size:12px}.dash-missing{fill:var(--muted);font-size:12px;opacity:.7}.dash-grid{stroke:var(--line);stroke-width:1;stroke-dasharray:2 5}.dash-zero{stroke:var(--line);stroke-width:1}.dash-budget-line{stroke:var(--accent);stroke-width:2;stroke-dasharray:5 5;fill:none;stroke-linejoin:round;opacity:.8}.dash-draft-bar{stroke:var(--ink);stroke-width:1;stroke-dasharray:3 3;opacity:.6}.dash-selection{fill:color-mix(in srgb,var(--accent) 7%,transparent)}.dash-point{cursor:pointer;outline:none;transition:opacity .15s}.dash-point:hover{opacity:.65}.dash-point:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.dash-legend{display:flex;gap:16px;align-items:center;flex-wrap:wrap;font-size:10px;color:var(--muted);margin-bottom:18px}.dash-legend>span{display:inline-flex;align-items:center;gap:5px}.dash-legend i{display:inline-block;width:7px;height:7px;border-radius:2px;background:var(--series)}.dash-legend i.dashed{width:12px;height:0;border-top:2px dashed var(--series);background:none;border-radius:0}.dash-revenue{display:flex;flex-direction:column}.dash-revenue>.dash-chart{margin:auto 0 0;max-height:290px}.dash-chart-note{font-size:10px;color:var(--muted);line-height:1.6;margin:12px 0 0}
.dash-tooltip{position:absolute;z-index:30;display:grid;gap:5px;width:260px;padding:12px 14px;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:9px;box-shadow:0 8px 25px #0a0f1e20;pointer-events:none;font-size:11px}.dash-tooltip span{font-size:10px;color:var(--muted)}
.dash-ytd{display:flex;flex-direction:column}.dash-ytd-body{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:8px 0 0}.dash-small-label{font-size:9px;font-weight:600;letter-spacing:1px;color:var(--muted)}.dash-ytd-value{display:block;font-size:26px;letter-spacing:-.8px;font-weight:600;margin-top:6px;line-height:1.3}.dash-budget-ring{width:94px;height:94px;flex:0 0 94px;fill:none;stroke:none}.dash-ring-track{fill:none;stroke:var(--line);stroke-width:6}.dash-ring-fill{fill:none;stroke:var(--accent);stroke-width:6;stroke-linecap:round}.dash-ring-value{font:600 21px system-ui,sans-serif;fill:var(--ink);stroke:none;letter-spacing:-1px}.dash-ring-label{font-size:9px;fill:var(--muted);stroke:none}.dash-facts{display:grid;grid-template-columns:1fr auto;gap:12px;font-size:11px;margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line)}.dash-facts dt{color:var(--muted)}.dash-facts dd{font-weight:550;text-align:right;margin:0}
#board.executive-dashboard>.dash-brands{padding:0;background:transparent;border:0;border-radius:0;margin:0}.dash-brands>.dash-panel-head{margin:0 0 14px}.dash-brands>.dash-panel-head p{display:none}.dash-brand-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.dash-brand-card{position:relative;border:1px solid var(--line);border-radius:var(--dash-radius);padding:18px 20px;background:var(--panel);min-width:0;overflow:hidden}.dash-brand-card:before{content:'';position:absolute;left:0;top:20px;bottom:20px;width:2px;background:var(--brand-accent);border-radius:2px}.dash-brand-head{display:flex;align-items:center;justify-content:space-between;gap:8px;height:34px;margin-bottom:18px}.dash-brand-logo{display:block;object-fit:contain;object-position:left center;width:105px;height:31px;max-width:52%;mix-blend-mode:multiply}.dash-brand-logo[src$='/salt.png']{width:44px;height:34px}.dash-brand-head .dash-status{font-size:9px;border:0;padding:2px 0;gap:4px}.dash-brand-revenue{display:block;font-size:25px;font-weight:600;letter-spacing:-.8px;margin-bottom:16px}.dash-brand-mix{display:flex;height:4px;background:var(--line);border-radius:4px;overflow:hidden;margin-bottom:15px;gap:2px}.dash-brand-mix i{min-width:0}.dash-brand-breakdown{display:grid;grid-template-columns:1fr auto;gap:8px;font-size:10px;margin:0}.dash-brand-breakdown dt{display:flex;align-items:center;gap:5px;color:var(--muted);min-width:0}.dash-brand-breakdown i{width:5px;height:5px;border-radius:50%;flex-shrink:0}.dash-brand-breakdown dd{margin:0;text-align:right;font-weight:550}
.dash-donut-total{fill:var(--ink);font-size:26px;font-weight:600;letter-spacing:-.7px}.dash-mix>.dash-chart{max-height:180px}.dash-mix-list{display:grid;gap:10px}.dash-mix-list>div{display:flex;justify-content:space-between;align-items:center;font-size:11px}.dash-mix-list span{display:flex;align-items:center;gap:6px;color:var(--muted)}.dash-mix-list i{width:6px;height:6px;border-radius:2px}.dash-mix-list strong{font-size:12px;font-weight:550}.dash-overhead-summary{display:flex;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid var(--line);font-size:11px}.dash-overhead-summary span{color:var(--muted)}
#board.executive-dashboard .dash-capacity{margin:0;padding:23px 24px;border-radius:var(--dash-radius);background:var(--panel);border:1px solid var(--line);min-width:0}#board.executive-dashboard .dash-capacity h2{margin:0 0 18px;font-size:14px;color:var(--ink);letter-spacing:-.25px}#board.executive-dashboard .dash-capacity h2>.dash-icon{color:var(--accent)}#board.executive-dashboard .dash-capacity .finance-billability-body strong{font-size:38px;letter-spacing:-1.5px}.dash-capacity select{font-size:11px}.dash-capacity .finance-billability-ring{width:90px;height:90px;flex-basis:90px}.dash-capacity .finance-billability-body p{font-size:11px}.dash-capacity .finance-text-button{margin-top:12px}
.dash-details{border:1px solid var(--line);border-radius:9px;margin:12px 0;overflow:hidden}.dash-details>summary{font-size:11px;padding:12px 15px;cursor:pointer;color:var(--muted)}.dash-details>div{padding:16px}.dash-details[open]>summary{border-bottom:1px solid var(--line)}.dash-panel>.dash-details{border:0;border-top:1px solid var(--line);border-radius:0;margin:15px 0 0}.dash-panel>.dash-details>summary{padding:12px 0 0;font-size:10px}.dash-panel>.dash-details[open]>summary{padding-bottom:12px}.dash-panel>.dash-details>.finance-table-wrap{padding:0}#board.executive-dashboard .finance-metric>.dash-details{border:0;border-top:1px solid var(--line);border-radius:0;margin:10px 0 0}#board.executive-dashboard .finance-metric>.dash-details>summary{font-size:9px;padding:9px 0 0;list-style:none}#board.executive-dashboard .finance-metric>.dash-details>summary:after{content:' +';float:right}#board.executive-dashboard .finance-metric>.dash-details[open]>summary:after{content:' −'}#board.executive-dashboard .finance-metric>.dash-details>div{padding:12px 0 0}#board.executive-dashboard .finance-metric>.dash-details p{font-size:10px;margin:0 0 8px;line-height:1.6}#board.executive-dashboard .finance-metric .finance-text-button{font-size:10px;padding:5px 0}
#board.executive-dashboard>.staffing-monitor,#board.executive-dashboard>.dashboard-advisor,#board.executive-dashboard>.dash-roadmap,#board.executive-dashboard>.dash-panel:not(.dash-brands){margin:0 0 18px}.dash-roadmap-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.dash-roadmap-step{min-width:0;border-top:2px solid var(--line);padding:17px 0 0;display:flex;flex-direction:column;align-items:flex-start;gap:5px}.dash-roadmap-step.selected{border-color:var(--accent)}.dash-roadmap-year{font-size:16px;font-weight:600}.dash-roadmap-basis{font-size:9px;color:var(--muted)}.dash-roadmap-value{font-size:29px;font-weight:600;letter-spacing:-1px;margin-top:10px}.dash-roadmap-target{font-size:10px;color:var(--muted)}.dash-roadmap-growth{font-size:10px;color:var(--green);margin-top:4px}.dash-roadmap-result{display:grid;gap:6px;font-size:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);width:100%}.dash-roadmap-result span{color:var(--muted)}.dash-roadmap-result strong{font-size:15px;font-weight:550}
#board.executive-dashboard .staffing-grid{gap:14px}#board.executive-dashboard .staffing-card{border:0;border-radius:10px;background:var(--dash-soft);padding:20px}#board.executive-dashboard .staffing-value{font-size:30px;letter-spacing:-1px}#board.executive-dashboard .staffing-caption,#board.executive-dashboard .staffing-muted{font-size:10px}#board.executive-dashboard .staffing-details>summary{font-size:10px}
#board.executive-dashboard .dashboard-advisor{border-top:1px solid var(--line)}#board.executive-dashboard .advisor-header{margin-bottom:16px}#board.executive-dashboard .advisor-brief{background:var(--dash-soft);border-color:transparent;border-radius:10px;padding:15px}#board.executive-dashboard .advisor-brief h3{font-size:12px;margin:10px 0 6px}#board.executive-dashboard .advisor-empty{padding:0}#board.executive-dashboard .advisor-empty p{font-size:11px}.executive-dashboard>.management-dashboard{font-size:11px;margin:18px 0}.executive-dashboard>.finance-footer{font-size:10px;margin-top:20px}
[data-theme=dark] .dash-brand-logo{filter:grayscale(1) invert(1);mix-blend-mode:screen;opacity:.95}
@media(prefers-reduced-motion:no-preference){.dash-brand-card,.dash-panel{transition:border-color .16s}.dash-brand-card:hover{border-color:color-mix(in srgb,var(--brand-accent) 45%,var(--line))}.dash-ring-fill{animation:dash-chart-in .25s ease-out}@keyframes dash-chart-in{from{opacity:.4}to{opacity:1}}}
@media(max-width:1150px){.dash-primary-grid,.dash-secondary-grid,.dash-operations-grid{grid-template-columns:minmax(0,1.6fr) minmax(260px,1fr)}.dash-brand-card{padding:16px 14px}.dash-brand-revenue{font-size:22px}.dash-brand-head{gap:4px}.dash-brand-head .dash-status{font-size:8px}.dash-ytd-body{flex-wrap:wrap}#board.executive-dashboard .finance-month-metrics .finance-metric{padding:18px 16px 12px}#board.executive-dashboard .finance-month-metrics .finance-metric>strong{font-size:26px}}
@media(max-width:1000px){#board.executive-dashboard .finance-month-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-brand-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-primary-grid,.dash-secondary-grid,.dash-operations-grid{grid-template-columns:1fr}.dash-ytd-body{flex-wrap:nowrap}.dash-revenue>.dash-chart{max-height:none}.dash-roadmap-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-month-strip{gap:14px}.dash-month-strip>div{grid-template-columns:1fr}.dash-month-strip>div+div{padding-left:14px}}
@media(max-width:650px){#board.executive-dashboard>.finance-heading{align-items:flex-start;flex-direction:column;gap:16px}#board.executive-dashboard .finance-heading h1{font-size:27px}#board.executive-dashboard .finance-actions{justify-content:flex-start;flex-wrap:wrap;width:100%}#board.executive-dashboard .finance-actions .primary{margin-left:auto}.dash-period-status{margin:0 0 20px;align-items:flex-start;flex-direction:column;gap:8px}.dash-budget-source{font-size:9px}#board.executive-dashboard .finance-month-metrics{gap:10px}#board.executive-dashboard .finance-month-metrics .finance-metric{min-height:188px;padding:16px 13px 12px;border-radius:12px}#board.executive-dashboard .finance-month-metrics .finance-metric>strong{font-size:clamp(20px,5.1vw,29px);letter-spacing:-.8px;white-space:normal;overflow-wrap:anywhere}#board.executive-dashboard .finance-metric h2{font-size:11px;gap:6px}.dash-kpi-footer{gap:6px;font-size:8px}.dash-spark{width:38%}.dash-brand-grid{gap:10px}.dash-brand-card{padding:14px 12px;border-radius:12px}.dash-brand-head{flex-wrap:wrap;height:48px;align-content:space-between;margin-bottom:12px}.dash-brand-logo{max-width:100%;height:25px;width:88px}.dash-brand-logo[src$='/salt.png']{height:25px;width:34px}.dash-brand-head .dash-status{font-size:8px;flex-basis:100%}.dash-brand-revenue{font-size:21px}.dash-brand-breakdown{font-size:9px;gap:7px}.dash-brand-breakdown dt{gap:3px}.dash-month-strip{gap:8px;margin-bottom:22px}.dash-month-strip>div+div{padding-left:8px}.dash-month-strip span{font-size:9px}.dash-month-strip strong{font-size:13px}.dash-month-strip small{font-size:8px}.dash-panel,#board.executive-dashboard .dash-capacity{padding:19px 17px;border-radius:13px}.dash-panel-head{margin-bottom:18px}.dash-panel h2{font-size:13px}.dash-primary-grid{margin-top:20px}.dash-legend{font-size:9px;gap:10px}.dash-chart{min-width:0!important}.dash-chart .dash-axis{font-size:14px}#board.executive-dashboard .finance-month-metrics .dash-long-number>strong{font-size:19px}.dash-chart-note{font-size:10px}.dash-roadmap-grid{gap:20px 16px}.dash-roadmap-value{font-size:25px}.dash-facts{font-size:10px}.dash-overhead-summary{font-size:10px}.dash-operations-grid .finance-table{min-width:540px}.dash-ytd-value{font-size:25px}}
@media(prefers-reduced-motion:reduce){#board.executive-dashboard *{animation:none!important;transition:none!important}}
#board.executive-dashboard>.dash-brands{margin-bottom:22px}.dash-primary-grid{margin-top:0}
