:root{color-scheme:light;--paper: #f5f7fb;--surface: #ffffff;--surface-strong: #ffffff;--ink: #15181f;--muted: #2a2f3a;--line: #c5cad4;--accent: #0b3d91;--accent-strong: #052963;--blue: #0b3d91;--yellow: #f0b429;--red: #b00020;--focus: #0000ee;--focus-ring: #ffeb3b;--radius: 10px;--shadow: none}html{font-size:100%}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Noto Sans SC,Source Han Sans SC,Helvetica Neue,Helvetica,Arial,Hiragino Sans GB,sans-serif;font-size:1.125rem;line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select{font:inherit}button,a,input,select{outline-offset:3px}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,[tabindex]:focus-visible,.table-wrap:focus-visible{outline:4px solid var(--focus);outline-offset:3px;box-shadow:0 0 0 7px var(--focus-ring)}a{color:var(--accent-strong);text-decoration-thickness:2px;text-underline-offset:3px}a:hover{text-decoration-thickness:3px}.skip-link{position:absolute;left:12px;top:-100px;z-index:9999;display:inline-flex;align-items:center;min-height:48px;padding:12px 18px;border:3px solid var(--ink);border-radius:var(--radius);background:var(--ink);color:#fff;font-weight:800;text-decoration:none;transition:top .12s ease}.skip-link:focus,.skip-link:focus-visible{top:12px;outline:4px solid var(--focus-ring);outline-offset:3px}.app-shell{width:min(960px,calc(100% - 32px));margin:0 auto;padding:28px 0 48px}.app-shell:has(.map-view){width:min(1280px,calc(100% - 32px))}.app-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:end;padding:18px 0 22px;border-bottom:1px solid var(--line)}.app-header__right{display:flex;flex-direction:column;align-items:flex-end;gap:12px}.kicker{margin:0 0 8px;color:var(--accent-strong);font-weight:800;letter-spacing:0;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:10px;font-size:clamp(2.1rem,5vw,5.2rem);line-height:.96;letter-spacing:0}h2{margin-bottom:6px;font-size:1.5rem;line-height:1.25}h3{margin-bottom:8px;font-size:1.2rem;line-height:1.35}.app-header p:last-child,.section-title p,.control-panel p,.location-panel p,.map-panel__header p{margin-bottom:0;color:var(--muted);line-height:1.65}.data-badge{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:5px 12px;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface);color:var(--ink);font-weight:700;font-size:.95rem;white-space:nowrap}.main-tabs,.tab-switcher{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0}.main-tabs button,.tab-switcher button,.segment,.primary-button,.ghost-button,.icon-link{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;border:2px solid var(--ink);border-radius:var(--radius);color:var(--ink);background:var(--surface-strong);font-weight:700;cursor:pointer;text-decoration:none;transition:border-color .12s ease,background-color .12s ease,color .12s ease}.main-tabs button,.tab-switcher button{padding:10px 16px}.main-tabs button:hover,.tab-switcher button:hover,.segment:hover,.ghost-button:hover,.icon-link:hover{border-color:var(--accent);color:var(--accent)}.primary-button:hover{background:var(--accent-strong);border-color:var(--accent-strong)}.main-tabs button[aria-current=page],.tab-switcher button[aria-selected=true],.segment[aria-pressed=true]{background:var(--accent);color:#fff}.content-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,.9fr);gap:18px;align-items:start}.content-layout--single{grid-template-columns:1fr}.primary-pane,.map-pane{min-width:0}.map-pane{position:sticky;top:14px}.stack,.tab-grid{display:grid;gap:16px}.location-panel,.control-panel,.filters-panel,.research-summary,.map-panel{border:2px solid var(--ink);border-radius:var(--radius);background:var(--surface)}.location-panel,.control-panel,.filters-panel,.research-summary{padding:16px}.location-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}.manual-location{grid-column:1 / -1;display:grid;grid-template-columns:repeat(2,minmax(120px,1fr)) auto;gap:10px}label{display:grid;gap:6px;color:var(--ink);font-size:1rem;font-weight:800}input,select{width:100%;min-height:44px;border:2px solid var(--line);border-radius:var(--radius);padding:8px 12px;background:var(--surface-strong);color:var(--ink);transition:border-color .12s ease}input:hover,select:hover{border-color:var(--ink)}input:focus,select:focus{border-color:var(--accent)}.primary-button{padding:9px 13px;background:var(--accent);border-color:var(--accent);color:#fff}.primary-button:disabled{cursor:not-allowed;opacity:.5}.ghost-button,.icon-link{padding:8px 12px}.ghost-button:disabled{cursor:not-allowed;opacity:.5}.segmented-control{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;border:0}.segment{padding:8px 12px}.section-title,.map-panel__header{display:flex;gap:14px;justify-content:space-between;align-items:start}.card-list{display:grid;gap:12px}.record-card,.metro-card{display:grid;gap:12px;padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.metro-card--selected{border-color:var(--accent)}.metro-card__header{display:flex;justify-content:space-between;gap:12px;align-items:start}.metro-card__header p{margin-bottom:0;color:var(--muted);font-weight:800}.metro-restroom-list{display:grid;gap:8px}.metro-restroom{display:grid;grid-template-columns:minmax(74px,auto) minmax(0,1fr) auto;gap:8px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);color:var(--muted);line-height:1.45}.metro-restroom__area{color:var(--accent-strong);font-weight:900}.record-card__main{display:grid;grid-template-columns:116px minmax(0,1fr);gap:12px}.record-card__image{width:116px;aspect-ratio:1;border:1px solid var(--line);border-radius:var(--radius);object-fit:cover;background:var(--surface)}.record-card__image--empty{display:grid;place-items:center;color:var(--accent-strong)}.record-card__eyebrow,.record-card__footer,.tag-row,.tag-cloud{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.record-card__eyebrow{margin-bottom:8px;color:var(--ink);font-size:1rem;font-weight:800}.record-card__content p{margin-bottom:10px;color:var(--muted);line-height:1.55}.record-card__footer{justify-content:space-between;color:var(--ink);font-size:1rem;font-weight:800}.record-card__footer>span,.warning-list p,.route-disclaimer,.status-pill{display:inline-flex;align-items:center;gap:7px}.record-card__actions{display:flex;flex-wrap:wrap;gap:8px}.tag,.status-pill{min-height:30px;padding:3px 12px;border:2px solid var(--accent);border-radius:999px;background:var(--surface-strong);color:var(--accent);font-size:.92rem;font-weight:700;line-height:1.3}.tag--line{border-color:var(--accent);color:var(--accent)}.status-pill--ok{background:var(--accent);border-color:var(--accent);color:#fff}.status-pill--warn{background:var(--surface-strong);border-color:#7a4b00;color:#7a4b00}.warning-list{display:grid;gap:7px;padding-top:10px;border-top:1px solid var(--line)}.warning-list p{margin:0;color:var(--red);line-height:1.45}.filters-grid{display:grid;grid-template-columns:minmax(240px,2fr) repeat(4,minmax(140px,1fr));gap:10px;align-items:end;margin-top:14px}.filters-grid--metro{grid-template-columns:minmax(240px,2fr) repeat(2,minmax(150px,1fr))}.search-field{position:relative}.search-field svg{position:absolute;left:12px;bottom:13px;color:var(--muted)}.search-field input{padding-left:38px}.map-panel{overflow:hidden}.map-panel__header{padding:14px;border-bottom:1px solid var(--line)}.route-disclaimer{max-width:300px;color:var(--red);font-size:1rem;font-weight:800;line-height:1.45}.map-shell{display:grid;grid-template-rows:minmax(430px,58vh) minmax(90px,auto)}.map-shell--single{grid-template-rows:minmax(420px,56vh)}.map-section{margin:18px 0 0}.map-container{position:relative;min-height:430px;background:var(--paper)}.map-empty{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;gap:8px;color:var(--accent-strong);font-weight:800}.map-empty--unavailable{gap:12px;padding:24px;text-align:center;color:var(--red)}.map-empty--unavailable strong{font-size:1.2rem}.map-empty--unavailable span{font-size:1rem;font-weight:600;color:var(--ink);max-width:480px}.route-panel{max-height:240px;overflow:auto;border-top:1px solid var(--line);background:var(--surface-strong)}.map-marker{display:grid;width:36px;height:36px;place-items:center;padding:0;border:2px solid var(--surface-strong);border-radius:50%;background:var(--accent);color:var(--surface-strong);font-weight:700;cursor:pointer}.map-marker__icon{display:inline-flex;align-items:center;justify-content:center;line-height:0;color:inherit}.map-marker__icon svg{display:block;width:20px;height:20px}.map-marker--venue .map-marker__icon svg{width:22px;height:22px}.map-marker--active{background:var(--red)}.map-marker--metro{background:var(--ink)}.map-marker--touchpoint{position:relative;box-shadow:0 0 0 3px var(--red)}.map-marker__touchpoint{position:absolute;top:-6px;right:-6px;display:grid;place-items:center;width:18px;height:18px;border-radius:50%;background:var(--red);color:#fff;border:2px solid var(--surface-strong);pointer-events:none}.map-marker__touchpoint svg{display:block;width:10px;height:10px}.touchpoint-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border:1.5px solid var(--red);border-radius:999px;background:#fff5f3;color:var(--red);font-weight:700;letter-spacing:.02em;line-height:1}.touchpoint-badge--sm{font-size:.78rem;padding:3px 8px}.touchpoint-badge--md{font-size:.92rem;padding:5px 10px}.touchpoint-badge__icon{width:14px;height:14px;flex-shrink:0;color:inherit}.touchpoint-badge--md .touchpoint-badge__icon{width:16px;height:16px}.touchpoint-badge__label{white-space:nowrap}.touchpoint-callout{display:grid;gap:10px;padding:16px 18px;border:2px solid var(--red);border-radius:var(--radius);background:#fff5f3;color:var(--ink)}.touchpoint-callout__head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.touchpoint-callout__title{margin:0;font-size:1.1rem;font-weight:800;line-height:1.4;color:var(--red)}.touchpoint-callout__body{margin:0;font-size:1.02rem;line-height:1.65;font-weight:500}.touchpoint-legend,.map-panel__legend{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0 0 12px;padding:10px 12px;border:1.5px dashed var(--red);border-radius:var(--radius);background:#fff5f3;color:var(--ink);font-size:.95rem;line-height:1.5}.touchpoint-legend span,.map-panel__legend span{flex:1 1 auto}.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:10px;margin:16px 0}.metric-grid--metro{grid-template-columns:repeat(4,minmax(110px,1fr))}.metric-card{padding:14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}.metric-card span{display:block;color:var(--muted);font-weight:800}.metric-card strong{display:block;margin-top:6px;font-size:2rem;line-height:1}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong)}table{width:100%;min-width:840px;border-collapse:collapse}th,td{padding:11px 12px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}th{position:sticky;top:0;background:var(--ink);color:#fff}td a{display:inline-flex;gap:5px;align-items:center;font-weight:800}.empty-state{display:grid;place-items:center;gap:8px;min-height:132px;padding:20px;border:1px dashed var(--line);border-radius:var(--radius);background:var(--surface);color:var(--muted);text-align:center}.empty-state--error{border-color:var(--red);color:var(--red);background:#fff5f2}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media (max-width: 1180px){.content-layout{grid-template-columns:1fr}.map-pane{position:static}.filters-grid{grid-template-columns:repeat(2,minmax(160px,1fr))}}@media (max-width: 720px){.app-shell{width:min(100% - 20px,1480px);padding-top:12px}.app-header,.location-panel,.manual-location,.record-card__main,.metro-card__header,.metro-restroom,.filters-grid,.metric-grid{grid-template-columns:1fr}.app-header__right{flex-direction:row;flex-wrap:wrap;align-items:stretch;gap:10px}.appearance-menu__trigger,.data-badge{flex:1 1 140px;justify-content:center}.data-badge{width:100%;justify-content:center}.main-tabs button,.tab-switcher button{flex:1 1 130px}.record-card__image{width:100%;max-height:220px}.record-card__footer{align-items:stretch}.record-card__actions,.record-card__actions>*{width:100%}.map-shell{grid-template-rows:360px auto}.map-container{min-height:360px}.map-panel__header{display:grid}.route-disclaimer{max-width:none}.metro-card__header{display:grid}.voice-search__row{grid-template-columns:1fr}.voice-search__mic{min-width:0;width:100%}.restroom-detail__section-head{flex-wrap:wrap}}.app-header--compact{padding:18px 0 22px;border-bottom:1px solid var(--line)}.app-header--compact h1{font-size:clamp(1.7rem,3.6vw,2.6rem);line-height:1.15;margin-bottom:6px}.app-header--compact .app-header__right .data-badge{font-size:.95rem;min-height:40px;padding:6px 12px}.search-section{margin:22px 0 14px;display:grid;gap:14px}.voice-search{display:grid;gap:10px}.voice-search__row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:stretch}.voice-search__field{position:relative;display:flex;align-items:center;gap:10px;padding:0 14px;border:2px solid var(--ink);border-radius:var(--radius);background:var(--surface-strong);transition:border-color .12s ease}.voice-search__field:hover{border-color:var(--accent)}.voice-search__field svg{color:var(--muted);flex-shrink:0}.voice-search__field input{flex:1 1 auto;min-height:56px;padding:6px 4px;border:0;background:transparent;font-size:1.15rem;font-weight:700;color:var(--ink)}.voice-search__field input:focus{outline:none}.voice-search__field:focus-within{outline:4px solid var(--focus);outline-offset:3px;box-shadow:0 0 0 7px var(--focus-ring)}.voice-search__clear{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border:0;background:transparent;color:var(--muted);cursor:pointer}.voice-search__mic{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-width:160px;min-height:56px;padding:0 18px;border:2px solid var(--accent);border-radius:var(--radius);background:var(--accent);color:var(--primary-text, #fff);font-weight:700;font-size:1.05rem;cursor:pointer;transition:background-color .12s ease,border-color .12s ease}.voice-search__mic:hover:not(:disabled){background:var(--accent-strong);border-color:var(--accent-strong)}.voice-search__mic:disabled{opacity:.5;cursor:not-allowed;background:var(--muted)}.voice-search__mic--active{background:var(--red);animation:voice-pulse 1.2s ease-in-out infinite}@keyframes voice-pulse{0%,to{box-shadow:0 0 #9a1a1099}50%{box-shadow:0 0 0 12px #9a1a1000}}.voice-search__status{margin:0;padding:0 4px;color:var(--muted);font-weight:600;font-size:.95rem}.voice-search__status--error{color:var(--red)}.filter-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin:0}.filter-chips{display:flex;flex-wrap:wrap;gap:8px;margin:0}.filter-select select{min-width:140px;min-height:40px;padding:5px 12px;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);font-weight:700;font-size:.95rem;cursor:pointer;transition:border-color .12s ease}.filter-select select:hover{border-color:var(--accent)}.filter-chip{display:inline-flex;align-items:center;gap:6px;min-height:40px;padding:5px 14px;border:2px solid var(--line);border-radius:999px;background:var(--surface-strong);color:var(--ink);font-weight:700;font-size:.95rem;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,color .12s ease}.filter-chip:hover{border-color:var(--accent);color:var(--accent)}.filter-chip--active{background:var(--accent);color:#fff;border-color:var(--accent)}.filter-chip--active:hover{background:var(--accent-strong);border-color:var(--accent-strong);color:#fff}.content{margin-top:4px}.home-empty{margin:32px 0;padding:36px 24px;text-align:center;display:grid;gap:22px;justify-items:center}.home-empty__intro{display:grid;gap:10px;justify-items:center;color:var(--accent-strong)}.home-empty__intro h2{margin:0;font-size:1.55rem}.home-empty__intro p{margin:0;color:var(--muted);font-size:1.05rem;max-width:480px;line-height:1.55}.suggestions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;max-width:560px}.suggestion{display:inline-flex;align-items:center;min-height:44px;padding:8px 20px;border:2px solid var(--line);border-radius:999px;background:var(--surface-strong);color:var(--ink);font-weight:700;font-size:1rem;cursor:pointer;transition:border-color .12s ease,color .12s ease}.suggestion:hover{border-color:var(--accent);color:var(--accent)}.home-empty__totals{margin:0;color:var(--muted);font-size:.95rem}.detail-view{display:grid;gap:12px}.detail-view__back{justify-self:start}.map-view{display:grid;gap:12px}.map-view__head{display:flex;align-items:center;justify-content:space-between;gap:12px}.map-view__head h2{margin:0;font-size:1.3rem}.app-header__volunteer{min-height:40px;padding:5px 14px;font-size:.95rem}.volunteer-form{display:grid;gap:24px;padding:24px;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface)}.volunteer-form__header{display:grid;gap:12px}.volunteer-form__title h2{margin:4px 0 6px;font-size:1.65rem}.volunteer-form__title p{margin:0;color:var(--muted);line-height:1.55}.form-section{margin:0;padding:18px 20px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);display:grid;gap:16px}.form-section legend{padding:0 8px;font-size:1.1rem;font-weight:800;color:var(--accent)}.form-section__hint{margin:-4px 0 0;color:var(--muted);font-size:.95rem;line-height:1.55}.form-section__body{display:grid;gap:16px}.form-field{display:grid;gap:8px}.form-field>label,.form-field__label-text{font-weight:700;font-size:1rem;color:var(--ink)}.form-field__input-row{display:flex;align-items:stretch;gap:8px}.form-field__input-row input,.form-field__input-row textarea{flex:1 1 auto;font-family:inherit;font-size:1rem}.form-field__input-row textarea{min-height:80px;resize:vertical;padding:10px 12px}.form-field__mic{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:48px;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);cursor:pointer;transition:border-color .12s ease,color .12s ease,background-color .12s ease}.form-field__mic:hover{border-color:var(--accent);color:var(--accent)}.form-field__mic--active{background:var(--red);border-color:var(--red);color:#fff}.form-radio-row{display:flex;flex-wrap:wrap;gap:8px}.form-radio{display:inline-flex;align-items:center;min-height:40px;padding:6px 16px;border:2px solid var(--line);border-radius:999px;background:var(--surface-strong);color:var(--ink);font-weight:700;font-size:.95rem;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,color .12s ease}.form-radio:hover{border-color:var(--accent);color:var(--accent)}.form-radio--active,.form-radio--active:hover{background:var(--accent);border-color:var(--accent);color:#fff}.direction-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-areas:"front_left front front_right" "left .      right" "back_left .  back_right";gap:8px;max-width:480px}.direction-grid .form-radio{border-radius:var(--radius);justify-content:center}.direction-front{grid-area:front}.direction-front_left{grid-area:front_left}.direction-front_right{grid-area:front_right}.direction-left{grid-area:left}.direction-right{grid-area:right}.direction-back_left{grid-area:back_left}.direction-back_right{grid-area:back_right}.form-checkbox{display:flex;align-items:center;gap:10px;font-weight:700;cursor:pointer}.form-checkbox input[type=checkbox]{width:22px;height:22px;min-height:22px;margin:0;cursor:pointer;accent-color:var(--accent)}.volunteer-form__actions{display:flex;justify-content:flex-end}.volunteer-form__actions .primary-button{min-height:52px;padding:10px 28px;font-size:1.05rem}.volunteer-success{display:grid;gap:18px;padding:28px;border:2px solid var(--accent);border-radius:var(--radius);background:var(--surface)}.volunteer-success__head{display:grid;gap:8px;justify-items:center;text-align:center;color:var(--accent)}.volunteer-success__head h2{margin:0;font-size:1.5rem}.volunteer-success__head p{margin:0;color:var(--muted);line-height:1.55;max-width:520px}.volunteer-success__json{max-height:360px;overflow:auto;padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.85rem;line-height:1.5;color:var(--ink);white-space:pre-wrap;word-break:break-word;margin:0}.volunteer-success__actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}@media (max-width: 720px){.direction-grid{grid-template-columns:1fr 1fr;grid-template-areas:"front_left front_right" "front front" "left right" "back_left back_right"}}.restroom-list__truncate{list-style:none;margin-top:6px;padding:12px 16px;border:1px dashed var(--line);border-radius:var(--radius);color:var(--muted);font-size:.95rem;text-align:center}.results-pane__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.results-pane__head h2{margin:0;font-size:1.3rem;line-height:1.2}.results-pane__head p{margin:2px 0 0;color:var(--muted);font-weight:700;font-size:.95rem}.results-pane__map-toggle{font-size:.95rem;min-height:40px;padding:6px 12px}.restroom-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}.restroom-card{display:grid;gap:8px;padding:16px;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);transition:border-color .12s ease}.restroom-card:hover{border-color:var(--accent)}.restroom-card--selected{border-color:var(--accent);background:var(--surface)}.restroom-card__head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.restroom-card__district{color:var(--muted);font-weight:700;font-size:.95rem}.restroom-card__name{margin:0;font-size:1.25rem;line-height:1.3}.restroom-card__actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}.restroom-card__actions .primary-button,.restroom-card__actions .ghost-button{min-height:40px;padding:6px 12px;font-size:.95rem}.kind-badge{display:inline-flex;align-items:center;min-height:28px;padding:2px 10px;border:2px solid var(--accent);border-radius:999px;background:var(--surface-strong);color:var(--accent);font-size:.85rem;font-weight:700}.kind-badge--community{border-color:var(--accent);color:var(--accent)}.kind-badge--metro{border-color:var(--ink);color:var(--ink)}.detail-pane__placeholder{padding:32px 22px;border:1px dashed var(--line);border-radius:10px;color:var(--muted);text-align:center;font-size:1.05rem}.restroom-detail{display:grid;gap:20px;padding:24px;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface)}.restroom-detail__header{display:grid;gap:10px}.restroom-detail__title h2{margin:4px 0 6px;font-size:1.6rem;line-height:1.25}.restroom-detail__meta{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0;color:var(--muted)}.restroom-detail__stop{background:var(--red);color:#fff;border-color:var(--red)}.restroom-detail__notice{margin:0;padding:10px 12px;border:2px solid var(--yellow);border-radius:var(--radius);background:#fff7d6;color:var(--ink);font-weight:700}.restroom-detail__notice--soft{border:0;padding:4px 0 0;background:transparent;color:var(--muted);font-weight:500;font-size:.85rem;line-height:1.5}.restroom-detail__contribute{display:grid;gap:12px;margin-top:8px;padding:20px 22px;border:2px solid var(--ink);border-radius:var(--radius);background:#fffbe8;color:var(--ink)}.restroom-detail__contribute-title{margin:0;font-size:1.15rem;font-weight:800;line-height:1.4}.restroom-detail__contribute-body{margin:0;font-size:1.05rem;line-height:1.6;font-weight:500}.restroom-detail__contribute-button{align-self:flex-start;min-height:48px;padding:12px 18px;font-size:1.05rem}.restroom-detail__contribute-footnote{margin:0;font-size:.95rem;line-height:1.5;color:var(--muted)}.restroom-detail__credit{margin:4px 0 0;padding-top:12px;border-top:1px dashed var(--border, rgba(0, 0, 0, .12));font-size:.92rem;line-height:1.5;color:var(--muted)}.restroom-detail__section{display:grid;gap:10px}.restroom-detail__section-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.restroom-detail__section-head h3{margin:0;font-size:1.2rem}.restroom-detail__section p{margin:0;padding:0;background:transparent;border:0;line-height:1.65;font-size:1.05rem;color:var(--ink)}.restroom-detail__missing{color:var(--muted);font-style:italic}.facts-list{list-style:none;margin:0;padding:0;display:grid;gap:0}.facts-list__item{padding:12px 0;border-bottom:1px solid var(--line)}.facts-list__item:last-child{border-bottom:0}.facts-list__item--empty .facts-list__title{color:var(--muted)}.facts-list__head{display:flex;align-items:center;justify-content:space-between;gap:10px}.facts-list__title{font-weight:800;font-size:1.05rem}.facts-list__play{padding:4px 10px;min-height:32px;border-width:1px}.facts-list__values{list-style:none;margin:4px 0 0;padding:0;display:grid;gap:2px;color:var(--ink)}.facts-list__values li{font-size:1rem;line-height:1.5}.facts-list__empty-text{margin:4px 0 0;color:var(--muted);font-style:italic;font-size:.95rem}.appearance-menu{position:relative}.appearance-menu__trigger{display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:6px 14px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);font-weight:700;font-size:.95rem;cursor:pointer;transition:border-color .12s ease,color .12s ease}.appearance-menu__trigger:hover{border-color:var(--accent);color:var(--accent)}.appearance-menu__panel{position:absolute;right:0;top:calc(100% + 10px);z-index:200;width:min(360px,calc(100vw - 32px));padding:16px;border:2px solid var(--ink);border-radius:var(--radius);background:var(--surface-strong);display:grid;gap:14px}.appearance-menu__header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:10px;border-bottom:2px solid var(--ink)}.appearance-menu__title{margin:0;font-size:1.15rem;line-height:1.3}.appearance-menu__close{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border:1px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);cursor:pointer;transition:border-color .12s ease,color .12s ease}.appearance-menu__close:hover{border-color:var(--accent);color:var(--accent)}.appearance-menu__group{margin:0;padding:0;border:0}.appearance-menu__group legend{display:inline-flex;align-items:center;gap:8px;margin-bottom:8px;padding:0;font-size:.95rem;font-weight:800;color:var(--ink)}.appearance-menu__row{display:flex;flex-wrap:wrap;gap:8px}.appearance-menu__option{display:inline-flex;align-items:center;gap:6px;flex:1 1 120px;min-height:44px;padding:8px 14px;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);font-weight:700;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,color .12s ease}.appearance-menu__option:hover{border-color:var(--accent);color:var(--accent)}.appearance-menu__option--active,.appearance-menu__option--active:hover{background:var(--accent);border-color:var(--accent);color:#fff}.appearance-menu__theme-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.appearance-menu__theme{display:flex;align-items:center;gap:10px;padding:10px 12px;border:2px solid var(--line);border-radius:var(--radius);background:var(--surface-strong);color:var(--ink);text-align:left;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,color .12s ease}.appearance-menu__theme:hover{border-color:var(--accent)}.appearance-menu__theme--active,.appearance-menu__theme--active:hover{background:var(--accent);border-color:var(--accent);color:#fff}.appearance-menu__swatch{display:block;width:28px;height:28px;border-radius:50%;border:2px solid var(--ink);flex-shrink:0}.appearance-menu__theme--active .appearance-menu__swatch{border-color:var(--surface-strong)}.appearance-menu__theme-text{display:grid;gap:2px;line-height:1.2}.appearance-menu__theme-label{display:inline-flex;align-items:center;gap:4px;font-weight:800;font-size:.98rem}.appearance-menu__theme-desc{font-size:.82rem;opacity:.85}:root[data-theme=contrast]{--paper: #ffffff;--surface: #ffffff;--surface-strong: #ffffff;--ink: #000000;--muted: #1a1a1a;--line: #000000;--accent: #0033a0;--accent-strong: #001a55;--blue: #001a55;--red: #8a0000;--focus: #0000aa;--focus-ring: #ffd400;--shadow: none}:root[data-theme=contrast] body{background:#fff}:root[data-theme=contrast] .location-panel,:root[data-theme=contrast] .control-panel,:root[data-theme=contrast] .filters-panel,:root[data-theme=contrast] .research-summary,:root[data-theme=contrast] .map-panel,:root[data-theme=contrast] .record-card,:root[data-theme=contrast] .metro-card,:root[data-theme=contrast] .data-badge,:root[data-theme=contrast] .table-wrap,:root[data-theme=contrast] .main-tabs button,:root[data-theme=contrast] .tab-switcher button,:root[data-theme=contrast] .segment,:root[data-theme=contrast] .primary-button,:root[data-theme=contrast] .ghost-button,:root[data-theme=contrast] .icon-link,:root[data-theme=contrast] .appearance-menu__trigger,:root[data-theme=contrast] .appearance-menu__panel,:root[data-theme=contrast] .appearance-menu__option,:root[data-theme=contrast] .appearance-menu__theme,:root[data-theme=contrast] input,:root[data-theme=contrast] select{border-width:3px!important;box-shadow:none!important}:root[data-theme=contrast] .tag,:root[data-theme=contrast] .status-pill{border-width:3px!important}:root[data-theme=contrast] .data-badge{background:#ffd400;color:#000}:root[data-theme=dark]{color-scheme:dark;--paper: #14181d;--surface: #1c2128;--surface-strong: #232a33;--ink: #f5f7fb;--muted: #c8cdd6;--line: #4a525c;--accent: #6fb3ff;--accent-strong: #a3cdff;--blue: #8fb4e6;--yellow: #ffd34d;--red: #ff8472;--focus: #ffd400;--focus-ring: #6fb3ff;--shadow: 0 16px 42px rgba(0, 0, 0, .5)}:root[data-theme=dark] body{background:var(--paper);color:var(--ink)}:root[data-theme=dark] .data-badge{background:var(--yellow);color:#14181d;border-color:var(--yellow)}:root[data-theme=dark] .main-tabs button[aria-current=page],:root[data-theme=dark] .tab-switcher button[aria-selected=true],:root[data-theme=dark] .segment[aria-pressed=true],:root[data-theme=dark] .appearance-menu__option--active,:root[data-theme=dark] .appearance-menu__theme--active{background:var(--accent);color:#14181d}:root[data-theme=dark] .primary-button{background:var(--accent);color:#14181d;border-color:var(--accent)}:root[data-theme=dark] .tag{background:#2c3540;border-color:var(--accent);color:var(--accent-strong)}:root[data-theme=dark] .tag--line{background:#2c3540;border-color:var(--blue);color:var(--accent-strong)}:root[data-theme=dark] .status-pill{background:#2c3540;color:var(--ink);border-color:var(--line)}:root[data-theme=dark] .status-pill--ok{background:#1f3a5a;border-color:var(--accent);color:var(--accent-strong)}:root[data-theme=dark] .status-pill--warn{background:#4a3a14;border-color:var(--yellow);color:var(--yellow)}:root[data-theme=dark] .record-card,:root[data-theme=dark] .metro-card,:root[data-theme=dark] .map-panel,:root[data-theme=dark] .location-panel,:root[data-theme=dark] .control-panel,:root[data-theme=dark] .filters-panel,:root[data-theme=dark] .research-summary,:root[data-theme=dark] .table-wrap,:root[data-theme=dark] .appearance-menu__panel,:root[data-theme=dark] .empty-state{background:var(--surface);border-color:var(--line);color:var(--ink)}:root[data-theme=dark] .metric-card{background:#1c3554;border-color:var(--accent);color:var(--ink)}:root[data-theme=dark] .metro-restroom{background:#1c2128;border-color:var(--line);color:var(--muted)}:root[data-theme=dark] input,:root[data-theme=dark] select,:root[data-theme=dark] .main-tabs button,:root[data-theme=dark] .tab-switcher button,:root[data-theme=dark] .segment,:root[data-theme=dark] .ghost-button,:root[data-theme=dark] .icon-link,:root[data-theme=dark] .appearance-menu__trigger,:root[data-theme=dark] .appearance-menu__option,:root[data-theme=dark] .appearance-menu__theme,:root[data-theme=dark] .appearance-menu__close,:root[data-theme=dark] .record-card__image{background:var(--surface-strong);border-color:var(--line);color:var(--ink)}:root[data-theme=dark] th{background:#2c3540;color:var(--ink)}:root[data-theme=dark] .skip-link{background:var(--accent);color:#14181d;border-color:var(--accent)}:root[data-theme=dark] .map-container{background:#1c2128}:root[data-theme=dark] .warning-list p{color:var(--red)}:root[data-theme=dark] .route-disclaimer{color:var(--yellow)}:root[data-theme=yob]{color-scheme:dark;--paper: #000000;--surface: #000000;--surface-strong: #000000;--ink: #ffd400;--muted: #ffd400;--line: #ffd400;--accent: #ffd400;--accent-strong: #ffe566;--blue: #ffd400;--yellow: #ffd400;--red: #ff7a55;--focus: #ffffff;--focus-ring: #ffffff;--shadow: none}:root[data-theme=yob] body{background:#000;color:#ffd400}:root[data-theme=yob] *,:root[data-theme=yob] *:before,:root[data-theme=yob] *:after{box-shadow:none!important}:root[data-theme=yob] .data-badge,:root[data-theme=yob] .main-tabs button,:root[data-theme=yob] .tab-switcher button,:root[data-theme=yob] .segment,:root[data-theme=yob] .ghost-button,:root[data-theme=yob] .icon-link,:root[data-theme=yob] .primary-button,:root[data-theme=yob] .appearance-menu__trigger,:root[data-theme=yob] .appearance-menu__panel,:root[data-theme=yob] .appearance-menu__option,:root[data-theme=yob] .appearance-menu__theme,:root[data-theme=yob] .appearance-menu__close,:root[data-theme=yob] .location-panel,:root[data-theme=yob] .control-panel,:root[data-theme=yob] .filters-panel,:root[data-theme=yob] .research-summary,:root[data-theme=yob] .map-panel,:root[data-theme=yob] .record-card,:root[data-theme=yob] .metro-card,:root[data-theme=yob] .metro-restroom,:root[data-theme=yob] .table-wrap,:root[data-theme=yob] .empty-state,:root[data-theme=yob] .metric-card,:root[data-theme=yob] .tag,:root[data-theme=yob] .status-pill,:root[data-theme=yob] input,:root[data-theme=yob] select{background:#000!important;color:#ffd400!important;border-color:#ffd400!important;border-width:3px!important}:root[data-theme=yob] .main-tabs button[aria-current=page],:root[data-theme=yob] .tab-switcher button[aria-selected=true],:root[data-theme=yob] .segment[aria-pressed=true],:root[data-theme=yob] .primary-button,:root[data-theme=yob] .appearance-menu__option--active,:root[data-theme=yob] .appearance-menu__theme--active{background:#ffd400!important;color:#000!important}:root[data-theme=yob] th{background:#ffd400!important;color:#000!important}:root[data-theme=yob] .skip-link{background:#ffd400!important;color:#000!important;border-color:#ffd400!important}:root[data-theme=yob] :focus-visible{outline-color:#fff!important;box-shadow:0 0 0 7px #fff!important}:root[data-theme=yob] a{color:#ffd400;text-decoration:underline;text-decoration-thickness:2px}:root[data-theme=yob] .warning-list p,:root[data-theme=yob] .route-disclaimer{color:#ff7a55!important}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.main-tabs button:hover,.tab-switcher button:hover,.segment:hover,.primary-button:hover,.ghost-button:hover,.icon-link:hover,.map-marker--active{transform:none!important}.skip-link{transition:none!important}}@media (prefers-contrast: more){:root{--paper: #ffffff;--surface: #ffffff;--surface-strong: #ffffff;--ink: #000000;--muted: #000000;--line: #000000;--accent: #003a7a;--accent-strong: #001f4a;--blue: #0a2f6b;--red: #7a0d05;--focus: #0000aa}body{background:#fff}.location-panel,.control-panel,.filters-panel,.research-summary,.map-panel,.record-card,.metro-card,.main-tabs button,.tab-switcher button,.segment,.primary-button,.ghost-button,.icon-link,.data-badge,.table-wrap{border-width:3px!important;box-shadow:none!important}input,select,.tag,.status-pill{border-width:3px!important}}@media (forced-colors: active){.main-tabs button,.tab-switcher button,.segment,.primary-button,.ghost-button,.icon-link,.record-card,.metro-card,.tag,.status-pill,.data-badge{border:2px solid CanvasText}.map-marker{border-color:CanvasText}:focus-visible{outline:3px solid Highlight!important}}
