.dash-main{padding:22px;display:flex;flex-direction:column;gap:18px;flex:1;overflow-y:auto}
.kpi-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.kpi{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r-lg);padding:18px 20px;position:relative;overflow:hidden}
.kpi::after{content:'';position:absolute;bottom:0;left:0;right:0;height:2px}
.kpi.red::after{background:var(--red)}.kpi.amber::after{background:var(--amber)}.kpi.green::after{background:var(--green)}.kpi.blue::after{background:var(--blue)}
.kpi-eye{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text3);margin-bottom:9px;font-family:var(--font-mono)}
.kpi-num{font-family:var(--font-display);font-size:38px;font-weight:800;letter-spacing:-.04em;line-height:1}
.kpi-num.red{color:var(--red)}.kpi-num.amber{color:var(--amber)}.kpi-num.green{color:var(--green)}.kpi-num.blue{color:var(--blue)}
.kpi-foot{font-size:11px;color:var(--text3);margin-top:7px}
.kpi-delta{font-size:10px;font-weight:700;margin-right:4px;font-family:var(--font-mono)}
.kpi-delta.up{color:var(--red)}.kpi-delta.dn{color:var(--green)}
.body-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:18px}
.right-col{display:flex;flex-direction:column;gap:16px}
.hz-tbl{width:100%;border-collapse:collapse;margin-top:8px}
.hz-tr{border-bottom:1px solid rgba(48,54,61,.5)}
.hz-tr:last-child{border-bottom:none}
.hz-tr:hover td{background:var(--bg3)}
.hz-td{padding:8px 0;vertical-align:middle}
.hz-rank{width:22px;font-size:10px;font-weight:700;color:var(--text3);font-family:var(--font-mono);text-align:center;padding-right:10px}
.hz-name{font-size:12px;font-weight:500;color:var(--text);min-width:90px;padding-right:12px}
.hz-score{font-size:12px;font-weight:700;font-family:var(--font-mono);color:var(--text2);width:34px;text-align:right;padding-right:10px}
.hz-bar-w{width:80px;padding-right:12px}
.hz-bar-bg{height:3px;background:var(--bg4);border-radius:2px;overflow:hidden}
.hz-bar-fg{height:3px;border-radius:2px}
.hz-chip{font-size:10px;font-weight:700;padding:2px 7px;border-radius:3px;letter-spacing:.03em;white-space:nowrap;font-family:var(--font-mono)}
.c-xh{background:var(--red-dim);color:var(--red)}
.c-h{background:var(--amber-dim);color:var(--amber)}
.c-t{background:var(--green-dim);color:var(--green)}
.c-l{background:var(--blue-dim);color:var(--blue)}
.c-n{background:var(--bg3);color:var(--text3)}
.map-panel{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.map-head{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.map-title{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--text)}
.map-canvas{background:var(--bg);position:relative;height:200px;overflow:hidden;border-bottom:1px solid var(--border)}
.map-layer-ctrl{position:absolute;top:8px;left:8px;display:flex;flex-direction:column;gap:3px;z-index:2}
.lyr{font-size:9px;font-weight:700;letter-spacing:.04em;padding:3px 8px;border-radius:3px;border:1px solid var(--border2);background:rgba(22,27,34,.88);color:var(--text3);cursor:pointer;text-transform:uppercase;transition:all var(--transition);font-family:var(--font-mono)}
.lyr.on{background:var(--red-dim);color:var(--red);border-color:var(--red-mid)}
.map-assess-bar{position:absolute;bottom:0;left:0;right:0;background:rgba(13,17,23,.88);padding:6px 12px;display:flex;align-items:center;gap:8px;border-top:1px solid var(--border)}
.mab-lbl{font-size:9px;color:var(--text3);text-transform:uppercase;letter-spacing:.08em;font-family:var(--font-mono)}
.mab-sel{font-size:11px;background:transparent;border:none;color:var(--text);font-family:var(--font-mono);cursor:pointer;font-weight:700;outline:none}
.mab-sel option{background:var(--bg2)}
.mab-code{margin-left:auto;font-size:9px;color:var(--text3);font-family:var(--font-mono);letter-spacing:.04em}
.map-legend{padding:8px 14px;display:flex;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--border)}
.leg{display:flex;align-items:center;gap:5px;font-size:10px;color:var(--text3);font-family:var(--font-mono)}
.leg-sq{width:8px;height:8px;border-radius:1px;flex-shrink:0}
.ward-info-panel{padding:12px 14px}
.wi-empty{font-size:12px;color:var(--text3);font-style:italic}
.wi-ward{font-family:var(--font-display);font-size:13px;font-weight:700;color:var(--text);margin-bottom:7px}
.wi-grid{display:grid;grid-template-columns:1fr 1fr;gap:5px 14px;margin-bottom:9px}
.wi-field{display:flex;flex-direction:column;gap:2px}
.wi-key{font-size:9px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text3);font-family:var(--font-mono)}
.wi-val{font-size:12px;color:var(--text);font-weight:500}
.wi-btns{display:flex;gap:5px}
.trend-panel{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.trend-ph{padding:12px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.trend-ph-title{font-family:var(--font-display);font-size:12px;font-weight:700;color:var(--text)}
.trend-sel{font-size:11px;background:var(--bg3);border:1px solid var(--border);border-radius:5px;padding:3px 7px;color:var(--text);font-family:var(--font-mono);cursor:pointer;outline:none}
.trend-body{padding:12px 16px}
.tr-row{display:grid;grid-template-columns:54px 1fr 90px;align-items:center;gap:9px;margin-bottom:8px}
.tr-s{font-size:10px;font-weight:700;font-family:var(--font-mono);color:var(--text3);text-align:right}
.tr-bar-bg{height:20px;background:var(--bg3);border-radius:3px;position:relative;overflow:hidden}
.tr-bar-fill{height:100%;border-radius:3px;transition:width .35s}
.tr-score{position:absolute;right:7px;top:50%;transform:translateY(-50%);font-size:10px;font-weight:700;font-family:var(--font-mono)}
.tr-chip{font-size:9px;font-weight:700;padding:2px 7px;border-radius:3px;font-family:var(--font-mono);letter-spacing:.03em;text-align:center}
.idp-section{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r-lg);overflow:hidden}
.idp-row{display:flex;align-items:center;gap:11px;padding:9px 18px;border-bottom:1px solid rgba(48,54,61,.4)}
.idp-row:last-of-type{border-bottom:none}
.idp-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}
.idp-name{font-size:12px;color:var(--text2);flex:1}
.idp-bar-bg{width:80px;height:3px;background:var(--bg4);border-radius:2px}
.idp-bar-fg{height:3px;border-radius:2px}
.idp-count{font-size:12px;font-weight:700;font-family:var(--font-mono);color:var(--text);width:18px;text-align:right}
.idp-note{padding:9px 18px;background:var(--red-dim);border-top:1px solid var(--border);font-size:11px;color:rgba(248,81,73,.75);display:flex;align-items:center;justify-content:space-between}
.idp-cta{font-size:11px;font-weight:700;color:var(--red);cursor:pointer;font-family:var(--font-display)}
.idp-export{padding:10px 18px;display:flex;gap:6px;border-top:1px solid var(--border)}
