/* Scoped density tokens shield dashboard tables from unrelated theme table rules. */
body:has(.ecx){overflow:hidden}
.ecx{position:fixed;inset:74px 12px 12px;z-index:30;height:auto;min-height:0!important;max-width:none!important;margin:0!important;font-size:calc(13px * var(--ecx-text-scale,1))}
.ecx .ecx-main{min-height:0;overflow:hidden}
.ecx .ecx-rail{width:176px;min-height:0;padding-top:12px}
.ecx .ecx-nav{min-height:0;overflow-y:auto}
.ecx .ecx-nav button{font-size:13px;padding:8px 14px;min-height:32px}
.ecx[data-rail-collapsed=true] .ecx-rail{display:none}
.ecx .ecx-view{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;scrollbar-gutter:stable}
.ecx .ecx-top{flex-wrap:nowrap;align-items:center;position:relative;flex-shrink:0}
.ecx .ecx-rail-toggle{font-size:22px!important;width:30px;flex-shrink:0;padding:0!important}
.ecx .ecx-context{flex-shrink:0;line-height:1.3}
.ecx .ecx-sec-t{font-size:16px;line-height:1.4;margin:0 0 8px}
.ecx .ecx-pick,.ecx .ecx-toolbar{align-items:center;gap:6px}
.ecx .ecx-pick :is(input,select){width:clamp(120px,18vw,260px);min-width:0}
.ecx .ecx-toolbar label{display:flex;align-items:center;gap:6px;font-size:12px;min-width:0}
.ecx .ecx-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:8px 0 12px}
.ecx .ecx-summary>div{border-top:2px solid #2ea8ff;background:#10161f;padding:8px 10px;display:flex;flex-direction:column;gap:3px;min-width:0}
.ecx .ecx-summary>div:first-child{border-color:var(--ac)}
.ecx .ecx-summary>div:nth-child(2){border-color:#ff8c5f}
.ecx .ecx-summary :is(span,small){font-size:11px;color:#8fa3bb}
.ecx .ecx-summary strong{font-size:14px;overflow-wrap:anywhere;color:#e6edf6}
.ecx .ecx-summary b{font-size:17px;font-variant-numeric:tabular-nums}
.ecx .ecx-compare-controls{position:relative;display:flex;align-items:center;gap:8px;margin-bottom:8px}
.ecx .ecx-compare-popup{position:absolute;top:34px;left:0;z-index:35;width:min(440px,100%);padding:10px;background:#101b26;border:1px solid #34516b;border-radius:6px;box-shadow:0 12px 32px #0008}
.ecx .ecx-compare-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;max-height:260px;overflow-y:auto;overflow-x:hidden}
.ecx .ecx-compare-options label{display:flex;align-items:center;gap:6px;min-width:0;font-size:12px;overflow-wrap:anywhere;min-height:28px;cursor:pointer}
.ecx .ecx-compare-options input{accent-color:var(--ac);margin:0;flex-shrink:0}
.ecx [hidden]{display:none!important}
.ecx .ecx-legend{flex-wrap:wrap;gap:6px 12px;max-height:104px;overflow-y:auto;overflow-x:hidden;align-items:flex-start}
.ecx .ecx-legend>span{display:inline-flex;gap:4px;align-items:baseline;max-width:100%;overflow-wrap:anywhere;font-size:11px}
.ecx .ecx-heat{overflow:visible}
.ecx .ecx-heat-h,.ecx .ecx-heat-r{display:grid;grid-template-columns:minmax(72px,26%) repeat(24,minmax(0,1fr));min-width:0;gap:1px}
.ecx .ecx-heat-r i:first-child,.ecx .ecx-heat-h i:first-child{width:auto;flex:auto;font-size:10px;overflow-wrap:anywhere;line-height:1.05;justify-content:flex-start}
.ecx .ecx-heat-r i{height:22px!important;min-width:0}
.ecx .ecx-heat-h i{font-size:9px}
.ecx .ecx-heat-scale{flex:1;max-width:160px}
.ecx .ecx-table{table-layout:fixed;width:100%;min-width:0!important}
.ecx .ecx-table :is(th,td){white-space:normal!important;overflow-wrap:anywhere;min-width:0;padding-left:5px!important;padding-right:5px!important}
.ecx .ecx-table th:first-child{width:25%}
.ecx .ecx-panel{overflow-x:visible}
.ecx .ecx-xaxis{display:none}
.ecx .ecx-stats4{display:flex;flex-wrap:wrap}
.ecx .ecx-stat{flex:1 1 125px}
.ecx .ecx-map{grid-template-columns:repeat(13,minmax(0,1fr));min-width:0;gap:4px}
.ecx .ecx-map-scroll{overflow:visible}
.ecx .ecx-tile{padding:4px;overflow-wrap:anywhere;min-width:0}
.ecx .ecx-tile :is(b,i){font-size:10px;white-space:normal}
.ecx-tt{pointer-events:none;width:280px;max-width:calc(100vw - 16px);box-sizing:border-box;overflow-wrap:anywhere}
.ecx .ecx-source-details{position:relative;margin-left:auto;font-size:12px}
.ecx .ecx-source-details summary{cursor:pointer;color:#8fa3bb;padding:5px 8px}
.ecx .ecx-source-details>div{position:absolute;right:0;top:32px;background:#101b26;border:1px solid #34516b;padding:8px;z-index:40;min-width:230px;display:grid;gap:6px}
@media(max-width:900px){.ecx .ecx-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.ecx .dash-sections{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.ecx{inset:58px 4px 4px}.ecx .ecx-rail{width:152px}.ecx .ecx-context span:last-child{display:none}.ecx .ecx-pick{width:100%;flex-wrap:nowrap}.ecx .ecx-pick :is(input,select){width:50%;max-width:50%}.ecx .ecx-heat-h i:nth-child(2n+3){font-size:0}.ecx .ecx-summary strong{font-size:12px}.ecx .ecx-summary b{font-size:15px}.ecx .ecx-map{grid-template-columns:repeat(3,minmax(0,1fr))}.ecx .ecx-tile{grid-column:auto!important;grid-row:auto!important;min-height:58px}.ecx .ecx-tile :is(b,i){font-size:11px}.ecx .ecx-chip[data-tt] span{display:none}.ecx .ecx-context{gap:4px 8px}}
@media(max-width:600px){.ecx .ecx-table thead{display:none}.ecx .ecx-table,.ecx .ecx-table tbody{display:block}.ecx .ecx-table tbody tr{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;background:#10161f;border:1px solid #28344a;border-radius:5px;margin-bottom:8px;padding:6px}.ecx .ecx-table td{display:flex;flex-direction:column;align-items:flex-start;text-align:left!important;border:0!important;padding:4px!important}.ecx .ecx-table td::before{content:attr(data-label);font-size:10px;color:#8fa3bb}.ecx .ecx-table td:first-child{grid-column:1/-1}.ecx .ecx-compare-options{grid-template-columns:1fr}.ecx .ecx-source-details>div{max-width:calc(100vw - 28px)}}
@media(max-width:700px){.ecx .ecx-rail{position:absolute;inset:0 auto 0 0;width:176px;padding-top:44px;z-index:45;box-shadow:12px 0 28px #0008}.ecx .ecx-rail-toggle{position:relative;z-index:46}}
.ecx .ecx-brand{letter-spacing:.02em;line-height:1.35;align-items:flex-start;overflow-wrap:break-word}
.ecx .ecx-brand-dot{flex-shrink:0;margin-top:4px}
.ecx .ecx-all-markets{display:flex;flex-wrap:wrap;gap:4px;width:100%}
.ecx .ecx-all-markets .ecx-chipb{height:auto;min-height:28px;white-space:normal;text-align:left}
.ecx .ecx-pick{min-width:0;max-width:100%}
.ecx .ecx-sel{max-width:100%}
.ecx button.ecx-tile{font:inherit;color:inherit;text-align:left;cursor:pointer;min-width:0}
:is(.ecx,.airq){--dash-cell-y:4px;--dash-gap:8px;line-height:1.35}
:is(.ecx,.airq)[data-dens=compact]{--dash-cell-y:2px}
:is(.ecx,.airq) :is(.ecx-view,.airq-view){padding:10px!important;min-width:0}
:is(.ecx,.airq) :is(.ecx-top,.airq-top){padding:8px 10px;gap:6px}
:is(.ecx,.airq) :is(.ecx-chip,.airq-chip,.ecx-stat,.airq-stat){padding:5px 8px;gap:6px;border-radius:5px;min-width:0}
:is(.ecx,.airq) :is(.ecx-panel,.airq-panel){padding:9px 10px!important;margin-bottom:8px;border-radius:6px;min-width:0;overflow-x:auto}
:is(.ecx,.airq) :is(.ecx-panel-t,.airq-panel-t){margin:0 0 7px;font-size:.96em;line-height:1.35}
:is(.ecx,.airq) :is(.ecx-sec-t,.airq-sec-t){margin:0 0 8px;font-size:1.04em;line-height:1.35}
:is(.ecx,.airq) :is(.ecx-table,.airq-table){font-size:.963em!important;line-height:1.3;table-layout:auto;border-radius:5px;overflow:visible;margin:0!important}
:is(.ecx,.airq) :is(.ecx-table,.airq-table) :is(th,td){padding:var(--dash-cell-y) 8px!important;font-size:inherit!important;line-height:1.3!important;vertical-align:middle}
:is(.ecx,.airq) :is(.ecx-table,.airq-table) th{font-size:.9em!important;text-transform:none;letter-spacing:.02em;white-space:nowrap}
:is(.ecx,.airq) :is(.ecx-table,.airq-table) :is(th.dash-number,th.airq-rh,td.ecx-r,td.airq-r){text-align:right!important;font-variant-numeric:tabular-nums}
:is(.ecx,.airq) :is(.ecx-table,.airq-table) :is(th.dash-center,td.airq-c){text-align:center!important}
:is(.ecx,.airq) :is(.ecx-table,.airq-table) :is(button,b,strong){font-size:inherit;line-height:inherit;margin:0}
:is(.ecx,.airq) :is(.ecx-table,.airq-table) svg{display:inline-block;vertical-align:middle;margin:0!important;height:18px;max-width:100%}
.airq .airq-source-time{display:inline-block;margin:0 0 0 6px;font-size:10px;white-space:nowrap;line-height:1.3}
.airq .airq-cls{padding:2px 6px!important;font-size:.88em;line-height:1.3;white-space:nowrap}
:is(.ecx,.airq) :is(.ecx-toolbar,.airq-toolbar,.ecx-pager,.airq-pager){gap:6px;margin:6px 0}
:is(.ecx,.airq) :is(.ecx-chipb,.airq-chipb,.ecx-sel,.airq-search){box-sizing:border-box;min-height:28px;padding:3px 8px!important;font-size:.93em;line-height:1.3;border-radius:4px;margin:0}
:is(.ecx,.airq) :is(.ecx-chipb,.airq-chipb,.ecx-sel,.airq-search){height:28px}
:is(.ecx,.airq) :is(.ecx-stats4,.airq-stats4){gap:6px;margin-bottom:8px}
:is(.ecx,.airq) :is(.ecx-gwrap,.airq-gwrap){gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}
.dash-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:start}
.dash-sections>*{grid-column:1/-1;min-width:0}.dash-sections>:is(.ecx-panel,.airq-panel){grid-column:auto;margin:0!important}.dash-sections>.dash-wide{grid-column:1/-1}
.ecx .ecx-zgrid{grid-template-columns:repeat(auto-fill,minmax(min(185px,100%),1fr));gap:7px}
.ecx .ecx-zcard{padding:8px;border-radius:5px;min-width:0}
.ecx .ecx-zcard-h{align-items:start;gap:6px}.ecx .ecx-zcard-h strong{font-size:1em;margin:0;line-height:1.3;min-height:2.6em}
.ecx .ecx-zcard-avg{font-size:21px;margin:2px 0;line-height:1.3}.ecx .ecx-zcard-avg small{font-size:11px}
.ecx .ecx-context{display:flex;gap:6px 12px;flex-wrap:wrap;padding:6px 10px;background:#101b26;border-bottom:1px solid #28344a;font-size:11px;color:#9cb4c9}.ecx .ecx-context strong{color:#e5f2fb}
.ecx-market-tools{display:flex;gap:6px;flex-wrap:wrap;align-items:end;margin-bottom:8px}.ecx-market-tools label{display:flex;flex-direction:column;gap:3px;font-size:11px;flex:1}
.ecx-market-tools :is(input,button),.ecx-market-actions button{height:28px;padding:3px 8px;border:1px solid #34516b;background:#101b26;color:#e4f0fa;border-radius:4px;font:inherit;box-sizing:border-box}
.ecx-market-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(210px,1fr);gap:8px;align-items:start}.ecx-geographic-map{height:clamp(400px,60dvh,650px);min-width:0;isolation:isolate;background:#253645}
.ecx-market-inspector{min-width:0;border:1px solid #28344a;padding:8px}.ecx-market-inspector h3{margin:0 0 4px;font-size:14px;line-height:1.3}.ecx-market-code,.ecx-market-inspector p,.ecx-market-status{font-size:11px;line-height:1.4;color:#97b0c5;margin:5px 0}
.ecx-market-inspector dl{margin:8px 0}.ecx-market-inspector dl>div{display:flex;justify-content:space-between;gap:8px;padding:4px 0;border-bottom:1px solid #253447;font-size:12px}.ecx-market-inspector :is(dt,dd){margin:0}.ecx-market-inspector dd{text-align:right;font-variant-numeric:tabular-nums;color:#e7f4ff}
.ecx-market-actions{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0}.ecx-market-list{max-height:250px;overflow:auto}.ecx-market-list button{display:flex;width:100%;justify-content:space-between;gap:8px;text-align:left;padding:6px;border:0;border-bottom:1px solid #24374a;background:#101b26;color:#b9d0e3;font:inherit;font-size:11px}.ecx-market-list button[aria-pressed=true]{background:#19344b;color:#fff}.ecx-market-list b{white-space:nowrap;font-variant-numeric:tabular-nums}
.ecx-market-panel:fullscreen{background:#0b1421;color:#dce6f2;padding:12px;overflow:auto}.ecx-market-panel:fullscreen .ecx-geographic-map{height:calc(100dvh - 100px)}
@media(max-width:900px){.ecx-market-layout{grid-template-columns:minmax(0,1fr)}.ecx-geographic-map{height:440px}.ecx-market-list{max-height:180px}.ecx-market-panel:fullscreen .ecx-geographic-map{height:60dvh}}
@media(max-width:1000px){:is(.ecx,.airq) :is(.ecx-gwrap,.airq-gwrap),.dash-sections{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){:is(.ecx,.airq) :is(.ecx-view,.airq-view){padding:6px!important}:is(.ecx,.airq) :is(.ecx-chipb,.airq-chipb,.ecx-sel,.airq-search){min-height:32px;height:32px}.ecx .ecx-context{padding:6px}.airq .airq-source-time{margin-left:4px}}
