.welcome-modal-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.78);backdrop-filter:blur(8px)}.welcome-modal-content{width:min(520px,100%);max-height:min(680px,calc(100dvh - 36px));overflow:hidden;border:2px solid rgba(14,165,233,.72);border-radius:0;background:#020307;color:#9dff86;box-shadow:0 0 0 1px rgba(57,255,20,.42),0 24px 80px rgba(0,0,0,.68);font-family:var(--font-geist-mono),ui-monospace,monospace}.welcome-modal-header{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid rgba(57,255,20,.28);padding:13px 14px 13px 18px;background:linear-gradient(90deg,rgba(2,17,6,.92),rgba(3,16,24,.92))}.welcome-modal-header span{display:block;color:#67d6ff;font-size:.65rem;font-weight:900;letter-spacing:.14em}.welcome-modal-header h2{margin:4px 0 0;color:#39ff14;font-size:1.12rem;line-height:1.2;text-transform:uppercase}.welcome-close-button{width:44px;height:44px;flex:0 0 44px;border:1px solid rgba(57,255,20,.35);background:#020703;color:#9dff86;font:700 1.35rem/1 var(--font-geist-mono),monospace}.quick-start-links a:focus-visible,.start-button:focus-visible,.welcome-close-button:focus-visible{outline:2px solid #67d6ff;outline-offset:2px}.welcome-modal-body{max-height:calc(100dvh - 132px);overflow-y:auto;padding:16px}.quick-start-steps{display:grid;gap:8px;margin:0;padding:0;list-style:none}.quick-start-steps li{min-height:74px;display:grid;grid-template-columns:42px 1fr;align-items:center;gap:11px;border:1px solid rgba(57,255,20,.22);background:#020703;padding:10px}.quick-start-steps li>span{color:#facc15;font-size:.78rem;font-weight:900;letter-spacing:.06em}.quick-start-steps p,.quick-start-steps strong{display:block;margin:0}.quick-start-steps strong{color:#39ff14;font-size:.8rem;text-transform:uppercase}.quick-start-steps p{margin-top:4px;color:#9dff86;font-size:.72rem;line-height:1.35}.quick-start-note{margin:10px 0;border-left:2px solid #facc15;background:rgba(250,204,21,.08);color:#fde68a;padding:9px 10px;font-size:.66rem;line-height:1.45}.quick-start-links{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-bottom:8px}.quick-start-links a{min-height:44px;display:flex;align-items:center;justify-content:center;border:1px solid rgba(103,214,255,.36);background:#031018;color:#67d6ff;font-size:.64rem;font-weight:800;text-align:center;text-transform:uppercase}.start-button{width:100%;min-height:48px;border:1px solid rgba(57,255,20,.68);border-radius:0;background:#041109;color:#39ff14;font:900 .72rem/1 var(--font-geist-mono),monospace;letter-spacing:.08em;text-transform:uppercase}@media (max-width:767px){.welcome-modal-overlay{align-items:flex-end;padding:0}.welcome-modal-content{width:100%;max-height:calc(100dvh - 54px - env(safe-area-inset-top));border-right:0;border-bottom:0;border-left:0}.welcome-modal-body{max-height:calc(100dvh - 142px - env(safe-area-inset-top));padding-bottom:calc(16px + env(safe-area-inset-bottom))}}.scenario-share-button{width:100%;min-height:48px;display:flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(57,255,20,.68);border-radius:0;background:#041109;color:#39ff14;padding:0 12px;font:900 .7rem/1 var(--font-geist-mono),monospace;letter-spacing:.07em;text-transform:uppercase}.scenario-share-button span{color:#67d6ff;font-size:1rem}.scenario-share-button:disabled{cursor:wait;opacity:.62}.share-inline-error{margin:6px 0 0;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#fda4af;font-size:.66rem}.share-inline-error button{min-height:44px;border:1px solid rgba(253,164,175,.5);background:#170509;color:#fecdd3;padding:0 10px;font:800 .62rem/1 var(--font-geist-mono),monospace;text-transform:uppercase}.share-fallback-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.82);backdrop-filter:blur(10px)}.share-fallback-panel{width:min(430px,100%);max-height:calc(100dvh - 36px);overflow-y:auto;border:2px solid rgba(14,165,233,.7);background:#020307;box-shadow:0 0 0 1px rgba(57,255,20,.35),0 28px 80px rgba(0,0,0,.7);color:#9dff86;font-family:var(--font-geist-mono),monospace}.share-fallback-panel header{min-height:72px;display:flex;align-items:center;justify-content:space-between;gap:10px;border-bottom:1px solid rgba(57,255,20,.25);padding:11px 12px 11px 16px;background:linear-gradient(90deg,#041109,#031018)}.share-fallback-panel header h3,.share-fallback-panel header span{display:block}.share-fallback-panel header span{color:#67d6ff;font-size:.6rem;font-weight:900;letter-spacing:.12em}.share-fallback-panel header h3{margin:4px 0 0;color:#39ff14;font-size:.88rem;text-transform:uppercase}.share-fallback-panel header button{width:44px;height:44px;flex:0 0 44px;border:1px solid rgba(57,255,20,.3);background:#020703;color:#9dff86;font:700 1.3rem/1 var(--font-geist-mono),monospace}.share-card-preview{width:calc(100% - 24px);aspect-ratio:4/5;margin:12px;border:1px solid rgba(57,255,20,.28);background-color:#020703;background-position:50%;background-repeat:no-repeat;background-size:contain}.share-fallback-actions{display:grid;gap:7px;padding:0 12px 12px}.share-fallback-actions button{min-height:48px;border:1px solid rgba(57,255,20,.5);background:#041109;color:#39ff14;font:800 .68rem/1 var(--font-geist-mono),monospace;letter-spacing:.06em;text-transform:uppercase}.share-fallback-actions button+button{border-color:rgba(103,214,255,.5);background:#031018;color:#67d6ff}@media (max-width:767px){.share-fallback-overlay{align-items:flex-end;padding:0}.share-fallback-panel{width:100%;max-height:calc(100dvh - 54px - env(safe-area-inset-top));border-right:0;border-bottom:0;border-left:0;padding-bottom:env(safe-area-inset-bottom)}.share-card-preview{max-height:48dvh}}.mobile-simulator-shell{--sim-green:#39ff14;--sim-blue:#67d6ff;--sim-yellow:#facc15;--sim-red:#fb4158;position:fixed;inset:0;z-index:60;height:100dvh;overflow:hidden;background:#020307;color:var(--sim-green);font-family:var(--font-geist-mono),ui-monospace,monospace;isolation:isolate}.mobile-sim-bar{position:absolute;inset:0 0 auto;z-index:30;height:calc(54px + env(safe-area-inset-top));padding:env(safe-area-inset-top) 12px 0;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;border-bottom:1px solid rgba(57,255,20,.42);background:rgba(2,3,7,.94);box-shadow:0 8px 24px rgba(0,0,0,.32);backdrop-filter:blur(14px)}.mobile-sim-logo{color:var(--sim-green);font-size:1.08rem;font-weight:900;letter-spacing:.08em;text-shadow:0 0 12px rgba(57,255,20,.35)}.mobile-sim-live{display:flex;align-items:center;gap:6px;color:#9dff86;font-size:.65rem;font-weight:800;letter-spacing:.12em}.mobile-sim-live i{width:7px;height:7px;border-radius:50%;background:var(--sim-red);box-shadow:0 0 10px var(--sim-red)}.mobile-sim-bar-actions{display:flex;justify-content:flex-end;gap:7px}.mobile-sim-bar-actions button{width:44px;height:44px;border:1px solid rgba(57,255,20,.38);background:#041109;color:var(--sim-green);font:inherit;font-size:1rem;font-weight:900}.mobile-sim-menu{position:absolute;z-index:45;top:calc(52px + env(safe-area-inset-top));right:10px;width:min(240px,calc(100vw - 20px));display:grid;gap:5px;padding:10px;border:1px solid rgba(57,255,20,.45);background:rgba(0,0,0,.96);box-shadow:0 16px 40px rgba(0,0,0,.58)}.mobile-sim-menu a{min-height:44px;display:flex;align-items:center;border:1px solid rgba(57,255,20,.18);padding:0 12px;color:#9dff86;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.08em}.mobile-sim-map{position:absolute;inset:calc(54px + env(safe-area-inset-top)) 0 calc(88px + env(safe-area-inset-bottom));overflow:hidden;background:#08110b}.mobile-map-loading{position:absolute;inset:0;display:grid;place-items:center;background:#020307;color:var(--sim-green);font:700 .75rem/1 var(--font-geist-mono),monospace;letter-spacing:.1em}.mobile-map-status{position:absolute;z-index:20;top:10px;left:10px;display:flex;align-items:center;gap:8px;min-height:32px;padding:0 9px;border:1px solid rgba(57,255,20,.38);background:rgba(0,0,0,.78);color:#9dff86;backdrop-filter:blur(8px)}.mobile-map-status span{font-size:.59rem;font-weight:800;letter-spacing:.1em}.mobile-map-status strong{border-left:1px solid rgba(57,255,20,.24);padding-left:8px;color:var(--sim-yellow);font-size:.68rem}.mobile-action-dock{position:absolute;z-index:40;inset:auto 0 0;min-height:calc(88px + env(safe-area-inset-bottom));padding:8px 8px calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1.15fr 1fr 78px;gap:6px;border-top:1px solid rgba(57,255,20,.35);background:rgba(2,3,7,.96);box-shadow:0 -12px 30px rgba(0,0,0,.38);backdrop-filter:blur(14px)}.mobile-action-dock.simulation-live{grid-template-columns:1.05fr .95fr .75fr 68px}.mobile-action-dock>button{min-width:0;min-height:64px;border:1px solid rgba(57,255,20,.28);background:#020a04;color:#9dff86;padding:8px;font:inherit;text-align:left}.mobile-action-dock button small,.mobile-action-dock button span{display:block;color:var(--sim-blue);font-size:.55rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.mobile-action-dock button strong{display:block;margin-top:5px;overflow:hidden;color:var(--sim-green);font-size:.69rem;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.mobile-action-dock button small{margin-top:3px;color:var(--sim-yellow)}.mobile-action-dock .dock-results{position:relative;overflow:hidden;border-color:rgba(103,214,255,.44);background:#031018;text-align:center}.mobile-action-dock .dock-results.result-ready{animation:results-ready-glow .9s ease-in-out 3 alternate}.mobile-action-dock .dock-results.result-ready:after{position:absolute;inset:-30% auto -30% -55%;width:42%;content:"";background:linear-gradient(90deg,transparent,rgba(190,240,255,.78),transparent);transform:skewX(-18deg);animation:results-ready-shine .85s ease-out 3;pointer-events:none}@keyframes results-ready-glow{0%{border-color:rgba(103,214,255,.44);box-shadow:0 0 0 rgba(103,214,255,0)}to{border-color:rgba(190,240,255,.95);box-shadow:0 0 18px rgba(103,214,255,.72),inset 0 0 12px rgba(103,214,255,.18)}}@keyframes results-ready-shine{0%{left:-55%}to{left:125%}}.mobile-action-dock .dock-detonate{border-color:rgba(251,65,88,.8);background:linear-gradient(180deg,#59101c,#28070d);color:#fff;text-align:center;box-shadow:inset 0 0 18px rgba(251,65,88,.15)}.mobile-action-dock .dock-detonate span{color:#fff;font-size:.56rem}.mobile-action-dock .dock-detonate strong{color:#fff;font-size:1.35rem;line-height:1}.mobile-action-dock .dock-detonate.active{border-color:rgba(103,214,255,.72);background:#031018}.mobile-bottom-sheet{position:absolute;z-index:35;right:0;bottom:calc(88px + env(safe-area-inset-bottom));left:0;display:flex;flex-direction:column;border:1px solid rgba(57,255,20,.42);border-bottom:0;background:rgba(1,5,3,.985);box-shadow:0 -20px 48px rgba(0,0,0,.58);transition:height .18s ease;backdrop-filter:blur(18px);will-change:height}.mobile-bottom-sheet.is-dragging{transition:none;user-select:none}.mobile-bottom-sheet.sheet-half{height:min(53dvh,500px)}.mobile-bottom-sheet.sheet-full{height:calc(100dvh - 64px - 88px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.mobile-sheet-handle{min-height:44px;flex:0 0 44px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;border-bottom:1px solid rgba(57,255,20,.15);background:transparent;touch-action:none}.mobile-sheet-handle span{width:44px;height:4px;border-radius:999px;background:rgba(157,255,134,.55)}.mobile-sheet-handle small{color:rgba(157,255,134,.7);font:800 .5rem/1 var(--font-geist-mono),monospace;letter-spacing:.14em}.mobile-ring-hint{position:absolute;z-index:20;right:10px;bottom:10px;left:10px;max-width:340px;margin:0 auto;border:1px solid rgba(103,214,255,.55);background:rgba(3,16,24,.9);color:#bae6fd;padding:8px 10px;font-size:.62rem;line-height:1.35;pointer-events:none;backdrop-filter:blur(8px)}.mobile-ring-hint span,.mobile-ring-hint strong{display:block}.mobile-ring-hint strong{margin-bottom:2px;color:var(--sim-blue);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase}.mobile-sheet-titlebar{min-height:54px;flex:0 0 54px;display:flex;align-items:center;justify-content:space-between;padding:6px 12px 8px;border-bottom:1px solid rgba(57,255,20,.2)}.mobile-sheet-titlebar div{min-width:0}.mobile-sheet-titlebar span,.mobile-sheet-titlebar strong{display:block}.mobile-sheet-titlebar span{color:var(--sim-blue);font-size:.6rem;font-weight:900;letter-spacing:.13em}.mobile-sheet-titlebar strong{margin-top:3px;overflow:hidden;color:var(--sim-green);font-size:.87rem;text-overflow:ellipsis;white-space:nowrap}.mobile-sheet-titlebar>button{width:44px;height:44px;border:1px solid rgba(57,255,20,.25);background:#020a04;color:#9dff86;font:700 1.3rem/1 var(--font-geist-mono),monospace}.mobile-sheet-scroll{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:12px;scrollbar-color:rgba(57,255,20,.35) transparent;scrollbar-width:thin}.mobile-field-label{display:block;margin-bottom:7px;color:var(--sim-blue);font-size:.64rem;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.mobile-controls-panel select,.mobile-search-form input{width:100%;min-height:48px;border:1px solid rgba(57,255,20,.4);border-radius:0;outline:none;background:#000;color:var(--sim-green);padding:0 12px;font:700 .82rem/1 var(--font-geist-mono),monospace}.mobile-controls-panel select:focus,.mobile-search-form input:focus{border-color:var(--sim-blue);box-shadow:0 0 0 2px rgba(103,214,255,.16)}.mobile-panel-note,.mobile-results-disclaimer,.mobile-weapon-description{color:#9dff86;font-size:.72rem;line-height:1.45}.mobile-weapon-description{margin:9px 0 14px}.mobile-advanced-toggle{width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;border:1px solid rgba(103,214,255,.34);background:#031018;color:var(--sim-blue);padding:0 12px;font:800 .72rem/1 var(--font-geist-mono),monospace;letter-spacing:.06em;text-transform:uppercase}.mobile-advanced-settings{display:grid;gap:10px;margin-top:10px}.mobile-setting-group{display:grid;gap:9px;border:1px solid rgba(57,255,20,.2);background:#020703;padding:11px}.mobile-switch-row{min-height:44px;display:flex;align-items:center;gap:10px;color:#9dff86;font-size:.76rem;text-transform:capitalize}.mobile-switch-row input{width:20px;height:20px;accent-color:#0ea5e9}.mobile-range-field{display:grid;gap:6px;margin:10px 0;color:#9dff86;font-size:.72rem}.mobile-range-field span{display:flex;justify-content:space-between}.mobile-range-field strong{color:var(--sim-yellow)}.mobile-range-field input{min-height:44px;width:100%;accent-color:#0ea5e9}.mobile-search-form label{display:block;margin-bottom:7px;color:var(--sim-blue);font-size:.7rem;font-weight:800}.mobile-search-form>div{display:grid;grid-template-columns:1fr auto}.mobile-search-form button{min-width:78px;border:1px solid rgba(103,214,255,.65);background:#031018;color:var(--sim-blue);font:800 .68rem/1 var(--font-geist-mono),monospace;text-transform:uppercase}.mobile-location-button{width:100%;min-height:58px;display:flex;align-items:center;gap:11px;margin-top:10px;border:1px solid rgba(250,204,21,.42);background:#151003;color:#fde68a;padding:8px 11px;font:inherit;text-align:left}.mobile-location-button>span:first-child{font-size:1.45rem}.mobile-location-button small,.mobile-location-button strong{display:block}.mobile-location-button strong{font-size:.77rem}.mobile-location-button small{margin-top:4px;color:#d6c98a;font-size:.62rem}.mobile-inline-status{margin:10px 0 0;border-left:2px solid var(--sim-yellow);background:rgba(250,204,21,.08);color:#fde68a;padding:8px 10px;font-size:.68rem;line-height:1.4}.mobile-search-results{display:grid;gap:5px;margin-top:10px}.mobile-search-results button{min-height:46px;border:1px solid rgba(57,255,20,.22);background:#020703;color:#9dff86;padding:8px 10px;font:700 .69rem/1.3 var(--font-geist-mono),monospace;text-align:left}.mobile-results-summary{display:grid;grid-template-columns:1fr 1fr;gap:7px}.mobile-results-summary>div{min-width:0;border:1px solid rgba(57,255,20,.2);background:#020703;padding:9px}.mobile-results-summary span,.mobile-results-summary strong{display:block}.mobile-results-summary span{color:var(--sim-blue);font-size:.56rem;font-weight:800;letter-spacing:.07em;text-transform:uppercase}.mobile-results-summary strong{margin-top:5px;overflow:hidden;color:var(--sim-green);font-size:.83rem;text-overflow:ellipsis;white-space:nowrap}.mobile-results-actions{display:grid;grid-template-columns:1fr auto;gap:7px;margin:9px 0}.mobile-results-actions>button{min-width:72px;min-height:48px;border:1px solid rgba(103,214,255,.42);background:#031018;color:var(--sim-blue);font:800 .69rem/1 var(--font-geist-mono),monospace;text-transform:uppercase}.mobile-results-map-tip{margin:0 0 9px;border-left:2px solid var(--sim-blue);background:rgba(3,16,24,.8);color:#bae6fd;padding:8px 10px;font-size:.62rem;line-height:1.4}.mobile-results-map-tip strong{display:block;margin-bottom:2px;color:var(--sim-blue);font-size:.56rem;letter-spacing:.08em;text-transform:uppercase}.mobile-segmented{display:grid;gap:5px}.mobile-segmented,.mobile-segmented.four-up{grid-template-columns:repeat(2,1fr)}.mobile-segmented button{min-height:44px;border:1px solid rgba(57,255,20,.24);background:#000;color:#9dff86;font:700 .65rem/1 var(--font-geist-mono),monospace;text-transform:capitalize}.mobile-segmented button.active{border-color:rgba(103,214,255,.8);background:#031018;color:var(--sim-blue)}.mobile-zone-list{display:grid;gap:6px;margin-top:9px}.mobile-zone-list article{border:1px solid rgba(57,255,20,.2);background:#020703}.mobile-zone-list article.active{border-color:rgba(103,214,255,.72)}.mobile-zone-row{width:100%;min-height:58px;display:grid;grid-template-columns:8px minmax(0,1fr) auto 20px;align-items:center;gap:8px;border:0;background:transparent;color:#9dff86;padding:8px 9px;font:inherit;text-align:left}.mobile-zone-row i{width:8px;height:34px}.mobile-zone-row small,.mobile-zone-row strong{display:block}.mobile-zone-row strong{color:var(--sim-green);font-size:.7rem}.mobile-zone-row small{margin-top:4px;color:#7fcf70;font-size:.59rem;line-height:1.2}.mobile-zone-row b{color:var(--sim-yellow);font-size:.68rem;white-space:nowrap}.mobile-zone-row em{color:var(--sim-blue);font-size:1rem;font-style:normal;text-align:center}.mobile-zone-details{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;padding:0 9px 9px 25px}.mobile-zone-details span,.mobile-zone-details strong{display:block}.mobile-zone-details span{color:var(--sim-blue);font-size:.54rem}.mobile-zone-details strong{margin-top:4px;color:#9dff86;font-size:.65rem}.mobile-results-disclaimer{margin:10px 0 3px;color:#78ad72;font-size:.59rem}.mobile-coachmark{position:absolute;z-index:50;right:10px;bottom:calc(99px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:10px;min-height:42px;border:1px solid rgba(250,204,21,.68);background:rgba(21,16,3,.96);color:#fde68a;padding:7px 8px 7px 11px;box-shadow:0 12px 32px rgba(0,0,0,.5)}.mobile-coachmark:after{content:"";position:absolute;right:26px;bottom:-7px;width:12px;height:12px;border-right:1px solid rgba(250,204,21,.68);border-bottom:1px solid rgba(250,204,21,.68);background:#151003;transform:rotate(45deg)}.mobile-coachmark span{font-size:.68rem;font-weight:900;letter-spacing:.06em;text-transform:uppercase}.mobile-coachmark button{min-width:44px;min-height:44px;border:1px solid rgba(250,204,21,.36);background:transparent;color:#d6c98a;font:700 .61rem/1 var(--font-geist-mono),monospace;text-transform:uppercase}.mobile-coachmark.coachmark-target{right:auto;left:10px}.mobile-coachmark.coachmark-target:after{right:auto;left:38px}.mobile-coachmark.coachmark-weapon{right:82px}@media (max-width:370px){.mobile-sim-live{display:none}.mobile-sim-bar{grid-template-columns:1fr auto}.mobile-action-dock{grid-template-columns:1.15fr .9fr 70px}.mobile-action-dock.simulation-live{grid-template-columns:1fr .9fr .7fr 62px}.mobile-action-dock>button{padding:6px}.mobile-action-dock button strong{font-size:.62rem}}@media (prefers-reduced-motion:reduce){.mobile-bottom-sheet{transition:none}.mobile-action-dock .dock-results.result-ready,.mobile-action-dock .dock-results.result-ready:after{animation:none}.mobile-simulator-shell *{scroll-behavior:auto!important}}@media (min-width:768px){.mobile-simulator-shell{display:none}}