/* Analytics uses one neutral surface and one blue scale across every chart. */
:root{
  --analytics-ink:#172b4a;
  --analytics-muted:#5a75a1;
  --analytics-line:#d9dee7;
  --analytics-surface:#fff;
  --analytics-soft:#f3f5f8;
  --analytics-track:#e6e9ef;
  --analytics-fill:#234b8b;
  --analytics-fill-light:#6786b9;
}
.market-insights-page{max-width:1120px;margin-left:auto;margin-right:auto}
.market-insights-page .insight-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:14px}
.market-insights-page .insight-metrics article,
.market-insights-page .insight-panel,
.housing-report,
.market-insights-page .section{border-color:var(--analytics-line);box-shadow:none}
.market-insights-page .insight-metrics article{padding:15px;border-radius:10px;background:var(--analytics-surface)}
.market-insights-page .insight-metrics b{color:var(--analytics-ink);font-size:var(--text-24)}
.market-insights-page .insights-grid{gap:12px;margin-top:14px}
.market-insights-page .insight-panel{padding:17px;border-radius:10px;background:var(--analytics-surface)}
.market-insights-page .insight-panel-head{margin-bottom:15px}
.market-insights-page .insight-panel-head>span{background:#e4e9f2;color:#234479}
.market-insights-page .insight-bar>div,
.market-insights-page .insight-price>div,
.housing-report .commissioning-rank-row>div{background:var(--analytics-track)}
.market-insights-page .insight-bar i,
.market-insights-page .insight-price i,
.housing-report .commissioning-rank-row i{background:linear-gradient(90deg,var(--analytics-fill-light),var(--analytics-fill))}

.district-price-map-section{margin-top:var(--space-5);padding:var(--space-5);border:1px solid var(--analytics-line);border-radius:var(--radius-md);background:var(--analytics-surface)}
.district-price-map-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,.45fr);gap:var(--space-4);align-items:start}
.district-price-map-head h2{margin:0;color:var(--analytics-ink);font:700 var(--text-24) Manrope}
.district-price-map-head p,.district-price-map-note{margin:var(--space-2) 0 0;color:var(--analytics-muted);font-size:var(--text-14);line-height:1.5}
.district-price-map-summary{display:grid;gap:var(--space-1);min-height:68px;padding:var(--space-3) var(--space-4);border:1px solid var(--analytics-line);border-radius:var(--radius-sm);background:var(--analytics-soft);color:var(--analytics-muted);font-size:var(--text-12)}
.district-price-map-summary b,.district-price-map-summary strong{color:var(--analytics-ink);font:700 var(--text-14) Manrope}
.district-price-map-summary strong{font-size:var(--text-20)}
.district-price-map-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(260px,.8fr);gap:var(--space-5);margin-top:var(--space-5);align-items:stretch}
.district-price-map-canvas{min-height:440px;overflow:hidden;border:1px solid var(--analytics-line);border-radius:var(--radius-sm);background:#f8f9fb}
.district-price-map-list{display:grid;align-content:start;gap:var(--space-2);max-height:440px;overflow:auto;padding-right:var(--space-1)}
.district-price-map-list button{display:grid;grid-template-columns:20px minmax(0,1fr) minmax(48px,.8fr) auto;gap:var(--space-2);align-items:center;width:100%;min-height:var(--control-md);padding:var(--space-2);border:1px solid transparent;border-radius:var(--radius-sm);background:transparent;color:var(--analytics-muted);font:400 var(--text-12) Inter;text-align:left;cursor:pointer}
.district-price-map-list button:hover,.district-price-map-list button:focus-visible,.district-price-map-list button.is-active{border-color:var(--analytics-line);background:var(--analytics-soft);outline:0}
.district-price-map-list button>span{color:var(--analytics-muted);font-weight:600}
.district-price-map-list button b{overflow:hidden;color:var(--analytics-ink);font:700 var(--text-12) Manrope;text-overflow:ellipsis;white-space:nowrap}
.district-price-map-list button i{height:var(--space-2);overflow:hidden;border-radius:999px;background:var(--analytics-track)}
.district-price-map-list button i em{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--analytics-fill-light),var(--analytics-fill))}
.district-price-map-list button strong{color:var(--analytics-ink);font:700 var(--text-12) Manrope;white-space:nowrap}
.district-price-map-empty{display:grid;min-height:100%;place-items:center;margin:0;padding:var(--space-5);color:var(--analytics-muted);font-size:var(--text-14);text-align:center}
.district-price-dynamics{margin-top:var(--space-5);padding:var(--space-5);border:1px solid var(--analytics-line);border-radius:var(--radius-md);background:var(--analytics-surface)}
.district-price-dynamics-head{display:flex;align-items:end;justify-content:space-between;gap:var(--space-4)}
.district-price-dynamics-head h2{margin:0;color:var(--analytics-ink);font:700 var(--text-24) Manrope}
.district-price-dynamics-head p,.district-price-dynamics-note{margin:var(--space-2) 0 0;color:var(--analytics-muted);font-size:var(--text-14);line-height:1.5}
.district-price-dynamics-head label{display:grid;gap:var(--space-2);min-width:220px;color:var(--analytics-muted);font:700 var(--text-12) Inter}
.district-price-dynamics-head select{min-height:var(--control-md);padding:0 var(--space-3);border:1px solid var(--analytics-line);border-radius:var(--radius-sm);background:#fff;color:var(--analytics-ink);font:600 var(--text-14) Inter}
.district-price-dynamics-chart{min-height:260px;margin-top:var(--space-5);overflow:hidden;border-bottom:1px solid var(--analytics-line)}
.district-price-dynamics-chart svg{display:block;width:100%;height:260px;overflow:visible}
.district-price-chart-grid path{stroke:var(--analytics-track);stroke-width:1}
.district-price-chart-line{fill:none;stroke:var(--analytics-fill);stroke-width:3;stroke-linecap:round;stroke-linejoin:round}
.district-price-chart-points circle{fill:var(--analytics-fill);stroke:#fff;stroke-width:3}
.district-price-chart-points text{fill:var(--analytics-muted);font:600 12px Inter}

.housing-report{margin-top:14px;padding:26px 30px;border:1px solid var(--analytics-line);border-radius:12px;background:linear-gradient(135deg,#f8f9fb,#f2f4f8)}
.housing-report-head{display:flex;justify-content:space-between;align-items:end;gap:20px}
.housing-report-head h2{margin:5px 0 4px;color:var(--analytics-ink);font:700 var(--text-32) Manrope}
.housing-report-head>div>span{color:var(--analytics-muted);font-size:var(--text-14)}
.housing-report-head label{display:grid;gap:7px;min-width:248px;color:#475c7d;font:700 var(--text-12) Inter}
.housing-report-head select{height:var(--control-lg);padding:0 14px;border:1px solid #cfd5df;border-radius:9px;background:#fff;color:var(--analytics-ink);font:700 var(--text-16) Inter}
.commissioning-tabs{display:grid;grid-template-columns:1fr 1fr;margin-top:22px;overflow:hidden;border:1px solid #d5dbe5;border-radius:9px;background:#fff}
.commissioning-tabs button{height:var(--control-lg);border:0;border-right:1px solid #d5dbe5;background:transparent;color:#546d95;font:700 var(--text-14) Inter;cursor:pointer}
.commissioning-tabs button:last-child{border-right:0}
.commissioning-tabs button.active{background:#e7ecf3;color:#163a74}
.commissioning-tabs button:focus-visible{position:relative;outline:2px solid #1a458a;outline-offset:-2px}
.commissioning-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:18px;overflow:hidden;border:1px solid var(--analytics-line);border-radius:10px;background:#fff}
.commissioning-summary article{min-height:100px;padding:16px 18px;border-right:1px solid var(--analytics-line)}
.commissioning-summary article:last-child{border-right:0}
.commissioning-summary small,.commissioning-summary span{display:block;color:var(--analytics-muted);font-size:var(--text-12)}
.commissioning-summary b{display:block;margin:7px 0 5px;color:var(--analytics-ink);font:700 var(--text-24)/1.12 Manrope}
.commissioning-widgets{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:14px;margin-top:18px}
.commissioning-widget{min-height:285px;padding:20px 22px;border:1px solid var(--analytics-line);border-radius:11px;background:#fff}
.commissioning-widget-head{display:flex;justify-content:space-between;gap:14px}
.commissioning-widget-head h3,.commissioning-detail-head h3{margin:0;color:var(--analytics-ink);font:700 var(--text-20) Manrope}
.commissioning-widget-head p,.commissioning-detail-head p{margin:5px 0 0;color:var(--analytics-muted);font-size:var(--text-12)}
.commissioning-widget-head>span{color:#495f83;font-size:var(--text-12);white-space:nowrap}
.commissioning-columns{display:flex;align-items:end;gap:7px;height:194px;margin-top:18px;padding:0 3px;border-bottom:1px solid #dce1e8}
.commissioning-column{display:grid;grid-template-rows:1fr 19px;flex:1;min-width:8px;height:100%;align-items:end;text-align:center}
.commissioning-column i{display:block;width:100%;min-height:4px;border-radius:4px 4px 0 0;background:linear-gradient(180deg,var(--analytics-fill-light),var(--analytics-fill));transition:height .24s ease}
.commissioning-column span{padding-top:7px;color:#5b76a1;font-size:var(--text-12)}
.commissioning-rank{display:grid;gap:10px;margin-top:21px}
.commissioning-rank-row{display:grid;grid-template-columns:minmax(96px,1fr) minmax(110px,1.65fr) 74px;gap:10px;align-items:center;color:#354560;font-size:var(--text-12)}
.commissioning-rank-row>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.commissioning-rank-row>div{height:14px;overflow:hidden;border-radius:999px}
.commissioning-rank-row i{display:block;height:100%;border-radius:inherit;transition:width .24s ease}
.commissioning-rank-row b{color:var(--analytics-ink);font:700 var(--text-12) Manrope;white-space:nowrap}
.commissioning-detail{margin-top:18px;padding:20px 22px;border:1px solid var(--analytics-line);border-radius:11px;background:#fff}
.commissioning-detail-head{margin-bottom:14px}
.housing-report[data-mode="chart"] .commissioning-detail{display:none}
.housing-report[data-mode="table"] .commissioning-widgets{display:none}
.housing-report[data-mode="table"] .commissioning-detail{margin-top:18px}
.housing-report>.detail-note{margin:18px 0 0;padding:0;background:transparent;border:0;color:var(--analytics-muted);font-size:var(--text-12)}

@media(max-width:900px){
  .market-insights-page .insight-metrics,.commissioning-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
  .district-price-map-layout{grid-template-columns:1fr}
  .district-price-map-list{grid-template-columns:repeat(2,minmax(0,1fr));max-height:none;padding-right:0}
  .district-price-dynamics-head{align-items:stretch;flex-direction:column}
  .commissioning-summary article:nth-child(2){border-right:0}
  .commissioning-summary article:nth-child(-n+2){border-bottom:1px solid var(--analytics-line)}
  .commissioning-widgets{grid-template-columns:1fr}
  .commissioning-widget{min-height:250px}
}
@media(max-width:620px){
  .market-insights-page .insights-grid{grid-template-columns:minmax(0,1fr)}
  .market-insights-page .insight-panel{min-width:0}
  .market-insights-page .insight-panel-head{flex-wrap:wrap}
  .market-insights-page .insight-price{grid-template-columns:minmax(60px,1fr) minmax(24px,1fr) auto;gap:6px}
  .market-insights-page .insight-price b{white-space:normal;overflow-wrap:anywhere}
  .market-insights-page .insight-price>span{overflow-wrap:anywhere;min-width:0}
  .housing-report{padding:20px 14px;border-radius:10px}
  .housing-report-head{align-items:stretch;flex-direction:column}
  .housing-report-head h2{font-size:var(--text-24)}
  .housing-report-head label{min-width:0}
  .commissioning-tabs{margin-top:16px}
  .commissioning-summary{margin-top:12px}
  .commissioning-summary article{min-height:88px;padding:13px}
  .commissioning-summary b{font-size:var(--text-24)}
  .commissioning-widget,.commissioning-detail{padding:16px 14px}
  .commissioning-columns{gap:4px;height:174px}
  .commissioning-rank-row{grid-template-columns:minmax(76px,1fr) minmax(76px,1fr) 62px;gap:7px;font-size:var(--text-12)}
  .market-insights-page .insight-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .district-price-map-section{padding:var(--space-4)}
  .district-price-map-head{grid-template-columns:1fr}
  .district-price-map-layout{gap:var(--space-4);margin-top:var(--space-4)}
  .district-price-map-canvas{min-height:320px}
  .district-price-map-list{grid-template-columns:1fr}
  .district-price-map-list button{min-height:44px}
  .district-price-dynamics{padding:var(--space-4)}
  .district-price-dynamics-head select{min-height:48px;font-size:var(--text-16)}
}
