*{box-sizing:border-box}:root{--bg:#f5f8fc;--bg-elev:#fff;--surface:hsla(0,0%,100%,.96);--surface-strong:#fff;--border:rgba(15,23,42,.08);--border-strong:rgba(15,23,42,.14);--shadow-xs:0 1px 2px rgba(15,23,42,.06);--shadow-sm:0 2px 6px rgba(15,23,42,.06),0 1px 2px rgba(15,23,42,.04);--shadow-md:0 10px 30px rgba(15,23,42,.1),0 2px 6px rgba(15,23,42,.04);--shadow-lg:0 20px 60px rgba(15,23,42,.16),0 4px 14px rgba(15,23,42,.06);--shadow-xl:0 28px 80px rgba(15,23,42,.18),0 8px 22px rgba(15,23,42,.08);--text:#0f172a;--text-muted:#475569;--text-faint:#94a3b8;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-soft:rgba(37,99,235,.1);--accent-glow:rgba(37,99,235,.25);--warn:#d97706;--warn-soft:rgba(217,119,6,.12);--radius-xs:6px;--radius-sm:10px;--radius-md:14px;--radius-lg:20px;--radius-xl:28px;--radius-pill:999px;--surface-muted:#f1f5f9;--surface-muted-hover:#e2e8f0;--surface-subtle:#f8fafc;--control-track:#cbd5e1;--control-track-strong:#94a3b8;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--text-3xs:10px;--text-2xs:11px;--text-xs:12px;--text-sm:13px;--text-base:14px;--text-md:15px;--text-lg:17px;--text-xl:19px;--text-2xl:22px;--text-3xl:27px;--text-4xl:34px;--leading-tight:1.3;--leading-snug:1.5;--leading-normal:1.7;--leading-relaxed:1.85}body,html{margin:0;padding:0;height:100%;overscroll-behavior:none;font-family:Inter,-apple-system,BlinkMacSystemFont,Hiragino Sans,Noto Sans JP,Yu Gothic UI,Yu Gothic,Meiryo,sans-serif;font-feature-settings:"palt" 1,"cv11" 1;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-shell{position:fixed;top:0;left:0;width:100vw;height:100vh;height:100dvh;overflow:hidden}.home-main{overflow:hidden}.home-main,.home-map,.home-root{position:relative;width:100%}.home-map{height:100vh;height:100dvh}.app-header-menu-btn{display:flex;align-items:center;justify-content:center;gap:7px;width:44px;height:44px;flex-shrink:0;background:var(--surface-muted);border:1px solid transparent;border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer}.app-header-menu-btn:hover{background:var(--surface-muted-hover);color:var(--text)}.menu-btn-label{display:none}@media (min-width:768px){.app-header-menu-btn{width:auto;padding:0 14px}.menu-btn-label{display:inline;font-size:var(--text-sm);font-weight:600;white-space:nowrap}}.home-nav-backdrop{position:fixed;inset:0;z-index:30;background:rgba(15,23,42,.4);opacity:0;pointer-events:none;transition:opacity .2s ease}.is-nav-open .home-nav-backdrop{opacity:1;pointer-events:auto}.home-links{position:fixed;top:0;right:0;bottom:0;z-index:31;width:min(90vw,420px);margin:0;padding:calc(env(safe-area-inset-top) + 22px) 22px calc(env(safe-area-inset-bottom) + 24px);background:var(--bg-elev);overflow-y:auto;transform:translateX(100%);transition:transform .24s ease;box-shadow:var(--shadow-xl)}.is-nav-open .home-links{transform:translateX(0)}.home-nav-close{display:flex;align-items:center;justify-content:center;position:absolute;top:calc(env(safe-area-inset-top) + 14px);right:16px;width:44px;height:44px;border:none;background:transparent;color:var(--text-muted);cursor:pointer;z-index:1}.home-nav-close:hover{color:var(--text)}.home-links-lead-title{font-size:var(--text-xl);font-weight:800;letter-spacing:-.02em;margin:0 0 6px;padding-right:40px;color:var(--text)}.home-links-lead{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-normal);margin:0 0 8px}.home-links-block{margin-top:24px}.home-links-h{font-size:var(--text-base);font-weight:800;color:var(--text);margin:0 0 10px}.home-pref-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));grid-gap:7px;gap:7px}.home-pref-link{display:block;text-align:center;font-size:var(--text-sm);font-weight:600;padding:9px 6px;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text);background:var(--surface-strong)}.home-pref-link:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.home-chip-row{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:7px}.home-chip{display:inline-flex;font-size:var(--text-sm);font-weight:700;padding:8px 15px;border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text);background:var(--surface-strong)}.home-chip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.home-links-foot{margin-top:32px;font-size:var(--text-xs);color:var(--text-faint);line-height:var(--leading-normal)}body{letter-spacing:.005em}a{color:var(--accent);text-decoration:none;transition:color .15s ease}a:hover{color:var(--accent-hover)}button{font-family:inherit}:root{--header-h:60px}.map-root{position:relative;width:100%;height:100%;background:var(--bg)}.map-canvas{top:0;left:0}.map-canvas,.map-skeleton{position:absolute;width:100%;height:100%}.map-skeleton{inset:0;object-fit:cover;object-position:62% 45%;z-index:10;opacity:1;transition:opacity .45s ease;pointer-events:none}.map-skeleton.is-hidden{opacity:0}.map-loading{position:absolute;inset:0;z-index:11;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:transparent;animation:map-loading-fade .25s ease}@keyframes map-loading-fade{0%{opacity:0}to{opacity:1}}.map-loading-spinner{width:32px;height:32px;border-radius:50%;border:3px solid var(--border);border-top-color:var(--accent);animation:map-loading-spin .8s linear infinite}@keyframes map-loading-spin{to{transform:rotate(1turn)}}.map-loading-text{font-size:var(--text-sm);font-weight:600;color:var(--text-muted);letter-spacing:.02em}.app-header{position:absolute;top:0;left:0;right:0;height:calc(var(--header-h) + env(safe-area-inset-top));padding:env(safe-area-inset-top) 14px 0;gap:10px;background:var(--surface);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border-bottom:1px solid var(--border);box-shadow:0 1px 3px rgba(15,23,42,.04);z-index:12}.app-header,.app-header-brand{display:flex;align-items:center}.app-header-brand{gap:8px;flex-shrink:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.brand-mark{width:30px;height:30px;flex-shrink:0;display:block}.brand-name{font-size:var(--text-md);font-weight:800;color:var(--text);letter-spacing:-.01em}@media (max-width:480px){.brand-name{display:none}}.app-header-search{position:relative;flex:1 1;min-width:0}.search-input-wrap{position:relative;display:flex;align-items:center}.search-input-wrap svg{position:absolute;left:14px;color:var(--text-muted);pointer-events:none}.app-header-search input{width:100%;padding:10px 14px 10px 40px;font-size:16px;font-family:inherit;font-weight:500;color:var(--text);background:var(--surface-muted);border:1px solid transparent;border-radius:var(--radius-pill);outline:none;transition:background .15s,border-color .2s,box-shadow .2s}.app-header-search input:focus{background:#fff;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.app-header-search input::placeholder{color:var(--text-faint);font-weight:400}.map-layers{position:absolute;top:calc(var(--header-h) + env(safe-area-inset-top) + 10px);right:14px;z-index:6;display:flex;flex-direction:column;align-items:flex-end;gap:8px;transition:right .3s cubic-bezier(.16,1,.3,1)}.map-layers-btn{display:flex;align-items:center;justify-content:center;gap:7px;height:44px;padding:0 16px;background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-pill);color:var(--text-muted);font-size:var(--text-sm);font-weight:600;cursor:pointer;box-shadow:var(--shadow-sm);transition:background .15s,color .15s,border-color .15s}.map-layers-btn:hover{color:var(--text);border-color:var(--border-strong)}.map-layers-btn.is-active{background:var(--accent-soft);color:var(--accent);border-color:rgba(37,99,235,.2)}.map-layers-btn-label{white-space:nowrap}.search-results{position:absolute;top:calc(100% + 6px);left:0;right:0;list-style:none;margin:0;padding:6px;background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);overflow:hidden;max-height:clamp(220px,50vh,360px);overflow-y:auto;z-index:13}.search-results button{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:44px;text-align:left;padding:12px 14px;border:none;background:transparent;font-size:var(--text-base);font-weight:500;color:var(--text);cursor:pointer;border-radius:var(--radius-sm);transition:background .12s ease}.search-results button.is-active,.search-results button:hover{background:var(--accent-soft)}.search-place{display:flex;align-items:baseline;gap:7px;min-width:0}.search-pref{font-size:var(--text-xs);font-weight:500;color:var(--text-faint);flex-shrink:0}.search-name{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.search-rent{font-size:var(--text-xs);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:10px}.layers-panel{padding:12px 14px;background:var(--surface);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);min-width:244px;max-height:calc(100dvh - var(--header-h) - env(safe-area-inset-top) - 28px);overflow-y:auto;animation:layers-in .2s ease}@keyframes layers-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.is-panel-open .map-layers{right:calc(380px + 30px)}@media (max-width:768px){.is-sheet-open .layers-panel{max-height:calc(100dvh - var(--header-h) - env(safe-area-inset-top) - var(--sheet-h, 252px) - 64px)}}.layers-title{font-size:var(--text-2xs);font-weight:800;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:12px}.layer-toggle{display:flex;align-items:center;gap:12px;padding:5px 0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.layer-toggle.is-disabled{cursor:default;opacity:.7}.layer-toggle input{position:absolute;opacity:0;pointer-events:none}.layer-switch{width:34px;height:20px;background:var(--control-track);border-radius:var(--radius-pill);position:relative;flex-shrink:0;transition:background .2s ease}.layer-switch:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;background:#fff;border-radius:50%;box-shadow:0 1px 3px rgba(0,0,0,.2);transition:left .2s ease}.layer-toggle input:checked+.layer-switch{background:var(--accent)}.layer-toggle input:checked+.layer-switch:after{left:16px}.layer-label{font-size:var(--text-base);color:var(--text);font-weight:500}.metric-radios{display:flex;flex-direction:column;gap:4px;margin-bottom:14px}.metric-radio{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--radius-sm,8px);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;transition:background .15s ease}.metric-radio:hover{background:rgba(15,23,42,.04)}.metric-radio.is-active{background:rgba(37,99,235,.1)}.metric-radio input{position:absolute;opacity:0;pointer-events:none}.metric-radio-label{font-size:var(--text-base);color:var(--text);font-weight:500}.metric-radio:before{content:"";width:16px;height:16px;flex-shrink:0;border-radius:50%;border:2px solid var(--control-track);box-sizing:border-box;transition:border-color .15s ease,box-shadow .15s ease}.metric-radio.is-active:before{border-color:var(--accent);border-width:5px}.metric-radio.is-active .metric-radio-label{font-weight:700;color:var(--text)}.layer-toggle:has(input:focus-visible),.metric-radio:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.layers-desc{margin:2px 0 14px;font-size:var(--text-xs);line-height:1.55;color:var(--text-muted)}.layers-title-sub{margin-top:14px}.filter-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:5px 0}.filter-row-label{font-size:var(--text-sm);color:var(--text);font-weight:500;flex-shrink:0}.filter-segments{display:inline-flex;border:1px solid var(--border);border-radius:var(--radius-pill);overflow:hidden;background:#fff}.filter-seg{font-size:var(--text-xs);font-weight:600;color:var(--text-muted);padding:4px 9px;border:none;background:transparent;cursor:pointer;border-left:1px solid var(--border);transition:background .12s ease,color .12s ease}.filter-seg:first-child{border-left:none}.filter-seg:hover{background:rgba(15,23,42,.04)}.filter-seg.is-active{background:var(--accent);color:#fff}.filter-seg:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.filter-summary{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;padding-top:10px;border-top:1px solid var(--border)}.filter-count{font-size:var(--text-xs);color:var(--text)}.filter-count strong{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.filter-count-note{display:block;font-size:var(--text-2xs);color:var(--text-muted);margin-top:2px}.filter-clear{font-size:var(--text-xs);font-weight:600;color:var(--accent);background:transparent;border:none;cursor:pointer;padding:2px 4px;flex-shrink:0}.filter-clear:hover{text-decoration:underline}.legend{position:absolute;left:18px;bottom:calc(18px + env(safe-area-inset-bottom));padding:12px 14px 10px;background:var(--surface);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-md);z-index:5;min-width:220px;transition:bottom .25s cubic-bezier(.16,1,.3,1)}@media (max-width:768px){.legend{bottom:calc(40px + env(safe-area-inset-bottom));min-width:168px;padding:10px 12px 8px}}.is-sheet-open .legend{bottom:calc(var(--sheet-h, calc(200px + env(safe-area-inset-bottom))) + 16px)}.is-sheet-open .maplibregl-ctrl-bottom-left,.is-sheet-open .maplibregl-ctrl-bottom-right{bottom:calc(var(--sheet-h, calc(200px + env(safe-area-inset-bottom))) + 16px)!important;transition:bottom .25s cubic-bezier(.16,1,.3,1)}.legend-eyebrow{font-size:var(--text-3xs);font-weight:800;color:var(--accent);letter-spacing:.08em;margin-bottom:3px}.legend-title{font-size:var(--text-2xs);font-weight:800;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}.legend-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}.legend-cell{flex:1 1}.legend-nodata{display:flex;align-items:center;gap:6px;font-size:var(--text-3xs);color:var(--text-muted);margin-top:8px}.legend-nodata .legend-cell{flex:0 0 auto;width:12px;height:12px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}.legend-overlay{display:flex;align-items:center;gap:6px;font-size:var(--text-3xs);color:var(--text-muted);margin-top:6px}.legend-overlay .legend-cell{flex:0 0 auto;width:12px;height:12px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}.legend-hazard-cell{background-color:#fff;background-image:repeating-linear-gradient(45deg,rgba(180,83,9,.65) 0 1px,transparent 1px 5px)}.legend-scale{position:relative;height:13px;margin-top:7px;font-size:var(--text-3xs);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.legend-scale span{position:absolute;top:3px;transform:translateX(-50%);white-space:nowrap}.legend-scale span:before{content:"";position:absolute;top:-4px;left:50%;width:1px;height:3px;background:rgba(15,23,42,.28)}.legend-cats{display:flex;flex-direction:column;gap:4px}.legend-cat{display:flex;align-items:center;gap:8px;font-size:var(--text-xs);color:var(--text)}.legend-cats .legend-cell{flex:0 0 auto;width:14px;height:14px;border-radius:3px;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}.maplibregl-ctrl-attrib{background:hsla(0,0%,100%,.7)!important;font-size:var(--text-3xs)!important;border-radius:var(--radius-pill)!important;padding:2px 10px!important}.maplibregl-ctrl-group{border-radius:var(--radius-md)!important;overflow:hidden;box-shadow:var(--shadow-md)!important;border:1px solid var(--border)!important}.maplibregl-ctrl-group button{background-color:hsla(0,0%,100%,.97)!important}.map-tooltip{position:absolute;pointer-events:none;transform:translate(14px,-50%)}.map-tooltip.is-flipped{transform:translate(calc(-100% - 14px),-50%);padding:10px 14px;background:rgba(15,23,42,.94);color:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);font-size:var(--text-xs);white-space:nowrap;z-index:4;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.map-tooltip-name{font-weight:700;font-size:var(--text-base);margin-bottom:3px;letter-spacing:-.005em}.map-tooltip-rent{color:hsla(0,0%,100%,.82);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.map-tooltip-rent strong{color:#fff;font-weight:700}.area-hint{position:absolute;left:50%;bottom:calc(22px + env(safe-area-inset-bottom));transform:translateX(-50%);display:flex;align-items:center;gap:9px;max-width:min(520px,60vw);padding:10px 16px;background:var(--surface);backdrop-filter:saturate(180%) blur(16px);-webkit-backdrop-filter:saturate(180%) blur(16px);border:1px solid var(--border);border-radius:var(--radius-pill);box-shadow:var(--shadow-md);color:var(--text-muted);font-size:var(--text-sm);font-weight:500;z-index:5;pointer-events:none;animation:map-loading-fade .4s ease}.area-hint svg{color:var(--accent);flex-shrink:0}.area-hint strong{color:var(--text);font-weight:700}.area-panel{position:absolute;top:calc(var(--header-h) + env(safe-area-inset-top) + 14px);right:18px;bottom:calc(18px + env(safe-area-inset-bottom));width:380px;background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-xl);overflow-y:auto;z-index:10;animation:slide-in .3s cubic-bezier(.16,1,.3,1)}@keyframes slide-in{0%{opacity:0;transform:translateX(12px) scale(.99)}to{opacity:1;transform:translateX(0) scale(1)}}.panel-head{position:-webkit-sticky;position:sticky;top:0;background:linear-gradient(180deg,var(--surface-strong) 0,var(--surface-strong) 70%,hsla(0,0%,100%,.92) 100%);padding:20px 22px 14px;border-bottom:1px solid var(--border);z-index:1}.panel-head-top{display:flex;justify-content:space-between;align-items:center}.panel-title{margin:0;font-size:var(--text-2xl);font-weight:800;letter-spacing:-.015em}.panel-close{width:44px;height:44px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);font-size:var(--text-2xl);cursor:pointer;border-radius:50%;transition:background .15s ease,color .15s ease}.panel-close:hover{background:rgba(15,23,42,.06);color:var(--text)}.panel-sub{margin:8px 0 0;font-size:var(--text-base);color:var(--text-muted);display:flex;align-items:center;flex-wrap:wrap;gap:4px}.trend-chip{display:inline-flex;align-items:center;padding:3px 10px;margin-left:4px;font-size:var(--text-2xs);font-weight:700;background:var(--accent-soft);color:var(--accent);border-radius:var(--radius-pill);letter-spacing:.02em}.panel-body{padding:18px 22px 22px}.summary-block{font-size:var(--text-base);line-height:1.75;color:var(--text);background:linear-gradient(135deg,rgba(37,99,235,.06),rgba(37,99,235,.02));border:1px solid rgba(37,99,235,.1);padding:14px 16px;border-radius:var(--radius-md);margin-bottom:16px}.metric-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.sheet .metric-grid{display:flex;grid-template-columns:none;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;margin:0 -20px;padding:4px 20px 8px;scrollbar-width:none;-ms-overflow-style:none}.sheet .metric-grid::-webkit-scrollbar{display:none}.sheet .metric-grid>.metric-card{flex:0 0 auto;width:158px;scroll-snap-align:start}.metric-card{background:var(--surface-subtle);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;transition:border-color .15s ease,transform .15s ease,box-shadow .15s ease}.metric-card:hover{border-color:rgba(37,99,235,.35);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.metric-label{font-size:var(--text-2xs);color:var(--text-muted);font-weight:600;letter-spacing:.04em}.metric-value{font-size:var(--text-lg);font-weight:800;margin-top:4px;letter-spacing:-.015em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric-meta{font-size:var(--text-3xs);color:var(--text-faint);margin-top:6px}.metric-est{display:inline-block;margin-left:6px;font-size:var(--text-3xs);color:var(--warn);background:var(--warn-soft);padding:2px 7px;letter-spacing:.02em}.cta-button,.metric-est{font-weight:700;border-radius:var(--radius-pill)}.cta-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:18px;padding:13px 22px;background:linear-gradient(180deg,#3b82f6,var(--accent));color:#fff;font-size:var(--text-base);letter-spacing:.01em;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.18),0 2px 4px rgba(15,23,42,.1),0 8px 20px var(--accent-glow);transition:transform .15s ease,box-shadow .15s ease}.cta-button:hover{transform:translateY(-1px);box-shadow:inset 0 1px 0 hsla(0,0%,100%,.22),0 4px 6px rgba(15,23,42,.12),0 12px 26px var(--accent-glow);color:#fff;text-decoration:none}.panel-related{margin-top:22px}.panel-related-title{font-size:var(--text-2xs);font-weight:800;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:10px}.panel-related-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.panel-related-item{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .15s ease,background .15s ease}.panel-related-item:hover{background:var(--accent-soft);border-color:rgba(37,99,235,.2);text-decoration:none}.panel-related-name{font-size:var(--text-base);font-weight:700;color:var(--text)}.panel-related-rent{font-size:var(--text-xs);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.sheet-scrim{position:absolute;inset:0;background:#0f172a;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);z-index:9;transition:opacity .25s cubic-bezier(.32,.72,0,1)}.sheet{position:absolute;left:0;right:0;bottom:0;background:var(--surface-strong);border-top-left-radius:22px;border-top-right-radius:22px;box-shadow:0 -10px 36px rgba(15,23,42,.16);z-index:10;display:flex;flex-direction:column;overflow:hidden;transition:transform .38s cubic-bezier(.32,.72,0,1);will-change:transform;padding-bottom:env(safe-area-inset-bottom);touch-action:pan-y}.sheet.is-dragging{transition:none}.sheet-handle-wrap{touch-action:pan-y}.sheet-stage-half,.sheet-stage-peek{box-shadow:0 -6px 22px rgba(15,23,42,.12)}.sheet-handle-wrap{display:flex;justify-content:center;align-items:center;height:44px;flex-shrink:0;cursor:-webkit-grab;cursor:grab;touch-action:none}.sheet-handle-wrap:active{cursor:-webkit-grabbing;cursor:grabbing}.sheet-handle-btn{width:100%;height:100%;padding:0;background:transparent;border:none;cursor:inherit;display:flex;justify-content:center;align-items:center}.sheet-handle{width:44px;height:5px;background:var(--control-track);border-radius:3px;transition:background .15s ease,width .15s ease}.sheet-handle-wrap:hover .sheet-handle,.sheet.is-dragging .sheet-handle{background:var(--control-track-strong);width:52px}.sheet-content{padding:0 20px 20px;overflow-y:auto;flex:1 1}.detail-root{max-width:820px;margin:0 auto;padding:24px 20px 72px}.breadcrumb{display:flex;align-items:center;gap:7px;font-size:var(--text-sm);color:var(--text-faint);margin-bottom:16px;flex-wrap:wrap}.breadcrumb-link{color:var(--text-muted);font-weight:600}.breadcrumb-link:hover{color:var(--accent)}.breadcrumb-current{color:var(--text);font-weight:600}.tone-rent{--tone-bg:#e6f1fb;--tone-fg:#185fa5}.tone-kids{--tone-bg:#e1f5ee;--tone-fg:#0f6e56}.tone-hazard{--tone-bg:#faeeda;--tone-fg:#854f0b}.tone-infra{--tone-bg:#eeedfe;--tone-fg:#534ab7}.detail-hero{padding:26px 26px 22px;background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.detail-pref-badge{display:inline-flex;align-items:center;gap:5px;font-size:var(--text-sm);font-weight:700;color:var(--accent);background:var(--accent-soft);padding:4px 11px;border-radius:var(--radius-pill);margin-bottom:12px}.detail-pref-badge:hover{background:rgba(37,99,235,.16);text-decoration:none}.detail-title{margin:0;font-size:var(--text-4xl);font-weight:900;letter-spacing:-.03em;line-height:1.12;color:var(--text)}.detail-title-sub{font-size:var(--text-xl);font-weight:700;color:var(--text-muted);margin-left:6px;letter-spacing:-.01em}.detail-lead{color:var(--text-muted);font-size:var(--text-md);line-height:var(--leading-relaxed);margin:12px 0 0}.hero-stats{list-style:none;margin:20px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px}.hero-stat{display:flex;flex-direction:column;padding:13px 14px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md)}.hero-stat.is-highlight{background:#e6f1fb;border-color:rgba(24,95,165,.18)}.hero-stat.is-nodata-card{background:var(--bg);border-style:dashed;border-color:var(--border-strong)}.hero-stat-head{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:700;color:var(--text-muted);letter-spacing:.02em}.hero-stat.is-highlight .hero-stat-head{color:#185fa5}.hero-stat-value{font-size:var(--text-2xl);font-weight:800;margin-top:5px;letter-spacing:-.02em;line-height:1.2;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-stat.is-highlight .hero-stat-value{color:#042c53}.hero-stat-value .unit{font-size:var(--text-xs);font-weight:600}.hero-stat-value.is-nodata{font-size:var(--text-md);font-weight:700;color:var(--text-faint)}.hero-stat-badge{align-self:flex-start;margin-top:7px;display:inline-flex;align-items:center;gap:3px;font-size:var(--text-2xs);font-weight:700;padding:2px 8px;border-radius:var(--radius-pill)}.badge-rent{color:#0c447c;background:#b5d4f4}.badge-good{color:#0f6e56;background:#9fe1cb}.badge-up{color:#176b34;background:#d9f0d3}.badge-down{color:#6b2480;background:#ecd9f1}.badge-muted{color:var(--text-muted);background:var(--border)}.detail-honesty-note{display:flex;align-items:center;gap:8px;margin:16px 0 0;padding:10px 12px;background:var(--bg);border-radius:var(--radius-md);font-size:var(--text-xs);color:var(--text-muted);line-height:1.6}.detail-honesty-note svg{flex-shrink:0;color:var(--text-faint)}.detail-section{margin-top:30px}.detail-shead{display:flex;align-items:center;gap:10px;margin:0 0 12px}.detail-shead-icon{width:32px;height:32px;border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;background:var(--tone-bg,var(--accent-soft));color:var(--tone-fg,var(--accent));flex-shrink:0}.detail-h2{font-size:var(--text-xl);font-weight:800;letter-spacing:-.015em;margin:0;line-height:var(--leading-tight)}.detail-shead-link{margin-left:auto;font-size:var(--text-sm);font-weight:600;color:var(--accent);display:inline-flex;align-items:center;gap:3px;white-space:nowrap}.detail-sublead{font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-normal);margin:-4px 0 12px}.detail-card{background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px}.detail-p{font-size:var(--text-md);line-height:var(--leading-relaxed);color:var(--text);margin:0}.detail-p strong{color:var(--accent);font-weight:700;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-p-muted{font-size:var(--text-sm);color:var(--text-muted)}.detail-source-line{font-size:var(--text-xs);color:var(--text-faint);margin:12px 0 0;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.detail-source-line .metric-est{margin-left:0}.detail-note{display:flex;gap:8px;align-items:flex-start;margin-top:12px;font-size:var(--text-sm);color:var(--text-muted);line-height:var(--leading-normal)}.detail-note svg{flex-shrink:0;margin-top:2px;color:var(--warn)}.rent-bar{margin-top:14px}.rent-bar-scale{display:flex;justify-content:space-between;font-size:var(--text-2xs);color:var(--text-faint);margin-bottom:5px}.rent-bar-track{position:relative;height:8px;border-radius:var(--radius-pill);background:linear-gradient(90deg,#dbeafe,#93c5fd,#60a5fa,#2563eb,#1e3a8a)}.rent-bar-marker{position:absolute;top:-3px;width:14px;height:14px;border-radius:50%;background:#fff;border:2.5px solid #185fa5;transform:translateX(-50%)}.mini-cards{list-style:none;margin:0;padding:0;display:grid;grid-gap:10px;gap:10px}.mini-cards.cols-2{grid-template-columns:repeat(2,1fr)}.mini-cards.cols-3{grid-template-columns:repeat(3,1fr)}.mini-card{background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px}.mini-card.is-nodata{border-style:dashed;border-color:var(--border-strong)}.mini-card-label{font-size:var(--text-xs);color:var(--text-muted)}.mini-card-value{font-size:var(--text-2xl);font-weight:800;margin-top:4px;letter-spacing:-.02em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.mini-card-value .unit{font-size:var(--text-xs);font-weight:600}.mini-card-value.is-nodata{font-size:var(--text-md);font-weight:700;color:var(--text-faint)}.mini-card-flag{margin-left:8px;font-size:var(--text-2xs);font-weight:700;padding:2px 8px;border-radius:var(--radius-pill);color:#0f6e56;background:#9fe1cb;vertical-align:middle}.mini-card-flag.flag-up{color:#176b34;background:#d9f0d3}.mini-card-flag.flag-down{color:#6b2480;background:#ecd9f1}.mini-card-flag.flag-muted{color:var(--text-muted);background:var(--border)}.mini-card-sub{font-size:var(--text-xs);color:var(--text-faint);margin:8px 0 0}.mini-card.center{text-align:center}.infra-card{background:var(--bg);border:none}.infra-card svg{color:var(--tone-fg,var(--accent))}.infra-card .mini-card-value{margin-top:5px}.hazard-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.hazard-cell{display:flex;align-items:center;gap:11px;padding:14px 16px;border-radius:var(--radius-md);background:var(--bg)}.hazard-cell.is-risk{background:#faeeda}.hazard-cell svg{flex-shrink:0;color:var(--text-faint)}.hazard-cell.is-risk svg{color:#854f0b}.hazard-cell-label{font-size:var(--text-xs);color:var(--text-muted)}.hazard-cell.is-risk .hazard-cell-label{color:#854f0b}.hazard-cell-value{font-size:var(--text-lg);font-weight:800;margin-top:1px}.hazard-cell.is-risk .hazard-cell-value{color:#412402}.nodata-card{display:flex;gap:11px;align-items:flex-start;background:var(--bg);border-radius:var(--radius-md);padding:14px 16px}.nodata-card svg{flex-shrink:0;color:var(--text-faint);margin-top:1px}.nodata-card-text{font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text);margin:0}.nodata-card-text strong{font-weight:800}.nodata-card-reason{display:block;font-size:var(--text-xs);color:var(--text-faint);margin-top:2px}.related-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));grid-gap:10px;gap:10px}.related-card{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 14px;background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-md);transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.related-card:hover{border-color:rgba(37,99,235,.4);box-shadow:var(--shadow-sm);transform:translateY(-1px);text-decoration:none}.related-card svg{color:var(--text-faint);flex-shrink:0}.related-card:hover svg{color:var(--accent)}.related-name{font-size:var(--text-base);font-weight:700;color:var(--text);letter-spacing:-.005em}.related-rent{font-size:var(--text-xs);color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0}.detail-footnav{margin-top:28px;display:flex;gap:18px;flex-wrap:wrap}.detail-back{font-size:var(--text-sm);color:var(--text-muted);display:inline-flex;align-items:center;gap:5px;font-weight:600}.detail-back:hover{color:var(--accent)}@media (max-width:640px){.detail-root{padding:20px 16px 64px}.detail-hero{padding:20px 18px 18px}.detail-title{font-size:var(--text-3xl)}.detail-title-sub{font-size:16px}.hero-stats{grid-template-columns:repeat(2,1fr)}}.pref-rank{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:6px}.pref-rank-item{display:grid;grid-template-columns:28px 1fr auto;align-items:center;grid-gap:10px;gap:10px;padding:10px 14px;background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-sm)}.pref-rank-item:hover{border-color:var(--accent);background:var(--accent-soft);text-decoration:none}.pref-rank-no{font-size:var(--text-sm);font-weight:800;color:var(--accent);text-align:center;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pref-rank-name{font-size:var(--text-md);font-weight:700;color:var(--text);display:inline-flex;flex-direction:column;gap:1px;min-width:0}.pref-rank-pref{font-size:var(--text-2xs);font-weight:600;color:var(--text-faint)}.pref-rank-value{font-size:var(--text-sm);font-weight:700;color:var(--text-muted);display:inline-flex;align-items:center;gap:8px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pref-rank-band{font-size:var(--text-2xs);font-weight:700;color:var(--accent);background:var(--accent-soft);padding:2px 7px;border-radius:var(--radius-pill)}.pref-table-wrap{margin-top:12px;overflow-x:auto;border:1px solid var(--border);border-radius:var(--radius-md)}.pref-table{width:100%;border-collapse:collapse;font-size:var(--text-base)}.pref-table thead th{position:-webkit-sticky;position:sticky;top:0;background:var(--bg-elev);text-align:left;font-size:var(--text-xs);font-weight:700;letter-spacing:.03em;color:var(--text-muted);padding:10px 14px;border-bottom:1px solid var(--border-strong);white-space:nowrap}.pref-table td.num,.pref-table th.num{text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pref-table tbody tr{border-bottom:1px solid var(--border)}.pref-table tbody tr:last-child{border-bottom:none}.pref-table tbody tr:hover{background:var(--accent-soft)}.pref-table tbody th{font-weight:700;text-align:left;padding:9px 14px;white-space:nowrap}.pref-table tbody td{padding:9px 14px;color:var(--text-muted);white-space:nowrap}.pref-table-link{color:var(--text);font-weight:700}.pref-table-link:hover{color:var(--accent)}.pref-chip-grid{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}.pref-chip{display:inline-flex;align-items:center;font-size:var(--text-base);font-weight:700;color:var(--text);background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-pill);padding:7px 15px}.pref-chip:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);text-decoration:none}.faq-list{margin:12px 0 0;padding:0;display:flex;flex-direction:column;gap:10px}.faq-item{padding:14px 16px;background:var(--surface-strong);border:1px solid var(--border);border-radius:var(--radius-md)}.faq-q{font-size:var(--text-md);font-weight:700;color:var(--text);margin:0}.faq-q:before{content:"Q. ";color:var(--accent);font-weight:800}.faq-a{font-size:var(--text-base);line-height:var(--leading-normal);color:var(--text-muted);margin:8px 0 0}.faq-a:before{content:"A. ";color:var(--text-faint);font-weight:800}.search-form{margin-top:18px;display:flex;gap:10px;flex-wrap:wrap}.search-form-input{flex:1 1 260px;min-width:0;font-size:var(--text-md);padding:12px 16px;color:var(--text);background:var(--surface-strong);border:1px solid var(--border-strong);border-radius:var(--radius-sm)}.search-form-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-soft)}.search-form-input::placeholder{color:var(--text-faint)}.search-form-btn{font-size:var(--text-md);font-weight:700;padding:12px 24px;color:#fff;background:var(--accent);border:none;border-radius:var(--radius-sm);cursor:pointer}.search-form-btn:hover{background:var(--accent-hover)}.related-name{display:inline-flex;flex-direction:column;gap:1px;min-width:0}.related-sub{font-size:var(--text-2xs);font-weight:600;color:var(--text-faint)}