/* base */
:root{--cds-dur-slow:240ms;--cds-ease-out:cubic-bezier(.2,.8,.2,1);--cds-font-size-caption:12px;--color-ok:#238551;--color-warn:#C87619;--color-bad:#CD4246;--color-bg:#F6F7F9;--color-fg:#1C2127}
@media (prefers-color-scheme:dark){:root{--color-bg:#111418;--color-fg:#F6F7F9}}
html,body{margin:0;min-height:100%;background:var(--color-bg);color:var(--color-fg)}
body{-webkit-font-smoothing:antialiased}
#dash-root{min-height:100vh}
[hidden]{display:none!important}
.dash-skeleton{color:transparent!important;position:relative}
.dash-skeleton::after{content:"";position:absolute;left:0;top:50%;width:min(8rem,60%);height:.7em;transform:translateY(-50%);border-radius:999px;background:currentColor;background:rgba(127,140,155,.22)}
@media (prefers-reduced-motion:no-preference){.dash-skeleton::after{animation:dashPulse 1.2s ease-in-out infinite alternate}@keyframes dashPulse{from{opacity:.5}to{opacity:1}}}
.gx-foot{max-width:100%;margin-top:24px;font:12px/1.5 "GX Google Sans",system-ui,sans-serif;color:var(--color-fg-muted,#5F6B7C)}
.gx-foot a{color:inherit}

/* dashboard */
/* Layout: hero (title, summary, key figures) → tabs + filters → one question per tab. One spacing, type and radius scale throughout. */
.gx{
  --gx-sans:"GX Google Sans","Google Sans","Product Sans",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --r-sm:6px;--r-md:10px;--r-lg:14px;
  --s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:20px;--s6:24px;--s8:32px;
  --t-xs:12px;--t-sm:13px;--t-md:14px;--t-lg:16px;--t-xl:20px;--t-2xl:28px;--t-3xl:36px;
  --w-reg:400;--w-med:500;
  --gx-accent:var(--color-fg);--gx-accent-2:var(--color-fg-muted);
  --gx-line:var(--color-border-line);--gx-line-strong:color-mix(in srgb,var(--color-fg) 28%,var(--color-border-line));
  /* map palette — light */
  --gx-ocean:#F3F5F8;--gx-land:#E2E6EC;--gx-border:#FFFFFF;
  --gx-pv1:#EEF2F8;--gx-pv2:#DCE5F2;--gx-pv3:#C5D4EB;--gx-pv4:#ABC0E1;--gx-pv5:#90AAD5;--gx-pv6:#7794C8;
  --gx-lv1:#ECF6F3;--gx-lv2:#D6EDE7;--gx-lv3:#BBE0D6;--gx-lv4:#9DD0C3;--gx-lv5:#7FBFAF;--gx-lv6:#64AE9B;
  --gx-pl1:#F3EFF8;--gx-pl2:#E6DEF1;--gx-pl3:#D5C8E8;--gx-pl4:#C3B1DD;--gx-pl5:#AF99D1;--gx-pl6:#9C83C5;
  --gx-pr1:#8FCDBF;--gx-pr2:#C4E3D9;--gx-pr3:#F2EBDB;--gx-pr4:#F3CBAC;--gx-pr5:#EAA685;
  --gx-city:#C2611A;--gx-city-halo:#E08A3C;
  position:relative;font-family:var(--gx-sans);font-size:var(--t-md);line-height:1.5;color:var(--color-fg);
  display:flex;flex-direction:column;gap:var(--s8);-webkit-font-smoothing:antialiased}
.gx[data-gx-theme="dark"]{
  --gx-ocean:#0F141B;--gx-land:#1D242F;--gx-border:#0F141B;
  --gx-pv1:#1F2836;--gx-pv2:#253246;--gx-pv3:#2D3E58;--gx-pv4:#364B6B;--gx-pv5:#40597F;--gx-pv6:#4B6893;
  --gx-lv1:#1C2A2A;--gx-lv2:#213634;--gx-lv3:#284440;--gx-lv4:#30534D;--gx-lv5:#39635B;--gx-lv6:#43746A;
  --gx-pl1:#26222F;--gx-pl2:#2F293C;--gx-pl3:#3A324B;--gx-pl4:#463C5B;--gx-pl5:#52476C;--gx-pl6:#5F527E;
  --gx-pr1:#3E7A70;--gx-pr2:#2F4E49;--gx-pr3:#3A3832;--gx-pr4:#5E4637;--gx-pr5:#7A4E3A;
  --gx-city:#F0A050;--gx-city-halo:#F0A050}
.gx[data-gx-theme="dark"]{
  --gx-ocean:#0F141B;--gx-land:#1D242F;--gx-border:#0F141B;
  --gx-pv1:#1F2836;--gx-pv2:#253246;--gx-pv3:#2D3E58;--gx-pv4:#364B6B;--gx-pv5:#40597F;--gx-pv6:#4B6893;
  --gx-lv1:#1C2A2A;--gx-lv2:#213634;--gx-lv3:#284440;--gx-lv4:#30534D;--gx-lv5:#39635B;--gx-lv6:#43746A;
  --gx-pl1:#26222F;--gx-pl2:#2F293C;--gx-pl3:#3A324B;--gx-pl4:#463C5B;--gx-pl5:#52476C;--gx-pl6:#5F527E;
  --gx-pr1:#3E7A70;--gx-pr2:#2F4E49;--gx-pr3:#3A3832;--gx-pr4:#5E4637;--gx-pr5:#7A4E3A;
  --gx-city:#F0A050;--gx-city-halo:#F0A050}
.gx *{box-sizing:border-box}
.gx button,.gx select,.gx input{font-family:var(--gx-sans)}
.gx b,.gx strong{font-weight:var(--w-med)}

/* hero */
.gx-hero{display:flex;flex-direction:column;gap:var(--s6);padding:var(--s8) clamp(16px,3vw,32px);border:1px solid var(--gx-line);border-radius:var(--r-lg);
  background:radial-gradient(70% 120% at 100% 0%,color-mix(in srgb,var(--gx-accent) 10%,transparent),transparent 65%),var(--color-panel)}
.gx-head{display:flex;flex-direction:column;gap:var(--s2);max-width:820px}
.gx-eyebrow{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--t-sm);font-weight:var(--w-med);color:var(--color-fg-muted)}
.gx-eyebrow::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--gx-accent);flex:none}
.gx-head h1{margin:0;font-size:clamp(28px,4vw,var(--t-3xl));line-height:1.15;font-weight:var(--w-med);letter-spacing:-.01em;text-wrap:balance}
.gx-take{margin:0;font-size:var(--t-lg);line-height:1.6;color:var(--color-fg-muted)}
.gx-take b{color:var(--color-fg)}
.gx-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border:1px solid var(--gx-line);border-radius:var(--r-md);background:var(--color-bg);overflow:hidden}
@media (max-width:980px){.gx-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:520px){.gx-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}
.gx-kpi{display:flex;flex-direction:column;gap:var(--s1);padding:var(--s4) var(--s5);min-height:104px;border-right:1px solid var(--gx-line);border-bottom:1px solid var(--gx-line);margin:0 -1px -1px 0}
.gx-kpi .lab{font-size:var(--t-sm);font-weight:var(--w-med);color:var(--color-fg-muted)}
.gx-kpi .val{font-size:var(--t-2xl);font-weight:var(--w-med);line-height:1.2;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.gx-kpi .sub{font-size:var(--t-xs);color:var(--color-fg-muted);font-variant-numeric:tabular-nums}

/* tabs + filters */
.gx-nav{display:flex;flex-direction:column;gap:var(--s3)}
.gx-tabs{display:inline-flex;align-self:flex-start;max-width:100%;gap:2px;padding:3px;border:1px solid var(--gx-line);border-radius:var(--r-md);background:var(--color-panel);overflow-x:auto;scrollbar-width:none}
.gx-tabs button{all:unset;cursor:pointer;padding:var(--s2) var(--s4);border-radius:var(--r-sm);font-size:var(--t-md);font-weight:var(--w-med);color:var(--color-fg-muted);white-space:nowrap;transition:background var(--cds-dur-slow),color var(--cds-dur-slow)}
.gx-tabs button:hover{color:var(--gx-gblue);background:color-mix(in srgb,var(--gx-gblue) 8%,transparent)}
.gx-tabs button[aria-selected=true]{background:var(--gx-gblue);color:var(--gx-gblue-ink);box-shadow:0 2px 8px -3px color-mix(in srgb,var(--gx-gblue) 60%,transparent)}
.gx-tabs{border-color:color-mix(in srgb,var(--gx-gblue) 25%,var(--gx-line));background:color-mix(in srgb,var(--gx-gblue) 4%,var(--color-panel))}
.gx-filters{display:flex;flex-wrap:wrap;gap:var(--s2);align-items:stretch}
.gx-f{position:relative;display:flex;flex-direction:column;justify-content:center;min-width:8.5rem;max-width:100%;padding:6px 30px 6px var(--s3);border:1px solid var(--gx-line);border-radius:var(--r-sm);background:var(--color-panel);transition:border-color var(--cds-dur-slow),box-shadow var(--cds-dur-slow),background var(--cds-dur-slow)}
.gx-f span{font-size:var(--t-xs);color:var(--color-fg-muted);line-height:1.3;white-space:nowrap}
.gx-f select{appearance:none;-webkit-appearance:none;border:0;background:transparent;padding:0;outline:none;cursor:pointer;color:var(--color-fg);font-size:var(--t-sm);font-weight:var(--w-med);line-height:1.4;max-width:13rem;text-overflow:ellipsis}
.gx-f select option{color:var(--color-fg);background:var(--color-panel)}
.gx-f::after{content:"";position:absolute;right:13px;top:50%;width:6px;height:6px;border-right:1.5px solid var(--color-fg-muted);border-bottom:1.5px solid var(--color-fg-muted);transform:translateY(-70%) rotate(45deg);pointer-events:none}
.gx-f:hover{border-color:var(--gx-line-strong)}
.gx-f:focus-within{border-color:var(--color-fg);box-shadow:0 0 0 3px color-mix(in srgb,var(--color-fg) 10%,transparent)}
.gx-f.is-set{border-color:color-mix(in srgb,var(--gx-accent) 50%,var(--gx-line));background:color-mix(in srgb,var(--gx-accent) 7%,var(--color-panel))}
.gx-f.is-set span{color:var(--gx-accent)}
.gx-search{flex-direction:row;align-items:center;min-width:12rem;padding:0 var(--s3) 0 34px;min-height:46px}
.gx-search::after{right:auto;left:13px;width:8px;height:8px;border:1.5px solid var(--color-fg-muted);border-radius:50%;transform:translateY(-60%)}
.gx-search::before{content:"";position:absolute;left:22px;top:calc(50% + 3px);width:5px;height:1.5px;background:var(--color-fg-muted);transform:rotate(45deg);pointer-events:none}
.gx-search input{width:100%;border:0;background:transparent;outline:none;padding:0;color:var(--color-fg);font-size:var(--t-sm)}
.gx-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 var(--s4);border:1px solid var(--gx-line);border-radius:var(--r-sm);background:transparent;color:var(--color-fg);font-size:var(--t-sm);font-weight:var(--w-med);cursor:pointer;white-space:nowrap}
.gx-btn:hover{background:var(--color-panel);border-color:var(--gx-line-strong)}
.gx-chip{display:inline-flex;align-items:center;gap:var(--s2);min-height:46px;padding:0 var(--s3);border:0;border-radius:var(--r-sm);background:var(--color-fg);color:var(--color-bg);font-size:var(--t-sm);font-weight:var(--w-med);cursor:pointer;text-decoration:none}
.gx-dhead .gx-chip,.gx-dhead .gx-btn{min-height:30px}
.gx-btn:focus-visible,.gx-chip:focus-visible,.gx-tabs button:focus-visible,.gx-seg button:focus-visible,.gx-layers button:focus-visible{outline:2px solid var(--color-fg);outline-offset:2px}

/* panels, insight cards, cards */
.gx-panel{display:flex;flex-direction:column;gap:var(--s5)}
.gx-intro{display:flex;flex-direction:column;gap:var(--s1);max-width:760px}
.gx-intro h2{margin:0;font-size:var(--t-xl);font-weight:var(--w-med);letter-spacing:-.005em}
.gx-intro p{margin:0;font-size:var(--t-md);color:var(--color-fg-muted)}
.gx-intro p b{color:var(--color-fg)}
.gx-ins{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,13rem),1fr));gap:var(--s3)}
.gx-in{display:flex;flex-direction:column;gap:var(--s1);min-height:116px;padding:var(--s4) var(--s5);border:1px solid var(--gx-line);border-radius:var(--r-md);background:var(--color-panel)}
.gx-in .big{font-size:var(--t-2xl);font-weight:var(--w-med);line-height:1.2;letter-spacing:-.01em;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
.gx-in .txt{font-size:var(--t-sm);color:var(--color-fg-muted)}
.gx-in .txt b{color:var(--color-fg)}
.gx-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s4)}
@media (max-width:860px){.gx-grid{grid-template-columns:minmax(0,1fr)}}
.gx-mapgrid{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,1fr);gap:var(--s4)}
@media (max-width:860px){.gx-mapgrid{grid-template-columns:minmax(0,1fr)}}
.gx-wide{grid-column:1/-1}
.gx-card{display:flex;flex-direction:column;gap:var(--s3);min-width:0;padding:var(--s5);border:1px solid var(--gx-line);border-radius:var(--r-md);background:var(--color-panel);transition:border-color var(--cds-dur-slow)}
.gx-card:hover{border-color:var(--gx-line-strong)}
.gx-ch{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:var(--s3)}
.gx-ch>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.gx-ch>.gx-seg,.gx-ch>.gx-legend{flex-direction:row;flex-wrap:wrap}
.gx-seg{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;max-width:100%}
.gx-seg button{white-space:nowrap}
.gx-card h3{margin:0;font-size:var(--t-lg);font-weight:var(--w-med)}
.gx-note{margin:0;font-size:var(--t-xs);color:var(--color-fg-muted);line-height:1.5}
.gx-dpanel{border-color:var(--color-fg)}

