/* Ship consoles share the pause terminal's materials, without styling other panels. */
#sidePanel {
  --console-amber:#edbf7a; --console-ink:#e5e5d5; --console-muted:#acb5a5;
  --cockpit-edge:#717b69; --cockpit-edge-bright:#edbf7a;
  --cockpit-text:#e5e5d5; --cockpit-muted:#acb5a5;
  --side-control-min:44px;
  position:fixed; inset: max(16px,env(safe-area-inset-top)) max(16px,env(safe-area-inset-right)) max(16px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));
  width:min(1240px,calc(100vw - 32px)); height:calc(100dvh - 32px); margin:auto;
  padding:8px; box-sizing:border-box; border:1px solid #828879; border-radius:9px;
  background:linear-gradient(120deg,#424b48,#252e2e); color:var(--console-ink);
  box-shadow:inset 0 0 0 3px #161e1e,0 20px 80px #000b; z-index:180;
}
#sidePanel.inventory-open { width:min(1240px,calc(100vw - 32px)); bottom:max(16px,env(safe-area-inset-bottom)); background:linear-gradient(120deg,#424b48,#252e2e); }
#sidePanel::before,#sidePanel::after,#sidePanel>.panel-header::after { display:none; }
#sidePanel .console-fascia { display:grid; grid-template-columns:1fr auto; gap:5px; padding:12px 20px; flex:none; background:linear-gradient(110deg,#c6c8b9,#969f96); color:#26302e; border:1px solid #a4ac9c; border-radius:4px; }
#sidePanel .console-fascia>span { font:10px monospace; letter-spacing:.18em; }
#sidePanel .console-fascia strong { grid-column:1; font:22px monospace; letter-spacing:.08em; }
#sidePanel .console-fascia .console-indicator { grid-column:2; grid-row:1/3; align-self:center; letter-spacing:.05em; }
#sidePanel>.panel-header { background:#202927; border:0; padding:8px 0; grid-template-columns:minmax(0,1fr) auto 44px; gap:8px; }
#sidePanel .tab-row { max-width:720px; grid-column:auto; grid-row:auto; }
#sidePanel .gs-controls,#sidePanel #closeSidePanel { grid-column:auto; grid-row:auto; }
#sidePanel button { color:var(--console-ink); background:linear-gradient(#3f4841,#2a332d); border:1px solid #747e6b; border-radius:3px; box-shadow:inset 0 1px #c7ccad18,0 2px 0 #111a17; font-family:monospace; }
#sidePanel button:hover:not(:disabled) { background:#4b5343; border-color:#d6c193; transform:none; }
#sidePanel button:disabled { opacity:.45; }
#sidePanel .gs-zoom-btn,#sidePanel #closeSidePanel { color:#dedfca; border-color:#747e6b; background:linear-gradient(#3f4841,#2a332d); }
#sidePanel .key-badge { color:#d4bd8e; border-color:#757f67; background:#35402d; }
#sidePanel .tab-btn.tab-active,#sidePanel [aria-pressed=true]:not(.equip-slot) { color:#f4cf8e; border-color:#d0a765; background:#3a3c29; }
#sidePanel :is(button,[tabindex]):focus-visible { outline:2px solid #f4cf8e; outline-offset:-3px; }
#sidePanel>.panel-body { padding:12px; background:#151e1b; scrollbar-color:#727c68 #151e1b; }
#sidePanel .hud-module { background:#202a23; border:1px solid #596753; border-radius:4px; box-shadow:inset 0 1px #c4cfa20b; padding:12px; }
#sidePanel :is(.section-title,.missions-section-title,.console-section-label) { color:var(--console-amber); font:11px/1.5 monospace; letter-spacing:.1em; }
#sidePanel .console-footer { display:flex; justify-content:space-between; gap:12px; padding:10px 12px 3px; color:#afb6a7; font:10px/1.4 monospace; letter-spacing:.08em; flex:none; }
body:has(#sidePanel:not(.hidden))>.toggle-ui-btn { visibility:hidden; }
#inventoryBackdrop { background:#070e12b8; }

#sideInventory .inventory-summary { background:#121c16; border:1px solid #6a735d; color:#d5b985; padding:10px 12px; margin-bottom:12px; gap:8px 20px; }
#sideInventory .inventory-summary strong { color:#efe5c7; }
#sideInventory .inventory-hull-name { color:#afbda2; }
#sideInventory .inventory-workspace { grid-template-columns:minmax(0,3fr) minmax(0,2fr); gap:12px; }
#sideInventory .inventory-section-head { gap:8px; flex-wrap:wrap; margin-bottom:8px; }
#sideInventory .inventory-section-head .wr-entry { color:#d3c29d; border-color:#747e6b; }
#sideInventory .inventory-compact-slots { grid-template-columns:repeat(4,minmax(0,1fr)); gap:6px; }
#sideInventory .inventory-compact-slot { background:#253027; border-color:#69745e; color:var(--console-ink); padding:7px 7px 7px 35px; }
#sideInventory .inventory-compact-slot small { color:#c1b48f; }
#sideInventory .inventory-compact-slot.tap-eligible { border-color:#efd098; border-style:dashed; }
#sideInventory .inv-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px; }
#sideInventory .inv-cell { border:1px solid #58674f; background:#121b16; min-height:82px; box-shadow:inset 0 2px 6px #070d09; border-radius:3px; }
#sideInventory .inv-cell:hover { border-color:#c4b382; }
#sideInventory .inv-qty { color:#edbf7a; background:#0e1712e6; border-color:#7a8062; }
#sideInventory #invSlotsUsed { color:#b1bd9f; }
#sideInventory #invFree { color:#c9d3b4; }
#sideInventory .inventory-details { background:#131d17; border-color:#5b6c51; padding:14px; min-height:100px; }
#sideInventory .inventory-details-hero { background:radial-gradient(circle at 50% 45%,#2a3a2a,#0e1712 70%); border-color:#5b6c51; border-radius:3px; }
#sideInventory .inventory-details h3 { color:#f0c783; font:16px/1.4 monospace; }
#sideInventory .inventory-details :is(small,.inventory-details-empty) { color:#aebca2; }
#sideInventory .inventory-details-actions button { background:#3a4230; border-color:#938761; color:#f0ddad; }
#sideInventory .inventory-jettison-actions { border-color:#58674f; }
#sideInventory .inventory-jettison-actions button[data-inventory-action=drop] { background:#54382f; border-color:#9b6c50; color:#f1d0b6; }
#sideInventory .inventory-drop-qty { color:#eadcb6; background:#101912; border-color:#7a8062; }
#sideInventory :is(.label,.hangar-hint) { color:#aebca2; }

/* Seven (nine on the v3 Fighter) real hit targets surround the drawing; only the SVG scales. */
#sideInventory .ship-schematic { height:440px; width:100%; margin:0; background:#111a14; border:2px solid #0a110d; border-radius:4px; box-shadow:0 0 0 1px #657359,inset 0 0 24px #050d08; overflow:hidden; container-type:inline-size; }
#sideInventory .schematic-drawing { position:absolute; inset:0; pointer-events:none; color:#abb794; }
#sideInventory .schematic-drawing svg { width:100%; height:100%; }
#sideInventory .schematic-axis { fill:none; stroke:#7d8a65; stroke-width:.6; stroke-dasharray:5 6; opacity:.55; }
#sideInventory .schematic-hull { fill:#364235; stroke:#d0d7b7; stroke-width:1; stroke-linejoin:round; }
#sideInventory .schematic-panels { fill:none; stroke:#9caa88; stroke-width:.65; }
#sideInventory .schematic-cockpit { fill:#111c17; stroke:#d5bc80; stroke-width:.8; }
#sideInventory .schematic-link { fill:#18231a; stroke:#889a71; stroke-width:1; }
#sideInventory .schematic-link path { fill:none; }
#sideInventory .schematic-link.is-selected { stroke:#ffd18a; stroke-width:2; fill:#e7b16a; }
#sideInventory .schematic-heading { position:absolute; inset:12px 12px auto; display:flex; justify-content:space-between; gap:8px; color:#aebb9a; font:9px monospace; letter-spacing:.09em; }
#sideInventory .schematic-hull-label { position:absolute; bottom:31px; width:100%; text-align:center; color:#e0d1a5; font:11px monospace; letter-spacing:.07em; }
#sideInventory .schematic-legend { position:absolute; bottom:10px; width:100%; text-align:center; color:#93a184; font:8px monospace; }
#sideInventory .equip-slot { position:absolute; width:24%; height:72px; min-width:0; min-height:44px; transform:none; box-sizing:border-box; display:grid; grid-template-columns:22px minmax(0,1fr); grid-template-rows:auto 1fr auto; gap:2px 5px; align-items:center; padding:6px; background:#1c281e; border:1px dashed #7d8a68; border-radius:3px; color:#d6dbbd; opacity:1; cursor:pointer; z-index:1; text-align:left; }
#sideInventory .equip-slot::before { display:none; }
#sideInventory .equip-slot .equip-tag { display:block; grid-column:1/-1; font:9px/1.3 monospace; color:#d8bb80; white-space:normal; text-transform:uppercase; }
#sideInventory .equip-slot .equip-icon { width:22px; height:25px; font:20px monospace; background-size:contain; background-repeat:no-repeat; background-position:center; }
#sideInventory .equip-name { font:10px/1.25 monospace; overflow-wrap:anywhere; }
#sideInventory .equip-slot .equip-tag { grid-row:1; }
#sideInventory .equip-slot .equip-icon { grid-row:2; grid-column:1; }
#sideInventory .equip-icon svg { width:100%; height:100%; }
#sideInventory .equip-slot .equip-name { grid-row:2; grid-column:2; font-size:11px; }
#sideInventory .equip-slot .equip-state { grid-row:3; }
#sideInventory .equip-state { grid-column:1/-1; font:8px monospace; color:#97ac87; letter-spacing:.07em; }
#sideInventory .equip-slot .equip-tier-dot { display:none!important; }
#sideInventory .equip-slot.filled { border-style:solid; background:#253125; }
#sideInventory .equip-slot.slot-locked { filter:none; opacity:1; color:#9caa96; background:#1c231d; border-color:#485342; }
#sideInventory .equip-slot.slot-locked .equip-tag,#sideInventory .equip-slot.slot-locked .equip-state { color:#9caa96; }
#sideInventory .equip-slot.is-selected { border:2px solid #efbf78; background:#3b3d28; box-shadow:0 0 0 1px #efbf7844; }
#sideInventory .equip-slot:is(.tap-eligible,.hover-eligible,.drag-over) { border:2px dashed #efbf78; background:#35402b; }
#sideInventory .equip-slot.tap-invalid { animation:none; border-color:#d8836b; }
#sideInventory .slot-shield { left:2%; top:40px; }
#sideInventory .slot-weapon-l { left:2%; top:135px; }
#sideInventory .slot-weapon-c { left:2%; top:230px; }
#sideInventory .slot-fuel { left:auto; right:2%; top:40px; }
#sideInventory .slot-weapon-r { left:auto; right:2%; top:135px; }
#sideInventory .slot-ammo { left:auto; right:2%; top:230px; }
#sideInventory .slot-engine { left:auto; right:2%; top:325px; }
/* v3 Fighter: 9 карток — схема на ряд вища. Крилові пари згори вниз так само,
   як їхні дула на корпусі: внутрішні F/R (біля носа), зовнішні Q/E (крила),
   далі центр і боєкомплект — лінії не перехрещуються. Рядки SVG-ліній
   у ShipSchematic.js (HULLS.raptor_v3.links) = top + 36.
   Ranger Hunter/Corvette мають ті самі Q/E — та сама розкладка (у Hunter V/ammo 🔒). */
:is(#sideInventory .ship-schematic[data-hull="raptor_v3"], #sideInventory .ship-schematic[data-hull="ranger_hunter"], #sideInventory .ship-schematic[data-hull="ranger_corvette"], #sideInventory .ship-schematic[data-hull="pirate_reaver"], #sideInventory .ship-schematic[data-hull="stalker_razorfin"]) { height:535px; }
:is(#sideInventory .ship-schematic[data-hull="raptor_v3"], #sideInventory .ship-schematic[data-hull="ranger_hunter"], #sideInventory .ship-schematic[data-hull="ranger_corvette"], #sideInventory .ship-schematic[data-hull="pirate_reaver"], #sideInventory .ship-schematic[data-hull="stalker_razorfin"]) .slot-weapon-l2 { left:2%; right:auto; top:230px; }
:is(#sideInventory .ship-schematic[data-hull="raptor_v3"], #sideInventory .ship-schematic[data-hull="ranger_hunter"], #sideInventory .ship-schematic[data-hull="ranger_corvette"], #sideInventory .ship-schematic[data-hull="pirate_reaver"], #sideInventory .ship-schematic[data-hull="stalker_razorfin"]) .slot-weapon-r2 { left:auto; right:2%; top:230px; }
:is(#sideInventory .ship-schematic[data-hull="raptor_v3"], #sideInventory .ship-schematic[data-hull="ranger_hunter"], #sideInventory .ship-schematic[data-hull="ranger_corvette"], #sideInventory .ship-schematic[data-hull="pirate_reaver"], #sideInventory .ship-schematic[data-hull="stalker_razorfin"]) .slot-weapon-c { top:325px; }
:is(#sideInventory .ship-schematic[data-hull="raptor_v3"], #sideInventory .ship-schematic[data-hull="ranger_hunter"], #sideInventory .ship-schematic[data-hull="ranger_corvette"], #sideInventory .ship-schematic[data-hull="pirate_reaver"], #sideInventory .ship-schematic[data-hull="stalker_razorfin"]) .slot-ammo { top:325px; }
:is(#sideInventory .ship-schematic[data-hull="raptor_v3"], #sideInventory .ship-schematic[data-hull="ranger_hunter"], #sideInventory .ship-schematic[data-hull="ranger_corvette"], #sideInventory .ship-schematic[data-hull="pirate_reaver"], #sideInventory .ship-schematic[data-hull="stalker_razorfin"]) .slot-engine { top:420px; }
@container(max-width:440px) {
  #sideInventory .equip-slot { width:28%; padding:4px; grid-template-columns:1fr; gap:2px; }
  #sideInventory .equip-slot .equip-icon { display:none; }
  #sideInventory .equip-slot .equip-tag { font-size:8px; }
  #sideInventory .equip-slot .equip-name { grid-column:1; font-size:9px; }
  #sideInventory .equip-slot .equip-state { font-size:7px; }
}

/* Journal uses the existing quest/mission dossier builders and category palette. */
#sideMissions .journal-toolbar { display:flex; gap:8px; margin-bottom:12px; }
#sideMissions .journal-toolbar button { padding:10px 16px; }
#sideMissions .journal-toolbar span { margin-left:8px; color:#c0cbab; }
#sideMissions .journal-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.7fr); gap:14px; min-height:330px; }
#sideMissions :is(.journal-directory,.journal-dossier) { padding:14px; background:#111b15; border:1px solid #606d53; border-radius:4px; min-width:0; }
#sideMissions .console-section-label { margin-bottom:16px; }
#sideMissions .journal-entry { display:flex; flex-direction:column; gap:9px; width:100%; margin-bottom:9px; padding:14px; text-align:left; border-left:3px solid var(--cat-color,#8c9a74); background:#202c20; overflow-wrap:anywhere; }
#sideMissions .journal-entry strong { font:14px/1.5 monospace; }
#sideMissions .journal-entry :is(small,span) { color:#b2bfa1; font:10px/1.5 monospace; }
#sideMissions .journal-status { display:inline-block; padding:8px 12px; color:#edbf7a; background:#313622; border:1px solid #767955; font:11px monospace; margin-bottom:20px; }
#sideMissions .mission-item { border:0; background:transparent; padding:0; box-shadow:none; }
#sideMissions :is(.mission-desc,.quest-title) { font-size:18px; line-height:1.65; color:#e3e6cd; }
#sideMissions .quest-title { margin-bottom:16px; color:#efca8b; }
#sideMissions .quest-title+.mission-desc { font-size:14px; }
#sideMissions .mission-meta { margin:24px 0; padding:16px 0; border-block:1px solid #4e5d44; display:flex; flex-direction:column; gap:14px; font:13px/1.6 monospace; }
#sideMissions .mission-dest { color:#b7c7a4; }
#sideMissions .mission-reward { color:#eac385; }
#sideMissions .mission-abandon-btn { padding:10px 18px; background:#50362d; border-color:#a57856; color:#f1d4b7; }
#sideMissions .no-missions { color:#b1bea3; line-height:1.7; }
/* Трекінг місії (MissionTracking.js): TRACK / PLOT ROUTE над дос'є, виділений рядок */
#sideMissions .mission-track-bar { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
#sideMissions :is(.mission-track-btn,.mission-route-btn) { min-height:40px; padding:10px 16px; font:12px/1.2 monospace; letter-spacing:.06em; text-transform:uppercase; background:#24311f; border:1px solid #767955; color:#e3e6cd; cursor:pointer; }
#sideMissions .mission-track-btn[aria-pressed="true"] { background:#3d3a1f; border-color:#edbf7a; color:#f6d79c; }
#sideMissions :is(.mission-track-btn,.mission-route-btn):hover { border-color:#edbf7a; }
#sideMissions .journal-entry.is-tracked { background:#2a3121; box-shadow:inset 0 0 0 1px #8f7c4c; }
#sideMissions .journal-entry.is-tracked small { color:#edbf7a; }
@media (max-width: 639px) { #sideMissions :is(.mission-track-btn,.mission-route-btn) { min-height:44px; flex:1 1 0; } }
#sideMissions #journalBack { display:none; margin-bottom:16px; padding:8px 12px; }
#sideMissions #clearCompletedButton { width:100%; margin-top:12px; }
/* Space Book — той самий каркас список/картка, що й журнал місій */
#sideSpaceBook .spacebook-workspace { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.9fr); gap:14px; min-height:330px; }
#sideSpaceBook :is(.spacebook-directory,.spacebook-dossier) { padding:14px; background:#111b15; border:1px solid #606d53; border-radius:4px; min-width:0; }
#sideSpaceBook .console-section-label { margin-bottom:16px; }
#sideSpaceBook .spacebook-category { margin:4px 0 10px; color:#edbf7a; font:11px/1.5 monospace; letter-spacing:.14em; text-transform:uppercase; }
#sideSpaceBook .spacebook-category span { margin-left:6px; color:#b2bfa1; letter-spacing:0; }
#sideSpaceBook .spacebook-entry { display:flex; flex-direction:column; gap:7px; width:100%; margin-bottom:9px; padding:13px 14px; text-align:left; border-left:3px solid #c8a0ff; background:#202c20; overflow-wrap:anywhere; }
#sideSpaceBook .spacebook-entry.is-locked { border-left-color:#5d6656; color:#9aa48f; }
#sideSpaceBook .spacebook-entry strong { font:14px/1.5 monospace; }
#sideSpaceBook .spacebook-entry small { color:#b2bfa1; font:10px/1.5 monospace; }
#sideSpaceBook #spaceBookBack { display:none; margin-bottom:16px; padding:8px 12px; }
#sideSpaceBook .spacebook-photo { position:relative; margin:0 0 16px; aspect-ratio:16/9; overflow:hidden; background:#05070f; border:1px solid #6b745f; border-radius:3px; box-shadow:inset 0 0 0 2px #0b100d; }
#sideSpaceBook .spacebook-photo img { display:block; width:100%; height:100%; object-fit:cover; }
#sideSpaceBook .spacebook-photo-fallback { position:absolute; inset:0; background:radial-gradient(circle at 50% 50%,#000 0 13%,#ff8a3d55 15%,#ff8a3d14 30%,transparent 46%),radial-gradient(ellipse 60% 14% at 50% 52%,#ff9a3c40,transparent 70%),#05070f; }
#sideSpaceBook .is-locked .spacebook-photo-fallback { background:radial-gradient(circle at 50% 50%,#000 0 13%,#5d665633 15%,transparent 40%),#05070f; filter:grayscale(1); }
#sideSpaceBook .spacebook-title { margin:0 0 4px; color:#efca8b; font:20px/1.4 monospace; }
#sideSpaceBook .spacebook-subtitle { margin-bottom:14px; color:#c8a0ff; font:11px/1.5 monospace; letter-spacing:.14em; text-transform:uppercase; }
#sideSpaceBook .spacebook-summary { margin:0 0 18px; color:#e3e6cd; font-size:15px; line-height:1.65; }
#sideSpaceBook .spacebook-facts { display:grid; grid-template-columns:max-content minmax(0,1fr); gap:8px 16px; margin:0 0 18px; padding:14px 0; border-block:1px solid #4e5d44; font:12px/1.5 monospace; }
#sideSpaceBook .spacebook-facts dt { color:#b2bfa1; text-transform:uppercase; letter-spacing:.08em; }
#sideSpaceBook .spacebook-facts dd { margin:0; color:#eac385; }
#sideSpaceBook #spaceBookDetails h4 { margin:18px 0 8px; color:#edbf7a; font:12px monospace; letter-spacing:.14em; text-transform:uppercase; }
#sideSpaceBook #spaceBookDetails :is(p,li) { color:#d8dcc6; font-size:14px; line-height:1.65; }
#sideSpaceBook #spaceBookDetails p { margin:0 0 10px; }
#sideSpaceBook #spaceBookDetails ul { margin:0 0 10px; padding-left:20px; }

/* Hangar keeps its service context and scene, with room for the same diagram. */
#sidePanel.port-hangar .console-fascia,#sidePanel.port-hangar .console-footer { display:none; }
#sidePanel.port-hangar #sideInventory { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); grid-template-rows:auto max-content auto auto; /* max-content: банер сцени не стискається нижче вмісту в панелі зі скролом */ gap:12px; }
#sidePanel.port-hangar #hangarBackToPortButton { grid-column:1; grid-row:1; justify-self:start; }
#sidePanel.port-hangar .inventory-summary { grid-column:2; grid-row:1; }
/* Сцена тут — повноширинний банер: підпис зверху, компактний статус знизу зліва (не на всю ширину). */
#sidePanel.port-hangar .port-hangar-scene { grid-column:1/-1; grid-row:2; display:grid; grid-template-columns:minmax(0,1fr); grid-template-rows:auto auto; align-content:space-between; gap:10px; min-height:150px; padding:14px 18px; box-sizing:border-box; }
#sidePanel.port-hangar .port-ship-status { align-self:end; width:360px; max-width:100%; box-sizing:border-box; grid-template-columns:auto minmax(0,1fr); align-items:center; gap:6px 12px; padding:8px 10px; background:#10171ad9; border:1px solid #646b6366; }
#sidePanel.port-hangar #sideInventory .inventory-workspace { display:grid; grid-template-columns:minmax(0,3fr) minmax(0,2fr); grid-column:1/-1; grid-row:3; }
#sidePanel.port-hangar .inventory-services { grid-column:1; grid-row:4; align-self:stretch; }
#sidePanel.port-hangar .inventory-factions { grid-column:2; grid-row:4; align-self:stretch; }
#sidePanel.port-hangar #inventorySchematicWrap { display:block; }
#sidePanel.port-hangar #inventorySchematicToggle { display:none; }

@media(max-width:1099px),(max-height:600px) {
  #sidePanel,#sidePanel.inventory-open { inset:8px; width:calc(100vw - 16px); height:calc(100dvh - 16px); padding:6px; }
  #sideInventory .inventory-workspace,#sidePanel.port-hangar #sideInventory .inventory-workspace { grid-template-columns:minmax(0,1fr) minmax(0,1fr); }
  #sideInventory .inventory-compact-slots { order:1; grid-template-columns:repeat(3,minmax(0,1fr)); }
  #sideInventory #inventorySchematicToggle,#sidePanel.port-hangar #inventorySchematicToggle { display:block; order:2; background:#303c2d; border-color:#7f8b6b; color:#e2d4b0; }
  #sideInventory .inventory-schematic-wrap,#sidePanel.port-hangar #inventorySchematicWrap { display:none; order:3; margin-top:10px; }
  #sidePanel.schematic-open #sideInventory #inventorySchematicWrap { display:block; }
}
/* Чотири вкладки на 320–420px: щільніший підпис, щоб «SPACE BOOK»/«INVENTORY» не обрізались */
@media(max-width:420px) { #sidePanel .tab-row .tab-btn { padding-inline:2px; font-size:9px; letter-spacing:0; } }
/* Вкладка BANK (BankTabUI.js): рахунок карточками + журнал операцій (BankLedger.js) */
#sideBank { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.4fr); gap:14px; align-items:start; }
#sideBank.hidden { display:none; }
#sideBank :is(.bank-tab-account,.bank-tab-history) { padding:14px; background:#111b15; border:1px solid #606d53; border-radius:4px; min-width:0; }
#sideBank .console-section-label { margin-bottom:14px; }
#sideBank .bank-tab-cards { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
#sideBank .bank-tab-card { display:flex; flex-direction:column; gap:3px; padding:10px 12px; background:#202c20; border-left:3px solid #6b745f; min-width:0; }
#sideBank .bank-tab-card.tone-gain { border-left-color:#72e8b0; }
#sideBank .bank-tab-card.tone-loss { border-left-color:#ff7060; }
#sideBank .bank-tab-label { color:#b2bfa1; font:10px/1.4 monospace; letter-spacing:.12em; text-transform:uppercase; }
#sideBank .bank-tab-value { color:#efca8b; font:16px/1.3 monospace; overflow-wrap:anywhere; }
#sideBank .tone-gain .bank-tab-value { color:#9ff0c6; }
#sideBank .tone-loss .bank-tab-value { color:#ff9c8c; }
#sideBank .bank-tab-sub { color:#9aa48f; font:10px/1.4 monospace; }
#sideBank .bank-tab-note { margin:12px 0 0; color:#c9cfb6; font-size:12px; line-height:1.55; }
#sideBank .bank-tab-empty { margin:0; color:#9aa48f; font:12px/1.5 monospace; }
#sideBank .bank-tab-ledger { list-style:none; margin:0; padding:0; display:grid; gap:6px; max-height:min(52vh,420px); overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }
#sideBank .bank-tab-row { padding:8px 10px; background:#1a241a; border-left:3px solid #6b745f; }
#sideBank .bank-tab-row.tone-in, #sideBank .bank-tab-row.tone-gain { border-left-color:#72e8b0; }
#sideBank .bank-tab-row.tone-out { border-left-color:#edbf7a; }
#sideBank .bank-tab-row.tone-loss { border-left-color:#ff7060; }
#sideBank .bank-tab-row-main { display:flex; justify-content:space-between; gap:10px; font:13px/1.45 monospace; color:#e3e6cd; }
#sideBank .bank-tab-row-title { min-width:0; overflow-wrap:anywhere; }
#sideBank .bank-tab-row-amount { flex:none; white-space:nowrap; }
#sideBank .tone-in .bank-tab-row-amount, #sideBank .tone-gain .bank-tab-row-amount { color:#9ff0c6; }
#sideBank .tone-out .bank-tab-row-amount { color:#efca8b; }
#sideBank .tone-loss .bank-tab-row-amount { color:#ff9c8c; }
#sideBank .bank-tab-row-meta { display:flex; justify-content:space-between; gap:10px; margin-top:2px; color:#9aa48f; font:10px/1.4 monospace; }
@media(max-width:639px) {
  #sideInventory .inventory-summary { padding:6px 9px; gap:4px 9px; }
  #sidePanel .console-fascia { padding:10px; }
  #sidePanel .console-fascia strong { font-size:18px; }
  #sidePanel .console-fascia .console-indicator { display:none; }
  #sidePanel>.panel-header { grid-template-columns:minmax(0,1fr) 44px; gap:6px; }
  #sidePanel .tab-row { grid-column:1/-1; grid-row:1; max-width:none; }
  #sidePanel .gs-controls { grid-column:1; grid-row:2; }
  #sidePanel #closeSidePanel { grid-column:2; grid-row:2; }
  #sidePanel>.panel-body { padding:8px; }
  #sidePanel .hud-module { padding:9px; }
  #sideInventory .inventory-workspace,#sidePanel.port-hangar #sideInventory .inventory-workspace { grid-template-columns:minmax(0,1fr); }
  #sideInventory .inv-cell { min-height:74px; --item-icon-size:32px; }
  #sideInventory .inventory-compact-slots { grid-template-columns:repeat(2,minmax(0,1fr)); }
  #sideInventory .equip-slot { width:28%; padding:4px; grid-template-columns:1fr; gap:2px; }
  #sideInventory .equip-slot .equip-icon { display:none; }
  #sideInventory .equip-slot .equip-tag { font-size:8px; }
  #sideInventory .equip-name { font-size:9px; }
  #sideInventory .equip-slot .equip-name { grid-column:1; font-size:9px; }
  #sideInventory .equip-state { font-size:7px; }
  #sideInventory .schematic-heading { font-size:8px; }
  #sideInventory .schematic-legend { font-size:7px; }
  #sidePanel .console-footer { font-size:8px; padding-inline:4px; }
  #sidePanel .tab-btn { padding-inline:4px; font-size:11px; }
  #sidePanel .tab-btn .key-badge { display:none; }
  #sideSpaceBook .spacebook-workspace { display:block; min-height:0; }
  #sideBank { grid-template-columns:minmax(0,1fr); }
  #sideBank .bank-tab-ledger { max-height:none; }
  #sideSpaceBook .spacebook-dossier { display:none; }
  #sideSpaceBook.spacebook-detail-open .spacebook-directory { display:none; }
  #sideSpaceBook.spacebook-detail-open .spacebook-dossier { display:block; }
  #sideSpaceBook #spaceBookBack { display:block; }
  #sideSpaceBook .spacebook-facts { grid-template-columns:minmax(0,1fr); gap:2px; }
  #sideSpaceBook .spacebook-facts dd { margin-bottom:8px; }
  #sideMissions .journal-workspace { display:block; min-height:0; }
  #sideMissions .journal-dossier { display:none; }
  #sideMissions.journal-detail-open .journal-directory { display:none; }
  #sideMissions.journal-detail-open .journal-dossier { display:block; }
  #sideMissions #journalBack { display:block; }
  #sideMissions :is(.mission-desc,.quest-title) { font-size:16px; }
  #sideMissions .journal-toolbar button { padding:10px; flex:1; }
  #sidePanel.port-hangar #sideInventory { display:flex; flex-direction:column; }
}
@media(max-height:600px) {
  #sidePanel .console-fascia { padding:6px 12px; }
  #sidePanel .console-fascia strong { font-size:16px; }
  #sidePanel .console-fascia>span:not(.console-indicator) { display:none; }
  #sidePanel .console-footer { padding-top:5px; }
  #sidePanel.port-hangar .port-hangar-scene { min-height:96px; padding:10px 12px; gap:6px; }
  #sidePanel.port-hangar .port-ship-status { padding:6px 8px; gap:4px 10px; }
}
@media(prefers-reduced-motion:reduce) {
  #sidePanel *,#sidePanel *::before { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
