:root{--color-bg:#f4f4f5;--color-surface:#fff;--color-surface-muted:#e9ecef;--color-text:#1f2328;--color-text-muted:#545b63;--color-border:#d0d4d9;--color-border-strong:#6b7280;--color-primary:#0056b3;--color-primary-hover:#004494;--color-on-primary:#fff;--color-primary-text:#0056b3;--color-focus:#0056b3;--color-focus-on-primary:#fff;--color-warning-bg:#fff3cd;--color-warning-text:#664d03;--color-warning-border:#ffe69c;--color-source-sh:#0056b3;--color-source-lh:#2e8b57;--color-source-hug:#e67e22;--color-marker-border:#fff;--color-marker-fallback:#545b63;--font-sans:system-ui, -apple-system, BlinkMacSystemFont, "Apple SD Gothic Neo", "Noto Sans KR", "Segoe UI", Roboto, sans-serif;--font-size-sm:.875rem;--font-size-base:1rem;--font-size-lg:1.25rem;--line-height-body:1.5;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--radius-sm:4px;--radius-md:8px;--shadow-card:0 2px 4px #0000001a;--size-touch:44px;--size-content:1400px;--size-map:480px;--size-map-mobile:360px}body{font-family:var(--font-sans);font-size:var(--font-size-base);line-height:var(--line-height-body);background-color:var(--color-bg);color:var(--color-text);margin:0}a{color:var(--color-primary-text)}:focus-visible{outline:2px solid var(--color-focus);outline-offset:2px}.visually-hidden{clip:rect(0, 0, 0, 0);border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.app-header{background-color:var(--color-primary);color:var(--color-on-primary);padding:var(--space-4);gap:var(--space-4);flex-wrap:wrap;justify-content:space-between;align-items:center;display:flex}.app-header h1{font-size:var(--font-size-lg);margin:0}.app-header :focus-visible{outline-color:var(--color-focus-on-primary)}.app-controls{gap:var(--space-2);flex-wrap:wrap;display:flex}.app-main,.app-footer{padding:var(--space-4);max-width:var(--size-content);margin:0 auto}.intro{margin:0 0 var(--space-3);color:var(--color-text-muted)}.status-message,.notice{font-size:var(--font-size-sm);margin:0 0 var(--space-4);padding:var(--space-2);border-radius:var(--radius-sm)}.status-message{color:var(--color-text-muted);background-color:var(--color-surface-muted)}.notice{color:var(--color-text);background-color:var(--color-surface);border:1px solid var(--color-border-strong)}.notice[hidden]{display:none}.ui-select,.ui-input,.ui-button{min-height:var(--size-touch);box-sizing:border-box;padding:var(--space-2) var(--space-3);border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font:inherit;background-color:var(--color-surface);color:var(--color-text)}.ui-button{color:var(--color-primary-text);cursor:pointer;border-color:#0000;font-weight:700}.ui-button:hover:not(:disabled){background-color:var(--color-surface-muted)}.ui-button:disabled{cursor:progress;color:var(--color-text-muted)}.ui-button-outline{border-color:var(--color-border-strong);margin-top:var(--space-2)}.filter-group{gap:var(--space-3);margin-bottom:var(--space-6);flex-direction:column;display:flex}.filter-field{gap:var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-direction:column;flex:1;display:flex}@media (width>=600px){.filter-group{flex-direction:row}}.block-list{margin:0;padding:0;list-style:none}.block-list-item,.list-state{background:var(--color-surface);padding:var(--space-5);border-radius:var(--radius-md);margin-bottom:var(--space-6);box-shadow:var(--shadow-card)}.list-state p{margin:0}.block-list-item h2{margin:0 0 var(--space-2);font-size:var(--font-size-lg);align-items:flex-start;gap:var(--space-2);display:flex}.source-badge{background-color:var(--color-primary);color:var(--color-on-primary);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--font-size-sm);flex-shrink:0;font-weight:400}.block-list-item a{font-weight:500}.block-list-item .meta{color:var(--color-text-muted);margin-bottom:var(--space-4)}.block-list-item .meta p{margin:var(--space-2) 0}.no-houses-msg{color:var(--color-text-muted);margin:0}.houses-list{border-top:1px solid var(--color-border);padding-top:var(--space-3)}.houses-list summary{cursor:pointer;min-height:var(--size-touch);align-items:center;font-weight:700;display:flex}.houses-list summary:before{content:"▸";margin-right:var(--space-2)}.houses-list[open] summary:before{content:"▾"}.houses-list[open] summary{margin-bottom:var(--space-2)}.house-grid.tabulator{border-color:var(--color-border);background-color:var(--color-surface);font-size:var(--font-size-sm)}.house-grid.tabulator .tabulator-header,.house-grid.tabulator .tabulator-header .tabulator-col{background-color:var(--color-surface-muted);border-color:var(--color-border);color:var(--color-text)}.house-grid.tabulator .tabulator-row{background-color:var(--color-surface);border-color:var(--color-border)}.house-grid.tabulator .tabulator-row.tabulator-row-even{background-color:var(--color-bg)}.house-grid.tabulator .tabulator-cell{white-space:normal;word-break:keep-all;overflow-wrap:anywhere;border-color:var(--color-border)}.ios-install-banner{background-color:var(--color-warning-bg);color:var(--color-warning-text);padding:var(--space-3) var(--space-4);font-size:var(--font-size-sm);border-bottom:1px solid var(--color-warning-border);text-align:center}.ios-install-banner p{margin:0}.map-view{margin-bottom:var(--space-6)}.map-view[hidden]{display:none}.map-canvas{width:100%;height:var(--size-map);border-radius:var(--radius-md);border:1px solid var(--color-border);background:var(--color-surface-muted)}.map-canvas[hidden]{display:none}.map-summary{margin:var(--space-2) 0 var(--space-1);font-size:var(--font-size-sm);color:var(--color-text-muted)}.map-legend{gap:var(--space-4);font-size:var(--font-size-sm);color:var(--color-text-muted);flex-wrap:wrap;display:flex}.map-legend label{align-items:center;gap:var(--space-1);min-height:var(--size-touch);cursor:pointer;display:inline-flex}.dot{width:10px;height:10px;margin-left:var(--space-1);border-radius:50%;display:inline-block}.dot-sh{background:var(--color-source-sh)}.dot-lh{background:var(--color-source-lh)}.dot-hug{background:var(--color-source-hug)}.map-info{padding:var(--space-3);max-width:320px;max-height:260px;font-size:var(--font-size-sm);color:var(--color-text);overflow:auto}.map-info-title{margin-bottom:var(--space-2);font-weight:700}.map-info-row{padding:var(--space-1) 0;border-top:1px solid var(--color-border)}.map-info-muted{color:var(--color-text-muted)}.map-info-link{margin-top:var(--space-2);display:inline-block}.app-footer{font-size:var(--font-size-sm);color:var(--color-text-muted)}.app-footer p{margin:var(--space-1) 0}@media (width<=600px){.map-canvas{height:var(--size-map-mobile)}}