/* charts */
.gx-chart{position:relative;width:100%;min-height:220px}
.gx-chart svg{display:block;overflow:visible}
.gx-chart text{fill:var(--color-fg-muted);font-family:var(--gx-sans);font-size:var(--t-xs)}
.gx-chart text.strong{fill:var(--color-fg)}
.gx-chart text.mono{font-size:var(--t-xs)}
.gx-chart text.ctrylab{fill:var(--color-fg);font-weight:var(--w-med);letter-spacing:.01em}
.gx-chart text.citylab{fill:var(--color-fg);font-weight:var(--w-med)}
.gx td.terms{font-size:var(--t-xs);color:var(--color-fg-muted);white-space:nowrap}
.gx-seg{display:inline-flex;flex-wrap:wrap;gap:2px;padding:3px;border:1px solid var(--gx-line);border-radius:var(--r-md);background:var(--color-bg);align-self:flex-start}
.gx-seg button{padding:5px var(--s3);border:0;border-radius:var(--r-sm);background:transparent;color:var(--color-fg-muted);font-size:var(--t-sm);font-weight:var(--w-med);cursor:pointer}
.gx-seg button[aria-pressed=true]{background:var(--color-fg);color:var(--color-bg)}
.gx-legend{display:flex;flex-wrap:wrap;gap:var(--s1) var(--s4);font-size:var(--t-xs);color:var(--color-fg-muted);align-items:center}
.gx-legend span{display:inline-flex;align-items:center;gap:6px}
.gx-legend i{display:inline-block;width:10px;height:10px;border-radius:3px}
.gx-legend .grad b{display:inline-block;width:96px;height:8px;border-radius:4px}
.gx-legend .steps{gap:var(--s2)}
.gx-legend .steps .sb{display:inline-flex;flex-direction:column;gap:2px}
.gx-legend .steps .sw6{display:flex;gap:2px}
.gx-legend .steps .sw6 i{width:30px;height:8px;border-radius:3px}
.gx-legend .steps .lb6{display:flex;gap:2px;font-variant-numeric:tabular-nums;font-size:11px}
.gx-legend .steps .lb6 em{width:30px;font-style:normal;text-align:left;white-space:nowrap;overflow:visible}
.gx-tip{position:absolute;z-index:5;max-width:300px;padding:var(--s2) var(--s3);border:1px solid var(--cds-border);border-radius:var(--r-md);background:var(--cds-surface-popover);box-shadow:var(--cds-shadow-popover);font-size:var(--t-xs);line-height:1.5;pointer-events:none}
.gx-tip .t{margin-bottom:2px;color:var(--cds-text-secondary);font-weight:var(--w-med)}

