:root{--bg:#0a0f0a;--panel:#10160f;--panel2:#161e14;--line:#26321f;--amber:#ffb224;--amber-dim:#8a5f13;--green:#5dd66a;--green-dim:#274a2c;--red:#ff5252;--text:#e7f0e2;--muted:#9fb39a;--radius:14px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;-webkit-text-size-adjust:100%}#root{min-height:100%}button{font-family:inherit}.wrap{max-width:560px;margin:0 auto;padding:16px 16px calc(24px + env(safe-area-inset-bottom))}.brand{font-size:12px;letter-spacing:3px;color:var(--amber);text-transform:uppercase}.brand small{display:block;color:var(--muted);letter-spacing:1px;font-size:10px;margin-top:2px}.h-title{font-size:22px;font-weight:800;letter-spacing:1px;margin:6px 0 2px}.h-sub{color:var(--muted);font-size:12px;margin-bottom:18px}.code-display{display:flex;gap:12px;justify-content:center;margin:22px 0 8px}.code-cell{width:58px;height:72px;border:2px solid var(--line);border-radius:var(--radius);background:var(--panel);display:flex;align-items:center;justify-content:center;font-size:34px;font-weight:800;color:var(--amber)}.code-cell.on{border-color:var(--amber);background:var(--panel2);box-shadow:0 0 0 2px #ffb22426}.keypad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:10px}.key{height:72px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);color:var(--text);font-size:26px;font-weight:700;cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}.key:active{transform:scale(.96);background:var(--panel2)}.key.action{background:var(--green-dim);border-color:var(--green);color:var(--green)}.key.danger{background:#3a1414;border-color:var(--red);color:var(--red)}.err{color:var(--red);text-align:center;margin:10px 0;min-height:18px;font-size:13px}.hint{color:var(--muted);text-align:center;font-size:11px;margin-top:14px;line-height:1.5}.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:6px}.tile{border:1px solid var(--line);background:var(--panel);border-radius:var(--radius);min-height:96px;padding:16px;cursor:pointer;display:flex;flex-direction:column;justify-content:space-between;touch-action:manipulation;-webkit-user-select:none;user-select:none}.tile:active{transform:scale(.97);background:var(--panel2)}.tile .t-ic{font-size:26px}.tile .t-lb{font-size:15px;font-weight:700;margin-top:8px;letter-spacing:.5px}.tile .t-sub{font-size:10px;color:var(--muted);margin-top:2px}.tile.wide{grid-column:1 / -1;min-height:80px}.card{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:14px}.card h3{margin:0 0 10px;font-size:14px;letter-spacing:1px;color:var(--amber)}.row{display:flex;justify-content:space-between;gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}.row:last-child{border-bottom:none}.row .k{color:var(--muted)}.schedrow{display:flex;gap:12px;padding:9px 0;border-bottom:1px solid var(--line);font-size:13px;align-items:baseline}.schedrow:last-child{border-bottom:none}.schedt{flex:0 0 88px;color:var(--muted);font-variant-numeric:tabular-nums;font-family:ui-monospace,monospace;font-size:12px;white-space:nowrap}.schedd{flex:1;min-width:0;color:var(--fg)}.topclock{position:fixed;top:0;left:0;right:0;z-index:2500;display:flex;align-items:center;justify-content:center;gap:12px;padding:calc(4px + env(safe-area-inset-top)) 12px 6px;background:#0a0c0aeb;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);border-bottom:1px solid var(--line);font-family:ui-monospace,monospace}.topclock .tc-t{font-size:22px;font-weight:800;letter-spacing:3px;color:var(--amber);font-variant-numeric:tabular-nums}.topclock .tc-z{font-size:10px;color:var(--muted);letter-spacing:1px}.topclock .tc-aod{margin-left:auto;display:flex;align-items:center;gap:6px;font-size:10px;color:var(--muted);letter-spacing:1px;cursor:pointer}.topclock .tc-aod.on{color:var(--amber)}.tgl{width:34px;height:20px;border-radius:999px;background:#222;border:1px solid var(--line);position:relative;transition:.15s}.tgl:after{content:"";position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#666;transition:.15s}.tc-aod.on .tgl{background:#ffab4040;border-color:var(--amber)}.tc-aod.on .tgl:after{left:16px;background:var(--amber)}body{padding-top:0}.wrap{padding-top:calc(46px + env(safe-area-inset-top))!important}.tag{display:inline-block;font-size:10px;padding:3px 8px;border-radius:20px;border:1px solid var(--line);color:var(--muted);margin-right:6px;margin-top:6px;letter-spacing:.5px}.tag.amber{border-color:var(--amber-dim);color:var(--amber)}.tag.green{border-color:var(--green-dim);color:var(--green)}label{display:block;font-size:11px;color:var(--muted);letter-spacing:1px;margin:14px 0 6px;text-transform:uppercase}input,select,textarea{width:100%;background:var(--panel2);border:1px solid var(--line);border-radius:10px;color:var(--text);padding:14px;font-size:16px;font-family:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--amber)}textarea{min-height:80px;resize:vertical}.switch{display:flex;align-items:center;justify-content:space-between;padding:14px;background:var(--panel2);border:1px solid var(--line);border-radius:10px;margin-top:6px}.switch .st{font-size:12px;color:var(--muted)}.pill{width:56px;height:32px;border-radius:20px;background:#2a1a1a;border:1px solid var(--line);position:relative;cursor:pointer;transition:background .15s}.pill.on{background:var(--green-dim)}.pill:after{content:"";position:absolute;top:3px;left:3px;width:24px;height:24px;border-radius:50%;background:var(--muted);transition:left .15s,background .15s}.pill.on:after{left:27px;background:var(--green)}.btn{display:block;width:100%;padding:18px;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel2);color:var(--text);font-size:16px;font-weight:700;letter-spacing:1px;cursor:pointer;text-align:center;touch-action:manipulation;-webkit-user-select:none;user-select:none}.btn:active{transform:scale(.98)}.btn.primary{background:var(--green-dim);border-color:var(--green);color:var(--green)}.btn.amber{background:#3a2a0a;border-color:var(--amber-dim);color:var(--amber)}.btn.ghost{background:transparent;color:var(--muted)}.btn.sm{padding:12px;font-size:13px}.btnrow{display:flex;gap:12px;margin-top:16px}.brief{white-space:pre-wrap;line-height:1.7;font-size:14px;color:var(--text)}.brief-loading{color:var(--amber);font-size:13px;animation:pulse 1.2s infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.meta{font-size:10px;color:var(--muted);margin-top:10px}.el-LONG-GUN{--el:#ffb224}.el-HAMMER{--el:#ff6b6b}.el-VIPER{--el:#5dd66a}.el-ANVIL{--el:#6bb8ff}.elbadge{display:inline-block;font-size:10px;padding:3px 9px;border-radius:6px;font-weight:800;letter-spacing:1px;background:color-mix(in srgb,var(--el) 18%,transparent);color:var(--el);border:1px solid var(--el)}.roster-el{font-size:12px;letter-spacing:2px;margin:18px 0 8px;font-weight:800}.pcard{background:var(--panel);border:1px solid var(--line);border-left:4px solid var(--el,var(--line));border-radius:12px;padding:12px 14px;margin-bottom:10px}.pcard .nm{font-size:16px;font-weight:800}.pcard .rl{font-size:11px;color:var(--muted);margin-top:2px}.pcard .kit{font-size:12px;margin-top:6px;color:var(--text)}.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;position:relative}.topbar .brand{position:absolute;left:50%;transform:translate(-50%);text-align:center;pointer-events:none;max-width:70vw;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.back{background:none;border:none;color:var(--amber);font-size:22px;cursor:pointer;padding:4px 8px}.center{text-align:center}.spin{margin:40px auto;text-align:center;color:var(--amber)}.foot{color:var(--muted);font-size:10px;text-align:center;margin-top:24px;letter-spacing:1px}.ptt{margin:16px 0 4px;height:160px;border-radius:20px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;letter-spacing:1px;-webkit-user-select:none;user-select:none;touch-action:none;cursor:pointer;background:var(--panel);border:2px solid var(--green-dim);color:var(--green);box-shadow:0 0 #5dd66a00;transition:all .12s}.ptt.tx{background:#3a1414;border-color:var(--red);color:var(--red);box-shadow:0 0 40px #ff525259}.ptt:active{transform:scale(.98)}.btn.danger-big{background:#3a1414;border-color:var(--red);color:var(--red);padding:22px;font-size:18px}.leaflet-container{background:#0a0f0a;font-family:inherit}.lbl{background:#0a0f0ad9;border:1px solid var(--line);color:var(--text);font-size:10px;padding:2px 6px;border-radius:6px;box-shadow:none;letter-spacing:.5px}.lbl:before{display:none}.leaflet-control-zoom a{background:var(--panel);color:var(--text);border:1px solid var(--line)!important}.leaflet-control-zoom{border:none!important}.advb{position:fixed;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:2000;max-width:92vw;display:flex;align-items:center;gap:10px;cursor:pointer;background:#2a1f05;border:2px solid var(--amber);border-radius:14px;padding:12px 16px;box-shadow:0 6px 30px #ffb22459;animation:advIn .25s ease}.advb-ic{font-size:22px}.advb-tx{color:var(--amber);font-size:14px;font-weight:700;line-height:1.4}@keyframes advIn{0%{opacity:0;transform:translate(-50%) translateY(-16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.chk{display:flex;align-items:center;gap:12px;padding:13px 4px;border-bottom:1px solid var(--line);cursor:pointer;-webkit-user-select:none;user-select:none;touch-action:manipulation}.chk:last-child{border-bottom:none}.chk:active{background:var(--panel2)}.chkbox{width:32px;height:32px;min-width:32px;border:2px solid var(--line);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:#000;transition:all .12s}.chkbox.on{background:var(--green);border-color:var(--green)}.chklbl{font-size:15px}.chklbl.done{color:var(--muted);text-decoration:line-through}.breachb{position:fixed;top:calc(10px + env(safe-area-inset-top));left:50%;transform:translate(-50%);z-index:3000;max-width:94vw;display:flex;align-items:center;gap:10px;cursor:pointer;background:#4a0d0d;border:3px solid var(--red);border-radius:14px;padding:16px 18px;box-shadow:0 0 40px #ff525299;animation:breachFlash .5s infinite}.breachb-tx{color:#ffd7d7;font-size:15px;font-weight:800;line-height:1.35}@keyframes breachFlash{0%,to{box-shadow:0 0 40px #ff525299}50%{box-shadow:0 0 12px #ff525233}}.aifab{position:fixed;right:16px;bottom:calc(84px + env(safe-area-inset-bottom));z-index:2600;width:60px;height:60px;border-radius:50%;border:2px solid var(--amber);background:radial-gradient(circle at 35% 30%,#2a2416,#141410);color:#fff;font-size:26px;box-shadow:0 4px 18px #0009,0 0 16px #ffab4040;cursor:pointer;transition:transform .15s,box-shadow .15s;display:flex;align-items:center;justify-content:center}.aifab:active{transform:scale(.92)}.aifab{animation:fabPulse 3s ease-in-out infinite}@keyframes fabPulse{0%,to{box-shadow:0 4px 18px #0009,0 0 10px #ffab4033}50%{box-shadow:0 4px 18px #0009,0 0 22px #ffab4080}}.aipanel{position:fixed;left:0;right:0;bottom:0;z-index:2550;max-width:560px;margin:0 auto;height:min(70dvh,600px);background:var(--panel,#101410);border:1px solid var(--line);border-bottom:none;border-radius:18px 18px 0 0;display:flex;flex-direction:column;box-shadow:0 -8px 40px #000000b3;animation:slideUp .22s ease-out}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.aipanel-h{padding:12px 16px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:2px}.aipanel-t{font-weight:800;letter-spacing:1px;color:var(--amber);font-size:14px}.aipanel-s{font-size:11px;color:var(--muted)}.ailist{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.aihint{color:var(--muted);font-size:13px;text-align:center;margin-top:20px;line-height:1.6}.aimsg{max-width:85%;padding:10px 12px;border-radius:12px;font-size:14px;line-height:1.45;animation:msgIn .18s ease-out}@keyframes msgIn{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.aimsg.me{align-self:flex-end;background:#1d3a24;border:1px solid #2c5a37;border-bottom-right-radius:3px}.aimsg.ai{align-self:flex-start;background:#1a1a12;border:1px solid var(--amber);border-bottom-left-radius:3px}.aitag{display:block;font-size:9px;letter-spacing:1px;color:var(--amber);margin-bottom:3px;font-weight:700}.aidots{display:flex;gap:4px;padding:4px 0}.aidots span{width:7px;height:7px;border-radius:50%;background:var(--amber);animation:bounce 1.2s infinite}.aidots span:nth-child(2){animation-delay:.15s}.aidots span:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}.aiinput{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);padding-bottom:calc(12px + env(safe-area-inset-bottom))}.aiinput input{flex:1;background:#0c0f0c;border:1px solid var(--line);border-radius:10px;padding:12px;color:var(--fg);font-size:15px;outline:none}.aiinput input:focus{border-color:var(--amber)}.aimic{width:50px;border-radius:10px;border:1px solid var(--line);background:#141a14;font-size:20px;cursor:pointer;transition:.15s}.aimic.on{background:#4a0d0d;border-color:var(--red);animation:breachFlash 1s infinite}.aisend{width:50px;border-radius:10px;border:1px solid var(--amber);background:#2a2416;color:var(--amber);font-size:18px;cursor:pointer;transition:.15s}.aisend:active{transform:scale(.94)}.card,.tile,.btn,.key{transition:background .15s,border-color .15s,box-shadow .15s,transform .1s}.tile:hover{border-color:var(--amber-dim)}.btn{transition:background .15s,border-color .15s,transform .1s,box-shadow .15s}.btn:hover{filter:brightness(1.08)}.btn:active{transform:scale(.97)}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.wrap>*{animation:fadeUp .25s ease-out}.card{animation:fadeUp .3s ease-out}.gsbanner{position:relative;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);background:var(--panel);padding:14px 16px;text-align:center;margin-bottom:14px}.gsbanner .gs-mode{font-size:13px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;font-weight:700}.gsbanner .gs-time{font-size:46px;font-weight:800;letter-spacing:3px;color:var(--amber);font-variant-numeric:tabular-nums;line-height:1.05;margin:4px 0}.gsbanner .gs-alive{font-size:12px;color:var(--muted);letter-spacing:1px}.gsbanner.live{border-color:var(--green);box-shadow:0 0 18px #5dd66a26}.gsbanner.live .gs-mode{color:var(--green)}.gsbanner.live:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,transparent,var(--green),transparent);animation:scanline 2.4s linear infinite}@keyframes scanline{0%{transform:translate(-100%)}to{transform:translate(100%)}}.gsbanner.ending .gs-time{color:var(--red);animation:timeblink 1s steps(2) infinite}@keyframes timeblink{50%{opacity:.5}}.gsbanner.idle .gs-time{color:var(--muted);font-size:30px;letter-spacing:2px}.gs-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--muted);margin-right:6px;vertical-align:middle}.gsbanner.live .gs-dot{background:var(--green);animation:pulsedot 1.6s ease-in-out infinite}@keyframes pulsedot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}body{background:radial-gradient(1200px 700px at 50% -10%,#10170f 0%,var(--bg) 55%)}.wrap{position:relative;z-index:1}.wrap{padding-bottom:calc(120px + env(safe-area-inset-bottom))!important}#root:after{content:"";position:fixed;left:0;right:0;bottom:0;height:130px;pointer-events:none;z-index:5;background:linear-gradient(to top,rgba(6,9,6,.85),transparent)}.card,.pcard,.gsbanner{box-shadow:0 2px 10px #00000047,inset 0 1px #ffffff08;background:linear-gradient(180deg,#ffffff05,#0000),var(--panel)}.card:hover{border-color:var(--amber-dim)}.pcard{transition:transform .12s ease,border-color .15s ease}.pcard:hover{transform:translateY(-1px)}.tile{box-shadow:0 2px 8px #00000040;transition:transform .12s ease,border-color .15s ease,box-shadow .2s ease,background .15s}.tile:hover{border-color:var(--amber-dim);box-shadow:0 4px 16px #00000059}.tile:active{transform:scale(.965)}input,select,textarea{transition:border-color .15s ease,box-shadow .2s ease}input:focus,select:focus,textarea:focus{box-shadow:0 0 0 3px #ffab4026}.btn{box-shadow:0 2px 8px #0000004d;transition:transform .1s ease,box-shadow .2s ease,background .15s,border-color .15s}.btn:hover{box-shadow:0 4px 14px #0006}.btn:active{transform:translateY(1px) scale(.985)}.btn.primary{box-shadow:0 2px 10px #5dd66a33}.btn.amber{box-shadow:0 2px 10px #ffab4026}.row,.schedrow{border-bottom-color:#26321f99}.gsbanner .gs-time{transition:color .3s ease}.crest{display:block;object-fit:contain;filter:drop-shadow(0 2px 6px rgba(0,0,0,.6))}.crest-hero{width:150px;height:150px;margin:0 auto 14px;animation:crestIn .6s cubic-bezier(.2,.8,.3,1)}@keyframes crestIn{0%{opacity:0;transform:scale(.6) rotate(-8deg)}to{opacity:1;transform:scale(1) rotate(0)}}.crest-sm{width:44px;height:44px;flex:0 0 auto}.crest-xs{width:34px;height:34px;flex:0 0 auto}.fieldroot{display:flex;flex-direction:column;height:calc(100dvh - 54px - env(safe-area-inset-top))}.fieldroot .topbar{margin-bottom:8px}.fieldbody{position:relative;flex:1;display:flex;min-height:0;gap:8px}.fieldbody.port{flex-direction:column}.fieldbody.land{flex-direction:row}.ctl{flex:1;min-height:0;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.ctl>*{flex-shrink:0}.gschip{position:absolute;top:8px;left:8px;z-index:800;background:#0a0f0ae0;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:11px;font-weight:700;letter-spacing:1px;color:var(--muted);font-variant-numeric:tabular-nums;pointer-events:none}.gschip.live{border-color:var(--green);color:var(--green)}.gschip.live .gs-dot{background:var(--green);animation:pulsedot 1.6s ease-in-out infinite}.gschip.ending{color:var(--red);border-color:var(--red)}.txchip{position:absolute;top:44px;left:8px;z-index:800;display:flex;align-items:center;gap:8px;background:#0a0f0ae6;border:1px solid var(--amber);border-radius:999px;padding:6px 12px;font-size:12px;font-weight:800;letter-spacing:1px;color:var(--amber);pointer-events:none;box-shadow:0 0 16px #ffb22440;animation:txIn .18s ease}@keyframes txIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.txchip.me{border-color:var(--red);color:var(--red);box-shadow:0 0 16px #ff52524d}.txdot{width:9px;height:9px;border-radius:50%;background:var(--amber);animation:pulsedot .9s ease-in-out infinite}.txchip.me .txdot{background:var(--red)}.txchip.bcast{border-color:var(--amber);color:#ffd27a;box-shadow:0 0 18px #ffb22466}.txchip.bcast .txdot{background:var(--amber)}.chsel{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.chbtn{background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:10px;padding:15px 4px;font-size:15px;font-weight:800;letter-spacing:1px;cursor:pointer;text-align:center;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:all .12s}.chbtn:active{transform:scale(.96)}.chbtn.on{background:var(--green-dim);border-color:var(--green);color:var(--green);box-shadow:0 0 12px #5dd66a33}.bcastbig{margin:0;height:88px;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:19px;font-weight:800;letter-spacing:1px;-webkit-user-select:none;user-select:none;touch-action:none;cursor:pointer;background:#2a1f05;border:2px solid var(--amber-dim);color:var(--amber);transition:all .12s}.fieldbody.land .bcastbig{height:84px;font-size:18px}.bcastbig.tx{background:#3a2a0a;border-color:var(--amber);color:#ffd27a;box-shadow:0 0 40px #ffb22466}.bcastbig:active{transform:scale(.98)}.pttbig.tail{animation:tailFade 1s linear forwards}@keyframes tailFade{0%{opacity:1}to{opacity:.55}}.bnd-alert{position:absolute;left:50%;transform:translate(-50%);top:calc(100px + env(safe-area-inset-top));z-index:1200;color:#000;text-align:center;font-weight:800;padding:8px 14px;font-size:13px;border-radius:10px;max-width:92vw;box-shadow:0 4px 18px #00000080}.mapbackdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1400;background:#0000008c;animation:fadeIn .16s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.mapdrawer{position:fixed;top:calc(46px + env(safe-area-inset-top));right:0;bottom:0;z-index:1500;width:94vw;max-width:520px;display:flex;flex-direction:column;background:var(--panel);border-left:2px solid var(--amber-dim);transform:translate(101%);transition:transform .22s ease-out;box-shadow:-10px 0 30px #0009}.mapdrawer.open{transform:translate(0)}.mapbar{display:flex;align-items:center;gap:10px;padding:8px 10px;border-bottom:1px solid var(--line);flex-shrink:0}.maptitle{flex:1;font-size:13px;font-weight:800;letter-spacing:1px;color:var(--amber)}.maptitle{min-width:0}.maptitle small{display:block;font-weight:600;letter-spacing:0;color:var(--muted);font-size:10.5px;margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.maphint{position:absolute;left:50%;transform:translate(-58%);bottom:10px;z-index:800;pointer-events:none;background:#0a0f0adb;border:1px solid var(--line);border-radius:999px;padding:6px 12px;font-size:10.5px;color:var(--muted);letter-spacing:.6px;white-space:nowrap}.mapclose{background:var(--panel2);border:1px solid var(--line);color:var(--text);border-radius:10px;width:40px;height:40px;font-size:17px;cursor:pointer;flex-shrink:0}.mapwrap{position:relative;flex:1;min-height:0;overflow:hidden;touch-action:pan-x pan-y}.mapcanvas{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0f0a}.radialwrap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1600}.radial{position:absolute;width:0;height:0}.radialbtn{position:absolute;transform:translate(-50%,-50%);width:62px;height:62px;border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;cursor:pointer;background:#0c120cf5;border:2px solid var(--amber-dim);color:var(--text);box-shadow:0 4px 14px #0009;padding:0}.radialbtn span{font-size:21px;line-height:1}.radialbtn em{font-size:8px;font-style:normal;font-weight:800;letter-spacing:.5px;color:var(--muted)}.radialbtn:active{transform:translate(-50%,-50%) scale(.92);border-color:var(--amber)}.radialcore{position:absolute;transform:translate(-50%,-50%);width:46px;height:46px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--panel2);border:1px solid var(--line);color:var(--muted);font-size:16px;cursor:pointer}.mk{width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:16px;background:#080c08e0;border:2px solid rgba(220,230,220,.75);box-shadow:0 2px 8px #000000a6;cursor:pointer}.mk-enemy{border-color:#ff3b30;box-shadow:0 0 12px #ff3b30d9,0 2px 8px #000000a6;background:#300604e6;animation:mkPulse 1.6s ease-in-out infinite}.mk-enemy span{filter:drop-shadow(0 0 4px #ff3b30)}@keyframes mkPulse{0%,to{box-shadow:0 0 8px #ff3b3080,0 2px 8px #000000a6}50%{box-shadow:0 0 18px #ff3b30f2,0 2px 8px #000000a6}}.mk-dead{border-color:#6b7280;background:#1c1e20d9;box-shadow:0 1px 5px #00000080;animation:none;opacity:.72;filter:grayscale(1)}.mk-dead span{filter:none}.mkconfirm-wrap{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1700;background:#0000009e;display:flex;align-items:center;justify-content:center;padding:18px;animation:fadeIn .14s ease-out}.mkconfirm{width:100%;max-width:270px;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:16px 14px 12px;text-align:center;box-shadow:0 10px 34px #000000b3}.mkconfirm-ic{width:52px;height:52px;margin:0 auto 8px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:26px;background:#080c08e6;border:2px solid rgba(220,230,220,.75)}.mkconfirm-ic.enemy{border-color:#ff3b30;background:#300604e6;box-shadow:0 0 16px #ff3b30b3}.mkconfirm-ic.dead{border-color:#6b7280;background:#1c1e20d9;filter:grayscale(1);opacity:.75}.mkconfirm-t{font-size:13px;font-weight:800;letter-spacing:1px;color:var(--text);margin-bottom:12px}.mkconfirm-t small{display:block;margin-top:3px;font-size:10.5px;font-weight:600;letter-spacing:0;color:var(--muted)}.mkconfirm-btns{display:flex;flex-direction:column;gap:7px}.mkconfirm-btns .btn{width:100%;padding:13px;font-size:13px}.mkconfirm-btns .mkdel{background:#3a0f0c;border-color:#ff3b30;color:#ff8f87}.mkconfirm-btns .mkdel:disabled{opacity:.6}.lockbtn{position:relative;width:44px;height:44px;border-radius:12px;background:var(--panel2);border:1px solid var(--line);color:var(--text);font-size:19px;cursor:pointer;flex-shrink:0;overflow:hidden;display:flex;align-items:center;justify-content:center;touch-action:none;-webkit-user-select:none;user-select:none}.lockbtn.on{background:#2a1f05;border-color:var(--amber);box-shadow:0 0 18px #ffb22459}.lockico{position:relative;z-index:2;pointer-events:none}.lockring{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;border-radius:12px;background:conic-gradient(var(--amber) calc(var(--p) * 360deg),transparent 0)}.lockbanner{position:fixed;left:50%;transform:translate(-50%);z-index:1350;bottom:calc(14px + env(safe-area-inset-bottom));max-width:92vw;padding:8px 14px;border-radius:11px;text-align:center;font-size:11.5px;font-weight:700;letter-spacing:.4px;color:var(--amber);background:#140e02f0;border:1px solid var(--amber);box-shadow:0 4px 16px #0009;animation:advIn .18s ease-out;pointer-events:none}.fieldroot.locked .lockable{pointer-events:none!important;opacity:.42;filter:grayscale(.55)}.fieldroot.locked .pttbig:not(.bcastbig){opacity:1;filter:none}.mapopenbtn{flex:0 0 auto!important}.fieldbody.port .ctl .mainrow{flex:1 1 auto;min-height:150px}.fieldbody.land .ctl .mainrow{flex:1 1 auto;min-height:110px}.fieldbody .ctl .mainrow .pttbig{height:auto}.fieldbody.port .intelrow .btn{padding:17px 6px;font-size:27px}.fieldbody.port .intelrow .btn span{font-size:12px}.mapptt{width:52px;height:40px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:19px;background:#0d2416;border:2px solid var(--green-dim);color:var(--green);cursor:pointer;flex-shrink:0;-webkit-user-select:none;user-select:none;touch-action:none}.mapptt.tx{background:#123a1f;border-color:var(--green);box-shadow:0 0 25px #00ff8c73}body.fn-field .aifab{width:40px;height:40px;font-size:17px;right:14px;bottom:calc(2px + env(safe-area-inset-bottom));animation:none;border-color:var(--line);background:var(--panel2);box-shadow:none}body.fn-map-open .aifab{display:none}body.fn-locked .aifab{opacity:.3;pointer-events:none;filter:grayscale(1)}.drawer{display:none}.drawer>*{flex-shrink:0}.fieldbody.port .drawer{flex-direction:column;max-height:66%;overflow-y:auto}.fieldbody.port .pttbig{height:132px;font-size:21px}.fieldbody.port .hitbtn{font-size:22px}.fieldbody.port .drawer .btn.danger-big{padding:12px 6px;font-size:15px}.fieldbody.land .drawer{flex-direction:column;width:248px;overflow-y:auto}.drawer.closed{display:none}.drawerhandle{align-self:center;background:var(--panel2);border:1px solid var(--line);color:var(--muted);border-radius:8px;padding:4px 14px;font-size:12px;cursor:pointer;letter-spacing:1px}.drawertab{position:absolute;z-index:800;background:var(--panel);border:1px solid var(--amber-dim);color:var(--amber);border-radius:10px;padding:8px 12px;font-size:11px;font-weight:800;letter-spacing:1px;cursor:pointer;box-shadow:0 2px 10px #0006}.fieldbody.port .drawertab{bottom:8px;left:50%;transform:translate(-50%)}.fieldbody.land .drawertab{right:8px;top:50%;transform:translateY(-50%)}.mainrow{display:flex;gap:10px;align-items:stretch}.hitbtn{flex:0 0 34%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:24px;padding:12px 6px;border-radius:16px;margin:0;line-height:1}.hitbtn span{font-size:13px;font-weight:800;letter-spacing:1px}.pttbig{margin:0;flex:1;height:150px;font-size:22px;border-radius:16px}.fieldbody.land .pttbig{height:120px;font-size:19px}.fieldbody.land .mainrow{flex-direction:row}.fieldbody.land .hitbtn{flex:0 0 30%;font-size:18px}.fieldbody.land .chsel .chbtn{padding:10px 2px;font-size:13px}.drawer .btn.danger-big{padding:18px;font-size:17px;border-radius:14px;margin:0}.intelrow{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.intelrow .btn{display:flex;flex-direction:column;align-items:center;gap:2px;font-size:24px;padding:14px 6px;border-radius:12px}.intelrow .btn span{font-size:11px;letter-spacing:1px;font-weight:800}.fieldnote{position:fixed;left:50%;transform:translate(-50%);z-index:1340;pointer-events:none;bottom:calc(14px + env(safe-area-inset-bottom));max-width:92vw;padding:9px 14px;border-radius:11px;font-size:12.5px;font-weight:700;line-height:1.35;text-align:center;border:1px solid var(--green-dim);color:var(--green);background:#04140af2;box-shadow:0 4px 16px #0009;animation:advIn .18s ease-out}.fieldnote.warn{border-color:var(--amber);color:var(--amber);background:#181102f2}.fieldnote.err{border-color:#a33;color:#ff8f8f;background:#1c0606f2}.drawerfoot{display:flex;gap:6px;align-items:center}.drawerfoot .btn{flex:0 0 auto;width:auto;padding:10px 9px;font-size:11px;white-space:nowrap}.drawerfoot .gpstat{flex:1;min-width:0;padding:7px 6px;font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gpstat{font-size:10px;color:var(--muted);background:var(--panel2);border:1px solid var(--line);border-radius:8px;padding:8px 10px;white-space:nowrap}.fieldbody.land .drawerfoot{flex-direction:column;align-items:stretch}.fieldbody.land .gpstat{text-align:center}.wrap.fieldwrap{padding-bottom:0!important;overflow:hidden}.simbanner{position:fixed;left:12px;right:12px;z-index:2400;top:calc(47px + env(safe-area-inset-top));display:flex;align-items:center;justify-content:center;gap:7px;max-width:420px;margin:0 auto;background:#281c00f5;border:1px solid var(--amber);color:var(--amber);border-radius:999px;padding:3px 12px;font-size:9.5px;letter-spacing:.8px;white-space:nowrap;overflow:hidden;box-shadow:0 2px 12px #0009;pointer-events:none}.simbanner b{font-weight:800;flex:0 0 auto}.simbanner-sub{font-weight:600;opacity:.85;overflow:hidden;text-overflow:ellipsis;min-width:0}.simscroll .gpstat,.card .gpstat.wrap{white-space:normal;overflow-wrap:anywhere}.simstats{display:grid;grid-template-columns:1fr 1fr 1fr 1fr;gap:8px;margin-top:4px}.simstat{background:var(--panel2);border:1px solid var(--line);border-radius:10px;padding:9px 5px;text-align:center}.simstat b{display:block;font-size:15px;color:var(--green);font-variant-numeric:tabular-nums}.simstat span{display:block;font-size:8px;letter-spacing:.6px;color:var(--muted);margin-top:2px}body.fn-field.sim-on .fieldwrap{padding-top:20px}body.sim-on .mapdrawer{top:calc(66px + env(safe-area-inset-top))}.simbar{height:7px;background:var(--panel2);border-radius:99px;overflow:hidden;margin-top:5px;border:1px solid var(--line)}.simbar i{display:block;height:100%;background:linear-gradient(90deg,var(--green-dim),var(--green))}.simlog{max-height:340px;overflow-y:auto;margin-top:4px}.simlog-row{display:flex;gap:7px;align-items:flex-start;padding:5px 0;border-bottom:1px solid rgba(255,255,255,.05)}.simlog-t{font-size:9.5px;color:var(--muted);font-variant-numeric:tabular-nums;flex:0 0 62px;padding-top:1px}.simlog-dot{width:7px;height:7px;border-radius:50%;flex:0 0 7px;margin-top:5px}.simlog-x{font-size:11.5px;line-height:1.35;flex:1}.switch{width:46px;height:26px;border-radius:99px;background:var(--panel2);border:1px solid var(--line);position:relative;flex:0 0 46px;transition:background .15s,border-color .15s}.switch i{position:absolute;top:2px;left:2px;width:19px;height:19px;border-radius:50%;background:var(--muted);transition:left .15s,background .15s}.switch.on{background:var(--green-dim);border-color:var(--green)}.switch.on i{left:23px;background:var(--green)}.tour-root{position:fixed;top:0;right:0;bottom:0;left:0;z-index:3000}.tour-dim{position:fixed;background:#000000b8;pointer-events:none;transition:all .18s ease-out}.tour-ring{position:fixed;border:2px solid var(--green);border-radius:14px;pointer-events:none;box-shadow:0 0 22px #00ff8c80,inset 0 0 22px #00ff8c1f;transition:all .18s ease-out}.tour-card{position:fixed;left:12px;right:12px;max-width:420px;margin:0 auto;z-index:3010;background:var(--panel);border:1px solid var(--green);border-radius:14px;padding:14px;box-shadow:0 14px 40px #000c;animation:advIn .18s ease-out}.tour-step{font-size:9.5px;letter-spacing:1.4px;color:var(--green);font-weight:800;margin-bottom:5px}.tour-title{font-size:15px;font-weight:800;letter-spacing:.5px;margin-bottom:6px}.tour-body{font-size:12.5px;line-height:1.5;color:var(--text);opacity:.92}.tour-wait{margin-top:7px;font-size:10.5px;color:var(--amber)}.tour-btns{display:flex;gap:7px;margin-top:12px}.tour-btns .btn{flex:1;padding:11px 6px;font-size:11.5px;width:auto}
