/* University of Wyoming: native type, brand navigation, restrained reporting surfaces. */

body { margin:0; background:var(--bg); color:var(--text); font-family:var(--font); font-size:var(--type-15); line-height:1.47; }
h1,h2,h3,h4 { font-family:var(--font-display); font-weight:600; letter-spacing:0; }
button,input,select { font-family:var(--font); }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible { outline:2px solid var(--mavroon); outline-offset:3px; }
.dashboard { max-width:none; margin:0; padding:0 0 28px; }
.dashboard > *:not(.header):not(.brand-strip):not(.controls):not(.print-client-logo) { width:100%; max-width:var(--content-wide); margin-left:auto; margin-right:auto; padding-left:var(--shell-gutter); padding-right:var(--shell-gutter); }
.brand-strip { height:6px; width:100%; background:linear-gradient(90deg,var(--mavroon-dark) 0 22%,var(--mavroon) 22% 60%,var(--gold) 60% 75%,var(--surface-4) 75%); }
.header { position:sticky; top:0; z-index:100; margin:0; padding:0; min-height:56px; border:0; border-bottom:1px solid var(--band-rule); border-radius:0; background:var(--mavroon); box-shadow:none; }
.header-inner { width:100%; max-width:var(--content-wide); min-height:56px; padding:0 var(--shell-gutter); margin:0 auto; display:flex; align-items:center; gap:28px; flex-wrap:nowrap; }
.header-left { flex:0 1 auto; gap:0; }
.header .client-wordmark { color:var(--bg); font:600 var(--type-18)/1.2 var(--font-display); letter-spacing:0; white-space:nowrap; }
.header .view-nav { display:flex; flex:1; justify-content:space-evenly; width:auto; padding:0; margin:0; border:0; border-radius:0; background:transparent; box-shadow:none; gap:4px; }
.header .view-nav-btn { min-height:56px; padding:0 16px; background:transparent; border:0; border-radius:0; color:var(--bg); font-size:var(--type-13); font-weight:500; box-shadow:none; transform:none; opacity:1; }
.header .view-nav-btn.active { background:transparent; color:var(--bg); box-shadow:none; font-weight:600; }
.header .view-nav-btn:hover { background:transparent; color:var(--bg); box-shadow:none; transform:none; }
.header .header-right { margin-left:auto; gap:12px; }
.header .ghost-btn { color:var(--bg); background:transparent; border:1px solid var(--band-rule); border-radius:var(--r-pill); padding:4px 16px; font-size:var(--type-12); }
.header .ghost-btn:hover { background:var(--band-rule); }
.header :focus-visible { outline-color:var(--gold); }
.header .header-title { color:var(--bg); font:600 var(--type-18) var(--font-display); }
.header .header-sub,.header .last-updated { color:var(--bg); font-size:var(--type-11); }
.nav-burger,.nav-scrim { display:none !important; }
.controls,.admin-controls { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; padding:16px 0; margin-top:0; margin-bottom:0; border-bottom:1px solid var(--border-subtle); border-radius:0; background:var(--tooltip-bg); box-shadow:none; }
.shell-context { display:flex; gap:8px; font-size:var(--type-12); align-items:center; color:var(--text-muted); }
.shell-context strong { color:var(--text); font-weight:600; border-left:1px solid var(--border); padding-left:8px; }
.preset-group { display:inline-flex; flex-wrap:wrap; gap:4px; padding:4px; background:var(--surface-3); border:0; border-radius:var(--radius-8); }
.preset,.admin-controls .preset { color:var(--text-secondary); background:transparent; border:0; border-radius:var(--radius-8); padding:4px 12px; font-size:var(--type-12); font-weight:500; min-height:30px; box-shadow:none; }
.preset.active,.admin-controls .preset.active { color:var(--text); background:var(--bg); box-shadow:var(--shadow-xs); }
.preset:hover { background:var(--bg); color:var(--text); transform:none; box-shadow:var(--shadow-xs); }
.custom-range { flex-basis:100%; justify-content:flex-end; padding:12px; background:var(--surface-2); border:1px solid var(--border-subtle); border-radius:var(--radius-12); }
.custom-range input { padding:8px 8px; border:1px solid var(--border); border-radius:var(--radius-8); background:var(--bg); color:var(--text); }
.custom-range button,.apply-btn { background:var(--mavroon); color:var(--bg); border-radius:var(--radius-8); padding:8px 16px; }
.data-availability { margin-top:16px; margin-bottom:0; padding:8px 12px; background:var(--surface-2); border:1px solid var(--border-subtle); border-left:3px solid var(--gold); border-radius:var(--radius-8); color:var(--text-muted); font-size:var(--type-12); line-height:1.55; }
.page-heading { margin:0; padding:30px 0 24px; }
.page-heading h1 { margin:0; font:600 var(--type-28)/1.15 var(--font-display); color:var(--text); }
.page-heading > p:last-child { margin:8px 0 0; color:var(--text-muted); font-size:var(--type-15); }
.page-eyebrow { margin:0 0 8px; font-size:var(--type-11); font-weight:600; text-transform:none; letter-spacing:0; color:var(--mavroon); }
.exec-overview { gap:28px; margin:0; }
.overview-kpis,.channel-kpi-row { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:16px; }
.exec-hero,.exec-kpi-grid { display:contents; }
.exec-hero .card,.exec-kpi-grid .card,.channel-kpi-row .card { min-height:120px; background:var(--surface-2); padding:20px; border:0; border-radius:var(--radius-18); box-shadow:var(--shadow-card); text-align:left; }
.exec-hero .card-label,.exec-kpi-grid .card-label { color:var(--text-muted); font-size:var(--type-12); font-weight:500; text-transform:none; letter-spacing:0; margin-bottom:8px; }
.exec-hero .card-value,.exec-kpi-grid .card-value { color:var(--text); font:600 var(--type-28)/1.1 var(--font-display); letter-spacing:0; }
.exec-hero .card-details { font-size:var(--type-11); color:var(--text-muted); padding:0; margin-top:8px; border:0; }
.card::before,.card::after { display:none; }
.exec-charts,.exec-channels { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.chart-card,.exec-charts .chart-card,.exec-channel-card,.cm-card { background:var(--surface-2); padding:24px 28px; border:0; border-radius:var(--radius-18); box-shadow:var(--shadow-card); }
.chart-card-title,.cm-card-title { font-size:var(--type-15); font-weight:600; color:var(--text); margin:0 0 4px; letter-spacing:0; }
.chart-card-sub { font-size:var(--type-12); color:var(--text-muted); margin:0 0 20px; }
.chart-wrap { height:245px; position:relative; }
.section-heading { padding:4px 0 0; margin:0 0 16px; }
.section-heading h2 { font-size:var(--type-24); margin:0; }
.section-heading p { margin:8px 0 0; color:var(--text-muted); font-size:var(--type-14); }
.exec-channel-card .channel-name { font-size:var(--type-15); font-weight:600; margin-bottom:16px; }
.exec-channel-metric .metric-value { font-family:var(--font-display); }
.channel-tabs,.drilldown-tabs { display:flex; flex-wrap:wrap; gap:8px; padding:0 0 12px; margin:0 0 20px; border:0; border-bottom:1px solid var(--border-subtle); background:transparent; border-radius:0; }
.channel-tab,.drilldown-tab { padding:8px 12px; background:transparent; color:var(--text-muted); border:1px solid transparent; border-radius:var(--r-pill); font-size:var(--type-13); font-weight:500; box-shadow:none; }
.channel-tab.active,.drilldown-tab.active { background:var(--mavroon-dim); border-color:var(--mavroon-border); color:var(--mavroon); box-shadow:none; }
.channel-tab:hover,.drilldown-tab:hover { background:var(--surface-2); color:var(--text); transform:none; }
.totals { gap:20px; margin:0 0 16px; }
.totals .card { background:var(--surface-2); border:0; border-radius:var(--radius-18); padding:24px 28px; box-shadow:var(--shadow-card); }
.totals .card-label { text-transform:none; font-size:var(--type-14); font-weight:600; letter-spacing:0; color:var(--text); }
.card-row { border-color:var(--border-subtle); }
.card-metric-value { font:600 var(--type-28) var(--font-display); color:var(--text); }
.table-section { border:1px solid var(--border-subtle); border-radius:var(--radius-18); background:var(--bg); padding:0; margin:24px 0; overflow:hidden; box-shadow:var(--shadow-xs); }
.table-header { padding:20px 24px; border-bottom:1px solid var(--border-subtle); background:var(--bg); }
.table-header h2 { font-size:var(--type-18); font-weight:600; }
table { width:100%; border-collapse:collapse; font-size:var(--type-13); font-variant-numeric:tabular-nums; }
thead th { padding:12px 12px; color:var(--text-muted); background:var(--surface-2); font-size:var(--type-12); font-weight:600; text-transform:none; letter-spacing:0; border-bottom:1px solid var(--border); }
tbody td { padding:12px 12px; border-top:1px solid var(--border-subtle); color:var(--text); }
tbody tr:hover { background:var(--surface-2); }
select,.campaign-filter select { border:1px solid var(--border); border-radius:var(--radius-8); padding:8px 8px; background:var(--bg); color:var(--text); font-size:var(--type-12); }
.benchmarks-callout { color:var(--text-muted); font-size:var(--type-12); line-height:1.6; margin:16px 0; border:0; background:none; padding:0; }
.empty,.cm-empty { color:var(--text-muted); font-size:var(--type-13); padding:24px; text-align:center; }
.campaign-modal { background:var(--scrim); overflow-y:auto; padding:40px 24px; }
.campaign-modal-panel { max-width:1060px; width:100%; max-height:none; overflow:visible; margin:0 auto; background:var(--bg); border-radius:var(--radius-18); box-shadow:var(--shadow-pop); }
.campaign-modal-header { padding:20px 28px; background:var(--bg); border-bottom:1px solid var(--border-subtle); border-radius:var(--radius-18) var(--radius-18) 0 0; }
.campaign-modal-title { font:600 var(--type-24) var(--font-display); }
.campaign-modal-body { padding:24px 28px; }
.campaign-modal-close { border:1px solid var(--border); border-radius:var(--radius-8); color:var(--text); background:var(--bg); }
.cm-kpi { background:var(--surface-2); border-radius:var(--radius-12); padding:16px; }
.cm-kpi-label { color:var(--text-muted); font-size:var(--type-12); }
.cm-kpi-value { color:var(--text); font:600 var(--type-24) var(--font-display); }
.cm-tooltip { background:var(--tooltip-bg); color:var(--text); border:1px solid var(--border-subtle); border-radius:var(--radius-12); box-shadow:var(--shadow-pop); }
.cm-tooltip-title,.cm-tooltip-row,.cm-tooltip-row strong { color:var(--text); }
.fleet-footer { border-top:1px solid var(--border-subtle); margin-top:40px; padding:20px 0; display:flex; justify-content:space-between; align-items:center; gap:12px; color:var(--text-muted); font-size:var(--type-11); text-transform:none; letter-spacing:0; }
.fleet-credit { display:flex; align-items:center; gap:8px; }
.fleet-credit img { width:auto; height:18px; }
.data-freshness-footer { border:0; padding:12px 0; }
.updated-footer { padding:0 0 12px; color:var(--text-muted); }
#last-updated { color:var(--text-muted); }
.login-card { background:var(--bg); border:1px solid var(--border-subtle); border-radius:var(--radius-18); box-shadow:var(--shadow-card); }
.login-title { font:600 var(--type-24) var(--font-display); }
.admin-dashboard .admin-section,.admin-dashboard .pulse-card,.admin-dashboard .trend-card,.admin-dashboard .summary-card { border:1px solid var(--border-subtle); border-radius:var(--radius-18); box-shadow:var(--shadow-xs); background:var(--bg); }
.admin-dashboard .section-title { font:600 var(--type-24) var(--font-display); color:var(--text); }
.admin-dashboard .section-sub { font-size:var(--type-13); color:var(--text-muted); }
.admin-dashboard .admin-nav { border:0; border-bottom:1px solid var(--border-subtle); background:var(--bg); border-radius:0; box-shadow:none; }
.admin-dashboard .admin-nav-btn,.admin-sub-tab,.channel-filter-btn { color:var(--text-muted); background:transparent; border-radius:var(--r-pill); font:500 var(--type-13) var(--font); }
.admin-dashboard .admin-nav-btn.active,.admin-sub-tab.active,.channel-filter-btn.active { color:var(--mavroon); background:var(--mavroon-dim); }
.admin-dashboard .admin-nav-btn:hover,.admin-sub-tab:hover,.channel-filter-btn:hover { color:var(--text); background:var(--surface-2); }
.admin-dashboard .admin-content { padding-top:24px; }
.admin-dashboard .trend-card-value,.admin-dashboard .summary-value { font:600 var(--type-28) var(--font-display); color:var(--text); }
[hidden],.controls-hidden { display:none !important; }
@media(max-width:1000px) {
  .header-inner { gap:12px; }
  .header .client-wordmark { font-size:var(--type-15); }
  .header .view-nav-btn { padding:0 12px; }
  .overview-kpis,.channel-kpi-row { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .controls { justify-content:flex-start; }
}
@media(max-width:680px) {
  
  .header-inner { padding:8px var(--shell-gutter) 0; flex-wrap:wrap; gap:8px 12px; }
  .header-left { order:0; }
  .header .header-right { order:1; }
  .header .view-nav { order:2; flex-basis:100%; }
  .header .view-nav-btn { min-height:42px; }
  .header .client-wordmark { font-size:var(--type-18); }
  .header .header-title { font-size:var(--type-15); }
  .header .header-sub,.header .last-updated { display:none; }
  .shell-context { width:100%; }
  .preset { padding:4px 8px; }
  .overview-kpis,.channel-kpi-row { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .exec-hero .card,.exec-kpi-grid .card,.channel-kpi-row .card { padding:16px; }
  .exec-charts,.exec-channels { grid-template-columns:1fr; gap:16px; }
  .chart-card,.exec-charts .chart-card,.exec-channel-card,.totals .card { padding:20px; }
  .table-header { padding:16px; }
  .table-wrap { overflow-x:auto; }
  .campaign-modal { padding:16px 8px; }
  .campaign-modal-header,.campaign-modal-body { padding:16px; }
  .fleet-footer { flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) {  }
@media print { .brand-strip,.header,.controls,.channel-tabs { display:none !important; } .chart-card,.card,.table-section { box-shadow:none; break-inside:avoid; } }
/* Shell spacing is explicit, not inherited from the legacy stacked layout. */
.dashboard { gap:0; }
.exec-overview { display:flex; flex-direction:column; gap:28px; }
.trend-legend-dot { outline:1px solid var(--mavroon); }
.freq-ctr-bar-fill { box-shadow:var(--shadow-xs); }
.admin-dashboard .channel-filter-btn.active[data-channel] { color:var(--mavroon); background:var(--mavroon-dim); border-color:var(--mavroon-border); }
@media(max-width:680px) {
  .cm-grid-2 { grid-template-columns:1fr; }
  .cm-grid-2 > *, .cm-section-body { min-width:0; }
  .cm-chart,.cm-section-body svg,.cm-section-body canvas { max-width:100%; }
  .cm-kpi-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cm-section-body { padding:12px; }
}

/* Official signatures and shared navigation shell. */
.client-signature { display:block; height:30px; width:auto; max-width:100%; object-fit:contain; }
.login-signature { margin:0 auto 20px; }
.print-client-logo { display:none; }
.dashboard > .controls { width:100%; max-width:none; padding:0; background:var(--bg); }
.controls-inner { width:100%; max-width:var(--content-wide); margin:auto; padding:12px var(--shell-gutter); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; }
.admin-controls .controls-inner { padding-top:0; padding-bottom:0; }
.shell-context { font-size:var(--type-14); }
.shell-context strong { border:0; padding:0; }
.marketing-menu { position:absolute; top:100%; left:0; width:100%; background:var(--mavroon); color:var(--bg); border-top:1px solid var(--band-rule); box-shadow:var(--shadow-xs); }
.marketing-menu-inner { max-width:1200px; margin:auto; padding:28px 24px 32px; display:flex; gap:28px; }
.menu-group { min-width:120px; padding-right:28px; border-right:1px solid var(--band-rule); }
.menu-group:last-child { border:0; }
.menu-group h2 { color:var(--bg); font-size:var(--type-11); text-transform:none; letter-spacing:0; margin:0 0 12px; }
.menu-group button { display:block; border:0; background:transparent; color:var(--bg); padding:4px 0; font-size:var(--type-15); font-weight:600; text-align:left; box-shadow:none; }
.menu-group button:hover { text-decoration:underline; transform:none; }
#panel-location { scroll-margin-top:100px; }
.page-eyebrow { color:var(--mavroon); }
@media(max-width:680px) {
  .client-signature { height:26px; }

  .marketing-menu-inner { gap:16px; padding:20px 16px; flex-wrap:wrap; }
  .menu-group { min-width:100px; padding-right:16px; }
}
@media print {
  .dashboard > .print-client-logo { display:block !important; height:30px; width:auto; max-width:1170px; margin:16px 0; }
  .marketing-menu { display:none !important; }
}

/* Align banner text with the shared shell, allowing for its existing borders. */
.dashboard > .data-availability:not(.header):not(.brand-strip):not(.controls):not(.print-client-logo) { padding-left:calc(var(--shell-gutter) - 4px); padding-right:calc(var(--shell-gutter) - 4px); }

/* Closed menus have no box, transition, or pointer hit area. */
.marketing-menu[hidden] { display:none !important; pointer-events:none; transition:none; }
#meta-breakdowns { display:grid; gap:20px; }
#meta-breakdowns .cm-grid-2 { gap:20px; }
.meta-image-tile { width:80px; height:80px; background:var(--surface-2); color:var(--text-muted); display:grid; place-items:center; overflow:hidden; border-radius:var(--radius-8); font-size:var(--type-11); text-align:center; }
.meta-image-tile img { width:100%; height:100%; object-fit:contain; }

.table-sort-button { background:none; border:0; padding:0; color:inherit; font:inherit; cursor:pointer; }