/* map */
#map{border-radius:var(--r-md);overflow:hidden}
.gx-maphead{display:flex;flex-direction:column;gap:var(--s3)}
.gx-mapttl{display:flex;flex-direction:column;gap:2px}
.gx-layers{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--s3) var(--s5)}
.gx-lgrp{display:flex;flex-direction:column;gap:6px;min-width:0;max-width:100%}
.gx-lgl{font-size:var(--t-xs);font-weight:var(--w-med);color:var(--color-fg-muted)}
.gx-lrow{display:flex;gap:6px;padding:1px;overflow-x:auto;scrollbar-width:none}
.gx-layers button{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;align-items:center;column-gap:var(--s2);min-width:7.5rem;padding:var(--s2) var(--s3);text-align:left;border:1px solid var(--gx-line);border-radius:var(--r-sm);background:var(--color-bg);color:var(--color-fg);cursor:pointer;transition:border-color var(--cds-dur-slow),background var(--cds-dur-slow)}
.gx-layers button .sw{grid-row:1/3;width:10px;height:10px;border-radius:3px}
.gx-layers button .sw-ramp{background:linear-gradient(90deg,var(--gx-pr1),var(--gx-pr3),var(--gx-pr5))}
.gx-layers button .l{font-size:var(--t-xs);color:var(--color-fg-muted);white-space:nowrap}
.gx-layers button .v{font-size:var(--t-lg);font-weight:var(--w-med);line-height:1.3;white-space:nowrap;font-variant-numeric:tabular-nums}
.gx-layers button:hover{border-color:var(--gx-line-strong)}
.gx-layers button[aria-checked=true]{border-color:var(--color-fg);background:var(--color-panel);box-shadow:inset 0 0 0 1px var(--color-fg)}
.gx-layers button[aria-checked=true] .l{color:var(--color-fg)}
.gx-zoom{position:absolute;top:var(--s3);right:var(--s3);display:flex;flex-direction:column;border:1px solid var(--gx-line);border-radius:var(--r-sm);background:var(--color-panel);overflow:hidden}
.gx-zoom button{width:32px;height:32px;border:0;border-bottom:1px solid var(--gx-line);background:transparent;color:var(--color-fg);font-size:var(--t-lg);line-height:1;cursor:pointer}
.gx-zoom button:last-child{border-bottom:0}
.gx-zoom button:hover{background:var(--color-bg)}
.gx-zoom button:focus-visible{outline:2px solid var(--color-fg);outline-offset:-2px}

