.page_page__apYWO{max-width:1080px;margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-8);display:flex;flex-direction:column;gap:var(--space-6)}.page_hero__BvqVi{display:flex;flex-direction:column;gap:var(--space-3)}.page_h1__EPfRY{margin:0;font-size:var(--text-title);font-weight:var(--weight-medium);color:var(--text-1)}.page_sub__u25Y4{margin:0;font-size:var(--text-body);color:var(--text-2);max-width:640px}.page_search__icvo7{max-width:480px;margin-top:var(--space-2)}.BackToDashboardBar_back__utXaP{align-self:flex-start;display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface);color:var(--text-2);font-size:var(--text-body);font-weight:var(--weight-medium);text-decoration:none;transition:border-color var(--transition-fast),color var(--transition-fast)}.BackToDashboardBar_back__utXaP:hover{border-color:var(--accent-200);color:var(--accent)}.CityRanking_filters__MxuCa{display:flex;flex-wrap:wrap;gap:var(--space-2);margin-bottom:var(--space-4)}.CityRanking_filterInput__yQ1V2{flex:1;min-width:130px;padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-body);color:var(--text-1)}.CityRanking_filterInput__yQ1V2:focus{outline:none;border-color:var(--accent)}.CityRanking_studentToggle__SHvIV{flex-shrink:0;display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);font-size:var(--text-body);font-weight:var(--weight-medium);color:var(--text-2);cursor:pointer;white-space:nowrap}.CityRanking_studentToggle__SHvIV:hover{border-color:var(--accent-200)}.CityRanking_studentToggleActive__AO6Ns{background:var(--accent-50);border-color:var(--accent-200);color:var(--accent)}.CityRanking_tableWrap__ZmmUF{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.CityRanking_table__DHQT_{width:100%;border-collapse:collapse;font-size:var(--text-body)}.CityRanking_th__ul1Xd{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-caption);font-weight:var(--weight-medium);color:var(--text-3);border-bottom:1px solid var(--border);cursor:pointer;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none}.CityRanking_th__ul1Xd:hover{color:var(--accent)}.CityRanking_thNum__O9xoc{text-align:right}.CityRanking_row__D_1aR{cursor:pointer;transition:background var(--transition-base)}.CityRanking_row__D_1aR:hover{background:var(--bg)}.CityRanking_row__D_1aR td{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border);color:var(--text-1)}.CityRanking_cityCell__GK2A9{font-weight:var(--weight-medium);white-space:nowrap}.CityRanking_cp__gGOdS{margin-left:var(--space-2);color:var(--text-3);font-weight:400;font-size:var(--text-caption)}.CityRanking_num__6lTFR{text-align:right;white-space:nowrap}.CityRanking_dots__vHsJT{color:var(--accent);letter-spacing:1px;font-size:11px}.CityRanking_empty__eXgp5{padding:var(--space-6);text-align:center;color:var(--text-3)}.CityRanking_pagination__F6dNL{display:flex;align-items:center;justify-content:center;gap:var(--space-4);margin-top:var(--space-4)}.CityRanking_pageBtn__DoByl{padding:var(--space-2) var(--space-4);border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);color:var(--text-1);font-size:var(--text-body);cursor:pointer}.CityRanking_pageBtn__DoByl:disabled{opacity:.4;cursor:not-allowed}.CityRanking_pageBtn__DoByl:not(:disabled):hover{border-color:var(--accent);color:var(--accent)}.CityRanking_pageInfo__jj1KM{font-size:var(--text-caption);color:var(--text-3)}.CitySearchBox_box__WGjp_{position:relative;display:flex;align-items:center;gap:var(--space-2);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:0 var(--space-3)}.CitySearchBox_box__WGjp_:focus-within{border-color:var(--accent)}.CitySearchBox_icon__CoA9o{color:var(--text-3);flex-shrink:0}.CitySearchBox_input__v_jmZ{flex:1;border:none;outline:none;background:transparent;padding:var(--space-3) 0;font-size:var(--text-body);color:var(--text-1)}.CitySearchBox_dropdown__od7qN{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:20;margin:0;padding:var(--space-1);list-style:none;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);max-height:320px;overflow-y:auto}.CitySearchBox_item__Y_BxF{display:flex;justify-content:space-between;align-items:baseline;width:100%;padding:var(--space-2) var(--space-3);border:none;background:transparent;border-radius:var(--radius-sm);cursor:pointer;font-size:var(--text-body);color:var(--text-1);text-align:left}.CitySearchBox_item__Y_BxF:hover{background:var(--bg)}.CitySearchBox_itemMeta__ij1Ft{color:var(--text-3);font-size:var(--text-caption)}.CityComparator_picker__BNjjF{max-width:420px;margin-bottom:var(--space-6)}.CityComparator_hint__U85zX{margin:0;padding:var(--space-6);text-align:center;color:var(--text-3);font-size:var(--text-body);background:var(--surface);border:1px dashed var(--border);border-radius:var(--radius-lg)}.CityComparator_tableWrap__9Q7v_{overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface)}.CityComparator_table__kKQNr{width:100%;border-collapse:collapse;font-size:var(--text-body)}.CityComparator_rowLabel__e_FRp{padding:var(--space-3) var(--space-4);text-align:left;font-size:var(--text-caption);color:var(--text-3);white-space:nowrap;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;left:0}.CityComparator_cityHead__xyFB7{position:relative;padding:var(--space-4);text-align:center;border-bottom:1px solid var(--border);border-left:1px solid var(--border);min-width:160px}.CityComparator_cityName__2ybS0{display:block;font-size:var(--text-head);font-weight:var(--weight-medium);color:var(--text-1)}.CityComparator_cityCp__7RYzO{display:block;font-size:var(--text-caption);color:var(--text-3)}.CityComparator_remove__lybcV{position:absolute;top:6px;right:6px;display:inline-flex;padding:3px;border:none;background:transparent;color:var(--text-3);cursor:pointer;border-radius:var(--radius-sm)}.CityComparator_remove__lybcV:hover{color:var(--danger);background:var(--bg)}.CityComparator_cell__48Z_Z{padding:var(--space-3) var(--space-4);text-align:center;border-bottom:1px solid var(--border);border-left:1px solid var(--border);color:var(--text-1);white-space:nowrap}.CityComparator_best__HXzr5{background:var(--pos-bg);color:var(--pos);font-weight:var(--weight-medium)}.CityComparator_worst__WGqQU{background:var(--danger-bg);color:var(--danger)}.CityComparator_cta__1RWyw{display:inline-block;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);background:var(--accent);color:#fff;font-size:var(--text-caption);font-weight:var(--weight-medium);text-decoration:none;white-space:nowrap}.CityComparator_cta__1RWyw:hover{opacity:.9}.CityPriceChart_wrap__ML0ER{display:flex;flex-direction:column;gap:var(--space-2)}.CityPriceChart_svg__JDk1k{width:100%;height:auto;display:block}.CityPriceChart_grid__ptxZE{stroke:var(--border);stroke-width:1}.CityPriceChart_axisLabel__aWTkA{fill:var(--text-3);font-size:11px}.CityPriceChart_apt__8cLIe{stroke:var(--accent);stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round}.CityPriceChart_house__0DN_5{stroke:var(--text-3);stroke-width:2;stroke-dasharray:4 3;stroke-linejoin:round;stroke-linecap:round}.CityPriceChart_legend___qZL6{display:flex;flex-wrap:wrap;gap:var(--space-3);align-items:center;font-size:var(--text-caption)}.CityPriceChart_legApt__hUXha,.CityPriceChart_legHouse__6eT0h{display:inline-flex;align-items:center;gap:6px;color:var(--text-2)}.CityPriceChart_legApt__hUXha:before,.CityPriceChart_legHouse__6eT0h:before{content:"";width:14px;height:3px;border-radius:2px}.CityPriceChart_legApt__hUXha:before{background:var(--accent)}.CityPriceChart_legHouse__6eT0h:before{background:var(--text-3)}.CityPriceChart_legUnit__D4Die{color:var(--text-3);margin-left:auto}.CityPriceChart_empty__JpLvx{margin:0;padding:var(--space-4);font-size:var(--text-body);color:var(--text-3);text-align:center}.CityDetail_page__pC9kX{max-width:880px;margin:0 auto;padding:var(--space-6) var(--space-4) var(--space-8);display:flex;flex-direction:column;gap:var(--space-6)}.CityDetail_hero__J4j6V{display:flex;flex-direction:column;gap:var(--space-2)}.CityDetail_breadcrumb__0aNby{margin:0;font-size:var(--text-caption);color:var(--text-3)}.CityDetail_breadcrumb__0aNby a{color:var(--text-3);text-decoration:none}.CityDetail_breadcrumb__0aNby a:hover{color:var(--accent)}.CityDetail_h1__e0ynr{margin:0;font-size:var(--text-title);font-weight:var(--weight-medium);color:var(--text-1)}.CityDetail_sub__zMeDB{margin:0;font-size:var(--text-body);color:var(--text-2)}.CityDetail_badge__uhCDZ{align-self:flex-start;margin-top:var(--space-1);padding:3px 10px;border-radius:var(--radius-full);font-size:var(--text-caption);font-weight:var(--weight-medium)}.CityDetail_badge_high__MuYKW{background:var(--pos-bg);color:var(--pos);border:1px solid var(--pos-border)}.CityDetail_badge_medium__TBdcr{background:var(--bg);color:var(--text-3);border:1px solid var(--border)}.CityDetail_badge_low__lMyDU{background:var(--warn-bg);color:var(--warn);border:1px solid var(--warn-border)}.CityDetail_kpis__NHGe7{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-3)}.CityDetail_kpi__QUpgj{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.CityDetail_kpiLabel__NQbK1{margin:0 0 var(--space-2);font-size:var(--text-caption);color:var(--text-3)}.CityDetail_kpiValue__6ws4d{margin:0;font-size:var(--text-head);font-weight:var(--weight-medium);color:var(--text-1)}.CityDetail_kpiValue__6ws4d small{font-size:var(--text-caption);color:var(--text-3);font-weight:400}.CityDetail_kpiSub__NtV54{margin:var(--space-1) 0 0;font-size:var(--text-caption);color:var(--text-3)}.CityDetail_dots__0ZkH1{color:var(--accent);letter-spacing:1px;font-size:12px}.CityDetail_block__BGMSF{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--space-4)}.CityDetail_blockTitle__LpU_g{margin:0 0 var(--space-4);font-size:var(--text-head);font-weight:var(--weight-medium);color:var(--text-1)}.CityDetail_rows__QLKhH{display:flex;flex-direction:column}.CityDetail_row__3aEKI{display:flex;justify-content:space-between;align-items:baseline;gap:var(--space-4);padding:var(--space-2) 0;font-size:var(--text-body);color:var(--text-2)}.CityDetail_row__3aEKI+.CityDetail_row__3aEKI{border-top:1px solid var(--border)}.CityDetail_row__3aEKI>span:first-child{flex-shrink:0}.CityDetail_row__3aEKI>span:last-child{min-width:0;color:var(--text-1);font-weight:var(--weight-medium);text-align:right}.CityDetail_muted__u_3Cx,.CityDetail_row__3aEKI>span:last-child.CityDetail_na__AzLlN{color:var(--text-3);font-weight:400}.CityDetail_muted__u_3Cx{font-style:normal}.CityDetail_typeGrid__zbwsM{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.CityDetail_typeCard__sy23M{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--space-4)}.CityDetail_typeName___ymWt{margin:0 0 var(--space-1);font-size:var(--text-caption);color:var(--text-3)}.CityDetail_typeVal__LrXcY{margin:0;font-size:var(--text-head);font-weight:var(--weight-medium);color:var(--text-1)}.CityDetail_typeVal__LrXcY small{font-size:var(--text-caption);color:var(--text-3);font-weight:400}.CityDetail_txLine___vUtC{margin:0 0 var(--space-2);font-size:var(--text-body);color:var(--text-1);font-weight:var(--weight-medium)}.CityDetail_ctas__D6oAD{display:flex;flex-wrap:wrap;gap:var(--space-3)}.CityDetail_ctaPrimary__LUGuF,.CityDetail_ctaSecondary__20Iwx{flex:1;min-width:220px;text-align:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);font-size:var(--text-body);font-weight:var(--weight-medium);text-decoration:none;transition:opacity var(--transition-base)}.CityDetail_ctaPrimary__LUGuF{background:var(--accent);color:#fff}.CityDetail_ctaSecondary__20Iwx{background:var(--surface);color:var(--accent);border:1px solid var(--accent-200)}.CityDetail_ctaPrimary__LUGuF:hover,.CityDetail_ctaSecondary__20Iwx:hover{opacity:.9}.CityDetail_sources__hOZZH{margin:0;font-size:var(--text-caption);color:var(--text-3);line-height:var(--line-normal)}@media (max-width:640px){.CityDetail_kpis__NHGe7{grid-template-columns:1fr 1fr}}