@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;500;600;700;800;900&display=swap');

:root { --bg:#fff; --ink:#111318; --muted:#525b69; --line:#e0e3e9; --blue:#165dff; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--ink); font:17px/1.65 'Noto Sans KR',sans-serif; }
button,input,select { font:inherit; }
button { cursor:pointer; }
button:focus-visible,select:focus-visible { outline:2px solid var(--blue); outline-offset:3px; }
header { height:76px; display:flex; align-items:center; justify-content:space-between; padding:0 5vw; border-bottom:1px solid var(--ink); }
.logo { font-size:28px; font-weight:900; letter-spacing:-1.5px; color:inherit; text-decoration:none; }
.logo:focus-visible { outline:2px solid var(--blue); outline-offset:5px; }
.logo b,.logo span.logo-dot { color:var(--blue); }
.brand-sub { margin-left:18px; font-size:14px; font-weight:500; color:var(--muted); letter-spacing:0; }
.live { display:flex; align-items:center; gap:8px; font-size:14px; color:var(--muted); }
.live i { width:6px; height:6px; background:var(--blue); }
main { max-width:1220px; margin:auto; padding:48px 30px 60px; }
.hero { display:flex; justify-content:space-between; align-items:flex-end; margin-bottom:32px; }
.eyebrow { color:var(--blue); font-size:14px; font-weight:800; letter-spacing:2px; }
h1 { margin:16px 0; font-size:52px; line-height:1.2; letter-spacing:-3px; font-weight:900; }
h1 em { font-style:normal; color:var(--blue); }
.intro { margin:0; line-height:1.8; color:var(--muted); font-size:16px; }
.search { width:340px; }
.search input { width:100%; padding:17px 0; border:0; border-bottom:2px solid var(--ink); background:#fff; border-radius:0; outline:none; }
.search input:focus { border-color:var(--blue); }
.search input::placeholder { color:var(--muted); font-size:16px; }
.stats { display:grid; grid-template-columns:1.15fr 1fr 1fr; border-top:2px solid var(--ink); border-bottom:1px solid var(--line); margin-bottom:32px; }
.stat { padding:20px 26px 22px; margin:0; background:transparent; position:relative; }
.stat:first-child { padding-left:0; }
.stat + .stat:before { content:''; position:absolute; left:0; top:24px; bottom:24px; width:1px; background:var(--line); }
.stat label { color:var(--muted); font-size:14px; }
.stat strong { display:block; font-size:38px; font-weight:900; letter-spacing:-1.5px; margin:5px 0 2px; font-variant-numeric:tabular-nums; }
.stat:first-child strong { color:var(--blue); }
.stat small { color:var(--muted); font-size:14px; }
.tabs { display:flex; gap:28px; border-bottom:1px solid var(--line); margin-bottom:20px; }
.tab { border:0; border-bottom:3px solid transparent; background:transparent; padding:0 0 14px; font-weight:800; color:var(--muted); }
.tab.active { border-color:var(--ink); color:var(--ink); }
.toolbar { display:flex; align-items:center; justify-content:space-between; gap:15px; margin-bottom:22px; }
.filters { display:flex; gap:10px; }
.seg { display:flex; border:1px solid var(--ink); }
.seg button { border:0; border-radius:0; background:#fff; padding:10px 18px; font-weight:700; color:var(--muted); }
.seg button.active { background:var(--ink); color:#fff; }
select { border:1px solid var(--line); border-radius:0; background:#fff; padding:10px 32px 10px 13px; max-width:180px; color:var(--ink); }
.basis { color:var(--muted); font-size:14px; }
.panel { border-top:2px solid var(--ink); overflow:hidden; }
.panel-head { display:flex; justify-content:space-between; align-items:center; padding:22px 0; }
.panel-head h2 { margin:0; font-size:20px; font-weight:800; letter-spacing:-.5px; }
.panel-head span { font-size:14px; color:var(--muted); }
table { width:100%; border-collapse:collapse; text-align:left; }
th { padding:12px 18px; font-size:14px; font-weight:600; color:var(--muted); border-top:1px solid var(--line); border-bottom:1px solid var(--line); background:#f7f8fa; }
td { padding:20px 18px; border-bottom:1px solid var(--line); }
.rank { width:76px; text-align:center; font-size:24px; font-weight:800; color:#596373; font-variant-numeric:tabular-nums; }
th.rank { font-size:14px; font-weight:600; color:var(--muted); }
.rank.top { color:var(--blue); }
.rank.top span { display:inline-grid; place-items:center; width:36px; height:36px; background:var(--blue); color:#fff; }
.apt-name { display:block; font-size:18px; font-weight:700; letter-spacing:-.4px; }
.address { display:block; margin-top:5px; font-size:14px; color:var(--muted); }
.price { text-align:right; font-size:24px; font-weight:800; letter-spacing:-.6px; white-space:nowrap; font-variant-numeric:tabular-nums; }
.date { font-size:14px; color:var(--muted); }
tr.row { cursor:pointer; transition:background .12s; }
tr.row:hover { background:#f0f5ff; }
.detail-link { text-align:right; color:#596373; font-size:22px; }
tr.row:hover .detail-link { color:var(--blue); }
.note { color:var(--muted); font-size:14px; line-height:1.9; margin-top:18px; }
.more { display:block; margin:24px auto; padding:11px 36px; border:1px solid var(--ink); border-radius:0; background:#fff; }
.more:hover { background:var(--ink); color:#fff; }
.empty { padding:70px 20px; text-align:center; color:var(--muted); }
footer { display:flex; justify-content:space-between; gap:20px; margin-top:35px; padding-top:20px; border-top:1px solid var(--ink); color:var(--muted); font-size:14px; }
dialog { width:min(570px,92vw); border:1px solid var(--ink); border-top:5px solid var(--blue); border-radius:0; padding:30px; color:var(--ink); box-shadow:0 20px 80px #0003; }
dialog::backdrop { background:#10182899; }
.close { float:right; background:#fff; border:1px solid var(--line); width:30px; height:30px; font-size:22px; }
.pill { display:inline-block; padding:6px 0; font-size:14px; font-weight:800; color:var(--blue); }
.detail-title { margin:24px 0 6px; font-size:30px; letter-spacing:-1px; }
.detail-price { margin:23px 0; font-size:44px; font-weight:900; letter-spacing:-2px; color:var(--blue); }
.rank-cards { display:grid; grid-template-columns:repeat(3,1fr); gap:0; border-top:2px solid var(--ink); border-bottom:1px solid var(--line); }
.rank-card { padding:18px 12px; color:var(--muted); font-size:14px; }
.rank-card + .rank-card { border-left:1px solid var(--line); }
.rank-card strong { display:block; margin:8px 0 4px; font-size:30px; color:var(--ink); }
.evidence { padding-top:20px; color:var(--muted); line-height:2; font-size:14px; }
.hidden { display:none!important; }
.toolbar { flex-wrap:wrap; }
.filters { flex-wrap:wrap; align-items:center; }
.direct-filter { display:flex; align-items:center; gap:6px; font-size:14px; padding:8px 0; color:var(--muted); cursor:pointer; }
.direct-filter input { accent-color:var(--blue); }
.inactive-row { background:#fafafa; }
.inactive-row .price { color:var(--muted); }
.price small { display:block; font-size:14px; font-weight:400; letter-spacing:0; }
.no-rank { grid-column:1/-1; padding:20px 0; color:var(--muted); font-size:16px; }
.annual-link { background:white; border:1px solid var(--blue); color:var(--blue); padding:8px 12px; margin-top:12px; }
@media(max-width:760px) {
  header { padding:0 18px; height:65px; }.brand-sub { display:none; }.live { font-size:14px; }
  main { padding:28px 16px; }.hero { display:block; }h1 { font-size:42px; letter-spacing:-2px; }
  .search { width:100%; margin-top:20px; }.stats { margin-bottom:27px; }.stat { padding:17px 12px; }
  .stat strong { font-size:28px; }.stat label { font-size:14px; }.stat small { font-size:14px; }
  .toolbar { flex-direction:column; align-items:flex-start; }.filters { flex-wrap:wrap; width:100%; gap:8px; }
  select { flex:1; min-width:95px; }.basis { font-size:14px; }th,td { padding:16px 10px; }.rank { width:46px; font-size:22px; }
  .rank.top span { width:29px; height:29px; }.date-col { display:none; }.price { font-size:22px; }.apt-name { font-size:16px; }
  .address { font-size:14px; }.detail-link { display:none; }.panel-head h2 { font-size:18px; }footer { line-height:1.8; }
  .rank-card { padding:15px 8px; }.rank-card strong { font-size:24px; }
}
#map-panel { border-top:2px solid var(--ink); }
.map-heading { display:flex; justify-content:space-between; align-items:center; padding:26px 0 0; }
.map-heading h2 { font-size:30px; margin:9px 0; letter-spacing:-1px; }
.map-heading p,.map-heading>span { font-size:14px; color:var(--muted); }
.map-layout { display:grid; grid-template-columns:minmax(0,1fr) 235px; align-items:center; }
#map-canvas { min-height:400px; background:radial-gradient(ellipse at center,#f5f7fb,white 70%); }
#map-canvas svg { width:100%; display:block; }
.district-shape { fill:#e9edf3; stroke:white; stroke-width:1.6; cursor:pointer; }
.district-shape.insufficient { fill:#f4f4f4; }
.district-shape.selected { fill:#d3e1ff; stroke:#165dff; stroke-width:2; }
.map-marker { cursor:pointer; outline:none; }
.map-marker text,.map-labels text { font-size:14px; font-weight:600; fill:#424955; paint-order:stroke; stroke:white; stroke-width:3px; }
.map-marker.selected text,.map-labels .selected,.map-marker:focus text { fill:#165dff; font-weight:900; }
.map-marker:focus { filter:drop-shadow(0 0 3px #165dff); }
.dim { opacity:.16; }
.map-north { font-size:16px; fill:#89919e; }
.map-scale path { stroke:#89919e; fill:none; }
.map-scale text { font-size:14px; fill:#89919e; }
#map-info { border-left:1px solid var(--line); padding:20px 0 20px 26px; }
#map-info h3 { font-size:32px; margin:20px 0 12px; letter-spacing:-1px; }
.map-price { font-size:42px; font-weight:900; color:var(--blue); letter-spacing:-2px; }
#map-info p { font-size:14px; color:var(--muted); }
#map-info dl { margin:25px 0; font-size:14px; }
#map-info dl div { display:flex; justify-content:space-between; border-top:1px solid var(--line); padding:13px 0; }
#map-info dd { margin:0; font-weight:800; }
#map-drill { background:var(--ink); color:white; border:0; width:100%; padding:13px 8px; font-size:14px; }
.map-help { line-height:1.9; margin-top:20px; }
.map-source { font-size:14px; color:var(--muted); line-height:1.8; }
.map-source a { color:inherit; }
@media(max-width:760px) { .map-layout { grid-template-columns:1fr; } #map-info { border-left:0; border-top:1px solid var(--line); padding:20px 0; } #map-canvas { min-height:0; } .map-heading h2 { font-size:26px; } .map-marker text,.map-labels text { font-size:16px; } }

.map-labels text { cursor:pointer; }

@media(max-width:760px) { .map-labels text { font-size:20px; } }
.district-chart { margin-top:36px; padding-top:6px; border-top:2px solid var(--ink); }
.chart-intro,.chart-footnote { font-size:14px; color:var(--muted); margin:0 0 22px; line-height:1.8; }
.chart-axis { display:flex; justify-content:space-between; margin:0 100px 8px 115px; color:var(--muted); font-size:14px; }
.bar-list { list-style:none; padding:0; margin:0; }
.district-bar { display:grid; grid-template-columns:115px minmax(0,1fr) 100px; width:100%; align-items:center; background:white; border:0; padding:7px 0; text-align:left; color:var(--ink); }
.district-bar:hover,.district-bar:focus-visible { background:#f0f5ff; }
.bar-label { font-weight:700; font-size:16px; }
.bar-label small { display:inline-block; width:32px; color:var(--muted); font-size:14px; font-weight:500; }
.bar-track { height:25px; background:linear-gradient(to right,transparent calc(50% - 1px),#e0e3e9 50%,transparent calc(50% + 1px)); border-left:1px solid var(--line); border-right:1px solid var(--line); }
.bar-fill { display:block; height:100%; background:var(--blue); }
.bar-value { text-align:right; font-weight:800; font-size:16px; font-variant-numeric:tabular-nums; }
.bar-value small { display:block; font-size:14px; font-weight:400; color:var(--muted); }
.chart-footnote { margin-top:20px; }
.chart-missing { border-top:1px solid var(--line); margin-top:20px; padding-top:18px; color:var(--muted); font-size:14px; line-height:1.9; }
.chart-empty { padding:25px 0; color:var(--muted); }
@media(max-width:760px) { .district-chart .panel-head { display:block; } #chart-basis { display:block; margin-top:8px; } .district-bar { grid-template-columns:85px minmax(0,1fr) 68px; } .bar-label { font-size:14px; } .bar-label small { width:23px; } .bar-value { font-size:16px; } .chart-axis { margin-left:85px; margin-right:68px; } .bar-track { height:23px; } }
/* Longer metropolitan district names, without compressing the price axis. */
.district-bar { grid-template-columns:210px minmax(0,1fr) 100px; }
.chart-axis { margin-left:210px; }
.bar-label { padding-right:12px; }
.rank-cards { grid-template-columns:repeat(auto-fit,minmax(100px,1fr)); }
@media(max-width:760px) { .district-bar { grid-template-columns:120px minmax(0,1fr) 68px; } .chart-axis { margin-left:120px; } .bar-label { font-size:14px; line-height:1.6; } .rank-cards { grid-template-columns:repeat(2,1fr); } }
#my-home { border-top:3px solid var(--blue); border-bottom:1px solid var(--line); padding:24px 0; margin-bottom:12px; }
.home-heading { display:flex; justify-content:space-between; gap:15px; align-items:center; }
.home-heading h2 { margin:10px 0 0; font-size:28px; letter-spacing:-1px; }
.home-actions { display:flex; gap:8px; flex-shrink:0; }
.home-actions button,#retry-home { background:white; border:1px solid var(--line); padding:9px 12px; font-size:14px; }
.home-price { font-size:38px; font-weight:900; color:var(--blue); margin:18px 0; }
.home-price small { display:block; font-size:14px; color:var(--muted); font-weight:400; }
.home-basis,#home-message { font-size:14px; color:var(--muted); }
#home-content { font-size:16px; }
@media(max-width:760px) { .home-heading { align-items:flex-start; flex-direction:column; } .home-heading h2 { font-size:26px; } }
.home-comparison { margin-top:28px; border-top:1px solid var(--line); padding-top:20px; }
.home-comparison h2 { font-size:22px; }
.compare-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.compare-card { border:1px solid var(--line); padding:18px; }
.compare-card h3 { margin:0 24px 10px 0; font-size:18px; }
.compare-remove { float:right; background:white; border:1px solid var(--line); font-size:20px; }
.compare-gap { margin-top:22px; font-size:32px; font-weight:900; color:var(--blue); }
button:disabled { cursor:default; opacity:.55; }
@media(max-width:760px) { .compare-grid { grid-template-columns:1fr; } }
.wide-layer { width:min(1000px,94vw); max-height:88vh; overflow:auto; }
.picker-layer { width:min(680px,94vw); max-height:85vh; overflow:auto; }
.layer-top { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.layer-top h2 { font-size:26px; margin:0; }
.layer-top button { border:1px solid var(--line); background:white; font-size:26px; width:36px; height:36px; }
.picker-controls { display:flex; gap:10px; margin:20px 0; }
.picker-controls input { width:100%; min-width:0; border:1px solid var(--ink); padding:13px; }
#picker-status { color:var(--muted); font-size:16px; }
.picker-result { display:flex; align-items:center; justify-content:space-between; gap:15px; padding:18px 0; border-top:1px solid var(--line); }
.picker-result p { margin:6px 0; color:var(--muted); font-size:14px; }
.picker-result small { font-size:14px; color:var(--muted); }
.picker-result button { flex-shrink:0; border:0; background:var(--blue); color:white; padding:11px; font-size:14px; }
#comparison-content .home-comparison { border-top:0; margin-top:0; }
#open-comparison { background:var(--ink); color:white; border-color:var(--ink); }
@media(max-width:760px) { .wide-layer,.picker-layer { padding:20px; } .home-actions { flex-wrap:wrap; } .picker-result { align-items:flex-start; } .layer-top h2 { font-size:22px; } }
#detail { width:min(900px,94vw); max-height:90vh; overflow:auto; }
.trend-section { margin-top:28px; padding-top:20px; border-top:1px solid var(--line); }
.trend-section h3 { font-size:22px; margin:0 0 15px; }
.trend-scroll { overflow-x:auto; margin:20px 0; }
.trend-scroll svg { display:block; width:100%; min-width:650px; }
.trend-scroll text { font:14px sans-serif; fill:var(--muted); }
.trend-legend { display:flex; flex-wrap:wrap; gap:12px; font-size:14px; }
.trend-legend span::before { content:''; display:inline-block; width:18px; height:3px; background:var(--series); margin-right:6px; vertical-align:middle; }
.trend-summary { display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:15px; font-size:16px; line-height:1.9; }
.trend-summary p { background:#f7f8fa; padding:15px; margin:0; }
.trend-month-label { font-size:16px; }
.trend-evidence { margin-top:15px; font-size:14px; line-height:1.8; }
.trend-evidence details { padding:10px 0; border-bottom:1px solid var(--line); }
.trend-evidence summary { cursor:pointer; font-weight:700; }
.trend-scroll circle { cursor:pointer; }
.trend-scroll circle:focus-visible { outline:2px solid #111; }
.national-shape { stroke:none; cursor:pointer; transition:fill .15s; }
.national-shape:focus-visible { outline:none; }
.national-border { stroke:white; stroke-width:.8; pointer-events:none; }
.national-shape:hover + .national-border,.national-border.selected,.national-shape:focus-visible + .national-border { stroke:#165dff; stroke-width:1.4; }
.province-label { font-size:16px; fill:#182136; paint-order:stroke; stroke:white; stroke-width:3px; pointer-events:none; font-weight:700; }
.map-navigation { display:flex; justify-content:space-between; align-items:center; font-size:16px; padding:12px; gap:10px; }
.map-navigation button { background:white; border:1px solid var(--line); padding:9px 12px; cursor:pointer; }
.map-legend { display:flex; flex-wrap:wrap; justify-content:center; align-items:center; gap:10px; font-size:14px; padding:12px; }
.map-legend i { width:120px; height:10px; background:linear-gradient(90deg,#dfe8fa,#1643b4); }
.map-legend small { flex-basis:100%; text-align:center; color:var(--muted); }
.province-label { font-size:18px; }
/* Compact discovery, optional personal drawer, and regional context. */
.quick-search { display:flex; align-items:center; gap:22px; margin-bottom:22px; }
.quick-search h1 { font-size:28px; letter-spacing:-1px; margin:0 0 6px; }
.quick-search p { margin:0; color:var(--muted); font-size:14px; }
.quick-search .search { flex:1; min-width:160px; width:auto; }
.home-launch { padding:12px 16px; border:1px solid var(--line); background:#f4f7ff; color:var(--blue); font-weight:700; max-width:280px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
#home-message:empty { display:none; }
.home-layer { position:fixed; margin:0 0 0 auto; inset:0 0 0 auto; width:min(660px,94vw); height:100dvh; max-height:100dvh; padding:28px; overflow:auto; border:0; }
.home-layer #my-home { margin:0; border:0; padding:20px 0; }
.home-layer .home-heading h2 { font-size:26px; }
.home-layer .home-heading { flex-wrap:wrap; gap:15px; }
.region-insights { margin:24px 0 30px; padding:22px; border:1px solid var(--line); background:#fbfcff; }
.region-insights .panel-head { gap:16px; flex-wrap:wrap; }
.region-insights h2 { font-size:22px; }
#insights-district { max-width:100%; padding:10px; border:1px solid var(--line); background:white; }
.insight-stats { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:12px; }
.insight-stats article { background:white; padding:16px; border:1px solid var(--line); }
.insight-stats span,.insight-stats small { display:block; font-size:14px; color:var(--muted); line-height:1.7; }
.insight-stats strong { display:block; margin:8px 0; font-size:28px; color:var(--blue); }
.summary-basis { font-size:14px; color:var(--muted); line-height:1.8; }
.insight-more summary { cursor:pointer; font-weight:700; padding:12px 0; }
.insight-columns { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; border-top:1px solid var(--line); margin-top:12px; }
.insight-columns h3 { font-size:18px; margin:22px 0 15px; }
.summary-table { overflow-x:auto; }
.summary-table table { font-size:14px; }
.summary-table td,.summary-table th { padding:10px 6px; white-space:nowrap; }
.price-band { border-bottom:1px solid var(--line); padding:10px 0; }
.price-band h4 { margin:8px 0; }.price-band p { font-size:16px; }
.summary-apartment { display:flex; align-items:center; justify-content:space-between; gap:12px; text-align:left; width:100%; padding:10px 0; border:0; background:transparent; }
.summary-apartment span { min-width:0; font-size:16px; }.summary-apartment small { display:block; color:var(--muted); font-size:14px; margin-top:4px; }
.summary-apartment strong { flex-shrink:0; color:var(--blue); font-size:16px; }
.recent-trades { list-style:none; padding:0; }.recent-trades li { display:grid; grid-template-columns:1fr auto; gap:5px; border-bottom:1px solid var(--line); padding:10px 0; font-size:16px; }.recent-trades small { grid-column:1/-1; color:var(--muted); font-size:14px; }
@media(max-width:900px) { .quick-search { flex-wrap:wrap; }.quick-search>div:first-child { flex-basis:100%; }.insight-stats { grid-template-columns:repeat(2,minmax(0,1fr)); }.insight-columns { grid-template-columns:1fr; } }
@media(max-width:760px) { main { padding-top:22px; }.quick-search h1 { font-size:24px; }.quick-search { gap:12px; }.quick-search .search { min-width:120px; }.home-launch { font-size:14px; padding:11px; max-width:160px; }.home-layer { width:100vw; max-width:100vw; padding:20px; }.region-insights { padding:15px; }.insight-stats article { padding:12px; }.insight-stats strong { font-size:24px; } }
.tabs { overflow-x:auto; }.tab { white-space:nowrap; flex-shrink:0; }
@media(max-width:760px) { .tabs { gap:16px; }.tab { font-size:14px; }#period-select { min-width:130px; }.quick-search .search { margin-top:0; } }

/* Larger text throughout, with room for readable controls on small screens. */
button,input,select { line-height:1.5; }
button,select { min-height:44px; }
header { min-height:76px; height:auto; padding-top:15px; padding-bottom:15px; gap:20px; }
.live { max-width:45%; line-height:1.5; }.live i { flex-shrink:0; }
.quick-search { flex-wrap:wrap; }.quick-search>div:first-child { flex-shrink:0; }
.search input { font-size:18px; }.search input::placeholder { font-size:16px; }
.tab { font-size:17px; padding:12px 0; }
select { font-size:17px; min-width:145px; max-width:260px; }
#insights-district { width:min(100%,320px); }
.rank-cards { grid-template-columns:repeat(auto-fit,minmax(145px,1fr)); }
.close,.layer-top button,.compare-remove { min-width:44px; min-height:44px; font-size:26px; }
.map-layout { grid-template-columns:minmax(0,1fr) 285px; }
.district-bar { grid-template-columns:260px minmax(0,1fr) 130px; min-height:60px; }
.chart-axis { margin-left:260px; margin-right:130px; }
.bar-label { font-size:17px; line-height:1.6; }.bar-label small { font-size:14px; }
.bar-value { font-size:20px; }.bar-value small { font-size:14px; }
.province-label { font-size:24px; }
.picker-result { flex-wrap:wrap; }.picker-result>div { flex:1; min-width:170px; }
.picker-result button { font-size:16px; }
.summary-table td,.summary-table th { font-size:15px; }
.insight-columns { grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); }
footer { flex-wrap:wrap; }
@media(max-width:760px) {
  body { font-size:17px; }.live { font-size:14px; }
  .quick-search { align-items:stretch; }.quick-search .search { flex-basis:100%; }
  .home-launch { font-size:16px; max-width:100%; white-space:normal; }
  .stats { grid-template-columns:1fr; }.stat,.stat:first-child { padding:16px 0; }
  .stat + .stat { border-top:1px solid var(--line); }.stat + .stat:before { display:none; }
  .stat strong { font-size:30px; }.stat label,.stat small { font-size:15px; }
  .tabs { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:4px 14px; overflow:visible; }
  .tab { font-size:17px; min-width:0; white-space:normal; text-align:center; }
  .filters select { min-width:145px; max-width:100%; }
  th,td { padding:16px 7px; }th,th.rank { font-size:14px; }
  .apt-name { font-size:18px; line-height:1.6; }.address { font-size:14px; line-height:1.7; }
  .rank { width:44px; font-size:21px; }.price { font-size:21px; }
  .rank.top span { width:34px; height:34px; }
  .panel-head { gap:12px; flex-wrap:wrap; }.panel-head h2 { font-size:21px; }
  .map-layout { grid-template-columns:1fr; }
  .district-bar { grid-template-columns:125px minmax(0,1fr) 90px; gap:6px; }
  .chart-axis { margin-left:131px; margin-right:96px; }
  .bar-label { font-size:15px; padding-right:0; }.bar-label small { width:25px; }
  .bar-value { font-size:18px; }.bar-value small { font-size:14px; }
  .province-label { font-size:32px; }.map-labels text { font-size:30px; }
  .rank-cards { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .insight-columns { grid-template-columns:minmax(0,1fr); }
  .insight-stats { grid-template-columns:1fr; }.insight-stats strong { font-size:28px; }
  .picker-controls { flex-wrap:wrap; }.picker-controls input { font-size:17px; }
  .summary-table td,.summary-table th { font-size:14px; padding:12px 6px; }
  .summary-apartment { flex-wrap:wrap; }.recent-trades li { font-size:16px; }
}.direct-filter { min-height:44px; }.direct-filter input { width:20px; height:20px; }
@media(max-width:760px) {
  .stats { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .stat { min-width:0; padding:16px 8px; }.stat:first-child { padding-right:12px; }
  .stat:nth-child(2) { border-top:0; border-left:1px solid var(--line); padding-left:16px; }
  .stat:nth-child(3) { grid-column:1/-1; display:flex; flex-wrap:wrap; align-items:center; gap:8px 14px; }
  .stat:nth-child(3) strong { margin:0; }.stat:nth-child(3) small { flex-basis:100%; }
}