/* ranking */
.gx-rank{display:flex;flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;counter-reset:r}
.gx-rank li{counter-increment:r;display:grid;grid-template-columns:1.5rem minmax(0,1fr) auto;grid-template-rows:auto auto;column-gap:var(--s2);align-items:center;padding:6px var(--s2);border-radius:var(--r-sm);font-size:var(--t-sm);cursor:pointer}
.gx-rank li::before{content:counter(r);grid-row:1/3;font-size:var(--t-xs);color:var(--color-fg-muted);font-variant-numeric:tabular-nums}
.gx-rank li:hover,.gx-rank li.on{background:var(--color-bg)}
.gx-rank li:focus-visible{outline:2px solid var(--color-fg)}
.gx-rank .nm{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-weight:var(--w-med)}
.gx-rank small{font-size:var(--t-xs);font-weight:var(--w-reg);color:var(--color-fg-muted)}
.gx-rank .v{font-size:var(--t-sm);font-variant-numeric:tabular-nums}
.gx-rank .bar{grid-column:2/4;height:4px;margin-top:var(--s1);border-radius:2px;background:var(--gx-line);overflow:hidden}
.gx-rank .bar i{display:block;height:100%;border-radius:2px}

/* tables */
.gx-tablebox{max-height:560px;overflow:auto;border-top:1px solid var(--gx-line)}
.gx table{width:100%;border-collapse:collapse;font-size:var(--t-sm);font-variant-numeric:tabular-nums}
.gx th{position:sticky;top:0;z-index:1;padding:0;text-align:left;background:var(--color-panel);border-bottom:1px solid var(--gx-line)}
.gx th>button,.gx th>span{all:unset;display:block;padding:10px var(--s3);white-space:nowrap;cursor:pointer;font-size:var(--t-xs);font-weight:var(--w-med);color:var(--color-fg-muted)}
.gx th>span{cursor:default}
.gx th[aria-sort=ascending]>button,.gx th[aria-sort=descending]>button{color:var(--color-fg)}
.gx th[aria-sort=ascending]>button::after{content:" ↑"}
.gx th[aria-sort=descending]>button::after{content:" ↓"}
.gx th>button:focus-visible{outline:2px solid var(--color-fg)}
.gx td{padding:9px var(--s3);border-bottom:1px solid var(--gx-line);vertical-align:top}
.gx td:first-child{font-weight:var(--w-med)}
.gx td.n,.gx th.n,.gx th.n>button,.gx th.n>span{text-align:right}
.gx td.city{max-width:14rem;color:var(--color-fg-muted)}
.gx tbody tr{cursor:pointer}
.gx tbody tr:hover,.gx tbody tr.on{background:var(--color-bg)}
.gx tbody tr:focus-visible{outline:2px solid var(--color-fg);outline-offset:-2px}
.gx .pill{display:inline-flex;align-items:center;height:26px;padding:0 var(--s2);border:1px solid var(--gx-line);border-radius:var(--r-sm);background:var(--color-panel);color:var(--color-fg);font-size:var(--t-xs);white-space:nowrap}
.gx button.pill:hover{border-color:var(--color-fg)}
.gx .dot{display:inline-block;flex:none;width:8px;height:8px;margin-right:7px;border-radius:50%;vertical-align:middle}
@media (max-width:640px){.gx .hide-narrow{display:none}}

