  :root,
  [data-theme="dark"]{
    color-scheme:dark;
    /* Premium dark healthcare system — blue primary, layered navy surfaces */
    --blue:#3B82F6; --blue-soft:rgba(59,130,246,.16);
    --teal:#22D3EE; --teal-soft:rgba(34,211,238,.14);
    --pink:#F472B6; --pink-soft:rgba(244,114,182,.14);
    --darkblue:#F8FAFC; --black:#E8EEF7;
    --yellow:#FBBF24; --yellow-soft:rgba(251,191,36,.14);
    --red:#F87171; --red-soft:rgba(248,113,113,.14);
    --green:#34D399; --green-soft:rgba(52,211,153,.14);
    --purple:#A78BFA; --purple-soft:rgba(167,139,250,.14);
    --orange:#FB923C; --orange-soft:rgba(251,146,60,.14);
    --ink-soft:#94A3B8; --ink-faint:#64748B;
    --bg:#0B1220; --card:#151C2C; --hairline:rgba(148,163,184,.12);
    --hairline-strong:rgba(148,163,184,.22);
    --surface-subtle:#121A2B;
    --surface-muted:#1A2336;
    --row-hover:rgba(59,130,246,.08);
    --map-canvas:#0F172A;
    --chart-track:#1E293B;
    --chart-bar-lg:22px;
    --chart-bar-md:10px;
    --chart-bar-sm:6px;
    --chart-radius:8px;
    --chart-1:#3B82F6;
    --chart-2:#22D3EE;
    --chart-3:#A78BFA;
    --chart-4:#F472B6;
    --chart-5:#FB923C;
    --chart-6:#34D399;
    --chart-mute:color-mix(in srgb, var(--chart-1) 28%, var(--chart-track));
    --chart-grid:rgba(148,163,184,.1);
    --text-kicker:15px;
    --font-sans:var(--font-jakarta, "Plus Jakarta Sans"),var(--font-inter, "Inter"),-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    --shadow:0 1px 2px rgba(0,0,0,.24),0 8px 24px rgba(0,0,0,.28);
    --shadow-elevated:0 4px 12px rgba(0,0,0,.32),0 16px 40px rgba(15,23,42,.45);
    --shadow-metric:0 1px 2px rgba(0,0,0,.2),0 6px 18px rgba(0,0,0,.22);
    --shadow-metric-hover:0 4px 14px rgba(59,130,246,.18),0 12px 32px rgba(0,0,0,.35);
    --radius-sm:8px;
    --radius-md:12px;
    --radius-lg:16px;
    --radius-card:18px;
    --radius-pill:999px;
    --transition-ui:.22s ease;
    --theme-fade:background-color .28s ease,color .28s ease,border-color .28s ease,box-shadow .28s ease,fill .28s ease,stroke .28s ease;
    --motion-fast:.15s;
    --motion-ui:.22s;
    --motion-enter:.35s;
    --motion-chart:.45s;
    --motion-ease-out:cubic-bezier(0,0,.2,1);
    --motion-ease:cubic-bezier(.4,0,.2,1);
    --text-page-title:22px;
    --text-section:15px;
    --text-kpi:22px;
    --text-body:13px;
    --text-caption:11px;
    --text-overline:10px;
    --space-1:4px;
    --space-2:8px;
    --space-3:12px;
    --space-4:16px;
    --space-5:20px;
    --space-6:24px;
    --space-7:32px;
    --space-nav:52px;
    --space-header-y:12px;
    --space-tab-y:10px;
    --space-panel-top:20px;
    --space-panel-bottom:36px;
    --space-section:20px;
    --space-card-y:18px;
    --space-card-x:18px;
    --space-metric-y:16px;
    --space-metric-x:16px;
    --space-title-mb:12px;
    --space-title-pb:10px;
    --space-title-gap:4px;
    --space-view-head-mb:16px;
    --space-view-head-pb:12px;
    --space-grid:16px;
    --space-kpi-gap:14px;
    --space-table-y:10px;
    --space-table-x:14px;
    --space-filter-y:12px;
    --space-filter-gap:12px;
    --space-empty-y:28px;
    --space-empty-min:96px;
    --rail-width:84px;
    --rail-width-expanded:184px;
    --content-max:1480px;
    --rail-bg:linear-gradient(180deg, #0E1628 0%, #0B1220 100%);
    --hero-bg:linear-gradient(135deg, rgba(30,58,138,.55) 0%, rgba(15,23,42,.92) 48%, rgba(12,74,110,.45) 100%), var(--card);
    --topbar-bg:rgba(11,18,32,.78);
    --logo-well:transparent;
  }

  [data-theme="light"]{
    color-scheme:light;
    /* Modern enterprise healthcare light — same structure, light surfaces */
    --blue:#2563EB; --blue-soft:rgba(37,99,235,.12);
    --teal:#0891B2; --teal-soft:rgba(8,145,178,.12);
    --pink:#DB2777; --pink-soft:rgba(219,39,119,.1);
    --darkblue:#0F172A; --black:#1E293B;
    --yellow:#D97706; --yellow-soft:rgba(217,119,6,.12);
    --red:#DC2626; --red-soft:rgba(220,38,38,.1);
    --green:#059669; --green-soft:rgba(5,150,105,.1);
    --purple:#7C3AED; --purple-soft:rgba(124,58,237,.1);
    --orange:#EA580C; --orange-soft:rgba(234,88,12,.1);
    --ink-soft:#64748B; --ink-faint:#94A3B8;
    --bg:#F4F7FB; --card:#FFFFFF; --hairline:rgba(15,23,42,.08);
    --hairline-strong:rgba(15,23,42,.14);
    --surface-subtle:#EEF2F8;
    --surface-muted:#E7EDF6;
    --row-hover:rgba(37,99,235,.06);
    --map-canvas:#E8EEF6;
    --chart-track:#E7EDF6;
    --chart-1:#2563EB;
    --chart-2:#0891B2;
    --chart-3:#7C3AED;
    --chart-4:#DB2777;
    --chart-5:#EA580C;
    --chart-6:#059669;
    --chart-mute:color-mix(in srgb, var(--chart-1) 22%, var(--chart-track));
    --chart-grid:rgba(15,23,42,.08);
    --shadow:0 1px 2px rgba(15,23,42,.04),0 8px 24px rgba(15,23,42,.06);
    --shadow-elevated:0 4px 12px rgba(15,23,42,.06),0 16px 40px rgba(15,23,42,.08);
    --shadow-metric:0 1px 2px rgba(15,23,42,.04),0 6px 16px rgba(15,23,42,.05);
    --shadow-metric-hover:0 4px 14px rgba(37,99,235,.12),0 12px 28px rgba(15,23,42,.08);
    --rail-bg:linear-gradient(180deg, #FFFFFF 0%, #F8FAFC 100%);
    --hero-bg:linear-gradient(135deg, rgba(37,99,235,.12) 0%, rgba(255,255,255,.96) 48%, rgba(8,145,178,.1) 100%), var(--card);
    --topbar-bg:rgba(244,247,251,.86);
    --logo-well:transparent;
  }
  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);
    color:var(--black);
    font-family:var(--font-sans);
    font-size:var(--text-body);
    line-height:1.45;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
  }
  h1,h2,h3{font-family:var(--font-sans); margin:0; font-weight:600; letter-spacing:-.02em;}
  .label-caps{
    font-size:var(--text-overline);
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:600;
    color:var(--ink-faint);
  }

  .site-nav{
    background:var(--card);
    border-bottom:1px solid var(--hairline);
    /* Match content column inset used by header-top / filters / tabs */
    padding:0 clamp(16px,3vw,28px);
    position:relative;
    z-index:60;
  }
  .site-nav-inner{
    max-width:1280px;
    margin:0 auto;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:20px;
    min-height:var(--space-nav);
    width:100%;
    padding:6px 0;
  }
  .site-nav-brand{
    display:flex;
    align-items:center;
    flex-wrap:nowrap;
    gap:14px;
    min-width:0;
  }
  .site-nav-logo{
    display:flex;
    align-items:center;
    text-decoration:none;
    flex-shrink:0;
    line-height:0;
    transition:opacity var(--transition-ui);
  }
  .site-nav-logo:hover{opacity:.88;}
  .site-nav-logo img{
    height:30px;
    width:auto;
    max-width:min(148px, 42vw);
    display:block;
    object-fit:contain;
  }
  .site-nav-divider{
    width:1px;
    height:28px;
    background:var(--hairline-strong);
    flex-shrink:0;
  }
  .site-nav-partner{
    display:flex;
    align-items:center;
    gap:10px;
    flex-shrink:1;
    min-width:0;
    max-width:min(420px, 52vw);
  }
  .b-bmcfs-brand-logo{
    height:30px;
    width:auto;
    max-width:30px;
    display:block;
    object-fit:contain;
    flex-shrink:0;
  }
  .b-bmcfs-brand-text{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:1px;
    min-width:0;
    line-height:1.25;
  }
  .b-bmcfs-brand-name-en{
    font-size:12px;
    font-weight:600;
    color:var(--darkblue);
    letter-spacing:-.01em;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .b-bmcfs-brand-name-mr{
    font-size:11px;
    font-weight:500;
    color:var(--ink-soft);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .app-header{
    background:var(--card);
    border-bottom:1px solid var(--hairline);
    position:sticky;
    top:0;
    z-index:50;
    box-shadow:none;
  }
  .header-top{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    flex-wrap:nowrap;
    padding:var(--space-header-y) clamp(16px,3vw,28px);
    max-width:1280px;
    margin:0 auto;
    width:100%;
  }
  .brand{display:flex; align-items:center; gap:10px; min-width:0;}
  .brand-text{min-width:0;}
  .brand-text .label-caps{color:var(--ink-faint); margin:0; line-height:1.2;}
  .brand-text h1{
    font-size:var(--text-kicker);
    font-weight:600;
    color:var(--darkblue);
    letter-spacing:-.02em;
    line-height:1.25;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .header-right{display:flex; align-items:center; gap:12px; flex-wrap:nowrap; flex-shrink:0;}
  .header-meta{
    text-align:right;
    font-size:var(--text-caption);
    color:var(--ink-soft);
    line-height:1.35;
  }
  .demo-pill{
    display:inline-block;
    margin-top:2px;
    padding:2px 7px;
    border:1px solid var(--hairline);
    background:var(--surface-subtle);
    color:var(--ink-soft);
    border-radius:var(--radius-sm);
    font-size:10px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
  }
  .demo-pill.is-live{border-color:rgba(16,185,129,.25); background:var(--green-soft); color:var(--green);}
  .demo-pill.is-snapshot{border-color:rgba(245,158,11,.25); background:var(--yellow-soft); color:#92400E;}
  .demo-pill.is-historical{border-color:rgba(15,118,110,.25); background:var(--blue-soft); color:#0F766E;}

  /* Executive lab activity widgets */
  .lab-kpi-grid{margin-bottom:0;}
  .exec-insight-banner{
    position:relative;
    display:flex;
    align-items:flex-start;
    gap:12px;
    border:1px solid var(--hairline);
    background:var(--card);
    border-left:none;
    border-radius:var(--radius-card);
    padding:14px 16px 14px 14px;
    box-shadow:var(--shadow);
    overflow:hidden;
    opacity:0;
    transform:translateY(10px);
  }
  .exec-insight-banner.is-ready{
    opacity:1;
    transform:translateY(0);
    transition:
      opacity var(--motion-enter) var(--motion-ease-out),
      transform var(--motion-enter) var(--motion-ease-out),
      box-shadow var(--motion-ui) var(--motion-ease),
      border-color var(--motion-ui) var(--motion-ease);
  }
  .exec-insight-accent{
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    width:3px;
    background:var(--blue);
    transform-origin:top center;
    transform:scaleY(0);
  }
  .exec-insight-banner.is-ready .exec-insight-accent{
    animation:exec-accent-grow .45s var(--motion-ease-out) .05s both;
  }
  .exec-insight-icon{
    flex-shrink:0;
    width:28px;
    height:28px;
    border-radius:var(--radius-sm);
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--blue-soft);
    color:var(--blue);
    opacity:0;
  }
  .exec-insight-banner.is-ready .exec-insight-icon{
    animation:exec-icon-fade .35s var(--motion-ease-out) .18s both;
  }
  .exec-insight-icon svg{
    width:15px;
    height:15px;
    display:block;
  }
  .exec-insight-content{
    display:flex;
    flex-direction:column;
    gap:4px;
    min-width:0;
    flex:1;
  }
  .exec-insight-label{
    font-size:9px;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--ink-faint);
    line-height:1.2;
  }
  .exec-insight-body{
    margin:0;
    font-size:12px;
    font-weight:400;
    color:var(--ink-soft);
    line-height:1.4;
    max-width:88ch;
    display:-webkit-box;
    -webkit-line-clamp:3;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .exec-insight-body.is-updating{
    animation:exec-body-swap .28s var(--motion-ease-out);
  }
  .mom-chip-row{display:grid; grid-template-columns:repeat(auto-fit, minmax(140px, 1fr)); gap:var(--space-kpi-gap);}
  .mom-chip{
    background:var(--card);
    border:1px solid var(--hairline);
    border-radius:var(--radius-card);
    padding:12px 14px;
    box-shadow:var(--shadow);
    transition:border-color var(--transition-ui), box-shadow var(--transition-ui);
  }
  .mom-chip:hover{
    border-color:var(--hairline-strong);
    box-shadow:var(--shadow-elevated);
    transform:translateY(-2px);
  }
  .mom-chip-label{display:block; font-size:10px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); font-weight:600;}
  .mom-chip-value{display:block; font-size:18px; font-weight:600; color:var(--darkblue); margin:4px 0 2px; letter-spacing:-.02em; font-variant-numeric:tabular-nums;}
  .mom-chip-sub{display:block; font-size:11px; color:var(--ink-soft); line-height:1.35;}
  .mom-chip-delta{display:inline-block; margin-top:6px; font-size:11px; font-weight:600; font-variant-numeric:tabular-nums;}
  .mom-chip-delta.up{color:var(--darkblue);}
  .mom-chip-delta.down{color:var(--ink-soft);}
  .mom-chip-delta.flat{color:var(--ink-faint);}
  .mom-mini-chart{
    display:grid;
    grid-template-columns:repeat(auto-fit, minmax(56px, 1fr));
    gap:var(--space-kpi-gap);
    align-items:end;
    min-height:118px;
    margin:0 0 16px;
    padding:14px 12px 10px;
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-radius:var(--radius-sm);
  }
  .mom-mini-col{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
    min-width:0;
    height:100%;
  }
  .mom-mini-val{
    font-size:10px;
    font-weight:600;
    color:var(--ink-soft);
    font-variant-numeric:tabular-nums;
  }
  .mom-mini-bar{
    width:100%;
    max-width:36px;
    border-radius:4px 4px 2px 2px;
    background:var(--blue);
    min-height:8px;
    transition:height var(--motion-chart) var(--motion-ease-out);
  }
  .mom-mini-lbl{
    font-size:10px;
    font-weight:600;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--ink-faint);
    text-align:center;
    line-height:1.2;
  }
  .facilities-attention-wrap .section-title{margin-bottom:var(--space-title-mb);}
  .facilities-attention-strip{display:grid; grid-template-columns:repeat(auto-fill, minmax(200px, 1fr)); gap:var(--space-kpi-gap);}
  .facility-attn-card{
    background:var(--card);
    border:1px solid var(--hairline);
    border-left:3px solid var(--red);
    border-radius:var(--radius-card);
    padding:var(--space-card-y) var(--space-card-x);
    box-shadow:var(--shadow);
    min-width:0;
    transition:border-color var(--transition-ui), box-shadow var(--transition-ui);
  }
  .facility-attn-card:hover{
    border-color:var(--hairline-strong);
    border-left-color:var(--red);
    box-shadow:var(--shadow-elevated);
  }
  .facility-attn-name{
    font-size:13px;
    font-weight:600;
    color:var(--darkblue);
    line-height:1.35;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  .facility-attn-meta{font-size:11px; color:var(--ink-faint); margin:5px 0 10px; line-height:1.4;}
  .facility-attn-rate{font-size:22px; font-weight:600; color:var(--darkblue); letter-spacing:-.02em; font-variant-numeric:tabular-nums;}
  .facility-attn-flag{
    font-size:11px;
    color:var(--ink-soft);
    margin-top:6px;
    line-height:1.4;
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  /* Lab activity section */
  .ph-area-wrap--months .ph-area-cols{align-items:flex-end; min-height:140px;}
  .ph-area-sub{display:block; font-size:10px; color:var(--ink-faint); margin-top:4px; text-align:center;}
  .dept-card-grid{display:grid; grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:var(--space-kpi-gap);}
  .dept-card{
    background:var(--card); border:1px solid var(--hairline); border-radius:var(--radius-card);
    padding:var(--space-card-y) var(--space-card-x); box-shadow:var(--shadow); min-width:0;
  }
  .dept-card--high{border-top:3px solid var(--red);}
  .dept-card--mid{border-top:3px solid var(--yellow);}
  .dept-card--low{border-top:3px solid var(--green);}
  .dept-card-name{font-size:13px; font-weight:700; color:var(--darkblue); margin-bottom:10px;}
  .dept-card-stat{display:inline-flex; flex-direction:column; margin-right:16px; margin-bottom:6px;}
  .dept-card-n{font-size:18px; font-weight:700; color:var(--darkblue);}
  .dept-card-lbl{font-size:10px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.06em;}
  .dept-card-rate{font-size:13px; font-weight:700; color:var(--ink-soft); margin-top:8px;}

  .tabs-scroll{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    border-bottom:1px solid var(--hairline);
    background:var(--card);
    scrollbar-width:none;
  }
  .tabs-scroll::-webkit-scrollbar{display:none;}
  .tabs{
    display:flex;
    gap:2px;
    flex-wrap:nowrap;
    padding:0 clamp(16px,3vw,28px);
    max-width:1280px;
    margin:0 auto;
    min-width:min-content;
  }
  .tab-btn{
    background:none;
    border:none;
    color:var(--ink-soft);
    cursor:pointer;
    padding:var(--space-tab-y) 16px;
    font-family:inherit;
    font-size:13px;
    font-weight:500;
    border-bottom:2px solid transparent;
    margin-bottom:-1px;
    white-space:nowrap;
    transition:color var(--transition-ui),border-color var(--transition-ui),background var(--transition-ui);
  }
  .tab-btn:hover{color:var(--darkblue); background:var(--surface-subtle);}
  .tab-btn:focus-visible{outline:none; box-shadow:inset 0 0 0 2px rgba(15,118,110,.2); border-radius:var(--radius-sm) var(--radius-sm) 0 0;}
  .tab-btn.is-active{color:var(--blue); border-bottom-color:var(--blue); font-weight:600;}

  .view{
    display:none;
    opacity:0;
  }
  .view.is-active{
    display:block;
    opacity:1;
    animation:view-fade-in var(--motion-enter) var(--motion-ease-out) both;
  }
  .view.is-exiting{
    display:block;
    animation:view-fade-out var(--motion-fast) var(--motion-ease) both;
    pointer-events:none;
  }
  .view[role="tabpanel"]{padding:var(--space-panel-top) clamp(16px,3vw,28px) var(--space-panel-bottom); max-width:1280px; margin:0 auto;}
  .view-head{
    margin-bottom:var(--space-view-head-mb);
    padding-bottom:var(--space-view-head-pb);
    border-bottom:1px solid var(--hairline);
  }
  .view-head .label-caps{color:var(--blue); margin:0 0 4px; line-height:1.25;}
  .view-head h2{font-size:var(--text-page-title); font-weight:600; color:var(--darkblue); line-height:1.2;}
  .view-head p{margin:6px 0 0; color:var(--ink-soft); font-size:var(--text-body); max-width:780px; line-height:1.5;
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;}

  .section{margin-bottom:var(--space-section);}
  .section:last-child{margin-bottom:0;}
  .section-title{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    gap:var(--space-title-gap);
    margin-bottom:var(--space-title-mb);
    padding-bottom:var(--space-title-pb);
    border-bottom:1px solid var(--hairline);
  }
  .section-title h3{font-size:var(--text-section); font-weight:600; color:var(--darkblue); line-height:1.3;}
  .section-title .note{font-size:var(--text-caption); color:var(--ink-faint); font-style:normal; font-weight:400; line-height:1.45; max-width:720px;}
  .section-title__main{
    display:inline-flex;
    align-items:center;
    gap:5px;
    min-width:0;
    max-width:100%;
  }
  .section-title__main h3{
    margin:0;
  }

  /* —— Enterprise help / info tooltip system —— */
  .ux-info{
    display:inline-flex;
    align-items:center;
    flex-shrink:0;
    position:relative;
    vertical-align:middle;
  }
  .ux-info__btn{
    /* Hit target ~20px; visible ring/glyph ~12px */
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    width:20px;
    height:20px;
    margin:-3px -2px -3px -3px;
    padding:0;
    border:0;
    border-radius:50%;
    background:transparent;
    color:color-mix(in srgb, var(--ink-faint) 88%, transparent);
    font-family:inherit;
    font-size:8px;
    font-weight:600;
    font-style:normal;
    line-height:1;
    letter-spacing:0;
    text-transform:none;
    cursor:pointer;
    user-select:none;
    -webkit-appearance:none;
    appearance:none;
    position:relative;
    transition:
      color 120ms ease,
      box-shadow 120ms ease;
  }
  .ux-info__btn::before{
    content:"";
    position:absolute;
    left:50%;
    top:50%;
    width:12px;
    height:12px;
    margin:-6px 0 0 -6px;
    border-radius:50%;
    border:1px solid color-mix(in srgb, var(--ink-faint) 40%, transparent);
    background:transparent;
    pointer-events:none;
    transition:
      border-color 120ms ease,
      background-color 120ms ease;
  }
  .ux-info__btn:hover,
  .ux-info__btn:focus,
  .ux-info.is-open .ux-info__btn{
    color:var(--darkblue);
    outline:none;
  }
  .ux-info__btn:hover::before,
  .ux-info__btn:focus::before,
  .ux-info.is-open .ux-info__btn::before{
    border-color:color-mix(in srgb, var(--darkblue) 40%, transparent);
    background:color-mix(in srgb, var(--blue-soft) 55%, transparent);
  }
  .ux-info__btn:focus-visible{
    box-shadow:0 0 0 2px color-mix(in srgb, var(--blue) 30%, transparent);
  }
  /* Source bubble stays in DOM for a11y / screen readers; visible tip uses fixed portal */
  .ux-info__bubble{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
    pointer-events:none;
  }
  #ux-info-portal{
    position:fixed;
    z-index:400;
    left:0;
    top:0;
    max-width:min(320px, calc(100vw - 24px));
    padding:10px 12px;
    border-radius:8px;
    border:1px solid var(--hairline-strong, #D7DCE6);
    background:var(--card);
    color:var(--darkblue);
    font-size:12px;
    font-weight:400;
    line-height:1.5;
    letter-spacing:0;
    text-align:left;
    box-shadow:0 8px 24px rgba(31,41,55,.14), 0 1px 2px rgba(31,41,55,.06);
    pointer-events:none;
    opacity:0;
    visibility:hidden;
    transform:translateY(2px);
    transition:opacity 80ms ease, transform 80ms ease, visibility 80ms ease;
  }
  #ux-info-portal.is-visible{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }
  @media (prefers-reduced-motion: reduce){
    #ux-info-portal{transition:none;}
  }
  /* Backward-compatible alias for any leftover ia-info markup */
  .ia-info{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    width:12px;
    height:12px;
    margin-left:4px;
    border-radius:50%;
    border:1px solid color-mix(in srgb, var(--ink-faint) 40%, transparent);
    color:color-mix(in srgb, var(--ink-faint) 88%, transparent);
    font-size:8px;
    font-weight:600;
    line-height:1;
    vertical-align:middle;
    cursor:pointer;
    user-select:none;
  }
  .ia-legend-note,
  .ia-side-note{
    margin:6px 0 0;
    font-size:11px;
    line-height:1.4;
    color:var(--ink-faint);
    max-width:520px;
  }
  .sc-hotspots-panel .ia-side-note{margin:2px 0 8px;}
  .city-explore-field--lookback .city-explore-label .ux-info,
  .city-explore-field--lookback .city-explore-label .ia-info{
    margin-left:4px;
    vertical-align:middle;
  }
  th .ux-info{margin-left:3px; vertical-align:middle;}
  .metric-card__label .ux-info{margin-left:4px; vertical-align:middle;}
  .ph-briefing-label .ux-info{margin-left:4px; vertical-align:middle;}
  /* —— Unified KPI / metric card design system —— */
  .kpi-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-kpi-gap);}
  .sc-kpi-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-kpi-gap);}
  .stat-strip{display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-kpi-gap); margin-top:0;}

  .metric-card{
    background:var(--card);
    border:1px solid var(--hairline);
    border-radius:var(--radius-card);
    padding:var(--space-metric-y) var(--space-metric-x);
    box-shadow:var(--shadow-metric);
    min-width:0;
    container-type:inline-size;
    container-name:metric-card;
    opacity:0;
    transform:translateY(8px);
    transition:
      border-color var(--motion-ui) var(--motion-ease),
      box-shadow var(--motion-ui) var(--motion-ease),
      transform var(--motion-ui) var(--motion-ease-out);
  }
  .metric-card.is-ready{
    opacity:1;
    transform:translateY(0);
    animation:fade-in-up var(--motion-enter) var(--motion-ease-out) both;
  }
  .metric-card:hover{
    border-color:var(--hairline-strong);
    box-shadow:var(--shadow-metric-hover);
  }
  /* KPIs are informational — no lift (avoids false click affordance) */
  .metric-card.is-ready:hover{
    transform:none;
  }
  .metric-card__body{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    min-width:0;
  }
  .metric-card__leading{
    display:flex;
    align-items:flex-start;
    gap:10px;
    min-width:0;
    flex:1;
  }
  .metric-card__icon{
    flex-shrink:0;
    width:30px;
    height:30px;
    border-radius:var(--radius-sm);
    display:flex;
    align-items:center;
    justify-content:center;
    background:var(--blue-soft);
    color:var(--blue);
  }
  .metric-card__icon svg{
    width:15px;
    height:15px;
    display:block;
  }
  .metric-card__meta{min-width:0; padding-top:1px;}
  .metric-card__label{
    font-size:12px;
    font-weight:600;
    color:var(--darkblue);
    line-height:1.35;
    letter-spacing:0;
    overflow-wrap:break-word;
    word-break:break-word;
  }
  .metric-card__label .ux-info{
    position:relative;
    top:-0.05em;
  }
  .metric-card__sub{
    font-size:11px;
    font-weight:400;
    color:var(--ink-faint);
    line-height:1.35;
    margin-top:3px;
    overflow-wrap:break-word;
    word-break:break-word;
  }
  .metric-card__value{
    flex-shrink:0;
    font-size:var(--text-kpi);
    font-weight:700;
    color:var(--darkblue);
    line-height:1.1;
    letter-spacing:-.03em;
    font-variant-numeric:tabular-nums;
    text-align:right;
    align-self:flex-start;
    padding-top:1px;
    white-space:nowrap;
  }
  .metric-card__value--sm{
    font-size:18px;
    line-height:1.2;
    max-width:128px;
    white-space:normal;
    word-break:break-word;
  }
  .metric-card__value--md{font-size:22px;}

  /* Overflow layout: only when JS detects clash, or card is too narrow */
  .metric-card--stack .metric-card__body{
    display:grid;
    grid-template-columns:auto minmax(0, 1fr);
    grid-template-areas:
      "icon value"
      "meta meta";
    gap:8px 10px;
    align-items:start;
  }
  .metric-card--stack .metric-card__leading{display:contents;}
  .metric-card--stack .metric-card__icon{grid-area:icon;}
  .metric-card--stack .metric-card__meta{grid-area:meta; min-width:0;}
  .metric-card--stack .metric-card__value{
    grid-area:value;
    justify-self:end;
    align-self:center;
    white-space:nowrap;
    max-width:100%;
  }

  @container metric-card (max-width: 168px){
    .metric-card__body{
      display:grid;
      grid-template-columns:auto minmax(0, 1fr);
      grid-template-areas:
        "icon value"
        "meta meta";
      gap:8px 10px;
      align-items:start;
    }
    .metric-card__leading{display:contents;}
    .metric-card__icon{grid-area:icon;}
    .metric-card__meta{grid-area:meta; min-width:0;}
    .metric-card__value{
      grid-area:value;
      justify-self:end;
      align-self:center;
      white-space:nowrap;
      max-width:100%;
    }
  }

  .metric-card--blue .metric-card__icon{background:var(--blue-soft); color:var(--blue);}
  .metric-card--red .metric-card__icon{background:var(--red-soft); color:var(--red);}
  .metric-card--yellow .metric-card__icon{background:var(--yellow-soft); color:#B45309;}
  .metric-card--green .metric-card__icon{background:var(--green-soft); color:var(--green);}
  .metric-card--purple .metric-card__icon{background:var(--purple-soft); color:var(--purple);}
  .metric-card--orange .metric-card__icon{background:var(--orange-soft); color:var(--orange);}
  .metric-card--pink .metric-card__icon{background:var(--pink-soft); color:var(--pink);}

  .map-side .metric-card{padding:10px 12px; container-type:normal;}
  .map-side .metric-card__body{flex-direction:column; gap:8px; display:flex;}
  .map-side .metric-card__leading{display:flex;}
  .map-side .metric-card__value{
    align-self:flex-start;
    text-align:left;
    font-size:20px;
    padding-top:0;
    justify-self:auto;
  }

  .alert-banner{
    border:1px solid var(--hairline);
    background:var(--card);
    border-left:3px solid var(--yellow);
    border-radius:var(--radius-card);
    padding:12px 14px;
    display:flex;
    gap:12px;
    align-items:flex-start;
    box-shadow:var(--shadow);
  }
  .alert-banner .ic{
    flex-shrink:0;
    width:28px;
    height:28px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
    font-weight:700;
    line-height:1;
    color:#92400E;
    background:var(--yellow-soft);
    border:1px solid rgba(245,158,11,.28);
    border-radius:var(--radius-sm);
  }
  .alert-banner .ic svg{width:16px; height:16px; display:block;}
  .alert-banner-copy{min-width:0; display:flex; flex-direction:column; gap:5px;}
  .alert-banner-kicker{
    font-size:10px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:#92400E;
  }
  .alert-banner strong{display:block; font-size:14px; font-weight:600; margin-bottom:0; color:var(--darkblue); line-height:1.4;}
  .alert-banner span{font-size:13px; color:var(--ink-soft); line-height:1.55;}
  .alert-banner--clear{
    border-left-color:var(--green);
  }
  .alert-banner--clear .ic{
    color:var(--green);
    background:var(--green-soft);
    border-color:rgba(16,185,129,.28);
  }
  .alert-banner--clear .alert-banner-kicker{color:var(--green);}
  .alert-banner--muted{
    border-left-color:var(--ink-faint);
  }
  .alert-banner--muted .ic{
    color:var(--ink-soft);
    background:var(--surface-muted);
    border-color:var(--hairline);
  }
  .alert-banner--muted .alert-banner-kicker{color:var(--ink-faint);}

  .two-col{display:grid; grid-template-columns:1.1fr .9fr; gap:var(--space-grid); align-items:stretch;}
  .ledger-list{
    background:transparent;
    border:none;
    border-radius:0;
    box-shadow:none;
    overflow:hidden;
    counter-reset:exec-concern;
  }
  .ledger-row{
    display:grid;
    grid-template-columns:36px 1fr auto;
    align-items:center;
    gap:12px;
    padding:14px 16px;
    border-bottom:1px solid var(--hairline);
    font-size:13px;
    transition:background var(--transition-ui);
  }
  .ledger-row::before{
    counter-increment:exec-concern;
    content:counter(exec-concern, decimal-leading-zero);
    font-size:10px;
    font-weight:600;
    color:var(--ink-faint);
    text-align:center;
    width:26px;
    height:26px;
    line-height:26px;
    border-radius:var(--radius-sm);
    background:var(--surface-muted);
    border:1px solid var(--hairline);
  }
  .ledger-row:last-child{border-bottom:none;}
  .ledger-row:hover{background:var(--surface-subtle);}
  .ledger-row .name{font-weight:600; color:var(--darkblue); line-height:1.4; font-size:13px;}
  .trend{
    font-size:12.5px;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:4px 10px;
    border-radius:6px;
    white-space:nowrap;
  }
  .trend.up{color:var(--red); background:var(--red-soft);}
  .trend.down{color:var(--blue); background:var(--blue-soft);}
  .trend.flat{color:var(--ink-soft); background:var(--surface-muted);}
  .watch-badge{font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; font-weight:700; background:var(--red); color:#fff; padding:3px 7px; border-radius:4px; margin-left:4px;}

  .ward-grid{display:grid; grid-template-columns:repeat(6, 1fr); gap:var(--space-kpi-gap);}
  .ward-tile{
    aspect-ratio:1/1;
    border-radius:6px;
    position:relative;
    cursor:pointer;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(31,41,55,.08);
    transition:transform .12s ease, box-shadow .12s ease;
    font:inherit;
    color:inherit;
    padding:8px 6px;
    margin:0;
    appearance:none;
    -webkit-appearance:none;
    text-align:center;
    width:100%;
  }
  .ward-tile:hover{transform:scale(1.08); z-index:5; box-shadow:0 8px 16px rgba(31,41,55,.22);}
  .ward-tile:focus-visible{outline:2px solid var(--darkblue); outline-offset:2px; z-index:6;}
  .ward-tile .code{font-size:15px; font-weight:700;}
  .ward-tile .score{font-size:9.5px; opacity:.9; font-weight:700;}
  .ward-tile .ward-dom{
    font-size:9px;
    font-weight:500;
    line-height:1.2;
    margin-top:4px;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    opacity:.95;
    padding:0 2px;
  }
  .risk-low{background:var(--green); color:#fff;}
  .risk-moderate{background:var(--yellow); color:var(--darkblue);}
  .risk-elevated{background:var(--orange); color:#fff;}
  .risk-high{background:var(--red); color:#fff;}
  .legend{display:flex; gap:16px; margin-top:14px; flex-wrap:wrap; font-size:11.5px; color:var(--ink-soft);}
  .legend span{display:inline-flex; align-items:center; gap:6px;}
  .legend i,
  .legend-swatch{width:10px; height:10px; border-radius:2px; display:inline-block;}
  .legend-swatch.risk-low{background:var(--green);}
  .legend-swatch.risk-moderate{background:var(--yellow);}
  .legend-swatch.risk-elevated{background:var(--orange);}
  .legend-swatch.risk-high{background:var(--red);}
  #ward-tooltip{
    position:fixed;
    pointer-events:none;
    background:var(--card);
    color:var(--black);
    border:1px solid var(--hairline-strong);
    border-radius:var(--radius-md);
    padding:12px 14px;
    font-size:var(--text-caption);
    box-shadow:var(--shadow-elevated);
    z-index:200;
    max-width:240px;
    line-height:1.55;
    opacity:0;
    visibility:hidden;
    transform:translateY(6px);
    transition:
      opacity var(--motion-fast) var(--motion-ease-out),
      transform var(--motion-fast) var(--motion-ease-out),
      visibility 0s linear var(--motion-fast);
  }
  #ward-tooltip.is-visible{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
    transition:
      opacity var(--motion-ui) var(--motion-ease-out),
      transform var(--motion-ui) var(--motion-ease-out),
      visibility 0s linear 0s;
  }
  #ward-tooltip strong{display:block; font-size:13px; font-weight:600; margin-bottom:4px; color:var(--darkblue);}

  .card{
    background:var(--card);
    border:1px solid var(--hairline);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow);
    padding:var(--space-card-y) var(--space-card-x);
    opacity:0;
    transform:translateY(10px);
    transition:
      border-color var(--motion-ui) var(--motion-ease),
      box-shadow var(--motion-ui) var(--motion-ease),
      opacity var(--motion-enter) var(--motion-ease-out),
      transform var(--motion-enter) var(--motion-ease-out);
  }
  .card.is-inview{
    opacity:1;
    transform:translateY(0);
  }
  .card:hover{border-color:var(--hairline-strong); box-shadow:var(--shadow);}
  /* Opt-in lift only for intentionally interactive cards */
  .card--interactive:hover,
  .card.is-interactive:hover{
    border-color:var(--hairline-strong);
    box-shadow:var(--shadow-elevated);
  }
  .grid-2{display:grid; grid-template-columns:1fr 1fr; gap:var(--space-grid); align-items:stretch;}
  .callout-row{display:flex; gap:12px; margin-top:12px; flex-wrap:wrap;}
  .callout-chip{background:var(--blue-soft); border:1px solid #99E6DE; border-left:3px solid var(--blue); border-radius:5px; padding:8px 12px; font-size:12.5px; flex:1; min-width:200px;}
  .callout-chip b{display:block; font-size:16px; margin-bottom:2px; color:var(--darkblue);}

  table.ledger-table{width:100%; border-collapse:collapse; font-size:12.5px;}
  table.ledger-table th{
    text-align:left;
    font-size:10px;
    letter-spacing:.08em;
    text-transform:uppercase;
    font-weight:600;
    color:var(--ink-faint);
    padding:var(--space-table-y) var(--space-table-x);
    border-bottom:1.5px solid var(--hairline);
    background:var(--surface-subtle);
    position:sticky;
    top:0;
    z-index:1;
  }
  table.ledger-table td{
    padding:var(--space-table-y) var(--space-table-x);
    border-bottom:1px solid var(--hairline);
    vertical-align:middle;
    color:var(--black);
    line-height:1.4;
  }
  table.ledger-table tbody tr{
    transition:background var(--motion-ui) var(--motion-ease);
    animation:row-fade-in .28s var(--motion-ease-out) both;
  }
  table.ledger-table tbody tr:nth-child(1){animation-delay:0ms;}
  table.ledger-table tbody tr:nth-child(2){animation-delay:28ms;}
  table.ledger-table tbody tr:nth-child(3){animation-delay:56ms;}
  table.ledger-table tbody tr:nth-child(4){animation-delay:84ms;}
  table.ledger-table tbody tr:nth-child(5){animation-delay:112ms;}
  table.ledger-table tbody tr:nth-child(6){animation-delay:140ms;}
  table.ledger-table tbody tr:nth-child(7){animation-delay:168ms;}
  table.ledger-table tbody tr:nth-child(8){animation-delay:196ms;}
  table.ledger-table tbody tr:nth-child(n+9){animation-delay:220ms;}
  table.ledger-table tbody tr:nth-child(even){background:var(--surface-subtle);}
  table.ledger-table tbody tr:hover{background:var(--row-hover);}
  table.ledger-table tbody tr.is-active,
  table.ledger-table tbody tr.is-selected{
    background:var(--blue-soft);
    box-shadow:inset 3px 0 0 var(--blue);
  }
  table.ledger-table tr:last-child td{border-bottom:none;}
  .stamp{font-size:10px; letter-spacing:.5px; text-transform:uppercase; font-weight:700; padding:3px 8px; border-radius:3px; display:inline-block;}
  .stamp.notified{background:var(--yellow-soft); color:#8A5A06;}
  .stamp.pending{background:var(--surface-muted); color:var(--ink-soft);}
  .stamp.resolved{background:var(--blue-soft); color:var(--blue);}

  .funnel{display:flex; flex-direction:column; gap:12px;}
  .funnel-step{display:grid; grid-template-columns:200px 1fr 90px; align-items:center; gap:14px; font-size:13px;}
  .funnel-bar-track{
    background:var(--chart-track);
    border-radius:var(--chart-radius);
    height:var(--chart-bar-lg);
    position:relative;
    overflow:hidden;
  }
  .funnel-bar-fill{
    height:100%;
    background:linear-gradient(90deg, color-mix(in srgb, var(--blue) 72%, #fff), var(--blue));
    border-radius:var(--chart-radius) 0 0 var(--chart-radius);
    display:flex;
    align-items:center;
    padding-left:10px;
    color:#fff;
    font-size:11px;
    font-weight:700;
    letter-spacing:.01em;
  }
  .funnel-step:nth-child(2) .funnel-bar-fill{
    background:linear-gradient(90deg, color-mix(in srgb, var(--yellow) 75%, #fff), var(--yellow));
    color:var(--darkblue);
  }
  .funnel-step:nth-child(3) .funnel-bar-fill{
    background:linear-gradient(90deg, color-mix(in srgb, var(--red) 80%, #fff), var(--red));
  }
  .funnel-pct{font-size:12px; font-weight:700; text-align:right; color:var(--ink-soft); font-variant-numeric:tabular-nums;}

  .css-chart-h{display:flex; flex-direction:column; gap:12px; padding:10px 0 6px;}
  .css-bar-row{display:grid; grid-template-columns:148px 1fr; align-items:center; gap:12px; font-size:12.5px;}
  .css-bar-row2{display:grid; grid-template-columns:72px 1fr 1fr; align-items:center; gap:10px; font-size:12px;}
  .css-bar-label{color:var(--ink-soft); font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  .css-bar-track{
    background:var(--chart-track);
    border-radius:var(--chart-radius);
    height:var(--chart-bar-lg);
    position:relative;
    display:flex;
    align-items:center;
    overflow:hidden;
  }
  .css-bar-fill{
    height:100%;
    border-radius:var(--chart-radius);
    min-width:4px;
    background:linear-gradient(90deg, color-mix(in srgb, var(--bar-color, var(--chart-1)) 68%, #fff), var(--bar-color, var(--chart-1)));
    transition:width var(--motion-chart) var(--motion-ease-out), filter var(--motion-ui) var(--motion-ease);
  }
  .css-bar-fill.is-muted{
    background:color-mix(in srgb, var(--bar-color, var(--chart-1)) 34%, var(--chart-track));
  }
  .css-bar-fill.is-peak{
    background:linear-gradient(90deg, color-mix(in srgb, var(--bar-color, var(--chart-1)) 78%, #fff), var(--bar-color, var(--chart-1)));
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--bar-color, var(--chart-1)) 28%, transparent);
  }
  .css-bar-row:hover .css-bar-fill{filter:brightness(1.04);}
  .css-bar-val{
    position:absolute;
    right:8px;
    font-size:11px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    letter-spacing:-.01em;
  }

  .css-chart-v{padding:10px 0 4px;}
  .css-vert-group{
    display:flex;
    gap:8px;
    align-items:flex-end;
    height:132px;
    padding:8px 4px 22px;
    border-bottom:1px dashed var(--chart-grid);
    background:
      repeating-linear-gradient(
        to top,
        transparent 0,
        transparent 25px,
        var(--chart-grid) 25px,
        var(--chart-grid) 26px
      );
    background-origin:content-box;
  }
  .css-vert-col{display:flex; flex-direction:column; align-items:center; flex:1; min-width:0; height:100%; justify-content:flex-end; gap:4px;}
  .css-vert-bar{
    width:70%;
    max-width:18px;
    border-radius:var(--chart-radius) var(--chart-radius) 2px 2px;
    min-height:3px;
    background:var(--chart-mute);
    transition:height var(--motion-chart) var(--motion-ease-out), background var(--motion-ui) var(--motion-ease), filter var(--motion-ui) var(--motion-ease);
  }
  .css-vert-bar.is-muted{
    background:color-mix(in srgb, var(--bar-color, var(--chart-1)) 28%, var(--chart-track));
  }
  .css-vert-bar.is-peak{
    background:linear-gradient(180deg, var(--bar-color, var(--chart-1)) 0%, color-mix(in srgb, var(--bar-color, var(--chart-1)) 72%, #fff) 100%);
  }
  .css-vert-col:hover .css-vert-bar{filter:brightness(1.06);}
  .css-vert-val{font-size:10px; font-weight:700; color:var(--darkblue); margin:0; font-variant-numeric:tabular-nums;}
  .css-vert-lbl{font-size:10px; color:var(--ink-faint); text-align:center; font-weight:500; letter-spacing:.02em;}

  .css-legend{
    display:flex;
    flex-wrap:wrap;
    gap:14px 18px;
    margin-top:12px;
    font-size:10px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .css-legend span{display:inline-flex; align-items:center; gap:6px;}
  .css-legend i{width:8px; height:8px; border-radius:2px; display:inline-block; flex-shrink:0;}

  .css-donut-wrap{display:flex; gap:28px; align-items:center; padding:10px 0; flex-wrap:wrap;}
  .css-donut{position:relative; width:156px; height:156px; flex-shrink:0;}
  .donut-svg{width:156px; height:156px; transform:rotate(-90deg);}
  .donut-center{position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); text-align:center;}
  .donut-big{display:block; font-size:22px; font-weight:700; color:var(--darkblue); letter-spacing:-.02em; font-variant-numeric:tabular-nums;}
  .donut-sub{display:block; font-size:10px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); margin-top:2px;}
  .donut-legend{flex:1; display:flex; flex-direction:column; gap:10px; min-width:160px;}
  .donut-leg-row{display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink-soft);}
  .donut-leg-row b{margin-left:auto; font-size:13px; color:var(--darkblue); font-variant-numeric:tabular-nums;}
  .donut-swatch{width:8px; height:8px; border-radius:2px; flex-shrink:0;}

  .css-sym-table{width:100%; border-collapse:collapse; font-size:12.5px; margin-bottom:12px;}
  .css-sym-table th{text-align:left; padding:6px 8px; border-bottom:1.5px solid var(--hairline); font-size:11px; letter-spacing:.5px; text-transform:uppercase; color:var(--ink-faint);}
  .css-sym-table td{padding:7px 8px; border-bottom:1px solid var(--hairline); color:var(--black);}
  .css-sym-table tr:last-child td{border-bottom:none;}
  .sym-dot{display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:6px; vertical-align:middle;}
  .css-sym-bars{display:flex; flex-direction:column; gap:6px; margin-top:4px;}
  .css-sym-bar-label{font-size:11px; color:var(--ink-soft); margin-bottom:2px;}
  .css-sym-bar-track{display:flex; gap:2px; height:10px;}
  .css-sym-bar-fill{height:100%; border-radius:2px;}

  /* Symptom-checker specifics */

  .vol-chart{
    display:flex;
    align-items:flex-end;
    gap:5px;
    height:150px;
    padding:10px 6px 6px;
    overflow-x:auto;
    border-top:1px dashed var(--chart-grid);
    margin-top:6px;
    background:
      repeating-linear-gradient(
        to top,
        transparent 0,
        transparent 28px,
        var(--chart-grid) 28px,
        var(--chart-grid) 29px
      );
  }
  .vol-col{display:flex; flex-direction:column-reverse; align-items:center; flex:1 0 14px; min-width:10px; height:100%; justify-content:flex-start;}
  .vol-stack{width:100%; display:flex; flex-direction:column-reverse; height:calc(100% - 20px); justify-content:flex-start; gap:1px;}
  .vol-seg{width:100%; min-height:0; border-radius:4px 4px 1px 1px; transition:opacity var(--transition-ui), filter var(--transition-ui);}
  .vol-seg.completed{background:linear-gradient(180deg, var(--chart-1), color-mix(in srgb, var(--chart-1) 70%, #fff));}
  .vol-seg.abandoned{background:linear-gradient(180deg, var(--red), color-mix(in srgb, var(--red) 75%, #fff));}
  .vol-seg.active{background:linear-gradient(180deg, var(--yellow), color-mix(in srgb, var(--yellow) 75%, #fff));}
  .vol-col:hover .vol-seg{filter:brightness(1.05);}
  .vol-lbl{font-size:9.5px; color:var(--ink-faint); margin-top:6px; white-space:nowrap; transform:rotate(-45deg); transform-origin:center; height:14px; font-variant-numeric:tabular-nums;}

  .grouped-bars{display:flex; flex-direction:column; gap:14px; padding:8px 0;}
  .grouped-row{font-size:12.5px;}
  .grouped-row .glabel{color:var(--darkblue); font-weight:700; margin-bottom:6px;}
  .gbar-track{display:flex; align-items:center; gap:8px; margin-bottom:5px;}
  .gbar-track .gname{width:80px; color:var(--ink-soft); font-size:11px; font-weight:500;}
  .gbar{
    height:var(--chart-bar-md);
    border-radius:var(--chart-radius);
    min-width:2px;
    display:flex;
    align-items:center;
    background:linear-gradient(90deg, color-mix(in srgb, var(--bar-color, var(--chart-1)) 70%, #fff), var(--bar-color, var(--chart-1)));
  }
  .gbar-val{font-size:10.5px; font-weight:700; color:var(--ink-soft); margin-left:6px; font-variant-numeric:tabular-nums;}

  /* Outbreak watch banner */
  .sc-watch{
    display:flex;
    align-items:flex-start;
    gap:16px;
    border-radius:var(--radius-card);
    padding:16px 20px;
    border:1px solid rgba(245,158,11,.25);
    border-left:3px solid var(--yellow);
    background:var(--yellow-soft);
    box-shadow:var(--shadow);
  }
  .sc-watch.up{
    border-color:rgba(239,68,68,.2);
    border-left-color:var(--red);
    background:var(--red-soft);
  }
  .sc-watch.calm{
    border-color:rgba(16,185,129,.2);
    border-left-color:var(--green);
    background:var(--green-soft);
  }
  .sc-watch.muted{
    border-color:var(--hairline-strong);
    border-left-color:var(--ink-faint);
    background:var(--surface-subtle);
  }
  .sc-watch .ico{
    flex-shrink:0;
    width:30px;
    height:30px;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
    line-height:1;
    background:var(--card);
    border-radius:var(--radius-sm);
    box-shadow:none;
  }
  .sc-watch .ico{border:1px solid #F0D4A8; color:#B45309; background:var(--yellow-soft);}
  .sc-watch.up .ico{border-color:#F4C4C4; color:var(--red); background:var(--red-soft);}
  .sc-watch.calm .ico{border-color:#B8E6D0; color:var(--green); background:var(--green-soft);}
  .sc-watch.muted .ico{border-color:var(--hairline); color:var(--ink-faint); background:var(--surface-subtle);}
  .sc-watch .ico svg{width:15px; height:15px; display:block;}
  .sc-watch .txt b{color:var(--darkblue); font-size:14px; line-height:1.4;}
  .sc-watch .txt{font-size:13px; color:var(--ink-soft); line-height:1.55; padding-top:2px;}
  .sc-watch .sc-watch-action{
    display:inline;
    margin:0;
    padding:0;
    border:0;
    background:none;
    color:var(--darkblue);
    font:inherit;
    font-weight:700;
    text-decoration:underline;
    text-underline-offset:2px;
    cursor:pointer;
  }
  .sc-watch .sc-watch-action:hover{color:var(--blue);}
  .sc-watch .sc-watch-action:focus-visible{
    outline:none;
    box-shadow:0 0 0 3px rgba(15,118,110,.18);
    border-radius:4px;
  }

  /* Symptom cluster trend table */
  .trend-table{width:100%; border-collapse:collapse; font-size:13px;}
  .trend-table th{
    text-align:left;
    color:var(--ink-faint);
    font-weight:600;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
    padding:var(--space-table-y) var(--space-table-x);
    border-bottom:1.5px solid var(--hairline);
    background:var(--surface-subtle);
  }
  .trend-table td{padding:var(--space-table-y) var(--space-table-x); border-bottom:1px solid var(--hairline); vertical-align:middle;}
  .trend-table tbody tr{transition:background var(--transition-ui);}
  .trend-table tbody tr:hover{background:var(--row-hover);}
  .trend-table tr:last-child td{border-bottom:none;}
  .trend-table td.sym{font-weight:700; color:var(--darkblue);}
  .spark{display:inline-flex; align-items:flex-end; gap:2px; height:34px; padding:2px 0;}
  .spark i{
    width:7px;
    min-height:2px;
    display:block;
    border-radius:3px 3px 1px 1px;
    background:color-mix(in srgb, var(--bar-color, var(--chart-1)) 28%, var(--chart-track));
    transition:background var(--motion-ui) var(--motion-ease), filter var(--motion-ui) var(--motion-ease);
  }
  .spark i.is-emphasis{
    background:linear-gradient(180deg, var(--bar-color, var(--chart-1)), color-mix(in srgb, var(--bar-color, var(--chart-1)) 75%, #fff));
  }
  .spark:hover i{filter:brightness(1.05);}
  .trend-delta{
    font-weight:700;
    font-size:12px;
    display:inline-flex;
    align-items:center;
    gap:4px;
    padding:4px 10px;
    border-radius:var(--radius-sm);
    white-space:nowrap;
  }
  .trend-delta.up{color:var(--red); background:var(--red-soft);}
  .trend-delta.down{color:var(--green); background:var(--green-soft);}
  .trend-delta.flat{color:var(--ink-soft); background:var(--surface-subtle);}

  .gsplit{
    display:flex;
    height:22px;
    border-radius:var(--chart-radius);
    overflow:hidden;
    gap:2px;
    background:var(--chart-track);
    padding:2px;
  }
  .gsplit span{
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:11px;
    font-weight:700;
    min-width:28px;
    border-radius:4px;
    transition:filter var(--transition-ui);
    letter-spacing:.01em;
  }
  .gsplit span:hover{filter:brightness(1.05);}
  .gsplit-legend{
    display:flex;
    gap:18px;
    margin-top:12px;
    font-size:10px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-soft);
  }
  .gsplit-legend i{
    display:inline-block;
    width:8px;
    height:8px;
    border-radius:2px;
    margin-right:6px;
    vertical-align:middle;
  }

  .dq-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:12px;}
  .dq-card{border:1px solid var(--hairline); border-radius:6px; padding:12px 14px;}
  .dq-card .dq-num{font-size:20px; font-weight:700; color:var(--darkblue);}
  .dq-card .dq-lbl{font-size:11.5px; color:var(--ink-soft); margin-top:2px;}
  .dq-meter{height:var(--chart-bar-sm); border-radius:var(--chart-radius); background:var(--chart-track); margin-top:8px; overflow:hidden;}
  .dq-meter span{display:block; height:100%; border-radius:3px;}

  /* Map */
  .map-wrap{display:grid; grid-template-columns:1fr 260px; gap:18px; align-items:stretch;}
  #sc-map{
    height:360px;
    border-radius:var(--radius-card);
    border:1px solid var(--hairline);
    background:var(--chart-track);
    z-index:0;
    box-shadow:inset 0 1px 3px rgba(31,41,55,.06);
  }
  .map-side{display:flex; flex-direction:column; gap:10px;}
  .map-top{
    flex:1;
    border:1px solid var(--hairline);
    border-radius:var(--radius-card);
    padding:12px 14px;
    overflow:auto;
    background:var(--card);
    box-shadow:var(--shadow);
  }
  .map-top h4{
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--ink-faint);
    margin:0 0 10px;
    font-weight:700;
    padding-bottom:8px;
    border-bottom:1px solid var(--hairline);
  }
  .map-top .row{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:8px;
    font-size:12.5px;
    padding:8px 0;
    border-bottom:1px dashed var(--hairline);
    transition:background var(--transition-ui);
  }
  .map-top .row:last-child{border-bottom:none;}
  .map-top .row:hover{background:var(--row-hover); margin:0 -8px; padding-left:8px; padding-right:8px; border-radius:4px;}
  .map-top .row b{color:var(--darkblue); font-weight:700;}
  .map-controls{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:12px;
    margin:0 0 16px;
    padding:12px 14px;
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-radius:8px;
  }
  .map-filter{font-size:13px; color:var(--ink-soft); display:flex; align-items:center; gap:10px; font-weight:600;}
  .map-filter select{
    font:inherit;
    font-size:13px;
    font-weight:600;
    padding:7px 12px;
    border:1px solid var(--hairline);
    border-radius:8px;
    background:var(--card);
    color:var(--darkblue);
    cursor:pointer;
    transition:border-color var(--transition-ui), box-shadow var(--transition-ui);
    min-width:160px;
  }
  .map-filter select:hover{border-color:var(--hairline-strong);}
  .map-filter select:focus{outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(15,118,110,.12);}
  .map-legend{display:flex; flex-wrap:wrap; gap:14px;}
  .map-legend .leg{display:inline-flex; align-items:center; gap:6px; font-size:12px; color:var(--ink-soft); font-weight:500;}
  .map-legend .leg i{width:11px; height:11px; border-radius:50%; display:inline-block; border:1px solid rgba(31,41,55,.1); box-shadow:0 1px 2px rgba(31,41,55,.08);}
  @media(max-width:880px){ .map-wrap{grid-template-columns:1fr;} }

  .empty-state{
    padding:var(--space-empty-y) 16px;
    text-align:center;
    color:var(--ink-soft);
    font-size:var(--text-body);
    font-style:normal;
    font-weight:500;
    line-height:1.5;
    border:1px dashed var(--hairline-strong);
    border-radius:var(--radius-card);
    background:var(--surface-subtle);
    min-height:var(--space-empty-min);
    display:flex;
    align-items:center;
    justify-content:center;
    margin-top:4px;
    animation:fade-in-up var(--motion-enter) var(--motion-ease-out) both;
  }
  .stamp.score{color:#fff;}

  #load-overlay{
    position:fixed;
    inset:0;
    background:rgba(244,249,249,.82);
    backdrop-filter:blur(4px);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:16px;
    z-index:300;
    font-family:var(--font-sans);
    font-size:var(--text-body);
    color:var(--ink-soft);
    font-weight:500;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:
      opacity var(--motion-enter) var(--motion-ease-out),
      visibility 0s linear var(--motion-enter);
  }
  #load-overlay.is-visible{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transition:
      opacity var(--motion-ui) var(--motion-ease-out),
      visibility 0s linear 0s;
  }
  #load-overlay .load-skeleton{
    width:min(420px, 82vw);
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  #load-overlay .load-skeleton-bar{
    height:10px;
    border-radius:6px;
    background:linear-gradient(90deg, var(--surface-muted) 0%, var(--surface-subtle) 45%, var(--surface-muted) 90%);
    background-size:200% 100%;
    animation:skeleton-shimmer 1.2s ease-in-out infinite;
  }
  #load-overlay .load-skeleton-bar:nth-child(1){width:100%; height:16px;}
  #load-overlay .load-skeleton-bar:nth-child(2){width:100%; height:40px; border-radius:10px;}
  #load-overlay .load-skeleton-bar:nth-child(3){width:92%; height:40px; border-radius:10px;}
  #load-overlay .load-skeleton-bar:nth-child(4){width:70%;}
  #load-overlay .load-label{margin:0; font-size:13px; color:var(--ink-soft);}
  #error-banner{
    display:none;
    margin:0 auto;
    max-width:1280px;
    padding:12px 16px;
    border-radius:var(--radius-md);
    background:var(--red-soft);
    border:1px solid rgba(239,68,68,.2);
    color:var(--red);
    font-size:var(--text-caption);
    line-height:1.5;
    font-weight:500;
  }

  /* —— Executive Overview —— */
  #executive.view[role="tabpanel"]{
    padding-top:var(--space-panel-top);
    padding-bottom:var(--space-panel-bottom);
  }
  #executive .view-head--minimal{
    margin-bottom:12px;
    padding-bottom:0;
    border-bottom:none;
  }
  #executive .view-head--minimal .exec-briefing-meta{
    margin:0;
  }
  #executive .view-head .label-caps{
    color:var(--blue);
    margin:0 0 4px;
  }
  #executive .view-head h2{
    font-size:var(--text-page-title);
    font-weight:600;
    letter-spacing:-.025em;
    line-height:1.2;
  }
  #executive .view-head > p:not(.exec-briefing-meta){
    margin:6px 0 0;
    max-width:640px;
    font-size:12.5px;
    color:var(--ink-soft);
    line-height:1.45;
  }
  #executive .exec-briefing-meta{
    margin:6px 0 0;
    font-size:var(--text-caption);
    font-weight:500;
    color:var(--ink-faint);
    letter-spacing:.01em;
  }
  #executive .exec-band{
    margin-bottom:var(--space-section);
  }
  #executive .exec-band:last-child{
    margin-bottom:0;
  }
  #executive .exec-band-label{
    margin:0 0 8px;
    font-size:9px;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }
  #executive .exec-band--situation{
    padding-bottom:6px;
    border-bottom:1px solid var(--hairline);
    margin-bottom:var(--space-section);
  }
  #executive .exec-band--exceptions{
    margin-bottom:var(--space-section);
  }
  #executive .exec-section{
    margin-bottom:var(--space-section);
  }
  #executive .exec-section:last-child{
    margin-bottom:0;
  }
  #executive .exec-section:empty{
    display:none;
    margin:0;
  }
  #executive .exec-section--kpis{
    margin-bottom:0;
  }
  #executive .exec-section--kpis .section-title{
    margin-bottom:var(--space-title-mb);
    padding-bottom:var(--space-title-pb);
  }
  #executive .exec-section--kpis .section-title h3{
    font-size:var(--text-section);
  }
  #executive .exec-section--program{
    margin-top:var(--space-3);
  }
  #executive .kpi-grid--primary{
    grid-template-columns:repeat(3, 1fr);
    margin-bottom:var(--space-kpi-gap);
  }
  #executive .kpi-grid--primary:empty{
    display:none;
    margin:0;
  }
  #executive .kpi-grid--secondary{
    grid-template-columns:repeat(5, 1fr);
    gap:var(--space-kpi-gap);
  }
  #executive .kpi-grid--secondary:has(.empty-state){
    grid-template-columns:1fr;
  }
  #executive .lab-kpi-grid:has(.empty-state){
    grid-template-columns:1fr;
  }
  #executive .metric-card--primary{
    box-shadow:var(--shadow-metric);
  }
  #executive .metric-card--compact{
    padding:10px 12px;
    box-shadow:none;
    background:var(--surface-subtle);
  }
  #executive .metric-card--compact .metric-card__leading{
    gap:10px;
  }
  #executive .metric-card--compact .metric-card__icon{
    width:26px;
    height:26px;
  }
  #executive .metric-card--compact .metric-card__icon svg{
    width:14px;
    height:14px;
  }
  #executive .metric-card--compact .metric-card__value{
    font-size:17px;
    font-weight:700;
  }
  #executive .metric-card--compact .metric-card__label{
    font-size:11px;
    font-weight:600;
    color:var(--darkblue);
  }
  #executive .metric-card--compact .metric-card__sub{
    font-size:10px;
    font-weight:400;
    color:var(--ink-faint);
  }
  #executive .metric-card--compact:hover{
    transform:none;
    box-shadow:none;
    border-color:var(--hairline-strong);
    background:var(--card);
  }
  #executive .exec-section--pair{
    display:grid;
    grid-template-columns:1.25fr .75fr;
    gap:var(--space-grid);
    align-items:stretch;
  }
  #executive .exec-section--split{
    margin-bottom:0;
    gap:var(--space-grid);
  }
  #executive .exec-panel,
  #executive .two-col > div,
  #executive .facilities-attention-wrap{
    background:var(--card);
    border:1px solid var(--hairline);
    border-radius:var(--radius-card);
    box-shadow:none;
    padding:var(--space-card-y) var(--space-card-x);
    min-width:0;
    height:100%;
  }
  #executive .exec-panel--static:hover,
  #executive .two-col > div.exec-panel--static:hover,
  #executive .facilities-attention-wrap:hover{
    border-color:var(--hairline);
    box-shadow:none;
  }
  #executive .exec-panel .section-title,
  #executive .two-col .section-title,
  #executive .facilities-attention-wrap .section-title{
    margin-bottom:var(--space-title-mb);
    padding-bottom:var(--space-title-pb);
  }
  #executive .exec-panel .section-title h3,
  #executive .two-col .section-title h3,
  #executive .facilities-attention-wrap .section-title h3{
    font-size:var(--text-section);
  }

  /* Executive summary */
  #executive .exec-insight-banner{
    padding:14px 16px 14px 14px;
    box-shadow:none;
    background:var(--card);
    border:1px solid var(--hairline);
    border-left:none;
  }
  #executive .exec-insight-banner--empty{
    background:var(--surface-subtle);
  }
  #executive .exec-insight-label{
    font-size:9px;
    letter-spacing:.08em;
  }
  #executive .exec-insight-headline{
    margin:0;
    font-size:13px;
    font-weight:600;
    line-height:1.35;
    color:var(--darkblue);
    max-width:88ch;
  }
  #executive .exec-insight-body{
    font-size:12px;
    line-height:1.4;
    color:var(--ink-soft);
    max-width:88ch;
  }
  #executive .exec-insight-body[hidden]{display:none !important;}
  #executive .exec-insight-action{
    margin:2px 0 0;
    font-size:var(--text-caption);
    font-weight:500;
    color:var(--blue);
    line-height:1.3;
  }

  /* Alert */
  #executive .alert-banner{
    box-shadow:none;
    background:var(--card);
  }

  /* MoM chips inside panel — lighter nested tiles */
  #executive .mom-chip-row{
    grid-template-columns:repeat(auto-fit, minmax(120px, 1fr));
    gap:var(--space-kpi-gap);
  }
  #executive .mom-chip{
    box-shadow:none;
    background:var(--surface-subtle);
    padding:12px 14px;
    transform:none;
  }
  #executive .mom-chip:hover{
    border-color:var(--hairline);
    box-shadow:none;
    background:var(--surface-subtle);
    transform:none;
  }
  #executive .mom-chip-value{font-size:20px; margin:4px 0 2px;}
  #executive .mom-chip-delta{margin-top:8px;}

  /* Throughput inside panel */
  #executive .throughput-strip{
    display:grid;
    grid-template-columns:1fr;
    gap:8px;
  }
  #executive .throughput-chip{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:12px;
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-radius:var(--radius-sm);
    padding:12px 14px;
    min-width:0;
    box-shadow:none;
  }
  #executive .throughput-chip:hover{
    border-color:var(--hairline);
    background:var(--surface-subtle);
    box-shadow:none;
  }
  #executive .throughput-n{
    font-size:20px;
    font-weight:600;
    letter-spacing:-.02em;
    font-variant-numeric:tabular-nums;
    color:var(--darkblue);
  }
  #executive .throughput-l{
    font-size:11px;
    font-weight:500;
    color:var(--ink-faint);
    margin-top:0;
    text-transform:none;
    letter-spacing:0;
    text-align:right;
  }

  /* Facilities data table */
  #executive .facilities-attention-wrap{
    padding:10px 12px 8px;
  }
  #executive .exec-table-wrap{
    overflow:auto;
    margin:0 -4px;
    max-height:min(260px, 40vh);
  }
  #executive .exec-data-table{
    width:100%;
    border-collapse:collapse;
    font-size:13px;
  }
  #executive .exec-data-table thead th{
    position:sticky;
    top:0;
    z-index:1;
    text-align:left;
    font-size:10px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-faint);
    background:var(--card);
    border-bottom:1px solid var(--hairline);
    padding:var(--space-table-y) var(--space-table-x);
    white-space:nowrap;
  }
  #executive .exec-data-table thead th.is-num,
  #executive .exec-data-table td.is-num{
    text-align:right;
    font-variant-numeric:tabular-nums;
  }
  #executive .exec-data-table tbody td{
    padding:calc(var(--space-table-y) + 2px) var(--space-table-x);
    border-bottom:1px solid var(--hairline);
    color:var(--ink-soft);
    vertical-align:middle;
  }
  #executive .exec-data-table tbody tr:last-child td{
    border-bottom:none;
  }
  #executive .exec-facility-row{
    cursor:pointer;
    transition:background var(--transition-ui);
  }
  #executive .exec-facility-row:hover,
  #executive .exec-facility-row:focus-visible{
    background:var(--surface-subtle);
  }
  #executive .exec-facility-row:focus-visible{
    outline:none;
    box-shadow:inset 0 0 0 2px rgba(15,118,110,.16);
  }
  #executive .exec-data-table td.is-primary{
    color:var(--darkblue);
    font-weight:600;
  }
  #executive .exec-data-table td.is-muted{
    color:var(--ink-faint);
    font-size:12px;
  }
  #executive .exec-rate-pill{
    display:inline-block;
    min-width:3.25rem;
    padding:3px 8px;
    border-radius:var(--radius-sm);
    font-size:12px;
    font-weight:600;
    font-variant-numeric:tabular-nums;
    text-align:center;
  }
  #executive .exec-rate-pill.is-watch{
    background:var(--orange-soft);
    color:#9A3412;
  }
  #executive .exec-rate-pill.is-elevated{
    background:var(--red-soft);
    color:var(--red);
  }
  #executive .exec-rate-pill.is-critical{
    background:var(--red-soft);
    color:#7F1D1D;
    box-shadow:inset 0 0 0 1px rgba(185,28,28,.18);
  }

  /* Emerging concerns list */
  #executive .exec-list-head{
    display:grid;
    grid-template-columns:36px 1fr auto;
    gap:12px;
    padding:0 10px 8px;
    margin:0 0 2px;
    font-size:10px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }
  #executive .ledger-list{
    margin:0;
    counter-reset:exec-concern;
  }
  #executive .ledger-row{
    padding:11px 10px;
    border-radius:var(--radius-sm);
    border-bottom-color:transparent;
  }
  #executive .ledger-row + .ledger-row{
    border-top:1px solid var(--hairline);
  }
  #executive .ledger-row:hover{
    background:var(--surface-subtle);
  }
  #executive .ledger-row:focus-visible{
    outline:none;
    box-shadow:inset 0 0 0 2px rgba(15,118,110,.16);
  }
  #executive .ledger-row .name{
    font-weight:500;
    display:inline-flex;
    align-items:center;
    gap:8px;
    flex-wrap:wrap;
  }
  #executive .ledger-meta{
    display:inline-flex;
    align-items:center;
    gap:8px;
  }
  #executive .ledger-count{
    font-size:12px;
    font-weight:600;
    color:var(--ink-soft);
    font-variant-numeric:tabular-nums;
  }
  #executive .ward-grid{
    gap:10px;
    padding:2px 0 0;
  }
  #executive .ward-grid--preview{
    grid-template-columns:repeat(3, 1fr);
  }
  #executive .ward-tile{
    border-radius:var(--radius-sm);
    border:1px solid rgba(31,41,55,.1);
    transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
    aspect-ratio:auto;
    min-height:80px;
  }
  #executive .ward-tile:hover{
    transform:translateY(-1px);
    box-shadow:0 4px 12px rgba(31,41,55,.14);
    border-color:rgba(31,41,55,.14);
  }
  #executive .ward-tile .code{font-size:14px; letter-spacing:.02em; font-weight:600;}
  #executive .ward-tile .score{font-size:10px; margin-top:2px; opacity:.92; font-weight:600;}
  #executive .ward-tile .ph-ward-tier{
    font-size:9px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    margin-top:4px;
    opacity:.95;
  }
  #executive .legend{
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid var(--hairline);
    gap:10px;
    font-size:11px;
    margin-top:8px;
    padding-top:8px;
  }
  #executive .legend i,
  #executive .legend-swatch{
    width:11px;
    height:11px;
    border-radius:3px;
    border:1px solid rgba(31,41,55,.08);
  }
  #executive .empty-state{margin-top:4px;}
  #executive .empty-state--positive{
    border-style:solid;
    border-color:rgba(16,185,129,.28);
    background:var(--green-soft);
    color:var(--green);
  }

  .sr-only{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }

  /* —— Symptom Checker —— */
  #symptom .sc-card,
  #symptom .card{
    border-radius:var(--radius-card);
    padding:var(--space-card-y) var(--space-card-x);
    transition:border-color var(--transition-ui),box-shadow var(--transition-ui);
  }
  /* Static cards: no lift — avoid false click affordance */
  #symptom .sc-card:hover,
  #symptom .card:hover{
    border-color:var(--hairline-strong);
    box-shadow:var(--shadow);
  }
  #symptom .sc-kpi-grid .metric-card:hover{
    transform:none;
  }
  #symptom .view-head{margin-bottom:var(--space-view-head-mb); padding-bottom:var(--space-view-head-pb);}
  #symptom .view-head h2{letter-spacing:-.02em;}
  #symptom .view-head p{max-width:720px; color:var(--ink-soft);}
  #symptom .section-title h3{font-weight:600; letter-spacing:-.01em;}
  #symptom .section-title .note{max-width:420px;}
  #symptom .grid-2{gap:var(--space-grid); align-items:stretch;}
  #symptom .empty-state{margin-top:4px;}
  #symptom .sc-subhead{
    margin:0 0 10px;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--ink-faint);
  }
  #symptom .sc-demo-block{padding:4px 0 0;}

  /* SC chart tooltip */
  .sc-tooltip{
    position:fixed;
    z-index:4000;
    min-width:140px;
    max-width:280px;
    padding:10px 12px;
    border-radius:var(--radius-md);
    background:var(--card);
    border:1px solid var(--hairline);
    box-shadow:0 8px 24px rgba(31,41,55,.10), 0 2px 6px rgba(31,41,55,.04);
    font-size:12px;
    color:var(--ink-soft);
    line-height:1.45;
    pointer-events:none;
    opacity:0;
    visibility:hidden;
    transform:translateY(4px);
    transition:opacity .15s ease, transform .15s ease, visibility .15s ease;
  }
  .sc-tooltip.is-visible{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
  }
  .sc-tooltip strong{
    display:block;
    font-size:13px;
    font-weight:700;
    color:var(--darkblue);
    margin-bottom:2px;
  }
  .sc-tooltip .sc-tip-meta{font-size:11px; color:var(--ink-faint);}

  /* Daily volume — area chart (line primary; bars as hit targets) */
  #symptom .sc-area-head{
    display:flex;
    gap:16px;
    flex-wrap:wrap;
    margin-bottom:10px;
    padding-bottom:10px;
    border-bottom:1px solid var(--hairline);
  }
  #symptom .sc-area-stat{display:flex; flex-direction:column; gap:2px;}
  #symptom .sc-area-stat-n{
    font-size:22px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    letter-spacing:-.02em;
  }
  #symptom .sc-area-stat-lbl{font-size:11px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.06em; font-weight:600;}
  #symptom .sc-area-stat--up .sc-area-stat-n{color:var(--red);}
  #symptom .sc-area-stat--down .sc-area-stat-n{color:var(--green);}
  #symptom .sc-area-stat--flat .sc-area-stat-n{color:var(--ink-soft);}
  #symptom .sc-area-hint{
    margin:0 0 10px;
    font-size:11px;
    color:var(--ink-faint);
  }
  #symptom .sc-area-wrap{position:relative; padding-top:8px;}
  #symptom .sc-area-svg{
    position:absolute;
    inset:8px 0 28px;
    width:100%;
    height:calc(100% - 36px);
    pointer-events:none;
  }
  #symptom .sc-area-grid{
    stroke:var(--chart-grid);
    stroke-width:1;
    stroke-dasharray:3 4;
    vector-effect:non-scaling-stroke;
  }
  #symptom .sc-area-fill{fill:rgba(15,118,110,.08); stroke:none;}
  #symptom .sc-area-line{fill:none; stroke:var(--chart-1); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke;}
  #symptom .sc-area-cols{
    display:flex;
    align-items:flex-end;
    gap:2px;
    height:140px;
    padding:0 2px;
  }
  #symptom .sc-area-col{
    flex:1;
    min-width:4px;
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    align-items:center;
    gap:6px;
    cursor:default;
  }
  #symptom .sc-area-bar{
    width:100%;
    max-width:12px;
    background:var(--chart-mute);
    border-radius:var(--chart-radius) var(--chart-radius) 2px 2px;
    opacity:1;
    min-height:2px;
    transition:background var(--transition-ui), filter var(--transition-ui);
  }
  #symptom .sc-area-col:hover .sc-area-bar,
  #symptom .sc-area-col.is-active .sc-area-bar{
    background:linear-gradient(180deg, var(--chart-1), color-mix(in srgb, var(--chart-1) 70%, #fff));
    filter:none;
  }
  #symptom .sc-area-lbl{
    font-size:10px;
    color:var(--ink-faint);
    white-space:nowrap;
    font-variant-numeric:tabular-nums;
    min-height:14px;
    font-weight:500;
  }

  /* The lab chart reuses the symptom area-chart markup. Keep these styles
     unscoped from the symptom tab so SVG polygons never fall back to black. */
  #lab .sc-area-head{display:flex; gap:16px; flex-wrap:wrap; margin-bottom:10px; padding-bottom:10px; border-bottom:1px solid var(--hairline);}
  #lab .sc-area-stat{display:flex; flex-direction:column; gap:2px;}
  #lab .sc-area-stat-n{font-size:22px; font-weight:700; color:var(--darkblue); font-variant-numeric:tabular-nums; letter-spacing:-.02em;}
  #lab .sc-area-stat-lbl{font-size:11px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.06em; font-weight:600;}
  #lab .sc-area-stat--up .sc-area-stat-n{color:var(--red);}
  #lab .sc-area-stat--down .sc-area-stat-n{color:var(--green);}
  #lab .sc-area-stat--flat .sc-area-stat-n{color:var(--ink-soft);}
  #lab .sc-area-body{display:flex; gap:8px; align-items:stretch;}
  #lab .sc-area-yaxis{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    padding:8px 0 28px;
    min-width:34px;
    font-size:10px;
    font-weight:600;
    color:var(--ink-faint);
    font-variant-numeric:tabular-nums;
    text-align:right;
  }
  #lab .sc-area-wrap{position:relative; padding-top:8px; flex:1; min-width:0;}
  #lab .sc-area-svg{position:absolute; inset:8px 0 28px; width:100%; height:calc(100% - 36px); pointer-events:none;}
  #lab .sc-area-grid{stroke:var(--chart-grid); stroke-width:1; stroke-dasharray:3 4; vector-effect:non-scaling-stroke;}
  #lab .sc-area-fill{fill:rgba(15,118,110,.08); stroke:none;}
  #lab .sc-area-line{fill:none; stroke:var(--chart-1); stroke-width:2; stroke-linecap:round; stroke-linejoin:round; vector-effect:non-scaling-stroke;}
  #lab .sc-area-cols{display:flex; align-items:flex-end; gap:2px; height:150px; padding:0 2px;}
  #lab .sc-area-col{
    flex:1;
    min-width:2px;
    height:100%;
    display:flex;
    flex-direction:column;
    justify-content:flex-end;
    align-items:center;
    gap:6px;
    cursor:pointer;
    border:none;
    background:transparent;
    padding:0;
  }
  #lab .sc-area-bar{width:100%; max-width:12px; background:var(--chart-mute); border-radius:var(--chart-radius) var(--chart-radius) 2px 2px; opacity:1; min-height:2px; transition:background var(--transition-ui);}
  #lab .sc-area-col.is-active .sc-area-bar,
  #lab .sc-area-col:hover .sc-area-bar,
  #lab .sc-area-col:focus-visible .sc-area-bar{background:linear-gradient(180deg, var(--chart-1), color-mix(in srgb, var(--chart-1) 70%, #fff));}
  #lab .sc-area-col:focus-visible{outline:2px solid rgba(15,118,110,.35); outline-offset:2px; border-radius:4px;}
  #lab .sc-area-lbl{font-size:9px; color:var(--ink-faint); white-space:nowrap; font-variant-numeric:tabular-nums; min-height:12px;}

  /* Monthly comparison also reuses population chart primitives. */
  #lab .ph-area-wrap{position:relative; padding:8px 0 4px;}
  #lab .ph-area-cols{display:flex; gap:16px; align-items:flex-end; height:150px; padding:4px 6px 24px; position:relative;}
  #lab .ph-area-col{flex:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; height:100%; min-width:0;}
  #lab .ph-area-bar{width:min(64px, 72%); background:linear-gradient(180deg, var(--chart-1), color-mix(in srgb, var(--chart-1) 68%, #fff)); border-radius:var(--chart-radius) var(--chart-radius) 2px 2px; opacity:1; min-height:4px;}
  #lab .ph-area-val{font-size:12px; font-weight:700; color:var(--darkblue); font-variant-numeric:tabular-nums; margin-bottom:6px;}
  #lab .ph-area-lbl{font-size:11px; font-weight:600; color:var(--ink-soft); margin-top:7px; text-align:center; line-height:1.2;}
  #lab .ph-area-sub{font-size:10px; color:var(--ink-faint); margin-top:4px; text-align:center; white-space:nowrap;}

  /* Full-width Month-on-month orders — more room for many month labels */
  #lab .li-card--monthly-orders #lab-monthly-compare .ph-area-cols,
  #lab #lab-monthly-compare .ph-area-wrap--months .ph-area-cols{
    height:190px;
    min-height:190px;
    gap:12px;
    padding-bottom:28px;
  }
  #lab #lab-monthly-compare .ph-area-lbl{
    white-space:nowrap;
    overflow:visible;
  }
  #lab #lab-monthly-compare .ph-area-col{
    min-width:2.75rem;
  }

  .is-data-unavailable{display:none !important;}
  .grid-2:has(> .is-data-unavailable){grid-template-columns:1fr;}

  /* Trend table status chips */
  #symptom .sc-status-chip{
    display:inline-flex;
    align-items:center;
    padding:3px 8px;
    border-radius:var(--radius-sm);
    font-size:10px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
  }
  #symptom .sc-status-chip--warn{color:var(--red); background:var(--red-soft);}
  #symptom .sc-status-chip--rise{color:#B45309; background:var(--yellow-soft);}
  #symptom .sc-status-chip--down{color:var(--blue); background:var(--blue-soft);}
  #symptom .sc-status-chip--calm{color:var(--green); background:var(--green-soft);}
  #symptom .sc-trend-table td:last-child{width:96px;}
  #symptom .sc-trend-footnote{
    margin:12px 0 0;
    font-size:11px;
    color:var(--ink-faint);
    line-height:1.45;
  }
  #symptom .sc-trend-cards{display:none;}

  /* Geographic map — centerpiece */
  #symptom .sc-map-section{position:relative; margin:0;}
  #symptom .sc-map-section .section-title{margin-bottom:8px;}
  #symptom .sc-map-card{padding:var(--space-card-y) var(--space-card-x);}
  #symptom .sc-map-card--hero{
    border-color:var(--hairline-strong);
    box-shadow:var(--shadow-elevated);
    background:var(--card);
  }
  #symptom .sc-map-coverage{
    margin:0 0 12px;
    padding:9px 12px;
    border-radius:8px;
    border:1px solid var(--hairline);
    background:var(--surface-subtle);
    font-size:12.5px;
    color:var(--ink-soft);
    line-height:1.45;
  }
  #symptom .sc-map-coverage strong{color:var(--darkblue); font-weight:700;}
  #symptom .sc-map-coverage:empty{display:none;}
  #symptom .sc-map-stage{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(248px, 272px);
    gap:14px;
    align-items:stretch;
  }
  #symptom .sc-map-main{display:flex; flex-direction:column; gap:10px; min-width:0;}
  #symptom .sc-map-toolbar{display:flex; align-items:center; flex-wrap:wrap; gap:10px;}
  #symptom .sc-map-frame{
    position:relative;
    border-radius:10px;
    overflow:hidden;
    border:1px solid var(--hairline);
    background:var(--chart-track);
    box-shadow:inset 0 1px 3px rgba(31,41,55,.06);
    min-height:420px;
    flex:1 1 auto;
  }
  #symptom #sc-map{
    height:420px;
    width:100%;
    z-index:1;
    background:var(--chart-track);
  }
  #symptom .sc-map-legend{
    position:absolute;
    left:12px;
    bottom:12px;
    z-index:500;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px 12px;
    padding:8px 12px;
    background:color-mix(in srgb, var(--card) 94%, transparent);
    border:1px solid var(--hairline);
    border-radius:10px;
    box-shadow:var(--shadow);
    backdrop-filter:blur(8px);
    max-width:min(340px, calc(100% - 28px));
    max-height:88px;
    overflow:auto;
  }
  #symptom .sc-legend-title{
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--ink-faint);
    width:100%;
    margin-bottom:2px;
  }
  #symptom .sc-legend-item{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:11.5px;
    color:var(--ink-soft);
    font-weight:500;
  }
  #symptom .sc-legend-item i{
    width:10px;
    height:10px;
    border-radius:50%;
    display:inline-block;
    border:1px solid rgba(31,41,55,.1);
    box-shadow:0 1px 2px rgba(31,41,55,.08);
  }
  #symptom .sc-map-size-legend--panel{
    position:static;
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:10px 12px;
    background:var(--card);
    border:1px solid var(--hairline);
    border-radius:10px;
    box-shadow:none;
    backdrop-filter:none;
    min-width:0;
    z-index:auto;
  }
  #symptom .sc-map-size-legend--panel:empty{display:none;}
  #symptom .sc-size-title{
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--ink-faint);
  }
  #symptom .sc-size-rows{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:10px;
  }
  #symptom .sc-size-row{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:6px;
    font-size:11px;
    color:var(--ink-soft);
    font-variant-numeric:tabular-nums;
    flex:1;
  }
  #symptom .sc-size-dot{
    border-radius:50%;
    background:rgba(15,118,110,.55);
    border:2px solid var(--card);
    box-shadow:0 1px 3px rgba(31,41,55,.16);
    flex-shrink:0;
  }
  #symptom .sc-map-empty{
    position:absolute;
    inset:0;
    z-index:400;
    display:none;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:24px;
    background:color-mix(in srgb, var(--bg) 78%, transparent);
    backdrop-filter:blur(4px);
    text-align:center;
    pointer-events:none;
  }
  #symptom .sc-map-empty.is-visible{display:flex;}
  #symptom .sc-map-empty-icon{
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    background:var(--card);
    border:1px solid var(--hairline);
    color:var(--ink-faint);
    font-size:20px;
    box-shadow:var(--shadow);
  }
  #symptom .sc-map-empty p{
    margin:0;
    font-size:13px;
    color:var(--ink-soft);
    max-width:280px;
    line-height:1.5;
  }
  #symptom .sc-map-sidebar{display:flex; flex-direction:column; gap:10px; min-width:0;}
  #symptom .sc-map-stats{display:grid; gap:8px;}
  #symptom .sc-map-stats .metric-card{padding:10px 12px;}
  #symptom .sc-map-stats .metric-card:hover{transform:none;}
  #symptom .sc-hotspots-panel{
    flex:1;
    display:flex;
    flex-direction:column;
    border:1px solid var(--hairline);
    border-radius:12px;
    padding:12px 14px;
    background:var(--surface-subtle);
    overflow:hidden;
    min-height:0;
    max-height:none;
  }
  #symptom #map-top-list{
    flex:0 0 auto;
    height:min(248px, 34vh);
    max-height:min(248px, 34vh);
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    min-height:0;
    padding-right:2px;
  }
  #symptom .sc-hotspot-rank{
    flex:0 0 18px;
    width:18px;
    height:18px;
    border-radius:4px;
    background:var(--surface-muted, #EEF1F6);
    color:var(--ink-soft);
    font-size:10px;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:1px;
    font-variant-numeric:tabular-nums;
  }
  #symptom .sc-hotspots-panel h4{
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--ink-faint);
    margin:0 0 10px;
    font-weight:700;
    padding-bottom:8px;
    border-bottom:1px solid var(--hairline);
  }
  #symptom .sc-hotspot-row{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:10px;
    width:100%;
    padding:9px 8px;
    border:0;
    border-bottom:1px dashed var(--hairline);
    border-radius:8px;
    background:transparent;
    font:inherit;
    text-align:left;
    cursor:pointer;
    transition:background var(--transition-ui), box-shadow var(--transition-ui);
  }
  #symptom .sc-hotspot-row:last-child{border-bottom:none;}
  #symptom .sc-hotspot-row:hover{background:var(--card);}
  #symptom .sc-hotspot-row:focus-visible{
    outline:none;
    box-shadow:0 0 0 2px rgba(15,118,110,.25);
    background:var(--card);
  }
  #symptom .sc-hotspot-row.is-active{
    background:var(--blue-soft);
    box-shadow:inset 3px 0 0 var(--blue);
  }
  #symptom .sc-hotspot-lbl{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
    min-width:0;
    flex:1;
    color:var(--darkblue);
    font-weight:600;
    line-height:1.35;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  #symptom .sc-hotspot-lbl > .sc-hotspot-dot{
    position:absolute;
  }
  #symptom .sc-hotspot-row .sc-hotspot-lbl{
    padding-left:16px;
    position:relative;
  }
  #symptom .sc-hotspot-row .sc-hotspot-dot{
    position:absolute;
    left:0;
    top:4px;
  }
  #symptom .sc-hotspot-name{
    display:block;
    min-width:0;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  #symptom .sc-hotspot-lbl em{
    display:block;
    font-style:normal;
    font-size:11px;
    color:var(--ink-faint);
    font-weight:500;
    margin-top:2px;
  }
  #symptom .sc-hotspot-dot{
    width:9px;
    height:9px;
    border-radius:50%;
    flex-shrink:0;
    margin-top:4px;
    border:1px solid rgba(31,41,55,.1);
    box-shadow:0 1px 2px rgba(31,41,55,.1);
  }
  #symptom .sc-hotspot-row b{
    color:var(--darkblue);
    font-weight:700;
    font-variant-numeric:tabular-nums;
    flex-shrink:0;
  }
  #symptom .sc-hotspot-empty{
    padding:16px 8px;
    font-size:12.5px;
    color:var(--ink-faint);
    text-align:center;
    line-height:1.5;
  }

  /* Map basemap & markers
     Do NOT apply CSS filter/transform-transition on Leaflet panes or markers.
     Those create separate GPU layers that drift from tiles during pan/zoom
     ("markers a little out of sync" with the basemap). */
  #symptom .leaflet-container{
    background:var(--chart-track);
    font-family:var(--font-sans);
  }
  #symptom .leaflet-control-attribution{
    font-size:9px;
    color:var(--ink-faint);
    background:color-mix(in srgb, var(--card) 88%, transparent) !important;
    border-radius:6px;
    padding:2px 8px;
    margin:0 6px 6px 0;
    border:1px solid var(--hairline);
    box-shadow:var(--shadow);
  }
  .sc-map-glow{pointer-events:none !important;}
  .sc-map-marker--pulse{animation:sc-marker-pulse 2.4s ease-in-out infinite;}
  @keyframes sc-marker-pulse{
    0%,100%{opacity:1;}
    50%{opacity:.78;}
  }
  @media(prefers-reduced-motion:reduce){
    .sc-map-marker--pulse{animation:none;}
  }
  .leaflet-container .leaflet-control-zoom{
    border:none !important;
    box-shadow:0 2px 12px rgba(31,41,55,.12) !important;
    border-radius:10px !important;
    overflow:hidden;
  }
  .leaflet-container .leaflet-control-zoom a{
    width:32px !important;
    height:32px !important;
    line-height:32px !important;
    font-size:16px !important;
    color:var(--darkblue) !important;
    border-color:var(--hairline) !important;
    background:var(--card) !important;
  }
  .leaflet-container .leaflet-control-zoom a:hover{background:var(--row-hover) !important;}
  .sc-leaflet-popup .leaflet-popup-content-wrapper{
    background:var(--card) !important;
    color:var(--black) !important;
    border-radius:14px;
    padding:0;
    box-shadow:var(--shadow-elevated);
    border:1px solid var(--hairline-strong);
    overflow:hidden;
  }
  .sc-leaflet-popup .leaflet-popup-content{
    margin:0;
    min-width:240px;
    color:var(--black);
  }
  .sc-leaflet-popup .leaflet-popup-tip{
    background:var(--card) !important;
    border:1px solid var(--hairline-strong);
    box-shadow:var(--shadow);
  }
  /* Leaflet default popup chrome (any map) */
  .leaflet-popup-content-wrapper{
    background:var(--card) !important;
    color:var(--black) !important;
    border:1px solid var(--hairline-strong);
    box-shadow:var(--shadow-elevated);
  }
  .leaflet-popup-tip{
    background:var(--card) !important;
    border:1px solid var(--hairline-strong);
  }
  .leaflet-popup-content{
    color:var(--black);
  }
  .sc-leaflet-popup .leaflet-popup-close-button{
    top:10px;
    right:10px;
    width:22px;
    height:22px;
    font-size:18px;
    line-height:20px;
    color:var(--ink-faint);
    border-radius:6px;
    transition:background var(--transition-ui), color var(--transition-ui);
  }
  .sc-leaflet-popup .leaflet-popup-close-button:hover{
    background:var(--surface-muted);
    color:var(--darkblue);
  }
  .sc-popup{padding:14px 16px;}
  .sc-popup-head{
    display:flex;
    gap:10px;
    align-items:flex-start;
    margin-bottom:12px;
    padding-bottom:10px;
    border-bottom:1px solid var(--hairline);
    min-width:0;
  }
  .sc-popup-badge{
    width:12px;
    height:12px;
    border-radius:50%;
    margin-top:4px;
    flex-shrink:0;
    border:2px solid var(--card);
    box-shadow:0 1px 4px rgba(31,41,55,.2);
  }
  .sc-popup-head strong{display:block; font-size:13.5px; color:var(--darkblue); line-height:1.35; font-weight:600; overflow-wrap:anywhere; word-break:break-word;}
  .sc-popup-sub{display:block; font-size:11.5px; color:var(--ink-faint); margin-top:3px; font-weight:500;}
  .sc-popup-stats{
    display:flex;
    gap:10px;
    margin-bottom:12px;
    font-size:11px;
    color:var(--ink-soft);
  }
  .sc-popup-stats div{
    display:flex;
    flex-direction:column;
    gap:3px;
    flex:1;
    padding:10px 12px;
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-radius:8px;
  }
  .sc-popup-n{font-size:18px; font-weight:700; color:var(--darkblue); font-variant-numeric:tabular-nums; line-height:1.1;}
  .sc-popup-breakdown{display:flex; flex-direction:column; gap:4px;}
  .sc-popup-row{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:12px;
    color:var(--ink-soft);
    padding:6px 8px;
    border-radius:6px;
    transition:background var(--transition-ui);
  }
  .sc-popup-row:hover{background:var(--surface-subtle);}
  .sc-popup-row b{margin-left:auto; color:var(--darkblue); font-variant-numeric:tabular-nums; font-weight:700;}
  .sc-popup-dot{
    width:8px;
    height:8px;
    border-radius:50%;
    flex-shrink:0;
    border:1px solid rgba(31,41,55,.08);
    box-shadow:0 1px 2px rgba(31,41,55,.1);
  }
  .sc-popup-muted{font-size:12px; color:var(--ink-faint); font-style:italic; padding:4px 8px;}

  /* Lollipop charts */
  #symptom .sc-lollipop{
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:8px 0 4px;
    height:min(248px, 34vh);
    max-height:min(248px, 34vh);
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  #symptom .sc-lollipop-row{
    display:grid;
    grid-template-columns:22px minmax(88px, 1.1fr) 1fr 52px;
    align-items:center;
    gap:10px;
    padding:8px 10px;
    border-radius:8px;
    transition:background var(--transition-ui);
  }
  #symptom .sc-lollipop-row:hover{background:var(--row-hover);}
  #symptom .sc-lollipop-rank{font-size:11px; font-weight:700; color:var(--ink-faint); text-align:center; font-variant-numeric:tabular-nums;}
  #symptom .sc-lollipop-label{
    font-size:12.5px;
    font-weight:600;
    color:var(--darkblue);
    overflow:hidden;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    line-height:1.35;
  }
  #symptom .sc-lollipop-track{position:relative; height:4px; background:var(--chart-track); border-radius:2px;}
  #symptom .sc-lollipop-stem{height:4px; border-radius:2px; transition:width .4s ease;}
  #symptom .sc-lollipop-stem--blue{background:var(--blue);}
  #symptom .sc-lollipop-stem--purple{background:#7C3AED;}
  #symptom .sc-lollipop-dot{
    position:absolute;
    top:50%;
    width:10px;
    height:10px;
    border-radius:50%;
    transform:translateY(-50%);
    border:2px solid var(--card);
    box-shadow:0 1px 4px rgba(31,41,55,.15);
  }
  #symptom .sc-lollipop-dot--blue{background:var(--blue);}
  #symptom .sc-lollipop-dot--purple{background:#7C3AED;}
  #symptom .sc-lollipop-val{font-size:12px; font-weight:700; color:var(--darkblue); text-align:right; font-variant-numeric:tabular-nums;}

  /* Chief complaints — aligned with lollipop density */
  #symptom .sc-complaints{display:flex; flex-direction:column; gap:8px; padding:8px 0 4px;}
  #symptom .sc-complaint-row{
    display:grid;
    grid-template-columns:22px 1fr 52px;
    align-items:center;
    gap:10px;
    padding:8px 10px;
    border:1px solid transparent;
    border-radius:8px;
    background:transparent;
    transition:background var(--transition-ui), border-color var(--transition-ui);
  }
  #symptom .sc-complaint-row:hover{background:var(--row-hover); border-color:var(--hairline);}
  #symptom .sc-complaint-rank{
    font-size:11px;
    font-weight:700;
    color:var(--ink-faint);
    text-align:center;
    font-variant-numeric:tabular-nums;
  }
  #symptom .sc-complaint-body{min-width:0;}
  #symptom .sc-complaint-label{
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
    font-size:12.5px;
    font-weight:600;
    color:var(--darkblue);
    margin-bottom:6px;
    line-height:1.35;
  }
  #symptom .sc-complaint-track{height:4px; background:var(--chart-track); border-radius:2px; overflow:hidden;}
  #symptom .sc-complaint-bar{height:100%; background:var(--pink); border-radius:2px; min-width:2px;}
  #symptom .sc-complaint-val{font-size:12px; font-weight:700; color:var(--darkblue); text-align:right; font-variant-numeric:tabular-nums;}

  /* Demographics */
  #symptom .sc-age-chart{display:flex; flex-direction:column; gap:10px; padding:0 0 4px;}
  #symptom .sc-age-row{
    display:grid;
    grid-template-columns:72px 1fr 72px;
    align-items:center;
    gap:12px;
    font-size:12.5px;
  }
  #symptom .sc-age-label{font-weight:600; color:var(--darkblue);}
  #symptom .sc-age-track{height:22px; background:var(--chart-track); border-radius:6px; overflow:hidden; border:1px solid rgba(31,41,55,.04);}
  #symptom .sc-age-bar{height:100%; background:var(--blue); border-radius:6px; min-width:2px; transition:width .4s ease;}
  #symptom .sc-age-val{font-weight:700; color:var(--darkblue); text-align:right; font-variant-numeric:tabular-nums; font-size:12px;}
  #symptom .sc-gender-block{
    padding-top:16px;
    margin-top:16px;
    border-top:1px solid var(--hairline);
  }
  #symptom .sc-gsplit-legend{margin-top:10px;}

  /* Severity */
  #symptom .sc-sev-stack{
    display:flex;
    height:28px;
    border-radius:8px;
    overflow:hidden;
    border:1px solid var(--hairline);
    margin:8px 0 16px;
  }
  #symptom .sc-sev-seg{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:2px;
    font-size:10px;
    font-weight:700;
    color:#fff;
    transition:opacity var(--transition-ui);
  }
  #symptom .sc-sev-seg:hover{opacity:.9;}
  #symptom .sc-sev-seg span{text-shadow:0 1px 1px rgba(31,41,55,.25);}
  #symptom .sc-sev-legend{display:flex; flex-direction:column; gap:8px;}
  #symptom .sc-sev-leg-row{
    display:grid;
    grid-template-columns:12px 1fr auto auto;
    align-items:center;
    gap:10px;
    font-size:12.5px;
    color:var(--ink-soft);
  }
  #symptom .sc-sev-swatch{width:8px; height:8px; border-radius:2px;}
  #symptom .sc-sev-leg-lbl{font-weight:600; color:var(--darkblue);}
  #symptom .sc-sev-leg-val{font-variant-numeric:tabular-nums;}
  #symptom .sc-sev-leg-row b{color:var(--darkblue); font-variant-numeric:tabular-nums;}
  #symptom .sc-skeleton{
    display:grid;
    gap:10px;
    padding:8px 0;
  }
  #symptom .sc-skeleton-bar{
    height:14px;
    border-radius:6px;
    background:linear-gradient(90deg, var(--surface-muted) 0%, var(--surface-subtle) 50%, var(--surface-muted) 100%);
    background-size:200% 100%;
    animation:skeleton-shimmer 1.2s ease-in-out infinite;
  }
  @media(max-width:880px){
    #symptom .sc-map-stage{grid-template-columns:1fr;}
    #symptom .sc-map-frame,#symptom #sc-map{min-height:320px; height:320px;}
    #symptom #map-top-list{
      height:min(200px, 36vh);
      max-height:min(200px, 36vh);
    }
    #symptom .sc-lollipop,
    #symptom .sc-ranked{
      height:min(220px, 36vh);
      max-height:min(220px, 36vh);
    }
    #symptom .sc-map-legend{max-width:calc(100% - 28px);}
    #symptom .sc-trend-table{display:none;}
    #symptom .sc-trend-cards{display:flex; flex-direction:column; gap:10px;}
    #symptom .sc-trend-card{
      border:1px solid var(--hairline);
      border-radius:10px;
      padding:12px 14px;
      background:var(--surface-subtle);
    }
    #symptom .sc-trend-card-top{
      display:flex;
      justify-content:space-between;
      gap:10px;
      align-items:flex-start;
      margin-bottom:8px;
    }
    #symptom .sc-trend-card-name{font-weight:700; color:var(--darkblue); font-size:13px;}
    #symptom .sc-trend-card-meta{
      display:flex;
      justify-content:space-between;
      gap:12px;
      align-items:center;
      font-size:12px;
      color:var(--ink-soft);
    }
  }

  /* —— Population Health —— */
  #population .ph-card,
  #population .card{
    border-radius:var(--radius-card);
    padding:var(--space-card-y) var(--space-card-x);
    transition:border-color var(--transition-ui),box-shadow var(--transition-ui);
  }
  /* Static cards: no hover elevation (avoids false affordance) */
  #population .ph-card:hover,
  #population .card:hover{
    border-color:var(--hairline);
    box-shadow:var(--shadow);
  }
  #population .ph-card--primary{
    border-color:var(--hairline-strong);
  }
  #population .ph-card--secondary{
    background:var(--card);
    box-shadow:none;
    border-color:var(--hairline);
  }
  #population .ph-card--alert{
    border-top:3px solid var(--hairline-strong);
    padding-top:20px;
  }
  #population .ph-card--alert.is-alert{
    border-top-color:var(--red);
  }
  #population .ph-card--alert.is-calm{
    border-top-color:var(--green);
  }
  #population .ph-card--alert.is-muted{
    border-top-color:var(--yellow);
  }
  #population .view-head p{max-width:720px;}
  #population .grid-2{gap:var(--space-grid); align-items:stretch;}
  #population .section-title{
    align-items:flex-start;
    gap:6px;
  }
  #population .section-title h3{
    font-size:14.5px;
    line-height:1.35;
  }
  #population .section-title .note{
    font-size:var(--text-caption);
    color:var(--ink-faint);
    font-weight:400;
    line-height:1.4;
    max-width:56ch;
  }
  #population .ph-band-label{
    margin:8px 0 12px;
    font-size:10px;
    font-weight:700;
    letter-spacing:.1em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }
  #population .ph-band-label:first-of-type{margin-top:4px;}
  #population .story-beat--open{
    padding-top:0;
  }
  #population .story-flow > .story-beat--open{
    margin-top:0;
    padding-top:0;
    border-top:none;
  }

  /* Briefing strip */
  #population .ph-briefing{
    margin:0;
    padding:14px 16px;
    background:var(--card);
    border:1px solid var(--hairline);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow);
  }
  #population .ph-briefing-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:12px 18px;
  }
  #population .ph-briefing-item{
    display:flex;
    flex-direction:column;
    gap:4px;
    min-width:0;
    padding:4px 10px 4px 12px;
    border-left:3px solid var(--hairline-strong);
  }
  #population .ph-briefing-item--warn{border-left-color:rgba(239,68,68,.55);}
  #population .ph-briefing-item--caution{border-left-color:rgba(245,158,11,.55);}
  #population .ph-briefing-item--ok{border-left-color:rgba(16,185,129,.5);}
  #population .ph-briefing-label{
    font-size:11px;
    font-weight:600;
    color:var(--ink-soft);
    letter-spacing:.02em;
  }
  #population .ph-briefing-value{
    font-size:18px;
    font-weight:700;
    color:var(--darkblue);
    line-height:1.25;
    letter-spacing:-.02em;
    font-variant-numeric:tabular-nums;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  #population .ph-briefing-item--warn .ph-briefing-value{color:var(--red);}
  #population .ph-briefing-meta{
    font-size:11px;
    color:var(--ink-faint);
    line-height:1.4;
    overflow-wrap:anywhere;
  }

  /* Lollipop charts — NCD & Hematology burden */
  #population .ph-lollipop{
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:4px 0 2px;
    max-height:min(300px, 40vh);
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  #population .ph-lollipop-row{
    display:grid;
    grid-template-columns:22px minmax(80px, 140px) 1fr 48px;
    align-items:center;
    gap:10px;
    padding:5px 8px;
    border-radius:8px;
    transition:background var(--transition-ui);
  }
  #population .ph-lollipop-row:hover{background:var(--row-hover);}
  #population .ph-lollipop-row--clickable{cursor:pointer;}
  #population .ph-lollipop-row--clickable:focus-visible{
    outline:2px solid var(--darkblue);
    outline-offset:2px;
    background:var(--row-hover);
  }
  #population .ph-lollipop-rank{
    font-size:11px;
    font-weight:700;
    color:var(--ink-faint);
    font-variant-numeric:tabular-nums;
    text-align:center;
  }
  #population .ph-lollipop-label{
    font-size:12.5px;
    font-weight:600;
    color:var(--darkblue);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #population .ph-lollipop-track{
    position:relative;
    height:6px;
    background:var(--chart-track);
    border-radius:var(--chart-radius);
  }
  #population .ph-lollipop-stem{
    height:6px;
    border-radius:var(--chart-radius);
    transition:width var(--motion-chart) var(--motion-ease-out);
  }
  #population .ph-lollipop-stem--blue{background:linear-gradient(90deg, color-mix(in srgb, var(--chart-1) 70%, #fff), var(--chart-1));}
  #population .ph-lollipop-stem--hema{background:linear-gradient(90deg, color-mix(in srgb, var(--red) 75%, #fff), var(--red));}
  #population .ph-lollipop-dot{
    position:absolute;
    top:50%;
    width:10px;
    height:10px;
    border-radius:50%;
    transform:translateY(-50%);
    border:2px solid var(--card);
    box-shadow:0 1px 3px rgba(31,41,55,.12);
    transition:left var(--motion-chart) var(--motion-ease-out);
  }
  #population .ph-lollipop-dot--blue{background:var(--blue);}
  #population .ph-lollipop-dot--hema{background:var(--red);}
  #population .ph-lollipop-val{
    font-size:12px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    text-align:right;
  }

  /* Column bars — prevalence by age band (absolute 0–100%) */
  #population .ph-bar-chart{padding:4px 0 2px;}
  #population .ph-bar-chart-inner{
    display:grid;
    grid-template-columns:36px 1fr;
    gap:8px;
    align-items:stretch;
  }
  #population .ph-bar-axis{
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    align-items:flex-end;
    height:130px;
    padding:18px 0 22px;
    font-size:10px;
    font-weight:600;
    color:var(--ink-faint);
    font-variant-numeric:tabular-nums;
    line-height:1;
  }
  #population .ph-bar-cols{
    display:flex;
    gap:8px;
    align-items:flex-end;
    height:130px;
    padding-bottom:2px;
  }
  #population .ph-bar-col{
    flex:1;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-end;
    height:100%;
    min-width:0;
    border-radius:6px;
    outline:none;
  }
  #population .ph-bar-col:hover .ph-bar-fill{opacity:.9;}
  #population .ph-bar-col:focus-visible{
    box-shadow:0 0 0 2px var(--blue-soft);
  }
  #population .ph-bar-val{
    font-size:11px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    margin-bottom:6px;
  }
  #population .ph-bar-track{
    width:100%;
    max-width:40px;
    height:100%;
    display:flex;
    align-items:flex-end;
    position:relative;
    background:var(--chart-track);
    border-radius:4px 4px 0 0;
    border:1px solid rgba(31,41,55,.04);
    overflow:hidden;
  }
  #population .ph-bar-track::before{
    content:"";
    position:absolute;
    left:0;
    right:0;
    top:50%;
    height:1px;
    background:rgba(31,41,55,.1);
    pointer-events:none;
  }
  #population .ph-bar-fill{
    position:relative;
    z-index:1;
    width:100%;
    background:var(--blue);
    border-radius:3px 3px 0 0;
    min-height:2px;
    opacity:.78;
    transition:height .4s ease, opacity var(--transition-ui);
  }
  #population .ph-bar-lbl{
    font-size:11px;
    font-weight:600;
    color:var(--ink-soft);
    margin-top:8px;
    text-align:center;
    line-height:1.2;
  }

  /* Legacy area chart hooks (kept for motion selectors) */
  #population .ph-area-wrap{position:relative; padding:8px 0 4px;}
  #population .ph-area-cols{display:flex; gap:8px; align-items:flex-end; height:130px;}

  /* Grouped horizontal bars — legacy gender (kept for any stragglers) */
  #population .ph-gender-rows{
    display:flex;
    flex-direction:column;
    gap:14px;
    padding:4px 0;
  }
  #population .ph-gender-row{
    display:grid;
    grid-template-columns:110px 1fr;
    gap:12px;
    align-items:center;
    padding:4px 0;
  }
  #population .ph-gender-cond-wrap{
    display:flex;
    flex-direction:column;
    gap:2px;
    min-width:0;
  }
  #population .ph-gender-cond{
    font-size:12.5px;
    font-weight:600;
    color:var(--darkblue);
  }
  #population .ph-gender-gap{
    font-size:10px;
    font-weight:600;
    color:var(--ink-faint);
    font-variant-numeric:tabular-nums;
  }
  #population .ph-gender-bars-inner{
    display:flex;
    flex-direction:column;
    gap:6px;
  }
  #population .ph-gender-bar-wrap{
    display:grid;
    grid-template-columns:16px 1fr 40px;
    align-items:center;
    gap:8px;
  }
  #population .ph-gender-bar-lbl{
    font-size:10px;
    font-weight:700;
    color:var(--ink-faint);
    text-transform:uppercase;
  }
  #population .ph-gender-bar-track{
    background:var(--chart-track);
    border-radius:4px;
    height:14px;
    overflow:hidden;
    border:1px solid rgba(31,41,55,.04);
  }
  #population .ph-gender-bar{
    height:100%;
    border-radius:4px;
    transition:width .4s ease;
    min-width:2px;
  }
  #population .ph-gender-bar--male{background:var(--blue);}
  #population .ph-gender-bar--female{background:var(--pink);}
  #population .ph-gender-bar-val{
    font-size:11px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    text-align:right;
  }

  /* Dumbbell — prevalence by gender (M vs F gap) */
  #population .ph-dumbbell{padding:2px 0 4px;}
  #population .ph-dumbbell-rows{
    display:flex;
    flex-direction:column;
    gap:4px;
    max-height:min(340px, 44vh);
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    padding-right:2px;
  }
  #population .ph-dumbbell-row{
    display:grid;
    grid-template-columns:minmax(88px, 120px) 1fr auto;
    gap:12px;
    align-items:center;
    padding:8px 8px;
    border-radius:8px;
    transition:background var(--transition-ui);
    outline:none;
  }
  #population .ph-dumbbell-row:hover,
  #population .ph-dumbbell-row:focus-visible{background:var(--row-hover);}
  #population .ph-dumbbell-row:focus-visible{
    box-shadow:0 0 0 2px var(--blue-soft);
  }
  #population .ph-dumbbell-label{
    display:flex;
    flex-direction:column;
    gap:2px;
    min-width:0;
  }
  #population .ph-dumbbell-cond{
    font-size:12.5px;
    font-weight:600;
    color:var(--darkblue);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #population .ph-dumbbell-gap{
    font-size:10px;
    font-weight:600;
    color:var(--ink-faint);
    font-variant-numeric:tabular-nums;
  }
  #population .ph-dumbbell-gap.is-f{color:#9D174D;}
  #population .ph-dumbbell-gap.is-m{color:#115E59;}
  #population .ph-dumbbell-gap.is-parity{color:var(--ink-faint);}
  #population .ph-dumbbell-track{
    position:relative;
    height:14px;
    background:var(--chart-track);
    border-radius:7px;
    border:1px solid rgba(31,41,55,.04);
  }
  #population .ph-dumbbell-range{
    position:absolute;
    top:50%;
    height:3px;
    transform:translateY(-50%);
    background:rgba(31,41,55,.18);
    border-radius:2px;
    min-width:2px;
  }
  #population .ph-dumbbell-dot{
    position:absolute;
    top:50%;
    width:11px;
    height:11px;
    border-radius:50%;
    transform:translate(-50%, -50%);
    border:2px solid var(--card);
    box-shadow:0 1px 3px rgba(31,41,55,.18);
    z-index:1;
  }
  #population .ph-dumbbell-dot--male{background:var(--chart-1);}
  #population .ph-dumbbell-dot--female{background:var(--chart-4);}
  #population .ph-dumbbell-vals{
    display:flex;
    flex-direction:column;
    gap:1px;
    align-items:flex-end;
    min-width:44px;
    font-variant-numeric:tabular-nums;
  }
  #population .ph-dumbbell-val{
    font-size:11px;
    font-weight:700;
    line-height:1.25;
  }
  #population .ph-dumbbell-val--male{color:var(--chart-1);}
  #population .ph-dumbbell-val--female{color:var(--chart-4);}
  #population .ph-legend-dot{
    width:10px !important;
    height:10px !important;
    border-radius:50% !important;
  }
  #population .ph-legend-dot--male{background:var(--chart-1);}
  #population .ph-legend-dot--female{background:var(--chart-4);}
  #population .ph-legend-note{
    margin-left:auto;
    font-size:10.5px;
    color:var(--ink-faint);
    font-weight:500;
  }
  #population .ph-legend-inline{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    margin:0 0 12px;
    padding:0 0 10px;
    border-bottom:1px solid var(--hairline);
    border-top:none;
    gap:18px;
    font-size:12px;
    font-weight:500;
  }
  #population .ph-legend-inline i{
    width:11px;
    height:11px;
    border-radius:3px;
    border:1px solid rgba(31,41,55,.08);
    display:inline-block;
    vertical-align:middle;
    margin-right:6px;
  }

  /* Screening package mix — segmented progress */
  #population .ph-pkg-mix{
    display:flex;
    flex-direction:column;
    gap:14px;
    padding:4px 0 2px;
  }
  #population .ph-pkg-summary{
    display:flex;
    align-items:baseline;
    gap:8px;
  }
  #population .ph-pkg-total{
    font-size:22px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    letter-spacing:-.02em;
    line-height:1;
  }
  #population .ph-pkg-total-lbl{
    font-size:12px;
    color:var(--ink-soft);
    font-weight:500;
  }
  #population .ph-pkg-track{
    display:flex;
    height:14px;
    border-radius:var(--chart-radius);
    overflow:hidden;
    gap:2px;
    background:var(--chart-track);
    padding:2px;
  }
  #population .ph-pkg-seg{
    display:block;
    height:100%;
    border-radius:4px;
    min-width:2px;
    transition:filter var(--transition-ui);
  }
  #population .ph-pkg-seg:hover{opacity:.88;}
  #population .ph-pkg-legend{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  #population .ph-pkg-leg-row{
    display:grid;
    grid-template-columns:12px 1fr auto auto;
    gap:10px;
    align-items:center;
    font-size:12.5px;
  }
  #population .ph-pkg-swatch{
    width:8px;
    height:8px;
    border-radius:2px;
    flex-shrink:0;
  }
  #population .ph-pkg-leg-lab{
    color:var(--ink-soft);
    font-weight:500;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #population .ph-pkg-leg-val{
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
  }
  #population .ph-pkg-leg-pct{
    font-weight:600;
    color:var(--ink-faint);
    font-variant-numeric:tabular-nums;
    min-width:36px;
    text-align:right;
  }
  #population .ph-demo-gender{margin-top:14px; padding-top:12px; border-top:1px solid var(--hairline);}
  #population .ph-demo-subhead{
    margin:0 0 8px;
    font-size:11px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }
  #population .ph-demo-age{padding:2px 0 0;}
  #population .ph-share-rows{
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  #population .ph-share-row{
    display:grid;
    grid-template-columns:minmax(52px, 72px) 1fr minmax(64px, 76px);
    gap:10px;
    align-items:center;
    padding:4px 2px;
    border-radius:6px;
    outline:none;
  }
  #population .ph-share-row:hover,
  #population .ph-share-row:focus-visible{background:var(--row-hover);}
  #population .ph-share-row:focus-visible{box-shadow:0 0 0 2px var(--blue-soft);}
  #population .ph-share-lbl{
    font-size:12px;
    font-weight:600;
    color:var(--darkblue);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #population .ph-share-track{
    height:10px;
    background:var(--chart-track);
    border-radius:5px;
    overflow:hidden;
    border:1px solid rgba(31,41,55,.04);
  }
  #population .ph-share-fill{
    height:100%;
    background:var(--darkblue);
    border-radius:4px;
    opacity:.72;
    min-width:2px;
    transition:width .4s ease;
  }
  #population .ph-share-vals{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:0;
    line-height:1.2;
    font-variant-numeric:tabular-nums;
  }
  #population .ph-share-vals b{
    font-size:12px;
    font-weight:700;
    color:var(--darkblue);
  }
  #population .ph-share-vals em{
    font-style:normal;
    font-size:10px;
    font-weight:600;
    color:var(--ink-faint);
  }
  #population .ph-burden-pair{align-items:stretch;}
  #population .ph-burden-pair .ph-card,
  #population .ph-demo-pair .ph-card,
  #population .ph-screen-pair .ph-card{height:100%;}
  #population .ph-seg-band{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-top:4px;
    padding:14px;
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-radius:var(--radius-card);
  }
  #population .ph-seg-band > .ph-band-label{
    margin:0;
  }
  #population .ph-seg-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:var(--space-grid);
  }
  #population .ph-card--seg{
    box-shadow:none;
    background:var(--card);
    margin:0;
  }
  #population .ph-card--seg .ph-heatmap{padding:2px 0 0;}
  #population .ph-card--seg .ph-heat-cell{min-height:36px;}
  #population .ph-card--mix #ph-test-package{min-height:120px;}
  #population .ph-cond-heat-scroll{
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    max-height:min(420px, 55vh);
    margin:2px 0 0;
    border:1px solid var(--hairline);
    border-radius:8px;
    padding:8px 10px;
    background:var(--surface-subtle);
  }
  #population .ph-cond-heat-grid .ph-heatmap-col-hdr{
    font-size:10.5px;
    line-height:1.25;
    white-space:normal;
    word-break:break-word;
    hyphens:auto;
  }
  #population .ph-cond-heat-grid .ph-heatmap-row-hdr{
    font-size:12px;
  }
  #population .ph-cond-heat-grid .ph-heat-cell{min-height:36px;}
  #population #ph-condition-heatmap > .ph-heatmap-scale{
    margin-top:10px;
    padding-top:10px;
  }

  /* Early warning banner */
  #population .ph-watch{
    display:flex;
    align-items:flex-start;
    gap:12px;
    padding:14px 16px;
    border-radius:10px;
    margin-bottom:16px;
    border:1px solid var(--hairline);
    background:var(--surface-subtle);
  }
  #population .ph-watch.up{
    background:var(--red-soft);
    border-color:rgba(239,68,68,.2);
  }
  #population .ph-watch.calm{
    background:var(--green-soft);
    border-color:rgba(16,185,129,.2);
  }
  #population .ph-watch .ico{
    flex-shrink:0;
    width:30px;
    height:30px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:var(--radius-sm);
    font-size:12px;
    font-weight:700;
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
  }
  #population .ph-watch.up .ico{border-color:#F4C4C4; color:var(--red); background:var(--red-soft);}
  #population .ph-watch.calm .ico{border-color:#B8E6D0; color:var(--green); background:var(--green-soft);}
  #population .ph-watch .txt{font-size:13px; color:var(--ink-soft); line-height:1.55;}
  #population .ph-watch .txt b{color:var(--darkblue); font-size:14px;}

  /* Symptom trend sparkline table */
  #population .ph-trend-table{margin-top:4px;}
  #population .ph-trend-table th{
    background:var(--surface-subtle);
    font-size:10px;
    letter-spacing:.08em;
    text-transform:uppercase;
    padding:12px 14px;
    font-weight:700;
    color:var(--ink-soft);
  }
  #population .ph-trend-table td{
    padding:12px 14px;
    font-variant-numeric:tabular-nums;
  }
  #population .ph-trend-table tbody tr:nth-child(even){background:var(--surface-subtle);}
  #population .ph-trend-table tbody tr:hover{background:var(--row-hover);}
  #population .ph-trend-table td.sym{color:var(--darkblue); font-weight:700;}
  #population .ph-trend-footnote{
    margin:10px 0 0;
    font-size:11px;
    color:var(--ink-faint);
    line-height:1.45;
  }
  #population .spark{height:36px;}
  #population .ph-trend-table .ph-col-num{text-align:right;}
  #population .ph-trend-table th.ph-col-num{text-align:right;}
  #population .ph-status-chip{
    display:inline-block;
    font-size:11px;
    font-weight:700;
    letter-spacing:.03em;
    text-transform:uppercase;
    padding:3px 8px;
    border-radius:4px;
    border:1px solid var(--hairline);
    background:var(--card);
    color:var(--ink-soft);
  }
  #population .ph-status-chip--warn{
    background:var(--red-soft);
    border-color:rgba(239,68,68,.25);
    color:#B91C1C;
  }
  #population .ph-status-chip--rise{
    background:var(--yellow-soft);
    border-color:rgba(245,158,11,.25);
    color:#92400E;
  }
  #population .ph-status-chip--down{
    background:var(--blue-soft);
    border-color:rgba(15,118,110,.2);
    color:#115E59;
  }
  #population .ph-status-chip--calm{
    background:var(--green-soft);
    border-color:rgba(16,185,129,.2);
    color:var(--green);
  }

  /* Ward risk register */
  #population .ph-ward-section{
    background:var(--card);
    border:1px solid var(--hairline-strong);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow);
    padding:var(--space-card-y) var(--space-card-x);
  }
  #population .ph-ward-stats{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:12px;
    padding-bottom:12px;
    border-bottom:1px solid var(--hairline);
  }
  #population .ph-ward-stat{
    display:flex;
    flex-direction:column;
    gap:2px;
    padding:10px 14px;
    border-radius:8px;
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-left-width:3px;
    min-width:88px;
  }
  #population .ph-ward-stat.risk-high{
    border-left-color:var(--red);
    background:var(--red-soft);
  }
  #population .ph-ward-stat.risk-elevated{
    border-left-color:var(--orange);
    background:var(--orange-soft);
  }
  #population .ph-ward-stat.risk-moderate{
    border-left-color:var(--yellow);
    background:var(--yellow-soft);
  }
  #population .ph-ward-stat.risk-low{
    border-left-color:var(--green);
    background:var(--green-soft);
  }
  #population .ph-ward-stat-n{
    font-size:18px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    line-height:1.2;
  }
  #population .ph-ward-stat-lbl{
    font-size:11px;
    color:var(--ink-soft);
    font-weight:600;
  }
  #population .ph-ward-stat--highlight{
    margin-left:auto;
    background:var(--blue-soft);
    border-color:rgba(15,118,110,.2);
    border-left-color:var(--blue);
  }
  #population .ph-ward-grid-scroll{
    max-height:min(340px, 42vh);
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    padding:2px 2px 4px;
    margin:0 -2px;
  }
  #population .ph-ward-grid{
    gap:8px;
    padding:2px;
    grid-template-columns:repeat(8, minmax(0, 1fr));
  }
  #population .ph-ward-grid .ward-tile{
    border-radius:8px;
    border:1px solid rgba(31,41,55,.1);
    transition:box-shadow var(--transition-ui), border-color var(--transition-ui);
    padding:10px 6px 8px;
  }
  #population .ph-ward-grid .ward-tile:hover{
    transform:none;
    box-shadow:0 2px 8px rgba(31,41,55,.12);
    border-color:rgba(31,41,55,.18);
  }
  #population .ph-ward-grid .ward-tile .code{font-size:14px; letter-spacing:.02em; font-weight:700;}
  #population .ph-ward-grid .ward-tile .score{font-size:11px; margin-top:2px; opacity:.92; font-weight:700;}
  #population .ph-ward-grid .ward-tile .ward-dom{
    font-size:9px;
    font-weight:500;
    line-height:1.2;
    margin-top:4px;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
    opacity:.95;
    padding:0 2px;
  }
  #population .ph-ward-tier{
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.06em;
    margin-top:4px;
    opacity:.9;
  }
  #population .ph-legend{
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid var(--hairline);
    gap:16px;
    font-size:12px;
  }
  #population .ph-legend i,
  #population .ph-legend .legend-swatch{
    width:11px;
    height:11px;
    border-radius:3px;
    border:1px solid rgba(31,41,55,.08);
  }

  /* Ward tooltip */
  #ward-tooltip.ph-ward-tooltip,
  .ph-ward-tooltip{
    position:fixed;
    z-index:200;
    background:var(--card);
    border:1px solid var(--hairline-strong);
    border-radius:10px;
    padding:12px 14px;
    font-size:12.5px;
    line-height:1.5;
    color:var(--black);
    box-shadow:var(--shadow-elevated);
    max-width:280px;
    pointer-events:none;
  }
  .ph-tip-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    margin-bottom:8px;
  }
  .ph-tip-header strong{color:var(--darkblue); font-size:13px;}
  .ph-tip-row{color:var(--ink-soft); margin-bottom:4px;}
  .ph-tip-metrics{
    display:flex;
    gap:12px;
    margin:8px 0;
    font-weight:600;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
  }
  .ph-tip-footer{
    font-size:11px;
    color:var(--ink-faint);
    padding-top:6px;
    border-top:1px solid var(--hairline);
  }

  /* Demographic heatmap */
  .ph-heatmap-grid{
    display:grid;
    grid-template-columns:72px repeat(5, 1fr);
    gap:4px;
    padding:8px 0 4px;
  }
  .ph-heatmap-corner{grid-column:1;}
  .ph-heatmap-col-hdr{
    font-size:11px;
    font-weight:700;
    color:var(--ink-soft);
    text-align:center;
    padding:6px 2px;
  }
  .ph-heatmap-row-hdr{
    font-size:11px;
    font-weight:700;
    color:var(--darkblue);
    display:flex;
    align-items:center;
    padding-right:8px;
  }
  .ph-heat-cell{
    border-radius:6px;
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid rgba(31,41,55,.06);
    transition:box-shadow var(--transition-ui);
    cursor:default;
  }
  .ph-heat-cell:hover{
    transform:none;
    box-shadow:0 1px 4px rgba(31,41,55,.1);
    z-index:1;
  }
  .ph-heat-cell:focus-visible{
    outline:2px solid var(--darkblue);
    outline-offset:1px;
  }
  .ph-heat-cell--none{background:var(--surface-subtle) !important;}
  .ph-heat-val{
    font-size:12px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
  }
  .ph-heat-cell--none .ph-heat-val{color:var(--ink-faint); font-weight:500;}
  .ph-heatmap-scale{
    display:flex;
    align-items:center;
    gap:10px;
    margin-top:14px;
    padding-top:12px;
    border-top:1px solid var(--hairline);
    font-size:11px;
    color:var(--ink-faint);
  }
  .ph-heatmap-scale-bar{
    flex:1;
    max-width:120px;
    height:6px;
    border-radius:3px;
    background:linear-gradient(90deg, var(--chart-track) 0%, var(--blue) 100%);
  }
  .ph-heatmap-scale-bar--ncd{
    background:linear-gradient(90deg, var(--chart-track) 0%, var(--blue) 100%);
  }
  .ph-heatmap-scale-bar--hema{
    background:linear-gradient(90deg, var(--chart-track) 0%, var(--red) 100%);
  }

  /* Enterprise tables */
  #population .ph-table-wrap{
    max-height:320px;
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    border:1px solid var(--hairline);
    border-radius:8px;
    margin-top:4px;
  }
  #population .ph-table-wrap--outreach{
    max-height:380px;
  }
  #population .ph-table{
    min-width:640px;
    margin:0;
    border-collapse:separate;
    border-spacing:0;
  }
  #population .ph-table th{
    background:var(--surface-muted);
    font-size:10.5px;
    letter-spacing:.04em;
    text-transform:uppercase;
    padding:10px 12px;
    position:sticky;
    top:0;
    z-index:2;
    border-bottom:1px solid var(--hairline-strong);
    box-shadow:0 1px 0 rgba(31,41,55,.04);
    font-weight:700;
    color:var(--ink-soft);
    white-space:nowrap;
  }
  #population .ph-table td{
    padding:10px 12px;
    font-size:13px;
    line-height:1.45;
    vertical-align:middle;
    border-bottom:1px solid var(--hairline);
  }
  #population .ph-table tbody tr:last-child td{border-bottom:none;}
  #population .ph-table tbody tr:nth-child(even){background:var(--surface-subtle);}
  #population .ph-table tbody tr{
    transition:background var(--transition-ui);
  }
  #population .ph-table tbody tr:hover{background:var(--row-hover);}
  #population .ph-table td b{color:var(--darkblue); font-weight:700;}
  #population .ph-table .ph-col-num{text-align:right;}
  #population .ph-table th.ph-col-num{text-align:right;}
  #population .ph-table .ph-col-ward,
  #population .ph-table th.ph-col-ward{
    position:sticky;
    left:0;
    z-index:1;
    background:inherit;
  }
  #population .ph-table thead th.ph-col-ward{
    z-index:3;
    background:var(--surface-muted);
  }
  #population .ph-table tbody tr:nth-child(even) .ph-col-ward{background:var(--surface-subtle);}
  #population .ph-table tbody tr:hover .ph-col-ward{background:var(--row-hover);}
  #population .ph-table tbody tr:not(:nth-child(even)) .ph-col-ward{background:var(--card);}
  #population .ph-empty-row td{
    padding:0;
    border:none;
    background:transparent !important;
  }
  #population .ph-empty-row:hover{background:transparent !important;}
  #population .ph-empty-row .empty-state{
    border:none;
    border-radius:0;
    margin:0;
  }
  #population .ph-cell-muted{color:var(--ink-faint); font-size:12.5px;}
  #population .ph-rank{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:20px;
    height:20px;
    border-radius:4px;
    background:var(--chart-track);
    font-size:10px;
    font-weight:700;
    color:var(--ink-soft);
    margin-right:8px;
    vertical-align:middle;
  }

  /* Risk badges */
  #population .ph-risk-badge,
  .ph-risk-badge{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:4px 10px;
    border-radius:6px;
    background:var(--risk-color, var(--blue));
    color:#fff;
    font-size:11px;
    font-weight:700;
    box-shadow:0 1px 2px rgba(31,41,55,.12);
    white-space:nowrap;
  }
  #population .ph-risk-score{font-variant-numeric:tabular-nums;}
  #population .ph-risk-lbl{
    font-size:9px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
    opacity:.9;
  }

  /* Condition & action chips */
  #population .ph-cond-chip{
    display:inline-block;
    font-size:11.5px;
    font-weight:600;
    padding:4px 10px;
    border-radius:6px;
    background:var(--chart-track);
    color:var(--darkblue);
    border:1px solid var(--hairline);
    white-space:nowrap;
  }
  #population .ph-cond-chip--hema{
    background:var(--red-soft);
    border-color:rgba(239,68,68,.15);
    color:var(--red);
  }
  #population .ph-cond-chip--ncd{
    background:var(--blue-soft);
    border-color:rgba(15,118,110,.15);
    color:#115E59;
  }
  #population .ph-ward-chip{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:28px;
    padding:3px 8px;
    border-radius:4px;
    background:var(--darkblue);
    color:#fff;
    font-size:11px;
    font-weight:700;
  }
  #population .ph-action-chip{
    display:block;
    font-size:13px;
    font-weight:600;
    color:var(--darkblue);
    line-height:1.45;
    padding:2px 0;
    white-space:normal;
  }
  #population .ph-table--outreach .ph-col-action{
    min-width:200px;
  }
  #population .ph-table--outreach td.ph-col-action{
    padding-top:14px;
    padding-bottom:14px;
  }
  #population .ph-alert-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:24px;
    padding:2px 8px;
    border-radius:4px;
    background:var(--red-soft);
    color:var(--red);
    font-weight:700;
    font-size:12px;
    font-variant-numeric:tabular-nums;
  }

  /* Inline micro bars for table percentages */
  #population .ph-micro-bar{
    display:inline-grid;
    grid-template-columns:1fr auto;
    align-items:center;
    gap:8px;
    min-width:100px;
    position:relative;
    height:18px;
    background:var(--chart-track);
    border-radius:4px;
    overflow:hidden;
    border:1px solid rgba(31,41,55,.04);
    padding:0 6px 0 0;
  }
  #population .ph-micro-bar-fill{
    position:absolute;
    left:0;
    top:0;
    bottom:0;
    border-radius:3px;
    opacity:.5;
    transition:width .4s ease;
  }
  #population .ph-micro-bar-fill--hema{background:var(--red);}
  #population .ph-micro-bar-fill--ncd{background:var(--blue);}
  #population .ph-micro-bar-txt{
    position:relative;
    z-index:1;
    font-size:11px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    text-align:right;
    grid-column:2;
    padding-right:2px;
  }

  #population .ph-export{
    margin:0 0 8px;
  }
  #population .ph-export .export-bar{
    box-shadow:none;
    border-radius:var(--radius-card);
    padding:12px 16px;
  }
  #population .ph-export .export-btn:hover{
    transform:none;
    box-shadow:none;
  }

  #population .empty-state{margin-top:4px;}
  #population #symptom-trends .empty-state{min-height:88px;}

  @media (max-width: 640px){
    #population .ph-briefing-grid{grid-template-columns:1fr;}
    #population .ph-ward-grid{grid-template-columns:repeat(3, 1fr);}
    #population .ph-burden-pair,
    #population .ph-demo-pair,
    #population .ph-screen-pair{grid-template-columns:1fr;}
  }

  @media(prefers-reduced-motion:reduce){
    #population .ph-lollipop-stem,
    #population .ph-lollipop-dot,
    #population .ph-bar-fill,
    #population .ph-gender-bar,
    #population .ph-dumbbell-dot,
    #population .ph-dumbbell-range,
    #population .ph-micro-bar-fill,
    #population .ph-pkg-seg,
    #population .ph-share-fill{
      transition:none !important;
    }
    #population .ph-ward-grid .ward-tile:hover,
    .ph-heat-cell:hover{
      box-shadow:none;
    }
  }
  /* —— Lab Intelligence —— */
  #lab .li-band{margin:0 0 12px;}
  #lab .li-band:last-child{margin-bottom:8px;}
  #lab .li-band-label{
    margin:0 0 10px;
    font-size:11px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }
  #lab .li-band--action .li-band-label{color:var(--red);}
  #lab .li-band .section{margin-bottom:0;}
  #lab .view-head{margin-bottom:var(--space-view-head-mb); padding-bottom:var(--space-view-head-pb);}
  #lab .view-head p{max-width:720px;}
  #lab .grid-2{gap:var(--space-grid); align-items:stretch;}

  #lab .li-card,
  #lab .card{
    border-radius:var(--radius-card);
    padding:var(--space-card-y) var(--space-card-x);
    transition:border-color var(--transition-ui);
  }
  #lab .li-card--static:hover,
  #lab .li-card--static.card:hover{
    border-color:var(--hairline);
    box-shadow:var(--shadow);
  }
  #lab .li-card--critical{
    border-top:3px solid var(--red);
    padding-top:14px;
    box-shadow:var(--shadow);
  }
  #lab .li-card--signal{
    border-top:3px solid var(--blue);
    padding-top:14px;
  }
  #lab .li-signal-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:var(--space-grid);
    margin-top:12px;
  }
  #lab .li-signal-col{
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-radius:var(--radius-sm,6px);
    padding:12px 14px;
  }
  #lab .li-signal-title{
    font-size:11px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin-bottom:12px;
    display:flex;
    align-items:baseline;
    gap:8px;
  }
  #lab .li-signal-sub{
    font-weight:400;
    text-transform:none;
    letter-spacing:0;
    font-size:11px;
  }
  #lab .li-signal-row{
    display:grid;
    grid-template-columns:1fr auto auto;
    align-items:center;
    gap:10px;
    padding:7px 0;
    border-bottom:1px solid var(--hairline);
  }
  #lab .li-signal-row:last-child{border-bottom:0;}
  #lab .li-signal-marker{font-size:13px; color:var(--darkblue); white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
  @media(max-width:700px){
    #lab .li-signal-grid{grid-template-columns:1fr;}
  }
  #lab .li-card--critical:hover{
    border-top-color:var(--red);
  }
  #lab .section-title h3{letter-spacing:-.01em;}
  #lab .section-title .note{max-width:520px; line-height:1.45;}

  #lab .lab-kpi-grid{
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:12px;
    margin:0;
  }
  #lab .lab-kpi-grid .metric-card{
    height:100%;
    min-height:88px;
  }
  #lab .lab-kpi-grid .metric-card__value{font-weight:700;}
  #lab .lab-kpi-grid .metric-card__label{
    font-size:11.5px;
    font-weight:600;
    color:var(--darkblue);
  }
  #lab .lab-kpi-grid .metric-card__sub{
    font-size:10.5px;
    font-weight:400;
    color:var(--ink-faint);
  }
  @media (max-width: 1200px){
    #lab .lab-kpi-grid{grid-template-columns:repeat(3, minmax(0, 1fr));}
  }
  @media (max-width: 720px){
    #lab .lab-kpi-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
  }
  @media (max-width: 480px){
    #lab .lab-kpi-grid{grid-template-columns:1fr;}
  }
  #lab .li-inline-note{
    margin:0 0 10px;
    font-size:12px;
    color:var(--ink-faint);
    line-height:1.4;
  }

  /* Severity — 100% stacked bar */
  #lab .li-sev-headline{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-bottom:14px;
  }
  #lab .li-sev-stat{
    display:flex;
    flex-direction:column;
    gap:2px;
    padding:8px 12px;
    border-radius:8px;
    border:1px solid var(--hairline);
    background:var(--surface-subtle);
    min-width:76px;
  }
  #lab .li-sev-stat-n{
    font-size:18px;
    font-weight:700;
    font-variant-numeric:tabular-nums;
    line-height:1.2;
    color:var(--darkblue);
  }
  #lab .li-sev-stat-lbl{font-size:10.5px; font-weight:600; color:var(--ink-soft);}
  #lab .li-sev-stat--warn .li-sev-stat-n{color:var(--red);}
  #lab .li-sev-stat--warn{background:var(--red-soft); border-color:rgba(239,68,68,.15);}
  #lab .li-sev-stat--severe .li-sev-stat-n{color:#9A3412;}
  #lab .li-sev-stat--severe{background:var(--orange-soft); border-color:rgba(249,115,22,.18);}
  #lab .li-sev-stat--warn-soft .li-sev-stat-n{color:#92400E;}
  #lab .li-sev-stat--warn-soft{background:var(--yellow-soft); border-color:rgba(245,158,11,.18);}
  #lab .li-sev-stat--muted .li-sev-stat-n{color:var(--darkblue);}
  #lab .li-sev-stack{
    display:flex;
    height:28px;
    border-radius:8px;
    overflow:hidden;
    border:1px solid var(--hairline);
    box-shadow:inset 0 1px 2px rgba(31,41,55,.04);
  }
  #lab .li-sev-seg{
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:3px;
    transition:opacity var(--transition-ui);
  }
  #lab .li-sev-seg--priority{min-width:6px;}
  #lab .li-sev-seg span{
    font-size:10px;
    font-weight:700;
    color:#fff;
    text-shadow:0 1px 2px rgba(0,0,0,.2);
  }
  #lab .li-sev-seg:hover{opacity:.92;}
  #lab .li-sev-legend{
    display:flex;
    flex-wrap:wrap;
    gap:4px 14px;
    margin-top:12px;
    padding-top:10px;
    border-top:1px solid var(--hairline);
  }
  #lab .li-sev-leg-row{
    display:inline-flex;
    gap:6px;
    align-items:center;
    font-size:12px;
    padding:3px 4px;
    border-radius:4px;
  }
  #lab .li-sev-leg-row--priority .li-sev-leg-lbl{font-weight:700;}
  #lab .li-sev-swatch{width:8px; height:8px; border-radius:2px; flex-shrink:0;}
  #lab .li-sev-leg-lbl{color:var(--darkblue); font-weight:600;}
  #lab .li-sev-leg-row b{font-variant-numeric:tabular-nums; color:var(--ink-soft); font-weight:600; font-size:11.5px;}

  /* Lollipop — abnormal markers */
  #lab .li-lollipop{display:flex; flex-direction:column; gap:6px; padding:4px 0 2px; max-height:300px; overflow-y:auto;}
  #lab .li-lollipop-row{
    display:grid;
    grid-template-columns:22px minmax(88px, 1.1fr) 1.2fr 40px;
    align-items:center;
    gap:10px;
    padding:5px 8px;
    border-radius:8px;
    transition:background var(--transition-ui);
  }
  #lab .li-lollipop-row:hover{background:var(--surface-subtle);}
  #lab .li-lollipop-row--lead .li-lollipop-rank{color:var(--darkblue);}
  #lab .li-lollipop-row--lead .li-lollipop-stem{background:var(--darkblue); height:3px;}
  #lab .li-lollipop-row--lead .li-lollipop-dot{background:var(--darkblue); width:11px; height:11px;}
  #lab .li-lollipop-row--lead .li-lollipop-label{font-weight:700;}
  #lab .li-lollipop-rank{font-size:11px; font-weight:700; color:var(--ink-faint); text-align:center;}
  #lab .li-lollipop-label{font-size:12px; font-weight:600; color:var(--darkblue); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  #lab .li-lollipop-track{position:relative; height:3px; background:var(--chart-track); border-radius:2px;}
  #lab .li-lollipop-track--rate{background:color-mix(in srgb, var(--yellow-soft) 70%, var(--chart-track));}
  #lab .li-lollipop-stem{height:3px; background:var(--blue); border-radius:2px; transition:width .4s ease; opacity:.85;}
  #lab .li-lollipop-track--rate .li-lollipop-stem{background:var(--orange); opacity:.9;}
  #lab .li-lollipop-track--rate .li-lollipop-dot{background:var(--orange);}
  #lab .li-lollipop-dot{
    position:absolute; top:50%; width:9px; height:9px; border-radius:50%;
    background:var(--blue); transform:translateY(-50%);
    border:2px solid var(--card); box-shadow:0 1px 3px rgba(31,41,55,.12);
  }
  #lab .li-lollipop-val{font-size:12px; font-weight:700; color:var(--darkblue); text-align:right; font-variant-numeric:tabular-nums;}

  /* Contextual marker rows — abnormal count with optional total */
  #lab .li-marker-context .li-marker-row,
  #lab .li-marker-context.li-lollipop .li-lollipop-row{
    grid-template-columns:22px minmax(96px, 1.15fr) minmax(72px, 1.1fr) minmax(72px, auto) auto;
    align-items:center;
    column-gap:10px;
    row-gap:2px;
    padding:7px 8px;
  }
  #lab .li-marker-stats{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:1px;
    min-width:0;
    line-height:1.2;
  }
  #lab .li-marker-ratio{
    font-size:12px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
    letter-spacing:-.01em;
  }
  #lab .li-marker-ratio b{font-weight:700;}
  #lab .li-marker-unit{
    font-size:10px;
    font-weight:600;
    color:var(--ink-soft);
    letter-spacing:.01em;
  }
  #lab .li-marker-sep{
    margin:0 2px;
    color:var(--ink-faint);
    font-weight:500;
  }
  #lab .li-marker-den{
    color:var(--ink-soft);
    font-weight:600;
  }
  #lab .li-marker-meta{
    font-size:10px;
    font-weight:500;
    color:var(--ink-faint);
    white-space:nowrap;
  }
  #lab .li-marker-pct{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:34px;
    padding:2px 6px;
    border-radius:var(--radius-sm);
    background:var(--orange-soft);
    color:#9A3412;
    font-size:10.5px;
    font-weight:700;
    font-variant-numeric:tabular-nums;
    line-height:1.2;
  }
  #lab .li-marker-row:not(:has(.li-marker-pct)),
  #lab .li-marker-context .li-lollipop-row:not(:has(.li-marker-pct)){
    grid-template-columns:22px minmax(96px, 1.15fr) minmax(72px, 1.1fr) minmax(72px, auto);
  }

  /* Abnormal markers — service → parameter drill-down */
  #lab .li-marker-drill{display:flex; flex-direction:column; gap:6px; padding:4px 0 2px; max-height:320px; overflow-y:auto;}
  #lab .li-marker-group{border-radius:8px; transition:background var(--transition-ui);}
  #lab .li-marker-group[data-expanded="true"]{background:var(--surface-subtle);}
  #lab .li-marker-service{
    display:grid;
    grid-template-columns:22px minmax(88px, 1.1fr) 1.2fr 40px 16px;
    align-items:center;
    gap:10px;
    width:100%;
    padding:5px 8px;
    border:0;
    background:transparent;
    text-align:left;
    cursor:pointer;
    border-radius:8px;
    font:inherit;
    color:inherit;
  }
  #lab .li-marker-context .li-marker-service{
    grid-template-columns:22px minmax(96px, 1.15fr) minmax(72px, 1.1fr) minmax(72px, auto) auto 16px;
    padding:7px 8px;
  }
  #lab .li-marker-context .li-marker-service:not(:has(.li-marker-pct)){
    grid-template-columns:22px minmax(96px, 1.15fr) minmax(72px, 1.1fr) minmax(72px, auto) 16px;
  }
  #lab .li-marker-service:hover:not(:disabled){background:rgba(15,118,110,.06);}
  #lab .li-marker-service:disabled{cursor:default;}
  #lab .li-marker-service-label{font-size:12px; font-weight:600; color:var(--darkblue); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  #lab .li-marker-chevron{
    width:8px; height:8px; border-right:2px solid var(--ink-faint); border-bottom:2px solid var(--ink-faint);
    transform:rotate(-45deg); transition:transform .2s ease; margin-top:-2px;
  }
  #lab .li-marker-group[data-expanded="true"] .li-marker-chevron{transform:rotate(45deg); margin-top:2px;}
  #lab .li-marker-group--lead .li-marker-service-label{font-weight:700;}
  #lab .li-marker-group--lead .li-lollipop-stem{background:var(--darkblue); height:3px;}
  #lab .li-marker-group--lead .li-lollipop-track--rate .li-lollipop-stem{background:var(--orange);}
  #lab .li-marker-params{
    display:flex; flex-direction:column; gap:4px;
    padding:2px 8px 8px 40px;
  }
  #lab .li-marker-param{
    display:grid;
    grid-template-columns:minmax(72px, 1fr) 1.2fr auto;
    align-items:center;
    gap:8px;
    padding:3px 0;
  }
  #lab .li-marker-param-name{font-size:11px; font-weight:600; color:var(--ink-soft); overflow:hidden; text-overflow:ellipsis; white-space:nowrap;}
  #lab .li-marker-param-track{height:2px; background:var(--chart-track); border-radius:2px;}
  #lab .li-marker-param-bar{height:2px; background:var(--yellow); border-radius:2px; opacity:.9;}
  #lab .li-marker-param-val{
    font-size:11px; font-weight:700; color:var(--ink-soft); text-align:right;
    font-variant-numeric:tabular-nums; white-space:nowrap;
  }
  #lab .li-marker-param-val .li-marker-sep{margin:0 2px; color:var(--ink-faint); font-weight:500;}
  #lab .li-marker-param-val small{display:block; font-size:10px; font-weight:500; color:var(--ink-faint);}

  /* Critical alert feed */
  #lab .li-watch{
    display:flex; align-items:flex-start; gap:12px;
    padding:12px 14px; border-radius:10px; margin-bottom:12px;
    border:1px solid var(--hairline); background:var(--surface-subtle);
  }
  #lab .li-watch.up{background:var(--red-soft); border-color:rgba(239,68,68,.18);}
  #lab .li-watch.calm{background:var(--green-soft); border-color:rgba(16,185,129,.18); margin-bottom:0;}
  #lab .li-watch .ico{
    flex-shrink:0; width:26px; height:26px; display:flex; align-items:center; justify-content:center;
    border-radius:50%; font-size:12px; font-weight:700; background:var(--card); border:1px solid var(--hairline);
  }
  #lab .li-watch.up .ico{border-color:#F4C4C4; color:var(--red);}
  #lab .li-watch.calm .ico{border-color:#B8E6D0; color:var(--green);}
  #lab .li-watch .txt{font-size:13px; color:var(--ink-soft); line-height:1.5;}
  #lab .li-watch .txt b{color:var(--darkblue); font-size:13.5px;}
  #lab .li-alert-feed{display:flex; flex-direction:column; gap:6px;}
  #lab .li-alert-item{
    display:grid;
    grid-template-columns:4px 1fr;
    gap:12px;
    align-items:start;
    padding:10px 12px;
    border:1px solid var(--hairline);
    border-radius:8px;
    background:var(--surface-subtle);
    transition:background var(--transition-ui), border-color var(--transition-ui);
  }
  #lab .li-alert-item:hover{
    background:var(--card);
    border-color:var(--hairline-strong);
  }
  #lab .li-alert-rail{
    width:4px; min-height:36px; border-radius:2px; background:var(--hairline-strong); align-self:stretch;
  }
  #lab .li-alert-item--pending .li-alert-rail{background:var(--red);}
  #lab .li-alert-item--notified .li-alert-rail{background:var(--yellow);}
  #lab .li-alert-item--resolved .li-alert-rail{background:var(--green);}
  #lab .li-alert-item--resolved{opacity:.78;}
  #lab .li-alert-top{display:flex; align-items:center; gap:8px; flex-wrap:wrap;}
  #lab .li-alert-top strong{color:var(--darkblue); font-size:13px;}
  #lab .li-alert-value{
    font-size:12.5px; font-weight:700; color:var(--red);
    font-variant-numeric:tabular-nums;
    padding:1px 7px; border-radius:4px; background:var(--red-soft);
  }
  #lab .li-alert-value--muted{color:var(--ink-soft); background:var(--surface-muted);}
  #lab .li-alert-meta{
    display:flex; flex-wrap:wrap; align-items:center; gap:8px;
    margin-top:4px; font-size:12px; color:var(--ink-soft);
  }
  #lab .li-alert-time{color:var(--ink-faint); font-size:11.5px;}
  #lab .li-status-chip{
    font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase;
    padding:3px 8px; border-radius:4px; white-space:nowrap; margin-left:auto;
  }
  #lab .li-status-chip.li-status--pending{background:var(--surface-muted); color:var(--ink-soft); border:1px solid var(--hairline);}
  #lab .li-status-chip.li-status--warn{background:var(--yellow-soft); color:#92400E; border:1px solid rgba(245,158,11,.25);}
  #lab .li-status-chip.li-status--ok{background:var(--green-soft); color:var(--green); border:1px solid rgba(16,185,129,.2);}

  /* Marker trends sparkline table */
  #lab .li-trend-table{margin-top:4px;}
  #lab .li-trend-table th{
    background:var(--surface-subtle); font-size:10px; letter-spacing:.08em; padding:10px 12px;
    position:sticky; top:0; z-index:1;
  }
  #lab .li-trend-table td{padding:10px 12px; font-variant-numeric:tabular-nums;}
  #lab .li-trend-table tbody tr:nth-child(even){background:var(--surface-subtle);}
  #lab .li-trend-table tbody tr:hover{background:var(--row-hover);}
  #lab .li-trend-table td.sym{
    color:var(--darkblue); font-weight:700;
    max-width:160px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  #lab .li-trend-table .li-col-num{
    text-align:right;
    font-variant-numeric:tabular-nums;
    font-weight:700;
    color:var(--darkblue);
    white-space:nowrap;
  }
  #lab .li-trend-table th.li-col-num{text-align:right;}
  #lab .li-trend-table .spark i{background:var(--blue); opacity:.75;}
  #lab .li-trend-chip{
    display:inline-block; font-size:10px; font-weight:700; letter-spacing:.03em; text-transform:uppercase;
    padding:3px 8px; border-radius:4px; border:1px solid var(--hairline); background:var(--card); color:var(--ink-soft);
  }
  #lab .li-trend-chip--rise{background:var(--red-soft); border-color:rgba(239,68,68,.2); color:#B91C1C;}
  #lab .li-trend-chip--fall{background:var(--green-soft); border-color:rgba(16,185,129,.2); color:var(--green);}
  #lab #marker-trends{overflow:auto; -webkit-overflow-scrolling:touch; max-height:300px;}

  /* Ward severity ranked bars */
  #lab .li-ward-bars{padding:4px 0 2px;}
  #lab .li-ward-legend{
    display:flex; gap:14px; margin-bottom:10px;
    font-size:11px; color:var(--ink-soft); font-weight:600;
  }
  #lab .li-ward-legend span{display:inline-flex; align-items:center; gap:6px;}
  #lab .li-ward-swatch{width:10px; height:10px; border-radius:2px; display:inline-block;}
  #lab .li-ward-swatch--severe{background:var(--orange);}
  #lab .li-ward-swatch--critical{background:var(--red);}
  #lab .li-ward-bar-list{
    display:flex; flex-direction:column; gap:8px;
    max-height:280px; overflow-y:auto;
  }
  #lab .li-ward-bar-row{
    display:grid;
    grid-template-columns:72px 1fr 40px;
    gap:10px;
    align-items:center;
    padding:4px 6px;
    border-radius:6px;
  }
  #lab .li-ward-bar-row:hover{background:var(--surface-subtle);}
  #lab .li-ward-bar-label{
    font-size:12px; font-weight:700; color:var(--darkblue);
  }
  #lab .li-ward-bar-track-wrap{
    height:14px; background:var(--chart-track); border-radius:4px;
    border:1px solid rgba(31,41,55,.04); overflow:hidden;
  }
  #lab .li-ward-bar-track{
    height:100%; display:flex; min-width:0; border-radius:3px; overflow:hidden;
  }
  #lab .li-ward-bar-seg{height:100%; display:block;}
  #lab .li-ward-bar-seg--severe{background:var(--orange); opacity:.85;}
  #lab .li-ward-bar-seg--critical{background:var(--red); opacity:.9;}
  #lab .li-ward-bar-total{
    font-size:12px; font-weight:700; color:var(--darkblue);
    text-align:right; font-variant-numeric:tabular-nums;
  }

  /* Facility comparison table */
  #lab .li-rate-legend{
    display:flex; flex-wrap:wrap; gap:10px 14px;
    margin:0 0 10px; font-size:11px; color:var(--ink-soft); font-weight:600;
  }
  #lab .li-rate-legend span{display:inline-flex; align-items:center; gap:5px;}
  #lab .li-rate-swatch{width:10px; height:10px; border-radius:2px; display:inline-block; border:1px solid rgba(31,41,55,.08);}
  #lab .li-rate-swatch--normal{background:var(--blue-soft);}
  #lab .li-rate-swatch--moderate{background:var(--yellow-soft);}
  #lab .li-rate-swatch--elevated{background:var(--pink-soft);}
  #lab .li-rate-swatch--critical{background:var(--red-soft);}
  #lab .li-table-wrap{
    max-height:280px; overflow:auto; -webkit-overflow-scrolling:touch;
    border:1px solid var(--hairline); border-radius:10px; margin-top:4px;
  }
  #lab .li-table{min-width:760px; margin:0;}
  #lab .li-table th{
    background:var(--surface-subtle); font-size:10px; letter-spacing:.08em;
    padding:11px 12px; position:sticky; top:0; z-index:2;
    border-bottom:1.5px solid var(--hairline); box-shadow:0 1px 0 var(--hairline);
  }
  #lab .li-table td{padding:11px 12px; font-size:13px; line-height:1.4; vertical-align:middle;}
  #lab .li-table tbody tr:nth-child(even){background:var(--surface-subtle);}
  #lab .li-table tbody tr{transition:background var(--transition-ui);}
  #lab .li-table tbody tr:hover,
  #lab .li-table tbody tr:focus-visible{background:var(--row-hover); outline:none;}
  #lab .li-table tbody tr:focus-visible{box-shadow:inset 0 0 0 2px rgba(15,118,110,.25);}
  #lab .facility-row{cursor:pointer;}
  #lab .li-table td b{color:var(--darkblue); font-weight:700;}
  #lab .li-rank{
    display:inline-flex; align-items:center; justify-content:center;
    width:20px; height:20px; border-radius:4px; background:var(--chart-track);
    font-size:10px; font-weight:700; color:var(--ink-soft); margin-right:8px;
  }
  #lab .li-ward-chip{
    display:inline-flex; align-items:center; justify-content:center;
    min-width:28px; padding:3px 8px; border-radius:4px;
    background:var(--darkblue); color:#fff; font-size:11px; font-weight:700;
  }
  #lab .li-vol-bar{
    display:inline-grid; grid-template-columns:1fr auto; align-items:center;
    min-width:72px; height:18px; background:var(--chart-track); border-radius:4px;
    overflow:hidden; border:1px solid rgba(31,41,55,.04); position:relative; padding-right:6px;
  }
  #lab .li-vol-bar-fill{
    position:absolute; left:0; top:0; bottom:0;
    background:var(--blue); opacity:.25; border-radius:3px;
  }
  #lab .li-vol-bar-txt{
    position:relative; z-index:1; font-size:11px; font-weight:700;
    color:var(--darkblue); font-variant-numeric:tabular-nums;
    grid-column:2; padding-right:2px;
  }
  #lab .li-rate-badge{
    display:inline-block; font-size:11.5px; font-weight:700;
    padding:4px 10px; border-radius:6px; font-variant-numeric:tabular-nums;
  }
  #lab .li-rate-badge--normal{background:var(--blue-soft); color:#115E59; border:1px solid rgba(15,118,110,.15);}
  #lab .li-rate-badge--moderate{background:var(--yellow-soft); color:#92400E; border:1px solid rgba(245,158,11,.2);}
  #lab .li-rate-badge--elevated{background:var(--pink-soft, #FCE8F1); color:#9D174D; border:1px solid rgba(236,72,153,.2);}
  #lab .li-rate-badge--critical{background:var(--red-soft); color:var(--red); border:1px solid rgba(239,68,68,.2);}
  #lab .li-rate-plain{
    display:inline-flex; flex-direction:column; gap:1px;
    font-size:12px; font-weight:700; color:var(--darkblue);
    font-variant-numeric:tabular-nums;
  }
  #lab .li-rate-plain small{font-size:10px; font-weight:600; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.04em;}
  #lab .li-marker-chip{
    display:inline-block; font-size:11.5px; font-weight:600;
    padding:4px 10px; border-radius:6px;
    background:var(--chart-track); color:var(--darkblue); border:1px solid var(--hairline);
    max-width:180px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  #lab .li-alert-count{
    display:inline-flex; align-items:center; justify-content:center;
    min-width:24px; padding:2px 8px; border-radius:4px;
    background:var(--red-soft); color:var(--red); font-weight:700; font-size:12px;
  }
  #lab .li-cell-muted{color:var(--ink-faint); font-size:12.5px;}

  /* Hematology ranked bars */
  #lab .li-hema-bars{display:flex; flex-direction:column; gap:8px; padding:4px 0 2px;}
  #lab .section-title--split{
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    justify-content:space-between;
    gap:10px 16px;
  }
  #lab .section-title--split h3,
  #lab .section-title--split > .section-title__main{
    min-width:0;
    flex:1 1 auto;
  }
  #lab .li-metric-switch{
    display:inline-flex;
    align-items:center;
    flex:0 0 auto;
    gap:8px;
    min-height:22px;
  }
  #lab .li-metric-switch__label{
    font-size:11.5px;
    font-weight:600;
    line-height:1;
    letter-spacing:.01em;
    color:var(--ink-faint);
    cursor:pointer;
    user-select:none;
    white-space:nowrap;
    transition:color var(--transition-ui);
  }
  #lab .li-metric-switch__label:hover{color:var(--blue);}
  #lab .li-metric-switch__label.is-active{color:var(--blue);}
  #lab .li-metric-switch__track{
    appearance:none;
    -webkit-appearance:none;
    position:relative;
    box-sizing:border-box;
    width:40px;
    height:22px;
    margin:0;
    padding:2px;
    border:0;
    border-radius:var(--radius-pill);
    background:var(--blue);
    cursor:pointer;
    flex-shrink:0;
    transition:box-shadow var(--transition-ui), filter var(--transition-ui);
  }
  #lab .li-metric-switch__track:hover{filter:brightness(1.05);}
  #lab .li-metric-switch__track:focus-visible{
    outline:none;
    box-shadow:0 0 0 3px rgba(15,118,110,.28);
  }
  #lab .li-metric-switch__thumb{
    display:block;
    width:18px;
    height:18px;
    border-radius:50%;
    background:var(--card);
    box-shadow:0 1px 2px rgba(31,41,55,.18), 0 1px 1px rgba(31,41,55,.08);
    transform:translateX(0);
    transition:transform .28s var(--motion-ease-out);
    will-change:transform;
  }
  #lab .li-metric-switch[data-mode="pct"] .li-metric-switch__thumb,
  #lab .li-metric-switch__track[aria-checked="true"] .li-metric-switch__thumb{
    transform:translateX(18px);
  }
  @media (prefers-reduced-motion: reduce){
    #lab .li-metric-switch__thumb{transition:none;}
  }
  #lab .li-hema-row{
    display:grid;
    grid-template-columns:minmax(120px, 1.3fr) 1fr auto;
    gap:12px;
    align-items:center;
    padding:6px 8px;
    border-radius:8px;
    transition:background var(--transition-ui);
  }
  #lab .li-hema-row:hover{background:var(--surface-subtle);}
  #lab .li-hema-row--lead .li-hema-label{font-weight:700;}
  #lab .li-hema-row--lead .li-hema-bar{background:var(--darkblue); opacity:.8;}
  #lab .li-hema-label{
    font-size:12.5px; font-weight:600; color:var(--darkblue);
    overflow:hidden; text-overflow:ellipsis; white-space:nowrap;
  }
  #lab .li-hema-track{
    height:12px; background:var(--chart-track); border-radius:4px;
    overflow:hidden; border:1px solid rgba(31,41,55,.04);
  }
  #lab .li-hema-bar{
    height:100%; background:var(--blue); border-radius:3px;
    opacity:.7; transition:width .4s ease;
  }
  #lab .li-hema-metrics{
    display:flex; align-items:baseline; justify-content:flex-end;
    font-variant-numeric:tabular-nums; white-space:nowrap;
    min-width:52px;
  }
  #lab .li-hema-val{font-size:12.5px; font-weight:700; color:var(--darkblue); text-align:right;}
  #lab .li-hema-count{font-size:12px; font-weight:600; color:var(--ink-soft);}
  #lab .li-hema-pct{font-size:12.5px; font-weight:700; color:var(--darkblue); min-width:40px; text-align:right;}

  #lab .empty-state{margin-top:4px;}
  #lab #severity-donut .empty-state,
  #lab #marker-trends .empty-state,
  #lab #hema-deepdive .empty-state,
  #lab #severity-ward .empty-state{min-height:88px;}
  #lab .li-table .empty-state{margin:8px 0; min-height:72px; border-radius:var(--radius-card);}
  #lab #li-situation:empty,
  #lab #top-markers:empty,
  #lab #severity-donut:empty,
  #lab #marker-trends:empty,
  #lab #severity-ward:empty,
  #lab #hema-deepdive:empty{
    min-height:72px;
    border-radius:8px;
    background:linear-gradient(90deg, var(--surface-subtle) 0%, var(--chart-track) 50%, var(--surface-subtle) 100%);
    background-size:200% 100%;
  }
  /* —— Operations —— */
  #operations .view-head{margin-bottom:var(--space-view-head-mb); padding-bottom:var(--space-view-head-pb);}
  #operations .view-head h2{letter-spacing:-.02em;}
  #operations .view-head p{max-width:720px;}
  #operations .section-title{margin-bottom:var(--space-title-mb); align-items:flex-start;}
  #operations .section-title .note{max-width:560px; line-height:1.45;}
  #operations .story-flow{gap:var(--space-section);}
  #operations .story-beat{
    gap:var(--space-section);
    padding-top:4px;
  }
  #operations .story-flow > .story-beat{
    margin-top:0;
    padding-top:22px;
  }
  /* story-kicker size unified via --text-kicker */
  #operations .story-bridge{margin:-4px 0 2px;}

  /* Program outcome KPI grids — match card count (3 + 5) */
  #operations .op-outcomes .kpi-grid--primary{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    margin-bottom:var(--space-kpi-gap);
  }
  #operations .op-outcomes .kpi-grid--primary .metric-card__value{
    font-weight:700;
  }
  #operations .op-outcomes .kpi-grid--primary .metric-card__label{
    font-size:11.5px;
    font-weight:600;
    color:var(--darkblue);
  }
  #operations .op-outcomes .kpi-grid--primary .metric-card__sub{
    font-size:10.5px;
    font-weight:400;
    color:var(--ink-faint);
  }
  #operations .op-outcomes .kpi-grid--primary:empty{
    display:none;
    margin:0;
  }
  #operations .op-outcomes .kpi-grid--secondary{
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:var(--space-kpi-gap);
  }
  #operations .op-outcomes .kpi-grid--secondary:has(.empty-state){
    grid-template-columns:1fr;
  }
  #operations .op-outcomes .metric-card--compact{
    padding:12px 14px;
    box-shadow:none;
    background:var(--surface-subtle);
  }
  #operations .op-outcomes .metric-card--compact .metric-card__icon{
    width:26px;
    height:26px;
  }
  #operations .op-outcomes .metric-card--compact .metric-card__icon svg{
    width:14px;
    height:14px;
  }
  #operations .op-outcomes .metric-card--compact .metric-card__value{
    font-size:18px;
    font-weight:700;
  }
  #operations .op-outcomes .metric-card--compact .metric-card__label{
    font-size:11px;
    font-weight:600;
    color:var(--darkblue);
  }
  #operations .op-outcomes .metric-card--compact .metric-card__sub{
    font-size:10px;
    font-weight:400;
    color:var(--ink-faint);
  }
  #operations .op-outcomes .metric-card--compact:hover{
    transform:none;
    box-shadow:none;
    border-color:var(--hairline-strong);
  }
  #operations .op-outcomes .metric-card--compact.is-ready:hover{transform:none;}

  #operations .op-band{
    margin-bottom:var(--space-section);
  }
  #operations .op-band:last-child{margin-bottom:var(--space-2);}
  #operations .op-band-label{
    font-size:var(--text-overline);
    letter-spacing:.1em;
    text-transform:uppercase;
    font-weight:600;
    color:var(--ink-faint);
    margin:0 0 var(--space-2);
  }

  #operations .op-panel{
    background:var(--card);
    border:1px solid var(--hairline);
    border-radius:var(--radius-card);
    box-shadow:var(--shadow);
    padding:var(--space-card-y) var(--space-card-x);
    opacity:0;
    transform:translateY(10px);
    transition:
      border-color var(--motion-ui) var(--motion-ease),
      box-shadow var(--motion-ui) var(--motion-ease),
      opacity var(--motion-enter) var(--motion-ease-out),
      transform var(--motion-enter) var(--motion-ease-out);
  }
  #operations .op-panel.is-inview{
    opacity:1;
    transform:translateY(0);
  }
  #operations .op-panel--funnel,
  #operations .op-section-card--funnel{
    border-top:3px solid var(--blue);
  }
  #operations .op-panel--throughput{
    margin-top:var(--space-section);
    padding:var(--space-card-y) var(--space-card-x);
  }

  /* Funnel summary stats — stable strip */
  #operations .op-funnel-stats{
    display:grid;
    grid-template-columns:repeat(5, minmax(0, 1fr));
    gap:10px;
    margin-bottom:14px;
    padding-bottom:14px;
    border-bottom:1px solid var(--hairline);
  }
  #operations .op-funnel-stat{
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:12px 14px;
    border-radius:8px;
    border:1px solid var(--hairline);
    background:var(--surface-subtle);
    min-width:0;
  }
  #operations .op-funnel-stat-n{
    font-size:20px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    line-height:1.15;
    letter-spacing:-.02em;
  }
  #operations .op-funnel-stat-lbl{
    font-size:11px;
    font-weight:600;
    color:var(--ink-soft);
    line-height:1.35;
  }
  #operations .op-funnel-stat--good{background:var(--green-soft); border-color:rgba(16,185,129,.2);}
  #operations .op-funnel-stat--good .op-funnel-stat-n{color:var(--green);}
  #operations .op-funnel-stat--warn{background:var(--red-soft); border-color:rgba(239,68,68,.15);}
  #operations .op-funnel-stat--warn .op-funnel-stat-n{color:var(--red);}
  #operations .op-funnel-stat--muted .op-funnel-stat-n{color:var(--blue);}

  /* Conversion pipeline — quieter stages, drop-offs emphasized */
  #operations .op-pipeline{padding:2px 0;}
  #operations .op-pipeline-track{display:flex; flex-direction:column; gap:0;}
  #operations .op-stage{
    display:grid;
    grid-template-columns:36px 1fr;
    gap:12px;
    align-items:start;
    padding:12px 14px;
    border:1px solid transparent;
    border-radius:8px;
    background:var(--surface-subtle);
    border-left:3px solid var(--hairline-strong);
  }
  #operations .op-stage--blue{border-left-color:var(--blue);}
  #operations .op-stage--amber{border-left-color:var(--yellow);}
  #operations .op-stage--green{border-left-color:var(--green);}
  #operations .op-stage-num{
    width:28px; height:28px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    font-size:12px; font-weight:700; color:#fff;
    background:var(--blue);
  }
  #operations .op-stage--amber .op-stage-num{background:var(--yellow); color:var(--darkblue);}
  #operations .op-stage--green .op-stage-num{background:var(--green);}
  #operations .op-stage-lbl{
    display:block;
    font-size:13px;
    font-weight:600;
    color:var(--darkblue);
    margin-bottom:4px;
    line-height:1.4;
  }
  #operations .op-stage-metrics{
    display:flex;
    align-items:baseline;
    flex-wrap:wrap;
    gap:8px 10px;
    margin-bottom:8px;
  }
  #operations .op-stage-val{
    font-size:20px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    letter-spacing:-.02em;
  }
  #operations .op-stage-pct{
    font-size:12px;
    font-weight:600;
    color:var(--ink-soft);
  }
  #operations .op-stage-bar{
    height:6px;
    background:var(--chart-track);
    border-radius:3px;
    overflow:hidden;
  }
  #operations .op-stage-fill{height:100%; border-radius:3px; transition:width .45s ease; min-width:2px;}
  #operations .op-stage-fill--blue{background:var(--blue);}
  #operations .op-stage-fill--amber{background:var(--yellow);}
  #operations .op-stage-fill--green{background:var(--green);}

  #operations .op-dropoff{
    display:flex;
    align-items:center;
    gap:10px;
    padding:4px 0 4px 26px;
    min-height:28px;
  }
  #operations .op-dropoff-line{
    width:2px;
    height:16px;
    background:var(--hairline-strong);
    border-radius:1px;
  }
  #operations .op-dropoff-badge{
    font-size:11.5px;
    font-weight:700;
    color:var(--red);
    padding:4px 10px;
    border-radius:6px;
    background:var(--red-soft);
    border:1px solid rgba(239,68,68,.15);
    font-variant-numeric:tabular-nums;
  }
  #operations .op-dropoff-badge em{
    font-style:normal;
    font-weight:600;
    color:var(--red);
    margin-left:4px;
  }

  #operations .op-insight-row{
    margin-top:14px;
    padding-top:14px;
    border-top:1px solid var(--hairline);
  }
  #operations .op-insight{
    padding:14px 16px;
    border-radius:8px;
    font-size:13px;
    line-height:1.55;
    color:var(--ink-soft);
    border:1px solid var(--hairline);
    background:var(--surface-subtle);
  }
  #operations .op-insight--primary{
    background:var(--blue-soft);
    border-color:rgba(15,118,110,.18);
    border-left:3px solid var(--blue);
  }
  #operations .op-insight b{
    display:block;
    font-size:14px;
    font-weight:600;
    margin-bottom:4px;
    color:var(--darkblue);
    letter-spacing:-.01em;
  }

  /* MoM — keep chart + chips balanced inside the card */
  #operations #op-mom-section .mom-mini-chart{
    margin-bottom:12px;
    min-height:108px;
  }
  #operations #op-mom-section .mom-chip-row{
    grid-template-columns:repeat(auto-fit, minmax(160px, 1fr));
  }
  #operations #op-mom-section .mom-chip-value{font-size:20px;}

  /* Specialty ranked chart — shared base (Executive teaser + Operations) */
  #operations .op-rank-note,
  #executive .op-rank-note{
    margin:0 0 8px;
    padding:8px 10px;
    font-size:12px;
    line-height:1.45;
    color:var(--ink-soft);
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-radius:6px;
  }
  .op-lollipop{
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:2px 0 0;
  }
  .op-lollipop-head{
    display:none;
  }
  #operations .op-lollipop-head{
    display:grid;
    grid-template-columns:22px minmax(110px, 1.1fr) minmax(80px, 1.4fr) 44px 40px;
    align-items:center;
    gap:10px;
    padding:0 10px 6px;
    border-bottom:1px solid var(--hairline);
    margin-bottom:2px;
  }
  #operations .op-lollipop-head span{
    font-size:10px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-faint);
  }
  #operations .op-lollipop-head .is-num{text-align:right;}
  .op-lollipop-list{
    display:flex;
    flex-direction:column;
    gap:1px;
    max-height:300px;
    overflow-y:auto;
    padding-right:2px;
  }
  .op-lollipop-row{
    display:grid;
    grid-template-columns:22px minmax(110px, 1.1fr) minmax(80px, 1.4fr) 44px 40px;
    align-items:center;
    gap:10px;
    padding:7px 10px;
    border-radius:8px;
    outline:none;
    transition:background var(--transition-ui);
  }
  .op-lollipop-row:hover{background:var(--surface-subtle);}
  .op-lollipop-row:focus-visible{
    background:var(--surface-subtle);
    box-shadow:inset 0 0 0 2px rgba(15,118,110,.25);
  }
  .op-lollipop-rank{
    font-size:11px;
    font-weight:700;
    color:var(--ink-faint);
    text-align:center;
    font-variant-numeric:tabular-nums;
  }
  .op-lollipop-label{
    font-size:12.5px;
    font-weight:600;
    color:var(--darkblue);
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  /* Default: compact ranked bars (Executive teaser) */
  .op-lollipop-track{
    position:relative;
    height:8px;
    background:var(--chart-track);
    border-radius:var(--chart-radius);
    overflow:hidden;
  }
  .op-lollipop-stem{
    height:100%;
    background:linear-gradient(90deg, color-mix(in srgb, var(--chart-1) 68%, #fff), var(--chart-1));
    border-radius:var(--chart-radius);
    transition:width var(--motion-chart) var(--motion-ease-out);
    min-width:2px;
  }
  .op-lollipop-dot{display:none;}
  /* Operations: true lollipop for visual distinction from KPI bars */
  #operations .op-lollipop-track{
    height:10px;
    background:transparent;
    border-radius:0;
    overflow:visible;
    display:flex;
    align-items:center;
  }
  #operations .op-lollipop-track::before{
    content:"";
    position:absolute;
    left:0; right:0;
    height:2px;
    background:var(--chart-track);
    border-radius:1px;
  }
  #operations .op-lollipop-stem{
    height:100%;
    border-radius:var(--chart-radius);
    background:linear-gradient(90deg, color-mix(in srgb, var(--chart-1) 68%, #fff), var(--chart-1));
    min-width:2px;
  }
  #operations .op-lollipop-dot{
    display:block;
    position:absolute;
    right:-5px;
    top:50%;
    width:10px;
    height:10px;
    margin-top:-5px;
    border-radius:50%;
    background:var(--chart-1);
    border:2px solid var(--card);
    box-shadow:0 0 0 1px rgba(15,118,110,.25);
  }
  .op-lollipop-val{
    font-size:12.5px;
    font-weight:700;
    color:var(--darkblue);
    text-align:right;
    font-variant-numeric:tabular-nums;
  }
  .op-lollipop-share{
    font-size:11.5px;
    font-weight:600;
    color:var(--ink-soft);
    text-align:right;
    font-variant-numeric:tabular-nums;
  }

  /* OPD efficiency — full-width capacity strip */
  #operations .op-card--efficiency{
    border-left:3px solid var(--green);
  }
  #operations .op-efficiency-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:var(--space-kpi-gap);
    padding:2px 0 0;
  }
  #operations .op-efficiency-grid .metric-card{
    height:100%;
    box-shadow:none;
    background:var(--surface-subtle);
    border-color:var(--hairline);
    padding:14px 14px;
    min-width:0;
  }
  #operations .op-efficiency-grid .metric-card:hover{
    transform:none;
    box-shadow:none;
    border-color:var(--hairline-strong);
  }
  #operations .op-efficiency-grid .metric-card.is-ready:hover{
    transform:none;
  }
  #operations .op-efficiency-grid .metric-card__value{
    font-size:22px;
    font-weight:700;
    letter-spacing:-.02em;
  }
  #operations .op-efficiency-grid .metric-card__label{
    font-size:11.5px;
    font-weight:600;
    color:var(--darkblue);
  }
  #operations .op-efficiency-grid .metric-card__sub{
    font-size:10.5px;
    font-weight:400;
    color:var(--ink-faint);
  }

  /* Demand pair: specialty + throughput */
  #operations .op-demand-grid{
    align-items:stretch;
  }
  #operations .op-demand-grid > .op-card{
    min-width:0;
    display:flex;
    flex-direction:column;
  }
  #operations .op-demand-grid .op-lollipop,
  #operations .op-demand-grid .op-throughput-strip{
    flex:1;
  }

  @media (max-width: 1200px){
    #operations .op-outcomes .kpi-grid--secondary{grid-template-columns:repeat(3, minmax(0, 1fr));}
  }
  @media (max-width: 1100px){
    #operations .op-efficiency-grid{grid-template-columns:repeat(2, minmax(0, 1fr));}
    #operations .op-funnel-stats{grid-template-columns:repeat(3, minmax(0, 1fr));}
  }

  /* Lab throughput strip — 3 equal metrics, stretch to pair height */
  #operations .op-throughput-strip{
    display:grid;
    grid-template-columns:1fr;
    grid-template-rows:repeat(3, minmax(0, 1fr));
    gap:10px;
    padding:2px 0 0;
    align-content:stretch;
    min-height:0;
  }
  #operations .op-throughput-chip{
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:4px;
    padding:14px 16px;
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-radius:var(--radius-sm);
    min-width:0;
    min-height:68px;
    transition:border-color var(--transition-ui);
  }
  #operations .op-throughput-chip:hover{border-color:var(--hairline-strong);}
  #operations .op-throughput-n{
    font-size:22px;
    font-weight:700;
    letter-spacing:-.02em;
    font-variant-numeric:tabular-nums;
    color:var(--darkblue);
    line-height:1.15;
  }
  #operations .op-throughput-l{
    font-size:12px;
    font-weight:500;
    color:var(--ink-soft);
    line-height:1.4;
  }

  #operations .empty-state{margin-top:4px;}
  #operations #funnel .empty-state{min-height:96px;}
  #operations #specialty-demand .empty-state{min-height:88px;}
  #operations #opd-stats .empty-state{min-height:80px; grid-column:1 / -1;}
  #operations #op-throughput .empty-state{min-height:72px; grid-column:1 / -1;}

  @media (max-width: 980px){
    .header-top{flex-wrap:wrap; gap:8px;}
    .header-right{flex-wrap:wrap;}
    .brand-text h1{white-space:normal;}
    .view[role="tabpanel"]{padding:12px 14px 24px;}
    .kpi-grid{grid-template-columns:repeat(2,1fr); gap:8px;}
    .two-col, .grid-2{grid-template-columns:1fr;}
    .ward-grid{grid-template-columns:repeat(4,1fr);}
    .header-meta{text-align:left;}
    .site-nav{padding:0 14px;}
    .site-nav-inner{min-height:36px; gap:10px; padding:6px 0;}
    .site-nav-brand{gap:10px;}
    .site-nav-logo img{height:26px; max-width:min(128px, 40vw);}
    .site-nav-divider{height:22px;}
    .site-nav-partner{gap:6px; max-width:min(360px, 48vw);}
    .b-bmcfs-brand-logo{height:30px; max-width:30px;}
    .b-bmcfs-brand-name-en{font-size:11px;}
    .b-bmcfs-brand-name-mr{font-size:10px;}
    .header-top{padding:6px 14px;}
    .funnel-step{grid-template-columns:140px 1fr 70px;}
    #executive .metric-card__value{font-size:18px;}
    #executive .view-head h2{font-size:17px;}
    #executive .exec-section--pair{grid-template-columns:1fr;}
    #executive .kpi-grid--primary{grid-template-columns:1fr;}
    #executive .kpi-grid--secondary{grid-template-columns:repeat(2, 1fr);}
    #executive .ward-grid--preview{grid-template-columns:repeat(2, 1fr);}
    #executive .exec-panel,
    #executive .two-col > div,
    #executive .facilities-attention-wrap{padding:var(--space-card-y) var(--space-card-x);}
    #executive .ledger-row{grid-template-columns:30px 1fr auto; gap:10px; padding:10px 12px;}
    #executive .ledger-row::before{width:22px; height:22px; line-height:22px; font-size:10px;}
    #executive .exec-list-head{grid-template-columns:30px 1fr auto; gap:10px;}
    #executive .mom-chip-row{grid-template-columns:1fr 1fr;}
    #executive .exec-data-table{font-size:12px;}
    #executive .exec-data-table thead th,
    #executive .exec-data-table tbody td{padding:8px 10px;}
    #symptom .view-head h2{font-size:18px;}
    .sc-kpi-grid{grid-template-columns:repeat(2,1fr); gap:var(--space-kpi-gap);}
    #symptom .metric-card__value{font-size:20px;}
    #symptom .card,#symptom .sc-card{padding:14px;}
    #symptom .grid-2{gap:var(--space-grid);}
    #symptom .sc-map-stage{grid-template-columns:1fr;}
    #symptom .sc-map-frame,#symptom #sc-map{min-height:300px; height:300px;}
    #symptom #map-top-list{
      height:min(180px, 34vh);
      max-height:min(180px, 34vh);
    }
    #symptom .sc-lollipop,
    #symptom .sc-ranked{
      height:min(200px, 34vh);
      max-height:min(200px, 34vh);
    }
    #symptom .sc-lollipop-row{grid-template-columns:18px minmax(64px, 1fr) 1fr 36px; gap:8px;}
    #symptom .sc-area-cols{height:120px;}
    #symptom .sc-complaint-row{grid-template-columns:22px 1fr 36px;}
    #symptom .sc-signal-grid,
    #symptom .sc-who-grid,
    #symptom .sc-profile-grid{grid-template-columns:1fr;}
    .vol-chart{height:140px;}
    #population .view-head h2{font-size:18px;}
    #population .card,
    #population .ph-card{padding:14px;}
    #population .ph-ward-section{padding:14px;}
    #population .grid-2{gap:var(--space-grid);}
    #population .ph-briefing-grid{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px 12px;}
    #population .ph-briefing-value{font-size:16px;}
    #population .ph-lollipop-row{grid-template-columns:18px minmax(64px, 100px) 1fr 40px; gap:8px;}
    #population .ph-bar-chart-inner{grid-template-columns:30px 1fr; gap:6px;}
    #population .ph-bar-axis{height:110px; padding:16px 0 20px; font-size:9px;}
    #population .ph-bar-cols{height:110px;}
    #population .ph-area-cols{height:110px;}
    #population .ph-gender-row{grid-template-columns:88px 1fr;}
    #population .ph-dumbbell-row{grid-template-columns:minmax(72px, 96px) 1fr auto; gap:8px; padding:6px;}
    #population .ph-dumbbell-vals{min-width:40px;}
    #population .ph-legend-note{width:100%; margin-left:0; margin-top:2px;}
    #population .ph-share-row{grid-template-columns:minmax(48px, 64px) 1fr minmax(56px, 68px); gap:8px;}
    #population .ph-seg-band{padding:10px;}
    #population .ph-seg-grid{grid-template-columns:1fr; gap:12px;}
    #population .ph-cond-heat-scroll{max-height:min(340px, 50vh); padding:6px 8px;}
    #population .ph-pkg-total{font-size:20px;}
    .ph-heatmap-grid{grid-template-columns:56px repeat(5, 1fr); gap:3px;}
    .ph-heat-cell{min-height:30px;}
    #population .ph-ward-stat--highlight{margin-left:0; width:100%;}
    #population .ph-ward-grid{grid-template-columns:repeat(4, 1fr);}
    #population .ph-ward-grid-scroll{max-height:min(280px, 38vh);}
    #population .ph-table{font-size:12px;}
    #population .ph-table th,
    #population .ph-table td{padding:8px 10px;}
    #population .section-title .note{max-width:none;}
    #population .ph-export{margin:0 0 8px;}
    #lab .view-head h2{font-size:18px;}
    #lab .card,
    #lab .li-card{padding:14px;}
    #lab .li-card--critical{padding-top:12px;}
    #lab .grid-2{gap:var(--space-grid);}
    #lab .li-band{margin-bottom:var(--space-section);}
    #lab .li-lollipop-row{grid-template-columns:18px minmax(64px, 1fr) 1fr 36px; gap:8px;}
    #lab .li-marker-context .li-marker-row,
    #lab .li-marker-context.li-lollipop .li-lollipop-row{
      grid-template-columns:18px minmax(72px, 1fr) minmax(56px, 1fr) minmax(64px, auto);
      gap:8px;
    }
    #lab .li-marker-context .li-marker-row:has(.li-marker-pct),
    #lab .li-marker-context.li-lollipop .li-lollipop-row:has(.li-marker-pct){
      grid-template-columns:18px minmax(64px, 1fr) minmax(48px, .9fr) minmax(64px, auto) auto;
    }
    #lab .li-marker-service{grid-template-columns:18px minmax(64px, 1fr) 1fr 36px 14px; gap:8px;}
    #lab .li-marker-context .li-marker-service{
      grid-template-columns:18px minmax(72px, 1fr) minmax(56px, 1fr) minmax(64px, auto) 14px;
      gap:8px;
    }
    #lab .li-marker-context .li-marker-service:has(.li-marker-pct){
      grid-template-columns:18px minmax(64px, 1fr) minmax(48px, .9fr) minmax(64px, auto) auto 14px;
    }
    #lab .li-marker-params{padding-left:28px;}
    #lab .li-lollipop{max-height:240px;}
    #lab .li-marker-pct{min-width:30px; padding:2px 5px; font-size:10px;}
    #lab .li-hema-row{grid-template-columns:minmax(100px, 1fr) 1fr auto; gap:8px;}
    #lab .section-title--split{gap:8px 12px;}
    #lab .li-metric-switch{gap:6px;}
    #lab .li-metric-switch__label{font-size:11px;}
    #lab .li-metric-switch__track{width:36px; height:20px; padding:2px;}
    #lab .li-metric-switch__thumb{width:16px; height:16px;}
    #lab .li-metric-switch[data-mode="pct"] .li-metric-switch__thumb,
    #lab .li-metric-switch__track[aria-checked="true"] .li-metric-switch__thumb{
      transform:translateX(16px);
    }
    #lab .li-hema-metrics{min-width:44px;}
    #lab .li-ward-bar-row{grid-template-columns:56px 1fr 36px; gap:8px;}
    #lab .li-table{font-size:12px;}
    #lab .li-table th,
    #lab .li-table td{padding:8px 10px;}
    #lab .li-alert-item{grid-template-columns:3px 1fr; gap:8px; padding:8px;}
    #lab .li-alert-top .li-status-chip{margin-left:0;}
    #lab .li-sev-headline{gap:6px;}
    #lab .li-sev-stat{min-width:64px; padding:5px 8px;}
    #lab .li-sev-stat-n{font-size:15px;}
    #lab .li-rate-legend{gap:6px 8px;}
    #operations .view-head h2{font-size:18px;}
    #operations .op-panel{padding:14px;}
    #operations .op-panel--funnel{padding-top:14px;}
    #operations .op-panel--throughput{padding:14px; margin-top:var(--space-section);}
    #operations .op-band{margin-bottom:var(--space-section);}
    #operations .op-funnel-stats{grid-template-columns:repeat(2, minmax(0, 1fr));}
    #operations .op-outcomes .kpi-grid--primary{grid-template-columns:1fr;}
    #operations .op-outcomes .kpi-grid--secondary{grid-template-columns:repeat(2, minmax(0, 1fr));}
    #operations .op-demand-grid{grid-template-columns:1fr;}
    .op-lollipop-head,
    .op-lollipop-row{
      grid-template-columns:18px minmax(72px, 1fr) minmax(56px, 1fr) 36px 36px;
      gap:8px;
      padding-left:8px;
      padding-right:8px;
    }
    .op-lollipop-row{padding-top:6px; padding-bottom:6px;}
    #operations .op-efficiency-grid{grid-template-columns:repeat(2, minmax(0, 1fr)); gap:var(--space-kpi-gap);}
    #operations .op-throughput-strip{grid-template-columns:1fr; gap:var(--space-2);}
    #operations .op-stage{grid-template-columns:32px 1fr; gap:8px; padding:8px 10px;}
    #operations .op-stage-val{font-size:18px;}
    #operations .op-efficiency-grid .metric-card__value{font-size:20px;}
    #operations .op-funnel-stat-n{font-size:18px;}
  }

  @media (max-width: 480px){
    .site-nav-brand{gap:8px;}
    .site-nav-logo img{height:24px; max-width:min(112px, 46vw);}
    .site-nav-divider{height:20px;}
    .site-nav-partner{gap:6px; max-width:min(220px, 58vw);}
    .b-bmcfs-brand-logo{height:28px; max-width:28px;}
    .b-bmcfs-brand-name-en{font-size:10.5px;}
    .b-bmcfs-brand-name-mr{font-size:10px;}
    #operations .op-efficiency-grid{grid-template-columns:1fr;}
    #operations .op-funnel-stats{grid-template-columns:1fr 1fr;}
    #operations .op-outcomes .kpi-grid--secondary{grid-template-columns:1fr;}
  }

  /* Tier 3–5: throughput, drawers, lab map, exports */
  .throughput-strip{display:flex; gap:12px; flex-wrap:wrap;}
  .throughput-chip{background:var(--card); border:1px solid var(--hairline); border-radius:var(--radius-card); padding:14px 16px; min-width:140px; box-shadow:var(--shadow);}
  .throughput-n{display:block; font-size:22px; font-weight:600; color:var(--darkblue); letter-spacing:-.02em; font-variant-numeric:tabular-nums;}
  .throughput-l{display:block; font-size:11.5px; color:var(--ink-soft); margin-top:2px;}

  /* Split donut — refined healthcare chart language */
  .split-donut-wrap{
    position:relative;
    width:148px;
    height:148px;
    border-radius:50%;
    flex-shrink:0;
    background:var(--chart-track);
    box-shadow:inset 0 0 0 1px var(--hairline);
  }
  .split-donut-seg{
    position:absolute;
    inset:0;
    border-radius:50%;
    background:conic-gradient(
      from calc(var(--offset) * 3.6deg),
      var(--color) 0 calc(var(--pct) * 3.6deg),
      transparent 0
    );
  }
  .split-donut-hole{
    position:absolute;
    inset:28px;
    border-radius:50%;
    background:var(--card);
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    box-shadow:0 0 0 1px var(--hairline);
    z-index:1;
  }
  .split-donut-hole span{
    font-size:20px;
    font-weight:700;
    color:var(--darkblue);
    letter-spacing:-.02em;
    font-variant-numeric:tabular-nums;
    line-height:1.1;
  }
  .split-donut-hole small{
    font-size:10px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin-top:2px;
  }
  .split-legend{display:flex; flex-direction:column; gap:8px; margin-top:14px; font-size:12px;}
  .split-legend-item{display:flex; align-items:center; gap:8px; color:var(--ink-soft);} .split-legend-item b{color:var(--darkblue); font-variant-numeric:tabular-nums;}
  .split-legend-item i{width:8px; height:8px; border-radius:2px; display:inline-block; flex-shrink:0;}
  .qual-card{background:var(--bg); border:1px solid var(--hairline); border-radius:6px; padding:12px 14px; margin-bottom:8px;}
  .qual-name{font-weight:700; color:var(--darkblue);}
  .qual-meta{font-size:12px; color:var(--ink-soft); margin-top:2px;}
  .qual-rate{font-size:13px; font-weight:700; color:var(--yellow); margin-top:4px;}
  .lab-map-frame{position:relative; min-height:320px; border-radius:8px; overflow:hidden; border:1px solid var(--hairline);}
  #lab-map{height:320px; width:100%;}
  .lab-map-legend{display:flex; align-items:center; gap:8px; font-size:11px; color:var(--ink-soft); margin-top:8px;}
  .lab-map-grad{flex:1; height:6px; border-radius:3px; background:linear-gradient(90deg, #0F766E, #F59E0D, #EF4444);}
  .export-bar{display:flex; align-items:center; gap:10px; flex-wrap:wrap; padding:14px 18px; background:var(--card); border:1px solid var(--hairline); border-radius:6px;}
  .export-label{font-size:12px; font-weight:700; color:var(--ink-soft); margin-right:6px;}
  .export-btn{
    border:1px solid var(--blue);
    background:var(--blue-soft);
    color:var(--blue);
    border-radius:5px;
    padding:7px 12px;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
    transition:
      background var(--motion-ui) var(--motion-ease),
      color var(--motion-ui) var(--motion-ease),
      box-shadow var(--motion-ui) var(--motion-ease),
      transform var(--motion-ui) var(--motion-ease-out),
      border-color var(--motion-ui) var(--motion-ease);
  }
  .export-btn:hover{
    background:var(--blue);
    color:#fff;
    transform:translateY(-1px) scale(1.01);
    box-shadow:0 3px 10px rgba(15,118,110,.22);
  }
  .detail-drawer{position:fixed; inset:0; z-index:300; display:none;}
  .detail-drawer.is-open{display:block;}
  .detail-drawer-backdrop{position:absolute; inset:0; background:rgba(31,41,55,.35);}
  .detail-drawer-panel{position:absolute; right:0; top:0; bottom:0; width:min(420px, 92vw); background:var(--card); box-shadow:-8px 0 24px rgba(31,41,55,.15); padding:24px 22px; overflow-y:auto;}
  .detail-drawer-close{position:absolute; top:12px; right:14px; border:none; background:none; font-size:24px; cursor:pointer; color:var(--ink-soft);}
  .detail-drawer-panel h3{margin:0 0 8px; color:var(--darkblue);}
  .drawer-sub{color:var(--ink-soft); font-size:13px; margin-bottom:12px;}
  .drawer-metrics{display:flex; flex-direction:column; gap:6px; font-size:13px; margin-bottom:16px;}
  .drawer-metrics em{color:var(--ink-faint); font-style:normal;}
  .drawer-list{margin:0 0 14px; padding-left:18px; font-size:13px; color:var(--ink-soft);}
  .drawer-breadcrumb{font-size:11px; color:var(--ink-faint); margin:0 34px 14px 0;}
  .drawer-breadcrumb span{padding:0 5px; color:var(--hairline-strong);}
  .drawer-hero-metric{display:flex; align-items:baseline; gap:7px; flex-wrap:wrap; padding:14px 16px; margin:14px 0 20px; background:var(--blue-soft); border-radius:var(--radius-md);}
  .drawer-hero-metric b{font-size:26px; color:var(--darkblue);}
  .drawer-hero-metric span{font-size:13px; color:var(--ink-soft);}
  .drawer-hero-metric small{width:100%; color:var(--blue); font-weight:600;}
  .drawer-condition-list,.drawer-ranked{display:flex; flex-direction:column; gap:6px; margin-bottom:20px;}
  .drawer-condition,.drawer-rank-row,.drawer-link{width:100%; border:1px solid var(--hairline); background:var(--surface-subtle); border-radius:var(--radius-sm); padding:9px 10px; font:inherit; color:var(--darkblue); display:grid; grid-template-columns:1fr auto; gap:2px 10px; text-align:left;}
  button.drawer-condition,button.drawer-rank-row,.drawer-link{cursor:pointer;}
  button.drawer-condition:hover,button.drawer-rank-row:hover,.drawer-link:hover{border-color:var(--blue); background:var(--blue-soft);}
  .drawer-condition.is-active,.drawer-rank-row.is-active{border-color:var(--blue); background:var(--blue-soft);}
  .drawer-condition b,.drawer-rank-row b{font-variant-numeric:tabular-nums;}
  .drawer-condition small,.drawer-rank-row small,.drawer-link span{grid-column:1/-1; color:var(--ink-faint); font-size:11px;}
  .drawer-list--links{list-style:none; padding:0;}
  .drawer-list--links li{margin-bottom:6px;}

  /* Global filter toolbar — application chrome, above section tabs */
  .city-explore-toolbar{
    background:var(--surface-subtle);
    border-top:1px solid var(--hairline);
    border-bottom:1px solid var(--hairline);
  }
  .city-explore-inner{
    max-width:1280px;
    margin:0 auto;
    padding:var(--space-filter-y) clamp(16px,3vw,28px);
    display:flex;
    align-items:flex-end;
    gap:var(--space-4);
  }
  .city-explore-copy{
    display:flex;
    flex-direction:column;
    gap:3px;
    align-self:center;
    flex-shrink:0;
    min-width:0;
    max-width:148px;
    padding-right:6px;
  }
  .city-explore-title{
    font-size:10px;
    font-weight:600;
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--ink-faint);
    line-height:1.3;
  }
  .city-explore-hint{
    font-size:12px;
    font-weight:400;
    color:var(--ink-soft);
    line-height:1.4;
  }
  .city-explore-controls{
    display:flex;
    align-items:flex-end;
    gap:var(--space-filter-gap);
    flex:1;
    flex-wrap:wrap;
    min-width:0;
  }
  .city-explore-field{
    display:flex;
    flex-direction:column;
    gap:5px;
    min-width:0;
    flex:0 1 auto;
  }
  .city-explore-label{
    font-size:10px;
    font-weight:600;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-faint);
    line-height:1.2;
    transition:color .2s ease;
  }
  .city-explore-field:hover .city-explore-label,
  .city-explore-field:focus-within .city-explore-label{
    color:var(--blue);
  }
  .city-explore-field select{
    --explore-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%236B7280' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    --explore-chevron-active:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%230F766E' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    height:32px;
    min-width:128px;
    max-width:220px;
    width:100%;
    border:1px solid var(--hairline);
    border-radius:var(--radius-sm);
    background-color:var(--card);
    padding:0 28px 0 10px;
    font-family:inherit;
    font-size:var(--text-caption);
    font-weight:500;
    color:var(--darkblue);
    line-height:1.2;
    cursor:pointer;
    appearance:none;
    background-image:var(--explore-chevron);
    background-repeat:no-repeat;
    background-position:right 10px center;
    box-shadow:0 1px 1px rgba(31,41,55,.02);
    transition:
      border-color .22s var(--motion-ease),
      box-shadow .22s var(--motion-ease),
      background-color .22s var(--motion-ease),
      color .22s var(--motion-ease),
      transform .18s var(--motion-ease-out);
  }
  .city-explore-field:has(#explore-age) select,
  .city-explore-field:has(#explore-gender) select{
    min-width:96px;
    max-width:120px;
  }
  .city-explore-field:has(#explore-ward) select{
    min-width:110px;
    max-width:140px;
  }
  .city-explore-field--lookback,
  .city-explore-field:has(#lookback){
    flex:0 0 auto;
  }
  .city-explore-field--lookback select,
  .city-explore-field:has(#lookback) select{
    min-width:118px;
    max-width:148px;
  }
  .city-explore-field select:hover{
    border-color:var(--hairline-strong);
    background-color:var(--card);
    background-image:var(--explore-chevron-active);
    box-shadow:none;
  }
  .city-explore-field select:focus,
  .city-explore-field select:focus-visible{
    outline:none;
    border-color:var(--blue);
    background-color:var(--card);
    background-image:var(--explore-chevron-active);
    box-shadow:0 0 0 3px rgba(15,118,110,.12);
  }
  .city-explore-field select:active{
    border-color:var(--blue);
    background-color:var(--blue-soft);
    background-image:var(--explore-chevron-active);
    box-shadow:0 0 0 3px rgba(15,118,110,.14);
  }
  /* Native option styling — applied where the browser allows (e.g. Firefox) */
  .city-explore-field select option{
    padding:8px 12px;
    font-weight:500;
    color:var(--darkblue);
    background-color:var(--card);
  }
  .city-explore-field select option:checked,
  .city-explore-field select option:hover{
    background-color:var(--blue-soft);
    color:var(--darkblue);
  }
  .dashboard-filter-select:has(option[value=""]:checked){
    color:var(--ink-soft);
  }
  .dashboard-filter-select:disabled{
    cursor:not-allowed;
    opacity:.58;
    color:var(--ink-faint);
    background-color:var(--surface-muted);
    border-color:var(--hairline);
    box-shadow:none;
  }
  .city-explore-actions{
    display:flex;
    align-items:flex-end;
    flex-shrink:0;
    margin-left:8px;
    padding-bottom:0;
  }
  .explore-open,.explore-reset{
    height:32px;
    border-radius:var(--radius-sm);
    padding:0 16px;
    font-family:inherit;
    font-size:var(--text-caption);
    font-weight:600;
    letter-spacing:.01em;
    cursor:pointer;
    transition:
      background-color .2s ease,
      border-color .2s ease,
      color .2s ease,
      box-shadow .2s ease,
      transform .15s ease;
  }
  .explore-open{border:1px solid var(--blue); background:var(--blue); color:#fff;}
  .explore-reset{
    border:1px solid var(--blue);
    background:var(--blue);
    color:#fff;
    box-shadow:0 1px 2px rgba(15,118,110,.18);
  }
  .explore-reset:hover{
    border-color:color-mix(in srgb, var(--blue) 86%, #000);
    background:color-mix(in srgb, var(--blue) 86%, #000);
    color:#fff;
    box-shadow:0 3px 10px rgba(15,118,110,.28),0 1px 2px rgba(31,41,55,.06);
    transform:translateY(-1px) scale(1.01);
  }
  .explore-reset:focus-visible{
    outline:none;
    border-color:color-mix(in srgb, var(--blue) 86%, #000);
    background:color-mix(in srgb, var(--blue) 86%, #000);
    box-shadow:0 0 0 3px rgba(15,118,110,.2),0 2px 6px rgba(15,118,110,.22);
  }
  .explore-reset:active{
    border-color:color-mix(in srgb, var(--blue) 76%, #000);
    background:color-mix(in srgb, var(--blue) 76%, #000);
    color:#fff;
    box-shadow:0 1px 2px rgba(15,118,110,.2);
    transform:translateY(0);
  }
  .ledger-row--button{width:100%; border:0; background:transparent; font:inherit; text-align:left; cursor:pointer;}
  .ph-lollipop-row--clickable{cursor:pointer;}
  #population .ph-lollipop-row--clickable:hover{background:var(--row-hover);}
  .ph-heat-cell{font:inherit; padding:0;}
  @media(max-width:1100px){
    .city-explore-field select{min-width:112px; max-width:180px;}
    .city-explore-field:has(#explore-age) select,
    .city-explore-field:has(#explore-gender) select{
      min-width:88px;
      max-width:110px;
    }
    .city-explore-field:has(#explore-ward) select{
      min-width:100px;
      max-width:130px;
    }
    .city-explore-field--lookback select,
    .city-explore-field:has(#lookback) select{
      min-width:120px;
      max-width:150px;
    }
  }
  @media(max-width:900px){
    .city-explore-inner{
      flex-direction:column;
      align-items:stretch;
      gap:10px;
      padding:10px clamp(14px,4vw,20px) 12px;
    }
    .city-explore-copy{
      max-width:none;
      width:100%;
      padding-right:0;
      padding-bottom:2px;
      border-bottom:none;
    }
    .city-explore-controls{
      gap:10px 12px;
    }
    .city-explore-field{
      flex:1 1 calc(50% - 6px);
      min-width:140px;
    }
    .city-explore-field select{
      min-width:0;
      max-width:none;
      width:100%;
    }
    .city-explore-actions{
      flex:1 1 auto;
      margin-left:0;
      align-items:stretch;
    }
    .explore-reset{
      width:100%;
      min-width:120px;
    }
  }
  @media(max-width:520px){
    .city-explore-field{flex:1 1 100%;}
  }
  @media(prefers-reduced-motion:reduce){
    .city-explore-label,
    .city-explore-field select,
    .explore-open,
    .explore-reset{
      transition:none;
      animation:none;
    }
    .explore-reset:hover,
    .explore-reset:active{
      transform:none;
    }
  }

  /* ============================================================
     Motion system — premium micro-interactions (enterprise calm)
     ============================================================ */
  @keyframes fade-in-up{
    from{opacity:0; transform:translateY(8px);}
    to{opacity:1; transform:translateY(0);}
  }
  @keyframes chart-enter{
    from{opacity:0; transform:scale(.98);}
    to{opacity:1; transform:scale(1);}
  }
  @keyframes row-fade-in{
    from{opacity:0;}
    to{opacity:1;}
  }
  @keyframes exec-accent-grow{
    from{transform:scaleY(0);}
    to{transform:scaleY(1);}
  }
  @keyframes exec-icon-fade{
    from{opacity:0; transform:translateY(4px);}
    to{opacity:1; transform:translateY(0);}
  }
  @keyframes exec-body-swap{
    from{opacity:.35; transform:translateY(4px);}
    to{opacity:1; transform:translateY(0);}
  }
  @keyframes view-fade-in{
    from{opacity:0; transform:translateY(6px);}
    to{opacity:1; transform:translateY(0);}
  }
  @keyframes view-fade-out{
    from{opacity:1; transform:translateY(0);}
    to{opacity:0; transform:translateY(-4px);}
  }
  @keyframes skeleton-shimmer{
    0%{background-position:100% 0;}
    100%{background-position:-100% 0;}
  }
  @keyframes select-open-hint{
    from{transform:translateY(-2px); opacity:.92;}
    to{transform:translateY(0); opacity:1;}
  }

  /* KPI stagger on ready */
  .kpi-grid .metric-card.is-ready:nth-child(1),
  .sc-kpi-grid .metric-card.is-ready:nth-child(1),
  .lab-kpi-grid .metric-card.is-ready:nth-child(1){animation-delay:0ms;}
  .kpi-grid .metric-card.is-ready:nth-child(2),
  .sc-kpi-grid .metric-card.is-ready:nth-child(2),
  .lab-kpi-grid .metric-card.is-ready:nth-child(2){animation-delay:40ms;}
  .kpi-grid .metric-card.is-ready:nth-child(3),
  .sc-kpi-grid .metric-card.is-ready:nth-child(3),
  .lab-kpi-grid .metric-card.is-ready:nth-child(3){animation-delay:80ms;}
  .kpi-grid .metric-card.is-ready:nth-child(4),
  .sc-kpi-grid .metric-card.is-ready:nth-child(4),
  .lab-kpi-grid .metric-card.is-ready:nth-child(4){animation-delay:120ms;}
  .kpi-grid .metric-card.is-ready:nth-child(5),
  .lab-kpi-grid .metric-card.is-ready:nth-child(5){animation-delay:160ms;}
  .kpi-grid .metric-card.is-ready:nth-child(6){animation-delay:200ms;}
  .kpi-grid .metric-card.is-ready:nth-child(7){animation-delay:240ms;}
  .kpi-grid .metric-card.is-ready:nth-child(8){animation-delay:280ms;}

  /* Charts — entrance */
  .chart-enter,
  .sc-area-wrap,
  .ph-area-wrap,
  .css-chart-h,
  .ph-lollipop,
  .li-lollipop,
  .op-lollipop,
  .li-sev-stack,
  .op-pipeline,
  .donut-wrap,
  .split-donut-wrap,
  .funnel,
  .ph-heatmap,
  .li-ward-bars,
  .sc-area-chart,
  .ph-area-chart,
  .sc-complaints,
  .sc-age-chart,
  .sc-severity,
  .li-hema-bars{
    transform-origin:center center;
    opacity:0;
  }
  .chart-enter.is-ready,
  .sc-area-wrap.is-ready,
  .ph-area-wrap.is-ready,
  .css-chart-h.is-ready,
  .ph-lollipop.is-ready,
  .li-lollipop.is-ready,
  .op-lollipop.is-ready,
  .li-sev-stack.is-ready,
  .op-pipeline.is-ready,
  .donut-wrap.is-ready,
  .split-donut-wrap.is-ready,
  .funnel.is-ready,
  .ph-heatmap.is-ready,
  .li-ward-bars.is-ready,
  .sc-area-chart.is-ready,
  .ph-area-chart.is-ready,
  .sc-complaints.is-ready,
  .sc-age-chart.is-ready,
  .sc-severity.is-ready,
  .li-hema-bars.is-ready{
    animation:chart-enter var(--motion-chart) var(--motion-ease-out) both;
  }

  /* Animated chart value fills — JS zeros then restores width for transition */
  .css-bar-fill,
  .ph-lollipop-stem,
  .li-lollipop-stem,
  .op-lollipop-stem,
  .sc-lollipop-stem,
  .op-stage-fill,
  .sc-complaint-bar,
  .sc-age-bar,
  .li-vol-bar-fill,
  .li-hema-bar,
  .ph-gender-bar,
  .ph-micro-bar-fill,
  .funnel-bar-fill{
    transition:width var(--motion-chart) var(--motion-ease-out);
  }
  .sc-area-bar,
  .ph-area-bar{
    transition:height var(--motion-chart) var(--motion-ease-out);
  }
  .ph-lollipop-dot,
  .li-lollipop-dot,
  .op-lollipop-dot,
  .sc-lollipop-dot{
    transition:left var(--motion-chart) var(--motion-ease-out), opacity var(--motion-ui) var(--motion-ease);
  }

  /* Tables — shared progressive row fade + hover */
  .trend-table tbody tr,
  .exec-data-table tbody tr,
  .li-table tbody tr,
  .ph-table tbody tr{
    transition:background var(--motion-ui) var(--motion-ease);
    animation:row-fade-in .28s var(--motion-ease-out) both;
  }
  .trend-table tbody tr:nth-child(1),
  .exec-data-table tbody tr:nth-child(1),
  .li-table tbody tr:nth-child(1),
  .ph-table tbody tr:nth-child(1){animation-delay:0ms;}
  .trend-table tbody tr:nth-child(2),
  .exec-data-table tbody tr:nth-child(2),
  .li-table tbody tr:nth-child(2),
  .ph-table tbody tr:nth-child(2){animation-delay:28ms;}
  .trend-table tbody tr:nth-child(3),
  .exec-data-table tbody tr:nth-child(3),
  .li-table tbody tr:nth-child(3),
  .ph-table tbody tr:nth-child(3){animation-delay:56ms;}
  .trend-table tbody tr:nth-child(4),
  .exec-data-table tbody tr:nth-child(4),
  .li-table tbody tr:nth-child(4),
  .ph-table tbody tr:nth-child(4){animation-delay:84ms;}
  .trend-table tbody tr:nth-child(5),
  .exec-data-table tbody tr:nth-child(5),
  .li-table tbody tr:nth-child(5),
  .ph-table tbody tr:nth-child(5){animation-delay:112ms;}
  .trend-table tbody tr:nth-child(n+6),
  .exec-data-table tbody tr:nth-child(n+6),
  .li-table tbody tr:nth-child(n+6),
  .ph-table tbody tr:nth-child(n+6){animation-delay:140ms;}
  .trend-table tbody tr:hover,
  .exec-data-table tbody tr:hover,
  .li-table tbody tr:hover,
  .ph-table tbody tr:hover{background:var(--row-hover);}
  .trend-table tbody tr.is-active,
  .trend-table tbody tr.is-selected,
  .exec-data-table tbody tr.is-active,
  .exec-data-table tbody tr.is-selected,
  .li-table tbody tr.is-active,
  .li-table tbody tr.is-selected,
  .ph-table tbody tr.is-active,
  .ph-table tbody tr.is-selected{
    background:var(--blue-soft);
    box-shadow:inset 3px 0 0 var(--blue);
  }

  /* Nested / section cards also participate in viewport reveal */
  .sc-card,
  .ph-card,
  .li-card,
  .op-card,
  .op-section-card,
  .dept-card,
  .qual-card,
  .exec-panel,
  .mom-chip,
  .facility-attn-card{
    opacity:0;
    transform:translateY(10px);
    transition:
      opacity var(--motion-enter) var(--motion-ease-out),
      transform var(--motion-enter) var(--motion-ease-out),
      border-color var(--motion-ui) var(--motion-ease),
      box-shadow var(--motion-ui) var(--motion-ease),
      background var(--motion-ui) var(--motion-ease);
  }
  .sc-card.is-inview,
  .ph-card.is-inview,
  .li-card.is-inview,
  .op-card.is-inview,
  .op-section-card.is-inview,
  .dept-card.is-inview,
  .qual-card.is-inview,
  .exec-panel.is-inview,
  .mom-chip.is-inview,
  .facility-attn-card.is-inview{
    opacity:1;
    transform:translateY(0);
  }

  .mom-chip.is-inview:hover,
  .facility-attn-card.is-inview:hover{
    transform:translateY(-2px);
  }

  /* Map empty state fade */
  .sc-map-empty.is-visible{
    animation:fade-in-up var(--motion-enter) var(--motion-ease-out) both;
  }

  /* Soften continuous marker pulse for enterprise calm — keep but quieter */
  @media(prefers-reduced-motion:reduce){
    *,
    *::before,
    *::after{
      animation-duration:.01ms !important;
      animation-iteration-count:1 !important;
      transition-duration:.01ms !important;
    }
    .metric-card,
    .card,
    .sc-card,
    .ph-card,
    .li-card,
    .op-card,
    .op-section-card,
    .dept-card,
    .qual-card,
    .exec-panel,
    .mom-chip,
    .facility-attn-card,
    .exec-insight-banner,
    .sc-area-wrap,
    .ph-area-wrap,
    .css-chart-h,
    .ph-lollipop,
    .li-lollipop,
    .op-lollipop,
    .li-sev-stack,
    .op-pipeline,
    .donut-wrap,
    .split-donut-wrap,
    .funnel,
    .ph-heatmap,
    .li-ward-bars,
    .sc-area-chart,
    .ph-area-chart,
    .sc-complaints,
    .sc-age-chart,
    .sc-severity,
    .li-hema-bars{
      opacity:1 !important;
      transform:none !important;
    }
    .metric-card:hover,
    .export-btn:hover,
    .explore-reset:hover{
      transform:none !important;
    }
    #ward-tooltip{
      transition:none !important;
      opacity:1;
      visibility:visible;
      transform:none;
    }
    #ward-tooltip:not(.is-visible){
      opacity:0;
      visibility:hidden;
    }
    #load-overlay .load-skeleton-bar{
      animation:none;
      background:var(--surface-muted);
    }
  }

  /* ── Lab Intelligence & Population Health map sections ──────────────────── */
  /* Mirror the #symptom .sc-map-* rules so the shared CSS classes work in    */
  /* these tabs too. The original rules are scoped to #symptom only.           */

  #lab .sc-map-card,
  #population .sc-map-card{padding:var(--space-card-y) var(--space-card-x);}

  #lab .sc-map-stage{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(248px, 292px);
    gap:var(--space-grid);
    align-items:start;
    min-width:0;
    width:100%;
  }
  /* Population: map + Top Hotspots as one linked composition */
  #population .sc-map-stage{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(248px, 280px);
    gap:14px;
    align-items:stretch;
  }
  #lab .sc-map-main,
  #population .sc-map-main{display:flex; flex-direction:column; gap:10px; min-width:0; min-height:0;}
  #population .sc-map-main{height:100%;}

  #lab .sc-map-toolbar,
  #population .sc-map-toolbar{display:flex; align-items:center; flex-wrap:wrap; gap:10px; flex-shrink:0;}

  #lab .sc-map-frame{
    position:relative;
    border-radius:10px;
    overflow:hidden;
    border:1px solid var(--hairline);
    background:var(--chart-track);
    box-shadow:inset 0 1px 3px rgba(31,41,55,.06), var(--shadow);
    min-height:320px;
  }
  #population .sc-map-frame{
    position:relative;
    border-radius:10px;
    overflow:hidden;
    border:1px solid var(--hairline);
    background:var(--chart-track);
    box-shadow:inset 0 1px 3px rgba(31,41,55,.06);
    min-height:400px;
    flex:1 1 auto;
    display:flex;
    flex-direction:column;
  }

  /* Map canvas elements get explicit height so Leaflet renders tiles */
  #li-map{
    height:320px;
    width:100%;
    z-index:1;
    background:var(--chart-track);
  }
  #ph-map{
    flex:1 1 auto;
    width:100%;
    min-height:400px;
    height:100%;
    z-index:1;
    background:var(--chart-track);
  }

  /* Empty-state overlay: hidden by default, shown via .is-visible */
  #lab .sc-map-empty,
  #population .sc-map-empty{
    position:absolute;
    inset:0;
    z-index:400;
    display:none;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    padding:24px;
    background:color-mix(in srgb, var(--bg) 78%, transparent);
    backdrop-filter:blur(4px);
    text-align:center;
    pointer-events:none;
  }
  #lab .sc-map-empty.is-visible,
  #population .sc-map-empty.is-visible{display:flex;}

  #lab .sc-map-empty p,
  #population .sc-map-empty p{
    margin:0;
    font-size:13px;
    color:var(--ink-soft);
    max-width:280px;
    line-height:1.5;
  }

  #lab .sc-map-legend{
    position:absolute;
    left:14px;
    bottom:14px;
    z-index:500;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 14px;
    padding:10px 14px;
    background:color-mix(in srgb, var(--card) 90%, transparent);
    backdrop-filter:blur(6px);
    border:1px solid var(--hairline);
    border-radius:10px;
    font-size:11.5px;
    color:var(--ink-soft);
    box-shadow:var(--shadow);
    pointer-events:none;
  }
  #population .sc-map-legend{
    position:absolute;
    left:12px;
    bottom:12px;
    z-index:500;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px 12px;
    padding:8px 12px;
    background:color-mix(in srgb, var(--card) 94%, transparent);
    border:1px solid var(--hairline);
    border-radius:10px;
    box-shadow:0 4px 14px rgba(31,41,55,.1);
    backdrop-filter:blur(8px);
    max-width:min(360px, calc(100% - 28px));
    max-height:96px;
    overflow:auto;
    pointer-events:none;
  }
  #population .sc-map-legend:empty{display:none;}
  #population .sc-map-legend .sc-legend-title{
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--ink-faint);
    width:100%;
    margin-bottom:2px;
  }
  #population .sc-map-legend .sc-legend-item{
    display:inline-flex;
    align-items:center;
    gap:6px;
    font-size:11.5px;
    color:var(--ink-soft);
    font-weight:500;
  }
  #population .sc-map-legend .sc-legend-item i{
    width:10px;
    height:10px;
    border-radius:50%;
    display:inline-block;
    border:1px solid rgba(31,41,55,.1);
    box-shadow:0 1px 2px rgba(31,41,55,.08);
  }
  #population .sc-map-legend .sc-legend-hint{
    color:var(--ink-faint);
    font-weight:600;
    font-size:10.5px;
    letter-spacing:.02em;
  }

  #lab .sc-map-sidebar,
  #population .sc-map-sidebar{
    display:flex;
    flex-direction:column;
    gap:12px;
    min-width:0;
    max-width:100%;
    min-height:0;
    overflow:hidden;
  }
  #lab .sc-map-card{
    display:flex;
    flex-direction:column;
    min-width:0;
    max-width:100%;
    overflow:hidden;
    height:auto;
  }
  #population .sc-map-sidebar{height:100%;}
  #population .sc-map-stats{display:grid; gap:8px; flex-shrink:0;}
  #population .sc-map-stats .metric-card{padding:10px 12px;}
  #population .sc-map-stats .metric-card:hover{transform:none;}

  /* Hotspots panel fills leftover sidebar height; list scrolls internally */
  #population .sc-hotspots-panel{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    min-width:0;
    min-height:0;
    border:1px solid var(--hairline);
    border-radius:12px;
    padding:12px 14px;
    background:var(--surface-subtle);
    overflow:hidden;
  }
  #population .sc-hotspots-panel .ia-side-note{
    flex-shrink:0;
    margin:0 0 8px;
    font-size:11.5px;
    line-height:1.45;
    color:var(--ink-soft);
  }
  /* ~5 hotspot rows visible; fixed height prevents filter-driven layout shift */
  #population #ph-map-top-list{
    flex:0 0 auto;
    height:min(248px, 34vh);
    max-height:min(248px, 34vh);
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    margin:0;
    padding:0 2px 0 0;
    min-height:0;
  }

  /* Lab Intelligence — Top Hotspots (contained scrollport; card may grow) */
  #lab .sc-hotspots-panel{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    min-width:0;
    max-width:100%;
    min-height:0;
    border:1px solid var(--hairline);
    border-radius:12px;
    padding:12px 14px;
    background:var(--surface-subtle);
    overflow:hidden;
  }
  #lab .sc-hotspots-panel .ia-side-note{
    flex-shrink:0;
    margin:0 0 8px;
    font-size:11.5px;
    line-height:1.45;
    color:var(--ink-soft);
  }
  #lab .sc-map-stats{
    display:grid;
    gap:8px;
    flex:0 0 auto;
    min-width:0;
    max-width:100%;
  }
  #lab .sc-map-stats .metric-card{
    min-width:0;
    max-width:100%;
    overflow:hidden;
  }
  #lab .sc-map-stats .metric-card:hover{transform:none;}
  #lab #li-map-top-list{
    flex:1 1 auto;
    height:auto;
    max-height:min(280px, 40vh);
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    margin:0;
    padding:0 2px 0 0;
    min-width:0;
    min-height:0;
    max-width:100%;
  }

  #lab .sc-hotspots-panel h4,
  #population .sc-hotspots-panel h4{
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--ink-faint);
    margin:0 0 8px;
    padding-bottom:8px;
    border-bottom:1px solid var(--hairline);
    flex-shrink:0;
  }

  #lab .sc-hotspot-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
    padding:9px 8px;
    border:0;
    border-bottom:1px dashed var(--hairline);
    border-radius:8px;
    font-size:12.5px;
    color:var(--darkblue);
  }
  #lab .sc-hotspot-row:last-child{border-bottom:0;}

  #lab .sc-hotspot-rank,
  #population .sc-hotspot-rank{
    flex:0 0 18px;
    width:18px;
    height:18px;
    border-radius:4px;
    background:var(--surface-muted, #EEF1F6);
    color:var(--ink-soft);
    font-size:10px;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:1px;
    font-variant-numeric:tabular-nums;
  }

  #population .sc-hotspot-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:8px;
    width:100%;
    padding:9px 8px;
    border:0;
    border-bottom:1px dashed var(--hairline);
    border-radius:8px;
    background:transparent;
    font:inherit;
    font-size:12.5px;
    color:var(--darkblue);
    text-align:left;
    cursor:pointer;
    transition:background var(--transition-ui), box-shadow var(--transition-ui);
  }
  #population .sc-hotspot-row:last-child{border-bottom:0;}
  #population .sc-hotspot-row:hover{background:var(--card);}
  #population .sc-hotspot-row:focus-visible{
    outline:none;
    box-shadow:0 0 0 2px rgba(15,118,110,.25);
    background:var(--card);
  }
  #population .sc-hotspot-row.is-active{
    background:var(--blue-soft);
    box-shadow:inset 3px 0 0 var(--blue);
  }
  #lab .sc-hotspot-lbl,
  #population .sc-hotspot-lbl{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
    color:var(--darkblue);
    font-weight:600;
    line-height:1.35;
    min-width:0;
    flex:1;
    padding-left:16px;
    position:relative;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  #lab .sc-hotspot-dot,
  #population .sc-hotspot-dot{
    position:absolute;
    left:0;
    top:4px;
    display:block;
    width:8px;
    height:8px;
    border-radius:50%;
    margin:0;
    flex-shrink:0;
    border:1px solid rgba(31,41,55,.1);
    box-shadow:0 1px 2px rgba(31,41,55,.1);
  }
  #lab .sc-hotspot-name,
  #population .sc-hotspot-name{
    display:block;
    min-width:0;
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  #lab .sc-hotspot-lbl em,
  #population .sc-hotspot-lbl em{
    font-style:normal;
    font-size:11px;
    color:var(--ink-soft);
    font-weight:400;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:break-word;
  }

  #lab .sc-hotspot-row b,
  #population .sc-hotspot-row b{
    font-size:13px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    flex-shrink:0;
    margin-top:1px;
  }

  #lab .sc-hotspot-empty,
  #population .sc-hotspot-empty{
    font-size:12.5px;
    color:var(--ink-faint);
    padding:16px 8px;
    text-align:center;
    line-height:1.5;
  }

  /* Leaflet container polish — Population (no CSS filter/transform on panes) */
  #population .leaflet-container{
    background:var(--chart-track);
    font-family:var(--font-sans);
  }
  #population .leaflet-control-attribution{
    font-size:9px;
    color:var(--ink-faint);
    background:color-mix(in srgb, var(--card) 88%, transparent) !important;
    border-radius:6px;
    padding:2px 8px;
    margin:0 6px 6px 0;
    border:1px solid var(--hairline);
    box-shadow:var(--shadow);
  }

  /* Leaflet popup styling shared with symptom map */
  #lab .sc-leaflet-popup .sc-popup,
  #population .sc-leaflet-popup .sc-popup{font-size:13px; line-height:1.4;}

  @media(max-width:900px){
    #lab .sc-map-stage,
    #population .sc-map-stage{grid-template-columns:1fr;}
    #lab .sc-map-frame,
    #li-map{min-height:300px; height:300px;}
    #population .sc-map-stage{align-items:stretch;}
    #population .sc-map-frame,
    #ph-map{min-height:320px; height:320px;}
    #ph-map{flex:none;}
    #lab #li-map-top-list,
    #population #ph-map-top-list{
      height:auto;
      max-height:min(220px, 36vh);
    }
    #population .ph-lollipop{max-height:min(260px, 38vh);}
    #population .ph-dumbbell-rows{max-height:min(280px, 40vh);}
  }


  /* Density polish — wrap & scan */
  .section-title .note{
    max-width:720px;
  }
  table.ledger-table td,
  #population .ph-table td,
  #lab .li-table td{
    overflow-wrap:anywhere;
    word-break:break-word;
    vertical-align:top;
  }
  #lab .sc-map-legend,
  #population .sc-map-legend{
    max-width:min(360px, calc(100% - 100px));
    max-height:96px;
    overflow:auto;
  }
  .ward-tile .ward-dom{
    white-space:normal;
    display:-webkit-box;
    -webkit-line-clamp:2;
    -webkit-box-orient:vertical;
    overflow:hidden;
  }
  .funnel-step{
    min-width:0;
  }
  .funnel-step .funnel-label,
  .funnel-label{
    overflow-wrap:anywhere;
    word-break:break-word;
  }
  @media (max-width: 980px){
    #symptom .sc-map-frame,#symptom #sc-map{min-height:340px; height:340px;}
    #lab .sc-map-frame,
    #population .sc-map-frame,
    #li-map,
    #ph-map{min-height:280px; height:280px;}
  }

  /* Shared subtle scrollbars for fixed-height dynamic list widgets */
  :is(
    #map-top-list,
    #ph-map-top-list,
    #li-map-top-list,
    #exec-map-top-list,
    #symptom .sc-lollipop,
    #symptom .sc-ranked,
    #lab #lab-condition-trends,
    #lab .li-card--critical .story-critical-table-wrap,
    #lab .li-lollipop,
    #lab #marker-trends,
    #lab .li-table-wrap,
    #lab .li-ward-bar-list,
    #population .ph-lollipop,
    #population .ph-dumbbell-rows,
    #population .ph-table-wrap,
    #population .ph-cond-heat-scroll,
    #population .ph-ward-grid-scroll,
    #population .sc-map-legend,
    #lab .sc-map-legend,
    #executive .exec-table-wrap,
    #executive .ph-table-wrap--scroll,
    #executive .story-critical-table-wrap,
    #executive .op-lollipop-list,
    .op-lollipop-list
  ){
    scrollbar-width:thin;
    scrollbar-color:color-mix(in srgb, var(--ink-faint) 55%, transparent) transparent;
  }
  :is(
    #map-top-list,
    #ph-map-top-list,
    #li-map-top-list,
    #exec-map-top-list,
    #symptom .sc-lollipop,
    #symptom .sc-ranked,
    #lab #lab-condition-trends,
    #lab .li-card--critical .story-critical-table-wrap,
    #lab .li-lollipop,
    #lab #marker-trends,
    #lab .li-table-wrap,
    #lab .li-ward-bar-list,
    #population .ph-lollipop,
    #population .ph-dumbbell-rows,
    #population .ph-table-wrap,
    #population .ph-cond-heat-scroll,
    #population .ph-ward-grid-scroll,
    #population .sc-map-legend,
    #lab .sc-map-legend,
    #executive .exec-table-wrap,
    #executive .ph-table-wrap--scroll,
    #executive .story-critical-table-wrap,
    #executive .op-lollipop-list,
    .op-lollipop-list
  )::-webkit-scrollbar{
    width:6px;
    height:6px;
  }
  :is(
    #map-top-list,
    #ph-map-top-list,
    #li-map-top-list,
    #exec-map-top-list,
    #symptom .sc-lollipop,
    #symptom .sc-ranked,
    #lab #lab-condition-trends,
    #lab .li-card--critical .story-critical-table-wrap,
    #lab .li-lollipop,
    #lab #marker-trends,
    #lab .li-table-wrap,
    #lab .li-ward-bar-list,
    #population .ph-lollipop,
    #population .ph-dumbbell-rows,
    #population .ph-table-wrap,
    #population .ph-cond-heat-scroll,
    #population .ph-ward-grid-scroll,
    #population .sc-map-legend,
    #lab .sc-map-legend,
    #executive .exec-table-wrap,
    #executive .ph-table-wrap--scroll,
    #executive .story-critical-table-wrap,
    #executive .op-lollipop-list,
    .op-lollipop-list
  )::-webkit-scrollbar-track{
    background:transparent;
  }
  :is(
    #map-top-list,
    #ph-map-top-list,
    #li-map-top-list,
    #exec-map-top-list,
    #symptom .sc-lollipop,
    #symptom .sc-ranked,
    #lab #lab-condition-trends,
    #lab .li-card--critical .story-critical-table-wrap,
    #lab .li-lollipop,
    #lab #marker-trends,
    #lab .li-table-wrap,
    #lab .li-ward-bar-list,
    #population .ph-lollipop,
    #population .ph-dumbbell-rows,
    #population .ph-table-wrap,
    #population .ph-cond-heat-scroll,
    #population .ph-ward-grid-scroll,
    #population .sc-map-legend,
    #lab .sc-map-legend,
    #executive .exec-table-wrap,
    #executive .ph-table-wrap--scroll,
    #executive .story-critical-table-wrap,
    #executive .op-lollipop-list,
    .op-lollipop-list
  )::-webkit-scrollbar-thumb{
    background:color-mix(in srgb, var(--ink-faint) 50%, var(--hairline-strong));
    border-radius:var(--radius-sm);
  }
  :is(
    #map-top-list,
    #ph-map-top-list,
    #li-map-top-list,
    #exec-map-top-list,
    #symptom .sc-lollipop,
    #symptom .sc-ranked,
    #lab #lab-condition-trends,
    #lab .li-card--critical .story-critical-table-wrap,
    #lab .li-lollipop,
    #lab #marker-trends,
    #lab .li-table-wrap,
    #lab .li-ward-bar-list,
    #population .ph-lollipop,
    #population .ph-dumbbell-rows,
    #population .ph-table-wrap,
    #population .ph-cond-heat-scroll,
    #population .ph-ward-grid-scroll,
    #population .sc-map-legend,
    #lab .sc-map-legend,
    #executive .exec-table-wrap,
    #executive .ph-table-wrap--scroll,
    #executive .story-critical-table-wrap,
    #executive .op-lollipop-list,
    .op-lollipop-list
  )::-webkit-scrollbar-thumb:hover{
    background:var(--ink-faint);
  }

  /* —— Narrative flow (editorial sections, no numbered chapters) —— */
  .story-flow{
    display:flex;
    flex-direction:column;
    gap:var(--space-section);
  }
  .story-beat{
    display:flex;
    flex-direction:column;
    gap:var(--space-section);
    padding-top:8px;
  }
  .story-beat + .story-beat,
  .story-flow > .story-beat{
    margin-top:4px;
    padding-top:28px;
    border-top:1px solid var(--hairline);
  }
  .story-kicker{
    margin:0;
    font-size:var(--text-kicker);
    font-weight:700;
    line-height:1.3;
    color:var(--darkblue);
    letter-spacing:-.01em;
  }
  .story-bridge{
    margin:-6px 0 0;
    font-size:var(--text-body);
    line-height:1.55;
    color:var(--ink-soft);
    max-width:72ch;
  }
  .story-flow > .story-section,
  .story-flow > .story-hero-metrics,
  .story-flow > .story-dual-signal{margin:0;}

  /* Legacy chapter classes — kept for any stragglers, visually flat */
  .story-chapter{
    margin-bottom:var(--space-section);
    padding-bottom:0;
    border-bottom:none;
  }
  .story-chapter:last-child{border-bottom:none; margin-bottom:0; padding-bottom:0;}
  .story-chapter__head{
    display:flex;
    align-items:flex-start;
    gap:14px;
    margin-bottom:18px;
  }
  .story-chapter__step{
    flex-shrink:0;
    width:34px;
    height:34px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:14px;
    font-weight:700;
    color:var(--blue);
    background:var(--blue-soft);
    border:1px solid rgba(15,118,110,.18);
    line-height:1;
  }
  .story-chapter--action .story-chapter__step{
    color:#0F766E;
    background:#ECFDF5;
    border-color:rgba(16,185,129,.25);
  }
  .story-chapter__title{
    font-size:18px;
    font-weight:600;
    color:var(--darkblue);
    letter-spacing:-.02em;
    line-height:1.25;
    margin:0;
  }
  .story-chapter__lede{
    margin:4px 0 0;
    font-size:12.5px;
    color:var(--ink-soft);
    line-height:1.45;
    max-width:720px;
  }
  .story-chapter__body{display:flex; flex-direction:column; gap:var(--space-section);}
  .story-chapter--muted{opacity:.72;}
  .story-section{margin:0;}
  .story-hero-metrics{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:var(--space-kpi-gap);
  }
  .story-dual-signal{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    align-items:stretch;
  }
  .story-signal{padding:16px 18px;}
  .story-signal__header{margin-bottom:12px;}
  .story-signal__badge{
    display:inline-block;
    font-size:10px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
    padding:4px 10px;
    border-radius:var(--radius-sm);
  }
  .story-signal__badge--lab{background:var(--pink-soft); color:#9D174D;}
  .story-signal__badge--triage{background:var(--blue-soft); color:var(--blue);}
  .story-signal__hero{margin-bottom:14px;}
  .story-signal__label{display:block; font-size:10.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:4px;}
  .story-signal__headline{display:block; font-size:20px; font-weight:700; color:var(--darkblue); line-height:1.2;}
  .story-signal__meta{display:block; font-size:12px; color:var(--ink-soft); margin-top:4px;}
  .story-signal__facts{display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-bottom:10px;}
  .story-signal__fact{
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-radius:6px;
    padding:10px 12px;
    font-size:12px;
  }
  .story-signal__fact span{display:block; font-size:10px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-faint); font-weight:700; margin-bottom:2px;}
  .story-signal__fact b{display:block; font-size:15px; color:var(--darkblue);}
  .story-signal__fact em{display:block; font-style:normal; font-size:11px; color:var(--ink-soft); margin-top:2px;}
  .story-signal__list{border-top:1px solid var(--hairline); padding-top:10px; display:flex; flex-direction:column; gap:6px;}
  .story-signal-row{display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:12.5px;}
  .story-signal-row__name{font-weight:600; color:var(--darkblue);}
  .story-signal__empty{font-size:13px; color:var(--ink-soft); padding:12px 0;}
  .story-where-grid{
    display:grid;
    grid-template-columns:1.15fr .85fr;
    gap:16px;
    align-items:start;
  }
  .story-map-card .story-map-stage{min-height:0;}
  .story-map-frame{min-height:300px; height:300px;}
  #exec-map{min-height:0; height:100%; width:100%;}
  .story-map-sidebar .sc-hotspots-panel h4{font-size:12px; margin:0 0 8px;}
  .story-where-stack{display:flex; flex-direction:column; gap:14px;}
  .story-ward-card{padding:16px 18px;}
  .story-critical-card.is-hidden{display:none;}
  .story-critical-summary{font-size:12.5px; color:var(--ink-soft); margin:0 0 10px;}
  .story-critical-lede{font-size:12px; color:var(--ink-soft); margin:0 0 10px; line-height:1.45;}
  .story-critical-value{color:var(--ink-faint); font-weight:400;}
  .story-critical-table-wrap{overflow-x:auto;}
  .story-critical-table{font-size:12px;}
  .story-who-grid{display:grid; grid-template-columns:1fr 1fr; gap:14px;}
  .story-who-card{padding:16px 18px; min-height:180px;}
  .story-who-card__title{font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:12px;}
  .story-who-empty{font-size:13px; color:var(--ink-soft);}
  .story-demo-row{display:grid; grid-template-columns:72px 1fr 36px; align-items:center; gap:8px; font-size:12px; margin-bottom:6px;}
  .story-demo-row span{color:var(--ink-soft);}
  .story-demo-track{background:var(--chart-track); border-radius:4px; height:var(--chart-bar-sm); overflow:hidden;}
  .story-demo-track div{height:100%; background:var(--blue); border-radius:4px;}
  .story-who-gender{margin-top:14px;}
  .story-severity-card{padding:16px 18px;}
  .story-sev-summary{display:flex; align-items:baseline; gap:10px; margin-bottom:14px;}
  .story-sev-big{font-size:28px; font-weight:700; color:var(--darkblue);}
  .story-sev-lbl{font-size:12.5px; color:var(--ink-soft);}
  .story-sev-bars{display:flex; flex-direction:column; gap:8px;}
  .story-sev-row{display:grid; grid-template-columns:72px 1fr 40px; align-items:center; gap:8px; font-size:12px;}
  .story-sev-name{color:var(--ink-soft);}
  .story-sev-track{background:var(--chart-track); border-radius:4px; height:var(--chart-bar-md); overflow:hidden;}
  .story-sev-track div{height:100%; border-radius:4px; min-width:2px;}
  .story-action-grid{display:grid; grid-template-columns:1.2fr .8fr; gap:14px; align-items:start;}
  .story-action-grid .op-lollipop{min-height:0;}
  .story-action-grid .op-lollipop-list{max-height:240px;}
  #story-segmentation-card .ph-heatmap{padding:4px 0;}
  .story-action-lead{
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-left:4px solid var(--blue);
    border-radius:8px;
    padding:14px 18px;
    margin-bottom:14px;
  }
  .story-action-lead p{margin:0; font-size:13.5px; color:var(--darkblue); line-height:1.5;}
  .story-action-lead p + p{margin-top:6px; color:var(--ink-soft); font-size:13px;}
  .story-action-grid .is-hidden{display:none;}
  #story-outreach-card.is-hidden{display:none;}
  #story-referral-card.is-hidden{display:none;}
  .ph-table--compact{font-size:12px;}
  .story-program-strip{padding:16px 18px;}
  .story-program-grid{display:grid; grid-template-columns:repeat(3, minmax(0,1fr)); gap:12px;}
  .story-program-empty{font-size:13px; color:var(--ink-soft);}
  .story-drill-nav{
    display:grid;
    grid-template-columns:repeat(4, minmax(0,1fr));
    gap:10px;
    margin-top:4px;
  }
  .story-drill-btn{
    appearance:none;
    border:1px solid var(--hairline);
    background:var(--card);
    border-radius:8px;
    padding:12px 14px;
    text-align:left;
    cursor:pointer;
    transition:border-color .15s, box-shadow .15s, transform .12s;
    box-shadow:var(--shadow);
  }
  .story-drill-btn:hover{border-color:rgba(15,118,110,.35); box-shadow:0 4px 14px rgba(31,41,55,.08); transform:translateY(-1px);}
  .story-drill-btn__label{display:block; font-size:13px; font-weight:700; color:var(--darkblue); margin-bottom:2px;}
  .story-drill-btn__desc{display:block; font-size:11px; color:var(--ink-soft); line-height:1.35;}
  .story-compat{display:none !important;}
  .is-hidden{display:none !important;}
  #executive .exec-insight-banner{margin-bottom:0;}
  #executive .alert-banner{margin:0;}
  @media (max-width: 980px){
    .story-hero-metrics{grid-template-columns:1fr;}
    .story-dual-signal,
    .story-where-grid,
    .story-who-grid,
    .story-action-grid,
    .story-program-grid,
    .story-drill-nav{grid-template-columns:1fr;}
    .story-signal__facts{grid-template-columns:1fr;}
    .story-chapter-nav{flex-wrap:wrap;}
  }

  /* Chapter jump nav — removed from UI */
  .story-chapter-nav{display:none !important;}

  /* Rich executive narrative actions */
  .exec-insight-actions{
    list-style:none;
    margin:10px 0 0;
    padding:0;
    display:flex;
    flex-direction:column;
    gap:6px;
  }
  .exec-insight-action{
    display:flex;
    align-items:flex-start;
    gap:8px;
    font-size:12px;
    line-height:1.4;
    color:var(--ink-soft);
  }
  .exec-insight-action__tag{
    flex-shrink:0;
    font-size:10px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.04em;
    padding:2px 6px;
    border-radius:4px;
  }
  .exec-insight-action--recommended .exec-insight-action__tag{background:rgba(15,118,110,.12); color:var(--blue);}
  .exec-insight-action--monitor .exec-insight-action__tag{background:rgba(245,158,13,.15); color:#B45309;}
  .exec-insight-action--fix .exec-insight-action__tag{background:rgba(239,68,68,.12); color:var(--red);}

  /* Ward spotlight */
  .story-ward-spotlight{
    display:block;
    width:100%;
    text-align:left;
    border:1px solid var(--hairline);
    border-radius:10px;
    padding:16px;
    background:var(--card);
    cursor:pointer;
    transition:border-color .15s, box-shadow .15s;
  }
  .story-ward-spotlight:hover{border-color:rgba(15,118,110,.35); box-shadow:0 4px 14px rgba(31,41,55,.08);}
  .story-ward-spotlight__main{display:flex; align-items:baseline; gap:10px; margin-bottom:6px;}
  .story-ward-spotlight__code{font-size:18px; font-weight:800; color:var(--darkblue);}
  .story-ward-spotlight__score{font-size:28px; font-weight:800; line-height:1;}
  .story-ward-spotlight__tier{font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.04em; opacity:.85;}
  .story-ward-spotlight__meta{font-size:12px; color:var(--ink-soft); margin-bottom:8px;}
  .story-ward-spotlight__stats{display:flex; flex-wrap:wrap; gap:8px 12px; font-size:11px; color:var(--ink-faint);}
  .story-ward-more{margin:10px 0 0; text-align:center;}
  .story-ward-more__btn{
    background:none; border:none; color:var(--blue); font-size:12px; font-weight:600; cursor:pointer; padding:0;
  }
  .story-ward-more__btn:hover{text-decoration:underline;}
  #story-ward-spotlight-card.is-hidden{display:none;}

  /* Symptom who grid */
  .sc-who-grid{
    display:grid;
    grid-template-columns:minmax(0, 1.35fr) minmax(0, 1fr);
    gap:var(--space-grid);
  }
  .sc-who-grid--single{grid-template-columns:1fr;}
  .sc-kpi-grid--three{grid-template-columns:repeat(3, 1fr) !important;}
  #sc-severity-card.is-hidden{display:none;}
  #sc-map-beat.is-hidden{display:none !important;}
  #executive .story-map-card.is-hidden{display:none;}
  #story-segmentation-card.is-hidden{display:none;}
  #op-mom-section.is-hidden{display:none;}
  .li-card--critical .story-critical-summary{margin:0 0 8px; font-size:12px; color:var(--ink-soft);}
  #li-critical-block.is-hidden{display:none;}
  #lab .li-card--critical .story-critical-table-wrap{
    max-height:min(220px, 32vh);
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  #lab #lab-condition-trends{
    max-height:min(280px, 38vh);
    overflow:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }

  /* =========================================================
     Symptom Checker — enterprise modernization
     Densify spacing, elevate map, differentiate chart types.
     ========================================================= */
  #symptom.view[role="tabpanel"]{
    padding-top:14px;
    padding-bottom:24px;
  }
  #symptom .sc-view-head{
    margin-bottom:14px;
    padding-bottom:12px;
    border-bottom:1px solid var(--hairline);
  }
  #symptom .sc-view-head .label-caps{
    color:var(--blue);
    margin:0 0 4px;
    font-size:10px;
    letter-spacing:.1em;
  }
  #symptom .sc-view-head h2{
    font-size:22px;
    font-weight:700;
    letter-spacing:-.03em;
    color:var(--darkblue);
    line-height:1.15;
    margin:0 0 6px;
  }
  #symptom .sc-view-head p{
    margin:0;
    max-width:68ch;
    font-size:13px;
    line-height:1.5;
    color:var(--ink-soft);
  }
  #symptom .sc-flow{
    gap:0;
  }
  #symptom .sc-flow > .section,
  #symptom .sc-band .section,
  #symptom .story-beat .section{
    margin-bottom:0;
  }
  #symptom .sc-band{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin:0;
    padding:0 0 16px;
  }
  #symptom .sc-band--signals{padding-top:0;}
  #symptom .sc-signal-grid{
    display:grid;
    grid-template-columns:minmax(0, 1.05fr) minmax(0, 0.95fr);
    gap:12px;
    align-items:stretch;
  }
  #symptom .sc-signal-grid > .sc-card{
    min-width:0;
    box-shadow:none;
    border-color:var(--hairline);
  }
  #symptom .sc-kpi-grid{
    gap:10px;
  }
  #symptom .sc-kpi-grid .metric-card{
    box-shadow:none;
    border-color:var(--hairline);
    padding:12px 14px;
  }
  #symptom .sc-kpi-grid .metric-card__value{font-weight:700;}
  #symptom .sc-kpi-grid .metric-card__label{
    font-size:11.5px;
    font-weight:600;
    color:var(--darkblue);
  }
  #symptom .sc-kpi-grid .metric-card__sub{
    font-size:10.5px;
    font-weight:400;
    color:var(--ink-faint);
  }
  #symptom .sc-kpi-grid .metric-card:hover,
  #symptom .sc-kpi-grid .metric-card.is-ready:hover{
    transform:none;
    box-shadow:none;
    border-color:var(--hairline-strong);
  }
  #symptom .sc-flow > .story-beat{
    margin-top:0;
    padding-top:18px;
    border-top:1px solid var(--hairline);
    gap:12px;
  }
  #symptom .story-kicker{
    font-size:var(--text-kicker);
    font-weight:700;
    letter-spacing:-.01em;
  }
  #symptom .story-bridge{
    margin:-2px 0 2px;
    font-size:12.5px;
    max-width:72ch;
  }
  #symptom .sc-profile-grid{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(0, 1fr);
    gap:12px;
    align-items:stretch;
  }
  #symptom .sc-who-grid,
  #symptom .sc-profile-grid{
    margin:0;
  }
  #symptom .sc-who-grid > .sc-card,
  #symptom .sc-profile-grid > .sc-card{
    min-width:0;
    box-shadow:none;
    border-color:var(--hairline);
  }
  #symptom .sc-card--dx{
    border-left:3px solid var(--darkblue);
  }
  #symptom .sc-area-cols{height:128px;}
  #symptom .sc-area-stat-n{font-size:20px;}
  #symptom .sc-area-hint{margin:0 0 8px;}
  #symptom .sc-trend-table{font-size:12px;}
  #symptom .sc-signal-grid #sc-trends{overflow-x:auto; -webkit-overflow-scrolling:touch;}
  #symptom .sc-signal-grid .sc-trend-table{min-width:420px;}
  #symptom .sc-trend-footnote{margin-top:10px;}

  /* Ranked bars — AI condition assessments (distinct from symptom lollipops) */
  #symptom .sc-ranked{
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:4px 0 2px;
    height:min(280px, 38vh);
    max-height:min(280px, 38vh);
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
  }
  #symptom .sc-ranked-row{
    display:grid;
    grid-template-columns:22px minmax(0, 1fr);
    gap:10px;
    align-items:center;
    padding:8px 10px;
    border-radius:8px;
    transition:background var(--transition-ui);
  }
  #symptom .sc-ranked-row:hover{background:var(--row-hover);}
  #symptom .sc-ranked-rank{
    font-size:11px;
    font-weight:700;
    color:var(--ink-faint);
    text-align:center;
    font-variant-numeric:tabular-nums;
  }
  #symptom .sc-ranked-body{min-width:0;}
  #symptom .sc-ranked-head{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:10px;
    margin-bottom:6px;
  }
  #symptom .sc-ranked-label{
    font-size:12.5px;
    font-weight:600;
    color:var(--darkblue);
    line-height:1.35;
    overflow-wrap:anywhere;
    word-break:break-word;
    min-width:0;
  }
  #symptom .sc-ranked-meta{
    flex-shrink:0;
    font-size:11.5px;
    font-weight:700;
    color:var(--ink-soft);
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
  }
  #symptom .sc-ranked-track{
    height:8px;
    background:var(--chart-track);
    border-radius:4px;
    overflow:hidden;
    border:1px solid rgba(31,41,55,.04);
  }
  #symptom .sc-ranked-bar{
    height:100%;
    background:var(--darkblue);
    border-radius:4px;
    min-width:2px;
  }

  @media (max-width: 980px){
    #symptom .sc-signal-grid,
    #symptom .sc-profile-grid{grid-template-columns:1fr;}
    #symptom .sc-who-grid{grid-template-columns:1fr;}
  }
  @media (max-width: 640px){
    #symptom .sc-kpi-grid--three{grid-template-columns:1fr !important;}
    #symptom .sc-ranked-head{flex-wrap:wrap;}
  }
  /* =========================================================
     Executive Overview — enterprise modernization
     Densify layout, strengthen hierarchy, keep all widgets.
     ========================================================= */
  #executive.view[role="tabpanel"]{
    padding-top:14px;
    padding-bottom:24px;
  }

  #executive .exec-view-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:16px 24px;
    margin-bottom:14px;
    padding-bottom:12px;
    border-bottom:1px solid var(--hairline);
    flex-wrap:wrap;
  }
  #executive .exec-view-head__main{min-width:0; flex:1 1 240px;}
  #executive .exec-view-head .label-caps{
    color:var(--blue);
    margin:0 0 4px;
    font-size:10px;
    letter-spacing:.1em;
  }
  #executive .exec-view-head h2{
    font-size:22px;
    font-weight:700;
    letter-spacing:-.03em;
    color:var(--darkblue);
    line-height:1.15;
    margin:0;
  }
  #executive .exec-view-head .exec-briefing-meta,
  #executive .exec-briefing-meta{
    margin:0;
    flex:0 1 auto;
    font-size:12px;
    font-weight:600;
    color:var(--ink-soft);
    letter-spacing:.01em;
    padding:6px 10px;
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-radius:var(--radius-sm);
    white-space:nowrap;
    max-width:100%;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #executive .exec-view-head > p:not(.exec-briefing-meta){display:none;}

  #executive .exec-flow{
    gap:0;
  }
  #executive .exec-band{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin:0;
    padding:16px 0;
    border-top:1px solid var(--hairline);
  }
  #executive .exec-band:first-of-type{
    border-top:none;
    padding-top:0;
  }
  #executive .exec-band:last-of-type{padding-bottom:0;}
  #executive .exec-band__head{
    display:flex;
    flex-direction:column;
    gap:2px;
    margin:0;
  }
  #executive .exec-band__title{
    margin:0;
    font-size:var(--text-kicker);
    font-weight:700;
    letter-spacing:-.01em;
    text-transform:none;
    color:var(--darkblue);
    line-height:1.3;
  }
  #executive .exec-band__lede{
    margin:0;
    font-size:var(--text-body);
    line-height:1.45;
    color:var(--ink-soft);
    max-width:72ch;
  }
  /* Empty containers (e.g. action lead with no copy) must not reserve gap */
  #executive .exec-band > :empty,
  #executive #story-actions-panel:empty{
    display:none;
  }

  /* Summary: briefing, then disease trends stacked full-width */
  #executive .exec-summary-stack{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
    align-items:stretch;
  }
  #executive .exec-summary-stack .story-section{
    margin:0;
    min-width:0;
    display:flex;
    flex-direction:column;
  }
  #executive .exec-summary-stack .exec-insight-banner,
  #executive .exec-summary-stack .alert-banner{
    flex:0 0 auto;
    height:auto;
    min-height:0;
    margin:0;
  }
  #executive .exec-insight-banner{
    padding:16px 18px 16px 16px;
    box-shadow:none;
    border:1px solid var(--hairline);
    border-left:none;
    background:var(--card);
    align-items:flex-start;
  }
  #executive .exec-insight-accent{width:4px; background:var(--darkblue);}
  #executive .exec-insight-icon{
    width:32px;
    height:32px;
    background:var(--surface-muted);
    color:var(--darkblue);
  }
  #executive .exec-insight-label{
    font-size:10px;
    letter-spacing:.1em;
    color:var(--blue);
    font-weight:700;
  }
  #executive .exec-insight-headline{
    font-size:16px;
    font-weight:700;
    line-height:1.35;
    color:var(--darkblue);
    letter-spacing:-.015em;
    max-width:none;
  }
  #executive .exec-insight-body{
    font-size:12.5px;
    line-height:1.5;
    -webkit-line-clamp:4;
    max-width:none;
  }
  #executive .exec-insight-actions{
    margin-top:10px;
    padding-top:10px;
    border-top:1px solid var(--hairline);
    gap:8px;
  }
  #executive .exec-insight-action{
    font-size:12.5px;
    color:var(--ink-soft);
    line-height:1.4;
  }
  #executive .exec-insight-action__tag{
    min-width:5.5rem;
    text-align:center;
  }
  #executive .alert-banner{
    box-shadow:none;
    padding:14px 16px;
    border:1px solid var(--hairline);
    align-items:flex-start;
  }
  #executive .alert-banner strong{
    font-size:13.5px;
    line-height:1.35;
    overflow-wrap:anywhere;
  }
  #executive .alert-banner-copy > span:last-child{
    font-size:12px;
    line-height:1.45;
    overflow-wrap:anywhere;
  }

  /* Primary KPIs */
  #executive .story-hero-metrics{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:10px;
    margin:0;
  }
  #executive .story-hero-metrics .metric-card{
    padding:14px 14px;
    box-shadow:none;
    border-color:var(--hairline);
  }
  #executive .story-hero-metrics .metric-card:hover,
  #executive .story-hero-metrics .metric-card.is-ready:hover{
    transform:none;
    box-shadow:none;
    border-color:var(--hairline-strong);
  }
  #executive .story-hero-metrics .metric-card__value{
    font-size:22px;
    font-weight:700;
    letter-spacing:-.03em;
  }
  #executive .story-hero-metrics .metric-card__label{
    font-size:11.5px;
    font-weight:600;
    color:var(--darkblue);
  }
  #executive .story-hero-metrics .metric-card__sub{
    font-size:10.5px;
    font-weight:400;
    color:var(--ink-faint);
    line-height:1.35;
    overflow-wrap:anywhere;
  }

  /* Program outcomes — same KPI hierarchy as Primary indicators */
  #executive .story-program-strip{
    padding:14px 14px;
    box-shadow:none;
    border:1px solid var(--hairline);
    margin:0;
  }
  #executive .story-program-grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:10px;
  }
  #executive .story-program-grid .metric-card{
    box-shadow:none;
    background:var(--surface-subtle);
    border-color:var(--hairline);
    padding:14px 14px;
  }
  #executive .story-program-grid .metric-card:hover,
  #executive .story-program-grid .metric-card.is-ready:hover{
    transform:none;
    box-shadow:none;
  }
  #executive .story-program-grid .metric-card__value{
    font-size:20px;
    font-weight:700;
    letter-spacing:-.03em;
  }
  #executive .story-program-grid .metric-card__label{
    font-size:11.5px;
    font-weight:600;
    color:var(--darkblue);
  }
  #executive .story-program-grid .metric-card__sub{
    font-size:10.5px;
    font-weight:400;
    color:var(--ink-faint);
    line-height:1.35;
  }
  #executive .story-program-empty{
    margin:0;
    padding:12px 14px;
    background:var(--surface-subtle);
    border:1px dashed var(--hairline-strong);
    border-radius:var(--radius-sm);
    font-size:12.5px;
    line-height:1.45;
  }

  /* Dual surveillance signals */
  #executive .story-dual-signal{
    gap:10px;
    margin:0;
    align-items:stretch;
  }
  #executive .story-signal{
    padding:14px 14px;
    box-shadow:none;
    border:1px solid var(--hairline);
    min-width:0;
    height:100%;
    display:flex;
    flex-direction:column;
  }
  #executive .story-signal__header{margin-bottom:8px; flex:0 0 auto;}
  #executive .story-signal__badge{
    border-radius:4px;
    padding:3px 8px;
    font-size:9px;
    letter-spacing:.08em;
  }
  #executive .story-signal__hero{margin-bottom:10px; flex:0 0 auto;}
  #executive .story-signal__headline{
    font-size:18px;
    font-weight:700;
    letter-spacing:-.02em;
    overflow-wrap:anywhere;
  }
  #executive .story-signal__meta{
    font-size:12px;
    line-height:1.4;
    overflow-wrap:anywhere;
  }
  #executive .story-signal__facts{
    gap:8px;
    margin-bottom:8px;
    flex:0 0 auto;
  }
  #executive .story-signal__fact{
    padding:8px 10px;
    border-radius:var(--radius-sm);
    background:var(--surface-subtle);
    min-width:0;
  }
  #executive .story-signal__fact b{
    font-size:14px;
    overflow-wrap:anywhere;
  }
  #executive .story-signal__fact em,
  #executive .story-signal__fact span{
    overflow-wrap:anywhere;
  }
  #executive .story-signal__list{
    max-height:132px;
    overflow:auto;
    padding-right:4px;
    margin-top:auto;
  }
  #executive .story-signal__empty{
    margin-top:auto;
    padding:8px 0 0;
  }
  #executive .story-signal-row__name{
    overflow-wrap:anywhere;
    min-width:0;
  }
  #executive .watch-badge{
    border-radius:4px;
    font-size:9px;
    letter-spacing:.04em;
  }

  /* Geography layout: map + ward/alerts side column */
  #executive .exec-geo-layout{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:10px;
    align-items:stretch;
  }
  #executive .exec-geo-side{
    display:flex;
    flex-direction:column;
    gap:10px;
    min-width:0;
  }
  #executive .story-map-card{
    padding:12px 12px 10px;
    box-shadow:none;
    margin:0;
    min-width:0;
    min-height:0;
    height:auto;
    max-width:100%;
    overflow:hidden;
    display:flex;
    flex-direction:column;
  }
  #executive .story-map-card .section-title{
    margin-bottom:8px;
    padding-bottom:6px;
    flex:0 0 auto;
  }
  #executive .story-map-stage{
    display:grid;
    grid-template-columns:minmax(0, 1fr) minmax(260px, 300px);
    gap:10px;
    align-items:start;
    flex:1 1 auto;
    min-height:220px;
    min-width:0;
    width:100%;
  }
  #executive .story-map-stage .sc-map-main{
    display:flex;
    flex-direction:column;
    min-width:0;
    min-height:0;
    height:100%;
  }
  #executive .story-map-frame{
    position:relative;
    flex:1 1 auto;
    width:100%;
    min-height:220px;
    height:100%;
    border-radius:8px;
    overflow:hidden;
    border:1px solid var(--hairline);
    background:var(--chart-track);
  }
  #executive #exec-map{
    position:absolute;
    inset:0;
    width:100%;
    height:100% !important;
    min-height:0 !important;
    z-index:1;
    background:var(--chart-track);
  }
  #executive .story-map-frame .sc-map-empty{
    position:absolute;
    inset:0;
    z-index:400;
    display:none;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    padding:16px;
    background:color-mix(in srgb, var(--bg) 78%, transparent);
    text-align:center;
    pointer-events:none;
  }
  #executive .story-map-frame .sc-map-empty.is-visible{display:flex;}
  #executive .story-map-frame .sc-map-empty p{
    margin:0;
    font-size:12.5px;
    color:var(--ink-soft);
    max-width:28ch;
  }
  #executive .story-map-sidebar{
    min-width:0;
    max-width:100%;
    min-height:0;
    height:auto;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  #executive .story-map-sidebar .sc-map-stats{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    margin-bottom:0;
    flex:0 0 auto;
    align-items:stretch;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:14px 12px 12px;
    min-height:132px;
    height:100%;
    box-shadow:none;
    text-align:center;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card:hover{
    transform:none;
    box-shadow:none;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card__body{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:10px;
    width:100%;
    min-width:0;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card__leading{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:8px;
    width:100%;
    min-width:0;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card__icon{
    width:40px;
    height:40px;
    border-radius:12px;
    margin:0 auto;
    flex-shrink:0;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card__icon svg{
    width:22px;
    height:22px;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card__meta{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:3px;
    width:100%;
    min-width:0;
    text-align:center;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card__label{
    font-size:11.5px;
    font-weight:700;
    color:var(--darkblue);
    line-height:1.25;
    text-align:center;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    word-break:normal;
    overflow-wrap:normal;
    max-width:100%;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card__sub{
    font-size:10px;
    font-weight:400;
    color:var(--ink-faint);
    line-height:1.3;
    text-align:center;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
    word-break:normal;
    overflow-wrap:normal;
    max-width:100%;
    margin-top:0;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card__value-row{
    display:flex;
    justify-content:center;
    align-items:center;
    width:100%;
    margin-top:0;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card__value{
    font-size:18px;
    font-weight:700;
    text-align:center;
    width:100%;
    line-height:1.1;
  }
  #executive .story-map-sidebar .sc-map-stats .metric-card--center-value .metric-card__leading,
  #executive .story-map-sidebar .sc-map-stats .metric-card--center-value .metric-card__meta,
  #executive .story-map-sidebar .sc-map-stats .metric-card--center-value .metric-card__label,
  #executive .story-map-sidebar .sc-map-stats .metric-card--center-value .metric-card__sub{
    text-align:center;
    justify-content:center;
    align-items:center;
  }
  #executive .sc-hotspots-panel{
    display:flex;
    flex-direction:column;
    flex:1 1 auto;
    min-height:0;
    max-height:none;
    overflow:hidden;
    padding-right:2px;
  }
  #executive #exec-map-top-list{
    flex:1 1 auto;
    height:auto;
    max-height:min(280px, 40vh);
    overflow-x:hidden;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    min-width:0;
    min-height:0;
    max-width:100%;
    padding-right:2px;
  }
  #executive .sc-hotspots-panel h4{
    font-size:11px;
    font-weight:700;
    letter-spacing:.04em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin:0 0 6px;
    flex-shrink:0;
    background:var(--card);
    padding-bottom:4px;
  }
  #executive .sc-hotspot-row{
    display:flex;
    align-items:flex-start;
    gap:8px;
    padding:7px 0;
    border-bottom:1px solid var(--hairline);
  }
  #executive .sc-hotspot-row:last-child{border-bottom:none;}
  #executive .sc-hotspot-rank{
    flex:0 0 18px;
    width:18px;
    height:18px;
    border-radius:4px;
    background:var(--surface-muted);
    color:var(--ink-soft);
    font-size:10px;
    font-weight:700;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-top:1px;
  }
  #executive .sc-hotspot-lbl{
    display:grid;
    grid-template-columns:10px minmax(0, 1fr);
    column-gap:6px;
    row-gap:2px;
    align-items:start;
    min-width:0;
    flex:1 1 auto;
  }
  #executive .sc-hotspot-dot{
    grid-column:1;
    grid-row:1;
    width:8px;
    height:8px;
    border-radius:50%;
    margin-top:4px;
    display:block;
  }
  #executive .sc-hotspot-name{
    grid-column:2;
    grid-row:1;
    font-weight:600;
    color:var(--darkblue);
    font-size:12px;
    overflow-wrap:anywhere;
  }
  #executive .sc-hotspot-lbl em{
    grid-column:2;
    grid-row:2;
    font-style:normal;
    font-size:10.5px;
    color:var(--ink-faint);
    line-height:1.35;
    overflow-wrap:anywhere;
  }
  #executive .sc-hotspot-row b{
    flex:0 0 auto;
    font-variant-numeric:tabular-nums;
    font-size:12px;
    color:var(--darkblue);
  }
  #executive .sc-map-legend{
    position:absolute;
    left:10px;
    bottom:10px;
    z-index:500;
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:6px 10px;
    padding:7px 10px;
    font-size:10px;
    background:color-mix(in srgb, var(--card) 94%, transparent);
    border:1px solid var(--hairline);
    border-radius:6px;
    box-shadow:0 2px 8px rgba(31,41,55,.08);
    max-width:calc(100% - 56px);
    max-height:72px;
    overflow:auto;
  }
  #executive .sc-map-legend span{
    display:inline-flex;
    align-items:center;
    gap:5px;
    color:var(--ink-soft);
    white-space:nowrap;
  }
  #executive .sc-map-legend i{
    width:8px;
    height:8px;
    border-radius:50%;
    display:inline-block;
    flex-shrink:0;
  }

  #executive .story-ward-card,
  #executive .story-critical-card{
    padding:12px 12px;
    box-shadow:none;
    margin:0;
    flex:1 1 auto;
    min-height:0;
  }
  #executive .story-ward-card .section-title,
  #executive .story-critical-card .section-title{
    margin-bottom:8px;
    padding-bottom:6px;
  }
  #executive .story-ward-spotlight{
    border-radius:var(--radius-sm);
    padding:12px;
    box-shadow:none;
  }
  #executive .story-ward-spotlight:hover{
    transform:none;
    box-shadow:none;
    border-color:var(--hairline-strong);
  }
  #executive .story-ward-spotlight__code{font-size:16px; font-weight:700;}
  #executive .story-ward-spotlight__score{font-size:24px; font-weight:700;}
  #executive .story-ward-spotlight__stats{
    gap:6px;
  }
  #executive .story-ward-spotlight__stats span{
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-radius:4px;
    padding:3px 7px;
    color:var(--ink-soft);
  }
  #executive .story-ward-more{margin:8px 0 0; text-align:left;}

  #executive .story-critical-card{
    border-color:rgba(239,68,68,.28);
    background:var(--card);
    box-shadow:inset 3px 0 0 var(--red);
  }
  #executive .story-critical-card .section-title h3{color:var(--red);}
  #executive .story-critical-card .story-critical-table-wrap,
  #executive .story-critical-card .story-critical-summary{
    background:transparent;
  }
  #executive .story-critical-card .ledger-table{
    background:var(--card);
  }
  #executive .story-critical-summary{
    margin:0 0 8px;
    font-size:12px;
    font-weight:600;
    color:var(--red);
  }
  #executive .story-critical-table-wrap{
    max-height:168px;
    overflow:auto;
    margin:0 -2px;
  }
  #executive .story-critical-table{
    font-size:11.5px;
    width:100%;
  }
  #executive .story-critical-table th,
  #executive .story-critical-table td{
    padding:7px 8px;
    vertical-align:top;
    overflow-wrap:anywhere;
  }
  #executive .story-critical-table .stamp.pending{
    background:var(--red-soft);
    color:var(--red);
    font-weight:700;
  }

  /* Facilities table denser + scroll */
  #executive .facilities-attention-wrap{
    padding:12px 12px 10px;
    box-shadow:none;
    height:auto !important;
    margin:0;
  }
  #executive .facilities-attention-wrap .section-title{
    margin-bottom:8px;
    padding-bottom:6px;
  }
  #executive .facilities-attention-wrap .section-title .note{
    overflow-wrap:anywhere;
  }
  #executive .exec-table-wrap{
    max-height:200px;
    margin:0;
  }
  #executive .exec-data-table{
    font-size:12px;
  }
  #executive .exec-data-table td.is-primary,
  #executive .exec-data-table td.is-muted{
    overflow-wrap:anywhere;
  }

  /* Operational */
  #executive .story-action-lead{
    background:var(--surface-subtle);
    border:1px solid var(--hairline);
    border-left:3px solid var(--darkblue);
    border-radius:var(--radius-sm);
    padding:12px 14px;
    margin:0;
  }
  #executive .story-action-lead p{
    font-size:13px;
    overflow-wrap:anywhere;
  }
  #executive .story-action-lead p + p{margin-top:6px;}
  #executive .story-action-grid{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:10px;
    margin:0;
    align-items:stretch;
  }
  #executive .story-action-grid:has(> .card.is-hidden){
    grid-template-columns:1fr;
  }
  #executive .story-action-grid > .card{
    padding:12px 12px;
    box-shadow:none;
    margin:0;
    min-width:0;
    height:100%;
    display:flex;
    flex-direction:column;
  }
  #executive .story-action-grid .section-title{
    margin-bottom:8px;
    padding-bottom:6px;
  }
  #executive .ph-table-wrap--scroll{
    max-height:220px;
    overflow:auto;
    flex:1 1 auto;
  }
  #executive .ph-table--compact th,
  #executive .ph-table--compact td{
    padding:7px 8px;
    overflow-wrap:anywhere;
    vertical-align:top;
  }
  #executive .story-action-grid .op-lollipop{
    flex:1 1 auto;
    min-height:0;
  }
  #executive .story-action-grid .op-lollipop-list{
    max-height:220px;
    overflow:auto;
  }

  /* Supporting analytics — balanced three-panel composition */
  #executive .exec-support-trio{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:10px;
    align-items:stretch;
    margin:0;
  }
  #executive .exec-support-trio > .card{
    display:flex;
    flex-direction:column;
    min-width:0;
    min-height:100%;
    height:100%;
    padding:12px 12px;
    box-shadow:none;
    margin:0;
  }
  #executive .exec-support-trio .section-title{
    margin-bottom:10px;
    padding-bottom:6px;
  }
  #executive .exec-support-trio .section-title h3{
    font-size:13px;
  }
  #executive .exec-support-trio .section-title .note{
    font-size:11px;
    line-height:1.4;
  }
  #executive .story-who-card #story-who-lab,
  #executive .story-who-card #story-who-triage,
  #executive .story-severity-card #story-severity-snapshot{
    flex:1 1 auto;
    min-width:0;
    display:flex;
    flex-direction:column;
  }
  #executive .story-who-total{
    display:flex;
    align-items:baseline;
    gap:8px;
    margin:0 0 10px;
  }
  #executive .story-who-total__n{
    font-size:22px;
    font-weight:700;
    letter-spacing:-.03em;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    line-height:1;
  }
  #executive .story-who-total__l{
    font-size:11px;
    font-weight:600;
    color:var(--ink-faint);
    text-transform:uppercase;
    letter-spacing:.04em;
  }
  #executive .story-who-subhead{
    font-size:10px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin:0 0 6px;
  }
  #executive .story-who-empty{
    font-size:12.5px;
    line-height:1.45;
    color:var(--ink-soft);
    padding:8px 0;
  }

  /* Lab: vertical column age chart */
  #executive .exec-who-age--cols{margin-bottom:12px;}
  #executive .exec-age-cols{
    display:flex;
    align-items:flex-end;
    gap:6px;
    min-height:132px;
    padding:4px 2px 0;
  }
  #executive .exec-age-col{
    flex:1 1 0;
    min-width:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
  }
  #executive .exec-age-col__val{
    font-size:11px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    line-height:1;
  }
  #executive .exec-age-col__track{
    width:100%;
    max-width:36px;
    height:88px;
    background:var(--surface-muted);
    border:1px solid var(--hairline);
    border-radius:4px 4px 2px 2px;
    display:flex;
    align-items:flex-end;
    overflow:hidden;
  }
  #executive .exec-age-col__fill{
    width:100%;
    background:var(--blue);
    border-radius:2px 2px 0 0;
    min-height:0;
  }
  #executive .exec-age-col__lab{
    font-size:10px;
    color:var(--ink-soft);
    text-align:center;
    line-height:1.2;
    overflow-wrap:anywhere;
    max-width:100%;
  }
  #executive .exec-age-col__pct{
    font-size:10px;
    font-weight:600;
    color:var(--ink-faint);
    font-variant-numeric:tabular-nums;
  }

  /* Lab: sex as dual KPI tiles */
  #executive .exec-who-sex{margin-top:auto; padding-top:4px;}
  #executive .exec-who-sex-kpis{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:6px;
  }
  #executive .exec-who-sex-kpi{
    border:1px solid var(--hairline);
    background:var(--surface-subtle);
    border-radius:var(--radius-sm);
    padding:8px 9px;
    min-width:0;
  }
  #executive .exec-who-sex-kpi__head{
    display:flex;
    align-items:center;
    gap:6px;
    margin-bottom:4px;
  }
  #executive .exec-who-sex-kpi__swatch{
    width:8px; height:8px; border-radius:2px; flex-shrink:0;
  }
  #executive .exec-who-sex-kpi__label{
    font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-faint);
  }
  #executive .exec-who-sex-kpi__body{
    display:flex;
    align-items:baseline;
    justify-content:space-between;
    gap:8px;
  }
  #executive .exec-who-sex-kpi__n{
    font-size:17px; font-weight:700; color:var(--darkblue); font-variant-numeric:tabular-nums; line-height:1.1;
  }
  #executive .exec-who-sex-kpi__pct{
    font-style:normal; font-size:11px; color:var(--ink-soft); font-variant-numeric:tabular-nums;
  }
  #executive .exec-who-sex-kpis:has(> :nth-child(3)){
    grid-template-columns:1fr;
  }

  /* Triage: horizontal lollipop age chart */
  #executive .exec-who-age--lolli{margin-bottom:10px;}
  #executive .exec-age-lolli-list{display:flex; flex-direction:column; gap:5px;}
  #executive .exec-age-lolli{
    display:grid;
    grid-template-columns:minmax(44px,58px) minmax(0,1fr) auto auto;
    align-items:center;
    gap:6px;
  }
  #executive .exec-age-lolli__lab{
    font-size:11.5px;
    color:var(--ink-soft);
    overflow-wrap:anywhere;
    line-height:1.2;
  }
  #executive .exec-age-lolli__track{
    position:relative;
    height:12px;
    background:var(--surface-muted);
    border:1px solid var(--hairline);
    border-radius:var(--radius-sm);
  }
  #executive .exec-age-lolli__stem{
    position:absolute;
    left:0; top:50%;
    height:2px;
    background:var(--blue);
    transform:translateY(-50%);
    border-radius:1px;
    max-width:100%;
  }
  #executive .exec-age-lolli__dot{
    position:absolute;
    top:50%;
    width:10px; height:10px;
    border-radius:50%;
    background:var(--blue);
    border:2px solid var(--card);
    box-shadow:0 0 0 1px rgba(15,118,110,.35);
    transform:translateY(-50%);
  }
  #executive .exec-age-lolli__val{
    font-size:12px;
    font-weight:700;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
    text-align:right;
  }
  #executive .exec-age-lolli__pct{
    font-style:normal;
    font-size:11px;
    color:var(--ink-faint);
    font-variant-numeric:tabular-nums;
    text-align:right;
    min-width:2.25rem;
  }
  #executive .exec-who-sex--strip .exec-who-sex-bar{
    height:16px;
    border-radius:4px;
    box-shadow:none;
  }
  #executive .exec-who-sex--strip .exec-who-sex-legend{
    display:flex;
    flex-wrap:wrap;
    gap:6px 12px;
    margin-top:8px;
    font-size:11px;
  }
  #executive .exec-who-sex--strip .exec-who-sex-legend b{color:var(--darkblue);}
  #executive .exec-who-sex--strip .exec-who-sex-legend i{
    width:8px; height:8px; border-radius:2px; margin-right:5px; display:inline-block;
  }

  /* Severity: donut composition */
  #executive .exec-sev-donut-wrap{
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:12px;
    flex:1;
  }
  #executive .exec-sev-donut{
    position:relative;
    width:132px;
    height:132px;
    margin:0 auto;
    flex-shrink:0;
  }
  #executive .exec-sev-svg{
    width:132px;
    height:132px;
    transform:rotate(-90deg);
    display:block;
  }
  #executive .exec-sev-arc{transition:none;}
  #executive .exec-sev-hole{fill:var(--card);}
  #executive .exec-sev-center{
    position:absolute;
    inset:0;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    pointer-events:none;
  }
  #executive .exec-sev-center__n{
    font-size:22px;
    font-weight:700;
    letter-spacing:-.03em;
    color:var(--darkblue);
    line-height:1;
  }
  #executive .exec-sev-center__l{
    font-size:10px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:var(--ink-faint);
    margin-top:3px;
  }
  #executive .exec-sev-legend{
    display:flex;
    flex-direction:column;
    gap:5px;
    min-width:0;
  }
  #executive .exec-sev-legend__meta{
    font-size:11px;
    font-weight:600;
    color:var(--ink-faint);
    margin-bottom:2px;
  }
  #executive .exec-sev-leg-row{
    display:grid;
    grid-template-columns:8px minmax(0,1fr) auto auto;
    align-items:center;
    gap:8px;
    font-size:12px;
  }
  #executive .exec-sev-swatch{
    width:8px; height:8px; border-radius:2px; display:block;
  }
  #executive .exec-sev-leg-name{
    color:var(--ink-soft);
    overflow-wrap:anywhere;
  }
  #executive .exec-sev-leg-count{
    font-variant-numeric:tabular-nums;
    color:var(--darkblue);
    font-weight:700;
  }
  #executive .exec-sev-leg-pct{
    font-style:normal;
    font-size:11px;
    font-variant-numeric:tabular-nums;
    color:var(--ink-faint);
    min-width:2.5rem;
    text-align:right;
  }

  #executive .story-segmentation-card{
    padding:12px 12px;
    box-shadow:none;
    margin:0;
    min-width:0;
  }
  #executive .story-segmentation-card .section-title{
    margin-bottom:8px;
    padding-bottom:6px;
  }
  #executive #story-segmentation.ph-heatmap{
    max-height:260px;
    overflow:auto;
  }
  #executive .story-drill-nav{
    gap:8px;
    margin:0;
  }
  #executive .story-drill-btn{
    box-shadow:none;
    border-radius:var(--radius-sm);
    padding:10px 12px;
    height:100%;
  }
  #executive .story-drill-btn:hover{
    transform:none;
    box-shadow:none;
    border-color:var(--hairline-strong);
  }
  #executive .story-drill-btn__label{font-size:12.5px;}
  #executive .story-drill-btn__desc{font-size:11px; overflow-wrap:anywhere;}

  /* Shared executive card polish */
  #executive .card{
    box-shadow:none;
  }
  #executive .section-title h3{
    overflow-wrap:anywhere;
  }
  #executive .section-title .note{
    overflow-wrap:anywhere;
  }

  @media (max-width: 1100px){
    #executive .exec-summary-stack,
    #executive .exec-geo-layout{
      grid-template-columns:1fr;
    }
    #executive .exec-support-trio{
      grid-template-columns:1fr 1fr;
    }
    #executive .exec-support-trio .story-severity-card{
      grid-column:1 / -1;
    }
    #executive .exec-support-trio .story-severity-card .exec-sev-stack-wrap{
      gap:12px;
    }
    #executive .exec-support-trio .story-severity-card .exec-sev-legend{
      flex:1 1 auto;
    }
    #executive .story-map-stage{
      grid-template-columns:1fr;
      min-height:260px;
    }
    #executive .story-map-frame{
      min-height:240px;
    }
    #executive #exec-map-top-list{
      height:auto;
      max-height:min(200px, 34vh);
    }
  }
  @media (max-width: 980px){
    #executive .exec-view-head{align-items:flex-start;}
    #executive .exec-briefing-meta{
      white-space:normal;
    }
    #executive .story-hero-metrics,
    #executive .story-program-grid,
    #executive .story-dual-signal,
    #executive .story-action-grid,
    #executive .story-drill-nav{
      grid-template-columns:1fr;
    }
    #executive .story-signal__facts{
      grid-template-columns:1fr 1fr;
    }
    #executive .story-map-sidebar .sc-map-stats{
      grid-template-columns:1fr 1fr;
    }
  }
  @media (max-width: 720px){
    #executive .exec-support-trio{
      grid-template-columns:1fr;
    }
    #executive .exec-support-trio .story-severity-card{
      grid-column:auto;
    }
    #executive .exec-age-cols{min-height:120px;}
    #executive .exec-age-col__track{height:76px;}
  }
  @media (max-width: 640px){
    #executive .story-signal__facts,
    #executive .story-map-sidebar .sc-map-stats{
      grid-template-columns:1fr;
    }
    #executive .exec-insight-action{
      flex-direction:column;
      gap:4px;
    }
    #executive .exec-insight-action__tag{min-width:0; align-self:flex-start;}
  }

  /* Hotspot ward/facility toggle + Excel export */
  .story-map-card .section-title,
  .sc-map-card .section-title,
  .story-malpractice-card .section-title{
    flex-direction:row;
    flex-wrap:wrap;
    align-items:center;
    gap:8px 12px;
  }
  .sc-hotspot-header-actions{
    display:flex;
    align-items:center;
    gap:8px;
    margin-left:auto;
    flex-wrap:wrap;
  }
  #lab .sc-map-card .sc-hotspot-header-actions{
    gap:10px;
    align-items:center;
  }
  #lab .sc-map-card .sc-hotspot-tabs--header{
    min-width:156px;
  }
  .export-btn--inline{
    margin-left:0;
    padding:5px 10px;
    font-size:11px;
    white-space:nowrap;
  }
  .export-btn--icon{
    display:inline-flex;
    align-items:center;
    gap:6px;
  }
  .export-btn__icon{
    flex:0 0 auto;
    opacity:.9;
  }
  .section-title .export-btn--inline{align-self:center;}
  .sc-hotspot-tabs{
    display:flex;
    gap:4px;
    margin:0 0 10px;
    padding:3px;
    background:var(--surface-muted, #F1F5F9);
    border-radius:6px;
  }
  .sc-hotspot-tabs--header{
    margin:0;
    flex:0 0 auto;
    min-width:148px;
  }
  .sc-hotspot-tab{
    flex:1;
    border:none;
    background:transparent;
    color:var(--ink-soft);
    font-size:11px;
    font-weight:700;
    padding:6px 8px;
    border-radius:4px;
    cursor:pointer;
  }
  .sc-hotspot-tab.is-active{
    background:var(--card, #fff);
    color:var(--darkblue);
    box-shadow:0 1px 2px rgba(6,22,49,.08);
  }
  .sc-hotspot-avg{
    display:block;
    font-size:9px;
    font-weight:600;
    color:var(--ink-faint);
    letter-spacing:.02em;
    text-transform:uppercase;
  }
  @media (max-width:720px){
    .sc-hotspot-header-actions{
      width:100%;
      margin-left:0;
      justify-content:space-between;
    }
    .sc-hotspot-tabs--header{flex:1 1 auto; min-width:0;}
  }

  /* Sudden increase abnormality ranges */
  .li-sudden-increase{margin-top:16px; padding-top:14px; border-top:1px solid var(--hairline);}
  .li-sudden-grid{
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
    gap:10px;
    margin-top:10px;
  }
  .li-sudden-card{
    position:relative;
    overflow:hidden;
    border:1px solid var(--hairline);
    border-radius:var(--radius-card);
    padding:16px 14px 14px;
    background:
      linear-gradient(145deg, rgba(59,130,246,.08), transparent 42%),
      var(--card);
    box-shadow:var(--shadow-metric);
    transition:border-color var(--motion-ui) var(--motion-ease), box-shadow var(--motion-ui) var(--motion-ease);
  }
  .li-sudden-card:hover{
    border-color:var(--hairline-strong);
    box-shadow:var(--shadow-metric-hover);
  }
  .li-sudden-marker{
    font-size:13px;
    font-weight:700;
    color:var(--darkblue);
    line-height:1.35;
    letter-spacing:-.01em;
  }
  .li-sudden-delta{
    font-size:18px;
    font-weight:750;
    color:var(--red);
    margin:10px 0 12px;
    letter-spacing:-.03em;
    font-variant-numeric:tabular-nums;
    line-height:1.1;
  }
  .li-sudden-meta{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:10px;
    font-size:11px;
    margin-top:4px;
  }
  .li-sudden-meta span{color:var(--ink-faint); font-weight:500; flex-shrink:0;}
  .li-sudden-meta b{color:var(--ink-soft); font-weight:600; text-align:right; line-height:1.35;}

  /* Malpractice / quality signals */
  .story-malpractice-card .section-title{display:flex; flex-wrap:wrap; align-items:center; gap:8px;}
  .malpractice-kpis{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:10px;
    margin-bottom:14px;
  }
  .malpractice-kpi{
    border:1px solid var(--hairline);
    border-radius:8px;
    padding:12px 14px;
    background:var(--card);
  }
  .malpractice-kpi b{
    display:block;
    font-size:22px;
    color:var(--darkblue);
    font-variant-numeric:tabular-nums;
  }
  .malpractice-kpi span{font-size:11px; color:var(--ink-faint);}
  .malpractice-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:14px;
  }
  .malpractice-col h4{
    margin:0 0 8px;
    font-size:12px;
    color:var(--darkblue);
  }
  .malpractice-list{list-style:none; margin:0; padding:0;}
  .malpractice-list li{
    border-top:1px solid var(--hairline);
    padding:8px 0;
    font-size:12px;
  }
  .malpractice-list strong{display:block; color:var(--darkblue);}
  .malpractice-list span{display:block; color:var(--ink-soft); margin-top:2px;}
  .malpractice-list em{display:block; color:var(--ink-faint); font-style:normal; margin-top:3px; line-height:1.35;}
  @media (max-width: 900px){
    .malpractice-kpis,
    .malpractice-grid{grid-template-columns:1fr;}
  }

/* ===== ENTERPRISE HEALTHCARE REDESIGN 2026 ===== */

/* —— App shell: left rail + workspace —— */
html, body{
  background:var(--bg);
  color:var(--black);
}
body{
  background:
    radial-gradient(1200px 600px at 12% -10%, rgba(59,130,246,.14), transparent 55%),
    radial-gradient(900px 500px at 88% 0%, rgba(34,211,238,.08), transparent 50%),
    var(--bg);
  min-height:100vh;
}

.dash-app{
  display:grid;
  grid-template-columns:var(--rail-width-expanded) minmax(0,1fr);
  min-height:100vh;
  align-items:stretch;
}

.dash-rail{
  position:sticky;
  top:0;
  align-self:start;
  height:100vh;
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:14px 10px 16px;
  background:var(--rail-bg);
  border-right:1px solid var(--hairline);
  z-index:80;
  transition:var(--theme-fade);
}

.dash-rail__brand{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:4px 2px 12px;
  border-bottom:1px solid var(--hairline);
}

.dash-rail__partner{
  display:flex;
  align-items:flex-start;
  gap:8px;
  min-width:0;
  padding:0;
  order:0;
}
.dash-rail__partner .b-bmcfs-brand-logo{
  height:28px;
  width:auto;
  max-width:28px;
  margin-top:1px;
  filter:drop-shadow(0 0 0 transparent);
  flex-shrink:0;
}
.dash-rail__partner .b-bmcfs-brand-text{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.dash-rail__partner .b-bmcfs-brand-name-en{
  color:var(--darkblue);
  font-size:10.5px;
  font-weight:700;
  letter-spacing:-.01em;
  line-height:1.3;
  white-space:normal;
  overflow:visible;
  text-overflow:unset;
}
.dash-rail__partner .b-bmcfs-brand-name-mr{
  color:var(--ink-soft);
  font-size:9.5px;
  font-weight:500;
  line-height:1.3;
  white-space:normal;
  overflow:visible;
  text-overflow:unset;
}

.dash-rail__logo{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  background:var(--logo-well);
  border-radius:12px;
  padding:4px 2px;
  line-height:0;
  order:1;
  pointer-events:none;
  cursor:default;
  text-decoration:none;
  transition:background-color var(--theme-fade);
}
.dash-rail__logo:hover{
  transform:none;
  box-shadow:none;
  opacity:1;
}
.dash-rail__logo .vaidya-logo-pair,
.dash-rail__logo img{
  height:24px;
  width:auto;
  max-width:100%;
  display:block;
  object-fit:contain;
  pointer-events:none;
}

.dash-rail__nav{
  display:flex;
  flex-direction:column;
  gap:4px;
  flex:1;
  padding:2px 0;
  overflow-y:auto;
  max-width:none;
  margin:0;
  min-width:0;
}

.dash-rail__nav .tab-btn{
  display:flex;
  align-items:center;
  gap:6px;
  width:100%;
  text-align:left;
  border:1px solid transparent;
  border-bottom:none;
  margin:0;
  border-radius:11px;
  padding:8px 7px;
  color:var(--ink-soft);
  background:transparent;
  font-size:12.25px;
  font-weight:550;
  letter-spacing:-.01em;
  transition:
    background var(--motion-ui) var(--motion-ease),
    color var(--motion-ui) var(--motion-ease),
    border-color var(--motion-ui) var(--motion-ease),
    box-shadow var(--motion-ui) var(--motion-ease),
    transform var(--motion-ui) var(--motion-ease-out);
}
.dash-rail__nav .tab-btn:hover{
  color:var(--darkblue);
  background:rgba(255,255,255,.04);
  border-color:var(--hairline);
}
.dash-rail__nav .tab-btn:focus-visible{
  outline:none;
  box-shadow:0 0 0 2px rgba(59,130,246,.45);
  border-radius:12px;
}
.dash-rail__nav .tab-btn.is-active{
  color:#fff;
  background:linear-gradient(135deg, rgba(59,130,246,.95), rgba(37,99,235,.88));
  border-color:rgba(147,197,253,.35);
  box-shadow:0 6px 18px rgba(37,99,235,.32);
  font-weight:650;
}
.tab-btn__icon{
  width:24px;
  height:24px;
  border-radius:8px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  background:rgba(255,255,255,.05);
  color:inherit;
}
.dash-rail__nav .tab-btn.is-active .tab-btn__icon{
  background:rgba(255,255,255,.18);
  color:#fff;
}
.tab-btn__icon svg{width:14px; height:14px; display:block;}
.tab-btn__label{
  min-width:0;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.dash-rail__foot{
  display:flex;
  flex-direction:column;
  gap:6px;
  padding:10px 6px 2px;
  border-top:1px solid var(--hairline);
}
.dash-rail__updated{
  font-size:10.5px;
  color:var(--ink-faint);
  line-height:1.35;
}

.dash-workspace{
  min-width:0;
  display:flex;
  flex-direction:column;
}

/* Hide legacy top site-nav if any remnant exists */
.dash-app > .site-nav{display:none;}

.app-header.dash-topbar,
.dash-topbar.app-header{
  position:sticky;
  top:0;
  z-index:50;
  background:var(--topbar-bg);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  border-bottom:1px solid var(--hairline);
  box-shadow:none;
  transition:var(--theme-fade);
}
.dash-topbar .header-top{
  max-width:var(--content-max);
  padding:14px clamp(18px,2.5vw,32px) 8px;
}
.dash-topbar .brand-text .label-caps{
  color:var(--blue);
  letter-spacing:.12em;
}
.dash-topbar .brand-text h1{
  font-size:18px;
  font-weight:700;
  color:var(--darkblue);
  letter-spacing:-.03em;
}
.dash-topbar .tabs-scroll,
.dash-topbar .tabs:not(.dash-rail__nav){display:none;}

/* —— Global filters: single-row layout only (preserve control styling) —— */
.city-explore-toolbar{
  background:transparent !important;
  border:none !important;
  padding:0 clamp(18px,2.5vw,32px) 14px !important;
  max-width:var(--content-max);
  margin:0 auto;
  width:100%;
}
.city-explore-inner{
  display:flex;
  flex-wrap:nowrap;
  align-items:flex-end;
  justify-content:flex-start;
  gap:12px;
  background:var(--card);
  border:1px solid var(--hairline);
  border-radius:16px;
  padding:10px 12px;
  box-shadow:var(--shadow-metric);
  max-width:none;
  width:100%;
}
.city-explore-copy{
  flex:0 0 auto;
  max-width:118px;
  padding-right:4px;
  align-self:center;
}
.city-explore-title{
  color:var(--ink-faint);
  font-weight:600;
  white-space:nowrap;
}
.city-explore-hint{
  color:var(--ink-soft);
  white-space:normal;
  line-height:1.3;
}
.city-explore-controls{
  display:flex;
  flex-wrap:nowrap;
  align-items:flex-end;
  gap:14px;
  flex:1 1 auto;
  min-width:0;
}
.city-explore-field{
  flex:1 1 0;
  min-width:0;
}
.city-explore-field select{
  min-width:0 !important;
  max-width:none !important;
  width:100%;
}
.city-explore-field:has(#explore-age),
.city-explore-field:has(#explore-gender){
  flex:0.72 1 0;
}
.city-explore-field--lookback,
.city-explore-field:has(#lookback){
  flex:0.95 1 0;
}
.city-explore-actions{
  flex:0 0 auto;
  /* Separate Lookback from Reset without changing bar height */
  margin-left:12px;
  padding-bottom:0;
  align-self:flex-end;
}
.explore-reset{
  white-space:nowrap;
  flex-shrink:0;
  width:auto !important;
  min-width:72px;
}

/* Keep one row on laptop/tablet; scroll horizontally if needed */
@media(max-width:1100px){
  .city-explore-inner,
  .city-explore-controls{
    flex-wrap:nowrap !important;
  }
  .city-explore-controls{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:thin;
    padding-bottom:2px;
  }
  .city-explore-field{
    flex:0 0 auto;
    min-width:112px;
  }
  .city-explore-field:has(#explore-age),
  .city-explore-field:has(#explore-gender){
    min-width:88px;
  }
  .city-explore-field--lookback,
  .city-explore-field:has(#lookback){
    min-width:110px;
  }
  .city-explore-actions{
    flex:0 0 auto;
    margin-left:12px !important;
  }
  .explore-reset{
    width:auto !important;
  }
}
@media(max-width:900px){
  .city-explore-inner{
    flex-direction:row !important;
    align-items:flex-end !important;
    flex-wrap:nowrap !important;
  }
  .city-explore-copy{
    display:none;
  }
  .city-explore-field{
    flex:0 0 auto !important;
    min-width:112px !important;
  }
  .city-explore-field select{
    min-width:112px !important;
    max-width:180px !important;
    width:auto !important;
  }
  .city-explore-actions{
    flex:0 0 auto !important;
    margin-left:12px !important;
    align-items:flex-end !important;
  }
  .explore-reset{
    width:auto !important;
    min-width:72px !important;
  }
}
@media(max-width:520px){
  .city-explore-field{flex:0 0 auto !important;}
}

/* —— Premium hero (compact command banner above filters) —— */
.dash-hero{
  position:relative;
  overflow:hidden;
  margin:10px clamp(16px,2.2vw,28px) 2px;
  max-width:var(--content-max);
  width:calc(100% - clamp(32px,4.4vw,56px));
  align-self:center;
  display:grid;
  grid-template-columns:minmax(0,1.45fr) minmax(160px,.65fr);
  gap:12px;
  align-items:center;
  min-height:0;
  padding:14px 22px;
  border-radius:18px;
  border:1px solid color-mix(in srgb, var(--blue) 35%, transparent);
  background:var(--hero-bg);
  box-shadow:var(--shadow-elevated);
  transition:var(--theme-fade);
}
.dash-hero__glow{
  position:absolute;
  inset:-40% -20% auto auto;
  width:360px;
  height:360px;
  background:radial-gradient(circle, rgba(56,189,248,.28), transparent 68%);
  pointer-events:none;
  animation:hero-glow 7s ease-in-out infinite alternate;
}
.dash-hero__content{position:relative; z-index:1; min-width:0;}
.dash-hero__eyebrow{
  margin:0 0 4px;
  font-size:10.5px;
  font-weight:700;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:#93C5FD;
}
.dash-hero__title{
  margin:0;
  font-size:clamp(20px, 2vw, 26px);
  font-weight:750;
  letter-spacing:-.04em;
  line-height:1.15;
  color:#F8FAFC;
}
.dash-hero__lede{
  margin:6px 0 0;
  max-width:48ch;
  color:#CBD5E1;
  font-size:12.5px;
  line-height:1.4;
}
.dash-hero__assistant{
  margin-top:10px;
  display:flex;
  align-items:flex-start;
  gap:8px;
  max-width:48ch;
  padding:8px 10px;
  border-radius:12px;
  background:rgba(15,23,42,.45);
  border:1px solid rgba(148,163,184,.16);
  backdrop-filter:blur(8px);
}
.dash-hero__assistant p{
  margin:0;
  font-size:12px;
  line-height:1.4;
  color:#E2E8F0;
}
.dash-hero__assistant-dot{
  width:8px;
  height:8px;
  margin-top:4px;
  border-radius:50%;
  background:#34D399;
  box-shadow:0 0 0 0 rgba(52,211,153,.55);
  animation:pulse-dot 2.2s ease-out infinite;
  flex-shrink:0;
}
.dash-hero__visual{
  position:relative;
  z-index:1;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:108px;
}
.dash-hero__illus{
  width:min(180px, 100%);
  height:auto;
  filter:drop-shadow(0 18px 30px rgba(15,23,42,.45));
  animation:hero-float 5.5s ease-in-out infinite;
}
.dash-hero__orbit{
  position:absolute;
  border-radius:50%;
  border:1px solid rgba(147,197,253,.22);
  pointer-events:none;
}
.dash-hero__orbit--a{
  width:170px; height:170px;
  animation:orbit-spin 18s linear infinite;
}
.dash-hero__orbit--b{
  width:120px; height:120px;
  border-color:rgba(167,139,250,.25);
  animation:orbit-spin 12s linear infinite reverse;
}
.dash-float{
  position:absolute;
  width:10px;
  height:10px;
  border-radius:50%;
  background:#60A5FA;
  opacity:.85;
  animation:float-y 4.2s ease-in-out infinite;
}
.dash-float--1{top:18%; left:12%; background:#38BDF8;}
.dash-float--2{top:28%; right:14%; background:#A78BFA; animation-delay:.6s;}
.dash-float--3{bottom:22%; left:22%; background:#F472B6; animation-delay:1.1s;}

@keyframes hero-float{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-8px);}
}
@keyframes hero-glow{
  from{opacity:.55; transform:translate(0,0) scale(1);}
  to{opacity:.9; transform:translate(-12px,10px) scale(1.06);}
}
@keyframes orbit-spin{
  to{transform:rotate(360deg);}
}
@keyframes float-y{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-10px);}
}
@keyframes pulse-dot{
  0%{box-shadow:0 0 0 0 rgba(52,211,153,.5);}
  70%{box-shadow:0 0 0 12px rgba(52,211,153,0);}
  100%{box-shadow:0 0 0 0 rgba(52,211,153,0);}
}

/* —— Content width & views —— */
.view[role="tabpanel"]{
  padding:var(--space-panel-top) clamp(18px,2.5vw,32px) var(--space-panel-bottom);
  max-width:var(--content-max);
  margin:0 auto;
  width:100%;
}
.view.is-active{
  animation:view-rise var(--motion-enter) var(--motion-ease-out) both;
}
@keyframes view-rise{
  from{opacity:0; transform:translateY(8px);}
  to{opacity:1; transform:translateY(0);}
}

.view-head{
  border-bottom-color:var(--hairline);
}
.view-head .label-caps{color:#93C5FD;}
.view-head h2{color:var(--darkblue); font-weight:700; letter-spacing:-.03em;}

/* —— Cards & KPIs —— */
.card{
  background:linear-gradient(180deg, rgba(255,255,255,.02), transparent 40%), var(--card);
  border:1px solid var(--hairline);
  border-radius:var(--radius-card);
  box-shadow:var(--shadow);
}
.card:hover{
  border-color:var(--hairline-strong);
  box-shadow:var(--shadow-elevated);
}
.card--interactive:hover,
.card.is-interactive:hover{
  transform:translateY(-2px);
}

.metric-card{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(145deg, rgba(59,130,246,.08), transparent 42%),
    var(--card);
  border:1px solid var(--hairline);
  border-radius:var(--radius-card);
  padding:18px 16px 16px;
  box-shadow:var(--shadow-metric);
}
.metric-card::after{
  content:"";
  position:absolute;
  inset:auto -20% -40% auto;
  width:120px;
  height:120px;
  background:radial-gradient(circle, rgba(59,130,246,.16), transparent 70%);
  pointer-events:none;
}
.metric-card.is-ready:hover{
  transform:translateY(-3px);
  border-color:rgba(96,165,250,.35);
  box-shadow:var(--shadow-metric-hover);
}
.metric-card__body{
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:flex-start;
  gap:14px;
  min-width:0;
}
.metric-card__leading{
  display:flex;
  align-items:flex-start;
  gap:12px;
  width:100%;
}
.metric-card__icon{
  width:40px;
  height:40px;
  border-radius:13px;
  background:var(--blue-soft);
  color:var(--blue);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.04);
}
.metric-card__icon svg{width:18px; height:18px;}
.metric-card__label{
  color:var(--ink-soft);
  font-size:11px;
  font-weight:650;
  letter-spacing:.06em;
  text-transform:uppercase;
}
.metric-card__value-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:8px;
  min-width:0;
  width:100%;
  margin-top:0;
}
.metric-card__value{
  font-size:var(--text-kpi);
  font-weight:750;
  letter-spacing:-.045em;
  color:var(--darkblue);
  font-variant-numeric:tabular-nums;
  line-height:1.05;
  text-align:left;
  align-self:stretch;
}
.metric-card__value--md{font-size:18px;}
.metric-card__value--sm{font-size:15px;}
.metric-card__sub{color:var(--ink-faint); margin-top:2px;}

/* Short numeric KPIs: center the value; keep label/subtitle left-aligned */
.metric-card--center-value .metric-card__value-row{
  justify-content:center;
}
.metric-card--center-value .metric-card__value{
  text-align:center;
  width:100%;
}
.metric-card--center-value .metric-card__leading,
.metric-card--center-value .metric-card__meta,
.metric-card--center-value .metric-card__label,
.metric-card--center-value .metric-card__sub{
  text-align:left;
  justify-content:flex-start;
}
.metric-card--blue .metric-card__icon{background:var(--blue-soft); color:#93C5FD;}
.metric-card--red .metric-card__icon{background:var(--red-soft); color:#FCA5A5;}
.metric-card--yellow .metric-card__icon{background:var(--yellow-soft); color:#FCD34D;}
.metric-card--green .metric-card__icon{background:var(--green-soft); color:#6EE7B7;}
.metric-card--purple .metric-card__icon{background:var(--purple-soft); color:#C4B5FD;}
.metric-card--orange .metric-card__icon{background:var(--orange-soft); color:#FDBA74;}
.metric-card--pink .metric-card__icon{background:var(--pink-soft); color:#F9A8D4;}

/* Disable legacy side-by-side squeeze stacking — vertical KPI layout is default */
.metric-card--stack .metric-card__body{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.metric-card--stack .metric-card__leading{display:flex;}
.metric-card--stack .metric-card__value-row{display:flex;}
.map-side .metric-card__body{gap:8px;}
.map-side .metric-card__value{font-size:18px;}

.kpi-grid, .sc-kpi-grid, .lab-kpi-grid{
  gap:var(--space-kpi-gap);
}

/* —— Status pills —— */
.demo-pill{
  border-radius:999px;
  padding:3px 10px;
  border:1px solid var(--hairline);
  background:var(--surface-muted);
  color:var(--ink-soft);
}
.demo-pill.is-live{
  border-color:rgba(52,211,153,.35);
  background:rgba(52,211,153,.12);
  color:#6EE7B7;
}
.demo-pill.is-snapshot{
  border-color:rgba(251,191,36,.35);
  background:rgba(251,191,36,.12);
  color:#FCD34D;
}
.demo-pill.is-historical{
  border-color:rgba(59,130,246,.35);
  background:rgba(59,130,246,.12);
  color:#93C5FD;
}

/* —— Insight / mom / maps —— */
.exec-insight-banner,
.mom-chip,
.facility-attn-card,
.dept-card{
  background:var(--card);
  border-color:var(--hairline);
}
.exec-insight-icon{background:var(--blue-soft); color:#93C5FD;}
.callout-chip{
  background:rgba(59,130,246,.1);
  border:1px solid rgba(59,130,246,.28);
  border-left:3px solid var(--blue);
  color:var(--black);
}
.callout-chip b{color:var(--darkblue);}

.map-frame,
.map-canvas,
.leaflet-container{
  background:var(--map-canvas) !important;
  border-radius:16px;
}
.card .leaflet-container,
.sc-map-card .leaflet-container,
.exec-map-wrap .leaflet-container{
  border-radius:16px;
  overflow:hidden;
}

/* —— Tables —— */
table.ledger-table th{
  background:rgba(255,255,255,.03);
  color:var(--ink-faint);
  border-bottom-color:var(--hairline-strong);
}
table.ledger-table td{
  color:var(--black);
  border-bottom-color:var(--hairline);
}
table.ledger-table tbody tr:nth-child(even){background:rgba(255,255,255,.02);}
table.ledger-table tbody tr:hover{background:var(--row-hover);}

/* —— Drawers / overlay / footer —— */
.detail-drawer-backdrop{background:rgba(2,6,23,.62);}
.detail-drawer-panel{
  background:linear-gradient(180deg, var(--card), var(--surface-subtle));
  border-left:1px solid var(--hairline);
  box-shadow:var(--shadow-elevated);
  color:var(--black);
}
#load-overlay{
  background:color-mix(in srgb, var(--bg) 82%, transparent) !important;
  backdrop-filter:blur(10px);
  color:var(--ink-soft);
}
footer{
  max-width:var(--content-max);
  margin:0 auto;
  padding:8px clamp(18px,2.5vw,32px) 28px;
  color:var(--ink-faint);
  font-size:11px;
  line-height:1.45;
}

/* —— Executive bands —— */
#executive .exec-band__title{color:var(--darkblue);}
#executive .exec-band__lede{color:var(--ink-soft);}
#executive .exec-band{
  padding-top:8px;
}

/* —— Form / info bubbles —— */
.ux-info__bubble{
  background:var(--card) !important;
  color:var(--black) !important;
  border:1px solid var(--hairline-strong) !important;
  box-shadow:var(--shadow-elevated) !important;
}
.ux-info__btn{
  background:var(--surface-muted);
  color:var(--ink-soft);
  border:1px solid var(--hairline);
}

/* —— Empty states —— */
.empty-state{
  color:var(--ink-soft);
  background:rgba(255,255,255,.02);
  border:1px dashed var(--hairline-strong);
  border-radius:14px;
}

/* —— Responsive shell —— */
@media (max-width:900px){
  .dash-app{grid-template-columns:var(--rail-width) minmax(0,1fr);}
  .dash-rail{padding:12px 6px 14px;}
  .dash-rail__partner{
    justify-content:center;
    padding:0;
  }
  .dash-rail__partner .b-bmcfs-brand-text{display:none;}
  .dash-rail__partner .b-bmcfs-brand-logo{height:28px; max-width:28px; margin:0;}
  .dash-rail__logo{justify-content:center; padding:6px;}
  .tab-btn__label{
    position:absolute;
    width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);
  }
  .dash-rail__nav .tab-btn{
    justify-content:center;
    padding:10px;
  }
  .dash-hero{grid-template-columns:1fr; padding:14px 18px;}
  .dash-hero__visual{min-height:100px;}
}
@media (max-width:760px){
  .dash-app{
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
  }
  .dash-rail{
    position:sticky;
    top:0;
    height:auto;
    flex-direction:row;
    align-items:center;
    gap:10px;
    padding:10px 12px;
    border-right:none;
    border-bottom:1px solid var(--hairline);
    overflow-x:auto;
  }
  .dash-rail__brand{
    flex-direction:row;
    align-items:center;
    border-bottom:none;
    padding:0;
    gap:8px;
  }
  .dash-rail__partner{display:none;}
  .dash-rail__nav{
    flex-direction:row;
    flex:1;
    overflow-x:auto;
    padding:0;
  }
  .dash-rail__nav .tab-btn{width:auto; min-width:44px;}
  .dash-rail__foot{display:none;}
  .dash-hero{width:auto; margin:8px 14px;}
  .kpi-grid, .sc-kpi-grid{grid-template-columns:repeat(2,1fr);}
}

/* Soften legacy light hardcodes against dark tokens */
.site-nav{background:transparent; border:none;}

/* KPI polish — shine, value row, optional trend */
.metric-card__shine{
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:1px;
  background:linear-gradient(90deg, transparent, rgba(147,197,253,.35), transparent);
  pointer-events:none;
  opacity:.7;
}
.metric-card__value-row{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:8px;
  min-width:0;
  margin-top:2px;
}
.metric-card__trend{
  font-size:11px;
  font-weight:700;
  letter-spacing:.01em;
  font-variant-numeric:tabular-nums;
  white-space:nowrap;
}
.metric-card__trend--up{color:var(--green);}
.metric-card__trend--down{color:var(--red);}
.metric-card__trend--flat{color:var(--ink-faint);}

/* Stack layout still works with value-row wrapper */
.metric-card--stack .metric-card__value-row{
  grid-area:value;
  display:block;
}
.metric-card--stack .metric-card__body{
  display:grid;
  grid-template-areas:
    "icon meta"
    "value value";
  grid-template-columns:auto 1fr;
  gap:10px 12px;
  align-items:start;
}
.metric-card--stack .metric-card__leading{display:contents;}
.metric-card--stack .metric-card__icon{grid-area:icon;}
.metric-card--stack .metric-card__meta{grid-area:meta;}

/* Select / filter contrast — follow active theme */
.city-explore-field select,
.city-explore-toolbar select{
  color-scheme:inherit;
}
.city-explore-field select option{
  background-color:var(--card);
  color:var(--darkblue);
}

/* Chart containers get a soft inner frame */
.ph-area-wrap,
.sc-area-wrap,
.lab-curve-wrap,
.donut-wrap,
.op-lollipop,
.heatmap-wrap{
  border-radius:14px;
}

/* Leaflet attribution + zoom — theme tokens */
.leaflet-control-attribution{
  background:color-mix(in srgb, var(--card) 88%, transparent) !important;
  color:var(--ink-faint) !important;
  border:1px solid var(--hairline) !important;
}
.leaflet-control-attribution a{color:var(--blue) !important;}
.leaflet-bar a,
.leaflet-container .leaflet-control-zoom a{
  background:var(--card) !important;
  color:var(--darkblue) !important;
  border-color:var(--hairline) !important;
}
.leaflet-bar a:hover,
.leaflet-container .leaflet-control-zoom a:hover{
  background:var(--row-hover) !important;
}

/* Error banner on dark */
#error-banner{
  margin:0 clamp(18px,2.5vw,32px);
  max-width:var(--content-max);
}

/* Filter chevron tint for dark surfaces (no hover/focus behavior changes) */
.city-explore-field{
  --explore-chevron:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2394A3B8' stroke-width='1.25' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  --explore-chevron-active:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5L6 7.5L9 4.5' stroke='%2360A5FA' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
}

/* ===== MAP + TABLE CONSISTENCY (presentation only) ===== */

/* Shared map card chrome — Executive, Symptom, Population, Lab */
#executive .story-map-card,
#executive .sc-map-card,
#symptom .sc-map-card,
#symptom .sc-map-card--hero,
#population .sc-map-card,
#lab .sc-map-card{
  background:linear-gradient(180deg, rgba(255,255,255,.02), transparent 42%), var(--card) !important;
  border:1px solid var(--hairline) !important;
  border-radius:var(--radius-card) !important;
  box-shadow:var(--shadow) !important;
}

#symptom .sc-map-card--hero{
  border-color:var(--hairline-strong) !important;
  box-shadow:var(--shadow-elevated) !important;
}

/* Shared map frame + canvas — dark tiles need dark surround */
#executive .story-map-frame,
#executive .sc-map-frame,
#symptom .sc-map-frame,
#population .sc-map-frame,
#lab .sc-map-frame,
.lab-map-frame{
  background:var(--map-canvas) !important;
  border:1px solid var(--hairline) !important;
  border-radius:14px !important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.03) !important;
  overflow:hidden;
}

#executive #exec-map,
#symptom #sc-map,
#population #ph-map,
#lab #li-map,
#sc-map,
#ph-map,
#li-map,
#exec-map{
  background:var(--map-canvas) !important;
}

#executive .leaflet-container,
#symptom .leaflet-container,
#population .leaflet-container,
#lab .leaflet-container,
.leaflet-container{
  background:var(--map-canvas) !important;
  font-family:var(--font-sans);
}

/* Legends — frosted theme panels */
#executive .sc-map-legend,
#symptom .sc-map-legend,
#population .sc-map-legend,
#lab .sc-map-legend{
  background:color-mix(in srgb, var(--card) 92%, transparent) !important;
  border:1px solid var(--hairline-strong) !important;
  border-radius:12px !important;
  color:var(--ink-soft) !important;
  box-shadow:var(--shadow-elevated) !important;
  backdrop-filter:blur(10px);
}

#executive .sc-legend-title,
#symptom .sc-legend-title,
#population .sc-legend-title,
#lab .sc-legend-title,
#symptom .sc-map-legend .sc-legend-title,
#population .sc-map-legend .sc-legend-title{
  color:var(--ink-faint) !important;
}

#symptom .sc-map-size-legend--panel{
  background:var(--card) !important;
  border:1px solid var(--hairline) !important;
  border-radius:12px !important;
}

/* Empty-state overlays on maps */
#executive .sc-map-empty,
#symptom .sc-map-empty,
#population .sc-map-empty,
#lab .sc-map-empty,
#executive .story-map-frame .sc-map-empty{
  background:color-mix(in srgb, var(--bg) 78%, transparent) !important;
  color:var(--ink-soft);
}

#executive .sc-map-empty-icon,
#symptom .sc-map-empty-icon,
#population .sc-map-empty-icon,
#lab .sc-map-empty-icon{
  background:var(--surface-muted) !important;
  color:var(--ink-soft) !important;
  border:1px solid var(--hairline);
}

/* Coverage chrome on Symptom map */
#symptom .sc-map-coverage{
  background:var(--surface-subtle) !important;
  border-color:var(--hairline) !important;
  border-radius:10px;
}

/* Attribution + zoom — theme tokens (both themes) */
#symptom .leaflet-control-attribution,
#population .leaflet-control-attribution,
#lab .leaflet-control-attribution,
#executive .leaflet-control-attribution{
  background:color-mix(in srgb, var(--card) 88%, transparent) !important;
  color:var(--ink-faint) !important;
  border:1px solid var(--hairline) !important;
}
.leaflet-container .leaflet-control-zoom a{
  background:var(--card) !important;
  color:var(--darkblue) !important;
  border-color:var(--hairline) !important;
}
.leaflet-container .leaflet-control-zoom a:hover{
  background:var(--row-hover) !important;
}

/* Hotspot side panels — remove light hover wash */
#symptom .sc-hotspot-row:hover,
#population .sc-hotspot-row:hover{
  background:var(--row-hover) !important;
}
#symptom .sc-hotspots-panel,
#population .sc-hotspots-panel,
#lab .sc-hotspots-panel,
#executive .sc-hotspots-panel{
  background:var(--surface-subtle);
  border:1px solid var(--hairline);
  border-radius:12px;
}

/* —— Population Health table headers (Suggested Actions / outreach) —— */
#population .ph-table th,
#population .ph-table thead th.ph-col-ward,
#population .ph-table--outreach thead th,
#executive .ph-table--outreach thead th,
#executive #story-outreach-card .ledger-table th{
  background:linear-gradient(180deg, color-mix(in srgb, var(--blue) 12%, transparent), color-mix(in srgb, var(--card) 40%, transparent)) !important;
  color:var(--ink-faint) !important;
  border-bottom:1px solid var(--hairline-strong) !important;
  box-shadow:0 1px 0 rgba(0,0,0,.2) !important;
  font-weight:650;
  letter-spacing:.06em;
}

#population .ph-table-wrap,
#population .ph-table-wrap--outreach{
  background:var(--card);
  border-color:var(--hairline);
  border-radius:12px;
}

#population .ph-table tbody tr:not(:nth-child(even)) .ph-col-ward{
  background:var(--card) !important;
}
#population .ph-table tbody tr:nth-child(even) .ph-col-ward{
  background:var(--surface-subtle) !important;
}
#population .ph-table tbody tr:hover .ph-col-ward{
  background:var(--row-hover) !important;
}

/* ===== STRATEGIC HEALTHCARE ACCENTS (sparse) ===== */

/* Executive briefing — soft AI glow only (no character clutter) */
#executive .exec-insight-banner{
  position:relative;
  overflow:hidden;
}
#executive .exec-insight-banner::after{
  content:"";
  position:absolute;
  right:-24px;
  top:-32px;
  width:120px;
  height:120px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(96,165,250,.16), transparent 68%);
  pointer-events:none;
  animation:hc-briefing-glow 6.5s ease-in-out infinite alternate;
}
#executive .exec-insight-icon{
  box-shadow:0 0 0 0 rgba(59,130,246,.25);
  animation:hc-briefing-pulse 3.2s ease-out infinite;
}

/* Empty states — compact medical mark (does not steal layout) */
.empty-state{
  flex-direction:column;
  gap:10px;
}
.empty-state::before{
  content:"";
  width:36px;
  height:36px;
  flex-shrink:0;
  border-radius:12px;
  border:1px solid var(--hairline);
  background-color:rgba(59,130,246,.12);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2393C5FD' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-4l-3 9L9 3l-3 9H2'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:center;
  background-size:18px 18px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.03);
  opacity:.9;
  animation:hc-empty-fade .45s var(--motion-ease-out) both;
}
/* Table-cell empties stay compact — icon optional but tiny */
.ph-empty-row .empty-state{
  min-height:72px;
  padding:16px 12px;
}
.ph-empty-row .empty-state::before{
  width:28px;
  height:28px;
  border-radius:9px;
}

/* Map empty glyph — professional pulse mark */
#executive .sc-map-empty-icon,
#symptom .sc-map-empty-icon,
#population .sc-map-empty-icon,
#lab .sc-map-empty-icon{
  font-size:0 !important;
  width:44px !important;
  height:44px !important;
  border-radius:14px !important;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2393C5FD' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-4l-3 9L9 3l-3 9H2'/%3E%3C/svg%3E") center / 22px 22px no-repeat,
    rgba(15,23,42,.65) !important;
  border:1px solid var(--hairline-strong);
  animation:hc-illus-breathe 5.5s ease-in-out infinite;
}

/* In-dashboard data refresh overlay — quiet healthcare mark */
#load-overlay::before{
  content:"";
  width:52px;
  height:52px;
  margin-bottom:4px;
  border-radius:16px;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2393C5FD' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 12h-4l-3 9L9 3l-3 9H2'/%3E%3C/svg%3E") center / 26px 26px no-repeat,
    linear-gradient(145deg, rgba(59,130,246,.18), rgba(15,23,42,.5));
  border:1px solid var(--hairline);
  box-shadow:0 8px 24px rgba(0,0,0,.28);
  animation:hc-illus-breathe 5s ease-in-out infinite;
}

@keyframes hc-briefing-glow{
  from{opacity:.45; transform:translate(0,0) scale(1);}
  to{opacity:.85; transform:translate(-10px,8px) scale(1.08);}
}
@keyframes hc-briefing-pulse{
  0%{box-shadow:0 0 0 0 rgba(59,130,246,.28);}
  70%{box-shadow:0 0 0 10px rgba(59,130,246,0);}
  100%{box-shadow:0 0 0 0 rgba(59,130,246,0);}
}
@keyframes hc-empty-fade{
  from{opacity:0; transform:translateY(4px);}
  to{opacity:.85; transform:translateY(0);}
}
@keyframes hc-illus-breathe{
  0%,100%{transform:translateY(0);}
  50%{transform:translateY(-4px);}
}

@media (prefers-reduced-motion:reduce){
  #executive .exec-insight-banner::after,
  #executive .exec-insight-icon,
  .empty-state::before,
  #executive .sc-map-empty-icon,
  #symptom .sc-map-empty-icon,
  #population .sc-map-empty-icon,
  #lab .sc-map-empty-icon,
  #load-overlay::before{
    animation:none !important;
  }
}

/* ===== THEME SYSTEM: logos, toggle, light-surface overrides ===== */

html{
  background:var(--bg);
}
body,
.dash-app,
.dash-workspace,
.card,
.metric-card,
.city-explore-inner,
.dash-rail,
.dash-topbar,
.dash-hero,
.theme-toggle,
.detail-drawer-panel{
  transition:var(--theme-fade);
}

/* Dual logo pair — white on dark theme, dark on light theme */
.vaidya-logo-pair{
  position:relative;
  display:inline-flex;
  align-items:center;
  line-height:0;
}
.vaidya-logo-pair .vaidya-logo{
  height:28px;
  width:auto;
  max-width:min(148px, 42vw);
  object-fit:contain;
  display:block;
}
[data-theme="dark"] .vaidya-logo--dark,
:root .vaidya-logo--dark{display:none !important;}
[data-theme="light"] .vaidya-logo--white{display:none !important;}
[data-theme="light"] .vaidya-logo--dark{display:block !important;}

/* Theme toggle — sits in filter chrome */
.theme-toggle{
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex-shrink:0;
  align-self:flex-end;
  height:32px;
  padding:0 10px 0 6px;
  border-radius:999px;
  border:1px solid var(--hairline-strong);
  background:var(--surface-muted);
  color:var(--darkblue);
  font:inherit;
  font-size:11px;
  font-weight:650;
  letter-spacing:.02em;
  cursor:pointer;
  box-shadow:var(--shadow-metric);
}
.theme-toggle:hover{
  border-color:color-mix(in srgb, var(--blue) 45%, var(--hairline-strong));
  box-shadow:var(--shadow-metric-hover);
}
.theme-toggle:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--blue) 28%, transparent);
}
.theme-toggle__track{
  position:relative;
  width:22px;
  height:22px;
  border-radius:50%;
  background:var(--card);
  border:1px solid var(--hairline);
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.theme-toggle__icon{
  position:absolute;
  inset:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--blue);
}
.theme-toggle__icon svg{width:13px; height:13px; display:block;}
[data-theme="dark"] .theme-toggle__icon--sun{opacity:0; transform:scale(.6);}
[data-theme="dark"] .theme-toggle__icon--moon{opacity:1; transform:scale(1);}
[data-theme="light"] .theme-toggle__icon--moon{opacity:0; transform:scale(.6);}
[data-theme="light"] .theme-toggle__icon--sun{opacity:1; transform:scale(1);}
.theme-toggle__icon{
  transition:opacity .22s ease, transform .22s ease;
}
.theme-toggle__label{
  min-width:34px;
  text-align:left;
  color:var(--ink-soft);
}

.city-explore-inner{
  align-items:flex-end;
}
.city-explore-toolbar .theme-toggle{
  margin-left:4px;
}

/* Light theme — chrome that used hardcoded dark hexes */
[data-theme="light"] body{
  background:
    radial-gradient(1200px 600px at 12% -10%, rgba(37,99,235,.08), transparent 55%),
    radial-gradient(900px 500px at 88% 0%, rgba(8,145,178,.06), transparent 50%),
    var(--bg);
}
[data-theme="light"] .dash-hero__eyebrow{color:#1D4ED8;}
[data-theme="light"] .dash-hero__title{color:#0F172A;}
[data-theme="light"] .dash-hero__lede{color:#475569;}
[data-theme="light"] .dash-hero__assistant{
  background:color-mix(in srgb, var(--bg) 78%, transparent);
  border-color:var(--hairline);
}
[data-theme="light"] .dash-hero__assistant p{color:#334155;}
[data-theme="light"] .dash-rail__nav .tab-btn.is-active{
  color:#fff;
  background:linear-gradient(135deg, rgba(37,99,235,.95), rgba(29,78,216,.9));
  box-shadow:0 8px 20px rgba(37,99,235,.28);
}
[data-theme="light"] .dash-rail__nav .tab-btn:hover{
  background:rgba(15,23,42,.03);
}
[data-theme="light"] #executive .sc-map-legend,
[data-theme="light"] #symptom .sc-map-legend,
[data-theme="light"] #population .sc-map-legend,
[data-theme="light"] #lab .sc-map-legend{
  background:color-mix(in srgb, var(--card) 94%, transparent) !important;
  color:var(--ink-soft) !important;
  box-shadow:var(--shadow) !important;
}
[data-theme="light"] #executive .sc-map-empty,
[data-theme="light"] #symptom .sc-map-empty,
[data-theme="light"] #population .sc-map-empty,
[data-theme="light"] #lab .sc-map-empty,
[data-theme="light"] #executive .story-map-frame .sc-map-empty{
  background:color-mix(in srgb, var(--bg) 82%, transparent) !important;
}
[data-theme="light"] .leaflet-container .leaflet-control-zoom a{
  background:var(--card) !important;
  color:var(--darkblue) !important;
  border-color:var(--hairline) !important;
}
[data-theme="light"] .leaflet-container .leaflet-control-zoom a:hover{
  background:var(--row-hover) !important;
}
[data-theme="light"] #symptom .leaflet-control-attribution,
[data-theme="light"] #population .leaflet-control-attribution,
[data-theme="light"] #lab .leaflet-control-attribution,
[data-theme="light"] #executive .leaflet-control-attribution,
[data-theme="light"] .leaflet-control-attribution{
  background:color-mix(in srgb, var(--card) 90%, transparent) !important;
  color:var(--ink-faint) !important;
}
[data-theme="light"] #population .ph-table th,
[data-theme="light"] #population .ph-table thead th.ph-col-ward,
[data-theme="light"] #population .ph-table--outreach thead th,
[data-theme="light"] #executive .ph-table--outreach thead th,
[data-theme="light"] #executive #story-outreach-card .ledger-table th,
[data-theme="light"] table.ledger-table th{
  background:linear-gradient(180deg, color-mix(in srgb, var(--blue) 10%, transparent), color-mix(in srgb, var(--darkblue) 3%, transparent)) !important;
  color:var(--ink-faint) !important;
}
[data-theme="light"] .ux-info__bubble{
  background:var(--card) !important;
  color:var(--black) !important;
}
[data-theme="light"] #load-overlay{
  background:color-mix(in srgb, var(--bg) 82%, transparent) !important;
}
[data-theme="light"] .detail-drawer-backdrop{background:rgba(15,23,42,.35);}
[data-theme="light"] .detail-drawer-panel{
  background:linear-gradient(180deg, var(--card), var(--surface-subtle));
}
[data-theme="light"] .city-explore-field select,
[data-theme="light"] .city-explore-toolbar select{
  color-scheme:light;
}
[data-theme="light"] .city-explore-field select option{
  background-color:var(--card);
  color:var(--darkblue);
}
[data-theme="light"] .b-dashboard-login-visual,
[data-theme="light"] .b-dashboard-login-card{
  /* login surfaces follow tokens via business.css */
}

/* ===== OPAQUE STICKY TABLE HEADERS =====
   Keep scrolling rows fully occluded in every dashboard table. */
table thead th{
  background-color:var(--surface-muted) !important;
  background-image:none !important;
  color:var(--ink-faint);
  opacity:1;
  isolation:isolate;
  border-bottom:1px solid var(--hairline-strong);
  box-shadow:0 1px 0 var(--hairline-strong), 0 4px 10px color-mix(in srgb, var(--bg) 18%, transparent);
}

table.ledger-table thead th,
.trend-table thead th,
.css-sym-table thead th,
#executive .exec-data-table thead th,
#population .ph-table thead th,
#lab .li-trend-table thead th,
#lab .li-table thead th{
  position:sticky;
  top:0;
  z-index:10;
  background-color:var(--surface-muted) !important;
  background-image:none !important;
}

/* The first Population column is sticky in both directions. */
#population .ph-table thead th.ph-col-ward{
  z-index:12;
  background-color:var(--surface-muted) !important;
  background-image:none !important;
}

/* ===== EXECUTIVE GEOGRAPHY + FACILITIES REFINEMENT ===== */

/* Make Lab order hotspots the primary, full-width geographic view. */
#executive .exec-geo-layout{
  display:grid;
  grid-template-columns:minmax(0, 1fr);
  gap:14px;
  align-items:stretch;
}

#executive .story-map-card{
  width:100%;
  padding:16px;
  border-color:var(--hairline-strong);
  box-shadow:var(--shadow);
}

#executive .story-map-card .section-title{
  margin-bottom:12px;
  padding-bottom:10px;
}

#executive .story-map-stage{
  grid-template-columns:minmax(0, 1fr) minmax(260px, 300px);
  gap:14px;
  min-height:380px;
  align-items:start;
  min-width:0;
  width:100%;
}

#executive .story-map-frame{
  min-height:380px;
  border-radius:14px;
}

/* Ward watch and critical alerts now form the supporting row below the map. */
#executive .exec-geo-side{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  align-items:stretch;
}

#executive .exec-geo-side:has(> .story-critical-card.is-hidden){
  grid-template-columns:1fr;
}

#executive .story-ward-card,
#executive .story-critical-card{
  min-width:0;
  min-height:230px;
  height:100%;
  padding:16px;
  border-radius:var(--radius-card);
}

#executive .story-ward-card .section-title,
#executive .story-critical-card .section-title{
  margin-bottom:12px;
  padding-bottom:10px;
}

#executive .story-critical-table-wrap{
  max-height:190px;
}

/* Facilities: retain every field/action while improving scan hierarchy. */
#executive .facilities-attention-wrap{
  position:relative;
  overflow:hidden;
  padding:18px 18px 14px;
  border-color:var(--hairline-strong);
  box-shadow:var(--shadow);
}

#executive .facilities-attention-wrap::before{
  content:"";
  position:absolute;
  inset:0 0 auto;
  height:3px;
  background:linear-gradient(90deg, var(--orange), var(--red), transparent 78%);
  opacity:.9;
}

#executive .facilities-attention-wrap .section-title{
  margin-bottom:12px;
  padding-bottom:12px;
  align-items:flex-end;
}

#executive .facilities-attention-wrap .section-title h3{
  font-size:16px;
  font-weight:700;
  letter-spacing:-.02em;
}

#executive .facilities-attention-wrap .section-title .note{
  max-width:72ch;
  line-height:1.45;
}

#executive .exec-table-wrap{
  max-height:min(340px, 48vh);
  margin:0;
  padding:0 4px 4px;
  border:1px solid var(--hairline);
  border-radius:14px;
  background:var(--surface-subtle);
}

#executive .exec-data-table{
  border-collapse:separate;
  border-spacing:0 8px;
  padding:0 4px;
  font-size:12.5px;
}

#executive .exec-data-table thead th{
  padding:11px 12px;
  z-index:11;
  box-shadow:0 1px 0 var(--hairline-strong), 0 7px 12px color-mix(in srgb, var(--bg) 16%, transparent);
}

#executive .exec-data-table tbody td{
  padding:11px 12px;
  background:var(--card);
  border-top:1px solid var(--hairline);
  border-bottom:1px solid var(--hairline);
  transition:background var(--motion-ui) var(--motion-ease), border-color var(--motion-ui) var(--motion-ease);
}

#executive .exec-data-table tbody td:first-child{
  border-left:1px solid var(--hairline);
  border-radius:10px 0 0 10px;
}

#executive .exec-data-table tbody td:last-child{
  border-right:1px solid var(--hairline);
  border-radius:0 10px 10px 0;
}

#executive .exec-facility-row:hover td,
#executive .exec-facility-row:focus-visible td{
  background:var(--row-hover);
  border-color:color-mix(in srgb, var(--blue) 28%, var(--hairline));
}

#executive .exec-facility-row:focus-visible{
  box-shadow:none;
}

#executive .exec-facility-identity{
  display:flex;
  align-items:center;
  gap:9px;
  min-width:0;
}

#executive .exec-facility-identity::before{
  content:"+";
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  flex:0 0 26px;
  border-radius:8px;
  background:var(--orange-soft);
  color:var(--orange);
  font-size:16px;
  font-weight:700;
  line-height:1;
}

#executive .exec-rate-visual{
  display:inline-flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  min-width:126px;
}

#executive .exec-rate-meter{
  display:block;
  width:52px;
  height:5px;
  overflow:hidden;
  border-radius:var(--radius-pill);
  background:var(--chart-track);
}

#executive .exec-rate-meter i{
  display:block;
  height:100%;
  min-width:3px;
  border-radius:inherit;
  background:var(--orange);
}

#executive .exec-rate-meter i.is-elevated,
#executive .exec-rate-meter i.is-critical{
  background:var(--red);
}

#executive .exec-flag-cell{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
}

#executive .exec-flag-cell i{
  color:var(--blue);
  font-size:14px;
  font-style:normal;
  opacity:0;
  transform:translateX(-4px);
  transition:opacity var(--motion-ui) var(--motion-ease), transform var(--motion-ui) var(--motion-ease);
}

#executive .exec-facility-row:hover .exec-flag-cell i,
#executive .exec-facility-row:focus-visible .exec-flag-cell i{
  opacity:1;
  transform:translateX(0);
}

@media (max-width:900px){
  #executive .story-map-stage{
    grid-template-columns:1fr;
    min-height:0;
  }

  #executive .story-map-frame{
    min-height:360px;
  }

  #executive .story-map-sidebar{
    height:auto;
  }
}

@media (max-width:720px){
  #executive .exec-geo-side{
    grid-template-columns:1fr;
  }

  #executive .story-ward-card,
  #executive .story-critical-card{
    min-height:0;
  }

  #executive .exec-rate-meter{
    display:none;
  }
}

/* ===== SEX DISTRIBUTION SERIES =====
   Independent tracks prevent one category obscuring another. */
.sex-series{
  display:flex;
  flex-direction:column;
  gap:10px;
  width:100%;
  min-width:0;
}

.sex-series__row{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}

.sex-series__head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  min-width:0;
}

.sex-series__label,
.sex-series__value{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size:11px;
  line-height:1.2;
}

.sex-series__label{
  color:var(--ink-soft);
  font-weight:650;
}

.sex-series__label i{
  width:8px;
  height:8px;
  flex:0 0 8px;
  border-radius:2px;
}

.sex-series__value{
  color:var(--ink-faint);
  font-variant-numeric:tabular-nums;
}

.sex-series__value b{
  color:var(--darkblue);
  font-size:12px;
}

.sex-series__value em{
  min-width:2.4rem;
  font-style:normal;
  text-align:right;
}

.sex-series__track{
  display:block;
  width:100%;
  height:8px;
  overflow:hidden;
  border:1px solid var(--hairline);
  border-radius:var(--radius-pill);
  background:var(--chart-track);
}

.sex-series__fill{
  display:block;
  height:100%;
  min-width:0;
  border-radius:inherit;
  transition:width var(--motion-chart) var(--motion-ease-out);
}

#executive .exec-who-sex{
  margin-top:auto;
  padding-top:8px;
}

#executive .exec-who-sex .sex-series{
  gap:8px;
}

#executive .exec-who-sex .sex-series__track{
  height:7px;
}

#symptom #sc-gender .sex-series,
#population #lab-demo-gender .sex-series{
  margin-top:6px;
}

/* Population condition comparison: two rows cannot overlap at parity. */
#population .ph-dumbbell-row{
  grid-template-columns:minmax(88px, 120px) minmax(0, 1fr);
}

#population .ph-sex-pair{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}

#population .ph-sex-pair__row{
  display:grid;
  grid-template-columns:14px minmax(0, 1fr) 42px;
  align-items:center;
  gap:7px;
}

#population .ph-sex-pair__label{
  font-size:10px;
  font-weight:750;
  text-align:center;
}

#population .ph-sex-pair__label--male{color:var(--chart-1);}
#population .ph-sex-pair__label--female{color:var(--chart-4);}

#population .ph-sex-pair__track{
  display:block;
  height:6px;
  overflow:hidden;
  border-radius:var(--radius-pill);
  background:var(--chart-track);
}

#population .ph-sex-pair__track i{
  display:block;
  height:100%;
  min-width:0;
  border-radius:inherit;
}

#population .ph-sex-pair__track i.is-male{background:var(--chart-1);}
#population .ph-sex-pair__track i.is-female{background:var(--chart-4);}

#population .ph-sex-pair .ph-dumbbell-val{
  text-align:right;
  font-variant-numeric:tabular-nums;
}

/* Lab Condition Trends: keep complete reporting period on one line. */
#lab #lab-condition-trends .trend-table{
  table-layout:auto;
}

#lab #lab-condition-trends .trend-table th,
#lab #lab-condition-trends .trend-table td{
  padding-left:9px;
  padding-right:9px;
}

#lab #lab-condition-trends .trend-table th:first-child{
  width:28%;
}

#lab #lab-condition-trends .trend-table th:nth-child(2){
  width:30%;
}

#lab #lab-condition-trends .trend-period{
  width:1%;
  min-width:112px;
  white-space:nowrap;
  word-break:normal;
  overflow-wrap:normal;
  font-variant-numeric:tabular-nums;
}

#lab #lab-condition-trends .trend-latest{
  width:1%;
  min-width:54px;
  white-space:nowrap;
  text-align:right;
  font-variant-numeric:tabular-nums;
}

/* ===== ACTIVE NAVIGATION INTERACTION STATES =====
   Active styling must always win over generic hover/focus rules. */
.dash-rail__nav .tab-btn.is-active:hover,
.dash-rail__nav .tab-btn.is-active:focus-visible,
.dash-rail__nav .tab-btn[aria-selected="true"]:hover,
.dash-rail__nav .tab-btn[aria-selected="true"]:focus-visible{
  color:#fff;
  background:linear-gradient(135deg, rgba(59,130,246,.95), rgba(37,99,235,.88));
  border-color:rgba(147,197,253,.35);
  box-shadow:0 6px 18px rgba(37,99,235,.32);
}

[data-theme="light"] .dash-rail__nav .tab-btn.is-active:hover,
[data-theme="light"] .dash-rail__nav .tab-btn.is-active:focus-visible,
[data-theme="light"] .dash-rail__nav .tab-btn[aria-selected="true"]:hover,
[data-theme="light"] .dash-rail__nav .tab-btn[aria-selected="true"]:focus-visible{
  color:#fff;
  background:linear-gradient(135deg, rgba(37,99,235,.95), rgba(29,78,216,.9));
  border-color:rgba(37,99,235,.4);
  box-shadow:0 8px 20px rgba(37,99,235,.28);
}

.dash-rail__nav .tab-btn.is-active:hover .tab-btn__icon,
.dash-rail__nav .tab-btn.is-active:focus-visible .tab-btn__icon,
.dash-rail__nav .tab-btn[aria-selected="true"]:hover .tab-btn__icon,
.dash-rail__nav .tab-btn[aria-selected="true"]:focus-visible .tab-btn__icon{
  color:#fff;
  background:rgba(255,255,255,.18);
}

/* Legacy/top tabs retain their selected underline and contrast on hover. */
.tabs:not(.dash-rail__nav) .tab-btn.is-active:hover,
.tabs:not(.dash-rail__nav) .tab-btn.is-active:focus-visible,
.tabs:not(.dash-rail__nav) .tab-btn[aria-selected="true"]:hover,
.tabs:not(.dash-rail__nav) .tab-btn[aria-selected="true"]:focus-visible{
  color:var(--blue);
  background:var(--blue-soft);
  border-bottom-color:var(--blue);
}

/* Ward/facility segmented controls remain selected while interacting. */
.sc-hotspot-tab.is-active:hover,
.sc-hotspot-tab.is-active:focus-visible,
.sc-hotspot-tab[aria-selected="true"]:hover,
.sc-hotspot-tab[aria-selected="true"]:focus-visible{
  background:var(--card);
  color:var(--darkblue);
  box-shadow:0 1px 2px color-mix(in srgb, var(--bg) 16%, transparent);
  outline:1px solid var(--hairline-strong);
  outline-offset:-1px;
}

@media (prefers-reduced-motion:reduce){
  body,
  .dash-app,
  .card,
  .metric-card,
  .city-explore-inner,
  .dash-rail,
  .dash-topbar,
  .dash-hero,
  .theme-toggle{
    transition:none !important;
  }
}

/* Custom themed select popup avoids the OS-native white first frame. */
.dashboard-filter-select.is-customized{
  position:absolute !important;
  width:1px !important;
  min-width:1px !important;
  max-width:1px !important;
  height:1px !important;
  padding:0 !important;
  margin:-1px !important;
  border:0 !important;
  overflow:hidden !important;
  clip:rect(0 0 0 0) !important;
  clip-path:inset(50%) !important;
  white-space:nowrap !important;
  opacity:0 !important;
  pointer-events:none !important;
}
.dashboard-select{
  position:relative;
  width:100%;
  min-width:128px;
  max-width:220px;
}
.city-explore-field:has(#explore-age) .dashboard-select,
.city-explore-field:has(#explore-gender) .dashboard-select{
  min-width:96px;
  max-width:120px;
}
.city-explore-field:has(#explore-ward) .dashboard-select{
  min-width:110px;
  max-width:140px;
}
.city-explore-field--lookback .dashboard-select,
.city-explore-field:has(#lookback) .dashboard-select{
  min-width:118px;
  max-width:148px;
}
.city-explore-controls > .city-explore-field .dashboard-select{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
}
@media(max-width:1100px){
  .city-explore-controls > .city-explore-field{
    width:112px;
  }
  .city-explore-controls > .city-explore-field:has(#explore-age),
  .city-explore-controls > .city-explore-field:has(#explore-gender){
    width:88px;
  }
  .city-explore-controls > .city-explore-field--lookback,
  .city-explore-controls > .city-explore-field:has(#lookback){
    width:110px;
  }
}
.dashboard-select__trigger{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  width:100%;
  height:32px;
  padding:0 10px;
  border:1px solid var(--hairline);
  border-radius:var(--radius-sm);
  background:var(--card);
  color:var(--darkblue);
  font-family:inherit;
  font-size:var(--text-caption);
  font-weight:500;
  line-height:1.2;
  text-align:left;
  cursor:pointer;
  box-shadow:0 1px 1px rgba(31,41,55,.02);
  transition:
    border-color .22s var(--motion-ease),
    box-shadow .22s var(--motion-ease),
    color .22s var(--motion-ease);
}
.dashboard-select__value{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-select__chevron{
  width:12px;
  height:12px;
  flex:0 0 auto;
  color:var(--ink-faint);
  transition:color .18s ease, transform .18s ease;
}
.dashboard-select__trigger:hover{
  border-color:var(--hairline-strong);
}
.dashboard-select__trigger:hover .dashboard-select__chevron,
.dashboard-select__trigger[aria-expanded="true"] .dashboard-select__chevron{
  color:var(--blue);
}
.dashboard-select__trigger[aria-expanded="true"] .dashboard-select__chevron{
  transform:rotate(180deg);
}
.dashboard-select__trigger:focus-visible,
.dashboard-select__trigger[aria-expanded="true"]{
  outline:none;
  border-color:var(--blue);
  box-shadow:0 0 0 3px rgba(15,118,110,.12);
}
.dashboard-select__trigger:active{
  background:var(--blue-soft);
}
.dashboard-select__trigger:disabled{
  cursor:not-allowed;
  opacity:.58;
  color:var(--ink-faint);
  background:var(--surface-muted);
  border-color:var(--hairline);
  box-shadow:none;
}
.dashboard-select__menu{
  position:fixed;
  z-index:10000;
  padding:5px;
  overflow:auto;
  overscroll-behavior:contain;
  border:1px solid var(--hairline-strong);
  border-radius:var(--radius-sm);
  background:var(--card);
  color:var(--darkblue);
  color-scheme:inherit;
  box-shadow:var(--shadow-elevated);
  opacity:0;
  transform:translateY(-4px) scale(.985);
  transform-origin:top center;
  pointer-events:none;
  transition:opacity .14s ease, transform .14s var(--motion-ease-out);
}
.dashboard-select__menu.is-open{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}
.dashboard-select__option{
  position:relative;
  display:flex;
  align-items:center;
  min-height:30px;
  padding:6px 28px 6px 9px;
  border-radius:6px;
  color:var(--darkblue);
  font-size:var(--text-caption);
  font-weight:500;
  line-height:1.35;
  cursor:pointer;
  outline:none;
}
.dashboard-select__option:hover,
.dashboard-select__option:focus-visible{
  background:var(--row-hover);
}
.dashboard-select__option[aria-selected="true"]{
  background:var(--blue-soft);
  color:var(--blue);
  font-weight:650;
}
.dashboard-select__option[aria-selected="true"]::after{
  content:"";
  position:absolute;
  right:10px;
  width:8px;
  height:4px;
  border-left:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(-45deg) translateY(-1px);
}
.dashboard-select__option--multi{
  gap:8px;
  padding-right:9px;
}
.dashboard-select__option--multi[aria-selected="true"]::after{
  display:none;
}
.dashboard-select__checkbox{
  position:relative;
  width:14px;
  height:14px;
  flex:0 0 auto;
  border:1px solid var(--hairline-strong);
  border-radius:4px;
  background:var(--surface-muted);
  box-shadow:inset 0 1px 1px color-mix(in srgb, var(--bg) 12%, transparent);
}
.dashboard-select__option--multi[aria-selected="true"] .dashboard-select__checkbox{
  border-color:var(--blue);
  background:var(--blue);
}
.dashboard-select__option--multi[aria-selected="true"] .dashboard-select__checkbox::after{
  content:"";
  position:absolute;
  left:3px;
  top:3px;
  width:6px;
  height:3px;
  border-left:1.5px solid #fff;
  border-bottom:1.5px solid #fff;
  transform:rotate(-45deg);
}
.dashboard-select__option-label{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.dashboard-select__option.is-disabled{
  cursor:not-allowed;
  opacity:.48;
  background:transparent;
}

/* Widget filters reuse the global filter field and select component. */
.dashboard-secondary-filter{
  flex:0 0 auto;
  align-items:flex-start;
}
.dashboard-secondary-filter .dashboard-select{
  width:180px !important;
  min-width:160px !important;
  max-width:min(220px, 100%) !important;
}

/* ===== AUTHENTICATED SESSION ACTIONS ===== */
.dashboard-logout-btn{
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:6px;
  width:100%;
  min-height:36px;
  margin-top:4px;
  padding:5px 7px;
  border:1px solid color-mix(in srgb, var(--red) 18%, transparent);
  border-radius:11px;
  background:color-mix(in srgb, var(--red) 5%, transparent);
  color:color-mix(in srgb, var(--red) 72%, var(--ink-soft));
  font:inherit;
  font-size:12.25px;
  font-weight:600;
  letter-spacing:-.01em;
  text-align:left;
  cursor:pointer;
  transition:
    border-color .18s ease,
    background-color .18s ease,
    color .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}
.dashboard-logout-btn__icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex:0 0 auto;
  width:24px;
  height:24px;
  border-radius:8px;
  background:color-mix(in srgb, var(--red) 10%, transparent);
  color:inherit;
  transition:background-color .18s ease, color .18s ease;
}
.dashboard-logout-btn__icon svg{
  width:14px;
  height:14px;
  display:block;
}
.dashboard-logout-btn__label{
  min-width:0;
  line-height:1.25;
  white-space:nowrap;
}
.dashboard-logout-btn:hover{
  border-color:color-mix(in srgb, var(--red) 30%, var(--hairline));
  background:color-mix(in srgb, var(--red) 11%, var(--rail-bg));
  color:color-mix(in srgb, var(--red) 84%, var(--darkblue));
  box-shadow:0 4px 12px color-mix(in srgb, var(--red) 10%, transparent);
}
.dashboard-logout-btn:hover .dashboard-logout-btn__icon{
  background:color-mix(in srgb, var(--red) 16%, transparent);
}
.dashboard-logout-btn:active{
  transform:translateY(1px);
  background:color-mix(in srgb, var(--red) 16%, var(--rail-bg));
}
.dashboard-logout-btn:focus-visible{
  outline:none;
  border-color:color-mix(in srgb, var(--red) 42%, var(--hairline));
  box-shadow:0 0 0 2px color-mix(in srgb, var(--red) 24%, transparent);
}

.dashboard-logout-dialog{
  width:min(420px, calc(100vw - 32px));
  max-width:none;
  padding:0;
  border:1px solid var(--hairline-strong);
  border-radius:var(--radius-card);
  background:var(--card);
  color:var(--black);
  box-shadow:var(--shadow-elevated);
}
.dashboard-logout-dialog::backdrop{
  background:color-mix(in srgb, var(--bg) 70%, transparent);
  backdrop-filter:blur(3px);
}
.dashboard-logout-dialog__content{
  display:flex;
  flex-direction:column;
  align-items:center;
  padding:26px;
  text-align:center;
}
.dashboard-logout-dialog__icon{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  margin-bottom:14px;
  border:1px solid color-mix(in srgb, var(--red) 28%, var(--hairline));
  border-radius:50%;
  background:color-mix(in srgb, var(--red) 10%, var(--surface-subtle));
  color:var(--red);
}
.dashboard-logout-dialog__icon svg{width:21px; height:21px;}
.dashboard-logout-dialog h2{
  margin:0;
  color:var(--darkblue);
  font-size:18px;
  line-height:1.3;
}
.dashboard-logout-dialog p{
  margin:8px 0 0;
  color:var(--ink-soft);
  font-size:12.5px;
  line-height:1.55;
}
.dashboard-logout-dialog .dashboard-logout-dialog__error{
  color:var(--red);
}
.dashboard-logout-dialog__actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  width:100%;
  margin-top:22px;
}
.dashboard-logout-dialog__actions button{
  min-width:88px;
  height:34px;
  padding:0 14px;
  border-radius:var(--radius-pill);
  font:inherit;
  font-size:12px;
  font-weight:650;
  cursor:pointer;
  transition:background-color .18s ease, border-color .18s ease, box-shadow .18s ease;
}
.dashboard-logout-dialog__cancel{
  border:1px solid var(--hairline-strong);
  background:var(--surface-muted);
  color:var(--darkblue);
}
.dashboard-logout-dialog__cancel:hover{background:var(--row-hover);}
.dashboard-logout-dialog__confirm{
  border:1px solid color-mix(in srgb, var(--red) 72%, var(--hairline));
  background:var(--red);
  color:#fff;
}
.dashboard-logout-dialog__confirm:hover{
  background:color-mix(in srgb, var(--red) 88%, #000);
  box-shadow:0 5px 14px color-mix(in srgb, var(--red) 25%, transparent);
}
.dashboard-logout-dialog__actions button:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px color-mix(in srgb, var(--blue) 24%, transparent);
}
.dashboard-logout-dialog__actions button:disabled{
  cursor:wait;
  opacity:.65;
}

@media (prefers-reduced-motion:reduce){
  .dashboard-logout-btn,
  .dashboard-select__trigger,
  .dashboard-select__chevron,
  .dashboard-select__menu,
  .dashboard-logout-dialog__actions button{
    transition:none !important;
  }
}

/* ===== ENTERPRISE COMPACT DENSITY =====
   Reduce chrome and whitespace while preserving data, chart/map geometry,
   interaction targets, and responsive grid behavior. */
.vaidya-dashboard-root{
  --space-panel-top:12px;
  --space-panel-bottom:20px;
  --space-section:12px;
  --space-card-y:12px;
  --space-card-x:14px;
  --space-metric-y:11px;
  --space-metric-x:12px;
  --space-title-mb:8px;
  --space-title-pb:6px;
  --space-title-gap:2px;
  --space-view-head-mb:10px;
  --space-view-head-pb:8px;
  --space-grid:12px;
  --space-kpi-gap:10px;
  --space-table-y:7px;
  --space-table-x:10px;
  --space-empty-y:18px;
  --space-empty-min:72px;
}

.vaidya-dashboard-root .view[role="tabpanel"]{
  padding-top:var(--space-panel-top);
  padding-bottom:var(--space-panel-bottom);
}
.vaidya-dashboard-root .view-head p{margin-top:4px;}
.vaidya-dashboard-root .section-title h3{line-height:1.25;}
.vaidya-dashboard-root .section-title .note{line-height:1.35;}

.vaidya-dashboard-root .story-flow,
.vaidya-dashboard-root .story-beat{
  gap:var(--space-section);
}
.vaidya-dashboard-root .story-beat + .story-beat,
.vaidya-dashboard-root .story-flow > .story-beat{
  margin-top:0;
  padding-top:16px;
}

/* Generic KPI cards; already-compact section-specific variants keep precedence. */
.vaidya-dashboard-root .metric-card{
  padding:11px 12px 10px;
}
.vaidya-dashboard-root .metric-card__body{gap:8px;}
.vaidya-dashboard-root .metric-card__leading{gap:8px;}
.vaidya-dashboard-root .metric-card__icon{
  width:32px;
  height:32px;
  border-radius:9px;
}
.vaidya-dashboard-root .metric-card__icon svg{
  width:15px;
  height:15px;
}
.vaidya-dashboard-root .metric-card__sub{margin-top:1px;}

/* Let charts use more of each card by tightening only surrounding chrome. */
.vaidya-dashboard-root :is(.ph-area-wrap,.sc-area-wrap,.lab-curve-wrap){
  padding-top:4px;
  padding-bottom:2px;
}
.vaidya-dashboard-root :is(.grid-2,.kpi-grid,.sc-kpi-grid,.lab-kpi-grid){
  gap:var(--space-grid);
}

/* Dense, readable table rows; sticky header behavior remains unchanged. */
.vaidya-dashboard-root table.ledger-table :is(th,td){
  padding:var(--space-table-y) var(--space-table-x);
}
.vaidya-dashboard-root #population .ph-table :is(th,td),
.vaidya-dashboard-root #lab .li-table :is(th,td){
  padding-top:8px;
  padding-bottom:8px;
  padding-left:10px;
  padding-right:10px;
}
.vaidya-dashboard-root #population .ph-table--outreach :is(th,td){
  padding-top:9px;
  padding-bottom:9px;
}

/* Map chrome is tighter; the map canvases retain their current dimensions. */
.vaidya-dashboard-root :is(#symptom,#population,#lab) .sc-map-stage{gap:12px;}
.vaidya-dashboard-root :is(#symptom,#population,#lab) .sc-map-main{gap:8px;}
.vaidya-dashboard-root :is(#symptom,#population,#lab) .sc-map-sidebar{gap:8px;}
.vaidya-dashboard-root :is(#symptom,#population,#lab) .sc-hotspots-panel{
  padding:10px 12px;
}
.vaidya-dashboard-root #symptom .sc-map-coverage{
  margin-bottom:8px;
  padding:7px 10px;
}

/* High-whitespace executive widgets. */
.vaidya-dashboard-root #executive .exec-band{
  padding-top:4px;
  padding-bottom:10px;
}
.vaidya-dashboard-root #executive .exec-band__head{margin-bottom:8px;}
.vaidya-dashboard-root #executive .story-map-card{padding:12px;}
.vaidya-dashboard-root #executive .exec-geo-side > .card{
  min-height:180px;
  padding:12px;
}
.vaidya-dashboard-root #executive .story-map-sidebar .sc-map-stats .metric-card{
  min-height:96px;
  padding:10px 9px 9px;
}
.vaidya-dashboard-root #executive .facilities-attention-wrap{
  padding:12px 12px 10px;
}
.vaidya-dashboard-root #executive .exec-facility-list{gap:6px;}
.vaidya-dashboard-root #executive .exec-facility-row{
  padding-top:8px;
  padding-bottom:8px;
}

/* Population, Lab, and Operations outliers. */
.vaidya-dashboard-root #population .ph-seg-band{
  gap:9px;
  margin-top:2px;
  padding:11px 12px;
}
.vaidya-dashboard-root #lab .li-sudden-card{
  padding:12px;
}
.vaidya-dashboard-root #lab .li-sudden-meta{margin-top:2px;}
.vaidya-dashboard-root #operations .op-throughput-item{
  min-height:60px;
  padding:10px 12px;
}
.vaidya-dashboard-root #operations :is(.op-funnel-summary-card,.op-funnel-stage){
  padding:10px 12px;
}

/* Keep the command banner concise without removing its supporting context. */
.vaidya-dashboard-root .dash-hero{
  padding:9px 16px;
}
.vaidya-dashboard-root .dash-hero__assistant{
  margin-top:6px;
  padding:5px 8px;
}
.vaidya-dashboard-root .dash-hero__visual{min-height:88px;}
.vaidya-dashboard-root .dash-hero__illus{width:min(152px, 100%);}

/* Abnormal vs normal cases + ICD / current-trends widgets */
#lab .li-case-split{display:flex;flex-direction:column;gap:12px;}
#lab .li-case-split__stats{display:flex;flex-wrap:wrap;gap:8px;}
#lab .li-case-split__stat{
  flex:1 1 140px;
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:10px 12px;
  border-radius:8px;
  border:1px solid var(--hairline);
  background:var(--surface-subtle);
}
#lab .li-case-split__stat--abn{background:var(--red-soft);border-color:rgba(239,68,68,.15);}
#lab .li-case-split__stat--norm{background:rgba(15,118,110,.06);border-color:rgba(15,118,110,.14);}
#lab .li-case-split__n{
  font-size:22px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  color:var(--darkblue);
  line-height:1.15;
}
#lab .li-case-split__stat--abn .li-case-split__n{color:var(--red);}
#lab .li-case-split__lbl{font-size:11px;font-weight:600;color:var(--ink-soft);}
#lab .li-case-split__bar{
  display:flex;
  height:14px;
  border-radius:999px;
  overflow:hidden;
  border:1px solid var(--hairline);
  background:var(--chart-track);
}
#lab .li-case-split__seg--abn{background:var(--red);}
#lab .li-case-split__seg--norm{background:#0F766E;}

#symptom .sc-ranked-icd{
  display:inline-block;
  margin-left:6px;
  padding:1px 6px;
  border-radius:4px;
  font-size:10px;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--ink-soft);
  background:var(--surface-subtle);
  border:1px solid var(--hairline);
  vertical-align:middle;
}

#executive .exec-trends{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:16px 18px 14px;
  border:1px solid var(--hairline);
  border-radius:var(--radius-card, 10px);
  background:var(--card);
}
#executive .exec-trends .section-title{
  margin:0;
  padding:0;
  border:0;
}
#executive .exec-trends .section-title h3{
  font-size:15px;
  margin:0;
}
#executive .exec-trends__outbreak{
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-radius:8px;
  font-size:12px;
  line-height:1.35;
  color:var(--ink-soft);
}
#executive .exec-trends__outbreak.is-clear{
  background:rgba(15,118,110,.06);
  border:1px solid rgba(15,118,110,.14);
}
#executive .exec-trends__outbreak.is-alert{
  background:rgba(254,242,242,.9);
  border:1px solid rgba(220,38,38,.18);
  color:#7F1D1D;
}
#executive .exec-trends__outbreak-tag{
  font-size:10px;
  font-weight:700;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:inherit;
}
#executive .exec-trends.is-historical{
  background:linear-gradient(180deg, rgba(15,118,110,.03), var(--card) 48px);
}
#executive .exec-trends__chart-wrap{
  display:flex;
  flex-direction:column;
  gap:10px;
}
#executive .exec-trends__chips{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
#executive .exec-trends__chip{
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:6px 10px;
  border-radius:8px;
  border:1px solid var(--hairline);
  background:var(--surface-subtle);
  color:var(--ink-soft);
  font:inherit;
  font-size:12px;
  line-height:1.2;
  cursor:pointer;
  transition:opacity .15s ease, border-color .15s ease, background .15s ease;
}
#executive .exec-trends__chip i{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--chip, var(--blue));
  flex:0 0 auto;
}
#executive .exec-trends__chip-name{
  color:var(--darkblue);
  font-weight:650;
}
#executive .exec-trends__chip-name b{
  margin-left:5px;
  font-size:9px;
  letter-spacing:.05em;
  text-transform:uppercase;
  color:var(--red);
  font-weight:700;
}
#executive .exec-trends__chip-n{
  font-variant-numeric:tabular-nums;
  font-weight:700;
  color:var(--darkblue);
}
#executive .exec-trends__chip-delta{
  font-style:normal;
  font-size:11px;
  font-weight:700;
  font-variant-numeric:tabular-nums;
}
#executive .exec-trends__chip-delta.is-up{color:var(--red);}
#executive .exec-trends__chip-delta.is-down{color:var(--blue);}
#executive .exec-trends__chip-delta.is-flat{color:var(--ink-faint);}
#executive .exec-trends__chip.is-on{
  border-color:color-mix(in srgb, var(--chip, var(--blue)) 35%, var(--hairline));
  background:color-mix(in srgb, var(--chip, var(--blue)) 8%, var(--card));
}
#executive .exec-trends__chip.is-off,
#executive .exec-trends__chip:not(.is-on){
  opacity:.45;
}
#executive .exec-trends__plot{
  display:grid;
  grid-template-columns:36px minmax(0, 1fr);
  gap:8px;
  align-items:stretch;
  min-height:210px;
}
#executive .exec-trends__yaxis{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  align-items:flex-end;
  padding:4px 0 22px;
  font-size:10px;
  color:var(--ink-faint);
  font-variant-numeric:tabular-nums;
}
#executive .exec-trends__canvas{
  position:relative;
  min-width:0;
  border:1px solid var(--hairline);
  border-radius:8px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface-subtle) 70%, transparent), transparent 42%),
    var(--card);
  padding:8px 10px 0;
}
#executive .exec-trends__svg{
  display:block;
  width:100%;
  height:170px;
  overflow:visible;
}
#executive .exec-trends__grid{
  stroke:var(--hairline);
  stroke-width:.6;
  stroke-dasharray:1.5 1.5;
  vector-effect:non-scaling-stroke;
}
#executive .exec-trends__line{
  fill:none;
  stroke-width:2.25;
  stroke-linecap:round;
  stroke-linejoin:round;
  vector-effect:non-scaling-stroke;
  transition:opacity .15s ease;
}
#executive .exec-trends__line.is-hidden{opacity:0;}
#executive .exec-trends__bar{
  transition:opacity .15s ease;
  rx:.6;
}
#executive .exec-trends__bar.is-hidden{opacity:0;}
#executive .exec-trends__xlabel{
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:1fr;
  gap:0;
  margin-top:4px;
  padding:0 2px 8px;
  font-size:10px;
  color:var(--ink-faint);
}
#executive .exec-trends__xlabel span{
  text-align:center;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
#executive .exec-trends__hint{
  margin:0;
  font-size:11px;
  color:var(--ink-faint);
}
  #executive .exec-trends__empty{
    margin:0;
    padding:18px 12px;
    border:1px dashed var(--hairline);
    border-radius:8px;
    font-size:12.5px;
    color:var(--ink-soft);
    text-align:center;
  }

/* =========================================================
   DASHBOARD — 2026 PREMIUM ENTERPRISE REFINEMENT LAYER
   Whole-dashboard visual polish. CSS-ONLY.
   Scoped to .vaidya-dashboard-root (all 5 tabs); executive-
   specific rules use #executive for cohesive detail.
   No markup, JS, API, routing, state, filter, calculation,
   data, or widget changes. Visual presentation only.

   Design system:
   - spacing scale: 8 / 12 / 16 / 24 / 32
   - radius: 14px cards, 10px inner surfaces
   - theme-aware subtle shadows + calm hover elevation
   - clear typography hierarchy, muted descriptions
   - full responsiveness with no overflow / clipped text
   ========================================================= */

.vaidya-dashboard-root{
  --ui-radius:12px;
  --ui-radius-inner:8px;
  --ui-gap:12px;
  --ui-pad:12px;
}

/* ---------------------------------------------------------
   1. GLOBAL — cards: consistent surface, subtle elevation
   --------------------------------------------------------- */
.vaidya-dashboard-root .card{
  border-radius:var(--ui-radius);
  border:1px solid var(--hairline);
  box-shadow:var(--shadow-metric);
  transition:box-shadow var(--motion-ui) var(--motion-ease),
             border-color var(--motion-ui) var(--motion-ease),
             transform var(--motion-ui) var(--motion-ease);
}
.vaidya-dashboard-root .card:hover{
  box-shadow:var(--shadow-elevated);
  border-color:var(--hairline-strong);
}

/* ---------------------------------------------------------
   2. GLOBAL — KPI / metric cards
   --------------------------------------------------------- */
.vaidya-dashboard-root .metric-card{
  border-radius:var(--ui-radius);
  box-shadow:var(--shadow-metric);
  height:100%;
  transition:box-shadow var(--motion-ui) var(--motion-ease),
             border-color var(--motion-ui) var(--motion-ease),
             transform var(--motion-ui) var(--motion-ease);
}
.vaidya-dashboard-root .metric-card:hover,
.vaidya-dashboard-root .metric-card.is-ready:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-metric-hover);
  border-color:var(--hairline-strong);
}
.vaidya-dashboard-root .metric-card__value{
  font-weight:800;
  letter-spacing:-.035em;
  color:var(--darkblue);
}
.vaidya-dashboard-root .metric-card__label{font-weight:600;}
.vaidya-dashboard-root .metric-card__sub{color:var(--ink-faint); line-height:1.4;}
/* KPI grids: even columns, equal-height rows */
.vaidya-dashboard-root :is(.kpi-grid,.sc-kpi-grid,.lab-kpi-grid,.kpi-grid--primary,.kpi-grid--secondary){
  align-items:stretch;
  gap:var(--ui-gap);
}

/* ---------------------------------------------------------
   3. GLOBAL — page + section hierarchy (typography)
   --------------------------------------------------------- */
.vaidya-dashboard-root .view-head{
  margin-bottom:12px;
  padding-bottom:10px;
  border-bottom:1px solid var(--hairline);
}
.vaidya-dashboard-root .view-head .label-caps{
  font-size:10px;
  letter-spacing:.12em;
  font-weight:700;
  color:var(--blue);
  margin:0 0 4px;
}
.vaidya-dashboard-root .view-head h2{
  font-size:clamp(18px, 2.2vw, 24px);
  font-weight:800;
  letter-spacing:-.03em;
  line-height:1.14;
  color:var(--darkblue);
}
.vaidya-dashboard-root .view-head p{
  font-size:12.5px;
  line-height:1.5;
  color:var(--ink-soft);
  margin:6px 0 0;
}
/* Grouping headers between story beats */
.vaidya-dashboard-root .story-kicker{
  font-size:15px;
  font-weight:700;
  letter-spacing:-.015em;
  color:var(--darkblue);
}
.vaidya-dashboard-root .story-bridge{
  font-size:12.5px;
  line-height:1.5;
  color:var(--ink-soft);
  margin-top:-2px;
}
/* Widget titles: consistent across every card */
.vaidya-dashboard-root .section-title{
  margin-bottom:8px;
  padding-bottom:6px;
}
.vaidya-dashboard-root .section-title h3{
  font-size:13.5px;
  font-weight:700;
  letter-spacing:-.01em;
  color:var(--darkblue);
  line-height:1.25;
}
.vaidya-dashboard-root .section-title .note{
  font-size:11px;
  line-height:1.4;
  color:var(--ink-faint);
}

/* ---------------------------------------------------------
   4. GLOBAL — charts resize cleanly, never overflow
   --------------------------------------------------------- */
.vaidya-dashboard-root :is(
  .sc-area-chart,.ph-area-chart,.sc-lollipop,.li-lollipop,.ph-lollipop,
  .op-lollipop,.ph-heatmap,.ph-bar-chart,.ph-dumbbell,.sc-age-chart,
  .sc-ranked,.sc-severity,.op-pipeline,.op-throughput-strip,
  .op-efficiency-grid,.li-ward-heat,.li-bullets,.dept-card-grid,
  .ph-demo-age,.sc-gender-block
){
  width:100%;
  max-width:100%;
  min-width:0;
}
/* Prevent any content from forcing horizontal page scroll */
.vaidya-dashboard-root .view :where(section,div,article,header,nav,table,p,h1,h2,h3,h4,span,li,aside){
  min-width:0;
}
.vaidya-dashboard-root .view :where(h1,h2,h3,h4,p,span,strong,em,td,th,li,.note){
  overflow-wrap:anywhere;
}

/* ---------------------------------------------------------
   6. GLOBAL — tables: sticky headers (in scroll wraps),
   consistent header type, comfortable rows, hover
   --------------------------------------------------------- */
.vaidya-dashboard-root :is(
  .ph-table-wrap,.ph-table-wrap--outreach,.ph-table-wrap--scroll,
  .li-table-wrap,.exec-table-wrap,.story-critical-table-wrap
) thead th{
  position:sticky;
  top:0;
  z-index:3;
  background:var(--surface-subtle);
  font-size:11px;
  font-weight:700;
  letter-spacing:.02em;
  color:var(--ink-soft);
  box-shadow:inset 0 -1px 0 var(--hairline);
}
.vaidya-dashboard-root :is(.ledger-table,.ph-table,.li-table,.trend-table,.exec-data-table,.story-critical-table,.css-sym-table) tbody tr{
  transition:background var(--motion-ui) var(--motion-ease);
}
.vaidya-dashboard-root :is(.ledger-table,.ph-table,.li-table,.trend-table,.exec-data-table,.story-critical-table,.css-sym-table) tbody tr:hover:not(.is-active):not(.is-selected) > *{
  background:var(--row-hover);
}
/* Table wraps: scroll horizontally only when needed, rounded */
.vaidya-dashboard-root :is(.ph-table-wrap,.li-table-wrap){
  border-radius:var(--ui-radius-inner);
  -webkit-overflow-scrolling:touch;
}

/* ---------------------------------------------------------
   7. GLOBAL — filters: aligned, consistent height, focus
   --------------------------------------------------------- */
.vaidya-dashboard-root .city-explore-field select,
.vaidya-dashboard-root .dashboard-filter-select{
  min-height:38px;
  border-radius:var(--ui-radius-inner);
  transition:border-color var(--motion-ui) var(--motion-ease),
             box-shadow var(--motion-ui) var(--motion-ease),
             background var(--motion-ui) var(--motion-ease);
}
.vaidya-dashboard-root .city-explore-label{
  font-weight:600;
  letter-spacing:.01em;
  color:var(--ink-soft);
}

/* ---------------------------------------------------------
   8. GLOBAL — buttons + segmented toggles: smooth, tactile
   --------------------------------------------------------- */
.vaidya-dashboard-root :is(.export-btn,.sc-hotspot-tab,.tab-btn,.story-drill-btn){
  transition:background var(--motion-ui) var(--motion-ease),
             color var(--motion-ui) var(--motion-ease),
             border-color var(--motion-ui) var(--motion-ease),
             box-shadow var(--motion-ui) var(--motion-ease),
             transform var(--motion-ui) var(--motion-ease);
}
.vaidya-dashboard-root .export-btn:hover{
  border-color:var(--hairline-strong);
}

/* ---------------------------------------------------------
   9. GLOBAL — accessibility: visible keyboard focus
   --------------------------------------------------------- */
.vaidya-dashboard-root :is(button,a,[role="tab"],select,input,.story-drill-btn,.sc-hotspot-tab):focus-visible{
  outline:2px solid var(--blue);
  outline-offset:2px;
  border-radius:6px;
}

/* =========================================================
   EXECUTIVE — cohesive detail on top of the global system
   ========================================================= */
.vaidya-dashboard-root #executive{
  --exec-band-sep:16px;
}
.vaidya-dashboard-root #executive.view[role="tabpanel"]{
  padding-top:12px;
  padding-bottom:20px;
}
.vaidya-dashboard-root #executive .exec-flow{display:flex; flex-direction:column; gap:0;}
.vaidya-dashboard-root #executive .exec-band{
  gap:var(--ui-gap);
  padding-top:var(--exec-band-sep);
  padding-bottom:var(--exec-band-sep);
}
.vaidya-dashboard-root #executive .exec-band:first-of-type{padding-top:0;}
.vaidya-dashboard-root #executive .exec-band:last-of-type{padding-bottom:0;}
.vaidya-dashboard-root #executive .exec-band__head{margin-bottom:0;}
.vaidya-dashboard-root #executive .exec-summary-stack,
.vaidya-dashboard-root #executive .story-dual-signal,
.vaidya-dashboard-root #executive .exec-geo-layout,
.vaidya-dashboard-root #executive .exec-geo-side,
.vaidya-dashboard-root #executive .story-action-grid,
.vaidya-dashboard-root #executive .exec-support-trio,
.vaidya-dashboard-root #executive .story-hero-metrics,
.vaidya-dashboard-root #executive .story-program-grid,
.vaidya-dashboard-root #executive .story-map-sidebar .sc-map-stats,
.vaidya-dashboard-root #executive .story-drill-nav{
  gap:var(--ui-gap);
}
.vaidya-dashboard-root #executive .exec-view-head{
  gap:10px 20px;
  margin-bottom:12px;
  padding-bottom:10px;
}
.vaidya-dashboard-root #executive .exec-view-head .label-caps{
  font-size:10px; letter-spacing:.12em; font-weight:700; color:var(--blue); margin:0 0 4px;
}
.vaidya-dashboard-root #executive .exec-view-head h2{
  font-size:clamp(18px, 2.2vw, 24px);
  font-weight:800; letter-spacing:-.03em; line-height:1.12; color:var(--darkblue);
}
.vaidya-dashboard-root #executive .exec-briefing-meta{
  font-size:11.5px; font-weight:600; padding:5px 10px; border-radius:999px;
  color:var(--ink-soft); background:var(--surface-subtle); border:1px solid var(--hairline);
}
.vaidya-dashboard-root #executive .exec-band__title{
  font-size:15px; font-weight:700; letter-spacing:-.015em; color:var(--darkblue);
}
.vaidya-dashboard-root #executive .exec-band__lede{
  font-size:12.5px; line-height:1.45; color:var(--ink-soft);
}
/* Executive cards + KPI: match the global look (override earlier flat rules) */
.vaidya-dashboard-root #executive .card,
.vaidya-dashboard-root #executive .story-program-strip,
.vaidya-dashboard-root #executive .story-signal,
.vaidya-dashboard-root #executive .facilities-attention-wrap{
  border-radius:var(--ui-radius);
  border:1px solid var(--hairline);
  box-shadow:var(--shadow-metric);
  transition:box-shadow var(--motion-ui) var(--motion-ease),
             border-color var(--motion-ui) var(--motion-ease),
             transform var(--motion-ui) var(--motion-ease);
}
.vaidya-dashboard-root #executive .card:hover,
.vaidya-dashboard-root #executive .story-program-strip:hover,
.vaidya-dashboard-root #executive .facilities-attention-wrap:hover{
  box-shadow:var(--shadow-elevated);
  border-color:var(--hairline-strong);
}
.vaidya-dashboard-root #executive .story-signal:hover,
.vaidya-dashboard-root #executive .story-drill-btn:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-elevated);
  border-color:var(--hairline-strong);
}
.vaidya-dashboard-root #executive .story-map-frame{border-radius:var(--ui-radius-inner);}
.vaidya-dashboard-root #executive .story-hero-metrics .metric-card,
.vaidya-dashboard-root #executive .story-program-grid .metric-card,
.vaidya-dashboard-root #executive .story-map-sidebar .sc-map-stats .metric-card{
  border-radius:var(--ui-radius);
  border:1px solid var(--hairline);
  box-shadow:var(--shadow-metric);
  padding:12px;
  height:100%;
}
.vaidya-dashboard-root #executive .story-hero-metrics .metric-card:hover,
.vaidya-dashboard-root #executive .story-hero-metrics .metric-card.is-ready:hover,
.vaidya-dashboard-root #executive .story-program-grid .metric-card:hover,
.vaidya-dashboard-root #executive .story-program-grid .metric-card.is-ready:hover{
  transform:translateY(-2px);
  box-shadow:var(--shadow-metric-hover);
  border-color:var(--hairline-strong);
}
.vaidya-dashboard-root #executive .story-map-sidebar .sc-map-stats .metric-card:hover{
  box-shadow:var(--shadow-metric-hover);
  border-color:var(--hairline-strong);
}
.vaidya-dashboard-root #executive .exec-insight-banner{
  border-radius:var(--ui-radius);
  border:1px solid var(--hairline);
  border-left:3px solid var(--blue);
  box-shadow:var(--shadow-metric);
  padding:14px 16px;
}
.vaidya-dashboard-root #executive .exec-insight-headline{
  font-size:15px; font-weight:700; line-height:1.35; color:var(--darkblue);
}
.vaidya-dashboard-root #executive .exec-insight-body{
  font-size:12.5px; line-height:1.55; color:var(--ink-soft);
}
.vaidya-dashboard-root #executive .exec-insight-content{
  gap:10px;
}
.vaidya-dashboard-root #executive .exec-insight-points{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:2px 0 0;
  padding:0 0 0 1.15rem;
  list-style:disc;
  color:var(--ink);
  font-size:13.5px;
  line-height:1.55;
}
.vaidya-dashboard-root #executive .exec-insight-points li{
  padding-left:4px;
  color:var(--ink-soft);
}
.vaidya-dashboard-root #executive .exec-insight-points li::marker{
  color:var(--blue);
  font-size:1.05em;
}
.vaidya-dashboard-root #executive .exec-insight-point-text{
  display:block;
  max-width:72ch;
}
.vaidya-dashboard-root #executive .exec-insight-label--sub{
  margin-top:4px;
  color:var(--ink-faint);
}
.vaidya-dashboard-root #executive .exec-insight-actions-block{
  margin-top:2px;
  padding-top:10px;
  border-top:1px solid var(--hairline);
  display:flex;
  flex-direction:column;
  gap:8px;
}
.vaidya-dashboard-root #executive .exec-insight-actions{
  margin:0;
  padding-top:0;
  border-top:none;
}
.vaidya-dashboard-root #population .ph-burden-pair--single{
  grid-template-columns:minmax(0, 1fr);
}
.vaidya-dashboard-root #executive .alert-banner{
  border-radius:var(--ui-radius); border:1px solid var(--hairline);
  box-shadow:var(--shadow-metric); padding:12px 14px;
}
.vaidya-dashboard-root #executive :is(.exec-trends,.exec-trends__canvas){border-radius:var(--ui-radius);}
/* Executive scroll tables also get sticky headers + zebra */
.vaidya-dashboard-root #executive :is(.ledger-table,.ph-table,.exec-data-table,.story-critical-table) thead th{
  position:sticky; top:0; z-index:3;
  background:var(--surface-subtle);
  font-size:11px; font-weight:700; letter-spacing:.02em; color:var(--ink-soft);
  box-shadow:inset 0 -1px 0 var(--hairline);
}
.vaidya-dashboard-root #executive :is(.ledger-table,.ph-table,.exec-data-table,.story-critical-table) tbody tr:nth-child(even):not(.is-active):not(.is-selected) > *{
  background:color-mix(in srgb, var(--surface-subtle) 55%, transparent);
}
.vaidya-dashboard-root #executive :is(.ledger-table,.ph-table,.exec-data-table,.story-critical-table) tbody tr:hover:not(.is-active):not(.is-selected) > *{
  background:var(--row-hover);
}

/* =========================================================
   EXECUTIVE SEVERITY — stacked bar (replaces donut)
   Same ordered severity mix as Lab Intelligence.
   ========================================================= */
.vaidya-dashboard-root #executive .exec-sev-stack-wrap{
  display:flex;
  flex-direction:column;
  gap:12px;
  flex:1;
  min-width:0;
}
.vaidya-dashboard-root #executive .exec-sev-headline{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.vaidya-dashboard-root #executive .exec-sev-stat{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:8px 12px;
  border-radius:8px;
  border:1px solid var(--hairline);
  background:var(--surface-subtle);
  min-width:72px;
}
.vaidya-dashboard-root #executive .exec-sev-stat__n{
  font-size:18px;
  font-weight:800;
  font-variant-numeric:tabular-nums;
  line-height:1.15;
  color:var(--darkblue);
  letter-spacing:-.03em;
}
.vaidya-dashboard-root #executive .exec-sev-stat__l{
  font-size:10.5px;
  font-weight:600;
  color:var(--ink-soft);
  text-transform:uppercase;
  letter-spacing:.04em;
}
.vaidya-dashboard-root #executive .exec-sev-stat--muted .exec-sev-stat__n{font-weight:700;}
.vaidya-dashboard-root #executive .exec-sev-stack{
  display:flex;
  height:26px;
  border-radius:8px;
  overflow:hidden;
  border:1px solid var(--hairline);
  box-shadow:inset 0 1px 2px rgba(15,23,42,.04);
}
.vaidya-dashboard-root #executive .exec-sev-seg{
  display:flex;
  align-items:center;
  justify-content:center;
  min-width:3px;
  transition:opacity .15s ease;
}
.vaidya-dashboard-root #executive .exec-sev-seg--priority{min-width:6px;}
.vaidya-dashboard-root #executive .exec-sev-seg span{
  font-size:10px;
  font-weight:700;
  color:#fff;
  text-shadow:0 1px 2px rgba(0,0,0,.22);
}
.vaidya-dashboard-root #executive .exec-sev-seg:hover{opacity:.92;}
.vaidya-dashboard-root #executive .exec-sev-legend{
  display:flex;
  flex-direction:column;
  gap:5px;
  min-width:0;
}
.vaidya-dashboard-root #executive .exec-sev-leg-row{
  display:grid;
  grid-template-columns:8px minmax(0,1fr) auto auto;
  align-items:center;
  gap:8px;
  font-size:12px;
}
.vaidya-dashboard-root #executive .exec-sev-swatch{
  width:8px; height:8px; border-radius:2px; display:block;
}
.vaidya-dashboard-root #executive .exec-sev-leg-name{color:var(--ink-soft);}
.vaidya-dashboard-root #executive .exec-sev-leg-count{
  font-variant-numeric:tabular-nums;
  color:var(--darkblue);
  font-weight:700;
}
.vaidya-dashboard-root #executive .exec-sev-leg-pct{
  font-style:normal;
  font-size:11px;
  font-variant-numeric:tabular-nums;
  color:var(--ink-faint);
  min-width:2.5rem;
  text-align:right;
}

/* =========================================================
   CHART / MAP / TABLE POLISH — all tabs
   ========================================================= */
.vaidya-dashboard-root :is(.sc-area-wrap,.ph-area-wrap,.lab-curve-wrap,.sc-area-chart,.ph-area-chart){
  padding-top:2px;
  padding-bottom:0;
}
.vaidya-dashboard-root :is(.ph-lollipop,.li-lollipop,.op-lollipop,.sc-lollipop){
  gap:5px;
}
.vaidya-dashboard-root :is(.sc-map-legend,.sc-hotspots-panel){
  border-radius:var(--ui-radius-inner);
}
.vaidya-dashboard-root .sc-map-frame{
  border-radius:var(--ui-radius-inner);
}
.vaidya-dashboard-root .sc-hotspots-panel h4{
  font-size:10.5px;
  letter-spacing:.05em;
  margin-bottom:4px;
}
.vaidya-dashboard-root .sc-hotspot-row{
  padding-top:6px;
  padding-bottom:6px;
}
.vaidya-dashboard-root :is(.ledger-table,.ph-table,.li-table,.trend-table,.exec-data-table,.story-critical-table) :is(th,td){
  padding-top:7px;
  padding-bottom:7px;
}
.vaidya-dashboard-root :is(.ph-table-wrap,.li-table-wrap,.exec-table-wrap,.story-critical-table-wrap) thead th{
  font-size:10.5px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
/* Soften card hover lift — elevation only, no jumpiness */
.vaidya-dashboard-root .metric-card:hover,
.vaidya-dashboard-root .metric-card.is-ready:hover{
  transform:translateY(-1px);
}
.vaidya-dashboard-root #executive .story-signal:hover,
.vaidya-dashboard-root #executive .story-drill-btn:hover{
  transform:translateY(-1px);
}

/* =========================================================
   RESPONSIVE — desktop → laptop → tablet → mobile
   Reorganise widgets, stack cleanly, no horizontal scroll.
   ========================================================= */

/* Laptop / small desktop */
@media (max-width: 1200px){
  .vaidya-dashboard-root :is(.sc-signal-grid,.sc-who-grid,.sc-profile-grid,.op-demand-grid){
    grid-template-columns:1fr 1fr;
  }
}

/* Tablet */
@media (max-width: 1024px){
  .vaidya-dashboard-root #executive{--exec-band-sep:14px;}
  .vaidya-dashboard-root #executive .exec-geo-layout,
  .vaidya-dashboard-root #executive .story-action-grid{grid-template-columns:1fr;}
  .vaidya-dashboard-root :is(.grid-2,.ph-burden-pair,.ph-demo-pair,.ph-screen-pair){
    grid-template-columns:1fr;
  }
  .vaidya-dashboard-root .ph-seg-grid{grid-template-columns:1fr 1fr;}
  .vaidya-dashboard-root :is(.kpi-grid,.sc-kpi-grid,.lab-kpi-grid,.kpi-grid--primary,.kpi-grid--secondary){
    grid-template-columns:repeat(auto-fit, minmax(180px, 1fr));
  }
}

/* Large phone / small tablet */
@media (max-width: 760px){
  .vaidya-dashboard-root{--ui-gap:10px;}
  .vaidya-dashboard-root :is(.sc-signal-grid,.sc-who-grid,.sc-profile-grid,.op-demand-grid){
    grid-template-columns:1fr;
  }
  .vaidya-dashboard-root #executive .exec-view-head{flex-direction:column; align-items:flex-start;}
  .vaidya-dashboard-root #executive .exec-briefing-meta{white-space:normal;}
}

/* Mobile: single-column, readable, no horizontal scroll */
@media (max-width: 560px){
  .vaidya-dashboard-root{--ui-gap:10px; --ui-pad:12px;}
  .vaidya-dashboard-root :is(
    .kpi-grid,.sc-kpi-grid,.lab-kpi-grid,.kpi-grid--primary,.kpi-grid--secondary,
    .ph-seg-grid,.op-efficiency-grid,
    #executive .story-hero-metrics,#executive .story-program-grid,
    #executive .story-dual-signal,#executive .exec-support-trio,
    #executive .story-drill-nav,#executive .story-map-sidebar .sc-map-stats,
    #executive .story-signal__facts
  ){
    grid-template-columns:1fr;
  }
  .vaidya-dashboard-root .card{padding:12px;}
  .vaidya-dashboard-root .view-head h2{font-size:18px;}
  .vaidya-dashboard-root .story-kicker{font-size:14px;}
  .vaidya-dashboard-root :is(.story-flow,.story-beat,.section,.card,.exec-band){max-width:100%;}
}

/* =========================================================
   LOOKBACK — slightly narrower; month labels stay on one line
   ========================================================= */
.vaidya-dashboard-root .city-explore-field--lookback,
.vaidya-dashboard-root .city-explore-field:has(#lookback){
  flex:0.85 1 0;
  max-width:148px;
}
.vaidya-dashboard-root .city-explore-controls > .city-explore-actions{
  margin-left:12px;
}
.vaidya-dashboard-root .city-explore-field--lookback .dashboard-select,
.vaidya-dashboard-root .city-explore-field:has(#lookback) .dashboard-select,
.vaidya-dashboard-root .city-explore-field--lookback select,
.vaidya-dashboard-root .city-explore-field:has(#lookback) select{
  min-width:118px !important;
  max-width:148px !important;
}
.vaidya-dashboard-root .city-explore-field--lookback .dashboard-select__value,
.vaidya-dashboard-root .city-explore-field:has(#lookback) .dashboard-select__value,
.vaidya-dashboard-root .city-explore-field--lookback .dashboard-select__option,
.vaidya-dashboard-root .city-explore-field:has(#lookback) .dashboard-select__option,
.vaidya-dashboard-root .city-explore-field--lookback select option,
.vaidya-dashboard-root .city-explore-field:has(#lookback) select option{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

/* =========================================================
   LAB INTELLIGENCE + EXECUTIVE — hotspot sidebar containment
   Prevent Unplaced Orders / ward-facility lists from overlapping
   neighbouring widgets. Card grows or list scrolls internally.
   ========================================================= */
.vaidya-dashboard-root #lab .sc-map-section,
.vaidya-dashboard-root #lab .sc-map-card,
.vaidya-dashboard-root #executive .exec-geo-layout,
.vaidya-dashboard-root #executive .story-map-card{
  min-width:0;
  max-width:100%;
}

.vaidya-dashboard-root #lab .sc-map-card,
.vaidya-dashboard-root #executive .story-map-card{
  display:flex;
  flex-direction:column;
  overflow:hidden;
  height:auto;
}

.vaidya-dashboard-root #lab .sc-map-stage,
.vaidya-dashboard-root #executive .story-map-stage{
  display:grid;
  grid-template-columns:minmax(0, 1fr) minmax(240px, 300px);
  gap:14px;
  align-items:start;
  width:100%;
  min-width:0;
  min-height:0;
  flex:1 1 auto;
}

.vaidya-dashboard-root #lab .sc-map-main,
.vaidya-dashboard-root #executive .story-map-stage .sc-map-main{
  min-width:0;
  max-width:100%;
}

.vaidya-dashboard-root #lab .sc-map-sidebar,
.vaidya-dashboard-root #executive .story-map-sidebar{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-width:0;
  max-width:100%;
  width:100%;
  overflow:hidden;
  height:auto;
}

.vaidya-dashboard-root #lab .sc-map-stats,
.vaidya-dashboard-root #executive .story-map-sidebar .sc-map-stats{
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  flex:0 0 auto;
  min-width:0;
  max-width:100%;
}

.vaidya-dashboard-root #executive .story-map-sidebar .sc-map-stats{
  grid-template-columns:1fr 1fr;
}

.vaidya-dashboard-root #lab .sc-map-stats .metric-card,
.vaidya-dashboard-root #executive .story-map-sidebar .sc-map-stats .metric-card{
  min-width:0;
  max-width:100%;
  overflow:hidden;
  height:auto;
}

.vaidya-dashboard-root #lab .sc-hotspots-panel,
.vaidya-dashboard-root #executive .sc-hotspots-panel{
  display:flex;
  flex-direction:column;
  flex:1 1 auto;
  min-width:0;
  max-width:100%;
  min-height:0;
  overflow:hidden;
}

.vaidya-dashboard-root #lab #li-map-top-list,
.vaidya-dashboard-root #executive #exec-map-top-list{
  flex:1 1 auto;
  min-width:0;
  min-height:0;
  max-width:100%;
  height:auto;
  max-height:min(280px, 40vh);
  overflow-x:hidden;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
}

.vaidya-dashboard-root #lab .sc-hotspot-row,
.vaidya-dashboard-root #executive .sc-hotspot-row{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:8px;
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}

.vaidya-dashboard-root #lab .sc-hotspot-lbl,
.vaidya-dashboard-root #executive .sc-hotspot-lbl{
  flex:1 1 auto;
  min-width:0;
  max-width:100%;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.vaidya-dashboard-root #lab .sc-hotspot-name,
.vaidya-dashboard-root #executive .sc-hotspot-name{
  display:-webkit-box;
  -webkit-box-orient:vertical;
  -webkit-line-clamp:2;
  overflow:hidden;
  overflow-wrap:anywhere;
  word-break:break-word;
  white-space:normal;
}

.vaidya-dashboard-root #lab .sc-hotspot-lbl em,
.vaidya-dashboard-root #executive .sc-hotspot-lbl em{
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:break-word;
}

.vaidya-dashboard-root #lab .sc-hotspot-row b,
.vaidya-dashboard-root #executive .sc-hotspot-row b{
  flex:0 0 auto;
  max-width:40%;
  text-align:right;
  white-space:nowrap;
}

/* Stack map above sidebar; push following sections down; no bleed */
@media (max-width: 900px){
  .vaidya-dashboard-root #lab .sc-map-stage,
  .vaidya-dashboard-root #executive .story-map-stage{
    grid-template-columns:1fr;
  }
  .vaidya-dashboard-root #lab #li-map-top-list,
  .vaidya-dashboard-root #executive #exec-map-top-list{
    max-height:min(220px, 36vh);
  }
  .vaidya-dashboard-root #executive .story-map-sidebar .sc-map-stats{
    grid-template-columns:1fr 1fr;
  }
}

@media (max-width: 560px){
  .vaidya-dashboard-root #executive .story-map-sidebar .sc-map-stats{
    grid-template-columns:1fr;
  }
  .vaidya-dashboard-root #lab #li-map-top-list,
  .vaidya-dashboard-root #executive #exec-map-top-list{
    max-height:min(200px, 34vh);
  }
  .vaidya-dashboard-root .city-explore-field--lookback,
  .vaidya-dashboard-root .city-explore-field:has(#lookback){
    max-width:136px;
  }
}

/* =========================================================
   COMPACT EMPTY WIDGETS
   Data-filled widgets retain their existing dimensions. These
   overrides apply only while an empty-state is the sole content.
   ========================================================= */
.vaidya-dashboard-root .empty-state{
  box-sizing:border-box;
  width:100%;
  height:auto !important;
  min-height:0 !important;
  margin:4px 0 0;
  padding:12px 16px !important;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:10px;
  text-align:center;
}

.vaidya-dashboard-root .empty-state::before{
  width:24px;
  height:24px;
  border-radius:8px;
  background-size:14px 14px;
}

/* Remove chart-specific fixed heights only when no chart was rendered. */
.vaidya-dashboard-root :is(div,section,td):has(> .empty-state:only-child){
  height:auto !important;
  min-height:0 !important;
}
.vaidya-dashboard-root :is(div,section):has(> .section-title + .empty-state:last-child){
  height:auto !important;
  min-height:0 !important;
}

/* Prevent an empty card from stretching to match a populated grid peer. */
.vaidya-dashboard-root .card:has(> [id] > .empty-state:only-child),
.vaidya-dashboard-root .card:has(> [id] > .section-title + .empty-state:last-child),
.vaidya-dashboard-root .card:has(> .empty-state:only-child){
  height:auto !important;
  min-height:0 !important;
  align-self:start;
}
