*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%;overflow:hidden;font-family:Inter,system-ui,sans-serif}.app{height:100%;position:relative}.app-loading-overlay{position:absolute;inset:0;z-index:5;pointer-events:none;background:radial-gradient(circle at 22% 26%,rgba(14,165,233,.12),transparent 0 10%),radial-gradient(circle at 74% 34%,rgba(59,130,246,.12),transparent 0 8%),radial-gradient(circle at 60% 68%,rgba(16,185,129,.1),transparent 0 8%),linear-gradient(rgba(148,163,184,.12) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.12) 1px,transparent 1px),linear-gradient(180deg,#eff6fff2,#e2e8f0e6);background-size:auto,auto,auto,96px 96px,96px 96px,auto;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);opacity:1;transition:opacity .28s ease}.app-loading-overlay--hidden{opacity:0}.map-loading{position:fixed;inset:0;z-index:50;pointer-events:none;display:flex;flex-direction:column;align-items:center;justify-content:space-between;padding:7vh 0 6vh;background:#eceff4;opacity:1;transition:opacity .5s ease}.map-loading--hidden{opacity:0}.map-loading-logo{width:132px;height:auto;opacity:.97;flex-shrink:0}.map-loading-footer{display:flex;flex-direction:column;align-items:center;gap:14px;flex-shrink:0}.map-loading-brand{font:700 12.5px/1 Inter,system-ui,sans-serif;letter-spacing:.2em;color:#1e3a5f}.map-loading-bar{width:240px;height:4px;border-radius:999px;background:#1e3a5f1f;overflow:hidden}.map-loading-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,#ed1c23,#f4623a);transition:width .4s cubic-bezier(.4,0,.2,1)}.map-loading-label{font:600 10.5px/1 Inter,system-ui,sans-serif;letter-spacing:.1em;text-transform:uppercase;color:#94a3b8}.map-loader{--duration: 3s;--primary: #ed1c23;--primary-light: #f4623a;--primary-rgba: rgba(237, 28, 35, 0);--mask: #eceff4;width:200px;height:320px;position:relative;transform-style:preserve-3d}@media (max-width: 480px){.map-loader{zoom:.44}}.map-loader:before,.map-loader:after{--r: 20.5deg;content:"";width:320px;height:140px;position:absolute;right:32%;bottom:-11px;background:var(--mask);transform:translateZ(200px) rotate(var(--r));animation:mask var(--duration) linear forwards infinite}.map-loader:after{--r: -20.5deg;right:auto;left:32%}.map-loader .ground{position:absolute;left:-50px;bottom:-120px;transform-style:preserve-3d;transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(1)}.map-loader .ground div{transform:rotateX(90deg) rotateY(0) translate(-48px,-120px) translateZ(100px) scale(0);width:200px;height:200px;background:var(--primary);background:linear-gradient(45deg,var(--primary) 0%,var(--primary) 50%,var(--primary-light) 50%,var(--primary-light) 100%);transform-style:preserve-3d;animation:ground var(--duration) linear forwards infinite}.map-loader .ground div:before,.map-loader .ground div:after{--rx: 90deg;--ry: 0deg;--x: 44px;--y: 162px;--z: -50px;content:"";width:156px;height:300px;opacity:0;background:linear-gradient(var(--primary),var(--primary-rgba));position:absolute;transform:rotateX(var(--rx)) rotateY(var(--ry)) translate(var(--x),var(--y)) translateZ(var(--z));animation:ground-shine var(--duration) linear forwards infinite}.map-loader .ground div:after{--rx: 90deg;--ry: 90deg;--x: 0;--y: 177px;--z: 150px}.map-loader .box{--x: 0;--y: 0;position:absolute;animation:var(--duration) linear forwards infinite;transform:translate(var(--x),var(--y))}.map-loader .box div{background-color:var(--primary);width:48px;height:48px;position:relative;transform-style:preserve-3d;animation:var(--duration) ease forwards infinite;transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(0)}.map-loader .box div:before,.map-loader .box div:after{--rx: 90deg;--ry: 0deg;--z: 24px;--y: -24px;--x: 0;content:"";position:absolute;background-color:inherit;width:inherit;height:inherit;transform:rotateX(var(--rx)) rotateY(var(--ry)) translate(var(--x),var(--y)) translateZ(var(--z));filter:brightness(var(--b, 1.2))}.map-loader .box div:after{--rx: 0deg;--ry: 90deg;--x: 24px;--y: 0;--b: 1.4}.map-loader .box.box0{--x: -220px;--y: -120px;left:58px;top:108px}.map-loader .box.box1{--x: -260px;--y: 120px;left:25px;top:120px}.map-loader .box.box2{--x: 120px;--y: -190px;left:58px;top:64px}.map-loader .box.box3{--x: 280px;--y: -40px;left:91px;top:120px}.map-loader .box.box4{--x: 60px;--y: 200px;left:58px;top:132px}.map-loader .box.box5{--x: -220px;--y: -120px;left:25px;top:76px}.map-loader .box.box6{--x: -260px;--y: 120px;left:91px;top:76px}.map-loader .box.box7{--x: -240px;--y: 200px;left:58px;top:87px}.map-loader .box0{animation-name:box-move0}.map-loader .box0 div{animation-name:box-scale0}.map-loader .box1{animation-name:box-move1}.map-loader .box1 div{animation-name:box-scale1}.map-loader .box2{animation-name:box-move2}.map-loader .box2 div{animation-name:box-scale2}.map-loader .box3{animation-name:box-move3}.map-loader .box3 div{animation-name:box-scale3}.map-loader .box4{animation-name:box-move4}.map-loader .box4 div{animation-name:box-scale4}.map-loader .box5{animation-name:box-move5}.map-loader .box5 div{animation-name:box-scale5}.map-loader .box6{animation-name:box-move6}.map-loader .box6 div{animation-name:box-scale6}.map-loader .box7{animation-name:box-move7}.map-loader .box7 div{animation-name:box-scale7}@keyframes box-move0{12%{transform:translate(var(--x),var(--y))}25%,52%{transform:translate(0)}80%{transform:translateY(-32px)}90%,to{transform:translateY(188px)}}@keyframes box-scale0{6%{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(0)}14%,to{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(1)}}@keyframes box-move1{16%{transform:translate(var(--x),var(--y))}29%,52%{transform:translate(0)}80%{transform:translateY(-32px)}90%,to{transform:translateY(188px)}}@keyframes box-scale1{10%{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(0)}18%,to{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(1)}}@keyframes box-move2{20%{transform:translate(var(--x),var(--y))}33%,52%{transform:translate(0)}80%{transform:translateY(-32px)}90%,to{transform:translateY(188px)}}@keyframes box-scale2{14%{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(0)}22%,to{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(1)}}@keyframes box-move3{24%{transform:translate(var(--x),var(--y))}37%,52%{transform:translate(0)}80%{transform:translateY(-32px)}90%,to{transform:translateY(188px)}}@keyframes box-scale3{18%{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(0)}26%,to{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(1)}}@keyframes box-move4{28%{transform:translate(var(--x),var(--y))}41%,52%{transform:translate(0)}80%{transform:translateY(-32px)}90%,to{transform:translateY(188px)}}@keyframes box-scale4{22%{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(0)}30%,to{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(1)}}@keyframes box-move5{32%{transform:translate(var(--x),var(--y))}45%,52%{transform:translate(0)}80%{transform:translateY(-32px)}90%,to{transform:translateY(188px)}}@keyframes box-scale5{26%{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(0)}34%,to{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(1)}}@keyframes box-move6{36%{transform:translate(var(--x),var(--y))}49%,52%{transform:translate(0)}80%{transform:translateY(-32px)}90%,to{transform:translateY(188px)}}@keyframes box-scale6{30%{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(0)}38%,to{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(1)}}@keyframes box-move7{40%{transform:translate(var(--x),var(--y))}52%,53%{transform:translate(0)}80%{transform:translateY(-32px)}90%,to{transform:translateY(188px)}}@keyframes box-scale7{34%{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(0)}42%,to{transform:rotateY(-47deg) rotateX(-15deg) rotate(15deg) scale(1)}}@keyframes ground{0%,65%{transform:rotateX(90deg) rotateY(0) translate(-48px,-120px) translateZ(100px) scale(0)}75%,90%{transform:rotateX(90deg) rotateY(0) translate(-48px,-120px) translateZ(100px) scale(1)}to{transform:rotateX(90deg) rotateY(0) translate(-48px,-120px) translateZ(100px) scale(0)}}@keyframes ground-shine{0%,70%{opacity:0}75%,87%{opacity:.2}to{opacity:0}}@keyframes mask{0%,65%{opacity:0}66%,to{opacity:1}}.auth-screen{min-height:100%;display:grid;place-items:center;position:relative;overflow:hidden;padding:24px;background:radial-gradient(circle at 18% 22%,rgba(56,189,248,.12),transparent 0 18%),radial-gradient(circle at 76% 28%,rgba(59,130,246,.1),transparent 0 14%),radial-gradient(circle at 64% 72%,rgba(125,211,252,.08),transparent 0 12%),linear-gradient(115deg,transparent 0 46%,rgba(148,163,184,.12) 46% 47%,transparent 47% 100%),linear-gradient(32deg,transparent 0 34%,rgba(148,163,184,.1) 34% 35%,transparent 35% 100%),linear-gradient(145deg,#f6fbff,#eaf4fb 52%,#ddebf6);color:#173b57}.auth-screen:before,.auth-screen:after{content:"";position:absolute;inset:auto;border-radius:999px;pointer-events:none}.auth-screen:before{inset:0;border-radius:0;background:linear-gradient(rgba(71,85,105,.08) 1px,transparent 1px),linear-gradient(90deg,rgba(71,85,105,.08) 1px,transparent 1px);background-size:120px 120px;-webkit-mask-image:radial-gradient(circle at center,black,transparent 92%);mask-image:radial-gradient(circle at center,black,transparent 92%);opacity:.55}.auth-screen:after{inset:0;border-radius:0;background:radial-gradient(circle at 18% 22%,rgba(14,165,233,.42) 0 4px,transparent 5px),radial-gradient(circle at 36% 58%,rgba(14,165,233,.42) 0 4px,transparent 5px),radial-gradient(circle at 64% 72%,rgba(96,165,250,.38) 0 4px,transparent 5px),radial-gradient(circle at 76% 28%,rgba(59,130,246,.4) 0 4px,transparent 5px),radial-gradient(circle at 82% 58%,rgba(125,211,252,.42) 0 4px,transparent 5px),linear-gradient(125deg,transparent 0 18%,rgba(14,165,233,.14) 18% 18.6%,transparent 18.6% 100%),linear-gradient(28deg,transparent 0 42%,rgba(96,165,250,.13) 42% 42.6%,transparent 42.6% 100%),linear-gradient(162deg,transparent 0 62%,rgba(59,130,246,.1) 62% 62.6%,transparent 62.6% 100%);opacity:.75}.auth-shell{position:relative;z-index:1;width:min(100%,520px);border:0;border-radius:0;overflow:visible;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.auth-brand{position:absolute;top:24px;left:24px;z-index:2;color:#173b57d1;font-size:.9rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.auth-logo{position:absolute;top:24px;right:24px;z-index:2;display:block;width:min(150px,15vw);height:auto;object-fit:contain}.auth-footnote{color:#173b57b3;font-size:.88rem;font-weight:500;letter-spacing:.02em}.auth-footnote--inline{width:100%;margin-top:-2px;text-align:center}.auth-card{position:relative;padding:38px;background:transparent}.auth-card h1{margin-top:12px;max-width:12ch;font-size:clamp(2.3rem,5vw,3.35rem);line-height:.98;letter-spacing:-.05em}.auth-card p{margin-top:16px;max-width:34rem;color:#e2e8f0d1;font-size:1rem;line-height:1.7}.auth-eyebrow{display:inline-flex;align-items:center;gap:10px;width:fit-content;padding:8px 12px;border:1px solid rgba(125,211,252,.26);border-radius:999px;background:#0c4a6e38;font-size:.78rem;font-weight:700;letter-spacing:.11em;text-transform:uppercase;color:#bae6fd}.auth-eyebrow:before{content:"";width:8px;height:8px;border-radius:999px;background:linear-gradient(135deg,#7dd3fc,#38bdf8);box-shadow:0 0 18px #7dd3fc73}.auth-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:28px}.auth-actions--center{justify-content:center}.auth-primary-button,.auth-secondary-button{min-height:50px;padding:0 18px;border-radius:999px;border:1px solid transparent;cursor:pointer;appearance:none;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;font:inherit;display:inline-flex;align-items:center;justify-content:center;gap:12px;transition:transform .18s ease,border-color .18s ease,background .18s ease,box-shadow .18s ease}.auth-primary-button{background:linear-gradient(135deg,#ef4444,#dc2626);color:#fff7f7;font-weight:700;box-shadow:none;outline:none}.auth-secondary-button{background:#0f172a5c;color:#e2e8f0;border-color:#94a3b838}.auth-primary-button:hover,.auth-secondary-button:hover{transform:translateY(-1px)}.auth-primary-button:hover{box-shadow:none}.auth-primary-button:focus,.auth-primary-button:focus-visible,.auth-primary-button:active,.auth-secondary-button:focus,.auth-secondary-button:focus-visible,.auth-secondary-button:active{outline:none;box-shadow:none;border-color:transparent}.auth-primary-button:disabled,.auth-secondary-button:disabled{cursor:default;opacity:.88;transform:none}.auth-primary-button--microsoft{min-width:180px}.auth-microsoft-icon{display:grid;grid-template-columns:repeat(2,10px);grid-template-rows:repeat(2,10px);gap:2px;flex:0 0 auto}.auth-microsoft-square{display:block;width:10px;height:10px;border-radius:2px}.auth-microsoft-square--red{background:#fff}.auth-microsoft-square--green{background:#ffffffd1}.auth-microsoft-square--blue{background:#ffffffb8}.auth-microsoft-square--yellow{background:#ffffff9e}.auth-inline-message{width:100%;padding:12px 14px;border:1px solid rgba(248,113,113,.24);border-radius:16px;background:#7f1d1d2e;color:#fecaca;font-size:.92rem;line-height:1.5}.auth-status-chip{position:absolute;top:10px;right:56px;z-index:20;display:flex;align-items:center;gap:12px;max-width:min(420px,calc(100vw - 140px));padding:9px 10px 9px 14px;border:1px solid rgba(148,163,184,.24);border-radius:999px;background:#071222c2;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:0 10px 24px #00000042;color:#eff6ff}.auth-status-copy{display:flex;align-items:center;gap:8px;min-width:0}.auth-status-copy strong,.auth-status-copy span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-status-label{font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:#7dd3fc;flex-shrink:0}.auth-status-email{color:#e2e8f0c7}.auth-status-button{min-height:34px;padding:0 14px;border:1px solid rgba(125,211,252,.2);border-radius:999px;background:#7dd3fc1a;color:#eff6ff;cursor:pointer;font:inherit;font-size:.92rem;font-weight:600;white-space:nowrap;transition:background .18s ease,border-color .18s ease,transform .18s ease}.auth-status-button:hover{background:#7dd3fc29;border-color:#7dd3fc4d;transform:translateY(-1px)}.auth-status-button:focus,.auth-status-button:focus-visible,.auth-status-button:active{outline:none}@media (max-width: 720px){.auth-screen{padding:64px 16px 16px}.auth-shell{border-radius:26px}.auth-brand{top:16px;left:16px;font-size:.8rem}.auth-logo{top:16px;right:16px;width:min(150px,34vw)}.auth-footnote{font-size:.82rem}.auth-card{padding:24px}.auth-card h1{max-width:none;font-size:2.2rem}.auth-primary-button,.auth-secondary-button{width:100%}.auth-status-chip{right:10px;left:10px;max-width:none}.auth-status-copy{gap:6px}}.marker{display:block;border:3px solid;border-radius:50%;cursor:pointer;padding:0;background-size:cover;background-position:center;background-repeat:no-repeat;box-shadow:0 2px 8px #00000073}@media (hover: hover){.marker:hover{transform:scale(1.2);box-shadow:0 4px 14px #0000008c}}.marker--selected{transform:scale(1.15);box-shadow:0 0 0 3px #fff,0 0 0 6px currentColor,0 4px 18px #00000080;z-index:10}@media (hover: hover){.marker--selected:hover{transform:scale(1.3);box-shadow:0 0 0 3px #fff,0 0 0 6px currentColor,0 6px 22px #0009}}.scroll-thin{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.18) transparent}.scroll-thin::-webkit-scrollbar{width:6px}.scroll-thin::-webkit-scrollbar-track{background:transparent}.scroll-thin::-webkit-scrollbar-thumb{background:#0000002e;border-radius:99px}.scroll-thin::-webkit-scrollbar-thumb:hover{background:#00000052}.mapboxgl-popup-content{border-radius:6px;padding:8px 12px;font-family:Inter,system-ui,sans-serif;font-size:.8rem;box-shadow:0 4px 12px #00000040}.mapboxgl-popup-content strong{display:block;margin-bottom:2px;font-size:.85rem}.left-column-scroll{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.22) transparent}.left-column-scroll::-webkit-scrollbar{width:6px}.left-column-scroll::-webkit-scrollbar-track{background:transparent}.left-column-scroll::-webkit-scrollbar-thumb{background:#00000038;border-radius:3px}.left-column-scroll::-webkit-scrollbar-thumb:hover{background:#00000057}.sb-hscroll-nobar{scrollbar-width:none}.sb-hscroll-nobar::-webkit-scrollbar{display:none}@media (max-width: 767px){.mapboxgl-ctrl-top-right{display:flex;flex-direction:row;align-items:flex-start;justify-content:flex-end;margin-top:env(safe-area-inset-top);margin-right:env(safe-area-inset-right)}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{float:none}.mapboxgl-ctrl-top-right .mapboxgl-ctrl-group button{width:44px!important;height:44px!important}.auth-status-chip{display:none}}