/* profile */
.gx-dhead{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:var(--s3)}
.gx-dhead h3{font-size:var(--t-xl);font-weight:var(--w-med)}
.gx-detail{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,17rem),1fr));gap:var(--s4) var(--s6);font-size:var(--t-sm);line-height:1.6}
.gx{--gx-gblue:#1A73E8;--gx-gblue-ink:#FFFFFF}
.gx[data-gx-theme="dark"]{--gx-gblue:#8AB4F8;--gx-gblue-ink:#0B1A33}
.gx[data-gx-theme="dark"]{--gx-gblue:#8AB4F8;--gx-gblue-ink:#0B1A33}
.gx-detail h4,.gx-h4{margin:0 0 6px;font-size:var(--t-md)!important;font-weight:var(--w-med)!important;color:var(--gx-gblue)!important}
.gx-detail p{margin:0;white-space:pre-line;overflow-wrap:anywhere}

/* states */
.gx-fail{display:flex;align-items:center;justify-content:center;gap:var(--s2);min-height:inherit;font-size:var(--t-xs);color:var(--color-fg-muted)}
.gx-fail::before{content:"";width:.375rem;height:.375rem;border-radius:50%;background:var(--color-bad)}
.gx [data-dash-source-state=refreshing]{opacity:.5;transition:opacity var(--cds-dur-slow)}
.gx [data-dash-source-state=empty]{color:transparent}
@media (prefers-reduced-motion:no-preference){.gx-panel:not([hidden]){animation:gxIn var(--cds-dur-slow) var(--cds-ease-out)}@keyframes gxIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}}

/* providers in view */
.gx-pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,16rem),1fr));gap:var(--s3)}
.gx-pc{all:unset;box-sizing:border-box;display:flex;flex-direction:column;gap:var(--s2);padding:var(--s4);border:1px solid var(--gx-line);border-radius:var(--r-md);background:var(--color-bg);cursor:pointer;min-width:0;transition:border-color var(--cds-dur-slow),transform var(--cds-dur-slow)}
.gx-pc:hover{border-color:var(--gx-line-strong);transform:translateY(-1px)}
.gx-pc:focus-visible{outline:2px solid var(--color-fg);outline-offset:2px}
.gx-pc .pn{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--s3)}
.gx-pc .who{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.gx-pc .who>b{height:20px;line-height:20px}
.gx-pc .who .meta{line-height:1.25}
.gx-pc .hq{flex:none;display:flex;flex-direction:column;align-items:flex-end;gap:4px;max-width:40%;font-size:var(--t-xs);line-height:1.25;color:var(--color-fg-muted);text-align:right;padding-top:0}
.gx-pc .hq .flag{width:20px;height:15px;margin:2.5px 0}
.gx-pc .pn b{font-size:var(--t-md);font-weight:var(--w-med);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.gx-pc .tag{flex:none;font-size:11px;padding:1px 6px;border-radius:var(--r-sm);border:1px solid var(--gx-line);color:var(--color-fg-muted)}
.gx-pc .tag.here{border-color:color-mix(in srgb,var(--gx-city) 50%,var(--gx-line));color:var(--gx-city)}
.gx-pc .meta{display:flex;align-items:center;gap:var(--s2);min-width:0;font-size:var(--t-xs);color:var(--color-fg-muted);padding-left:26px}
.gx-pc .meta .cat{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.gx-pc .stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s2);padding-top:var(--s2);border-top:1px solid var(--gx-line)}
.gx-pc .stats span{display:flex;flex-direction:column;min-width:0}
.gx-pc .stats em{font-style:normal;font-size:11px;color:var(--color-fg-muted)}
.gx-pc .stats strong{font-size:var(--t-sm);font-weight:var(--w-med);font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gx-pc .cities{font-size:var(--t-xs);color:var(--color-fg-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#plist-more{align-self:center}
.gx .flag{display:inline-block;flex:none;width:16px;height:12px;margin-right:6px;border-radius:2px;object-fit:cover;vertical-align:-1px;box-shadow:0 0 0 1px var(--gx-line)}
.gx-in .big .flag{width:24px;height:18px;margin-right:var(--s2);vertical-align:-2px;border-radius:3px}
.gx .gx-logo{display:inline-flex;align-items:center;justify-content:center;flex:none;width:18px;height:18px;margin-right:8px;border-radius:4px;overflow:hidden;background:#fff;box-shadow:0 0 0 1px var(--gx-line);vertical-align:-4px;font-size:8px;font-weight:600;letter-spacing:.02em;color:#1C2127;line-height:1}
.gx .gx-logo img{width:100%;height:100%;object-fit:contain;display:block}
.gx .gx-logo.none{background:var(--gx-sel)}
.gx[data-gx-theme="dark"] .gx-logo.none{color:#F6F7F9}
.gx .gx-logo.sm{width:16px;height:16px;margin-right:7px;vertical-align:-3px;font-size:7px}
.gx .gx-logo.lg{width:28px;height:28px;margin-right:10px;border-radius:6px;vertical-align:-7px;font-size:11px}
.gx-pc .pn b{display:inline-flex;align-items:center;min-width:0}
.gx-models{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left}
.gx-models li{margin:0;padding:0;text-align:left}
.gx-models small{font-size:var(--t-xs);color:var(--color-fg-muted)}
.gx-linkbtn{margin-top:var(--s2);padding:0;border:0;background:none;color:var(--color-fg-muted);font-size:var(--t-xs);text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.gx-linkbtn:hover{color:var(--color-fg)}
/* hero highlight */
.gx-hero{border-color:color-mix(in srgb,var(--gx-gblue) 32%,var(--gx-line));
  background:radial-gradient(60% 140% at 100% 0%,color-mix(in srgb,var(--gx-gblue) 22%,transparent),transparent 70%),
             radial-gradient(50% 120% at 0% 100%,color-mix(in srgb,var(--gx-gblue) 10%,transparent),transparent 70%),
             linear-gradient(180deg,color-mix(in srgb,var(--gx-gblue) 7%,var(--color-panel)),var(--color-panel));
  box-shadow:0 10px 30px -18px color-mix(in srgb,var(--gx-gblue) 55%,transparent)}
.gx-hero .gx-eyebrow{color:var(--gx-gblue)}
.gx-hero .gx-eyebrow::before{background:var(--gx-gblue)}
.gx-hero .gx-kpis{background:var(--color-panel);border-color:color-mix(in srgb,var(--gx-gblue) 22%,var(--gx-line))}
.gx-hero .gx-kpi .lab{color:var(--gx-gblue)}
.gx-chart path.cpath{transition:fill var(--cds-dur-slow),fill-opacity var(--cds-dur-slow)}
.gx{--gx-sel:#AECBFA;--gx-hov:#D2E3FC}
.gx[data-gx-theme="dark"]{--gx-sel:#2B4F8A;--gx-hov:#22395F}
.gx[data-gx-theme="dark"]{--gx-sel:#2B4F8A;--gx-hov:#22395F}
.gx-chart path.cpath.has:hover{fill:var(--gx-hov);fill-opacity:1}

/* ===== Palantir-style theme: slate grays, flat panels, thin borders, sharp corners ===== */
.gx{--r-sm:3px;--r-md:4px;--r-lg:6px;
  --color-bg:#F6F7F9;--color-panel:#FFFFFF;--color-fg:#1C2127;--color-fg-muted:#5F6B7C;--color-border-line:#DCE0E5;
  --cds-chart-grid:#E5E8EB;--cds-chart-axis:#ABB3BF;--cds-chart-muted:#ABB3BF;--cds-border:#C5CBD3;--cds-text-secondary:#5F6B7C;
  --cds-surface-popover:#FFFFFF;--cds-shadow-popover:0 4px 14px rgba(17,20,24,.14);
  --gx-gblue:#2D72D2;--gx-gblue-ink:#FFFFFF;--gx-sel:#BBD7FA;--gx-hov:#DCEAFB;
  --gx-line-strong:#ABB3BF;--gx-ocean:#EDF0F3;--gx-land:#D3D8DE;--gx-border:#EDF0F3;
  background:var(--color-bg);color:var(--color-fg);padding:var(--s6) max(16px,env(safe-area-inset-right,0px)) var(--s8) max(16px,env(safe-area-inset-left,0px));min-height:100%}
.gx[data-gx-theme="dark"]{
  --color-bg:#111418;--color-panel:#1C2127;--color-fg:#F6F7F9;--color-fg-muted:#ABB3BF;--color-border-line:#2F343C;
  --cds-chart-grid:#252A31;--cds-chart-axis:#5F6B7C;--cds-chart-muted:#5F6B7C;--cds-border:#404854;--cds-text-secondary:#ABB3BF;
  --cds-surface-popover:#252A31;--cds-shadow-popover:0 6px 18px rgba(0,0,0,.5);
  --gx-gblue:#4C90F0;--gx-gblue-ink:#111418;--gx-sel:#215DB0;--gx-hov:#184A90;
  --gx-line-strong:#5F6B7C;--gx-ocean:#161A1F;--gx-land:#2F343C;--gx-border:#161A1F;color-scheme:dark}
#dash-root{--dash-gutter:0}
.gx-hero{background:var(--color-panel)!important;box-shadow:none!important;border:1px solid var(--color-border-line)!important;border-top:3px solid var(--gx-gblue)!important;position:relative}
.gx-head h1{font-weight:600;letter-spacing:-.02em}
.gx-hero .gx-kpis{background:var(--color-bg)!important;border-color:var(--color-border-line)!important}
.gx-hero .gx-kpi .lab{color:var(--color-fg-muted)!important}
.gx-kpi .val{font-weight:600}
.gx-card,.gx-in,.gx-f,.gx-btn,.gx-layers button,.gx-pc{box-shadow:none}
.gx-card:hover{border-color:var(--gx-line-strong)}
.gx-in{background:var(--color-panel)}
.gx-in .big{font-weight:600}
.gx-tabs{background:var(--color-panel)!important;border-color:var(--color-border-line)!important}
.gx-tabs button[aria-selected=true]{box-shadow:none!important}
.gx-intro h2,.gx-card h3{font-weight:600}
.gx-f,.gx-search{background:var(--color-panel)}
.gx-f.is-set{background:color-mix(in srgb,var(--gx-gblue) 10%,var(--color-panel));border-color:var(--gx-gblue)}
.gx-f.is-set span{color:var(--gx-gblue)}
.gx-chip{background:var(--gx-gblue);color:var(--gx-gblue-ink)}
.gx-layers button[aria-checked=true]{border-color:var(--gx-gblue);box-shadow:inset 0 0 0 1px var(--gx-gblue);background:color-mix(in srgb,var(--gx-gblue) 8%,var(--color-panel))}
.gx-seg button[aria-pressed=true]{background:var(--gx-gblue);color:var(--gx-gblue-ink)}
.gx-rank li.on,.gx tbody tr.on{background:color-mix(in srgb,var(--gx-gblue) 10%,transparent)}
.gx-dpanel{border-color:var(--gx-gblue)}
.gx-tip{background:var(--cds-surface-popover);color:var(--color-fg)}
.gx select option{background:var(--color-panel);color:var(--color-fg)}
/* theme switch */
.gx-theme{position:absolute;top:var(--s4);right:var(--s4);display:inline-flex;align-items:center;gap:var(--s2);height:32px;padding:0 var(--s3);border:1px solid var(--color-border-line);border-radius:var(--r-sm);background:var(--color-bg);color:var(--color-fg);font-size:var(--t-sm);font-weight:var(--w-med);cursor:pointer}
.gx-theme:hover{border-color:var(--gx-line-strong)}
.gx-theme:focus-visible{outline:2px solid var(--gx-gblue);outline-offset:2px}
.gx-theme .ic{position:relative;width:14px;height:14px;border-radius:50%;background:currentColor;flex:none}
.gx[data-gx-theme="light"] .gx-theme .ic{box-shadow:inset -5px -2px 0 0 var(--color-bg)}
.gx[data-gx-theme="dark"] .gx-theme .ic{width:10px;height:10px;box-shadow:0 0 0 3px var(--color-bg),0 0 0 4.5px currentColor}
.gx-head{padding-right:9rem}
@media (max-width:560px){.gx-head{padding-right:0;padding-top:var(--s8)}}

/* ===== v3 design layer: icons, sticky navigation, mobile-first controls ===== */
.gx .i{width:16px;height:16px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;vertical-align:-3px}
.gx{scroll-padding-top:120px}

/* hero */
.gx-hero{position:relative;overflow:hidden;background:
  radial-gradient(1100px 380px at 100% -10%,color-mix(in srgb,var(--gx-gblue) 9%,transparent),transparent 60%),var(--color-panel)!important}
.gx-hero::after{content:"";position:absolute;inset:auto -60px -120px auto;width:340px;height:340px;border-radius:50%;pointer-events:none;
  background:radial-gradient(circle,color-mix(in srgb,var(--gx-gblue) 10%,transparent),transparent 70%)}
.gx-head,.gx-kpis{position:relative;z-index:1}
.gx-theme{z-index:2}
.gx-take{max-width:62ch}
.gx-kpi{position:relative;transition:background var(--cds-dur-slow)}
.gx-kpi:hover{background:color-mix(in srgb,var(--gx-gblue) 4%,var(--color-panel))}
.gx-kpi .kic{position:absolute;top:var(--s4);right:var(--s4);display:grid;place-items:center;width:28px;height:28px;border-radius:var(--r-md);
  color:var(--gx-gblue);background:color-mix(in srgb,var(--gx-gblue) 10%,transparent)}
.gx-kpi .lab{padding-right:34px}
.gx-theme{gap:6px}
.gx-theme .i-sun{display:none}
.gx[data-gx-theme="dark"] .gx-theme .i-sun{display:block}
.gx[data-gx-theme="dark"] .gx-theme .i-moon{display:none}

/* sticky nav: tabs + filters stay in reach while scrolling */
.gx-nav{position:sticky;top:0;z-index:20;margin:0 calc(-1 * var(--s3));padding:var(--s3);
  background:color-mix(in srgb,var(--color-bg) 86%,transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
  border-bottom:1px solid transparent;transition:border-color .2s,box-shadow .2s}
.gx-nav.stuck{border-bottom-color:var(--gx-line);box-shadow:0 8px 20px -18px rgba(17,20,24,.5)}
.gx-tabs button{display:inline-flex;align-items:center;gap:var(--s2)}
.gx-tabs button .i{opacity:.85}
.gx-f>span{display:inline-flex;align-items:center;gap:5px}
.gx-f>span .i{width:13px;height:13px;color:var(--gx-gblue);opacity:.9}
.gx-f.is-set{border-color:color-mix(in srgb,var(--gx-gblue) 55%,var(--gx-line))!important;background:color-mix(in srgb,var(--gx-gblue) 5%,var(--color-panel))!important}
.gx-search::before,.gx-search::after{display:none!important}
.gx-search{padding-left:var(--s3)!important;gap:var(--s2)}
.gx-search .gx-sic{color:var(--color-fg-muted)}
.gx-search:focus-within{border-color:var(--gx-gblue)!important;box-shadow:0 0 0 3px color-mix(in srgb,var(--gx-gblue) 18%,transparent)}
.gx-f:focus-within{border-color:var(--gx-gblue)}
#f-reset{gap:6px}
.gx-mbar,.gx-sheethead,.gx-done,.gx-scrim{display:none}

/* section intros get an icon badge */
.gx-intro{display:grid;grid-template-columns:auto 1fr;column-gap:var(--s3);align-items:center;max-width:820px}
.gx-intro h2{grid-column:2}
.gx-intro p{grid-column:1/-1;margin-top:var(--s1)!important}
.gx-ib{display:grid;place-items:center;width:34px;height:34px;border-radius:var(--r-md);color:var(--gx-gblue-ink);background:var(--gx-gblue)}
.gx-ib .i{width:18px;height:18px}

/* insight cards: icon eyebrow, gentle lift */
.gx-in{position:relative;transition:transform .18s var(--cds-ease-out),border-color .18s,box-shadow .18s}
.gx-in:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--gx-gblue) 35%,var(--gx-line));box-shadow:0 10px 24px -18px rgba(17,20,24,.45)}
.gx-in .gx-eyebrow::before{display:none}
.gx-in .gx-eyebrow .i{width:15px;height:15px;color:var(--gx-gblue)}

/* cards */
.gx-card{transition:border-color .18s,box-shadow .18s}
.gx-card:hover{box-shadow:0 12px 28px -24px rgba(17,20,24,.5)}
.gx-pc{transition:transform .18s var(--cds-ease-out),border-color .18s,box-shadow .18s!important}
.gx-pc:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--gx-gblue) 40%,var(--gx-line))!important;box-shadow:0 12px 24px -20px rgba(17,20,24,.5)!important}
.gx-pc .who>b{height:auto!important;line-height:20px!important;align-items:flex-start!important}
.gx-pc .pn b{white-space:normal!important;display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.gx-pc .pn b .gx-logo{float:left;margin-top:1px}

/* back to top */
.gx-top{position:fixed;right:20px;bottom:20px;z-index:30;display:grid;place-items:center;width:44px;height:44px;border:1px solid var(--gx-line);border-radius:50%;
  background:var(--color-panel);color:var(--color-fg);cursor:pointer;box-shadow:0 8px 20px -10px rgba(17,20,24,.45);transition:transform .2s,opacity .2s}
.gx-top:hover{transform:translateY(-2px);color:var(--gx-gblue)}
.gx-top .i{width:18px;height:18px}

/* desktop: one compact filter row so the sticky bar stays short */
@media (min-width:721px){
  .gx-filters{flex-wrap:wrap}
  .gx-filters .gx-f{flex:1 1 9rem;min-width:8.5rem}
  .gx-filters .gx-f:has(#f-family){flex:1.6 1 13rem}
  .gx-filters .gx-search{flex:1.3 1 12rem;min-height:44px}
  .gx-f select{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;max-width:100%}
  #f-reset{flex:none;min-height:44px}
  #f-chips:not([hidden]){display:flex!important;flex-wrap:wrap;gap:var(--s2);flex-basis:100%}
}
/* ---------- tablet ---------- */
@media (max-width:980px){
  .gx-nav{margin:0 calc(-1 * var(--s2));padding:var(--s2)}
}

/* ---------- phone ---------- */
@media (max-width:720px){
  .gx{gap:var(--s4)!important;padding-bottom:84px}
  .gx-hero{padding:var(--s5) var(--s4)!important;gap:var(--s4)!important}
  .gx-head{padding:0!important;padding-right:0!important}
  .gx-head h1{font-size:28px!important}
  .gx-take{font-size:var(--t-md)!important;line-height:1.55!important}
  .gx-theme{top:var(--s4)!important;right:var(--s4)!important;width:36px;height:36px!important;padding:0!important;justify-content:center;border-radius:50%!important}
  .gx-theme #theme-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .gx-eyebrow{padding-right:44px}
  /* KPIs become a swipeable strip */
  .gx-kpis{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;border:0!important;background:transparent!important;gap:var(--s2);margin:0 calc(-1 * var(--s4));padding:0 var(--s4) 2px;border-radius:0!important}
  .gx-kpis::-webkit-scrollbar{display:none}
  .gx-kpi{flex:0 0 44%;min-height:0!important;scroll-snap-align:start;border:1px solid var(--gx-line)!important;border-radius:var(--r-md);background:var(--color-panel);padding:var(--s3)!important}
  .gx-kpi .kic{top:var(--s3);right:var(--s3);width:24px;height:24px}
  .gx-kpi .kic .i{width:14px;height:14px}
  .gx-kpi .val{font-size:22px!important}
  /* tabs become a bottom navigation bar */
  .gx-tabs{position:fixed;left:0;right:0;bottom:0;z-index:40;display:grid!important;grid-template-columns:repeat(5,1fr);gap:0;max-width:none!important;margin:0;padding:6px 6px calc(6px + env(safe-area-inset-bottom))!important;
    border:0!important;border-top:1px solid var(--color-border-line)!important;border-radius:0!important;background:color-mix(in srgb,var(--color-panel) 92%,transparent)!important;
    -webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 -8px 24px -20px rgba(17,20,24,.5)}
  .gx-tabs button{flex-direction:column;gap:3px!important;padding:6px 2px!important;border-radius:10px!important;font-size:11px!important;text-align:center;justify-content:center}
  .gx-tabs button .i{width:21px;height:21px;opacity:1}
  .gx-tabs button[aria-selected=true]{background:transparent!important;color:var(--gx-gblue)!important}
  .gx-tabs button[aria-selected=true] .i{background:color-mix(in srgb,var(--gx-gblue) 14%,transparent);border-radius:999px;padding:3px 14px;width:22px;height:22px;box-sizing:content-box;margin:-3px 0}
  /* filters collapse into a toolbar + bottom sheet */
  .gx-nav{gap:0!important;-webkit-backdrop-filter:none;backdrop-filter:none;background:var(--color-bg);margin:0 calc(-1 * var(--s3));padding:var(--s2) var(--s3)}
  .gx-mbar{display:flex;gap:var(--s2)}
  .gx-ftoggle{flex:none;gap:6px;min-height:44px!important}
  .gx-ftoggle .n{display:inline-grid;place-items:center;min-width:18px;height:18px;padding:0 5px;border-radius:9px;background:var(--gx-gblue);color:var(--gx-gblue-ink);font-size:11px;font-weight:600}
  .gx-ftoggle .n[hidden]{display:none}
  .gx-filters{display:none!important}
  .gx-filters.open{display:grid!important;grid-template-columns:1fr 1fr;gap:var(--s2);position:fixed;left:0;right:0;bottom:0;z-index:60;max-height:86vh;overflow:auto;
    padding:var(--s3) var(--s4) calc(var(--s4) + env(safe-area-inset-bottom));background:var(--color-panel);border-radius:16px 16px 0 0;
    box-shadow:0 -16px 40px -12px rgba(17,20,24,.45);animation:gxSheet .22s var(--cds-ease-out)}
  @keyframes gxSheet{from{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}
  .gx-filters.open .gx-sheethead{display:flex;grid-column:1/-1;align-items:center;justify-content:space-between;padding:var(--s1) 0 var(--s2)}
  .gx-filters.open .gx-sheethead b{font-size:var(--t-lg);font-weight:600}
  .gx-filters.open .gx-sheethead::before{content:"";position:absolute;left:50%;top:6px;width:36px;height:4px;margin-left:-18px;border-radius:2px;background:var(--gx-line-strong,#C5CBD3)}
  .gx-filters.open .gx-f{min-width:0!important;width:auto}
  .gx-filters.open .gx-search{grid-column:1/-1}
  .gx-filters.open #f-chips{display:flex!important;grid-column:1/-1;flex-wrap:wrap;gap:var(--s2)}
  .gx-filters.open #f-chips[hidden]{display:none!important}
  .gx-filters.open .gx-done{display:inline-flex;background:var(--gx-gblue);color:var(--gx-gblue-ink);border-color:var(--gx-gblue)}
  .gx-scrim:not([hidden]){display:block;position:fixed;inset:0;z-index:55;background:rgba(17,20,24,.42)}
  .gx-ibtn{all:unset;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;cursor:pointer;color:var(--color-fg-muted)}
  .gx-ibtn:hover{background:var(--color-bg)}
  .gx-mbar .gx-msearch{flex:1}
  /* swipeable insight cards */
  .gx-ins{display:flex!important;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;gap:var(--s2)!important;margin:0 calc(-1 * var(--s3));padding:2px var(--s3) 4px}
  .gx-ins::-webkit-scrollbar{display:none}
  .gx-in{flex:0 0 78%;min-height:0!important;scroll-snap-align:start;padding:var(--s4)!important}
  .gx-in .big{font-size:24px!important}
  .gx-intro h2{font-size:var(--t-lg)!important}
  .gx-intro p{font-size:var(--t-sm)!important}
  .gx-ib{width:30px;height:30px}
  .gx-card{padding:var(--s4)!important}
  .gx-layers{flex-wrap:nowrap!important;overflow-x:auto;scrollbar-width:none;margin:0 calc(-1 * var(--s4));padding:0 var(--s4)}
  .gx-layers::-webkit-scrollbar{display:none}
  .gx-lgrp{flex:none}
  .gx-layers button{min-width:7rem!important}
  .gx-pgrid{grid-template-columns:1fr!important}
  .gx-top{bottom:calc(80px + env(safe-area-inset-bottom));right:14px;width:40px;height:40px}
  .gx-seg{max-width:100%;overflow-x:auto}
}

/* ===== touch & iOS fixes ===== */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
.gx button,.gx select,.gx a,.gx label{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
#map svg{touch-action:pan-x pan-y pinch-zoom}
@media (max-width:720px){
  .gx input,.gx select{font-size:16px!important}   /* below 16px iOS zooms the page on focus */
  .gx-f select{line-height:1.3}
  .gx-filters.open{max-height:calc(100dvh - 48px);overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
  .gx-kpis,.gx-ins,.gx-layers,.gx-seg{-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
}
@media (hover:none){
  .gx-pc:hover,.gx-in:hover,.gx-kpi:hover,.gx-top:hover{transform:none!important;box-shadow:none!important}
  .gx-card:hover{box-shadow:none}
}
/* older Safari without color-mix(): keep surfaces solid */
@supports not (color:color-mix(in srgb,red 50%,blue)){
  .gx-nav{background:var(--color-bg)}
  .gx-tabs{background:var(--color-panel)!important}
  .gx-kpi .kic,.gx-ftoggle .n{background:var(--color-bg)}
  .gx-tabs button[aria-selected=true] .i{background:var(--color-bg)}
}
