/* Planet services: analog instrument surfaces, isolated from other consoles. */
/* Keep damage simulation alive; only its cockpit presentation is hidden in port. */
body.port-open #criticalDamageCanvas { visibility:hidden; }
#portBackdrop { position:fixed; inset:0; z-index:89; pointer-events:auto; background:#10171d center/cover no-repeat; }
#portBackdrop::after { content:""; position:absolute; inset:0; background:linear-gradient(90deg,#080c13aa,transparent 45%,#080c1355); }
.port-legacy { display:none!important; }
.port-open { --port-line:#686b65; --port-ink:#e4e1d6; --port-amber:#d9ac62; }
.port-open #planetPanel,.port-open #tradePanel,.port-open #missionsPanel,.port-open #sidePanel.port-hangar {
  position:fixed; z-index:92; color:var(--port-ink); border:1px solid var(--port-line); border-radius:5px;
  background:#202526; box-shadow:0 24px 90px #000c,inset 0 0 0 4px #13181a;
  display:flex; flex-direction:column; overflow:hidden; max-width:calc(100vw - 48px); max-height:calc(100dvh - 48px);
  top:50%; left:50%; right:auto; bottom:auto; transform:translate(-50%,-50%);
}
.port-open #planetPanel { width:calc(100vw - 48px); height:calc(100dvh - 48px); background:transparent; }
.port-console .panel-header,.port-hangar .panel-header { flex:none; background:linear-gradient(#383b3b,#242829); border-bottom:1px solid #77796d; padding:14px 18px; letter-spacing:.1em; }
.port-console .panel-header>span { font-size:22px; }
.port-console .panel-body { min-height:0; overflow:auto; padding:20px; }
.port-open #planetPanel>.panel-body { flex:1; position:relative; display:grid; grid-template-columns:minmax(180px,290px) 1fr minmax(210px,310px); grid-template-rows:auto 1fr auto; gap:16px; max-height:none; }
#planetPanel .planet-port-scene-wrap { position:absolute; inset:0; width:100%; height:100%; aspect-ratio:auto; border:0; margin:0; border-radius:0; z-index:0; }
#planetPanel .planet-port-scene { width:100%; height:100%; object-fit:cover; opacity:.9; }
#planetPanel .planet-port-scene-wrap::after { content:""; position:absolute; inset:0; background:linear-gradient(0deg,#071017a8,transparent 50%,#07101788); }
#planetPanel .planet-greeting { bottom:auto; top:70px; left:20px; right:auto; max-width:280px; z-index:1; background:#131a20dc; border-left:2px solid #d9ac62; font-size:15px; padding:16px; }
.port-readout { grid-column:1/-1; z-index:1; background:#101619e8; color:#d9ac62; font:12px/1.7 monospace; padding:10px 14px; border:1px solid #626761; word-spacing:3px; }
#planetPanel .planet-secondary-info:not(.port-legacy) { grid-column:1; grid-row:3; z-index:1; background:#151c20eb; padding:12px; opacity:1; border:1px solid #61665f; }
#planetPanel .planet-table { width:100%; }
#planetPanel .planet-table td { color:#dddcd3; }
#planetPanel .reputation-badge,#planetMissionBadge { display:none; }
.port-activity { grid-column:3; grid-row:3; z-index:1; background:#151c20ed!important; text-align:left; padding:18px!important; border:1px solid #8b815e!important; display:grid; gap:10px; }
.port-activity span:first-child { font:11px monospace; letter-spacing:.17em; color:#9caaa8; }
.port-activity span:nth-child(2) { color:#9fc69c; }
.port-activity span:last-child { color:#d9ac62; font-size:12px; }
.port-console button,.port-hangar button { border-radius:3px; border:1px solid #73776f; background:linear-gradient(#3c4242,#282e30); color:#e9e4d8; min-height:44px; box-shadow:inset 0 1px #ffffff15; }
.port-console button:hover:not(:disabled),.port-hangar button:hover:not(:disabled) { border-color:#d9ac62; background:#444841; }
.port-console button:focus-visible,.port-hangar button:focus-visible { outline:2px solid #edc57f; outline-offset:2px; }
.port-console button:disabled { opacity:.55; cursor:not-allowed; }
.port-console .panel-footer { flex:none; background:#22282a; border-top:1px solid #77796d; padding:16px; }
#planetPanel .panel-footer-multi { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)) minmax(130px,.7fr); gap:12px; }
#planetPanel .panel-footer-multi>button { min-width:0; padding:18px; font-size:17px; text-align:left; letter-spacing:.08em; }
#planetPanel button small { display:block; margin-top:8px; font:12px/1.4 sans-serif; letter-spacing:0; color:#bfc5bc; }
#planetPanel #closePlanetButtonBottom { background:linear-gradient(#683b36,#432b29); border-color:#ae6960; }
.planet-dialogue-open .port-activity,.planet-dialogue-open .port-readout { display:none; }
.port-open #tradePanel { width:880px; }
.port-open #missionsPanel { width:960px; height:80dvh; }
#tradePanel.port-console .panel-body { background:linear-gradient(#182023ed,#182023f5),url('assets/scenes/port-trade.webp') center/cover; }
#tradePanel.port-console .trade-table { width:100%; table-layout:fixed; }
#tradePanel.port-console .trade-table th:last-child { width:36%; }
#tradePanel.port-console .trade-actions { display:flex; flex-wrap:wrap; gap:5px; }
#tradePanel.port-console .trade-btn { flex:1; padding:8px; white-space:normal; }
.port-mission-tabs { display:flex; gap:8px; position:sticky; top:-20px; z-index:2; background:#202526; padding:12px 0; }
.port-mission-tabs button { flex:1; }
.port-mission-tabs button[aria-pressed=true] { color:#edc57f; border-color:#d9ac62; }
.port-console .planet-quest-item,.port-console .mission-item { background:#161e22; padding:16px; border-radius:3px; }
.port-open #sidePanel.port-hangar { width:85vw; max-width:1600px; height:88dvh; }
.port-hangar-title { font:600 17px/1.4 monospace; color:#e2c18c; flex:1; }
.port-hangar-title { display:none; }
.port-hangar .port-hangar-title { display:block; }
#sidePanel.port-hangar>.panel-header { display:flex; min-height:54px; background:linear-gradient(#383b3b,#242829); padding:8px 12px; }
#sidePanel.port-hangar>.panel-header .gs-controls,#sidePanel.port-hangar>.panel-header .tab-row { display:none; }
#sidePanel.port-hangar>.panel-header::after { display:none; }
#sidePanel.port-hangar .hud-module { border-color:#59635f; background:#182024; }
#sidePanel.port-hangar .inventory-service-row { display:flex; flex-direction:column; align-items:stretch; padding:16px 0; gap:12px; }
#sidePanel.port-hangar .inventory-service-info { display:grid; gap:8px; }
#sidePanel.port-hangar .inventory-services { align-self:start; }
#sidePanel.port-hangar .inventory-factions { align-self:end; }
#sidePanel.port-hangar .inv-cell { border-color:#626a64; background:#202629; aspect-ratio:auto; min-height:66px; }
#sidePanel.port-hangar .inventory-compact-slot { border-color:#646d64; background:#252c2e; }
#sidePanel.port-hangar button,#planetPanel.port-console button,#tradePanel.port-console button,#missionsPanel.port-console button { border-color:#73776f; background:linear-gradient(#3c4242,#282e30); }
#planetPanel.port-console #closePlanetButtonBottom { background:linear-gradient(#683b36,#432b29); border-color:#ae6960; }
.port-ship-status { display:grid; gap:7px; }
.port-ship-status meter { width:100%; height:10px; accent-color:var(--hangar-meter,#d9ac62); -webkit-appearance:none; appearance:none; background:#0b1114; border:1px solid #646b63; border-radius:2px; }
/* Chromium/Edge ігнорує accent-color для meter — фарбуємо смугу явно кольором теми. */
.port-ship-status meter::-webkit-meter-bar { background:#0b1114; border:0; border-radius:0; height:100%; }
.port-ship-status meter::-webkit-meter-optimum-value,.port-ship-status meter::-webkit-meter-suboptimum-value,.port-ship-status meter::-webkit-meter-even-less-good-value { background:var(--hangar-meter,#d9ac62); }
.port-ship-status meter::-moz-meter-bar { background:var(--hangar-meter,#d9ac62); }
.port-open .toggle-ui-btn { visibility:hidden; }
.port-open #gsOpenBtn,.port-open #combatModes,.port-open #actionDock,.port-open #backButton,.port-open #hud { visibility:hidden; }
.port-open #planetPanel .panel-footer button { background:linear-gradient(#414544,#2a3031); border-color:#787b70; }
.port-open #planetPanel .panel-footer #closePlanetButtonBottom { background:linear-gradient(#683b36,#432b29); border-color:#ae6960; }
#planetName::before { content:'PLANET PORT'; display:block; color:#bcad8b; font:10px/1.8 monospace; letter-spacing:.18em; }
#tradePlanetName::before { content:'TRADE / '; color:#d9ac62; }
#missionsPlanetName::before { content:'MISSIONS / '; color:#d9ac62; }
#tradePanel.port-console .trade-table td { font-size:13px; }
#tradePanel.port-console .trade-balance-row,#tradePanel.port-console .trade-qty-row { font-size:13px; flex-wrap:wrap; }
#tradePanel.port-console .trade-btn { font-size:12px; }
.port-service-status { display:none; color:#b8c5a0; font:12px/1.7 monospace; }
.port-hangar .port-service-status { display:block; }
.port-hangar-footer { display:none; }
.port-hangar .port-hangar-footer { display:block; flex:none; padding:10px 18px; border-top:1px solid #61675e; color:#bbbcae; font:11px monospace; }
.port-hangar>.panel-header .tab-row,.port-hangar>.panel-header .gs-controls { display:none; }
.port-hangar #sideInventory { display:grid; grid-template-columns:minmax(0,35fr) minmax(0,40fr) minmax(0,25fr); grid-template-rows:auto 1fr auto; gap:16px; padding:18px; overflow:auto; flex:1; }
.port-hangar #hangarBackToPortButton { grid-column:1; grid-row:1; }
.port-hangar .inventory-summary { grid-column:2/4; grid-row:1; margin:0; }
.port-hangar-scene { display:none; }
.port-hangar .port-hangar-scene { display:flex; grid-column:1; grid-row:2/4; min-height:320px; flex-direction:column; justify-content:space-between; padding:18px; background:linear-gradient(#10171a44,#10171a22 60%,#10171af5),url('assets/scenes/port-hangar.webp') center/cover; border:1px solid #646b63; color:#e6c184; font:12px/1.8 monospace; }
.port-hangar #sideInventory .inventory-workspace { grid-column:2; grid-row:2/4; display:flex; flex-direction:column; min-width:0; }
.port-hangar .inventory-workspace>.hud-module { width:100%; box-sizing:border-box; }
.port-hangar .inventory-services { grid-column:3; grid-row:2; }
.port-hangar .inventory-factions { grid-column:3; grid-row:3; }
.port-hangar .inventory-service-row { display:flex; flex-direction:column; align-items:stretch; padding:16px 0; gap:12px; }
.port-hangar .inventory-service-info { display:grid; gap:8px; }
.port-hangar .hud-module { background:#171f23; border-color:#5a645f; border-radius:3px; }
.port-hangar .inventory-section-head { flex-wrap:wrap; }
.port-hangar #inventorySchematicWrap { display:none; }
.port-hangar #inventorySchematicToggle { display:none; }
.port-hangar #inventoryCompactSlots { display:grid; }
.port-open #inventoryBackdrop { z-index:90; }
.port-open #spOpenInventoryBtn,.port-open #spOpenMissionsBtn,.port-open #mmOpenMenuBtn { visibility:hidden; }
@media(max-width:1100px) {
 .port-open #sidePanel.port-hangar { width:calc(100vw - 48px); }
 .port-hangar #sideInventory { grid-template-columns:minmax(0,2fr) minmax(0,1fr); }
 .port-hangar .inventory-summary { grid-column:1/-1; grid-row:2; }
 .port-hangar .port-hangar-scene { grid-column:1/-1; grid-row:3; min-height:120px; }
 .port-hangar #sideInventory .inventory-workspace { grid-column:1; grid-row:4/6; }
 .port-hangar .inventory-services { grid-column:2; grid-row:4; }
 .port-hangar .inventory-factions { grid-column:2; grid-row:5; }
}
@media(max-width:700px) {
 .port-open #planetPanel,.port-open #tradePanel,.port-open #missionsPanel,.port-open #sidePanel.port-hangar { width:calc(100vw - 16px); max-width:calc(100vw - 16px); max-height:calc(100dvh - 16px); }
 .port-open #planetPanel,.port-open #sidePanel.port-hangar { height:calc(100dvh - 16px); }
 .port-open #planetPanel>.panel-body { display:flex; flex-direction:column; gap:10px; padding:12px; }
 #planetPanel .planet-port-scene-wrap { flex:none; }
 #planetPanel .planet-greeting { display:none; }
 #planetPanel .planet-secondary-info:not(.port-legacy) { margin-top:auto; }
 .port-readout { font-size:11px; }
 .port-activity { padding:12px!important; gap:5px; }
 #planetPanel .panel-footer-multi { grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; padding:10px; }
 #planetPanel .panel-footer-multi>button { padding:10px; font-size:13px; }
 #planetPanel button small { font-size:11px; margin-top:4px; }
 .port-console .panel-header { padding:10px 12px; }
 .port-console .panel-body { padding:12px; }
 #tradePanel .trade-table thead { display:none; }
 #tradePanel.port-console .trade-table,#tradePanel.port-console .trade-table tbody { display:block; width:100%; }
 #tradePanel.port-console .trade-table td { width:auto; max-width:none; overflow:visible; white-space:normal; text-overflow:clip; }
 #tradePanel.port-console .trade-table tr { display:grid; grid-template-columns:1fr 1fr; padding:12px 0; border-bottom:1px solid #60665e; }
 #tradePanel.port-console .trade-table td { padding:6px; }
 #tradePanel.port-console .trade-table td:first-child { grid-column:1/-1; font-weight:bold; color:#dfc18a; }
 #tradePanel .trade-table td:nth-child(2)::before { content:'Buy / unit: '; }
 #tradePanel .trade-table td:nth-child(3)::before { content:'Sell / unit: '; }
 #tradePanel .trade-table td:nth-child(4)::before { content:'Owned: '; }
 #tradePanel.port-console .trade-actions { grid-column:1/-1; }
 .port-hangar #sideInventory { display:flex; flex-direction:column; padding:12px; }
 .port-hangar #hangarBackToPortButton { order:0; }
 .port-hangar .inventory-summary { order:1; }
 .port-hangar .port-hangar-scene { order:2; min-height:100px; flex:none; }
 .port-hangar .inventory-services { order:3; }
 .port-hangar #sideInventory .inventory-workspace { order:4; }
 .port-hangar .inventory-factions { order:5; }
 #sidePanel.port-hangar .inventory-services,#sidePanel.port-hangar .inventory-factions { width:100%; box-sizing:border-box; align-self:stretch; }
 .port-hangar-title { font-size:12px; }
 .port-console .planet-quest-heading { flex-wrap:wrap; }
}
@media(max-height:500px) {
 #planetPanel .planet-secondary-info:not(.port-legacy) { display:none; }
 #planetPanel .planet-greeting { display:none; }
 .port-open #planetPanel>.panel-body { grid-template-rows:auto auto; gap:8px; padding:10px; }
 .port-activity { grid-column:2/4; grid-row:2; padding:8px!important; gap:3px; }
 #planetPanel .panel-footer-multi>button { padding:8px; }
 #planetPanel .panel-footer { padding:8px; }
 .port-hangar .port-hangar-scene { min-height:80px; }
}
@media(max-width:700px) and (max-height:650px) {
 .port-hangar .port-hangar-scene { display:none; }
 #sidePanel.port-hangar #sideInventory { gap:10px; }
 #sidePanel.port-hangar .inventory-summary { margin-bottom:0; }
}
/* Сцена порту ще вантажиться (SceneLoading.js): хаб уже працює, картинка проявиться сама. */
#planetPanel .planet-port-scene-wrap>.scene-uplink { display:none; position:absolute; left:50%; top:45%; transform:translate(-50%,-50%); z-index:2; padding:4px 10px; background:#101619e8; border:1px solid #626761; color:#d9ac62; font:11px/1.5 monospace; letter-spacing:.12em; pointer-events:none; }
#planetPanel .planet-port-scene-wrap.scene-loading>.scene-uplink { display:block; animation:port-uplink-pulse 1.2s ease-in-out infinite alternate; }
#planetPanel .planet-port-scene { transition:opacity .35s ease; }
#planetPanel .planet-port-scene-wrap.scene-loading>.planet-port-scene { opacity:0; }
@keyframes port-uplink-pulse { from { opacity:.45; } to { opacity:1; } }
@media (prefers-reduced-motion:reduce) { #planetPanel .planet-port-scene-wrap>.scene-uplink, #planetPanel .planet-port-scene { animation:none; transition:none; } }

/* Planet conversations have their own surface; encounter terminals remain independent. */
.port-open #planetPanel.planet-dialogue-open { max-width:min(1440px,calc(100vw - 48px)); background:#151c1f; }
.port-open #planetPanel.planet-dialogue-open>.panel-body { display:flex; padding:16px; overflow:hidden; }
#planetDialogueBlock {
  --dialogue-accent:#d9ac62;
  display:grid; grid-template-columns:minmax(0,1fr); flex:1; min-width:0; min-height:0;
  margin:0; width:100%; overflow:auto; border:1px solid #606a64; background:#172025;
  color:#e4e1d6; scrollbar-color:#788578 #101719;
}
#planetDialogueBlock.has-scene { grid-template-columns:minmax(0,55fr) minmax(0,45fr); }
.planet-dialogue-media { display:none; position:relative; min-width:0; min-height:0; background:radial-gradient(ellipse at center,#263437,#0b1217 80%); border-right:1px solid #606a64; }
.has-scene>.planet-dialogue-media { display:flex; align-items:center; justify-content:center; }
#planetDialogueScene { display:block; width:100%; height:100%; min-height:0; object-fit:contain; }
.planet-dialogue-media-label { position:absolute; bottom:16px; left:16px; right:16px; color:#c0c5b8; font:10px/1.6 monospace; letter-spacing:.15em; text-shadow:0 1px 4px #000; }
.planet-dialogue-terminal { min-width:0; min-height:0; overflow:auto; padding:clamp(16px,2.5vw,36px); scrollbar-color:#788578 #101719; }
#planetDialogueBlock:not(.has-scene) .planet-dialogue-terminal { width:100%; max-width:820px; margin:auto; box-sizing:border-box; }
.planet-dialogue-heading { border-bottom:1px solid #55605c; padding-bottom:20px; }
#planetDialogueLocation { display:block; font:11px/1.6 monospace; text-transform:uppercase; letter-spacing:.2em; color:#d9ac62; }
#planetDialogueTitle { margin:8px 0 0; font:500 clamp(22px,2vw,30px)/1.2 sans-serif; letter-spacing:-.02em; overflow-wrap:anywhere; color:#f0eadb; }
.planet-dialogue-speaker { display:flex; align-items:center; gap:14px; margin:24px 0 18px; }
#planetDialoguePortrait { width:64px; height:64px; object-fit:contain; background:#0e171b; border:1px solid #626e62; border-radius:3px; flex:none; }
.planet-dialogue-channel { display:block; color:#8faaa2; font:10px/1.6 monospace; letter-spacing:.16em; }
#planetDialogueSpeaker { display:block; color:#d6d9c8; font:600 12px/1.7 monospace; letter-spacing:.09em; }
#planetDialogueBlock #planetDialogueText { margin:0; padding:0; max-height:none; overflow:visible; color:#e4e1d6; font:16px/1.75 sans-serif; letter-spacing:0; white-space:pre-wrap; overflow-wrap:anywhere; text-align:left; }
#planetDialogueBlock .dialogue-skip-hint { margin-top:10px; padding:0; color:#b9b59b; line-height:1.5; }
#planetDialogueChoices { display:flex; flex-direction:column; gap:10px; margin-top:28px; padding-top:20px; border-top:1px solid #55605c; }
#planetPanel #planetDialogueChoices>button { min-height:48px; min-width:0; width:100%; padding:13px 16px; text-align:left; white-space:normal; overflow-wrap:anywhere; font:14px/1.5 sans-serif; letter-spacing:0; border:1px solid #6c7871; border-left:3px solid #b39968; background:linear-gradient(110deg,#303b3a,#222d30); color:#ece6d8; box-shadow:none; }
#planetPanel #planetDialogueChoices>button:hover { border-color:#d9ac62; background:#3c4740; }
#planetPanel #planetDialogueChoices>button:focus-visible,#planetDialogueText:focus-visible { outline:2px solid #edc57f; outline-offset:3px; }
#planetDialogueBlock.dialogue-opening .planet-dialogue-terminal { opacity:0; }
#planetDialogueBlock.dialogue-ready .planet-dialogue-terminal { animation:planet-conversation-arrive .18s ease-out; }
@keyframes planet-conversation-arrive { from { opacity:0; } to { opacity:1; } }
@media(max-width:999px) {
  #planetDialogueBlock.has-scene { display:flex; flex-direction:column; }
  .has-scene>.planet-dialogue-media { height:min(30dvh,280px); min-height:min(30dvh,280px); flex:none; border-right:0; border-bottom:1px solid #606a64; }
  .planet-dialogue-terminal { overflow:visible; flex:none; padding:20px; }
  .planet-dialogue-media-label { bottom:8px; left:10px; font-size:9px; }
}
@media(max-width:700px) {
  .port-open #planetPanel.planet-dialogue-open { max-width:calc(100vw - 16px); }
  .port-open #planetPanel.planet-dialogue-open>.panel-body { padding:8px; }
  .planet-dialogue-terminal { padding:16px; }
  #planetDialogueBlock #planetDialogueText { font-size:15px; line-height:1.65; }
  .planet-dialogue-speaker { margin:18px 0 14px; }
}
@media(max-height:500px) {
  .has-scene>.planet-dialogue-media { height:100px; min-height:100px; }
  .planet-dialogue-heading { padding-bottom:12px; }
}
@media(prefers-reduced-motion:reduce) {
  #planetDialogueBlock.dialogue-ready .planet-dialogue-terminal { animation:none; }
}

@media(max-height:500px) and (max-width:999px) {
  .port-open #planetPanel.planet-dialogue-open { height:calc(100dvh - 16px); max-height:calc(100dvh - 16px); max-width:calc(100vw - 16px); width:calc(100vw - 16px); }
  .port-open #planetPanel.planet-dialogue-open>.panel-body { padding:8px; }
  #planetPanel.planet-dialogue-open>.panel-header { padding:4px 12px; }
  #planetPanel.planet-dialogue-open>.panel-header>span { font-size:18px; }
  .planet-dialogue-open #planetName::before { font-size:9px; line-height:1.3; }
  .has-scene>.planet-dialogue-media { height:72px; min-height:72px; }
  .planet-dialogue-terminal { padding:12px 18px; }
  #planetDialogueTitle { font-size:20px; margin-top:4px; }
  .planet-dialogue-speaker { margin:10px 0; }
}

/* Ціль Station Zero на кнопці SURFACE місяця (ZeroGuide.js): золота рамка пульсує, шеврон «тягне» праворуч */
#planetPanel #openSurfaceButton.quest-target { position:relative; border-color:#ffcc00 !important; animation:port-quest-glow 1.6s ease-in-out infinite; }
#planetPanel #openSurfaceButton.quest-target small { color:#ffe27a; }
.port-quest { position:absolute; top:10px; right:10px; width:22px; height:22px; pointer-events:none; animation:port-quest-nudge 1s ease-in-out infinite; }
.port-quest svg { width:100%; height:100%; fill:none; stroke:#ffcc00; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
@keyframes port-quest-glow { 0%,100% { box-shadow:0 0 0 1px #ffcc00, inset 0 1px #ffffff15; } 50% { box-shadow:0 0 0 3px #ffcc0088, 0 0 18px #ffcc0055; } }
@keyframes port-quest-nudge { 0%,100% { transform:translateX(0); } 50% { transform:translateX(4px); } }
@media (prefers-reduced-motion:reduce) { #planetPanel #openSurfaceButton.quest-target, .port-quest { animation:none; } }
