:root{color-scheme:light;--ink:#152535;--muted:#62717d;--border:#e3e8eb;--yellow:#ffe21a;--blue:#357abc;--green:#16806c;--red:#d25550;--paper:#fff;--radius:12px;font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:16px;color:var(--ink);background:#f2f5f7}
*{box-sizing:border-box}body{margin:0}button,a,input,select{ -webkit-tap-highlight-color:transparent}button,input,select{font:inherit}button{cursor:pointer}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,summary:focus-visible{outline:3px solid #dca600;outline-offset:3px}button{color:inherit}button:disabled{cursor:default;opacity:.45}a{color:inherit}svg{display:block}button svg,[data-icon] svg{width:19px;height:19px;flex-shrink:0}button{border:0;background:none}.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}[hidden]{display:none!important}.skip-link{position:absolute;z-index:3000;left:16px;top:-70px;background:white;padding:14px;border:2px solid var(--ink)}.skip-link:focus{top:12px}
.topbar{min-height:88px;padding:16px 26px;display:flex;align-items:center;gap:28px;border-bottom:1px solid var(--border);background:white;position:relative;z-index:1100}.brand{display:flex;align-items:center;gap:11px;text-decoration:none;min-width:254px}.brand-mark{display:grid;place-items:center;background:var(--yellow);width:43px;height:43px;border-radius:10px}.brand-mark svg{width:32px;height:32px;fill:none;stroke:var(--ink);stroke-width:3;stroke-linecap:square}.brand-mark .mark-line{stroke-width:1.3}.brand strong{display:block;letter-spacing:.045em;font-size:20px;font-weight:850}.brand small{display:block;font-size:12px;letter-spacing:.18em;font-weight:750;margin-top:3px;color:#63717b}.project-title{border-left:1px solid var(--border);padding-left:25px}.project-title h1{font-size:18px;line-height:1.4;margin:0;font-weight:700}.project-title>span{display:block;font-size:13px;color:var(--muted);margin-top:2px}.header-actions{display:flex;gap:14px;align-items:center;margin-left:auto}.draft-badge{font-size:12px;font-weight:700;padding:6px 10px;background:#fff8da;color:#7c6210;border:1px solid #eee2a7;border-radius:5px;white-space:nowrap}.quiet-button{font-size:14px;display:flex;align-items:center;justify-content:center;gap:8px;min-height:40px;border-radius:7px;padding:8px 12px}.quiet-button:hover{background:#f1f4f6}.presentation-button{border:1px solid #dce2e6}.workspace{height:calc(100dvh - 88px);min-height:570px;display:grid;grid-template-columns:316px minmax(0,1fr)}.sidebar{background:#fff;border-right:1px solid var(--border);overflow-y:auto;position:relative;z-index:1000;padding:27px 24px 18px;scrollbar-width:thin;scrollbar-color:#d3dce1 transparent}.side-heading{padding-bottom:25px;border-bottom:1px solid var(--border)}.eyebrow{font-size:12px;letter-spacing:.12em;font-weight:750;color:#76838e}.side-heading h2{font-size:27px;line-height:1.18;font-weight:750;letter-spacing:-.04em;margin:12px 0 12px}.side-heading p{color:var(--muted);font-size:14px;line-height:1.55;margin:0}.scenario-summary{padding:21px 0}.scenario-kicker{font-size:12px;letter-spacing:.08em;color:var(--blue);font-weight:800}.scenario-summary h3{font-size:16px;line-height:1.4;margin:8px 0}.scenario-summary p{font-size:14px;color:var(--muted);line-height:1.55;margin:0}.section-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 9px}.section-line h3{font-size:14px;margin:0;font-weight:750}.section-line>span{font-size:12px;border:1px solid var(--border);padding:2px 5px;border-radius:4px;color:var(--muted)}.street-list{display:flex;flex-direction:column;gap:5px}.street-card{display:grid;grid-template-columns:28px minmax(0,1fr) 12px;align-items:center;gap:9px;text-align:left;width:100%;padding:11px 9px 11px 7px;border-radius:8px;border:1px solid transparent;transition:background .15s,border .15s}.street-card:hover{background:#f4f7f9}.street-card.is-selected{background:#edf4fa;border-color:#cadeef}.street-number{width:25px;height:25px;border-radius:6px;display:grid;place-items:center;font-size:12px;font-weight:750;background:#f1f4f6;color:#73838f}.street-card.is-selected .street-number{background:#dbeaf8;color:#2466a1}.street-card strong{display:block;font-size:14px;line-height:1.4;font-weight:650}.street-card small{display:block;font-size:12px;margin-top:3px;line-height:1.4;color:var(--muted)}.street-card svg{width:14px;height:14px;color:#9aa7af}.layer-controls{border-top:1px solid var(--border);margin-top:21px;padding-top:20px}.layer-controls label{display:flex;gap:12px;justify-content:space-between;align-items:center;padding:9px 0;font-size:14px;cursor:pointer}.layer-controls label>span{display:flex;align-items:center;gap:10px}.layer-controls label svg{width:17px;height:17px;color:#7e8c97}.layer-controls input{appearance:none;width:30px;height:18px;border-radius:18px;flex-shrink:0;background:#ccd5db;cursor:pointer;position:relative;margin:0}.layer-controls input:before{content:"";display:block;position:absolute;left:3px;top:3px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .15s}.layer-controls input:checked{background:var(--ink)}.layer-controls input:checked:before{transform:translateX(12px)}.layer-controls input:disabled{cursor:default;opacity:.3}.evidence-note{display:flex;gap:10px;margin:18px 0;padding:12px 10px;border:1px solid #e8edf0;border-radius:7px;background:#f8fafb;color:#6b7882}.evidence-note svg{width:16px;height:16px;margin-top:1px;flex-shrink:0}.evidence-note p{margin:0;font-size:12px;line-height:1.6}.sign-catalog{padding:4px 0 18px;border-bottom:1px solid var(--border)}.sign-catalog summary{list-style:none;font-size:13px;font-weight:600;display:flex;justify-content:space-between;align-items:center;cursor:pointer;min-height:35px}.sign-catalog summary::-webkit-details-marker{display:none}.sign-catalog summary svg{width:15px;height:15px;transform:rotate(90deg)}.sign-catalog[open] summary svg{transform:rotate(-90deg)}.sign-catalog>p{font-size:12px;color:var(--muted);line-height:1.5;margin:12px 0 0}.catalog-grid{display:grid;grid-template-columns:1fr 1fr;gap:13px 9px;padding-top:14px}.catalog-item{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--muted)}.catalog-item svg{width:35px;height:35px;flex-shrink:0}.catalog-item strong{display:block;font-size:12px;color:var(--ink)}.sidebar-bottom{display:flex;align-items:flex-start;gap:8px;padding-top:18px}.sidebar-bottom p{font-size:12px;color:var(--muted);line-height:1.6;margin:0}.sidebar-bottom strong{font-weight:600}.source-dot{margin-top:5px;width:5px;height:5px;flex-shrink:0;border-radius:50%;background:#95a5af}
.map-workspace{min-width:0;min-height:0;display:flex;flex-direction:column}.comparison-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 24px;background:#fff;min-height:77px;border-bottom:1px solid var(--border);flex-shrink:0}.scenario-tabs{display:flex;gap:4px;border:1px solid #e3e8ec;background:#f3f5f7;border-radius:10px;padding:4px}.scenario-tabs button{display:flex;align-items:center;justify-content:center;gap:9px;padding:10px 15px;font-size:14px;font-weight:650;border-radius:7px;white-space:nowrap;min-height:42px}.scenario-tabs button[aria-selected=true]{background:var(--ink);color:white;box-shadow:0 2px 4px #12232f22}.tab-number{font-size:12px;opacity:.5;font-variant-numeric:tabular-nums}.comparison-hint{display:flex;align-items:center;gap:8px;font-size:12px;color:#8a969f}.comparison-hint svg{width:16px;height:16px}.map-panel{position:relative;flex:1;min-height:380px;background:#eef2f4;isolation:isolate}#map{height:100%;width:100%;background:#eaf0f2;z-index:0;outline-offset:-3px}.leaflet-container{font-family:inherit;font-size:14px}.leaflet-control-attribution{font-size:12px!important;line-height:1.5!important;background:#ffffffda!important;padding:2px 6px!important;color:#77858f!important}.leaflet-control-attribution a{color:#657683!important}.leaflet-control-zoom{border:1px solid #d5dfe5!important;box-shadow:0 2px 6px #2036480a!important;border-radius:9px!important;overflow:hidden;margin-right:20px!important;margin-bottom:38px!important}.leaflet-control-zoom a{color:#4c6374!important;width:36px!important;height:36px!important;line-height:36px!important;font-size:22px!important}.leaflet-control-zoom a:hover{background:#f2f5f7!important}.leaflet-control-scale{margin-left:20px!important;margin-bottom:13px!important;font-size:12px!important}.leaflet-control-scale-line{border-color:#82939f!important;color:#5c6f7c!important;background:#ffffffa0!important}.map-tools{position:absolute;z-index:600;left:21px;top:20px;display:flex;gap:9px}.base-switch{display:flex;background:white;border:1px solid #d9e2e7;border-radius:8px;padding:3px;box-shadow:0 2px 8px #2d43510b}.base-switch button{display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;font-size:13px;min-height:34px;border-radius:5px}.base-switch button svg{width:15px;height:15px}.base-switch button[aria-pressed=true]{background:#edf2f5;font-weight:700}.map-tool{display:grid;place-items:center;min-width:42px;min-height:42px;border-radius:8px;background:white;border:1px solid #d9e2e7;box-shadow:0 2px 8px #2d43510b;color:#49606f}.map-tool:hover{background:#f3f6f8}.map-context{position:absolute;z-index:500;top:25px;right:24px;background:#ffffffdd;backdrop-filter:blur(8px);border:1px solid #dce5e9;border-radius:6px;padding:8px 11px;font-size:12px;letter-spacing:.05em;font-weight:750;display:flex;align-items:center;gap:8px;color:#577088;pointer-events:none}.context-indicator{width:6px;height:6px;display:block;border-radius:50%;background:var(--blue)}.map-message{position:absolute;z-index:700;top:78px;left:21px;right:70px;max-width:480px;background:#fff9df;border:1px solid #dfc87e;box-shadow:0 4px 18px #22374712;padding:12px 15px;border-radius:8px;font-size:13px;line-height:1.5;color:#765d22}.map-legend{position:absolute;bottom:51px;left:21px;z-index:550;display:flex;flex-direction:column;gap:9px;background:#fffffff0;backdrop-filter:blur(8px);border:1px solid #dee6eb;box-shadow:0 3px 12px #233a4610;border-radius:9px;padding:13px 15px;pointer-events:none}.map-legend strong{font-size:12px;letter-spacing:.09em;color:#7d8d98;font-weight:750;margin-bottom:1px}.map-legend>span{display:flex;align-items:center;gap:10px;font-size:12px;color:#526777}.legend-line{display:block;width:25px;height:3px;background:var(--blue);position:relative}.legend-line:after{content:"";position:absolute;right:0;top:-2px;width:6px;height:6px;border-right:2px solid var(--blue);border-top:2px solid var(--blue);transform:rotate(45deg)}.legend-zone{display:block;width:25px;height:13px;border:1px dashed var(--red);border-radius:10px;background:#d2555018}.legend-point{display:block;width:13px;height:13px;margin:0 6px;border:2px solid #a55933;border-radius:50%;background:white}.playback{position:absolute;bottom:51px;left:50%;transform:translateX(-50%);z-index:550;display:flex;align-items:center;gap:11px;border-radius:10px;border:1px solid #dce4e9;box-shadow:0 4px 20px #2a41551a;padding:7px 9px;background:#fff}.playback button{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:650;min-width:91px;min-height:35px;padding:6px 8px;border-radius:6px}.playback button:hover{background:#f0f4f7}.playback button svg{width:16px;height:16px}.playback-divider{height:19px;width:1px;background:#dfe6eb}.playback label{font-size:12px;color:#7c8c98}.playback select{font-size:12px;font-weight:650;color:#4d6374;background:#f2f5f7;border:1px solid #e1e7ec;border-radius:5px;padding:6px;min-height:32px}.map-footer{min-height:39px;display:flex;align-items:center;justify-content:space-between;gap:16px;background:white;border-top:1px solid var(--border);padding:9px 22px;font-size:12px;color:#81909c;flex-shrink:0}.map-footer>span{display:flex;align-items:center;gap:7px;line-height:1.4}.map-footer svg{width:13px;height:13px}.mobile-details{display:none}
.map-road-label{background:transparent;border:0;box-shadow:none;pointer-events:none;color:#7e909e;font-size:12px;white-space:nowrap;text-shadow:0 1px 0 #fff,1px 0 0 #fff,-1px 0 0 #fff;font-weight:500;letter-spacing:.02em;text-align:center}.map-road-label.study-label{color:#485f71;font-weight:650;font-size:12px}.road-label-inner{display:block;transform-origin:center;line-height:1.2}.flow-arrow-icon{pointer-events:none!important;background:transparent;border:0;filter:drop-shadow(0 1px 1px #fff8)}.flow-arrow-icon svg{width:15px;height:15px}.road-route{transition:opacity .15s}.study-pin{background:none;border:0}.pin-content{width:58px;height:64px;position:relative;display:flex;justify-content:center;align-items:flex-start;filter:drop-shadow(0 3px 3px #16314430);transition:transform .15s}.study-pin:hover .pin-content,.study-pin:focus .pin-content{transform:translateY(-3px) scale(1.06)}.pin-content>svg{width:40px;height:40px;flex:none}.pin-id{position:absolute;left:50%;right:auto;bottom:1px;transform:translateX(-50%);background:#fffffff2;color:var(--ink);padding:3px 6px;border-radius:5px;font-size:12px;line-height:1.2;font-weight:800;border:1px solid #bac8d1;box-shadow:0 2px 5px #19334022;white-space:nowrap}.conflict-marker{background:#fff;border:2px solid #d25550;color:#bd443e;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:800;box-shadow:0 2px 8px #7a33252e}.conflict-marker:after{content:"";position:absolute;inset:-8px;border:1px solid #d2555033;border-radius:50%;animation:conflict-pulse 3s infinite}.conflict-layer-icon{background:none;border:0}.conflict-layer-icon--edge .conflict-marker{transform:translate(27px,-27px)}.zone-shape{stroke-dasharray:5 5;pointer-events:none}.leaflet-popup-content-wrapper{border-radius:13px;border:1px solid #e0e7eb;box-shadow:0 12px 35px #18313e28;padding:0;overflow:hidden}.leaflet-popup-content{margin:0!important;width:308px!important}.leaflet-popup-tip{box-shadow:none}.leaflet-container a.leaflet-popup-close-button{width:32px;height:32px;font-size:22px;line-height:32px;right:6px;top:6px;color:#657581;background:#fffffff0;border-radius:50%;z-index:2}.popup-card{padding:20px}.popup-status{display:inline-block;color:#79631a;background:#fff5c8;padding:4px 7px;border-radius:4px;font-size:12px;font-weight:700;margin-bottom:10px}.popup-card h3{font-size:17px;line-height:1.35;letter-spacing:-.02em;margin:0 15px 8px 0}.popup-card p{font-size:13px;line-height:1.6;color:#637481;margin:9px 0}.popup-card .popup-photo{width:100%;max-height:210px;object-fit:cover;border-radius:7px}.photo-pending{display:flex;align-items:center;gap:14px;background:#f4f7f8;border:1px solid #e5ebee;border-radius:8px;padding:12px;margin:14px 0}.photo-pending>.sign-preview{flex-shrink:0}.photo-pending>.sign-preview svg{width:45px;height:45px}.photo-pending strong{font-size:12px;display:block;color:#5a6d7b}.photo-pending small{display:block;font-size:12px;line-height:1.5;color:#83919b;margin-top:3px}.popup-source{display:block;font-size:12px;line-height:1.5;color:#94a1aa;padding-top:12px;border-top:1px solid var(--border);margin-top:12px}.popup-card .popup-remark{font-size:12px;color:#917941}.popup-street-badge{font-size:12px;font-weight:800;background:var(--ink);color:#fff;padding:4px 7px;border-radius:4px;display:inline-block;margin-bottom:10px}
.scenario-tabs{min-width:0;max-width:100%;overflow-x:auto;scrollbar-width:thin}.scenario-tabs button{flex:0 0 auto}.scenario-tabs button[aria-selected=true]{background:var(--scenario-color,var(--ink))}.scenario-kicker,.map-context{color:var(--scenario-color,var(--blue))}.context-indicator,.legend-line,.vehicle-body{background:var(--scenario-color,var(--blue))}.legend-line:after{border-color:var(--scenario-color,var(--blue))}.street-card.is-selected{border-color:color-mix(in srgb,var(--scenario-color,var(--blue)) 38%,white);background:color-mix(in srgb,var(--scenario-color,var(--blue)) 9%,white)}.street-card.is-selected .street-number{background:color-mix(in srgb,var(--scenario-color,var(--blue)) 16%,white);color:var(--scenario-color,var(--blue))}.conflict-marker{border-color:var(--zone-color,#d25550);color:var(--zone-color,#bd443e)}.conflict-marker:after{border-color:var(--zone-color,#d25550)}
.proposal-photo-comparison{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:14px 0}.proposal-photo-comparison figure{margin:0;min-width:0;border:1px solid var(--border);border-radius:8px;overflow:hidden;background:#f5f8f9}.proposal-photo-link{display:block;background:#e9eef1}.proposal-photo-comparison img,.proposal-placeholder{width:100%;height:110px;object-fit:cover;display:grid;place-items:center}.proposal-photo-comparison img{transition:filter .15s,transform .15s}.proposal-photo-link:hover img{filter:brightness(.92);transform:scale(1.02)}.proposal-photo-link:focus-visible{outline-offset:-3px}.proposal-placeholder svg{width:58px;height:58px}.proposal-photo-comparison figcaption{display:block;padding:8px}.proposal-photo-comparison figcaption strong,.proposal-photo-comparison figcaption small{display:block;font-size:11px;line-height:1.4}.proposal-photo-comparison figcaption small{color:var(--muted);margin-top:2px}
dialog{padding:0;max-width:650px;width:calc(100% - 40px);max-height:calc(100dvh - 60px);border:1px solid #dce4e9;border-radius:16px;box-shadow:0 30px 100px #13253644;color:var(--ink)}dialog::backdrop{background:#11243266;backdrop-filter:blur(3px)}.dialog-top{display:flex;justify-content:space-between;gap:20px;padding:26px 28px 22px;border-bottom:1px solid var(--border)}.dialog-top h2{font-size:23px;line-height:1.3;margin:8px 0 0;letter-spacing:-.03em}.icon-button{min-width:34px;height:34px;display:grid;place-items:center;border-radius:6px}.icon-button:hover{background:#eef2f5}.dialog-body{padding:24px 28px;max-height:60dvh;overflow:auto;font-size:14px;line-height:1.7;color:#687a88}.dialog-body h3{color:var(--ink);font-size:16px;margin:25px 0 10px}.dialog-body p{margin:12px 0}.dialog-body p strong{color:#435b6d;font-weight:650}.document-link{display:flex;gap:14px;padding:16px;border:1px solid #e0e6eb;border-radius:9px;text-decoration:none;align-items:center;background:#f7f9fa}.document-link>span:first-child{color:#7d8d99}.document-link strong{display:block;color:var(--ink);font-size:14px;line-height:1.5;font-weight:650}.document-link small{font-size:12px;color:#8b99a3;display:block;margin-top:5px}.document-link>span:last-child{margin-left:auto}.document-link:hover{background:#f0f5f8}.dialog-caption{background:#fff9dc;padding:12px 15px;border-radius:7px;color:#8b762e;font-size:13px}.dialog-footer{padding:17px 28px;border-top:1px solid var(--border);display:flex;justify-content:flex-end}.primary-button{background:var(--ink);color:#fff;border-radius:7px;font-size:14px;padding:11px 19px;min-height:42px}.no-script{position:fixed;inset:40%;z-index:2000;background:white;border:2px solid #b88230;border-radius:12px;padding:24px;width:300px;height:max-content}
@keyframes conflict-pulse{0%,100%{transform:scale(1);opacity:.6}60%{transform:scale(1.25);opacity:0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(min-width:1600px){.sidebar{padding:32px 28px}.workspace{grid-template-columns:340px minmax(0,1fr)}.brand{min-width:276px}.street-card{padding-top:14px;padding-bottom:14px}}
@media(max-width:1170px){.comparison-hint{display:none}.topbar{gap:18px;padding:14px 20px}.brand{min-width:244px}.header-actions{gap:5px}.draft-badge{display:none}.quiet-button{padding:7px 9px}.project-title{padding-left:19px}.playback{left:auto;right:75px;transform:none}.map-footer #footer-scenario{display:none}.map-context{top:78px;right:20px}.workspace{grid-template-columns:294px minmax(0,1fr)}.sidebar{padding-left:20px;padding-right:20px}}
@media(max-width:880px){.project-title{display:none}.brand{min-width:0}.workspace{grid-template-columns:264px minmax(0,1fr)}.sidebar{padding:22px 16px}.side-heading h2{font-size:24px}.comparison-bar{padding:12px;min-width:0}.scenario-tabs{width:100%}.scenario-tabs button{padding:9px;flex:0 0 auto;font-size:13px;gap:7px}.tab-number{font-size:12px}.map-tools{left:12px;top:14px}.map-context{right:12px;font-size:12px}.map-legend{left:12px;bottom:96px;padding:11px 12px}.playback{bottom:38px;right:auto;left:12px;gap:8px}.map-footer{padding-left:12px;font-size:12px}.map-legend>span{font-size:12px}}
@media(max-width:660px){.topbar{min-height:71px;padding:12px 14px}.brand-mark{width:36px;height:36px;border-radius:8px}.brand-mark svg{width:27px;height:27px}.brand{gap:8px}.brand strong{font-size:17px}.brand small{font-size:12px}.quiet-button{min-width:37px;min-height:37px;padding:8px}.quiet-button>span:last-child{display:none}.presentation-button{border:0}.workspace{height:calc(100dvh - 71px);min-height:450px;display:flex}.sidebar{display:none;position:fixed;z-index:1500;top:135px;left:10px;right:10px;bottom:86px;border:1px solid var(--border);border-radius:14px;box-shadow:0 15px 60px #13243430;padding:22px;max-height:calc(100dvh - 215px)}.sidebar.is-open{display:block}.side-heading{display:none}.scenario-summary{padding-top:0}.map-workspace{width:100%;height:100%}.comparison-bar{min-height:64px;padding:8px 12px}.scenario-tabs button{min-height:36px;font-size:13px;padding:8px 6px}.map-panel{min-height:340px}.map-tools{left:12px;top:13px}.map-context{top:69px;right:auto;left:12px;font-size:12px;padding:6px 8px}.map-legend{bottom:87px;left:12px;gap:6px;padding:10px 12px}.map-legend strong{font-size:12px}.map-legend>span{font-size:12px}.playback{bottom:24px;left:12px;right:auto;padding:5px;gap:5px}.playback label{display:none}.playback button{font-size:12px;min-width:84px}.playback select{font-size:12px}.mobile-details{display:flex;align-items:center;justify-content:center;gap:7px;position:absolute;right:12px;bottom:27px;z-index:1600;min-height:37px;border:1px solid #d1dde4;border-radius:8px;background:#fff;box-shadow:0 3px 14px #20394b12;padding:7px 11px;font-size:12px;font-weight:650}.mobile-details svg{width:15px;height:15px}.leaflet-control-zoom{margin-right:13px!important;margin-bottom:86px!important}.leaflet-control-zoom a{width:33px!important;height:33px!important;line-height:33px!important}.leaflet-control-scale{display:none}.map-footer{min-height:36px;padding:7px 12px;font-size:12px}.map-footer>span{line-height:1.5}.leaflet-popup-content{width:270px!important}.popup-card{padding:17px}.leaflet-control-attribution{font-size:12px!important}.dialog-top{padding:20px}.dialog-top h2{font-size:20px}.dialog-body{padding:18px 20px;font-size:14px}.dialog-footer{padding:15px 20px}.dialog-body p{font-size:14px}.map-message{left:12px;right:12px;top:101px;font-size:12px}.source-dot{display:none}}
.animation-paused .conflict-marker:after{animation-play-state:paused}
.layer-controls label:has(input:disabled){color:#87959f}
.inventory-panel{border-top:1px solid var(--border);margin-top:20px;padding-top:20px}.inventory-panel>p{font-size:12px;color:var(--muted);margin:8px 0 12px}.inventory-actions,.inventory-toolbar{display:flex;gap:8px}.inventory-actions .primary-button{flex:1}.outline-button{border:1px solid #cfdae1;background:#fff;border-radius:7px;min-height:40px;padding:9px 13px;font-size:13px;font-weight:600}.outline-button:hover{background:#eef4f7}.text-button{font-size:13px;text-decoration:underline;padding:6px;text-align:left}.inventory-toolbar{justify-content:space-between;margin-bottom:15px}.inventory-item{display:flex;gap:15px;padding:17px 0;border-bottom:1px solid var(--border)}.inventory-symbol svg{width:42px;height:42px}.inventory-item strong{color:var(--ink);font-size:14px;line-height:1.4;display:block}.inventory-item small{display:block;font-size:12px;margin:5px 0}.item-actions{display:flex;gap:15px}.item-actions button{font-size:13px;color:#286786;padding:5px 0;text-decoration:underline}.inventory-item.removed{opacity:.6}.empty-inventory{background:#f3f6f8;padding:25px;border-radius:9px;margin-top:20px}.empty-inventory p{font-size:13px}.check-label{display:flex!important;align-items:center;gap:9px;font-size:13px}.editor-fields{display:grid;gap:14px;line-height:1.5}.editor-fields label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:#405665;font-weight:600}.editor-fields input:not([type=checkbox]),.editor-fields select,.editor-fields textarea,.simulation-panel select{width:100%;min-height:42px;padding:10px;border:1px solid #cbd7de;background:#fff;border-radius:7px;color:var(--ink);font:inherit;min-width:0}.editor-fields input[type=checkbox]{width:18px;height:18px}.editor-fields input[type=file]{font-size:12px}.editor-fields textarea{resize:vertical}.editor-fields input:focus-visible,.editor-fields textarea:focus-visible{outline:3px solid #dca600;outline-offset:2px}.form-row{display:flex;gap:12px}.form-row>label{flex:1;min-width:0}.editor-fields p.field-help{font-size:12px;font-weight:400;line-height:1.6;color:#73848f;margin:0}.editor-preview{display:grid;place-items:center;padding:15px;border-radius:10px;background:#f2f6f8}.editor-preview svg{width:65px;height:65px}.editor-fields fieldset{border:1px solid #d9e3e9;border-radius:9px;padding:14px;display:grid;gap:14px}.editor-fields legend{font-size:13px;font-weight:700;padding:0 5px}.edit-photo{width:100%;max-height:250px;object-fit:contain;border-radius:8px;background:#f1f5f6}.form-error{padding:12px;background:#fff1e9;border:1px solid #eac2aa;border-radius:7px;color:#934f22;font-size:13px;margin:0!important}.dialog-footer{gap:10px}.popup-edit{margin-top:12px;width:100%}.photo-link{display:block;font-size:12px;margin-top:6px}.picking-position{cursor:crosshair!important}.vehicle-icon{background:none;border:none;pointer-events:none!important}.vehicle-body{display:block;width:8px;height:14px;border-radius:3px;background:var(--blue);border:1px solid #fff;box-shadow:0 1px 3px #15324955;transform-origin:center}.vehicle-body i{display:block;width:4px;height:3px;margin:2px 1px 0;background:#d8efff;border-radius:1px}.vehicle-icon.is-waiting .vehicle-body{background:#c28738}.simulation-panel{margin:15px 0;border:1px solid #e1e8ec;border-radius:8px;padding:12px}.simulation-panel summary{font-size:13px;font-weight:700;cursor:pointer}.simulation-panel p{font-size:12px;line-height:1.65;color:#6c7f8d;margin:12px 0}.simulation-panel label{font-size:12px;display:grid;gap:7px}.simulation-panel select{font-size:13px}.sim-stats{display:flex;gap:10px;align-items:center;margin:15px 0;font-size:12px;color:#647987}.sim-stats strong{font-variant-numeric:tabular-nums;color:#284b5f}.simulation-panel .outline-button{width:100%}.movement-comparison{border-top:1px solid var(--border);padding-top:13px;font-size:12px}.movement-comparison table{width:100%;border-collapse:collapse;margin-top:10px;text-align:left}.movement-comparison td,.movement-comparison th{padding:6px 4px;border-bottom:1px solid var(--border);font-weight:500}.movement-comparison thead{color:#758693}.planmob-reference{background:#f2f7f9;border:1px solid #dbe7eb;border-radius:10px;padding:18px;margin-top:18px}.planmob-reference h3{margin-top:8px}.reference-pages{display:grid;grid-template-columns:1fr 1fr;gap:8px}.reference-pages a{font-size:12px;color:#256582;border:1px solid #cadce5;background:white;border-radius:6px;padding:9px;text-decoration:none}.reference-pages a:hover{background:#e7f1f6}
.verification-reference{margin:24px 0;padding:20px;border:1px solid #dfe7eb;border-radius:10px;background:#f8fafb}.verification-reference h3{margin:8px 0 14px}.verification-table{display:grid;border:1px solid #dfe7eb;border-radius:8px;overflow:hidden;background:#fff}.verification-table>div{display:grid;grid-template-columns:minmax(140px,.8fr) minmax(220px,1.8fr);gap:14px;padding:11px 13px;border-bottom:1px solid #e7ecef}.verification-table>div:last-child{border-bottom:0}.verification-table strong{font-size:13px}.verification-table span{font-size:13px;line-height:1.45;color:var(--muted)}.verification-note{margin-top:15px}.item-actions a{font-size:13px;color:#286786;padding:5px 0;text-decoration:underline}
@media(max-width:660px){.reference-pages{grid-template-columns:1fr}.verification-table>div{grid-template-columns:1fr;gap:4px}.editor-fields .form-row{gap:8px}.editor-fields input,.editor-fields select,.editor-fields textarea{font-size:16px!important}.inventory-toolbar{flex-wrap:wrap}.item-actions{gap:12px}.dialog-body{max-height:62dvh}.inventory-actions .primary-button{min-height:44px}}

@media(max-width:370px){.mobile-details{max-width:121px;font-size:12px}.mobile-details svg{display:none}.playback{gap:3px}.playback button{min-width:78px}.map-footer{font-size:12px}}
.brand-mark{width:54px;height:54px;flex:0 0 54px;background:transparent;border-radius:0}.brand-mark img{display:block;width:100%;height:100%;object-fit:contain}@media(max-width:660px){.brand-mark{width:44px;height:44px;flex-basis:44px}}
.vehicle-icon.is-crashed{z-index:700!important}.vehicle-icon.is-crashed .vehicle-body{background:#d33f36;border-color:#fff;box-shadow:0 0 0 4px #ffcf334d,0 0 14px 7px #e43f3266;animation:vehicle-crash .45s ease-in-out infinite alternate}.vehicle-icon.is-crashed .vehicle-body:after{content:"Ã—";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-15deg);color:#fff;font-size:12px;font-weight:900;line-height:1}.vehicle-icon.is-crashed .vehicle-body i{visibility:hidden}@keyframes vehicle-crash{from{filter:brightness(1);scale:1}to{filter:brightness(1.25);scale:1.18}}

/* Map-only fullscreen: the scenario selector and map controls stay inside this stage. */
.map-stage{flex:1;min-height:0;display:flex;flex-direction:column;position:relative;background:#eef2f4}
.map-stage>.comparison-bar{flex-shrink:0}
.map-stage>.map-panel{flex:1;min-height:0}
#map-stage:fullscreen,#map-stage.map-stage--fullscreen-fallback{width:100vw;height:100dvh;min-height:100dvh;max-width:none;max-height:none;background:#fff;display:flex;flex-direction:column;overflow:hidden}
#map-stage:fullscreen .comparison-bar,#map-stage.map-stage--fullscreen-fallback .comparison-bar{position:relative;z-index:1200;flex-shrink:0}
#map-stage:fullscreen .map-panel,#map-stage.map-stage--fullscreen-fallback .map-panel{flex:1;min-height:0;height:auto}
.map-stage--fullscreen-fallback{position:fixed!important;inset:0!important;z-index:5000!important}
body.map-fallback-fullscreen{overflow:hidden!important}
#map-fullscreen{flex:0 0 42px}
@media(max-width:660px){#map-stage:fullscreen,#map-stage.map-stage--fullscreen-fallback{height:100dvh;min-height:100dvh}.map-stage:fullscreen .comparison-bar,.map-stage--fullscreen-fallback .comparison-bar{min-height:64px}.map-stage:fullscreen .scenario-tabs,.map-stage--fullscreen-fallback .scenario-tabs{overflow-x:auto;scrollbar-width:none}.map-stage:fullscreen .map-legend,.map-stage--fullscreen-fallback .map-legend{max-width:min(78vw,320px)}#map-fullscreen{min-width:37px;min-height:37px;flex-basis:37px}}
