.mode-picker{grid-template-columns:repeat(3,minmax(0,1fr))}
.pvp{padding:26px;border:1px solid #3b5557;border-radius:7px;background:#17252b;margin-bottom:18px}
.pvp-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}
.pvp-heading h2{font:650 27px system-ui;margin:9px 0 15px;letter-spacing:1px}
.pvp-intro{font-size:12px;line-height:1.9;color:#a9bcaf}
.pvp-connect{display:grid;grid-template-columns:2fr 1fr 1fr;gap:12px;margin-top:20px}
.pvp-connect>div{grid-column:1/-1;display:flex;gap:12px}
.pvp-connect label,.pvp-settings label{font-size:11px;color:#b7c9bd;display:grid;gap:7px}
.pvp input,.pvp select{width:100%;min-width:0;min-height:42px;background:#20343b;color:#e3e9d5;border:1px solid #547069;border-radius:4px;padding:9px 11px;font:inherit}
.pvp input:disabled,.pvp select:disabled{opacity:.6}
.pvp-settings{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:20px 0}
.pvp-maps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.pvp-map{min-width:0;padding:0 0 14px;text-align:left;color:#c6d6c7;background:#20313a;border:1px solid #52656a;border-radius:5px;overflow:hidden}
.pvp-map canvas{width:100%;display:block;image-rendering:pixelated}
.pvp-map strong,.pvp-map small{display:block;padding:0 13px}
.pvp-map strong{font-size:15px;margin:12px 0 7px}
.pvp-map small{font-size:10px;line-height:1.6;color:#9eb1ad}
.pvp-map.selected{border-color:#efb87c;box-shadow:inset 0 0 0 1px #efb87c}
.pvp-map:disabled{cursor:default}
.pvp-room{margin-top:20px;background:#12242b;border:1px solid #527068;padding:18px;border-radius:5px}
.pvp-room>header{display:flex;align-items:center;justify-content:space-between}
.pvp-room h3{font-size:15px;margin:0}
.pvp-room h3 b{font:22px monospace;letter-spacing:3px;color:#f3cb90;margin-left:10px;user-select:all}
.pvp-roster{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:18px 0}
.pvp-slot{padding:14px;background:#203b48;border-left:3px solid #7ccfdf;border-radius:3px;font-size:12px;line-height:1.6}
.pvp-slot.red{background:#3b2d39;border-color:#d69190}
.pvp-room-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.pvp-room-actions .secondary-button{margin-left:0}
.pvp-room-actions>span{font-size:11px;color:#98afa7}
.pvp button:disabled{opacity:.5;cursor:not-allowed}
.pvp-game{margin-top:18px;border:1px solid #5e7976;border-radius:5px;overflow:hidden;background:#14252c}
.pvp-matchbar{display:flex;justify-content:space-between;align-items:center;padding:9px 13px;gap:12px;background:#1d333b}
.pvp-matchbar strong{font-size:13px;letter-spacing:1px;color:#d6e2cd}
.pvp-matchbar>span{font:16px monospace;color:#efc692;margin-left:auto}
.pvp-playfield{position:relative}
.pvp-playfield canvas{width:100%;display:block;aspect-ratio:2;image-rendering:pixelated;touch-action:none;outline:none;cursor:none}
.pvp-feed{position:absolute;right:12px;top:12px;font-size:11px;line-height:1.8;pointer-events:none}
.pvp-feed>div{background:#15232ddd;padding:3px 9px;margin-bottom:4px;color:#aadce5}
.pvp-feed>div.red{color:#e9b2a8}
.pvp-respawn{position:absolute;inset:0;display:grid;place-items:center;background:#10243055;color:#f3d4a2;font:600 27px system-ui;pointer-events:none}
.pvp-result{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0b1b25db;backdrop-filter:blur(3px);text-align:center;padding:20px}
.pvp-result h2{font-size:44px;margin:0 0 12px;color:#f3c58e}
.pvp-result p{font-size:13px;line-height:1.8;color:#b9cfc0;margin:0 0 20px}
.pvp-vitals{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#20343b;font-size:12px;color:#cadac3;min-height:44px}
.pvp-vitals .health-track{width:150px;max-width:25%;height:7px}
.pvp-vitals .health-track i{height:100%;background:#9ad4a5;display:block}
.pvp-vitals>strong{margin-left:auto;font-size:12px}
.pvp-heat{width:60px;height:4px;background:#15282f}
.pvp-heat i{height:100%;display:block;background:#e3b877}
.pvp-heat i.locked{background:#f28c7e}
.pvp-weapon-buttons{display:flex;flex-wrap:wrap;max-height:100px;overflow-y:auto;gap:7px;justify-content:center;background:#1d3138;padding:5px 12px 10px}
.pvp-weapon-buttons button{flex-shrink:0;min-height:34px;border:1px solid #607968;border-radius:3px;background:#2b403f;color:#b7c9bd;font-size:11px;padding:5px 12px}
.pvp-weapon-buttons button.active{color:#ffd398;border-color:#e3b779}
.pvp-touch{display:none}
.pvp-game:fullscreen{border:0;border-radius:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0e1c23;overflow:auto}
.pvp-game:fullscreen .pvp-playfield{width:min(100vw,calc(2 * (100dvh - 145px)))}
.pvp-game:fullscreen .pvp-matchbar,.pvp-game:fullscreen .pvp-vitals,.pvp-game:fullscreen .pvp-weapon-buttons{width:100%;flex-shrink:0}
.pvp-game:fullscreen .pvp-touch{flex-shrink:0;width:100%;max-width:960px}
@media(max-width:700px){
  .pvp{padding:14px}.pvp-heading h2{font-size:21px}.pvp-heading{align-items:flex-start}.pvp-heading>.help-button{font-size:10px}
  .pvp-connect{grid-template-columns:1fr 1fr}.pvp-connect label:first-child{grid-column:1/-1}.pvp-settings{gap:9px}.pvp-intro{font-size:11px}
  .pvp-maps{gap:7px}.pvp-map strong{font-size:12px;padding:0 8px}.pvp-map small{font-size:9px;padding:0 8px}.pvp-slot{font-size:11px;padding:10px}
  .pvp-matchbar{gap:5px;padding:6px 8px;flex-wrap:wrap}.pvp-matchbar strong{font-size:11px}.pvp-vitals{gap:6px;font-size:11px;padding:9px 8px;flex-wrap:wrap}.pvp-vitals>strong{font-size:11px}.pvp-heat{width:40px}
  .pvp-weapon-buttons button{padding:5px 8px;font-size:10px}.pvp-result h2{font-size:27px}.pvp-result p{font-size:11px}
  .mode-picker{gap:6px}.mode-picker button{padding:12px 9px}.mode-picker strong{font-size:12px}.mode-picker small{font-size:9px}
}
@media(any-pointer:coarse){
  .pvp-touch{display:grid;grid-template-columns:100px minmax(0,1fr) 100px;gap:10px;padding:10px;background:#172c32;align-items:center}
  .pvp-touch .virtual-stick{width:82px;height:82px}.pvp-touch .stick-knob{width:36px;height:36px}.pvp-touch .stick-group{align-items:center}.pvp-touch .stick-group small{font-size:9px}
  .pvp-touch-actions{display:grid;grid-template-columns:repeat(3,minmax(44px,1fr));gap:6px}.pvp-touch-actions button{min-height:44px;border:1px solid #718977;border-radius:6px;background:#2b4140;color:#d1dbbe;font-size:11px;touch-action:none;user-select:none}
  .pvp-game:fullscreen .pvp-playfield{width:100vw}.pvp-game:fullscreen #pvp-canvas{aspect-ratio:auto;height:max(150px,calc(100dvh - 270px))}.pvp-matchbar .help-button{min-height:34px}
}
@media(any-pointer:coarse) and (max-width:600px){
  .pvp-touch{grid-template-columns:74px minmax(0,1fr) 74px;gap:7px;padding:9px 6px}.pvp-touch .virtual-stick{width:68px;height:68px}.pvp-touch-actions{grid-template-columns:repeat(2,minmax(44px,1fr));gap:5px}.pvp-touch-actions button{min-height:42px;font-size:10px}
  .pvp-game:fullscreen #pvp-canvas{height:max(160px,calc(100dvh - 310px))}
}
.account-dialog{max-width:540px;width:calc(100% - 28px)}
.account-dialog label{display:grid;gap:8px;color:#bdd0c5;font-size:13px;margin:16px 0}
.account-dialog input:not([type=checkbox]){min-height:46px;width:100%;padding:10px 12px;background:#182e37;color:#e2eddb;border:1px solid #678176;border-radius:4px;font:inherit}
.account-dialog .remember-account{display:flex;align-items:center;gap:10px;font-size:12px}.remember-account input{width:18px;height:18px;accent-color:#e9b575}
.account-actions{display:flex;gap:12px;flex-wrap:wrap;margin:20px 0 10px}.account-actions .secondary-button{margin:0}
.account-dialog #account-status,.invitation-dialog p{font-size:12px;line-height:1.8;color:#b7c7bc}
.invitation-dialog{max-width:510px;width:calc(100% - 28px);padding:28px;border-color:#dab081}
.invitation-dialog h2{font-size:25px;line-height:1.5;margin:14px 0}.invitation-dialog small{font-size:11px;color:#d7b588}
.online-rooms h3{font-size:13px;color:#b6cbbc;margin:20px 0 10px}.online-rooms p{font-size:12px;color:#9dafaa}.online-rooms #pvp-directory>div{display:flex;gap:12px;align-items:center;justify-content:space-between;background:#21383e;border:1px solid #486267;padding:12px;margin-bottom:8px;border-radius:4px;font-size:12px}.online-rooms span{line-height:1.7}.online-rooms .help-button{flex-shrink:0}
.pvp-connect{display:flex;align-items:center;flex-wrap:wrap;gap:14px}.pvp-connect>span,#pvp-auto-map{font-size:12px;color:#dfc393;line-height:1.8}
.pvp-room>header{gap:12px;flex-wrap:wrap}.pvp-room>header h3{margin-right:auto}#pvp-online-count{color:#a9c5ad}
@media(max-width:700px){.pvp-connect>button{font-size:12px;padding:13px}.pvp-settings{grid-template-columns:1fr 1fr}.pvp-settings label:first-child{grid-column:1/-1}.online-rooms #pvp-directory>div{font-size:11px}.account-dialog header h2{font-size:21px}.header-buttons #account-open{max-width:115px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px}.account-actions button{min-height:44px}.pvp-roster{gap:6px}}

#pvp-generated-preview{width:100%;height:auto;aspect-ratio:96/17;cursor:default;border:1px solid #678077;border-radius:4px;background:#182c36;margin:12px 0 22px}
.pvp-packing{padding:16px;border:1px solid #46616a;margin:18px 0;background:#172a32}.pvp-packing h3{margin:0 0 12px}.pvp-packing h3 small{font-size:12px;color:#c3dcae;margin-left:10px}.pvp-packing label{display:flex;gap:10px;align-items:center;justify-content:space-between}.pvp-packing input{width:72px;padding:8px;border:1px solid #526e78;background:#10212a;color:#e9efdf}.pvp-packing select{background:#10212a;color:#e9efdf;padding:8px}.pvp-packing small{color:#acc0bc}#pvp-ammo-packing{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px;margin-bottom:14px}.invalid{color:#f7a496}.pvp-result{max-height:90%;overflow:auto}.pvp-result p{font-size:13px;line-height:1.6}@media(max-width:600px){#pvp-ammo-packing{grid-template-columns:1fr}.pvp-settings{grid-template-columns:1fr}.pvp-result{padding:14px}.pvp-packing{padding:12px}}
.pvp-packing label{font-size:12px;white-space:nowrap}.pvp-packing input{flex-shrink:0}.pvp-packing select{width:auto;flex:1}#pvp-loot-pool{font-size:10px;color:#aebfba;flex-basis:100%;text-align:right}.pvp-vitals{flex-wrap:wrap}
.pvp-result{justify-content:flex-start;max-height:100%}.pvp-result>*{flex-shrink:0}.pvp-result>h2{margin-top:auto}.pvp-result>button{margin-bottom:auto}
