*{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}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}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;background:var(--bg)}.map-canvas,.map-root{width:100%;height:100%}.map-canvas{position:absolute;top:0;left:0}.map-loading{position:absolute;inset:0;z-index:11;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;background:var(--bg);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:13px;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;border-radius:8px;background:radial-gradient(circle at 30% 30%,#60a5fa 0,#2563eb 55%,#1e3a8a 100%);box-shadow:inset 0 -2px 6px rgba(0,0,0,.18),inset 0 1px 1px hsla(0,0%,100%,.4),0 2px 5px rgba(37,99,235,.3);position:relative;flex-shrink:0}.brand-mark:after{content:"";position:absolute;inset:6px;border-radius:5px;background:radial-gradient(circle at 30% 35%,hsla(0,0%,100%,.7) 0 2px,transparent 3.2px),radial-gradient(circle at 65% 55%,hsla(0,0%,100%,.55) 0 1.6px,transparent 2.6px),radial-gradient(circle at 45% 75%,hsla(0,0%,100%,.45) 0 1.4px,transparent 2.4px)}.brand-name{font-size:15px;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:#f1f5f9;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}.app-header-layers-btn{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center;gap:7px;background:#f1f5f9;border:1px solid transparent;border-radius:var(--radius-pill);color:var(--text-muted);cursor:pointer;transition:background .15s,color .15s,border-color .15s}.layers-btn-label{display:none}@media (min-width:768px){.app-header-layers-btn{width:auto;padding:0 14px}.layers-btn-label{display:inline;font-size:13px;font-weight:600;white-space:nowrap}}.app-header-layers-btn:hover{background:#e2e8f0;color:var(--text)}.app-header-layers-btn.is-active{background:var(--accent-soft);color:var(--accent);border-color:rgba(37,99,235,.15)}.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:360px;overflow-y:auto;z-index:13}.search-results button{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;padding:10px 14px;border:none;background:transparent;font-size:14px;font-weight:500;color:var(--text);cursor:pointer;border-radius:var(--radius-sm);transition:background .12s ease}.search-results button:hover{background:var(--accent-soft)}.search-place{display:flex;align-items:baseline;gap:7px;min-width:0}.search-pref{font-size:11.5px;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:12px;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;flex-shrink:0;margin-left:10px}.layers-panel{position:absolute;top:calc(var(--header-h) + env(safe-area-inset-top) + 10px);right:14px;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);z-index:6;min-width:196px;transition:right .3s cubic-bezier(.16,1,.3,1);animation:layers-in .2s ease}@keyframes layers-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.is-panel-open .layers-panel{right:calc(380px + 30px)}.layers-title{font-size:11px;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:#cbd5e1;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:13.5px;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:13.5px;color:var(--text);font-weight:500}.metric-radio:before{content:"";width:16px;height:16px;flex-shrink:0;border-radius:50%;border:2px solid #cbd5e1;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)}.layers-title-sub{margin-top:2px}.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(216px + env(safe-area-inset-bottom))}.is-sheet-open .maplibregl-ctrl-bottom-left,.is-sheet-open .maplibregl-ctrl-bottom-right{bottom:calc(216px + env(safe-area-inset-bottom))!important;transition:bottom .25s cubic-bezier(.16,1,.3,1)}.legend-title{font-size:11px;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:10px;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-scale{display:flex;justify-content:space-between;font-size:10px;color:var(--text-muted);margin-top:6px;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.legend-cats{display:flex;flex-direction:column;gap:4px}.legend-cat{display:flex;align-items:center;gap:8px;font-size:11.5px;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:10px!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%);padding:10px 14px;background:rgba(15,23,42,.94);color:#fff;border-radius:var(--radius-sm);box-shadow:var(--shadow-md);font-size:12px;white-space:nowrap;z-index:4;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.map-tooltip-name{font-weight:700;font-size:13.5px;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:13px;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:22px;font-weight:800;letter-spacing:-.015em}.panel-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border:none;background:transparent;color:var(--text-muted);font-size:22px;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:13.5px;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:11px;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:14px;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:#f8fafc;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:11px;color:var(--text-muted);font-weight:600;letter-spacing:.04em}.metric-value{font-size:17px;font-weight:800;margin-top:4px;letter-spacing:-.015em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.metric-meta{font-size:10px;color:var(--text-faint);margin-top:6px}.metric-est{display:inline-block;margin-left:6px;font-size:10px;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:14px;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:11px;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:13.5px;font-weight:700;color:var(--text)}.panel-related-rent{font-size:12px;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:height .38s cubic-bezier(.32,.72,0,1);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{box-shadow:0 -6px 22px rgba(15,23,42,.12)}.sheet-handle-wrap{display:flex;justify-content:center;align-items:center;height:32px;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:#cbd5e1;border-radius:3px;transition:background .15s ease,width .15s ease}.sheet-handle-wrap:hover .sheet-handle,.sheet.is-dragging .sheet-handle{background:#94a3b8;width:52px}.sheet-content{padding:0 20px 20px;overflow-y:auto;flex:1 1}.detail-root{max-width:800px;margin:0 auto;padding:28px 24px 64px}.breadcrumb{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-faint);margin-bottom:12px}.breadcrumb-link{color:var(--text-muted);font-weight:600}.breadcrumb-link:hover{color:var(--accent)}.breadcrumb-current{color:var(--text);font-weight:600}.detail-hero{padding:28px 28px 24px;background:linear-gradient(180deg,#fff,rgba(239,246,255,.55));border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm)}.detail-title{margin:0 0 12px;font-size:36px;font-weight:900;letter-spacing:-.03em;line-height:1.1;color:var(--text)}.detail-title-sub{display:inline;font-size:22px;font-weight:700;color:var(--text-muted);margin-left:6px;letter-spacing:-.01em}.detail-lead{color:var(--text-muted);font-size:15px;line-height:1.8;margin:0 0 20px}.hero-stats{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);grid-gap:10px;gap:10px}@media (max-width:640px){.hero-stats{grid-template-columns:repeat(2,1fr)}.detail-title{font-size:28px}.detail-title-sub{font-size:17px}.detail-hero{padding:22px 18px 18px}}.hero-stat{display:flex;flex-direction:column;padding:12px 14px;background:#fff;border:1px solid var(--border);border-radius:var(--radius-md)}.hero-stat.is-highlight{background:linear-gradient(180deg,#1e40af,#1e3a8a);color:#fff;border:none;box-shadow:0 4px 14px var(--accent-glow)}.hero-stat.is-highlight .hero-stat-label{color:hsla(0,0%,100%,.78)}.hero-stat-label{font-size:11px;font-weight:700;color:var(--text-muted);letter-spacing:.04em}.hero-stat-value{font-size:19px;font-weight:800;margin-top:4px;letter-spacing:-.015em;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.hero-stat-sub{font-size:11px;color:var(--text-faint);margin-top:2px}.hero-stat.is-highlight .hero-stat-sub{color:hsla(0,0%,100%,.7)}.detail-section{margin-top:32px}.detail-h2{font-size:19px;font-weight:800;letter-spacing:-.015em;margin:0 0 10px;padding-left:12px;border-left:4px solid var(--accent);line-height:1.3}.detail-p{font-size:14.5px;line-height:1.85;color:var(--text);margin:0 0 6px}.detail-p strong{color:var(--accent);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-source-line{font-size:11.5px;color:var(--text-faint);margin:4px 0 0;display:inline-flex;align-items:center;gap:8px}.detail-source-line .metric-est{margin-left:0}.detail-note{margin-top:10px;padding:12px 14px;background:var(--warn-soft);border-radius:var(--radius-md);font-size:13px;color:#7a4a00}.related-grid{list-style:none;margin:12px 0 0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));grid-gap:10px;gap:10px}.related-card{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;background:#fff;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-name{font-size:14px;font-weight:700;color:var(--text);letter-spacing:-.005em}.related-rent{font-size:12px;color:var(--text-muted);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.detail-back{font-size:13px;color:var(--text-muted);display:inline-flex;align-items:center;gap:4px;font-weight:500}.detail-back:hover{color:var(--accent)}