:root { --white:#f2ede4; --w70:#c8c5be; --w40:#969a9e; --border:#363b42; --bdr2:#30353b; --panel-bg:#1c1f23; --tile-bg:#161f2b; }
html, body { background:#141619; color:var(--white); font-family:'Barlow Condensed',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif; }
body::before, body::after, .scanline, .spot { display:none; }
.rise, .map-foot, .latest-chip, .composition-card { animation:none; opacity:1; transform:none; }
.map-marker { animation:none; opacity:1; }
.tx-path { animation:none; stroke-dashoffset:0; }
header { background:#191c20ed; box-shadow:none; border-bottom:1px solid var(--bdr2); }
header::after { display:none; }
.logo-text, .logo-text span { font-family:'Barlow Condensed',system-ui,sans-serif; letter-spacing:.02em; font-size:12px; text-transform:none; }
.brand-switch, .live-badge, .updated { font-family:'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; font-size:10px; border-radius:6px; text-transform:none; }
#trajectoryHit:focus { outline:none; }
.trajectory-svg:has(:focus-visible) { outline:1px solid #485e79; outline-offset:4px; border-radius:6px; }
main { max-width:1240px; padding:40px 32px 72px; }
.brand-hero-name { color:var(--white); font:600 42px/1.2 'Barlow Condensed',system-ui,sans-serif; letter-spacing:-1.6px; text-transform:none; text-shadow:none; }
.brand-hero { margin:8px 0 28px; }
.chart-title, .trajectory-title { font:600 16px/1.5 'Barlow Condensed',system-ui,sans-serif; letter-spacing:-.2px; text-transform:none; color:var(--white); }
.chart-sub, .composition-sub, .trajectory-sub { font:400 12px/1.5 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; color:var(--w40); }
.chart-block, .map-block, .kpi-block, .composition-block, .latest-block, .table-block, .trajectory { border:1px solid var(--bdr2); border-radius:16px; background:var(--panel-bg); margin-bottom:24px; box-shadow:0 8px 28px #00000010; overflow:hidden; }
.chart-block::before, .map-block::before, .composition-block::before, .latest-block::before, .kpi::before, .kpi::after, .composition-card::before { display:none; }
.kpi-header, .composition-header, .chart-header, .map-header, .latest-header, .table-header { padding:22px 24px 18px; }
.kpi-grid { gap:1px; background:var(--bdr2); padding:0; }
.kpi { padding:24px; background:var(--panel-bg); border:0; box-shadow:none; backdrop-filter:none; }
.kpi-label, .kpi-sub, .composition-unit, .composition-share, .composition-name { font-family:'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; }
.kpi-label { font-size:12px; color:var(--w70); }
.kpi-val { font:600 46px/1.3 'Barlow Condensed',system-ui,sans-serif; letter-spacing:-2px; margin:10px 0; }
.kpi-sub { font-size:11px; line-height:1.6; color:var(--w40); }
.composition-grid { gap:16px; padding:0 24px 24px; }
.composition-card { padding:20px; background:#23272c; border:0; border-radius:12px; box-shadow:none; }
.composition-name { font-size:13px; font-weight:500; }
.composition-val { font:600 30px/1.4 'Barlow Condensed',system-ui,sans-serif; letter-spacing:-1px; }
.composition-meter { height:5px; border-radius:9px; background:#343a42; overflow:hidden; }
.composition-meter span { box-shadow:none; border-radius:9px; }
.composition-share { color:var(--w40); font-size:11px; margin-top:10px; }
.chart-area, .map-area { border:0; background:transparent; box-shadow:none; }
.map-area { padding:8px 24px 24px; margin:0; gap:32px; }
.geofence-map-area { grid-template-columns:1fr; }
.homepage-service-areas { width:100%; margin-top:0; }
.trajectory { margin-bottom:20px; }
.homepage-service-areas .map-header { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.homepage-service-areas .map-area { display:grid; }
.homepage-service-areas .geofence-canvas-stage { width:100%; }
.homepage-service-areas .map-src { display:inline-flex; align-items:center; gap:7px; color:var(--blue); font-size:10px; letter-spacing:.1em; text-transform:uppercase; white-space:nowrap; }
.map-svg { background:radial-gradient(ellipse,rgba(var(--blue-rgb),.06),transparent 70%); }
.tx-path { stroke:#49617a; stroke-width:1; }
.city-label { font-family:'Barlow Condensed',system-ui,sans-serif; font-size:22px; letter-spacing:0; text-transform:none; paint-order:stroke; stroke:#1c1f23; stroke-width:4px; stroke-linejoin:round; }
.city-row { background:#23272c; border:1px solid transparent; padding:16px; gap:10px; border-radius:10px; animation:none; opacity:1; transform:none; }
.city-row, .map-marker { cursor:pointer; }
.city-row.is-active { border-color:rgba(var(--blue-rgb),.5); background:rgba(var(--blue-rgb),.1); }
.map-marker.is-active .city-label { fill:var(--white); }
.map-marker.is-active { filter:drop-shadow(0 0 6px rgba(var(--blue-rgb),.5)); }
.city-row:focus-visible, .map-marker:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
.city-row-name { font:500 13px/1.5 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; }
.city-chip { font:500 10px/1.5 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; width:auto; padding:4px 8px; }
.city-chip { border-radius:20px; }
.city-row-dot { width:6px; height:6px; box-shadow:none; animation:none; }
.map-foot { font:400 11px/1.6 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; }
.geofence-sub { display:block; margin-top:3px; }
.geofence-stage { position:relative; overflow:hidden; min-height:520px; border:1px solid #2f3741; border-radius:12px; background:#14191f; }
.geofence-overview { min-height:520px; display:grid; place-items:center; padding:26px; transition:transform .42s cubic-bezier(.2,.8,.2,1),filter .32s ease,opacity .32s ease; }
.geofence-overview .map-svg { max-height:460px; }
.geofence-overview.is-zoomed { transform:scale(1.06); filter:blur(12px); opacity:.18; }
.geofence-hint { position:absolute; left:50%; bottom:16px; transform:translateX(-50%); white-space:nowrap; color:var(--w40); background:#171c21dd; border:1px solid #34404c; border-radius:20px; padding:7px 12px; font-size:10px; backdrop-filter:blur(14px); }
.geofence-detail { position:absolute; inset:12px; z-index:3; overflow:hidden; display:flex; flex-direction:column; border:1px solid #3b4652; border-radius:16px; background:#11161ce8; box-shadow:0 22px 70px #0009, inset 0 1px 0 #ffffff12; backdrop-filter:blur(22px) saturate(1.2); animation:geofenceReveal .38s cubic-bezier(.2,.8,.2,1) both; }
@keyframes geofenceReveal { from { opacity:0; transform:scale(.94) translateY(10px); } to { opacity:1; transform:scale(1) translateY(0); } }
.geofence-map-head, .geofence-map-foot { display:flex; align-items:center; justify-content:space-between; gap:16px; color:var(--w40); }
.geofence-map-head { padding:12px 14px; border-bottom:1px solid #2f3741; font-size:11px; }
.geofence-back { width:30px; height:30px; flex:0 0 auto; border:1px solid #3b4652; border-radius:50%; background:#252c34cc; color:var(--white); font:400 24px/1 system-ui,sans-serif; cursor:pointer; }
.geofence-back:hover { background:#303945; }
.geofence-back:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.geofence-map-head > span:nth-child(2) { display:flex; flex:1; flex-direction:column; gap:2px; }
.geofence-map-head strong { color:var(--white); font-size:14px; font-weight:600; }
.geofence-map-head small { color:var(--w40); font-size:11px; }
.geofence-compare-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:9px 14px; border-bottom:1px solid #2f3741; background:#131920f2; color:var(--w40); font-size:10px; }
.geofence-compare-bar > div { display:flex; flex-wrap:wrap; justify-content:flex-end; gap:6px; }
.geofence-provider-toggle { display:flex; align-items:center; gap:6px; min-height:28px; padding:5px 9px; border:1px solid #3a424c; border-radius:18px; background:#1b222a; color:#aeb7c2; font:500 10px 'Barlow Condensed',system-ui,sans-serif; cursor:pointer; }
.geofence-provider-toggle > span { width:7px; height:7px; border-radius:50%; border:1px solid var(--provider-color); background:transparent; }
.geofence-provider-toggle.is-on { color:#fff; border-color:color-mix(in srgb,var(--provider-color) 58%,transparent); background:color-mix(in srgb,var(--provider-color) 14%,#151a20); }
.geofence-provider-toggle.is-on > span { background:var(--provider-color); box-shadow:0 0 8px var(--provider-color); }
.geofence-provider-toggle small { color:var(--w40); font-size:8px; text-transform:uppercase; letter-spacing:.08em; }
.geofence-provider-toggle:disabled { cursor:default; opacity:1; }
.geofence-svg { flex:1; min-height:0; max-width:none; background:radial-gradient(circle at 52% 48%,rgba(var(--blue-rgb),.08),transparent 60%),#10151a; }
.geofence-live-map { flex:1; min-height:360px; background:#10151a; }
.geofence-live-map .maplibregl-canvas { outline:none; }
.geofence-live-map .maplibregl-ctrl-group { overflow:hidden; border:1px solid #ffffff24; border-radius:10px; background:#171c21dd; box-shadow:0 8px 24px #0006; backdrop-filter:blur(16px); }
.geofence-live-map .maplibregl-ctrl button { background-color:transparent; filter:invert(1); opacity:.78; }
.geofence-live-map .maplibregl-ctrl-attrib { color:#aeb7c2; background:#11161cdb; border-radius:7px 0 0 0; font-size:9px; }
.geofence-live-map .maplibregl-ctrl-attrib a { color:#d7dde5; }
.geofence-boundary { fill:url(#geofenceFill); stroke:var(--blue); stroke-width:3; stroke-linejoin:round; vector-effect:non-scaling-stroke; filter:drop-shadow(0 0 8px rgba(var(--blue-rgb),.28)); }
.geofence-arterial { fill:none; stroke:#536173; stroke-width:5; opacity:.38; }
.geofence-arterial.minor { stroke-width:3; opacity:.25; }
.geofence-center-ring { fill:rgba(var(--blue-rgb),.12); stroke:rgba(var(--blue-rgb),.7); stroke-width:1.5; }
.geofence-center { fill:var(--blue); }
.geofence-city-label { fill:var(--white); font:600 17px 'Barlow Condensed',system-ui,sans-serif; paint-order:stroke; stroke:#11161c; stroke-width:5px; stroke-linejoin:round; }
.geofence-map-foot { padding:10px 16px; border-top:1px solid #2f3741; font-size:10px; }
.geofence-side { align-self:stretch; justify-content:center; }
.geofence-row { width:100%; display:grid; grid-template-columns:32px 1fr auto; align-items:center; gap:10px; padding:15px; border:1px solid transparent; border-radius:10px; background:#23272c; color:var(--white); font:inherit; text-align:left; cursor:pointer; }
.geofence-row:hover { background:#282e35; }
.geofence-row.is-active { border-color:rgba(var(--blue-rgb),.5); background:rgba(var(--blue-rgb),.10); box-shadow:inset 3px 0 0 var(--blue); }
.geofence-row:focus-visible { outline:2px solid var(--blue); outline-offset:2px; }
.geofence-row > span:nth-child(2) { display:flex; flex-direction:column; gap:2px; }
.geofence-row strong { font-size:14px; font-weight:600; }
.geofence-row small { color:var(--w40); font-size:10px; }
.geofence-mini { display:grid; place-items:center; width:30px; height:30px; border:1px solid rgba(var(--blue-rgb),.35); border-radius:8px; background:rgba(var(--blue-rgb),.08); color:var(--blue); font-size:20px; }
.geofence-status { color:var(--blue); background:rgba(var(--blue-rgb),.1); border:1px solid rgba(var(--blue-rgb),.25); border-radius:20px; padding:4px 8px; font-size:10px; }
.geofence-source { margin-top:4px; color:var(--w40); font-size:10px; line-height:1.6; }
.geofence-source a { color:var(--w70); }
.geofence-pin { cursor:pointer; }
.geofence-pin-halo { fill:rgba(var(--blue-rgb),.1); transition:r .2s ease,fill .2s ease; }
.geofence-pin-ring { fill:#17202a; stroke:var(--blue); stroke-width:1.8; }
.geofence-pin-core { fill:var(--blue); }
.geofence-pin:hover .geofence-pin-halo, .geofence-pin:focus .geofence-pin-halo { r:29px; fill:rgba(var(--blue-rgb),.19); }
.geofence-pin:focus { outline:none; }

/* Persistent Texas map experience — the map stays mounted while the camera
   flies between the statewide view and a selected service boundary. */
.geofence-canvas-stage { min-height:590px; isolation:isolate; }
.geofence-canvas-stage .geofence-live-map { position:absolute; inset:0; min-height:0; }
.geofence-canvas-stage::after { content:''; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(180deg,#08101970 0,transparent 25%,transparent 70%,#08101978 100%); }
.geofence-map-loading { position:absolute; inset:0; z-index:9; display:grid; place-content:center; justify-items:center; gap:10px; color:#aab5c2; background:#10151a; transition:opacity .55s ease,visibility .55s ease; }
.geofence-map-loading.is-hidden { opacity:0; visibility:hidden; }
.geofence-map-loading span { width:24px; height:24px; border:2px solid #ffffff20; border-top-color:var(--blue); border-radius:50%; animation:spin .8s linear infinite; }
.geofence-map-loading small { font-size:10px; letter-spacing:.08em; text-transform:uppercase; }
.geofence-map-context { position:absolute; z-index:4; top:16px; left:16px; width:220px; max-width:calc(100% - 32px); display:flex; flex-direction:column; gap:5px; padding:16px 18px; border:1px solid #ffffff20; border-radius:18px; color:#dfe7ef; background:#111820d9; box-shadow:0 14px 34px #0007,inset 0 1px 0 #ffffff12; backdrop-filter:blur(18px) saturate(1.25); opacity:0; visibility:hidden; transform:translateY(-6px); transition:transform .35s ease,opacity .35s ease,visibility .35s ease; }
.geofence-city-picker { position:absolute; z-index:5; top:16px; left:16px; width:188px; padding:12px 12px 10px; border:1px solid rgba(67,201,118,.32); border-radius:16px; color:#ddf8e6; background:linear-gradient(145deg,#10251bed,#0c1712e3); box-shadow:0 18px 46px #0009,inset 0 1px 0 rgba(255,255,255,.09),inset 3px 0 0 rgba(67,201,118,.68); backdrop-filter:blur(20px) saturate(1.2); opacity:0; visibility:hidden; transform:translateX(-8px); transition:opacity .28s ease,visibility .28s ease,transform .28s ease; }
.geofence-city-picker.is-visible { opacity:1; visibility:visible; transform:none; }
.geofence-city-picker-toggle { display:block; width:100%; padding:0; border:0; background:transparent; color:inherit; text-align:left; cursor:default; }
.geofence-city-picker-toggle small { display:block; color:#67d88c; font-size:9px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.geofence-city-picker-toggle strong { display:block; margin:3px 0 8px; font-size:18px; font-weight:700; letter-spacing:.01em; }
.geofence-city-picker-list { display:grid; gap:3px; }
.geofence-city-picker-list button { display:grid; grid-template-columns:8px 1fr auto; align-items:center; gap:8px; width:100%; min-height:36px; padding:6px 8px; border:1px solid transparent; border-radius:8px; color:#c9f1d6; background:transparent; font:600 15px/1 'Barlow Condensed',sans-serif; text-align:left; cursor:pointer; transition:background .16s ease,border-color .16s ease,transform .16s ease; }
.geofence-city-picker-list button i { width:9px; height:9px; border-radius:50%; background:#43c976; box-shadow:0 0 10px rgba(67,201,118,.72); }
.geofence-city-picker-list button b { color:#67d88c; font-size:23px; font-weight:500; line-height:.7; }
.geofence-city-picker-list button:hover,.geofence-city-picker-list button:focus-visible { border-color:rgba(67,201,118,.42); outline:none; background:rgba(67,201,118,.11); transform:translateX(2px); }
.geofence-map-context.is-visible { opacity:1; visibility:visible; transform:none; }
.geofence-map-context small { color:var(--blue); font-size:13px; letter-spacing:.08em; text-transform:uppercase; }
.geofence-map-context strong { font-size:34px; line-height:1.05; }
.geofence-map-context span { color:#9da8b5; font-size:10px; }
.geofence-area-summary { position:absolute; z-index:5; top:158px; left:16px; display:grid; gap:12px; width:220px; padding:16px 18px 20px; border:1px solid #ffffff20; border-radius:18px; color:#dfe7ef; background:#111820d9; box-shadow:0 14px 34px #0007,inset 0 1px 0 #ffffff12; backdrop-filter:blur(18px) saturate(1.25); opacity:0; visibility:hidden; transform:translateY(-6px); transition:transform .35s ease,opacity .35s ease,visibility .35s ease; }
.geofence-area-summary.is-visible { opacity:1; visibility:visible; transform:none; }
.geofence-area-summary > small { color:var(--blue); font-size:13px; letter-spacing:.08em; text-transform:uppercase; }
.geofence-area-summary > small + .geofence-area-stat { margin-top:5px; }
.geofence-area-stat { display:grid; grid-template-columns:12px max-content max-content; align-items:center; justify-content:start; gap:9px; min-width:0; }
.geofence-area-stat i { width:12px; height:12px; border-radius:50%; background:var(--provider-color); box-shadow:0 0 10px var(--provider-color); }
.geofence-area-stat b { overflow:hidden; color:#dce5ec; font:600 16px/1 'Barlow Condensed',sans-serif; text-overflow:ellipsis; white-space:nowrap; }
.geofence-area-stat strong { color:#f0f7f2; font:600 16px/1 'Barlow Condensed',sans-serif; letter-spacing:.02em; white-space:nowrap; }
.geofence-map-back { position:absolute; z-index:5; top:16px; left:16px; display:flex; align-items:center; gap:7px; height:34px; padding:0 12px; border:1px solid #ffffff26; border-radius:18px; color:#fff; background:#101820e8; box-shadow:0 10px 28px #0008; backdrop-filter:blur(18px); font:500 12px 'Barlow Condensed',sans-serif; cursor:pointer; opacity:0; visibility:hidden; transform:translateY(-6px); transition:.28s ease; }
.geofence-map-back.is-visible { opacity:1; visibility:visible; transform:none; }
.geofence-map-back.is-visible + .geofence-map-context { top:58px; }
.geofence-compare-dock { position:absolute; z-index:8; left:50%; bottom:14px; width:max-content; max-width:calc(100% - 28px); display:flex; align-items:center; padding:8px 10px; border:1px solid #ffffff20; border-radius:16px; color:#9ca8b5; background:#101820e8; box-shadow:0 14px 38px #0008; backdrop-filter:blur(18px) saturate(1.3); opacity:0; visibility:hidden; pointer-events:auto; transform:translate(-50%,8px); transition:.35s ease; }
.geofence-compare-dock.is-visible { opacity:1; visibility:visible; transform:translate(-50%,0); }
.geofence-compare-dock > small { padding:0; white-space:nowrap; font-size:9px; letter-spacing:.06em; text-transform:uppercase; }
.geofence-compare-dock > div { display:flex; flex-wrap:wrap; justify-content:center; gap:5px; }
.geofence-directory { justify-content:flex-start; padding-top:0; }
.geofence-directory-head { display:flex; flex-direction:column; gap:2px; padding:4px 2px 8px; }
.geofence-directory-head small { color:var(--w40); font-size:9px; letter-spacing:.08em; text-transform:uppercase; }
.geofence-directory-head strong { color:var(--white); font-size:18px; font-weight:600; }
.geofence-row { transition:background .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease; }
.geofence-row.is-preview { border-color:rgba(var(--blue-rgb),.28); background:rgba(var(--blue-rgb),.06); transform:translateX(3px); }
.geofence-live-map .maplibregl-marker { overflow:visible; }
@keyframes texas-map-city-pulse {
  0% { transform:scale(.55); opacity:.42; }
  70% { transform:scale(1.7); opacity:0; }
  100% { transform:scale(1.7); opacity:0; }
}
@keyframes texas-map-city-glow {
  0%, 100% { box-shadow:0 0 5px #4ade80; }
  50% { box-shadow:0 0 2px #4ade80; }
}
.texas-map-city { position:absolute; top:0; left:0; display:grid; place-items:center; width:12px; height:12px; padding:0; border:0; background:transparent; cursor:pointer; overflow:visible; }
.texas-map-city::after { content:''; position:absolute; inset:-10px; border-radius:50%; }
.texas-map-city-dot { position:relative; display:grid; place-items:center; width:12px; height:12px; border:1.5px solid #4ade80; border-radius:50%; color:#4ade80; background:#10261c; box-shadow:0 0 0 3px rgba(74,222,128,.12),0 0 10px rgba(74,222,128,.5); pointer-events:none; transition:opacity .75s ease,visibility .75s ease; }
.texas-map-city-dot::before { content:''; position:absolute; inset:-7px; border:1px solid rgba(74,222,128,.55); border-radius:50%; }
.texas-map-city.is-pulsing .texas-map-city-dot::before { animation:texas-map-city-pulse 2.4s ease-out infinite; }
.texas-map-city-dot i { width:4px; height:4px; border-radius:50%; background:#4ade80; box-shadow:0 0 5px #4ade80; }
.texas-map-city.is-pulsing .texas-map-city-dot i { animation:texas-map-city-glow 2.4s ease-in-out infinite; }
.texas-map-city-card { position:absolute; left:50%; bottom:26px; z-index:8; width:max-content; min-width:108px; padding:8px 10px 7px; border:1px solid #ffffff14; border-radius:12px; color:#f2ede4; background:#161a20f0; box-shadow:0 12px 28px #0008,inset 0 1px 0 #ffffff10; backdrop-filter:blur(20px) saturate(1.25); opacity:0; visibility:hidden; pointer-events:none; transform:translateX(-50%) translateY(5px) scale(.96); transform-origin:center bottom; transition:opacity .18s ease,transform .18s cubic-bezier(.2,.8,.2,1),visibility .18s ease; }
.texas-map-city-card::after { content:''; position:absolute; left:50%; bottom:-4px; width:8px; height:8px; margin-left:-4px; border:1px solid #ffffff14; border-top:0; border-left:0; background:#161a20f0; transform:rotate(45deg); }
.texas-map-city-card strong { display:block; font:600 13px/1.15 'Barlow Condensed',system-ui,sans-serif; letter-spacing:.01em; }
.texas-map-city-card em { display:flex; flex-wrap:wrap; gap:5px 8px; margin-top:6px; font-style:normal; }
.texas-map-city-card b { display:inline-flex; align-items:center; gap:5px; color:#c8c5be; font:500 10px/1 'Barlow Condensed',system-ui,sans-serif; }
.texas-map-city-card b::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--provider-color); box-shadow:0 0 6px var(--provider-color); }
@media (hover:hover) {
  .texas-map-city:hover,
  .texas-map-city:focus-visible { z-index:7; }
  .texas-map-city:hover .texas-map-city-card,
  .texas-map-city:focus-visible .texas-map-city-card { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0) scale(1); }
}
.texas-map-city.is-preview { z-index:7; }
.texas-map-city.is-preview .texas-map-city-card { opacity:1; visibility:visible; transform:translateX(-50%) translateY(0) scale(1); }
.texas-map-city.is-active .texas-map-city-card { opacity:0; visibility:hidden; }
.geofence-live-map.is-city-view .texas-map-city { pointer-events:none; }
.geofence-live-map.is-city-view .texas-map-city-dot,
.geofence-live-map.is-city-view .texas-map-city-card { opacity:0; visibility:hidden; }
.texas-map-city:focus-visible { outline:2px solid #d5ffe2; outline-offset:3px; }
.geofence-canvas-stage .maplibregl-ctrl-top-right { top:12px; right:12px; display:flex; flex-direction:column; align-items:flex-end; gap:8px; }
.geofence-canvas-stage .maplibregl-ctrl-top-right .maplibregl-ctrl { margin:0; float:none; }
.geofence-canvas-stage .maplibregl-ctrl-bottom-left { bottom:4px; left:8px; }
.geofence-canvas-stage .maplibregl-ctrl-bottom-right { bottom:4px; right:8px; }
.geofence-canvas-stage .maplibregl-control-container { z-index:3; pointer-events:none; }
.geofence-canvas-stage .maplibregl-control-container .maplibregl-ctrl { pointer-events:auto; }
.geofence-ctrl-recenter .maplibregl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='%23333' viewBox='0 0 20 20'%3E%3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1m0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7'/%3E%3Ccircle cx='10' cy='10' r='2'/%3E%3C/svg%3E");
}
.geofence-live-map .maplibregl-ctrl-fullscreen .maplibregl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='none' viewBox='0 0 29 29'%3E%3Cpath stroke='%23333' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' d='M12.4 9.4H9.4v3M16.6 9.4h3v3M9.4 16.6v3h3M19.6 16.6v3h-3'/%3E%3C/svg%3E") !important;
}
.geofence-live-map .maplibregl-ctrl-shrink .maplibregl-ctrl-icon {
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='29' height='29' fill='none' viewBox='0 0 29 29'%3E%3Cpath stroke='%23333' stroke-width='1.75' stroke-linecap='round' stroke-linejoin='round' d='M9.4 12.4h3v-3M16.6 9.4v3h3M12.4 19.6v-3h-3M19.6 16.6h-3v3'/%3E%3C/svg%3E") !important;
}
.geofence-live-map .maplibregl-ctrl-scale { border-color:#2a313899; color:#5f6872; background:#0d1218a8; }
.geofence-live-map .maplibregl-ctrl-attrib,
.geofence-live-map .maplibregl-ctrl-attrib.maplibregl-compact-show {
  color:#5a626c; background:#0d1218b8; max-width:24px !important; max-height:24px !important; overflow:hidden;
}
.geofence-live-map .maplibregl-ctrl-attrib:hover,
.geofence-live-map .maplibregl-ctrl-attrib:focus-within {
  max-width:min(240px,42vw) !important; max-height:none !important; overflow:visible;
}
.geofence-live-map .maplibregl-ctrl-attrib a { color:#6a727c; }
.geofence-live-map .maplibregl-ctrl-attrib-button { opacity:.35; }
.geofence-live-map .maplibregl-popup-content { padding:10px 12px; border:1px solid #ffffff22; border-radius:10px; color:#e8eef5; background:#111820ed; box-shadow:0 12px 32px #0008; font:11px 'Barlow Condensed',sans-serif; }
.latest-chip { border-radius:10px; background:#23272c; }
.latest-chip::before, .latest-chip::after { display:none; }
.latest-model { font:500 12px 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; }
.latest-vin { font:400 11px ui-monospace,monospace; letter-spacing:0; margin-top:8px; }
.latest-date, .latest-sub { font:400 11px/1.5 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; color:var(--w40); }
.registry-model { display:block; color:var(--w40); font:400 10px/1.5 'Barlow Condensed',system-ui,sans-serif; margin-top:5px; }
.table-shell { border:0; margin:0; background:transparent; box-shadow:none; overflow:auto; }
.toolbar { padding:0 24px 20px; gap:12px; }
.search { background:#191c20; border:1px solid #2b3748; border-radius:9px; font:400 13px/1.5 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; padding:10px 12px 10px 38px; }
.search:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(var(--blue-rgb),.1); }
.count-tag { font:400 12px 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; }
thead th { background:#23272c; color:var(--w40); font:500 11px 'Barlow Condensed',system-ui,sans-serif; letter-spacing:.02em; text-transform:none; padding:14px 20px; }
td { height:68px; padding:10px 20px; }
.td-num { font:400 11px 'Barlow Condensed',system-ui,sans-serif; color:var(--w40); }
.td-thumb { width:120px; }
.model-badge.has-image { width:88px; height:46px; }
.model-badge-image { max-width:88px; max-height:46px; object-fit:contain; }
.model-badge { width:88px; height:40px; border:0; background:#1d2938; }
.vin { font:500 12px ui-monospace,SFMono-Regular,Consolas,monospace; letter-spacing:.02em; }
.date-tag { font:400 12px 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; color:var(--w70); }
.today-badge { font:500 10px 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; border-radius:20px; text-transform:none; }
.btn { border-radius:8px; font:500 12px 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; padding:9px 14px; }
.footnote, .foot { font:400 11px/1.8 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; color:var(--w40); }
.modern-chart { padding:24px; }
.modern-chart-head { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; }
.modern-pills { display:flex; align-items:center; gap:4px; background:#0c131d; padding:4px; border:1px solid var(--bdr2); border-radius:9px; }
.modern-pills button, .registry-footer button, .registry-sort { border:0; background:transparent; color:var(--w40); font:500 12px 'Barlow Condensed',system-ui,sans-serif; border-radius:6px; padding:7px 11px; cursor:pointer; }
.modern-pills button[aria-pressed=true] { background:#343a42; color:#f5f8fc; box-shadow:0 1px 4px #0004; }
.modern-pills button:hover { color:var(--white); }
.modern-readout { display:flex; justify-content:space-between; gap:16px; align-items:end; min-height:99px; padding:24px 0 16px; }
.modern-value { font-size:48px; line-height:1; font-weight:600; letter-spacing:-2px; font-variant-numeric:tabular-nums; }
.modern-value small { color:var(--w40); font-size:12px; font-weight:400; letter-spacing:0; margin-left:8px; }
.modern-date { color:var(--w40); font-size:12px; margin-top:5px; }
.modern-legend { display:flex; flex-wrap:wrap; gap:6px; }
.modern-legend button { color:var(--w40); background:transparent; border:1px solid transparent; padding:6px 9px; border-radius:7px; font:500 11px 'Barlow Condensed',system-ui,sans-serif; cursor:pointer; }
.modern-legend button[aria-pressed=true] { color:var(--white); background:#202c3b; border-color:#344357; }
.modern-legend i { display:inline-block; width:6px; height:6px; border-radius:50%; margin-right:6px; background:var(--series-color); }
.modern-plot { width:100%; display:block; overflow:visible; }
.modern-plot text { font:11px 'Barlow Condensed',system-ui,sans-serif; fill:#8190a4; }
.modern-plot [role=slider] { cursor:crosshair; touch-action:pan-y; }
.modern-plot:has(:focus-visible) { outline:1px solid #485e79; outline-offset:8px; border-radius:6px; }
.modern-plot [role=slider]:focus { outline:none; }
.modern-chart-foot { display:flex; justify-content:space-between; gap:12px; color:var(--w40); font-size:10px; margin-top:14px; }
.registry-footer { display:flex; align-items:center; justify-content:space-between; padding:16px 24px; gap:12px; border-top:1px solid var(--bdr2); font-size:12px; color:var(--w40); }
.registry-footer button { border:1px solid var(--bdr2); background:#292e34; color:var(--white); }
.registry-footer button:disabled { opacity:.3; cursor:default; }
.registry-sort { border:1px solid var(--bdr2); background:#23272c; color:var(--w70); }
.fleet-ranking { padding:0 24px 24px; display:grid; gap:8px; }
.fleet-rank { display:grid; grid-template-columns:100px 1fr 70px 20px; gap:20px; align-items:center; text-decoration:none; color:var(--w70); padding:16px 12px; border-radius:10px; font-size:12px; transition:background .15s; }
.fleet-rank:hover { background:#292e34; }
.fleet-track { height:8px; border-radius:10px; background:#343a42; overflow:hidden; }
.fleet-track span { display:block; height:100%; border-radius:10px; background:rgb(var(--rank-color)); }
.fleet-rank strong { text-align:right; color:var(--white); font-size:15px; font-variant-numeric:tabular-nums; }
.title { font:600 clamp(30px,4vw,52px)/1.15 'Barlow Condensed',system-ui,sans-serif; letter-spacing:-1.7px; text-transform:none; text-shadow:none; max-width:760px; margin:auto; }
.subtitle { font:400 14px/1.8 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; color:var(--w40); text-transform:none; }
.card { background:#1c1f23; border:1px solid var(--bdr2); border-radius:14px; box-shadow:none; padding:24px; }
.card::before, .card::after { display:none; }
.card:hover { background:#182230; transform:translateY(-3px); box-shadow:0 10px 30px #0003; }
.card-brand { font:600 17px 'Barlow Condensed',system-ui,sans-serif; letter-spacing:-.3px; text-transform:none; }
.card-op, .card-label, .card-cta { font-family:'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; font-size:11px; line-height:1.6; }
.count-note { white-space:normal; font:400 10px/1.5 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; }
.card-num { font:600 48px/1.2 'Barlow Condensed',system-ui,sans-serif; letter-spacing:-2px; }
.trajectory-head { padding:24px; }
.trajectory-svg text { font-family:'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; }
.legend-toggle { font-family:'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; border-radius:7px; }
.trajectory-stage { display:flex; flex-direction:column-reverse; }
.trajectory-tooltip, .trajectory-tooltip.on, .trajectory-tooltip.above { position:static; display:flex; align-items:center; flex-wrap:wrap; gap:12px 24px; min-height:68px; transform:none; opacity:1; width:auto; border:0; border-radius:0; background:transparent; box-shadow:none; backdrop-filter:none; padding:12px 24px 20px; pointer-events:none; }
.trajectory-tooltip .tip-date { font:400 12px 'Barlow Condensed',system-ui,sans-serif; color:var(--w40); margin:0; letter-spacing:0; text-transform:none; }
.trajectory-tooltip .tip-row { display:flex; align-items:baseline; gap:7px; margin:0; }
.trajectory-tooltip .tip-value { font:600 20px 'Barlow Condensed',system-ui,sans-serif; letter-spacing:-.5px; }
.trajectory-tooltip .tip-name { font:400 11px 'Barlow Condensed',system-ui,sans-serif; letter-spacing:0; text-transform:none; }
.trajectory-tooltip::before, .trajectory-tooltip::after { display:none; }
#trajectoryHit { touch-action:pan-y; }
@media(max-width:759px) {
  main { padding:24px 16px 48px; }
  .brand-hero-name { font-size:32px; }
  .kpi-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .kpi { padding:16px 12px; }
  .kpi-val { font-size:30px; letter-spacing:-1px; }
  .kpi-label { font-size:10px; }
  .kpi-sub { font-size:10px; }
  .kpi-header, .chart-header, .composition-header, .map-header, .table-header { padding:18px 16px; flex-wrap:wrap; }
  .composition-grid { padding:0 16px 16px; gap:10px; }
  .composition-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .composition-card { min-height:0; }
  .composition-card { padding:14px; }
  .composition-name { font-size:11px; }
  .modern-chart { padding:18px 16px; }
  .modern-readout { align-items:start; flex-direction:column; padding-top:18px; gap:12px; }
  .modern-value { font-size:40px; }
  .modern-chart-foot { font-size:9px; }
  .modern-pills button { padding:6px 9px; font-size:11px; }
  .map-area { padding:0 16px 20px; gap:16px; }
  .map-svg { max-width:330px; }
  .geofence-svg { max-width:none; }
  .geofence-stage, .geofence-overview { min-height:420px; }
  .geofence-detail { inset:8px; }
  .geofence-map-head > span:last-child { display:none; }
  .geofence-compare-bar { align-items:flex-start; flex-direction:column; }
  .geofence-compare-bar > div { justify-content:flex-start; }
  .geofence-hint { white-space:normal; width:calc(100% - 28px); text-align:center; }
  .geofence-map-foot { align-items:flex-start; flex-direction:column; gap:3px; }
  .geofence-canvas-stage { min-height:510px; }
  .geofence-map-context { top:12px; left:12px; width:220px; max-width:calc(100% - 24px); }
  .geofence-area-summary { top:150px; left:12px; width:220px; padding:16px 18px 20px; }
  .geofence-city-picker { top:12px; left:12px; width:auto; max-width:calc(100% - 76px); padding:7px 11px; border-radius:999px; }
  .geofence-city-picker-toggle { display:flex; align-items:center; gap:6px; cursor:pointer; }
  .geofence-city-picker-toggle::after { content:'▾'; color:#67d88c; font-size:11px; line-height:1; }
  .geofence-city-picker:not(.is-open) .geofence-city-picker-toggle small,
  .geofence-city-picker:not(.is-open) .geofence-city-picker-list { display:none; }
  .geofence-city-picker:not(.is-open) .geofence-city-picker-toggle strong { margin:0; font-size:13px; }
  .geofence-city-picker.is-open { width:156px; padding:9px 9px 8px; border-radius:14px; }
  .geofence-city-picker.is-open .geofence-city-picker-toggle { display:block; }
  .geofence-city-picker.is-open .geofence-city-picker-toggle::after { content:'▴'; float:right; margin-top:4px; }
  .geofence-city-picker-toggle small { font-size:8px; }
  .geofence-city-picker-toggle strong { margin:2px 0 7px; font-size:15px; }
  .geofence-city-picker-list { gap:2px; }
  .geofence-city-picker-list button { min-height:36px; padding:6px 7px; gap:7px; font-size:13px; grid-template-columns:7px 1fr auto; }
  .geofence-city-picker-list button i { width:6px; height:6px; }
  .geofence-city-picker-list button b { font-size:15px; }
  .texas-map-city,
  .texas-map-city-dot { width:13px; height:13px; }
  .texas-map-city::after { inset:-12px; }
  .texas-map-city-card { min-width:96px; padding:7px 9px 6px; }
  .geofence-city-picker-toggle:focus-visible { outline:2px solid #67d88c; outline-offset:3px; border-radius:8px; }
  .geofence-map-back { top:12px; left:12px; }
  .geofence-map-back.is-visible + .geofence-map-context { top:52px; }
  .geofence-compare-dock { left:50%; right:auto; bottom:12px; max-width:calc(100% - 20px); }
  .toolbar { padding:0 16px 16px; flex-wrap:wrap; }
  .search-wrap { min-width:100%; }
  td, thead th { padding:12px; }
  .td-thumb { width:76px; }
  .model-badge.has-image { width:60px; height:36px; }
  .model-badge-image { max-width:60px; max-height:36px; }
  .vin { font-size:10px; }
  .td-date { display:table-cell; }
  .date-tag { font-size:10px; }
  .search-wrap { order:0; }
  .td-num { display:none; }
  thead th:first-child { display:none; }
  td:last-child:empty { padding:0; }
  .registry-footer { padding:14px 16px; font-size:10px; }
  .registry-footer button { padding:7px; font-size:11px; }
  .fleet-ranking { padding:0 12px 16px; }
  .fleet-rank { grid-template-columns:65px 1fr 45px 12px; gap:12px; padding:14px 4px; }
  .cards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
  .card { padding:18px 14px; min-height:230px; }
  .card-brand { font-size:14px; }
  .card-op { font-size:10px; min-height:0; }
  .card-num { font-size:38px; }
  .card-label { font-size:10px; }
  .card-foot { gap:6px; flex-wrap:wrap; }
  .live-badge { padding:4px 6px; font-size:9px; }
}
html, body { background:radial-gradient(ellipse at 50% -20%,#30363d 0,transparent 65%),#141619; }
body::before { display:block; opacity:.24; }
.brand-hero-name { font-size:62px; font-weight:800; line-height:.95; letter-spacing:.04em; text-transform:uppercase; color:var(--blue); }
.title { font-size:52px; font-weight:800; line-height:1.02; letter-spacing:.04em; text-transform:uppercase; max-width:100%; margin-bottom:18px; }
.chart-title, .trajectory-title { font-size:19px; font-weight:700; letter-spacing:.22em; text-transform:uppercase; color:var(--white); }
.chart-sub, .composition-sub { font-size:12px; font-weight:500; letter-spacing:.1em; text-transform:uppercase; }
.logo-text, .logo-text span { font-size:14px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.card-brand { font-size:24px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; }
.card-num { font-size:64px; font-weight:700; letter-spacing:0; }
.kpi-label { font-size:15px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; }
.kpi-val { font-size:60px; font-weight:700; letter-spacing:0; }
.kpi-sub { font-size:13px; letter-spacing:.035em; }
.chart-block, .map-block, .kpi-block, .composition-block, .latest-block, .table-block, .trajectory { border-radius:7px; background:linear-gradient(155deg,#25292eee,#1b1e22ee); box-shadow:inset 0 1px 0 #ffffff05; }
.kpi { background:transparent; }
.kpi-grid { background:transparent; gap:0; }
.kpi + .kpi { border-left:1px solid var(--bdr2); }
.composition-card { background:linear-gradient(135deg,#2b3036,#22262b); border:1px solid #ffffff08; border-radius:5px; }
.composition-name { font-size:18px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; }
.composition-val { font-size:42px; font-weight:700; letter-spacing:0; }
.composition-share { font-size:12px; letter-spacing:.04em; }
.card { background:linear-gradient(155deg,#282d33,#1c1f23); border-radius:6px; border-color:rgba(var(--rgb),.24); }
.card::after { display:block; height:1px; }
.card:hover { background:linear-gradient(155deg,#30363d,#202429); }
.card-op, .card-label { font-size:14px; letter-spacing:.03em; }
.count-note { font-size:12px; letter-spacing:.02em; }
.modern-chart { padding:26px 28px 18px; }
.modern-pills { background:#15171a; border-radius:5px; padding:3px; }
.modern-pills button { font-size:13px; font-weight:600; letter-spacing:.08em; border-radius:3px; min-width:40px; }
.modern-pills button[aria-pressed=true] { background:#363b42; }
.chart-summary { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:24px 0 22px; }
.chart-total { font-size:66px; font-weight:700; letter-spacing:-.02em; line-height:1; }
.chart-total-unit { display:inline-block; margin-left:14px; font-size:13px; color:var(--w40); letter-spacing:.08em; text-transform:uppercase; }
.chart-change { display:flex; flex-direction:column; align-items:flex-end; color:var(--w40); font-size:12px; letter-spacing:.05em; }
.chart-change strong { font-size:28px; font-weight:600; color:var(--w70); letter-spacing:0; }
.modern-legend { gap:8px; padding-bottom:14px; }
.modern-legend button { display:flex; align-items:center; gap:8px; padding:9px 12px; border:1px solid #ffffff0d; border-radius:4px; font-size:14px; letter-spacing:.03em; background:#15171a66; transition:border-color .15s,background .15s; }
.modern-legend button[aria-pressed=true] { background:#ffffff05; border-color:color-mix(in srgb,var(--series-color) 38%,transparent); }
.modern-legend i { width:14px; height:2px; margin:0; border-radius:0; }
.modern-legend strong { font-size:16px; color:var(--series-color); font-variant-numeric:tabular-nums; }
.series-check { margin-left:6px; color:var(--series-color); font-size:11px; }
.modern-legend button[aria-pressed=false] .series-check { opacity:0; }
.modern-legend button[aria-pressed=false] i, .modern-legend button[aria-pressed=false] strong { opacity:.3; }
.modern-plot text { font-size:13px; fill:#9b9da0; letter-spacing:.02em; }
.modern-plot:has(:focus-visible) { outline:none; }
.modern-plot [role=slider]:focus-visible { outline:1px dashed #777b81; outline-offset:5px; }
.fleet-series-path, #fleetArea { transition:opacity .16s ease; }
.modern-chart-foot { font-size:12px; letter-spacing:.035em; color:var(--w40); border-top:1px solid #ffffff08; padding-top:12px; }
.fleet-tooltip { position:fixed; z-index:1000; display:grid; grid-template-columns:5px max-content max-content; column-gap:6px; row-gap:4px; width:max-content; max-width:calc(100vw - 24px); pointer-events:none; padding:7px 9px 8px; background:#191c20; border:1px solid #555a61; border-radius:7px; box-shadow:0 12px 32px #0006,0 1px 0 #ffffff0a inset; color:#f2ede4; font-family:'Barlow Condensed',sans-serif; }
.fleet-tooltip[hidden] { display:none; }
.fleet-tip-date { grid-column:1 / -1; display:flex; align-items:baseline; gap:8px; font-size:12px; font-weight:600; letter-spacing:.04em; padding-bottom:6px; margin-bottom:1px; border-bottom:1px solid #ffffff12; }
.fleet-tip-date span { font-size:8px; color:#979b9f; font-weight:500; letter-spacing:.08em; }
.fleet-tip-row { display:contents; font-size:12px; }
.fleet-tip-row i { width:5px; height:5px; margin-top:5px; background:var(--series-color); border-radius:50%; }
.fleet-tip-row span { color:#c5c6c7; }
.fleet-tip-row strong { justify-self:start; color:var(--series-color); font-size:15px; font-weight:800; line-height:1.1; font-variant-numeric:tabular-nums; }
.fleet-rank { font-size:17px; letter-spacing:.035em; border-bottom:1px solid #ffffff07; border-radius:0; }
.fleet-rank strong { font-size:23px; }
.fleet-track { height:5px; }
.city-row { border-radius:4px; }
.city-row-name { font-size:17px; font-weight:600; letter-spacing:.07em; text-transform:uppercase; }
.city-label { letter-spacing:.03em; stroke:#202428; }
.city-chip { font-size:12px; border-radius:3px; }
thead th { font-size:14px; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.date-tag, .count-tag, .search { font-size:15px; }
.search { border-radius:4px; }
.registry-sort, .registry-footer, .registry-footer button { font-size:14px; }
.latest-model { font-size:16px; letter-spacing:.07em; text-transform:uppercase; }
.latest-date, .latest-sub { font-size:13px; }
.latest-model { color:var(--blue); font-weight:800; }
.composition-meter > span { animation:none !important; transform:scaleX(0); }
.composition-block.is-revealed .composition-meter > span { animation:rank-fill .68s cubic-bezier(.22,.8,.2,1) calc(var(--i) * .11s) forwards !important; }
@media(max-width:759px) {
  .brand-hero-name { font-size:44px; }
  .title { font-size:36px; }
  .card-brand { font-size:19px; }
  .card-num { font-size:52px; }
  .card-op, .card-label { font-size:12px; }
  .chart-title, .trajectory-title { font-size:17px; letter-spacing:.14em; }
  .kpi-label { font-size:12px; letter-spacing:.06em; }
  .kpi-val { font-size:42px; }
  .kpi-sub { font-size:11px; }
  .composition-name { font-size:15px; }
  .composition-val { font-size:36px; }
  .modern-chart { padding:20px 16px 14px; }
  .chart-total { font-size:54px; }
  .chart-total-unit { display:block; margin:6px 0 0; font-size:11px; }
  .chart-summary { margin:22px 0 18px; }
  .modern-legend { gap:6px; }
  .modern-legend button { gap:5px; padding:7px 8px; font-size:12px; }
  .modern-legend strong { font-size:14px; }
  .series-check { display:none; }
  .modern-legend i { width:9px; }
  .modern-chart-foot { font-size:10px; }
  .fleet-tooltip { width:max-content; padding:7px 8px; }
  .fleet-tip-row { font-size:12px; }
  .fleet-tip-row strong { font-size:15px; font-weight:800; }
  .city-row-name { font-size:16px; }
  .date-tag { font-size:12px; }
}
@media(prefers-reduced-motion:reduce) { *, *::before, *::after { animation:none !important; transition:none !important; } }

/* ── Proportions and arrival polish ─────────────────────── */
@keyframes panel-arrive {
  from { opacity:0; transform:translateY(10px); }
  to { opacity:1; transform:translateY(0); }
}
@keyframes number-settle {
  from { opacity:0; transform:translateY(7px) scale(.96); }
  to { opacity:1; transform:translateY(0) scale(1); }
}

.rise { animation:panel-arrive .48s cubic-bezier(.2,.8,.2,1) both; }
.d1 { animation-delay:.02s; } .d2 { animation-delay:.08s; }
.d3 { animation-delay:.14s; } .d4 { animation-delay:.22s; } .d5 { animation-delay:.3s; }
.kpi-block, .composition-block, .modern-chart, .latest-block, #fleetBars, .map-block, .table-block {
  animation:panel-arrive .5s cubic-bezier(.2,.8,.2,1) both;
}
.composition-block { animation-delay:.06s; }
.modern-chart { animation-delay:.12s; }
.latest-block { animation-delay:.16s; }
#fleetBars { animation-delay:.2s; }
.map-block { animation-delay:.24s; }
.table-block { animation-delay:.28s; }
.card { min-height:0; padding:12px 20px 10px; }
.card-brand { font-size:27px; font-weight:800; }
.card-op { min-height:0; margin-top:2px; }
.card-numrow { margin:3px 0 2px; }
.card-num { font-size:56px; line-height:.95; animation:number-settle .55s .2s cubic-bezier(.2,.8,.2,1) both; }
.card-label { margin-top:4px; }
.card-foot { margin-top:7px; }
.cards { gap:14px; }

/* Each section title reads as a real headline, not a label. */
.chart-title, .trajectory-title {
  font-size:22px; line-height:1; font-weight:700; letter-spacing:.12em; color:var(--white);
}
.trajectory-title { font-size:26px; letter-spacing:.075em; }
.chart-sub, .composition-sub, .trajectory-sub { margin-top:8px; }
.trajectory-head { padding:24px 24px 20px; }

/* Fleet overview: dense, strong information hierarchy. */
.kpi-header { padding:18px 24px 10px; }
.kpi-grid { padding:0 0 4px; }
.kpi { padding:15px 24px 17px; }
.kpi-label { font-size:17px; font-weight:800; letter-spacing:.09em; }
.kpi-val { font-size:76px; line-height:.88; margin:7px 0 5px; font-weight:800; }
.kpi-sub { font-size:12px; line-height:1.25; }
.kpi-val { animation:number-settle .5s .18s cubic-bezier(.2,.8,.2,1) both; }

.composition-header, .chart-header, .map-header, .latest-header, .table-header { padding:21px 24px 15px; }
.composition-card { padding:18px 20px; }
.composition-val { line-height:1; }

/* Comparison needs a more assertive reading order. */
.fleet-ranking { padding:0 24px 18px; gap:0; }
.fleet-rank { grid-template-columns:126px 1fr 84px 18px; gap:16px; padding:13px 0; font-size:17px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; }
.fleet-rank strong { font-size:27px; font-weight:700; }
.fleet-track { height:7px; }
.fleet-rank span:last-child { font-size:20px; }
.fleet-rank { grid-template-columns:max-content minmax(0,1fr) max-content 16px; column-gap:10px; }
.fleet-track span { transform:scaleX(0); transform-origin:left center; will-change:transform; }
.fleet-ranking.is-revealed .fleet-track span { animation:rank-fill .68s cubic-bezier(.22,.8,.2,1) calc(var(--rank-index) * .11s) forwards; }
@keyframes rank-fill { to { transform:scaleX(1); } }

@media (max-width:759px) {
  .cards { gap:10px; }
  .card { padding:11px 14px 9px; min-height:0; }
  .card-brand { font-size:19px; font-weight:800; line-height:1.05; }
  .card-op { font-size:11px; min-height:0; }
  .card-numrow { margin:3px 0 0; }
  .card-num { font-size:48px; }
  .card-label { font-size:11px; }
  .card-foot { margin-top:8px; }
  .chart-title { font-size:19px; letter-spacing:.1em; }
  .trajectory-title { font-size:22px; line-height:1; letter-spacing:.07em; }
  .trajectory-head { padding:22px 24px 16px; }
  .trajectory-legend { flex-wrap:nowrap; justify-content:space-between; gap:6px; width:100%; }
  .trajectory-legend .legend-toggle { min-width:0; gap:4px; font-size:11px; letter-spacing:.03em; }
  .trajectory-legend .legend-toggle::before { width:10px; }
  .trajectory-legend .legend-count { display:none; }
  .kpi-header { padding:16px 16px 7px; }
  .kpi-grid { padding-bottom:2px; }
  .kpi { padding:12px 11px 14px; }
  .kpi-label { font-size:12px; letter-spacing:.05em; line-height:1.05; }
  .kpi-val { font-size:54px; margin:6px 0 4px; }
  .kpi-sub { font-size:10px; line-height:1.2; }
  .composition-header, .chart-header, .map-header, .latest-header, .table-header { padding:18px 16px 13px; }
  .fleet-ranking { padding:0 16px 14px; }
  .fleet-rank { grid-template-columns:max-content minmax(0,1fr) max-content 12px; column-gap:8px; padding:11px 0; font-size:14px; font-weight:600; letter-spacing:.04em; }
  .fleet-rank strong { font-size:20px; font-weight:700; }
  .fleet-track { height:5px; }
}
@media (prefers-reduced-motion: reduce) { .fleet-track span { transform:none; } }
.composition-meter > span { animation:none !important; transform:scaleX(0); }
.composition-block.is-revealed .composition-meter > span { animation:rank-fill .68s cubic-bezier(.22,.8,.2,1) calc(var(--i) * .11s) forwards !important; }
.composition-block.motion-seen .composition-meter > span { animation:none !important; transform:scaleX(1); }
.fleet-ranking.motion-seen .fleet-track span { animation:none; transform:scaleX(1); }

/* Registry rows become a compact vehicle + details layout on phones. */
@media (max-width:759px) {
  .table-header { display:block; }
  .table-header .chart-sub { display:block; margin-top:7px; line-height:1.25; }
  .toolbar { display:grid; grid-template-columns:1fr auto; align-items:center; gap:10px; }
  .toolbar .search-wrap { grid-column:1 / -1; min-width:0; order:initial; }
  .toolbar .count-tag { order:initial; padding:0; }
  .toolbar .registry-sort { justify-self:end; }

  .table-shell { overflow:hidden; }
  .table-shell table { table-layout:fixed; }
  .table-shell thead th:first-child,
  .table-shell thead th:last-child,
  .table-shell .td-num,
  .table-shell .td-status { display:none; }
  .table-shell .td-thumb { display:table-cell; width:96px; padding:9px 12px 9px 10px; }
  .table-shell .model-badge,
  .table-shell .model-badge.has-image { width:74px; height:46px; }
  .table-shell .td-thumb .model-badge { margin-left:8px; }
  .table-shell .model-badge-image { width:74px; height:46px; max-width:none; max-height:none; }
  .table-shell .model-badge-name { font-size:9px; letter-spacing:.08em; text-align:center; }
  .table-shell td { height:74px; padding:9px 6px; }
  .table-shell thead th { padding:11px 6px; font-size:11px; letter-spacing:.09em; }
  .table-shell thead th.td-thumb { font-size:0; }
  .table-shell .vin { display:block; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12px; letter-spacing:.025em; }
  .table-shell th:nth-child(3),
  .table-shell td:nth-child(3) { padding-left:12px; }
  .table-shell .registry-model { margin-top:4px; font-size:11px; }
  .table-shell th:nth-child(4),
  .table-shell .td-date { display:table-cell; width:88px; padding-left:6px; padding-right:0; text-align:left; white-space:nowrap; }
  .table-shell .date-tag { font-size:12px; }
}
