@import"https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700;800&family=Space+Grotesk:wght@400;500;600;700&display=swap";*{box-sizing:border-box;margin:0;padding:0}:root{--fs-2xs: .68rem;--fs-xs: .75rem;--fs-sm: .82rem;--fs-md: .9rem;--fs-lg: 1rem;--fs-xl: 1.15rem;--fs-2xl: 1.45rem;--fs-3xl: 1.8rem;--hud-gap: 16px;--topbar-h: 70px;--rail-top: calc(var(--hud-gap) + var(--topbar-h) + var(--hud-gap));--sidebar-w: clamp(340px, 26vw, 440px);--cctv-w: clamp(300px, 24vw, 380px);--panel-radius: 16px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 24px;--sp-6: 32px;--tabbar-h: 60px;--sheet-peek: 84px;--focus-ring: #60a5fa}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px;border-radius:4px}.sidebar-tab:focus-visible,.workflow-subtab:focus-visible,.sign-card:focus-visible,.site-item:focus-visible,.project-menu-item:focus-visible{outline-offset:-2px}.top-bar,.top-bar>*,.breadcrumb,.breadcrumb>*,.sidebar,.sidebar>*,.stat-cell,.bottom-telemetry-dock>*,.corridor-tour-pill>*{min-width:0}.crumb-label,.project-menu-name,.sidebar-tab-label,.stat-cell-label,.corridor-tour-label>span:first-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}::selection{background:#60a5fa52;color:#fff}html,body{height:100%;line-height:1.45;width:100%;overflow:hidden;font-family:Space Grotesk,Google Sans Text,system-ui,sans-serif;background-color:#05070c;color:#f1f5f9}.top-bar{gap:var(--sp-4);padding:0 var(--sp-4)}.brand{display:flex;align-items:center;gap:var(--sp-3);flex:0 1 auto}.brand-mark{display:flex;align-items:center;justify-content:center;width:32px;height:32px;flex-shrink:0;border-radius:8px;color:#60a5fa;background:#60a5fa1f;border:1px solid rgba(96,165,250,.22)}.brand-text{display:flex;flex-direction:column;gap:1px;min-width:0}.brand-name{font-size:var(--fs-md);font-weight:700;letter-spacing:.02em;color:#f8fafc;white-space:nowrap}.brand-sub{font-family:JetBrains Mono,monospace;font-size:var(--fs-2xs);font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:#64748b;white-space:nowrap}.breadcrumb{display:flex;align-items:center;gap:var(--sp-2);flex:1 1 auto;justify-content:center;min-width:0}.crumb-sep{display:flex;align-items:center;color:#475569;flex-shrink:0}.crumb-countries{display:flex;gap:2px;padding:3px;background:#00000047;border:1px solid rgba(255,255,255,.08);border-radius:10px;flex-shrink:0}.crumb-country{display:flex;align-items:center;gap:var(--sp-1);padding:6px var(--sp-2);background:transparent;border:none;border-radius:7px;color:#94a3b8;font-family:JetBrains Mono,monospace;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.06em;cursor:pointer;transition:background .18s ease,color .18s ease}.crumb-country:hover{color:#e2e8f0;background:#ffffff0f}.crumb-country.active{color:#fff;background:#3b82f647;box-shadow:inset 0 0 0 1px #60a5fa73}.crumb-btn{display:flex;align-items:center;gap:var(--sp-2);max-width:320px;padding:7px var(--sp-3);background:#00000047;border:1px solid rgba(255,255,255,.1);border-radius:10px;color:#e2e8f0;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:background .18s ease,border-color .18s ease}.crumb-btn:hover{background:#00000073;border-color:#60a5fa73}.crumb-btn .icon{flex-shrink:0;color:#60a5fa}.crumb-btn:last-child .icon:last-child{color:#64748b}.crumb-site{color:#94a3b8;font-weight:500}.top-bar-actions{display:flex;align-items:center;gap:var(--sp-2);flex:0 0 auto}.kiosk-launcher-btn{display:flex;align-items:center;gap:var(--sp-2);padding:8px var(--sp-3);background:linear-gradient(135deg,#2563eb,#1d4ed8);border:1px solid rgba(255,255,255,.15);border-radius:9px;color:#fff;font-size:var(--fs-xs);font-weight:700;white-space:nowrap;cursor:pointer;box-shadow:0 4px 12px #2563eb59;transition:filter .18s ease}.kiosk-launcher-btn:hover{filter:brightness(1.12)}.popup-heading{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2);margin-bottom:var(--sp-2);padding-bottom:var(--sp-2);border-bottom:1px solid rgba(255,255,255,.08);font-family:JetBrains Mono,monospace;font-size:var(--fs-2xs);font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#64748b}.popup-count{color:#60a5fa}.project-menu-name{display:flex;align-items:center;gap:var(--sp-2);min-width:0}.stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-2)}.stat-cell{display:flex;flex-direction:column;gap:var(--sp-1);padding:var(--sp-3);background:#0000003d;border:1px solid rgba(255,255,255,.07);border-radius:10px}.stat-cell-label{font-size:var(--fs-2xs);font-weight:500;letter-spacing:.04em;color:#64748b}.stat-cell-value{font-family:JetBrains Mono,monospace;font-size:var(--fs-xl);font-weight:700;color:#f1f5f9;line-height:1.1}.stat-cell-wide{grid-column:1 / -1}.stat-cell-value-sm{font-size:var(--fs-md);padding-top:2px;white-space:normal}.stat-cell-unit{font-size:var(--fs-sm);color:#94a3b8;margin-left:1px}.sidebar-tab{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);position:relative}.sidebar-tab-badge,.mobile-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:#ef4444;color:#fff;font-family:JetBrains Mono,monospace;font-size:10px;font-weight:700;line-height:1}.mobile-tabbar{display:none;position:absolute;left:0;right:0;bottom:0;z-index:130;align-items:stretch;height:calc(var(--tabbar-h) + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);background:#090e1aeb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid rgba(255,255,255,.1)}.mobile-tab{flex:1 1 0;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0 2px;background:transparent;border:none;color:#64748b;cursor:pointer;transition:color .18s ease}.mobile-tab.active{color:#60a5fa}.mobile-tab-icon{position:relative;display:flex}.mobile-tab-badge{position:absolute;top:-5px;left:12px}.mobile-tab-label{font-size:10px;font-weight:600;letter-spacing:.01em}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-thumb{background:#fff3;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#fff6}::-webkit-scrollbar-track{background:#0000001a}.sheet-handle{display:none;align-items:center;justify-content:center;width:100%;min-height:26px;padding:9px 0 5px;background:transparent;border:none;cursor:pointer;flex-shrink:0}.sheet-handle:before{content:"";width:40px;height:4px;border-radius:2px;background:#ffffff47}.icon{display:inline-block;vertical-align:-.15em;flex-shrink:0}.flag-icon{display:inline-block;vertical-align:-.1em;flex-shrink:0;border-radius:2px;box-shadow:0 0 0 1px #ffffff24}button .icon,.section-title .icon,.sidebar-tab .icon,.workflow-subtab .icon{margin-right:2px}.gdm-map-app{position:relative;width:100vw;height:100dvh;display:flex;flex-direction:column;overflow:hidden}.map-container{position:absolute;top:0;left:0;width:100%;height:100%;z-index:10}#mapContainer{width:100%;height:100%;background-color:#0b0f19}.map-error-message{position:absolute;top:20px;left:50%;transform:translate(-50%);background:#ef4444f2;color:#fff;padding:12px 24px;border-radius:8px;font-weight:500;z-index:1000;box-shadow:0 10px 15px -3px #0000004d;max-width:600px;text-align:center}.top-bar{position:absolute;top:var(--hud-gap);left:var(--hud-gap);right:var(--hud-gap);height:var(--topbar-h);background:#0f172a59;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);border-radius:16px;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:0 24px;box-shadow:0 8px 32px #0000005e;color:#f1f5f9;transition:all .4s ease}.top-bar:hover{border-color:#ffffff38}.kiosk-brand-text{display:flex;flex-direction:column;gap:2px;font-size:var(--fs-2xl);font-weight:700;letter-spacing:2px;background:linear-gradient(135deg,#fff,#cbd5e1,#94a3b8);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.sidebar{position:absolute;top:var(--rail-top);left:var(--hud-gap);bottom:var(--hud-gap);width:var(--sidebar-w);background:#0f172a59;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);border-radius:16px;z-index:100;display:flex;flex-direction:column;overflow:hidden;box-shadow:0 8px 32px #0000005e;color:#f1f5f9;transition:all .4s ease}.sidebar:hover{border-color:#ffffff38}.sidebar-nav{display:flex;border-bottom:1px solid rgba(255,255,255,.1);background:#0003}.sidebar-tab{flex:1;background:transparent;border:none;color:#64748b;font-size:var(--fs-sm);font-weight:600;padding:14px 8px;cursor:pointer;transition:all .2s ease;text-align:center;border-bottom:2px solid transparent;text-transform:uppercase;letter-spacing:.5px}.sidebar-tab:hover{color:#fff;background:#ffffff05}.sidebar-tab.active{color:#60a5fa;border-bottom-color:#3b82f6;background:#3b82f60d}.sidebar-content{flex:1;overflow-y:auto;padding:20px;display:flex;flex-direction:column;gap:20px}.section-title{font-size:var(--fs-lg);font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#93c5fd;border-bottom:1px solid rgba(147,197,253,.2);padding-bottom:6px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}.pdf-export-btn{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:6px;padding:5px 11px;font-size:var(--fs-xs);font-weight:700;letter-spacing:.3px;cursor:pointer;display:inline-flex;align-items:center;gap:6px;transition:all .2s ease;box-shadow:0 4px 12px #2563eb59;text-transform:none}.pdf-export-btn:hover{background:linear-gradient(135deg,#3b82f6,#2563eb);transform:translateY(-1px);box-shadow:0 6px 16px #2563eb80;border-color:#fff6}.pdf-export-btn:active{transform:translateY(0);box-shadow:0 2px 8px #2563eb4d}.case-card{background:#ffffff08;border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:16px}.case-header{font-size:var(--fs-xl);font-weight:700;color:#fff;margin-bottom:6px}.case-story{font-size:var(--fs-md);color:#94a3b8;line-height:1.5;margin-bottom:14px}.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;position:relative}.spec-item{background:#0000004d;border:1px solid rgba(255,255,255,.03);padding:8px 12px;border-radius:6px;position:relative;overflow:visible;transition:all .2s ease}.spec-item:hover{background:#0f172ad9;border-color:#60a5fa40}.spec-label{font-size:var(--fs-2xs);color:#64748b;text-transform:uppercase;margin-bottom:2px;position:relative;display:inline-flex;align-items:center;gap:4px}[data-tooltip]{position:relative;cursor:help}.spec-label[data-tooltip]{border-bottom:1px dotted rgba(96,165,250,.4);transition:color .2s ease,border-color .2s ease}.spec-label[data-tooltip]:hover{color:#93c5fd;border-bottom-color:#60a5fa}.tooltip-icon{font-size:var(--fs-2xs);color:#60a5fa;opacity:.7;font-weight:700;margin-left:2px;transition:opacity .2s ease,color .2s ease}.spec-label[data-tooltip]:hover .tooltip-icon{opacity:1;color:#93c5fd}[data-tooltip]:before{content:attr(data-tooltip);position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%) translateY(4px);background:#0f172a;color:#f1f5f9;border:1px solid rgba(96,165,250,.4);box-shadow:0 10px 25px -5px #000c,0 0 12px #2563eb40;padding:6px 10px;border-radius:6px;font-size:var(--fs-2xs);font-weight:500;line-height:1.35;text-transform:none;letter-spacing:normal;white-space:normal;width:max-content;max-width:190px;text-align:center;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1);z-index:999}[data-tooltip]:after{content:"";position:absolute;bottom:calc(100% + 2px);left:50%;transform:translate(-50%) translateY(4px);border-width:6px 6px 0 6px;border-style:solid;border-color:rgba(96,165,250,.4) transparent transparent transparent;pointer-events:none;opacity:0;visibility:hidden;transition:opacity .2s cubic-bezier(.16,1,.3,1),transform .2s cubic-bezier(.16,1,.3,1);z-index:1000}[data-tooltip]:hover:before,[data-tooltip]:hover:after{opacity:1;visibility:visible;transform:translate(-50%) translateY(0)}[data-tooltip-pos=bottom]:before{bottom:auto;top:calc(100% + 8px)}[data-tooltip-pos=bottom]:after{bottom:auto;top:calc(100% + 2px);border-width:0 6px 6px 6px;border-color:transparent transparent rgba(96,165,250,.4) transparent}.spec-value{font-size:var(--fs-sm);font-weight:600;color:#e2e8f0}.site-item{background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:12px;cursor:pointer;transition:all .2s ease;margin-bottom:10px;position:relative}.site-item:hover{background:#3b82f614;border-color:#3b82f64d}.site-item.active{background:#3b82f61f;border-color:#3b82f680}.site-title{font-size:var(--fs-md);font-weight:700;color:#f8fafc;display:flex;justify-content:space-between;align-items:center;margin-bottom:4px}.progress-bar-container{width:100%;height:4px;background:#ffffff1a;border-radius:2px;margin-top:8px;overflow:hidden}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#3b82f6,#10b981);border-radius:2px;transition:width .4s ease}.workflow-subnav{display:flex;gap:4px;background:#0006;padding:4px;border-radius:8px;border:1px solid rgba(255,255,255,.08);margin-bottom:12px;overflow-x:auto;scrollbar-width:none}.workflow-subnav::-webkit-scrollbar{display:none}.workflow-subtab{background:transparent;border:none;color:#94a3b8;font-size:var(--fs-2xs);font-weight:700;padding:6px 10px;border-radius:6px;cursor:pointer;white-space:nowrap;transition:all .2s ease;display:flex;align-items:center;gap:4px;text-transform:uppercase;letter-spacing:.3px}.workflow-subtab:hover{color:#f1f5f9;background:#ffffff0d}.workflow-subtab.active{color:#fff;background:#2563eb4d;border:1px solid rgba(59,130,246,.5);box-shadow:0 2px 8px #2563eb33}.workflow-card{background:#0f172a99;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:12px;margin-bottom:12px;transition:all .2s ease}.workflow-card:hover{border-color:#60a5fa4d;background:#0f172acc}.wf-badge{font-size:var(--fs-2xs);font-family:JetBrains Mono,monospace;font-weight:700;padding:2px 7px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px;display:inline-flex;align-items:center;gap:4px}.wf-badge-amber{background:#f59e0b2e;color:#fbbf24;border:1px solid rgba(245,158,11,.35)}.wf-badge-blue{background:#3b82f62e;color:#60a5fa;border:1px solid rgba(59,130,246,.35)}.wf-badge-green{background:#10b9812e;color:#34d399;border:1px solid rgba(16,185,129,.35)}.wf-badge-red{background:#ef44442e;color:#f87171;border:1px solid rgba(239,68,68,.35)}.wf-btn-action{background:linear-gradient(135deg,#1e293b,#0f172a);color:#e2e8f0;border:1px solid rgba(255,255,255,.15);border-radius:6px;padding:6px 12px;font-size:var(--fs-xs);font-weight:600;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:6px}.wf-btn-action:hover{background:linear-gradient(135deg,#3b82f6,#1d4ed8);color:#fff;border-color:#ffffff4d;transform:translateY(-1px)}.wf-btn-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:1px solid rgba(255,255,255,.25);box-shadow:0 4px 12px #2563eb4d}.wf-btn-primary:hover{background:linear-gradient(135deg,#3b82f6,#2563eb)}.site-desc{font-size:var(--fs-xs);color:#64748b;line-height:1.4;margin-top:6px}.btn-fly{font-size:var(--fs-xs);background:#3b82f633;color:#60a5fa;border:1px solid rgba(59,130,246,.3);padding:4px 8px;border-radius:4px;cursor:pointer;font-weight:600;text-transform:uppercase}.btn-fly:hover{background:#3b82f666;color:#fff}.timeline-card{background:#0000004d;border:1px solid rgba(255,255,255,.05);border-radius:8px;padding:16px}.phase-indicators{display:flex;justify-content:space-between;margin-bottom:12px}.phase-dot-node{width:24px;height:24px;border-radius:50%;background:#ffffff1a;border:2px solid #475569;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);font-weight:700;color:#94a3b8;cursor:pointer;transition:all .3s ease}.phase-dot-node.completed{background:#10b981;border-color:#10b981;color:#fff}.phase-dot-node.active{background:#3b82f6;border-color:#3b82f6;color:#fff;box-shadow:0 0 10px #3b82f680}.slider-input{width:100%;height:6px;background:#ffffff26;border-radius:3px;-webkit-appearance:none;margin-bottom:14px}.slider-input::-webkit-slider-thumb{-webkit-appearance:none;width:18px;height:18px;border-radius:50%;background:#60a5fa;cursor:pointer;box-shadow:0 0 5px #00000080;border:2px solid #fff;transition:transform .1s ease}.slider-input::-webkit-slider-thumb:hover{transform:scale(1.15)}.phase-info{font-size:var(--fs-sm);color:#94a3b8;line-height:1.4}.phase-title-text{font-size:var(--fs-md);font-weight:700;color:#fff;margin-bottom:4px}.resource-row{display:flex;justify-content:space-between;align-items:center;background:#ffffff05;border:1px solid rgba(255,255,255,.03);padding:10px 14px;border-radius:8px;margin-bottom:8px}.resource-meta{display:flex;flex-direction:column}.resource-name{font-size:var(--fs-md);font-weight:600;color:#fff}.resource-desc{font-size:var(--fs-xs);color:#64748b}.resource-controls{display:flex;align-items:center;gap:12px}.btn-ctrl{background:#ffffff14;border:1px solid rgba(255,255,255,.1);color:#fff;width:28px;height:28px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--fs-lg);transition:all .15s ease}.btn-ctrl:hover{background:#3b82f64d;border-color:#3b82f6}.resource-qty{font-family:JetBrains Mono,monospace;font-size:var(--fs-md);font-weight:700;width:32px;text-align:center;color:#f1f5f9}.photo-dropzone{border:2px dashed rgba(255,255,255,.15);background:#ffffff05;border-radius:8px;padding:20px;text-align:center;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:8px;color:#94a3b8;font-size:var(--fs-sm)}.photo-dropzone:hover,.photo-dropzone.dragover{border-color:#3b82f6;background:#3b82f60d;color:#fff}.photo-dropzone svg{color:#3b82f6;opacity:.8}.photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:14px}.gallery-card{position:relative;background:#000;border-radius:8px;height:110px;overflow:hidden;border:1px solid rgba(255,255,255,.08)}.gallery-img{width:100%;height:100%;object-fit:cover;opacity:.85;transition:opacity .2s}.gallery-card:hover .gallery-img{opacity:1}.gallery-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.85));padding:8px;display:flex;flex-direction:column}.gallery-caption{font-size:var(--fs-xs);font-weight:600;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gallery-time{font-size:var(--fs-2xs);color:#64748b;margin-top:2px}.badge-live-cctv{position:absolute;top:6px;left:6px;background:#ef4444d9;color:#fff;font-size:var(--fs-2xs);font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase;letter-spacing:.5px}.sign-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}.sign-card{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:10px;text-align:center;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;align-items:center;gap:6px}.sign-card:hover{background:#ffffff14;border-color:#ffffff26}.sign-card.selected{background:#3b82f626;border-color:#3b82f6;box-shadow:0 0 10px #3b82f633}.sign-icon-display{display:flex;align-items:center;justify-content:center;color:#cbd5e1}.sign-title-text{font-size:var(--fs-xs);font-weight:600;color:#e2e8f0}.sign-coords-input{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px}.coord-group{display:flex;flex-direction:column;gap:4px}.coord-label{font-size:var(--fs-2xs);color:#64748b;text-transform:uppercase}.coord-input{background:#0000004d;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:8px 10px;color:#fff;font-family:JetBrains Mono,monospace;font-size:var(--fs-sm)}.coord-input:focus{border-color:#3b82f6}.sign-actions{display:flex;gap:10px}.btn-primary{flex:1;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border:none;border-radius:8px;padding:12px 16px;font-weight:700;font-size:var(--fs-md);cursor:pointer;text-transform:uppercase;letter-spacing:.5px;transition:opacity .15s}.btn-primary:hover{opacity:.95}.btn-secondary{background:#ffffff0d;color:#fff;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:12px 16px;font-weight:600;font-size:var(--fs-sm);cursor:pointer;transition:background-color .15s}.btn-secondary:hover{background:#ffffff1a}.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0}.toggle-label{font-size:var(--fs-md);font-weight:500;color:#e2e8f0}.switch{position:relative;display:inline-block;width:40px;height:20px}.switch input{opacity:0;width:0;height:0}.slider-switch{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#334155;transition:.3s;border-radius:20px}.slider-switch:before{position:absolute;content:"";height:14px;width:14px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}input:checked+.slider-switch{background-color:#3b82f6}input:checked+.slider-switch:before{transform:translate(20px)}.ai-chat-panel{display:flex;flex-direction:column;height:100%}.chat-message-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:4px;margin-bottom:12px}.chat-bubble{max-width:85%;padding:10px 14px;border-radius:12px;font-size:var(--fs-md);line-height:1.4;word-wrap:break-word}.chat-bubble.role-user{background-color:#2563eb;color:#fff;align-self:flex-end;border-bottom-right-radius:2px}.chat-bubble.role-assistant{background-color:#ffffff0d;color:#f1f5f9;align-self:flex-start;border-bottom-left-radius:2px;border:1px solid rgba(255,255,255,.08)}.chat-bubble.role-error{background-color:#ef444426;color:#fca5a5;align-self:flex-start;border:1px solid rgba(239,68,68,.3)}.chat-bubble code{font-family:JetBrains Mono,monospace;background:#0000004d;padding:2px 4px;border-radius:4px;font-size:var(--fs-sm);color:#60a5fa}.chat-bubble pre{background:#0006;padding:10px;border-radius:6px;overflow-x:auto;margin-top:6px;border:1px solid rgba(255,255,255,.05)}.chat-bubble details.thinking{background:#ffffff05;border-radius:6px;padding:6px;margin-top:6px;border:1px solid rgba(255,255,255,.04)}.chat-bubble details.thinking summary{cursor:pointer;font-size:var(--fs-xs);color:#64748b}.chat-bubble details.thinking div{font-size:var(--fs-xs);color:#94a3b8;margin-top:4px;font-style:italic}.copilot-presets{display:flex;flex-direction:column;gap:6px;margin-bottom:12px}.preset-btn{background:#ffffff08;border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px 12px;font-size:var(--fs-xs);color:#60a5fa;text-align:left;cursor:pointer;transition:all .15s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.preset-btn:hover{background:#3b82f61f;border-color:#3b82f64d;color:#fff}.chat-input-form{display:flex;gap:8px;background:#0003;padding:8px;border-radius:8px;border:1px solid rgba(255,255,255,.08)}.chat-text-input{flex:1;background:transparent;border:none;color:#fff;font-size:var(--fs-md)}.btn-send-message{background:#3b82f6;color:#fff;border:none;border-radius:6px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .15s}.btn-send-message:hover{background:#2563eb}.btn-send-message:disabled{background:#1e293b;color:#475569;cursor:not-allowed}.badge{display:inline-flex;align-items:center;padding:2px 6px;border-radius:4px;font-size:var(--fs-2xs);font-weight:700;text-transform:uppercase}.badge-danger{background:#ef444426;color:#fca5a5;border:1px solid rgba(239,68,68,.3)}.badge-warning{background:#f9731626;color:#fed7aa;border:1px solid rgba(249,115,22,.3)}.badge-success{background:#10b98126;color:#a7f3d0;border:1px solid rgba(16,185,129,.3)}.log-box{background:#000;font-family:JetBrains Mono,monospace;font-size:var(--fs-xs);padding:10px;border-radius:6px;max-height:120px;overflow-y:auto;border:1px solid rgba(255,255,255,.05);color:#38bdf8}.log-line{margin-bottom:4px;display:flex;gap:8px}.log-ts{color:#64748b}.ai-planner-overlay{background:#10b98114;border:1px solid rgba(16,185,129,.3);border-radius:8px;padding:12px;margin-bottom:10px}.ai-planner-title{font-size:var(--fs-sm);font-weight:700;color:#34d399;display:flex;align-items:center;gap:6px;margin-bottom:4px}.hud-crosshair{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:1000;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;transition:opacity .3s ease,transform .3s ease}.hud-crosshair.visible{opacity:1}.crosshair-ring{width:90px;height:90px;border:2px dashed rgba(59,130,246,.6);border-radius:50%;animation:rotate-ring 8s linear infinite;display:flex;align-items:center;justify-content:center;position:relative}.crosshair-ring:before{content:"";position:absolute;width:106px;height:106px;border:1px solid rgba(59,130,246,.2);border-radius:50%}.crosshair-dot{position:absolute;width:10px;height:10px;background-color:#3b82f6;border-radius:50%;box-shadow:0 0 15px #3b82f6,0 0 30px #3b82f6;animation:pulse-dot-laser 1.5s infinite ease-in-out}.crosshair-label{margin-top:16px;font-family:Space Grotesk,sans-serif;font-size:var(--fs-xs);font-weight:700;letter-spacing:2px;color:#60a5fa;text-shadow:0 2px 4px rgba(0,0,0,.8);background:#0a0f1ed9;padding:4px 10px;border-radius:4px;border:1px solid rgba(59,130,246,.3);text-transform:uppercase}.crosshair-coords{margin-top:4px;font-family:JetBrains Mono,monospace;font-size:var(--fs-2xs);color:#38bdf8;background:#000000e6;padding:2px 8px;border-radius:3px;border:1px solid rgba(56,189,248,.2)}@keyframes rotate-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse-dot-laser{0%,to{transform:scale(1);box-shadow:0 0 10px #3b82f6}50%{transform:scale(1.3);box-shadow:0 0 25px #38bdf8,0 0 40px #38bdf8}}.sign-card[draggable=true]{cursor:grab}.sign-card[draggable=true]:active{cursor:grabbing}.sign-card{transition:transform .15s ease,border-color .15s ease}.sign-card:hover{transform:translateY(-2px);border-color:#3b82f666}.site-item.drag-over-site{border:2px dashed #3b82f6!important;background:#3b82f614!important;transform:scale(1.02);box-shadow:0 0 15px #3b82f633}.heatmap-section{margin-top:15px;margin-bottom:5px}.heatmap-container-card{background:#0f172a99;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:12px;transition:all .3s cubic-bezier(.4,0,.2,1);overflow:hidden}.heatmap-container-card.collapsed{height:0;padding:0;border-color:transparent;opacity:0;pointer-events:none}.heatmap-meta{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;font-size:var(--fs-xs)}.heatmap-subtitle{color:#94a3b8;font-weight:500}.heatmap-indicator{display:flex;align-items:center;gap:8px;color:#64748b}.legend-color{display:inline-block;width:10px;height:10px;border-radius:2px}.legend-low{background-color:#1e293b;border:1px solid rgba(255,255,255,.05)}.legend-mod{background-color:#0284c7}.legend-high{background-color:#ef4444}.legend-closed{background-color:#070b13;border:1px dashed rgba(239,68,68,.4)}.d3-heatmap-svg-container{width:100%;display:flex;justify-content:center;align-items:center;position:relative}.heatmap-insight{margin-top:12px;background:#0000004d;border-left:3px solid #3b82f6;padding:8px 12px;border-radius:0 6px 6px 0;font-size:var(--fs-xs);color:#cbd5e1;line-height:1.4}.heatmap-insight strong{color:#60a5fa}.collapse-icon{font-size:var(--fs-xs);color:#64748b;transition:transform .2s ease}.heatmap-tooltip{position:absolute;background:#0f172af2;border:1px solid rgba(255,255,255,.15);padding:6px 10px;border-radius:4px;font-family:JetBrains Mono,monospace;font-size:var(--fs-xs);color:#fff;pointer-events:none;z-index:1000;box-shadow:0 4px 12px #00000080;display:none;text-align:left}.kiosk-overlay{position:absolute;top:0;left:0;width:100%;height:100%;z-index:2000;pointer-events:none;display:flex;flex-direction:column;justify-content:space-between;padding:30px;font-family:Space Grotesk,sans-serif;box-sizing:border-box}.kiosk-interactive{pointer-events:auto}.kiosk-glass-card{background:#0f172a59;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);box-shadow:0 8px 32px #0000005e;border-radius:16px;color:#f1f5f9;transition:all .4s ease}.kiosk-glass-card:hover{border-color:#ffffff38}.kiosk-header{display:flex;justify-content:space-between;align-items:center;padding:16px 24px;margin-bottom:20px}.kiosk-brand{display:flex;align-items:center;gap:12px}.kiosk-logo-symbol{font-size:var(--fs-3xl);animation:pulse-beacon-kiosk 2s infinite alternate}.kiosk-brand-sub{font-size:var(--fs-2xs);font-family:JetBrains Mono,monospace;text-transform:uppercase;color:#60a5fa;letter-spacing:4px}.kiosk-stages{display:flex;align-items:center;gap:8px}.kiosk-stage-node{padding:8px 16px;border-radius:99px;font-size:var(--fs-xs);font-weight:700;border:1px solid rgba(255,255,255,.08);background:#ffffff08;transition:all .4s ease;display:flex;align-items:center;gap:6px}.kiosk-stage-node.active{background:linear-gradient(135deg,#3b82f633,#2563eb33);border-color:#60a5fa73;box-shadow:0 0 15px #3b82f659;color:#fff;transform:scale(1.05)}.kiosk-stage-arrow{color:#475569;font-size:var(--fs-xs)}.kiosk-middle-container{display:flex;justify-content:space-between;flex:1;width:100%;gap:24px;margin-bottom:24px;box-sizing:border-box}.kiosk-info-panel{width:440px;display:flex;flex-direction:column;gap:16px;padding:24px;max-height:70vh;overflow-y:auto}.kiosk-log-panel{width:440px;display:flex;flex-direction:column;padding:24px;max-height:70vh}.kiosk-panel-title{font-size:var(--fs-lg);font-weight:700;text-transform:uppercase;letter-spacing:1.5px;color:#60a5fa;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:10px;margin-bottom:16px;display:flex;align-items:center;justify-content:space-between}.kiosk-spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:15px}.kiosk-spec-card{background:#0003;border:1px solid rgba(255,255,255,.05);padding:12px;border-radius:10px}.kiosk-spec-val{font-size:var(--fs-xl);font-weight:700;color:#fff}.kiosk-spec-lbl{font-size:var(--fs-2xs);text-transform:uppercase;color:#94a3b8;margin-top:2px}.kiosk-news-list{display:flex;flex-direction:column;gap:10px;overflow-y:auto;flex:1;padding-right:4px}.kiosk-news-item{background:#0003;border-left:3px solid #64748b;padding:10px 12px;border-radius:0 8px 8px 0;font-size:var(--fs-sm);line-height:1.4;animation:slide-in-kiosk .4s cubic-bezier(.16,1,.3,1)}.kiosk-news-item.info{border-left-color:#3b82f6}.kiosk-news-item.success{border-left-color:#10b981}.kiosk-news-item.warn{border-left-color:#f59e0b}.kiosk-news-item.alert{border-left-color:#ef4444}.kiosk-news-meta{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-2xs);font-family:JetBrains Mono,monospace;color:#64748b;margin-bottom:4px}.kiosk-news-cat{text-transform:uppercase;font-weight:700}.kiosk-news-item.info .kiosk-news-cat{color:#60a5fa}.kiosk-news-item.success .kiosk-news-cat{color:#34d399}.kiosk-news-item.warn .kiosk-news-cat{color:#fbbf24}.kiosk-news-item.alert .kiosk-news-cat{color:#f87171}.kiosk-footer{display:flex;justify-content:space-between;align-items:center;padding:16px 24px}.kiosk-timer-bar-container{flex:1;max-width:300px;background:#0000004d;height:6px;border-radius:99px;overflow:hidden;position:relative;margin-right:20px}.kiosk-timer-bar{background:linear-gradient(90deg,#3b82f6,#60a5fa);height:100%;border-radius:99px;transition:width 1s linear}.kiosk-timer-text{font-size:var(--fs-xs);font-family:JetBrains Mono,monospace;color:#94a3b8;margin-right:30px}.kiosk-controls-dock{display:flex;align-items:center;gap:12px}.kiosk-btn{background:#ffffff14;border:1px solid rgba(255,255,255,.1);padding:8px 18px;border-radius:10px;color:#fff;font-size:var(--fs-sm);font-weight:600;cursor:pointer;transition:all .25s ease;display:flex;align-items:center;gap:8px}.kiosk-btn:hover{background:#ffffff29;border-color:#ffffff40;transform:translateY(-1px)}.kiosk-btn-exit{background:linear-gradient(135deg,#ef444433,#dc26264d);border-color:#f8717159}.kiosk-btn-exit:hover{background:linear-gradient(135deg,#ef444459,#dc262680);border-color:#f871718c;box-shadow:0 0 15px #ef444440}@keyframes pulse-beacon-kiosk{0%{transform:scale(1);filter:drop-shadow(0 0 2px rgba(59,130,246,.5))}to{transform:scale(1.1);filter:drop-shadow(0 0 12px rgba(96,165,250,.95))}}@keyframes slide-in-kiosk{0%{transform:translate(30px);opacity:0}to{transform:translate(0);opacity:1}}.gdm-map-app.kiosk-mode-active .top-bar,.gdm-map-app.kiosk-mode-active .sidebar{display:none!important}.gdm-map-app.kiosk-mode-active .map-container{width:100vw!important;height:100dvh!important;left:0!important;top:0!important;position:absolute!important}.kiosk-launcher-btn{background:linear-gradient(135deg,#2563eb,#1d4ed8);box-shadow:0 4px 12px #2563eb4d}.cctv-widget{position:absolute;top:var(--rail-top);right:var(--hud-gap);width:var(--cctv-w);background:#0f172a73;backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px);border:1px solid rgba(255,255,255,.15);border-radius:16px;z-index:105;box-shadow:0 12px 40px #00000080;color:#f1f5f9;overflow:hidden;display:flex;flex-direction:column;animation:slide-in-cctv .4s cubic-bezier(.16,1,.3,1)}.cctv-widget-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);background:#0003}.cctv-widget-title{font-size:var(--fs-xs);font-weight:700;letter-spacing:1.5px;color:#f8fafc;display:flex;align-items:center;gap:8px}.cctv-status-dot{width:6px;height:6px;background-color:#ef4444;border-radius:50%;box-shadow:0 0 8px #ef4444;animation:cctv-blink 1s steps(2,start) infinite}@keyframes cctv-blink{to{visibility:hidden}}.cctv-close-btn{background:transparent;border:none;color:#94a3b8;cursor:pointer;padding:4px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:all .2s}.cctv-close-btn:hover{background:#ffffff1a;color:#f1f5f9}.cctv-canvas-container{width:100%;background:#000;position:relative;display:flex;justify-content:center;align-items:center}#cctvCanvas{width:100%;height:auto;display:block}.cctv-controls-row{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:#00000026;border-bottom:1px solid rgba(255,255,255,.08)}.cctv-btn-toggle{background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:6px;padding:4px 10px;font-size:var(--fs-xs);font-weight:600;color:#cbd5e1;cursor:pointer;transition:all .2s;font-family:JetBrains Mono,monospace}.cctv-btn-toggle:hover{background:#ffffff1f;color:#fff;border-color:#fff3}.cctv-btn-toggle.active{background:#10b98126;border-color:#10b98159;color:#34d399}.cctv-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;padding:12px 16px;font-size:var(--fs-xs);background:#0000001a}.cctv-info-item{display:flex;flex-direction:column}.cctv-info-label{color:#64748b;text-transform:uppercase;font-size:var(--fs-2xs);letter-spacing:.5px;margin-bottom:2px}.cctv-info-value{color:#cbd5e1;font-weight:700;font-family:JetBrains Mono,monospace}.cctv-floating-alert{position:absolute;top:102px;right:16px;background:#0f172a80;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(96,165,250,.3);border-radius:30px;padding:8px 16px;display:flex;align-items:center;gap:10px;z-index:104;cursor:pointer;box-shadow:0 8px 24px #00000059;color:#60a5fa;font-size:var(--fs-xs);font-weight:700;letter-spacing:.5px;transition:all .3s cubic-bezier(.16,1,.3,1);animation:slide-in-cctv-alert .4s cubic-bezier(.16,1,.3,1)}.cctv-floating-alert:hover{background:#0f172aa6;border-color:#60a5fa80;transform:translateY(-1px);box-shadow:0 10px 28px #2563eb40}.cctv-pulse-dot-green{width:6px;height:6px;background-color:#10b981;border-radius:50%;box-shadow:0 0 6px #10b981;display:inline-block}@keyframes slide-in-cctv{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes slide-in-cctv-alert{0%{transform:scale(.95);opacity:0}to{transform:scale(1);opacity:1}}.project-dropdown-container{position:relative;display:inline-block}.project-selector-btn{background:#0f172acc;border:1px solid rgba(59,130,246,.4);color:#f8fafc;font-size:var(--fs-sm);font-weight:700;padding:6px 14px;border-radius:8px;cursor:pointer;display:flex;align-items:center;gap:8px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:all .2s ease;box-shadow:0 4px 12px #00000040}.project-selector-btn:hover{background:#1e3a8acc;border-color:#60a5fa99;box-shadow:0 0 16px #3b82f64d}.project-menu-popup{position:absolute;top:calc(100% + 6px);left:0;width:340px;background:#0f172af2;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.15);border-radius:12px;padding:10px;z-index:200;box-shadow:0 16px 40px #0009;max-height:420px;overflow-y:auto;animation:slide-down-fade .2s cubic-bezier(.16,1,.3,1)}@keyframes slide-down-fade{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.project-menu-item{padding:10px 12px;border-radius:8px;background:#ffffff08;border:1px solid transparent;margin-bottom:6px;cursor:pointer;transition:all .2s ease}.project-menu-item:hover{background:#3b82f633;border-color:#60a5fa66}.project-menu-item.active{background:linear-gradient(135deg,#1e3a8a99,#0f172ae6);border-color:#3b82f6;box-shadow:0 0 12px #3b82f64d}.project-menu-title{font-size:var(--fs-sm);font-weight:700;color:#f1f5f9;display:flex;align-items:center;justify-content:space-between}.project-menu-desc{font-size:var(--fs-xs);color:#94a3b8;margin-top:3px;line-height:1.3}.project-status-pill{font-size:var(--fs-2xs);font-family:JetBrains Mono,monospace;font-weight:700;padding:2px 6px;border-radius:4px;text-transform:uppercase}.status-active{background:#22c55e33;color:#4ade80;border:1px solid rgba(34,197,94,.4)}.status-maint{background:#f59e0b33;color:#fbbf24;border:1px solid rgba(245,158,11,.4)}.status-plan{background:#60a5fa33;color:#93c5fd;border:1px solid rgba(96,165,250,.4)}.corridor-tour-pill{position:absolute;top:calc(var(--rail-top) - 4px);left:50%;transform:translate(-50%);background:#0f172ad9;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border:1px solid rgba(96,165,250,.3);border-radius:30px;padding:6px 18px;display:flex;align-items:center;gap:14px;z-index:85;box-shadow:0 8px 24px #0006}.corridor-tour-label{font-size:var(--fs-xs);font-weight:700;color:#f8fafc;display:flex;align-items:center;gap:6px}.tour-nav-btn{background:#ffffff1a;border:1px solid rgba(255,255,255,.15);color:#f1f5f9;border-radius:50%;width:24px;height:24px;display:flex;align-items:center;justify-content:center;font-size:var(--fs-xs);cursor:pointer;transition:all .2s ease}.tour-nav-btn:hover{background:#3b82f6;border-color:#60a5fa;color:#fff}.site-item.active-selected-site{border-color:#22c55e!important;background:#064e3b40!important;box-shadow:0 0 16px #22c55e4d!important}.project-search-box{width:100%;background:#0006;border:1px solid rgba(255,255,255,.12);border-radius:8px;padding:8px 12px;color:#fff;font-size:var(--fs-sm);margin-bottom:10px;transition:all .2s ease}.project-search-box:focus{border-color:#3b82f6;box-shadow:0 0 12px #3b82f64d}.project-filter-tags{display:flex;align-items:center;gap:6px;margin-bottom:14px;overflow-x:auto;padding-bottom:4px}.filter-tag-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);color:#94a3b8;font-size:var(--fs-2xs);font-weight:700;padding:4px 10px;border-radius:12px;cursor:pointer;white-space:nowrap;transition:all .2s ease}.filter-tag-btn:hover,.filter-tag-btn.active{background:#3b82f6;border-color:#60a5fa;color:#fff}.country-group-header{background:#0f172ab3;border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:8px 12px;display:flex;align-items:center;justify-content:space-between;cursor:pointer;margin-top:10px;margin-bottom:6px;font-size:var(--fs-sm);font-weight:700;color:#f1f5f9;transition:all .2s ease}.country-group-header:hover{background:#1e3a8a66;border-color:#60a5fa66}.project-card-container{background:#05070c99;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px 12px;margin-bottom:10px;transition:all .2s ease}.project-card-container:hover{border-color:#60a5fa4d}.project-card-container.active-project{border-color:#3b82f6;background:#1e3a8a40;box-shadow:0 0 16px #3b82f633}.fly-btn-primary{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;border:none;font-size:var(--fs-2xs);font-weight:700;padding:4px 10px;border-radius:6px;cursor:pointer;display:flex;align-items:center;gap:4px;transition:all .2s ease}.fly-btn-primary:hover{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 0 12px #3b82f666;transform:translateY(-1px)}.quick-commands-dock{background:#0f172a99;border:1px solid rgba(255,255,255,.08);border-radius:10px;padding:10px;margin-top:14px}.quick-commands-label{font-size:var(--fs-2xs);font-family:JetBrains Mono,monospace;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:8px}.quick-commands-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:6px}.quick-cmd-btn{background:#0000004d;border:1px solid rgba(255,255,255,.06);border-radius:6px;padding:6px 2px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#cbd5e1;font-size:var(--fs-2xs);cursor:pointer;position:relative;transition:all .2s ease}.quick-cmd-btn:hover{background:#3b82f633;border-color:#60a5fa66;color:#fff}.quick-cmd-badge{position:absolute;top:-4px;right:-2px;background:#ef4444;color:#fff;font-size:var(--fs-2xs);font-weight:700;width:14px;height:14px;border-radius:50%;display:flex;align-items:center;justify-content:center}@keyframes float-badge{0%{transform:translateY(0)}to{transform:translateY(-4px)}}.bottom-telemetry-dock{position:absolute;bottom:16px;left:50%;transform:translate(-50%);background:#0f172aa6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.12);border-radius:14px;padding:10px 20px;display:flex;align-items:center;gap:24px;z-index:90;box-shadow:0 12px 32px #00000080;transition:all .3s ease}.bottom-telemetry-dock:hover{border-color:#60a5fa66;box-shadow:0 16px 40px #2563eb40}.bottom-telemetry-item{display:flex;align-items:center;gap:10px}.bottom-telemetry-icon{width:32px;height:32px;border-radius:8px;background:#0000004d;display:flex;align-items:center;justify-content:center;font-size:var(--fs-lg)}.bottom-telemetry-val{font-size:var(--fs-xl);font-weight:800;color:#f8fafc;font-family:JetBrains Mono,monospace;line-height:1}.bottom-telemetry-lbl{font-size:var(--fs-2xs);color:#94a3b8;text-transform:uppercase;letter-spacing:.5px;margin-top:2px}@media(max-width:1199px){:root{--hud-gap: 12px;--topbar-h: 64px;--sidebar-w: 320px;--cctv-w: 300px}.brand-sub{display:none}.crumb-btn{max-width:220px}.bottom-telemetry-dock{left:calc(var(--sidebar-w) + var(--hud-gap) * 2);right:var(--hud-gap);transform:none;justify-content:space-between;gap:var(--sp-3);overflow-x:auto}}@media(max-width:899px){:root{--sidebar-w: 300px}.brand-text{display:none}.crumb-site,.crumb-site+.project-menu-popup,.breadcrumb .crumb-sep:last-of-type{display:none}.crumb-btn{max-width:190px}.cctv-widget{top:auto;bottom:calc(var(--hud-gap) * 2 + 58px);width:min(360px,calc(100vw - var(--sidebar-w) - var(--hud-gap) * 3))}.corridor-tour-pill{max-width:calc(100vw - var(--hud-gap) * 2)}.corridor-tour-label{max-width:46vw}}@media(max-width:767px){:root{--hud-gap: 8px;--topbar-h: 52px;--sheet-peek: 84px;--tabbar-h: 60px}.top-bar{top:calc(var(--hud-gap) + env(safe-area-inset-top));padding:0 var(--sp-2) 0 var(--sp-3);gap:var(--sp-2);border-radius:12px}.brand-text,.top-bar-actions,.crumb-countries .crumb-country-code,.crumb-site,.breadcrumb .crumb-sep:last-of-type{display:none}.brand-mark{width:28px;height:28px;background:transparent;border:none}.breadcrumb{justify-content:flex-start;gap:var(--sp-1)}.crumb-countries{padding:2px;background:transparent;border:none}.crumb-country{padding:6px;min-height:36px}.crumb-sep{display:none}.crumb-btn{flex:1 1 auto;max-width:none;min-height:38px;background:transparent;border:none;padding:0 var(--sp-1)}.project-menu-popup{left:0;right:0;width:auto;max-height:60dvh;overflow-y:auto}.sidebar{top:auto;left:0;right:0;bottom:calc(var(--tabbar-h) + env(safe-area-inset-bottom));width:100%;border-radius:var(--panel-radius) var(--panel-radius) 0 0;border-bottom:none;z-index:120;transition:height .32s cubic-bezier(.32,.72,0,1)}.sidebar.sheet-peek{height:var(--sheet-peek)}.sidebar.sheet-half{height:52dvh}.sidebar.sheet-full{height:calc(100dvh - var(--topbar-h) - var(--tabbar-h) - var(--hud-gap) * 3 - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.sheet-handle{display:flex}.sidebar-nav{display:none}.mobile-tabbar{display:flex}.sidebar-content{padding:var(--sp-3) var(--sp-4) var(--sp-4);gap:var(--sp-3)}.stat-grid{gap:var(--sp-2)}.bottom-telemetry-dock,.cctv-widget,.corridor-tour-pill{left:var(--hud-gap);right:var(--hud-gap);transform:none;width:auto;max-width:none}.bottom-telemetry-dock{display:none}.corridor-tour-pill{bottom:calc(var(--tabbar-h) + var(--sheet-peek) + var(--hud-gap) + env(safe-area-inset-bottom));justify-content:space-between}.cctv-widget{top:auto;bottom:calc(var(--tabbar-h) + var(--sheet-peek) + 64px + env(safe-area-inset-bottom))}.corridor-tour-label{max-width:58vw}.tour-nav-btn,.btn-ctrl,.workflow-subtab,.btn-fly,.pdf-export-btn,.mobile-tab{min-height:44px}.kiosk-overlay{display:none}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}
