:root{--ink:#171a1f;--muted:#68727d;--line:#d9dee3;--soft:#f4f6f7;--blue:#1769e0;--future:#ef4938;--estate:#087f5b;--white:#fff;--panel:410px;--nav:76px;font-family:Pretendard,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);background:var(--soft)}
html{-webkit-text-size-adjust:100%}
*{box-sizing:border-box}html,body,.app-shell{width:100%;height:100%;height:100dvh;margin:0;overflow:hidden}body{background:#fff}button,input,select{font:inherit;letter-spacing:0}.app-shell{position:relative;background:var(--soft)}button{cursor:pointer}.topbar{position:absolute;z-index:80;top:0;right:0;left:0;height:66px;padding:0 calc(var(--nav) + 14px) 0 18px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.97);display:flex;align-items:center;gap:16px}.brand{width:176px;height:42px;padding:0;border:0;background:transparent;display:flex;align-items:center}.brand-full{width:158px;max-height:34px}.brand-mark{display:none;width:34px;height:34px}.global-search{position:relative;width:min(480px,45vw);height:42px;padding:0 10px;border:1px solid var(--line);border-radius:6px;background:var(--soft);display:flex;align-items:center;gap:8px}.global-search:focus-within{border-color:var(--blue);background:#fff;box-shadow:0 0 0 3px rgba(23,105,224,.1)}.global-search svg{width:17px;color:var(--muted)}.global-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font-size:13px}.global-search kbd{color:#89919a;font-size:10px}.global-results{position:absolute;z-index:90;top:58px;left:210px;width:min(480px,calc(100vw - 260px));max-height:480px;border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:0 12px 34px rgba(23,26,31,.16);overflow:auto}.global-result{width:100%;min-height:54px;padding:8px 12px;border:0;border-bottom:1px solid var(--line);background:#fff;display:grid;grid-template-columns:44px 1fr;align-items:center;gap:8px;text-align:left}.global-result:hover{background:var(--soft)}.global-result em{color:var(--blue);font-size:10px;font-style:normal;font-weight:800}.global-result strong,.global-result small{display:block}.global-result strong{font-size:12px}.global-result small{margin-top:3px;color:var(--muted);font-size:10px}.global-empty{padding:28px;color:var(--muted);font-size:11px;text-align:center}.data-health{margin-left:auto;padding:7px;border:0;background:transparent;display:flex;align-items:center;gap:7px;color:var(--muted);font-size:10px}.data-health span{width:8px;height:8px;border-radius:50%;background:#d19b27}.data-health.is-ready span{background:var(--estate)}
.map-workspace{position:absolute;inset:66px calc(var(--panel) + var(--nav)) 0 0;background:#e9edef}.kakao-map{position:absolute;inset:0}.map-loading{position:absolute;z-index:40;inset:0;background:rgba(244,246,247,.92);display:grid;place-content:center;justify-items:center;gap:12px;color:var(--muted);font-size:12px}.map-loading[hidden]{display:none}.map-loading span{width:26px;height:26px;border:3px solid var(--line);border-top-color:var(--blue);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.map-toolbar{position:absolute;z-index:35;top:16px;left:16px;right:16px;display:flex;align-items:flex-start;gap:8px;pointer-events:none}.map-toolbar>*{pointer-events:auto}.line-filter{position:relative}.line-filter summary{height:38px;padding:0 9px;border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:0 2px 9px rgba(23,26,31,.1);display:flex;align-items:center;gap:7px;list-style:none;color:var(--ink);font-size:11px;font-weight:800}.line-filter summary::-webkit-details-marker{display:none}.line-filter summary>svg{width:15px;color:var(--muted)}.line-filter summary small{color:var(--muted);font-size:9px;font-weight:700}.line-filter .line-filter-chevron{width:13px;transition:transform .16s}.line-filter[open] .line-filter-chevron{transform:rotate(180deg)}.line-filter-menu{position:absolute;top:43px;left:0;width:148px;padding:6px;border:1px solid var(--line);border-radius:6px;background:#fff;box-shadow:0 8px 22px rgba(23,26,31,.15);display:grid;gap:2px}.line-filter-menu label{height:34px;padding:0 7px;border-radius:4px;display:flex;align-items:center;gap:8px;color:var(--ink);font-size:10px;font-weight:750;cursor:pointer}.line-filter-menu label:hover{background:var(--soft)}.line-filter-menu input{width:15px;height:15px;margin:0;accent-color:var(--blue)}.map-route-metric{width:194px}.map-route-metric[hidden]{display:none}.tool-toggle{height:38px;padding:0 11px;border:1px solid var(--line);border-radius:6px;background:#fff;color:var(--muted);display:flex;align-items:center;gap:6px;box-shadow:0 2px 9px rgba(23,26,31,.1);font-size:11px;font-weight:800}.tool-toggle svg{width:15px}.tool-toggle.is-on{border-color:var(--estate);color:var(--estate)}.region-control{height:38px;padding:0 8px 0 10px;border:1px solid var(--line);border-radius:6px;background:#fff;display:flex;align-items:center;gap:7px;box-shadow:0 2px 9px rgba(23,26,31,.1)}.region-control span{color:var(--muted);font-size:9px;font-weight:750}.region-control select{border:0;outline:0;background:#fff;color:var(--ink);font-size:11px;font-weight:800}.radius-control{position:absolute;z-index:35;top:64px;left:16px;height:36px;padding:3px;border:1px solid var(--line);border-radius:6px;background:#fff;display:flex;align-items:center;gap:2px;box-shadow:0 2px 9px rgba(23,26,31,.1)}.radius-control[hidden]{display:none}.radius-control span{padding:0 7px;color:var(--muted);font-size:9px;font-weight:800}.radius-control button{height:28px;padding:0 7px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:9px;font-weight:800}.radius-control button.is-active{background:#e5f4ef;color:var(--estate)}.focus-exit{position:absolute;z-index:35;top:112px;left:16px;height:38px;padding:0 11px;border:1px solid var(--line);border-radius:5px;background:#fff;display:flex;align-items:center;gap:7px;box-shadow:0 2px 9px rgba(23,26,31,.1);font-size:11px;font-weight:800}.focus-exit[hidden]{display:none}.focus-exit svg{width:16px}.location-button{position:absolute;z-index:35;right:16px;bottom:62px;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:6px;background:#fff;display:grid;place-items:center;box-shadow:0 2px 9px rgba(23,26,31,.1)}.location-button svg{width:18px}.legend{position:absolute;z-index:34;right:16px;bottom:16px;padding:8px 10px;border:1px solid var(--line);border-radius:5px;background:rgba(255,255,255,.94);display:flex;gap:12px;color:var(--muted);font-size:9px}.legend span{display:flex;align-items:center;gap:5px}.legend i{display:block}.line-now{width:18px;border-top:3px solid #65717d}.line-future{width:18px;border-top:4px solid var(--future)}.dot-complex{width:9px;height:9px;border-radius:2px;background:var(--estate)}.coverage-note{position:absolute;z-index:34;bottom:16px;left:16px;margin:0;color:#5d6670;font-size:9px;text-shadow:0 1px 2px #fff}
.station-marker{position:relative;width:24px;height:24px;padding:0;border:3px solid #fff;border-radius:50%;background:var(--ink);color:#fff;box-shadow:0 2px 7px rgba(23,26,31,.28)}.station-marker.future{background:var(--future)}.station-marker span{position:absolute;top:22px;left:50%;padding:2px 4px;border-radius:3px;background:rgba(255,255,255,.95);color:var(--ink);font-size:9px;font-weight:800;white-space:nowrap;transform:translateX(-50%);box-shadow:0 1px 4px rgba(23,26,31,.12)}.station-marker.is-selected{transform:scale(1.25);background:var(--blue)}.complex-marker{min-width:54px;height:30px;padding:0 7px;border:2px solid #fff;border-radius:5px;background:var(--estate);color:#fff;box-shadow:0 3px 9px rgba(8,127,91,.3);font-size:10px;font-weight:850}.complex-marker.is-home{background:#c34631}.my-location-marker{width:18px;height:18px;border:4px solid #fff;border-radius:50%;background:var(--blue);box-shadow:0 0 0 2px rgba(23,105,224,.25)}
.detail-panel{position:absolute;z-index:60;top:66px;right:var(--nav);bottom:0;width:var(--panel);padding:25px 22px 38px;border-left:1px solid var(--line);background:rgba(255,255,255,.99);overflow:auto}.panel-eyebrow{margin:0 0 6px;color:var(--future);font-size:10px;font-weight:850}.panel-title{margin:0;font-size:24px;line-height:1.24}.panel-subtitle{margin:8px 0 0;color:var(--muted);font-size:11px;line-height:1.6}.panel-actions{margin-top:18px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.command{height:42px;padding:0 10px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);font-size:11px;font-weight:800}.command.primary{border-color:var(--ink);background:var(--ink);color:#fff}.command.full{width:100%;margin-top:8px}.summary-grid{margin-top:22px;display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.summary-grid div{padding-top:10px;border-top:1px solid var(--line)}.summary-grid span,.summary-grid strong{display:block}.summary-grid span{color:var(--muted);font-size:9px}.summary-grid strong{margin-top:5px;font-size:15px}.section-title{margin:26px 0 10px;font-size:13px}.list{border-top:1px solid var(--line)}.list-row{width:100%;min-height:56px;padding:9px 2px;border:0;border-bottom:1px solid var(--line);background:#fff;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 10px;text-align:left}.list-row:hover{background:var(--soft)}.list-row strong,.list-row span,.list-row small{display:block}.list-row strong{font-size:11px}.list-row span{color:var(--estate);font-size:11px;font-weight:850}.list-row small{grid-column:1/-1;color:var(--muted);font-size:9px}.context-back{margin:0 0 16px;padding:0;border:0;background:transparent;color:var(--blue);display:flex;align-items:center;gap:6px;font-size:10px;font-weight:800}.context-back svg{width:15px}.status-list{margin-top:18px;border-top:1px solid var(--line)}.status-list div{padding:10px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}.status-list span{color:var(--muted);font-size:9px}.status-list strong{font-size:10px;text-align:right}.notice{margin-top:18px;padding:13px;border-left:4px solid var(--future);background:var(--soft);font-size:10px;line-height:1.6}.empty-state{min-height:60vh;display:grid;align-content:center;justify-items:center;text-align:center}.empty-state svg{width:30px;color:var(--blue)}.empty-state h1{margin:14px 0 0;font-size:22px}.empty-state p{max-width:280px;color:var(--muted);font-size:11px;line-height:1.65}
.progress-block{margin-top:18px}.progress-block div{display:flex;justify-content:space-between;align-items:center}.progress-block span,.progress-block small{color:var(--muted);font-size:9px}.progress-block strong{font-size:12px}.progress-block progress{width:100%;height:8px;margin:8px 0 4px;border:0;border-radius:4px;overflow:hidden;background:var(--line);accent-color:var(--future)}.progress-block progress::-webkit-progress-bar{background:var(--line)}.progress-block progress::-webkit-progress-value{background:var(--future)}.source-link{min-height:58px;padding:10px 11px;border:1px solid var(--line);border-radius:5px;color:var(--ink);display:grid;grid-template-columns:minmax(0,1fr) 18px;align-items:center;gap:10px;text-decoration:none}.source-link:hover{border-color:var(--blue)}.source-link strong,.source-link small{display:block}.source-link strong{font-size:10px}.source-link small{margin-top:4px;color:var(--muted);font-size:9px;line-height:1.45}.source-link svg{width:15px;color:var(--blue)}
.route-form{margin-top:20px;display:grid;gap:9px}.route-field{position:relative}.route-form label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.route-form label.is-active{color:var(--blue)}.route-form input,.settings-form input,.compare-search input{width:100%;height:42px;padding:0 10px;border:1px solid var(--line);border-radius:5px;background:#fff;outline:0;color:var(--ink);font-size:11px}.route-form input:focus,.settings-form input:focus,.compare-search input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(23,105,224,.09)}.suggestions{position:absolute;z-index:100;top:calc(100% + 4px);right:0;left:0;max-height:248px;border:1px solid var(--line);border-radius:5px;background:#fff;box-shadow:0 9px 24px rgba(23,26,31,.15);overflow:auto}.suggestions[hidden]{display:none}.suggestions button{width:100%;min-height:46px;padding:7px 9px;border:0;border-bottom:1px solid var(--line);background:#fff;display:flex;align-items:center;gap:8px;text-align:left}.suggestions button:hover{background:var(--soft)}.suggestions svg{width:15px;color:var(--blue)}.suggestions strong,.suggestions small{display:block}.suggestions strong{font-size:10px}.suggestions small{margin-top:2px;color:var(--muted);font-size:8px}.route-report-header{display:grid;grid-template-columns:34px 1fr;gap:8px}.icon-button{width:34px;height:34px;padding:0;border:1px solid var(--line);border-radius:5px;background:#fff;display:grid;place-items:center}.icon-button svg{width:16px}.route-summary{margin-top:18px;padding:14px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.route-summary span,.route-summary strong{display:block}.route-summary span{color:var(--muted);font-size:9px}.route-summary strong{margin-top:4px;font-size:17px}.route-summary .improved{color:var(--estate)}.journey-card{margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:6px}.journey-card.current{border-top:4px solid #65717d}.journey-card.future{border-top:4px solid var(--future)}.journey-card header{display:flex;justify-content:space-between;align-items:center}.journey-card header span{color:var(--muted);font-size:10px;font-weight:800}.journey-card header strong{font-size:22px}.segment-row{margin-top:12px;padding-left:11px;border-left:4px solid var(--segment-color)}.segment-row strong,.segment-row small{display:block}.segment-row strong{font-size:10px}.segment-row small{margin-top:3px;color:var(--muted);font-size:8px;line-height:1.5}.report-insight{margin-top:14px;padding:13px;border-left:4px solid var(--future);background:var(--soft);font-size:10px;line-height:1.6}
.compare-search{margin-top:18px}.candidate{position:relative;padding-right:64px}.candidate-tools{position:absolute;right:2px;top:11px;display:flex}.candidate-tools button{width:28px;height:28px;padding:0;border:0;background:transparent;color:var(--muted)}.candidate-tools svg{width:14px}.district-toggles{display:flex;flex-wrap:wrap;gap:5px}.district-toggles button{height:31px;padding:0 9px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--muted);font-size:9px;font-weight:800}.district-toggles button.is-on{border-color:var(--blue);background:#edf4ff;color:var(--blue)}.compare-table{margin-top:12px;border-top:1px solid var(--line)}.compare-table div{padding:10px 0;border-bottom:1px solid var(--line)}.compare-table strong{display:block;font-size:10px}.compare-table span{display:flex;justify-content:space-between;padding-top:5px;color:var(--muted);font-size:9px}.compare-table b{color:var(--ink)}.settings-form{margin-top:20px;display:grid;gap:9px}.settings-form label{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.saved-heading{margin-top:12px;display:flex;align-items:center;justify-content:space-between}.saved-heading strong{font-size:11px}.saved-heading button{height:28px;padding:0 7px;border:1px solid var(--line);border-radius:4px;background:#fff;font-size:9px}.saved-row{display:grid;grid-template-columns:.7fr 1.3fr 30px;gap:5px}.saved-row button{width:30px;border:0;background:transparent;color:var(--muted)}.saved-row svg{width:14px}.legal-links{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:7px}.legal-links a{height:38px;border:1px solid var(--line);border-radius:5px;color:var(--ink);display:grid;place-items:center;font-size:10px;font-weight:800;text-decoration:none}.legal-links a:hover{border-color:var(--blue);color:var(--blue)}
.primary-nav{position:absolute;z-index:70;top:66px;right:0;bottom:0;width:var(--nav);border-left:1px solid var(--line);background:#fff;display:flex;flex-direction:column}.primary-nav button{height:76px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--muted);display:grid;place-content:center;justify-items:center;gap:5px;font-size:9px;font-weight:800}.primary-nav svg{width:20px}.primary-nav button.is-active{color:var(--blue);background:#edf4ff}.toast{position:fixed;z-index:150;left:50%;bottom:24px;max-width:min(420px,calc(100vw - 32px));padding:11px 15px;border-radius:5px;background:var(--ink);color:#fff;font-size:11px;transform:translate(-50%,20px);opacity:0;pointer-events:none;transition:.2s}.toast.is-on{transform:translate(-50%,0);opacity:1}
@media(max-width:900px){:root{--panel:0px;--nav:0px;--mobile-top:calc(58px + env(safe-area-inset-top));--mobile-bottom:calc(58px + env(safe-area-inset-bottom))}.topbar{height:var(--mobile-top);padding:env(safe-area-inset-top) 12px 0;gap:9px}.brand{width:38px}.brand-full{display:none}.brand-mark{display:block}.global-search{width:auto;flex:1}.global-search kbd,.data-health{display:none}.global-results{top:calc(52px + env(safe-area-inset-top));left:56px;width:calc(100vw - 68px)}.map-workspace{inset:var(--mobile-top) 0 var(--mobile-bottom)}.map-toolbar{top:10px;right:10px;left:10px;overflow-x:auto;scrollbar-width:none}.region-control span{display:none}.coverage-note{display:none}.legend{right:10px;bottom:10px}.location-button{right:10px;bottom:54px}.detail-panel{top:auto;right:0;bottom:var(--mobile-bottom);left:0;width:auto;height:min(61vh,590px);padding:20px 17px 28px;border-top:1px solid var(--line);border-left:0;border-radius:8px 8px 0 0;box-shadow:0 -8px 28px rgba(23,26,31,.12)}.primary-nav{top:auto;right:0;bottom:0;left:0;width:auto;height:var(--mobile-bottom);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid var(--line);border-left:0;display:grid;grid-template-columns:repeat(4,1fr)}.primary-nav button{height:58px;border-right:1px solid var(--line);border-bottom:0}.primary-nav svg{width:18px}.focus-exit{top:58px;left:10px}.radius-control{top:58px;left:10px}.panel-title{font-size:21px}.summary-grid strong{font-size:14px}}
@media(max-width:520px){.tool-toggle span{display:none}.region-control{max-width:118px}.legend span:nth-child(1){display:none}.map-toolbar{gap:5px}.line-filter summary small{display:none}.map-route-metric{width:170px}.detail-panel{height:min(64vh,560px)}.saved-row{grid-template-columns:82px minmax(0,1fr) 28px}}

/* V1 transit-estate schematic map */
.map-workspace{overflow:hidden;background:#eef1f2}.abstract-viewport{position:absolute;inset:0;overflow:hidden;cursor:grab;background-color:#eef1f2;background-image:linear-gradient(rgba(91,103,113,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(91,103,113,.055) 1px,transparent 1px);background-size:40px 40px;user-select:none;-webkit-user-select:none}.abstract-viewport.is-dragging{cursor:grabbing}.abstract-scene{position:absolute;top:0;left:0;width:1900px;height:1450px;transform-origin:0 0;will-change:transform}.schematic-map-host,.rail-canvas,.abstract-station-layer,.abstract-estate-layer{position:absolute;inset:0;width:1900px;height:1450px}.schematic-map-host>svg{display:block;width:100%;height:100%;overflow:visible}.rail-canvas{overflow:visible;pointer-events:none}.abstract-station-layer,.abstract-estate-layer{pointer-events:none}.schematic-map-host .line:not(.future-casing),.schematic-map-host .line-hit,.schematic-map-host .station{cursor:pointer;transition:opacity .16s,stroke-width .16s}.schematic-map-host .future-casing{pointer-events:none}.schematic-map-host .line.is-muted,.schematic-map-host .station.is-muted{opacity:.1}.schematic-map-host .line.is-active{stroke-width:8;opacity:1}.schematic-map-host .station.is-selected{stroke:#1769e0;stroke-width:3;filter:drop-shadow(0 0 3px rgba(23,105,224,.55))}
.schematic-map-host .line-hit:focus,.schematic-map-host .station:focus{outline:none}.schematic-map-host .active-line-halo{fill:none;stroke:#fff;stroke-width:13;stroke-linecap:round;stroke-linejoin:round;opacity:.98;pointer-events:none}.schematic-map-host .active-line-overlay{stroke-width:8!important;opacity:1!important;pointer-events:none;filter:drop-shadow(0 1px 1px rgba(23,26,31,.24))}.schematic-map-host .transfer-complex{transition:opacity .16s}.schematic-map-host .transfer-complex.is-muted{opacity:.1}.schematic-map-host .transfer-complex.is-selected .transfer-capsule{stroke:#1769e0;stroke-width:2.5;filter:drop-shadow(0 0 3px rgba(23,105,224,.5))}.schematic-map-host .transfer-complex .station-hit.is-selected{stroke:transparent;filter:none}
.station-marker{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;padding:0;border:2px solid var(--station-color,#171a1f);border-radius:50%;background:transparent;color:var(--ink);pointer-events:auto;box-shadow:none;transform-origin:center;transition:transform .16s,opacity .16s}.station-marker.future{border-color:var(--future)}.station-marker.period-inactive{opacity:.32}.station-marker.transfer{width:14px;height:14px;margin:-7px 0 0 -7px;border-width:2.5px}.station-marker span{position:absolute;top:12px;left:50%;padding:2px 3px;border-radius:2px;background:rgba(255,255,255,.94);color:var(--ink);font-size:5px;font-weight:800;white-space:nowrap;transform:translateX(-50%);box-shadow:0 1px 2px rgba(23,26,31,.12)}.station-marker:not(.transfer):not(.future) span{opacity:0}.station-marker:hover span,.station-marker.is-selected span{opacity:1}.station-marker.is-selected{z-index:8;background:rgba(23,105,224,.28);box-shadow:0 0 0 3px rgba(23,105,224,.18);opacity:1}.station-marker.is-muted{opacity:.12}
.complex-marker{position:absolute;width:104px;height:38px;margin:0;padding:6px 8px;border:1px solid #fff;border-radius:5px;background:var(--estate);color:#fff;pointer-events:auto;box-shadow:0 2px 5px rgba(8,127,91,.28);text-align:left;transform:translate(-50%,-50%) scale(var(--marker-scale,1));transform-origin:center}.complex-marker strong,.complex-marker span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.complex-marker strong{font-size:8px;line-height:1.18}.complex-marker span{margin-top:3px;font-size:7px;font-weight:750;line-height:1.1}.complex-marker.distance-middle{opacity:.82}.complex-marker.distance-outer{opacity:.64}.complex-marker.is-home{background:#c34631;opacity:1}.complex-marker.is-selected{z-index:2;opacity:1;outline:2px solid #1769e0;outline-offset:1px}.distance-band{position:absolute;border:1px solid rgba(8,127,91,.13);border-radius:50%;background:rgba(8,127,91,.035);transform:translate(-50%,-50%);pointer-events:none}.distance-band.band-2{background:rgba(8,127,91,.045)}.distance-band.band-1{background:rgba(8,127,91,.06)}.my-location-marker{position:absolute;width:10px;height:10px;margin:-5px;border:2px solid #fff;border-radius:50%;background:var(--blue);box-shadow:0 0 0 2px rgba(23,105,224,.25);pointer-events:none}.zoom-tools{position:absolute;z-index:35;left:16px;bottom:62px;display:grid;gap:5px}.zoom-tools button{width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:5px;background:#fff;display:grid;place-items:center;box-shadow:0 2px 9px rgba(23,26,31,.1)}.zoom-tools svg{width:16px}
@media(max-width:900px){.zoom-tools{left:10px;bottom:calc(64vh + 68px)}.station-marker span{font-size:10px}.complex-marker{min-width:54px}}
@media(max-width:900px){.abstract-viewport{bottom:min(61vh,590px)}.legend,.location-button{display:none}}
@media(max-width:520px){.abstract-viewport{bottom:min(64vh,560px)}}
.schematic-map-host text{user-select:none;-webkit-user-select:none}
.abstract-station-layer{z-index:8}.abstract-estate-layer{z-index:7}.station-popup-layer{position:absolute;z-index:24;inset:0;overflow:hidden;pointer-events:none}.station-action-popup{position:absolute;width:272px;border:1px solid #cfd6dc;border-radius:6px;background:#fff;box-shadow:0 8px 22px rgba(23,26,31,.2);color:var(--ink);pointer-events:auto;transform:translate(-50%,calc(-100% - 12px));transform-origin:50% 100%}.station-action-popup:after{position:absolute;bottom:-5px;left:50%;width:9px;height:9px;border-right:1px solid #cfd6dc;border-bottom:1px solid #cfd6dc;background:#fff;content:"";transform:translateX(-50%) rotate(45deg)}.station-action-popup header{min-height:48px;padding:9px 12px 8px;border-bottom:1px solid var(--line)}.station-action-popup header strong,.station-action-popup header small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.station-action-popup header strong{font-size:13px}.station-action-popup header small{margin-top:3px;color:var(--muted);font-size:10px}.station-popup-actions{display:grid;grid-template-columns:repeat(4,1fr)}.station-popup-actions button{height:58px;padding:5px 2px;border:0;border-right:1px solid var(--line);background:#fff;color:var(--muted);display:grid;place-content:center;justify-items:center;gap:4px}.station-popup-actions button:last-child{border-right:0;color:var(--estate)}.station-popup-actions button:hover{background:var(--soft);color:var(--blue)}.station-popup-actions svg{width:18px;height:18px}.station-popup-actions span{font-size:10px;font-weight:800}.panel-actions.three{grid-template-columns:repeat(3,1fr)}.route-field label small{display:inline;color:#89919a;font-size:8px;font-weight:650}.route-field-clear{position:absolute;z-index:2;right:7px;top:23px;width:28px;height:28px;padding:0;border:0;background:transparent;color:var(--muted);display:grid;place-items:center}.route-field-clear svg{width:13px}.route-field:has(.route-field-clear) input{padding-right:36px}.journey-via{margin:10px 0 0;padding:7px 9px;border-radius:4px;background:#edf4ff;color:var(--blue);display:flex;align-items:center;gap:5px;font-size:9px;font-weight:800}.journey-via svg{width:13px}
.line-action-popup{width:auto;border:0;border-radius:999px;background:transparent;box-shadow:0 5px 14px rgba(23,26,31,.24)}.line-action-popup:after{bottom:-4px;border:0;background:var(--popup-line-color)}.line-action-popup>button{height:38px;padding:0 10px 0 14px;border:0;border-radius:999px;background:var(--popup-line-color);color:var(--popup-line-text);display:flex;align-items:center;gap:7px;white-space:nowrap}.line-action-popup>button:hover{filter:brightness(.92)}.line-action-popup strong{font-size:11px}.line-action-popup span{padding-left:7px;border-left:1px solid color-mix(in srgb,var(--popup-line-text) 40%,transparent);font-size:10px;font-weight:750}.line-action-popup svg{width:14px;height:14px}
.schematic-map-host .line.route-muted,.schematic-map-host .line-tag.route-muted,.schematic-map-host .station-label.route-muted,.schematic-map-host .station.route-muted,.schematic-map-host .transfer-complex.route-muted{opacity:.1!important}.schematic-map-host .line.route-active-segment{opacity:1!important}
.route-clear-map{position:absolute;z-index:36;top:16px;right:16px;width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);display:grid;place-items:center;box-shadow:0 2px 9px rgba(23,26,31,.12)}.route-clear-map[hidden]{display:none}.route-clear-map:hover,.route-clear-map:focus-visible{color:var(--future);outline:2px solid rgba(239,73,56,.18);outline-offset:1px}.route-clear-map svg{width:17px;height:17px}
.detail-panel{padding:0;overflow:hidden}.detail-panel-content{height:100%;padding:25px 22px 38px;overflow:auto}.sheet-resize-handle{display:none}
@media(max-width:900px){.app-shell{--sheet-height:min(61vh,590px)}.detail-panel{height:var(--sheet-height);padding:0;transition:height .14s ease}.detail-panel.is-resizing{transition:none}.detail-panel-content{padding:28px 17px 28px;overscroll-behavior:contain}.sheet-resize-handle{position:absolute;z-index:4;top:0;left:50%;width:52px;height:24px;display:grid;place-items:center;transform:translateX(-50%);cursor:ns-resize;touch-action:none;outline:none}.sheet-resize-handle span{width:28px;height:4px;border-radius:2px;background:#aab2ba}.sheet-resize-handle:focus-visible span{background:var(--blue);box-shadow:0 0 0 3px rgba(23,105,224,.14)}.abstract-viewport{bottom:var(--sheet-height)}.zoom-tools{bottom:calc(var(--sheet-height) + 68px)}}
@media(max-width:520px){.app-shell{--sheet-height:min(64vh,560px)}.abstract-viewport{bottom:var(--sheet-height)}}

/* Schematic interaction and contextual overlays */
.schematic-map-host .line,.schematic-map-host .future-casing{pointer-events:none;cursor:default}.schematic-map-host .line-hit{pointer-events:stroke;cursor:pointer}
.schematic-map-host .station,.schematic-map-host .station-label,.schematic-map-host .line-tag{cursor:pointer}
.schematic-map-host .station-label{pointer-events:visiblePainted;outline:none}
.schematic-map-host .station-label-hit{fill:transparent;pointer-events:all;cursor:pointer}
.schematic-map-host .station-label:focus-visible{paint-order:stroke;stroke:#1769e0;stroke-width:3px}
.schematic-map-host .line-tag{pointer-events:auto;outline:none;filter:drop-shadow(0 1px 1px rgba(23,26,31,.16))}
.schematic-map-host .line-tag:focus-visible{filter:drop-shadow(0 0 3px #1769e0)}
.layout-editor-active .schematic-map-host .station-label-hit{pointer-events:none}
.layout-editor-active .schematic-map-host .station,.layout-editor-active .schematic-map-host .transfer-complex,.layout-editor-active .schematic-map-host .station-label,.layout-editor-active .schematic-map-host .line-tag{pointer-events:all;cursor:move}
.layout-editor-active .schematic-map-host .layout-editor-selected{filter:drop-shadow(0 0 2px #1769e0) drop-shadow(0 0 4px #fff)}
.layout-editor-active .schematic-map-host .layout-editor-dragging{cursor:grabbing}
.layout-editor-active .schematic-map-host path.line.layout-editor-selected{stroke:#1769e0!important;opacity:1!important}
.layout-line-editor{pointer-events:none}.layout-line-handle{fill:#fff;stroke:#1769e0;stroke-width:1.4;vector-effect:non-scaling-stroke;pointer-events:all;cursor:move}
.layout-line-handle.is-control{fill:#d9e9ff;stroke-dasharray:2 1}.layout-snap-target{fill:none;stroke:#ff3b30;stroke-width:1.5;vector-effect:non-scaling-stroke;pointer-events:none}
.layout-editor-toolbar{position:absolute;left:50%;bottom:68px;z-index:45;display:flex;align-items:center;gap:6px;min-height:40px;padding:5px 7px 5px 12px;transform:translateX(-50%);border:1px solid #303943;border-radius:6px;background:#171b20;color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.24);font-size:12px}
.layout-editor-toolbar[hidden]{display:none}
.layout-editor-toolbar strong{white-space:nowrap}.layout-editor-toolbar span{min-width:132px;max-width:220px;padding:0 8px;color:#cbd2da;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.layout-editor-toolbar button{display:grid;width:30px;height:30px;place-items:center;border:0;border-radius:4px;background:transparent;color:#fff;cursor:pointer}
.layout-editor-toolbar button:hover{background:#303943}.layout-editor-toolbar button:focus-visible{outline:2px solid #6ca7ff;outline-offset:1px}.layout-editor-toolbar svg{width:16px;height:16px}
.layout-editor-toggle[hidden]{display:none}
.route-point-marker{position:absolute;z-index:9;width:15px;height:15px;margin:-19px 0 0 -7.5px;border:1.5px solid #fff;border-radius:50% 50% 50% 3px;background:#1769e0;color:#fff;display:grid;place-items:center;filter:drop-shadow(0 1px 2px rgba(23,26,31,.34));pointer-events:none;transform:rotate(-45deg)}
.route-point-marker strong{font-size:6px;line-height:1;transform:rotate(45deg)}
.route-point-marker span{position:absolute;left:19px;top:0;padding:2px 4px;border-radius:3px;background:rgba(255,255,255,.96);color:#171a1f;font-size:6px;font-weight:800;white-space:nowrap;transform:rotate(45deg);transform-origin:left center;box-shadow:0 1px 3px rgba(23,26,31,.15)}
.route-point-marker.via{background:#8759d1}.route-point-marker.end{background:#ef4938}
.route-via-control{height:30px;padding:0 7px 0 10px;border-left:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:9px;font-weight:750}
.route-via-toggle{width:28px;height:28px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--muted);display:grid;place-items:center}
.route-via-toggle:hover,.route-via-toggle:focus-visible{border-color:var(--blue);color:var(--blue);outline:none}
.route-via-toggle svg{width:14px;height:14px}
.route-field>.route-via-toggle.remove{position:absolute;z-index:2;right:7px;top:22px}
.route-field:has(.route-via-toggle.remove) input{padding-right:40px}

/* S1 map and S2 detail panel */
.map-workspace{right:var(--nav)}
.app-shell.panel-open .map-workspace{right:calc(var(--panel) + var(--nav))}
.detail-panel{visibility:hidden;pointer-events:none;transform:translateX(100%);transition:transform .2s ease,visibility 0s .2s}
.app-shell.panel-open .detail-panel{visibility:visible;pointer-events:auto;transform:translateX(0);transition:transform .2s ease}
@media(max-width:900px){
  .map-workspace,.app-shell.panel-open .map-workspace{right:0}
  .detail-panel{transform:translateY(100%)}
  .app-shell.panel-open .detail-panel{transform:translateY(0)}
  .abstract-viewport{bottom:0}
  .app-shell.panel-open .abstract-viewport{bottom:var(--sheet-height)}
  .zoom-tools{bottom:62px}
  .app-shell.panel-open .zoom-tools{bottom:calc(var(--sheet-height) + 68px)}
}

/* Selected-line context must override SVG period and project-stage opacity. */
.schematic-map-host .line.is-muted,
.schematic-map-host .future-casing.is-muted,
.schematic-map-host .station.is-muted,
.schematic-map-host .transfer-complex.is-muted,
.schematic-map-host .station-label.is-muted,
.schematic-map-host .line-tag.is-muted{opacity:.1!important}

.abstract-viewport{background:#fff;background-image:none}
.app-shell.panel-open.panel-compact .map-workspace{right:calc(300px + var(--nav))}
.app-shell.panel-compact .detail-panel{width:300px}
@media(max-width:900px){
  .app-shell.panel-open.panel-compact .map-workspace{right:0}
  .app-shell.panel-compact .detail-panel{width:auto}
}

.route-submit-row{display:grid;grid-template-columns:42px 1fr;gap:8px;align-items:center}
.route-submit-row .command{width:100%}
.route-metric{height:38px;padding:3px;border:1px solid var(--line);border-radius:6px;background:#f5f7f8;display:grid;grid-template-columns:repeat(2,1fr);gap:3px}.route-metric button{border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:10px;font-weight:800}.route-metric button.is-active{background:#fff;color:var(--ink);box-shadow:0 1px 4px rgba(23,26,31,.12)}
.route-swap-button{width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--muted);display:grid;place-items:center}
.route-swap-button:hover,.route-swap-button:focus-visible{border-color:var(--blue);color:var(--blue);outline:none}
.route-swap-button svg{width:17px;height:17px}
.access-legs{margin-top:12px;border-top:1px solid var(--line)}
.access-legs>div{padding:9px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:18px 1fr;gap:7px;align-items:start}
.access-legs svg{width:15px;color:var(--blue)}.access-legs strong,.access-legs small{display:block}
.access-legs strong{font-size:9px}.access-legs small{margin-top:3px;color:var(--muted);font-size:8px}
.journey-card footer{margin-top:6px;display:flex;gap:10px;color:var(--muted);font-size:8px;font-weight:750}
.journey-diagram{margin-top:8px;padding:4px 0 7px;border-bottom:1px solid var(--line)}
.journey-diagram svg{display:block;width:100%;height:auto;overflow:visible}
.journey-diagram text{fill:var(--muted);font-size:7px;font-weight:750;letter-spacing:0;paint-order:stroke;stroke:#fff;stroke-width:2px;stroke-linejoin:round}
.journey-diagram .journey-station-name{fill:var(--ink);font-size:8px;font-weight:800}
.journey-line-legend{margin-top:-2px;display:flex;gap:5px 10px;align-items:center;flex-wrap:wrap;color:var(--muted);font-size:7px;font-weight:750}
.journey-line-legend span{display:flex;align-items:center;gap:4px;white-space:nowrap}
.journey-line-legend i{width:12px;height:3px;border-radius:0;background:var(--line-color)}

.schematic-map-host .estate-focus #lines,
.schematic-map-host .estate-focus #line-hits,
.schematic-map-host .estate-focus #line-tags,
.schematic-map-host .estate-focus #selected-line-overlay{opacity:0!important;pointer-events:none}
.schematic-map-host .estate-focus .station-label:not(.is-selected),
.schematic-map-host .estate-focus #stations>.station:not(.is-selected),
.schematic-map-host .estate-focus #stations>.transfer-complex:not(.is-selected){opacity:0!important;pointer-events:none}
.schematic-map-host .estate-focus .station-label.is-selected,
.schematic-map-host .estate-focus #stations>.station.is-selected,
.schematic-map-host .estate-focus #stations>.transfer-complex.is-selected{opacity:1!important}

.area-control{position:absolute;z-index:35;top:108px;left:16px;height:36px;padding:3px;border:1px solid var(--line);border-radius:6px;background:#fff;display:flex;align-items:center;gap:2px;box-shadow:0 2px 9px rgba(23,26,31,.1)}
.area-control[hidden]{display:none}.area-control span{padding:0 7px;color:var(--muted);font-size:9px;font-weight:800}.area-control button{height:28px;padding:0 7px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:9px;font-weight:800;white-space:nowrap}.area-control button.is-active{background:#e5f4ef;color:var(--estate)}
#areaControl:not([hidden])~.focus-exit:not(.close-focus){top:156px}
@media(max-width:900px){.area-control{top:102px;left:10px}#areaControl:not([hidden])~.focus-exit:not(.close-focus){top:146px}}

/* Route reset and decision-first comparison report */
.route-reset-button{min-height:34px;padding:0 8px;border:0;background:transparent;color:var(--muted);display:flex;align-items:center;justify-content:center;gap:6px;font-size:9px;font-weight:800}.route-reset-button:hover,.route-reset-button:focus-visible{color:var(--blue);outline:none}.route-reset-button svg{width:14px;height:14px}.route-reset-button.report{width:100%;margin-top:14px;border-top:1px solid var(--line);padding-top:12px}
.report-share-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;line-height:1}.report-share-button svg{width:16px;height:16px;flex:0 0 16px}
.focus-exit.close-focus{top:16px;right:16px;left:auto;width:38px;padding:0;justify-content:center}.focus-exit.close-focus svg{width:17px;height:17px}.focus-exit.close-focus:hover,.focus-exit.close-focus:focus-visible{color:var(--future);outline:2px solid rgba(239,73,56,.16);outline-offset:1px}
@media(max-width:900px){.focus-exit.close-focus,.route-clear-map{top:10px;right:10px;left:auto}}
.compare-search{display:grid;gap:5px;color:var(--muted);font-size:9px;font-weight:750}.compare-verdict{margin-top:18px;padding:15px 0;border-top:4px solid var(--future);border-bottom:1px solid var(--line)}.compare-verdict p{font-size:12px;font-weight:800;line-height:1.65}.compare-verdict strong{display:block;margin-top:8px;color:var(--estate);font-size:10px;line-height:1.6}.compare-key-metrics{margin-top:14px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.compare-key-metrics>div{min-width:0;padding:12px 8px;border-right:1px solid var(--line)}.compare-key-metrics>div:first-child{padding-left:0}.compare-key-metrics>div:last-child{padding-right:0;border-right:0}.compare-key-metrics span,.compare-key-metrics strong,.compare-key-metrics small{display:block}.compare-key-metrics span{color:var(--muted);font-size:8px}.compare-key-metrics strong{margin-top:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.compare-key-metrics small{margin-top:4px;color:var(--estate);font-size:9px;font-weight:800}.compare-candidate-summary{border-top:1px solid var(--line)}.compare-candidate-summary>section{padding:13px 0;border-bottom:1px solid var(--line)}.compare-candidate-summary header{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.compare-candidate-summary header strong{font-size:11px;line-height:1.4}.compare-candidate-summary header b{flex:0 0 auto;color:var(--blue);font-size:13px}.compare-candidate-summary p{margin-top:4px;color:var(--muted);font-size:8px;line-height:1.5}.compare-candidate-summary dl{margin-top:9px;display:grid;gap:5px}.compare-candidate-summary dl div{display:grid;grid-template-columns:48px minmax(0,1fr);gap:8px}.compare-candidate-summary dt{color:var(--muted);font-size:8px}.compare-candidate-summary dd{margin:0;text-align:right;font-size:9px;font-weight:800}.compare-flow-legend{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:8px}.compare-flow-legend span{display:flex;align-items:center;gap:4px}.compare-flow-legend i{width:14px;height:3px;background:#69727d}.compare-flow-legend i.future{background:var(--future)}.compare-flow-legend small{margin-left:auto}.compare-story{padding:14px 0;border-bottom:1px solid var(--line)}.compare-story>header{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:11px}.compare-story>header span{font-size:11px;font-weight:850}.compare-story>header small{color:var(--muted);font-size:7px;text-align:right}.compare-flow-row{margin-top:12px}.compare-flow-row>strong{display:block;margin-bottom:5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:9px}.compare-flow-line{height:13px;display:grid;grid-template-columns:minmax(0,1fr) 34px;align-items:center;gap:6px}.compare-flow-line>span{display:block;height:3px;border-radius:0;background:#69727d}.compare-flow-line.future>span{height:5px;background:var(--candidate)}.compare-flow-line b{font-size:8px;text-align:right}.compare-flow-row>small{display:block;margin-top:4px;color:var(--muted);font-size:7px;text-align:right}.compare-method{margin:18px 0 14px;padding:13px;border-left:4px solid var(--estate);background:var(--soft)}.compare-method strong{font-size:10px}.compare-method p{margin-top:6px;color:var(--muted);font-size:8px;line-height:1.55}
.compare-candidate{display:grid;gap:5px}.compare-area-select{display:grid;gap:4px;margin-top:4px;color:var(--muted);font-size:8px;font-weight:800}.compare-area-select select{width:100%;height:32px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:#fff;color:var(--ink);font-size:9px;font-weight:800}
@media(max-width:520px){.compare-key-metrics{grid-template-columns:1fr}.compare-key-metrics>div,.compare-key-metrics>div:first-child,.compare-key-metrics>div:last-child{padding:9px 0;border-right:0;border-bottom:1px solid var(--line)}.compare-key-metrics>div:last-child{border-bottom:0}.compare-key-metrics strong{white-space:normal}}

/* Report-first S2 content and contextual continuation */
.report-reading{margin-top:18px;padding:14px 0;border-top:3px solid var(--blue);border-bottom:1px solid var(--line)}.report-reading.market{border-top-color:var(--estate)}.report-reading>span{color:var(--muted);font-size:8px;font-weight:800}.report-reading>p{margin:7px 0 0;font-size:11px;font-weight:750;line-height:1.65}.report-reading>small{display:block;margin-top:7px;color:var(--muted);font-size:8px;line-height:1.55}.report-next{margin-top:26px;border-top:1px solid var(--line)}.report-next>header{padding:14px 0 8px;display:flex;align-items:baseline;justify-content:space-between;gap:10px}.report-next>header span{font-size:13px;font-weight:850}.report-next>header small{color:var(--muted);font-size:8px}.report-next>button{width:100%;min-height:58px;padding:9px 3px;border:0;border-bottom:1px solid var(--line);background:#fff;color:var(--ink);display:grid;grid-template-columns:28px minmax(0,1fr) 16px;align-items:center;gap:8px;text-align:left}.report-next>button:hover,.report-next>button:focus-visible{background:var(--soft);outline:none}.report-next>button>i:first-child{width:17px;color:var(--blue)}.report-next>button>i:last-child{width:14px;color:var(--muted)}.report-next strong,.report-next small{display:block}.report-next strong{font-size:10px}.report-next small{margin-top:4px;color:var(--muted);font-size:8px;line-height:1.45}

/* v1.1 decision detail and per-report data dates */
.business-access{margin-top:24px;border-top:4px solid var(--future)}
.business-access>header{padding:14px 0 11px;border-bottom:1px solid var(--line)}
.business-access>header>span{color:var(--muted);font-size:8px;font-weight:800}
.business-access>header>p{margin:7px 0 0;font-size:11px;font-weight:800;line-height:1.6}
.business-access-list article{padding:12px 0;border-bottom:1px solid var(--line)}
.business-access-list article>div:first-child{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.business-access-list strong{font-size:10px}
.business-access-list b{flex:0 0 auto;font-size:10px}
.business-access-list b i{margin:0 5px;color:var(--muted);font-style:normal}
.business-access-list p{margin:5px 0 0;color:var(--muted);font-size:8px;line-height:1.45}
.business-access-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px;margin-top:9px;padding:8px 0;border-top:1px solid var(--line)}
.business-access-details div{display:flex;justify-content:space-between;gap:6px;font-size:8px}
.business-access-details strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:8px}
.business-access-details span{flex:0 0 auto;color:var(--muted);font-weight:800}
.business-access-details i,.compare-flow-details i{margin:0 2px;color:var(--muted);font-style:normal}
.business-route-button{margin-top:8px;height:28px;padding:0 8px;border:1px solid var(--line);border-radius:4px;background:#fff;color:var(--ink);display:inline-flex;align-items:center;gap:5px;font-size:8px;font-weight:850}
.business-route-button:hover,.business-route-button:focus-visible{border-color:var(--blue);color:var(--blue);outline:none}
.business-route-button svg{width:12px;height:12px}
.impact-lines{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px}
.impact-line{min-height:20px;padding:3px 8px;border-radius:999px;background:var(--line-color);color:var(--line-text);display:inline-flex;align-items:center;font-size:7px;font-weight:850;line-height:1.2}
.compare-flow-details{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:3px 7px;margin-top:5px;color:var(--muted);font-size:7px}.compare-flow-details span{white-space:nowrap}
.data-basis{margin-top:22px;padding:12px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.data-basis>strong{font-size:9px}
@media(max-width:520px){.business-access-details{grid-template-columns:1fr}}
.data-basis>div{margin-top:8px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.data-basis span,.data-basis b{display:block}
.data-basis span{color:var(--muted);font-size:7px}
.data-basis b{margin-top:3px;color:var(--ink);font-size:8px}
@media(max-width:520px){.data-basis>div{grid-template-columns:1fr}.data-basis span{display:flex;justify-content:space-between;gap:10px}.data-basis b{margin-top:0}}

/* Keep map action popups proportional to the current camera and inside the viewport. */
.station-action-popup{transform:translate(-50%,calc(-100% - 12px)) scale(var(--popup-scale,1));transform-origin:50% 100%}
.station-action-popup.is-below{transform:translate(-50%,12px) scale(var(--popup-scale,1));transform-origin:50% 0}
.station-action-popup:after{left:calc(50% + var(--popup-arrow-offset,0px))}
.station-action-popup.is-below:after{top:-5px;bottom:auto;border:0;border-top:1px solid #cfd6dc;border-left:1px solid #cfd6dc}

/* Mobile S1 map and three-stage S2 sheet. */
@media(max-width:900px){
  html,body,.app-shell{overscroll-behavior:none}
  .abstract-viewport{touch-action:none}
  .global-search input{font-size:16px}
  .detail-panel{max-width:100vw;overflow:hidden}
  .detail-panel-content{min-width:0;padding:44px 20px 32px;overflow-x:hidden;overflow-y:hidden;overscroll-behavior:contain}
  .detail-panel[data-sheet-stage="full"] .detail-panel-content{overflow-y:auto}
  .sheet-resize-handle{top:0;left:0;width:100%;height:40px;border-radius:8px 8px 0 0;background:#fff;transform:none}
  .sheet-resize-handle:after{position:absolute;right:20px;bottom:0;left:20px;height:1px;background:var(--line);content:""}
  .sheet-resize-handle span{width:38px;height:5px;background:#9ca6af}
  .panel-title{font-size:25px;line-height:1.28}
  .panel-eyebrow{font-size:12px}
  .panel-subtitle{font-size:14px;line-height:1.55}
  .context-back{min-height:38px;margin-bottom:12px;font-size:13px}
  .command{height:48px;font-size:14px}
  .panel-actions{gap:10px}
  .summary-grid{gap:12px}
  .summary-grid span{font-size:12px}
  .summary-grid strong{font-size:18px}
  .section-title{font-size:16px}
  .list-row{min-height:66px;padding:11px 4px}
  .list-row strong{font-size:14px;line-height:1.35}
  .list-row span{font-size:13px}
  .list-row small{font-size:12px;line-height:1.45}
  .status-list span,.status-list strong{font-size:12px;line-height:1.45}
  .notice{font-size:13px;line-height:1.55}
  .route-form label,.settings-form label,.compare-search{font-size:12px}
  .route-form input,.settings-form input,.compare-search input{height:48px;font-size:16px}
  .route-field-clear{top:27px;width:34px;height:34px}
  .route-field>.route-via-toggle.remove{top:27px}
  .route-metric{height:44px}
  .route-metric button{font-size:13px}
  .route-via-control{height:40px;font-size:12px}
  .route-swap-button{width:48px;height:48px}
  .route-submit-row{grid-template-columns:48px 1fr}
  .route-reset-button{min-height:42px;font-size:12px}
  .suggestions button{min-height:58px}
  .suggestions strong{font-size:14px}
  .suggestions small{font-size:12px}
  .report-reading>span{font-size:12px}
  .report-reading>p{font-size:14px;line-height:1.65}
  .report-reading>small{font-size:12px;line-height:1.5}
  .report-next>header span{font-size:16px}
  .report-next>header small{font-size:11px}
  .report-next>button{min-height:72px;grid-template-columns:32px minmax(0,1fr) 18px}
  .report-next strong{font-size:14px}
  .report-next small{font-size:12px;line-height:1.45}
  .data-basis>strong{font-size:12px}
  .data-basis span{font-size:11px}
  .data-basis b{font-size:12px}
  .route-summary span{font-size:12px}
  .route-summary strong{font-size:20px}
  .journey-card header span{font-size:13px}
  .journey-card header strong{font-size:14px}
  .segment-row strong{font-size:13px}
  .segment-row small,.journey-card footer{font-size:11px}
  .report-insight{font-size:13px}
  .primary-nav button{font-size:11px}
}

.mobile-search-back{display:none}

/* Mobile master search is a separate full-screen mode from the S2 detail sheet. */
@media(max-width:900px){
  .topbar{position:fixed;z-index:120}
  .primary-nav{position:fixed;z-index:100;padding-bottom:0;transform:none}
  .primary-nav button{height:100%;min-height:var(--mobile-bottom);padding:0;align-content:center}
  .detail-panel{position:fixed}
  .detail-panel-content{min-height:0;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;touch-action:pan-y}
  .detail-panel[data-sheet-stage="collapsed"] .detail-panel-content,
  .detail-panel[data-sheet-stage="half"] .detail-panel-content,
  .detail-panel[data-sheet-stage="full"] .detail-panel-content{overflow-y:auto}
  .sheet-resize-handle{touch-action:none}

  .app-shell.search-mode .brand{display:none}
  .app-shell.search-mode .mobile-search-back{width:38px;height:42px;padding:0;border:0;background:#fff;color:var(--ink);display:grid;flex:0 0 38px;place-items:center}
  .app-shell.search-mode .mobile-search-back svg{width:21px;height:21px}
  .app-shell.search-mode .global-search{background:#fff}
  .app-shell.search-mode .global-results{position:fixed;z-index:115;top:var(--mobile-top);right:0;bottom:0;left:0;width:auto;max-height:none;border:0;border-top:1px solid var(--line);border-radius:0;background:#fff;box-shadow:none;overflow-x:hidden;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}
  .app-shell.search-mode .global-result{min-height:72px;padding:12px 20px;grid-template-columns:48px minmax(0,1fr)}
  .app-shell.search-mode .global-result em{font-size:12px}
  .app-shell.search-mode .global-result strong{font-size:16px;line-height:1.35}
  .app-shell.search-mode .global-result small{margin-top:5px;font-size:13px;line-height:1.4}
  .app-shell.search-mode .global-empty{padding:36px 20px;font-size:14px}
  .app-shell.search-mode .map-workspace,
  .app-shell.search-mode .detail-panel,
  .app-shell.search-mode .primary-nav{visibility:hidden;pointer-events:none}
}
