/* ⚔️ Sovereign Seas — Guerra redesign "comando navale" (scoped .warx, gated tester). Fase 1: chrome premium. */
.warx{font-family:'Sora',sans-serif;
  --amber:#e7b24e;--amber-dim:#caa044;--war:#c05a4c;--war-deep:#7e2f28;--steel:#5a93ad;--sage:#6fbf96;
  --wink:#e9eef7;--wink2:#aab8d0;--wink3:#6f7e99;--wline:#1f2c44;--wline2:#28344e;--wpanel:#101827;
  --wd:'Space Grotesk',sans-serif;--wm:'JetBrains Mono',monospace}
.warx .wtop{position:relative;border-radius:14px;overflow:hidden;margin-bottom:12px;box-shadow:0 10px 30px -12px rgba(0,0,0,.6)}
.warx .wgrain{position:absolute;inset:0;pointer-events:none;z-index:5;opacity:.045;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.warx .whud{display:flex;justify-content:space-between;align-items:center;padding:7px 13px 6px;font-family:var(--wm);
  font-size:8.5px;letter-spacing:.1em;color:var(--wink3);background:#0a111c;border-bottom:1px solid var(--wline)}
.warx .whud .dot{display:inline-block;width:5px;height:5px;border-radius:50%;background:var(--sage);margin-right:5px;box-shadow:0 0 6px var(--sage);vertical-align:middle}
.warx .chead{padding:14px 14px 13px;background:linear-gradient(180deg,#101a2e,#0a111c);border-bottom:1px solid var(--wline)}
.warx .chead .top{display:flex;align-items:center;gap:11px}
.warx .chead .flag{font-size:27px;line-height:1}
.warx .chead .nm{font-family:var(--wd);font-size:18px;font-weight:700;letter-spacing:-.01em;color:var(--wink)}
.warx .chead .st{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--war);font-weight:600;margin-top:3px}
.warx .chead .st.peace{color:var(--wink3)}
.warx .chead .st .pd{width:7px;height:7px;border-radius:50%;background:var(--war);animation:wpulse 1.9s infinite}
@keyframes wpulse{0%{box-shadow:0 0 0 0 rgba(192,90,76,.5)}70%{box-shadow:0 0 0 7px rgba(192,90,76,0)}100%{box-shadow:0 0 0 0 rgba(192,90,76,0)}}
.warx .chead .rank{margin-left:auto;text-align:right;flex:none}
.warx .chead .rank .r{font-family:var(--wd);font-size:12.5px;font-weight:600;color:var(--amber)}
.warx .chead .rank .x{font-size:9px;color:var(--wink3);font-family:var(--wm)}
.warx .wmetrics{display:grid;grid-template-columns:repeat(3,1fr);background:#0c1422}
.warx .wmetrics .m{padding:10px 13px;border-right:1px solid var(--wline)}
.warx .wmetrics .m:last-child{border-right:0}
.warx .wmetrics .k{font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--wink3);font-family:var(--wd);font-weight:600}
.warx .wmetrics .v{font-family:var(--wm);font-size:14px;font-weight:600;margin-top:3px;color:var(--wink)}
.warx .wmetrics .v.amber{color:var(--amber)}
.warx .wfront{border-top:1px solid var(--wline);background:var(--wpanel)}
.warx .wfront .fh{display:flex;justify-content:space-between;align-items:center;padding:9px 13px;border-bottom:1px solid var(--wline);font-family:var(--wd);font-size:12px;font-weight:600;color:var(--wink)}
.warx .wfront .fh .t{font-family:var(--wm);font-size:10.5px;color:var(--wink2);font-weight:400}
.warx .wfront .fb{padding:10px 13px}
.warx .wfront .fr{display:flex;justify-content:space-between;align-items:center;margin:3px 0;font-size:12px;font-weight:600;color:var(--wink)}
.warx .wfront .dmg{font-family:var(--wm);font-size:12px;font-weight:600}
.warx .wfront .split{height:6px;border-radius:4px;overflow:hidden;display:flex;margin:8px 0 2px;background:#0a1322}
.warx .wfront .split i{height:100%;transform-origin:left;animation:wgrow .85s .2s both cubic-bezier(.2,.7,.2,1)}
@keyframes wgrow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
.warx .wpeace{padding:12px 13px;background:var(--wpanel);font-size:11px;color:var(--wink2);text-align:center}
/* entrata a cascata */
@keyframes wrise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.warx .wtop{animation:wrise .5s .02s both}

/* ── F2/F3: mappa "sala di guerra" + griglia comando + action sheet (scoped .warx) ── */
.warx .wmaphead{display:flex;align-items:baseline;justify-content:space-between;margin:6px 2px 7px;cursor:pointer}
.warx .wmaphead .tt{font-family:var(--wd);font-size:13px;font-weight:600;color:var(--wink)}
.warx .wmaphead .hint{font-size:9px;color:var(--wink3);font-family:var(--wm)}
.warx .wmaphead .chev{display:inline-block;transition:transform .25s;color:var(--wink3)}
.warx .wmaphead .chev.closed{transform:rotate(-90deg)}
.warx .wmap{position:relative;height:300px;border-radius:14px;border:1px solid var(--wline2);overflow:hidden;touch-action:none;margin-bottom:12px;
  background:radial-gradient(135% 120% at 50% 8%,#15314f,#0b1c30 48%,#070e18);transition:height .3s,opacity .22s,margin .3s,border-color .22s;animation:wrise .5s .1s both}
.warx .wmap.closed{height:0;margin:0;opacity:0;border-color:transparent}
.warx .wmap::before{content:"";position:absolute;inset:0;z-index:10;pointer-events:none;
  background-image:linear-gradient(rgba(122,170,210,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(122,170,210,.05) 1px,transparent 1px);
  background-size:36px 36px;-webkit-mask:radial-gradient(125% 100% at 50% 28%,#000 55%,transparent);mask:radial-gradient(125% 100% at 50% 28%,#000 55%,transparent)}
.warx .wmap svg.world{width:100%;height:100%;display:block;position:relative;z-index:1}
.warx .wmap svg.world path{fill:#162338;stroke:#0a1322;stroke-width:.3;cursor:pointer;transition:fill .14s}
.warx .wmap .me,.warx .wmap .me path{fill:var(--amber-dim)!important;filter:drop-shadow(0 0 5px rgba(231,178,78,.5))}
.warx .wmap .enemy,.warx .wmap .enemy path{fill:#9e463b!important;filter:drop-shadow(0 0 5px rgba(192,90,76,.5))}
.warx .wmap .ally,.warx .wmap .ally path{fill:#3a6f86!important}
.warx .wmap .occ,.warx .wmap .occ path{fill:#356b57!important}
.warx .wmap .bounty,.warx .wmap .bounty path{fill:#4a3a30!important}
.warx .wmap .sel,.warx .wmap .sel path{fill:var(--amber)!important}
.warx .wmap-vig{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 70px 10px rgba(4,8,14,.7);border-radius:14px;z-index:9}
.warx .warfx{position:absolute;inset:0;pointer-events:none;z-index:8}
.warx .warfx line.front{stroke:var(--war);stroke-width:1.6;stroke-dasharray:2 7;stroke-linecap:round;opacity:.85;animation:wdash 1.4s linear infinite;filter:drop-shadow(0 0 3px rgba(192,90,76,.6))}
.warx .warfx line.allyl{stroke:var(--steel);stroke-width:1.1;stroke-dasharray:1 7;opacity:.45;animation:wdash 3.2s linear infinite}
@keyframes wdash{to{stroke-dashoffset:-18}}
.warx .wsweep{position:absolute;z-index:7;pointer-events:none;width:230px;height:230px;border-radius:50%;
  background:conic-gradient(from 0deg,rgba(231,178,78,.18),rgba(231,178,78,.04) 42deg,rgba(231,178,78,0) 80deg);
  -webkit-mask:radial-gradient(circle,#000 68%,transparent 70%);mask:radial-gradient(circle,#000 68%,transparent 70%);
  transform:translate(-50%,-50%);animation:wspin 6s linear infinite;display:none}
@keyframes wspin{to{transform:translate(-50%,-50%) rotate(360deg)}}
.warx .wbadge{position:absolute;transform:translate(-50%,-50%);z-index:12;cursor:pointer;white-space:nowrap;display:flex;flex-direction:column;align-items:center;
  background:rgba(9,14,22,.92);border:1px solid var(--wline2);border-radius:10px;padding:4px 9px;line-height:1.2;box-shadow:0 6px 16px -4px rgba(0,0,0,.6)}
.warx .wbadge .n{font-family:var(--wd);font-size:10px;font-weight:600;color:var(--wink)}
.warx .wbadge .s{font-family:var(--wm);font-size:8px;color:var(--wink2);margin-top:1px}
.warx .wbadge.me{border-color:rgba(231,178,78,.6)} .warx .wbadge.me .n{color:var(--amber)}
.warx .wbadge.enemy{border-color:rgba(192,90,76,.6)} .warx .wbadge.enemy .n{color:#e89b8f}
.warx .wbadge.ally{border-color:rgba(90,147,173,.55)} .warx .wbadge.ally .n{color:#8fc3d8}
.warx .wbadge.occ{border-color:rgba(111,191,150,.5)} .warx .wbadge.occ .n{color:#8fdcb6}
.warx .wmap-ctl{position:absolute;right:9px;bottom:9px;display:flex;flex-direction:column;gap:6px;z-index:14}
.warx .wmap-ctl button{width:32px;height:32px;border-radius:9px;border:1px solid var(--wline2);background:rgba(11,17,26,.85);color:var(--wink);font-family:var(--wd);font-weight:600;cursor:pointer}
.warx .wmap-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:var(--wink3);font-size:12px;z-index:2}
.warx .wmap-tip{position:absolute;z-index:15;transform:translate(-50%,-130%);background:rgba(9,14,22,.96);border:1px solid var(--wline2);border-radius:8px;padding:3px 9px;font-family:var(--wd);font-size:11px;font-weight:600;white-space:nowrap;pointer-events:none;display:none;color:var(--wink)}
.warx .wacts{display:grid;grid-template-columns:1fr 1fr 1fr;gap:9px;margin-bottom:14px}
.warx .wact{background:var(--wpanel);border:1px solid var(--wline);border-radius:13px;padding:13px 8px 11px;cursor:pointer;text-align:center;transition:border-color .15s,transform .08s}
.warx .wact:active{transform:translateY(1px)}
.warx .wact svg{width:21px;height:21px;color:var(--wink2)}
.warx .wact .l{font-family:var(--wd);font-size:11.5px;font-weight:600;margin-top:8px;color:var(--wink)}
.warx .wact .s{font-size:9px;color:var(--wink3);margin-top:2px;font-family:var(--wm)}
.warx .wact.primary{border-color:rgba(192,90,76,.45);background:linear-gradient(180deg,#1a1620,#120d12)}
.warx .wact.primary svg{color:var(--war)} .warx .wact.primary .l{color:#e89b8f}
.wsheet{position:fixed;left:50%;bottom:0;transform:translate(-50%,112%);width:100%;max-width:480px;background:#0c1322;border-top:1px solid #28344e;
  border-radius:20px 20px 0 0;padding:14px 16px 24px;transition:transform .28s cubic-bezier(.2,.8,.2,1);z-index:99999;box-shadow:0 -20px 50px rgba(0,0,0,.55);
  font-family:'Sora',sans-serif;color:#e9eef7}
.wsheet.up{transform:translate(-50%,0)}
.wsheet .grab{width:38px;height:4px;border-radius:3px;background:#283450;margin:0 auto 13px}
.wsheet .hd{display:flex;align-items:center;gap:11px}.wsheet .fl{font-size:28px}
.wsheet .nm{font-family:'Space Grotesk',sans-serif;font-size:16px;font-weight:700}.wsheet .rel{font-size:11px;margin-top:2px;font-weight:500}
.wsheet .a2{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:14px}
.wsheet button.a{border:1px solid #28344e;border-radius:11px;padding:12px;font-family:'Space Grotesk',sans-serif;font-size:12px;font-weight:600;cursor:pointer;background:#101827;color:#e9eef7}
.wsheet .a.red{background:#2a1512;border-color:#7e2f28;color:#e89b8f}
.wsheet .a.amber{background:#241d10;border-color:#5a4a1e;color:#e7b24e}
.wsheet .a.steel{background:#11212c;border-color:#284a5a;color:#8fc3d8}
.wsheet .x{position:absolute;top:13px;right:14px;width:28px;height:28px;border-radius:8px;border:1px solid #1f2c44;background:transparent;color:#aab8d0;font-weight:700;cursor:pointer}

/* ⚓🚨 blocco navale: banner allarme/intercetto */
.warx .walert{background:linear-gradient(160deg,rgba(122,35,38,.5),rgba(40,12,12,.6));border:1px solid rgba(192,90,76,.55);border-radius:13px;padding:11px 13px;margin-bottom:11px;animation:wrise .4s both}
.warx .walert .wa-t{font-family:var(--wd);font-size:12.5px;font-weight:700;color:#ff9a8a;display:flex;align-items:center;gap:6px}
.warx .walert .wa-t::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--war);animation:wpulse 1.4s infinite}
.warx .walert .wa-s{font-size:10.5px;color:var(--wink2);margin:4px 0 9px;line-height:1.4}
.warx .walert .wa-b{width:100%;border:1px solid var(--war-deep);border-radius:9px;padding:10px;background:#2a1512;color:#e89b8f;font-family:var(--wd);font-weight:700;font-size:12px;cursor:pointer}

/* ⚔️ assalto coordinato (rally) */
.warx .wrally{background:linear-gradient(160deg,rgba(90,74,22,.4),rgba(36,29,8,.6));border:1px solid rgba(231,178,78,.5);border-radius:13px;padding:12px 13px;margin-bottom:11px;animation:wrise .4s both}
.warx .wrally .wr-h{font-family:var(--wd);font-size:13px;font-weight:700;color:var(--amber)}
.warx .wrally .wr-s{font-size:10px;color:var(--wink2);margin:4px 0 8px;line-height:1.45}
.warx .wrally .wr-s b{color:var(--amber)}
.warx .wrally .wr-list{max-height:118px;overflow:auto;margin-bottom:9px;border:1px solid var(--wline);border-radius:9px}
.warx .wrally .wr-row{display:flex;justify-content:space-between;font-size:11px;padding:5px 9px;border-bottom:1px solid rgba(255,255,255,.04);font-family:var(--wm);color:var(--wink)}
.warx .wrally .wr-row:last-child{border-bottom:0}
.warx .wrally .wr-row.muted{color:var(--wink3)}
.warx .wrally .wr-add{display:flex;gap:6px;margin-bottom:8px;flex-wrap:wrap}
.warx .wrally .wr-add select{flex:1;min-width:130px}
.warx .wrally .wr-add input{width:64px;flex:none}
.warx .wrally .wr-b{flex:none;border:1px solid #7a6420;background:#241d10;color:var(--amber);border-radius:9px;padding:9px 12px;font-family:var(--wd);font-weight:700;font-size:11px;cursor:pointer}
.warx .wrally .wr-cancel{width:100%;border:1px solid var(--wline2);background:transparent;color:var(--wink2);border-radius:9px;padding:8px;font-size:11px;cursor:pointer;font-family:var(--wd)}

/* ⏱️ modale durata assalto (su body) */
.wdur-ov{position:fixed;inset:0;z-index:99999;background:rgba(4,8,14,.86);display:flex;align-items:center;justify-content:center;padding:18px;font-family:'Sora',sans-serif}
.wdur-box{background:#0c1322;border:1px solid #28344e;border-radius:16px;padding:18px;max-width:360px;width:100%;color:#e9eef7}
.wdur-h{font-family:'Space Grotesk',sans-serif;font-size:15px;font-weight:700;color:#e7b24e}
.wdur-s{font-size:11px;color:#aab8d0;margin:5px 0 12px}
.wdur-chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:12px}
.wdur-chip{flex:1;min-width:62px;border:1px solid #28344e;background:#101827;color:#e9eef7;border-radius:9px;padding:10px;font-family:'Space Grotesk',sans-serif;font-weight:600;font-size:12px;cursor:pointer}
.wdur-custom{display:flex;gap:7px;margin-bottom:10px}.wdur-custom input{flex:1}
.wdur-go{border:1px solid #5a4a1e;background:#241d10;color:#e7b24e;border-radius:9px;padding:10px 16px;font-weight:700;cursor:pointer;font-family:'Space Grotesk',sans-serif}
.wdur-x{width:100%;border:1px solid #1f2c44;background:transparent;color:#aab8d0;border-radius:9px;padding:9px;cursor:pointer;font-size:12px}
/* ⚔️🛡️ pannello ruoli di guerra */
.warx .wroles{border:1px solid var(--wline);border-radius:13px;padding:12px 13px;margin-bottom:12px;background:var(--wpanel)}
.warx .wroles .wro-h{font-family:var(--wd);font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--wink3);margin-bottom:9px}
.warx .wroles .wro-slot{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:7px 0;border-top:1px solid var(--wline)}
.warx .wroles .wro-l{font-family:var(--wd);font-size:11.5px;font-weight:600;color:var(--wink)}
.warx .wroles .wro-n{font-family:var(--wm);font-size:11px;color:var(--amber);margin-left:auto}
.warx .wroles .wro-assign{display:flex;gap:6px;width:100%;margin-top:4px}
.warx .wroles .wro-assign input{flex:1}
.warx .wroles .wro-b{flex:none;border:1px solid #5a4a1e;background:#241d10;color:var(--amber);border-radius:9px;padding:8px 12px;font-family:var(--wd);font-weight:700;font-size:11px;cursor:pointer}
.warx .wroles .wro-clr{flex:none;border:1px solid var(--wline2);background:transparent;color:var(--wink2);border-radius:9px;padding:8px 11px;cursor:pointer}
