
/* Project ZvsP loadout editor; all selections are previews until server economy is linked. */
.armory-config{margin-top:65px;border:1px solid #58423f;background:linear-gradient(145deg,#251c1b,#181211);padding:20px}
.armory-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;margin:2px 0 18px}
.armory-heading h2{font-size:clamp(30px,4vw,44px);margin:9px 0}
.armory-heading h2 em{font-style:normal;color:var(--acid)}
.armory-heading p{font-size:12px;color:#d28177;line-height:1.7}
.armory-preview-badge{font-size:9px;color:#eed3a5;border:1px solid #784842;padding:9px 10px;white-space:nowrap;font-weight:800}
.armory-warning{background:#352819;border:1px solid #8a7444;padding:11px 15px;color:#edcb96;font-size:11px;line-height:1.65;margin-bottom:18px}
.armory-layout{display:grid;grid-template-columns:minmax(160px, .91fr) minmax(260px,1.8fr) minmax(160px,.91fr);align-items:stretch;gap:14px;min-height:690px}
.armory-slots{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));gap:12px}
.armory-slot{font:inherit;text-align:left;display:flex;flex-direction:column;min-width:0;align-items:flex-start;position:relative;border:1px solid #744640;border-radius:6px;padding:13px;background:linear-gradient(145deg,#302422,#281d1c);color:#e7dad8;cursor:pointer;gap:7px;transition:border-color .18s,transform .18s}
.armory-slot:hover,.armory-slot:focus-visible{border-color:var(--acid);transform:translateY(-2px);outline:0}
.armory-slot img{width:100%;height:76px;object-fit:contain;margin:auto auto 2px;filter:drop-shadow(0 2px 8px #07050550)}
.armory-slot-type{font-size:10px;color:#d58a80;font-weight:800;letter-spacing:.3px}
.armory-slot-name{color:#f3eceb;font-weight:900;font-size:12px;line-height:1.3;overflow-wrap:anywhere}
.armory-slot-action{color:#e6c48e;font-size:10px;font-weight:800;margin-top:auto}
.armory-slot-placeholder{font-size:37px;color:#a7675e;margin:auto}
.armory-stage{position:relative;min-height:690px;border:1px solid #503d3a;background:radial-gradient(ellipse at center 48%,#4d3a37,#261c1b 55%,#140e0d 100%);display:flex;flex-direction:column;align-items:center;overflow:hidden}
.armory-stage:before{content:"";position:absolute;bottom:114px;left:13%;right:13%;height:20px;border-radius:50%;background:radial-gradient(ellipse,#0805059e,transparent)}
.armory-stage canvas{position:relative;width:100%;height:570px;touch-action:none;display:block}
.armory-character-name{position:absolute;z-index:2;top:12px;left:15px;right:15px;display:flex;align-items:center;gap:8px}
.armory-character-name span{border:1px solid #8e564e;background:#31211f;color:#dfbbb6;border-radius:4px;padding:2px 5px;font-size:10px;font-weight:800}
.armory-character-name strong{font-size:15px;color:#f6eeed}
.armory-character-name small{margin-left:auto;font-size:8px;color:#d18176}
.armory-stage-controls{display:flex;gap:8px;z-index:2;position:relative;margin-top:auto;padding-top:4px}
.armory-stage-controls button{border:1px solid #674e4b;background:#281e1d;color:#e2d2d0;padding:9px 12px;border-radius:4px;font-size:11px;cursor:pointer}
.armory-stage-controls button:hover{border-color:var(--acid)}
.armory-drag-hint,.armory-clarification{text-align:center;color:#d07e73;font-size:9px;padding:7px 20px 0}
.armory-clarification{padding-bottom:11px;color:#cf7a6f;font-size:9px;max-width:540px}
.armory-canvas-fallback{position:absolute;z-index:3;top:48%;padding:15px;text-align:center;background:#261d1cf0;color:#d9c4c1;font-size:12px}
.armory-footer{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:15px}
.armory-footer [role=status]{flex:1;color:#d4897f;font-size:11px;min-width:220px}
.armory-footer button{cursor:pointer}
.armory-overlay[hidden]{display:none!important}
.armory-overlay{position:fixed;inset:0;background:#070404e9;z-index:900;display:grid;place-items:center;padding:20px;backdrop-filter:blur(9px)}
.armory-picker-window{width:min(760px,100%);max-height:min(86vh,920px);border:1px solid #8b544c;background:#1f1615;padding:22px;display:flex;flex-direction:column;min-height:280px}
.armory-picker-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:17px}
.armory-picker-header h3{font-size:30px;margin-top:4px}
.armory-picker-header button{border:1px solid #824e47;background:#2a2221;color:#eee3e2;font-size:28px;width:43px;height:43px;cursor:pointer}
.armory-picker-search{border:1px solid #734640;background:#1a1312;padding:10px;display:flex;gap:9px;align-items:center;margin-bottom:16px}
.armory-picker-search span{color:var(--acid);font-size:20px}
.armory-picker-search input{min-width:0;flex:1;color:#f4eeee;font-size:13px;background:transparent;outline:none;border:none}
.armory-picker-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;min-height:0;overflow:auto;padding-right:4px}
.armory-picker-item{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;min-height:143px;padding:10px;background:#281e1d;border:1px solid #5c4643;color:#f1e9e8;cursor:pointer;text-align:center}
.armory-picker-item:hover,.armory-picker-item.selected{border-color:var(--acid);background:#3a2c2a}
.armory-picker-item img{height:85px;width:100%;object-fit:contain}
.armory-picker-item span{font-size:10px;line-height:1.35;overflow-wrap:anywhere}
.armory-picker-hint{margin-top:15px;font-size:10px;color:#d17e74}
@media(max-width:1000px){.armory-layout{grid-template-columns:minmax(145px,.93fr) minmax(230px,1.5fr) minmax(145px,.93fr)}.armory-config{padding:14px}.armory-slot{padding:10px}}
@media(max-width:800px){.armory-layout{grid-template-columns:1fr 1fr;grid-template-areas:"stage stage" "left right"}.armory-left{grid-area:left}.armory-right{grid-area:right}.armory-stage{grid-area:stage;min-height:570px}.armory-stage canvas{height:470px}.armory-slots{grid-template-rows:repeat(4,165px)}.armory-slot img{height:65px}}
@media(max-width:520px){.armory-heading{flex-direction:column;align-items:flex-start}.armory-layout{gap:9px}.armory-stage{min-height:530px}.armory-stage canvas{height:440px}.armory-character-name{flex-wrap:wrap}.armory-character-name small{flex-basis:100%;margin-left:0}.armory-slots{grid-template-rows:repeat(4,150px);gap:8px}.armory-slot{padding:9px}.armory-slot img{height:54px}.armory-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.armory-footer button{flex:1}.armory-footer [role=status]{flex-basis:100%}}

.armory-right{grid-template-rows:repeat(5,minmax(0,1fr))}
@media(max-width:800px){.armory-right{grid-template-rows:repeat(5,165px)}}
@media(max-width:520px){.armory-right{grid-template-rows:repeat(5,150px)}}


/* CSO actions and inventory/game model switch must fit the same 3D preview on phones. */
.armory-stage-controls{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:6px;max-width:100%;padding:6px 9px 0;
}
.armory-stage-controls button{flex:0 1 auto;font-size:10px;padding:8px 9px;min-height:33px}
#armory-mode{color:#e9c5c1;border-color:#a26259;background:#342725}
@media (max-width:520px){
 .armory-stage-controls{gap:5px;padding:6px 7px 0}
 .armory-stage-controls button{font-size:9px;padding:6px 7px}
 .armory-stage{min-height:600px}
}


/* Compact single-screen armory: no introductory weapon cards, manual 3D camera.
   On desktop all 9 slot selectors + 3D view + save sit inside the viewport.
   On mobile allow scrolling where physically necessary; never hide actions. */
.armory-page-inner{
  width:100%;max-width:1590px;margin-inline:auto;
  padding:12px clamp(12px,1.5vw,26px) 14px;
  display:flex;flex-direction:column;min-height:0;
}
.armory-page .armory-config{
  width:100%;max-width:none;min-width:0;margin:0;
  padding:12px 14px 11px;gap:9px;
  display:flex;flex-direction:column;min-height:0;
}
.armory-page .armory-heading{
  flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;
  gap:16px;margin:0;min-height:39px;
}
.armory-page .armory-heading h1{
  font-size:clamp(22px,2.15vw,30px);letter-spacing:.7px;line-height:1.08;
}
.armory-page .armory-heading h1 em{color:var(--acid);font-style:normal}
.armory-page .armory-heading p{
  font-size:10px;line-height:1.4;margin-top:3px;color:#d3877c;
}
.armory-page .armory-preview-badge{
  flex:0 0 auto;padding:6px 10px;font-size:9px;letter-spacing:.2px;
}
.armory-page .armory-warning{
  flex:0 0 auto;margin:0;padding:7px 10px;
  line-height:1.45;font-size:10px;
}
.armory-page .armory-layout{
  flex:1 1 auto;min-height:0;min-width:0;height:auto;
  display:grid;grid-template-columns:minmax(205px,.92fr) minmax(350px,2.35fr) minmax(205px,.92fr);
  gap:10px;align-items:stretch;
}
.armory-page .armory-slots{display:grid;min-height:0;gap:8px}
.armory-page .armory-left{grid-template-rows:repeat(4,minmax(0,1fr))}
.armory-page .armory-right{grid-template-rows:repeat(5,minmax(0,1fr))}
.armory-page .armory-slot{
  display:grid;
  grid-template-columns:minmax(43px,62px) minmax(0,1fr);
  grid-template-rows:min-content minmax(0,1fr) min-content;
  column-gap:9px;row-gap:2px;
  padding:8px 10px;min-height:0;min-width:0;
  align-items:center;border-radius:5px;
  background:linear-gradient(135deg,#2f2422,#241a19);
}
.armory-page .armory-slot:hover,.armory-page .armory-slot:focus-visible{
  transform:none;border-color:var(--acid);
  box-shadow:inset 0 0 0 1px #d17d7244;
}
.armory-page .armory-slot-type{
  grid-column:2;grid-row:1;align-self:center;
  font-size:9px;line-height:1.25;letter-spacing:.45px;min-width:0;
}
.armory-page .armory-slot img{
  grid-column:1;grid-row:1 / span 3;
  display:block;width:100%;max-width:62px;height:min(7.2vh,57px);
  min-height:24px;margin:0;object-fit:contain;
}
.armory-page .armory-slot img[hidden]{display:none}
.armory-page .armory-slot-name{
  grid-column:2;grid-row:2;align-self:center;
  font-size:11px;line-height:1.2;
  max-height:2.4em;overflow:hidden;
}
.armory-page .armory-slot-action{
  grid-column:2;grid-row:3;align-self:end;
  margin:0;font-size:9px;line-height:1.2;
}
.armory-page .armory-slot-placeholder{
  grid-column:1;grid-row:1 / span 3;
  justify-self:center;align-self:center;
  margin:0;font-size:30px;line-height:1;
}
.armory-page .armory-stage{
  height:100%;min-height:0;max-height:none;min-width:0;
  border:1px solid #5a4442;
  background:radial-gradient(ellipse at 50% 48%,#513d3b,#2b201e 58%,#140e0d 100%);
  display:flex;flex-direction:column;
  padding:0 6px 8px;
}
.armory-page .armory-stage:before{bottom:72px}
.armory-page .armory-stage canvas{
  flex:1 1 auto;min-height:0;width:100%;height:0;
  object-fit:contain;
}
.armory-page .armory-character-name{
  top:8px;left:10px;right:10px;pointer-events:none;gap:6px;
}
.armory-page .armory-character-name strong{font-size:13px}
.armory-page .armory-character-name small{font-size:8px}
.armory-page .armory-stage-controls{
  margin:0;gap:5px;padding:3px 0 0;flex:0 0 auto;
  display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
}
.armory-page .armory-stage-controls button{
  min-height:28px;height:28px;font-size:9px;
  border-radius:4px;padding:5px 7px;white-space:nowrap;
}
.armory-page .armory-drag-hint{
  flex:0 0 auto;font-size:9px;line-height:1.3;padding:4px 4px 0;
}
.armory-page .armory-clarification{
  flex:0 0 auto;font-size:9px;line-height:1.3;
  max-width:100%;padding:3px 10px 0;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.armory-page .armory-footer{
  display:flex;flex-wrap:nowrap;align-items:center;gap:8px;
  margin:0;padding:0;min-height:36px;flex:0 0 auto;
}
.armory-page .armory-footer [role=status]{
  flex:1 1 auto;min-width:0;color:#d58a80;font-size:10px;
  line-height:1.3;max-height:2.7em;overflow:hidden;
}
.armory-page .armory-footer button{
  min-height:35px;font-size:10px;letter-spacing:.2px;
  padding:7px 11px;white-space:nowrap;
}
.armory-page .armory-picker-window{
  max-height:calc(100dvh - 40px);
}
@media (min-width:901px) and (min-height:670px){
  body.armory-focus{height:100dvh;overflow:hidden}
  body.armory-focus .footer{display:none}
  #weapons.armory-page.active{height:calc(100dvh - 84px);overflow:hidden}
  #weapons.armory-page.active .armory-page-inner{height:100%}
  #weapons.armory-page.active .armory-config{flex:1 1 auto}
}
@media (min-width:901px) and (max-height:800px){
 .armory-page-inner{padding-top:7px;padding-bottom:7px}
 .armory-page .armory-config{padding:8px 10px;gap:6px}
 .armory-page .armory-heading{min-height:32px}
 .armory-page .armory-heading h1{font-size:23px}
 .armory-page .armory-heading p{font-size:9px}
 .armory-page .armory-warning{font-size:9px;padding:5px 8px}
 .armory-page .armory-slot{padding:6px 8px;column-gap:7px;grid-template-columns:52px minmax(0,1fr)}
 .armory-page .armory-slot img{height:min(6.3vh,45px)}
 .armory-page .armory-slot-name{font-size:10px}
 .armory-page .armory-slot-type{font-size:8px}
 .armory-page .armory-slot-action{font-size:8px}
 .armory-page .armory-drag-hint{font-size:8px;padding-top:3px}
 .armory-page .armory-clarification{font-size:8px;padding-top:2px}
}
@media (max-width:900px),(max-height:669px){
  body.armory-focus{height:auto;overflow:auto}
  body.armory-focus .footer{display:block}
  #weapons.armory-page.active{height:auto;overflow:visible}
  .armory-page-inner{padding:13px 12px 18px;min-height:auto}
  .armory-page .armory-config{min-height:0}
  .armory-page .armory-layout{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
    grid-template-rows:auto;grid-auto-rows:minmax(82px,auto);gap:7px;
  }
  .armory-page .armory-slots{display:contents}
  .armory-page .armory-stage{
    grid-column:1 / -1;grid-row:1;
    height:clamp(315px,47vh,475px);min-height:0;max-height:none;
  }
  .armory-page .armory-stage canvas{min-height:0;height:0;flex:1}
  .armory-page .armory-slot{
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    gap:3px;padding:8px 5px;text-align:center;min-height:85px;
  }
  .armory-page .armory-slot img{width:100%;height:36px;min-height:0;max-width:80px;margin:0}
  .armory-page .armory-slot-type{font-size:8px;line-height:1.1}
  .armory-page .armory-slot-name{font-size:10px;line-height:1.2;max-height:2.4em}
  .armory-page .armory-slot-action{font-size:8px;margin-top:auto}
  .armory-page .armory-slot-placeholder{font-size:23px;margin:0}
  .armory-page .armory-footer{flex-wrap:wrap}
  .armory-page .armory-footer [role=status]{flex:1 1 100%;max-height:none}
}
@media (max-width:560px){
  .armory-page .armory-heading{align-items:flex-start;gap:7px;flex-wrap:wrap}
  .armory-page .armory-heading h1{font-size:24px}
  .armory-page .armory-heading p{font-size:10px}
  .armory-page .armory-preview-badge{font-size:8px;padding:5px 7px}
  .armory-page .armory-warning{font-size:9px;padding:8px}
  .armory-page .armory-layout{grid-template-columns:repeat(3,minmax(0,1fr));gap:5px}
  .armory-page .armory-stage{height:350px}
  .armory-page .armory-slot{padding:6px 4px;min-height:81px}
  .armory-page .armory-slot-type{font-size:7px;letter-spacing:0}
  .armory-page .armory-slot-name{font-size:9px}
  .armory-page .armory-stage-controls button{font-size:8px;padding:5px 6px}
  .armory-page .armory-footer button{flex:1 1 auto}
}

/* Large catalog picker: native/verified model and character gender filters. */
.armory-picker-filterbar{display:flex;flex-wrap:wrap;gap:8px;justify-content:space-between;align-items:center;margin:0 0 10px}
.armory-picker-filters{display:flex;flex-wrap:wrap;gap:5px}
.armory-picker-filter{border:1px solid #614a47;background:#261c1a;color:#d2b9b5;padding:6px 9px;cursor:pointer;font-weight:800;font:800 10px Manrope,Arial,sans-serif}
.armory-picker-filter.selected,.armory-picker-filter:hover,.armory-picker-filter:focus-visible{background:#e47365;color:#191514;border-color:#e47365}
#armory-picker-count{font-size:10px;color:#d07d72}
.armory-picker-3d{display:block;color:#e47365;font-size:9px;font-weight:800}
.armory-picker-unmapped{display:block;font-size:9px;color:#ce786c}
.armory-picker-more{display:block;margin:12px auto 0;padding:8px 18px;cursor:pointer;border:1px solid #cf7b70;background:#2c2322;color:#e1bdb9;font-size:11px;font-weight:800}
.armory-picker-more[hidden]{display:none}
.armory-picker-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.armory-picker-item{min-height:120px}
.armory-picker-item img{height:64px}
.armory-picker-item span{font-size:10px}
@media(max-width:650px){.armory-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:420px){.armory-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.armory-picker-filter{font-size:9px;padding:5px 6px}}

.armory-page .armory-slot.armory-previewing{border-color:#cf7a6f;background:linear-gradient(130deg,#392b2a,#271c1b)}
.armory-page .armory-slot.armory-previewing .armory-slot-action{color:#e47365}

/* 2026 CSO inventory classifications; independent gender and weapon type controls */
.armory-picker-filters{display:flex;flex-wrap:wrap;gap:5px;width:100%}
.armory-picker-category-list{
  flex-basis:100%;display:flex;flex-wrap:wrap;gap:5px;
  border-top:1px solid #4f3c3a;padding-top:8px;margin-top:4px
}
.armory-picker-category{
  border:1px solid #614a47;background:#271c1b;color:#d6bfbc;
  cursor:pointer;padding:7px 9px;font-size:10px;font-weight:800;line-height:1.2
}
.armory-picker-category.selected{border-color:#e47365;background:#dc7467;color:#1d1716}
.armory-picker-category:not(.selected):hover{border-color:#cf7b70}
.armory-picker-type{display:block;color:#d07c71;font-size:9px}
@media(max-width:560px){
 .armory-picker-category{font-size:9px;padding:6px}
 .armory-picker-filterbar{max-height:170px;overflow-y:auto}
}

.armory-stage-controls #armory-camera-mode{
  border-color:#915750;background:#312524;color:#e7d0cd
}
.armory-stage-controls #armory-camera-mode[aria-pressed="true"]{
  border-color:#e47365;color:#e5b3ac
}

/* Browser QA 2026-11-02: reset was white-on-white due to default button background. */
.armory-page #armory-reset-loadout{
 background:#2a2221;
 color:#f1e6e5;
 border:1px solid #a6655c;
 text-shadow:none;
}
.armory-page #armory-reset-loadout:hover,.armory-page #armory-reset-loadout:focus-visible{
 background:#41312f;border-color:#e47365;color:#ffffff
}
.armory-page #armory-canvas{
 touch-action:none;
 cursor:grab;
}
.armory-page #armory-canvas:active{cursor:grabbing}
.armory-page .armory-footer button{border-radius:4px}
@media(max-width:650px){
 .armory-page .armory-stage-controls button{min-height:32px}
 .armory-page .armory-slot-name{overflow-wrap:anywhere}
}

/* Native model load state; no placeholder mannequin/weapon visible in the oval. */
.armory-page .armory-load-state{
 position:absolute;z-index:3;top:44%;left:10%;right:10%;
 text-align:center;font-weight:850;letter-spacing:.3px;
 font-size:clamp(14px,1.4vw,19px);color:#f0ddda;
 text-shadow:0 2px 16px #000b;
 pointer-events:none;
}
.armory-page .armory-load-state[hidden]{display:none!important}
