/* Vexed Mirror vessel console. Presentation reads the shared equipment owner. */
#ship-inventory[hidden] { display: none; }
#ship-inventory {
  --ink: #edf5f5; --muted: #8ba6ad; --cyan: #8cddd9;
  --line: #7bafb229; --surface: #101e26; --gold: #d9c39a;
  position: fixed; inset: 0; z-index: 10020; display: grid; place-items: center;
  padding: 24px; overflow: hidden; color: var(--ink);
  background: radial-gradient(ellipse at 50% 38%, #1a424948, transparent 70%), #02080ddd;
  backdrop-filter: blur(10px); font: 13px/1.45 'Segoe UI', system-ui, sans-serif;
  color-scheme: dark;
}
#ship-inventory * { box-sizing: border-box; }
#ship-inventory button, #ship-inventory select { font: inherit; }
#ship-inventory button { cursor: pointer; }
#ship-inventory button:disabled { opacity: .4; cursor: default; }
#ship-inventory button:focus-visible, #ship-inventory select:focus-visible {
  outline: 2px solid var(--cyan); outline-offset: 3px;
}
.inventory-panel {
  position: relative; width: min(1360px, 100%); height: min(880px, 100%);
  display: grid; grid-template-rows: auto minmax(0, 1fr);
  overflow: hidden; border: 1px solid #81b7ba55; border-radius: 12px;
  background: #0b151df5; box-shadow: 0 40px 120px #000a, 0 0 80px #5caaa511, inset 0 1px #d0ffff12;
}
.inventory-panel::before {
  content: ''; position: absolute; z-index: 3; top: 0; left: 28px; width: 64px; height: 2px;
  background: var(--cyan); box-shadow: 0 0 16px #8cddd966; pointer-events: none;
}
.inventory-header {
  display: flex; align-items: center; gap: 28px; padding: 24px 28px;
  border-bottom: 1px solid var(--line); background: linear-gradient(100deg, #172c3470, #0c171e);
}
.inventory-heading { flex: 1; min-width: 0; }
.inventory-kicker { display: block; color: var(--muted); font-size: 9px; font-weight: 600; letter-spacing: .2em; }
.inventory-kicker b { margin: 0 6px; color: #588588; }
.inventory-header h2 { overflow: hidden; margin: 6px 0; font-size: clamp(22px, 2.2vw, 32px); font-weight: 500; line-height: 1.15; letter-spacing: -.025em; text-overflow: ellipsis; white-space: nowrap; }
.inventory-ship-caption { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; margin: 0; color: #a4b8be; font-size: 11px; }
.inventory-location { padding-left: 10px; border-left: 1px solid #73959966; color: var(--cyan); }
.inventory-standing { width: 175px; flex: none; }
.inventory-standing-label { display: flex; justify-content: space-between; gap: 8px; font-size: 8px; font-weight: 600; letter-spacing: .04em; color: var(--muted); }
.inventory-standing-label strong { color: var(--cyan); font-size: 10px; font-variant-numeric: tabular-nums; }
.inventory-standing-track { position: relative; height: 3px; margin-top: 9px; background: #45606a55; }
.inventory-standing-track i { position: absolute; top: 0; bottom: 0; }
.inventory-standing-negative { right: 50%; background: #e58e90; }
.inventory-standing-positive { left: 50%; background: var(--cyan); }
.inventory-standing-zero { position: absolute; left: 50%; top: -2px; width: 1px; height: 7px; background: #acc0c5; }
.inventory-standing.negative strong { color: #e58e90; }
.inventory-standing.allied strong { color: #a4d9ba; }
.inventory-resources { display: flex; gap: 20px; flex: none; }
.inventory-resource { display: flex; align-items: center; gap: 9px; min-width: 100px; }
.inventory-resource img { flex: none; width: 32px; height: 32px; object-fit: contain; }
.inventory-resource span { display: flex; flex-direction: column; }
.inventory-resource small { color: var(--muted); font-size: 8px; letter-spacing: .15em; font-weight: 600; }
.inventory-resource strong { color: #e6d3ae; font-size: 18px; font-weight: 500; font-variant-numeric: tabular-nums; }
.inventory-fuel strong { color: #e7edf0; }
.inventory-close { position: relative; display: grid; place-items: center; width: 36px; height: 36px; flex: none; align-self: center; padding: 0; border: 1px solid var(--line); border-radius: 6px; background: #14242c; color: #c8d9de; font-size: 24px !important; line-height: 1; }
.inventory-close small { position: absolute; top: calc(100% + 5px); font-size: 7px; letter-spacing: .13em; color: #7b969e; }
.inventory-close:hover { background: #223b44; border-color: #8cddd980; }
.inventory-view-tabs { display: none; }
.inventory-body { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); min-height: 0; overflow: hidden; }
.inventory-loadout, .inventory-cargo { min-width: 0; min-height: 0; padding: 22px 24px; }
.inventory-loadout { display: flex; flex-direction: column; gap: 14px; overflow: auto; border-right: 1px solid var(--line); background: radial-gradient(ellipse at 48% 30%, #39747716, transparent 60%); scrollbar-width: thin; scrollbar-color: #496a72 transparent; }
.inventory-section-title { display: flex; align-items: center; justify-content: space-between; flex: none; gap: 10px; min-width: 0; }
.inventory-section-title > span { color: #c1d0d4; font-size: 10px; font-weight: 600; letter-spacing: .16em; white-space: nowrap; }
.inventory-section-title > span b { display: inline-block; margin-right: 8px; color: #679795; font-size: 9px; font-weight: 500; }
.inventory-section-title > strong { overflow: hidden; color: var(--muted); font-size: 10px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.inventory-rig { position: relative; display: grid; flex: 1 0 255px; grid-template-columns: minmax(125px, 1fr) minmax(140px, 1.35fr) minmax(125px, 1fr); align-items: stretch; gap: 12px; min-height: 255px; padding-bottom: 30px; }
.inventory-weapons, .inventory-systems { position: relative; z-index: 2; display: flex; flex-direction: column; justify-content: center; gap: 10px; min-width: 0; }
.inventory-ship { position: relative; display: grid; place-items: center; min-width: 0; min-height: 0; background: linear-gradient(#7bb7b508 1px, transparent 1px), linear-gradient(90deg, #7bb7b508 1px, transparent 1px); background-size: 24px 24px; }
.inventory-ship::before, .inventory-ship::after { content: ''; position: absolute; background: #78bdb21c; pointer-events: none; }
.inventory-ship::before { left: 50%; top: 5%; width: 1px; height: 90%; }
.inventory-ship::after { left: 0; top: 50%; width: 100%; height: 1px; }
.inventory-ship canvas { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; opacity: 0; filter: brightness(1.5) drop-shadow(0 8px 18px #0007); transition: opacity .3s; }
.inventory-ship canvas.ready { opacity: 1; }
.inventory-rig { --scanner-active: 0; --scanner-play: paused; --scanner-glow: transparent; }
.inventory-rig:has(:focus-visible) { --scanner-active: 1; --scanner-play: running; --scanner-glow: #8cefe78c; }
@media (hover: hover) {
  .inventory-rig:has(.inventory-ship:hover) { --scanner-active: 1; --scanner-play: running; --scanner-glow: #8cefe78c; }
}
.inventory-ship-rings { position: absolute; left: 50%; top: 50%; width: var(--scanner-size, 80%); aspect-ratio: 1; box-sizing: border-box; transform: translate(-50%, -50%); border: 1px solid #7db7b52a; border-radius: 50%; pointer-events: none; filter: drop-shadow(0 0 5px var(--scanner-glow)); transition: filter .35s ease; }
.inventory-ship-rings::before { content: ''; position: absolute; inset: 14%; border: 1px dashed #8cd5cc66; border-radius: 50%; transform-origin: center; animation: inventory-scanner-orbit 36s linear infinite reverse; }
.inventory-ship-rings::after { content: ''; position: absolute; inset: -7%; border: 2px dashed #7db7b52a; border-top: 2px solid #9adfd26b; border-bottom: 2px solid #7db7b542; border-radius: 50%; transform-origin: center; animation: inventory-scanner-orbit 54s linear infinite; }
.inventory-scanner-sweep { position: absolute; inset: 0; border-radius: 50%; background: conic-gradient(transparent 0deg 275deg, #8cefe708 310deg, #8cefe747 359deg, transparent 360deg); opacity: var(--scanner-active); transition: opacity .35s ease; animation: inventory-scanner-orbit 5s linear infinite; animation-play-state: var(--scanner-play); }
.inventory-scanner-lock { position: absolute; inset: 7%; z-index: 2; pointer-events: none; opacity: var(--scanner-active); transform: scale(calc(1.06 - var(--scanner-active) * .06)); transition: opacity .3s ease, transform .45s ease; background: linear-gradient(#9aeee6, #9aeee6) left top / 13px 1px, linear-gradient(#9aeee6, #9aeee6) left top / 1px 13px, linear-gradient(#9aeee6, #9aeee6) right top / 13px 1px, linear-gradient(#9aeee6, #9aeee6) right top / 1px 13px, linear-gradient(#9aeee6, #9aeee6) left bottom / 13px 1px, linear-gradient(#9aeee6, #9aeee6) left bottom / 1px 13px, linear-gradient(#9aeee6, #9aeee6) right bottom / 13px 1px, linear-gradient(#9aeee6, #9aeee6) right bottom / 1px 13px; background-repeat: no-repeat; }
.inventory-scanner-lock::before { content: 'HULL SCAN'; position: absolute; left: 0; right: 0; top: 5px; color: #9aeee6; font: 7px system-ui, sans-serif; letter-spacing: .15em; text-align: center; }
.inventory-scanner-lock::after { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 12%; background: linear-gradient(transparent, #8cefe716); border-bottom: 1px solid #8cefe766; animation: inventory-scanner-pass 3s ease-in-out infinite; animation-play-state: var(--scanner-play); }
@keyframes inventory-scanner-orbit { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }
@keyframes inventory-scanner-pass { 0% { transform: translateY(0); opacity: 0; } 15%, 80% { opacity: .7; } 100% { transform: translateY(730%); opacity: 0; } }
@media (prefers-reduced-motion: reduce) {
  .inventory-ship-rings, .inventory-ship-rings::before, .inventory-ship-rings::after, .inventory-scanner-sweep, .inventory-scanner-lock, .inventory-scanner-lock::after { animation: none; transition: none; }
  .inventory-scanner-sweep, .inventory-scanner-lock::after { display: none; }
}
.inventory-ship-label { position: absolute; bottom: 0; left: 20%; right: 20%; display: flex; flex-direction: column; align-items: center; gap: 3px; text-align: center; pointer-events: none; }
.inventory-ship-label span { color: #64878e; font-size: 7px; letter-spacing: .2em; }
.inventory-ship-label strong { color: #b0c5c9; font-size: 11px; font-weight: 400; }
.inventory-slot { position: relative; width: 100%; min-width: 0; min-height: 64px; display: flex; flex-direction: column; justify-content: center; gap: 7px; padding: 10px; border: 1px solid #78999e40; border-radius: 5px; background: linear-gradient(115deg, #1b303b99, #101e28cc); color: #d7e3e6; text-align: left; transition: border-color .15s, background .15s, box-shadow .15s; }
.inventory-slot > span:first-child { color: #8da8b0; font-size: 8px; font-weight: 500; letter-spacing: .13em; }
.inventory-slot strong { display: block; overflow: hidden; font-size: 11px; font-weight: 500; line-height: 1.3; text-overflow: ellipsis; }
.inventory-slot small { display: block; margin-top: 3px; color: #87a0a9; font-size: 9px; }
.inventory-slot.empty { border-style: dashed; border-color: #78999e2a; background: #101d2455; }
.inventory-slot.empty strong { color: #708b95; font-weight: 400; }
.inventory-slot.filled::before { content: ''; position: absolute; left: -1px; top: 12px; bottom: 12px; width: 2px; border-radius: 1px; background: #80b9b6; }
.inventory-slot:hover { border-color: #8cddd980; background: #1a343e; }
.inventory-slot.compatible { border-color: #8cddd988; box-shadow: inset 0 0 15px #8cddd90b; }
.inventory-slot.selected, .inventory-item.selected { border-color: #b2ece1; background: #24454b; box-shadow: 0 0 0 2px #8cddd91a; }
.inventory-slot-content { display: flex; align-items: center; gap: 8px; min-width: 0; }
.inventory-slot-content > span:last-child { min-width: 0; }
.inventory-slot-content img { flex: none; width: 28px; height: 28px; object-fit: contain; }
.inventory-system-icon { display: grid; place-items: center; flex: none; width: 25px; height: 25px; color: #9dc9ca; }
.inventory-system-icon svg { width: 23px; height: 23px; }
.inventory-empty-mark { flex: none; width: 25px; color: #4e707c; text-align: center; font-size: 20px; font-weight: 200; }
.inventory-drone-bays { flex: none; }
.inventory-drone-bays > .inventory-section-title { margin-bottom: 10px; }
.inventory-drone-bays > .inventory-section-title > span { color: #88a7b0; font-size: 9px; }
.inventory-drone-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.inventory-drone-grid .inventory-slot { min-height: 69px; padding: 8px 10px; }
.inventory-drone-grid .inventory-slot-content { gap: 6px; }
.inventory-drone-grid .inventory-slot small { font-size: 8px; white-space: nowrap; }
.inventory-drone-grid p { grid-column: 1 / -1; margin: 0; color: #6d8b94; font-size: 11px; }
.inventory-vitals { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; flex: none; }
.inventory-vitals > div { display: grid; grid-template-columns: 1fr auto; gap: 8px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 5px; background: #12232b66; }
.inventory-vitals span { color: #93aab1; font-size: 8px; letter-spacing: .14em; }
.inventory-vitals strong { color: #cbd9dd; font-size: 10px; font-weight: 500; font-variant-numeric: tabular-nums; }
.inventory-meter { grid-column: 1 / -1; height: 3px; background: #384e5766; }
.inventory-meter i, .inventory-capacity i { display: block; width: var(--fill); height: 100%; background: #b4c5c8; }
.inventory-shield .inventory-meter i { background: #79b9d8; }
.inventory-inspector { display: flex; align-items: center; gap: 12px; flex: none; min-height: 73px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 5px; background: #182c3344; }
.inventory-inspector.has-selection { border-color: #8cddd955; background: #1c393c66; }
.inventory-inspector-icon { display: grid; place-items: center; flex: none; width: 34px; height: 34px; color: #729c9f; }
.inventory-inspector-icon img, .inventory-inspector-icon svg { width: 100%; height: 100%; object-fit: contain; }
.inventory-inspector > div:nth-child(2) { flex: 1; min-width: 0; }
.inventory-inspector span { color: #8aadb0; font-size: 7px; letter-spacing: .13em; text-transform: uppercase; }
.inventory-inspector strong { display: block; color: #cbdcdf; font-size: 12px; font-weight: 500; }
.inventory-inspector p { margin: 3px 0 0; color: #8fa7ae; font-size: 10px; line-height: 1.5; }
.inventory-inspector button { align-self: flex-start; border: 0; background: transparent; color: #9bb6bb; font-size: 20px !important; }
.inventory-hint { margin: -3px 0; flex: none; min-height: 16px; color: #85a5ad; font-size: 10px; }
.inventory-fitting-actions { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px; flex: none; padding-top: 12px; border-top: 1px solid var(--line); }
.inventory-fitting-actions button, .inventory-fitting-actions select { min-height: 34px; padding: 7px 10px; border: 1px solid #78999e4a; border-radius: 4px; background: #142831; color: #cbdde0; font-size: 10px !important; }
.inventory-fitting-actions label { display: flex; flex: 1; flex-direction: column; gap: 5px; min-width: 140px; }
.inventory-fitting-actions label > span { color: #88a3ab; font-size: 7px; letter-spacing: .15em; }
.inventory-fitting-actions select { width: 100%; }
.inventory-fitting-actions [data-buy-equipment] { border-color: #83b5ad88; background: #254640; color: #c7e8da; }
.inventory-fitting-actions button:hover:not(:disabled) { border-color: var(--cyan); }
.inventory-cargo { display: flex; flex-direction: column; gap: 16px; background: linear-gradient(145deg, #111f29bb, #0b171fe0); }
.inventory-capacity { flex: none; height: 3px; margin-top: -7px; background: #354b5466; }
.inventory-capacity i { background: #8abeb5; min-width: 0; }
.inventory-right-tabs { display: flex; gap: 4px; padding: 5px 0 8px; border-bottom: 1px solid var(--line); flex: none; }
.inventory-right-tabs button { position: relative; flex: 1 1 0; min-width: 0; min-height: 38px; padding: 8px 6px; border: 0; border-radius: 4px; background: transparent; color: #829da7; font-size: 12px !important; white-space: nowrap; }
.inventory-right-tabs button[aria-pressed=true] { color: #e3eded; }
.inventory-right-tabs button[aria-pressed=true]::after { content: ''; position: absolute; bottom: -4px; left: 12px; right: 12px; height: 2px; background: var(--cyan); }
.inventory-right-tabs button > span:not(.inventory-control-fx) { margin-left: 4px; padding: 2px 4px; border-radius: 3px; background: #314b5555; color: #a3bfc6; font-size: 9px; font-variant-numeric: tabular-nums; }
.inventory-items-page, .inventory-deliveries-page, .inventory-collectables-page { display: flex; flex-direction: column; gap: 15px; flex: 1; min-height: 0; overflow: auto; scrollbar-width: thin; scrollbar-color: #496a72 transparent; }
#ship-inventory:not([data-right-page=inventory]) .inventory-items-page,
#ship-inventory:not([data-right-page=deliveries]) .inventory-deliveries-page,
#ship-inventory:not([data-right-page=collectables]) .inventory-collectables-page { display: none; }
.inventory-collectables-page { overflow: clip; animation: inventory-collectables-enter .22s ease-out both; }
.inventory-collectable-grid { display: grid; grid-template-columns: repeat(var(--collectable-columns),minmax(0,1fr)); grid-template-rows: repeat(var(--collectable-rows),minmax(0,1fr)); flex: 1; gap: 12px; min-width: 0; min-height: 0; }
#ship-inventory .inventory-collectable-slot { position: relative; display: block; min-width: 0; min-height: 0; max-height: 220px; padding: 0; overflow: hidden; border: 1px solid #6caaa54d; border-radius: 6px; background: radial-gradient(ellipse at 50% 35%,#79d7c416,transparent 75%),#12252d99; color: #dcebea; text-align: center; }
#ship-inventory .inventory-collectable-slot.is-missing { border-style: dashed; border-color: #63818940; background: radial-gradient(circle at 50% 40%,#518b9510,transparent 70%),#0c1d2780; }
.inventory-collectable-number { position: absolute; top: 10px; left: 12px; color: #71999e; font-size: 9px; letter-spacing: .1em; }
.inventory-collectable-check { position: absolute; top: 8px; right: 11px; color: #97ddbc; font-size: 12px; }
.inventory-collectable-art { position: absolute; inset: 27px 14px 54px; }
.inventory-collectable-art img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; filter: drop-shadow(0 0 10px #72d8df22); }
.inventory-collectable-question { position: absolute; inset: 22px 12px 52px; display: grid; place-items: center; color: #698d97; font-size: clamp(30px,5vh,52px); font-weight: 300; text-shadow: 0 0 20px #67b7c233; }
.inventory-collectable-name { position: absolute; bottom: 24px; left: 10px; right: 10px; display: grid; place-items: center; min-height: 28px; color: #d1e8e8; font-size: 11px; font-weight: 500; line-height: 1.25; overflow-wrap: anywhere; }
.inventory-collectable-slot.is-missing .inventory-collectable-name { color: #78969e; }
.inventory-collectable-slot > small { position: absolute; bottom: 10px; left: 6px; right: 6px; color: #86b3b7; font-size: 8px; letter-spacing: .1em; }
.inventory-collectable-slot.is-missing > small { color: #56767f; }
#ship-inventory .inventory-collectable-slot[data-collectable-clue]:hover { border-color: #8ad9d1; background-color: #14333d; }
#ship-inventory .inventory-collectable-slot[data-collectable-clue]:focus-visible { outline: 2px solid #8de8e7; outline-offset: -3px; }
.inventory-collectable-slot[data-collectable-clue][data-clue-available=true] > small { color: #88bac2; }
.inventory-collectable-slot[data-collectable-clue][data-clue-available=false] > small { color: #6f8690; }
#ship-inventory[data-collectable-compact=true] .inventory-collectable-slot { display: grid; grid-template-columns: 34px minmax(0,1fr); grid-template-rows: auto auto; align-content: center; gap: 3px 6px; padding: 10px 6px 6px; text-align: left; }
#ship-inventory[data-collectable-compact=true] .inventory-collectable-art,
#ship-inventory[data-collectable-compact=true] .inventory-collectable-question { position: relative; inset: auto; grid-row: 1 / 3; width: 32px; height: 32px; align-self: center; font-size: 28px; }
#ship-inventory[data-collectable-compact=true] .inventory-collectable-name { position: static; grid-column: 2; min-height: 0; align-self: end; font-size: 10px; text-align: left; }
#ship-inventory[data-collectable-compact=true] .inventory-collectable-slot > small { position: static; grid-column: 2; font-size: 7px; letter-spacing: .04em; }
#ship-inventory[data-collectable-compact=true] .inventory-collectable-number { top: 3px; left: 6px; font-size: 7px; }
#ship-inventory[data-collectable-compact=true] .inventory-collectable-check { top: 3px; right: 6px; font-size: 7px; }
.inventory-collectables-hint { flex: none; margin: 0; color: #7b9ba5; font-size: 10px; line-height: 1.5; }
#ship-inventory .inventory-collectables-page .inventory-delivery-pages { min-height: 40px; padding: 8px; }
@keyframes inventory-collectables-enter { from { opacity: 0; transform: translateY(5px); } to { opacity: 1; transform: translateY(0); } }
@media (max-width:1150px) { .inventory-right-tabs button { padding-inline: 4px; font-size: 11px !important; } }
.inventory-filters { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; flex: none; }
.inventory-filters button { padding: 5px 10px; border: 1px solid transparent; border-radius: 4px; background: transparent; color: #8ca6b0; font-size: 10px !important; }
.inventory-filters button[aria-pressed=true] { border-color: #7ba3aa44; background: #223943aa; color: #d9e6e8; }
.inventory-filters button:hover { color: #e3eeee; }
.inventory-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 9px; flex: none; }
.inventory-item { --tile-glow: #82bbb9; position: relative; display: block; min-width: 0; aspect-ratio: .9; overflow: hidden; padding: 0; border: 1px solid #6b949e4d; border-radius: 5px; background: radial-gradient(ellipse at 50% 35%, color-mix(in srgb, var(--tile-glow) 10%, transparent), transparent 75%), #16273099; color: #d4e5e8; transition: border-color .15s, background .15s, transform .15s; }
.inventory-item[data-resource=dilithium] { --tile-glow: #b29ada; }
.inventory-item[data-resource=deuranium], .inventory-item[data-kind=freight] { --tile-glow: #d7ba7a; }
.inventory-item[data-resource=food] { --tile-glow: #a7c693; }
.inventory-item[data-kind=contract] { --tile-glow: #a0b9e3; }
.inventory-item:not(.inventory-blank):not(:disabled):hover { border-color: #a4d3d1; background-color: #203741; transform: translateY(-2px); }
.inventory-item-icon { position: absolute; inset: 14% 17% 30%; display: grid; place-items: center; color: #acd2d3; }
.inventory-item-icon img, .inventory-item-icon svg { width: 100%; height: 100%; object-fit: contain; }
.inventory-item-name { position: absolute; bottom: 7px; left: 5px; right: 5px; overflow: hidden; color: #bdd0d6; font-size: 9px; font-weight: 400; line-height: 1.2; text-align: center; text-overflow: ellipsis; white-space: nowrap; }
.inventory-item-count { position: absolute; top: 5px; right: 5px; max-width: calc(100% - 10px); overflow: hidden; padding: 1px 4px; border-radius: 3px; background: #07131ee6; color: #d9e9e9; font-size: 9px; font-weight: 500; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.inventory-item-tag { position: absolute; top: 5px; left: 5px; color: #96b9d7; font-size: 5px; letter-spacing: .03em; }
.inventory-blank { display: grid; place-items: center; border-style: dashed; border-color: #78999e20; background: #09151b33; color: #526f7a44; font-size: 15px; }
.inventory-weapon-tile::before { content: ''; position: absolute; left: 8px; right: 8px; bottom: 0; height: 2px; background: #7bb8b176; }
.inventory-stow { border-style: dashed; border-color: #8cbbb966; background: #14302f55; }
.inventory-stow-plus { position: absolute; inset: 8% 0 22%; display: grid; place-items: center; color: #97c7c2; font-size: 32px; font-weight: 200; }
.inventory-stow .inventory-item-name { color: #9cbdbd; font-size: 8px; }
.inventory-item.drop-target, .inventory-slot.drop-target { border-color: #b7f5e1; background: #28524b; opacity: 1; }
.inventory-item[draggable=true], .inventory-slot[draggable=true] { cursor: grab !important; touch-action: none; }
.inventory-item[draggable=true]:active, .inventory-slot[draggable=true]:active { cursor: grabbing !important; }
.inventory-item img, .inventory-slot img { pointer-events: none; user-select: none; }
.inventory-item.inventory-filter-dim { opacity: .3; }
.inventory-blank:hover { border-color: #8cbbb980; background: #16333066; }
.inventory-system-icon img { width: 100%; height: 100%; object-fit: contain; }
.inventory-drone-grid .inventory-system-icon { width: 36px; height: 36px; }
.inventory-arrange-hint { margin: 0; color: #7e9da6; font-size: 10px; }
#ship-inventory .inventory-drag-ghost { position: fixed; z-index: 10025; pointer-events: none; transform: translate(-50%, -65%); opacity: .9; border: 1px solid #b7f5e1; background: #183d43; box-shadow: 0 8px 28px #0009; }
.inventory-filter-empty { margin: 0; color: #8fa8b0; font-size: 11px; }
.inventory-page-nav { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-top: auto; padding: 18px 8px 16px; border-top: 1px solid var(--line); color: #7e9aa4; font-size: 10px; flex: none; }
.inventory-page-nav > div { display: flex; align-items: center; gap: 9px; }
.inventory-page-nav > div > span { min-width: 30px; text-align: center; font-variant-numeric: tabular-nums; }
.inventory-page-nav button { width: 26px; height: 26px; padding: 0; border: 1px solid #78999e40; border-radius: 4px; background: #142630; color: #c3dde1; font-size: 18px !important; line-height: 1; }
.inventory-deliveries-summary { display: flex; justify-content: space-between; align-items: center; color: #8da9b2; font-size: 9px; letter-spacing: .14em; }
.inventory-deliveries-summary strong { color: #c9dce0; font-weight: 500; font-variant-numeric: tabular-nums; }
.inventory-contract-cards { display: flex; flex-direction: column; gap: 12px; }
.inventory-contract-card { padding: 16px; border: 1px solid #78999e40; border-radius: 6px; background: linear-gradient(120deg, #1d343d99, #10232d99); }
.inventory-contract-main { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; align-items: center; gap: 14px; }
.inventory-contract-planet { width: 64px; height: 64px; border-radius: 50%; background: #0a172355; box-shadow: 0 0 24px #7bb8b112; }
.inventory-contract-planet img { width: 100%; height: 100%; object-fit: contain; }
.inventory-contract-details { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.inventory-contract-kicker { overflow: hidden; color: #7ea4af; font-size: 7px; letter-spacing: .1em; text-overflow: ellipsis; white-space: nowrap; }
.inventory-contract-destination { overflow: hidden; color: #e4eff1; font-size: 21px; font-weight: 400; text-overflow: ellipsis; white-space: nowrap; }
.inventory-contract-cargo { display: flex; align-items: center; gap: 5px; color: #a6c1c9; font-size: 10px; }
.inventory-contract-cargo img { width: 18px; height: 18px; object-fit: contain; }
.inventory-contract-cargo span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.inventory-contract-payment { display: flex; flex-direction: column; align-items: flex-end; gap: 3px; padding-left: 12px; border-left: 1px solid var(--line); }
.inventory-contract-payment span, .inventory-contract-payment small { color: #8ba3ac; font-size: 7px; letter-spacing: .07em; }
.inventory-contract-payment strong { color: var(--gold); font-size: 20px; font-weight: 400; font-variant-numeric: tabular-nums; }
.inventory-contract-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 16px; padding-top: 12px; border-top: 1px solid var(--line); }
.inventory-contract-actions button { min-width: 0; min-height: 36px; padding: 8px 14px; border: 1px solid #78999e55; border-radius: 4px; background: #1a323d; color: #c6dce0; font-size: 10px !important; line-height: 1.4; }
.inventory-contract-actions button:first-child { border-color: #8cbbb980; background: #294943; color: #d9eae3; }
.inventory-contract-actions button[aria-pressed=true] { color: #a7d9bf; }
.inventory-contract-actions button:hover:not(:disabled) { border-color: var(--cyan); }
.inventory-deliveries-empty { display: flex; flex: 1; flex-direction: column; align-items: center; justify-content: center; gap: 12px; min-height: 240px; padding: 30px; border: 1px dashed #78999e33; border-radius: 6px; text-align: center; }
.inventory-deliveries-empty img { width: 58px; height: 58px; opacity: .55; }
.inventory-deliveries-empty strong { color: #c9dadd; font-size: 17px; font-weight: 400; }
.inventory-deliveries-empty span { max-width: 270px; color: #89a4ae; font-size: 11px; line-height: 1.7; }
.inventory-delivery-note { margin: 0; padding: 10px; border: 1px solid #c79a8566; border-radius: 4px; color: #e7b49f; font-size: 11px; }
@media (max-width: 1150px) {
  #ship-inventory { padding: 16px; }
  .inventory-header { gap: 20px; padding: 20px; }
  .inventory-standing { display: none; }
  .inventory-loadout, .inventory-cargo { padding: 18px; }
  .inventory-rig { grid-template-columns: minmax(105px, 1fr) minmax(95px, 1.1fr) minmax(105px, 1fr); gap: 8px; }
  .inventory-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
  .inventory-drone-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inventory-drone-grid .inventory-slot small { font-size: 9px; }
  .inventory-slot { padding: 8px; }
}
@media (max-width: 760px) {
  #ship-inventory { padding: 6px; backdrop-filter: blur(5px); }
  .inventory-panel { height: 100%; border-radius: 8px; grid-template-rows: auto auto minmax(0, 1fr); }
  .inventory-header { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 14px 10px; padding: 18px; }
  .inventory-heading { grid-column: 1; grid-row: 1; }
  .inventory-header h2 { font-size: 25px; }
  .inventory-kicker { font-size: 7px; letter-spacing: .14em; }
  .inventory-close { grid-column: 2; grid-row: 1; align-self: start; width: 30px; height: 30px; }
  .inventory-close small { display: none; }
  .inventory-resources { grid-column: 1 / -1; gap: 24px; }
  .inventory-resource { min-width: 105px; gap: 7px; }
  .inventory-resource img { width: 25px; height: 25px; }
  .inventory-resource strong { font-size: 15px; }
  .inventory-resource small { font-size: 7px; }
  .inventory-view-tabs { display: flex; gap: 0; border-bottom: 1px solid var(--line); }
  .inventory-view-tabs button { flex: 1; min-height: 42px; border: 0; border-bottom: 2px solid transparent; background: #0c1c25; color: #8ca8b2; font-size: 11px !important; }
  .inventory-view-tabs button[aria-pressed=true] { border-bottom-color: var(--cyan); background: #1b323a; color: #deeded; }
  .inventory-body { display: block; }
  .inventory-loadout, .inventory-cargo { height: 100%; padding: 16px; border: 0; }
  #ship-inventory[data-view=loadout] .inventory-cargo, #ship-inventory[data-view=cargo] .inventory-loadout { display: none; }
  .inventory-rig { grid-template-columns: minmax(92px, 1fr) minmax(85px, 1.1fr) minmax(92px, 1fr); gap: 6px; min-height: 280px; flex-basis: 280px; }
  .inventory-slot { min-height: 57px; padding: 7px; gap: 6px; }
  .inventory-slot strong { font-size: 10px; }
  .inventory-slot > span:first-child { font-size: 7px; }
  .inventory-slot-content { gap: 5px; }
  .inventory-slot-content img { width: 22px; height: 22px; }
  .inventory-system-icon { width: 20px; height: 20px; }
  .inventory-system-icon svg { width: 20px; height: 20px; }
  .inventory-ship-label { left: 15%; right: 15%; }
  .inventory-ship-label strong { font-size: 10px; }
  .inventory-ship-label span { font-size: 6px; }
  .inventory-drone-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .inventory-item-name { font-size: 10px; }
  .inventory-page-nav { min-height: 38px; }
}
@media (max-width: 370px) {
  .inventory-loadout, .inventory-cargo { padding: 12px; }
  .inventory-rig { grid-template-columns: minmax(82px, 1fr) minmax(65px, .9fr) minmax(82px, 1fr); gap: 4px; }
  .inventory-system-icon { display: none; }
  .inventory-slot-content img { width: 18px; height: 18px; }
  .inventory-section-title > span { font-size: 9px; letter-spacing: .1em; }
  .inventory-section-title > strong { font-size: 9px; }
  .inventory-filters button { padding: 5px 8px; }
  .inventory-contract-main { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 9px; }
  .inventory-contract-planet { width: 42px; height: 42px; }
  .inventory-contract-destination { font-size: 17px; }
  .inventory-contract-payment { padding-left: 8px; }
  .inventory-contract-payment strong { font-size: 16px; }
}
@media (max-height: 750px) and (min-width: 761px) {
  .inventory-header { padding: 14px 22px; }
  .inventory-header h2 { font-size: 25px; }
  .inventory-loadout, .inventory-cargo { padding: 15px 18px; gap: 11px; }
  .inventory-rig { min-height: 225px; flex-basis: 225px; }
  .inventory-slot { min-height: 49px; gap: 5px; padding: 7px; }
  .inventory-drone-grid .inventory-slot { min-height: 55px; }
  .inventory-inspector { min-height: 63px; padding: 9px 12px; }
  .inventory-vitals > div { padding: 8px 10px; }
  .inventory-fitting-actions { padding-top: 8px; }
  .inventory-grid { gap: 7px; }
}
@media (prefers-reduced-motion: reduce) {
  #ship-inventory *, #ship-inventory *::before, #ship-inventory *::after { animation: none !important; transition: none !important; }
}

/* Fit the console to its viewport; inventory overflow uses the page arrows. */
.inventory-loadout, .inventory-items-page, .inventory-deliveries-page {
  overflow: hidden;
  scrollbar-width: none;
}
.inventory-loadout::-webkit-scrollbar,
.inventory-items-page::-webkit-scrollbar,
.inventory-deliveries-page::-webkit-scrollbar { display: none; }
.inventory-rig { flex: 1 1 0; min-height: 0; }
.inventory-grid {
  flex: 1 1 0; min-height: 0;
  grid-template-rows: repeat(4, minmax(0, 1fr));
}
.inventory-grid > .inventory-item { aspect-ratio: auto; min-height: 0; }
.inventory-item-icon img, .inventory-item-icon svg { position: absolute; inset: 0; }
.inventory-grid .inventory-item-icon { inset: 10% 17% 18px; }
.inventory-grid .inventory-item-name { bottom: 4px; }
.inventory-arrange-hint { flex: none; }
.inventory-slot {
  min-height: clamp(34px, 6.2vh, 64px);
  padding: clamp(5px, 1vh, 10px);
  gap: clamp(3px, .6vh, 7px);
}
.inventory-drone-grid .inventory-slot { min-height: clamp(40px, 7.5vh, 69px); }
.inventory-contract-cards { flex: 1; min-height: 0; }
.inventory-contract-card { min-height: 0; }
.inventory-deliveries-empty { min-height: 0; }
@media (max-width: 1150px) {
  .inventory-grid { grid-template-rows: repeat(6, minmax(0, 1fr)); }
  .inventory-drone-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 760px) {
  .inventory-loadout, .inventory-cargo { gap: 10px; }
  .inventory-rig { flex: 1 1 0; min-height: 0; }
  .inventory-drone-grid { gap: 6px; }
  .inventory-drone-grid .inventory-slot { padding: 6px; }
  .inventory-drone-grid .inventory-system-icon { width: 24px; height: 28px; }
  .inventory-drone-grid .inventory-slot strong { font-size: 9px; }
  .inventory-drone-grid .inventory-slot small { font-size: 7px; white-space: normal; }
}
@media (max-height: 600px) and (min-width: 761px) {
  .inventory-header { padding: 10px 18px; }
  .inventory-loadout, .inventory-cargo { padding: 10px 14px; gap: 8px; }
  .inventory-rig { padding-bottom: 22px; }
  .inventory-weapons, .inventory-systems { gap: 5px; }
  .inventory-slot { min-height: 32px; padding: 4px 6px; gap: 2px; }
  .inventory-slot > span:first-child { font-size: 7px; }
  .inventory-slot strong { font-size: 10px; }
  .inventory-slot-content img, .inventory-system-icon { width: 20px; height: 20px; }
  .inventory-drone-grid .inventory-slot { min-height: 38px; padding: 4px 6px; }
  .inventory-drone-grid .inventory-system-icon { width: 24px; height: 24px; }
  .inventory-vitals > div { padding: 6px 8px; gap: 4px; }
  .inventory-items-page, .inventory-deliveries-page { gap: 8px; }
  .inventory-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); grid-template-rows: repeat(4, minmax(0, 1fr)); gap: 5px; }
  .inventory-contract-card { padding: 8px; }
  .inventory-contract-planet { width: 42px; height: 42px; }
  .inventory-contract-main { grid-template-columns: 42px minmax(0, 1fr) auto; gap: 8px; }
  .inventory-contract-actions { margin-top: 7px; padding-top: 7px; }
}

/* DOTs use compact square bays rather than full system cards. */
.inventory-drone-grid {
  --dot-bay-size: 64px;
  grid-template-columns: repeat(auto-fill, var(--dot-bay-size));
  justify-content: start;
  gap: 8px;
}
.inventory-drone-grid .inventory-dot-slot {
  display: block; width: var(--dot-bay-size); height: var(--dot-bay-size);
  min-height: 0; padding: 0; aspect-ratio: 1;
}
.inventory-dot-slot .inventory-dot-number {
  position: absolute; top: 4px; left: 5px;
  font-size: 7px; line-height: 1; letter-spacing: .05em;
}
.inventory-dot-icon { position: absolute; inset: 9px 9px 15px; display: grid; place-items: center; }
.inventory-dot-icon img { width: 100%; height: 100%; object-fit: contain; }
.inventory-dot-icon > span { color: #6f979e; font-size: 23px; font-weight: 200; line-height: 1; }
.inventory-dot-caption { position: absolute; bottom: 6px; left: 3px; right: 3px; color: #9bb9bf; font-size: 7px; line-height: 1; text-align: center; letter-spacing: .08em; }
.inventory-dot-health { position: absolute; bottom: 0; left: 5px; right: 5px; height: 2px; background: #45626a66; }
.inventory-dot-health i { display: block; height: 100%; background: #8bbeb4; }
.inventory-drone-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 10px; }
.inventory-drone-controls button { min-height: 34px; padding: 7px 12px; border: 1px solid #8bbeb488; border-radius: 4px; background: #24473f; color: #d6f0e5; font-size: 11px !important; font-weight: 600; }
.inventory-drone-controls button:hover:not(:disabled) { border-color: #b0ecd4; background: #305d50; }
.inventory-drone-controls button:disabled { background: #17282f; border-color: #78999e40; }
.inventory-drone-controls [data-request-distress]:enabled { color: #ffe1a0; border-color: #c69c4baa; background: #3a3024; box-shadow: inset 0 0 12px #e8b54c12; }
.inventory-drone-controls > span { color: #8da8ad; font-size: 10px; }
.inventory-repair-mode { display: flex; flex: none; gap: 2px; padding: 2px; border: 1px solid #78999e40; border-radius: 5px; background: #0d1c24; }
.inventory-drone-controls .inventory-repair-mode button { min-height: 28px; padding: 5px 10px; border: 1px solid transparent; border-radius: 3px; background: transparent; color: #8ea9b0; font-size: 10px !important; font-weight: 500; }
.inventory-drone-controls .inventory-repair-mode button[aria-pressed=true] { border-color: #8bbeb466; background: #28473f; color: #e1f4e9; }
.inventory-drone-controls .inventory-repair-mode button:hover { border-color: #8bbeb488; background: #233b3e; }
.inventory-drone-controls > span { flex: 1; min-width: 100px; }
@media (max-width: 760px), (max-height: 600px) {
  .inventory-drone-grid { --dot-bay-size: 48px; gap: 6px; }
  .inventory-dot-icon { inset: 7px 6px 13px; }
  .inventory-dot-caption { bottom: 5px; font-size: 6px; }
  .inventory-dot-slot .inventory-dot-number { top: 3px; left: 4px; font-size: 6px; }
  .inventory-drone-controls { gap: 5px 10px; margin-top: 8px; }
  .inventory-drone-controls button { min-height: 31px; padding: 6px 9px; font-size: 10px !important; }
  .inventory-drone-controls > span { font-size: 9px; }
}
/* Engine artwork stays visible even in the narrow loadout layout. */
@media (max-width: 370px) {
  .inventory-system[data-equipment-kind="engineering"] .inventory-system-icon { display: grid; width: 18px; height: 18px; }
}

/* Keep the hull's own aspect ratio and reserve a real row for its name. */
#ship-inventory .inventory-panel { grid-template-rows: auto minmax(0,1fr) auto; }
#ship-inventory .inventory-loadout { overflow: auto; scrollbar-width: thin; }
#ship-inventory .inventory-rig { grid-template-rows: minmax(0,1fr) auto; min-height: 230px; padding-bottom: 0; row-gap: 10px; }
#ship-inventory .inventory-weapons { grid-column: 1; grid-row: 1; }
#ship-inventory .inventory-ship { grid-column: 2; grid-row: 1; min-height: 140px; }
#ship-inventory .inventory-systems { grid-column: 3; grid-row: 1; }
#ship-inventory .inventory-ship-label { position: static; grid-column: 1 / -1; grid-row: 2; min-height: 34px; padding: 5px 8px; z-index: 2; background: #0c1c24; border-radius: 4px; }
#ship-inventory .inventory-ship-label strong { font-size: 13px; line-height: 1.3; overflow-wrap: anywhere; }
#ship-inventory .inventory-ship-label span { font-size: 9px; letter-spacing: .05em; line-height: 1.4; }
#ship-inventory .inventory-cargo { gap: 11px; }
#ship-inventory .inventory-grid { grid-template-rows: repeat(4,minmax(0,1fr)); }
#ship-inventory [data-inventory-page="add"] { width: auto; padding: 0 7px; font-size: 10px !important; }
#ship-inventory .inventory-restock { flex: none; padding: 6px 10px; border: 1px solid #8cb5a555; border-radius: 4px; background: #20382f; color: #bfe3cf; font-size: 10px; }
#ship-inventory .inventory-inspector { display: grid; grid-template-columns: minmax(160px,1fr) minmax(140px,1fr) minmax(180px,1fr) minmax(180px,1fr); gap: 12px; margin: 0; padding: 12px 22px; min-height: 64px; max-height: 220px; overflow: auto; border: 0; border-top: 1px solid var(--line); border-radius: 0; background: #13272c; }
#ship-inventory .inventory-inspector:not(.has-selection) > div { grid-column: 1 / -1; }
#ship-inventory .inventory-inspector.has-selection > p { margin: 0; }
#ship-inventory .inventory-detail-heading { display: flex; align-items: center; gap: 10px; min-width: 0; }
#ship-inventory .inventory-detail-heading > div { min-width: 0; }
#ship-inventory .inventory-detail-heading strong { overflow-wrap: anywhere; }
#ship-inventory .inventory-detail-art { width: 46px; height: 46px; flex: none; display: grid; place-items: center; }
#ship-inventory .inventory-detail-art img, #ship-inventory .inventory-detail-art svg { width: 100%; height: 100%; object-fit: contain; }
#ship-inventory .inventory-detail-stats { display: flex; flex-wrap: wrap; gap: 8px 14px; min-width: 0; }
#ship-inventory .inventory-detail-stats strong { font-size: 13px; }
#ship-inventory .inventory-detail-stats small { display: block; font-size: 9px; }
#ship-inventory .positive { color: #a3dfb6; }
#ship-inventory .negative { color: #edaa91; }
#ship-inventory .inventory-detail-actions { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6px; min-width: 0; }
#ship-inventory .inventory-detail-actions label { width: 100%; font-size: 9px; color: var(--muted); }
#ship-inventory .inventory-detail-actions select { display: block; width: 100%; min-width: 0; margin-top: 3px; }
#ship-inventory .inventory-inspector button, #ship-inventory .inventory-inspector select { border: 1px solid #799fa566; border-radius: 4px; background: #16313b; color: #deebec; padding: 6px 9px; font-size: 11px !important; line-height: 1.3; }
#ship-inventory .inventory-inspector [data-equipment-action="equip"] { background: #2a5144; border-color: #8fc9ac; }
#ship-inventory .inventory-transfer-ghost { position: fixed; width: 64px; height: 64px; z-index: 10030; pointer-events: none; }
#ship-inventory .inventory-transfer-ghost img, #ship-inventory .inventory-transfer-ghost svg { width: 100%; height: 100%; object-fit: contain; }
@media (max-width: 1150px) {
  #ship-inventory .inventory-inspector { grid-template-columns: minmax(160px,1fr) minmax(180px,1fr) minmax(180px,1fr); }
  #ship-inventory .inventory-inspector.has-selection > p { display: none; }
}
@media (max-width: 760px) {
  #ship-inventory .inventory-panel { grid-template-rows: auto auto minmax(0,1fr) auto; }
  #ship-inventory .inventory-grid { grid-template-rows: repeat(3,minmax(0,1fr)); }
  #ship-inventory .inventory-rig { min-height: 192px; row-gap: 5px; }
  #ship-inventory .inventory-ship { min-height: 130px; }
  #ship-inventory .inventory-inspector { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 8px; padding: 9px 12px; max-height: 200px; }
  #ship-inventory .inventory-detail-art { width: 32px; height: 32px; }
  #ship-inventory .inventory-detail-heading strong { font-size: 11px; }
  #ship-inventory .inventory-detail-actions { grid-column: 1 / -1; }
  #ship-inventory .inventory-detail-actions label { flex: 1; width: auto; min-width: 100px; }
  #ship-inventory .inventory-inspector > [role="status"] { display: block; grid-column: 1 / -1; }
  #ship-inventory .inventory-standing { display: none; }
}

/* Inventory uses measured pages, never a scrolling or compressed item list. */
#ship-inventory { overscroll-behavior: contain; }
#ship-inventory .inventory-loadout,
#ship-inventory .inventory-loadout .outfit-loadout,
#ship-inventory .inventory-items-page,
#ship-inventory .inventory-deliveries-page,
#ship-inventory .inventory-inspector { overflow: clip; min-height: 0; scrollbar-width: none; }
#ship-inventory .inventory-items-page,
#ship-inventory .inventory-deliveries-page { overflow-clip-margin: 8px; }
#ship-inventory .inventory-loadout { gap: 8px; }
#ship-inventory .inventory-loadout .outfit-loadout { gap: 8px; }
#ship-inventory .inventory-rig { min-height: 0; grid-template-rows: minmax(0,1fr) 42px; row-gap: 4px; }
#ship-inventory .inventory-ship { min-height: 0; overflow: clip; }
#ship-inventory .inventory-ship-label { min-height: 0; justify-content: center; padding: 3px 6px; }
#ship-inventory .inventory-ship-label strong,
#ship-inventory .inventory-ship-label span { max-width: 100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#ship-inventory .inventory-weapons,
#ship-inventory .inventory-systems { gap: 6px; }
#ship-inventory .inventory-rig .inventory-slot,
#ship-inventory .inventory-rig .outfit-mount { flex: 0 0 68px; height: 68px; min-height: 68px; padding: 6px; gap: 3px; }
#ship-inventory .inventory-rig .inventory-slot strong { font-size: 11px; }
#ship-inventory .inventory-rig .inventory-system-icon { display: grid; width: 30px; height: 30px; }
#ship-inventory .inventory-rig .inventory-slot-content { gap: 6px; }
#ship-inventory .inventory-rig .inventory-slot small { font-size: 8px; }
#ship-inventory .inventory-inspector:not(.has-selection),
#ship-inventory[data-dragging=true] .inventory-inspector { display: none; }
#ship-inventory .inventory-grid { grid-template-columns: repeat(var(--inventory-columns),minmax(0,1fr)); grid-template-rows: repeat(var(--inventory-rows),minmax(0,1fr)); gap: 8px; }
#ship-inventory .inventory-grid .inventory-item-icon { inset: 7px 10px 26px; }
#ship-inventory .inventory-grid .inventory-item-name { bottom: 6px; font-size: 11px; }
#ship-inventory .inventory-grid .inventory-item-count { font-size: 11px; }
#ship-inventory .inventory-bay-pages,
#ship-inventory .inventory-delivery-pages { display: flex; flex: none; justify-content: center; align-items: center; gap: 10px; height: 24px; color: var(--muted); font-size: 11px; }
#ship-inventory .inventory-delivery-pages { height: auto; min-height: 56px; padding: 16px 8px; }
#ship-inventory .inventory-bay-pages[hidden] { display: none; }
#ship-inventory .inventory-bay-pages button,
#ship-inventory .inventory-delivery-pages button { width: 30px; height: 24px; padding: 0; border: 1px solid var(--line); border-radius: 4px; background: #18313b; color: #d5e7e8; font-size: 18px; line-height: 1; }
#ship-inventory .inventory-drone-controls { margin-top: 0; }
#ship-inventory .inventory-vitals > div { padding: 7px 9px; gap: 5px; }
#ship-inventory[data-details=overlay] .inventory-body,
#ship-inventory[data-details=overlay] .inventory-view-tabs { visibility: hidden; }
#ship-inventory[data-details=overlay] .inventory-inspector.has-selection { position: absolute; z-index: 5; inset: 82px 12px 12px; display: flex; flex-direction: column; justify-content: center; align-items: stretch; gap: 18px; padding: 20px; max-height: none; border: 1px solid #8bb9af66; border-radius: 8px; background: #10242c; }
#ship-inventory[data-details=overlay] .inventory-inspector.has-selection > p { display: block; font-size: 12px; }
#ship-inventory[data-details=overlay] .inventory-detail-heading strong { font-size: 17px; }
#ship-inventory[data-details=overlay] .inventory-detail-art { width: 64px; height: 64px; }
#ship-inventory[data-details=overlay] .inventory-detail-stats { gap: 18px; }
#ship-inventory[data-details=overlay] .inventory-detail-stats strong { font-size: 17px; }
#ship-inventory[data-details=overlay] .inventory-detail-actions button { min-height: 38px; }
@media (max-height: 680px) {
  #ship-inventory { padding: 6px; }
  #ship-inventory .inventory-header { padding: 10px 14px; gap: 8px; }
  #ship-inventory .inventory-kicker { display: none; }
  #ship-inventory .inventory-header h2 { font-size: 23px; margin: 3px 0; }
  #ship-inventory .inventory-loadout, #ship-inventory .inventory-cargo { padding: 10px 12px; gap: 6px; }
  #ship-inventory .inventory-drone-controls > span { display: none; }
  #ship-inventory .inventory-vitals > div { padding: 5px 7px; }
  #ship-inventory .inventory-right-tabs button { min-height: 34px; padding-block: 6px; }
  #ship-inventory .inventory-page-nav { padding-top: 16px; }
  #ship-inventory .inventory-ship-label strong { font-size: 12px; }
}

/* Controls echo the hull scanner without covering labels or intercepting drags. */
#ship-inventory button:not(.inventory-drag-ghost) {
  --control-accent: #8cefe7;
  --control-corner: 8px;
  --control-lift: -2px;
  --control-halo: 16px;
  --control-press-halo: 22px;
  position: relative;
  isolation: isolate;
  transition: color .2s ease, border-color .2s ease, background-color .2s ease,
    box-shadow .25s ease, transform .2s ease;
}
#ship-inventory .inventory-control-fx {
  position: absolute;
  inset: 2px;
  z-index: -1;
  display: block;
  overflow: hidden;
  margin: 0;
  padding: 0;
  border-radius: inherit;
  background: none;
  opacity: 0;
  pointer-events: none;
  transition: opacity .25s ease;
}
#ship-inventory .inventory-control-fx::before {
  content: '';
  position: absolute;
  inset: 1px;
  border-radius: 2px;
  background:
    linear-gradient(var(--control-accent), var(--control-accent)) left top / var(--control-corner) 1px,
    linear-gradient(var(--control-accent), var(--control-accent)) left top / 1px var(--control-corner),
    linear-gradient(var(--control-accent), var(--control-accent)) right top / var(--control-corner) 1px,
    linear-gradient(var(--control-accent), var(--control-accent)) right top / 1px var(--control-corner),
    linear-gradient(var(--control-accent), var(--control-accent)) left bottom / var(--control-corner) 1px,
    linear-gradient(var(--control-accent), var(--control-accent)) left bottom / 1px var(--control-corner),
    linear-gradient(var(--control-accent), var(--control-accent)) right bottom / var(--control-corner) 1px,
    linear-gradient(var(--control-accent), var(--control-accent)) right bottom / 1px var(--control-corner);
  background-repeat: no-repeat;
  transform: scale(.94);
  transition: transform .3s ease;
}
#ship-inventory .inventory-control-fx::after {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 35%, #8cefe708 43%, #b9fff12e 49%, #cafff85c 50%, #8cefe710 53%, transparent 65%);
  transform: translateX(-110%);
}
#ship-inventory button:not(:disabled):is([aria-pressed=true], .selected) {
  box-shadow: inset 0 0 14px #8cefe70d, 0 0 0 1px #8cefe72b;
}
#ship-inventory button:not(:disabled):is([aria-pressed=true], .selected) > .inventory-control-fx {
  opacity: .5;
}
#ship-inventory button:not(:disabled):is([aria-pressed=true], .selected) > .inventory-control-fx::before {
  transform: scale(1);
}
#ship-inventory button:not(:disabled):focus-visible {
  border-color: var(--control-accent);
  box-shadow: inset 0 0 18px #8cefe715, 0 0 var(--control-halo) #8cefe72e;
}
#ship-inventory button:not(:disabled):focus-visible > .inventory-control-fx { opacity: 1; }
#ship-inventory button:not(:disabled):focus-visible > .inventory-control-fx::before { transform: scale(1); }
#ship-inventory button:not(:disabled):focus-visible > .inventory-control-fx::after {
  animation: inventory-control-scan 1.8s ease-in-out infinite;
}
@media (hover: hover) and (pointer: fine) {
  #ship-inventory button:not(:disabled):not(.drag-source):hover {
    border-color: var(--control-accent);
    box-shadow: inset 0 0 18px #8cefe715, 0 0 var(--control-halo) #8cefe72e;
    transform: translateY(var(--control-lift));
  }
  #ship-inventory button:not(:disabled):not(.drag-source):hover > .inventory-control-fx { opacity: 1; }
  #ship-inventory button:not(:disabled):not(.drag-source):hover > .inventory-control-fx::before { transform: scale(1); }
  #ship-inventory button:not(:disabled):not(.drag-source):hover > .inventory-control-fx::after {
    animation: inventory-control-scan 1.8s ease-in-out infinite;
  }
}
#ship-inventory button:not(:disabled):not(.inventory-drag-ghost):active {
  transform: translateY(0) scale(.98);
  border-color: #d4fff6;
  box-shadow: inset 0 0 22px #8cefe72b, 0 0 0 2px #8cefe74d, 0 0 var(--control-press-halo) #8cefe74d;
  transition-duration: .07s;
}
#ship-inventory :is(.inventory-page-nav, .inventory-bay-pages, .inventory-delivery-pages) button,
#ship-inventory .inventory-close {
  --control-corner: 4px;
  --control-lift: -1px;
  --control-halo: 10px;
  --control-press-halo: 12px;
}
#ship-inventory .inventory-contract-actions button {
  --control-corner: 6px;
  --control-halo: 10px;
  --control-press-halo: 12px;
}
#ship-inventory :is(.inventory-page-nav, .inventory-bay-pages, .inventory-delivery-pages) button:not([data-inventory-page=add]) > .inventory-control-fx::after,
#ship-inventory .inventory-close > .inventory-control-fx::after { display: none; }
#ship-inventory button:disabled > .inventory-control-fx,
#ship-inventory .drag-source > .inventory-control-fx,
#ship-inventory .inventory-drag-ghost > .inventory-control-fx { display: none; }
@keyframes inventory-control-scan {
  0% { transform: translateX(-110%); opacity: 0; }
  12%, 65% { opacity: 1; }
  82%, 100% { transform: translateX(110%); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  #ship-inventory button:not(.inventory-drag-ghost),
  #ship-inventory .inventory-control-fx::before { transform: none !important; }
  #ship-inventory .inventory-control-fx::after { display: none; }
}

/* Device hardware condition stays on the item card; repairs live in its details. */
.outfit-device-condition { display: inline-flex; align-items: center; gap: 4px; color: #a3d9c8; font-size: 10px; font-variant-numeric: tabular-nums; white-space: nowrap; line-height: 1.2; }
.outfit-device-condition svg { width: 12px; height: 12px; flex: none; }
.outfit-device-condition.worn { color: #e7c28a; }
.outfit-device-condition.offline { color: #f0a493; }
#ship-inventory .inventory-grid .outfit-device-condition { position: absolute; z-index: 2; top: 5px; right: 5px; padding: 3px 4px; border-radius: 3px; background: #10242de8; }
#ship-inventory .inventory-device-repair { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; width: 100%; padding-bottom: 7px; border-bottom: 1px solid var(--line); }
#ship-inventory .inventory-device-cost { flex: 1; min-width: 100px; }
#ship-inventory .inventory-device-cost .outfit-material { display: flex; align-items: center; gap: 6px; }
#ship-inventory .inventory-device-cost .outfit-mineral-icon { width: 26px; height: 26px; flex: none; }
#ship-inventory .inventory-device-cost strong { display: inline; }
#ship-inventory .inventory-device-cost small { display: block; font-size: 9px; color: var(--muted); letter-spacing: 0; text-transform: none; }
#ship-inventory .inventory-device-cost .short { color: #efaf94; }
#ship-inventory .inventory-device-repair > p { width: 100%; margin: 0; font-size: 10px; }
#ship-inventory [data-repair-device] { border-color: #8fc9ac; background: #2a5144; }
#ship-inventory .inventory-slot small:has(.outfit-device-condition) { margin-top: 2px; line-height: 1; }

/* Permanent hull systems stay outside equipment fitting and bay pagination. */
#ship-inventory .inventory-hull-system {
  position: relative; flex: 0 0 78px; min-height: 78px; min-width: 0; width: 100%;
  display: grid; grid-template-columns: 24px minmax(0,1fr); align-content: center;
  align-items: center; gap: 3px 6px; padding: 6px;
  border: 1px solid #b6a97c66; border-radius: 5px;
  background: linear-gradient(115deg, #34372d88, #13252ccc); color: #d7e3e6;
  text-align: left;
}
#ship-inventory .inventory-hull-system.selected { border-color: var(--cyan); background: #264440; }
#ship-inventory .inventory-hull-system-label { grid-column: 1 / -1; color: #c7bb91; font-size: 7px; letter-spacing: .05em; }
#ship-inventory .inventory-hull-system .inventory-system-icon { display: grid; place-items: center; width: 24px; height: 28px; color: #d3c596; }
#ship-inventory .inventory-hull-system .outfit-symbol { width: 24px; height: 28px; color: inherit; }
#ship-inventory .inventory-hull-system-info { min-width: 0; }
#ship-inventory .inventory-hull-system strong { display: block; font-size: 11px; font-weight: 500; line-height: 1.2; }
#ship-inventory .inventory-hull-system b { display: inline-block; color: #d3c596; font-size: 9px; font-weight: 500; white-space: nowrap; }
#ship-inventory .inventory-hull-system small { display: block; margin-top: 2px; color: #a1b5b8; font-size: 8px; line-height: 1.2; }
#ship-inventory .inventory-hull-system em { color: #d7e3e6; font-style: normal; white-space: nowrap; }
