:root { color-scheme:light; }
body { margin:0; background:#f4f7f8; }
    #ward-page .km-brand { color:inherit; text-decoration:none; }
    #ward-page .km-navigation { display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
    #ward-page .km-ward-picker { display:flex; align-items:center; gap:8px; color:var(--km-sub); font-size:12px; }
    #ward-page .km-stat-value b { font-weight:500; }
    #ward-page .km-gap-note { font-size:11px; color:var(--km-sub); }
    #ward-page .km-load-error { margin:16px; padding:12px; background:var(--km-surface); }
    #ward-page .km-source p { margin:0 0 6px; }
    #ward-page .km-tip.km-map-tip, #ward-page .km-tip.km-chart-tip { position:fixed; }

    #ward-page { --km-bg:light-dark(#f5f8f6,#101c18); --km-surface:light-dark(#fff,#192923); --km-ink:light-dark(#183c33,#e8f2ec); --km-sub:light-dark(#567267,#abc1b5); --km-rule:light-dark(#dce6df,#354c40); --km-soft:light-dark(#eff5f1,#233b2e); --km-water:light-dark(#f0f6f5,#172d28); --km-chart:light-dark(#176c51,#85c7a7); --km-chart-fill:light-dark(#dceee5,#284b3b); --km-no-data:#e6ece8; --km-hatch:#bac9c0; position:relative; color:var(--km-ink); font:14px/1.5 -apple-system,BlinkMacSystemFont,"Noto Sans JP",sans-serif; }
    #ward-page * { box-sizing:border-box; }
    #ward-page [hidden] { display:none !important; }
    #ward-page .km-shell { background:var(--km-bg); }
    #ward-page .km-top { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 16px; padding:18px 20px; border-bottom:1px solid var(--km-rule); }
    #ward-page .km-brand { font-size:16px; font-weight:500; letter-spacing:.025em; }
    #ward-page .km-back { display:inline-flex; align-items:center; gap:6px; color:var(--km-sub); text-decoration:none; font-size:12px; }
    #ward-page .km-back:hover { color:var(--km-ink); text-decoration:underline; }
    #ward-page .km-heading { display:flex; flex-wrap:wrap; align-items:end; justify-content:space-between; gap:6px 20px; padding:20px 20px 18px; }
    #ward-page .km-heading h1 { margin:2px 0 0; font-size:22px; font-weight:500; letter-spacing:-.02em; }
    #ward-page .km-eyebrow { color:var(--km-sub); font-size:11px; }
    #ward-page .km-page-caption { color:var(--km-sub); font-size:12px; margin-top:3px; }
    #ward-page .km-date { color:var(--km-sub); font-size:11px; padding-bottom:3px; }
    #ward-page .km-main { display:grid; grid-template-columns:minmax(0,1fr) 288px; align-items:stretch; background:var(--km-surface); border:1px solid var(--km-rule); border-top:0; border-radius:0 0 12px 12px; overflow:hidden; }
    #ward-page .km-map-card { min-width:0; background:var(--km-water); }
    #ward-page .km-map-head { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px 22px; padding:14px 20px; background:var(--km-surface); border:1px solid var(--km-rule); border-radius:12px 12px 0 0; }
    #ward-page .km-map-title { font-weight:500; }
    #ward-page .km-map-context { color:var(--km-sub); font-size:12px; margin-top:3px; }
    #ward-page .km-town-picker { display:flex; align-items:center; gap:8px; color:var(--km-sub); font-size:12px; }
    #ward-page select { min-width:0; max-width:190px; min-height:40px; padding:6px 24px 6px 10px; border:1px solid var(--km-rule); border-radius:6px; color:var(--km-ink); background:var(--km-surface); font:inherit; }
    #ward-page .km-map-hint { margin:0; padding:16px 16px 5px; text-align:center; color:var(--km-sub); font-size:12px; }
    #ward-page .km-touch-hint { display:none; }
    #ward-page .km-map-wrap { background:var(--km-water); }
    #ward-page .km-map { display:block; width:100%; overflow:hidden; }
    #ward-page .km-town { stroke:#fff; stroke-width:.8; cursor:pointer; }
    #ward-page .km-town:focus:not(:focus-visible) { outline:none; }
    #ward-page .km-town[data-named="false"] { cursor:default; }
    #ward-page .km-ward-outline { fill:none; stroke:light-dark(#aebfb8,#678278); stroke-width:.9; pointer-events:none; }
    #ward-page .km-rail-halo { fill:none; stroke:#fff; stroke-width:2.4; opacity:.65; pointer-events:none; }
    #ward-page .km-rail { fill:none; stroke:#536b61; stroke-width:1; opacity:.8; pointer-events:none; }
    #ward-page .km-station { fill:#fff; stroke:#244b3d; stroke-width:1; pointer-events:none; }
    #ward-page .km-station-label { fill:#254a3c; stroke:#fff; stroke-width:3; paint-order:stroke; stroke-linejoin:round; font-size:11px; font-weight:500; pointer-events:none; }
    #ward-page .km-station-leader { stroke:#536b61; stroke-width:.7; fill:none; pointer-events:none; }
    #ward-page .km-highlight-halo { fill:none; stroke:#fff; stroke-width:4; pointer-events:none; }
    #ward-page .km-highlight { fill:none; stroke:#153c2d; stroke-width:2; pointer-events:none; }
    #ward-page .km-legend { padding:10px 12px 17px; max-width:420px; margin:0 auto; }
    #ward-page .km-legend-heading { display:flex; flex-wrap:wrap; gap:3px 10px; justify-content:space-between; color:var(--km-sub); font-size:11px; }
    #ward-page .km-scale { display:block; width:100%; }
    #ward-page .km-scale text { fill:var(--km-sub); font-size:11px; font-variant-numeric:tabular-nums; }
    #ward-page .km-scale-pointer { fill:var(--km-ink); }
    #ward-page .km-map-note { display:flex; flex-wrap:wrap; gap:3px 12px; color:var(--km-sub); font-size:11px; }
    #ward-page .km-missing-key { display:inline-block; width:10px; height:10px; margin-right:4px; vertical-align:-1px; background:repeating-linear-gradient(135deg,var(--km-no-data) 0 4px,var(--km-hatch) 4px 5px,var(--km-no-data) 5px 8px); }
    #ward-page .km-detail { min-width:0; padding:24px 18px; background:var(--km-surface); border-left:1px solid var(--km-rule); }
    #ward-page .km-area-name { margin:3px 0 12px; font-size:20px; font-weight:500; letter-spacing:-.025em; }
    #ward-page .km-metric-label { color:var(--km-sub); font-size:12px; }
    #ward-page .km-main-value { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px; margin-top:3px; }
    #ward-page .km-unit-value { font-size:28px; line-height:1.35; font-weight:500; letter-spacing:-.03em; font-variant-numeric:tabular-nums; color:var(--km-chart); }
    #ward-page .km-unit-label { color:var(--km-sub); font-size:12px; }
    #ward-page .km-stats { margin:15px 0 20px; }
    #ward-page .km-stats > div { display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:9px 0; border-bottom:1px solid var(--km-rule); }
    #ward-page .km-stat-value { margin:0; font-size:16px; font-weight:500; font-variant-numeric:tabular-nums; }
    #ward-page .km-stat-value span { margin-left:3px; color:var(--km-sub); font-size:11px; font-weight:400; }
    #ward-page .km-chart-section { padding-top:1px; }
    #ward-page .km-chart-heading { display:flex; flex-wrap:wrap; align-items:baseline; justify-content:space-between; gap:4px 8px; margin-bottom:6px; }
    #ward-page .km-chart-title { font-size:13px; font-weight:500; }
    #ward-page .km-chart-period { color:var(--km-sub); font-size:11px; }
    #ward-page .km-chart { display:block; width:100%; overflow:visible; }
    #ward-page .km-chart text { fill:var(--km-sub); font-size:11px; }
    #ward-page .km-chart .axis-title { fill:var(--km-sub); }
    #ward-page .km-price-line { fill:none; stroke:var(--km-chart); stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
    #ward-page .km-price-point { fill:var(--km-surface); stroke:var(--km-chart); stroke-width:1.5; }
    #ward-page .km-chart-empty { color:var(--km-sub); font-size:12px; padding:65px 5px; text-align:center; }
    #ward-page .km-data-note { color:var(--km-sub); font-size:11px; margin-top:12px; }
    #ward-page .km-detail-note { color:var(--km-sub); font-size:12px; margin:0 0 13px; }
    #ward-page .km-source { padding:13px 16px 18px; color:var(--km-sub); font-size:11px; }
    #ward-page .km-source a { color:inherit; text-decoration:underline; }
    #ward-page .km-tip { position:absolute; z-index:5; max-width:calc(100% - 20px); width:282px; pointer-events:none; border:1px solid var(--km-rule); border-radius:10px; padding:14px 16px; color:var(--km-ink); background:var(--km-surface); box-shadow:0 12px 35px light-dark(#17383925,#0006); }
    #ward-page .km-tip-name { font-size:13px; font-weight:500; }
    #ward-page .km-tip-value { margin-top:4px; font-size:21px; font-weight:500; font-variant-numeric:tabular-nums; }
    #ward-page .km-tip-value span { color:var(--km-sub); font-size:11px; font-weight:400; }
    #ward-page .km-tip-meta { color:var(--km-sub); font-size:11px; margin-top:3px; }
    #ward-page .km-tip-chart-section { border-top:1px solid var(--km-rule); border-bottom:1px solid var(--km-rule); margin:9px 0; padding:8px 0 5px; }
    #ward-page .km-tip-chart-heading { display:flex; justify-content:space-between; gap:8px; font-size:11px; color:var(--km-sub); }
    #ward-page .km-tip-chart { display:block; width:100%; }
    #ward-page .km-tip-chart text { fill:var(--km-sub); font-size:11px; }
    #ward-page .km-tip-chart-empty { padding:18px 0; font-size:11px; color:var(--km-sub); text-align:center; }
    #ward-page .km-tip-stats > div { display:flex; justify-content:space-between; gap:10px; margin-top:4px; font-size:12px; }
    #ward-page .km-tip-footer { margin-top:10px; color:var(--km-sub); font-size:11px; }
    #ward-page .km-chart-tip { width:auto; min-width:142px; font-size:12px; }
    @media(max-width:780px) { #ward-page .km-main{grid-template-columns:1fr;} #ward-page .km-detail{padding:24px;border-left:0;border-top:1px solid var(--km-rule);scroll-margin-top:16px;} #ward-page .km-top{padding:16px;} #ward-page .km-heading{padding:18px 16px 16px;} }
    @media(max-width:480px) { #ward-page .km-brand{font-size:14px;} #ward-page .km-top{padding:13px 14px;} #ward-page .km-heading{padding:16px 14px;} #ward-page .km-heading h1{font-size:20px;} #ward-page .km-detail{padding:22px 18px;} #ward-page .km-map-head{padding:13px 14px;gap:10px;} #ward-page .km-town-picker{width:100%;justify-content:space-between;} #ward-page .km-town-picker select{max-width:190px;flex:1;} #ward-page .km-map-hint{font-size:11px;padding:14px 10px 5px;} }
    @media(hover:none) { #ward-page .km-desktop-hint{display:none;} #ward-page .km-touch-hint{display:inline;} #ward-page .km-map-tip{display:none;} }
    @media(pointer:coarse) { #ward-page select{min-height:44px;font-size:16px;} #ward-page .km-back{min-height:44px;} }
  
