/* Read the data before the decoration. Existing DS tokens and menus remain the controls. */
.map-options{align-items:flex-start}
.map-options>.filter-dropdown>.filter-trigger{max-width:235px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.display-size[hidden]{display:none}
.city-quality-picker{display:flex;gap:3px;padding:3px;border-radius:var(--radius-md);background:var(--bg-secondary)}
.city-quality-picker button{flex:1;min-height:36px;padding:6px 9px;border-radius:var(--radius-sm);font-size:12px;color:var(--text-tertiary);white-space:nowrap}
.city-quality-picker [aria-pressed=true]{background:var(--bg-primary);color:var(--text-brand-primary);box-shadow:var(--shadow-xs)}
#city-quality-status{display:block;min-height:20px;margin:5px 0 9px;color:var(--text-tertiary);font-size:11px}
body[data-view]:not([data-view=city]) :is(.map-area>.map-options,.city-sector-summary,.city-minimap),
.map-area.map-inspector-expanded>.map-options{display:none}
.city-sector-summary{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.city-sector-summary[hidden],.city-minimap[hidden],.city-sector-card[hidden]{display:none}
.city-sector-card{
 position:absolute;inset:0 auto auto 0;width:208px;height:118px;display:grid;align-content:center;gap:6px;
 padding:10px 12px;pointer-events:auto;text-align:left;color:#f4fafb;background:#17333e;
 border:1px solid #43606a;border-radius:10px;box-shadow:0 3px 10px #132d3826;contain:layout style;
 font-variant-numeric:tabular-nums
}
button.city-sector-card:hover,button.city-sector-card:focus-visible{background:#203e4b;color:white;border-color:#9abcc5}
.sector-heading,.sector-move,.sector-value{display:flex;align-items:center;gap:7px;min-width:0;line-height:1.3}
.sector-heading strong{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:650}
.sector-heading .ui-icon{--icon-size:15px;color:#afc7d1;flex:none}
.sector-heading .ui-icon:last-child{--icon-size:13px}
.sector-move,.sector-value{justify-content:space-between}
.sector-move small,.sector-value small{color:#b7cbd2;font-size:11px}
.sector-move b{font-size:17px;line-height:1.1;font-weight:650}
.city-sector-card[data-tone=up] .sector-move b{color:#80e4b9}
.city-sector-card[data-tone=down] .sector-move b{color:#ffa49c}
.sector-value span{font-size:11px;font-weight:550}
.sector-breadth{display:flex;height:3px;border-radius:2px;overflow:hidden;background:#5c7079}
.sector-foot{display:flex;align-items:center;justify-content:space-between;gap:6px;color:#c6d9df;font-size:10px;line-height:1.2}
.sector-foot small{font:inherit;color:#b7cbd2}
.city-sector-card[data-empty=true]{height:78px;gap:10px}
.city-sector-card[data-empty=true] :is(.sector-move,.sector-value,.sector-breadth){display:none}
.sector-breadth i:nth-child(1){background:#71cba7}
.sector-breadth i:nth-child(2){background:#d6b56f}
.sector-breadth i:nth-child(3){background:#ed918b}
.city-minimap{position:absolute;right:20px;bottom:84px;z-index:3;border:1px solid var(--border-primary);border-radius:12px;background:var(--bg-primary);box-shadow:var(--shadow-sm);overflow:hidden;width:170px}
.city-minimap.is-left{right:auto;left:20px;bottom:134px}
.city-mini-heading{width:100%;min-height:34px;padding:7px 10px;display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:11px;font-weight:600}
.city-mini-heading .ui-icon{--icon-size:14px;transition:transform .15s}
.city-minimap.is-collapsed .city-mini-heading .ui-icon{transform:rotate(180deg)}
.city-minimap.is-collapsed .city-mini-body{display:none}
.city-mini-body canvas{display:block;cursor:crosshair;touch-action:manipulation}
.city-mini-body canvas:focus-visible{outline:2px solid var(--bg-brand-solid);outline-offset:-2px}
.city-mini-home{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;min-height:32px;border-top:1px solid var(--border-primary);font-size:11px;color:var(--text-secondary)}
.city-mini-home .ui-icon{--icon-size:14px}
.map-data-health{display:inline-flex;align-items:center;gap:5px;min-height:30px;align-self:flex-start;padding:0 6px;color:var(--text-tertiary);font-size:11px;border-radius:6px}
.map-data-health .ui-icon{--icon-size:14px}
.map-data-health:hover{background:var(--bg-secondary)}
.quote-quality{display:inline-flex;align-items:center;gap:5px;margin:6px 0 0;font-size:11px;font-weight:500;line-height:1.5;color:var(--text-tertiary)}
.quote-quality .ui-icon{--icon-size:13px}
.quote-quality[data-state=stale],.quote-quality[data-state=delayed]{color:var(--text-warning-primary,#93620c)}
.hover-quality{margin-top:8px;padding-top:8px;border-top:1px solid var(--border-primary)}
.city-data-health{width:min(500px,calc(100vw - 24px))}
.city-data-health h2{margin:0;font-size:22px}
.city-data-health .panel-scroll{line-height:1.6}
.city-data-health .city-data-reference{font-size:13px;color:var(--text-tertiary)}
.city-data-health dl{display:grid;gap:14px;margin:20px 0}
.city-data-health dl>div{display:flex;justify-content:space-between;gap:24px}
.city-data-health dt{font-size:14px;color:var(--text-secondary)}.city-data-health dd{margin:0;font-weight:600;font-size:14px}
.city-data-health .quiet-note{font-size:12px;color:var(--text-tertiary)}
@media(max-width:580px){
 .city-sector-card{width:178px;height:114px;padding:9px 10px}
 .city-minimap{width:130px;right:12px;bottom:72px}.city-mini-heading,.city-mini-home{min-height:40px;font-size:10px}
 .city-quality-picker button{min-height:44px}.map-data-health{min-height:44px;font-size:13px}
}
@media(prefers-reduced-motion:reduce){.city-mini-heading .ui-icon{transition:none}}

/* The exchange is a scope filter. All visual controls share the Display dialog. */
.map-toolbar-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:34px;padding:0 12px;background:var(--bg-primary);border:1px solid var(--border-primary);border-radius:var(--radius-md);box-shadow:var(--shadow-xs);font-size:13px;font-weight:550}
.map-toolbar-button .ui-icon{--icon-size:16px;color:var(--text-secondary)}
.map-toolbar-button:hover{background:var(--bg-primary-hover)}
.map-settings-dialog{
 width:min(420px,calc(100vw - 32px));max-width:none;max-height:min(760px,calc(100dvh - 40px));padding:0;margin:auto;
 background:var(--bg-primary);color:var(--text-primary);border:1px solid var(--border-primary);border-radius:16px;box-shadow:var(--shadow-xl)
}
.map-settings-dialog[open]{display:flex;flex-direction:column;overflow:hidden}
.map-settings-dialog::backdrop{background:#12273260}
.map-settings-dialog>header,.map-settings-dialog>footer{position:static;display:flex;align-items:center;justify-content:space-between;flex:none;padding:14px 20px;min-height:0;height:auto;margin:0;background:var(--bg-primary)}
.map-settings-dialog>header{border-bottom:1px solid var(--border-secondary)}
.map-settings-dialog h2,.walk-card h2{margin:0;font-size:20px;line-height:1.25;letter-spacing:-.03em;font-weight:650}
.map-settings-close{width:36px;height:36px;display:grid;place-items:center;border-radius:8px;color:var(--text-tertiary)}
.map-settings-close:hover{background:var(--bg-secondary)}
.map-settings-dialog>footer{justify-content:flex-end;border-top:1px solid var(--border-secondary)}
.map-settings-scroll{overflow:auto;overscroll-behavior:contain;padding:8px 20px;min-height:0}
.map-settings-scroll>#sector-overview-toggle{margin:4px 0 10px;padding:12px;width:100%;background:var(--bg-secondary);border-radius:10px}
.map-settings-dialog [hidden]{display:none!important}
.map-setting-group{border-top:1px solid var(--border-secondary)}
.map-setting-group>summary{display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none;font-size:14px;font-weight:550;min-height:48px}
.map-setting-group>summary::-webkit-details-marker{display:none}
.map-setting-group>summary .ui-icon{--icon-size:17px;color:var(--text-tertiary)}
.map-setting-group>summary .ui-icon:last-child{margin-left:auto;--icon-size:14px}
.map-setting-group[open]>summary .ui-icon:last-child{transform:rotate(180deg)}
.map-setting-body{padding:0 4px 14px}
.map-setting-body>.filter-dropdown,.map-setting-body>.period-picker,.map-setting-body .period-picker .filter-dropdown{display:block;width:100%}
.map-setting-body .filter-trigger{width:100%;justify-content:space-between;min-height:40px;margin:5px 0 0;box-shadow:none}
.map-setting-body .filter-panel{position:static;inset:auto;width:100%;max-height:220px;overflow:auto;box-shadow:none;margin:4px 0 8px}
.map-setting-body .filter-item{width:100%;text-align:start}
.map-setting-body .display-title:not(:first-child){margin-top:14px}
.map-setting-body .display-tiles{grid-template-columns:1fr 1fr}
#city-walkthrough{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;padding:0;margin:0;border:0;background:transparent;overflow:hidden;color:var(--text-primary)}
#city-walkthrough{border-radius:0;box-shadow:none}
#city-walkthrough::backdrop{background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
#city-walkthrough.no-guide-target{background:#10263180}
.walk-target{position:absolute;border:2px solid #80b7ff;border-radius:10px;box-shadow:0 0 0 100vmax #10263180;pointer-events:none}
.walk-card{position:absolute;width:min(340px,calc(100% - 24px));max-height:calc(100% - 24px);overflow:auto;padding:18px 20px;border-radius:14px;background:var(--bg-primary);box-shadow:var(--shadow-xl)}
.walk-top,.walk-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}
.walk-top{color:var(--text-brand-primary);font-size:12px;font-weight:600;margin-bottom:12px}
.walk-top button{color:var(--text-tertiary);font-size:12px;min-height:32px}
.walk-card p{font-size:14px;line-height:1.55;color:var(--text-secondary);margin:9px 0 16px}
.walk-actions button:disabled{visibility:hidden}

@media(max-width:580px){
 .map-area>.map-options{position:absolute;top:8px;left:auto;right:12px;display:flex;flex-wrap:nowrap;max-width:calc(100% - 24px);gap:6px}
 .map-toolbar-button,.map-settings-close,.map-setting-body .filter-trigger,.map-setting-body .filter-item,.walk-card button,.map-settings-dialog footer button{min-height:44px}
 .map-settings-dialog{width:100%;margin:auto 0 0;max-height:88dvh;border-radius:18px 18px 0 0}
 .map-settings-dialog>footer{padding-bottom:max(14px,env(safe-area-inset-bottom))}
 .map-settings-dialog>footer button{width:100%}
}
