/* ==========================================================================
   GENESIS COLONIES ? GLOBAL style.css v1.7
   Dark Sci-Fi Neon / Premium Glow / Hard Shadows
   Targets: base.html + all templates

   SECTION INDEX:
   0) Fonts & Reset
   1) Design Tokens (Theme Variables)
   2) Base Layout (Background)
   3) Accessibility Helpers
   4) Header / Layout / Sidebar
   5) Page + Section headers
   6) Panels
   7) Buttons
   8) Flash + MOTD
   9) Grids
   10) Tables / Lists
   11+) Page-specific (Overview, Buildings, Research, ?)
   23) Mobile Breakpoints (360?430px first)
   24) Desktop Enhancements (981px+)
   25) Mobile Polish v1.3 (sticky resources, clamp type, safe-area)
   ========================================================================== */

/* =========================
   0) Fonts & Reset
   Fonts load from base.html <link> (not @import) ? @import blocked style.css
   and caused a large?small layout flash on every reload.
   ========================= */

*,
*::before,
*::after { box-sizing: border-box; }

html, body { height: 100%; }

body {
  margin: 0;
  font-family: Inter, system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
  font-size: var(--gc-font-body, 1rem);
  background: #060b16;
  color: #d7f6ff;
  line-height: 1.35;
  overflow-x: clip;
}

img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
a:hover { text-decoration: none; }

button, input, textarea { font: inherit; }

:focus-visible {
  outline: 2px solid rgba(70, 229, 255, 0.85);
  outline-offset: 2px;
}

/* =========================
   1) Theme Variables
   ========================= */
:root {
  --gc-bg: #040810;
  --gc-bg2: #020508;

  --gc-panel: rgba(4, 10, 22, 0.94);
  --gc-panel-strong: rgba(3, 8, 18, 0.98);
  --gc-panel-bg: rgba(4, 10, 22, 0.94);
  --gc-panel-bg-2: rgba(6, 14, 28, 0.88);
  --gc-panel-border: rgba(70, 229, 255, 0.16);
  --gc-panel-border-strong: rgba(70, 229, 255, 0.32);

  --gc-border: rgba(70, 229, 255, 0.14);
  --gc-border-bright: rgba(70, 229, 255, 0.42);

  --gc-text: #c8e8f4;
  --gc-text-soft: rgba(200, 232, 244, 0.72);
  --gc-text-dim: rgba(200, 232, 244, 0.48);

  --gc-primary: #46e5ff;
  --gc-primary-2: #5ee8d0;
  --gc-neon-cyan: #46e5ff;
  --gc-neon-gold: #ffb020;

  --gc-danger: #ff3d5c;
  --gc-warning: #ff9a1a;
  --gc-success: #00e68a;

  --gc-shadow: 0 4px 0 rgba(0, 0, 0, 0.55);
  --gc-shadow-hard: 0 6px 0 rgba(0, 0, 0, 0.65);

  --gc-radius-xs: 0px;
  --gc-radius-sm: 2px;
  --gc-radius-md: 3px;
  --gc-radius-lg: 4px;
  --gc-radius-xl: 4px;
  --gc-radius-pill: 2px;

  --gc-border-glow: 0 0 0 1px rgba(70, 229, 255, 0.22);
  --gc-border-glow-strong: 0 0 0 1px rgba(70, 229, 255, 0.45), 0 0 8px rgba(70, 229, 255, 0.12);

  /* Layer stack ? dropdowns/menus must escape panel overflow (GC-721J-FIX) */
  --gc-z-sticky: 200;
  --gc-z-dropdown: 12000;
  --gc-z-popover: 12050;
  --gc-z-modal: 13000;
  --gc-z-toast: 14000;

  --gc-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  --gc-font-level: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, "Segoe UI", sans-serif;

  --gc-scanline: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(70, 229, 255, 0.015) 2px,
    rgba(70, 229, 255, 0.015) 4px
  );

  /* Background image hook */
  --gc-bg-img:
    linear-gradient(90deg, rgba(70, 229, 255, 0.03) 1px, transparent 1px),
    linear-gradient(0deg, rgba(70, 229, 255, 0.02) 1px, transparent 1px),
    radial-gradient(900px 500px at 15% 10%, rgba(70,229,255,0.06), transparent 55%),
    radial-gradient(700px 400px at 85% 15%, rgba(255,154,26,0.04), transparent 50%),
    linear-gradient(180deg, #040810 0%, #020508 100%);

  /* Layout ? auto height; resource row is single-line (4 cols) */
  --gc-header-h: auto;
  --gc-page-pad-y: 22px;
  --gc-sidebar-top: 136px;
  --gc-sidebar-bottom-gap: 12px;
  --gc-sidebar-max-height: calc(100dvh - var(--gc-sidebar-top) - var(--gc-sidebar-bottom-gap));
  --gc-panel-pad: 14px;
  --gc-bottom-nav-h: 64px;
  --gc-bottom-util-h: 36px;
  --gc-shell-max-width: 1500px;
  --gc-sidebar-rail-w: 210px;
  --gc-registry-rail-w: 196px;
  --gc-touch-min: 44px;

  /* Safe-area (iOS/Android notch) */
  --gc-safe-top: env(safe-area-inset-top, 0px);
  --gc-safe-right: env(safe-area-inset-right, 0px);
  --gc-safe-bottom: env(safe-area-inset-bottom, 0px);
  --gc-safe-left: env(safe-area-inset-left, 0px);

  /* Responsive typography (desktop max = bisherige Gr??en) */
  --gc-font-body: clamp(0.875rem, 0.84rem + 0.22vw, 1rem);
  --gc-font-small: clamp(0.75rem, 0.72rem + 0.14vw, 0.86rem);
  --gc-font-title: clamp(1rem, 0.92rem + 0.55vw, 1.28rem);
  --gc-font-section: clamp(1.02rem, 0.94rem + 0.45vw, 1.22rem);
  --gc-font-panel: clamp(0.92rem, 0.88rem + 0.28vw, 0.96rem);
  --gc-font-nav: clamp(0.58rem, 0.54rem + 0.22vw, 0.68rem);

  /* Card spacing scale */
  --gc-card-gap: clamp(12px, 2.4vw, 16px);
  --gc-section-gap: clamp(14px, 3vw, 18px);

  /* Header / HUD tokens */
  --gc-hdr-bg-1: rgba(6, 12, 22, 0.78);
  --gc-hdr-bg-2: rgba(8, 16, 30, 0.56);

  --gc-hdr-border: rgba(120, 255, 220, 0.16);
  --gc-hdr-border-2: rgba(120, 255, 220, 0.08);
  --gc-hdr-glow: rgba(120, 255, 220, 0.18);

  --gc-pill-bg: rgba(10, 18, 34, 0.72);
  --gc-pill-border: rgba(120, 255, 220, 0.18);

  --gc-amber-soft: rgba(255, 200, 80, 0.18);

  /* Premium button dual glow */
  --gc-btn-glow-1: 0 0 0 1px rgba(70,229,255,0.22), 0 0 26px rgba(70,229,255,0.14);
  --gc-btn-glow-2: 0 10px 30px rgba(0,0,0,0.40), 0 0 40px rgba(70,229,255,0.12);

  /* v1.1 resource accent tokens (optional use) */
  --gc-color-metal: rgba(127,255,217,0.92);
  --gc-color-crystal: rgba(70,229,255,0.92);
  --gc-color-energy: rgba(255,196,0,0.95);
}

/* =========================
   2) Background Layer (No black block)
   ========================= */
.gc-body { position: relative; }

.gc-body-ingame{
  padding-left: var(--gc-safe-left);
  padding-right: var(--gc-safe-right);
  color-scheme: dark;
}

/* Planet landscape ? rendered on .gc-bg (above body fill, below UI) */
body.gc-body-ingame.gc-has-planet-landscape {
  background-color: transparent;
  background-image: none;
  /* Panels: leicht transparent, aber ?ber Landscape gut lesbar */
  --gc-panel: rgba(2, 10, 20, 0.97);
  --gc-panel-strong: rgba(2, 8, 16, 0.98);
  --gc-panel-bg: rgba(2, 10, 20, 0.97);
  --gc-panel-bg-2: rgba(4, 12, 24, 0.94);
  --gc-hdr-bg-1: rgba(4, 10, 20, 0.96);
  --gc-hdr-bg-2: rgba(6, 12, 24, 0.92);
  --gc-header-h: auto;
}

body.gc-body-ingame.gc-has-planet-landscape .gc-bg {
  opacity: 1;
  background-image:
    linear-gradient(rgba(0, 12, 28, 0.62), rgba(0, 10, 22, 0.78)),
    var(--planet-landscape);
  background-image:
    linear-gradient(rgba(0, 12, 28, 0.62), rgba(0, 10, 22, 0.78)),
    image-set(
      var(--planet-landscape-webp) type("image/webp"),
      var(--planet-landscape) type("image/jpeg")
    );
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  filter: saturate(0.55) hue-rotate(12deg);
}

body.gc-body-ingame.gc-has-planet-landscape .gc-bg::after {
  background:
    radial-gradient(circle at center, transparent 38%, rgba(0, 0, 0, 0.38) 100%),
    radial-gradient(circle at 50% 12%, rgba(70, 229, 255, 0.08), transparent 46%),
    linear-gradient(
      90deg,
      rgba(0, 8, 18, 0.52),
      rgba(0, 8, 18, 0.18) 24%,
      rgba(0, 8, 18, 0.18) 76%,
      rgba(0, 8, 18, 0.52)
    );
  opacity: 0.96;
}

body.gc-body-ingame.gc-has-planet-landscape .gc-sidebar {
  background: linear-gradient(180deg, rgba(2, 10, 20, 0.98) 0%, rgba(2, 8, 18, 0.97) 100%);
  border-color: rgba(70, 229, 255, 0.32);
  box-shadow:
    0 0 0 1px rgba(70, 229, 255, 0.14),
    0 0 22px rgba(70, 229, 255, 0.1),
    inset 0 1px 0 rgba(127, 255, 217, 0.07),
    inset 0 0 0 1px rgba(0, 0, 0, 0.55),
    0 14px 36px rgba(0, 0, 0, 0.48);
}

body.gc-body-ingame.gc-has-planet-landscape .gc-nav-link {
  background: linear-gradient(180deg, rgba(3, 12, 22, 0.92) 0%, rgba(2, 8, 16, 0.88) 100%);
}

body.gc-body-ingame.gc-has-planet-landscape .gc-nav-link:hover {
  background: linear-gradient(90deg, rgba(70, 229, 255, 0.14) 0%, rgba(70, 229, 255, 0.05) 100%);
  box-shadow: inset 0 0 14px rgba(70, 229, 255, 0.08);
}

body.gc-body-ingame.gc-has-planet-landscape .gc-nav-link.active {
  background: linear-gradient(90deg, rgba(0, 88, 102, 0.42) 0%, rgba(70, 229, 255, 0.12) 100%);
  box-shadow: inset 0 0 18px rgba(70, 229, 255, 0.1);
}

body.gc-body-ingame.gc-has-planet-landscape .gc-nav-sub-link:hover {
  background: rgba(70, 229, 255, 0.09);
}

body.gc-body-ingame.gc-has-planet-landscape .gc-nav-sub-link.active {
  background: linear-gradient(90deg, rgba(70, 229, 255, 0.18) 0%, rgba(70, 229, 255, 0.07) 100%);
}

body.gc-body-ingame.gc-has-planet-landscape .gc-panel:not(.gc-planet-hero),
body.gc-body-ingame.gc-has-planet-landscape .section-header {
  background: var(--gc-panel-bg);
  box-shadow:
    var(--gc-border-glow),
    inset 0 0 0 1px rgba(0, 0, 0, 0.52),
    0 10px 30px rgba(0, 0, 0, 0.38);
}

body.gc-body-ingame.gc-has-planet-landscape .gc-panel:not(.gc-planet-hero)::before {
  opacity: 0.1;
}

body.gc-body-ingame.gc-has-planet-landscape .overview-activity-row{
  background: var(--gc-panel-bg-2);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.45);
}

body.gc-body-ingame.gc-has-planet-landscape .overview-res-card,
body.gc-body-ingame.gc-has-planet-landscape .overview-hint,
body.gc-body-ingame.gc-has-planet-landscape .trader-hub-page .gc-exchange-dir-btn,
body.gc-body-ingame.gc-has-planet-landscape .planet-evolution-page .pe-stat-card,
body.gc-body-ingame.gc-has-planet-landscape .planet-evolution-page .pe-card,
body.gc-body-ingame.gc-has-planet-landscape .planet-evolution-page .pe-trait-card,
body.gc-body-ingame.gc-has-planet-landscape .planet-evolution-page .pe-identity-teaser,
body.gc-body-ingame.gc-has-planet-landscape .planet-evolution-page .pe-event-item,
body.gc-body-ingame.gc-has-planet-landscape .planet-evolution-page .pe-history-item,
body.gc-body-ingame.gc-has-planet-landscape .planet-evolution-page .pe-policy-item,
body.gc-body-ingame.gc-has-planet-landscape .planet-evolution-page .pe-research-job {
  background: var(--gc-panel-bg-2);
}

body.gc-body-ingame.gc-has-planet-landscape .planet-evolution-page .pe-trait-positive {
  background: rgba(4, 18, 10, 0.94);
}

body.gc-body-ingame.gc-has-planet-landscape .planet-evolution-page .pe-trait-negative {
  background: rgba(22, 8, 6, 0.94);
}

body.gc-body-ingame.gc-has-planet-landscape .planet-evolution-page .pe-trait-rare {
  background: rgba(12, 8, 22, 0.94);
}

body.gc-body-ingame.gc-has-planet-landscape .gc-header-cmd {
  background:
    radial-gradient(900px 70px at 30% 0%, rgba(120, 255, 220, 0.07), transparent 60%),
    linear-gradient(180deg, var(--gc-hdr-bg-1), var(--gc-hdr-bg-2));
}

body.gc-body-ingame.gc-has-planet-landscape .gc-header-cmd .gc-header-inner {
  gap: 7px;
  padding: 9px 16px;
  min-height: var(--gc-header-h);
}

body.gc-body-ingame.gc-has-planet-landscape .gc-hud-panel {
  background: linear-gradient(180deg, rgba(6, 12, 24, 0.94), rgba(4, 8, 18, 0.88));
}

body.gc-body-ingame.gc-has-planet-landscape .gc-header-cmd .resource-bar.resource-bar-cmd {
  gap: 6px;
}

/* Sticky resource wrapper ? enhanced on mobile in ?25 */
.gc-resource-sticky{
  width: 100%;
  min-width: 0;
}

/* Background is ALWAYS behind content; no negative z-index needed */
.gc-bg{
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;

  background-image: var(--gc-bg-img);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;

  opacity: 0.88;
}

/* Subtle static nebula layer (no animation ? GC-547 GPU) */
.gc-bg::after{
  content:"";
  position:absolute;
  inset: -20%;
  background:
    radial-gradient(800px 380px at 20% 20%, rgba(70,229,255,0.05), transparent 60%),
    radial-gradient(650px 420px at 80% 30%, rgba(127,255,217,0.045), transparent 60%),
    radial-gradient(720px 520px at 60% 85%, rgba(255,196,0,0.04), transparent 65%);
  opacity: 0.75;
}

/* GC-547B ? Landing/Login/Register: flat compositor, no shell GPU cost */
body.gc-body-simple {
  background: #060b16;
}

body.gc-body-simple[data-endpoint="landing"]{
  background-color: #040810;
  background-image:
    linear-gradient(90deg, rgba(2, 6, 14, 0.9) 0%, rgba(2, 6, 14, 0.62) 34%, rgba(2, 6, 14, 0.22) 58%, rgba(2, 6, 14, 0.08) 100%),
    linear-gradient(180deg, rgba(2, 6, 14, 0.35) 0%, transparent 42%, rgba(2, 6, 14, 0.75) 100%),
    url("img/background.png");
  background-image:
    linear-gradient(90deg, rgba(2, 6, 14, 0.9) 0%, rgba(2, 6, 14, 0.62) 34%, rgba(2, 6, 14, 0.22) 58%, rgba(2, 6, 14, 0.08) 100%),
    linear-gradient(180deg, rgba(2, 6, 14, 0.35) 0%, transparent 42%, rgba(2, 6, 14, 0.75) 100%),
    image-set(url("img/background.webp") type("image/webp"), url("img/background.png") type("image/png"));
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

body.gc-body-simple[data-endpoint="landing"] .gc-header-cmd,
body.gc-body-simple[data-endpoint="login"] .gc-header-cmd,
body.gc-body-simple[data-endpoint="register"] .gc-header-cmd{
  background: linear-gradient(180deg, rgba(4, 8, 18, 0.72), rgba(4, 8, 18, 0.42));
  border-bottom: 1px solid rgba(70, 229, 255, 0.14);
}

body.gc-body-simple[data-endpoint="login"],
body.gc-body-simple[data-endpoint="register"]{
  background-color: #040810;
  background-image:
    linear-gradient(90deg, rgba(2, 6, 14, 0.88) 0%, rgba(2, 6, 14, 0.58) 38%, rgba(2, 6, 14, 0.28) 62%, rgba(2, 6, 14, 0.12) 100%),
    linear-gradient(180deg, rgba(2, 6, 14, 0.4) 0%, transparent 45%, rgba(2, 6, 14, 0.72) 100%),
    url("img/background.png");
  background-image:
    linear-gradient(90deg, rgba(2, 6, 14, 0.88) 0%, rgba(2, 6, 14, 0.58) 38%, rgba(2, 6, 14, 0.28) 62%, rgba(2, 6, 14, 0.12) 100%),
    linear-gradient(180deg, rgba(2, 6, 14, 0.4) 0%, transparent 45%, rgba(2, 6, 14, 0.72) 100%),
    image-set(url("img/background.webp") type("image/webp"), url("img/background.png") type("image/png"));
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

body.gc-body-simple[data-endpoint="login"] .gc-flash,
body.gc-body-simple[data-endpoint="register"] .gc-flash{
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 12, 24, 0.82);
  border: 1px solid rgba(70, 229, 255, 0.2);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
  padding: 12px 14px;
}

body.gc-body-simple[data-endpoint="login"] .gc-flash-dot,
body.gc-body-simple[data-endpoint="register"] .gc-flash-dot{
  display: none;
}

body.gc-body-simple[data-endpoint="login"] .gc-flash::before,
body.gc-body-simple[data-endpoint="register"] .gc-flash::before{
  content: "SYS";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 18px;
  margin-right: 10px;
  padding: 0 6px;
  font-family: var(--gc-font-level);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  color: var(--gc-primary);
  border: 1px solid rgba(70, 229, 255, 0.35);
  background: rgba(70, 229, 255, 0.08);
  vertical-align: middle;
}

body.gc-body-simple[data-endpoint="login"] .gc-flash-error,
body.gc-body-simple[data-endpoint="register"] .gc-flash-error{
  border-color: rgba(255, 75, 106, 0.45);
  background: rgba(18, 6, 12, 0.82);
}

body.gc-body-simple[data-endpoint="login"] .gc-flash-success,
body.gc-body-simple[data-endpoint="register"] .gc-flash-success{
  border-color: rgba(0, 230, 138, 0.35);
  background: rgba(4, 18, 14, 0.78);
}

body.gc-body-simple .gc-bg,
body.gc-body-simple .gc-bg-simple {
  display: none;
}

body.gc-body-simple .gc-bg::after {
  content: none;
  display: none;
}

body.gc-body-simple .gc-panel::before,
body.gc-body-simple .gc-panel::after {
  display: none;
}

body.gc-body-simple .gc-panel {
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.45);
}

body.gc-body-simple .gc-header,
body.gc-body-simple .gc-header-cmd {
  background: linear-gradient(180deg, var(--gc-hdr-bg-1), var(--gc-hdr-bg-2));
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.35);
}

body.gc-body-simple .gc-header::after {
  display: none;
}

body.gc-body-simple .landing-title,
body.gc-body-simple .auth-title {
  text-shadow: none;
}

body.gc-body-simple[data-endpoint="landing"] .landing-title-top,
body.gc-body-simple[data-endpoint="landing"] .landing-tagline,
body.gc-body-simple[data-endpoint="landing"] .landing-vision-text {
  text-shadow: 0 2px 18px rgba(0, 0, 0, 0.65);
}

body.gc-body-simple[data-endpoint="landing"] .landing-title-accent {
  text-shadow: 0 0 32px rgba(70, 229, 255, 0.35), 0 2px 18px rgba(0, 0, 0, 0.55);
}

body.gc-body-simple .auth-error {
  box-shadow: inset 0 0 0 1px rgba(255, 75, 106, 0.16);
}

/* Everything above bg */
.gc-header,
.gc-layout { position: relative; z-index: 1; }

/* =========================
   3) Accessibility Helpers
   ========================= */
.gc-skip-link{
  position: absolute;
  left: -9999px;
  top: 10px;
  padding: 10px 12px;
  background: rgba(5, 10, 22, 0.95);
  border: 1px solid rgba(70, 229, 255, 0.6);
  border-radius: var(--gc-radius-sm);
  color: var(--gc-text);
  z-index: 9999;
}
.gc-skip-link:focus { left: 10px; }

/* Popover / dropdown layer ? menus portaled to body must not clip in panels (GC-721J-FIX) */
.gc-overflow-visible{
  overflow: visible !important;
}
.gc-popover-layer{
  position: fixed;
  z-index: var(--gc-z-dropdown);
}
body.gc-has-open-popover .gc-panel:has(.gc-hud-select.is-open),
body.gc-has-open-popover .admin-section:has(.gc-hud-select.is-open),
body.gc-has-open-popover .admin-card:has(.gc-hud-select.is-open){
  overflow: visible;
}

/* =========================
   4) Header / Layout / Sidebar
   ========================= */

/* -------------------------
   HEADER ? Premium Holo + Vertical Strip
   ------------------------- */
.gc-header{
  position: sticky;
  top: 0;
  z-index: 50;

  background:
    radial-gradient(900px 70px at 30% 0%, rgba(120,255,220,0.10), transparent 60%),
    linear-gradient(180deg, var(--gc-hdr-bg-1), var(--gc-hdr-bg-2));
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);

  border-bottom: 1px solid var(--gc-hdr-border-2);
  box-shadow:
    0 14px 42px rgba(0,0,0,0.52),
    0 0 0 1px rgba(0,0,0,0.22) inset;
}

/* neon underline */
.gc-header::after{
  content:"";
  position:absolute;
  left: 14px;
  right: 14px;
  bottom: -1px;
  height: 2px;
  background: linear-gradient(90deg,
    transparent 0%,
    rgba(120,255,220,0.00) 12%,
    rgba(120,255,220,0.42) 34%,
    rgba(120,255,220,0.14) 66%,
    rgba(120,255,220,0.00) 88%,
    transparent 100%);
  filter: blur(0.2px);
  pointer-events:none;
}

/* Inner container */
.gc-header-inner{
  max-width: var(--gc-shell-max-width, 1360px);
  margin: 0 auto;
  min-height: 0;
  height: auto;
  padding: 12px 18px;
}

/* base.html uses gc-header-grid on the inner */
.gc-header-grid{
  display: grid;
  grid-template-columns: auto minmax(360px, 1fr) auto;
  align-items: center;
  gap: 14px;
}

.gc-hslot { min-width: 0; }
.gc-hslot-res { display:flex; justify-content:center; min-width: 0; }
.gc-hslot-hud{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap: 10px;
  min-width: 0;
  white-space: nowrap;
}

.gc-hud-cluster{
  display:flex;
  align-items:center;
  gap: 10px;
  flex: 0 0 auto;
  white-space: nowrap;
}

.gc-hud-user{
  display:flex;
  align-items:center;
  gap: 8px;
  flex: 0 1 auto;
  min-width: 0;
  margin-left: auto;
  white-space: nowrap;
}

.gc-hslot-lang{
  display:flex;
  align-items:center;
  flex: 0 0 auto;
}

.gc-body-simple .gc-hslot-lang{
  margin-left: auto;
}

.gc-language-switcher{
  position: relative;
  flex: 0 0 auto;
  width: auto;
  min-width: 0;
}

.gc-language-switcher .gc-hud-select{
  width: auto;
  min-width: 0;
}

.gc-language-switcher .gc-hud-select-trigger{
  width: auto;
  min-width: 42px;
  max-width: 48px;
  padding: 4px 6px;
  gap: 2px;
}

.gc-language-switcher .gc-hud-select-value{
  flex: 0 0 auto;
  font-size: 15px;
  font-weight: 400;
  line-height: 1;
}

.gc-language-switcher .gc-hud-select-chevron{
  font-size: 0.55rem;
  margin-left: -1px;
}

.gc-language-switcher .gc-hud-select-menu{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 2px;
  min-width: 72px;
  width: auto;
  padding: 4px;
}

.gc-lang-select-item{
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6px 8px;
  min-width: 0;
  font-size: 17px;
  line-height: 1;
  text-align: center;
}

.gc-language-switcher.is-busy{
  opacity: 0.72;
  pointer-events: none;
}

/* Brand */
.gc-logo{
  display:flex;
  align-items:center;
  gap: 10px;

  padding: 8px 12px;
  border-radius: var(--gc-radius-sm);

  background: linear-gradient(180deg, rgba(10,18,34,0.72), rgba(8,14,26,0.52));
  border: 1px solid var(--gc-hdr-border);
  box-shadow:
    0 14px 34px rgba(0,0,0,0.46),
    0 0 26px var(--gc-hdr-glow);

  position: relative;
  overflow: hidden;
}

/* glowing vertical holo strip (your request) */
.gc-logo::before{
  content:"";
  width: 3px;
  height: 20px;
  border-radius: var(--gc-radius-sm);
  background: linear-gradient(180deg,
    rgba(120,255,220,0.14),
    rgba(120,255,220,0.92),
    rgba(120,255,220,0.10));
  box-shadow: 0 0 18px rgba(120,255,220,0.55);
}

/* subtle top sheen */
.gc-logo::after{
  content:"";
  position:absolute;
  inset: 0;
  background: linear-gradient(120deg,
    transparent 0%,
    rgba(255,255,255,0.05) 35%,
    transparent 60%);
  opacity: 0.8;
  pointer-events: none;
  transform: translateX(-30%);
}
.gc-logo:hover{
  border-color: rgba(70, 229, 255, 0.48);
  box-shadow: var(--gc-border-glow), 0 18px 44px rgba(0,0,0,0.46);
}
.gc-logo:hover::after { transform: translateX(18%); transition: transform .35s ease; }

.gc-logo-icon{ filter: drop-shadow(0 0 12px rgba(120,255,220,0.35)); }

.gc-title{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-weight: 800;
  letter-spacing: 0.06em;
  font-size: clamp(0.82rem, 0.78rem + 0.35vw, 0.96rem);
  color: var(--gc-primary-2);
  text-shadow: 0 0 16px rgba(120,255,220,0.22);
}

/* Resource bar (center) ? HUD command strip */
.resource-bar{
  display:flex;
  align-items:stretch;
  justify-content: center;
  gap: 0;
  padding: 0;
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-bg);
  border: 1px solid var(--gc-border-bright);
  box-shadow: var(--gc-border-glow), inset 0 0 0 1px rgba(0,0,0,0.45);
  max-width: 640px;
  width: 100%;
  min-width: 0;
  position: relative;
  overflow: hidden;
}
.resource-bar::before{
  content:"";
  position:absolute; inset:0;
  background: var(--gc-scanline);
  pointer-events:none;
  opacity:0.55;
}

.res-block{
  display:flex;
  align-items:center;
  gap: 7px;
  padding: 7px 12px;
  border-radius: var(--gc-radius-sm);
  background: transparent;
  border: none;
  border-right: 1px solid var(--gc-border);
  box-shadow: none;
}
.res-block:last-child{ border-right: none; }

.res-icon{
  width: 20px;
  height: 20px;
  object-fit: contain;
  flex-shrink: 0;
  opacity: 1;
  filter: drop-shadow(0 0 10px rgba(120,255,220,0.22));
}
.hud-res-fuel-cells .res-icon{
  filter: drop-shadow(0 0 10px rgba(255, 186, 56, 0.28));
}

.res-value, .res-cap, #res-energy{
  font-family: var(--gc-mono);
  font-size: 0.80rem;
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.2px;
  white-space: nowrap;
}
.res-sep{ opacity: 0.35; }

.res-block-energy.energy-warning{
  border-color: rgba(255, 120, 120, 0.32) !important;
  box-shadow:
    0 0 0 1px rgba(0,0,0,0.25) inset,
    0 0 20px rgba(255, 120, 120, 0.20);
}

/* HUD status blocks (Score/Online) */
.gc-header-pill{
  display:flex;
  align-items:center;
  gap: 8px;
  padding: 5px 10px;
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-bg-2);
  border: 1px solid var(--gc-border);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.35);
  font-size: 0.78rem;
  font-family: var(--gc-mono);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gc-text-soft);
  white-space: nowrap;
  min-width: 0;
}

.gc-header-pill-dot{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: rgba(120,255,220,0.95);
  box-shadow: 0 0 16px rgba(120,255,220,0.55);
}

.gc-header-pill-label{ color: rgba(215,246,255,0.72); }
.gc-header-pill-value{ color: rgba(215,246,255,0.92); }

.gc-user-info{
  display:flex;
  align-items:center;
  gap: 10px;
  padding: 5px 10px;
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-bg-2);
  border: 1px solid var(--gc-border);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.35);
  white-space: nowrap;
  min-width: 0;
}

.gc-user-name { font-size: 0.86rem; color: var(--gc-text-soft); }

.gc-admin-badge{
  padding: 2px 7px;
  border-radius: var(--gc-radius-sm);
  font-weight: 800;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #1a1200;
  background: var(--gc-neon-gold);
  border: 1px solid rgba(255, 176, 32, 0.8);
  box-shadow: 0 0 8px rgba(255, 176, 32, 0.25);
  font-size: 0.68rem;
  white-space: nowrap;
}

/* -------------------------
   Main layout wrapper
   ------------------------- */
.gc-layout{
  position: relative;
  z-index: 1;
  max-width: var(--gc-shell-max-width, 1500px);
  margin: 0 auto;
  padding: var(--gc-page-pad-y) 18px 60px 18px;

  display: grid;
  grid-template-columns: 240px 1fr;
  gap: 18px;
}

/* Simple layout */
.gc-body-simple .gc-layout{
  grid-template-columns: 1fr;
  max-width: 1100px;
}

.gc-body-simple .gc-header-row-top{
  justify-content: flex-start;
}

/* Sidebar — GC-621C accordion + Genesis cyan glow */
.gc-sidebar{
  position: sticky;
  top: var(--gc-sidebar-top, 136px);
  align-self: start;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  border-radius: var(--gc-radius-sm);
  background:
    linear-gradient(180deg, rgba(3, 12, 22, 0.98) 0%, rgba(2, 8, 18, 0.96) 100%);
  border: 1px solid rgba(70, 229, 255, 0.28);
  box-shadow:
    0 0 0 1px rgba(70, 229, 255, 0.12),
    0 0 18px rgba(70, 229, 255, 0.08),
    inset 0 1px 0 rgba(127, 255, 217, 0.06),
    inset 0 0 0 1px rgba(0, 0, 0, 0.45);
  overflow: hidden;
}

.gc-sidebar-version{
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 10px 12px 8px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.12);
  background: rgba(70, 229, 255, 0.04);
}

.gc-sidebar-version-link{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.22);
  color: rgba(180, 240, 255, 0.92);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.gc-sidebar-version-link:hover,
.gc-sidebar-version-link:focus-visible{
  color: #fff;
  border-color: rgba(70, 229, 255, 0.55);
  background: rgba(70, 229, 255, 0.1);
  box-shadow: 0 0 12px rgba(70, 229, 255, 0.15);
}

.gc-nav-section{
  display: flex;
  flex-direction: column;
  border-bottom: 1px solid rgba(70, 229, 255, 0.1);
}

.gc-sidebar--role-nav:not(.is-more-expanded) > .gc-nav-module--secondary,
.gc-sidebar--role-nav:not(.is-more-expanded) > .gc-nav-group--secondary {
  display: none;
}

.gc-sidebar--role-nav:not(.is-more-expanded) .gc-nav-group--prominent .gc-nav-sub-link.gc-nav-module--secondary {
  display: none;
}

.gc-sidebar--role-nav.is-more-expanded > .gc-nav-module--secondary,
.gc-sidebar--role-nav.is-more-expanded > .gc-nav-group--secondary {
  display: block;
}

.gc-sidebar--role-nav.is-more-expanded .gc-nav-group--prominent .gc-nav-sub-link.gc-nav-module--secondary {
  display: block;
}

.gc-nav-section:last-child{
  border-bottom: none;
}

.gc-nav-section-toggle{
  width: 100%;
  text-align: left;
  cursor: pointer;
}

.gc-nav-section-body,
.gc-nav-group-body{
  display: flex;
  flex-direction: column;
  gap: 0;
  max-height: 0;
  overflow: hidden;
  padding: 0;
  opacity: 0;
  pointer-events: none;
  transition: max-height 0.22s ease, opacity 0.18s ease;
}

.gc-nav-section.is-expanded > .gc-nav-section-body,
.gc-nav-submenu-group.is-expanded > .gc-nav-group-body{
  max-height: 480px;
  opacity: 1;
  pointer-events: auto;
}

/* GC-849 ? infrastructure: one section transition; nested buildings toggles instantly (no max-height chain). */
.gc-nav-section[data-nav-section="infrastructure"] > .gc-nav-section-body{
  max-height: none;
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.2s ease, opacity 0.16s ease;
}

.gc-nav-section[data-nav-section="infrastructure"].is-expanded > .gc-nav-section-body{
  max-height: none;
  grid-template-rows: 1fr;
  opacity: 1;
  pointer-events: auto;
}

.gc-nav-section[data-nav-section="infrastructure"] > .gc-nav-section-body > *{
  min-height: 0;
  overflow: hidden;
}

.gc-nav-section[data-nav-section="infrastructure"] .gc-nav-buildings-group > .gc-nav-group-body{
  max-height: none;
  transition: none;
}

.gc-nav-section[data-nav-section="infrastructure"] .gc-nav-buildings-group:not(.is-expanded) > .gc-nav-group-body{
  display: none;
  opacity: 0;
  pointer-events: none;
}

.gc-nav-section[data-nav-section="infrastructure"] .gc-nav-buildings-group.is-expanded > .gc-nav-group-body{
  display: flex;
  opacity: 1;
  pointer-events: auto;
}

.gc-nav-section[data-nav-section="infrastructure"].gc-nav-section--animating .gc-nav-buildings-group > .gc-nav-group-body{
  transition: none !important;
}

.gc-nav-section:not(.is-expanded) .gc-nav-buildings-group > .gc-nav-group-body{
  display: none;
  opacity: 0;
  pointer-events: none;
  transition: none !important;
}

.gc-nav-section.is-expanded > .gc-nav-section-body{
  background: rgba(4, 14, 24, 0.72);
  border-top: 1px solid rgba(70, 229, 255, 0.08);
  padding-bottom: 2px;
}

.gc-nav-submenu-group.is-expanded > .gc-nav-group-body{
  background: rgba(2, 8, 16, 0.42);
  border-left: 2px solid rgba(70, 229, 255, 0.14);
  margin: 0 0 2px 12px;
  padding-bottom: 2px;
}


.gc-nav-sub-link--button{
  width: 100%;
  text-align: left;
  cursor: pointer;
  border: none;
  background: transparent;
  color: inherit;
  font: inherit;
}

.gc-nav-link--more {
  margin-top: 4px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.gc-nav-link--more .gc-nav-chevron {
  transform: rotate(-90deg);
}

.gc-sidebar.is-more-expanded .gc-nav-link--more .gc-nav-chevron {
  transform: rotate(0deg);
}

.gc-nav-icon{
  display: inline-block;
  margin-right: 6px;
  opacity: 0.85;
}

.gc-nav-section--standalone > .gc-nav-link{
  justify-content: space-between;
  border-bottom: none;
}

.gc-nav-section--standalone > .gc-nav-link .gc-nav-link-label{
  flex: 1 1 auto;
  min-width: 0;
}

.gc-nav-section--standalone > .gc-nav-link .gc-messages-nav-badge{
  flex: 0 0 auto;
  margin-left: auto;
}

.gc-nav-sub-link .gc-nav-link-label{
  flex: 1 1 auto;
  min-width: 0;
}

.gc-nav-sub-link .gc-nav-badge{
  flex: 0 0 auto;
  margin-left: auto;
}

.gc-nav-sub-link--wip .gc-nav-badge{
  margin-left: 0;
}

.gc-nav-section--standalone{
  border-bottom: 1px solid rgba(70, 229, 255, 0.1);
}

.gc-nav-link{
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 40px;
  height: 40px;
  padding: 0 14px;
  border-radius: 0;
  border: none;
  border-left: 3px solid transparent;
  border-bottom: none;
  background: linear-gradient(180deg, rgba(5, 16, 26, 0.98) 0%, rgba(4, 12, 22, 0.94) 100%);
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(215, 246, 255, 0.92);
  transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
}
.gc-nav-link:hover{
  transform: none;
  border-left-color: #00eaff;
  background: linear-gradient(90deg, rgba(0, 234, 255, 0.14) 0%, rgba(0, 234, 255, 0.05) 100%);
  box-shadow: inset 0 0 14px rgba(70, 229, 255, 0.08);
  color: #d7f6ff;
}
.gc-nav-link.active{
  border-left-color: #00eaff;
  background: linear-gradient(90deg, rgba(0, 234, 255, 0.18) 0%, rgba(0, 234, 255, 0.08) 100%);
  box-shadow: inset 0 0 18px rgba(70, 229, 255, 0.1);
  color: #00eaff;
  text-shadow: 0 0 12px rgba(0, 234, 255, 0.32);
}

/* Sidebar submenu groups (Geb?ude, Kommando, Milit?rproduktion, Flotte) */
.gc-nav-buildings-group,
.gc-nav-trading-group,
.gc-nav-military-group,
.gc-nav-fleet-group,
.gc-nav-submenu-group{
  display: flex;
  flex-direction: column;
}

.gc-nav-group-toggle{
  font-family: inherit;
  cursor: pointer;
  text-align: left;
  color: inherit;
  justify-content: space-between;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}

.gc-nav-buildings-group > .gc-nav-group-toggle{
  padding-left: 22px;
  min-height: 34px;
  height: 34px;
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  background: rgba(3, 10, 18, 0.55);
  border-left: 3px solid transparent;
}

.gc-nav-buildings-group > .gc-nav-group-toggle:hover {
  border-left-color: rgba(0, 234, 255, 0.72);
}

.gc-nav-buildings-group.is-expanded > .gc-nav-group-toggle {
  color: rgba(215, 246, 255, 0.92);
}

.gc-nav-sub-link--nested{
  padding-left: 32px;
  min-height: 32px;
  height: 32px;
  font-size: 0.78rem;
  text-transform: none;
  letter-spacing: 0.02em;
  color: rgba(200, 232, 244, 0.8);
}

.gc-nav-link--has-sub{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
}

.gc-nav-link-label{
  min-width: 0;
  flex: 1;
}

.gc-nav-chevron{
  flex-shrink: 0;
  width: 7px;
  height: 7px;
  margin-top: -1px;
  border-right: 1.5px solid currentColor;
  border-bottom: 1.5px solid currentColor;
  transform: rotate(45deg);
  opacity: 0.62;
  transition: transform 0.18s ease, opacity 0.18s ease, margin-top 0.18s ease;
}

.gc-nav-submenu-group.is-expanded > .gc-nav-link--has-sub .gc-nav-chevron,
.gc-nav-link--has-sub[aria-expanded="true"] .gc-nav-chevron{
  transform: rotate(-135deg);
  margin-top: 2px;
  opacity: 0.82;
}

.gc-nav-link--has-sub:hover .gc-nav-chevron,
.gc-nav-link--has-sub.active .gc-nav-chevron{
  opacity: 0.95;
}

button.gc-nav-link.gc-nav-submenu-toggle{
  width: 100%;
  border-right: none;
  border-top: none;
  border-bottom: 1px solid var(--gc-border);
  border-left: 2px solid transparent;
  font-family: inherit;
  cursor: pointer;
  text-align: left;
  color: var(--gc-text-soft);
}

button.gc-nav-link.gc-nav-submenu-toggle:hover{
  border-left-color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.06);
  box-shadow: inset 0 0 12px rgba(70, 229, 255, 0.04);
  color: var(--gc-text);
}

button.gc-nav-link.gc-nav-submenu-toggle.active,
button.gc-nav-link.gc-nav-submenu-toggle.active:hover{
  border-left-color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.1);
  box-shadow: inset 0 0 0 1px rgba(70, 229, 255, 0.12);
  color: var(--gc-neon-cyan);
}

body.gc-body-ingame.gc-has-planet-landscape button.gc-nav-link.gc-nav-submenu-toggle.active,
body.gc-body-ingame.gc-has-planet-landscape button.gc-nav-link.gc-nav-submenu-toggle.active:hover{
  background: rgba(70, 229, 255, 0.14);
}

.gc-nav-sub--buildings[hidden],
.gc-nav-sub--buildings.gc-nav-sub--collapsed,
.gc-nav-sub--trading[hidden],
.gc-nav-sub--trading.gc-nav-sub--collapsed,
.gc-nav-sub--military[hidden],
.gc-nav-sub--military.gc-nav-sub--collapsed{
  display: none !important;
}

.gc-nav-sub--buildings .gc-nav-sub-link:disabled{
  pointer-events: none;
  opacity: 0.45;
  cursor: default;
}

.gc-nav-sub--buildings,
.gc-nav-sub--trading,
.gc-nav-sub--military{
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  border-left: none;
  margin: 0;
}

.gc-nav-sub--trading .gc-nav-sub-link,
.gc-nav-sub--military .gc-nav-sub-link{
  text-decoration: none;
}

.gc-nav-sub-link--wip{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
}

.gc-nav-sub-link--wip .gc-nav-wip-badge{
  font-size: 0.58rem;
  padding: 1px 5px;
}

.gc-nav-sub-link{
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 34px;
  height: 34px;
  padding: 0 12px 0 22px;
  border: none;
  border-left: 3px solid transparent;
  border-radius: 0;
  background: transparent;
  font-family: inherit;
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: none;
  text-align: left;
  text-decoration: none;
  color: rgba(200, 232, 244, 0.84);
  opacity: 1;
  cursor: pointer;
  transition: color 0.12s ease, border-color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}

.gc-nav-sub-link:hover{
  color: #d7f6ff;
  border-left-color: rgba(0, 234, 255, 0.55);
  background: rgba(0, 234, 255, 0.07);
  box-shadow: inset 0 0 12px rgba(70, 229, 255, 0.06);
}

.gc-nav-sub-link.active{
  color: #00eaff;
  border-left-color: #00eaff;
  background: linear-gradient(90deg, rgba(0, 234, 255, 0.16) 0%, rgba(0, 234, 255, 0.06) 100%);
  box-shadow: inset 0 0 16px rgba(70, 229, 255, 0.1);
  text-shadow: 0 0 10px rgba(0, 234, 255, 0.28);
}

.gc-nav-sub-link--nested.active{
  color: #00eaff;
  border-left-color: #00eaff;
  background: linear-gradient(90deg, rgba(0, 234, 255, 0.14) 0%, rgba(0, 234, 255, 0.05) 100%);
}
.gc-nav-admin { border-left-color: rgba(255, 176, 32, 0.35); }
.gc-nav-admin.active{
  border-color: rgba(255, 196, 0, 0.80);
  box-shadow: 0 0 0 1px rgba(255,196,0,0.25), 0 0 28px rgba(255,196,0,0.14);
}

/* Main */
.gc-main { min-width: 0; }

#main-content,
.gc-main-content,
.gc-content-panel,
.gc-table-wrap,
.ranking-table-wrap,
.ranking-table-content,
.ranking-panel-body,
.fleet-page,
.galaxy-page{
  min-width: 0;
  max-width: 100%;
}

.ranking-table-wrapper,
.ranking-table-content,
.gc-table-wrap{
  overflow-x: auto;
}

/* GC-806: Dual sidebar app shell */
.gc-app-shell{
  position: relative;
  z-index: 1;
}

.gc-layout--dual{
  max-width: var(--gc-shell-max-width, 1360px);
}

/* GC-806C: Bottom utility dock */
.gc-bottom-utility-bar{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: calc(var(--gc-z-sticky, 200) + 1);
  height: var(--gc-bottom-util-h, 36px);
  border-top: 1px solid rgba(70, 229, 255, 0.22);
  background:
    linear-gradient(180deg, rgba(5, 14, 28, 0.97) 0%, rgba(2, 8, 18, 0.99) 100%);
  box-shadow:
    0 -1px 0 rgba(70, 229, 255, 0.08),
    0 -8px 24px rgba(0, 0, 0, 0.35);
  backdrop-filter: blur(10px);
}

.gc-bottom-util-inner{
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 12px;
  height: 100%;
  max-width: var(--gc-shell-max-width, 1360px);
  margin: 0 auto;
  padding: 0 14px;
  padding-bottom: var(--gc-safe-bottom, 0px);
  position: relative;
}

.gc-bottom-util-nav{
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 0;
  min-width: 0;
  overflow-x: auto;
  overflow-y: hidden;
  scrollbar-width: none;
  -ms-overflow-style: none;
}

.gc-bottom-util-nav::-webkit-scrollbar{
  display: none;
}

.gc-bottom-util-link{
  display: inline-flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 4px;
  flex: 0 0 auto;
  min-height: 0;
  padding: 6px 10px;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: rgba(180, 240, 255, 0.72);
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  cursor: pointer;
  transition: color 0.15s ease, text-shadow 0.15s ease;
}

.gc-bottom-util-link:hover,
.gc-bottom-util-link:focus-visible{
  color: #fff;
  text-shadow: 0 0 10px rgba(70, 229, 255, 0.45);
}

.gc-bottom-util-link.is-active{
  color: #fff;
  text-shadow: 0 0 10px rgba(70, 229, 255, 0.45);
}

.gc-bottom-util-link--discord{
  color: rgba(180, 200, 255, 0.82);
}

.gc-bottom-util-link--discord:hover,
.gc-bottom-util-link--discord:focus-visible{
  color: #c8d4ff;
  text-shadow: 0 0 10px rgba(114, 137, 218, 0.45);
}

.gc-bottom-util-link--chat{
  position: relative;
}

.gc-bottom-util-sep{
  flex: 0 0 auto;
  color: rgba(70, 229, 255, 0.22);
  font-size: 0.62rem;
  line-height: 1;
  user-select: none;
  pointer-events: none;
}

.gc-bottom-util-end{
  position: absolute;
  right: 14px;
  top: 50%;
  transform: translateY(-50%);
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 10px;
  flex: 0 0 auto;
  pointer-events: none;
}

.gc-bottom-util-end > *{
  pointer-events: auto;
}

.gc-bottom-util-link--meta-nav{
  display: none;
  color: rgba(255, 210, 120, 0.88);
}

.gc-bottom-util-link--meta-nav:hover,
.gc-bottom-util-link--meta-nav:focus-visible{
  color: #ffe08a;
  text-shadow: 0 0 10px rgba(255, 176, 32, 0.4);
}

.gc-bottom-util-version{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 4px 8px;
  border: 1px solid rgba(70, 229, 255, 0.18);
  background: rgba(4, 12, 24, 0.72);
  color: rgba(180, 240, 255, 0.82);
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
}

.gc-bottom-util-version:hover,
.gc-bottom-util-version:focus-visible{
  border-color: rgba(70, 229, 255, 0.42);
  color: #fff;
}

.gc-bottom-util-version-sep{
  opacity: 0.45;
}

.gc-bottom-util-version-stage{
  color: rgba(255, 196, 0, 0.82);
}

@media (min-width: 769px){
  .gc-body-ingame .gc-app-shell{
    padding-bottom: calc(var(--gc-bottom-util-h, 36px) + var(--gc-safe-bottom, 0px));
  }

  .gc-bottom-util-inner{
    padding-right: 200px;
  }

  .gc-special-root > .gc-special-bar{
    display: none !important;
  }
}

.gc-sidebar--right{
  border-color: rgba(255, 176, 32, 0.32);
  box-shadow:
    0 0 0 1px rgba(255, 176, 32, 0.12),
    0 0 18px rgba(255, 176, 32, 0.06),
    inset 0 1px 0 rgba(255, 220, 140, 0.05),
    inset 0 0 0 1px rgba(0, 0, 0, 0.45);
}

.gc-sidebar--right .gc-nav-link,
.gc-sidebar--right .gc-nav-sub-link{
  border-left-color: rgba(255, 176, 32, 0.12);
}

.gc-sidebar--right .gc-nav-sub-link.active,
.gc-sidebar--right .gc-nav-link.active{
  border-left-color: rgba(255, 196, 0, 0.85);
  background: linear-gradient(90deg, rgba(255, 176, 32, 0.16) 0%, rgba(255, 176, 32, 0.04) 100%);
  box-shadow: inset 0 0 14px rgba(255, 176, 32, 0.08);
}

.gc-sidebar--right .gc-nav-section-toggle:hover,
.gc-sidebar--right .gc-nav-sub-link:hover{
  background: rgba(255, 176, 32, 0.08);
}

.gc-sidebar--right.is-drawer-open{
  box-shadow:
    0 0 0 1px rgba(255, 176, 32, 0.22),
    0 12px 40px rgba(0, 0, 0, 0.55);
}

@media (min-width: 1280px){
  .gc-layout--dual{
    display: grid;
    grid-template-columns:
      var(--gc-sidebar-rail-w, 210px)
      minmax(0, 1fr)
      var(--gc-sidebar-rail-w, 210px)
      var(--gc-registry-rail-w, 196px);
    gap: 14px;
    align-items: start;
  }

  /* Meta + Registry become separate grid columns (Left | Main | Meta | Imperium). */
  .gc-sidebar-right-rails{
    display: contents;
  }

  .gc-sidebar-right-rails > .gc-sidebar--right{
    width: 100%;
    max-width: var(--gc-sidebar-rail-w, 210px);
    min-width: 0;
  }

  .gc-sidebar-right-rails > .gc-planet-registry{
    width: 100%;
    max-width: var(--gc-registry-rail-w, 196px);
    min-width: 0;
    max-height: var(--gc-sidebar-max-height, calc(100dvh - var(--gc-sidebar-top, 136px) - var(--gc-sidebar-bottom-gap, 12px)));
    position: sticky;
    top: var(--gc-sidebar-top, 136px);
  }

  .gc-layout--dual .gc-building-grid.buildings-prog-list,
  .gc-layout--dual .gc-building-grid.research-prog-list,
  .gc-layout--dual .gc-building-grid.shipyard-ship-grid{
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 8px;
  }

  .gc-layout--dual .gc-building-grid .gc-bld-card-hero{
    min-height: 72px;
    max-height: 96px;
  }

  .gc-layout--dual .gc-building-grid .gc-bld-card-hero-title{
    font-size: 0.72rem;
  }
}

@media (min-width: 992px) and (max-width: 1279px){
  .gc-layout--dual{
    display: grid;
    grid-template-columns: var(--gc-sidebar-rail-w, 210px) minmax(0, 1fr);
    gap: 14px;
    align-items: start;
  }

  .gc-sidebar-right{
    position: fixed;
    top: var(--gc-sidebar-top, 136px);
    right: 0;
    width: min(320px, calc(100vw - 24px));
    max-height: var(--gc-sidebar-max-height, calc(100dvh - var(--gc-sidebar-top, 136px) - var(--gc-sidebar-bottom-gap, 12px)));
    z-index: calc(var(--gc-z-sticky, 200) - 2);
    transform: translateX(calc(100% + 8px));
    transition: transform 0.18s ease;
    display: flex;
    flex-direction: column;
    gap: 8px;
    overflow: auto;
  }

  .gc-sidebar-right.is-drawer-open{
    transform: translateX(0);
  }

  .gc-bottom-util-link--meta-nav{
    display: inline-flex !important;
  }
}

@media (max-width: 991px){
  .gc-sidebar-right{
    display: none !important;
  }
}

@media (max-width: 768px){
  .gc-bottom-utility-bar{
    display: none !important;
  }

  .gc-body-ingame .gc-app-shell{
    padding-bottom: 0;
  }
}

/* Tablet: single column main, sidebar becomes horizontal strip (desktop nav still visible) */
@media (max-width: 980px){
  .gc-layout { grid-template-columns: 1fr; }
  .gc-sidebar-desktop{
    position: relative;
    top: auto;
    max-height: none;
    overflow: visible;
    flex-direction: row;
    flex-wrap: wrap;
    gap: 8px;
  }
  .gc-sidebar-desktop .gc-nav-link { flex: 1 1 140px; text-align: center; }
}

/* =========================
   5) Page + Section headers
   ========================= */
.gc-page { width: 100%; }

.section-header{
  padding: 12px 14px 10px 14px;
  margin-bottom: 16px;
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-bg);
  border: 1px solid rgba(120, 190, 255, 0.16);
  box-shadow: var(--gc-border-glow), inset 0 0 0 1px rgba(0, 0, 0, 0.42);
}

/* GC-806E ? page title bands removed; side nav carries page context */
.gc-page > header.section-header,
.gc-page .admin-wrapper > header.section-header {
  display: none;
}

.gc-page > header.section-header:is(
  :has(.research-lab-chip)
) {
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
  gap: 12px;
  padding: 0 0 10px;
  margin: 0 0 10px;
  background: transparent;
  border: none;
  box-shadow: none;
  border-radius: 0;
}

.gc-page > header.section-header:has(.research-lab-chip) {
  justify-content: flex-start;
}

.gc-page > header.section-header:has(.research-lab-chip) .section-title,
.gc-page > header.section-header:has(.research-lab-chip) .section-hint {
  display: none;
}

.gc-page > header.section-header:has(.research-lab-chip) .section-header-row {
  width: 100%;
  margin: 0;
}

.section-title{
  margin: 0;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-weight: 800;
  letter-spacing: 0.06em;
  font-size: var(--gc-font-section);
  color: var(--gc-primary-2);
  text-shadow: 0 0 18px rgba(127,255,217,0.18);
}

.section-hint, .hint{
  margin: 6px 0 0 0;
  color: var(--gc-text-soft);
  font-size: var(--gc-font-small);
}

/* =========================
   6) Panels ? Tactical Command Panels
   ========================= */
.gc-panel{
  position: relative;
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-bg);
  border: 1px solid var(--gc-border-bright);
  box-shadow: var(--gc-border-glow), inset 0 0 0 1px rgba(0,0,0,0.45);
  padding: var(--gc-panel-pad);
  overflow: hidden;
}
.gc-panel::before{
  content:"";
  position:absolute; inset:0;
  background: var(--gc-scanline);
  pointer-events:none;
  opacity:0.35;
}
.gc-panel::after{
  content:"";
  position:absolute;
  top:0; left:0;
  width:8px; height:8px;
  border-top:1px solid var(--gc-neon-cyan);
  border-left:1px solid var(--gc-neon-cyan);
  pointer-events:none;
}

.gc-panel-header{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 10px;
  padding-bottom: 10px;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--gc-border);
}

.gc-panel-head-left { display: flex; flex-direction: column; gap: 4px; }
.gc-panel-head-right { display: flex; align-items: center; gap: 10px; }

.gc-panel-title{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  font-size: var(--gc-font-panel);
  color: var(--gc-neon-cyan);
}
.gc-panel-subtitle { font-size: var(--gc-font-small); color: var(--gc-text-soft); }

.gc-panel-tag{
  padding: 2px 8px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-border-bright);
  background: rgba(0,0,0,0.35);
  color: var(--gc-text-soft);
  font-size: 0.72rem;
  font-family: var(--gc-mono);
  text-transform: uppercase;
  letter-spacing: 0.08em;
}

.gc-panel-grid{
  display: grid;
  gap: 2px;
  border: 1px solid var(--gc-border);
}

.gc-panel-accent{
  border-left: 2px solid var(--gc-neon-cyan);
}

/* =========================
   7) Buttons ? Tactical / Armed
   ========================= */
.gc-btn{
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-border-bright);
  background: var(--gc-panel-bg-2);
  color: var(--gc-text);
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  user-select: none;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.4);
  transition: background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease, color 0.12s ease;
}
.gc-btn::before,
.gc-btn::after{
  content:"";
  position:absolute;
  width:6px; height:6px;
  pointer-events:none;
  opacity:0;
  transition: opacity 0.12s ease;
}
.gc-btn::before{
  top:-1px; left:-1px;
  border-top:1px solid var(--gc-neon-cyan);
  border-left:1px solid var(--gc-neon-cyan);
}
.gc-btn::after{
  bottom:-1px; right:-1px;
  border-bottom:1px solid var(--gc-neon-cyan);
  border-right:1px solid var(--gc-neon-cyan);
}

.gc-btn:hover{
  transform: none;
  border-color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.08);
  box-shadow: inset 0 0 12px rgba(70, 229, 255, 0.08), 0 0 8px rgba(70, 229, 255, 0.12);
  filter: none;
}
.gc-btn:hover::before,
.gc-btn:hover::after{ opacity:1; }

.gc-btn:active{
  transform: none;
  background: rgba(70, 229, 255, 0.14);
  box-shadow: inset 0 0 16px rgba(70, 229, 255, 0.12);
}

.gc-btn[disabled],
.gc-btn:disabled{
  opacity: 0.45;
  cursor: not-allowed;
  transform: none !important;
  box-shadow: none !important;
}

.gc-btn-primary{
  border-color: var(--gc-neon-cyan);
  color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.08);
  box-shadow: inset 0 0 0 1px rgba(70, 229, 255, 0.15);
}
.gc-btn-primary:hover{
  background: rgba(70, 229, 255, 0.16);
  color: #fff;
}

.gc-btn-danger{
  border-color: var(--gc-danger);
  color: #ff8a9e;
  background: rgba(255, 61, 92, 0.08);
}
.gc-btn-danger:hover{
  background: rgba(255, 61, 92, 0.16);
  box-shadow: inset 0 0 12px rgba(255, 61, 92, 0.12), 0 0 8px rgba(255, 61, 92, 0.15);
}
.gc-btn-danger::before{ border-color: var(--gc-danger); }
.gc-btn-danger::after{ border-color: var(--gc-danger); }

.gc-btn-admin{
  border-color: var(--gc-neon-gold);
  color: var(--gc-neon-gold);
  background: rgba(255, 176, 32, 0.08);
}

.gc-btn-outline{
  background: transparent;
  border-color: var(--gc-border-bright);
  color: var(--gc-text-soft);
}
.gc-btn-outline:hover{
  color: var(--gc-neon-cyan);
  border-color: var(--gc-neon-cyan);
}

.gc-btn-ghost{
  background: transparent;
  border-color: transparent;
  box-shadow: none;
}
.gc-btn-ghost:hover{ background: rgba(70, 229, 255, 0.06); border-color: var(--gc-border); }
.gc-btn-ghost:disabled{ background: transparent; }

.gc-btn-sm,
.gc-btn-small { padding: 6px 10px; font-size: 0.76rem; }
.gc-btn-lg { padding: 10px 16px; font-size: 0.88rem; }
.gc-btn-xs { padding: 4px 8px; font-size: 0.72rem; }

/* Logout button ? segmented, not pill */
.logout-btn{
  white-space: nowrap;
  border-radius: var(--gc-radius-sm);
  padding: 7px 11px !important;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.76rem;
}

/* =========================
   8) Flash Messages + MOTD
   ========================= */
.gc-flash-container{
  margin-bottom: 12px;
  display: grid;
  gap: 8px;
}

.gc-flash{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  background: rgba(7, 14, 32, 0.78);
  border: 1px solid rgba(120, 190, 255, 0.18);
  box-shadow: 0 14px 28px rgba(0,0,0,0.36);
}

.gc-flash-dot{
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: var(--gc-primary);
  box-shadow: 0 0 16px rgba(70,229,255,0.34);
}

.gc-flash-success{ border-color: rgba(35,242,166,0.45); }
.gc-flash-success .gc-flash-dot{ background: var(--gc-success); box-shadow: 0 0 16px rgba(35,242,166,0.38); }

.gc-flash-error{ border-color: rgba(255,75,106,0.55); }
.gc-flash-error .gc-flash-dot{ background: var(--gc-danger); box-shadow: 0 0 16px rgba(255,75,106,0.38); }

.gc-flash-warning{ border-color: rgba(255,196,0,0.55); }
.gc-flash-warning .gc-flash-dot{ background: var(--gc-warning); box-shadow: 0 0 16px rgba(255,196,0,0.38); }

.gc-flash-text{ color: var(--gc-text-soft); font-size: 0.88rem; }

/* GC-978 ? Global toast stack (fixed shell layer) */
.gc-toast-stack{
  position: fixed;
  z-index: var(--gc-z-toast);
  top: calc(var(--gc-header-h, 112px) + 10px + var(--gc-safe-top, 0px));
  right: calc(12px + var(--gc-safe-right, 0px));
  width: min(360px, calc(100vw - 24px));
  display: flex;
  flex-direction: column;
  gap: 8px;
  pointer-events: none;
}

.gc-toast-stack.is-empty{
  display: none;
}

.gc-toast{
  pointer-events: auto;
  display: grid;
  grid-template-columns: 3px 1fr auto;
  align-items: stretch;
  gap: 0;
  min-width: 0;
  padding: 0;
  border-radius: var(--gc-radius-sm);
  background: rgba(7, 14, 32, 0.92);
  border: 1px solid rgba(120, 190, 255, 0.22);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 16px 36px rgba(0, 0, 0, 0.45);
  animation: gc-toast-enter 0.28s ease-out;
  overflow: hidden;
}

.gc-toast.is-leaving{
  animation: gc-toast-leave 0.3s ease-in forwards;
}

.gc-toast-accent{
  width: 3px;
  background: var(--gc-primary);
  box-shadow: 0 0 12px rgba(70, 229, 255, 0.35);
}

.gc-toast-content{
  min-width: 0;
  padding: 10px 10px 10px 12px;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.gc-toast-title{
  font-family: var(--gc-mono);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(215, 246, 255, 0.88);
}

.gc-toast-body{
  color: var(--gc-text-soft);
  font-size: 0.84rem;
  line-height: 1.35;
  word-break: break-word;
}

.gc-toast-dismiss{
  align-self: start;
  margin: 6px 6px 0 0;
  width: 24px;
  height: 24px;
  padding: 0;
  border: 1px solid rgba(120, 190, 255, 0.18);
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 12, 24, 0.65);
  color: rgba(215, 246, 255, 0.72);
  font-size: 1rem;
  line-height: 1;
  cursor: pointer;
}

.gc-toast-dismiss:hover,
.gc-toast-dismiss:focus-visible{
  color: rgba(215, 246, 255, 0.95);
  border-color: rgba(120, 190, 255, 0.38);
  background: rgba(70, 229, 255, 0.08);
}

.gc-toast-success{
  border-color: rgba(35, 242, 166, 0.42);
}
.gc-toast-success .gc-toast-accent{
  background: var(--gc-success);
  box-shadow: 0 0 12px rgba(35, 242, 166, 0.38);
}

.gc-toast-error{
  border-color: rgba(255, 75, 106, 0.5);
}
.gc-toast-error .gc-toast-accent{
  background: var(--gc-danger);
  box-shadow: 0 0 12px rgba(255, 75, 106, 0.38);
}

.gc-toast-warning{
  border-color: rgba(255, 196, 0, 0.48);
}
.gc-toast-warning .gc-toast-accent{
  background: var(--gc-warning);
  box-shadow: 0 0 12px rgba(255, 196, 0, 0.35);
}

.gc-toast-info{
  border-color: rgba(70, 229, 255, 0.35);
}
.gc-toast-info .gc-toast-accent{
  background: var(--gc-primary);
  box-shadow: 0 0 12px rgba(70, 229, 255, 0.34);
}

@keyframes gc-toast-enter{
  from{
    opacity: 0;
    transform: translateX(16px);
  }
  to{
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes gc-toast-leave{
  from{
    opacity: 1;
    transform: translateX(0);
  }
  to{
    opacity: 0;
    transform: translateX(16px);
  }
}

@media (max-width: 991px){
  .gc-toast-stack{
    top: auto;
    bottom: calc(
      var(--gc-bottom-nav-h, 64px) +
      var(--gc-bottom-util-h, 36px) +
      var(--gc-safe-bottom, 0px) +
      10px
    );
    left: calc(10px + var(--gc-safe-left, 0px));
    right: calc(10px + var(--gc-safe-right, 0px));
    width: auto;
  }
}

body.gc-body-simple .gc-toast-stack{
  top: calc(12px + var(--gc-safe-top, 0px));
  bottom: auto;
  left: auto;
  right: calc(12px + var(--gc-safe-right, 0px));
  width: min(360px, calc(100vw - 24px));
}

@media (prefers-reduced-motion: reduce){
  .gc-toast{
    animation: none;
  }
  .gc-toast.is-leaving{
    animation: none;
    opacity: 0;
  }
}

.motd-banner{
  margin-bottom: 12px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  background: rgba(7, 14, 32, 0.82);
  border: 1px solid rgba(255, 196, 0, 0.40);
  box-shadow: 0 0 0 1px rgba(255,196,0,0.15), 0 0 30px rgba(255,196,0,0.12), 0 18px 40px rgba(0,0,0,0.50);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}
.motd-banner-toggle{
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: default;
}
.motd-banner--expandable .motd-banner-toggle{
  cursor: pointer;
}
.motd-banner--expanded{
  align-items: flex-start;
}
.motd-banner--expanded .motd-banner-toggle{
  align-items: flex-start;
}
.motd-banner-pill{
  padding: 4px 10px;
  border-radius: var(--gc-radius-sm);
  background: rgba(40, 28, 0, 0.74);
  border: 1px solid rgba(255, 196, 0, 0.80);
  color: #ffe58a;
  font-size: 0.76rem;
  letter-spacing: 0.10em;
  flex: 0 0 auto;
}
.motd-banner-text{
  flex: 1 1 auto;
  min-width: 0;
  color: var(--gc-text-soft);
  font-size: 0.88rem;
}
.motd-banner--collapsed .motd-banner-text{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.motd-banner--expanded .motd-banner-text{
  overflow: visible;
  white-space: pre-line;
  line-height: 1.45;
}
.motd-banner-chevron{
  flex: 0 0 auto;
  width: 10px;
  height: 10px;
  margin-top: 2px;
  border-right: 2px solid rgba(255, 210, 120, 0.85);
  border-bottom: 2px solid rgba(255, 210, 120, 0.85);
  transform: rotate(45deg);
  transition: transform 0.2s ease;
  display: none;
}
.motd-banner--expandable .motd-banner-chevron{
  display: block;
}
.motd-banner--expanded .motd-banner-chevron{
  transform: rotate(-135deg);
  margin-top: 6px;
}
.motd-banner-close{
  flex: 0 0 auto;
  padding: 6px 10px;
}
.motd-banner-actions{
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  gap: 4px;
}
.motd-banner-archive{
  padding: 6px 10px;
  font-size: 0.82rem;
  white-space: nowrap;
}
.motd-banner-head{
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.motd-banner-title{
  color: #ffe58a;
  font-size: 0.9rem;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.motd-banner--collapsed .motd-banner-head .motd-banner-text{
  display: none;
}
.motd-banner--expanded .motd-banner-head .motd-banner-title{
  white-space: normal;
}

/* ?? Universe News / Genesis Timeline (GC-642 / GC-650) ??????????????????? */

.gc-news-page{
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 100%;
  min-width: 0;
}

.gc-news-header{
  margin-bottom: 0;
}

.gc-news-header-top{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
  flex-wrap: wrap;
}

.gc-news-header-text{
  flex: 1 1 240px;
  min-width: 0;
}

.gc-news-release-chip{
  flex-shrink: 0;
  color: #ffe58a;
  border-color: rgba(255, 196, 0, 0.45);
  background: rgba(255, 196, 0, 0.08);
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.35),
    0 0 14px rgba(255, 196, 0, 0.12);
}

.gc-news-live-panel{
  border-color: rgba(255, 196, 0, 0.38);
  box-shadow:
    var(--gc-border-glow),
    0 0 24px rgba(255, 196, 0, 0.1),
    inset 0 0 0 1px rgba(0, 0, 0, 0.45);
}

.gc-news-live-head{
  margin-bottom: 8px;
}

.gc-news-live-tag{
  margin-bottom: 6px;
  border-color: rgba(255, 196, 0, 0.65);
  color: #ffe58a;
}

.gc-news-live-title{
  font-size: 1rem;
  color: var(--gc-text);
}

.gc-news-live-body{
  color: var(--gc-text-soft);
  font-size: 0.92rem;
  line-height: 1.55;
  white-space: pre-line;
}

.gc-news-panel{
  max-width: 100%;
}

.gc-news-empty{
  margin: 0;
  padding: 18px 4px;
  color: var(--gc-text-soft);
}

.gc-news-empty-panel .hint{
  margin: 0 0 8px;
  padding: 0 4px;
}

.gc-news-timeline{
  display: flex;
  flex-direction: column;
  gap: 22px;
}

.gc-news-year{
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}

.gc-news-year-marker{
  position: sticky;
  top: calc(var(--gc-sidebar-top, 136px) + 8px);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding-top: 6px;
}

.gc-news-year-chip{
  color: var(--gc-primary-2);
  font-weight: 700;
  letter-spacing: 0.1em;
}

.gc-news-year-spine{
  flex: 1 1 auto;
  width: 2px;
  min-height: 48px;
  border-radius: var(--gc-radius-pill);
  background: linear-gradient(
    180deg,
    rgba(70, 229, 255, 0.55) 0%,
    rgba(70, 229, 255, 0.08) 100%
  );
  box-shadow: 0 0 12px rgba(70, 229, 255, 0.18);
}

.gc-news-year-stack{
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

.gc-news-version{
  scroll-margin-top: calc(var(--gc-sidebar-top, 136px) + 12px);
  padding: 0;
  overflow: visible;
}

.gc-news-version--hash-target{
  outline: 1px solid rgba(255, 196, 0, 0.55);
  box-shadow:
    var(--gc-border-glow),
    0 0 28px rgba(255, 196, 0, 0.16),
    inset 0 0 0 1px rgba(0, 0, 0, 0.45);
  transition: outline-color 0.35s ease, box-shadow 0.35s ease;
}

.gc-news-version--major{
  border-color: rgba(255, 196, 0, 0.32);
  box-shadow:
    var(--gc-border-glow),
    0 0 22px rgba(255, 196, 0, 0.08),
    inset 0 0 0 1px rgba(0, 0, 0, 0.45);
}

.gc-news-version--major::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: linear-gradient(180deg, rgba(255, 196, 0, 0.85), rgba(255, 196, 0, 0.15));
  pointer-events: none;
}

.gc-news-version--dev{
  border-color: rgba(70, 229, 255, 0.34);
  box-shadow:
    var(--gc-border-glow),
    0 0 18px rgba(70, 229, 255, 0.1),
    inset 0 0 0 1px rgba(0, 0, 0, 0.45);
}

.gc-news-version--dev::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 3px;
  height: 100%;
  background: linear-gradient(180deg, rgba(70, 229, 255, 0.85), rgba(70, 229, 255, 0.12));
  pointer-events: none;
}

.gc-news-version-head{
  padding: 14px 16px 10px;
  margin: 0;
  border-bottom: 1px solid rgba(120, 190, 255, 0.12);
}

.gc-news-version-title-row{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 10px;
}

.gc-news-version-tag{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  color: #ffe58a;
  text-shadow: 0 0 14px rgba(255, 196, 0, 0.22);
}

.gc-news-version--dev .gc-news-version-tag{
  color: var(--gc-primary-2);
  text-shadow: 0 0 14px rgba(70, 229, 255, 0.22);
}

.gc-news-version-name{
  margin: 0;
  font-size: 0.98rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.gc-news-version-sub{
  margin: 6px 0 0;
}

.gc-news-version-badges{
  flex-wrap: wrap;
  justify-content: flex-end;
}

.gc-news-badge{
  padding: 5px 10px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #9efcff;
  border-color: rgba(70, 229, 255, 0.35);
  background: rgba(70, 229, 255, 0.08);
}

.gc-news-badge--alpha,
.gc-news-badge--new,
.gc-news-badge--hot{
  color: #ffe58a;
  border-color: rgba(255, 196, 0, 0.55);
  background: rgba(255, 196, 0, 0.08);
}

.gc-news-badge--dev{
  color: var(--gc-primary-2);
  border-color: rgba(70, 229, 255, 0.45);
}

.gc-news-badge--balance{
  color: #b8f5cf;
  border-color: rgba(120, 220, 160, 0.55);
  background: rgba(120, 220, 160, 0.08);
}

.gc-news-badge--breaking{
  color: #ffb0b0;
  border-color: rgba(255, 90, 90, 0.65);
  background: rgba(255, 90, 90, 0.08);
}

.gc-news-cat{
  padding: 4px 8px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: var(--gc-text-soft);
  border-color: rgba(120, 190, 255, 0.22);
  background: rgba(8, 16, 34, 0.55);
}

.gc-news-cat--feature{
  color: #9efcff;
  border-color: rgba(70, 229, 255, 0.35);
}

.gc-news-cat--bugfix{
  color: #ffb0b0;
  border-color: rgba(255, 120, 120, 0.35);
}

.gc-news-cat--balance{
  color: #b8f5cf;
  border-color: rgba(120, 220, 160, 0.35);
}

.gc-news-cat--devblog,
.gc-news-cat--alpha,
.gc-news-cat--event,
.gc-news-cat--community{
  color: var(--gc-text-soft);
}

.gc-news-version-list{
  list-style: none;
  margin: 0;
  padding: 0;
}

.gc-news-entry-row{
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  gap: 10px 12px;
  align-items: start;
  padding: 12px 16px;
  border-bottom: 1px solid rgba(120, 190, 255, 0.1);
  transition: background 0.12s ease;
}

.gc-news-entry-row:last-child{
  border-bottom: none;
}

.gc-news-entry-row:hover{
  background: rgba(8, 16, 34, 0.42);
}

.gc-news-entry-rail{
  display: flex;
  justify-content: center;
  padding-top: 6px;
}

.gc-news-timeline-dot{
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: rgba(70, 229, 255, 0.9);
  box-shadow: 0 0 10px rgba(70, 229, 255, 0.45);
  flex: 0 0 auto;
}

.gc-news-timeline-dot--major{
  background: rgba(255, 196, 0, 0.95);
  box-shadow: 0 0 12px rgba(255, 196, 0, 0.45);
}

.gc-news-entry-main{
  min-width: 0;
}

.gc-news-entry-meta,
.gc-news-timeline-item-meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.gc-news-entry-date{
  color: var(--gc-text-dim);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
}

.gc-news-entry-title,
.gc-news-timeline-item-title{
  display: block;
  margin: 0 0 4px;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--gc-text);
  line-height: 1.35;
}

.gc-news-entry-body{
  color: var(--gc-text-soft);
  font-size: 0.86rem;
  line-height: 1.5;
  white-space: pre-line;
}

.gc-news-entry-row--live,
.gc-news-timeline-item--live{
  background: rgba(255, 196, 0, 0.06);
  border-bottom-color: rgba(255, 196, 0, 0.22);
  box-shadow: inset 0 0 0 1px rgba(255, 196, 0, 0.12);
}

.gc-news-entry-pill{
  padding: 4px 8px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  color: #ffe58a;
  border-color: rgba(255, 196, 0, 0.65);
  background: rgba(255, 196, 0, 0.08);
}

.gc-news-entry-image{
  display: block;
  max-width: 100%;
  margin-top: 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.18);
  box-shadow: 0 0 16px rgba(70, 229, 255, 0.08);
}

.gc-news-version-intro{
  margin: 8px 0 0;
  color: var(--gc-text-soft);
  font-size: 0.92rem;
  line-height: 1.55;
  max-width: 62ch;
}

.gc-news-release-date{
  margin: 4px 0 0;
  color: var(--gc-text-dim);
  font-size: 0.82rem;
  letter-spacing: 0.05em;
}

.gc-news-admin-link{
  margin: 10px 0 0;
}

.gc-news-patchnotes{
  padding: 4px 16px 14px;
}

.gc-news-patch-section + .gc-news-patch-section{
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(120, 190, 255, 0.1);
}

.gc-news-section-kicker{
  margin: 0 0 8px;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-primary-2);
}

.gc-news-patch-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.gc-news-patch-item{
  position: relative;
  padding: 8px 0 8px 18px;
  color: var(--gc-text);
  font-size: 0.9rem;
  line-height: 1.45;
  border-bottom: 1px solid rgba(120, 190, 255, 0.08);
}

.gc-news-patch-item:last-child{
  border-bottom: none;
}

.gc-news-patch-item::before{
  content: "";
  position: absolute;
  left: 2px;
  top: 15px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: rgba(70, 229, 255, 0.85);
  box-shadow: 0 0 8px rgba(70, 229, 255, 0.35);
}

.gc-news-patch-item--live{
  background: rgba(255, 196, 0, 0.05);
  border-bottom-color: rgba(255, 196, 0, 0.18);
  padding-left: 18px;
  margin: 0 -8px;
  padding-right: 8px;
  border-radius: var(--gc-radius-sm);
}

.gc-news-patch-item--live::before{
  background: rgba(255, 196, 0, 0.95);
  box-shadow: 0 0 10px rgba(255, 196, 0, 0.4);
}

.gc-news-patch-text{
  display: inline;
}

.gc-news-patch-item .gc-news-entry-pill{
  margin-right: 8px;
  vertical-align: middle;
}

.gc-devlog-page .gc-devlog-back{
  margin: 8px 0 0;
}

.gc-devlog-version .gc-news-entry-body{
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.8rem;
}

.gc-news-dev-ref{
  font-size: 0.72rem;
  color: var(--gc-text-dim);
  opacity: 0.85;
}

@media (max-width: 720px){
  .gc-news-year{
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .gc-news-year-marker{
    position: static;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    padding-top: 0;
  }

  .gc-news-year-spine{
    flex: 1 1 auto;
    width: auto;
    height: 2px;
    min-height: 0;
    background: linear-gradient(
      90deg,
      rgba(70, 229, 255, 0.55) 0%,
      rgba(70, 229, 255, 0.08) 100%
    );
  }

  .gc-news-version-head{
    flex-direction: column;
    align-items: flex-start;
    gap: 10px;
  }

  .gc-news-version-badges{
    justify-content: flex-start;
  }
}

.gc-whats-new{
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: grid;
  place-items: center;
  padding: 20px;
}
.gc-whats-new-backdrop{
  position: absolute;
  inset: 0;
  background: rgba(2, 6, 16, 0.72);
}
.gc-whats-new-panel{
  position: relative;
  width: min(520px, 100%);
  padding: 18px 20px;
  border-color: rgba(255, 196, 0, 0.35);
  box-shadow: 0 0 40px rgba(255, 196, 0, 0.12);
}
.gc-whats-new-head{
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: start;
  margin-bottom: 14px;
}
.gc-whats-new-icon{ font-size: 1.6rem; line-height: 1; }
.gc-whats-new-kicker{
  margin: 0;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-muted);
}
.gc-whats-new-title{
  margin: 4px 0 0;
  font-size: 1.15rem;
  color: #ffe58a;
}
.gc-whats-new-list{
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.gc-whats-new-list li{
  position: relative;
  padding-left: 18px;
  color: var(--gc-text-soft);
  font-size: 0.92rem;
}
.gc-whats-new-list li::before{
  content: "?";
  position: absolute;
  left: 0;
  color: #7dffb2;
}
.gc-whats-new-foot{
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  flex-wrap: wrap;
}

.admin-news-badge--draft{
  border-color: rgba(160, 160, 160, 0.5);
  color: #ccc;
}

.admin-subsection-title{
  margin: 0 0 10px;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--gc-text-soft);
  letter-spacing: 0.02em;
}

.admin-news-manage{
  margin-bottom: 24px;
  padding-bottom: 20px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.1);
}

.admin-news-repo-audit{
  margin: 10px 0 12px;
  padding: 10px 12px;
  border: 1px solid rgba(70, 229, 255, 0.14);
  border-radius: var(--gc-radius-sm);
  background: rgba(4, 10, 22, 0.55);
  line-height: 1.5;
}

.admin-news-compose{
  margin-top: 4px;
}

.admin-news-release-pack{
  margin: 12px 0 16px;
  padding: 14px 16px 12px;
  border: 1px solid rgba(80, 160, 200, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(6, 14, 24, 0.55);
}

.admin-news-release-sections{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 10px;
  margin: 10px 0;
}

@media (max-width: 900px){
  .admin-news-release-sections{
    grid-template-columns: 1fr;
  }
}

.admin-news-compose--edit{
  border: 1px solid rgba(255, 196, 0, 0.35);
  border-radius: var(--gc-radius-sm);
  padding: 14px 16px 12px;
  background: rgba(255, 196, 0, 0.04);
}

.admin-news-list{
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 12px 0 0;
}

.admin-news-card{
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-start;
  padding: 10px 12px;
  border: 1px solid rgba(70, 229, 255, 0.12);
  border-radius: var(--gc-radius-sm);
  background: rgba(2, 8, 18, 0.65);
}

.admin-news-card-main{
  flex: 1;
  min-width: 0;
}

.admin-news-card-head{
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-bottom: 4px;
}

.admin-news-card-title{
  margin: 0;
  font-size: 0.92rem;
  font-weight: 600;
  color: var(--gc-text);
}

.admin-news-card-meta{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin-bottom: 6px;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}

.admin-news-card-date{
  opacity: 0.85;
}

.admin-news-meta-tag{
  padding: 1px 6px;
  border-radius: 4px;
  border: 1px solid rgba(70, 229, 255, 0.18);
  font-size: 0.72rem;
}

.admin-news-card-preview{
  margin: 0;
  color: var(--gc-text-soft);
  font-size: 0.82rem;
  line-height: 1.4;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.admin-news-card-actions{
  display: flex;
  flex-direction: column;
  gap: 6px;
  flex-shrink: 0;
}

.admin-news-status{
  padding: 2px 8px;
  border-radius: var(--gc-radius-sm);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid transparent;
}

.admin-news-status--banner{
  border-color: rgba(255, 196, 0, 0.65);
  color: #ffe58a;
  background: rgba(255, 196, 0, 0.08);
}

.admin-news-status--archive{
  border-color: rgba(120, 140, 160, 0.35);
  color: #aab4c0;
}

.admin-news-status--draft{
  border-color: rgba(160, 160, 160, 0.5);
  color: #ccc;
}

.admin-news-row{
  padding: 12px 14px;
  border: 1px solid rgba(70, 229, 255, 0.14);
  border-radius: var(--gc-radius-sm);
  background: rgba(4, 10, 24, 0.55);
}
.admin-news-row-head{
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 8px;
}
.admin-news-row-body{
  color: var(--gc-text-soft);
  font-size: 0.86rem;
  line-height: 1.45;
  margin-bottom: 10px;
}
.admin-news-badge{
  margin-left: 8px;
  padding: 2px 8px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 196, 0, 0.65);
  color: #ffe58a;
  font-size: 0.72rem;
}

/* =========================
   9) Grids
   ========================= */
.gc-grid-2{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--gc-section-gap);
}
@media (max-width: 980px){ .gc-grid-2{ grid-template-columns: 1fr; } }

/* =========================
   10) Tables
   ========================= */
.table-std{
  width: 100%;
  border-collapse: collapse;
  background: rgba(5, 10, 22, 0.38);
  border: 1px solid rgba(120, 190, 255, 0.16);
  border-radius: var(--gc-radius-sm);
  overflow: hidden;
  box-shadow: 0 18px 46px rgba(0,0,0,0.46);
}

.table-std th,
.table-std td{
  padding: 10px 10px;
  border-bottom: 1px solid rgba(120, 190, 255, 0.12);
  vertical-align: top;
}

/* v1.1 FIX (hard): NEVER break per-letter in tables */
.table-std td,
.table-std th{
  min-width: 0;
  overflow-wrap: break-word;   /* not 'anywhere' */
  word-break: normal;          /* prevent break-all style behavior */
  hyphens: auto;
}

/* Keep key columns readable (no squashed vertical headers) */
.table-std th{
  white-space: nowrap;
}

/* Action / right-aligned columns should not wrap */
.table-std .col-actions,
.table-std .tech-status-cell,
.table-std .col-bact{
  white-space: nowrap;
}

/* Research tech name + desc should wrap normally (at words) */
.tech-table .tech-name,
.tech-table .tech-desc{
  overflow-wrap: break-word;
  word-break: normal;
}

.table-std thead th{
  background: rgba(7, 14, 32, 0.78);
  color: var(--gc-text-soft);
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.table-std tbody tr:hover{ background: rgba(7, 14, 32, 0.44); }

.table-fixed{ table-layout: fixed; }
.table-std td{ color: var(--gc-text-soft); font-size: 0.88rem; }

.table-std .col-actions,
.table-std .tech-status-cell,
.table-std .col-bact{ text-align: right; }

.table-std .col-score, .table-std .col-rank{ text-align: right; }

/* v1.1: Costs column width guard (works if template uses those classes) */
.table-std .col-cost,
.table-std .col-costs,
.table-std td.cost-cell,
.table-std th.cost-cell{
  width: 270px;
}

/* =========================
   11) Typography helpers
   ========================= */
.gc-body-text{ color: var(--gc-text-soft); font-size: 0.92rem; }
.gc-list{ margin: 10px 0 0 18px; color: var(--gc-text-soft); }
.gc-list li{ margin: 6px 0; }
hr{ border: none; border-top: 1px solid rgba(120, 190, 255, 0.14); }

.ban-table-wrapper{ overflow-x: auto; }
.ban-table{ font-size: 0.84rem; }
.ban-table th, .ban-table td{ white-space: nowrap; }
.ban-actions-form{ margin: 0; }
.ban-permanent{ color: #ffd2dd; font-weight: 800; }

/* =========================
   13) Landing Page (GC-550)
   ========================= */
@keyframes landing-rise{
  from{
    opacity: 0;
    transform: translateY(22px);
  }
  to{
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes landing-title-shimmer{
  0%{ background-position: 0% 50%; }
  100%{ background-position: 200% 50%; }
}

@keyframes landing-btn-glow{
  0%, 100%{
    box-shadow:
      0 0 0 1px rgba(70, 229, 255, 0.42),
      0 4px 16px rgba(70, 229, 255, 0.16),
      inset 0 0 14px rgba(70, 229, 255, 0.07);
  }
  50%{
    box-shadow:
      0 0 0 1px rgba(127, 255, 217, 0.62),
      0 6px 22px rgba(70, 229, 255, 0.26),
      inset 0 0 20px rgba(70, 229, 255, 0.13);
  }
}

@keyframes landing-title-glitch{
  0%, 34%, 100%{
    transform: translate(0);
    filter: none;
    opacity: 1;
  }
  6%{
    transform: translate(-4px, 1px) skewX(-2deg);
    filter: drop-shadow(2px 0 rgba(70, 229, 255, 0.7)) drop-shadow(-2px 0 rgba(255, 61, 92, 0.45));
    opacity: 0.82;
  }
  10%{
    transform: translate(3px, -2px);
    opacity: 0.95;
  }
  14%{
    transform: translate(-2px, 0);
    filter: none;
    opacity: 0.7;
  }
  18%{
    transform: translate(0);
    opacity: 1;
  }
  24%{
    transform: translateX(2px);
    opacity: 0.88;
  }
  28%{
    transform: translate(0);
    opacity: 1;
  }
}

@keyframes landing-scan-sweep{
  0%, 72%, 100%{
    transform: translateX(-130%) skewX(-12deg);
    opacity: 0;
  }
  8%{
    opacity: 0.55;
  }
  38%{
    transform: translateX(130%) skewX(-12deg);
    opacity: 0;
  }
}

@keyframes landing-beacon-pulse{
  0%, 100%{
    transform: scale(1);
    opacity: 0.45;
    box-shadow: 0 0 6px rgba(255, 150, 70, 0.5), 0 0 14px rgba(255, 120, 50, 0.25);
  }
  50%{
    transform: scale(1.35);
    opacity: 1;
    box-shadow: 0 0 12px rgba(255, 180, 90, 0.95), 0 0 28px rgba(255, 130, 60, 0.55);
  }
}

@keyframes landing-ship-orbit-1{
  0%{
    transform: translate(78vw, 8vh) rotate(32deg);
    opacity: 0;
  }
  6%, 94%{
    opacity: 0.9;
  }
  100%{
    transform: translate(12vw, 82vh) rotate(32deg);
    opacity: 0;
  }
}

@keyframes landing-ship-orbit-2{
  0%{
    transform: translate(8vw, 55vh) rotate(-24deg);
    opacity: 0;
  }
  8%, 92%{
    opacity: 0.75;
  }
  100%{
    transform: translate(88vw, 22vh) rotate(-24deg);
    opacity: 0;
  }
}

@keyframes landing-ship-orbit-3{
  0%{
    transform: translate(55vw, 88vh) rotate(48deg);
    opacity: 0;
  }
  10%, 90%{
    opacity: 0.8;
  }
  100%{
    transform: translate(72vw, 18vh) rotate(48deg);
    opacity: 0;
  }
}

@keyframes landing-stars-twinkle{
  0%, 100%{ opacity: 0.55; }
  50%{ opacity: 0.9; }
}

@keyframes landing-nebula-drift{
  0%, 100%{ transform: translate3d(0, 0, 0) scale(1); opacity: 0.45; }
  50%{ transform: translate3d(12px, -8px, 0) scale(1.04); opacity: 0.65; }
}

@keyframes landing-meteor{
  0%{
    opacity: 0;
    transform: translate3d(0, 0, 0) rotate(-18deg);
  }
  6%{
    opacity: 1;
  }
  18%{
    opacity: 0;
    transform: translate3d(280px, 140px, 0) rotate(-18deg);
  }
  100%{
    opacity: 0;
    transform: translate3d(280px, 140px, 0) rotate(-18deg);
  }
}

@keyframes landing-feature-in{
  from{
    opacity: 0;
    transform: translateY(16px);
  }
  to{
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes landing-online-pulse{
  0%, 100%{ box-shadow: 0 0 8px rgba(0, 230, 138, 0.45); }
  50%{ box-shadow: 0 0 16px rgba(0, 230, 138, 0.75); }
}

.landing-wrapper{
  position: relative;
  padding: 32px 0 56px;
  display: flex;
  flex-direction: column;
  gap: 32px;
  min-height: calc(100vh - var(--gc-header-h) - var(--gc-page-pad-y) * 2);
  overflow: visible;
}

.landing-fx{
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  overflow: hidden;
}

.landing-fx-stars{
  position: absolute;
  inset: 0;
  opacity: 0.7;
  background-image:
    radial-gradient(1px 1px at 10% 20%, rgba(255, 255, 255, 0.9), transparent),
    radial-gradient(1px 1px at 25% 65%, rgba(200, 240, 255, 0.75), transparent),
    radial-gradient(1.5px 1.5px at 42% 15%, rgba(255, 255, 255, 0.85), transparent),
    radial-gradient(1px 1px at 58% 78%, rgba(180, 230, 255, 0.7), transparent),
    radial-gradient(1px 1px at 72% 32%, rgba(255, 255, 255, 0.8), transparent),
    radial-gradient(1.5px 1.5px at 88% 55%, rgba(127, 255, 217, 0.65), transparent),
    radial-gradient(1px 1px at 15% 88%, rgba(255, 255, 255, 0.6), transparent),
    radial-gradient(1px 1px at 35% 42%, rgba(255, 255, 255, 0.55), transparent),
    radial-gradient(1px 1px at 65% 8%, rgba(255, 255, 255, 0.7), transparent),
    radial-gradient(1px 1px at 92% 12%, rgba(200, 240, 255, 0.6), transparent);
  animation: landing-stars-twinkle 7s ease-in-out infinite;
}

.landing-fx-nebula{
  position: absolute;
  top: -15%;
  right: -8%;
  width: min(62vw, 720px);
  height: min(62vw, 720px);
  border-radius: 50%;
  background:
    radial-gradient(circle at 40% 40%, rgba(70, 229, 255, 0.12), transparent 58%),
    radial-gradient(circle at 65% 55%, rgba(255, 140, 60, 0.08), transparent 52%);
  animation: landing-nebula-drift 24s ease-in-out infinite;
}

.landing-fx-meteor{
  position: absolute;
  top: 18%;
  left: 62%;
  width: 120px;
  height: 2px;
  border-radius: 2px;
  background: linear-gradient(90deg, transparent, rgba(200, 245, 255, 0.95), transparent);
  filter: drop-shadow(0 0 6px rgba(70, 229, 255, 0.8));
  animation: landing-meteor 14s ease-in-out infinite;
}

.landing-fx-meteor-2{
  top: 42%;
  left: 28%;
  width: 90px;
  animation-delay: 7s;
  animation-duration: 18s;
}

.landing-fx-vignette{
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 95% 80% at 50% 45%, transparent 30%, rgba(2, 6, 14, 0.62) 100%),
    linear-gradient(0deg, rgba(2, 6, 14, 0.82) 0%, transparent 32%),
    linear-gradient(90deg, rgba(2, 6, 14, 0.55) 0%, transparent 48%),
    linear-gradient(270deg, rgba(2, 6, 14, 0.35) 0%, transparent 38%);
  pointer-events: none;
}

.landing-fx-ship{
  position: absolute;
  top: 0;
  left: 0;
  width: 16px;
  height: 5px;
  border-radius: 0 3px 3px 0;
  background: linear-gradient(90deg, rgba(70, 229, 255, 0.15), rgba(200, 245, 255, 0.95) 72%, #fff);
  clip-path: polygon(0 50%, 18% 0, 100% 32%, 100% 68%, 18% 100%);
  filter: drop-shadow(0 0 7px rgba(70, 229, 255, 0.9));
  will-change: transform;
}

.landing-fx-ship::after{
  content: "";
  position: absolute;
  right: calc(100% - 2px);
  top: 50%;
  width: 28px;
  height: 1px;
  transform: translateY(-50%);
  background: linear-gradient(90deg, transparent, rgba(70, 229, 255, 0.55));
  opacity: 0.75;
}

.landing-fx-ship-1{
  animation: landing-ship-orbit-1 28s linear infinite;
}

.landing-fx-ship-2{
  width: 12px;
  height: 4px;
  animation: landing-ship-orbit-2 36s linear infinite;
  animation-delay: 6s;
}

.landing-fx-ship-3{
  width: 10px;
  height: 3px;
  opacity: 0.7;
  animation: landing-ship-orbit-3 42s linear infinite;
  animation-delay: 14s;
}

.landing-fx-beacon{
  position: absolute;
  width: 5px;
  height: 5px;
  border-radius: 50%;
  background: rgba(255, 190, 110, 0.95);
  animation: landing-beacon-pulse 2.8s ease-in-out infinite;
}

.landing-fx-beacon-1{ top: 32%; right: 24%; animation-delay: 0s; }
.landing-fx-beacon-2{ top: 44%; right: 38%; animation-delay: 0.55s; }
.landing-fx-beacon-3{ top: 56%; right: 18%; animation-delay: 1.1s; }
.landing-fx-beacon-4{ top: 68%; right: 32%; animation-delay: 1.65s; }
.landing-fx-beacon-5{ top: 38%; right: 48%; animation-delay: 2.2s; }

.landing-wrapper > *:not(.landing-fx){
  position: relative;
  z-index: 1;
}

.landing-hero{
  position: relative;
  display: flex;
  align-items: center;
  min-height: clamp(480px, 72vh, 720px);
  padding: clamp(24px, 4vw, 48px) 0;
  overflow: visible;
}

.landing-hero-scan{
  position: absolute;
  inset: -10% -20%;
  pointer-events: none;
  background: linear-gradient(
    105deg,
    transparent 42%,
    rgba(70, 229, 255, 0.04) 47%,
    rgba(70, 229, 255, 0.14) 50%,
    rgba(127, 255, 217, 0.06) 53%,
    transparent 58%
  );
  animation: landing-scan-sweep 7s ease-in-out infinite;
}

.landing-hero-content{
  display: flex;
  flex-direction: column;
  justify-content: center;
  max-width: 520px;
  width: 100%;
}

.landing-hero-content > .landing-title{
  animation:
    landing-rise 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.08s both,
    landing-title-glitch 0.85s steps(1, end) 0.12s 1 normal both;
}

.landing-hero-content > .landing-tagline{
  animation: landing-rise 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both;
}

.landing-hero-content > .landing-vision{
  animation: landing-rise 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.34s both;
}

.landing-hero-content > .landing-actions{
  animation: landing-rise 0.85s cubic-bezier(0.22, 1, 0.36, 1) 0.48s both;
}

.landing-title{
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-weight: 900;
  letter-spacing: 0.12em;
  font-size: clamp(2.4rem, 5.5vw, 4rem);
  line-height: 1;
  margin: 0 0 18px;
  text-transform: uppercase;
}

.landing-title-top{
  color: #f4fcff;
}

.landing-title-accent{
  background: linear-gradient(100deg, #46e5ff 0%, #7fffd9 40%, #a8f0ff 60%, #46e5ff 100%);
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
  animation: landing-title-shimmer 5s linear infinite;
}

.landing-tagline{
  margin: 0 0 28px;
  font-size: clamp(1.05rem, 1.6vw, 1.28rem);
  color: rgba(235, 248, 255, 0.94);
  line-height: 1.5;
  max-width: 36ch;
}

.landing-vision{
  list-style: none;
  margin: 0 0 36px;
  padding: 0;
  display: grid;
  gap: 14px;
}

.landing-vision li{
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.landing-vision-icon{
  flex-shrink: 0;
  width: 28px;
  font-size: 1.1rem;
  line-height: 1.45;
  text-align: center;
  filter: drop-shadow(0 0 8px rgba(70, 229, 255, 0.35));
}

.landing-vision-text{
  color: rgba(210, 236, 248, 0.88);
  font-size: clamp(0.92rem, 1.15vw, 1.02rem);
  line-height: 1.55;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.landing-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  padding: 10px 0;
}

.landing-actions .gc-btn-lg{
  min-width: 180px;
  padding: 15px 28px;
  font-size: 0.96rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: 0;
}

.landing-actions .landing-btn-primary{
  transition: transform 0.22s ease, box-shadow 0.22s ease, filter 0.22s ease;
  animation: landing-btn-glow 2.8s ease-in-out infinite;
}

.landing-actions .landing-btn-primary:hover{
  animation: none;
  transform: translateY(-2px);
  filter: brightness(1.08);
  box-shadow:
    0 0 0 1px rgba(127, 255, 217, 0.7),
    0 6px 20px rgba(70, 229, 255, 0.3),
    inset 0 0 22px rgba(70, 229, 255, 0.16);
}

.landing-features{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 16px;
}

.landing-features .landing-feature-card:nth-child(1){
  animation: landing-feature-in 0.7s ease 0.55s both;
}
.landing-features .landing-feature-card:nth-child(2){
  animation: landing-feature-in 0.7s ease 0.68s both;
}
.landing-features .landing-feature-card:nth-child(3){
  animation: landing-feature-in 0.7s ease 0.81s both;
}

@media (max-width: 820px){
  .landing-features{ grid-template-columns: 1fr; }
}

.landing-feature-card{
  position: relative;
  padding: 22px 20px 24px;
  border-radius: 0;
  background: linear-gradient(180deg, rgba(8, 16, 34, 0.82), rgba(4, 10, 22, 0.72));
  border: 1px solid rgba(70, 229, 255, 0.16);
  box-shadow: inset 0 1px 0 rgba(127, 255, 217, 0.06);
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.landing-feature-card::before{
  content: "";
  position: absolute;
  top: 0;
  left: 16px;
  right: 16px;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(70, 229, 255, 0.45), transparent);
}

.landing-feature-card:hover{
  border-color: rgba(70, 229, 255, 0.32);
  transform: translateY(-2px);
}

.landing-feature-icon{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  margin-bottom: 12px;
  font-size: 1.2rem;
  line-height: 1;
  border-radius: 0;
  background: rgba(70, 229, 255, 0.08);
  border: 1px solid rgba(70, 229, 255, 0.18);
}

.landing-feature-title{
  margin: 0 0 8px;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--gc-primary-2);
  text-transform: uppercase;
}

.landing-feature-text{
  margin: 0;
  color: var(--gc-text-soft);
  font-size: 0.9rem;
  line-height: 1.55;
}

.landing-universe-panel{
  position: relative;
  padding: 24px 24px 22px;
  border-radius: 0;
  background:
    radial-gradient(ellipse 120% 80% at 50% -20%, rgba(70, 229, 255, 0.08), transparent 55%),
    linear-gradient(180deg, rgba(7, 14, 32, 0.92), rgba(4, 10, 22, 0.96));
  border: 1px solid rgba(70, 229, 255, 0.2);
  box-shadow:
    0 24px 60px rgba(0, 0, 0, 0.5),
    inset 0 1px 0 rgba(127, 255, 217, 0.08),
    inset 0 0 80px rgba(70, 229, 255, 0.03);
  overflow: hidden;
}

.landing-universe-panel::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    linear-gradient(90deg, transparent, rgba(70, 229, 255, 0.04), transparent),
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 3px,
      rgba(70, 229, 255, 0.015) 3px,
      rgba(70, 229, 255, 0.015) 4px
    );
  opacity: 0.65;
}

.landing-universe-head{
  position: relative;
  z-index: 1;
  margin-bottom: 22px;
  padding-bottom: 16px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.14);
}

.landing-universe-eyebrow{
  display: block;
  margin-bottom: 6px;
  color: var(--gc-text-dim);
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.landing-universe-name{
  margin: 0;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: clamp(1.15rem, 2.2vw, 1.5rem);
  font-weight: 800;
  letter-spacing: 0.08em;
  color: var(--gc-primary-2);
  text-transform: uppercase;
  text-shadow: 0 0 24px rgba(70, 229, 255, 0.25);
}

.landing-telemetry{
  position: relative;
  z-index: 1;
  margin-bottom: 22px;
}

.landing-telemetry-head{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
  min-height: 28px;
}

.landing-telemetry-scan{
  flex: 1;
  height: 1px;
  background: linear-gradient(90deg, rgba(70, 229, 255, 0.45), rgba(70, 229, 255, 0.08), transparent);
}

.landing-telemetry-title{
  margin: 0;
  flex-shrink: 0;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(210, 236, 248, 0.92);
}

.landing-telemetry-live{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
  padding: 4px 10px;
  border-radius: 0;
  border: 1px solid rgba(0, 230, 138, 0.35);
  background: rgba(0, 230, 138, 0.08);
  color: rgba(127, 255, 217, 0.95);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
}

.landing-metric-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 14px;
}

@media (max-width: 820px){
  .landing-metric-grid{ grid-template-columns: 1fr; }
}

.landing-metric-card{
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 14px;
  min-height: 112px;
  padding: 18px 18px 16px;
  border-radius: 0;
  background: linear-gradient(165deg, rgba(8, 16, 34, 0.88), rgba(4, 10, 22, 0.78));
  border: 1px solid rgba(70, 229, 255, 0.16);
  box-shadow: inset 0 1px 0 rgba(127, 255, 217, 0.06);
  overflow: hidden;
  transition: transform 0.22s ease, border-color 0.22s ease, box-shadow 0.22s ease;
}

.landing-metric-card::after{
  content: "";
  position: absolute;
  inset: auto 0 0 0;
  height: 2px;
  opacity: 0.85;
}

.landing-metric-card:hover{
  transform: translateY(-2px);
  border-color: rgba(70, 229, 255, 0.32);
  box-shadow:
    inset 0 1px 0 rgba(127, 255, 217, 0.1),
    0 10px 28px rgba(0, 0, 0, 0.28);
}

.landing-metric-card-galaxy::after{
  background: linear-gradient(90deg, transparent, rgba(147, 112, 255, 0.85), transparent);
}

.landing-metric-card-online{
  border-color: rgba(0, 230, 138, 0.22);
  background:
    radial-gradient(circle at 100% 0%, rgba(0, 230, 138, 0.1), transparent 42%),
    linear-gradient(165deg, rgba(8, 20, 28, 0.9), rgba(4, 12, 18, 0.82));
}

.landing-metric-card-online::after{
  background: linear-gradient(90deg, transparent, rgba(0, 230, 138, 0.9), transparent);
}

.landing-metric-card-registered::after{
  background: linear-gradient(90deg, transparent, rgba(70, 229, 255, 0.85), transparent);
}

.landing-metric-icon{
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 42px;
  height: 42px;
  border-radius: 0;
  font-size: 1.15rem;
  line-height: 1;
  background: rgba(70, 229, 255, 0.08);
  border: 1px solid rgba(70, 229, 255, 0.16);
  box-shadow: inset 0 0 18px rgba(70, 229, 255, 0.06);
}

.landing-metric-icon-live{
  background: rgba(0, 230, 138, 0.1);
  border-color: rgba(0, 230, 138, 0.28);
}

.landing-metric-body{
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-width: 0;
}

.landing-metric-value{
  font-family: var(--gc-font-level);
  font-size: clamp(1.65rem, 2.4vw, 2rem);
  font-weight: 800;
  line-height: 1;
  color: #f4fdff;
  text-shadow: 0 0 18px rgba(70, 229, 255, 0.18);
}

.landing-metric-label{
  color: rgba(176, 208, 224, 0.88);
  font-size: 0.74rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.35;
}

.landing-stat-tiles{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-bottom: 20px;
}

@media (max-width: 640px){
  .landing-stat-tiles{ grid-template-columns: 1fr; }
}

.landing-stat-tile{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  padding: 14px 16px;
  border-radius: 0;
  background: rgba(5, 10, 22, 0.65);
  border: 1px solid rgba(70, 229, 255, 0.12);
}

.landing-stat-tile-value{
  font-family: var(--gc-font-level);
  font-size: 1.45rem;
  font-weight: 700;
  line-height: 1.1;
  color: #eafcff;
}

.landing-stat-tile-label{
  color: var(--gc-text-dim);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.landing-stat-online{
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.landing-meta-dot{
  width: 8px;
  height: 8px;
  border-radius: 0;
  background: var(--gc-success);
  box-shadow: 0 0 10px rgba(0, 230, 138, 0.55);
  flex-shrink: 0;
  animation: landing-online-pulse 2.4s ease-in-out infinite;
}

@media (max-width: 768px){
  .landing-fx-ship,
  .landing-fx-beacon,
  .landing-fx-meteor,
  .landing-fx-nebula,
  .landing-hero-scan{
    display: none;
  }

  .landing-fx-stars{
    animation: none;
    opacity: 0.35;
  }

  .landing-hero-content > .landing-title,
  .landing-hero-content > .landing-tagline,
  .landing-hero-content > .landing-vision,
  .landing-hero-content > .landing-actions,
  .landing-features .landing-feature-card,
  .landing-title-accent,
  .landing-meta-dot{
    animation: none !important;
  }

  .landing-actions .landing-btn-primary{
    animation: landing-btn-glow 2.8s ease-in-out infinite !important;
  }
}

.landing-ambience,
.gc-ambience{
  position: absolute;
  width: 0;
  height: 0;
  opacity: 0;
  pointer-events: none;
}

@media (prefers-reduced-motion: reduce){
  .landing-fx-stars,
  .landing-fx-nebula,
  .landing-fx-meteor,
  .landing-fx-ship,
  .landing-fx-beacon,
  .landing-hero-scan,
  .landing-title-accent,
  .landing-actions .landing-btn-primary,
  .landing-meta-dot,
  .landing-hero-content > *,
  .landing-features .landing-feature-card{
    animation: none !important;
  }
}

.landing-speed-section{
  position: relative;
  z-index: 1;
  padding-top: 6px;
  border-top: 1px solid rgba(70, 229, 255, 0.1);
}

.landing-speed-strip-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.landing-speed-strip-tag{
  flex-shrink: 0;
  padding: 4px 10px;
  border-radius: 0;
  border: 1px solid rgba(70, 229, 255, 0.18);
  background: rgba(70, 229, 255, 0.06);
  color: rgba(176, 208, 224, 0.9);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.landing-speed-heading{
  margin: 0;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}

.landing-speed-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: 10px;
}

.landing-speed-tile{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  gap: 6px;
  min-height: 76px;
  padding: 14px 14px 12px;
  text-align: left;
  border-radius: 0;
  background: linear-gradient(180deg, rgba(6, 12, 26, 0.82), rgba(3, 8, 18, 0.88));
  border: 1px solid rgba(70, 229, 255, 0.14);
  box-shadow: inset 0 1px 0 rgba(127, 255, 217, 0.04);
  transition: border-color 0.2s ease, transform 0.2s ease;
}

.landing-speed-tile:hover{
  border-color: rgba(70, 229, 255, 0.28);
  transform: translateY(-1px);
}

.landing-speed-val{
  font-size: 1.12rem;
  font-weight: 800;
  color: var(--gc-primary);
  line-height: 1.1;
}

.landing-speed-lbl{
  color: var(--gc-text-dim);
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.3;
}

/* =========================
   14) Auth (Login/Register)
   ========================= */
.auth-page{
  position: relative;
  padding: clamp(24px, 4vw, 48px) clamp(16px, 3vw, 28px);
  min-height: calc(100vh - var(--gc-header-h) - var(--gc-page-pad-y) * 2);
  overflow-x: hidden;
}

.auth-backdrop{
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: radial-gradient(ellipse 70% 55% at 22% 42%, rgba(70, 229, 255, 0.06), transparent 68%);
}

.auth-backdrop-form{
  position: fixed;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: linear-gradient(90deg, transparent 38%, rgba(2, 6, 14, 0.42) 58%, rgba(2, 6, 14, 0.78) 100%);
}

.auth-shell{
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 500px);
  gap: clamp(28px, 5vw, 56px);
  align-items: center;
  max-width: 1080px;
  margin: 0 auto;
  min-height: calc(100vh - var(--gc-header-h) - var(--gc-page-pad-y) * 2 - 48px);
}

.auth-hero{
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: clamp(8px, 2vw, 20px) 0;
}

.auth-eyebrow{
  margin: 0;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gc-primary);
}

.auth-hero-title{
  margin: 0;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-weight: 900;
  font-size: clamp(1.75rem, 3.8vw, 2.65rem);
  line-height: 1.12;
  letter-spacing: 0.05em;
  color: #f4fcff;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.55);
  max-width: 16ch;
}

.auth-hero-sub{
  margin: 0;
  max-width: 42ch;
  color: rgba(210, 236, 248, 0.82);
  font-size: clamp(0.95rem, 1.35vw, 1.08rem);
  line-height: 1.55;
}

.auth-panel{
  position: relative;
  width: 100%;
  justify-self: end;
  padding: clamp(24px, 3vw, 30px);
  border-radius: var(--gc-radius-lg, 4px);
  background: linear-gradient(180deg, rgba(4, 9, 22, 0.96), rgba(2, 6, 16, 0.94));
  border: 1px solid rgba(70, 229, 255, 0.22);
  box-shadow:
    0 24px 64px rgba(0, 0, 0, 0.55),
    inset 0 1px 0 rgba(127, 255, 217, 0.07),
    inset 0 0 48px rgba(0, 0, 0, 0.4);
}

.auth-panel::before{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: inherit;
  pointer-events: none;
  background:
    linear-gradient(135deg, rgba(70, 229, 255, 0.06) 0%, transparent 42%),
    radial-gradient(ellipse 80% 50% at 50% 0%, rgba(70, 229, 255, 0.08), transparent 60%);
}

.auth-panel > *{
  position: relative;
  z-index: 1;
}

.auth-panel--login{
  max-width: 480px;
}

.auth-panel--register{
  max-width: 520px;
}

@media (max-width: 900px){
  .auth-shell{
    grid-template-columns: 1fr;
    gap: 20px;
    min-height: 0;
    max-width: 520px;
  }

  .auth-backdrop-form{
    background: linear-gradient(180deg, transparent 0%, rgba(2, 6, 14, 0.5) 38%, rgba(2, 6, 14, 0.75) 100%);
  }

  .auth-hero{
    text-align: center;
    align-items: center;
    padding-bottom: 4px;
  }

  .auth-hero-title{
    max-width: none;
    font-size: clamp(1.35rem, 5vw, 1.65rem);
  }

  .auth-hero-sub{
    max-width: 36ch;
    font-size: 0.9rem;
  }

  .auth-panel{
    justify-self: stretch;
    max-width: none;
  }
}

.auth-terminal-alert{
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 16px;
}

.auth-terminal-alert-tag{
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 20px;
  padding: 0 8px;
  font-family: var(--gc-font-level);
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #ffb4c4;
  border: 1px solid rgba(255, 75, 106, 0.45);
  background: rgba(255, 75, 106, 0.1);
}

.auth-terminal-alert-text{
  flex: 1;
  min-width: 0;
  line-height: 1.45;
}

.auth-error{
  padding: 12px 14px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 75, 106, 0.45);
  background: rgba(14, 6, 12, 0.78);
  color: rgba(255, 238, 242, 0.94);
  box-shadow: inset 0 0 0 1px rgba(255, 75, 106, 0.12);
}

.hidden{ display: none !important; }

.auth-form{
  display: grid;
  gap: 12px;
}

.auth-form-scroll{
  display: grid;
  gap: 12px;
  max-height: min(50vh, 380px);
  overflow-y: auto;
  padding-right: 2px;
  margin-right: -2px;
}

.auth-form-scroll::-webkit-scrollbar{
  width: 4px;
}

.auth-form-scroll::-webkit-scrollbar-thumb{
  background: rgba(70, 229, 255, 0.25);
  border-radius: 4px;
}

.auth-label{
  color: rgba(200, 232, 244, 0.58);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-top: 2px;
}

.auth-label + .auth-input{
  margin-top: -4px;
}

.auth-input{
  width: 100%;
  min-height: 54px;
  padding: 0 16px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.24);
  background: rgba(1, 4, 12, 0.92);
  color: #eafcff;
  font-size: 1rem;
  transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.auth-input::placeholder{
  color: rgba(200, 232, 244, 0.35);
}

.auth-input:hover{
  border-color: rgba(70, 229, 255, 0.35);
  background: rgba(3, 8, 20, 0.95);
}

.auth-input:focus{
  outline: none;
  border-color: rgba(70, 229, 255, 0.75);
  background: rgba(4, 10, 24, 0.98);
  box-shadow:
    0 0 0 2px rgba(70, 229, 255, 0.16),
    inset 0 0 12px rgba(70, 229, 255, 0.05);
}

.auth-input[aria-invalid="true"]{
  border-color: rgba(255, 75, 106, 0.65);
  box-shadow: 0 0 0 2px rgba(255, 75, 106, 0.12);
}

.auth-inline-link{
  margin: -2px 0 2px;
  font-size: 0.82rem;
  text-align: right;
}

.auth-inline-link a{
  color: var(--gc-primary-2);
  text-decoration: none;
}

.auth-inline-link a:hover{
  text-decoration: underline;
}

.auth-hint-compact{
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  color: rgba(200, 232, 244, 0.42);
  font-size: 0.72rem;
  line-height: 1.4;
  text-align: center;
}

.auth-btn-primary{
  margin-top: 4px;
  width: 100%;
  min-height: 54px;
  padding: 0 28px !important;
  font-size: 0.94rem !important;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
}

.auth-divider{
  display: flex;
  align-items: center;
  gap: 12px;
  margin: 14px 0 12px;
  color: rgba(200, 232, 244, 0.52);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.auth-divider::before,
.auth-divider::after{
  content: "";
  flex: 1;
  height: 1px;
  background: rgba(70, 229, 255, 0.14);
}

.auth-btn-discord{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-height: 54px;
  margin-top: 0;
  padding: 0 20px !important;
  border: 1px solid rgba(88, 101, 242, 0.55);
  border-radius: var(--gc-radius-sm);
  background: rgba(88, 101, 242, 0.14);
  color: #dbe1ff;
  font-size: 0.9rem !important;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none;
  text-transform: none;
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
}

.auth-btn-discord .discord-icon{
  width: 20px;
  height: 20px;
  flex: 0 0 auto;
}

.auth-btn-discord:hover,
.auth-btn-discord:focus-visible{
  border-color: rgba(114, 137, 218, 0.85);
  background: rgba(88, 101, 242, 0.24);
  box-shadow: 0 0 0 1px rgba(114, 137, 218, 0.35) inset;
  color: #eef1ff;
  text-decoration: none;
}

.auth-panel--discord-first .auth-btn-discord--primary{
  margin-top: 0;
}

.auth-divider--below-discord{
  margin: 16px 0 18px;
}

.auth-form--classic .auth-label:first-of-type{
  margin-top: 0;
}

.auth-page--discord-welcome .auth-shell--welcome{
  max-width: 560px;
}

.auth-panel--welcome{
  text-align: center;
}

.auth-welcome-title{
  margin-bottom: 18px;
}

.auth-welcome-checklist{
  list-style: none;
  margin: 0 0 16px;
  padding: 0;
  display: grid;
  gap: 10px;
  text-align: left;
}

.auth-welcome-checklist li{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border: 1px solid rgba(0, 230, 138, 0.22);
  border-radius: var(--gc-radius-sm);
  background: rgba(0, 40, 28, 0.28);
  color: rgba(220, 255, 240, 0.92);
  font-size: 0.92rem;
}

.auth-welcome-check{
  color: #00e68a;
  font-weight: 800;
}

.auth-welcome-discord-name{
  margin: 0 0 12px;
  color: rgba(200, 232, 244, 0.82);
  font-size: 0.9rem;
}

.auth-welcome-lead{
  margin: 0 0 18px;
  color: rgba(200, 232, 244, 0.72);
  font-size: 0.88rem;
  line-height: 1.5;
}

.auth-welcome-actions{
  display: grid;
  gap: 12px;
}

.auth-welcome-overview-btn{
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.gc-commander-identity{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  flex: 1 1 auto;
  overflow: hidden;
}

.gc-commander-discord-status{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 16px;
  height: 16px;
  border-radius: 50%;
  line-height: 1;
  text-decoration: none;
}

.gc-commander-discord-status--linked{
  color: rgba(127, 255, 217, 0.95);
  background: rgba(127, 255, 217, 0.1);
  border: 1px solid rgba(127, 255, 217, 0.32);
  cursor: default;
}

.gc-commander-discord-check{
  font-size: 0.58rem;
  font-weight: 800;
  line-height: 1;
}

.gc-commander-discord-status--unlinked{
  color: rgba(150, 162, 185, 0.62);
  background: rgba(255, 255, 255, 0.03);
  border: 1px solid rgba(150, 162, 185, 0.18);
  transition: color 0.15s ease, border-color 0.15s ease, background 0.15s ease;
}

.gc-commander-discord-status--unlinked:hover,
.gc-commander-discord-status--unlinked:focus-visible{
  color: rgba(190, 198, 220, 0.88);
  border-color: rgba(88, 101, 242, 0.42);
  background: rgba(88, 101, 242, 0.1);
  outline: none;
}

.gc-commander-discord-icon{
  width: 10px;
  height: 10px;
  flex: 0 0 auto;
}

.gc-options-discord{
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid rgba(70, 229, 255, 0.12);
}

.gc-options-discord-connected{
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.gc-options-discord-avatar{
  width: 48px;
  height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(88, 101, 242, 0.45);
  object-fit: cover;
}

.gc-options-discord-meta{
  display: grid;
  gap: 4px;
}

.gc-options-discord-status{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: rgba(200, 232, 244, 0.72);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.gc-options-discord-status-dot{
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #57f287;
  box-shadow: 0 0 8px rgba(87, 242, 135, 0.55);
}

.gc-options-discord-name{
  color: #eef1ff;
  font-size: 1rem;
}

.gc-options-discord-id{
  color: rgba(200, 232, 244, 0.58);
  font-size: 0.78rem;
}

.gc-options-discord-lead,
.gc-options-discord-locked{
  margin: 0 0 12px;
  color: rgba(200, 232, 244, 0.72);
  font-size: 0.88rem;
  line-height: 1.45;
}

.gc-options-discord-actions{
  display: grid;
  gap: 10px;
}

.gc-options-discord-link{
  width: 100%;
  text-decoration: none;
}

.gc-options-discord-hint.gc-options-hint-error{
  color: #ff8da8;
}

.gc-options-discord-hint.gc-options-hint-success{
  color: #00e68a;
}

.auth-footer{
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px 16px;
  flex-wrap: wrap;
  margin-top: 18px;
  padding-top: 14px;
  border-top: 1px solid rgba(70, 229, 255, 0.1);
  color: rgba(200, 232, 244, 0.72);
  font-size: 0.84rem;
}

@media (max-width: 520px){
  .auth-footer{
    flex-direction: column;
    align-items: center;
    text-align: center;
    gap: 8px;
  }
}

.auth-footer a{
  color: var(--gc-primary-2);
  text-decoration: none;
  font-weight: 600;
}

.auth-footer a:hover{
  text-decoration: underline;
}

/* Legacy auth pages (forgot/reset/result) */
.auth-card{
  max-width: 520px;
  margin: 0 auto;
  padding: 16px 16px;
}

.auth-title{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  letter-spacing: 0.06em;
  font-weight: 900;
  color: var(--gc-primary-2);
  font-size: 1.45rem;
  margin-bottom: 6px;
}

.auth-subtitle{
  color: var(--gc-text-soft);
  font-size: 0.92rem;
  margin-bottom: 12px;
}

.auth-badge{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.35);
  background: rgba(5, 10, 22, 0.55);
  color: var(--gc-text-soft);
  font-size: 0.82rem;
  margin-bottom: 10px;
}

/* Auth result states */
.gc-auth-state{
  display:flex;
  align-items:flex-start;
  gap:10px;
  padding:10px 12px;
  margin:10px 0 12px;
  border-radius:var(--gc-radius-sm);
  border:1px solid rgba(120,190,255,0.2);
  background:rgba(5,10,22,0.55);
}
.gc-auth-state-success{
  border-color:rgba(0,230,138,0.35);
  background:rgba(0,40,28,0.35);
  box-shadow:0 0 14px rgba(0,230,138,0.08);
}
.gc-auth-state-error{
  border-color:rgba(255,75,106,0.45);
  background:rgba(28,5,15,0.55);
}
.gc-auth-state-warning{
  border-color:rgba(255,154,26,0.45);
  background:rgba(40,24,0,0.35);
}
.gc-auth-state-icon{
  flex:0 0 auto;
  width:22px;
  height:22px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  font-weight:700;
}
.gc-auth-state-title{
  display:block;
  font-size:0.86rem;
  margin-bottom:4px;
}
.gc-auth-state-message{
  margin:0;
  font-size:0.82rem;
  color:var(--gc-text-soft);
  line-height:1.4;
}
.gc-auth-result-actions{
  margin-top:8px;
}
.gc-auth-result-footer{
  margin-top:14px;
}

/* =========================
   15) Overview
   ========================= */
.overview-resources{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
  gap: var(--gc-card-gap);
  margin-bottom: 12px;
}

.overview-res-card{
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  border-radius: var(--gc-radius-sm);
  background: rgba(5, 10, 22, 0.60);
  border: 1px solid rgba(120, 190, 255, 0.16);
  box-shadow: 0 18px 44px rgba(0,0,0,0.46);
}

.overview-res-icon{
  width: 36px;
  height: 36px;
  object-fit: contain;
  flex-shrink: 0;
  filter: drop-shadow(0 0 14px rgba(70,229,255,0.24));
}

.overview-res-meta{ display: grid; gap: 4px; min-width: 0; }
.overview-res-label{ color: var(--gc-text-dim); font-size: 0.82rem; letter-spacing: 0.06em; text-transform: uppercase; }

.overview-res-main{
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  color: var(--gc-text);
  font-weight: 800;
}
.overview-res-main .gc-val{ font-family: var(--gc-mono); font-size: 1.02rem; color: var(--gc-primary-2); }
.overview-res-main .gc-cap{ font-family: var(--gc-mono); font-size: 0.86rem; color: var(--gc-text-dim); }
.overview-res-cap{ color: var(--gc-text-soft); font-size: 0.84rem; }

.trader-hub-page{
  min-width: 0;
  overflow-x: clip;
}
.trader-hub-shell.gc-panel{
  padding: 10px;
}
/* GC-TRADER-HUB-CONTRAST ? no global wash-out; disabled only on individual controls */
.trader-hub-shell.gc-panel::before{
  opacity: 0.1;
}
.trader-hub-shell > *{
  position: relative;
  z-index: 1;
}
.trader-hub-page,
.trader-hub-page .trader-hub-shell,
.trader-hub-page .trader-hub-panels,
.trader-hub-page .trader-hub-panel,
.trader-hub-page .trader-hub-subpanel,
.trader-hub-page .gc-trader-panel,
.trader-hub-page .gc-trader-panel form{
  opacity: 1;
  filter: none;
  pointer-events: auto;
}
.trader-hub-shell .trader-hub-status-panel{
  margin: -10px -10px 0;
  padding: 10px 12px 8px;
  border-bottom: 1px solid rgba(127, 255, 217, 0.08);
}
.trader-hub-shell .trader-hub-window-header{
  margin-bottom: 8px;
  padding-bottom: 0;
  border-bottom: none;
}
.trader-hub-status-chips{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 6px;
  max-width: min(100%, 520px);
}
.trader-hub-status-chip strong{
  color: rgba(127, 255, 217, 0.96);
}
.trader-hub-status-chip--accent{
  border-color: rgba(70, 229, 255, 0.35);
  color: var(--gc-text);
}
.trader-hub-divider{
  margin: 10px 0;
}
.trader-hub-tabs{
  margin: 8px 0 10px;
}
.trader-hub-panels{
  display: grid;
  gap: 0;
  min-width: 0;
}
.trader-hub-panel{
  min-width: 0;
}
.trader-hub-panel[hidden]{
  display: none !important;
}
.gc-scrapyard-card-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
  min-width: 0;
  align-items: stretch;
}
.gc-scrapyard-card.inventory-item-card{
  height: 100%;
}
.trader-hub-page .gc-scrapyard-card .gc-scrapyard-card-hero,
.gc-scrapyard-card .gc-scrapyard-card-hero{
  min-height: 148px;
  padding: 14px 10px 12px;
  background:
    radial-gradient(ellipse at 50% 40%, rgba(70, 229, 255, 0.12), transparent 62%),
    rgba(0, 0, 0, 0.28);
}
.trader-hub-page .gc-scrapyard-card .gc-scrapyard-ship-icon,
.gc-scrapyard-card .gc-scrapyard-ship-icon{
  width: min(92%, 168px) !important;
  height: auto !important;
  max-height: 132px;
  min-height: 96px;
  object-fit: contain;
  filter: drop-shadow(0 0 14px rgba(70, 229, 255, 0.35));
  transition: transform 0.18s ease, filter 0.18s ease;
}
.trader-hub-page .gc-scrapyard-card:hover .gc-scrapyard-ship-icon,
.gc-scrapyard-card:hover .gc-scrapyard-ship-icon{
  transform: scale(1.04);
  filter: drop-shadow(0 0 18px rgba(70, 229, 255, 0.5));
}
.gc-scrapyard-card-body{
  gap: 6px;
}
.gc-scrapyard-refund{
  display: grid;
  gap: 3px;
  min-width: 0;
}
.gc-scrapyard-refund-label{
  font-size: 0.66rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(214, 235, 245, 0.62);
}
.gc-scrapyard-refund-row{
  display: grid;
  grid-template-columns: 16px minmax(0, 1fr);
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.gc-scrapyard-refund-icon{
  display: grid;
  place-items: center;
  width: 16px;
  height: 16px;
}
.gc-scrapyard-refund-icon .gc-res-icon{
  width: 14px;
  height: 14px;
  object-fit: contain;
}
.gc-scrapyard-refund-range{
  font-size: 0.72rem;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: rgba(230, 245, 255, 0.9);
}
.gc-scrapyard-card .gc-trader-scrap-actions{
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  padding: 8px;
}
.trader-hub-status-chip[hidden],
.trader-hub-status-chip.is-hidden,
.trader-hub-daily-panel[hidden]{
  display: none !important;
}
.trader-hub-subpanel,
.trader-hub-page .gc-trader-panel{
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid rgba(70, 229, 255, 0.28);
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 16, 36, 0.92);
  box-shadow: inset 0 0 0 1px rgba(70, 229, 255, 0.06), 0 0 16px rgba(70, 229, 255, 0.04);
}
.trader-hub-subpanel .gc-panel-header,
.trader-hub-page .gc-trader-panel .gc-panel-header{
  margin-bottom: 8px;
  padding-bottom: 8px;
}
.trader-hub-page .trader-hub-subpanel .gc-panel-title,
.trader-hub-page .gc-trader-panel .gc-panel-title{
  color: var(--gc-neon-cyan);
  text-shadow: 0 0 10px rgba(70, 229, 255, 0.35);
}
.trader-hub-page .trader-hub-subpanel .gc-panel-subtitle,
.trader-hub-page .gc-trader-panel .gc-panel-subtitle,
.trader-hub-page .trader-hub-subpanel .hint,
.trader-hub-page .gc-trader-panel .hint{
  color: rgba(214, 235, 245, 0.78);
}
.trader-hub-scrap-empty{
  display: grid;
  justify-items: center;
  gap: 8px;
  padding: 18px 12px;
  border: 1px dashed rgba(70, 229, 255, 0.18);
  border-radius: var(--gc-radius-sm);
  background: rgba(3, 8, 18, 0.45);
  text-align: center;
}
.trader-hub-scrap-empty-icon{
  font-size: 1.45rem;
  line-height: 1;
  opacity: 0.72;
  filter: grayscale(0.2);
}
.trader-hub-scrap-empty-text{
  margin: 0;
  max-width: 22rem;
  font-size: 0.82rem;
  line-height: 1.4;
}

.trader-hub-daily-sep{
  opacity: 0.45;
  padding: 0 0.15rem;
}

.trader-hub-daily-panel{
  display: grid;
  gap: 4px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.2);
  background: rgba(8, 16, 36, 0.78);
}

.trader-hub-daily-breakdown{
  display: grid;
  gap: 4px;
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.4;
}

/* GC-966 ? Collector Exchange (Sammler-Markt) in Trader Hub */
.trader-hub-collector-panel{
  margin-top: 0;
  min-width: 0;
  overflow: hidden;
}
.trader-hub-collector-header{
  margin-bottom: 8px;
}
.collector-specialist-tabs{
  display: flex;
  flex-wrap: nowrap;
  gap: 6px;
  margin-bottom: 10px;
  min-width: 0;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  padding-bottom: 2px;
}
.collector-specialist-tab{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 9px;
  border: 1px solid rgba(70, 229, 255, 0.22);
  border-radius: var(--gc-radius-sm);
  background: rgba(6, 14, 32, 0.85);
  color: rgba(214, 235, 245, 0.88);
  font-size: 0.74rem;
  line-height: 1.2;
  cursor: pointer;
  flex: 0 0 auto;
  max-width: 100%;
}
.collector-specialist-tab.is-active{
  border-color: rgba(70, 229, 255, 0.55);
  background: rgba(12, 32, 58, 0.95);
  color: var(--gc-neon-cyan);
  box-shadow: 0 0 12px rgba(70, 229, 255, 0.12);
}
.collector-specialist-tab-icon{
  font-size: 0.95rem;
  line-height: 1;
}
.collector-specialist-tab-label{
  white-space: nowrap;
}
.collector-offers-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(148px, 1fr));
  gap: 10px;
  min-width: 0;
}
.collector-offer-card.inventory-item-card{
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  height: 100%;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.collector-offer-card.inventory-item-card:hover{
  border-color: rgba(70, 229, 255, 0.34);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28), 0 0 18px rgba(70, 229, 255, 0.08);
  transform: translateY(-1px);
}
.collector-offer-hero{
  min-height: 72px;
  display: grid;
  place-items: center;
}
.collector-offer-hero-img{
  width: 64px;
  height: 64px;
  object-fit: contain;
  image-rendering: auto;
  filter: drop-shadow(0 0 10px rgba(70, 229, 255, 0.22));
}
.collector-offer-hero-icon{
  font-size: 1.45rem;
  line-height: 1;
  color: var(--gc-neon-cyan);
  text-shadow: 0 0 12px rgba(70, 229, 255, 0.35);
}
.collector-offer-card.is-redeemable{
  border-color: rgba(70, 229, 255, 0.42);
}
.collector-offer-card.is-dim{
  opacity: 0.72;
}
.collector-offer-card.is-locked{
  opacity: 0.62;
  border-style: dashed;
}
.collector-offer-actions{
  margin-top: auto;
}
.collector-offer-main{
  display: grid;
  gap: 6px;
  min-width: 0;
}
.collector-offer-headline{
  min-width: 0;
}
.collector-offer-title{
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.2;
  color: var(--gc-text);
}
.collector-offer-reward-line{
  margin: 2px 0 0;
  font-size: 0.7rem;
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.collector-offer-metrics{
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 6px;
  min-width: 0;
}
.collector-offer-owned{
  font-size: 0.68rem;
  white-space: nowrap;
}
.collector-offer-progress{
  height: 6px;
  min-width: 0;
}
.collector-offer-details{
  font-size: 0.68rem;
}
.collector-offer-details-toggle{
  cursor: pointer;
  color: rgba(214, 235, 245, 0.72);
  list-style: none;
}
.collector-offer-details-toggle::-webkit-details-marker{
  display: none;
}
.collector-offer-desc,
.collector-offer-input{
  margin: 4px 0 0;
  font-size: 0.68rem;
  line-height: 1.3;
}
.collector-redeem-btn{
  white-space: nowrap;
  padding-inline: 8px;
}
.collector-redeem-btn:disabled{
  opacity: 0.5;
}
.trader-hub-collector-unavailable{
  margin: 0;
  padding: 12px 10px;
}
.collector-exchange-error{
  margin-top: 8px;
}

@media (max-width: 640px){
  .collector-offers-grid{
    grid-template-columns: 1fr;
  }
  .collector-offer-metrics{
    grid-template-columns: 1fr;
    gap: 4px;
  }
  .collector-redeem-btn{
    width: 100%;
  }
}

.trader-hub-daily-formula,
.trader-hub-daily-empire{
  margin: 0;
  color: rgba(214, 235, 245, 0.78);
}

.trader-hub-daily-panel .fleet-slots-value strong{
  color: rgba(127, 255, 217, 0.96);
}

.trader-hub-page .gc-exchange-panel,
.trader-hub-page .gc-scrapyard-panel{
  max-width: none;
  margin-bottom: 0;
}
.trader-hub-page .gc-exchange-panel{
  padding: 0;
}
.trader-hub-page .gc-scrapyard-panel{
  padding: 0;
}
.gc-fuel-exchange-panel,
.gc-scrapyard-panel{
  padding: 0.85rem 1rem;
}
.gc-fuel-exchange-rates{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.65rem;
  margin-bottom: 0.65rem;
}
.gc-fuel-exchange-rate-card{
  display: grid;
  justify-items: center;
  gap: 0.15rem;
  padding: 0.45rem 0.55rem;
  border: 1px solid rgba(0, 212, 255, 0.18);
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-bg-2);
  min-width: 4.5rem;
}
.gc-fuel-exchange-rate-card--fuel{
  border-color: rgba(255, 196, 0, 0.35);
}
.gc-fuel-exchange-icon,
.gc-fuel-exchange-rate-card .gc-res-icon{
  width: 28px;
  height: 28px;
  object-fit: contain;
}
.gc-fuel-exchange-rate-val{
  font-weight: 700;
  color: var(--gc-primary-2);
}
.gc-fuel-exchange-rate-label{
  font-size: 0.72rem;
  color: var(--gc-text-dim);
}
.gc-fuel-exchange-plus,
.gc-fuel-exchange-equals{
  font-size: 1.1rem;
  color: var(--gc-text-soft);
  font-weight: 700;
}
.gc-fuel-exchange-form{
  display: grid;
  gap: 0.5rem;
}
.gc-fuel-exchange-preview{
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  font-size: 0.84rem;
}
.gc-scrapyard-list{
  display: grid;
  gap: 0.75rem;
}
.gc-scrapyard-ship-icon{
  flex-shrink: 0;
  filter: drop-shadow(0 0 6px rgba(0, 212, 255, 0.25));
}
.gc-scrapyard-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
}
.gc-scrapyard-qty{
  max-width: 5rem;
}
.galaxy-fleet-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.45rem;
}
.galaxy-fleet-action{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  border-radius: 6px;
  border: 1px solid rgba(0, 212, 255, 0.22);
  color: var(--gc-primary-2);
  background: rgba(0, 24, 48, 0.55);
  transition: border-color 0.15s, background 0.15s, color 0.15s;
  position: relative;
}
.galaxy-fleet-action:hover,
.galaxy-fleet-action:focus-visible{
  border-color: rgba(0, 212, 255, 0.55);
  background: rgba(0, 40, 72, 0.75);
  color: #fff;
}
.galaxy-fleet-action-label{
  position: absolute;
  left: 50%;
  bottom: calc(100% + 6px);
  transform: translateX(-50%);
  white-space: nowrap;
  font-size: 0.72rem;
  padding: 0.2rem 0.45rem;
  border-radius: 4px;
  background: rgba(4, 12, 24, 0.95);
  border: 1px solid rgba(0, 212, 255, 0.25);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.12s;
  z-index: 2;
}
.galaxy-fleet-action:hover .galaxy-fleet-action-label,
.galaxy-fleet-action:focus-visible .galaxy-fleet-action-label{
  opacity: 1;
}
.galaxy-fleet-action--quick-attack{
  border-color: rgba(255, 92, 92, 0.35);
  color: #ff8a8a;
}
.galaxy-fleet-action--quick-attack:hover,
.galaxy-fleet-action--quick-attack:focus-visible,
.galaxy-fleet-action--quick-attack[aria-expanded="true"]{
  border-color: rgba(255, 92, 92, 0.65);
  background: rgba(48, 8, 8, 0.75);
  color: #fff;
}
.galaxy-fleet-action.galaxy-quick-action--busy,
.galaxy-fleet-action[data-submitting="1"],
[data-galaxy-ring-debris-recycle].galaxy-quick-action--busy,
[data-galaxy-ring-debris-recycle][data-submitting="1"],
[data-galaxy-ring-asteroid-recycle].galaxy-quick-action--busy,
[data-galaxy-ring-asteroid-recycle][data-submitting="1"]{
  opacity: 0.55;
  pointer-events: none;
}
.galaxy-quick-attack-menu{
  position: fixed;
  z-index: var(--gc-z-popover);
  min-width: 10.5rem;
  max-width: 16rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 92, 92, 0.35);
  background: rgba(6, 10, 18, 0.97);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}
.galaxy-quick-attack-menu-inner{
  padding: 0.35rem 0;
}
.galaxy-quick-attack-list{
  display: flex;
  flex-direction: column;
}
.galaxy-quick-attack-item{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  width: 100%;
  padding: 0.45rem 0.65rem;
  border: 0;
  border-radius: 0;
  background: transparent;
  color: var(--gc-text);
  text-align: left;
  cursor: pointer;
  font: inherit;
}
.galaxy-quick-attack-item:hover,
.galaxy-quick-attack-item:focus-visible{
  background: rgba(255, 92, 92, 0.12);
  outline: none;
}
.galaxy-quick-attack-item-head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  width: 100%;
}
.galaxy-quick-attack-item-name{
  font-size: 0.82rem;
  font-weight: 600;
}
.galaxy-quick-attack-item-type{
  font-size: 0.7rem;
  color: var(--gc-text-soft);
  text-transform: uppercase;
  letter-spacing: 0.04em;
  flex-shrink: 0;
}
.galaxy-quick-attack-item-preview{
  font-size: 0.72rem;
  color: var(--gc-primary-2);
  line-height: 1.35;
  word-break: break-word;
}
.galaxy-quick-attack-empty,
.galaxy-quick-attack-loading{
  margin: 0;
  padding: 0.5rem 0.65rem;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}
.galaxy-quick-attack-fleet-link{
  display: block;
  padding: 0.35rem 0.65rem 0.55rem;
  font-size: 0.78rem;
  color: var(--gc-primary-2);
  text-decoration: none;
}
.galaxy-quick-attack-fleet-link:hover,
.galaxy-quick-attack-fleet-link:focus-visible{
  color: #fff;
  text-decoration: underline;
}
.galaxy-slot-card-aside .galaxy-fleet-actions{
  margin-top: 0;
  justify-content: flex-end;
}
.galaxy-fleet-expansion-hint{
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  max-width: 14rem;
}
.galaxy-fleet-expansion-hint .hint{
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.35;
}
.galaxy-fleet-expansion-cta{
  align-self: flex-start;
}
.gc-ship-detail-icon{
  width: 72px;
  height: 72px;
  object-fit: contain;
  margin-bottom: 0.35rem;
  filter: drop-shadow(0 0 10px rgba(0, 212, 255, 0.2));
}
.gc-ship-detail-reqs{
  margin-top: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(0, 212, 255, 0.12);
}
.gc-ship-detail-req-list{
  list-style: none;
  margin: 0.35rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.25rem;
  font-size: 0.82rem;
}
.gc-ship-detail-req-item{
  color: var(--gc-text-soft);
}
.gc-ship-detail-req-item.is-met{
  color: var(--gc-primary-2);
}
.fleet-colonize-name-row[hidden]{
  display: none !important;
}
.shipyard-ship-card{
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.65rem;
  align-items: start;
}
.shipyard-ship-thumb{
  grid-row: 1 / span 4;
  filter: drop-shadow(0 0 8px rgba(0, 212, 255, 0.18));
}
.shipyard-ship-list-locked .shipyard-ship-thumb{
  opacity: 0.45;
}
.gc-exchange-panel{
  margin-bottom: 12px;
  padding: 0.85rem 1rem;
}
.gc-exchange-panel .gc-panel-header{
  margin-bottom: 0.5rem;
}
.gc-exchange-direction-toggle{
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-bottom: 0.65rem;
}
.gc-exchange-dir-btn{
  flex: 1 1 8rem;
  padding: 0.4rem 0.55rem;
  border: 1px solid rgba(0, 212, 255, 0.22);
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-bg-2);
  color: var(--gc-text-soft);
  font-size: 0.78rem;
  cursor: pointer;
  transition: border-color 0.15s, color 0.15s, background 0.15s;
}
.gc-exchange-dir-btn:hover{
  border-color: rgba(0, 212, 255, 0.45);
  color: var(--gc-text);
}
.gc-exchange-dir-btn.is-active{
  border-color: rgba(0, 212, 255, 0.55);
  background: rgba(0, 40, 70, 0.55);
  color: var(--gc-primary-2);
  font-weight: 600;
}
.gc-exchange-formula{
  margin-bottom: 0.55rem;
}
.gc-exchange-arrow{
  font-size: 1.25rem;
  color: var(--gc-primary-2);
  font-weight: 700;
}
.gc-exchange-limit{
  margin-bottom: 0.65rem;
  font-size: 0.82rem;
}
.gc-exchange-form{
  display: grid;
  gap: 0.55rem;
}
.gc-exchange-label{
  font-size: 0.78rem;
  color: var(--gc-text-dim);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.gc-exchange-input{
  max-width: 12rem;
}
.gc-exchange-preview strong{
  color: var(--gc-primary-2);
}
.gc-exchange-error{
  color: #ff9a7a;
}
.gc-exchange-submit{
  justify-self: start;
}

/* Trader Hub ? layout & controls (panels use shared gc-panel) */
.visually-hidden,
.gc-sr-only{
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.trader-hub-page .gc-trader-exchange-pick{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2rem minmax(0, 1fr);
  gap: 0.65rem;
  align-items: end;
  margin-bottom: 0.65rem;
}
.trader-hub-page .gc-trader-pick-label{
  display: block;
  margin-bottom: 0.4rem;
  font-size: 0.68rem;
  letter-spacing: 0.07em;
  color: rgba(214, 235, 245, 0.72);
}
.trader-hub-page .gc-trader-pick-swap{
  display: grid;
  place-items: center;
  width: 2rem;
  justify-self: center;
  padding-bottom: 1.1rem;
  color: rgba(70, 229, 255, 0.72);
  font-size: 1.1rem;
  line-height: 1;
}
.trader-hub-page .gc-trader-resource-tiles{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.35rem;
}
.trader-hub-page .gc-trader-resource-tile{
  display: grid;
  justify-items: center;
  gap: 0.2rem;
  padding: 0.45rem 0.25rem;
  border: 1px solid rgba(70, 229, 255, 0.22);
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 16, 36, 0.88);
  color: rgba(214, 235, 245, 0.88);
  font-size: 0.62rem;
  line-height: 1.15;
  cursor: pointer;
  opacity: 1;
  transition: border-color 0.12s ease, background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
}
.trader-hub-page .gc-trader-resource-tile img{
  width: 28px;
  height: 28px;
  object-fit: contain;
  opacity: 1;
  filter: none;
}
.trader-hub-page .gc-trader-resource-tile:hover:not(.is-disabled):not(:disabled){
  border-color: rgba(70, 229, 255, 0.45);
  background: rgba(10, 20, 42, 0.95);
  color: var(--gc-text);
}
.trader-hub-page .gc-trader-resource-tile.is-active{
  border-color: rgba(70, 229, 255, 0.65);
  background: rgba(70, 229, 255, 0.12);
  color: var(--gc-neon-cyan);
  text-shadow: 0 0 8px rgba(70, 229, 255, 0.25);
  box-shadow: 0 0 12px rgba(70, 229, 255, 0.12);
}
.trader-hub-page .gc-trader-resource-tile.is-disabled,
.trader-hub-page .gc-trader-resource-tile:disabled{
  opacity: 0.45;
  cursor: not-allowed;
  border-color: rgba(120, 190, 255, 0.1);
  background: rgba(3, 8, 18, 0.55);
  color: var(--gc-text-dim);
  pointer-events: none;
  box-shadow: none;
  text-shadow: none;
}
.trader-hub-page .gc-trader-resource-tile.is-disabled:hover,
.trader-hub-page .gc-trader-resource-tile:disabled:hover{
  border-color: rgba(120, 190, 255, 0.08);
  background: rgba(3, 8, 18, 0.35);
}
.trader-hub-page .gc-trader-exchange-form{
  display: grid;
  gap: 0.65rem;
}
.trader-hub-page .gc-trader-amount-row{
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2rem minmax(0, 1fr);
  gap: 0.65rem;
  align-items: end;
  padding: 0.65rem 0.7rem;
  border: 1px solid rgba(70, 229, 255, 0.2);
  border-radius: var(--gc-radius-sm);
  background: rgba(6, 12, 28, 0.55);
}
.trader-hub-page .gc-trader-amount-field{
  display: grid;
  gap: 0.3rem;
  min-width: 0;
  width: 100%;
}
.trader-hub-page .gc-trader-amount-input-row{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: stretch;
  gap: 0.35rem;
  min-width: 0;
  width: 100%;
}
.trader-hub-page .gc-trader-amount-input-row .gc-trader-input{
  width: 100%;
  min-width: 0;
  max-width: none;
}
.trader-hub-page .gc-exchange-input{
  max-width: none;
}
.trader-hub-page .gc-trader-max-btn{
  flex: 0 0 auto;
  min-width: 2.75rem;
  padding-inline: 0.45rem;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
}
.trader-hub-page .gc-trader-field-label{
  display: block;
  margin-bottom: 0;
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  color: rgba(214, 235, 245, 0.72);
}
.trader-hub-page .gc-trader-amount-arrow{
  display: grid;
  place-items: center;
  width: 2rem;
  justify-self: center;
  padding-bottom: 0.55rem;
  color: rgba(70, 229, 255, 0.72);
  font-size: 1.15rem;
  line-height: 1;
}
.trader-hub-page .gc-trader-input,
.trader-hub-page .gc-trader-output{
  width: 100%;
  max-width: none;
  min-height: 38px;
  box-sizing: border-box;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.38);
  background: rgba(5, 12, 28, 0.95);
  color: var(--gc-text);
  opacity: 1;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03), inset 0 0 10px rgba(0, 0, 0, 0.22);
  transition: border-color 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}
.trader-hub-page .gc-trader-output{
  display: flex;
  align-items: center;
  color: var(--gc-neon-cyan);
  font-family: var(--gc-mono);
  background: rgba(6, 14, 32, 0.92);
}
.trader-hub-page input[type="number"].gc-trader-input,
.trader-hub-page .fleet-ship-input.gc-trader-input{
  font-family: var(--gc-mono);
  appearance: textfield;
  -moz-appearance: textfield;
}
.trader-hub-page input[type="number"]::-webkit-outer-spin-button,
.trader-hub-page input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance: none;
  margin: 0;
}
.trader-hub-page .gc-trader-input:hover,
.trader-hub-page .gc-trader-output:hover{
  border-color: rgba(70, 229, 255, 0.42);
}
.trader-hub-page .gc-trader-input:focus{
  outline: none;
  border-color: rgba(70, 229, 255, 0.88);
  box-shadow: 0 0 0 2px rgba(70, 229, 255, 0.14), inset 0 0 12px rgba(70, 229, 255, 0.06);
}
.trader-hub-page .gc-trader-info-bar{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.45rem;
  padding: 0.55rem 0.65rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.24);
  background: rgba(8, 16, 36, 0.88);
}
.trader-hub-page .gc-trader-info-cell{
  display: grid;
  gap: 0.15rem;
  min-width: 0;
}
.trader-hub-page .gc-trader-info-label{
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  color: rgba(214, 235, 245, 0.68);
}
.trader-hub-page .gc-trader-info-cell strong{
  color: var(--gc-text);
  font-size: 0.82rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.trader-hub-page .gc-trader-info-cell--accent strong{
  color: var(--gc-neon-cyan);
  text-shadow: 0 0 8px rgba(70, 229, 255, 0.2);
}
.trader-hub-page .gc-trader-submit{
  width: 100%;
  justify-content: center;
  opacity: 1;
}
.trader-hub-page .gc-trader-submit-arrow{
  margin-left: 0.35rem;
  opacity: 0.85;
}
.trader-hub-page .gc-trader-error{
  margin: 0;
  color: #ff9a7a;
}
.trader-hub-page .gc-trader-scrap-list.gc-scrapyard-card-grid{
  gap: 10px;
}
.trader-hub-page .gc-trader-scrap-icon-wrap{
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  flex-shrink: 0;
  border: 1px solid rgba(70, 229, 255, 0.32);
  border-radius: var(--gc-radius-sm);
  background: rgba(5, 12, 28, 0.92);
}
.trader-hub-page .gc-scrapyard-ship-icon{
  opacity: 1;
}
.trader-hub-page .gc-trader-scrap-body{
  display: grid;
  gap: 0.12rem;
  min-width: 0;
}
.trader-hub-page .gc-trader-scrap-body .gc-scrapyard-ship-name,
.trader-hub-page .gc-trader-scrap-body .fleet-ship-name{
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(230, 245, 255, 0.94);
}
.trader-hub-page .gc-trader-scrap-body .gc-scrapyard-have,
.trader-hub-page .gc-trader-scrap-body .fleet-ship-stock{
  color: var(--gc-neon-cyan);
}
.trader-hub-page .gc-scrapyard-refund-range{
  color: rgba(214, 235, 245, 0.9);
}
.trader-hub-page .gc-trader-scrap-actions{
  flex-wrap: wrap;
}
.trader-hub-page .gc-trader-scrap-btn{
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  opacity: 1;
}
.trader-hub-page .gc-trader-scrap-actions .gc-trader-input,
.trader-hub-page .gc-trader-scrap-actions .fleet-ship-input{
  opacity: 1;
}
@media (max-width: 640px){
  .collector-offers-grid,
  .gc-scrapyard-card-grid{
    grid-template-columns: 1fr;
  }
}
@media (max-width: 820px){
  .trader-hub-status-chips{
    justify-content: flex-start;
    max-width: none;
  }
  .trader-hub-shell .trader-hub-window-header{
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .trader-hub-page .gc-trader-exchange-pick,
  .trader-hub-page .gc-trader-amount-row,
  .trader-hub-page .gc-trader-info-bar{
    grid-template-columns: 1fr;
  }
  .trader-hub-page .gc-trader-pick-swap,
  .trader-hub-page .gc-trader-amount-arrow{
    display: none;
  }
}

.overview-score-card{ border-color: rgba(255, 196, 0, 0.25); }
.overview-score-main-row{ display: flex; align-items: center; justify-content: space-between; gap: 10px; }
.overview-score-value{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-weight: 900;
  letter-spacing: 0.06em;
  color: #ffe58a;
  text-shadow: 0 0 20px rgba(255,196,0,0.14);
}
.overview-score-rank-pill{
  padding: 4px 10px;
  border-radius: var(--gc-radius-sm);
  background: rgba(40, 28, 0, 0.55);
  border: 1px solid rgba(255, 196, 0, 0.55);
  color: rgba(255, 229, 138, 0.92);
  font-size: 0.82rem;
}
.overview-score-sub{ color: var(--gc-text-dim); font-size: 0.82rem; }

.overview-hint{
  margin-top: 10px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(7, 14, 32, 0.52);
  color: var(--gc-text-soft);
  box-shadow: 0 18px 44px rgba(0,0,0,0.44);
}
.overview-energy-ok{ border-color: rgba(35,242,166,0.40); background: rgba(8, 28, 22, 0.55); }
.overview-energy-low{ border-color: rgba(255,196,0,0.55); background: rgba(40, 28, 4, 0.45); }
.overview-energy-critical{ border-color: rgba(255,75,106,0.65); background: rgba(48, 8, 14, 0.55); }
.overview-energy-zero{ border-color: rgba(255,75,106,0.65); background: rgba(48, 8, 14, 0.55); }
.fleet-ship-row-empty{ opacity: 0.45; }

/* OGame-style overview (colony status) */
.overview-hero{
  margin-bottom: var(--gc-card-gap);
}
.overview-hero:not(.gc-planet-hero){
  background:
    radial-gradient(ellipse at 20% 0%, rgba(70,229,255,0.10), transparent 55%),
    rgba(5, 10, 22, 0.72);
}
.overview-hero--themed{
  position: relative;
  overflow: hidden;
  isolation: isolate;
}
.overview-hero--themed:not(.gc-planet-hero){
  border-color: var(--planet-accent, rgba(70, 229, 255, 0.36));
  box-shadow:
    0 0 24px color-mix(in srgb, var(--planet-accent, #46e5ff) 30%, transparent),
    0 0 2px color-mix(in srgb, var(--planet-accent, #46e5ff) 55%, transparent),
    inset 0 0 0 1px rgba(0, 0, 0, 0.42);
  background: rgba(5, 10, 22, 0.35);
  transition:
    border-color 0.45s ease,
    box-shadow 0.45s ease;
}
.overview-hero--themed.gc-planet-hero,
.gc-planet-hero.gc-panel,
.overview-hero.gc-planet-hero{
  position: relative;
  display: block;
  overflow: hidden;
  border: none;
  outline: none;
  border-radius: 0;
  box-shadow: none;
  /* No plate behind the frame ? page landscape shows through PNG margins seamlessly */
  background: transparent;
  padding: 0;
  width: 100%;
  margin-left: auto;
  margin-right: auto;
  aspect-ratio: 1536 / 1024;
  min-height: 420px;
  height: auto;
  /* frame.png ? HUD layout */
  --hero-hole-top: 11.72%;
  --hero-hole-right: 7.16%;
  --hero-hole-bottom: 7.23%;
  --hero-hole-left: 6.84%;
  /* Landscape only in the frame hole (+ slight tuck under inner bezel) ? no outer plate past the metal */
  --hero-bg-top: 10.2%;
  --hero-bg-right: 6.2%;
  --hero-bg-bottom: 6.3%;
  --hero-bg-left: 5.9%;
  /* HUD corners ? frame rails (full hero stage) */
  --hero-corner-tl-top: 5.5%;
  --hero-corner-tl-left: 8%;
  --hero-corner-tr-top: 5.5%;
  --hero-corner-tr-right: 8%;
  --hero-corner-bl-bottom: 7%;
  --hero-corner-bl-left: 8%;
  --hero-corner-br-bottom: 7%;
  --hero-corner-br-right: 8%;
  --hero-activity-top: 13%;
  --hero-activity-bottom: 9%;
  --hero-activity-left: 7.5%;
  --hero-activity-right: 7.5%;
}
.overview-hero--themed.gc-planet-hero{
  border-color: transparent;
  background: transparent;
}
body.gc-body-ingame.gc-has-planet-landscape .gc-planet-hero.gc-panel,
body.gc-body-ingame.gc-has-planet-landscape .overview-hero--themed.gc-planet-hero,
body.gc-body-ingame .overview-hero.overview-hero--themed.gc-planet-hero.gc-panel{
  border: none;
  outline: none;
  box-shadow: none;
  background: transparent;
  padding: 0;
  animation: none;
}
/* gc-panel scanlines would steal pseudo-elements ? planet HUD uses real layers */
.gc-planet-hero.gc-panel::before,
.gc-planet-hero.gc-panel::after{
  display: none;
}
.overview-hero-atmo{
  position: absolute;
  z-index: 1;
  pointer-events: none;
  border-radius: inherit;
  background:
    radial-gradient(ellipse 115% 95% at 50% 42%, transparent 32%, rgba(2, 8, 18, 0.52) 68%, rgba(0, 3, 10, 0.9) 100%),
    linear-gradient(90deg, rgba(0, 6, 16, 0.86) 0%, rgba(0, 8, 18, 0.42) 36%, transparent 66%),
    linear-gradient(to top, rgba(0, 8, 20, 0.94) 0%, rgba(0, 8, 18, 0.55) 26%, transparent 54%);
}
.overview-hero--themed.gc-planet-hero .overview-hero-bg,
.overview-hero--themed.gc-planet-hero .overview-hero-fx{
  top: var(--hero-bg-top, 5.9%);
  right: var(--hero-bg-right, 3.6%);
  bottom: var(--hero-bg-bottom, 3.6%);
  left: var(--hero-bg-left, 3.4%);
  overflow: hidden;
  border-radius: 0;
}
.overview-hero--themed.gc-planet-hero .overview-hero-atmo{
  display: none;
}
.overview-hero--themed.gc-planet-hero .overview-hero-bg::after{
  content: "";
  display: block;
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    linear-gradient(180deg, rgba(0, 0, 0, 0.62) 0%, transparent 22%),
    linear-gradient(0deg, rgba(0, 0, 0, 0.62) 0%, transparent 26%);
}
.overview-hero--themed.gc-planet-hero{
  --hero-line: color-mix(in srgb, var(--planet-accent, #46e5ff) 22%, rgba(255, 255, 255, 0.08));
  /* frame HUD ? slot 1?15 palette via planet theme tokens */
  --hero-frame-top-name: color-mix(in srgb, var(--planet-accent-secondary, #7fffd9) 90%, #fff 10%);
  --hero-frame-top-coords: color-mix(in srgb, var(--planet-accent-secondary, #7fffd9) 72%, var(--gc-text-soft, #a8c8d8) 28%);
  --hero-frame-top-badge: color-mix(in srgb, var(--planet-accent-secondary, #7fffd9) 88%, #fff 12%);
  --hero-frame-bottom-label: color-mix(in srgb, var(--planet-accent, #46e5ff) 46%, #9eb8c8 54%);
  --hero-frame-bottom-value: color-mix(in srgb, var(--planet-accent-secondary, #7fffd9) 84%, #fff 16%);
  --hero-frame-bottom-temp: color-mix(in srgb, var(--planet-accent, #46e5ff) 80%, #fff 20%);
  --hero-frame-bottom-muted: color-mix(in srgb, var(--planet-accent, #46e5ff) 54%, #a8c0d0 46%);
  /* center HUD ? planet-themed activity typography */
  --hero-activity-label: color-mix(in srgb, var(--planet-accent-secondary, #7fffd9) 78%, #fff 22%);
  --hero-activity-status: #eef6ff;
  --hero-activity-idle: rgba(210, 228, 246, 0.94);
  --hero-activity-detail: rgba(175, 200, 222, 0.96);
  --hero-activity-eta: color-mix(in srgb, var(--planet-accent, #46e5ff) 88%, #fff 12%);
  --hero-activity-line: color-mix(in srgb, var(--planet-accent, #46e5ff) 38%, rgba(255, 255, 255, 0.1));
  --hero-activity-line-glow: color-mix(in srgb, var(--planet-accent, #46e5ff) 22%, transparent);
  --hero-activity-head-line: color-mix(in srgb, var(--planet-accent, #46e5ff) 42%, rgba(255, 255, 255, 0.12));
  --hero-activity-glass: rgba(0, 10, 18, 0.24);
}
.overview-hero--themed.gc-planet-hero .overview-hero-hud::before{
  display: none;
}
.overview-hero--themed.gc-planet-hero .overview-hero-bg picture{
  display: block;
  width: 100%;
  height: 100%;
}
.overview-hero--themed.gc-planet-hero .overview-hero-bg picture,
.overview-hero--themed.gc-planet-hero .overview-hero-bg img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transform: none;
  transform-origin: center center;
}
.overview-hero-hud{
  position: relative;
  z-index: 5;
}
.overview-hero--themed.gc-planet-hero .overview-hero-hud{
  position: absolute;
  inset: 0;
  z-index: 5;
  display: block;
  box-sizing: border-box;
  padding: 0;
  min-height: 0;
  overflow: visible;
}
.overview-hero--themed.gc-planet-hero .overview-hero-hud::before{
  display: none;
}
.overview-hero-corner{
  position: absolute;
  z-index: 7;
  max-width: min(44%, 280px);
  min-width: 0;
  pointer-events: auto;
}
.overview-hero-corner--tl{
  top: var(--hero-corner-tl-top, 5.5%);
  left: var(--hero-corner-tl-left, 8%);
  text-align: left;
}
.overview-hero-corner--tr{
  top: var(--hero-corner-tr-top, 5.5%);
  right: var(--hero-corner-tr-right, 8%);
  text-align: right;
  max-width: min(52%, 320px);
}
.overview-hero-corner--bl{
  bottom: var(--hero-corner-bl-bottom, 7%);
  left: var(--hero-corner-bl-left, 8%);
  text-align: left;
}
.overview-hero-corner--br{
  bottom: var(--hero-corner-br-bottom, 7%);
  right: var(--hero-corner-br-right, 8%);
  text-align: right;
}
.overview-companion-layer{
  position: absolute;
  inset: 0;
  z-index: 6;
  pointer-events: none;
}
.overview-companion-hotspot{
  --companion-glow: color-mix(in srgb, var(--planet-accent, #46e5ff) 55%, #7ef0ff);
  position: absolute;
  transform: translate(-50%, -50%);
  width: clamp(100px, 18vw, 168px);
  height: clamp(100px, 18vw, 168px);
  padding: 0;
  margin: 0;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  cursor: pointer;
  pointer-events: auto;
  z-index: 5;
  isolation: isolate;
  animation: overview-companion-float 4.8s ease-in-out infinite;
  animation-delay: var(--companion-float-delay, 0s);
}
.overview-companion-hotspot-aura{
  position: absolute;
  inset: -22%;
  z-index: 0;
  border-radius: 50%;
  background:
    radial-gradient(ellipse 58% 52% at 50% 55%,
      rgba(0, 0, 0, 0.78) 0%,
      rgba(0, 0, 0, 0.45) 42%,
      transparent 72%);
  pointer-events: none;
  animation: overview-companion-aura-pulse 3.6s ease-in-out infinite;
  animation-delay: var(--companion-float-delay, 0s);
}
.overview-companion-hotspot-aura::after{
  content: "";
  position: absolute;
  inset: 18%;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%,
    color-mix(in srgb, var(--companion-glow) 28%, transparent) 0%,
    transparent 68%);
  opacity: 0.85;
  pointer-events: none;
}
.overview-companion-hotspot-art{
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
}
.overview-companion-hotspot-art picture,
.overview-companion-hotspot-art img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  filter:
    drop-shadow(0 0 1px rgba(0, 0, 0, 0.95))
    drop-shadow(0 0 2px rgba(0, 0, 0, 0.9))
    drop-shadow(0 10px 18px rgba(0, 0, 0, 0.7))
    drop-shadow(0 0 14px color-mix(in srgb, var(--companion-glow) 40%, transparent));
}
.overview-companion-hotspot:hover,
.overview-companion-hotspot:focus-visible{
  outline: none;
  z-index: 7;
}
.overview-companion-hotspot:hover .overview-companion-hotspot-aura,
.overview-companion-hotspot:focus-visible .overview-companion-hotspot-aura{
  inset: -28%;
  filter: brightness(1.15);
}
.overview-companion-hotspot:hover .overview-companion-hotspot-art img,
.overview-companion-hotspot:focus-visible .overview-companion-hotspot-art img{
  filter:
    drop-shadow(0 0 1px rgba(0, 0, 0, 0.95))
    drop-shadow(0 0 2px rgba(0, 0, 0, 0.9))
    drop-shadow(0 10px 18px rgba(0, 0, 0, 0.7))
    drop-shadow(0 0 20px color-mix(in srgb, var(--companion-glow) 65%, transparent));
}
.overview-companion-hotspot.is-locked{
  opacity: 0.96;
}
.overview-companion-hotspot.is-locked .overview-companion-hotspot-art img{
  filter:
    grayscale(0.18) brightness(0.96)
    drop-shadow(0 0 1px rgba(0, 0, 0, 0.95))
    drop-shadow(0 0 2px rgba(0, 0, 0, 0.9))
    drop-shadow(0 10px 18px rgba(0, 0, 0, 0.72))
    drop-shadow(0 0 12px rgba(120, 180, 220, 0.35));
}
.overview-companion-hotspot.is-locked:hover .overview-companion-hotspot-art img,
.overview-companion-hotspot.is-locked:focus-visible .overview-companion-hotspot-art img{
  filter:
    grayscale(0.05) brightness(1)
    drop-shadow(0 0 1px rgba(0, 0, 0, 0.95))
    drop-shadow(0 0 2px rgba(0, 0, 0, 0.9))
    drop-shadow(0 10px 18px rgba(0, 0, 0, 0.72))
    drop-shadow(0 0 16px rgba(140, 200, 240, 0.5));
}
.overview-companion-hotspot:not(.is-locked) .overview-companion-hotspot-aura::after{
  opacity: 1;
}
.overview-companion-hotspot-badge{
  position: absolute;
  left: 50%;
  bottom: -0.15rem;
  z-index: 2;
  transform: translateX(-50%);
  font-size: 0.68rem;
  line-height: 1;
  padding: 0.16rem 0.36rem;
  white-space: nowrap;
  border: 1px solid rgba(120, 210, 255, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 8, 16, 0.9);
  color: rgba(220, 240, 255, 0.98);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.45);
  pointer-events: none;
}
.overview-companion-hotspot--ready{
  --companion-glow: #3cdc8c;
}
.overview-companion-hotspot--ready .overview-companion-hotspot-aura{
  animation-name: overview-companion-aura-pulse-ready;
}
.overview-companion-hotspot--away{
  --companion-glow: #ffb450;
}
.overview-companion-hotspot--away .overview-companion-hotspot-aura{
  animation-name: overview-companion-aura-pulse-away;
}
.overview-companion-hotspot.is-popover-open{
  outline: none;
  z-index: 8;
}
.overview-companion-hotspot.is-popover-open .overview-companion-hotspot-aura{
  inset: -30%;
  filter: brightness(1.2);
}
.overview-companion-hotspot.is-popover-open .overview-companion-hotspot-art img{
  filter:
    drop-shadow(0 0 1px rgba(0, 0, 0, 0.95))
    drop-shadow(0 0 2px rgba(0, 0, 0, 0.9))
    drop-shadow(0 10px 18px rgba(0, 0, 0, 0.7))
    drop-shadow(0 0 22px color-mix(in srgb, var(--companion-glow) 70%, transparent));
}
@keyframes overview-companion-float{
  0%, 100%{ transform: translate(-50%, -50%); }
  50%{ transform: translate(-50%, calc(-50% - 9px)); }
}
@keyframes overview-companion-aura-pulse{
  0%, 100%{ opacity: 0.88; transform: scale(1); }
  50%{ opacity: 1; transform: scale(1.06); }
}
@keyframes overview-companion-aura-pulse-ready{
  0%, 100%{ opacity: 0.9; transform: scale(1); filter: hue-rotate(0deg); }
  50%{ opacity: 1; transform: scale(1.08); }
}
@keyframes overview-companion-aura-pulse-away{
  0%, 100%{ opacity: 0.88; transform: scale(1); }
  50%{ opacity: 1; transform: scale(1.07); }
}
@media (prefers-reduced-motion: reduce){
  .overview-companion-hotspot,
  .overview-companion-hotspot-aura{
    animation: none;
  }
}
.overview-companion-popover{
  position: fixed;
  z-index: var(--gc-z-popover, 12050);
  margin: 0;
  width: min(22rem, calc(100vw - 2rem));
  max-width: calc(100vw - 2rem);
  max-height: min(78vh, 36rem);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  display: none;
  pointer-events: auto;
  filter: drop-shadow(0 12px 28px rgba(0, 0, 0, 0.55));
}
.overview-companion-popover.is-open,
.overview-companion-popover:not([hidden]){
  display: block;
}
.overview-companion-popover-inner{
  position: relative;
  border: 1px solid rgba(70, 229, 255, 0.42);
  border-radius: var(--gc-radius-sm, 2px);
  background:
    linear-gradient(135deg, rgba(70, 229, 255, 0.08), transparent 42%),
    linear-gradient(180deg, rgba(10, 22, 38, 0.98), rgba(4, 10, 20, 0.99));
  padding: 0.7rem 0.75rem 0.8rem;
  box-shadow:
    inset 0 1px 0 rgba(140, 230, 255, 0.12),
    0 0 0 1px rgba(0, 0, 0, 0.35);
}
.overview-companion-popover-inner::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, #7ef0ff, #46a0ff 55%, #a46bff);
  pointer-events: none;
}
.overview-companion-popover[data-placement="above"] .overview-companion-popover-inner::after,
.overview-companion-popover[data-placement="below"] .overview-companion-popover-inner::after{
  content: "";
  position: absolute;
  left: var(--companion-caret-x, 50%);
  width: 10px;
  height: 10px;
  border: 1px solid rgba(70, 229, 255, 0.42);
  background: rgba(8, 16, 28, 0.98);
  transform: translateX(-50%) rotate(45deg);
  pointer-events: none;
}
.overview-companion-popover[data-placement="above"] .overview-companion-popover-inner::after{
  bottom: -6px;
  border-top: none;
  border-left: none;
}
.overview-companion-popover[data-placement="below"] .overview-companion-popover-inner::after{
  top: -6px;
  border-bottom: none;
  border-right: none;
}
.overview-companion-popover-eyebrow{
  margin: 0 0 0.2rem;
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(120, 220, 255, 0.78);
}
.overview-companion-popover-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
  padding-left: 0.25rem;
}
.overview-companion-popover-head h3{
  margin: 0;
  font-size: 1rem;
  letter-spacing: 0.02em;
  text-shadow: 0 0 12px rgba(70, 229, 255, 0.25);
}
.overview-companion-stats{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.3rem;
  margin: 0 0 0.6rem;
  padding-left: 0.15rem;
}
.overview-companion-stats > div{
  border: 1px solid rgba(80, 160, 200, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 10, 20, 0.55);
  padding: 0.28rem 0.35rem;
}
.overview-companion-stats dt{
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.7;
}
.overview-companion-stats dd{
  margin: 0.1rem 0 0;
  font-size: 0.95rem;
  color: rgba(180, 240, 255, 0.95);
}
.overview-companion-actions{
  padding-left: 0.15rem;
}
.overview-companion-actions .gc-btn{
  border-radius: var(--gc-radius-sm, 2px);
  width: 100%;
  justify-content: center;
}
.overview-companion-mission-progress{
  margin: 0 0 0.55rem;
  padding-left: 0.15rem;
}
.overview-companion-mission-progress__meta{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
}
.overview-companion-mission-progress__meta .hint{
  margin: 0;
}
.overview-companion-mission-progress__track{
  position: relative;
  height: 8px;
  margin-top: 1.55rem;
  border: 1px solid rgba(70, 229, 255, 0.35);
  border-radius: var(--gc-radius-xs, 0);
  background: rgba(0, 12, 24, 0.75);
  overflow: visible;
}
.overview-companion-mission-progress__fill{
  display: block;
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, #2a7fff, #46e5ff 70%, #9cf0ff);
  box-shadow: 0 0 10px rgba(70, 229, 255, 0.35);
  transition: width 0.35s linear;
  border-radius: inherit;
}
.overview-companion-mission-progress__walker{
  position: absolute;
  left: var(--companion-walk-at, 0%);
  bottom: calc(100% + 2px);
  width: 36px;
  height: 20px;
  margin: 0;
  transform: translateX(-50%);
  transform-origin: center bottom;
  pointer-events: none;
  filter: drop-shadow(0 0 6px rgba(70, 229, 255, 0.45));
  transition: left 0.35s linear;
  will-change: left, transform;
  z-index: 2;
}
.overview-companion-mission-progress__walker img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center bottom;
  border-radius: var(--gc-radius-xs, 0);
  image-rendering: auto;
  animation: companion-titan-bob 1.15s ease-in-out infinite;
  transform-origin: center bottom;
}
.overview-companion-mission-progress__muzzle,
.overview-companion-mission-progress__bolt,
.overview-companion-mission-progress__impact{
  position: absolute;
  pointer-events: none;
  opacity: 0;
}
/* Muzzle flash at the Titan's forward edge */
.overview-companion-mission-progress__muzzle{
  right: -2px;
  top: 42%;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, #9cf0ff 35%, rgba(42, 127, 255, 0) 72%);
  box-shadow: 0 0 10px rgba(70, 229, 255, 0.85);
  transform: translateY(-50%) scale(0.2);
}
/* Plasma bolt flying ahead along the track */
.overview-companion-mission-progress__bolt{
  left: 70%;
  top: 55%;
  width: 18px;
  height: 3px;
  border-radius: 1px;
  background: linear-gradient(90deg, rgba(156, 240, 255, 0.95), rgba(42, 127, 255, 0));
  box-shadow: 0 0 8px rgba(70, 229, 255, 0.75);
  transform: translateY(-50%);
}
/* Impact spark further down the track */
.overview-companion-mission-progress__impact{
  left: 140%;
  top: 70%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff 0%, #46e5ff 40%, rgba(42, 127, 255, 0) 70%);
  box-shadow: 0 0 12px rgba(70, 229, 255, 0.7);
  transform: translateY(-50%) scale(0.2);
}
.overview-companion-mission-progress__walker.is-firing img{
  animation:
    companion-titan-bob 1.15s ease-in-out infinite,
    companion-titan-recoil 0.55s ease-out 1;
}
.overview-companion-mission-progress__walker.is-firing .overview-companion-mission-progress__muzzle{
  animation: companion-titan-muzzle 0.45s ease-out 1;
}
.overview-companion-mission-progress__walker.is-firing .overview-companion-mission-progress__bolt{
  animation: companion-titan-bolt 0.55s ease-out 1;
}
.overview-companion-mission-progress__walker.is-firing .overview-companion-mission-progress__impact{
  animation: companion-titan-impact 0.55s ease-out 1;
}
@keyframes companion-titan-bob{
  0%,
  100%{ transform: translateY(0); }
  50%{ transform: translateY(-2px); }
}
@keyframes companion-titan-recoil{
  0%{ transform: translateY(0) translateX(0); }
  18%{ transform: translateY(0) translateX(-3px); filter: brightness(1.35); }
  55%{ transform: translateY(0) translateX(1px); filter: brightness(1.1); }
  100%{ transform: translateY(0) translateX(0); filter: brightness(1); }
}
@keyframes companion-titan-muzzle{
  0%{ opacity: 0; transform: translateY(-50%) scale(0.2); }
  20%{ opacity: 1; transform: translateY(-50%) scale(1.35); }
  100%{ opacity: 0; transform: translateY(-50%) scale(0.4); }
}
@keyframes companion-titan-bolt{
  0%{ opacity: 0; transform: translateY(-50%) translateX(0) scaleX(0.4); }
  12%{ opacity: 1; }
  100%{ opacity: 0; transform: translateY(-50%) translateX(28px) scaleX(1.1); }
}
@keyframes companion-titan-impact{
  0%,
  35%{ opacity: 0; transform: translateY(-50%) scale(0.2); }
  48%{ opacity: 1; transform: translateY(-50%) scale(1.4); }
  100%{ opacity: 0; transform: translateY(-50%) scale(0.3); }
}
@media (prefers-reduced-motion: reduce){
  .overview-companion-mission-progress__walker{
    transition: none;
  }
  .overview-companion-mission-progress__walker img,
  .overview-companion-mission-progress__walker.is-firing img,
  .overview-companion-mission-progress__walker.is-firing .overview-companion-mission-progress__muzzle,
  .overview-companion-mission-progress__walker.is-firing .overview-companion-mission-progress__bolt,
  .overview-companion-mission-progress__walker.is-firing .overview-companion-mission-progress__impact{
    animation: none !important;
  }
  .overview-companion-mission-progress__muzzle,
  .overview-companion-mission-progress__bolt,
  .overview-companion-mission-progress__impact{
    display: none;
  }
}
.overview-companion-mission-lead{
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(140, 220, 255, 0.85);
}
.overview-companion-mission-grid{
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.35rem;
}
.overview-companion-mission-card{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  margin: 0;
  padding: 0.45rem 0.5rem;
  border: 1px solid rgba(80, 160, 200, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  background: linear-gradient(180deg, rgba(12, 28, 44, 0.95), rgba(8, 16, 28, 0.98));
  color: inherit;
  text-align: left;
  cursor: pointer;
  font: inherit;
  width: 100%;
  transition: border-color 0.15s ease, background 0.15s ease, transform 0.12s ease;
}
.overview-companion-mission-card:hover,
.overview-companion-mission-card:focus-visible{
  border-color: rgba(90, 230, 255, 0.7);
  background: linear-gradient(180deg, rgba(16, 36, 56, 0.98), rgba(10, 20, 34, 1));
  outline: none;
  transform: translateX(2px);
}
.overview-companion-mission-card[data-companion-variant="void_run"]{
  border-color: rgba(200, 100, 255, 0.4);
}
.overview-companion-mission-card[data-companion-variant="patrol"]{
  border-color: rgba(90, 200, 140, 0.4);
}
.overview-companion-mission-title{
  font-size: 0.82rem;
  font-weight: 650;
}
.overview-companion-mission-meta{
  font-size: 0.72rem;
  color: rgba(180, 230, 255, 0.9);
}
.overview-companion-mission-risk{
  font-size: 0.68rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  opacity: 0.8;
}
.overview-companion-mission-hint{
  margin: 0.05rem 0 0;
  font-size: 0.66rem;
  line-height: 1.25;
  opacity: 0.72;
}
.overview-hero-corner-meta{
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.overview-hero-corner-meta .overview-meta-item{
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
}
.overview-hero-corner--br .overview-meta-item--temp dd{
  align-items: flex-end;
}
.overview-hero-corner--bl .overview-meta-item dt,
.overview-hero-corner--br .overview-meta-item dt{
  color: var(--hero-frame-bottom-label, #9ecfe0);
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-shadow: none;
}
.overview-hero-corner--bl .overview-meta-item dd,
.overview-hero-corner--br .overview-meta-item dd,
.overview-hero-corner--bl .overview-meta-item dd a{
  color: var(--hero-frame-bottom-value, #e5f8ff);
  font-weight: 650;
  text-shadow: none;
}
.overview-hero-corner--br .overview-temp-value{
  color: var(--hero-frame-bottom-temp, #d8f4ff);
  text-shadow: none;
}
.overview-hero-corner--br .overview-climate-hint{
  color: var(--hero-frame-bottom-muted, #a8d8ea);
  font-size: 0.72rem;
  text-shadow: none;
}
.overview-hero-title-plate{
  min-width: 0;
  padding: 0;
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
}
.overview-hero--themed.gc-planet-hero .overview-hero-slot-badge{
  display: block;
  max-width: min(100%, 300px);
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  backdrop-filter: none;
  text-align: right;
  font-size: clamp(0.84rem, 1.15vw, 1rem);
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.1em;
  white-space: nowrap;
}
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-coords,
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-coords a{
  font-size: clamp(0.84rem, 1vw, 0.96rem);
  font-weight: 600;
  letter-spacing: 0.06em;
}
.overview-hero--themed.gc-planet-hero .overview-hero-corner--bl .overview-meta-item dt,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-meta-item dt{
  font-size: 0.74rem;
  font-weight: 600;
  letter-spacing: 0.09em;
}
.overview-hero--themed.gc-planet-hero .overview-hero-corner--bl .overview-meta-item dd,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--bl .overview-meta-item dd a{
  font-size: clamp(0.92rem, 1.15vw, 1.06rem);
  font-weight: 700;
  line-height: 1.2;
}
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-temp-value{
  font-size: clamp(0.96rem, 1.2vw, 1.12rem);
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.03em;
}
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-climate-hint{
  font-size: 0.8rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  opacity: 0.92;
}
.overview-hero--themed.gc-planet-hero .overview-hero-slot-badge::before,
.overview-hero--themed.gc-planet-hero .overview-hero-slot-badge::after{
  display: none;
}
.overview-hero-title-plate .overview-hero-name,
.overview-hero-title-plate .overview-hero-coords{
  text-shadow: none;
}
.overview-hero-activity-panel{
  position: absolute;
  top: var(--hero-activity-top, 13%);
  bottom: var(--hero-activity-bottom, 9%);
  left: var(--hero-activity-left, 7.5%);
  right: var(--hero-activity-right, 7.5%);
  z-index: 6;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: stretch;
  width: auto;
  max-width: none;
  min-height: 0;
  margin: 0;
  padding: 6px 2px 4px;
  border: none;
  border-radius: 0;
  background: transparent;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: none;
  overflow: hidden;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(6px);
  transition:
    opacity 0.28s ease,
    visibility 0.28s ease,
    transform 0.28s ease;
}
.overview-hero--themed.gc-planet-hero:hover .overview-hero-activity-panel,
.overview-hero--themed.gc-planet-hero:focus-within .overview-hero-activity-panel{
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce){
  .overview-hero-activity-panel,
  .overview-hero--themed.gc-planet-hero .overview-hero-bg::after,
  .overview-hero--themed.gc-planet-hero .overview-hero-bg picture,
  .overview-hero--themed.gc-planet-hero .overview-hero-bg img,
  .overview-hero-activity-head::after{
    transition: none;
  }
}
.overview-hero-activity-head{
  display: flex;
  flex-direction: column;
  gap: 0;
  margin-bottom: 6px;
  min-width: 0;
  padding: 0 2px 6px;
  border-bottom: none;
  position: relative;
  overflow: hidden;
}
.overview-hero-activity-head::after{
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--hero-activity-eta, var(--planet-accent, #46e5ff)) 42%,
    transparent 100%
  );
  opacity: 0;
  transform: translateX(-100%);
  transition: opacity 0.2s ease, transform 0.55s ease;
}
.overview-hero--themed.gc-planet-hero:hover .overview-hero-activity-head::after,
.overview-hero--themed.gc-planet-hero:focus-within .overview-hero-activity-head::after{
  opacity: 0.9;
  transform: translateX(0);
}
.overview-hero-activity-title{
  font-size: clamp(0.82rem, 1.15vw, 0.94rem);
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--hero-activity-eta, var(--planet-accent, #46e5ff));
  text-shadow: none;
}
.overview-hero-activity-hint{
  display: none;
}
.overview-hero-activity-panel .overview-hero-activities{
  flex: 0 1 auto;
  min-height: 0;
  max-height: 100%;
  grid-template-columns: 1fr;
  gap: 0;
  overflow-y: auto;
  overflow-x: hidden;
  padding-top: 2px;
}
.overview-hero-activity-panel .overview-activity-row,
.overview-hero-activity-panel .overview-activity-row:hover,
.overview-hero-activity-panel .overview-activity-card.overview-activity-active,
body.gc-body-ingame.gc-has-planet-landscape .overview-hero--themed.gc-planet-hero .overview-hero-activity-panel .overview-activity-row,
body.gc-body-ingame.gc-has-planet-landscape .overview-hero--themed.gc-planet-hero .overview-hero-activity-panel .overview-activity-row:hover,
body.gc-body-ingame.gc-has-planet-landscape .overview-hero--themed.gc-planet-hero .overview-hero-activity-panel .overview-activity-card.overview-activity-active{
  position: relative;
  background: transparent;
  border: none;
  border-radius: 0;
  box-shadow: none;
  min-height: 0;
}
.overview-hero-activity-panel .overview-activity-row::after{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 1px;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    transparent 0%,
    var(--hero-activity-line) 18%,
    color-mix(in srgb, var(--planet-accent, #46e5ff) 52%, rgba(255, 255, 255, 0.14)) 50%,
    var(--hero-activity-line) 82%,
    transparent 100%
  );
  box-shadow: 0 0 8px var(--hero-activity-line-glow);
  opacity: 0.88;
}
.overview-hero-activity-panel .overview-activity-row:last-child::after{
  opacity: 0.45;
}
.overview-hero-activity-panel .overview-activity-link,
body.gc-body-ingame.gc-has-planet-landscape .overview-hero--themed.gc-planet-hero .overview-hero-activity-panel .overview-activity-link,
.overview-hero-activity-panel .overview-activity-card.overview-activity-idle .overview-activity-link{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  padding: 14px 4px 16px;
  min-height: 52px;
  box-sizing: border-box;
  border: none;
  background: transparent;
  box-shadow: none;
  text-shadow: none;
  text-decoration: none;
}
.overview-hero-activity-panel .overview-activity-row:last-child .overview-activity-link{
  padding-bottom: 12px;
}
.overview-hero-activity-panel .overview-activity-row.overview-activity-active .overview-activity-link{
  padding-left: 4px;
}
.overview-hero-activity-panel .overview-activity-type{
  flex-shrink: 0;
  width: auto;
  min-width: 0;
  max-width: none;
  font-size: clamp(0.72rem, 1.05vw, 0.82rem);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  color: var(--hero-activity-label);
  text-shadow: none;
  white-space: nowrap;
  line-height: 1.25;
}
.overview-hero-activity-panel .overview-activity-body{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: flex-start;
  text-align: left;
  gap: 3px;
  min-width: 0;
  width: 100%;
}
.overview-hero-activity-panel .overview-activity-row.overview-activity-active .overview-activity-body{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  column-gap: 10px;
  row-gap: 2px;
  align-items: baseline;
}
.overview-hero-activity-panel .overview-activity-name{
  color: var(--hero-activity-status, #eef6ff);
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.25;
  text-shadow: none;
}
.overview-hero-activity-panel .overview-activity-row.overview-activity-active .overview-activity-name{
  grid-column: 1;
  grid-row: 1;
}
.overview-hero-activity-panel .overview-activity-detail{
  color: var(--hero-activity-detail);
  font-size: 0.74rem;
  line-height: 1.3;
  letter-spacing: 0.01em;
  text-shadow: none;
}
.overview-hero-activity-panel .overview-activity-row.overview-activity-active .overview-activity-detail{
  grid-column: 1 / -1;
  grid-row: 2;
}
.overview-hero-activity-panel .overview-activity-idle{
  color: var(--hero-activity-idle, rgba(210, 228, 246, 0.94));
  font-size: clamp(0.84rem, 1vw, 0.92rem);
  font-weight: 500;
  font-style: normal;
  line-height: 1.4;
  text-shadow: none;
  width: 100%;
}
.overview-hero-activity-panel .overview-activity-eta{
  margin-left: 0;
  color: var(--hero-activity-eta);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  text-shadow: none;
  white-space: nowrap;
}
.overview-hero-activity-panel .overview-activity-row.overview-activity-active .overview-activity-eta{
  grid-column: 2;
  grid-row: 1;
  align-self: center;
}
.overview-hero-activity-panel .overview-activity-card.overview-activity-idle .overview-activity-body{
  min-height: 0;
}
.overview-hero-hud::before{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 46%;
  pointer-events: none;
  z-index: -1;
  background: linear-gradient(to top, rgba(0, 6, 14, 0.78), transparent);
}
.overview-hero-hud-frame,
.overview-hero-border{
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
}
.overview-hero--themed.gc-planet-hero .overview-hero-hud-frame,
.overview-hero--themed.gc-planet-hero .overview-hero-border{
  position: absolute;
  inset: 0;
  z-index: 4;
}
.overview-hero-frame-glow{
  display: none;
}
.overview-hero-hud-frame::after,
.overview-hero-border::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background-image: var(--hero-frame-url);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 100% 100%;
}
.overview-hero--themed.gc-planet-hero .overview-hero-bg,
.overview-hero--themed.gc-planet-hero .overview-hero-bg picture,
.overview-hero--themed.gc-planet-hero .overview-hero-bg img{
  border-radius: 0;
}
.overview-hero-meta{
  margin: 0;
  padding: 10px 12px 12px;
  border-top: 1px solid color-mix(in srgb, var(--planet-accent, #46e5ff) 28%, rgba(255, 255, 255, 0.08));
  background:
    linear-gradient(180deg, rgba(0, 8, 18, 0.62), rgba(0, 6, 14, 0.82));
  backdrop-filter: blur(6px);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04);
}
.overview-meta-item--temp dd{
  display: flex;
  flex-direction: column;
  gap: 3px;
}
.overview-temp-value{
  font-weight: 650;
  letter-spacing: 0.02em;
  text-shadow:
    0 0 18px color-mix(in srgb, var(--planet-accent, #46e5ff) 42%, transparent),
    0 1px 2px rgba(0, 0, 0, 0.85);
}
.gc-planet-hero.gc-planet-theme-group--hot .overview-hero-activity-panel .overview-activity-row::after{
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(255, 130, 50, 0.45) 18%,
    rgba(255, 170, 70, 0.72) 50%,
    rgba(255, 130, 50, 0.45) 82%,
    transparent 100%
  );
  box-shadow: 0 0 8px rgba(255, 100, 30, 0.28);
}
.gc-planet-hero.gc-planet-theme-group--hot .overview-hero-atmo{
  background:
    radial-gradient(ellipse 115% 95% at 50% 42%, rgba(255, 60, 10, 0.08) 0%, rgba(18, 4, 0, 0.58) 62%, rgba(8, 2, 0, 0.94) 100%),
    linear-gradient(90deg, rgba(16, 4, 0, 0.88) 0%, rgba(20, 6, 0, 0.45) 36%, transparent 66%),
    linear-gradient(to top, rgba(20, 6, 0, 0.94) 0%, rgba(14, 4, 0, 0.55) 26%, transparent 54%);
}
/* Theme frame ? PNG only, no extra glow layer */
.gc-planet-hero.gc-planet-theme-group--hot .overview-hero-slot-badge{
  background: transparent;
  box-shadow: none;
}
/* Frozen worlds */
.gc-planet-hero.gc-planet-theme-group--frozen .overview-hero-slot-badge{
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  text-shadow: none;
}
.gc-planet-hero.gc-planet-theme-group--frozen .overview-temp-value{
  color: #d4f8ff;
  text-shadow:
    0 0 22px rgba(100, 220, 255, 0.58),
    0 0 8px rgba(180, 240, 255, 0.35),
    0 1px 2px rgba(0, 0, 0, 0.9);
}
@media (max-width: 640px){
  .overview-hero--themed.gc-planet-hero,
  .overview-hero.gc-planet-hero{
    min-height: 360px;
  }
  .overview-hero-corner{
    max-width: min(48%, 200px);
  }
  .overview-hero-corner--tl,
  .overview-hero-corner--bl{
    left: 6.5%;
  }
  .overview-hero-corner--tr,
  .overview-hero-corner--br{
    right: 6.5%;
  }
  .overview-hero-corner--tl{ top: 4.8%; }
  .overview-hero-corner--tr{ top: 4.8%; }
  .overview-hero-corner--bl,
  .overview-hero-corner--br{
    bottom: 6%;
  }
  .overview-hero-activity-panel{
    top: 14%;
    bottom: 10%;
    left: 6.5%;
    right: 6.5%;
    padding: 4px 0 2px;
  }
  .overview-hero-activity-panel .overview-activity-body{
    align-items: flex-start;
    text-align: left;
  }
  .overview-hero--themed.gc-planet-hero .overview-hero-slot-badge{
    max-width: 100%;
    font-size: clamp(0.78rem, 2.8vw, 0.92rem);
    line-height: 1.22;
    white-space: normal;
    word-break: break-word;
  }
  .overview-hero-activity-panel .overview-activity-link{
    gap: 4px;
    padding: 12px 2px 14px 4px;
    min-height: 48px;
  }
  .overview-hero-activity-panel .overview-activity-type{
    width: auto;
    min-width: 0;
    max-width: none;
    white-space: normal;
    word-break: break-word;
    line-height: 1.2;
    font-size: clamp(0.68rem, 2.6vw, 0.78rem);
  }
  .overview-hero-activity-panel .overview-activity-idle{
    font-size: 0.84rem;
  }
  .overview-hero-activity-panel .overview-activity-row.overview-activity-active .overview-activity-body{
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto auto auto;
  }
  .overview-hero-activity-panel .overview-activity-row.overview-activity-active .overview-activity-eta{
    grid-column: 1;
    grid-row: 2;
    align-self: start;
    margin-top: 2px;
  }
  .overview-hero-activity-panel .overview-activity-row.overview-activity-active .overview-activity-detail{
    grid-row: 3;
  }
}
/* Planet hero HUD: flat type directly on herocard ? no boxes */
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate,
.overview-hero--themed.gc-planet-hero .overview-hero-corner-meta,
.overview-hero--themed.gc-planet-hero .overview-hero-slot-badge,
.gc-planet-hero.gc-planet-theme-group--hot .overview-hero-slot-badge,
.gc-planet-hero.gc-planet-theme-group--frozen .overview-hero-slot-badge,
.gc-planet-hero.gc-planet-theme--absolute-zero .overview-hero-slot-badge{
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
}
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-name,
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-coords,
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-name-btn:hover .overview-hero-name,
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-name-btn[aria-expanded="true"] .overview-hero-name,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-temp-value,
.gc-planet-hero.gc-planet-theme-group--frozen .overview-hero-corner--br .overview-temp-value,
.overview-hero--themed.gc-planet-hero .overview-hero-activity-panel .overview-activity-type,
.overview-hero--themed.gc-planet-hero .overview-hero-activity-panel .overview-activity-name,
.overview-hero--themed.gc-planet-hero .overview-hero-activity-panel .overview-activity-detail,
.overview-hero--themed.gc-planet-hero .overview-hero-activity-panel .overview-activity-idle,
.overview-hero--themed.gc-planet-hero .overview-hero-activity-panel .overview-activity-eta,
.overview-hero--themed.gc-planet-hero .overview-hero-activity-title,
.overview-hero--themed.gc-planet-hero .overview-hero-activity-hint,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--bl .overview-meta-item dt,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--bl .overview-meta-item dd,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--bl .overview-meta-item dd a,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-meta-item dt,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-meta-item dd,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-meta-item dd a,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-climate-hint,
.overview-hero--themed.gc-planet-hero .overview-hero-slot-badge{
  text-shadow: none;
}
.gc-planet-hero.gc-planet-theme--absolute-zero .overview-hero-atmo{
  background:
    radial-gradient(ellipse 110% 100% at 50% 35%, rgba(100, 200, 255, 0.1) 0%, rgba(0, 6, 18, 0.65) 58%, rgba(0, 2, 10, 0.98) 100%),
    linear-gradient(90deg, rgba(0, 8, 22, 0.94) 0%, rgba(0, 10, 26, 0.52) 34%, transparent 64%),
    linear-gradient(to top, rgba(0, 10, 26, 0.98) 0%, rgba(0, 12, 30, 0.72) 28%, rgba(80, 180, 255, 0.08) 48%, transparent 66%);
}
.gc-planet-hero.gc-planet-theme--absolute-zero .overview-hero-slot-badge{
  background: transparent;
  border: none;
  box-shadow: none;
}
@keyframes heroFrameBreath{
  0%, 100%{ opacity: 0.88; filter: brightness(0.98); }
  50%{ opacity: 1; filter: brightness(1.04); }
}
@keyframes heroLavaBreath{
  0%, 100%{ opacity: 0.9; filter: brightness(0.98) saturate(1); }
  50%{ opacity: 1; filter: brightness(1.05) saturate(1.06); }
}
@keyframes heroFrostBreath{
  0%, 100%{ opacity: 0.9; filter: brightness(0.99); }
  50%{ opacity: 1; filter: brightness(1.06); }
}
@keyframes planetHeatShimmer{
  0%, 100%{ opacity: 0.72; transform: translateX(0); }
  50%{ opacity: 1; transform: translateX(2px); }
}
@keyframes planetHotEmber{
  0%, 100%{ opacity: 0.65; }
  50%{ opacity: 1; }
}
@keyframes planetDustShimmer{
  0%{ transform: translateX(-4%); }
  100%{ transform: translateX(4%); }
}
@keyframes planetBioPulse{
  0%, 100%{ opacity: 0.72; }
  50%{ opacity: 1; }
}
@keyframes planetBioMist{
  0%, 100%{ transform: translateX(0); opacity: 0.68; }
  50%{ transform: translateX(2%); opacity: 0.95; }
}
@keyframes planetFrostPulse{
  0%, 100%{ opacity: 0.72; }
  50%{ opacity: 1; }
}
@keyframes frostBorderGlow{
  0%, 100%{ filter: brightness(0.96) saturate(1); }
  50%{ filter: brightness(1.12) saturate(1.15); }
}
@keyframes frostScan{
  0%{ transform: translateY(0); }
  100%{ transform: translateY(6px); }
}
@keyframes absoluteZeroInsetFrame{
  0%, 100%{
    box-shadow:
      inset 0 0 36px rgba(100, 230, 255, 0.32),
      inset 0 22px 46px rgba(80, 210, 255, 0.22),
      0 0 40px rgba(80, 230, 255, 0.55);
  }
  50%{
    box-shadow:
      inset 0 0 48px rgba(140, 245, 255, 0.42),
      inset 0 22px 52px rgba(100, 230, 255, 0.3),
      0 0 56px rgba(100, 240, 255, 0.72);
  }
}
@keyframes planetSnowDrift{
  0%{ transform: translateY(-4%); opacity: 0.64; }
  50%{ opacity: 0.98; }
  100%{ transform: translateY(5%); opacity: 0.64; }
}
@media (prefers-reduced-motion: reduce){
  .overview-hero-hud-frame,
  .overview-hero-border,
  .overview-hero-hud-frame::after,
  .overview-hero-border::after{
    animation: none !important;
  }
}
body.gc-reduced-motion .overview-hero-hud-frame,
body.gc-reduced-motion .overview-hero-border,
body.gc-reduced-motion .overview-hero-hud-frame::after,
body.gc-reduced-motion .overview-hero-border::after{
  animation: none !important;
}
.overview-climate-hint{
  display: block;
  font-size: 0.74rem;
  opacity: 0.72;
  letter-spacing: 0.03em;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.75);
}
.overview-hero-bg{
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  pointer-events: none;
}
.overview-hero-bg::after{
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(rgba(0, 0, 0, 0.18), rgba(0, 0, 0, 0.48));
  pointer-events: none;
}
.overview-hero-bg picture,
.overview-hero-bg img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
  transition: opacity 0.45s ease;
}
.overview-hero--themed > *:not(.overview-hero-bg):not(.overview-hero-fx):not(.overview-hero-atmo):not(.overview-hero-hud-frame):not(.overview-hero-border):not(.overview-hero-hud):not(.overview-companion-layer){
  position: relative;
  z-index: 1;
}
.overview-hero--themed.gc-planet-hero > *:not(.overview-hero-bg):not(.overview-hero-fx):not(.overview-hero-border):not(.overview-hero-hud-frame):not(.overview-hero-atmo):not(.overview-hero-hud):not(.overview-companion-layer){
  z-index: 5;
}
.overview-hero--themed.gc-planet-hero .overview-hero-bg{
  border-radius: inherit;
}
.overview-hero--themed .overview-hero-name{
  color: color-mix(in srgb, var(--planet-accent-secondary, #7fffd9) 88%, #fff 12%);
  text-shadow:
    0 0 24px color-mix(in srgb, var(--planet-accent, #46e5ff) 35%, transparent),
    0 2px 4px rgba(0, 0, 0, 0.72);
}
.gc-planet-hero.gc-planet-theme-group--frozen .overview-hero-name{
  text-shadow:
    0 0 28px rgba(100, 220, 255, 0.45),
    0 2px 4px rgba(0, 0, 0, 0.85);
}
.overview-hero--themed .overview-hero-name-btn:hover .overview-hero-name,
.overview-hero--themed .overview-hero-name-btn[aria-expanded="true"] .overview-hero-name{
  color: var(--planet-accent-secondary, var(--gc-neon-cyan));
  text-shadow: 0 0 28px color-mix(in srgb, var(--planet-accent, #46e5ff) 45%, transparent);
}
.overview-hero--themed .overview-hero-coords{
  color: color-mix(in srgb, var(--planet-accent-secondary, #7fffd9) 70%, var(--gc-text-soft) 30%);
}
.overview-hero--themed .overview-hero-class,
.overview-hero-slot-badge{
  border-color: color-mix(in srgb, var(--planet-accent, #46e5ff) 65%, transparent);
  background: linear-gradient(155deg, color-mix(in srgb, var(--planet-accent, #46e5ff) 18%, transparent), rgba(4, 8, 18, 0.82));
  color: color-mix(in srgb, var(--planet-accent-secondary, #7fffd9) 92%, #fff 8%);
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.08),
    0 0 16px color-mix(in srgb, var(--planet-accent, #46e5ff) 22%, transparent);
  backdrop-filter: blur(6px);
  max-width: min(100%, 220px);
  text-align: center;
  line-height: 1.25;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-shadow: 0 0 12px color-mix(in srgb, var(--planet-accent, #46e5ff) 35%, transparent);
}
.overview-hero--themed.gc-planet-hero .overview-hero-class,
.overview-hero--themed.gc-planet-hero .overview-hero-slot-badge{
  background: transparent;
  border: none;
  box-shadow: none;
  backdrop-filter: none;
  text-align: right;
  text-shadow: none;
}
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-name,
.gc-planet-hero.gc-planet-theme-group--frozen .overview-hero-title-plate .overview-hero-name,
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-name-btn:hover .overview-hero-name,
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-name-btn[aria-expanded="true"] .overview-hero-name{
  text-shadow: none;
}
/* Frame HUD ? planet slot palette (1?15 via --planet-accent*) */
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-name{
  color: var(--hero-frame-top-name);
}
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-name-btn:hover .overview-hero-name,
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-name-btn[aria-expanded="true"] .overview-hero-name{
  color: color-mix(in srgb, var(--planet-accent-secondary, #7fffd9) 96%, #fff 4%);
}
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-coords,
.overview-hero--themed.gc-planet-hero .overview-hero-title-plate .overview-hero-coords a{
  color: var(--hero-frame-top-coords);
}
.overview-hero--themed.gc-planet-hero .overview-hero-slot-badge{
  color: var(--hero-frame-top-badge);
  font-size: clamp(0.84rem, 1.15vw, 1rem);
  font-weight: 700;
}
.overview-hero--themed.gc-planet-hero .overview-hero-corner--bl .overview-meta-item dt,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-meta-item dt{
  color: var(--hero-frame-bottom-label);
}
.overview-hero--themed.gc-planet-hero .overview-hero-corner--bl .overview-meta-item dd,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--bl .overview-meta-item dd a,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-meta-item dd,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-meta-item dd a,
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br #overview-planet-temp{
  color: var(--hero-frame-bottom-value);
}
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-temp-value{
  color: var(--hero-frame-bottom-temp);
}
.overview-hero--themed.gc-planet-hero .overview-hero-corner--br .overview-climate-hint{
  color: var(--hero-frame-bottom-muted);
}
.overview-hero-fx{
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}
.overview-hero--effect-ice .overview-hero-fx::before,
.overview-hero--effect-frost .overview-hero-fx::before,
.overview-hero--effect-glacier .overview-hero-fx::before,
.overview-hero--effect-tundra .overview-hero-fx::before{
  content: "";
  position: absolute;
  inset: -20% 0 0;
  background:
    radial-gradient(circle at 20% 10%, rgba(255,255,255,0.14), transparent 42%),
    radial-gradient(circle at 80% 30%, rgba(200,240,255,0.10), transparent 38%);
  animation: overview-hero-snow-drift 18s linear infinite;
}
.overview-hero--effect-volcanic .overview-hero-fx::before,
.overview-hero--effect-ash .overview-hero-fx::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 50% 100%, rgba(255,120,40,0.18), transparent 55%),
    radial-gradient(circle at 30% 80%, rgba(255,80,20,0.10), transparent 40%);
  animation: overview-hero-heat-pulse 6s ease-in-out infinite;
}
.overview-hero--effect-desert .overview-hero-fx::before,
.overview-hero--effect-barren .overview-hero-fx::before,
.overview-hero--effect-ancient .overview-hero-fx::before{
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 40%, rgba(255,210,120,0.08) 50%, transparent 60%);
  animation: overview-hero-dust-sweep 14s linear infinite;
}
.overview-hero--effect-gas .overview-hero-fx::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 40% 50%, rgba(160,100,255,0.14), transparent 48%),
    radial-gradient(circle at 70% 30%, rgba(80,200,255,0.10), transparent 42%);
  animation: overview-hero-gas-drift 12s ease-in-out infinite;
}
.overview-hero--effect-jungle .overview-hero-fx::before,
.overview-hero--effect-forest .overview-hero-fx::before,
.overview-hero--effect-tropical .overview-hero-fx::before,
.overview-hero--effect-ocean .overview-hero-fx::before{
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 25% 70%, rgba(120,255,180,0.08), transparent 45%),
    radial-gradient(circle at 75% 40%, rgba(80,200,255,0.06), transparent 40%);
  animation: overview-hero-mist-drift 16s ease-in-out infinite;
}
@keyframes overview-hero-snow-drift{
  0%{ transform: translateY(-4%); opacity: 0.55; }
  50%{ opacity: 0.85; }
  100%{ transform: translateY(8%); opacity: 0.55; }
}
@keyframes overview-hero-heat-pulse{
  0%, 100%{ opacity: 0.65; }
  50%{ opacity: 1; }
}
@keyframes overview-hero-dust-sweep{
  0%{ transform: translateX(-8%); }
  100%{ transform: translateX(8%); }
}
@keyframes overview-hero-gas-drift{
  0%, 100%{ transform: scale(1); opacity: 0.7; }
  50%{ transform: scale(1.04); opacity: 1; }
}
@keyframes overview-hero-mist-drift{
  0%, 100%{ transform: translateX(0); opacity: 0.65; }
  50%{ transform: translateX(2%); opacity: 0.9; }
}
@media (prefers-reduced-motion: reduce){
  .overview-hero-fx::before{
    animation: none !important;
  }
}
body.gc-perf-idle .overview-hero-fx::before{
  animation: none;
}
.overview-hero-top{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}
.overview-hero-identity{
  flex: 1 1 auto;
  min-width: 0;
}
.overview-hero--themed .overview-hero-slot-badge{
  flex: 0 1 auto;
  max-width: min(100%, 200px);
}
.overview-hero-name{
  margin: 0;
  font-size: clamp(1.35rem, 2.4vw, 1.85rem);
  letter-spacing: 0.04em;
  color: var(--gc-primary-2);
  text-shadow: 0 0 24px rgba(70,229,255,0.18);
}
.overview-hero-name-wrap{
  position: relative;
  display: inline-block;
  max-width: 100%;
}
.overview-hero-name-btn{
  display: inline;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  text-align: left;
  max-width: 100%;
  font: inherit;
}
.overview-hero-name-btn:hover .overview-hero-name,
.overview-hero-name-btn[aria-expanded="true"] .overview-hero-name{
  color: var(--gc-neon-cyan);
  text-shadow: 0 0 28px rgba(70,229,255,0.28);
  text-decoration: underline;
  text-decoration-color: rgba(70,229,255,0.35);
  text-underline-offset: 0.18em;
}
.overview-hero-name-btn:focus-visible{
  outline: 2px solid rgba(70,229,255,0.45);
  outline-offset: 4px;
  border-radius: 2px;
}
.overview-planet-delete-block{
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(120, 190, 255, 0.12);
  display: grid;
  gap: 8px;
}
.overview-planet-relocation-block{
  margin-top: 18px;
  padding-top: 16px;
  border-top: 1px solid rgba(120, 190, 255, 0.12);
  display: grid;
  gap: 10px;
}
.overview-planet-relocation-title{
  margin: 0;
  font-size: 0.92rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-soft);
}
.overview-planet-relocation-hint{ margin: 0; }
.overview-planet-relocation-coords{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}
.overview-planet-relocation-current{ margin: 0; color: var(--gc-text-dim); }
.overview-planet-relocation-active p{ margin: 0; }
.overview-planet-relocation-timer{ margin: 4px 0 0; color: var(--gc-neon-cyan); }
.overview-planet-delete-hint{ margin: 0; }
.overview-planet-form-hint.is-error{ color: var(--gc-danger); }
.overview-planet-form-hint.is-success{ color: var(--gc-neon-green, #23f2a6); }
.gc-planet-manage-modal .gc-player-card-dialog{
  width: min(480px, 100%);
}
.gc-planet-manage-modal .gc-player-card-fields .gc-input{
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}
.gc-chip-angular,
.overview-hero-class{
  position: relative;
  flex-shrink: 0;
  padding: 6px 12px;
  border-radius: 0;
  border: 1px solid rgba(127,255,217,0.28);
  background: rgba(70,229,255,0.08);
  color: var(--gc-text-soft);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.35);
}
.gc-chip-angular::before,
.gc-chip-angular::after,
.overview-hero-class::before,
.overview-hero-class::after{
  content: "";
  position: absolute;
  width: 6px;
  height: 6px;
  pointer-events: none;
}
.gc-chip-angular::before,
.overview-hero-class::before{
  top: -1px;
  left: -1px;
  border-top: 1px solid var(--gc-neon-cyan);
  border-left: 1px solid var(--gc-neon-cyan);
}
.gc-chip-angular::after,
.overview-hero-class::after{
  bottom: -1px;
  right: -1px;
  border-bottom: 1px solid var(--gc-neon-cyan);
  border-right: 1px solid var(--gc-neon-cyan);
}
.overview-hero-coords{
  margin: 6px 0 0;
  color: var(--gc-text-dim);
  font-size: 0.88rem;
}
.overview-meta-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 10px 18px;
  margin: 0;
}
.overview-meta-item{
  display: grid;
  gap: 4px;
  min-width: 0;
}
.overview-meta-item dt{
  margin: 0;
  color: var(--gc-text-dim);
  font-size: 0.74rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.overview-meta-item dd{
  margin: 0;
  color: var(--gc-text);
  font-weight: 600;
}
.overview-main-grid{
  align-items: stretch;
}
.overview-activities-panel--primary{
  margin-bottom: var(--gc-card-gap);
}
.overview-command .overview-hero{
  margin-bottom: var(--gc-card-gap);
}
.overview-command .overview-warnings-panel{
  margin-bottom: var(--gc-card-gap);
}
.overview-command .overview-warnings-panel.is-empty{
  display: none;
}
.overview-warning-link{
  color: inherit;
  text-decoration: none;
}
.overview-warning-link:hover{
  color: var(--gc-primary-2);
  text-decoration: underline;
}
.overview-meta-grid--compact{
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  margin-bottom: 10px;
}
.overview-activities-grid{
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 240px), 1fr));
}
.overview-activity-card{
  min-height: 0;
}
.overview-activity-card.overview-activity-idle .overview-activity-link{
  padding: 8px 12px;
  min-height: 0;
}
.overview-activity-card.overview-activity-idle .overview-activity-body{
  min-height: 0;
}
.overview-activity-card.overview-activity-active{
  border-color: rgba(70,229,255,0.28);
  box-shadow:
    inset 0 0 0 1px rgba(70,229,255,0.08),
    0 8px 22px rgba(0, 0, 0, 0.28);
}
.overview-activities-panel--primary .overview-activities{
  grid-template-columns: 1fr;
}
.overview-activities-panel--secondary{
  margin-top: 0;
  border-color: rgba(70, 229, 255, 0.16);
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.42),
    0 8px 24px rgba(0, 0, 0, 0.32);
}
.overview-activities-panel--secondary .gc-panel-title{
  font-size: 0.84rem;
  color: var(--gc-text-dim);
}
.overview-activities-panel--secondary .gc-panel-subtitle{
  font-size: 0.72rem;
}
.overview-upgrade-section{
  margin-bottom: var(--gc-card-gap);
}
.overview-upgrade-section .overview-upgrade-widgets{
  margin-top: 0;
}
@media (max-width: 520px){
  .overview-activities-grid{
    grid-template-columns: 1fr;
  }
  .overview-activity-link{
    grid-template-columns: 72px 1fr;
  }
}
.overview-economy-panel,
.overview-activities-panel{
  display: flex;
  flex-direction: column;
  height: 100%;
  min-height: 0;
}
.overview-upgrade-widgets{
  display: grid;
  gap: 10px;
  margin-top: 12px;
}
.overview-upgrade-card{
  display: grid;
  gap: 6px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.12);
  background: rgba(3, 8, 18, 0.45);
  color: inherit;
  text-decoration: none;
  transition: border-color 0.15s ease, background 0.15s ease;
}
.overview-upgrade-card:hover{
  border-color: rgba(70, 229, 255, 0.28);
  background: rgba(8, 16, 32, 0.62);
}
.overview-upgrade-card-head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
}
.overview-upgrade-name{
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--gc-text-soft);
}
.overview-upgrade-level{
  font-size: 0.76rem;
  min-width: 0;
  padding: 2px 7px;
}
.overview-economy-panel .gc-bld-effect-compact{
  padding: 4px 5px;
  gap: 2px;
}
.overview-economy-panel .gc-bld-prod-line{
  font-size: 0.64rem;
}
.gc-bld-effect-bundle{
  display: grid;
  gap: 4px;
}
.gc-bld-effect-secondary{
  border-color: rgba(251, 191, 36, 0.14);
  background: rgba(20, 12, 0, 0.22);
}
.gc-bld-effect-secondary .gc-bld-prod-metric{
  color: rgba(251, 191, 36, 0.78);
}
.overview-energy-strip{
  display: grid;
  gap: 8px;
  padding: 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.14);
  background: rgba(3, 8, 18, 0.55);
}
.overview-energy-head{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}
.overview-energy-label{
  color: var(--gc-text-dim);
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.overview-energy-meta{
  color: var(--gc-text-soft);
  font-size: 0.86rem;
}
.overview-energy-hint{ margin: 0; }
.overview-activities-panel .overview-activities{
  flex: 1 1 auto;
  min-height: 0;
  grid-template-rows: auto;
  align-content: start;
}
.overview-activities{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.overview-activity-row{
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.14);
  background: rgba(4, 8, 18, 0.72);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.32);
  transition: border-color 0.15s ease, background 0.15s ease, box-shadow 0.15s ease;
  min-height: 0;
  display: flex;
}
.overview-activity-row:hover{
  border-color: rgba(70, 229, 255, 0.24);
  background: rgba(6, 12, 24, 0.82);
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.32),
    0 6px 18px rgba(0, 0, 0, 0.22);
}
.overview-activity-link{
  display: grid;
  grid-template-columns: 88px 1fr;
  gap: 10px;
  align-items: center;
  padding: 10px 12px;
  color: inherit;
  text-decoration: none;
  flex: 1;
  width: 100%;
  min-height: 100%;
}
.overview-activity-type{
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}
.overview-activity-body{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}
.overview-activity-name{ font-weight: 700; color: var(--gc-text); }
.overview-activity-detail{ color: var(--gc-text-soft); font-size: 0.88rem; }
.overview-activity-eta{
  margin-left: auto;
  color: var(--gc-primary-2);
  font-size: 0.88rem;
}
.overview-activity-idle{ color: var(--gc-text-dim); font-style: italic; }
.overview-activity-active{
  border-color: rgba(70,229,255,0.24);
  box-shadow: inset 0 0 0 1px rgba(70,229,255,0.06);
}
.overview-warnings{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 8px;
}
.overview-warning{
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255,196,0,0.28);
  background: rgba(255,196,0,0.06);
  color: var(--gc-text-soft);
  font-size: 0.9rem;
}
.overview-warning-critical{
  border-color: rgba(255,75,106,0.38);
  background: rgba(255,75,106,0.08);
}
.overview-warnings-panel{ margin-top: var(--gc-card-gap); }
.overview-log-panel{ margin-top: var(--gc-card-gap); }
.overview-log{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}
.overview-log-item{
  display: grid;
  grid-template-columns: 110px 1fr;
  gap: 12px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid transparent;
  font-size: 0.9rem;
}
.overview-log-item:hover{
  border-color: rgba(120, 190, 255, 0.12);
  background: rgba(5, 10, 22, 0.35);
}
.overview-log-unread .overview-log-subject{ font-weight: 700; color: var(--gc-text); }
.overview-log-time{ color: var(--gc-text-dim); font-size: 0.82rem; }
.overview-log-subject{ color: var(--gc-text-soft); }
.overview-log-empty{ margin: 0; }

/* Overview Research side */
.research-active-box{
  padding: 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.28);
  background: rgba(5, 10, 22, 0.60);
  box-shadow: 0 18px 44px rgba(0,0,0,0.46);
}
.research-active-name{ font-weight: 800; color: var(--gc-text); margin-bottom: 8px; }

.research-bar{
  height: 10px;
  border-radius: var(--gc-radius-sm);
  background: rgba(120, 190, 255, 0.10);
  border: 1px solid rgba(120, 190, 255, 0.14);
  overflow: hidden;
}
.research-bar-fill{
  height: 100%;
  width: 0%;
  background: linear-gradient(90deg, rgba(70,229,255,0.70), rgba(127,255,217,0.65));
  box-shadow: 0 0 20px rgba(70,229,255,0.18);
}

/* Smooth progress fills ? will-change only while timers active (GC-547) */
.gc-progress-smooth,
.build-bar-fill,
.build-progress-fill,
.research-progress-fill,
.research-bar-fill{
  transition: width 0.12s linear;
}

body:not(.gc-perf-idle) .gc-progress-smooth,
body:not(.gc-perf-idle) .build-bar-fill,
body:not(.gc-perf-idle) .build-progress-fill,
body:not(.gc-perf-idle) .research-progress-fill,
body:not(.gc-perf-idle) .research-bar-fill{
  will-change: width;
}

.research-active-meta{
  display: flex;
  justify-content: space-between;
  gap: 10px;
  margin-top: 8px;
  color: var(--gc-text-dim);
  font-size: 0.82rem;
  font-family: var(--gc-mono);
}
.research-empty-hint{ color: var(--gc-text-dim); }

.research-list{ list-style: none; padding: 0; margin: 10px 0 0 0; display: grid; gap: 8px; }
.research-item{
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  background: rgba(5, 10, 22, 0.58);
  border: 1px solid rgba(120, 190, 255, 0.16);
  box-shadow: 0 18px 44px rgba(0,0,0,0.40);
}
.research-item-locked{ opacity: 0.78; border-color: rgba(255,196,0,0.18); }
.research-item-header{ display: flex; justify-content: space-between; gap: 10px; }
.research-item-name{ font-weight: 800; color: var(--gc-text-soft); }
.research-item-level{ font-family: var(--gc-mono); color: var(--gc-text-dim); }
.research-item-cost{ margin-top: 6px; color: var(--gc-text-dim); font-size: 0.84rem; }

/* =========================
   16) Buildings + Research ? compact progression cards
   ========================= */
.buildings-shell{ padding: 10px; }

.shipyard-shell.gc-panel,
.defense-shell.gc-panel{
  padding: 10px;
}

.shipyard-shell .shipyard-status-panel,
.defense-shell .defense-status-panel{
  margin: -10px -10px 0;
  padding: 10px 12px 8px;
  border-bottom: 1px solid rgba(127, 255, 217, 0.08);
}

.shipyard-shell .shipyard-buildable-section,
.defense-shell .defense-buildable-section{
  margin-top: 4px;
}

/* Genesis building/research/shipyard cards ? compact grid */
.gc-building-grid.buildings-prog-list,
.gc-building-grid.research-prog-list,
.gc-building-grid.shipyard-ship-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(224px, 1fr));
  gap: 10px;
  align-items: stretch;
}

.gc-building-card.gc-prog-card{
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 0 0 9px;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--gc-radius-sm);
}

.gc-building-card.gc-prog-card:hover{
  transform: translateY(-2px);
}

/* Hero image ? Megabunker-style building recognition */
.gc-bld-card-hero{
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  min-height: 88px;
  max-height: 118px;
  overflow: hidden;
  border-bottom: 1px solid rgba(70, 229, 255, 0.16);
  background: rgba(4, 8, 18, 0.92);
}

.gc-bld-card-hero-img{
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center 35%;
  aspect-ratio: 16 / 9;
}

/* GC-555 ? picture wrapper fills hero slots */
.gc-bld-card-hero > picture,
.gc-bld-hero-img-stack > picture{
  position: absolute;
  inset: 0;
  display: block;
}

.gc-bld-hero-img-stack{
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.gc-bld-hero-img-stack .gc-bld-card-hero-img--muted{
  filter: saturate(0.55) brightness(0.9);
  z-index: 0;
}

.gc-bld-hero-img-stack .gc-bld-card-hero-img--color{
  z-index: 1;
  clip-path: inset(calc(100% - var(--hero-progress-pct, 0%)) 0 0 0);
}

.gc-bld-card-hero-overlay{
  position: absolute;
  inset: 0;
  background: linear-gradient(
    180deg,
    rgba(4, 8, 18, 0.02) 0%,
    rgba(4, 8, 18, 0.12) 55%,
    rgba(4, 8, 18, 0.82) 100%
  );
  pointer-events: none;
  z-index: 2;
}

/* GC-550C ? hero queue status (no dark overlay layer) */
.gc-bld-hero-queue{
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  overflow: hidden;
}

.gc-bld-hero-queue[hidden]{
  display: none !important;
}

.gc-bld-hero-queue-badge{
  position: absolute;
  left: 50%;
  top: 38%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 4px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.35);
  background: rgba(6, 12, 28, 0.72);
  color: rgba(200, 235, 255, 0.92);
  font-size: 0.68rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-align: center;
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.65);
  pointer-events: none;
}

.gc-bld-hero-queue-badge-line{
  line-height: 1.2;
}

.gc-bld-hero-queue-badge-sub{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.62rem;
  letter-spacing: 0.03em;
  text-transform: none;
  color: rgba(180, 220, 245, 0.9);
}

.gc-bld-hero-time-chip{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 36px;
  min-width: 5.25ch;
  min-height: 22px;
  padding: 2px 5px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.28);
  background: rgba(6, 12, 28, 0.82);
  color: rgba(190, 230, 255, 0.94);
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  line-height: 1.2;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.28) inset;
  pointer-events: none;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
  box-sizing: border-box;
}

.gc-bld-hero-time-chip .gc-hero-time-text{
  display: block;
  width: 100%;
  text-align: center;
}

.gc-bld-hero-action-col{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-end;
  gap: 5px;
  flex-shrink: 0;
  width: 46px;
  min-width: 46px;
}

.gc-bld-hero-right-stack .gc-bld-hero-action-slot{
  width: 100%;
  max-width: none;
}

.gc-bld-hero-action-col .gc-bld-hero-time-chip{
  align-self: flex-end;
}

.gc-bld-hero-action-col .gc-bld-card-head-action,
.gc-bld-hero-action-col .gc-bld-card-action{
  align-self: flex-end;
}

.gc-bld-hero-time-chip .gc-card-queue-timer{
  font-size: inherit;
  letter-spacing: inherit;
  color: inherit;
}

.gc-bld-card-meta--costs-only{
  justify-content: flex-start;
}

.gc-bld-card-meta--costs-only .gc-bld-card-costs{
  width: 100%;
}

.gc-bld-hero-queue-center{
  position: absolute;
  left: 50%;
  top: 40%;
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 0;
  max-width: calc(100% - 16px);
  text-align: center;
  pointer-events: none;
  z-index: 4;
}

.gc-bld-hero-queue-pct{
  font-size: 1.1rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: rgba(240, 252, 255, 0.98);
  text-shadow: 0 1px 10px rgba(0, 0, 0, 0.85), 0 0 18px rgba(70, 229, 255, 0.35);
  line-height: 1.1;
}

.gc-bld-hero-queue-cancel{
  position: absolute;
  top: 6px;
  left: 6px;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  padding: 0;
  border: 1px solid rgba(251, 120, 120, 0.42);
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 10, 20, 0.82);
  color: rgba(251, 160, 160, 0.95);
  font-size: 0.95rem;
  line-height: 1;
  cursor: pointer;
  pointer-events: auto;
  opacity: 0.82;
  transition: opacity 0.12s ease, border-color 0.12s ease;
}

.gc-bld-hero-queue-cancel:hover,
.gc-bld-hero-queue-cancel:focus-visible{
  opacity: 1;
  border-color: rgba(251, 120, 120, 0.72);
}

.gc-bld-hero-action-row{
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4px;
  pointer-events: auto;
}

.gc-bld-hero-action-slot--timekeeper{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  pointer-events: auto;
}

.gc-bld-hero-right-stack .gc-queue-timekeeper-btn{
  width: 22px;
  height: 22px;
  font-size: 0.82rem;
  line-height: 1;
}

.gc-building-card .gc-bld-card-queue-zone,
.gc-research-card .gc-bld-card-queue-zone{
  display: none;
}

.gc-bld-card-level--hero{
  position: absolute;
  top: 7px;
  right: 7px;
  z-index: 6;
}

/* GC-557G ? hero right stack: floating level + timer badges (buildings/research) */
.gc-bld-hero-right-stack{
  position: absolute;
  top: 5px;
  right: 5px;
  z-index: 6;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
  width: auto;
  min-width: 0;
  max-width: calc(100% - 10px);
  pointer-events: none;
}

.gc-hero-stat-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 22px;
  padding: 2px 7px;
  border: 1px solid rgba(0, 255, 220, 0.46);
  border-radius: 3px;
  background: rgba(5, 14, 24, 0.92);
  color: rgb(244, 252, 255);
  font-family: var(--gc-font-level);
  font-size: 0.875rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  letter-spacing: 0.02em;
  line-height: 1;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.85), 0 0 6px rgba(0, 255, 220, 0.32);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.65) inset,
    0 2px 8px rgba(0, 0, 0, 0.45);
  white-space: nowrap;
  pointer-events: auto;
}

.gc-bld-hero-right-stack .gc-bld-hero-action-slot--time{
  display: flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-height: 0;
  pointer-events: auto;
}

.gc-bld-hero-right-stack .gc-bld-hero-time-chip,
.gc-bld-hero-right-stack .gc-card-timer{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  min-height: 18px;
  padding: 2px 6px;
  border: 1px solid rgba(0, 255, 220, 0.32);
  border-radius: 3px;
  background: rgba(0, 0, 0, 0.88);
  color: rgba(228, 244, 255, 0.98);
  font-family: var(--gc-font-level);
  font-size: 0.6875rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  line-height: 1.1;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.55) inset;
  font-variant-numeric: tabular-nums;
  box-sizing: border-box;
  width: auto;
  max-width: none;
}

.gc-bld-card-hero-action-slot{
  flex: 0 0 auto;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  margin-left: auto;
  pointer-events: auto;
}

.gc-bld-card-hero-action-slot .gc-bld-card-head-action,
.gc-bld-card-hero-action-slot .gc-bld-card-action{
  display: flex;
  align-items: center;
  justify-content: center;
}

.gc-bld-card-hero-action-slot .gc-bld-head-action-btn{
  width: 62px;
  height: 30px;
  min-width: 62px;
  min-height: 30px;
  border-radius: 3px;
}

.gc-bld-card-hero-action-slot a.gc-bld-head-action-btn--go,
.gc-bld-card-hero-action-slot button.gc-bld-head-action-btn--go{
  border-color: rgba(0, 255, 220, 0.58);
  background: linear-gradient(180deg, rgba(16, 42, 48, 0.98) 0%, rgba(8, 24, 32, 0.98) 100%);
  color: rgba(127, 255, 217, 0.98);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.55) inset,
    0 0 10px rgba(0, 255, 220, 0.12),
    0 2px 8px rgba(0, 0, 0, 0.45);
}

.gc-bld-card-hero-action-slot a.gc-bld-head-action-btn--go:hover,
.gc-bld-card-hero-action-slot a.gc-bld-head-action-btn--go:focus-visible{
  border-color: rgba(127, 255, 217, 0.82);
  background: linear-gradient(180deg, rgba(22, 52, 58, 0.98) 0%, rgba(10, 30, 38, 0.98) 100%);
}

.gc-bld-card-hero-action-slot .gc-bld-head-action-icon{
  font-size: 1.05rem;
  font-weight: 800;
  line-height: 1;
}

/* GC-557E ? timer/button slots (stable poll layout) */
.gc-bld-hero-level{
  position: static;
  top: auto;
  right: auto;
  z-index: auto;
}

.gc-bld-hero-action-slot{
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: none;
}

.gc-bld-hero-action-slot--time{
  min-height: 22px;
}

.gc-bld-hero-action-slot--btn{
  min-height: 30px;
}

.gc-bld-hero-action-slot .gc-bld-card-head-action,
.gc-bld-hero-action-slot .gc-bld-card-action{
  width: 100%;
  justify-content: center;
}

.gc-bld-card-hero-title{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  padding: 5px 6px 6px 8px;
  min-width: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(4, 8, 18, 0.72) 100%);
}

.gc-bld-card-title-wrap{
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  flex: 1 1 auto;
}

.gc-bld-card-title-wrap .gc-bld-card-title-btn{
  display: block;
  width: 100%;
  min-width: 0;
  padding: 0;
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  text-align: left;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* GC-557F ? building technical data modal */
.gc-building-tech-body{
  padding: 0 0 12px;
  max-height: min(72vh, 640px);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.gc-building-tech-desc{
  margin: 0;
  padding: 0 14px 10px;
  font-size: 0.78rem;
  line-height: 1.45;
  color: rgba(180, 220, 240, 0.88);
  border-bottom: 1px solid rgba(70, 229, 255, 0.1);
}

.gc-building-tech-modal--research .gc-building-tech-table th[data-bt-col-energy],
.gc-building-tech-modal--research .gc-building-tech-table td[data-bt-col-energy]{
  display: none;
}

.gc-building-tech-dialog{
  max-height: min(88vh, 720px);
  max-width: min(920px, 100%);
  width: min(920px, 100%);
  display: flex;
  flex-direction: column;
  border-radius: 0;
}

.gc-building-tech-table-wrap{
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  max-width: 100%;
  padding: 0;
  border-top: 1px solid rgba(70, 229, 255, 0.14);
  border-bottom: 1px solid rgba(70, 229, 255, 0.14);
}

.gc-building-tech-detail{
  padding: 0;
}

.gc-building-tech-detail-panel{
  margin: 0;
  padding: 10px 12px 12px;
  border-top: 1px solid rgba(70, 229, 255, 0.12);
  background: rgba(4, 12, 22, 0.55);
  border-radius: 0;
}

.gc-building-tech-table{
  width: 100%;
  min-width: 560px;
  border-collapse: collapse;
  font-size: 0.72rem;
  border-radius: 0;
}

.gc-building-tech-table th,
.gc-building-tech-table td{
  padding: 6px 10px;
  border: 1px solid rgba(70, 229, 255, 0.1);
  text-align: right;
  white-space: nowrap;
  border-radius: 0;
}

.gc-building-tech-table tbody tr:nth-child(odd){
  background: rgba(6, 16, 28, 0.45);
}

.gc-building-tech-table tbody tr:nth-child(even){
  background: rgba(8, 22, 36, 0.35);
}

.gc-building-tech-table th:first-child,
.gc-building-tech-table td.gc-building-tech-col-level{
  text-align: left;
}

.gc-building-tech-table td.gc-building-tech-col-output{
  text-align: left;
}

.gc-building-tech-level{
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  line-height: 1.15;
  vertical-align: top;
}

.gc-building-tech-level-num{
  font-variant-numeric: tabular-nums;
}

.gc-building-tech-next-badge{
  display: inline-block;
  margin: 0;
  padding: 1px 4px;
  border-radius: 0;
  border: 1px solid rgba(70, 229, 255, 0.45);
  color: rgba(120, 210, 255, 0.95);
  font-size: 0.55rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.2;
}

.gc-building-tech-milestone-badge{
  display: inline-block;
  margin: 0;
  padding: 1px 4px;
  border-radius: 0;
  border: 1px solid rgba(255, 196, 0, 0.45);
  color: rgba(255, 210, 100, 0.95);
  font-size: 0.55rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.2;
}

.gc-building-tech-max-hint{
  margin: 0;
  padding: 8px 10px;
  font-size: 0.78rem;
  color: rgba(255, 196, 0, 0.9);
  text-align: center;
}

.gc-building-tech-current-badge{
  display: inline-block;
  margin: 0;
  padding: 1px 4px;
  border-radius: 0;
  border: 1px solid rgba(52, 232, 178, 0.45);
  color: rgba(52, 232, 178, 0.95);
  font-size: 0.55rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.2;
}

.gc-building-tech-table th{
  color: rgba(180, 220, 245, 0.78);
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-size: 0.62rem;
  background: rgba(4, 14, 26, 0.92);
}

.gc-building-tech-row--current{
  background: rgba(52, 232, 178, 0.1) !important;
}

.gc-building-tech-row--current td{
  border-color: rgba(52, 232, 178, 0.22);
}

.gc-tech-val--pos{
  color: rgba(52, 232, 178, 0.95);
}

.gc-tech-val--neg{
  color: rgba(255, 110, 110, 0.92);
}

.gc-tech-val--zero{
  color: rgba(255, 110, 110, 0.78);
}

.gc-tech-unit{
  margin-left: 2px;
  color: rgba(140, 180, 200, 0.7);
  font-size: 0.9em;
}

.gc-tech-metrics--footer{
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(70, 229, 255, 0.1);
}

.gc-building-tech-detail-panel .gc-tech-formula-body{
  border-radius: 0;
}

.gc-building-tech-col-details,
.gc-tech-details-cell{
  text-align: left !important;
  min-width: 220px;
  vertical-align: top;
}

.gc-tech-display{
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 2px 0;
}

/* GC-TECHCARD-UX-001 ? impact summary (scoped; not global card/queue) */
.gc-tech-impact{
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-bottom: 4px;
}
.gc-tech-impact-blurb{
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.35;
  color: rgba(200, 220, 235, 0.92);
}
.gc-tech-impact-block{
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 6px 8px;
  border: 1px solid rgba(100, 160, 190, 0.22);
  background: rgba(8, 20, 36, 0.35);
  border-radius: var(--gc-radius-sm);
}
.gc-tech-impact-heading{
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: rgba(140, 200, 220, 0.88);
}
.gc-tech-impact-heading--sub{
  margin-top: 2px;
  color: rgba(180, 220, 200, 0.9);
}
.gc-tech-impact-affects{
  display: flex;
  flex-wrap: wrap;
  gap: 4px 6px;
}
.gc-tech-impact-affect{
  display: inline-block;
  padding: 1px 6px;
  border: 1px solid rgba(100, 160, 190, 0.28);
  border-radius: var(--gc-radius-sm);
  font-size: 0.72rem;
  color: rgba(180, 220, 235, 0.92);
}
.gc-tech-impact-unlocks{
  margin: 0;
  padding: 0 0 0 1.1rem;
}
.gc-tech-impact-unlock{
  font-size: 0.8rem;
  color: rgba(200, 230, 210, 0.95);
}

.gc-tech-metrics{
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.gc-tech-line{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 10px;
}

.gc-tech-line--delta .gc-tech-delta-group{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
}

.gc-tech-label{
  color: rgba(160, 200, 220, 0.85);
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.gc-tech-section-title{
  font-size: 0.68rem;
  font-weight: 600;
  color: rgba(120, 210, 255, 0.95);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-top: 2px;
}

.gc-tech-bonuses{
  display: flex;
  flex-direction: column;
  gap: 3px;
  padding-top: 4px;
  border-top: 1px solid rgba(70, 229, 255, 0.1);
}

.gc-tech-bonus-line{
  display: flex;
  justify-content: space-between;
  gap: 8px;
}

.gc-tech-bonus-label{
  color: rgba(180, 210, 230, 0.8);
}

/* GC-EFFSTAT — effective value + net bonus badge */
.gc-eff-stat{
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}
.gc-eff-stat-value{
  color: inherit;
}
.gc-eff-stat-bonus{
  display: inline-block;
  padding: 0 4px;
  border: 1px solid rgba(70, 229, 255, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(70, 229, 255, 0.08);
  color: rgba(120, 220, 180, 0.95);
  font-size: 0.72em;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1.35;
  white-space: nowrap;
}
.gc-eff-stat-bonus.is-neg{
  border-color: rgba(255, 160, 90, 0.4);
  background: rgba(255, 140, 60, 0.08);
  color: rgba(255, 190, 120, 0.95);
}
.gc-card-lr-value .gc-eff-stat,
.fleet-preview-stat-value .gc-eff-stat-bonus,
.gc-fleet-drawer-tooltip-section .gc-eff-stat-bonus,
.gbl-stat-row .gc-eff-stat-bonus{
  margin-left: 2px;
}
.fleet-preview-stat-value{
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  flex-wrap: wrap;
  justify-content: flex-end;
}

.gc-tech-section--milestones{
  padding-top: 4px;
  border-top: 1px solid rgba(70, 229, 255, 0.1);
}

.gc-tech-milestones{
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.gc-tech-milestone-line{
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.82rem;
}

.gc-tech-milestone-level{
  color: rgba(120, 210, 255, 0.95);
  font-weight: 600;
  min-width: 2.5rem;
}

.gc-tech-milestone-gain{
  color: rgba(200, 230, 245, 0.9);
  text-align: right;
  flex: 1;
}

.gc-tech-milestone-label{
  color: rgba(160, 200, 220, 0.75);
  font-size: 0.75rem;
}

.gc-tech-section--bonuses{
  padding-top: 4px;
  border-top: 1px solid rgba(70, 229, 255, 0.1);
}

.gc-unit-technical-detail{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
}

.gc-unit-technical-detail .gc-tech-section{
  padding-top: 6px;
  border-top: 1px solid rgba(70, 229, 255, 0.1);
}

.gc-unit-technical-detail .gc-tech-section:first-child{
  border-top: none;
  padding-top: 0;
}

.gc-unit-rapid-fire-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem 0.85rem;
}
@media (max-width: 640px){
  .gc-unit-rapid-fire-grid{
    grid-template-columns: minmax(0, 1fr);
  }
}
.gc-unit-rapid-fire-col{
  min-width: 0;
}
.gc-unit-rapid-fire-list{
  list-style: none;
  margin: 0.35rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.gc-unit-rapid-fire-row{
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto;
  gap: 0.4rem;
  align-items: center;
  padding: 0.25rem 0.35rem;
  border: 1px solid rgba(70, 229, 255, 0.12);
  background: rgba(0, 0, 0, 0.18);
}
.gc-unit-rapid-fire-icon{
  width: 28px;
  height: 28px;
  object-fit: contain;
}
.gc-unit-rapid-fire-name{
  font-size: 0.78rem;
  line-height: 1.25;
  word-break: break-word;
}
.gc-unit-rapid-fire-value{
  font-size: 0.72rem;
  color: var(--gc-text-soft);
  white-space: nowrap;
}

.gc-tech-formula{
  margin-top: 2px;
}

.gc-tech-formula summary{
  cursor: pointer;
  list-style: none;
}

.gc-tech-formula summary::-webkit-details-marker{
  display: none;
}

.gc-tech-formula-body{
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-top: 4px;
  padding: 6px 8px;
  border-radius: 0;
  background: rgba(0, 20, 35, 0.35);
  border: 1px solid rgba(70, 229, 255, 0.08);
}

.gc-tech-formula-step{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  font-size: 0.68rem;
}

.gc-tech-formula-step--total{
  margin-top: 4px;
  padding-top: 4px;
  border-top: 1px dashed rgba(70, 229, 255, 0.15);
  font-weight: 600;
}

.gc-tech-formula-mul,
.gc-tech-formula-eq{
  color: rgba(120, 180, 210, 0.7);
}

body.gc-building-tech-open{
  overflow: hidden;
}

.gc-bld-card-head-action{
  display: flex;
  flex-shrink: 0;
  align-items: center;
  justify-content: flex-end;
  margin: 0;
  padding: 0;
}

.gc-bld-card-head-action-group{
  display: inline-flex;
  align-items: stretch;
  gap: 0;
  flex-shrink: 0;
  border-radius: 3px;
  border: 1px solid rgba(70, 229, 255, 0.42);
  background: rgba(6, 12, 28, 0.9);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.28) inset,
    0 0 14px rgba(70, 229, 255, 0.1);
  overflow: hidden;
}

.gc-bld-card-head-action-group .gc-bld-head-action-btn{
  border: none;
  border-radius: 0;
  box-shadow: none;
  margin: 0;
}

.gc-bld-card-head-action-group .gc-bld-head-action-btn--plus-one{
  border-right: 1px solid rgba(70, 229, 255, 0.22);
}

.gc-bld-head-action-btn--plus-one .gc-bld-head-action-label{
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1;
}

.gc-bld-head-action-btn--queue-max{
  width: auto;
  min-width: 34px;
  padding: 0 6px;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border-color: rgba(120, 190, 255, 0.38);
  color: rgba(186, 230, 255, 0.92);
  background: linear-gradient(180deg, rgba(16, 42, 58, 0.98) 0%, rgba(8, 20, 32, 0.98) 100%);
}

.gc-bld-card-hero-action-slot .gc-bld-head-action-btn--queue-max{
  width: auto;
  min-width: 52px;
  height: 30px;
  min-height: 30px;
  padding: 0 5px;
  font-size: 0.58rem;
}

.gc-bld-card-hero-action-slot .gc-bld-head-action-btn--plus-one{
  width: 38px;
  min-width: 38px;
  height: 30px;
  min-height: 30px;
}

.gc-bld-card-head-action-group a.gc-bld-head-action-btn--go:hover,
.gc-bld-card-head-action-group a.gc-bld-head-action-btn--go:focus-visible,
.gc-bld-card-head-action-group .gc-bld-head-action-btn--queue-max:not(:disabled):hover,
.gc-bld-card-head-action-group .gc-bld-head-action-btn--queue-max:not(:disabled):focus-visible{
  z-index: 1;
}

.gc-bld-head-action-btn--queue-max:not(:disabled):hover,
.gc-bld-head-action-btn--queue-max:not(:disabled):focus-visible{
  border-color: rgba(160, 220, 255, 0.72);
  color: rgba(230, 248, 255, 1);
  background: linear-gradient(180deg, rgba(22, 52, 72, 0.98) 0%, rgba(10, 28, 42, 0.98) 100%);
  box-shadow: 0 0 18px rgba(70, 229, 255, 0.22);
}

.gc-bld-head-action-btn--queue-max:disabled{
  opacity: 0.38;
  cursor: not-allowed;
}

.gc-bld-head-action-btn--queue-max.gc-max-queue-hover-trigger:not(:disabled):hover,
.gc-bld-head-action-btn--queue-max.gc-max-queue-hover-trigger:not(:disabled):focus-visible{
  cursor: help;
}

.gc-bld-head-action-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  min-width: 40px;
  min-height: 40px;
  padding: 0;
  border-radius: 5px;
  border: 1px solid rgba(70, 229, 255, 0.42);
  background: rgba(6, 12, 28, 0.88);
  color: var(--gc-neon-cyan);
  font-size: 0.95rem;
  line-height: 1;
  text-decoration: none;
  cursor: pointer;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.28) inset;
  transition: background 0.12s ease, border-color 0.12s ease, box-shadow 0.12s ease;
  box-sizing: border-box;
}

a.gc-bld-head-action-btn--go,
button.gc-bld-head-action-btn--go{
  border-color: rgba(52, 232, 178, 0.72);
  background: linear-gradient(180deg, rgba(52, 232, 178, 0.34) 0%, rgba(35, 200, 150, 0.22) 100%);
  color: rgba(240, 255, 252, 1);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.32) inset,
    0 0 16px rgba(52, 232, 178, 0.22),
    0 2px 8px rgba(0, 0, 0, 0.35);
}

a.gc-bld-head-action-btn--go:hover,
a.gc-bld-head-action-btn--go:focus-visible{
  background: linear-gradient(180deg, rgba(52, 232, 178, 0.48) 0%, rgba(35, 200, 150, 0.32) 100%);
  border-color: rgba(127, 255, 217, 0.92);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.32) inset,
    0 0 22px rgba(52, 232, 178, 0.38),
    0 2px 10px rgba(0, 0, 0, 0.4);
  color: rgba(255, 255, 255, 1);
}

.gc-bld-head-action-btn--busy,
.gc-bld-head-action-btn.is-busy,
.gc-bld-head-action-btn.is-loading{
  border-color: rgba(127, 255, 217, 0.38);
  color: rgba(180, 245, 255, 0.92);
  cursor: default;
  opacity: 0.82;
}

.gc-bld-head-action-btn--warn{
  border-color: rgba(251, 191, 36, 0.48);
  color: rgba(251, 191, 36, 0.96);
}

.gc-bld-head-action-btn--locked{
  border-color: rgba(120, 190, 255, 0.24);
  color: rgba(160, 190, 220, 0.88);
  cursor: not-allowed;
}

.gc-bld-head-action-btn--afford{
  border-color: rgba(251, 120, 120, 0.35);
  color: rgba(251, 160, 160, 0.82);
  cursor: not-allowed;
}

.gc-bld-head-action-btn--max{
  border-style: dashed;
  border-color: rgba(120, 190, 255, 0.22);
  color: rgba(127, 255, 217, 0.72);
  opacity: 0.72;
}

.gc-bld-head-action-btn[disabled]{
  cursor: not-allowed;
}

.gc-bld-head-action-icon{
  display: block;
  font-size: 1.35rem;
  line-height: 1;
  font-weight: 700;
  pointer-events: none;
}

.gc-building-card .gc-bld-card-icon--title,
.gc-research-card .gc-bld-card-icon--title{
  display: none;
}

.gc-building-card .gc-bld-prod,
.gc-building-card .gc-bld-card-meta,
.gc-building-card .gc-bld-card-req,
.gc-building-card .gc-bld-card-queue-zone,
.gc-research-card .gc-bld-prod,
.gc-research-card .gc-bld-effect-bundle,
.gc-research-card .gc-bld-card-meta,
.gc-research-card .research-card-blockers,
.gc-research-card .gc-bld-card-queue-zone,
.gc-ship-card .gc-ship-card-subhead,
.gc-ship-card .gc-bld-card-meta,
.gc-ship-card .shipyard-blockers{
  margin-left: 9px;
  margin-right: 9px;
}

.gc-bld-card-hero-badge{
  position: absolute;
  top: 7px;
  right: 7px;
  z-index: 2;
}

.gc-bld-card-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.gc-bld-card-identity{
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  flex: 1;
}

.gc-bld-card-icon{
  width: 34px;
  height: 34px;
  flex-shrink: 0;
  object-fit: contain;
  border-radius: calc(var(--gc-radius-sm) - 2px);
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: radial-gradient(circle at 50% 40%, rgba(70, 229, 255, 0.10), rgba(5, 10, 22, 0.58));
  filter: drop-shadow(0 0 10px rgba(70, 229, 255, 0.14));
}

.gc-bld-card-icon--title{
  width: 26px;
  height: 26px;
  border-radius: calc(var(--gc-radius-sm) - 3px);
}

.gc-bld-card-title-wrap{
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}

.gc-bld-card-title{
  margin: 0;
  font-size: 0.8rem;
  font-weight: 800;
  line-height: 1.15;
  color: var(--gc-text);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gc-bld-card-hero-title .gc-bld-card-title{
  color: rgba(235, 250, 255, 0.98);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.65);
}

.gc-bld-card-level{
  flex-shrink: 0;
}

/* GC-827B ? Genesis card freeze (benefit ? costs ? footer) */
.gc-card-benefit-block,
.gc-card-costs-block{
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
  min-width: 0;
}

.gc-card-section-label{
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.82);
  line-height: 1.2;
}

.gc-card-lr-row{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  width: 100%;
  min-width: 0;
  padding: 4px 6px;
  border-radius: calc(var(--gc-radius-sm) - 2px);
  border: 1px solid rgba(120, 190, 255, 0.1);
  background: rgba(0, 0, 0, 0.18);
}

.gc-card-lr-label{
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.72);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gc-card-lr-value{
  flex-shrink: 0;
  font-size: 0.78rem;
  font-weight: 800;
  color: rgba(235, 250, 255, 0.96);
  text-align: right;
}

.gc-card-benefit-row .gc-card-lr-value,
.gc-card-benefit-row .gc-num-compact{
  color: rgba(127, 255, 217, 0.95);
}

.gc-cost-stack{
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
}

.gc-cost-stack .gc-cost-chip,
.gc-card-costs-block .gc-cost-chip{
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  gap: 10px;
  padding: 4px 6px;
  border-radius: calc(var(--gc-radius-sm) - 2px);
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.06);
  white-space: nowrap;
}

.gc-cost-chip-leading{
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.gc-cost-stack .gc-cost-val{
  margin-left: auto;
  text-align: right;
}

.gc-card-footer-row{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  width: 100%;
  padding: 2px 6px 0;
  font-size: 0.72rem;
  color: rgba(180, 210, 230, 0.78);
}

.gc-card-footer-row--energy .gc-card-footer-val{
  color: rgba(251, 191, 36, 0.9);
}

.gc-card-footer-row--time .gc-card-footer-val{
  color: rgba(180, 245, 255, 0.88);
}

/* GC-827B ? build-time footer: label left, value right */
.gc-card-lr-row.gc-card-footer-row--time{
  justify-content: space-between;
  padding: 4px 6px 2px;
  width: 100%;
  font-size: 0.72rem;
  color: rgba(180, 210, 230, 0.78);
}

.gc-card-footer-row--time .gc-card-lr-label{
  text-align: left;
  justify-content: flex-start;
  color: rgba(160, 220, 240, 0.75);
}

.gc-card-footer-row--time .gc-card-lr-value{
  color: rgba(180, 245, 255, 0.88);
}

.gc-card-req-block{
  margin-top: 6px;
  padding: 6px 8px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 196, 0, 0.22);
  background: rgba(40, 28, 0, 0.28);
}

.gc-card-req-head{
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 214, 120, 0.92);
}

.gc-card-req-list{
  margin: 0;
  padding: 0 0 0 1.1rem;
  list-style: disc;
}

.gc-card-req-item{
  font-size: 0.72rem;
  color: rgba(255, 220, 160, 0.88);
  line-height: 1.35;
}

.gc-building-card .gc-bld-effect-bundle,
.gc-research-card .gc-bld-effect-bundle,
.gc-ship-card .gc-bld-effect-bundle{
  margin-top: 4px;
  margin-bottom: 2px;
}

.gc-ship-card .gc-card-benefit-block,
.gc-ship-card .gc-card-costs-block{
  margin-top: 4px;
}

.gc-bld-effect-bundle{
  margin-top: 0;
}

.gc-building-card .gc-bld-effect-bundle,
.gc-research-card .gc-bld-effect-bundle{
  margin-top: 4px;
}

.gc-bld-prod{
  display: grid;
  gap: 3px;
  padding: 5px 6px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.10);
  background: rgba(0, 0, 0, 0.18);
  min-width: 0;
  overflow: hidden;
}

.gc-bld-prod-metric{
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.82);
  line-height: 1.2;
  margin-bottom: 1px;
}

.gc-bld-effect-icon{
  width: 18px;
  height: 18px;
  flex-shrink: 0;
  object-fit: contain;
}

.gc-bld-effect-icon-energy{
  filter: drop-shadow(0 0 6px rgba(251, 191, 36, 0.35));
}

.gc-bld-effect-icon-fallback{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  font-size: 0.72rem;
  line-height: 1;
  opacity: 0.9;
}

/* Building cards ? larger resource icons (GC-557) */
.gc-building-card .gc-res-icon,
.gc-research-card .gc-res-icon{
  width: 24px;
  height: 24px;
}

.gc-building-card .gc-bld-prod-val .gc-res-icon,
.gc-research-card .gc-bld-prod-val .gc-res-icon{
  width: 22px;
  height: 22px;
}

.gc-building-card .gc-res-icon--sm,
.gc-research-card .gc-res-icon--sm{
  width: 20px;
  height: 20px;
}

.gc-building-card .gc-cost-chip{
  padding: 2px 6px;
  gap: 5px;
}

.gc-bld-prod-line{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  font-size: 0.68rem;
  line-height: 1.2;
  min-width: 0;
}

.gc-bld-prod-label{
  color: var(--gc-text-dim);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-size: 0.62rem;
  font-weight: 700;
  flex-shrink: 0;
}

.gc-bld-prod-val{
  display: inline-flex;
  align-items: center;
  gap: 3px;
  font-weight: 800;
  color: rgba(180, 245, 255, 0.95);
  min-width: 0;
  max-width: 62%;
  justify-content: flex-end;
}

.gc-num-compact{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
  font-variant-numeric: tabular-nums;
}

.gc-bld-prod-delta-val .gc-mono,
.gc-bld-prod-delta-val.gc-num-compact{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

.gc-bld-card-costs .gc-cost-val{
  max-width: 5.5rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-bld-prod-next .gc-mono{
  color: rgba(127, 255, 217, 0.95);
}

.gc-bld-prod-unit{
  font-size: 0.62rem;
  color: var(--gc-text-dim);
  font-weight: 700;
}

.gc-bld-prod-delta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  margin-top: 1px;
  padding-top: 3px;
  border-top: 1px solid rgba(127, 255, 217, 0.14);
}

.gc-bld-prod-delta-label{
  font-size: 0.62rem;
  font-weight: 700;
  color: var(--gc-text-dim);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.gc-bld-prod-delta-val{
  font-size: 0.74rem;
  font-weight: 900;
  color: rgba(35, 242, 166, 0.96);
  text-shadow: 0 0 12px rgba(35, 242, 166, 0.22);
}

.gc-bld-prod-delta-cost{
  border-top-color: rgba(251, 191, 36, 0.18);
}
.gc-bld-prod-delta-cost .gc-bld-prod-delta-val{
  color: rgba(251, 191, 36, 0.96);
  text-shadow: 0 0 12px rgba(251, 191, 36, 0.18);
}
.gc-prog-affordable .gc-bld-prod-delta-cost .gc-bld-prod-delta-val{
  animation: none;
}

.gc-bld-card-meta{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 4px 8px;
  min-width: 0;
}

.gc-bld-card-costs{
  flex: 1 1 auto;
  min-width: 0;
}

.gc-bld-card-costs .gc-cost-target{
  display: none;
}

.gc-bld-card-time{
  flex-shrink: 0;
  font-size: 0.72rem;
  color: rgba(180, 245, 255, 0.82);
  white-space: nowrap;
}

.gc-bld-card-req{
  margin: 0;
  font-size: 0.64rem;
  color: rgba(255, 214, 120, 0.88);
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-bld-card-queue-zone{
  flex-shrink: 0;
  min-height: 0;
  margin-top: auto;
  padding: 2px 0 4px;
  box-sizing: border-box;
}

.gc-bld-card-queue-slot{
  min-height: 0;
  padding: 0 9px;
  box-sizing: border-box;
}

.gc-bld-card-queue-slot .gc-card-queue-block{
  margin: 0;
}

.gc-bld-hero-action-col .gc-bld-head-action-btn,
.gc-bld-hero-right-stack .gc-bld-head-action-btn{
  width: auto;
  height: auto;
  min-width: 0;
  min-height: 0;
}

.gc-bld-hero-action-col,
.gc-bld-hero-right-stack{
  width: auto;
  min-width: 0;
}
.gc-research-card .gc-bld-prod-delta-val,
.gc-building-card .gc-bld-prod-val,
.gc-building-card .gc-bld-prod-delta-val{
  font-size: 0.76rem;
}

.gc-bld-card-costs .gc-cost-val{
  font-size: 0.74rem;
}

.gc-bld-card-action{
  display: flex;
  margin-top: 0;
  padding-top: 0;
}

/* Legacy full-width footer actions (shipyard/defense qty row) */
.gc-bld-card-action .gc-btn:not(.gc-bld-head-action-btn),
.gc-bld-card-action .status-pill{
  width: 100%;
  max-width: none;
  min-height: 36px;
  padding: 9px 12px;
  font-size: 0.76rem;
  line-height: 1.2;
  justify-content: center;
  align-items: center;
}

.gc-prog-affordable .gc-bld-prod-delta-val{
  opacity: 0.92;
}

.buildings-prog-list .gc-prog-head{
  display: none;
}

/* GC-QUEUE-MINI-CARDS ? compact horizontal jobs in one row */
.gc-mini-queue-host{
  display: block;
  padding: 4px 10px 6px;
  min-width: 0;
  max-width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  box-sizing: border-box;
  border-bottom: 1px solid rgba(70, 229, 255, 0.06);
  scrollbar-width: thin;
  scrollbar-color: rgba(70, 229, 255, 0.28) transparent;
}

.gc-mini-queue-host::-webkit-scrollbar{
  height: 5px;
}

.gc-mini-queue-host::-webkit-scrollbar-thumb{
  border-radius: var(--gc-radius-xs);
  background: rgba(70, 229, 255, 0.28);
}

.gc-mini-queue-strip{
  --gc-queue-card-slot-w: 248px;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: 6px;
  width: max-content;
  min-width: 100%;
  min-height: 0;
  overflow: visible;
}

.gc-mini-queue-empty{
  display: block;
  min-height: 0;
  padding: 0;
}

.gc-mini-queue-slots{
  display: none !important;
}

.gc-mini-queue-card--active{
  border-color: rgba(127, 255, 217, 0.36);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.2) inset,
    0 0 10px rgba(70, 229, 255, 0.1);
}

.gc-mini-queue-card--waiting{
  opacity: 0.82;
}

.gc-mini-queue-card{
  position: relative;
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) auto auto;
  grid-template-rows: auto auto;
  align-items: center;
  gap: 2px 6px;
  /* Fixed slot width — never stretch when the queue is short (GC-QUEUE-SLOT-001). */
  flex: 0 0 var(--gc-queue-card-slot-w, 248px);
  width: var(--gc-queue-card-slot-w, 248px);
  min-width: var(--gc-queue-card-slot-w, 248px);
  max-width: var(--gc-queue-card-slot-w, 248px);
  padding: 4px 5px;
  border: 1px solid rgba(70, 229, 255, 0.18);
  border-radius: var(--gc-radius-xs);
  background: linear-gradient(135deg, rgba(8, 16, 36, 0.92), rgba(6, 12, 28, 0.88));
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.2) inset;
  box-sizing: border-box;
}

.gc-mini-queue-card__image{
  grid-column: 1;
  grid-row: 1;
  align-self: center;
  width: 28px;
  height: 28px;
  object-fit: contain;
  object-position: center;
  border-radius: 3px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(70, 229, 255, 0.1);
  padding: 2px;
  box-sizing: border-box;
}

.gc-mini-queue-card__body{
  grid-column: 2;
  grid-row: 1;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 2px;
  min-width: 0;
  overflow: hidden;
}

.gc-mini-queue-card__title{
  display: block;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.68rem;
  font-weight: 600;
  color: var(--gc-text);
  line-height: 1.15;
}

.gc-mini-queue-card--level-queue .gc-mini-queue-card__body{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 1px 6px;
  align-items: baseline;
}

.gc-mini-queue-card--level-queue .gc-mini-queue-card__title{
  grid-column: 1 / -1;
  grid-row: 1;
}

.gc-mini-queue-card--level-queue .gc-mini-queue-card__level{
  grid-column: 1;
  grid-row: 2;
  font-size: clamp(0.56rem, 1.45vw, 0.64rem);
  font-weight: 600;
  color: rgba(180, 245, 255, 0.82);
  white-space: nowrap;
  line-height: 1.1;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gc-mini-queue-card--level-queue .gc-mini-queue-card__timer{
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
}

.gc-mini-queue-card--production .gc-mini-queue-card__body{
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-rows: auto auto;
  gap: 1px 6px;
  align-items: baseline;
}

.gc-mini-queue-card--production .gc-mini-queue-card__title{
  grid-column: 1 / -1;
  grid-row: 1;
}

.gc-mini-queue-card--production .gc-mini-queue-card__amount{
  grid-column: 1;
  grid-row: 2;
}

.gc-mini-queue-card--production .gc-mini-queue-card__timer{
  grid-column: 2;
  grid-row: 2;
  justify-self: end;
}

.gc-mini-queue-card--production .gc-mini-queue-card__body:not(:has(.gc-mini-queue-card__amount)) .gc-mini-queue-card__timer{
  grid-column: 1 / -1;
}

.gc-mini-queue-card--level-queue{
  max-width: none;
}

.gc-mini-queue-card__amount{
  font-size: clamp(0.56rem, 1.45vw, 0.64rem);
  font-weight: 600;
  color: var(--gc-text);
  white-space: nowrap;
  line-height: 1.1;
}

.gc-mini-queue-card__timer{
  font-size: 0.66rem;
  color: var(--gc-primary-2);
  white-space: nowrap;
  line-height: 1.1;
}

.gc-mini-queue-card__cancel{
  grid-column: 4;
  grid-row: 1;
  align-self: start;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  padding: 0;
  margin: 0;
  border: 1px solid rgba(70, 229, 255, 0.22);
  border-radius: 2px;
  background: rgba(8, 20, 36, 0.55);
  color: rgba(180, 245, 255, 0.82);
  font-size: 0.78rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
}

.gc-mini-queue-card__cancel:hover,
.gc-mini-queue-card__cancel:focus-visible{
  color: #ffd0d0;
  border-color: rgba(255, 120, 120, 0.5);
  background: rgba(255, 70, 70, 0.16);
}

.gc-mini-queue-card__cancel:disabled{
  opacity: 0.45;
  cursor: not-allowed;
}

.gc-mini-queue-card__connector{
  display: none;
}

.gc-mini-queue-card__progress{
  grid-column: 1 / -1;
  grid-row: 2;
  height: 3px;
  margin-top: 1px;
  background: rgba(70, 229, 255, 0.08);
  border-radius: 1px;
  overflow: hidden;
}

.gc-mini-queue-card__progress-fill{
  height: 100%;
  background: linear-gradient(90deg, rgba(70, 229, 255, 0.5), rgba(127, 255, 217, 0.8));
}

.gc-mini-queue-card--waiting .gc-mini-queue-card__progress{
  display: none;
}

.buildings-divider.gc-prog-divider,
.research-divider.gc-prog-divider,
.shipyard-divider.gc-prog-divider,
.defense-divider.gc-prog-divider{
  margin: 6px 0 10px;
}

.gc-building-card--in-queue{
  border-color: rgba(70, 229, 255, 0.28);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.22) inset,
    0 0 18px rgba(70, 229, 255, 0.06);
}

.gc-building-card--queue-active{
  border-color: rgba(127, 255, 217, 0.32);
}

.gc-card-queue-list{
  --gc-queue-card-slot-w: 248px;
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-start;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
  margin-bottom: 0.45rem;
  overflow-x: auto;
  overflow-y: hidden;
  box-sizing: border-box;
  scrollbar-width: thin;
  scrollbar-color: rgba(70, 229, 255, 0.28) transparent;
}

.gc-card-queue-list > .gc-card-queue-block:not(.gc-bld-hero-queue){
  /* Fixed slot width — left-aligned, no grow when fewer jobs are queued. */
  flex: 0 0 var(--gc-queue-card-slot-w, 248px);
  width: var(--gc-queue-card-slot-w, 248px);
  min-width: var(--gc-queue-card-slot-w, 248px);
  max-width: var(--gc-queue-card-slot-w, 248px);
}

.gc-card-queue-list::-webkit-scrollbar{
  height: 5px;
}

.gc-card-queue-list::-webkit-scrollbar-thumb{
  border-radius: var(--gc-radius-xs);
  background: rgba(70, 229, 255, 0.28);
}

.gc-card-queue-list[hidden]{
  display: none !important;
}

.gc-card-queue-block:not(.gc-bld-hero-queue){
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  grid-template-rows: auto auto auto;
  gap: 1px 6px;
  align-items: center;
  margin: 0;
  padding: 5px 7px;
  border: 1px solid rgba(70, 229, 255, 0.16);
  border-radius: var(--gc-radius-xs);
  background: linear-gradient(135deg, rgba(8, 16, 36, 0.92), rgba(6, 12, 28, 0.88));
  clip-path: none;
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.gc-card-queue-block--queued{
  opacity: 0.92;
  border-style: dashed;
}

@keyframes gc-card-queue-advance{
  from{
    opacity: 0;
    transform: translateX(-8px);
  }
  to{
    opacity: 1;
    transform: translateX(0);
  }
}

.gc-card-queue-block--advance{
  animation: gc-card-queue-advance 0.28s ease-out;
}

.gc-card-queue-head{
  display: flex;
  align-items: center;
  gap: 4px;
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
}

.gc-card-queue-glyph{
  width: 10px;
  height: 10px;
  flex-shrink: 0;
  border: 1px solid rgba(127, 255, 217, 0.45);
  background: rgba(70, 229, 255, 0.08);
  clip-path: polygon(50% 0%, 100% 25%, 100% 75%, 50% 100%, 0% 75%, 0% 25%);
  animation: gc-card-queue-spin 6s linear infinite;
}

.gc-card-queue-block--queued .gc-card-queue-glyph{
  animation: none;
  opacity: 0.55;
}

@keyframes gc-card-queue-spin{
  from{ transform: rotate(0deg); }
  to{ transform: rotate(360deg); }
}

.gc-card-queue-status{
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-primary-2);
  white-space: nowrap;
}

.gc-card-queue-target,
.gc-card-queue-quantity{
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.72rem;
  font-weight: 600;
  color: var(--gc-text);
}

.gc-card-queue-level,
.gc-card-queue-phase{
  grid-column: 1 / 3;
  grid-row: 2;
  font-size: 0.64rem;
  color: var(--gc-text-dim);
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-card-queue-block:not(.gc-bld-hero-queue):not(:has(.gc-card-queue-target)):not(:has(.gc-card-queue-quantity)) .gc-card-queue-level,
.gc-card-queue-block:not(.gc-bld-hero-queue):not(:has(.gc-card-queue-target)):not(:has(.gc-card-queue-quantity)) .gc-card-queue-phase{
  grid-column: 2;
  grid-row: 1;
}

.gc-card-queue-timer{
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  font-size: 0.72rem;
  font-weight: 700;
  color: var(--gc-text);
  min-width: 0;
  white-space: nowrap;
}

.gc-card-queue-time-row{
  grid-column: 3;
  grid-row: 1;
  justify-self: end;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
}

.gc-card-queue-time-row .gc-card-queue-timer{
  grid-column: auto;
  grid-row: auto;
  justify-self: auto;
}

.gc-card-queue-bar{
  position: relative;
  grid-column: 1 / -1;
  grid-row: 3;
  height: 3px;
  margin-top: 1px;
  border: 1px solid rgba(120, 190, 255, 0.12);
  background: rgba(4, 10, 22, 0.85);
  overflow: hidden;
}

.gc-card-queue-bar-fill{
  height: 100%;
  background: linear-gradient(90deg, rgba(70, 229, 255, 0.55), rgba(127, 255, 217, 0.85));
  border-radius: 0;
}

.gc-card-queue-scanline{
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    90deg,
    transparent 0,
    transparent 3px,
    rgba(127, 255, 217, 0.08) 3px,
    rgba(127, 255, 217, 0.08) 4px
  );
  pointer-events: none;
  animation: gc-card-queue-scan 3.2s linear infinite;
}

@keyframes gc-card-queue-scan{
  from{ transform: translateX(-8px); }
  to{ transform: translateX(8px); }
}

.gc-card-queue-cancel{
  grid-column: 4;
  grid-row: 1;
  align-self: center;
  justify-self: end;
  max-width: 100%;
  padding: 0.12rem 0.35rem;
  font-size: 0.62rem;
  line-height: 1.1;
}

/* GC-536C ? research card queue accents */
.gc-research-card--in-queue{
  border-color: rgba(168, 120, 255, 0.28);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.22) inset,
    0 0 18px rgba(168, 120, 255, 0.07);
}

.gc-research-card--queue-active{
  border-color: rgba(190, 150, 255, 0.34);
}

.gc-card-queue-block--research{
  border-color: rgba(168, 120, 255, 0.22);
  background:
    linear-gradient(135deg, rgba(12, 10, 32, 0.94), rgba(8, 12, 28, 0.9));
}

.gc-card-queue-glyph--research{
  border-color: rgba(190, 150, 255, 0.5);
  background: rgba(168, 120, 255, 0.1);
  clip-path: none;
  border-radius: 0;
  animation: gc-card-queue-pulse 2.8s ease-in-out infinite;
}

@keyframes gc-card-queue-pulse{
  0%, 100%{ opacity: 0.55; }
  50%{ opacity: 1; }
}

.gc-card-queue-scanline--research{
  background: repeating-linear-gradient(
    0deg,
    transparent 0,
    transparent 2px,
    rgba(190, 150, 255, 0.07) 2px,
    rgba(190, 150, 255, 0.07) 3px
  );
  animation: gc-card-queue-scan-vertical 3.6s linear infinite;
}

@keyframes gc-card-queue-scan-vertical{
  from{ transform: translateY(-6px); }
  to{ transform: translateY(6px); }
}

/* GC-UNIT-QUEUE-DEDUP-001: shipyard/defense queue UI only in .gc-mini-queue-strip */

/* GC-536E ? planet-tech + ascension card queue accents */
.pe-queue-compact{
  /* extends .gc-queue-compact */
}

.pe-queue-compact-icon{
  font-size: 1rem;
  line-height: 1;
  opacity: 0.92;
}

.pe-queue-compact-label{
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}

.gc-planet-tech-card--in-queue{
  border-color: rgba(95, 214, 122, 0.28);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.22) inset,
    0 0 18px rgba(95, 214, 122, 0.07);
}

.gc-planet-tech-card--queue-active{
  border-color: rgba(127, 255, 180, 0.34);
}

.gc-ascension-card--in-queue{
  border-color: rgba(140, 120, 255, 0.28);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.22) inset,
    0 0 20px rgba(140, 120, 255, 0.08);
}

.gc-ascension-card--queue-active{
  border-color: rgba(170, 150, 255, 0.36);
}

.gc-card-queue-block--planet_research{
  border-color: rgba(95, 214, 122, 0.22);
  background:
    linear-gradient(135deg, rgba(8, 20, 16, 0.94), rgba(6, 14, 22, 0.9));
}

.gc-card-queue-block--ascension{
  border-color: rgba(140, 120, 255, 0.22);
  background:
    linear-gradient(135deg, rgba(14, 10, 32, 0.94), rgba(8, 12, 28, 0.9));
}

.gc-card-queue-glyph--planet-research{
  border-color: rgba(127, 255, 180, 0.5);
  background:
    linear-gradient(180deg, rgba(95, 214, 122, 0.14), rgba(70, 229, 255, 0.08));
  clip-path: none;
  border-radius: 0;
  animation: gc-card-queue-dna-pulse 2.4s ease-in-out infinite;
}

@keyframes gc-card-queue-dna-pulse{
  0%, 100%{ opacity: 0.6; transform: scale(1); }
  50%{ opacity: 1; transform: scale(1.06); box-shadow: 0 0 8px rgba(127, 255, 180, 0.22); }
}

.gc-card-queue-scanline--planet-research{
  background: repeating-linear-gradient(
    90deg,
    transparent 0,
    transparent 2px,
    rgba(127, 255, 180, 0.09) 2px,
    rgba(127, 255, 180, 0.09) 3px,
    transparent 3px,
    transparent 5px,
    rgba(70, 229, 255, 0.06) 5px,
    rgba(70, 229, 255, 0.06) 6px
  );
  animation: gc-card-queue-dna-scan 2.6s linear infinite;
}

@keyframes gc-card-queue-dna-scan{
  from{ transform: translateX(-10px); }
  to{ transform: translateX(10px); }
}

.gc-card-queue-glyph--ascension{
  border-color: rgba(170, 150, 255, 0.55);
  background: rgba(140, 120, 255, 0.1);
  border-radius: 50%;
  animation: gc-card-queue-orbit-pulse 3.2s ease-in-out infinite;
}

@keyframes gc-card-queue-orbit-pulse{
  0%, 100%{
    opacity: 0.55;
    box-shadow: 0 0 0 rgba(170, 150, 255, 0);
    transform: rotate(0deg);
  }
  50%{
    opacity: 1;
    box-shadow: 0 0 12px rgba(170, 150, 255, 0.28);
    transform: rotate(180deg);
  }
}

.gc-card-queue-scanline--ascension{
  background: radial-gradient(
    circle at 50% 50%,
    rgba(170, 150, 255, 0.12) 0,
    rgba(170, 150, 255, 0.04) 40%,
    transparent 70%
  );
  animation: gc-card-queue-core-ripple 2.8s ease-out infinite;
}

@keyframes gc-card-queue-core-ripple{
  0%{ transform: scale(0.85); opacity: 0.35; }
  70%{ transform: scale(1.15); opacity: 0.75; }
  100%{ transform: scale(1.2); opacity: 0; }
}

.gc-card-queue-phase{
  font-size: 0.64rem;
  color: var(--gc-text-dim);
}

@media (max-width: 720px){
  .gc-card-queue-list,
  .gc-mini-queue-strip{
    --gc-queue-card-slot-w: 220px;
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    overflow-y: hidden;
  }

  .gc-mini-queue-host{
    overflow-x: auto;
    overflow-y: hidden;
  }

  .gc-card-queue-list > .gc-card-queue-block:not(.gc-bld-hero-queue),
  .gc-mini-queue-card{
    flex: 0 0 var(--gc-queue-card-slot-w, 220px);
    width: var(--gc-queue-card-slot-w, 220px);
    min-width: var(--gc-queue-card-slot-w, 220px);
    max-width: var(--gc-queue-card-slot-w, 220px);
  }

  .gc-card-queue-block:not(.gc-bld-hero-queue){
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-rows: auto auto auto auto;
  }

  .gc-card-queue-timer{
    grid-column: 2 / -1;
    grid-row: 2;
    justify-self: start;
  }

  .gc-card-queue-level,
  .gc-card-queue-phase{
    grid-column: 1 / -1;
    grid-row: 3;
  }

  .gc-card-queue-block:not(.gc-bld-hero-queue):not(:has(.gc-card-queue-target)):not(:has(.gc-card-queue-quantity)) .gc-card-queue-level,
  .gc-card-queue-block:not(.gc-bld-hero-queue):not(:has(.gc-card-queue-target)):not(:has(.gc-card-queue-quantity)) .gc-card-queue-phase{
    grid-column: 2;
    grid-row: 1;
  }

  .gc-card-queue-cancel{
    grid-column: 3;
    grid-row: 1;
  }

  .gc-card-queue-bar{
    grid-row: 4;
  }

  .gc-mini-queue-card{
    grid-template-columns: 24px minmax(0, 1fr) auto auto;
  }

  .gc-mini-queue-card__image{
    width: 24px;
    height: 24px;
  }
}

@media (prefers-reduced-motion: reduce){
  .gc-card-queue-glyph,
  .gc-card-queue-scanline,
  .gc-card-queue-glyph--research,
  .gc-card-queue-scanline--research,
  .gc-card-queue-glyph--planet-research,
  .gc-card-queue-scanline--planet-research,
  .gc-card-queue-glyph--ascension,
  .gc-card-queue-scanline--ascension,
  .gc-card-queue-block--advance{
    animation: none !important;
  }
}

.gc-building-card,
.gc-research-card,
.gc-ship-card,
.gc-planet-tech-card,
.gc-ascension-card{
  min-width: 0;
  max-width: 100%;
}

.buildings-techtree-link,
.research-techtree-link{
  margin-left: 10px;
  color: var(--gc-primary-2);
  font-weight: 800;
}
.buildings-techtree-link:hover,
.research-techtree-link:hover{ text-decoration: underline; }

.building-tabs{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  padding: 6px 0 8px;
}

.buildings-shell .building-tabs--prominent{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0;
  padding: 0;
  margin: 0 0 12px;
  border: 1px solid rgba(70, 229, 255, 0.32);
  background:
    linear-gradient(180deg, rgba(6, 12, 28, 0.92), rgba(4, 8, 18, 0.88));
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 10px 100%, 0 calc(100% - 10px));
  overflow: hidden;
}

.buildings-shell .building-tabs--prominent .tab-btn{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  min-height: 52px;
  padding: 10px 8px;
  border: none;
  border-right: 1px solid rgba(70, 229, 255, 0.12);
  border-radius: 0;
  background: transparent;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
  box-shadow: none;
}

.buildings-shell .building-tabs--prominent .tab-btn:last-child{
  border-right: none;
}

.buildings-shell .building-tabs--prominent .building-tab-glyph{
  font-size: 1rem;
  line-height: 1;
  opacity: 0.88;
}

.buildings-shell .building-tabs--prominent .building-tab-label{
  line-height: 1.15;
}

.buildings-shell .building-tabs--prominent .tab-btn:hover{
  color: var(--gc-text-soft);
  background: rgba(70, 229, 255, 0.05);
}

.buildings-shell .building-tabs--prominent .tab-btn.active{
  color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.11);
  box-shadow: inset 0 -3px 0 var(--gc-neon-cyan);
  border-color: rgba(70, 229, 255, 0.12);
}

.tab-btn.active{
  border-color: rgba(70, 229, 255, 0.72);
  box-shadow: var(--gc-border-glow-strong);
  background: rgba(7, 14, 32, 0.74);
  color: var(--gc-primary-2);
}

.tab-content{ display: none; }
.tab-content.active{ display: block; }

.gc-prog-divider{
  margin: 8px 0;
  border: none;
  border-top: 1px solid rgba(120, 190, 255, 0.10);
}

.gc-prog-queue-head{
  padding-bottom: 4px;
}

.gc-prog-queue-panel{
  margin-top: 2px;
}

/* Shared compact list */
.gc-prog-list{
  display: flex;
  flex-direction: column;
  gap: 3px;
  width: 100%;
  max-width: 100%;
}

.gc-prog-head,
.gc-prog-main{
  display: grid;
  grid-template-columns:
    minmax(108px, 1.1fr)
    44px
    minmax(118px, 1.5fr)
    56px
    84px;
  column-gap: 10px;
  align-items: center;
  width: 100%;
  min-width: 0;
}

.gc-prog-head{
  padding: 0 8px 4px;
  color: var(--gc-text-dim);
  font-size: 0.68rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  border-bottom: 1px solid rgba(120, 190, 255, 0.10);
}

.gc-prog-head .gc-prog-action{
  text-align: right;
}

.gc-prog-card{
  position: relative;
  padding: 5px 8px;
  min-height: 38px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.12);
  background: rgba(5, 10, 22, 0.52);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.14) inset;
  transition:
    transform 0.14s ease,
    border-color 0.14s ease,
    box-shadow 0.14s ease,
    background 0.14s ease;
}

.gc-prog-card:hover{
  transform: translateY(-1px);
  border-color: rgba(70, 229, 255, 0.28);
  background: rgba(7, 14, 32, 0.62);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.14) inset,
    0 8px 22px rgba(0, 0, 0, 0.34);
}

.gc-prog-col{
  min-width: 0;
}

.gc-prog-name-wrap{
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
  max-width: 100%;
}

.gc-prog-icon{
  width: 30px;
  height: 30px;
  flex-shrink: 0;
  object-fit: contain;
  border-radius: calc(var(--gc-radius-sm) - 2px);
  border: 1px solid rgba(120, 190, 255, 0.14);
  background: radial-gradient(circle at 50% 40%, rgba(70, 229, 255, 0.08), rgba(5, 10, 22, 0.55));
  filter: drop-shadow(0 0 10px rgba(70,229,255,0.12));
}

.gc-prog-icon-fallback{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.95rem;
}

.gc-prog-title-row{
  display: flex;
  align-items: center;
  gap: 5px;
  min-width: 0;
  flex: 1;
}

.gc-prog-title{
  font-weight: 800;
  font-size: 0.82rem;
  color: var(--gc-text);
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.gc-prog-info{
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  padding: 0;
  border-radius: 50%;
  border: 1px solid rgba(120, 190, 255, 0.38);
  background: rgba(70, 229, 255, 0.10);
  color: rgba(180, 245, 255, 0.95);
  font-size: 0.62rem;
  font-weight: 900;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-family: var(--gc-mono);
}

.gc-prog-info:hover,
.gc-prog-info:focus-visible{
  border-color: rgba(127, 255, 217, 0.55);
  background: rgba(70, 229, 255, 0.18);
  box-shadow: 0 0 10px rgba(70, 229, 255, 0.18);
  outline: none;
}

.gc-popover{
  position: fixed;
  z-index: var(--gc-z-popover);
  max-width: min(320px, calc(100vw - 24px));
  padding: 0.55rem 0.7rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(127, 255, 217, 0.35);
  background: rgba(8, 18, 32, 0.97);
  color: var(--gc-text);
  font-size: 0.78rem;
  line-height: 1.45;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45), 0 0 18px rgba(70, 229, 255, 0.12);
  pointer-events: none;
}

.gc-popover-trigger[aria-expanded="true"]{
  border-color: rgba(127, 255, 217, 0.65);
  background: rgba(70, 229, 255, 0.22);
}

.gc-req-hover-tooltip{
  position: fixed;
  z-index: var(--gc-z-popover);
  max-width: min(280px, calc(100vw - 24px));
  padding: 0.55rem 0.7rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 196, 0, 0.35);
  background: rgba(24, 18, 8, 0.97);
  color: rgba(255, 230, 180, 0.95);
  font-size: 0.76rem;
  line-height: 1.4;
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
  pointer-events: none;
}

.gc-req-tooltip-title{
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(255, 214, 120, 0.95);
  margin-bottom: 4px;
}

.gc-req-tooltip-list{
  margin: 0;
  padding: 0 0 0 1rem;
  list-style: disc;
}

.gc-req-tooltip-item{
  color: rgba(255, 220, 160, 0.92);
}

.gc-max-queue-hover-tooltip{
  position: fixed;
  z-index: var(--gc-z-popover);
  max-width: min(300px, calc(100vw - 24px));
  padding: 0.6rem 0.75rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.42);
  background: rgba(6, 14, 28, 0.97);
  color: rgba(210, 240, 255, 0.95);
  font-size: 0.76rem;
  line-height: 1.45;
  box-shadow:
    0 8px 28px rgba(0, 0, 0, 0.45),
    0 0 22px rgba(70, 229, 255, 0.12);
  pointer-events: none;
}

.gc-max-queue-tooltip-title{
  font-size: 0.64rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.95);
  margin-bottom: 4px;
}

.gc-max-queue-tooltip-level{
  color: rgba(186, 230, 255, 0.95);
  margin-bottom: 8px;
}

.gc-max-queue-tooltip-section-title{
  font-size: 0.6rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(120, 190, 255, 0.88);
  margin: 6px 0 2px;
}

.gc-max-queue-tooltip-row{
  color: rgba(220, 245, 255, 0.94);
}

.gc-bld-head-action-btn--warn.gc-req-hover-trigger:hover,
.gc-bld-head-action-btn--warn.gc-req-hover-trigger:focus-visible{
  cursor: help;
}

.gc-prog-desc,
.gc-prog-effect{
  display: none !important;
}

.gc-level-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 30px;
  padding: 2px 6px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.34);
  background: rgba(70, 229, 255, 0.10);
  color: rgba(180, 245, 255, 0.98);
  font-family: var(--gc-font-level);
  font-size: 0.82rem;
  font-weight: 700;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  letter-spacing: 0.03em;
  line-height: 1.1;
  box-shadow: 0 0 12px rgba(70, 229, 255, 0.10);
}

.gc-level-badge.gc-bld-card-level--hero{
  min-width: 34px;
  padding: 3px 8px;
  border-radius: 3px;
  border: 1px solid rgba(0, 255, 220, 0.5);
  background: rgba(5, 14, 24, 0.96);
  color: rgb(244, 252, 255);
  font-size: 0.84rem;
  font-weight: 800;
  text-shadow: 0 1px 0 rgba(0, 0, 0, 0.85), 0 0 8px rgba(0, 255, 220, 0.32);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.72) inset,
    0 2px 10px rgba(0, 0, 0, 0.55),
    0 0 10px rgba(0, 255, 220, 0.1);
  opacity: 1;
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}

.gc-card-stock-badge.gc-bld-card-level--hero{
  min-width: 36px;
  padding: 3px 9px;
  font-size: 0.84rem;
  white-space: nowrap;
  max-width: calc(100% - 12px);
  overflow: hidden;
  text-overflow: ellipsis;
}

.gc-ship-card .gc-card-stock-badge.gc-bld-card-level--hero,
.gc-ship-card.gc-prog-card .gc-card-stock-badge.gc-bld-card-level--hero{
  z-index: 6;
}

.gc-costs-compact{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 6px;
  min-width: 0;
}

.gc-cost-chip{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 5px;
  border-radius: var(--gc-radius-sm);
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.06);
  font-family: var(--gc-mono);
  font-size: 0.76rem;
  font-weight: 800;
  white-space: nowrap;
}

.gc-cost-metal .gc-cost-val{ color: rgba(127,255,217,0.95); }
.gc-cost-crystal .gc-cost-val{ color: rgba(70,229,255,0.95); }
.gc-cost-fuel_cells .gc-cost-val{ color: rgba(251,191,36,0.95); }
.gc-cost-energy .gc-cost-val{ color: rgba(251, 191, 36, 0.95); }

.gc-cost-target{
  flex: 1 1 100%;
  font-size: 0.68rem;
  color: var(--gc-text-dim);
  font-family: var(--gc-mono);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-top: 1px;
}

.gc-prog-time,
.bcell-duration,
.tech-time{
  font-family: var(--gc-mono);
  font-size: 0.76rem;
  color: rgba(180, 245, 255, 0.88);
  white-space: nowrap;
}

.gc-req-inline{
  display: flex;
  flex-wrap: wrap;
  gap: 3px;
  align-items: center;
  min-width: 0;
}

.gc-req-ok{
  color: rgba(35, 242, 166, 0.92);
  font-weight: 800;
  font-size: 0.82rem;
}

.gc-req-lock{
  display: inline-flex;
  align-items: center;
  gap: 2px;
  max-width: 100%;
  padding: 1px 5px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 196, 0, 0.34);
  background: rgba(40, 28, 0, 0.42);
  color: rgba(255, 214, 120, 0.92);
  font-size: 0.66rem;
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gc-req-lock-icon{
  flex-shrink: 0;
  font-size: 0.62rem;
}

.gc-req-lock-text{
  overflow: hidden;
  text-overflow: ellipsis;
}

.gc-prog-action{
  display: flex;
  justify-content: flex-end;
  align-items: center;
  min-height: 28px;
}

.gc-prog-action .gc-btn,
.gc-prog-action .status-pill{
  width: 100%;
  max-width: 88px;
  justify-content: center;
}

.gc-building-card.gc-prog-affordable{
  border-color: rgba(70, 229, 255, 0.18);
}

.gc-building-card.gc-prog-affordable:hover{
  border-color: rgba(70, 229, 255, 0.32);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.14) inset,
    0 0 16px rgba(70, 229, 255, 0.08);
}

/* Row states */
.gc-prog-affordable{
  border-color: rgba(127, 255, 217, 0.20);
}

.gc-prog-affordable:hover{
  border-color: rgba(127, 255, 217, 0.34);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.14) inset,
    0 0 16px rgba(127, 255, 217, 0.08);
}

.gc-prog-locked,
.tech-row-locked{
  opacity: 0.52;
  filter: grayscale(0.25);
}

.gc-prog-unaffordable{
  opacity: 0.78;
}

.gc-prog-unaffordable .gc-cost-chip{
  border-color: rgba(255, 75, 106, 0.28);
}

.gc-prog-max{
  opacity: 0.62;
}

/* Legacy cost helpers (still used elsewhere) */
.cost-metal, .cost-crystal{ font-family: var(--gc-mono); font-size: 0.86rem; }
.cost-metal{ color: rgba(127,255,217,0.85); }
.cost-crystal{ color: rgba(70,229,255,0.85); }
.cost-sep{ opacity: 0.35; margin: 0 4px; }
.cost-note{ margin-top: 4px; color: var(--gc-text-dim); font-size: 0.78rem; }

.gc-costs{
  display: grid;
  grid-auto-rows: minmax(18px, auto);
  gap: 6px;
  min-width: 0;
}

.gc-cost-row{
  display: grid;
  grid-template-columns: 18px auto 1fr;
  align-items: center;
  column-gap: 8px;
  padding: 4px 8px;
  border-radius: var(--gc-radius-sm);
  background: rgba(255,255,255,0.03);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.06) inset;
}

.gc-cost-val{
  font-family: var(--gc-mono);
  font-variant-numeric: tabular-nums;
  font-weight: 900;
  white-space: nowrap;
  color: rgba(215,246,255,0.92);
}

.gc-cost-unit{
  opacity: 0.85;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: rgba(215,246,255,0.72);
}

/* Canonical resource icons ? WebP (GC-747B) */
:root{
  --gc-icon-ferronit: url("/static/img/res/Ferronit.webp");
  --gc-icon-crytite: url("/static/img/res/Crytite.webp");
  --gc-icon-fuel-cells: url("/static/img/res/Brennzellen.webp");
  --gc-icon-energy: url("/static/img/res/Energie.webp");
  --gc-icon-timekeeper: url("/static/img/res/timekeeper.webp");
}

.gc-res-icon{
  width: 16px;
  height: 16px;
  display: inline-block;
  flex-shrink: 0;
  object-fit: contain;
  vertical-align: middle;
  opacity: 0.95;
  filter: drop-shadow(0 0 10px rgba(120,255,220,0.18));
}
img.gc-res-icon.gc-res-fuel-cells,
.gc-res-icon.gc-res-fuel-cells{
  filter: drop-shadow(0 0 10px rgba(255,196,0,0.24));
}
span.gc-res-icon{
  border-radius: 0;
  box-shadow: none;
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
}
span.gc-res-icon.gc-res-metal{ background-image: var(--gc-icon-ferronit); }
span.gc-res-icon.gc-res-crystal{ background-image: var(--gc-icon-crytite); }
span.gc-res-icon.gc-res-fuel-cells{ background-image: var(--gc-icon-fuel-cells); }
span.gc-res-icon.gc-res-energy{ background-image: var(--gc-icon-energy); }
span.gc-res-icon.gc-res-timekeeper{ background-image: var(--gc-icon-timekeeper); }
.gc-res-icon--sm{ width: 14px; height: 14px; }
.gc-res-icon--lg{ width: 28px; height: 28px; }
.gc-res-icon--xl{ width: 42px; height: 42px; }
img.gc-res-icon.gc-res-energy{
  filter: drop-shadow(0 0 12px rgba(255, 196, 0, 0.28));
}
img.gc-res-icon.gc-res-timekeeper,
.gc-res-icon.gc-res-timekeeper{
  filter: drop-shadow(0 0 10px rgba(62, 200, 208, 0.28));
}

.gc-resource-summary-item,
.gc-resource-inline{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.gc-resource-summary-label,
.fleet-resource-label{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.shipyard-ship-cost,
.gc-ship-detail-cost{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 10px;
}

/* =========================
   17) Research Page
   ========================= */
.research-page-header .section-header-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}

.research-lab-chip{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.28);
  background: rgba(70, 229, 255, 0.08);
  color: var(--gc-text-soft);
  font-size: 0.78rem;
  white-space: nowrap;
}

.research-lab-chip .lab-level-highlight{
  font-family: var(--gc-font-level);
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  color: var(--gc-primary-2);
  font-weight: 700;
}

.research-shell{
  padding: 10px;
}

.research-tech-grid{
  margin-top: 4px;
}

.gc-research-card.gc-prog-card,
.gc-research-card.gc-building-card{
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 0 0 9px;
  min-height: 0;
  min-width: 0;
  overflow: hidden;
  border-radius: var(--gc-radius-sm);
}

.gc-research-card.gc-prog-card:hover,
.gc-research-card.gc-building-card:hover{
  transform: translateY(-2px);
}

.gc-research-card .gc-bld-card-level{
  font-size: 0.72rem;
  letter-spacing: 0.02em;
}

.gc-research-card .gc-bld-effect-bundle{
  display: grid;
  gap: 4px;
}

.gc-research-card .gc-research-effect{
  min-width: 0;
}

.research-card-blockers{
  margin-top: 2px;
}

.research-card-blockers .shipyard-blocker{
  font-size: 0.62rem;
}

.research-queue-subtitle-hint{
  line-height: 1.35;
}

.research-divider{ margin: 8px 0; }

.tech-row-locked{ opacity: 0.52; }

.status-pill{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 2px 6px;
  border-radius: var(--gc-radius-sm);
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid rgba(120,190,255,0.20);
  background: rgba(5,10,22,0.58);
  color: var(--gc-text-soft);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.status-pill-active{ border-color: rgba(35,242,166,0.55); background: rgba(0, 22, 16, 0.55); }
.status-pill-locked{ border-color: rgba(255,196,0,0.55); background: rgba(40, 28, 0, 0.55); }

.status-pill-icon,
.status-pill-compact{
  min-width: 32px;
  max-width: 40px;
  padding: 2px 6px;
}

.status-pill-icon{
  font-size: 0.82rem;
  line-height: 1;
}

.status-pill-icon-btn{
  min-width: 32px;
  max-width: 40px;
  padding: 4px 6px;
  line-height: 1;
}

.lab-meta-row{ color: var(--gc-text-soft); margin-bottom: 6px; font-size: 0.86rem; }
.lab-level-highlight{
  font-family: var(--gc-font-level);
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  color: var(--gc-primary-2);
  font-weight: 700;
}
.lab-hint{ color: var(--gc-text-soft); font-size: 0.84rem; line-height: 1.35; }
.lab-hint-compact{
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.gc-panel-compact .gc-panel-header{
  margin-bottom: 6px;
}

/* Mobile: stack card fields, no horizontal scroll */
@media (max-width: 820px){
  .gc-building-grid.buildings-prog-list,
  .gc-building-grid.research-prog-list,
  .gc-building-grid.shipyard-ship-grid{
    grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
    gap: 8px;
  }

  .gc-building-card.gc-prog-card,
  .gc-research-card.gc-prog-card{
    padding-bottom: 8px;
  }

  .gc-hero-stat-badge{
    min-width: 30px;
    min-height: 20px;
    padding: 2px 5px;
    font-size: 0.8125rem;
  }

  .gc-bld-hero-right-stack .gc-bld-hero-time-chip{
    min-width: 30px;
    min-height: 16px;
    font-size: 0.625rem;
  }

  .gc-bld-card-hero-action-slot .gc-bld-head-action-btn{
    width: 54px;
    height: 28px;
    min-width: 54px;
    min-height: 28px;
  }

  .gc-bld-card-hero-action-slot .gc-bld-head-action-icon{
    font-size: 0.95rem;
  }

  .buildings-wrapper,
  .buildings-shell,
  .gc-building-grid.buildings-prog-list{
    max-width: 100%;
    overflow-x: clip;
  }

  .gc-bld-card-icon{
    width: 30px;
    height: 30px;
  }

  .gc-bld-card-icon--title{
    width: 22px;
    height: 22px;
  }

  .buildings-shell .building-tabs--prominent{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .buildings-shell .building-tabs--prominent .tab-btn{
    min-height: var(--gc-touch-min);
    border-bottom: 1px solid rgba(70, 229, 255, 0.1);
  }

  .buildings-shell .building-tabs--prominent .tab-btn:nth-child(2n){
    border-right: none;
  }

  .gc-nav-sub--buildings{
    display: none;
  }

  .gc-prog-head{ display: none; }

  .gc-prog-main{
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px 8px;
  }

  .gc-prog-card{
    padding: 6px 8px 7px;
  }

  .gc-prog-name{
    flex: 1 1 calc(100% - 92px);
    order: 1;
    min-width: 0;
  }

  .gc-prog-action{
    flex: 0 0 84px;
    order: 2;
    align-self: flex-start;
  }

  .gc-prog-level{
    order: 3;
  }

  .gc-prog-costs{
    flex: 1 1 100%;
    order: 4;
  }

  .gc-prog-time{
    order: 5;
    margin-right: 8px;
  }

  .gc-prog-action .gc-btn,
  .gc-prog-action .status-pill{
    max-width: 84px;
    font-size: 0.68rem;
    padding: 4px 6px;
  }
}

/* =========================
   18) TechTree
   ========================= */
.tech-nav-links{ margin-top: 8px; color: var(--gc-text-dim); font-size: 0.86rem; }
.tech-nav-links a{ color: var(--gc-primary-2); }
.tech-nav-links a:hover{ text-decoration: underline; }

.tech-panel .tech-tag{
  margin-left: 8px;
  padding: 3px 8px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(5, 10, 22, 0.58);
  color: var(--gc-text-dim);
  font-size: 0.76rem;
}

.tech-level-pill{
  padding: 4px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.35);
  background: rgba(5, 10, 22, 0.58);
  color: var(--gc-text-soft);
  font-family: var(--gc-font-level);
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
  font-size: 0.82rem;
}

.tech-req-list{ margin: 0; padding-left: 18px; color: var(--gc-text-soft); }
.tech-req-met{ color: rgba(215,246,255,0.82); }
.tech-req-missing{ color: rgba(255, 196, 0, 0.90); }
.tech-req-current{ color: var(--gc-text-dim); margin-left: 6px; }

/* Tech-Tree board (GC-555) ? solid command-panel look */
.techtree-page{
  display: grid;
  gap: 14px;
}
.techtree-page .techtree-toolbar{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 12px 16px;
  margin-bottom: 0;
  padding: 14px 16px;
  border: 1px solid var(--gc-border-bright);
  border-radius: var(--gc-radius-sm);
  background:
    radial-gradient(ellipse at 8% 0%, rgba(70, 229, 255, 0.07), transparent 55%),
    var(--gc-panel-bg);
  box-shadow: var(--gc-border-glow), inset 0 0 0 1px rgba(0,0,0,0.45);
}
.techtree-search-wrap{ flex: 1 1 220px; min-width: 0; }
.techtree-search-input{
  width: 100%;
  padding: 9px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-panel-border-strong);
  background: var(--gc-panel-strong);
  color: var(--gc-text-soft);
  font-size: 0.9rem;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.35);
}
.techtree-search-input:focus{
  outline: none;
  border-color: var(--gc-neon-cyan);
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.35), 0 0 0 1px rgba(70, 229, 255, 0.28);
}
.techtree-filter-bar{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.techtree-filter-btn{
  padding: 6px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-panel-border);
  background: var(--gc-panel-bg-2);
  color: var(--gc-text-dim);
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  cursor: pointer;
  transition: border-color .12s ease, color .12s ease, background .12s ease;
}
.techtree-filter-btn:hover{
  border-color: var(--gc-panel-border-strong);
  color: var(--gc-text-soft);
  background: var(--gc-panel-strong);
}
.techtree-filter-btn.is-active{
  border-color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.12);
  color: var(--gc-primary-2);
  box-shadow: 0 0 14px rgba(70, 229, 255, 0.12);
}
.techtree-board{
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.techtree-section{
  position: relative;
  border: 1px solid var(--gc-border-bright);
  border-radius: var(--gc-radius-sm);
  background:
    radial-gradient(ellipse at 10% 0%, rgba(70, 229, 255, 0.06), transparent 50%),
    var(--gc-panel-bg);
  box-shadow: var(--gc-border-glow), inset 0 0 0 1px rgba(0,0,0,0.45);
  overflow: hidden;
}
.techtree-section::before{
  content: "";
  position: absolute;
  inset: 0;
  background: var(--gc-scanline);
  pointer-events: none;
  opacity: 0.28;
}
.techtree-section::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 8px;
  height: 8px;
  border-top: 1px solid var(--gc-neon-cyan);
  border-left: 1px solid var(--gc-neon-cyan);
  pointer-events: none;
}
.techtree-section-header{
  position: relative;
  z-index: 1;
  border-bottom: 1px solid var(--gc-border);
  background: linear-gradient(180deg, rgba(8, 16, 32, 0.98), rgba(5, 12, 24, 0.96));
}
.techtree-section-toggle{
  display: flex;
  align-items: center;
  gap: 10px;
  width: 100%;
  padding: 14px 16px;
  border: 0;
  background: transparent;
  color: var(--gc-text-soft);
  text-align: left;
  cursor: pointer;
}
.techtree-section-toggle:hover{
  background: rgba(70, 229, 255, 0.06);
}
.techtree-section-chevron{
  width: 10px;
  height: 10px;
  border-right: 2px solid var(--gc-neon-cyan);
  border-bottom: 2px solid var(--gc-neon-cyan);
  transform: rotate(45deg);
  transition: transform .15s ease;
  flex-shrink: 0;
  filter: drop-shadow(0 0 6px rgba(70, 229, 255, 0.35));
}
.techtree-section.is-collapsed .techtree-section-chevron{
  transform: rotate(-45deg);
}
.techtree-section-title{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-neon-cyan);
  text-shadow: 0 0 12px rgba(70, 229, 255, 0.18);
}
.techtree-section-progress{
  margin-left: auto;
  font-size: 0.78rem;
  color: var(--gc-text-dim);
  white-space: nowrap;
  font-variant-numeric: tabular-nums lining-nums;
}
.techtree-section-hint{
  margin: 0;
  padding: 0 16px 12px;
  color: var(--gc-text-dim);
  font-size: 0.84rem;
}
.techtree-section-body{
  position: relative;
  z-index: 1;
  padding: 14px 16px 16px;
  background: var(--gc-panel-bg-2);
  border-top: 1px solid rgba(0,0,0,0.28);
}
.techtree-section.is-collapsed .techtree-section-body{
  display: none;
}
.techtree-card-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: 12px;
}
.tech-card{
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 12px 12px 14px;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  background:
    linear-gradient(180deg, rgba(10, 18, 34, 0.98), rgba(6, 12, 24, 0.96)),
    var(--gc-panel-strong);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.35), 0 10px 24px rgba(0,0,0,0.28);
  min-width: 0;
}
.tech-card-head{
  display: flex;
  align-items: flex-start;
  gap: 10px;
}
.tech-card-icon-btn{
  appearance: none;
  border: none;
  padding: 0;
  margin: 0;
  background: transparent;
  cursor: zoom-in;
  flex-shrink: 0;
  line-height: 0;
  border-radius: var(--gc-radius-sm);
}
.tech-card-icon-btn:hover,
.tech-card-icon-btn:focus-visible{
  outline: none;
  box-shadow: 0 0 0 2px rgba(70, 229, 255, 0.35);
}
.tech-card-icon-btn:hover .tech-card-icon,
.tech-card-icon-btn:focus-visible .tech-card-icon{
  filter: drop-shadow(0 0 14px rgba(70, 229, 255, 0.42));
}
.tech-card-icon{
  width: 40px;
  height: 40px;
  object-fit: contain;
  flex-shrink: 0;
  filter: drop-shadow(0 0 10px rgba(70, 229, 255, 0.22));
}
.tech-card-head-text{ flex: 1; min-width: 0; }
.tech-card-title{
  margin: 0;
  font-size: 0.92rem;
  color: var(--gc-text-soft);
  overflow-wrap: break-word;
}
.tech-card-meta{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 6px;
}
.tech-card-tag{
  padding: 2px 7px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-panel-border);
  background: var(--gc-panel-bg);
  color: var(--gc-text-dim);
  font-size: 0.72rem;
}
.tech-card-tag--prepared{
  border-color: rgba(255, 196, 0, 0.45);
  color: rgba(255, 210, 80, 0.95);
  background: rgba(40, 30, 8, 0.72);
}
.tech-card-status{
  padding: 2px 7px;
  border-radius: var(--gc-radius-sm);
  font-size: 0.72rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.tech-card-status--unlocked{
  border: 1px solid rgba(80, 220, 160, 0.45);
  color: rgba(140, 255, 200, 0.95);
  background: rgba(20, 60, 45, 0.72);
}
.tech-card-status--available{
  border: 1px solid rgba(70, 229, 255, 0.45);
  color: var(--gc-primary-2);
  background: rgba(20, 50, 70, 0.72);
}
.tech-card-status--locked{
  border: 1px solid rgba(255, 120, 120, 0.35);
  color: rgba(255, 170, 170, 0.92);
  background: rgba(60, 24, 24, 0.72);
}
.tech-card-status--planned{
  border: 1px solid rgba(255, 196, 0, 0.45);
  color: rgba(255, 210, 80, 0.95);
  background: rgba(50, 38, 10, 0.72);
}
.tech-card-desc{
  margin: 0;
  font-size: 0.82rem;
  color: var(--gc-text-dim);
  line-height: 1.45;
}
.tech-card-reqs-label{
  display: block;
  margin-bottom: 4px;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}
.tech-card-cost-values{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 0.82rem;
}
.tech-card.is-filter-hidden,
.techtree-section.is-filter-empty{
  display: none;
}

.gc-techtree-media-zoom-panel{
  max-width: min(92vw, 520px);
}
.gc-techtree-media-zoom-img{
  width: min(88vw, 480px);
  height: min(88vw, 480px);
}
.gc-techtree-media-zoom-caption{
  margin: 12px 0 0;
  padding: 0 8px;
  text-align: center;
}
.gc-techtree-media-zoom-title{
  display: block;
  font-family: Orbitron, var(--gc-font-display, Orbitron, sans-serif);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-primary-2, #7fffd9);
  text-shadow: 0 0 12px rgba(127, 255, 217, 0.16);
}
body.gc-techtree-media-zoom-open{
  overflow: hidden;
}

@media (max-width: 640px){
  .techtree-section-toggle{
    flex-wrap: wrap;
    padding: 12px;
  }
  .techtree-section-progress{
    width: 100%;
    margin-left: 18px;
  }
  .techtree-filter-bar{ width: 100%; }
}

/* =========================
   19) Galaxy
   ========================= */
.galaxy-page-head{
  margin-bottom: 12px;
}
.galaxy-nav-bar{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 14px;
  padding-bottom: 14px;
  margin-bottom: 0;
  border-bottom: 1px solid rgba(120, 190, 255, 0.12);
}
.galaxy-nav-step{
  flex: 0 1 auto;
  font-size: 0.82rem;
  color: var(--gc-text-soft);
  text-decoration: none;
  white-space: nowrap;
  transition: color .12s ease;
}
.galaxy-nav-step:hover:not(.is-disabled){
  color: var(--gc-primary-2);
}
.galaxy-nav-step.is-disabled{
  opacity: 0.35;
  pointer-events: none;
}
.galaxy-nav-jump{
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px 12px;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}
.galaxy-nav-field{
  display: flex;
  align-items: center;
  gap: 8px;
}
.galaxy-nav-field-label{
  font-size: 0.74rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
  white-space: nowrap;
}
.galaxy-nav-field-controls{
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.galaxy-nav-arrow{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.22);
  background: rgba(5, 10, 22, 0.55);
  color: var(--gc-text-soft);
  text-decoration: none;
  font-size: 1rem;
  line-height: 1;
}
.galaxy-nav-arrow:hover:not(.is-disabled){
  border-color: rgba(70, 229, 255, 0.45);
  color: var(--gc-primary-2);
}
.galaxy-nav-arrow.is-disabled{
  opacity: 0.35;
  pointer-events: none;
}
.galaxy-nav-sep{
  font-size: 1.05rem;
  font-weight: 800;
  color: var(--gc-primary-2);
  line-height: 1;
}
.galaxy-nav-fixed{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  padding: 4px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.22);
  background: rgba(5, 10, 22, 0.55);
  color: var(--gc-text-soft);
  font-weight: 700;
}
.galaxy-system-range{
  margin-top: 12px;
  padding: 12px 0 14px;
  border-bottom: 1px solid rgba(120, 190, 255, 0.12);
}
.galaxy-system-range-label{
  display: block;
  margin-bottom: 8px;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}
.galaxy-system-range-track{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 6px 10px;
  font-size: 0.92rem;
}
.galaxy-range-item{
  color: var(--gc-text-dim);
  text-decoration: none;
  padding: 2px 4px;
  border-radius: 4px;
  transition: color .12s ease, background .12s ease;
}
.galaxy-range-item.has-data{
  color: var(--gc-text-soft);
}
.galaxy-range-item.has-own{
  color: rgba(180, 255, 220, 0.95);
  text-shadow: 0 0 12px rgba(35, 242, 166, 0.25);
}
.galaxy-range-item:hover{
  color: var(--gc-primary-2);
  background: rgba(70, 229, 255, 0.08);
}
.galaxy-range-current{
  color: var(--gc-primary-2);
  font-weight: 800;
  padding: 4px 8px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.55);
  background: rgba(0, 40, 56, 0.65);
  box-shadow: 0 0 18px rgba(70, 229, 255, 0.2);
}
.galaxy-search-bar{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  margin: 14px 0 16px;
  padding: 0;
}
.galaxy-search-label{
  color: var(--gc-text-dim);
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.galaxy-search-input{
  flex: 1 1 180px;
  min-width: 140px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.28);
  background: rgba(7, 14, 32, 0.88);
  color: var(--gc-text-soft);
  font-size: 0.9rem;
}
.galaxy-search-hint{
  flex: 1 1 100%;
  color: var(--gc-text-dim);
  font-size: 0.78rem;
}
.galaxy-jump-input--galaxy{
  width: 52px;
}
.galaxy-jump-form{
  display: flex;
  align-items: center;
  gap: 8px;
}
.galaxy-jump-label{
  color: var(--gc-text-dim);
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.galaxy-jump-input{
  width: 72px;
  padding: 4px 8px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.28);
  background: rgba(7, 14, 32, 0.82);
  color: var(--gc-text-soft);
  font-size: 0.88rem;
}

/* --- Galaxy world map (command map) --- */
.galaxy-view-tabs{
  display: flex;
  gap: 8px;
  margin-bottom: 12px;
}
.galaxy-view-tab{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 8px 14px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(5, 10, 22, 0.55);
  color: var(--gc-text-soft);
  text-decoration: none;
  font-size: 0.88rem;
  font-weight: 600;
}
.galaxy-view-tab.is-active,
.galaxy-view-tab--world.is-active{
  border-color: rgba(70, 229, 255, 0.45);
  color: var(--gc-primary-2);
  background: rgba(70, 229, 255, 0.08);
}
.gc-dev-preview-badge{
  flex: 0 0 auto;
  padding: 2px 7px;
  border-radius: var(--gc-radius-sm);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(160, 240, 255, 0.98);
  background: rgba(8, 28, 42, 0.85);
  border: 1px solid rgba(70, 229, 255, 0.42);
}
.gc-dev-preview-badge--banner{
  font-size: 0.68rem;
  align-self: flex-start;
}
.gc-command-map-dev-banner{
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin: 0 0 14px;
  padding: 12px 14px;
  border-radius: var(--gc-radius-md);
  border: 1px solid rgba(70, 229, 255, 0.28);
  background: linear-gradient(135deg, rgba(8, 24, 38, 0.92), rgba(12, 18, 32, 0.88));
}
.gc-command-map-dev-banner-copy strong{
  display: block;
  margin-bottom: 4px;
  color: var(--gc-primary-2);
  font-size: 0.92rem;
}
.gc-command-map-dev-banner-copy .hint{
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.45;
}
.galaxy-command-map-panel{
  margin-top: 4px;
}
.galaxy-command-map-head{
  margin-bottom: 10px;
}
.galaxy-command-map-title{
  margin: 0 0 6px;
}
.galaxy-command-map-graph{
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(720px, min(72vh, 780px));
  gap: 0;
  min-height: 720px;
  border-radius: 12px;
  border: 1px solid rgba(70, 229, 255, 0.14);
  background: rgba(2, 8, 18, 0.92);
  overflow: hidden;
  user-select: none;
  -webkit-user-select: none;
}
.galaxy-command-map-graph--fullmap .galaxy-command-map-viewport{
  grid-column: 1 / -1;
  grid-row: 1;
  min-height: 720px;
}
.galaxy-command-map-legacy-shell{
  display: none !important;
}
.galaxy-command-map-controls{
  position: absolute;
  left: 10px;
  bottom: 10px;
  z-index: 12;
  display: flex;
  gap: 6px;
  pointer-events: auto;
}
.galaxy-command-map-viewport{
  position: relative;
  grid-column: 1;
  grid-row: 1;
  overflow: hidden;
  touch-action: none;
  cursor: grab;
  outline: none;
  user-select: none;
  -webkit-user-select: none;
  min-height: 680px;
  background:
    radial-gradient(ellipse at 50% 38%, rgba(70, 229, 255, 0.16), transparent 58%),
    radial-gradient(ellipse at 14% 78%, rgba(150, 90, 255, 0.12), transparent 52%),
    radial-gradient(ellipse at 86% 22%, rgba(255, 130, 70, 0.1), transparent 48%),
    #020812;
}
.galaxy-command-map-viewport.is-dragging{
  cursor: grabbing;
}
.galaxy-command-map-viewport.is-dragging .galaxy-command-map-node{
  pointer-events: none;
}
.galaxy-command-map-canvas{
  position: relative;
  width: 4000px;
  height: 4000px;
  transform-origin: 0 0;
  will-change: transform;
  user-select: none;
  -webkit-user-select: none;
  overflow: visible;
}
.galaxy-command-map-bg{
  position: absolute;
  left: -8000px;
  top: -8000px;
  width: 20000px;
  height: 20000px;
  z-index: 0;
  pointer-events: none;
  background-color: #020812;
  background-image: url("/static/img/map.png");
  background-image: image-set(
    url("/static/img/map.webp") type("image/webp"),
    url("/static/img/map.png") type("image/png")
  );
  background-repeat: repeat;
  background-size: 1600px 900px;
  background-position: 0 0;
  opacity: 0.42;
}
.galaxy-command-map-bg::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background-image: url("/static/img/map.png");
  background-image: image-set(
    url("/static/img/map.webp") type("image/webp"),
    url("/static/img/map.png") type("image/png")
  );
  background-repeat: repeat;
  background-size: 2300px 1294px;
  background-position: 400px 220px;
  opacity: 0.18;
  mix-blend-mode: screen;
  transform: rotate(180deg);
}
.galaxy-command-map-bg::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse at 28% 34%, rgba(70, 229, 255, 0.22), transparent 46%),
    radial-gradient(ellipse at 74% 62%, rgba(160, 110, 255, 0.2), transparent 44%),
    radial-gradient(ellipse at 52% 48%, rgba(255, 150, 80, 0.1), transparent 52%),
    radial-gradient(ellipse at 50% 50%, transparent 38%, rgba(2, 8, 18, 0.28) 100%);
}
.galaxy-command-map-ambient-glow{
  position: absolute;
  left: -6000px;
  top: -6000px;
  width: 18000px;
  height: 18000px;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(circle at 42% 38%, rgba(70, 229, 255, 0.14), transparent 42%),
    radial-gradient(circle at 68% 58%, rgba(130, 80, 255, 0.12), transparent 40%),
    radial-gradient(circle at 55% 72%, rgba(255, 110, 60, 0.08), transparent 38%);
  mix-blend-mode: screen;
  opacity: 0.85;
}
.galaxy-command-map-svg-layer,
.galaxy-command-map-sector-layer,
.galaxy-command-map-nebulas,
.galaxy-command-map-influence,
.galaxy-command-map-edges{
  position: absolute;
  left: 0;
  top: 0;
  width: 4000px;
  height: 4000px;
  overflow: visible;
  pointer-events: none;
}
.galaxy-command-map-sector-layer{ z-index: 1; }
.galaxy-command-map-influence{ z-index: 2; }
.galaxy-command-map-fleet-routes{
  z-index: 3;
  pointer-events: none;
  overflow: visible;
}
.galaxy-command-map-fleet-route-group{
  pointer-events: none;
}
.galaxy-command-map-fleet-route-hit{
  fill: none;
  stroke: transparent;
  stroke-width: 14;
  pointer-events: stroke;
  cursor: pointer;
}
.galaxy-command-map-fleet-route-track{
  fill: none;
  stroke: rgba(90, 220, 255, 0.14);
  stroke-width: 2;
  stroke-linecap: round;
  pointer-events: none;
}
.galaxy-command-map-fleet-route-flow{
  fill: none;
  stroke-width: 2.6;
  stroke-linecap: round;
  pointer-events: none;
  animation: galaxy-command-map-fleet-flow var(--fleet-route-flow-dur, 3.2s) linear infinite;
}
.galaxy-command-map-fleet-route-flow--colonize{
  stroke: rgba(255, 196, 86, 0.92);
  stroke-dasharray: 7 20;
  filter: url(#galaxy-command-map-fleet-glow-colonize);
}
.galaxy-command-map-fleet-route-flow--expedition{
  stroke: rgba(176, 132, 255, 0.88);
  stroke-dasharray: 2 16;
  animation-duration: calc(var(--fleet-route-flow-dur, 3.2s) * 0.75);
}
.galaxy-command-map-fleet-route-flow--transport,
.galaxy-command-map-fleet-route-flow--deploy,
.galaxy-command-map-fleet-route-flow--collect{
  stroke: rgba(96, 168, 255, 0.86);
  stroke-dasharray: 5 14;
}
.galaxy-command-map-fleet-route-flow--attack{
  stroke: rgba(255, 96, 96, 0.9);
  stroke-dasharray: 4 8 1 8;
  filter: url(#galaxy-command-map-fleet-glow-attack);
}
.galaxy-command-map-fleet-route-group--returning .galaxy-command-map-fleet-route-flow{
  opacity: 0.78;
}
.galaxy-command-map-fleet-route-group--returning .galaxy-command-map-fleet-route-track{
  stroke: rgba(120, 190, 255, 0.12);
  stroke-dasharray: 6 8;
}
.galaxy-command-map-fleet-route-group--holding .galaxy-command-map-fleet-route-flow{
  animation-play-state: paused;
  opacity: 0.45;
}
.galaxy-command-map-fleet-route-ship{
  pointer-events: none;
}
.galaxy-command-map-fleet-route-ship--colonize{
  fill: rgba(255, 220, 120, 0.98);
  stroke: rgba(255, 196, 86, 1);
  stroke-width: 0.8;
  filter: drop-shadow(0 0 4px rgba(255, 196, 86, 0.65));
}
.galaxy-command-map-fleet-route-ship--expedition{
  fill: rgba(210, 170, 255, 0.95);
  stroke: rgba(176, 132, 255, 1);
  stroke-width: 1;
  filter: drop-shadow(0 0 5px rgba(176, 132, 255, 0.55));
}
.galaxy-command-map-fleet-route-ship--cargo{
  fill: rgba(170, 210, 255, 0.95);
  stroke: rgba(96, 168, 255, 1);
  stroke-width: 0.8;
}
.galaxy-command-map-fleet-route-ship--attack{
  fill: rgba(255, 120, 120, 0.98);
  stroke: rgba(255, 70, 70, 1);
  stroke-width: 0.8;
  filter: drop-shadow(0 0 4px rgba(255, 96, 96, 0.6));
}
.galaxy-command-map-fleet-route-dest{
  pointer-events: none;
}
.galaxy-command-map-fleet-route-dest-ring{
  fill: none;
  stroke: rgba(176, 132, 255, 0.55);
  stroke-width: 1.2;
  transform-box: fill-box;
  transform-origin: center;
  animation: galaxy-command-map-fleet-dest-pulse 2.4s ease-in-out infinite;
}
.galaxy-command-map-fleet-route-dest-glyph{
  fill: rgba(220, 190, 255, 0.95);
  font-size: 11px;
  font-family: inherit;
  pointer-events: none;
}
.galaxy-command-map-fleet-route-group.is-hovered .galaxy-command-map-fleet-route-flow,
.galaxy-command-map-fleet-route-group:focus-visible .galaxy-command-map-fleet-route-flow{
  stroke-width: 3.2;
  opacity: 1;
}
.galaxy-command-map-fleet-route-tooltip{
  position: fixed;
  z-index: 120;
  min-width: 168px;
  max-width: 240px;
  padding: 0.55rem 0.7rem;
  border-radius: 8px;
  border: 1px solid rgba(127, 255, 217, 0.22);
  background: rgba(8, 16, 28, 0.94);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
  color: rgba(230, 242, 255, 0.95);
  font-size: 0.78rem;
  line-height: 1.45;
  pointer-events: none;
}
.galaxy-command-map-fleet-route-tooltip strong{
  display: block;
  color: rgba(127, 255, 217, 0.95);
  font-size: 0.82rem;
  margin-bottom: 0.25rem;
}
.galaxy-command-map-fleet-route-tooltip dl{
  margin: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 0.12rem 0.55rem;
}
.galaxy-command-map-fleet-route-tooltip dt{
  margin: 0;
  color: rgba(160, 185, 210, 0.85);
}
.galaxy-command-map-fleet-route-tooltip dd{
  margin: 0;
  color: rgba(235, 245, 255, 0.96);
}
@keyframes galaxy-command-map-fleet-flow{
  to { stroke-dashoffset: -48; }
}
@keyframes galaxy-command-map-fleet-dest-pulse{
  0%, 100%{ transform: scale(0.75); opacity: 0.35; }
  50%{ transform: scale(1.25); opacity: 0.85; }
}
.galaxy-command-map-viewport.is-dragging .galaxy-command-map-fleet-route-tooltip{
  display: none !important;
}
.galaxy-command-map-fleet-route-group.is-expedition-route .galaxy-command-map-fleet-route-flow--expedition,
.galaxy-command-map-fleet-route-group.is-expedition-route .galaxy-command-map-fleet-route-track{
  stroke-width: 3.2;
  opacity: 1;
}
.galaxy-command-map-fleet-route-group.is-expedition-route .galaxy-command-map-fleet-route-flow--expedition{
  animation-duration: calc(var(--fleet-route-flow-dur, 3.2s) * 0.55);
  filter: drop-shadow(0 0 8px rgba(176, 132, 255, 0.75));
}
.galaxy-command-map-discovery-banner{
  display: none;
  margin: 0 0 8px;
  padding: 8px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(127, 255, 217, 0.35);
  background: rgba(127, 255, 217, 0.08);
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--gc-text-soft);
  animation: gc-discovery-banner-enter 0.5s ease-out;
}
.galaxy-command-map-discovery-banner.is-visible{
  display: block;
}
.galaxy-command-map-discovery-banner strong{
  display: block;
  color: rgba(127, 255, 217, 0.95);
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.72rem;
}
@keyframes gc-discovery-banner-enter{
  from{ opacity: 0; transform: translateY(-6px); }
  to{ opacity: 1; transform: translateY(0); }
}
.galaxy-command-map-node--world-field.is-discovery-reveal{
  animation: gc-discovery-node-reveal 1.2s ease-out;
}
.galaxy-command-map-node--world-field.is-discovery-reveal .galaxy-command-map-node-discovery-ring{
  opacity: 1;
  border: 2px solid rgba(255, 210, 120, 0.85);
  box-shadow:
    0 0 16px rgba(127, 255, 217, 0.45),
    0 0 28px rgba(255, 210, 120, 0.25);
  animation: gc-discovery-node-glow 2.4s ease-in-out infinite;
}
.galaxy-command-map-node-discovery-ring{
  position: absolute;
  inset: -10px;
  border-radius: 16px;
  pointer-events: none;
  opacity: 0;
  z-index: -1;
}
@keyframes gc-discovery-node-reveal{
  from{ opacity: 0.2; transform: translate(-50%, -50%) scale(0.82); }
  to{ opacity: 1; transform: translate(-50%, -50%) scale(1); }
}
@keyframes gc-discovery-node-glow{
  0%, 100%{ opacity: 0.55; transform: scale(1); }
  50%{ opacity: 1; transform: scale(1.05); }
}
.galaxy-command-map-edges{ z-index: 4; }
.galaxy-command-map-sector-fill{
  fill-opacity: 0.06;
  stroke-width: 1;
  vector-effect: non-scaling-stroke;
  stroke-opacity: 0.18;
}
.galaxy-command-map-sector-label{
  fill: rgba(190, 210, 235, 0.34);
  font-size: 10px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-family: inherit;
  font-weight: 600;
  pointer-events: none;
}
.galaxy-command-map-sector--core .galaxy-command-map-sector-fill{
  fill: rgba(70, 229, 255, 0.1);
  stroke: rgba(127, 255, 217, 0.16);
}
.galaxy-command-map-sector--rim .galaxy-command-map-sector-fill{
  fill: rgba(90, 190, 140, 0.08);
  stroke: rgba(120, 210, 160, 0.14);
}
.galaxy-command-map-sector--ancient .galaxy-command-map-sector-fill{
  fill: rgba(210, 180, 120, 0.07);
  stroke: rgba(210, 180, 120, 0.15);
}
.galaxy-command-map-sector--dark .galaxy-command-map-sector-fill{
  fill: rgba(120, 80, 180, 0.08);
  stroke: rgba(160, 120, 220, 0.15);
}
.galaxy-command-map-sector--nebula .galaxy-command-map-sector-fill{
  fill: rgba(100, 140, 255, 0.07);
  stroke: rgba(140, 170, 255, 0.14);
}
.galaxy-command-map-sector--void .galaxy-command-map-sector-fill{
  fill: rgba(70, 80, 100, 0.09);
  stroke: rgba(110, 120, 140, 0.13);
}
.galaxy-command-map-sector--crystal .galaxy-command-map-sector-fill{
  fill: rgba(80, 220, 240, 0.07);
  stroke: rgba(120, 240, 255, 0.15);
}
.galaxy-command-map-sector--dead .galaxy-command-map-sector-fill{
  fill: rgba(160, 60, 70, 0.07);
  stroke: rgba(200, 90, 100, 0.14);
}
.galaxy-command-map-influence-blob{
  fill: rgba(70, 229, 255, 0.14);
  stroke: rgba(127, 255, 217, 0.34);
  stroke-width: 2;
  stroke-linejoin: round;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  filter: url(#galaxy-command-map-influence-glow);
}
.galaxy-command-map-influence--foreign{
  z-index: 1;
  pointer-events: none;
}
.galaxy-command-map-influence-blob--foreign{
  filter: none;
  stroke-width: 1.6;
}
.galaxy-command-map-edge-group{
  pointer-events: none;
}
.galaxy-command-map-edge-glow{
  stroke: rgba(70, 229, 255, 0.22);
  stroke-width: 5;
  stroke-linecap: round;
  vector-effect: non-scaling-stroke;
  opacity: 0.55;
  animation: gc-map-edge-pulse-idle 4.5s ease-in-out infinite;
}
.galaxy-command-map-edge-group--trade_route .galaxy-command-map-edge-glow{
  stroke: rgba(127, 255, 217, 0.35);
  opacity: 0.72;
}
.galaxy-command-map-edge-group.is-route-active .galaxy-command-map-edge-glow{
  stroke: rgba(127, 255, 217, 0.82);
  opacity: 1;
  stroke-width: 6;
  animation: gc-map-edge-pulse-active 1.6s ease-in-out infinite;
}
@keyframes gc-map-edge-pulse-idle{
  0%, 100%{ opacity: 0.35; stroke-opacity: 0.35; }
  50%{ opacity: 0.72; stroke-opacity: 0.72; }
}
@keyframes gc-map-edge-pulse-active{
  0%, 100%{ opacity: 0.65; stroke-opacity: 0.65; filter: drop-shadow(0 0 4px rgba(127, 255, 217, 0.35)); }
  50%{ opacity: 1; stroke-opacity: 1; filter: drop-shadow(0 0 10px rgba(127, 255, 217, 0.65)); }
}
.galaxy-command-map-edge{
  stroke-width: 2;
  vector-effect: non-scaling-stroke;
}
.galaxy-command-map-edge--trade_route{
  stroke: rgba(127, 255, 217, 0.82);
  stroke-dasharray: 2.5 1.5;
  filter: drop-shadow(0 0 6px rgba(70, 229, 255, 0.35));
}
.galaxy-command-map-edge--hub_link{
  stroke: rgba(70, 229, 255, 0.28);
}
.galaxy-command-map-edge--expansion_locked{
  stroke: rgba(140, 150, 170, 0.38);
  stroke-dasharray: 1.8 2.2;
}
.galaxy-command-map-edge--expansion_unlocked{
  stroke: rgba(180, 140, 255, 0.55);
}
.galaxy-command-map-edge--chokepoint_link{
  stroke: rgba(100, 210, 255, 0.62);
  stroke-width: 0.45;
}
.galaxy-command-map-edge--foreign_hub_link{
  stroke: rgba(255, 120, 90, 0.42);
  stroke-dasharray: 1.5 2;
}
.galaxy-command-map-nodes{
  position: absolute;
  left: 0;
  top: 0;
  width: 4000px;
  height: 4000px;
  z-index: 5;
  pointer-events: none;
}
.galaxy-command-map-colony-actions-source{
  display: none !important;
}
.galaxy-command-map-node{
  position: absolute;
  left: calc(var(--world-x, 2000) * 1px);
  top: calc(var(--world-y, 2000) * 1px);
  transform: translate(-50%, -50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  min-width: 5.5rem;
  max-width: 9rem;
  padding: 0.45rem 0.55rem;
  border-radius: 10px;
  border: 1px solid rgba(70, 229, 255, 0.35);
  background: rgba(6, 14, 28, 0.88);
  color: var(--gc-text-soft);
  text-align: center;
  cursor: pointer;
  pointer-events: auto;
  z-index: 40;
  box-shadow: 0 0 12px rgba(0, 0, 0, 0.35);
  margin: 0;
  overflow: visible;
}
.galaxy-command-map-node-activity-ring{
  position: absolute;
  inset: -7px;
  border-radius: 14px;
  pointer-events: none;
  opacity: 0;
  z-index: -1;
}
.galaxy-command-map-node.has-activity-build .galaxy-command-map-node-activity-ring{
  opacity: 1;
  border: 2px solid rgba(255, 168, 72, 0.75);
  animation: gc-map-node-pulse-build 2.2s ease-in-out infinite;
}
.galaxy-command-map-node.has-activity-research .galaxy-command-map-node-activity-ring{
  opacity: 1;
  border: 2px solid rgba(96, 168, 255, 0.82);
  box-shadow: 0 0 12px rgba(96, 168, 255, 0.35);
  animation: gc-map-node-pulse-research 1.8s ease-in-out infinite;
}
.galaxy-command-map-node.has-activity-shipyard .galaxy-command-map-node-activity-ring{
  opacity: 1;
  border: 2px solid rgba(255, 140, 60, 0.85);
  animation: gc-map-node-pulse-shipyard 1.1s ease-in-out infinite;
  box-shadow:
    0 0 6px rgba(255, 140, 60, 0.45),
    2px -2px 0 rgba(255, 200, 80, 0.55),
    -2px 2px 0 rgba(255, 120, 40, 0.45);
}
.galaxy-command-map-node.has-activity-fleet .galaxy-command-map-node-activity-ring{
  opacity: 1;
  border: 2px solid rgba(210, 230, 255, 0.55);
  animation: gc-map-node-pulse-fleet 2.8s linear infinite;
}
.galaxy-command-map-node.is-hover-summary{
  border-color: rgba(127, 255, 217, 0.72);
  box-shadow: 0 0 18px rgba(127, 255, 217, 0.28);
}
@keyframes gc-map-node-pulse-build{
  0%, 100%{ transform: scale(1); opacity: 0.55; }
  50%{ transform: scale(1.06); opacity: 1; }
}
@keyframes gc-map-node-pulse-research{
  0%, 100%{ opacity: 0.45; box-shadow: 0 0 6px rgba(96, 168, 255, 0.25); }
  50%{ opacity: 1; box-shadow: 0 0 16px rgba(96, 168, 255, 0.55); }
}
@keyframes gc-map-node-pulse-shipyard{
  0%, 100%{ opacity: 0.6; filter: brightness(1); }
  40%{ opacity: 1; filter: brightness(1.25); }
  55%{ opacity: 0.75; filter: brightness(1.05); }
}
@keyframes gc-map-node-pulse-fleet{
  0%{ transform: scale(1); opacity: 0.35; }
  25%{ opacity: 0.85; }
  50%{ transform: scale(1.08); opacity: 0.45; }
  100%{ transform: scale(1); opacity: 0.35; }
}
.galaxy-command-map-colony-hover-tooltip{
  position: fixed;
  z-index: 120;
  min-width: 11rem;
  max-width: 16rem;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.35);
  background: rgba(6, 14, 28, 0.94);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
  pointer-events: none;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--gc-text-soft);
}
.galaxy-command-map-colony-hover-tooltip--foreign{
  border-color: rgba(255, 120, 90, 0.45);
  box-shadow: 0 8px 28px rgba(255, 90, 60, 0.18);
}
.gc-world-inspector-shell--foreign-presence .gc-world-inspector-empire-kicker{
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(255, 170, 130, 0.95);
}
.gc-world-inspector-foreign-presence-lead{
  margin: 0.35rem 0 0.75rem;
}
.galaxy-command-map-colony-hover-name{
  display: block;
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.95);
}
.galaxy-command-map-colony-hover-role{
  display: block;
  margin-top: 2px;
  color: var(--gc-text-dim);
  font-size: 0.72rem;
}
.galaxy-command-map-colony-hover-level,
.galaxy-command-map-colony-hover-prod,
.galaxy-command-map-colony-hover-fleets{
  margin: 6px 0 0;
  font-size: 0.74rem;
}
.galaxy-command-map-colony-hover-queues{
  margin: 8px 0 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 2px 10px;
  font-size: 0.72rem;
}
.galaxy-command-map-colony-hover-queues dt{
  color: var(--gc-text-dim);
}
.galaxy-command-map-colony-hover-queues dd{
  margin: 0;
  text-align: right;
}
.galaxy-command-map-colony-hover-queues dd.is-active{
  color: rgba(127, 255, 217, 0.92);
}
.galaxy-command-map-colony-hover-queues dd.is-idle{
  color: var(--gc-text-dim);
}
.galaxy-command-map-node-icon{
  font-size: 1.15rem;
  line-height: 1;
}
.galaxy-command-map-node-name{
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.15;
  word-break: break-word;
}
.galaxy-command-map-node-role,
.galaxy-command-map-node-type,
.galaxy-command-map-node-coord{
  font-size: 0.62rem;
  color: var(--gc-text-dim);
  line-height: 1.1;
}
.galaxy-command-map-node--hub{
  min-width: 6.5rem;
  border-color: rgba(70, 229, 255, 0.65);
  box-shadow: 0 0 16px rgba(70, 229, 255, 0.18);
}
.galaxy-command-map-node--hub .galaxy-command-map-node-icon{
  font-size: 1.35rem;
}
.galaxy-command-map-node--own.galaxy-command-map-node--hub{
  border-color: rgba(70, 229, 255, 0.65);
}
.galaxy-command-map-node--colony.is-active{
  border-color: rgba(127, 255, 217, 0.85);
  box-shadow: 0 0 14px rgba(127, 255, 217, 0.22);
}
.galaxy-command-map-node--chokepoint{
  pointer-events: none;
  opacity: 0.85;
  border-style: dashed;
}
.galaxy-command-map-node--foreign-empire{
  border-color: rgba(255, 120, 90, 0.55);
  box-shadow: 0 0 12px rgba(255, 90, 60, 0.25);
}
.galaxy-command-map-node--foreign-empire .galaxy-command-map-node-role{
  color: rgba(255, 180, 140, 0.92);
}
.galaxy-command-map-node-empire-label{
  display: none;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 170, 130, 0.95);
  line-height: 1.1;
  max-width: 9rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.galaxy-command-map-node--foreign-colony{
  pointer-events: auto;
  opacity: 0.82;
  transform: translate(-50%, -50%) scale(0.86);
  min-width: 0;
  padding: 0.35rem;
  border-color: rgba(255, 120, 90, 0.35);
  box-shadow: none;
  cursor: default;
}
.galaxy-command-map-node--foreign-colony .galaxy-command-map-node-name,
.galaxy-command-map-node--foreign-colony .galaxy-command-map-node-role,
.galaxy-command-map-node--foreign-colony .galaxy-command-map-node-coord{
  display: none;
}
.galaxy-command-map-node--world-field{
  min-width: 4.5rem;
  border-color: rgba(160, 180, 220, 0.42);
}
.galaxy-command-map-node--world-field-settlement{
  border-color: rgba(127, 255, 217, 0.45);
}
.galaxy-command-map-node--locked{
  opacity: 0.72;
}
.galaxy-command-map-node--expansion{
  max-width: 10rem;
}
/* GC-571E ? compact map markers; labels live in the right panel only */
.galaxy-command-map-nodes--markers .galaxy-command-map-node{
  min-width: 0;
  max-width: none;
  width: 2.65rem;
  height: 2.65rem;
  padding: 0;
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  gap: 0;
  z-index: 42;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node--hub{
  width: 3.15rem;
  height: 3.15rem;
  z-index: 50;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node--colony{
  z-index: 46;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node--expansion{
  z-index: 44;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node--landmark,
.galaxy-command-map-nodes--markers .galaxy-command-map-node--world-field{
  z-index: 41;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node--foreign-empire{
  width: 3rem;
  height: 3rem;
  z-index: 43;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node--foreign-empire .galaxy-command-map-node-empire-label{
  display: block;
  position: absolute;
  top: calc(100% + 0.35rem);
  left: 50%;
  transform: translateX(-50%);
  max-width: 7.5rem;
  padding: 0.1rem 0.35rem;
  border-radius: 4px;
  background: rgba(8, 12, 22, 0.88);
  border: 1px solid rgba(255, 120, 90, 0.28);
  pointer-events: none;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node--foreign-colony{
  width: 2rem;
  height: 2rem;
  padding: 0;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node--chokepoint{
  width: 2rem;
  height: 2rem;
  padding: 0;
  opacity: 0.55;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node-name,
.galaxy-command-map-nodes--markers .galaxy-command-map-node-role,
.galaxy-command-map-nodes--markers .galaxy-command-map-node-type,
.galaxy-command-map-nodes--markers .galaxy-command-map-node-coord,
.galaxy-command-map-nodes--markers .galaxy-command-map-node-level,
.galaxy-command-map-nodes--markers .galaxy-command-map-node-badge,
.galaxy-command-map-nodes--markers .galaxy-command-map-node-lock-ring{
  display: none !important;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node-badge--new-colony,
.galaxy-command-map-nodes--markers .galaxy-command-map-node-badge--expedition,
.galaxy-command-map-nodes--markers .galaxy-command-map-node-badge--report{
  display: block !important;
  position: absolute;
  top: -0.35rem;
  right: -0.15rem;
  font-size: 0.58rem;
  line-height: 1.1;
  padding: 0.12rem 0.35rem;
  border-radius: var(--gc-radius-pill);
  white-space: nowrap;
  pointer-events: none;
  z-index: 2;
}
.galaxy-command-map-node-badge--expedition{
  background: rgba(70, 229, 255, 0.22);
  border: 1px solid rgba(70, 229, 255, 0.55);
  color: #b8f4ff;
}
.galaxy-command-map-node-badge--report{
  background: rgba(180, 140, 255, 0.22);
  border: 1px solid rgba(180, 140, 255, 0.5);
  color: #e6dcff;
}
.galaxy-command-map-node-badge--new-colony{
  background: rgba(127, 255, 217, 0.18);
  border: 1px solid rgba(127, 255, 217, 0.55);
  color: #cffff0;
}
.galaxy-command-map-node--newly-colonized{
  box-shadow: 0 0 0 2px rgba(127, 255, 217, 0.35), 0 0 18px rgba(127, 255, 217, 0.25);
}
.galaxy-command-map-open-colony-btn{
  width: 100%;
  margin: 0.65rem 0 0.75rem;
}
.galaxy-command-map-colony-panel-origin{
  margin: 0.35rem 0 0;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node-icon{
  font-size: 1.2rem;
  line-height: 1;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node--hub .galaxy-command-map-node-icon{
  font-size: 1.45rem;
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node--expansion .galaxy-command-map-node-icon,
.galaxy-command-map-nodes--markers .galaxy-command-map-node--landmark .galaxy-command-map-node-icon,
.galaxy-command-map-nodes--markers .galaxy-command-map-node--world-field .galaxy-command-map-node-icon{
  font-size: 1.05rem;
}
.galaxy-command-map-node.is-selected,
.galaxy-command-map-node.is-active.is-selected{
  z-index: 120 !important;
  transform: translate(-50%, -50%) scale(1.14);
  box-shadow:
    0 0 0 3px rgba(127, 255, 217, 0.65),
    0 0 28px rgba(70, 229, 255, 0.55),
    0 0 48px rgba(130, 90, 255, 0.28);
  border-color: rgba(127, 255, 217, 0.9);
}
.galaxy-command-map-nodes--markers .galaxy-command-map-node--colony.is-active:not(.is-selected){
  box-shadow: 0 0 0 2px rgba(127, 255, 217, 0.35);
  border-color: rgba(127, 255, 217, 0.65);
}
.galaxy-command-map-viewport.is-dragging .galaxy-command-map-node.is-selected{
  transform: translate(-50%, -50%) scale(1.08);
}
.galaxy-command-map-colony-panel,
.galaxy-command-map-site-inspector{
  grid-column: 2;
  border-radius: 10px;
  border: 1px solid rgba(70, 229, 255, 0.14);
  background: rgba(4, 10, 22, 0.92);
  padding: 12px;
  overflow: hidden;
  max-height: min(62vh, 580px);
  display: flex;
  flex-direction: column;
  min-height: 0;
}
.gc-command-center-hud .gc-command-center-hud-body{
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-height: 0;
  overflow: hidden;
}
.gc-command-center-hud-status{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}
.gc-command-center-hud-status li{
  line-height: 1.3;
}
.gc-command-center-hud .gc-command-center-section--activity{
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
}
.gc-command-center-hud .gc-command-center-activity-feed{
  max-height: 7.5rem;
  overflow-y: auto;
}
.gc-command-center-hud .gc-command-center-activity-item:nth-child(n+4){
  display: none;
}
.gc-world-inspector-modal.is-open{
  display: flex;
}
.gc-world-inspector-modal .gc-player-card-dialog{
  max-width: min(92vw, 420px);
}
.gc-world-inspector-modal--discovery .gc-player-card-dialog{
  border-color: rgba(255, 210, 120, 0.45);
  box-shadow: 0 0 32px rgba(255, 210, 120, 0.12);
}
.gc-world-inspector-shell{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.gc-world-inspector-shell--discovery .gc-world-inspector-discovery-sub{
  margin: 0;
  font-size: 0.78rem;
  color: rgba(255, 210, 120, 0.88);
}
.gc-world-inspector-place-name{
  margin: 0;
  font-size: 1.05rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.95);
}
.gc-world-inspector-kicker{
  margin: 0;
  font-size: 0.78rem;
  color: var(--gc-text-dim);
}
.gc-world-inspector-stats{
  margin: 0;
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 4px 12px;
  font-size: 0.78rem;
}
.gc-world-inspector-stat{
  display: contents;
}
.gc-world-inspector-stat dt{
  color: var(--gc-text-dim);
}
.gc-world-inspector-stat dd{
  margin: 0;
  text-align: right;
  color: var(--gc-text-soft);
}
.gc-world-inspector-stat dd.is-active{
  color: rgba(127, 255, 217, 0.92);
}
.gc-world-inspector-flavor{
  margin: 4px 0 0;
  padding: 10px 12px;
  border-left: 2px solid rgba(127, 255, 217, 0.35);
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--gc-text-soft);
  font-style: normal;
}
.gc-world-inspector-actions{
  margin-top: 12px;
  display: flex;
  justify-content: stretch;
}
.gc-world-inspector-actions--stacked{
  flex-direction: column;
  gap: 8px;
}
.gc-world-inspector-actions--missions{
  flex-direction: column;
  gap: 8px;
}
.gc-world-inspector-mission-btn--blocked{
  opacity: 0.68;
  cursor: not-allowed;
}
.gc-world-inspector-shell--foreign-mission .gc-world-inspector-empire-kicker{
  margin: 0 0 4px;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 170, 110, 0.92);
}
.gc-world-inspector-shell--foreign-dev .gc-dev-preview-badge--banner{
  align-self: flex-start;
}
.gc-world-inspector-foreign-dev-lead{
  margin: 0;
  font-size: 0.85rem;
  line-height: 1.45;
  color: var(--gc-text-soft);
}
.gc-world-inspector-cta{
  width: 100%;
}
@media (prefers-reduced-motion: reduce){
  .gc-world-inspector-modal .gc-player-card-dialog{
    animation: none !important;
  }
}
[data-command-map-empty-panel][hidden],
[data-command-map-detail-panel][hidden]{
  display: none !important;
}
.galaxy-command-map-colony-panel[hidden],
.galaxy-command-map-site-inspector[hidden]{
  display: none !important;
}
[data-command-map-detail-panel]{
  overflow: auto;
  min-height: 0;
  flex: 1 1 auto;
}
.galaxy-command-map-colony-panel{ grid-row: 1; }
.galaxy-command-map-site-inspector{ grid-row: 1; }
.galaxy-command-map-colony-panel.is-active,
.galaxy-command-map-site-inspector.is-active{
  z-index: 2;
}
.galaxy-command-map-site-inspector-title,
.galaxy-command-map-colony-panel-name{
  margin: 0;
  font-size: 0.95rem;
}
.galaxy-command-map-site-inspector-status--foreign{
  color: rgba(255, 140, 110, 0.95);
}
.galaxy-command-map-site-inspector-status--field{
  color: rgba(160, 200, 240, 0.92);
}
.galaxy-command-map-inspector-colonize{
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-top: 0.35rem;
}
.galaxy-command-map-colonize-btn{
  align-self: flex-start;
}
.galaxy-command-map-node--world-colony{
  border-color: rgba(127, 255, 217, 0.55);
  box-shadow: 0 0 16px rgba(70, 229, 255, 0.22);
}
.galaxy-command-map-node--foreign-world-colony{
  border-color: rgba(255, 170, 110, 0.45);
  box-shadow: 0 0 14px rgba(255, 120, 70, 0.18);
}
.galaxy-command-map-world-hint{
  color: rgba(127, 255, 217, 0.85);
}
.fleet-coords-strip.is-world-target{
  opacity: 0.55;
}
.fleet-coords-strip.is-world-target .fleet-coord-input{
  pointer-events: none;
}
.fleet-target-block.is-world-target .fleet-coords-row{
  display: none;
}
.fleet-target-block.is-world-target .fleet-coords-hint{
  display: none;
}
.fleet-world-target-panel{
  margin-top: 0.65rem;
  padding: 0.75rem 0.85rem;
  border: 1px solid rgba(120, 170, 220, 0.22);
  background: rgba(8, 16, 28, 0.55);
}
.fleet-world-target-head{
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  margin-bottom: 0.55rem;
}
.fleet-world-target-icon{
  font-size: 1.35rem;
  line-height: 1;
}
.fleet-world-target-kicker{
  margin: 0;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.72;
}
.fleet-world-target-name{
  margin: 0.15rem 0 0;
  font-size: 1rem;
}
.fleet-world-target-type{
  margin: 0.15rem 0 0;
  font-size: 0.85rem;
  opacity: 0.88;
}
.fleet-world-target-meta{
  display: grid;
  gap: 0.45rem;
  margin: 0;
}
.fleet-world-target-meta dt{
  font-size: 0.72rem;
  opacity: 0.7;
}
.fleet-world-target-meta dd{
  margin: 0.1rem 0 0;
  font-size: 0.85rem;
}
.fleet-world-target-risk--medium{
  color: rgba(255, 196, 86, 0.95);
}
.fleet-world-target-risk--high{
  color: rgba(255, 120, 90, 0.95);
}
.fleet-mission-speed-row.is-mission-locked [data-fleet-mission]{
  pointer-events: none;
  opacity: 0.72;
}
@media (max-width: 960px){
  .galaxy-command-map-graph{
    grid-template-columns: 1fr;
    grid-template-rows: minmax(360px, 52vh);
  }
  .galaxy-command-map-viewport{
    grid-column: 1;
    grid-row: 1;
    min-height: 360px;
  }
}

.gc-command-center{
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.gc-command-center-head{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.12);
}

.gc-command-center-icon{
  font-size: 1.35rem;
  line-height: 1;
}

.gc-command-center-name{
  margin: 0;
  font-size: 1rem;
  color: #00eaff;
}

.gc-command-center-role{
  margin: 4px 0 0;
  font-size: 0.82rem;
  font-weight: 500;
  color: rgba(127, 255, 217, 0.88);
  opacity: 1;
}

.gc-command-center-coord{
  margin: 2px 0 0;
  font-size: 0.68rem;
  color: rgba(127, 255, 217, 0.42);
}

.gc-command-center-status{
  margin: 4px 0 0;
  font-size: 0.75rem;
  color: rgba(127, 255, 217, 0.9);
}

.gc-command-center-risk{
  margin: 4px 0 0;
  font-size: 0.78rem;
  opacity: 0.88;
}

.gc-command-center-section{
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.gc-command-center-section:last-of-type{
  border-bottom: none;
  padding-bottom: 0;
}

.gc-command-center-section-title{
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.72);
}

.gc-command-center-resource-list,
.gc-command-center-fleet-list,
.gc-command-center-news-list,
.gc-command-center-activity-feed{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.gc-command-center-resource-row{
  display: grid;
  grid-template-columns: 2.5rem 1fr auto;
  gap: 8px;
  align-items: baseline;
  font-size: 0.82rem;
}

.gc-command-center-resource-short{
  opacity: 0.75;
}

.gc-command-center-resource-rate{
  color: rgba(127, 255, 217, 0.88);
  font-size: 0.78rem;
}

.gc-command-center-fleet-link,
.gc-command-center-news-link{
  display: block;
  font-size: 0.82rem;
  color: var(--gc-text-soft);
  text-decoration: none;
}

.gc-command-center-fleet-link:hover,
.gc-command-center-news-link:hover{
  color: #00eaff;
}

.gc-command-center-activity-item{
  margin: 0;
}
.gc-command-center-activity-item.is-new{
  animation: gc-activity-feed-enter 0.45s ease-out, gc-activity-feed-glow 2s ease-out;
}
@keyframes gc-activity-feed-enter{
  from{ opacity: 0; transform: translateX(-8px); }
  to{ opacity: 1; transform: translateX(0); }
}
@keyframes gc-activity-feed-glow{
  0%, 15%{ box-shadow: 0 0 0 rgba(127, 255, 217, 0); background: rgba(127, 255, 217, 0.12); }
  40%{ box-shadow: 0 0 14px rgba(127, 255, 217, 0.35); background: rgba(127, 255, 217, 0.08); }
  100%{ box-shadow: none; background: transparent; }
}
.gc-command-center-activity-item.is-new .gc-command-center-activity-link{
  border-color: rgba(127, 255, 217, 0.35);
}
.gc-command-center-activity-item.is-expedition .gc-command-center-activity-link{
  border-color: rgba(176, 132, 255, 0.28);
}
.gc-command-center-activity-item.is-discovery .gc-command-center-activity-link{
  border-color: rgba(255, 210, 120, 0.35);
  background: rgba(255, 210, 120, 0.06);
}
.gc-command-center-activity-item.is-discovery.is-new{
  animation: gc-activity-feed-enter 0.45s ease-out, gc-discovery-feed-glow 2.4s ease-out;
}
@keyframes gc-discovery-feed-glow{
  0%, 20%{ box-shadow: 0 0 18px rgba(255, 210, 120, 0.35); }
  100%{ box-shadow: none; }
}
.gc-command-center-activity-subtitle{
  display: block;
  margin-top: 2px;
  font-size: 0.68rem;
  color: var(--gc-text-dim);
  line-height: 1.25;
}
.gc-command-center-panel.is-discovery-inspect .gc-command-center-coord{
  display: none !important;
}
.gc-command-center-discovery-flavor{
  display: flex;
  flex-direction: column;
  gap: 8px;
  font-size: 0.82rem;
  line-height: 1.4;
}
.gc-command-center-discovery-flavor-text{
  margin: 0;
  color: var(--gc-text-soft);
}
.gc-command-center-discovery-scan-list{
  margin: 0;
  padding-left: 1rem;
  color: var(--gc-text-dim);
  font-size: 0.76rem;
}
@media (prefers-reduced-motion: reduce){
  .galaxy-command-map-node--world-field.is-discovery-reveal,
  .galaxy-command-map-node--world-field.is-discovery-reveal .galaxy-command-map-node-discovery-ring,
  .galaxy-command-map-discovery-banner,
  .gc-command-center-activity-item.is-discovery.is-new{
    animation: none !important;
  }
}

.gc-command-center-activity-link{
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 6px 8px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid transparent;
  color: var(--gc-text-soft);
  text-decoration: none;
  font-size: 0.78rem;
  line-height: 1.25;
}

.gc-command-center-activity-link:hover{
  border-color: rgba(70, 229, 255, 0.18);
  background: rgba(70, 229, 255, 0.05);
  color: #00eaff;
}

.gc-command-center-activity-icon{
  flex: 0 0 auto;
  font-size: 0.9rem;
  line-height: 1.2;
}

.gc-command-center-activity-body{
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}

.gc-command-center-activity-title{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-command-center-activity-timer{
  font-size: 0.68rem;
  color: rgba(127, 255, 217, 0.82);
}

.gc-command-center-activity-empty{
  padding: 4px 2px;
}

@media (max-width: 768px){
  .gc-command-center-activity-feed{
    max-height: 9.5rem;
    overflow-y: auto;
  }
  .gc-command-center-activity-item:nth-child(n+6){
    display: none;
  }
}

.gc-command-center-action-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.gc-command-center-action-card{
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-height: 52px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.18);
  background: rgba(0, 255, 255, 0.04);
  color: var(--gc-text);
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
  text-align: left;
}

.gc-command-center-action-card--recommended{
  border-color: rgba(127, 255, 217, 0.38);
  background: rgba(127, 255, 217, 0.06);
}

.gc-command-center-action-card--queue_active{
  border-color: rgba(70, 229, 255, 0.42);
  background: rgba(70, 229, 255, 0.08);
}

.gc-command-center-action-card--blocked{
  border-color: rgba(255, 120, 100, 0.28);
  background: rgba(255, 80, 60, 0.05);
  opacity: 0.82;
}

.gc-command-center-action-icon{
  flex: 0 0 auto;
  font-size: 1rem;
  line-height: 1;
  margin-top: 1px;
}

.gc-command-center-action-body{
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}

.gc-command-center-action-label{
  font-size: 0.8rem;
  font-weight: 600;
  color: rgba(215, 246, 255, 0.94);
  line-height: 1.2;
}

.gc-command-center-action-status{
  font-size: 0.68rem;
  font-weight: 500;
  color: rgba(127, 255, 217, 0.72);
  line-height: 1.25;
}

.gc-command-center-action-card--blocked .gc-command-center-action-status{
  color: rgba(255, 160, 140, 0.88);
}

.gc-command-center-action-card--recommended .gc-command-center-action-status{
  color: rgba(127, 255, 217, 0.92);
}

.gc-command-center-action-timer{
  font-size: 0.68rem;
  color: rgba(127, 255, 217, 0.88);
}

.gc-command-center-action-card:hover{
  border-color: rgba(70, 229, 255, 0.42);
  background: rgba(0, 255, 255, 0.08);
  color: #00eaff;
}

.gc-command-center-action-btn{
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 34px;
  padding: 6px 8px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.18);
  background: rgba(0, 255, 255, 0.04);
  color: var(--gc-text);
  font-size: 0.78rem;
  font-weight: 600;
  text-decoration: none;
  text-align: center;
}

.gc-command-center-action-btn:hover{
  border-color: rgba(70, 229, 255, 0.42);
  background: rgba(0, 255, 255, 0.08);
  color: #00eaff;
}

.gc-command-center-action-btn:disabled{
  opacity: 0.45;
  cursor: not-allowed;
}

@media (max-width: 768px){
  .gc-command-center-action-grid{
    grid-template-columns: 1fr;
  }
  .gc-command-center-action-card{
    min-height: 48px;
  }
}

.gc-command-center-open-btn{
  width: 100%;
  margin-top: 4px;
}

.gc-command-center-primary-btn{
  width: 100%;
  margin-top: 4px;
}

.gc-command-center-detail-list{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0;
}

.gc-command-center-detail-row{
  display: grid;
  grid-template-columns: minmax(5rem, 38%) 1fr;
  gap: 8px;
  align-items: baseline;
  font-size: 0.82rem;
}

.gc-command-center-detail-row dt{
  margin: 0;
  opacity: 0.72;
}

.gc-command-center-detail-row dd{
  margin: 0;
}

.gc-command-center-detail-tone--high,
.gc-command-center-detail-tone--medium{
  color: rgba(255, 180, 80, 0.95);
}

.gc-command-center-progress-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.gc-command-center-progress-row{
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.82rem;
}

.gc-command-center-progress-label{
  opacity: 0.75;
}

.gc-command-center-hint-row{
  font-size: 0.82rem;
}

/* GC-594D ? Galaxy HUD ring module */
.galaxy-ring-view{
  width: 100%;
  min-width: 0;
}
.galaxy-hud-module{
  display: flex;
  flex-direction: column;
  width: 100%;
  min-width: 0;
  border: 1px solid rgba(70, 229, 255, 0.28);
  border-radius: 0;
  background: rgba(2, 8, 18, 0.88);
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.55),
    0 0 24px rgba(70, 229, 255, 0.06);
  overflow: visible;
}
.galaxy-hud-body{
  position: relative;
  display: block;
  min-width: 0;
  overflow: visible;
}
.galaxy-ring-stage-col{
  min-width: 0;
  overflow: visible;
}
.galaxy-hud-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding: 10px 14px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.18);
  background: rgba(4, 12, 22, 0.92);
}
.galaxy-hud-title{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-primary-2);
  flex-shrink: 0;
}
.galaxy-heat-badge{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 3px 8px;
  border: 1px solid rgba(70, 229, 255, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(8, 18, 32, 0.95);
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  color: var(--gc-text-muted, #9db0c4);
  flex-shrink: 0;
}
.galaxy-heat-badge .galaxy-heat-value{
  color: var(--gc-primary-2, #46e5ff);
  font-weight: 700;
}
.galaxy-heat-badge.band-patrol{ border-color: rgba(120, 200, 80, 0.45); }
.galaxy-heat-badge.band-raids{ border-color: rgba(230, 180, 60, 0.55); }
.galaxy-heat-badge.band-elite{ border-color: rgba(230, 120, 40, 0.6); }
.galaxy-heat-badge.band-crisis,
.galaxy-heat-badge.band-war{
  border-color: rgba(230, 70, 70, 0.7);
  color: #f0a0a0;
}
.galaxy-hud-controls{
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 14px 20px;
  flex: 1 1 auto;
  flex-wrap: wrap;
  min-width: 0;
}
.galaxy-hud-group{
  display: flex;
  align-items: center;
  gap: 8px;
}
.galaxy-hud-label{
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(180, 210, 240, 0.72);
}
.galaxy-hud-stepper{
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.galaxy-hud-arrow{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  border: 1px solid rgba(70, 229, 255, 0.28);
  border-radius: 0;
  color: var(--gc-primary-2);
  font-size: 0.95rem;
  line-height: 1;
  text-decoration: none;
  background: rgba(0, 10, 20, 0.7);
}
.galaxy-hud-arrow:hover:not(.is-disabled){
  border-color: rgba(127, 255, 217, 0.55);
  color: #fff;
}
.galaxy-hud-arrow.is-disabled{
  opacity: 0.28;
  pointer-events: none;
}
.galaxy-hud-value{
  width: 52px;
  height: 26px;
  padding: 0 6px;
  border: 1px solid rgba(70, 229, 255, 0.28);
  border-radius: 0;
  background: rgba(0, 8, 16, 0.85);
  color: var(--gc-text);
  font-size: 0.84rem;
  text-align: center;
}
.galaxy-hud-value:focus{
  outline: none;
  border-color: rgba(127, 255, 217, 0.55);
  box-shadow: 0 0 0 1px rgba(127, 255, 217, 0.25);
}
.galaxy-hud-value--fixed{
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.galaxy-hud-search{
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 1 1 200px;
  min-width: min(100%, 220px);
  max-width: 360px;
}
.galaxy-hud-search-input{
  flex: 1 1 auto;
  min-width: 0;
  height: 28px;
  padding: 0 8px;
  border: 1px solid rgba(70, 229, 255, 0.22);
  border-radius: 0;
  background: rgba(0, 8, 16, 0.85);
  color: var(--gc-text);
  font-size: 0.8rem;
}
.galaxy-hud-scan-btn{
  flex-shrink: 0;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.68rem;
}
.galaxy-ring-stage-wrap{
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  min-width: 0;
  min-height: min(620px, 92vw);
  padding: 14px 12px 20px;
  overflow: visible;
}
.galaxy-ring-stage{
  position: relative;
  width: 100%;
  margin: 0 auto;
  overflow: visible;
  z-index: 2;
}
.galaxy-ring-stage--compact{
  width: min(100%, 620px);
  aspect-ratio: 1 / 1;
  max-height: min(620px, 92vw);
  height: auto;
}
.galaxy-ring-stage-bg{
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
  background-color: #020610;
  background-image:
    radial-gradient(ellipse 55% 42% at 50% 50%, rgba(255, 110, 30, 0.22), transparent 58%),
    radial-gradient(ellipse 48% 36% at 76% 24%, rgba(70, 229, 255, 0.2), transparent 72%),
    radial-gradient(ellipse 44% 40% at 14% 70%, rgba(150, 90, 255, 0.18), transparent 74%),
    radial-gradient(ellipse 38% 30% at 88% 82%, rgba(255, 150, 70, 0.12), transparent 70%),
    radial-gradient(ellipse 36% 28% at 20% 16%, rgba(127, 255, 217, 0.1), transparent 68%),
    linear-gradient(145deg, rgba(6, 16, 36, 0.55) 0%, transparent 42%, rgba(2, 6, 14, 0.65) 100%),
    var(--gc-galaxy-map-tile-fallback, url("img/map.png"));
  background-image:
    radial-gradient(ellipse 55% 42% at 50% 50%, rgba(255, 110, 30, 0.22), transparent 58%),
    radial-gradient(ellipse 48% 36% at 76% 24%, rgba(70, 229, 255, 0.2), transparent 72%),
    radial-gradient(ellipse 44% 40% at 14% 70%, rgba(150, 90, 255, 0.18), transparent 74%),
    radial-gradient(ellipse 38% 30% at 88% 82%, rgba(255, 150, 70, 0.12), transparent 70%),
    radial-gradient(ellipse 36% 28% at 20% 16%, rgba(127, 255, 217, 0.1), transparent 68%),
    linear-gradient(145deg, rgba(6, 16, 36, 0.55) 0%, transparent 42%, rgba(2, 6, 14, 0.65) 100%),
    var(--gc-galaxy-map-tile, image-set(url("img/map.webp") type("image/webp"), url("img/map.png") type("image/png")));
  background-size:
    auto,
    auto,
    auto,
    auto,
    auto,
    auto,
    480px 270px;
  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, repeat;
  background-position: center, center, center, center, center, center, center;
  pointer-events: none;
}
.galaxy-ring-stage-bg::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.34;
  background-image: var(--gc-galaxy-map-tile-fallback, url("img/map.png"));
  background-image: var(--gc-galaxy-map-tile, image-set(url("img/map.webp") type("image/webp"), url("img/map.png") type("image/png")));
  background-repeat: repeat;
  background-size: 640px 360px;
  background-position: 120px 80px;
  mix-blend-mode: screen;
}
.galaxy-ring-stage-bg::after{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.55;
  background:
    repeating-linear-gradient(
      0deg,
      transparent 0,
      transparent 47px,
      rgba(70, 229, 255, 0.028) 47px,
      rgba(70, 229, 255, 0.028) 48px
    ),
    repeating-linear-gradient(
      90deg,
      transparent 0,
      transparent 47px,
      rgba(70, 229, 255, 0.022) 47px,
      rgba(70, 229, 255, 0.022) 48px
    ),
    radial-gradient(ellipse at center, transparent 36%, rgba(2, 6, 14, 0.35) 100%);
}
.galaxy-ring-stage-depth{
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
  pointer-events: none;
  background:
    radial-gradient(ellipse 70% 55% at 50% 50%, rgba(255, 80, 20, 0.08), transparent 62%),
    radial-gradient(ellipse 42% 32% at 68% 38%, rgba(70, 229, 255, 0.14), transparent 70%),
    radial-gradient(ellipse 38% 34% at 28% 58%, rgba(180, 100, 255, 0.12), transparent 72%),
    radial-gradient(ellipse 28% 22% at 82% 18%, rgba(255, 196, 0, 0.07), transparent 68%);
  mix-blend-mode: screen;
  opacity: 0.92;
}
.galaxy-ring-stage-depth::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.85;
  background-image:
    radial-gradient(1.2px 1.2px at 8% 12%, rgba(255, 255, 255, 0.95), transparent),
    radial-gradient(1px 1px at 15% 38%, rgba(200, 230, 255, 0.75), transparent),
    radial-gradient(1.4px 1.4px at 22% 68%, rgba(255, 255, 255, 0.9), transparent),
    radial-gradient(1px 1px at 31% 22%, rgba(180, 220, 255, 0.7), transparent),
    radial-gradient(1.6px 1.6px at 38% 84%, rgba(255, 248, 220, 0.85), transparent),
    radial-gradient(1px 1px at 44% 46%, rgba(255, 255, 255, 0.65), transparent),
    radial-gradient(1.2px 1.2px at 52% 14%, rgba(220, 240, 255, 0.8), transparent),
    radial-gradient(1px 1px at 58% 72%, rgba(255, 255, 255, 0.7), transparent),
    radial-gradient(1.8px 1.8px at 64% 32%, rgba(255, 240, 200, 0.9), transparent),
    radial-gradient(1px 1px at 71% 58%, rgba(200, 230, 255, 0.65), transparent),
    radial-gradient(1.2px 1.2px at 78% 18%, rgba(255, 255, 255, 0.8), transparent),
    radial-gradient(1px 1px at 84% 78%, rgba(255, 255, 255, 0.6), transparent),
    radial-gradient(1.5px 1.5px at 91% 42%, rgba(255, 248, 220, 0.85), transparent),
    radial-gradient(1px 1px at 12% 88%, rgba(200, 230, 255, 0.55), transparent),
    radial-gradient(1px 1px at 26% 52%, rgba(255, 255, 255, 0.5), transparent),
    radial-gradient(1.3px 1.3px at 48% 62%, rgba(255, 255, 255, 0.75), transparent),
    radial-gradient(1px 1px at 62% 88%, rgba(180, 220, 255, 0.6), transparent),
    radial-gradient(1px 1px at 88% 8%, rgba(255, 255, 255, 0.7), transparent),
    radial-gradient(2px 2px at 18% 28%, rgba(255, 220, 160, 0.55), transparent),
    radial-gradient(2px 2px at 72% 66%, rgba(255, 200, 140, 0.5), transparent),
    radial-gradient(1px 1px at 6% 54%, rgba(255, 255, 255, 0.45), transparent),
    radial-gradient(1px 1px at 36% 8%, rgba(255, 255, 255, 0.55), transparent),
    radial-gradient(1px 1px at 54% 92%, rgba(200, 230, 255, 0.5), transparent),
    radial-gradient(1px 1px at 94% 62%, rgba(255, 255, 255, 0.5), transparent);
}
.galaxy-ring-stage-depth::after{
  content: "";
  position: absolute;
  inset: -8%;
  pointer-events: none;
  opacity: 0.42;
  background:
  radial-gradient(ellipse 55% 40% at 74% 28%, rgba(255, 120, 40, 0.16), transparent 70%),
  radial-gradient(ellipse 50% 38% at 18% 72%, rgba(60, 140, 255, 0.14), transparent 68%);
  filter: blur(18px);
}
.galaxy-ring-stage-vignette{
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    radial-gradient(ellipse at center, transparent 34%, rgba(0, 0, 0, 0.48) 78%, rgba(0, 0, 0, 0.72) 100%),
    linear-gradient(180deg, rgba(70, 229, 255, 0.04) 0%, transparent 18%, transparent 82%, rgba(70, 229, 255, 0.05) 100%);
  box-shadow:
    inset 0 0 0 1px rgba(70, 229, 255, 0.12),
    inset 0 0 48px rgba(70, 229, 255, 0.06);
  pointer-events: none;
}
.galaxy-ring-star{
  position: absolute;
  left: 50%;
  top: 50%;
  width: 72px;
  height: 72px;
  transform: translate(-50%, -50%);
  z-index: 4;
  filter: drop-shadow(0 0 28px rgba(255, 120, 30, 0.55));
}
.galaxy-ring-star-corona{
  position: absolute;
  inset: -18px;
  border-radius: 50%;
  background:
    conic-gradient(from 0deg, transparent 0deg, rgba(255, 200, 80, 0.22) 40deg, transparent 80deg, rgba(255, 90, 20, 0.28) 140deg, transparent 200deg, rgba(255, 220, 120, 0.2) 260deg, transparent 320deg);
  animation: galaxy-ring-star-corona-spin 14s linear infinite;
  opacity: 0.85;
  mix-blend-mode: screen;
}
.galaxy-ring-star-flare{
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  mix-blend-mode: screen;
}
.galaxy-ring-star-flare--a{
  inset: -6px;
  background: radial-gradient(ellipse 120% 45% at 50% 50%, rgba(255, 240, 180, 0.35), transparent 68%);
  animation: galaxy-ring-star-flare-a 2.8s ease-in-out infinite;
}
.galaxy-ring-star-flare--b{
  inset: 2px;
  background: radial-gradient(ellipse 45% 120% at 50% 50%, rgba(255, 100, 40, 0.28), transparent 70%);
  animation: galaxy-ring-star-flare-b 3.6s ease-in-out infinite;
}
.galaxy-ring-star-core{
  position: absolute;
  inset: 16px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 38% 32%, #fffef0 0%, #ffe08a 18%, #ff8a18 48%, #c82800 78%, #3a0800 100%);
  box-shadow:
    0 0 18px rgba(255, 220, 120, 0.95),
    0 0 42px rgba(255, 100, 20, 0.75),
    inset 0 0 12px rgba(255, 255, 220, 0.35);
  animation: galaxy-ring-star-core-flicker 1.9s ease-in-out infinite;
}
.galaxy-ring-star-glow{
  position: absolute;
  inset: -4px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 160, 50, 0.55) 0%, rgba(255, 60, 10, 0.2) 42%, transparent 72%);
  animation: galaxy-ring-star-pulse 2.4s ease-in-out infinite;
}
.galaxy-ring-star-rim{
  position: absolute;
  inset: 10px;
  border-radius: 50%;
  border: 1px solid rgba(255, 220, 140, 0.35);
  box-shadow: 0 0 10px rgba(255, 140, 40, 0.45);
  animation: galaxy-ring-star-rim-pulse 3.2s ease-in-out infinite;
}
@keyframes galaxy-ring-star-corona-spin{
  from{ transform: rotate(0deg); }
  to{ transform: rotate(360deg); }
}
@keyframes galaxy-ring-star-flare-a{
  0%, 100%{ opacity: 0.45; transform: rotate(0deg) scale(1); }
  50%{ opacity: 0.95; transform: rotate(18deg) scale(1.08); }
}
@keyframes galaxy-ring-star-flare-b{
  0%, 100%{ opacity: 0.35; transform: rotate(0deg) scale(1); }
  50%{ opacity: 0.8; transform: rotate(-22deg) scale(1.12); }
}
@keyframes galaxy-ring-star-core-flicker{
  0%, 100%{ filter: brightness(1); transform: scale(1); }
  35%{ filter: brightness(1.18); transform: scale(1.03); }
  55%{ filter: brightness(0.92); transform: scale(0.98); }
  72%{ filter: brightness(1.12); transform: scale(1.02); }
}
@keyframes galaxy-ring-star-pulse{
  0%, 100%{ opacity: 0.5; transform: scale(0.96); }
  50%{ opacity: 1; transform: scale(1.14); }
}
@keyframes galaxy-ring-star-rim-pulse{
  0%, 100%{ opacity: 0.35; }
  50%{ opacity: 0.85; }
}
.galaxy-ring-slot-wrap{
  position: absolute;
  z-index: 5;
  transform: translate(-50%, -50%);
  width: 0;
  height: 0;
}
.galaxy-ring-slot-wrap[data-orbit-band="hot"]{ z-index: 6; }
.galaxy-ring-slot-wrap[data-orbit-band="temperate"]{ z-index: 5; }
.galaxy-ring-slot-wrap[data-orbit-band="cold"]{ z-index: 4; }
.galaxy-ring-slot-wrap[data-orbit-band="expedition"]{ z-index: 7; }
.galaxy-ring-slot-owner-label{
  position: absolute;
  left: 50%;
  bottom: 100%;
  margin-bottom: 5px;
  transform: translateX(-50%);
  z-index: 4;
  display: block;
  width: max-content;
  max-width: min(7.5rem, 22vw);
  padding: 2px 5px;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: clamp(0.5rem, 2.3vw, 0.6rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: center;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  pointer-events: none;
  color: rgba(210, 232, 248, 0.96);
  background: rgba(2, 8, 18, 0.94);
  border: 1px solid rgba(70, 229, 255, 0.42);
  border-radius: var(--gc-radius-xs, 0);
  box-shadow:
    0 1px 6px rgba(0, 0, 0, 0.85),
    inset 0 0 0 1px rgba(0, 0, 0, 0.38);
  text-shadow: 0 0 8px rgba(70, 229, 255, 0.28);
}
.galaxy-ring-slot-owner-label--own{
  color: rgba(170, 255, 230, 0.98);
  border-color: rgba(80, 240, 200, 0.58);
  text-shadow: 0 0 8px rgba(80, 220, 180, 0.38);
}
.galaxy-ring-slot-owner-label--ally{
  color: rgba(255, 232, 130, 0.98);
  border-color: rgba(230, 210, 60, 0.58);
  text-shadow: 0 0 8px rgba(220, 200, 60, 0.32);
}
.galaxy-ring-slot-owner-label--foreign{
  color: rgba(255, 188, 148, 0.98);
  border-color: rgba(255, 110, 70, 0.58);
  text-shadow: 0 0 8px rgba(255, 90, 50, 0.32);
}
.galaxy-ring-slot{
  position: relative;
  left: auto;
  top: auto;
  width: clamp(44px, 5.8%, 56px);
  height: clamp(44px, 5.8%, 56px);
  padding: 0;
  border: 2px solid rgba(140, 180, 220, 0.4);
  border-radius: 50%;
  background: rgba(8, 16, 28, 0.88);
  cursor: pointer;
  transform: none;
  transition: box-shadow .14s ease, border-color .14s ease, transform .14s ease;
}
.galaxy-ring-slot:hover,
.galaxy-ring-slot:focus-visible{
  border-color: rgba(127, 255, 217, 0.65);
  box-shadow: 0 0 12px rgba(70, 229, 255, 0.35);
  transform: scale(1.06);
  outline: none;
}
.galaxy-ring-slot.is-selected{
  border-color: var(--gc-neon-cyan);
  box-shadow: 0 0 16px rgba(70, 229, 255, 0.5);
}
.galaxy-ring-slot.is-highlighted{
  box-shadow: 0 0 0 2px rgba(255, 196, 0, 0.75), 0 0 14px rgba(255, 196, 0, 0.35);
}
.galaxy-ring-slot.is-active-planet{
  box-shadow: 0 0 0 2px rgba(127, 255, 217, 0.85), 0 0 16px rgba(127, 255, 217, 0.4);
}
.galaxy-ring-slot.is-own{
  border-color: rgba(80, 240, 200, 0.85);
  box-shadow: 0 0 16px rgba(80, 220, 180, 0.55), 0 0 28px rgba(70, 229, 255, 0.2);
}
.galaxy-ring-slot.is-ally{
  border-color: rgba(230, 210, 60, 0.85);
  box-shadow: 0 0 14px rgba(220, 200, 60, 0.5), 0 0 22px rgba(180, 220, 80, 0.2);
}
.galaxy-ring-slot.is-foreign{
  border-color: rgba(255, 110, 70, 0.85);
  box-shadow: 0 0 14px rgba(255, 90, 50, 0.55), 0 0 22px rgba(255, 60, 30, 0.18);
}
.galaxy-ring-slot.is-empty{
  border-style: dashed;
  border-color: rgba(120, 180, 220, 0.35);
  background: rgba(4, 10, 18, 0.65);
  box-shadow: 0 0 10px rgba(70, 229, 255, 0.12);
}
.galaxy-ring-slot--expedition{
  border-color: rgba(180, 130, 255, 0.65);
  background: rgba(20, 10, 40, 0.85);
  box-shadow: 0 0 18px rgba(160, 100, 255, 0.35);
}
.galaxy-ring-slot-status{
  position: absolute;
  left: 50%;
  bottom: auto;
  top: calc(100% + 2px);
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  flex-wrap: nowrap;
  gap: 1px;
  z-index: 3;
  max-width: calc(100% + 22px);
  pointer-events: none;
}
.galaxy-ring-slot-status--inspector{
  position: static;
  transform: none;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  margin: 0 0 8px;
  max-width: none;
  pointer-events: auto;
}
.galaxy-ring-status-chip{
  display: inline-flex;
  align-items: center;
  padding: 1px 3px;
  border-radius: 0;
  border: 1px solid transparent;
  font-size: 0.44rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.1;
  white-space: nowrap;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.28);
}
/* Planet overlay chips ? opaque panel + saturated text for nebula readability */
.galaxy-ring-slot-status:not(.galaxy-ring-slot-status--inspector) .galaxy-ring-status-chip{
  font-size: 0.5rem;
  padding: 1px 5px;
  letter-spacing: 0.06em;
  background: rgba(2, 8, 18, 0.96);
  box-shadow:
    0 1px 5px rgba(0, 0, 0, 0.72),
    inset 0 0 0 1px rgba(0, 0, 0, 0.45);
  text-shadow: 0 0 6px currentColor;
}
.galaxy-ring-slot-status:not(.galaxy-ring-slot-status--inspector) .galaxy-ring-status-chip--vacation{
  color: #ffc44a;
  border-color: rgba(255, 176, 48, 0.85);
  background: rgba(32, 16, 2, 0.97);
}
.galaxy-ring-slot-status:not(.galaxy-ring-slot-status--inspector) .galaxy-ring-status-chip--inactive{
  color: #5ce8ff;
  border-color: rgba(70, 229, 255, 0.75);
  background: rgba(2, 12, 24, 0.97);
}
.galaxy-ring-slot-status:not(.galaxy-ring-slot-status--inspector) .galaxy-ring-status-chip--pulse{
  color: #6dffb0;
  border-color: rgba(90, 240, 160, 0.75);
  background: rgba(2, 20, 12, 0.97);
}
.galaxy-ring-slot-status:not(.galaxy-ring-slot-status--inspector) .galaxy-ring-status-chip--strong{
  color: #ff7a58;
  border-color: rgba(255, 100, 64, 0.85);
  background: rgba(28, 6, 4, 0.97);
}
.galaxy-ring-slot-status:not(.galaxy-ring-slot-status--inspector) .galaxy-ring-status-chip--weak{
  color: #8ec8ff;
  border-color: rgba(120, 190, 255, 0.8);
  background: rgba(4, 10, 28, 0.97);
}
.galaxy-ring-slot-status--inspector .galaxy-ring-status-chip{
  font-size: 0.58rem;
  padding: 2px 7px;
  letter-spacing: 0.08em;
}
.galaxy-ring-legend-chip{
  display: inline-block;
  vertical-align: middle;
  font-size: 0.5rem;
  padding: 1px 4px;
  pointer-events: none;
}
.galaxy-ring-status-chip--vacation{
  color: rgba(255, 196, 120, 0.96);
  background: rgba(255, 154, 26, 0.16);
  border-color: rgba(255, 154, 26, 0.45);
}
.galaxy-ring-status-chip--inactive{
  color: rgba(180, 200, 220, 0.9);
  background: rgba(80, 96, 120, 0.22);
  border-color: rgba(140, 160, 190, 0.38);
}
.galaxy-ring-status-chip--pulse{
  color: rgba(120, 240, 170, 0.96);
  background: rgba(30, 160, 100, 0.18);
  border-color: rgba(90, 220, 150, 0.45);
}
.galaxy-ring-status-chip--ai{
  color: rgba(120, 220, 200, 0.96);
  background: rgba(20, 90, 80, 0.28);
  border-color: rgba(80, 200, 170, 0.5);
}
.galaxy-ring-status-chip--strong{
  color: rgba(255, 150, 120, 0.96);
  background: rgba(200, 60, 40, 0.18);
  border-color: rgba(255, 110, 70, 0.5);
}
.galaxy-ring-status-chip--weak{
  color: rgba(150, 210, 255, 0.96);
  background: rgba(40, 100, 180, 0.18);
  border-color: rgba(90, 170, 255, 0.45);
}
.galaxy-ring-slot-pos{
  position: absolute;
  left: 50%;
  bottom: 3px;
  top: auto;
  transform: translateX(-50%);
  z-index: 3;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.2em;
  padding: 0 3px;
  font-size: clamp(0.48rem, 2.6vw, 0.58rem);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: 0.03em;
  color: #eefaff;
  background: rgba(2, 8, 18, 0.92);
  border: 1px solid rgba(70, 229, 255, 0.58);
  border-radius: 0;
  box-shadow:
    0 1px 5px rgba(0, 0, 0, 0.82),
    inset 0 0 0 1px rgba(0, 0, 0, 0.4);
  text-shadow: 0 0 6px rgba(70, 229, 255, 0.4);
  pointer-events: none;
  white-space: nowrap;
}
.galaxy-ring-slot--expedition .galaxy-ring-slot-pos{
  color: #f2eaff;
  border-color: rgba(180, 130, 255, 0.62);
  text-shadow: 0 0 6px rgba(160, 100, 255, 0.45);
}
.galaxy-ring-slot-body::before{
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 42%;
  z-index: 1;
  border-radius: 0 0 50% 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(2, 6, 14, 0.72) 100%);
  pointer-events: none;
}
.galaxy-ring-slot-body{
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  overflow: hidden;
  position: relative;
}
.galaxy-ring-slot-body.has-planet-image{
  background-image: var(--gr-planet-image);
  background-size: cover;
  background-position: center;
}
@supports (background-image: image-set(url("x") type("image/webp"))){
  .galaxy-ring-slot-body.has-planet-image{
    background-image: image-set(
      var(--gr-planet-image-webp, var(--gr-planet-image)) type("image/webp"),
      var(--gr-planet-image) type("image/png"),
      var(--gr-planet-image) type("image/jpeg")
    );
  }
}
.galaxy-ring-slot-body.has-planet-image::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  z-index: 2;
  background: radial-gradient(circle at 32% 28%, transparent 35%, rgba(0, 0, 0, 0.45) 100%);
  pointer-events: none;
}
.galaxy-ring-slot-body.is-climate-preview{
  opacity: 0.42;
  background-image: var(--gr-planet-image);
  background-size: cover;
  background-position: center;
  border: 1px dashed rgba(120, 160, 200, 0.35);
  box-sizing: border-box;
}
.galaxy-ring-slot-body.is-climate-preview::after{
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 35%, rgba(255, 255, 255, 0.12), rgba(0, 0, 0, 0.55));
}
.galaxy-ring-slot-body--empty{
  background: transparent;
  border: 1px dashed rgba(120, 160, 200, 0.22);
  box-sizing: border-box;
}
.galaxy-ring-slot-body--expedition.has-planet-image{
  box-shadow: none;
}
/* Climate / hero effect fallbacks (slot position theme) */
.galaxy-ring-slot-body--volcanic,
.galaxy-ring-slot-body--ash,
.galaxy-ring-slot-body--desert{ background: radial-gradient(circle at 32% 28%, #ffb060, #8a3010 70%); }
.galaxy-ring-slot-body--temperate,
.galaxy-ring-slot-body--forest,
.galaxy-ring-slot-body--jungle{ background: radial-gradient(circle at 32% 28%, #8fd4a8, #2a6b4a 70%); }
.galaxy-ring-slot-body--ocean{ background: radial-gradient(circle at 32% 28%, #6ec8e8, #1a4a6e 70%); }
.galaxy-ring-slot-body--tundra,
.galaxy-ring-slot-body--frost,
.galaxy-ring-slot-body--glacier,
.galaxy-ring-slot-body--ice{ background: radial-gradient(circle at 32% 28%, #d8f0ff, #4a7ac8 70%); }
.galaxy-ring-slot-body--terrestrial{ background: radial-gradient(circle at 32% 28%, #8fd4a8, #2a6b4a 70%); }
.galaxy-ring-slot-body--oceanic{ background: radial-gradient(circle at 32% 28%, #6ec8e8, #1a4a6e 70%); }
.galaxy-ring-slot-body--barren{ background: radial-gradient(circle at 32% 28%, #b8a898, #5a5048 70%); }
.galaxy-ring-slot-body--ruin{ background: radial-gradient(circle at 32% 28%, #a890c8, #4a3868 70%); }
.galaxy-ring-slot-body--gas_moon{ background: radial-gradient(circle at 32% 28%, #9098b8, #3a4058 70%); }
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--volcanic,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--ash,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--desert,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--temperate,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--forest,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--jungle,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--ocean,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--tundra,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--frost,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--glacier,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--ice,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--terrestrial,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--oceanic,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--barren,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--ruin,
.galaxy-ring-slot-body.has-planet-image.galaxy-ring-slot-body--gas_moon{
  background-image: var(--gr-planet-image);
}
.galaxy-ring-climate-hint{
  margin: 4px 0 0;
  font-size: 0.8rem;
}
.galaxy-stat-ring{
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}
.galaxy-ring-legend-orbit{
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px dashed;
  vertical-align: middle;
}
.galaxy-ring-legend-orbit--hot{ border-color: rgba(255, 120, 60, 0.55); }
.galaxy-ring-legend-orbit--temperate{ border-color: rgba(95, 212, 168, 0.5); }
.galaxy-ring-legend-orbit--cold{ border-color: rgba(110, 200, 255, 0.5); }
.galaxy-ring-debris-wrap{
  position: absolute;
  top: -6px;
  right: -8px;
  z-index: 9;
  width: 0;
  height: 0;
}
.galaxy-ring-debris-marker{
  position: absolute;
  left: 0;
  top: 0;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 1px solid rgba(255, 186, 72, 0.65);
  border-radius: 50%;
  background: rgba(20, 12, 4, 0.92);
  cursor: pointer;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 10px rgba(255, 150, 40, 0.45);
  transition: border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}
.galaxy-ring-debris-marker-img{
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-image: var(--gc-galaxy-debris-img, url("img/debris/debris.jpg"));
  background-image: image-set(
    var(--gc-galaxy-debris-img-webp, var(--gc-galaxy-debris-img, url("img/debris/debris.webp"))) type("image/webp"),
    var(--gc-galaxy-debris-img, url("img/debris/debris.jpg")) type("image/jpeg")
  );
  background-size: cover;
  background-position: center;
}
.galaxy-ring-debris-marker:hover,
.galaxy-ring-debris-marker:focus-visible{
  border-color: rgba(255, 210, 120, 0.9);
  box-shadow: 0 0 14px rgba(255, 180, 60, 0.65);
  transform: translate(-50%, -50%) scale(1.1);
  outline: none;
}
.galaxy-ring-asteroid-wrap{
  position: absolute;
  top: -6px;
  left: -8px;
  z-index: 9;
  width: 0;
  height: 0;
}
.galaxy-ring-asteroid-marker{
  position: absolute;
  left: 0;
  top: 0;
  width: 20px;
  height: 20px;
  padding: 0;
  border: 1px solid rgba(140, 200, 230, 0.7);
  border-radius: 50%;
  background: rgba(8, 12, 20, 0.94);
  cursor: pointer;
  transform: translate(-50%, -50%);
  box-shadow: 0 0 10px rgba(90, 170, 220, 0.4);
  transition: border-color .14s ease, box-shadow .14s ease, transform .14s ease;
}
.galaxy-ring-asteroid-marker-img{
  display: block;
  width: 100%;
  height: 100%;
  border-radius: 50%;
  background-image: var(--gc-galaxy-asteroid-img, url("img/debris/asteroid.jpg"));
  background-image: image-set(
    var(--gc-galaxy-asteroid-img-webp, var(--gc-galaxy-asteroid-img, url("img/debris/asteroid.webp"))) type("image/webp"),
    var(--gc-galaxy-asteroid-img, url("img/debris/asteroid.jpg")) type("image/jpeg")
  );
  background-size: cover;
  background-position: center;
}
.galaxy-ring-asteroid-marker:hover,
.galaxy-ring-asteroid-marker:focus-visible{
  border-color: rgba(180, 230, 255, 0.95);
  box-shadow: 0 0 14px rgba(110, 200, 255, 0.6);
  transform: translate(-50%, -50%) scale(1.1);
  outline: none;
}
/* Slot hover stack: World Boss + debris cards (never overlap) */
.galaxy-ring-slot-hover-stack{
  position: absolute;
  left: 50%;
  bottom: calc(100% + 22px);
  transform: translateX(-50%);
  z-index: var(--gc-z-popover);
  display: flex;
  flex-direction: column;
  gap: 6px;
  align-items: stretch;
  min-width: 168px;
  max-width: min(240px, 70vw);
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .12s ease, visibility .12s ease;
}
.galaxy-ring-slot-wrap:hover .galaxy-ring-slot-hover-stack,
.galaxy-ring-slot-wrap:focus-within .galaxy-ring-slot-hover-stack{
  opacity: 1;
  visibility: visible;
}
.galaxy-ring-slot-wrap:hover,
.galaxy-ring-slot-wrap:focus-within{
  z-index: 24;
}
.galaxy-ring-hover-card{
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm, 2px);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.55);
  background: rgba(8, 12, 18, 0.97);
}
.galaxy-ring-hover-card--wb{
  border: 1px solid rgba(90, 200, 255, 0.45);
  background: rgba(6, 12, 20, 0.97);
}
.galaxy-ring-hover-card--debris{
  border: 1px solid rgba(255, 186, 72, 0.45);
  background: rgba(12, 8, 4, 0.97);
}
.galaxy-ring-hover-card--asteroid{
  border: 1px solid rgba(160, 180, 210, 0.5);
  background: rgba(8, 12, 18, 0.97);
}
.galaxy-ring-hover-card-title{
  margin: 0 0 6px;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.galaxy-ring-hover-card--wb .galaxy-ring-hover-card-title{
  color: rgba(180, 230, 255, 0.95);
  font-size: 0.78rem;
  letter-spacing: 0.02em;
  text-transform: none;
  font-weight: 700;
}
.galaxy-ring-hover-card--debris .galaxy-ring-hover-card-title{
  color: rgba(255, 210, 140, 0.95);
}
.galaxy-ring-hover-card--asteroid .galaxy-ring-hover-card-title{
  color: rgba(190, 210, 235, 0.95);
}
.galaxy-ring-hover-card-stats{
  margin: 0;
  display: grid;
  gap: 4px;
}
.galaxy-ring-hover-card-stats > div{
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.72rem;
}
.galaxy-ring-hover-card-stats dt{
  margin: 0;
  color: var(--gc-text-soft);
}
.galaxy-ring-hover-card-stats dd{
  margin: 0;
  color: var(--gc-text);
}
.galaxy-ring-legend-debris{
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px solid rgba(255, 186, 72, 0.55);
  background: var(--gc-galaxy-debris-img, url("img/debris/debris.jpg")) center/cover no-repeat;
  vertical-align: middle;
}
.galaxy-ring-legend-asteroid{
  display: inline-block;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  border: 1px solid rgba(140, 200, 230, 0.55);
  background: var(--gc-galaxy-asteroid-img, url("img/debris/asteroid.jpg")) center/cover no-repeat;
  vertical-align: middle;
}
.galaxy-ring-inspector{
  width: 100%;
  border: none;
  border-radius: 0;
  background: rgba(6, 14, 24, 0.72);
  padding: 14px clamp(12px, 2vw, 18px);
  max-height: none;
  overflow: auto;
}
.galaxy-ring-inspector--card{
  display: none;
  position: absolute;
  top: 12px;
  right: 12px;
  z-index: var(--gc-z-popover);
  width: min(320px, calc(100% - 24px));
  max-height: calc(100% - 24px);
  padding: 12px 14px;
  border: 1px solid rgba(70, 229, 255, 0.28);
  border-radius: var(--gc-radius-sm);
  background: rgba(4, 10, 18, 0.96);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.45),
    0 12px 32px rgba(0, 0, 0, 0.55),
    0 0 24px rgba(70, 229, 255, 0.08);
  overflow: hidden;
  pointer-events: auto;
}
.galaxy-hud-body.is-inspector-open .galaxy-ring-inspector--card{
  display: flex;
  flex-direction: column;
}
.galaxy-ring-inspector--card .galaxy-ring-inspector-body{
  flex: 1 1 auto;
  min-height: 0;
  max-height: min(520px, 72vh);
  overflow-x: hidden;
  overflow-y: auto;
}
.galaxy-ring-inspector--card .galaxy-fleet-action-label{
  display: none;
}
.galaxy-ring-inspector--card .galaxy-fleet-actions{
  gap: 0.4rem;
}
.galaxy-ring-inspector--card .galaxy-ring-inspector-actions .gc-btn{
  width: 100%;
  justify-content: center;
}
.galaxy-ring-inspector-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(120, 190, 255, 0.12);
}
.galaxy-ring-inspector-title{
  margin: 0;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--gc-text);
  line-height: 1.3;
}
.galaxy-ring-inspector-close{
  flex-shrink: 0;
  min-width: 28px;
  padding: 0 6px;
  font-size: 1.1rem;
  line-height: 1;
}
.galaxy-ring-inspector-coord{
  margin-bottom: 8px;
  font-size: 0.82rem;
}
.galaxy-ring-inspector-meta{
  margin-bottom: 10px;
}
.galaxy-ring-inspector-commander{
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
  align-items: baseline;
  margin-bottom: 8px;
  font-size: 0.84rem;
}
.galaxy-ring-inspector-label{
  color: var(--gc-text-soft);
  font-size: 0.78rem;
}
.galaxy-ring-inspector-actions{
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin-top: 10px;
}
.galaxy-ring-inspector-actions .galaxy-fleet-actions{
  flex-wrap: wrap;
}
.galaxy-ring-legend{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 14px;
  width: 100%;
  padding: 8px 14px;
  border-top: 1px solid rgba(70, 229, 255, 0.14);
  background: rgba(4, 10, 18, 0.72);
  font-size: 0.72rem;
}
.galaxy-ring-legend .galaxy-legend-title{
  margin: 0;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(180, 210, 240, 0.7);
  flex-shrink: 0;
}
.galaxy-ring-legend .galaxy-legend-items{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 14px;
  flex: 1 1 auto;
}
.galaxy-ring-legend .gl-item{
  display: inline-flex;
  align-items: center;
  gap: 5px;
  white-space: nowrap;
}
.galaxy-ring-legend-swatch{
  display: inline-block;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 1px solid rgba(140, 180, 220, 0.4);
  vertical-align: middle;
}
.galaxy-ring-legend-swatch--own{
  background: radial-gradient(circle at 32% 28%, #8fd4a8, #2a6b4a 70%);
  border-color: rgba(80, 220, 180, 0.75);
}
.galaxy-ring-legend-swatch--ally{
  background: radial-gradient(circle at 32% 28%, #e8d860, #8a7820 70%);
  border-color: rgba(220, 200, 60, 0.8);
}
.galaxy-ring-legend-swatch--foreign{
  background: radial-gradient(circle at 32% 28%, #ff9070, #a83018 70%);
  border-color: rgba(255, 120, 80, 0.75);
}
.galaxy-ring-legend-swatch--empty{
  background: transparent;
  border-style: dashed;
}
.galaxy-ring-legend-swatch--expedition{
  background: radial-gradient(circle at 35% 30%, #c8b0ff, #6040a8 70%);
  border-color: rgba(160, 120, 255, 0.55);
}
@media (max-width: 900px){
  .galaxy-ring-inspector--card{
    top: auto;
    right: 10px;
    bottom: 10px;
    left: 10px;
    width: auto;
    max-height: min(48vh, 420px);
  }
}
@media (max-width: 720px){
  .galaxy-hud-header{
    flex-direction: column;
    align-items: stretch;
  }
  .galaxy-hud-controls{
    justify-content: flex-start;
  }
  .galaxy-hud-search{
    max-width: none;
    flex-basis: 100%;
  }
  .galaxy-ring-stage--compact{
    max-height: min(560px, 88vw);
  }
}

.galaxy-slots{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.galaxy-slot-card{
  display: grid;
  grid-template-columns: 52px 56px 1fr auto;
  gap: 0 14px;
  align-items: stretch;
  border-radius: var(--gc-radius-sm);
  overflow: hidden;
  transition: transform .14s ease, box-shadow .14s ease, border-color .14s ease;
}
/* Empty: dark, recessed */
.galaxy-slot-card.is-empty{
  border: 1px solid rgba(60, 80, 110, 0.2);
  background: rgba(3, 6, 14, 0.72);
  opacity: 0.82;
}
.galaxy-slot-card.is-empty .galaxy-slot-pos-col{
  background: rgba(4, 8, 18, 0.9);
  border-right: 1px solid rgba(50, 70, 100, 0.15);
}
.galaxy-slot-card.is-empty .galaxy-slot-card-main{
  padding: 12px 14px 12px 0;
}
.galaxy-slot-card.is-empty .galaxy-slot-planet-name,
.galaxy-slot-card.is-empty .galaxy-slot-coord{
  color: var(--gc-text-dim);
}
/* Occupied: bright, active */
.galaxy-slot-card.is-occupied{
  border: 1px solid rgba(255, 175, 90, 0.42);
  background: linear-gradient(105deg, rgba(48, 28, 10, 0.55) 0%, rgba(12, 22, 42, 0.95) 42%, rgba(8, 16, 32, 0.98) 100%);
  box-shadow: 0 14px 36px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 210, 140, 0.12);
}
.galaxy-slot-card.is-occupied:hover{
  transform: translateY(-2px);
  box-shadow: 0 0 24px rgba(255, 160, 60, 0.15), 0 18px 44px rgba(0, 0, 0, 0.55);
}
.galaxy-slot-card.is-active-planet.is-occupied,
.galaxy-slot-card.is-own.is-occupied{
  border-color: rgba(70, 229, 255, 0.65);
  box-shadow: var(--gc-border-glow), 0 0 28px rgba(70, 229, 255, 0.18);
  background: linear-gradient(105deg, rgba(0, 52, 72, 0.65) 0%, rgba(36, 22, 8, 0.5) 38%, rgba(10, 20, 38, 0.98) 100%);
}
.galaxy-slot-card.is-highlighted{
  outline: 2px solid rgba(255, 220, 120, 0.5);
  outline-offset: 1px;
}
.galaxy-slot-pos-col{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 10px 6px;
  background: rgba(6, 12, 28, 0.85);
  border-right: 1px solid rgba(120, 190, 255, 0.12);
}
.galaxy-slot-card.is-occupied .galaxy-slot-pos-col{
  background: rgba(20, 14, 8, 0.75);
  border-right-color: rgba(255, 160, 60, 0.2);
}
.galaxy-slot-pos-label{
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
  margin-bottom: 4px;
}
.galaxy-slot-pos-num{
  font-size: 1.35rem;
  font-weight: 800;
  line-height: 1;
  color: var(--gc-primary);
}
.galaxy-slot-card.is-occupied .galaxy-slot-pos-num{
  color: rgba(255, 210, 140, 0.95);
  text-shadow: 0 0 14px rgba(255, 160, 60, 0.35);
}
.galaxy-slot-orbit-col{
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px 0;
  position: relative;
}
.galaxy-orbit-rail{
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 52px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.galaxy-orbit-line{
  position: absolute;
  left: 50%;
  top: -8px;
  bottom: -8px;
  width: 2px;
  margin-left: -1px;
  background: linear-gradient(180deg, transparent, rgba(70, 229, 255, 0.25) 15%, rgba(70, 229, 255, 0.25) 85%, transparent);
  pointer-events: none;
}
.galaxy-slot-card.is-empty .galaxy-orbit-line{
  background: linear-gradient(180deg, transparent, rgba(50, 70, 100, 0.2) 20%, rgba(50, 70, 100, 0.2) 80%, transparent);
}
.galaxy-orbit-body{
  position: relative;
  z-index: 1;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  box-shadow: 0 0 16px currentColor;
}
.galaxy-orbit-body--empty{
  background: transparent;
  border: 2px dashed rgba(80, 110, 140, 0.35);
  box-shadow: none;
  width: 22px;
  height: 22px;
}
.galaxy-orbit-body--terrestrial{ background: radial-gradient(circle at 32% 28%, #8fd4a8, #2a6b4a 70%); color: rgba(80, 220, 140, 0.5); }
.galaxy-orbit-body--oceanic{ background: radial-gradient(circle at 32% 28%, #6ec8e8, #1a4a6e 70%); color: rgba(70, 200, 255, 0.5); }
.galaxy-orbit-body--barren{ background: radial-gradient(circle at 32% 28%, #b8a898, #5a5048 70%); color: rgba(180, 160, 140, 0.4); }
.galaxy-orbit-body--ice{ background: radial-gradient(circle at 32% 28%, #d8f0ff, #6a9ac8 70%); color: rgba(180, 220, 255, 0.5); }
.galaxy-orbit-body--volcanic{ background: radial-gradient(circle at 32% 28%, #ffb060, #8a3010 70%); color: rgba(255, 140, 60, 0.55); }
.galaxy-orbit-body--ruin{ background: radial-gradient(circle at 32% 28%, #a890c8, #4a3868 70%); color: rgba(160, 120, 220, 0.45); }
.galaxy-orbit-body--gas_moon{ background: radial-gradient(circle at 32% 28%, #9098b8, #3a4058 70%); color: rgba(140, 150, 200, 0.4); }
.galaxy-slot-card-main{
  padding: 12px 0;
  min-width: 0;
}
.galaxy-slot-card-head{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}
.galaxy-slot-planet-name{
  margin: 0;
  font-size: 1rem;
  font-weight: 800;
  color: var(--gc-text);
}
.galaxy-slot-card.is-occupied .galaxy-slot-planet-name{
  font-size: 1.05rem;
  color: #fff;
  text-shadow: 0 0 20px rgba(255, 200, 120, 0.15);
}
.galaxy-slot-coord{
  font-size: 0.78rem;
  color: var(--gc-text-dim);
}
.galaxy-slot-card.is-occupied .galaxy-slot-coord{
  color: rgba(255, 220, 180, 0.75);
}
.galaxy-slot-commander-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
  font-size: 0.88rem;
}
.galaxy-slot-commander-label{
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gc-text-dim);
}
.galaxy-slot-commander-link.gc-player-name{
  font-weight: 700;
  color: var(--gc-primary-2);
}
.galaxy-slot-stats{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
.galaxy-stat{
  padding: 5px 10px;
  border-radius: var(--gc-radius-sm);
  font-size: 0.78rem;
  border: 1px solid rgba(120, 190, 255, 0.2);
  background: rgba(0, 0, 0, 0.25);
  color: var(--gc-text-soft);
}
.galaxy-slot-card.is-occupied .galaxy-stat{
  background: rgba(255, 255, 255, 0.06);
}
.galaxy-stat-score{
  border-color: rgba(255, 190, 80, 0.35);
  color: rgba(255, 220, 160, 0.95);
}
.galaxy-stat-class{
  border-color: rgba(70, 229, 255, 0.28);
}
.galaxy-slot-empty-hint{
  margin: 0 0 8px;
  font-size: 0.78rem;
  color: rgba(100, 120, 150, 0.85);
}
.galaxy-slot-card-aside{
  display: flex;
  align-items: center;
  padding: 12px 14px 12px 0;
}
.galaxy-slot-card.is-empty .galaxy-slot-card-aside{
  opacity: 0.7;
}
.gs-pill-you{
  border-color: rgba(70, 229, 255, 0.65);
  background: rgba(0, 32, 48, 0.6);
  color: var(--gc-primary-2);
}
.gs-pill-own{
  border-color: rgba(35, 242, 166, 0.55);
  background: rgba(0, 22, 16, 0.55);
  color: rgba(180, 255, 220, 0.95);
}
.gs-pill-colonizable{
  border-color: rgba(35, 242, 166, 0.5);
  background: rgba(0, 22, 16, 0.55);
  color: rgba(180, 255, 220, 0.95);
}
.gs-pill-empty{
  border-color: rgba(255, 255, 255, 0.18);
  background: rgba(255, 255, 255, 0.04);
  color: rgba(200, 210, 220, 0.85);
}
.gs-pill-debris{
  border-color: rgba(255, 186, 72, 0.55);
  background: rgba(42, 28, 8, 0.65);
  color: rgba(255, 220, 150, 0.95);
}
.galaxy-slot-card.has-debris .galaxy-orbit-body--empty,
.galaxy-slot-card.has-debris .galaxy-orbit-body:not(.galaxy-orbit-body--expedition){
  box-shadow: 0 0 12px rgba(255, 170, 60, 0.35);
}
.galaxy-slot-debris{
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  margin-top: 8px;
  align-items: center;
}
.galaxy-debris-block{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 10px;
  align-items: center;
  max-width: 100%;
}
.galaxy-debris-badge-wrap{
  position: relative;
  max-width: 100%;
}
.galaxy-debris-badge{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  cursor: help;
  max-width: 100%;
}
.galaxy-debris-icon{
  font-size: 1rem;
  line-height: 1;
}
.galaxy-orbit-debris-marker{
  position: absolute;
  top: -4px;
  right: -6px;
  font-size: 0.72rem;
  line-height: 1;
  filter: drop-shadow(0 0 4px rgba(255, 180, 60, 0.85));
  pointer-events: none;
}
.galaxy-orbit-rail{
  position: relative;
}
.galaxy-debris-tooltip{
  position: absolute;
  left: 0;
  top: calc(100% + 6px);
  z-index: var(--gc-z-popover, 1200);
  min-width: 180px;
  max-width: min(260px, calc(100vw - 24px));
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm, 8px);
  border: 1px solid rgba(255, 186, 72, 0.45);
  background: rgba(18, 12, 4, 0.96);
  box-shadow: 0 10px 28px rgba(0, 0, 0, 0.45);
  pointer-events: none;
}
.galaxy-debris-badge-wrap.is-open .galaxy-debris-tooltip,
.galaxy-debris-badge-wrap:focus-within .galaxy-debris-tooltip,
.galaxy-debris-badge-wrap:hover .galaxy-debris-tooltip{
  display: block !important;
}
.galaxy-debris-tooltip[hidden]{
  display: none !important;
}
.galaxy-debris-badge-wrap.is-open .galaxy-debris-tooltip[hidden],
.galaxy-debris-badge-wrap:focus-within .galaxy-debris-tooltip[hidden],
.galaxy-debris-badge-wrap:hover .galaxy-debris-tooltip[hidden]{
  display: block !important;
}
.galaxy-debris-tooltip-title{
  font-size: 0.78rem;
  font-weight: 600;
  color: rgba(255, 220, 150, 0.95);
  margin-bottom: 6px;
}
.galaxy-debris-tooltip-stats{
  margin: 0;
  display: grid;
  gap: 4px;
}
.galaxy-debris-tooltip-stats > div{
  display: flex;
  justify-content: space-between;
  gap: 10px;
  font-size: 0.76rem;
}
.galaxy-debris-tooltip-stats dt{
  color: rgba(200, 210, 230, 0.78);
}
.galaxy-debris-tooltip-stats dd{
  margin: 0;
  color: rgba(255, 220, 150, 0.95);
  text-align: right;
}
.galaxy-debris-recycle-btn{
  flex-shrink: 0;
}
.gc-world-inspector-debris{
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm, 8px);
  border: 1px solid rgba(255, 186, 72, 0.38);
  background: rgba(42, 28, 8, 0.42);
}
.gc-world-inspector-debris-head{
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 8px;
  font-size: 0.86rem;
  font-weight: 600;
  color: rgba(255, 220, 150, 0.95);
}
.gc-world-inspector-debris-icon{
  font-size: 1rem;
  line-height: 1;
}
.galaxy-stat-debris{
  font-size: 0.78rem;
  color: rgba(255, 200, 120, 0.9);
}
.galaxy-colonize-btn{
  margin-top: 8px;
  opacity: 0.65;
  cursor: not-allowed;
}
.galaxy-colonize-btn:disabled{
  pointer-events: none;
}
.gs-pill-occupied{
  border-color: rgba(255, 160, 60, 0.55);
  background: rgba(32, 18, 6, 0.55);
  color: rgba(255, 210, 140, 0.95);
}
@media (max-width: 820px){
  .galaxy-nav-bar{
    flex-direction: column;
    align-items: stretch;
  }
  .galaxy-nav-step{
    text-align: center;
  }
  .galaxy-nav-jump{
    width: 100%;
  }
  .galaxy-slot-card{
    grid-template-columns: 44px 48px 1fr;
    grid-template-rows: auto auto;
  }
  .galaxy-slot-card-aside{
    grid-column: 1 / -1;
    padding: 0 12px 12px;
    justify-content: flex-start;
  }
  .galaxy-system-range-track{
    justify-content: flex-start;
  }
}
@media (max-width: 520px){
  .galaxy-slot-card{
    grid-template-columns: 40px 44px 1fr;
  }
  .galaxy-orbit-body{
    width: 22px;
    height: 22px;
  }
  .galaxy-debris-block{
    flex-direction: column;
    align-items: flex-start;
  }
  .galaxy-debris-recycle-btn{
    width: 100%;
    max-width: 100%;
  }
  .galaxy-debris-tooltip{
    left: auto;
    right: 0;
  }
}

.galaxy-shell-header{ align-items: center; }
.galaxy-controls{ display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }

.galaxy-coord-block{
  padding: 6px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(5, 10, 22, 0.58);
  display: flex;
  gap: 8px;
  align-items: baseline;
}
.galaxy-coord-label{ color: var(--gc-text-dim); font-size: 0.76rem; letter-spacing: 0.06em; text-transform: uppercase; }
.galaxy-coord-value{ font-family: var(--gc-mono); color: var(--gc-text-soft); font-size: 0.88rem; }

.galaxy-nav-buttons{ display: flex; gap: 6px; }

.galaxy-grid{
  margin-top: 10px;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 10px;
}

.galaxy-system-card{
  display: flex;
  gap: 12px;
  align-items: center;
  padding: 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: rgba(5, 10, 22, 0.58);
  transition: transform .12s ease, border-color .12s ease, box-shadow .12s ease;
  box-shadow: 0 18px 44px rgba(0,0,0,0.42);
}
.galaxy-system-card:hover{
  transform: translateY(-1px);
  border-color: rgba(70,229,255,0.44);
  box-shadow: var(--gc-border-glow), 0 22px 60px rgba(0,0,0,0.55);
}

.gs-icon{
  width: 46px;
  height: 46px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70,229,255,0.28);
  background: rgba(7, 14, 32, 0.74);
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  letter-spacing: 0.06em;
  color: var(--gc-primary-2);
  text-shadow: 0 0 18px rgba(127,255,217,0.14);
}

.gs-name{ font-weight: 900; color: var(--gc-text); }
.gs-coord{ margin-top: 2px; color: var(--gc-text-dim); font-family: var(--gc-mono); }
.gs-info{ margin-top: 6px; display: flex; gap: 8px; flex-wrap: wrap; }

.gs-pill{
  padding: 4px 9px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(7, 14, 32, 0.62);
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}
.gs-pill-free{ border-color: rgba(35,242,166,0.55); background: rgba(0, 22, 16, 0.55); }

.galaxy-legend{
  margin-top: 12px;
  padding: 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.14);
  background: rgba(7, 14, 32, 0.46);
  box-shadow: 0 18px 44px rgba(0,0,0,0.40);
}
.galaxy-legend-title{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  letter-spacing: 0.06em;
  color: var(--gc-primary);
  font-weight: 900;
  margin-bottom: 8px;
}
.galaxy-legend-items{
  display: flex;
  gap: 14px;
  flex-wrap: wrap;
  color: var(--gc-text-soft);
  font-size: 0.88rem;
}
.gl-item-disabled{ color: var(--gc-text-dim); }

/* =========================
   20) Placeholder Pages
   ========================= */
.fleet-grid,
.defense-grid,
.shipyard-grid{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 980px){
  .fleet-grid, .defense-grid, .shipyard-grid{ grid-template-columns: 1fr; }
}

.fleet-placeholder-box,
.defense-placeholder-box,
.shipyard-placeholder-box{
  padding: 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: rgba(5, 10, 22, 0.58);
  box-shadow: 0 18px 44px rgba(0,0,0,0.42);
}
.fleet-placeholder-title,
.defense-placeholder-title,
.shipyard-placeholder-title{ color: var(--gc-text); margin-bottom: 8px; }

.fleet-placeholder-list,
.defense-placeholder-list,
.shipyard-placeholder-list{
  margin: 0;
  padding-left: 18px;
  color: var(--gc-text-soft);
}

.fleet-tag-row,
.defense-tag-row,
.shipyard-tag-row{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 10px;
}
.fleet-tag,
.defense-tag,
.shipyard-tag{
  padding: 6px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.25);
  background: rgba(7, 14, 32, 0.58);
  color: var(--gc-text-soft);
  font-size: 0.82rem;
}

.fleet-roadmap-list,
.defense-roadmap-list,
.shipyard-roadmap-list{
  margin: 0;
  padding-left: 18px;
  color: var(--gc-text-soft);
}

.fleet-note,
.defense-note,
.shipyard-note{
  margin-top: 12px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.14);
  background: rgba(7, 14, 32, 0.46);
  color: var(--gc-text-soft);
  box-shadow: 0 18px 44px rgba(0,0,0,0.40);
}

/* Fleet page ? command center (GC-640B) */
.fleet-page .fleet-command-head,
.fleet-page .fleet-headline-row{
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}
.fleet-command-head-main{
  display: grid;
  gap: 4px;
  min-width: 0;
  flex: 1 1 240px;
}
.fleet-shipyard-head-link{
  font-size: 0.78rem;
  color: rgba(127, 255, 217, 0.72);
  text-decoration: none;
}
.fleet-shipyard-head-link:hover{
  color: var(--gc-neon-cyan);
  text-decoration: underline;
}
.fleet-slots-badge{
  padding: 8px 14px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.28);
  background: rgba(7, 14, 32, 0.72);
}
.fleet-slots-badge--compact{
  flex: 0 0 auto;
  align-self: flex-start;
}
.fleet-slots-badge--inline,
.fleet-slots-badge--panel{
  flex: 0 0 auto;
  align-self: center;
  padding: 4px 10px;
  text-align: right;
}
.fleet-slots-badge--strip{
  flex: 0 0 auto;
  margin-left: auto;
  padding: 0;
  border: none;
  background: none;
  box-shadow: none;
  border-radius: 0;
  text-align: right;
  min-width: 0;
  max-width: min(100%, 220px);
}
.fleet-slots-badge--strip .fleet-slots-line{
  display: inline-flex;
  align-items: baseline;
  justify-content: flex-end;
  gap: 6px;
  white-space: nowrap;
}
.fleet-slots-badge--strip .fleet-slots-label{
  display: inline;
  font-size: 0.64rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.55);
}
.fleet-slots-badge--strip .fleet-slots-value{
  font-size: 0.78rem;
  font-weight: 700;
  color: var(--gc-neon-cyan);
  line-height: 1;
}
.fleet-slots-badge--strip .fleet-slots-hint{
  display: block;
  margin-top: 1px;
  font-size: 0.58rem;
  line-height: 1.15;
  color: rgba(127, 255, 217, 0.42);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.fleet-quick-row-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px 14px;
  flex-wrap: wrap;
  width: 100%;
  min-width: 0;
}
.fleet-quick-row-head .fleet-form-label{
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
}
.fleet-ogame-quick-row{
  display: grid;
  gap: 6px;
  margin-bottom: 8px;
}
.fleet-slots-badge--panel .fleet-slots-label{
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.fleet-slots-badge--panel .fleet-slots-value{
  font-size: 0.95rem;
  line-height: 1.2;
}
.fleet-slots-badge--panel .fleet-slots-hint{
  display: block;
  font-size: 0.68rem;
  line-height: 1.25;
  max-width: 240px;
  margin-top: 2px;
}
.fleet-ogame-ships-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}
.fleet-slots-label{ display: block; font-size: 0.78rem; color: var(--gc-text-dim); }
.fleet-slots-value{ font-size: 1.1rem; color: var(--gc-accent); }

.fleet-command-grid{
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.85fr);
  gap: 12px;
  align-items: start;
}
.fleet-command-main{
  display: grid;
  gap: 12px;
  min-width: 0;
}
.fleet-command-side{
  display: grid;
  gap: 10px;
  min-width: 0;
  align-self: start;
}
.fleet-layout,
.fleet-command-grid{
  max-width: 100%;
}

@media (min-width: 1101px){
  .fleet-command-side{
    position: sticky;
    top: 12px;
    max-height: calc(100vh - 24px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-width: thin;
  }
}

@media (max-width: 1100px){
  .fleet-command-grid{ grid-template-columns: 1fr; }
}

/* GC-640E/G/H: OGame-like compact fleet center + solid mode tabs */
.fleet-mode-tabs{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px;
  margin: 0 0 10px;
  padding: 6px;
  background: linear-gradient(180deg, rgba(3, 12, 18, 0.96), rgba(2, 8, 13, 0.98));
  border: 1px solid rgba(38, 226, 255, 0.28);
  border-radius: var(--gc-radius-sm);
  box-shadow: inset 0 0 18px rgba(0, 229, 255, 0.05);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.fleet-mode-tab{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  max-width: none;
  flex: 0 0 auto;
  min-height: 34px;
  padding: 8px 15px;
  border-radius: 0;
  border: 1px solid rgba(63, 145, 165, 0.35);
  background: linear-gradient(180deg, #081824, #040b12);
  color: #8fb0bd;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.025);
  text-shadow: none;
  transition: border-color 0.14s ease, background 0.14s ease, color 0.14s ease, box-shadow 0.14s ease;
}
.fleet-mode-tab:hover{
  color: #d7fbff;
  border-color: rgba(39, 230, 255, 0.7);
  background: linear-gradient(180deg, #0b2633, #06131d);
  box-shadow:
    0 0 10px rgba(35, 230, 255, 0.12),
    inset 0 0 0 1px rgba(255, 255, 255, 0.03);
  transform: none;
}
.fleet-mode-tab.active,
.fleet-mode-tab.is-active,
.fleet-mode-tab[aria-selected="true"]{
  color: #eaffff;
  border-color: #2ff3ff;
  background: linear-gradient(180deg, #0d3442, #061823);
  box-shadow:
    0 0 12px rgba(47, 243, 255, 0.18),
    inset 0 0 0 1px rgba(47, 243, 255, 0.12);
  text-shadow: none;
}
@media (max-width: 640px){
  .fleet-mode-tabs{
    gap: 4px;
    margin-bottom: 8px;
    padding: 4px;
  }
  .fleet-mode-tab{
    padding: 6px 10px;
    font-size: 0.66rem;
    min-height: 32px;
  }
}
.fleet-ogame-stack{
  display: grid;
  gap: 8px;
  max-width: 100%;
  width: 100%;
}
@media (min-width: 900px){
  .fleet-page .fleet-ogame-stack{
    max-width: none;
  }
  .fleet-ogame-top{
    padding: 8px 10px;
  }
  .fleet-ogame-ships-head{
    padding: 6px 10px 0;
  }
  .fleet-ogame-resources{
    margin-bottom: 6px;
    font-size: 0.82rem;
  }
  .fleet-ogame-quick-row{
    margin-bottom: 6px;
  }
}
.fleet-ogame-send,
.fleet-ogame-logistics{
  min-width: 0;
}
.fleet-ogame-top{
  padding: 10px 12px;
}
.fleet-ogame-resources{
  margin-bottom: 8px;
  gap: 10px 16px;
}
.fleet-quick-targets-strip{
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
}
.fleet-quick-target-select{
  flex: 1 1 100%;
  min-width: 0;
  max-width: none;
}
.fleet-coords-line{
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  min-width: 0;
}
.fleet-coords-line .fleet-expedition-shortcut{
  flex: 0 0 auto;
  align-self: stretch;
  display: inline-flex;
  align-items: center;
  min-height: 100%;
  padding: 8px 12px;
}
.fleet-expedition-shortcut{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  white-space: nowrap;
  color: var(--gc-neon-gold, #ffd45a);
  border-color: rgba(255, 212, 90, 0.28);
}
.fleet-expedition-shortcut.is-selected{
  border-color: rgba(255, 212, 90, 0.55);
  box-shadow: 0 0 0 1px rgba(255, 212, 90, 0.18);
}
.fleet-colony-chips--compact{
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.fleet-colony-chips--compact .fleet-colony-chip{
  flex-direction: row;
  align-items: center;
  gap: 6px;
  min-width: 0;
  min-height: 32px;
  max-height: 34px;
  padding: 6px 12px;
  border-radius: 0;
  border: 1px solid rgba(63, 145, 165, 0.35);
  background: linear-gradient(180deg, #081824, #040b12);
  color: #8fb0bd;
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.025);
}
.fleet-colony-chips--compact .fleet-colony-chip::after{
  display: none;
}
.fleet-colony-chips--compact .fleet-colony-chip:hover{
  color: #d7fbff;
  border-color: rgba(39, 230, 255, 0.7);
  background: linear-gradient(180deg, #0b2633, #06131d);
  box-shadow:
    0 0 10px rgba(35, 230, 255, 0.12),
    inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.fleet-colony-chips--compact .fleet-colony-chip.is-selected{
  color: #eaffff;
  border-color: #2ff3ff;
  background: linear-gradient(180deg, #0d3442, #061823);
  box-shadow:
    0 0 12px rgba(47, 243, 255, 0.18),
    inset 0 0 0 1px rgba(47, 243, 255, 0.12);
}
.fleet-colony-chips--compact .fleet-colony-chip.is-selected .fleet-chip-label,
.fleet-colony-chips--compact .fleet-colony-chip.is-selected .fleet-chip-coords{
  color: #eaffff;
}
.fleet-colony-chips--compact .fleet-colony-chip--expedition{
  border-color: rgba(255, 176, 32, 0.45);
  background: linear-gradient(180deg, #2a1f08, #1a1204);
  color: #e6b84a;
}
.fleet-colony-chips--compact .fleet-colony-chip--expedition .fleet-chip-label{
  color: #ffd45a;
}
.fleet-colony-chips--compact .fleet-colony-chip--expedition .fleet-chip-coords{
  color: rgba(255, 212, 90, 0.82);
}
.fleet-colony-chips--compact .fleet-colony-chip--expedition:hover{
  color: #fff3c4;
  border-color: rgba(255, 212, 90, 0.75);
  background: linear-gradient(180deg, #3d2e0c, #241806);
  box-shadow:
    0 0 10px rgba(255, 176, 32, 0.16),
    inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}
.fleet-colony-chips--compact .fleet-colony-chip--expedition.is-selected{
  color: #fff3c4;
  border-color: #ffd45a;
  background: linear-gradient(180deg, #3d2e0c, #241806);
  box-shadow:
    0 0 12px rgba(255, 176, 32, 0.18),
    inset 0 0 0 1px rgba(255, 212, 90, 0.16);
}
.fleet-colony-chips--compact .fleet-colony-chip--expedition.is-selected .fleet-chip-label,
.fleet-colony-chips--compact .fleet-colony-chip--expedition.is-selected .fleet-chip-coords{
  color: #fff3c4;
}
.fleet-colony-chips--compact .fleet-chip-label{
  font-size: 0.66rem;
  text-transform: uppercase;
}
.fleet-colony-chips--compact .fleet-chip-coords{
  font-size: 0.68rem;
  opacity: 0.88;
  font-weight: 600;
}
.fleet-ogame-mission-row{
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
  gap: 10px;
  align-items: start;
}
.fleet-coords-row--compact,
.fleet-mission-speed-row--compact{
  margin: 0;
}
.fleet-mission-speed-row--compact{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 8px;
}
.fleet-mission-speed-row--compact:has([data-fleet-expedition-hours-row]:not([hidden])){
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr) minmax(0, 0.75fr);
}
.fleet-ogame-ships{
  padding: 0;
  overflow: visible;
}
.fleet-ogame-ships-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
  padding: 8px 12px 0;
}
.fleet-ship-table-wrap{
  overflow: visible;
  max-height: none;
  width: 100%;
}
.fleet-ship-table{
  width: 100%;
  table-layout: fixed;
  border-collapse: collapse;
  font-size: 0.78rem;
}
.fleet-ship-table thead th{
  position: static;
  z-index: 0;
  padding: 4px 6px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.18);
  background: rgba(6, 12, 26, 0.96);
  color: rgba(127, 255, 217, 0.72);
  font-size: 0.64rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  text-align: left;
  white-space: nowrap;
}
.fleet-ship-group-row th{
  padding: 2px 6px;
  height: 24px;
  line-height: 1.2;
  border-bottom: 1px solid rgba(70, 229, 255, 0.12);
  background: rgba(70, 229, 255, 0.05);
  color: rgba(127, 255, 217, 0.82);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: left;
}
.fleet-ship-table tbody tr.fleet-ship-row{
  display: table-row;
  height: 40px;
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  flex-wrap: unset;
  justify-content: unset;
  gap: 0;
}
.fleet-ship-table tbody td{
  display: table-cell;
  padding: 2px 6px;
  height: 40px;
  border-bottom: 1px solid rgba(120, 190, 255, 0.08);
  vertical-align: middle;
  white-space: nowrap;
}
.fleet-ship-row.is-empty{
  opacity: 0.45;
}
.fleet-ship-tbl-col-icon{ width: 44px; }
.fleet-ship-tbl-col-name{ width: auto; }
.fleet-ship-tbl-col-stock,
.fleet-ship-tbl-col-speed,
.fleet-ship-tbl-col-cargo{
  width: 80px;
  text-align: right;
  white-space: nowrap;
}
.fleet-ship-tbl-col-qty{ width: 110px; }
.fleet-ship-tbl-col-max{ width: 54px; text-align: right; }
.fleet-ship-tbl-icon-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 4px;
  vertical-align: middle;
}
.fleet-ship-tbl-icon-btn:disabled{ opacity: 0.35; cursor: not-allowed; }
.fleet-ship-tbl-img,
.fleet-ship-thumb{
  display: block;
  width: 32px;
  height: 32px;
  object-fit: cover;
  border-radius: 4px;
  background: rgba(0, 0, 0, 0.24);
}
.fleet-ship-tbl-name-btn{
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--gc-text);
  font: inherit;
  font-size: 0.8rem;
  text-align: left;
  cursor: pointer;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.fleet-ship-tbl-name-btn:hover{ color: var(--gc-accent); }
.fleet-ship-table .fleet-ship-input{
  width: 100%;
  height: 30px;
  min-width: 56px;
  max-width: 90px;
  padding: 2px 6px;
  box-sizing: border-box;
}
.fleet-ship-table .fleet-ship-max{
  min-height: 30px;
  padding: 2px 8px;
  font-size: 0.72rem;
}
.fleet-ogame-bottom{
  padding: 10px 12px;
}
.fleet-send-compact{
  padding: 8px 10px;
}
.fleet-send-compact-grid{
  display: grid;
  grid-template-columns: minmax(280px, 0.95fr) minmax(0, 1.15fr);
  gap: 8px 10px;
  align-items: stretch;
}
.fleet-resources-fieldset--compact{
  margin: 0;
  padding: 6px 8px;
  height: 100%;
  min-width: 0;
}
.fleet-resources-fieldset--inactive{
  visibility: hidden;
  pointer-events: none;
  opacity: 0;
}
.fleet-send-compact .fleet-resources-fieldset--compact .gc-fieldset-legend{
  margin-bottom: 4px;
  font-size: 0.72rem;
}
.fleet-send-compact .fleet-resources-rows{
  display: grid;
  gap: 6px;
}
/* Label+MAX on top, full-width amount below ? billions stay readable. */
.fleet-send-compact .fleet-resource-row{
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "label max"
    "input input";
  gap: 4px 6px;
  margin-bottom: 0;
}
.fleet-send-compact .fleet-resource-label{
  grid-area: label;
  font-size: 0.72rem;
  gap: 4px;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.fleet-send-compact .fleet-resource-input{
  grid-area: input;
  width: 100%;
  min-width: 0;
  max-width: none;
  min-height: 32px;
  padding: 4px 8px;
  font-size: 0.88rem;
  text-align: right;
  overflow-x: auto;
}
.fleet-send-compact .fleet-res-max-btn{
  grid-area: max;
  min-height: 26px;
  min-width: 2.75rem;
  padding: 2px 6px;
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  justify-self: end;
}
.fleet-preview-hud--inline{
  margin: 0;
  padding: 6px 8px;
  display: flex;
  flex-direction: column;
  min-height: 0;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.14);
  background: rgba(5, 10, 22, 0.72);
}
.fleet-send-compact .fleet-preview-hud--inline{
  margin: 0;
}
.fleet-send-compact .fleet-preview-hud-head{
  margin-bottom: 4px;
  padding-bottom: 4px;
  gap: 6px;
}
.fleet-send-compact .fleet-preview-mission-status{
  font-size: 0.72rem;
  text-align: right;
}
.fleet-preview-grid--compact{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 3px 6px;
  flex: 1 1 auto;
}
.fleet-send-compact .fleet-preview-stat{
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 4px;
  padding: 2px 5px;
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(120, 190, 255, 0.08);
}
.fleet-send-compact .fleet-preview-stat-label{
  font-size: 0.58rem;
  letter-spacing: 0.03em;
  line-height: 1.15;
  flex: 1 1 auto;
  min-width: 0;
}
.fleet-send-compact .fleet-preview-stat-value{
  font-size: 0.72rem;
  flex: 0 0 auto;
  text-align: right;
  white-space: nowrap;
}
.fleet-send-actions{
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(120, 190, 255, 0.1);
}
.fleet-send-compact .fleet-send-actions .fleet-form-error{
  margin: 0 0 4px;
  font-size: 0.78rem;
}
.fleet-send-compact .fleet-send-actions .fleet-launch-btn{
  margin-top: 0;
  padding: 8px 12px;
  font-size: 0.82rem;
  min-height: 36px;
}
.fleet-send-compact .fleet-mission-feedback{
  margin-top: 6px;
}
@media (min-width: 900px){
  .fleet-preview-grid--compact{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
@media (max-width: 720px){
  .fleet-send-compact-grid{
    grid-template-columns: 1fr;
  }
}
.logistics-preview-hud--compact{
  margin-bottom: 10px;
  padding: 8px 10px;
}
.fleet-ogame-footer{
  padding: 10px 12px;
}
.fleet-ogame-footer-grid{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 0.85fr);
  gap: 12px;
}
.fleet-ogame-footer-title{
  margin: 0 0 8px;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}
.fleet-preset-row--compact{
  margin-bottom: 8px;
}
.logistics-page--embedded{
  margin: 0;
  padding: 0;
}
.logistics-page--embedded .logistics-shell{
  margin: 0;
}
.fleet-world-target-panel--compact{
  margin-top: 8px;
  padding: 8px 10px;
}
.fleet-world-target-meta--compact{
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 6px;
}

@media (max-width: 900px){
  .fleet-ogame-mission-row,
  .fleet-ogame-footer-grid{
    grid-template-columns: 1fr;
  }
  .fleet-mission-speed-row--compact{
    grid-template-columns: 1fr;
  }
  .fleet-ship-table thead{
    display: none;
  }
  .fleet-ship-table,
  .fleet-ship-table tbody,
  .fleet-ship-table tr.fleet-ship-row,
  .fleet-ship-table tr.fleet-ship-group-row{
    display: block;
    width: 100%;
  }
  .fleet-ship-table tr.fleet-ship-group-row th{
    display: block;
    width: 100%;
  }
  .fleet-ship-table tr.fleet-ship-row > td{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    height: auto;
    min-height: 32px;
    padding: 4px 8px;
    white-space: normal;
  }
  .fleet-ship-table tr.fleet-ship-row > td::before{
    content: attr(data-label);
    flex: 0 0 72px;
    color: var(--gc-text-dim);
    font-size: 0.72rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
  }
  .fleet-ship-table tr.fleet-ship-row > td.fleet-ship-tbl-icon::before{
    content: none;
  }
  .fleet-ship-table tr.fleet-ship-row > td.fleet-ship-tbl-icon{
    justify-content: flex-start;
    padding-bottom: 0;
  }
  .fleet-ship-table tr.fleet-ship-row > td.fleet-ship-tbl-max::before{
    content: none;
  }
}

.fleet-logistics-cta{
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 12px;
  align-items: start;
  padding: 14px;
  border-color: rgba(70, 229, 255, 0.28);
  background:
    linear-gradient(135deg, rgba(70, 229, 255, 0.06), transparent 55%),
    rgba(7, 14, 32, 0.82);
  box-shadow: var(--gc-border-glow), inset 0 0 0 1px rgba(0, 0, 0, 0.42);
}
.fleet-logistics-cta-icon{
  font-size: 1.6rem;
  line-height: 1;
  opacity: 0.92;
}
.fleet-logistics-cta-body{
  display: grid;
  gap: 8px;
  min-width: 0;
}
.fleet-logistics-cta-title{
  margin: 0;
  font-size: 0.92rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text);
}
.fleet-logistics-cta-text{
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.45;
}
.fleet-logistics-cta-btn{
  justify-self: start;
}

.fleet-preview-hud--sidebar{
  margin: 0;
}

.fleet-side-panel .gc-panel-subtitle{ display: none; }
.fleet-preset-list--compact .fleet-preset-item{
  padding: 8px 0;
}
.fleet-mass-expo-form--compact .fleet-form-row{
  margin-bottom: 8px;
}
.fleet-mass-expo-split-panel{
  margin-top: 0.65rem;
}
.fleet-mass-expo-split-hint{
  margin: 0 0 0.55rem;
  font-size: 0.8rem;
  color: var(--gc-text-soft);
}
.fleet-mass-expo-split-preview{
  display: grid;
  gap: 0.35rem;
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
}
.fleet-mass-expo-split-preview-row{
  display: grid;
  grid-template-columns: minmax(6.5rem, 8rem) 1fr;
  gap: 0.5rem;
  align-items: baseline;
}
.fleet-mass-expo-split-preview-row dt{
  margin: 0;
  color: var(--gc-text-soft);
}
.fleet-mass-expo-split-preview-row dd{
  margin: 0;
  word-break: break-word;
}
.fleet-mass-expo-split-status{
  margin: 0 0 0.55rem;
  font-size: 0.78rem;
  color: #ff9b7a;
}
.fleet-expedition-daily-value{
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 600;
}
.fleet-expedition-daily-dot{
  width: 0.55rem;
  height: 0.55rem;
  border-radius: 50%;
  flex: 0 0 auto;
  background: var(--gc-text-soft);
}
.fleet-expedition-daily-dot--good{ background: #4ade80; }
.fleet-expedition-daily-dot--warn{ background: #facc15; }
.fleet-expedition-daily-dot--mid{ background: #fb923c; }
.fleet-expedition-daily-dot--low{ background: #f87171; }
.fleet-expedition-daily-reset{
  display: block;
  margin-top: 0.15rem;
  font-size: 0.72rem;
  color: var(--gc-text-soft);
}
.fleet-preview-stat--expedition-daily{
  grid-column: 1 / -1;
}
.fleet-preview-stat--expedition-daily .fleet-expedition-daily-reset{
  margin-top: 0.2rem;
}
.fleet-expedition-daily-row dd{
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}
.fleet-mass-expo-legacy{
  border: 1px solid rgba(0, 212, 255, 0.14);
  border-radius: var(--gc-radius-sm);
  padding: 0.45rem 0.55rem;
}
.fleet-mass-expo-legacy > summary{
  cursor: pointer;
  list-style: none;
  font-size: 0.82rem;
  font-weight: 600;
}
.fleet-mass-expo-legacy > summary::-webkit-details-marker{
  display: none;
}
.fleet-mass-expo-legacy[open] > summary{
  margin-bottom: 0.45rem;
}

.fleet-ships-groups{
  display: grid;
  gap: 10px;
}
.fleet-ship-group{
  display: grid;
  gap: 6px;
}
.fleet-ship-group:empty{
  display: none;
}
.fleet-ship-group-title{
  margin: 0;
  padding: 0 0 3px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.14);
  font-size: 0.64rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.68);
  font-weight: 700;
  line-height: 1.2;
}
.fleet-ship-card-grid{
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(100px, 112px));
  gap: 6px;
  overflow: visible;
  justify-content: start;
}
.fleet-ship-card-grid--compact{
  padding: 0 10px 12px;
}
.fleet-ship-card--pick{
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  min-width: 0;
  width: 100%;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(3, 8, 18, 0.82);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.42);
  overflow: visible;
  transition: border-color 0.14s ease, box-shadow 0.14s ease, z-index 0s linear 0.14s;
}
.fleet-ship-card--pick:hover,
.fleet-ship-card--pick:focus-within{
  z-index: 5;
  border-color: rgba(70, 229, 255, 0.42);
  box-shadow:
    var(--gc-border-glow),
    inset 0 0 0 1px rgba(0, 0, 0, 0.48);
}
.fleet-ship-pick-stack{
  display: flex;
  flex-direction: column;
  gap: 4px;
  width: 100%;
}
.fleet-ship-card-art-wrap{
  position: relative;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: var(--gc-radius-sm) var(--gc-radius-sm) 0 0;
}
.fleet-ship-card-art-wrap .fleet-ship-card-role-badge{
  position: absolute;
  top: 4px;
  right: 4px;
  left: auto;
  z-index: 2;
  min-width: 0;
  min-height: 16px;
  padding: 0 4px;
  font-size: 0.46rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  pointer-events: none;
  max-width: calc(100% - 8px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
/* GC-STABILIZE-002: role badge doubles as the ship-detail trigger button
   (data-ship-detail) — re-enable pointer events (the sibling rule above sets
   pointer-events:none for the decorative <span> variant) + reset native
   button chrome so it keeps the exact overlay look of the former <span>. */
.fleet-ship-card-art-wrap button.fleet-ship-card-role-badge{
  pointer-events: auto;
  cursor: pointer;
}
.fleet-ship-card-art-wrap button.fleet-ship-card-role-badge:hover,
.fleet-ship-card-art-wrap button.fleet-ship-card-role-badge:focus-visible{
  color: var(--gc-accent-cyan, #5ee9ff);
  outline: none;
}
.fleet-ship-card-art-wrap .fleet-ship-card-stock-badge{
  position: absolute;
  top: 4px;
  left: 4px;
  right: auto;
  z-index: 2;
  min-width: 0;
  min-height: 16px;
  padding: 0 4px;
  font-size: 0.52rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  text-transform: none;
  pointer-events: none;
  max-width: calc(100% - 8px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
}
.fleet-ship-pick-value{
  padding: 0 3px 3px;
}
.fleet-ship-card--pick .fleet-ship-pick-value .fleet-ship-input{
  width: 100%;
  max-width: none;
  min-width: 0;
  min-height: 26px;
  padding: 3px 6px;
  font-size: 0.68rem;
  text-align: center;
  font-variant-numeric: tabular-nums lining-nums;
  font-feature-settings: "tnum" 1, "lnum" 1;
}
.fleet-ship-card--pick .fleet-ship-pick-value .fleet-ship-input:focus{
  text-align: left;
  overflow-x: auto;
  scrollbar-width: thin;
}
.fleet-ship-card-art{
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 1;
  padding: 0;
  border: none;
  background: rgba(3, 8, 18, 0.72);
  cursor: pointer;
  overflow: hidden;
}
.fleet-ship-card-art:disabled{
  cursor: not-allowed;
  opacity: 0.45;
}
.fleet-ship-card-art picture,
.fleet-ship-card-img{
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
}
.fleet-ship-card--pick.is-empty,
.fleet-ship-card--pick.fleet-ship-row-empty{
  opacity: 0.48;
}
.fleet-ship-card--pick.fleet-ship-row--mission-focus{
  outline: none;
  border-color: rgba(251, 191, 36, 0.62);
  box-shadow: 0 0 0 1px rgba(251, 191, 36, 0.35), var(--gc-border-glow);
}
.fleet-ship-card--pick.has-ship-qty{
  border-color: rgba(70, 229, 255, 0.38);
  box-shadow:
    0 0 10px rgba(70, 229, 255, 0.14),
    inset 0 0 0 1px rgba(0, 0, 0, 0.42);
}
.fleet-ship-card--pick.has-ship-qty::after{
  content: "";
  position: absolute;
  right: 4px;
  bottom: 4px;
  z-index: 2;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--gc-neon-cyan);
  box-shadow: 0 0 8px rgba(70, 229, 255, 0.65);
  pointer-events: none;
}
.fleet-ships-panel.gc-panel{
  padding: 10px 12px;
}
.fleet-launch-btn{
  width: 100%;
  justify-content: center;
  margin-top: 4px;
}

.fleet-layout{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
}
@media (max-width: 1100px){
  .fleet-layout{ grid-template-columns: 1fr; }
}
.fleet-send-form .fleet-form-row,
.fleet-mass-expo-form .fleet-form-row{
  margin-bottom: 12px;
}
.fleet-form-label{ display: block; margin-bottom: 4px; color: var(--gc-text-soft); font-size: 0.85rem; }
.fleet-form-inline{ display: flex; gap: 8px; flex-wrap: wrap; }
.fleet-ships-grid{
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.fleet-ships-grid > .fleet-ship-row:not(.fleet-ship-card){
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.12);
  background: rgba(5, 10, 22, 0.45);
}
.fleet-ships-grid > .fleet-ship-row.is-empty{ opacity: 0.55; }
.fleet-ship-row-main{
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  flex: 1 1 180px;
}
.fleet-ship-row-controls{
  display: flex;
  align-items: center;
  gap: 6px;
  flex: 0 0 auto;
}
.fleet-ship-name{
  font-weight: 600;
  color: var(--gc-text);
  background: none;
  border: none;
  padding: 0;
  text-align: left;
}
.fleet-ship-role-pill{
  flex: 0 0 auto;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
}
.fleet-ship-role-pill--expedition{
  color: var(--gc-neon-gold);
  border-color: rgba(255, 176, 32, 0.35);
  background: rgba(255, 176, 32, 0.08);
}
.fleet-ship-role-pill--cargo{
  color: #94a3b8;
  border-color: rgba(148, 163, 184, 0.35);
  background: rgba(148, 163, 184, 0.08);
}
.fleet-ship-role-pill--combat{
  color: #fca5a5;
  border-color: rgba(252, 165, 165, 0.35);
  background: rgba(252, 165, 165, 0.08);
}
.fleet-ship-role-pill--spy{
  color: #7dd3fc;
  border-color: rgba(125, 211, 252, 0.35);
  background: rgba(125, 211, 252, 0.08);
}
.fleet-ship-role-pill--recycle{
  color: #5eead4;
  border-color: rgba(94, 234, 212, 0.35);
  background: rgba(94, 234, 212, 0.08);
}
.fleet-ship-role-pill--scout{
  color: var(--gc-neon-cyan);
  border-color: rgba(70, 229, 255, 0.35);
  background: rgba(70, 229, 255, 0.08);
}
.fleet-ship-role-pill--colony{
  color: #86efac;
  border-color: rgba(134, 239, 172, 0.35);
  background: rgba(134, 239, 172, 0.08);
}
.fleet-ship-role-pill--utility{
  color: #cbd5e1;
  border-color: rgba(203, 213, 225, 0.35);
  background: rgba(203, 213, 225, 0.08);
}
.fleet-ship-stock{
  margin-left: auto;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}

/* Shared ingame form controls ? Genesis HUD (fleet, logistics, gc-input) */
body.gc-body-ingame .gc-input,
body.gc-body-ingame input.gc-input,
body.gc-body-ingame textarea.gc-input,
body.gc-body-ingame select.gc-input:not(.gc-hud-select-native),
body.gc-body-ingame .fleet-control,
body.gc-body-ingame .fleet-page input[type="text"],
body.gc-body-ingame .fleet-page input[type="number"]:not(.fleet-coord-input):not(.fleet-ship-input):not(.fleet-resource-input),
body.gc-body-ingame .logistics-page input[type="text"],
body.gc-body-ingame .logistics-page select:not(.gc-hud-select-native){
  min-height: 38px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.28);
  background: rgba(5, 10, 22, 0.88);
  color: var(--gc-text);
  font-size: 0.88rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 0 0 10px rgba(0, 0, 0, 0.28);
  transition: border-color 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}
body.gc-body-ingame .gc-input,
body.gc-body-ingame input.gc-input,
body.gc-body-ingame textarea.gc-input,
body.gc-body-ingame .fleet-control,
body.gc-body-ingame .fleet-page input[type="text"],
body.gc-body-ingame .logistics-page input[type="text"]{
  width: 100%;
}
body.gc-body-ingame .gc-input::placeholder,
body.gc-body-ingame .fleet-control::placeholder{
  color: rgba(200, 232, 244, 0.34);
  font-style: italic;
}
body.gc-body-ingame .gc-input:hover,
body.gc-body-ingame textarea.gc-input:hover,
body.gc-body-ingame select.gc-input:not(.gc-hud-select-native):hover,
body.gc-body-ingame .fleet-control:hover,
body.gc-body-ingame .fleet-page input[type="text"]:hover,
body.gc-body-ingame .logistics-page input[type="text"]:hover,
body.gc-body-ingame .logistics-page select:not(.gc-hud-select-native):hover{
  border-color: rgba(70, 229, 255, 0.42);
  background: rgba(6, 12, 26, 0.92);
}
body.gc-body-ingame .gc-input:focus,
body.gc-body-ingame textarea.gc-input:focus,
body.gc-body-ingame select.gc-input:not(.gc-hud-select-native):focus,
body.gc-body-ingame .fleet-control:focus,
body.gc-body-ingame .fleet-page input[type="text"]:focus,
body.gc-body-ingame .logistics-page input[type="text"]:focus,
body.gc-body-ingame .logistics-page select:not(.gc-hud-select-native):focus{
  outline: none;
  border-color: rgba(70, 229, 255, 0.88);
  box-shadow:
    0 0 0 2px rgba(70, 229, 255, 0.14),
    inset 0 0 12px rgba(70, 229, 255, 0.06);
  background: rgba(4, 10, 22, 0.96);
}
body.gc-body-ingame .fleet-page input[type="number"]::-webkit-outer-spin-button,
body.gc-body-ingame .fleet-page input[type="number"]::-webkit-inner-spin-button,
body.gc-body-ingame .logistics-page input[type="number"]::-webkit-outer-spin-button,
body.gc-body-ingame .logistics-page input[type="number"]::-webkit-inner-spin-button{
  -webkit-appearance: none;
  margin: 0;
}

.fleet-ship-input{
  width: 72px;
  padding: 6px 8px;
  text-align: center;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.22);
  background: rgba(3, 8, 18, 0.85);
  color: var(--gc-neon-cyan);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 0 0 10px rgba(0, 0, 0, 0.28);
  appearance: textfield;
  -moz-appearance: textfield;
}
.fleet-ship-input:hover{
  border-color: rgba(70, 229, 255, 0.38);
}
.fleet-ship-input:focus{
  outline: none;
  border-color: rgba(70, 229, 255, 0.45);
  box-shadow: 0 0 0 2px rgba(70, 229, 255, 0.12);
}
.fleet-coords-strip{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 8px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.2);
  background: rgba(3, 8, 18, 0.72);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03);
}
.fleet-coords-strip.is-expedition{
  border-color: rgba(70, 229, 255, 0.38);
  background: linear-gradient(135deg, rgba(8, 20, 36, 0.72) 0%, rgba(5, 10, 22, 0.85) 100%);
  box-shadow: inset 0 0 0 1px rgba(70, 229, 255, 0.1);
}
.fleet-coords-bracket,
.fleet-coords-sep{
  color: var(--gc-neon-cyan);
  font-family: var(--gc-mono);
  font-size: 0.95rem;
  opacity: 0.75;
  user-select: none;
}
.fleet-coord-input{
  width: 56px;
  padding: 4px 2px;
  border: none;
  background: transparent;
  color: var(--gc-neon-cyan);
  font-size: 0.95rem;
  text-align: center;
  appearance: textfield;
  -moz-appearance: textfield;
}
.fleet-coord-input--position{ width: 44px; color: var(--gc-neon-cyan); }
.fleet-coord-input:focus{
  outline: none;
  background: rgba(70, 229, 255, 0.06);
  border-radius: 0;
}
.fleet-coords-strip.is-expedition .fleet-coord-input--position{
  color: var(--gc-neon-gold);
}
.fleet-coords-hint{
  margin: 6px 0 0;
  font-size: 0.78rem;
}
.fleet-chip-icon{
  opacity: 0.85;
  margin-right: 2px;
}
.fleet-mission-select{
  max-width: 320px;
}
.fleet-page .gc-fieldset,
.fleet-ships-fieldset,
.fleet-resources-fieldset{
  margin: 0 0 14px;
  padding: 10px 12px;
  border: 1px solid rgba(120, 190, 255, 0.12);
  border-radius: var(--gc-radius-sm);
  background: rgba(5, 10, 22, 0.35);
  min-width: 0;
}
.fleet-page .gc-fieldset-legend{
  padding: 0 6px;
  margin-bottom: 8px;
  color: rgba(127, 255, 217, 0.72);
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.fleet-resources-fieldset{
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.12);
  background: rgba(5, 10, 22, 0.35);
}
.fleet-resource-row{
  display: grid;
  grid-template-columns: minmax(5.5rem, auto) minmax(12rem, 1fr) auto;
  gap: 8px;
  align-items: center;
  margin-bottom: 6px;
}
.fleet-resource-row:last-child{ margin-bottom: 0; }
.fleet-resource-row input{
  text-align: right;
  font-family: var(--gc-mono);
}
.fleet-page .fleet-resource-summary{
  display: flex;
  flex-wrap: wrap;
  gap: 10px 16px;
  margin-bottom: 14px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.12);
  background: rgba(5, 10, 22, 0.45);
  font-size: 0.82rem;
}
.fleet-page .fleet-resource-summary strong{ color: var(--gc-neon-cyan); }
.fleet-target-block{
  position: relative;
  z-index: 5;
  padding: 12px;
  margin-bottom: 14px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-panel-border-strong);
  background: var(--gc-panel-bg);
  box-shadow: var(--gc-border-glow), inset 0 0 0 1px rgba(0, 0, 0, 0.45);
  overflow: visible;
}
.fleet-target-block::before{
  content: "";
  position: absolute;
  inset: 0;
  background: var(--gc-scanline);
  pointer-events: none;
  opacity: 0.25;
}
.fleet-target-block::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 8px;
  height: 8px;
  border-top: 1px solid var(--gc-neon-cyan);
  border-left: 1px solid var(--gc-neon-cyan);
  pointer-events: none;
}
.fleet-send-panel.is-expedition-mode .fleet-target-block{
  border-color: rgba(70, 229, 255, 0.28);
  box-shadow: var(--gc-border-glow), inset 0 0 0 1px rgba(70, 229, 255, 0.06);
}
.fleet-target-block > *,
.fleet-preview-hud > *{
  position: relative;
  z-index: 1;
}
.fleet-mission-speed-row{
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}
@media (max-width: 640px){
  .fleet-mission-speed-row{ grid-template-columns: 1fr; }
  .fleet-ship-card-grid{
    grid-template-columns: repeat(auto-fill, minmax(88px, 100px));
    gap: 5px;
  }
  .fleet-page{
    overflow-x: clip;
  }
  .fleet-command-grid,
  .fleet-command-main,
  .fleet-command-side{
    min-width: 0;
  }
}

@media (min-width: 1440px){
  .fleet-ship-card-grid{
    grid-template-columns: repeat(auto-fill, minmax(108px, 120px));
  }
}
.fleet-form-row--inline{ margin-bottom: 0; }
.fleet-send-form > .fleet-form-row:first-child{
  position: relative;
  z-index: 6;
}
.fleet-ships-fieldset,
.fleet-resources-fieldset{
  position: relative;
  z-index: 1;
}
.fleet-page .fleet-mission-control-panel,
.fleet-page .fleet-send-panel.fleet-ogame-top,
.fleet-page .fleet-target-block,
.fleet-page .fleet-ogame-mission-row,
.fleet-page .fleet-submit-panel,
.logistics-page .logistics-shell{
  overflow: visible;
}
.fleet-target-block{
  position: relative;
  z-index: 2;
}
.fleet-ogame-mission-row{
  position: relative;
  z-index: 3;
}
.fleet-target-inline-error{
  margin: 6px 0 0;
  font-size: 0.82rem;
}
.fleet-target-inline-error.is-blocked{
  color: #ff8a80;
}
.logistics-page--embedded .logistics-tabs{
  display: none;
}
.fleet-submit-panel{
  padding: 10px 12px;
}
.fleet-page .gc-hud-select.is-open{
  z-index: var(--gc-z-dropdown);
}
.logistics-page .gc-hud-select.is-open{
  z-index: var(--gc-z-dropdown);
}
.fleet-page .gc-hud-select-menu,
.logistics-page .gc-hud-select-menu{
  z-index: var(--gc-z-dropdown);
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.22);
  background: linear-gradient(180deg, rgba(8, 14, 28, 0.98), rgba(6, 10, 22, 0.96));
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.55), var(--gc-border-glow);
}
.fleet-page .gc-hud-select-trigger,
.logistics-page .gc-hud-select-trigger{
  display: flex;
  align-items: center;
  width: 100%;
  min-height: 38px;
  padding: 7px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.22);
  background: linear-gradient(180deg, rgba(8, 14, 28, 0.98), rgba(6, 10, 22, 0.96));
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
  color: rgba(215, 246, 255, 0.94);
}
.fleet-page .gc-hud-select-trigger:hover,
.logistics-page .gc-hud-select-trigger:hover{
  border-color: rgba(70, 229, 255, 0.38);
  box-shadow: var(--gc-border-glow), inset 0 0 0 1px rgba(0, 0, 0, 0.35);
}
.fleet-page .gc-hud-select.is-open .gc-hud-select-trigger,
.logistics-page .gc-hud-select.is-open .gc-hud-select-trigger{
  border-color: rgba(70, 229, 255, 0.48);
  box-shadow: var(--gc-border-glow-strong), inset 0 0 12px rgba(70, 229, 255, 0.06);
}
.fleet-page .gc-hud-select-value,
.logistics-page .gc-hud-select-value{
  color: rgba(215, 246, 255, 0.94);
}
.fleet-page .gc-hud-select-chevron,
.logistics-page .gc-hud-select-chevron{
  color: rgba(127, 255, 217, 0.65);
}
.fleet-form-inline .gc-hud-select{
  flex: 1 1 200px;
  min-width: 0;
}
.fleet-mission-speed-row .gc-hud-select,
.fleet-mass-expo-form .gc-hud-select,
.logistics-page .logistics-hub-select{
  width: 100%;
}
.fleet-colony-chips{ display: flex; flex-wrap: wrap; gap: 8px; }
.fleet-colony-chip{
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 2px;
  min-width: 120px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-border-bright);
  background: var(--gc-panel-bg-2);
  color: var(--gc-text-soft);
  font-size: 0.78rem;
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.4);
  transition: border-color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease, color 0.12s ease;
}
.fleet-colony-chip::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 6px;
  height: 6px;
  border-top: 1px solid var(--gc-neon-cyan);
  border-left: 1px solid var(--gc-neon-cyan);
  opacity: 0.45;
  pointer-events: none;
}
.fleet-colony-chip:hover{
  border-color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.08);
  color: var(--gc-text);
  box-shadow: inset 0 0 12px rgba(70, 229, 255, 0.08);
}
.fleet-colony-chip:hover::after{ opacity: 1; }
.fleet-colony-chip.is-selected,
.fleet-colony-chip.is-active.is-selected{
  border-color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.1);
  color: var(--gc-text);
  box-shadow: var(--gc-border-glow-strong);
}
.fleet-colony-chip.is-selected::after{ opacity: 1; }
.fleet-chip-label{
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.68rem;
}
.fleet-chip-coords{
  font-size: 0.76rem;
  opacity: 0.9;
}
.fleet-colony-chip--expedition{
  border-color: rgba(255, 176, 32, 0.35);
  background: rgba(255, 176, 32, 0.04);
  color: var(--gc-text-soft);
}
.fleet-colony-chip--expedition::after{
  border-color: var(--gc-neon-gold);
}
.fleet-colony-chip--expedition .fleet-chip-label{ color: var(--gc-neon-gold); }
.fleet-colony-chip--expedition.is-selected,
.fleet-colony-chip--expedition:hover{
  border-color: var(--gc-neon-gold);
  background: rgba(255, 176, 32, 0.1);
  box-shadow: inset 0 0 12px rgba(255, 176, 32, 0.08), 0 0 0 1px rgba(255, 176, 32, 0.2);
}
.fleet-preview-hud{
  position: relative;
  margin: 14px 0;
  padding: 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-panel-border-strong);
  background: var(--gc-panel-bg);
  box-shadow: var(--gc-border-glow), inset 0 0 0 1px rgba(0, 0, 0, 0.45);
  overflow: hidden;
}
.fleet-preview-hud.fleet-preview-hud--inline,
.fleet-send-compact .fleet-preview-hud{
  margin: 0;
  padding: 6px 8px;
  box-shadow: none;
  border-color: rgba(120, 190, 255, 0.14);
  background: rgba(5, 10, 22, 0.72);
}
.fleet-preview-hud.fleet-preview-hud--inline::before,
.fleet-preview-hud.fleet-preview-hud--inline::after,
.fleet-send-compact .fleet-preview-hud::before,
.fleet-send-compact .fleet-preview-hud::after{
  display: none;
}
.fleet-preview-hud::before{
  content: "";
  position: absolute;
  inset: 0;
  background: var(--gc-scanline);
  pointer-events: none;
  opacity: 0.25;
}
.fleet-preview-hud::after{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 8px;
  height: 8px;
  border-top: 1px solid var(--gc-neon-cyan);
  border-left: 1px solid var(--gc-neon-cyan);
  pointer-events: none;
}
.fleet-preview-hud.is-expedition{
  border-color: rgba(70, 229, 255, 0.28);
}
.fleet-preview-hud.is-ready{
  box-shadow: inset 0 0 0 1px rgba(95, 211, 141, 0.12);
}
.fleet-preview-hud.is-blocked{
  box-shadow: inset 0 0 0 1px rgba(255, 107, 107, 0.12);
}
.fleet-preview-hud-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(120, 190, 255, 0.12);
}
.fleet-preview-mission-badge{
  color: var(--gc-neon-cyan);
  border-color: rgba(70, 229, 255, 0.28);
  background: rgba(70, 229, 255, 0.08);
}
.fleet-preview-hud.is-expedition .fleet-preview-mission-badge{
  color: var(--gc-neon-gold);
  border-color: rgba(255, 176, 32, 0.35);
  background: rgba(255, 176, 32, 0.08);
}
.fleet-preview-grid{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
}
@media (max-width: 520px){
  .fleet-preview-grid{ grid-template-columns: 1fr; }
}
.fleet-preview-stat{
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.fleet-preview-stat-label{
  font-size: 0.66rem;
  font-family: var(--gc-mono);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gc-text-soft);
}
.fleet-preview-stat-value{
  font-size: 0.86rem;
  color: var(--gc-text);
  word-break: break-word;
}
.fleet-send-submit{
  width: 100%;
  margin-top: 4px;
  padding: 12px 16px;
  font-size: 0.92rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.fleet-send-submit:disabled{
  opacity: 0.45;
  cursor: not-allowed;
}
.fleet-send-submit.is-busy,
.fleet-send-submit.is-loading{
  opacity: 0.62;
  cursor: default;
  border-color: rgba(127, 255, 217, 0.38);
  color: rgba(180, 245, 255, 0.92);
}
.fleet-send-submit-icon{
  font-size: 0.75rem;
  opacity: 0.85;
}
.fleet-resource-row--metal label{ color: #94a3b8; }
.fleet-resource-row--crystal label{ color: #7dd3fc; }
.fleet-resource-row--fuel label{ color: #fbbf24; }
.fleet-resource-input{
  width: 100%;
  min-width: 0;
  max-width: none;
  padding: 6px 8px;
  text-align: right;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.18);
  background: rgba(3, 8, 18, 0.85);
  color: var(--gc-neon-cyan);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 0 0 10px rgba(0, 0, 0, 0.28);
  appearance: textfield;
  -moz-appearance: textfield;
}
.fleet-resource-input:hover{
  border-color: rgba(70, 229, 255, 0.32);
}
.fleet-resource-input:focus{
  outline: none;
  border-color: rgba(70, 229, 255, 0.45);
  box-shadow: 0 0 0 2px rgba(70, 229, 255, 0.12);
}
.fleet-slots-value{ color: var(--gc-neon-cyan); font-weight: 700; }
.fleet-preview-box{
  margin: 12px 0;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: rgba(5, 10, 22, 0.58);
}
.fleet-preview-row{
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.88rem;
  color: var(--gc-text-soft);
}
.fleet-preview-mission-status{
  font-weight: 600;
  text-align: right;
}
.fleet-preview-mission-status.is-ok{ color: var(--gc-success, #5fd38d); }
.fleet-preview-mission-status.is-blocked{ color: var(--gc-danger, #ff6b6b); }
.fleet-mission-feedback{
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: rgba(5, 10, 22, 0.45);
  font-size: 0.84rem;
  line-height: 1.45;
  color: var(--gc-text-soft);
}
.fleet-mission-feedback.is-info{
  border-color: rgba(70, 229, 255, 0.22);
  background: rgba(70, 229, 255, 0.06);
}
.fleet-mission-feedback.is-ok{
  border-color: rgba(95, 211, 141, 0.28);
  background: rgba(95, 211, 141, 0.08);
  color: var(--gc-text);
}
.fleet-mission-locks-banner{
  margin: 0 0 var(--gc-space-md, 12px);
  border: 1px solid color-mix(in srgb, var(--gc-danger, #ff6b6b) 45%, transparent);
  border-radius: var(--gc-radius-md, 8px);
  background: color-mix(in srgb, var(--gc-danger, #ff6b6b) 12%, var(--gc-panel-bg, #12141c));
}
.fleet-mission-locks-banner-inner{
  padding: 10px 14px;
}
.fleet-mission-locks-banner-title{
  margin: 0 0 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--gc-danger, #ff6b6b);
}
.fleet-mission-locks-banner-list{
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 4px;
}
.fleet-mission-locks-banner-item{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  font-size: 0.82rem;
  color: var(--gc-text-muted, #a8b0c0);
}
.fleet-mission-locks-banner-item strong{
  color: var(--gc-text, #e8ecf4);
  font-weight: 600;
}
.fleet-mission-select option:disabled{
  color: var(--gc-text-muted, #888);
}
.fleet-mission-feedback.is-warn{
  border-color: rgba(255, 196, 86, 0.28);
  background: rgba(255, 196, 86, 0.08);
  color: var(--gc-text);
}
.fleet-mission-feedback-text{ margin: 0; }
.fleet-active-card--expedition{
  border-color: rgba(70, 229, 255, 0.28);
  background: rgba(8, 16, 36, 0.42);
}
.fleet-active-mission--expedition{ color: var(--gc-neon-gold); }
.fleet-active-mission--collect{ color: var(--gc-neon-cyan); }
.fleet-active-mission--transport{ color: rgba(127, 255, 217, 0.88); }
.fleet-active-mission--spy{ color: #7dd3fc; }
.fleet-active-mission--attack{ color: #fca5a5; }
.fleet-active-mission--colonize{ color: #86efac; }
.fleet-active-mission--recycle{ color: #fbbf24; }
.fleet-ship-row--mission-focus{
  outline: 1px solid rgba(251, 191, 36, 0.45);
  border-radius: var(--gc-radius-sm, 6px);
}
.galaxy-fleet-action--recycle{ color: #fbbf24; }
.galaxy-fleet-action--recycle:hover{ color: #fcd34d; }
.galaxy-fleet-action--relocate{ color: var(--gc-neon-cyan, #46e5ff); }
.galaxy-fleet-action--relocate:hover,
.galaxy-fleet-action--relocate:focus-visible{ color: #7ff4ff; }
.galaxy-relocation-hint{ margin: 0; font-size: 0.82rem; }
.fleet-preview-stat--debris .fleet-preview-stat-value{ color: #fbbf24; }
.gc-expedition-report{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.gc-expedition-card{
  position: relative;
  overflow: hidden;
  padding: 14px 14px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.18);
  background:
    linear-gradient(135deg, rgba(8, 16, 36, 0.92) 0%, rgba(5, 10, 22, 0.88) 100%);
}
.gc-expedition-card::before{
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: var(--gc-expedition-accent, rgba(125, 211, 252, 0.75));
}
.gc-expedition-card-top{
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.gc-expedition-card-icon{
  flex: 0 0 auto;
  width: 2rem;
  height: 2rem;
  display: grid;
  place-items: center;
  border-radius: var(--gc-radius-sm);
  font-size: 1.1rem;
  line-height: 1;
  color: var(--gc-expedition-accent, #7dd3fc);
  border: 1px solid color-mix(in srgb, var(--gc-expedition-accent, #7dd3fc) 35%, transparent);
  background: color-mix(in srgb, var(--gc-expedition-accent, #7dd3fc) 12%, transparent);
}
.gc-expedition-card-headings{
  flex: 1;
  min-width: 0;
}
.gc-expedition-card-title{
  margin: 0;
  font-size: 1.02rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text);
  line-height: 1.25;
}
.gc-expedition-card-badge{
  display: inline-flex;
  margin-top: 6px;
  padding: 2px 8px;
  border-radius: var(--gc-radius-sm);
  font-size: 0.62rem;
  font-family: var(--gc-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-expedition-accent, #7dd3fc);
  border: 1px solid color-mix(in srgb, var(--gc-expedition-accent, #7dd3fc) 40%, transparent);
  background: color-mix(in srgb, var(--gc-expedition-accent, #7dd3fc) 10%, transparent);
}
.gc-expedition-card-meta{
  margin: 10px 0 0;
  font-size: 0.74rem;
  letter-spacing: 0.03em;
  color: var(--gc-text-soft);
}
.gc-expedition-card-desc{
  margin: 10px 0 0;
  font-size: 0.86rem;
  line-height: 1.55;
  color: var(--gc-text);
}
.gc-expedition-card-coords{
  margin-top: 10px;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  color: var(--gc-neon-cyan);
  opacity: 0.85;
}
.gc-expedition-card--fund{
  --gc-expedition-accent: #5eead4;
  border-color: rgba(45, 212, 191, 0.28);
  background: linear-gradient(135deg, rgba(6, 28, 28, 0.92) 0%, rgba(5, 14, 24, 0.9) 100%);
}
.gc-expedition-card--disturbance{
  --gc-expedition-accent: #fbbf24;
  border-color: rgba(251, 191, 36, 0.32);
  background: linear-gradient(135deg, rgba(36, 24, 6, 0.92) 0%, rgba(14, 12, 8, 0.9) 100%);
}
.gc-expedition-card--alert{
  --gc-expedition-accent: #fb923c;
  border-color: rgba(251, 146, 60, 0.32);
  background: linear-gradient(135deg, rgba(36, 14, 8, 0.92) 0%, rgba(18, 8, 10, 0.9) 100%);
}
.gc-expedition-card--relic{
  --gc-expedition-accent: #ffb020;
  border-color: rgba(255, 176, 32, 0.34);
  background: linear-gradient(135deg, rgba(24, 18, 8, 0.94) 0%, rgba(12, 10, 8, 0.92) 100%);
}
.gc-expedition-card--anomaly{
  --gc-expedition-accent: #94a3b8;
  border-color: rgba(148, 163, 184, 0.28);
  background: linear-gradient(135deg, rgba(12, 18, 32, 0.92) 0%, rgba(8, 12, 22, 0.9) 100%);
}
.gc-expedition-card--combat{
  --gc-expedition-accent: #f87171;
  border-color: rgba(248, 113, 113, 0.34);
  background: linear-gradient(135deg, rgba(36, 10, 10, 0.94) 0%, rgba(16, 8, 12, 0.92) 100%);
}
.gc-expedition-card--treasure{
  --gc-expedition-accent: #fcd34d;
  border-color: rgba(252, 211, 77, 0.34);
  background: linear-gradient(135deg, rgba(36, 28, 6, 0.94) 0%, rgba(16, 14, 8, 0.92) 100%);
}
.gc-expedition-card--legendary{
  --gc-expedition-accent: #e879f9;
  border-color: rgba(232, 121, 249, 0.38);
  background: linear-gradient(135deg, rgba(36, 8, 36, 0.94) 0%, rgba(14, 8, 28, 0.92) 100%);
  box-shadow: inset 0 0 32px rgba(232, 121, 249, 0.08);
}
.gc-expedition-pirate-summary{
  margin: 0 0 10px;
  font-size: 0.86rem;
  line-height: 1.5;
  color: var(--gc-text-soft);
}
.gc-combat-report-panel--pirate{
  border-color: rgba(248, 113, 113, 0.28);
  background: rgba(36, 10, 10, 0.35);
}
.gc-combat-report-panel--salvaged{
  border-color: rgba(94, 234, 212, 0.28);
  background: rgba(6, 28, 28, 0.35);
}
.gc-expedition-card--hazard{
  --gc-expedition-accent: #f97316;
  border-color: rgba(249, 115, 22, 0.34);
  background: linear-gradient(135deg, rgba(36, 18, 6, 0.94) 0%, rgba(18, 10, 8, 0.92) 100%);
}
.gc-expedition-hazard-summary{
  margin: 0 0 10px;
  font-size: 0.86rem;
  line-height: 1.5;
  color: var(--gc-text-soft);
}
.gc-expedition-legendary-summary{
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.5;
  color: var(--gc-text-soft);
}
.gc-combat-report-panel--legendary{
  border-color: rgba(232, 121, 249, 0.32);
  background: rgba(36, 8, 36, 0.35);
}
.gc-combat-report-shell--expedition[data-theme="legendary"] .gc-combat-report-hero--expedition{
  border-color: rgba(232, 121, 249, 0.38);
  box-shadow: inset 0 0 28px rgba(232, 121, 249, 0.08);
}
.gc-combat-report-shell--expedition[data-theme="legendary"] .gc-combat-report-hero--expedition::before{
  background: rgba(232, 121, 249, 0.82);
}
.gc-combat-teaser--expedition[data-event="spatial_rift"]::before,
.gc-combat-teaser--expedition[data-event="time_anomaly"]::before,
.gc-combat-teaser--expedition[data-event="ancient_beacon"]::before,
.gc-combat-teaser--expedition[data-event="lost_colony"]::before,
.gc-combat-teaser--expedition[data-event="rogue_ai"]::before{
  background: rgba(232, 121, 249, 0.75);
}
.gc-combat-teaser--expedition[data-event="spatial_rift"] .gc-combat-teaser-badge,
.gc-combat-teaser--expedition[data-event="time_anomaly"] .gc-combat-teaser-badge,
.gc-combat-teaser--expedition[data-event="ancient_beacon"] .gc-combat-teaser-badge,
.gc-combat-teaser--expedition[data-event="lost_colony"] .gc-combat-teaser-badge,
.gc-combat-teaser--expedition[data-event="rogue_ai"] .gc-combat-teaser-badge{
  border-color: rgba(232, 121, 249, 0.42);
  color: #f0abfc;
}
.gc-combat-report-panel--hazard{
  border-color: rgba(249, 115, 22, 0.28);
  background: rgba(36, 18, 6, 0.35);
}
.gc-expedition-panel{
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.12);
  background: rgba(5, 10, 22, 0.42);
}
.gc-expedition-panel-title{
  margin: 0 0 6px;
  font-size: 0.68rem;
  font-family: var(--gc-mono);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gc-text-soft);
}
.gc-expedition-fleet-summary{
  margin: 0;
  font-size: 0.84rem;
  line-height: 1.5;
  color: var(--gc-text);
}
.gc-expedition-loot-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
  gap: 8px;
}
.gc-expedition-loot-chip{
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(94, 234, 212, 0.22);
  background: rgba(45, 212, 191, 0.07);
}
.gc-expedition-loot-chip--metal{
  border-color: rgba(148, 163, 184, 0.24);
  background: rgba(148, 163, 184, 0.06);
}
.gc-expedition-loot-chip--crystal{
  border-color: rgba(125, 211, 252, 0.24);
  background: rgba(125, 211, 252, 0.07);
}
.gc-expedition-loot-chip--fuel{
  border-color: rgba(251, 191, 36, 0.24);
  background: rgba(251, 191, 36, 0.07);
}
.gc-expedition-lootbox-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 10px;
}
.gc-expedition-lootbox-chip{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(167, 139, 250, 0.28);
  background: rgba(139, 92, 246, 0.08);
}
.gc-expedition-lootbox-chip-img{
  width: 42px;
  height: 42px;
  object-fit: contain;
  flex-shrink: 0;
}
.gc-expedition-lootbox-chip-body{
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.gc-expedition-lootbox-chip-label{
  font-size: 0.82rem;
  color: var(--gc-text-soft);
}
.gc-expedition-lootbox-chip-value{
  font-family: var(--gc-mono);
  font-size: 0.95rem;
  color: var(--gc-neon-cyan);
}
.gc-expedition-lootbox-chip--jackpot{
  border-color: rgba(251, 191, 36, 0.45);
  background: rgba(251, 191, 36, 0.12);
  box-shadow: 0 0 18px rgba(251, 191, 36, 0.15);
}
.gc-expedition-lootbox-chip--jackpot .gc-expedition-lootbox-chip-value{
  color: #fcd34d;
}
.gc-expedition-loot-label{
  font-size: 0.72rem;
  color: var(--gc-text-soft);
}
.gc-expedition-loot-value{
  font-family: var(--gc-mono);
  font-size: 0.95rem;
  color: var(--gc-neon-cyan);
}
.gc-expedition-loot-empty{
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px dashed rgba(148, 163, 184, 0.18);
  background: rgba(148, 163, 184, 0.04);
}
.gc-expedition-loot-empty-mark{
  font-family: var(--gc-mono);
  font-size: 0.9rem;
  color: rgba(148, 163, 184, 0.45);
}
.gc-expedition-loot-empty-text{
  font-size: 0.78rem;
  font-style: italic;
  letter-spacing: 0.02em;
  color: rgba(148, 163, 184, 0.72);
}
.gc-expedition-panel--loot-empty .gc-expedition-panel-title{
  opacity: 0.75;
}
.gc-expedition-report--ancient_stash .gc-expedition-loot-chip{
  border-color: rgba(255, 176, 32, 0.28);
  background: rgba(255, 176, 32, 0.08);
}
.gc-expedition-report--ancient_stash .gc-expedition-loot-value{
  color: #fcd34d;
}
.fleet-form-error{
  color: var(--gc-danger, #ff6b6b);
  font-size: 0.88rem;
  margin-bottom: 8px;
}
.fleet-active-list{ display: flex; flex-direction: column; gap: 8px; }
.fleet-active-card{
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-panel-border);
  background: var(--gc-panel-bg-2);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
}
.fleet-active-row{
  display: flex;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}
.fleet-active-target{
  margin-bottom: 6px;
}
.fleet-active-target-primary{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  margin-bottom: 2px;
}
.fleet-active-target-name{
  font-weight: 600;
  font-size: 0.95rem;
  color: var(--gc-text);
}
.fleet-active-origin-name{
  font-size: 0.85rem;
  color: var(--gc-text-soft);
}
.fleet-active-route-arrow{
  color: var(--gc-text-soft);
  font-size: 0.85rem;
}
.fleet-active-target-type{
  display: block;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gc-accent);
  margin-bottom: 4px;
}
.fleet-active-coords-secondary{
  font-size: 0.72rem;
  opacity: 0.72;
}
.fleet-preview-target-hero{
  margin: 0 0 10px;
  padding: 8px 10px;
  border: 1px solid rgba(120, 170, 220, 0.18);
  background: rgba(8, 16, 28, 0.45);
}
.fleet-preview-target-hero.is-empty{
  display: none;
}
.fleet-preview-target-name{
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--gc-text);
}
.fleet-preview-target-native-type{
  margin: 0.2rem 0 0;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gc-accent);
}
.fleet-preview-target-coords{
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  opacity: 0.75;
}
.fleet-preview-stat--legacy{ display: none; }
.fleet-active-mission{ font-weight: 600; color: var(--gc-text); }
.fleet-active-status{ color: var(--gc-accent); font-size: 0.85rem; }
.fleet-active-times{
  display: flex;
  flex-direction: column;
  gap: 2px;
  font-size: 0.85rem;
}
.fleet-active-home{ color: var(--gc-text-muted, rgba(255,255,255,0.65)); }
.fleet-ship-chip{
  display: inline-block;
  margin: 2px 4px 2px 0;
  padding: 2px 6px;
  border-radius: var(--gc-radius-sm);
  background: rgba(70, 229, 255, 0.08);
  font-size: 0.78rem;
}
.fleet-preset-list{ list-style: none; margin: 0; padding: 0; }
.fleet-preset-item{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid rgba(120, 190, 255, 0.1);
}
.fleet-preset-type{
  font-size: 0.75rem;
  padding: 2px 6px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.25);
}
.fleet-preset-actions{ margin-left: auto; display: flex; gap: 4px; }
.fleet-panel-disabled{ opacity: 0.72; }
.fleet-coming-soon{
  font-size: 0.75rem;
  padding: 4px 8px;
  border-radius: var(--gc-radius-sm);
  background: rgba(255, 200, 80, 0.12);
  color: #ffc850;
}
.fleet-logistics-actions{ display: flex; gap: 8px; flex-wrap: wrap; }

/* Logistics page (Genesis HUD ? aligned with fleet / buildings) */
.logistics-page .logistics-tabs{
  margin: 0 0 12px;
}
.logistics-page .logistics-tab{
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.logistics-page .logistics-tab.is-disabled,
.logistics-page .logistics-tab:disabled{
  opacity: 0.55;
  cursor: not-allowed;
  box-shadow: none;
}
.logistics-page .logistics-tab-badge{
  font-size: 0.68rem;
  letter-spacing: 0.04em;
}
.logistics-slots-badge{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
}
.logistics-slots-free{
  font-size: 0.72rem;
  color: var(--gc-text-dim);
}
.logistics-layout{
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
@media (max-width: 960px){
  .logistics-layout{ grid-template-columns: 1fr; }
}
.logistics-layout-col{ min-width: 0; }
.logistics-select-all-row{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin: 8px 0 4px;
}
.logistics-auto-cargo-hint{ margin: 0 0 12px; }
.logistics-hub-row{ margin-bottom: 12px; }
.logistics-hub-select{ width: 100%; max-width: 100%; }
.logistics-toolbar{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}
.logistics-toolbar-main{
  flex: 1;
  min-width: 0;
}
.logistics-hub-hint{
  margin: 4px 0 0;
  font-size: 0.78rem;
}
.logistics-help-btn{
  flex: 0 0 auto;
  margin-top: 18px;
  min-width: 28px;
  border-radius: var(--gc-radius-sm);
}
.logistics-source-ships{
  display: block;
  font-size: 0.75rem;
  opacity: 0.85;
  margin-top: 2px;
}
.logistics-hub-stock{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 12px;
  margin-top: 6px;
  font-size: 0.8rem;
  color: var(--gc-text-soft);
}
.logistics-hub-stock-label{
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--gc-text-dim);
}
.logistics-hub-stock-values{
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px 12px;
}
.logistics-source-hub-tag{
  display: none;
  font-size: 0.62rem;
}
.logistics-colony-card.is-hub{
  border-color: rgba(120, 190, 255, 0.35);
  background: rgba(20, 40, 70, 0.35);
}
.logistics-colony-card.is-hub .logistics-source-hub-tag{
  display: inline-flex;
}
.logistics-colony-card.is-hub .logistics-source-cb,
.logistics-colony-card.is-hub .logistics-source-check{
  opacity: 0.35;
  pointer-events: none;
}
.logistics-help-modal .logistics-help-dialog{
  max-width: 520px;
}
.logistics-help-modal .logistics-help-lead{
  margin: 0 0 10px;
  font-size: 0.9rem;
}
.logistics-help-modal .logistics-help-list{
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 8px;
  font-size: 0.86rem;
}
.logistics-help-modal .logistics-help-list li + li{
  margin-top: 0;
}
.logistics-page--compact .fleet-ship-input{
  width: 64px;
  min-width: 64px;
  min-height: 28px;
  padding: 5px 6px;
  font-size: 0.82rem;
}
.logistics-page--compact .fleet-resource-input{
  width: 88px;
  min-width: 88px;
  min-height: 28px;
  padding: 5px 6px;
  font-size: 0.82rem;
}
/* Logistics distribute: full-width inputs for large formatted totals (billions+). */
#logistics-distribute-form .logistics-resources-fieldset{
  width: 100%;
  min-width: 0;
}
#logistics-distribute-form .logistics-resource-grid{
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
}
#logistics-distribute-form .logistics-resource-row,
.logistics-panel--distribute .logistics-resource-row,
.logistics-page--compact #logistics-distribute-form .logistics-resource-row{
  display: grid;
  grid-template-columns: minmax(5.5rem, 7.5rem) minmax(12rem, 1fr) auto;
  gap: 8px;
  align-items: center;
  width: 100%;
  flex-wrap: nowrap;
}
#logistics-distribute-form .logistics-resource-row .fleet-resource-label,
.logistics-panel--distribute .logistics-resource-row .fleet-resource-label,
.logistics-page--compact #logistics-distribute-form .logistics-resource-row .fleet-resource-label{
  flex: none;
  min-width: 0;
  white-space: nowrap;
}
#logistics-distribute-form .logistics-resource-input,
.logistics-panel--distribute .logistics-resource-input,
.logistics-page--compact #logistics-distribute-form .logistics-resource-input,
.logistics-page--compact .logistics-panel--distribute .logistics-resource-input{
  width: 100%;
  min-width: 12rem;
  max-width: none;
  min-height: 36px;
  padding: 8px 10px;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
  text-align: right;
  overflow-x: auto;
}
#logistics-distribute-form .fleet-res-max-btn,
.logistics-panel--distribute .fleet-res-max-btn{
  min-width: 3.25rem;
  justify-self: start;
  flex: none;
}
@media (max-width: 560px){
  #logistics-distribute-form .logistics-resource-row,
  .logistics-panel--distribute .logistics-resource-row,
  .logistics-page--compact #logistics-distribute-form .logistics-resource-row{
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "label max"
      "input input";
  }
  #logistics-distribute-form .logistics-resource-row .fleet-resource-label,
  .logistics-panel--distribute .logistics-resource-row .fleet-resource-label{
    grid-area: label;
  }
  #logistics-distribute-form .logistics-resource-input,
  .logistics-panel--distribute .logistics-resource-input,
  .logistics-page--compact #logistics-distribute-form .logistics-resource-input{
    grid-area: input;
    min-width: 0;
    min-height: 42px;
    font-size: 1.05rem;
  }
  #logistics-distribute-form .fleet-res-max-btn,
  .logistics-panel--distribute .fleet-res-max-btn{
    grid-area: max;
    justify-self: end;
  }
}
.logistics-sources-fieldset{ margin-top: 4px; }
.logistics-sources-list{
  list-style: none;
  margin: 10px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.logistics-source-card[hidden]{ display: none; }
.logistics-source-label{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 0;
  cursor: pointer;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.14);
  background: rgba(5, 10, 22, 0.5);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
  transition: border-color 0.15s ease, box-shadow 0.15s ease, background 0.15s ease;
}
.logistics-source-label:hover{
  border-color: rgba(70, 229, 255, 0.28);
  background: rgba(7, 14, 32, 0.62);
}
.logistics-source-card.is-selected .logistics-source-label{
  border-color: rgba(70, 229, 255, 0.55);
  box-shadow: var(--gc-border-glow-soft), inset 0 0 0 1px rgba(70, 229, 255, 0.12);
  background: rgba(7, 18, 40, 0.72);
}
.logistics-source-cb{
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  overflow: hidden;
}
.logistics-source-check{
  flex: 0 0 auto;
  width: 18px;
  height: 18px;
  margin-top: 2px;
  border-radius: 4px;
  border: 1px solid rgba(120, 190, 255, 0.35);
  background: rgba(3, 8, 18, 0.8);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.4);
}
.logistics-source-card.is-selected .logistics-source-check{
  border-color: rgba(70, 229, 255, 0.75);
  background: rgba(70, 229, 255, 0.2);
  box-shadow: var(--gc-border-glow-soft);
}
.logistics-source-card.is-selected .logistics-source-check::after{
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  margin: 4px auto 0;
  border-radius: 2px;
  background: var(--gc-accent);
}
.logistics-source-card-body{
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  flex: 1 1 auto;
}
.logistics-source-head{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.logistics-source-name{
  font-weight: 700;
  color: var(--gc-text);
  letter-spacing: 0.02em;
}
.logistics-source-active-tag{
  font-size: 0.62rem;
}
.logistics-source-coords{
  font-size: 0.82rem;
  color: var(--gc-text-dim);
}
.logistics-source-resources{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  font-size: 0.8rem;
  color: var(--gc-text-soft);
}
.logistics-empty-colonies,
.logistics-phase-hint{
  margin: 8px 0 0;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px dashed rgba(120, 190, 255, 0.2);
  background: rgba(5, 10, 22, 0.35);
}
.logistics-form-row{ margin-bottom: 14px; }
.logistics-hint{ margin: 4px 0 0; }
.logistics-plan-hud{
  margin: 12px 0 0;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(5, 12, 28, 0.55);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
}
.logistics-plan-hud::before{
  content: "";
  display: block;
  height: 2px;
  margin: -10px -12px 10px;
  border-radius: var(--gc-radius-sm) var(--gc-radius-sm) 0 0;
  background: linear-gradient(90deg, transparent, rgba(70, 229, 255, 0.45), transparent);
}
.logistics-plan-hud.is-warning{
  border-color: rgba(255, 176, 32, 0.35);
  background: rgba(40, 28, 8, 0.45);
}
.logistics-plan-hud.is-warning::before{
  background: linear-gradient(90deg, transparent, rgba(255, 176, 32, 0.5), transparent);
}
.logistics-plan-hud-head{
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}
.logistics-plan-badge{
  letter-spacing: 0.08em;
}
.logistics-summary{
  margin: 0;
  font-size: 0.88rem;
  line-height: 1.45;
  color: var(--gc-text-soft);
}
.logistics-error{ margin: 10px 0 0; }
.logistics-actions{
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(120, 190, 255, 0.1);
}
.logistics-page .gc-fieldset,
.logistics-page .fleet-ships-fieldset{
  border: none;
  margin: 0;
  padding: 0;
}
.logistics-page .gc-fieldset-legend{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  letter-spacing: 0.06em;
  color: var(--gc-primary);
  font-weight: 800;
  padding: 0 0 6px;
}
.fleet-empty, .fleet-unavailable, .fleet-preset-empty{ color: var(--gc-text-dim); }

/* Alliance */
.alliance-roadmap{ margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(120, 190, 255, 0.12); }
.alliance-roadmap-title{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  letter-spacing: 0.06em;
  color: var(--gc-primary);
  font-weight: 900;
  margin-bottom: 8px;
}
.alliance-pill-row{ display: flex; flex-wrap: wrap; gap: 8px; }
.alliance-note{ margin-top: 10px; color: var(--gc-text-dim); }

/* =========================
   21) Ranking
   ========================= */
.ranking-panel-full{ width: 100%; }

.ranking-page,
.ranking-panel-body,
.ranking-table-content{
  max-width: 100%;
}

.gc-ranking-panel-head{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
  max-width: 100%;
  min-width: 0;
}

.gc-ranking-panel-head-text{
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.gc-ranking-my-strip{
  display: flex;
  align-items: center;
  gap: 14px;
  flex-wrap: wrap;
  margin-left: auto;
  min-width: 0;
  max-width: 100%;
}

.gc-ranking-my-rank,
.gc-ranking-my-score{
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 8px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(5, 10, 22, 0.62);
  min-width: 0;
  max-width: min(168px, 100%);
}

.gc-ranking-my-label{
  color: var(--gc-text-dim);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

.gc-ranking-my-value{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-weight: 800;
  font-size: 1.15rem;
  font-variant-numeric: tabular-nums;
  color: var(--gc-primary-2);
}

.gc-ranking-body{
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
}

.gc-ranking-tabs{
  padding: 4px 0 8px;
  max-width: 100%;
  min-width: 0;
}

.ranking-hint{ margin-top: 10px; color: var(--gc-text-soft); }

.ranking-table-wrapper{
  max-width: 100%;
  overflow-x: hidden;
}

/* Social ranking list */
.gc-ranking{
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

.gc-ranking-desktop{ display: block; }
.gc-ranking-mobile{ display: none; }

.gc-ranking-table{
  width: 100%;
  border-collapse: separate;
  border-spacing: 0 8px;
  table-layout: fixed;
}

.gc-ranking-table thead th{
  padding: 8px 12px;
  text-align: left;
  color: var(--gc-text-dim);
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  font-weight: 600;
  border-bottom: 1px solid rgba(120, 190, 255, 0.14);
}

.gc-ranking-table thead th.gc-ranking-score,
.gc-ranking-table tbody td.gc-ranking-score{
  text-align: right;
  width: 140px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-ranking-table thead th.gc-ranking-place,
.gc-ranking-table tbody td.gc-ranking-place{
  width: 72px;
}

.gc-ranking-table thead th.gc-ranking-col-alliance,
.gc-ranking-table tbody td.gc-ranking-col-alliance{
  width: 180px;
}

.gc-ranking-row td{
  padding: 12px;
  vertical-align: middle;
  background: rgba(5, 10, 22, 0.58);
  border-top: 1px solid rgba(120, 190, 255, 0.10);
  border-bottom: 1px solid rgba(120, 190, 255, 0.10);
  transition: transform 0.16s ease, box-shadow 0.16s ease, background 0.16s ease;
}

.gc-ranking-row td:first-child{
  border-left: 1px solid rgba(120, 190, 255, 0.10);
  border-radius: var(--gc-radius-sm) 0 0 var(--gc-radius-sm);
}

.gc-ranking-row td:last-child{
  border-right: 1px solid rgba(120, 190, 255, 0.10);
  border-radius: 0 var(--gc-radius-sm) var(--gc-radius-sm) 0;
}

.gc-ranking-row:hover td{
  background: rgba(8, 16, 34, 0.78);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  transform: translateY(-1px);
}

/* ?? Hall of Fame (GC-700B ranking layout) ???????????????????????????????? */

.gc-hof-page{
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 100%;
  min-width: 0;
}

.gc-hof-panel{
  max-width: 100%;
  min-width: 0;
}

.gc-hof-body-wrap{
  gap: 10px;
}

.gc-hof-tabs{
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 6px;
  padding: 4px 0 8px;
}

.gc-hof-tabs .gc-hof-tab{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  min-height: 0;
  height: auto;
  flex: 1 1 0;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.18);
  border-left: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(5, 10, 22, 0.55);
  box-shadow: none;
  color: var(--gc-text-soft);
  text-decoration: none;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  text-shadow: none;
  white-space: nowrap;
}

.gc-hof-tabs .gc-hof-tab:hover{
  border-color: rgba(120, 190, 255, 0.32);
  border-left-color: rgba(120, 190, 255, 0.32);
  color: var(--gc-text);
  background: rgba(8, 16, 34, 0.72);
  box-shadow: none;
  transform: none;
}

.gc-hof-tabs .gc-hof-tab.active{
  border-color: rgba(70, 229, 255, 0.45);
  border-left-color: rgba(70, 229, 255, 0.45);
  color: var(--gc-primary-2);
  background: rgba(70, 229, 255, 0.08);
  box-shadow: inset 0 0 0 1px rgba(70, 229, 255, 0.12);
  text-shadow: none;
}

.gc-hof-my-strip{
  margin: 0;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 216, 106, 0.22);
  background: rgba(255, 216, 106, 0.05);
  color: var(--gc-text-soft);
  font-size: 0.84rem;
  line-height: 1.45;
}

.gc-hof-body{
  padding: 0;
  max-width: 100%;
  min-width: 0;
  overflow-x: hidden;
}

.gc-hof-empty{
  margin: 0;
  padding: 18px 4px;
  color: var(--gc-text-soft);
}

.gc-hof-table{
  table-layout: auto;
  width: 100%;
}

.gc-hof-table thead th{
  white-space: nowrap;
}

.gc-hof-table .gc-ranking-place{
  width: 56px;
}

.gc-hof-col-name{
  min-width: 88px;
  white-space: normal;
  word-break: break-word;
  line-height: 1.35;
}

.gc-hof-col-num{
  text-align: right;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  padding-left: 8px;
}

.gc-hof-col-action{
  width: 1%;
  white-space: nowrap;
  text-align: right;
}

.gc-hof-commander{
  display: inline;
  font-weight: 600;
}

.gc-hof-commander--atk{ color: #ff9b7a; }
.gc-hof-commander--def{ color: #8ec8ff; }

.gc-hof-row.gc-ranking-row--top-1 td:first-child{
  box-shadow: inset 3px 0 0 #ffd86a;
}

.gc-hof-row.gc-ranking-row--top-2 td:first-child{
  box-shadow: inset 3px 0 0 #d8e4ff;
}

.gc-hof-row.gc-ranking-row--top-3 td:first-child{
  box-shadow: inset 3px 0 0 #d4a574;
}

.gc-hof-report-btn{
  min-width: 0;
}

.gc-hof-action-empty{
  color: var(--gc-text-dim);
}

.gc-hof-desktop{ display: block; }
.gc-hof-mobile{ display: none; }

.gc-hof-mobile-row{
  padding: 12px 14px;
  border: 1px solid rgba(120, 190, 255, 0.14);
  border-radius: var(--gc-radius-sm);
  background: rgba(5, 10, 22, 0.58);
}

.gc-hof-mobile-row + .gc-hof-mobile-row{
  margin-top: 8px;
}

.gc-hof-mobile-head{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}

.gc-hof-mobile-date{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.82rem;
  color: var(--gc-text-soft);
}

.gc-hof-mobile-matchup{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px 8px;
  margin-bottom: 10px;
  font-size: 0.9rem;
}

.gc-hof-mobile-vs{
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}

.gc-hof-mobile-stats{
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px 12px;
  margin: 0;
}

.gc-hof-mobile-stats div{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.gc-hof-mobile-stats dt{
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}

.gc-hof-mobile-stats dd{
  margin: 0;
  font-weight: 700;
  color: var(--gc-primary-2);
}

@media (max-width: 820px){
  .gc-hof-desktop{ display: none; }
  .gc-hof-mobile{ display: block; }
}

@media (max-width: 480px){
  .gc-hof-tabs .gc-hof-tab{
    font-size: 0.64rem;
    padding: 8px 6px;
    letter-spacing: 0.03em;
  }
}

/* ?? Chronicles hub (GC-700C-D ? Genesis design) ???????????????????????? */

.gc-chronicles-page{
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 100%;
  min-width: 0;
}

.gc-chronicles-page--pvp{ --chronicles-accent: rgba(255, 140, 100, 0.95); }
.gc-chronicles-page--expeditions{ --chronicles-accent: rgba(70, 229, 255, 0.95); }
.gc-chronicles-page--records{ --chronicles-accent: rgba(255, 216, 106, 0.95); }

.gc-chronicles-header{
  margin-bottom: 0;
}

.gc-chronicles-header-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px 14px;
}

.gc-chronicles-kicker{
  display: inline-flex;
  align-items: center;
  min-height: 26px;
  padding: 4px 12px;
  border-radius: var(--gc-radius-pill);
  border: 1px solid rgba(120, 190, 255, 0.22);
  background: rgba(5, 10, 22, 0.62);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
  color: var(--chronicles-accent, var(--gc-primary-2));
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1;
}

.gc-chronicles-section-tabs{
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 6px;
  padding: 12px 14px 8px;
  margin: 0;
}

.gc-chronicles-shell > .gc-ranking-panel-head,
.gc-chronicles-shell > .gc-panel-header{
  padding-top: 0;
}

.gc-pvp-tabs{
  grid-template-columns: repeat(6, minmax(0, 1fr));
}

.gc-chronicles-expo-tabs{
  grid-template-columns: repeat(7, minmax(0, 1fr));
}

.gc-chronicles-panel{
  position: relative;
  overflow: hidden;
}

.gc-chronicles-panel::before{
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent,
    var(--chronicles-accent, var(--gc-primary-2)),
    transparent
  );
  opacity: 0.88;
  pointer-events: none;
}

.gc-chronicles-my-strip{
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid color-mix(in srgb, var(--chronicles-accent, #ffd86a) 28%, transparent);
  background: color-mix(in srgb, var(--chronicles-accent, #ffd86a) 6%, rgba(5, 10, 22, 0.55));
  color: var(--gc-text-soft);
  font-size: 0.84rem;
  line-height: 1.45;
}

.gc-chronicles-stats{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(118px, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.gc-chronicles-stat{
  position: relative;
  min-width: 0;
  padding: 12px 14px 12px 16px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: rgba(3, 8, 18, 0.72);
  box-shadow: 0 10px 24px rgba(0, 0, 0, 0.28);
  overflow: hidden;
}

.gc-chronicles-stat::before{
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--stat-accent, var(--gc-primary-2)), transparent);
  opacity: 0.95;
}

.gc-chronicles-stat-label{
  display: block;
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
  margin-bottom: 6px;
  line-height: 1.2;
}

.gc-chronicles-stat-value{
  font-size: clamp(0.95rem, 1.4vw, 1.08rem);
  font-weight: 800;
  color: var(--gc-text);
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
}

.gc-chronicles-stat--win{ --stat-accent: rgba(120, 255, 180, 0.95); }
.gc-chronicles-stat--win .gc-chronicles-stat-value{ color: rgba(160, 255, 200, 0.96); }
.gc-chronicles-stat--loss{ --stat-accent: rgba(255, 120, 120, 0.95); }
.gc-chronicles-stat--loss .gc-chronicles-stat-value{ color: rgba(255, 170, 170, 0.96); }
.gc-chronicles-stat--attack{ --stat-accent: rgba(255, 170, 110, 0.95); }
.gc-chronicles-stat--defense{ --stat-accent: rgba(120, 190, 255, 0.95); }
.gc-chronicles-stat--loot{ --stat-accent: rgba(255, 216, 106, 0.95); }
.gc-chronicles-stat--destroyed{ --stat-accent: rgba(255, 120, 90, 0.95); }
.gc-chronicles-stat--rank{ --stat-accent: rgba(180, 140, 255, 0.95); }
.gc-chronicles-stat--total{ --stat-accent: rgba(70, 229, 255, 0.95); }
.gc-chronicles-stat--legendary{ --stat-accent: rgba(200, 140, 255, 0.95); }
.gc-chronicles-stat--pirates{ --stat-accent: rgba(255, 120, 90, 0.95); }
.gc-chronicles-stat--biggest{ --stat-accent: rgba(127, 255, 217, 0.95); }

.gc-chronicles-expo-cat{
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--gc-radius-pill);
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  border: 1px solid rgba(120, 190, 255, 0.18);
  color: rgba(190, 215, 255, 0.9);
  background: rgba(5, 10, 22, 0.55);
  white-space: nowrap;
}

.gc-chronicles-expo-cat--loot{
  color: rgba(255, 220, 140, 0.96);
  border-color: rgba(255, 200, 90, 0.32);
  background: rgba(40, 28, 0, 0.42);
}
.gc-chronicles-expo-cat--combat{
  color: rgba(255, 170, 130, 0.96);
  border-color: rgba(255, 110, 70, 0.34);
  background: rgba(40, 12, 0, 0.42);
}
.gc-chronicles-expo-cat--hazard,
.gc-chronicles-expo-cat--delay{
  color: rgba(255, 150, 150, 0.96);
  border-color: rgba(255, 90, 90, 0.32);
  background: rgba(40, 8, 8, 0.42);
}
.gc-chronicles-expo-cat--treasure{
  color: rgba(180, 255, 210, 0.96);
  border-color: rgba(80, 220, 140, 0.32);
  background: rgba(0, 28, 16, 0.42);
}
.gc-chronicles-expo-cat--legendary{
  color: rgba(220, 180, 255, 0.98);
  border-color: rgba(180, 120, 255, 0.38);
  background: rgba(24, 8, 40, 0.48);
}
.gc-chronicles-expo-cat--neutral{
  color: rgba(200, 210, 230, 0.88);
}

.gc-chronicles-expo-table .gc-hof-col-name{
  max-width: 220px;
}

.gc-chronicles-records-grid{
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(232px, 1fr));
  gap: 12px;
}

.gc-chronicles-record-card{
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 156px;
  padding: 16px 16px 14px 18px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: rgba(3, 8, 18, 0.72);
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.3);
  overflow: hidden;
}

.gc-chronicles-record-card::before{
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--record-accent, var(--chronicles-accent, var(--gc-primary-2))), transparent);
  opacity: 0.95;
}

.gc-chronicles-record-card--biggest_battle{ --record-accent: rgba(255, 120, 90, 0.95); }
.gc-chronicles-record-card--biggest_expo_find{ --record-accent: rgba(127, 255, 217, 0.95); }
.gc-chronicles-record-card--biggest_debris{ --record-accent: rgba(170, 190, 220, 0.95); }
.gc-chronicles-record-card--biggest_loot{ --record-accent: rgba(255, 216, 106, 0.95); }
.gc-chronicles-record-card--rarest_expo_event{ --record-accent: rgba(200, 140, 255, 0.95); }
.gc-chronicles-record-card--pirate_losses_salvage{ --record-accent: rgba(255, 150, 110, 0.95); }

.gc-chronicles-record-card--empty{
  opacity: 0.72;
  box-shadow: none;
}

.gc-chronicles-record-title{
  margin: 0;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  color: var(--gc-text-dim);
  text-transform: uppercase;
}

.gc-chronicles-record-value{
  margin: 0;
  font-size: clamp(1.1rem, 2vw, 1.42rem);
  font-weight: 800;
  color: var(--gc-text);
  line-height: 1.15;
}

.gc-chronicles-record-subtitle,
.gc-chronicles-record-date,
.gc-chronicles-record-empty{
  margin: 0;
  font-size: 0.82rem;
}

.gc-chronicles-record-report-btn{
  margin-top: auto;
  align-self: flex-start;
}

.gc-chronicles-section-tab--soon{
  opacity: 0.55;
  cursor: not-allowed;
  pointer-events: none;
}

.gc-chronicles-soon-panel{
  padding: 20px;
}

@media (max-width: 900px){
  .gc-chronicles-expo-tabs{
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .gc-pvp-tabs{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 520px){
  .gc-chronicles-section-tabs{
    grid-template-columns: 1fr;
  }
  .gc-chronicles-expo-tabs{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gc-pvp-tabs{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gc-chronicles-stats{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ?? Expeditions + Records (Chronicles) ? legacy aliases ???????????????? */

.gc-chronicles-expo-tabs .gc-pvp-tab{ min-width: 0; }

/* ?? PvP section (Chronicles) ??????????????????????????????????????????? */

.gc-pvp-panel .gc-ranking-panel-head{
  flex-wrap: wrap;
  gap: 10px;
}
.gc-pvp-stats{
  /* legacy alias when used without .gc-chronicles-stats */
}

.gc-pvp-stat--win .gc-pvp-stat-value{ color: rgba(120, 255, 180, 0.95); }
.gc-pvp-stat--loss .gc-pvp-stat-value{ color: rgba(255, 140, 140, 0.95); }
.gc-pvp-tabs .gc-pvp-tab{ min-width: 0; }
.gc-pvp-outcome{
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--gc-radius-pill);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  border: 1px solid rgba(120, 190, 255, 0.18);
}
.gc-pvp-outcome--victory{
  color: rgba(160, 255, 200, 0.95);
  border-color: rgba(80, 220, 140, 0.35);
  background: rgba(0, 28, 16, 0.45);
}
.gc-pvp-outcome--defeat{
  color: rgba(255, 170, 170, 0.95);
  border-color: rgba(255, 90, 90, 0.35);
  background: rgba(40, 8, 8, 0.45);
}
.gc-pvp-outcome--draw,
.gc-pvp-outcome--open{
  color: rgba(200, 210, 230, 0.88);
}
.gc-pvp-role{
  font-size: 0.78rem;
  color: var(--gc-text-dim);
}
.gc-pvp-role--attacker{ color: rgba(255, 190, 120, 0.92); }
.gc-pvp-role--defender{ color: rgba(120, 190, 255, 0.92); }
.gc-pvp-row.is-unread td:first-child{
  box-shadow: inset 3px 0 0 rgba(120, 190, 255, 0.75);
}
.gc-pvp-mobile-row.is-unread{
  border-color: rgba(120, 190, 255, 0.35);
}
.gc-pvp-mobile-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}
.gc-pvp-mobile-main{
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 8px;
}
.gc-pvp-mobile-stats{
  display: flex;
  flex-wrap: wrap;
  gap: 8px 12px;
  font-size: 0.78rem;
  color: var(--gc-text-dim);
  margin-bottom: 10px;
}
@media (max-width: 820px){
  .gc-pvp-stats{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* ?? Universe Records (GC-701) ??????????????????????????????????????????? */

.gc-records-page{
  display: flex;
  flex-direction: column;
  gap: 16px;
  max-width: 100%;
  min-width: 0;
}

.gc-records-header .section-hint{
  margin-bottom: 0;
}

/* Category rail docked into panel chrome (buildings-tabs pattern) */
.gc-records-workspace{
  padding: 0;
  overflow: hidden;
  max-width: 100%;
  min-width: 0;
}

.gc-records-tabs{
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  border-bottom: 1px solid rgba(70, 229, 255, 0.28);
  background:
    linear-gradient(180deg, rgba(10, 18, 36, 0.98) 0%, rgba(4, 10, 22, 0.96) 100%);
  box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.45);
  position: relative;
  z-index: 1;
}

.gc-records-tab{
  appearance: none;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 0;
  min-height: 48px;
  margin: 0;
  padding: 12px 8px;
  border: none;
  border-right: 1px solid rgba(70, 229, 255, 0.12);
  border-radius: 0;
  background: transparent;
  color: var(--gc-text-dim);
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  cursor: pointer;
  transition: color 0.15s ease, background 0.15s ease;
}

.gc-records-tab:last-child{
  border-right: none;
}

.gc-records-tab-label{
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  line-height: 1.2;
}

.gc-records-tab:hover{
  color: var(--gc-text-soft);
  background: rgba(70, 229, 255, 0.05);
}

.gc-records-tab:focus-visible{
  outline: none;
  color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.08);
  box-shadow: inset 0 0 0 1px rgba(70, 229, 255, 0.35);
}

.gc-records-tab.is-active{
  color: var(--gc-neon-cyan);
  background:
    linear-gradient(180deg, rgba(70, 229, 255, 0.14) 0%, rgba(70, 229, 255, 0.04) 100%);
  box-shadow: inset 0 -3px 0 var(--gc-neon-cyan);
  text-shadow: 0 0 12px rgba(70, 229, 255, 0.35);
}

.gc-records-workspace-body{
  position: relative;
  z-index: 1;
  padding: var(--gc-panel-pad, 14px);
  max-width: 100%;
  min-width: 0;
}

.gc-records-panel{
  max-width: 100%;
  min-width: 0;
}

.gc-records-panel[hidden]{
  display: none !important;
}

.gc-records-panel-head{
  margin: 0 0 8px;
  padding: 0 0 10px;
  border-bottom: 1px solid rgba(120, 190, 255, 0.12);
}

.gc-records-empty{
  margin: 0;
  padding: 18px 4px;
  color: var(--gc-text-soft);
}

.gc-records-list{
  display: flex;
  flex-direction: column;
  gap: 0;
}

.gc-records-row{
  display: grid;
  grid-template-columns: 36px minmax(0, 1.2fr) minmax(0, 1fr) 72px;
  gap: 10px 14px;
  align-items: center;
  padding: 12px 4px;
  border-bottom: 1px solid rgba(120, 190, 255, 0.1);
}

.gc-records-row-icon{
  display: flex;
  align-items: center;
  justify-content: center;
}

.gc-records-icon{
  width: 32px;
  height: 32px;
}

.gc-records-row:last-child{
  border-bottom: none;
}

.gc-records-row:hover{
  background: rgba(8, 16, 34, 0.42);
}

.gc-records-row--empty .gc-records-row-value{
  color: var(--gc-text-dim);
  font-weight: 500;
  font-size: 0.82rem;
}

.gc-records-row-label{
  font-size: 0.88rem;
  color: var(--gc-text);
  min-width: 0;
}

.gc-records-row-value{
  font-size: 0.95rem;
  font-weight: 800;
  text-align: right;
  color: var(--gc-primary-2);
  font-variant-numeric: tabular-nums;
}

.gc-records-row-holder{
  min-width: 0;
  font-size: 0.84rem;
}

.gc-records-player{
  font-weight: 600;
  color: var(--gc-text);
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.35;
}

.gc-records-none{
  color: var(--gc-text-dim);
  font-style: italic;
  font-weight: 500;
  font-size: 0.82rem;
}

@media (max-width: 900px){
  .gc-records-tabs{
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  .gc-records-tab:nth-child(3n){
    border-right: none;
  }

  .gc-records-tab:nth-child(n+4){
    border-top: 1px solid rgba(70, 229, 255, 0.12);
  }
}

@media (max-width: 720px){
  .gc-records-tab{
    min-height: 42px;
    padding: 10px 6px;
    font-size: 0.62rem;
    letter-spacing: 0.05em;
  }

  .gc-records-row{
    grid-template-columns: 36px minmax(0, 1fr) auto;
    grid-template-areas:
      "icon label value"
      "holder holder holder";
  }

  .gc-records-row-icon{ grid-area: icon; }
  .gc-records-row-label{ grid-area: label; }
  .gc-records-row-holder{ grid-area: holder; }
  .gc-records-row-value{ grid-area: value; }
}

.gc-ranking-row.is-me td{
  background: rgba(0, 220, 255, 0.06);
  box-shadow: inset 0 0 0 1px rgba(0, 220, 255, 0.22);
}

.gc-ranking-row--top td{
  background: rgba(12, 20, 38, 0.72);
}

.gc-ranking-row--top-1 .gc-ranking-place-num{
  color: #ffd86a;
  text-shadow: 0 0 12px rgba(255, 216, 106, 0.35);
}

.gc-ranking-row--top-2 .gc-ranking-place-num{
  color: #d8e4ff;
}

.gc-ranking-row--top-3 .gc-ranking-place-num{
  color: #d4a574;
}

.gc-ranking-place{
  width: 64px;
  white-space: nowrap;
}

.gc-ranking-place-num{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-weight: 800;
  font-size: 1.1rem;
  letter-spacing: 0.04em;
  font-variant-numeric: tabular-nums;
  color: var(--gc-primary-2);
}

.gc-ranking-col-player{ min-width: 0; width: auto; }

.gc-ranking-player,
.gc-ranking-player-trigger{
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
  width: 100%;
  text-align: left;
}

.gc-ranking-player-trigger{
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  color: inherit;
  cursor: pointer;
  border-radius: var(--gc-radius-sm);
  transition: background 0.16s ease, box-shadow 0.16s ease;
}

.gc-ranking-player-trigger:hover,
.gc-ranking-player-trigger:focus-visible{
  background: rgba(0, 220, 255, 0.06);
  box-shadow: inset 0 0 0 1px rgba(0, 220, 255, 0.18);
  outline: none;
}

.gc-ranking-player-meta{
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  flex: 1 1 auto;
}

.gc-ranking-player-name-row{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
}

.gc-commander-prefix,
.gc-ranking-commander-prefix{
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-soft);
  flex-shrink: 0;
}

.gc-commander-name,
.gc-ranking-player-name{
  font-weight: 700;
  color: var(--gc-primary-2);
}

/* Inner commander label must inherit equipped name-style paint from parent. */
.gc-player-name[data-name-style]:not([data-name-style="none"]) .gc-commander-name {
  color: inherit;
  font-weight: inherit;
  letter-spacing: inherit;
  text-transform: inherit;
  text-shadow: inherit;
  font-family: inherit;
}

.gc-player-card-commander .gc-commander-prefix{
  margin-right: 0.35em;
}

.gc-ranking-player-title{
  color: var(--gc-text-soft);
  font-size: 0.82rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gc-ranking-badges{
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}

.gc-ranking-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  padding: 2px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.24);
  background: rgba(8, 16, 34, 0.92);
  line-height: 1;
}
.gc-ranking-badge-img{
  width: 20px;
  height: 20px;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 1px 4px rgba(70, 229, 255, 0.18));
}

.gc-ranking-badge--rare{ border-color: rgba(168, 120, 255, 0.45); }
.gc-ranking-badge--epic{ border-color: rgba(255, 190, 80, 0.5); }
.gc-ranking-badge--legendary{
  border-color: rgba(255, 216, 106, 0.55);
  box-shadow: 0 0 10px rgba(255, 216, 106, 0.18);
}

.gc-ranking-avatar{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 48px;
  width: 48px;
  height: 48px;
  min-width: 48px;
  min-height: 48px;
  border-radius: 50%;
  border: 1px solid rgba(120, 190, 255, 0.28);
  background: rgba(4, 10, 24, 0.85);
  overflow: hidden;
}

.gc-ranking-avatar-img{
  width: 48px;
  height: 48px;
  min-width: 48px;
  min-height: 48px;
  object-fit: cover;
  object-position: center;
  display: block;
}

.gc-ranking-avatar-fallback{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-weight: 800;
  font-size: 1.05rem;
  color: var(--gc-primary-2);
  background: linear-gradient(145deg, rgba(0, 220, 255, 0.12), rgba(80, 120, 255, 0.08));
}

.gc-ranking-avatar-fallback--violet{ color: #c4b5fd; }
.gc-ranking-avatar-fallback--amber{ color: #fcd34d; }
.gc-ranking-avatar-fallback--emerald{ color: #6ee7b7; }
.gc-ranking-avatar-fallback--rose{ color: #fda4af; }

.gc-ranking-alliance{
  display: inline-flex;
  align-items: center;
  max-width: 100%;
  padding: 4px 10px;
  border-radius: var(--gc-radius-sm, 2px);
  border: 1px solid rgba(120, 190, 255, 0.22);
  background: rgba(8, 16, 34, 0.72);
  color: var(--gc-text-soft);
  font-size: 0.78rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  text-decoration: none;
}

a.gc-ranking-alliance:hover{
  border-color: var(--gc-accent, #6ec8ff);
  color: var(--gc-text);
}

.gc-ranking-alliance--none{
  color: var(--gc-text-dim);
  border-style: dashed;
  opacity: 0.85;
}

.gc-ranking-score{
  text-align: right;
  font-family: var(--gc-mono);
  font-size: 1.05rem;
  font-variant-numeric: tabular-nums;
  white-space: nowrap;
  color: var(--gc-text);
}

.gc-ranking-score--active{
  font-weight: 800;
  color: var(--gc-primary-2);
}

.gc-ranking-mobile-score-inline{
  margin-left: auto;
  font-weight: 800;
  font-size: 1.05rem;
  font-variant-numeric: tabular-nums;
  color: var(--gc-primary-2);
  white-space: nowrap;
}

.gc-ranking-mobile-card{
  padding: 14px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: rgba(5, 10, 22, 0.58);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.32);
}

.gc-ranking-mobile-card + .gc-ranking-mobile-card{
  margin-top: 10px;
}

.gc-ranking-mobile-card.is-me{
  border-color: rgba(0, 220, 255, 0.35);
  box-shadow: inset 0 0 0 1px rgba(0, 220, 255, 0.18);
}

.gc-ranking-mobile-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 10px;
}

.gc-ranking-mobile-player .gc-ranking-player{
  align-items: flex-start;
}

.gc-ranking-mobile-scores{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(120, 190, 255, 0.12);
}

.gc-ranking-mobile-score{
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.gc-ranking-mobile-score-label{
  color: var(--gc-text-dim);
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.gc-ranking-mobile-score-value{
  font-family: var(--gc-mono);
  font-size: 1rem;
  font-weight: 800;
  font-variant-numeric: tabular-nums;
  color: var(--gc-primary-2);
}

@media (max-width: 820px){
  .gc-ranking-desktop{ display: none; }
  .gc-ranking-mobile{ display: block; }
  .gc-ranking-mobile-scores{
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.ranking-state{
  padding: 18px 12px;
  text-align: center;
  color: var(--gc-text-soft);
}
.ranking-state-loading{ color: var(--gc-primary-2); }
.ranking-state-error{ color: #ff8a8a; }
.ranking-empty{ color: var(--gc-text-dim); padding: 12px 4px; }
.you-pill{
  display: inline-flex;
  align-items: center;
  padding: 3px 8px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 196, 0, 0.55);
  background: rgba(40, 28, 0, 0.55);
  color: #ffe58a;
  font-size: 0.76rem;
  margin-right: 8px;
}

.gc-ranking-vacation-badge{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin-left: 6px;
  padding: 2px 7px;
  border-radius: 0;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 196, 120, 0.95);
  background: rgba(255, 154, 26, 0.12);
  border: 1px solid rgba(255, 154, 26, 0.42);
  vertical-align: middle;
  white-space: nowrap;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.28);
}

.gc-ranking-status-badges{
  display: inline-flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 4px;
  margin-left: 6px;
  vertical-align: middle;
}

.gc-ranking-status-badge{
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 2px 7px;
  border-radius: 0;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  white-space: nowrap;
  line-height: 1.2;
  vertical-align: middle;
}

.gc-ranking-status-badge--vacation{
  color: rgba(255, 196, 120, 0.96);
  background: rgba(255, 154, 26, 0.12);
  border: 1px solid rgba(255, 154, 26, 0.42);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.28);
}

.gc-ranking-status-badge--inactive{
  color: rgba(180, 200, 220, 0.88);
  background: rgba(80, 96, 120, 0.18);
  border: 1px solid rgba(140, 160, 190, 0.32);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.28);
}

.gc-ranking-status-badge--ai{
  color: rgba(120, 220, 200, 0.96);
  background: rgba(20, 90, 80, 0.22);
  border: 1px solid rgba(80, 200, 170, 0.45);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.28);
}

.gc-ranking-status-badge-icon,
.gc-ranking-vacation-badge-icon{
  font-size: 0.62rem;
  line-height: 1;
}

.gc-ranking-status-badge-text,
.gc-ranking-vacation-badge-text{
  line-height: 1.1;
}

/* =========================
   22) Utilities
   ========================= */
.gc-muted{ color: var(--gc-text-dim); }
.gc-mono{ font-family: var(--gc-mono); }

/* ==========================================================================
   SCORE DELTA POP + PULSE (HUD)
   Works with: <a class="gc-header-pill gc-score-pill"> ... </a>
   Inserts: <span class="gc-score-delta">+123</span> via JS
   ========================================================================== */
.gc-score-pill{
  position: relative;
  overflow: visible;
}

#hud-score-total{
  font-variant-numeric: tabular-nums;
}

/* pulse on pill container (JS adds: .gc-score-pulse) */
.gc-score-pill.gc-score-pulse{
  animation: gcScorePulse 720ms ease-out 1;
}
@keyframes gcScorePulse{
  0% { transform: translateZ(0) scale(1); filter: brightness(1); }
  35% { transform: translateZ(0) scale(1.02); filter: brightness(1.25); }
  100% { transform: translateZ(0) scale(1); filter: brightness(1); }
}

/* delta chip ? single global node (GC-546A2); removed from DOM after animation */
.gc-score-pill .gc-score-delta{
  position: absolute;
  top: -10px;
  right: -10px;
  z-index: 5;

  display: inline-flex;
  align-items: center;
  justify-content: center;

  padding: 4px 8px;
  border-radius: var(--gc-radius-sm);

  font-weight: 900;
  font-size: 12px;
  letter-spacing: 0.2px;
  line-height: 1;

  opacity: 0;
  transform: translateY(8px) scale(0.98);
  pointer-events: none;
  user-select: none;
  animation-fill-mode: none;

  background: rgba(6, 255, 244, 0.10);
  border: 1px solid rgba(6, 255, 244, 0.35);
  box-shadow:
    0 0 0 1px rgba(6, 255, 244, 0.10) inset,
    0 12px 30px rgba(0, 0, 0, 0.60),
    0 0 20px rgba(6, 255, 244, 0.20);

  color: rgba(220, 255, 252, 0.98);
  text-shadow:
    0 0 12px rgba(6, 255, 244, 0.45),
    0 0 30px rgba(6, 255, 244, 0.22);
}

.gc-score-pill .gc-score-delta.show{
  opacity: 1;
  transform: translateY(-6px) scale(1);
  animation: gcDeltaFloat 980ms ease-out 1;
  animation-fill-mode: none;
}
@keyframes gcDeltaFloat{
  0% { opacity: 0; transform: translateY(8px) scale(0.98); filter: blur(0.2px); }
  20% { opacity: 1; transform: translateY(-8px) scale(1); filter: blur(0); }
  70% { opacity: 1; transform: translateY(-10px) scale(1); }
  100% { opacity: 0; transform: translateY(-16px) scale(0.98); }
}

@media (prefers-reduced-motion: reduce){
  .gc-score-pill.gc-score-pulse{ animation: none; }
  .gc-score-pill .gc-score-delta,
  .gc-score-pill .gc-score-delta.show{
    animation: none;
    transition: none;
  }
}

/* optional shine on score number when pulsing */
.gc-score-pill.gc-score-pulse #hud-score-total{
  text-shadow:
    0 0 12px rgba(6, 255, 244, 0.55),
    0 0 34px rgba(6, 255, 244, 0.25);
}

/* ===========================
   BUILD QUEUE (Buildings) ? Premium Block wie Research
   =========================== */

.active-build-wrapper{
  display: grid;
  grid-template-columns: 92px 1fr;
  gap: 16px;
  align-items: start;
  padding: 14px 14px;
  border-radius: var(--gc-radius-sm);
  background: rgba(10, 18, 34, 0.55);
  border: 1px solid rgba(120, 255, 217, 0.14);
  box-shadow: 0 0 0 1px rgba(0,0,0,0.15) inset;
}

.build-icon-large{
  width: 92px;
  height: 92px;
  border-radius: var(--gc-radius-sm);
  background:
    radial-gradient(circle at 50% 38%, rgba(127, 255, 217, 0.12), rgba(0, 0, 0, 0.22));
  border: 1px solid rgba(120, 255, 217, 0.14);
  display: grid;
  place-items: center;
  overflow: hidden;
}

.build-icon-large img{
  width: 78px;
  height: 78px;
  object-fit: contain;
  filter: drop-shadow(0 0 16px rgba(127, 255, 217, 0.25));
}

.active-build-title-row{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.active-build-name{
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: 0.2px;
}

.active-build-level{
  margin-top: 2px;
  font-size: 0.9rem;
  opacity: 0.75;
}

.active-build-desc{
  margin-top: 8px;
  opacity: 0.78;
  line-height: 1.35;
}

.build-progress-outer{
  margin-top: 12px;
}

.build-progress-label{
  display: flex;
  justify-content: space-between;
  font-size: 0.92rem;
  opacity: 0.82;
  margin-bottom: 8px;
}

.build-progress-bar{
  height: 10px;
  border-radius: var(--gc-radius-sm);
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(120, 255, 217, 0.12);
  overflow: hidden;
}

.build-progress-fill{
  height: 100%;
  border-radius: var(--gc-radius-sm);
  background: rgba(127, 255, 217, 0.55);
  box-shadow: 0 0 18px rgba(127, 255, 217, 0.35);
  width: 0%;
}

.build-progress-meta{
  margin-top: 10px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  font-size: 0.9rem;
  opacity: 0.72;
}

.build-divider{
  margin: 14px 0;
  border: none;
  height: 1px;
  background: rgba(120, 255, 217, 0.12);
}

.build-no-active{
  opacity: 0.75;
  margin: 6px 0 2px 0;
}

/* =========================
   23) Mobile Breakpoints (Mobile-First Alpha)
   Primary targets: 360px, 390px, 430px
   ========================= */

/* WIP / Dev badges */
.gc-nav-wip{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}
.gc-nav-wip-badge{
  flex: 0 0 auto;
  padding: 2px 7px;
  border-radius: var(--gc-radius-sm);
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 229, 138, 0.95);
  background: rgba(40, 28, 0, 0.65);
  border: 1px solid rgba(255, 196, 0, 0.45);
}

.gc-placeholder-page .gc-placeholder-head{
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}
.gc-placeholder-page .gc-placeholder-badge{
  font-size: 0.72rem;
}
.gc-placeholder-banner{
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 14px;
  padding: 12px 14px;
  border: 1px solid rgba(255, 196, 0, 0.28);
  border-radius: var(--gc-radius-sm);
  background: rgba(40, 28, 0, 0.35);
  color: rgba(255, 229, 138, 0.95);
  font-size: 0.88rem;
}
.gc-placeholder-features .gc-placeholder-feature-desc{
  color: var(--gc-text-soft);
}
.gc-placeholder-pills{
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.gc-placeholder-note{
  margin-top: 14px;
  color: var(--gc-text-muted);
  font-size: 0.88rem;
}

.gc-wip-banner{
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 12px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 196, 0, 0.38);
  background: rgba(40, 28, 0, 0.42);
  box-shadow: 0 12px 32px rgba(0,0,0,0.40);
}
.gc-wip-banner-icon{ flex: 0 0 auto; font-size: 1.1rem; }
.gc-wip-banner-text{
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  font-size: 0.86rem;
  color: var(--gc-text-soft);
}
.gc-wip-banner-text strong{
  color: #ffe58a;
  font-size: 0.88rem;
}

/* Horizontal table scroll ? no page overflow */
.gc-table-scroll{
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  margin-bottom: 4px;
}
.gc-table-scroll .table-std{ min-width: 520px; }

/* Bottom nav ? hidden on desktop */
.gc-bottom-nav,
.gc-nav-drawer{ display: none; }

.gc-special-root{
  position: fixed;
  right: calc(14px + var(--gc-safe-right));
  bottom: 14px;
  z-index: 74;
  display: block;
}

.gc-special-bar{
  display: grid;
  grid-auto-rows: minmax(44px, auto);
  gap: 6px;
}

.gc-special-bar-btn{
  position: relative;
  min-width: 72px;
  min-height: 44px;
  padding: 6px 8px;
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 2px;
  border-radius: 0;
  border: 1px solid rgba(120, 190, 255, 0.34);
  background: rgba(9, 18, 36, 0.92);
  color: var(--gc-text-soft);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  cursor: pointer;
}

.gc-special-bar-btn.has-chat-unread{
  border-color: rgba(70, 229, 255, 0.55);
  box-shadow: 0 0 0 1px rgba(70, 229, 255, 0.22), 0 0 14px rgba(70, 229, 255, 0.18);
}

.gc-chat-launcher-badge{
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0;
  border: 1px solid rgba(70, 229, 255, 0.65);
  background: rgba(8, 28, 48, 0.96);
  color: #46e5ff;
  font-size: 0.58rem;
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
}

.gc-chat-launcher-badge[hidden]{
  display: none !important;
}

.gc-special-bar-btn svg{
  width: 16px;
  height: 16px;
  fill: currentColor;
}

.gc-special-bar-btn.is-active,
.gc-special-bar-btn:hover{
  border-color: rgba(70, 229, 255, 0.6);
  color: var(--gc-primary);
  box-shadow: 0 0 0 1px rgba(70, 229, 255, 0.3) inset;
}

.gc-community-hub{
  position: relative;
}

.gc-community-hub-main{
  display: grid;
  grid-template-columns: 1fr auto;
  position: relative;
}

.gc-community-hub-main > .gc-special-bar-btn-discord{
  min-width: 0;
  border-right: 0;
  text-decoration: none;
}

.gc-special-bar-btn-discord .discord-icon{
  width: 18px;
  height: 18px;
  color: var(--gc-primary);
}

.gc-community-hub-menu-btn{
  min-width: 22px;
  min-height: 44px;
  padding: 0 4px;
  display: grid;
  place-items: center;
  border: 1px solid rgba(120, 190, 255, 0.34);
  border-left: 1px solid rgba(70, 229, 255, 0.18);
  background: rgba(9, 18, 36, 0.92);
  color: var(--gc-text-soft);
  font-size: 0.72rem;
  line-height: 1;
  cursor: pointer;
}

.gc-community-hub.is-open .gc-community-hub-menu-btn,
.gc-community-hub-menu-btn:hover{
  border-color: rgba(70, 229, 255, 0.6);
  color: var(--gc-primary);
  box-shadow: 0 0 0 1px rgba(70, 229, 255, 0.3) inset;
}

.gc-community-hub-main > .gc-special-bar-btn-discord:hover,
.gc-community-hub-main > .gc-special-bar-btn-discord:focus-visible{
  border-color: rgba(70, 229, 255, 0.6);
  color: var(--gc-primary);
  box-shadow: 0 0 0 1px rgba(70, 229, 255, 0.3) inset;
}

.gc-community-badge{
  position: absolute;
  top: 2px;
  right: 2px;
  min-width: 1rem;
  height: 1rem;
  padding: 0 0.22rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--gc-radius-pill);
  background: #ff5c7a;
  color: #fff;
  font-size: 0.52rem;
  font-weight: 800;
  letter-spacing: 0.02em;
  line-height: 1;
  pointer-events: none;
  z-index: 1;
}

.gc-community-badge.hidden,
.gc-community-badge[hidden]{
  display: none !important;
}

.gc-community-hub-menu{
  position: absolute;
  right: 0;
  bottom: calc(100% + 6px);
  min-width: 168px;
  display: grid;
  gap: 4px;
  padding: 6px;
  border: 1px solid var(--gc-border-bright);
  background: linear-gradient(180deg, rgba(8, 16, 34, 0.98), rgba(5, 11, 24, 0.98));
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.48);
  z-index: 2;
}

.gc-community-hub-menu[hidden]{
  display: none !important;
}

.gc-community-hub-menu-item{
  min-height: 34px;
  padding: 6px 10px;
  border: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(9, 18, 36, 0.92);
  color: var(--gc-text-soft);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-align: left;
  text-decoration: none;
  text-transform: uppercase;
  cursor: pointer;
}

.gc-community-hub-menu-item:hover,
.gc-community-hub-menu-item:focus-visible{
  border-color: rgba(70, 229, 255, 0.6);
  color: var(--gc-primary);
}

.gc-special-window{
  position: fixed;
  right: calc(94px + var(--gc-safe-right));
  bottom: 14px;
  width: min(520px, calc(100vw - 120px));
  max-height: min(72vh, 680px);
  overflow: auto;
  border-radius: 0;
  border: 1px solid var(--gc-border-bright);
  background: linear-gradient(180deg, rgba(8, 16, 34, 0.98), rgba(5, 11, 24, 0.98));
  box-shadow: 0 18px 50px rgba(0, 0, 0, 0.52);
  padding: 12px;
}

.gc-special-window[hidden]{
  display: none !important;
}

/* GC-806C desktop: bottom utility dock entry ? must stack above dock (after base .gc-special-* rules) */
@media (min-width: 769px){
  .gc-special-root{
    z-index: calc(var(--gc-z-sticky, 200) + 2);
    bottom: calc(var(--gc-bottom-util-h, 36px) + var(--gc-safe-bottom, 0px) + 10px);
  }

  .gc-special-window{
    z-index: calc(var(--gc-z-sticky, 200) + 2);
    right: calc(14px + var(--gc-safe-right));
    bottom: calc(var(--gc-bottom-util-h, 36px) + var(--gc-safe-bottom, 0px) + 10px);
    max-height: min(68vh, 680px);
  }
}

.gc-codex-intro{
  margin-bottom: 12px;
}

.gc-codex-band + .gc-codex-band{
  margin-top: 14px;
}

.gc-codex-band-title{
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-primary);
  margin: 0 0 8px;
  font-weight: 800;
}

.gc-codex-band-list{
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
}

.gc-codex-article-link{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(9, 18, 36, 0.72);
  color: var(--gc-text);
  text-align: left;
  cursor: pointer;
}

.gc-codex-article-link:hover{
  border-color: rgba(70, 229, 255, 0.45);
  color: var(--gc-primary);
}

.gc-codex-article-locked{
  padding: 8px 10px;
  border: 1px dashed rgba(120, 190, 255, 0.16);
  background: rgba(6, 12, 24, 0.55);
}

.gc-codex-locked-label{
  font-size: 0.68rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gc-text-soft);
}

.gc-codex-teaser{
  margin: 6px 0 0;
  font-size: 0.78rem;
}

.gc-codex-article-read{
  font-size: 0.68rem;
  color: var(--gc-text-soft);
}

.gc-codex-article-view{
  margin-top: 8px;
}

.gc-codex-article-view:not(.is-open){
  display: none;
}

.gc-codex-article-link--locked{
  border-style: dashed;
  opacity: 0.92;
}

.gc-codex-empty{
  margin: 0;
  font-size: 0.82rem;
}

.gc-codex-unlock-label{
  margin: 8px 0 0;
  font-size: 0.78rem;
}

.gc-codex-article-heading{
  margin: 0 0 10px;
  font-size: 1rem;
  color: var(--gc-primary);
}

.gc-codex-section{
  margin-bottom: 12px;
}

.gc-codex-section-title{
  margin: 0 0 6px;
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gc-text-soft);
}

.gc-codex-faq dt{
  font-weight: 700;
  margin-top: 8px;
}

.gc-codex-faq dd{
  margin: 4px 0 0;
  color: var(--gc-text-soft);
}

.gc-codex-related{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.gc-codex-context-btn{
  min-width: 28px;
  min-height: 28px;
  padding: 0 8px;
  font-weight: 800;
  line-height: 1;
}

.gc-codex-commander-tip-mobile .gc-codex-commander-tip{
  margin-bottom: 10px;
}

.gc-codex-commander-tip-mobile .gc-codex-commander-tip-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 6px;
}

.gc-codex-commander-tip-mobile .gc-codex-commander-tip-label{
  font-size: 0.72rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  font-weight: 800;
  color: var(--gc-primary);
}

.gc-codex-commander-tip-mobile .gc-codex-commander-tip-badge{
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: #ffb347;
}

.gc-codex-commander-tip-mobile .gc-codex-commander-tip-text{
  margin: 0 0 8px;
  font-size: 0.8rem;
}

.gc-codex-commander-tip-mobile{
  display: none !important;
}

.gc-special-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 10px;
}

.gc-special-head .gc-btn{
  border-radius: 0;
}

.gc-special-title{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  color: var(--gc-primary);
  font-size: 0.95rem;
  letter-spacing: 0.05em;
  font-weight: 800;
  text-transform: uppercase;
}

.gc-special-window-layout{
  display: grid;
  grid-template-columns: 132px 1fr;
  gap: 10px;
}

.gc-special-window-nav{
  display: grid;
  gap: 6px;
}

.gc-special-window-nav-btn{
  min-height: 32px;
  border-radius: 0;
  border: 1px solid rgba(120, 190, 255, 0.22);
  background: rgba(9, 18, 36, 0.92);
  color: var(--gc-text-soft);
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.02em;
  cursor: pointer;
}

.gc-special-window-content h3{
  margin: 0 0 8px;
  font-size: 1rem;
}

.gc-special-intro{
  margin: 0 0 10px;
  color: var(--gc-text-soft);
  font-size: 0.9rem;
}

.gc-special-card{
  margin: 0 0 8px;
  border-radius: 0;
  border: 1px solid rgba(120, 190, 255, 0.17);
  background: rgba(7, 15, 31, 0.82);
  padding: 8px 10px;
}

.gc-special-card summary{
  cursor: pointer;
  font-weight: 700;
  color: var(--gc-primary-2);
}

.gc-special-card p{
  margin: 8px 0 0;
  color: var(--gc-text-soft);
  font-size: 0.88rem;
  line-height: 1.42;
}

.gc-rules-panel-body{
  margin-top: 8px;
  color: var(--gc-text-soft);
  font-size: 0.88rem;
  line-height: 1.45;
}

.gc-rules-panel-body p{
  margin: 0 0 8px;
}

.gc-rules-panel-body p:last-child{
  margin-bottom: 0;
}

.gc-rules-panel-body strong{
  color: var(--gc-text);
}

.gc-rules-panel-faq{
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid rgba(120, 190, 255, 0.12);
}

.gc-rules-panel-faq-title{
  margin: 0 0 8px;
  font-size: 0.95rem;
  color: var(--gc-primary-2);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.gc-rules-panel-faq-item summary{
  font-size: 0.88rem;
  font-weight: 600;
}

.gc-rules-panel-footer{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-top: 14px;
  padding-top: 10px;
  border-top: 1px solid rgba(120, 190, 255, 0.12);
}

.gc-rules-panel-version{
  margin: 0;
  font-size: 0.75rem;
  color: var(--gc-text-muted, var(--gc-text-soft));
  opacity: 0.85;
}

/* Legal panel (imprint special window + public /legal) */
.gc-legal-panel{
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.gc-legal-provider-lines,
.legal-provider-lines{
  margin: 0 0 8px;
  line-height: 1.45;
  font-size: 0.88rem;
}
.gc-legal-tabs,
.legal-doc-tabs{
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin: 0 0 8px;
}
.gc-legal-tab,
.legal-doc-tab{
  appearance: none;
  border: 1px solid rgba(120, 190, 255, 0.22);
  background: rgba(7, 15, 31, 0.75);
  color: var(--gc-text-soft);
  padding: 4px 8px;
  border-radius: var(--gc-radius-sm, 2px);
  font-size: 0.78rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  cursor: pointer;
  text-decoration: none;
}
.gc-legal-tab.is-active,
.legal-doc-tab.is-active{
  border-color: rgba(120, 190, 255, 0.55);
  color: var(--gc-primary-2);
  background: rgba(20, 40, 70, 0.9);
}
.gc-legal-doc-title{
  margin: 0 0 8px;
  font-size: 0.95rem;
}
.gc-legal-footer{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid rgba(120, 190, 255, 0.14);
}
.gc-legal-footer-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.gc-legal-stand,
.legal-stand{
  margin: 8px 0 0;
  font-size: 0.75rem;
  color: var(--gc-text-soft);
}
.gc-legal-ack{
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin: 0 0 10px;
  padding: 8px 10px;
  border: 1px solid rgba(120, 190, 255, 0.2);
  background: rgba(7, 15, 31, 0.75);
  border-radius: var(--gc-radius-sm, 2px);
}
.gc-legal-ack-row{
  display: flex;
  gap: 8px;
  align-items: flex-start;
  font-size: 0.82rem;
  color: var(--gc-text-soft);
  line-height: 1.4;
  cursor: pointer;
}
.gc-legal-ack-row input{
  margin-top: 3px;
  flex: 0 0 auto;
}
.gc-legal-ack-link{
  appearance: none;
  border: 0;
  background: none;
  color: var(--gc-primary-2);
  padding: 0;
  font: inherit;
  text-decoration: underline;
  cursor: pointer;
}
.auth-legal-footer,
.auth-legal-links{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  align-items: center;
  margin-top: 12px;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}
.auth-legal-footer a,
.auth-legal-links a{
  color: var(--gc-text-soft);
  text-decoration: underline;
}
.auth-legal-footer a:hover,
.auth-legal-links a:hover{
  color: var(--gc-primary-2);
}
.shop-legal-footer{
  margin-bottom: 8px;
}
.legal-page .legal-doc-panel{
  margin-top: 10px;
}

.gc-cookie-notice{
  position: fixed;
  left: 12px;
  right: 12px;
  bottom: 12px;
  z-index: var(--gc-z-popover, 1200);
  max-width: 420px;
  margin: 0 auto;
  pointer-events: none;
}
.gc-cookie-notice:not([hidden]){
  pointer-events: auto;
}
.gc-cookie-notice-inner{
  border: 1px solid rgba(120, 190, 255, 0.28);
  background: rgba(6, 12, 24, 0.96);
  padding: 12px 14px;
  border-radius: var(--gc-radius-sm, 2px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45);
}
.gc-cookie-notice-title{
  margin: 0 0 6px;
  font-size: 0.85rem;
  font-weight: 700;
  color: var(--gc-primary-2);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.gc-cookie-notice-body{
  margin: 0 0 10px;
  font-size: 0.82rem;
  line-height: 1.4;
  color: var(--gc-text-soft);
}
.gc-cookie-notice-actions{
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}
.auth-check--legal{
  display: flex;
  gap: 8px;
  align-items: flex-start;
  margin: 0 0 8px;
  font-size: 0.82rem;
  color: var(--gc-text-soft);
  line-height: 1.4;
  cursor: pointer;
}
.auth-check--legal input{
  margin-top: 3px;
  flex: 0 0 auto;
}
.auth-legal-acks{
  margin: 0 0 12px;
}


.gc-support-form{
  display: grid;
  gap: 8px;
  margin-bottom: 12px;
}

.gc-support-grid{
  display: grid;
  grid-template-columns: 1fr 140px 120px;
  gap: 8px;
}

.gc-support-field{
  display: grid;
  gap: 4px;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}

.gc-support-field input,
.gc-support-field select,
.gc-support-field textarea,
.gc-support-reply{
  width: 100%;
  border-radius: 0;
  border: 1px solid rgba(120, 190, 255, 0.22);
  background: rgba(6, 12, 24, 0.9);
  color: var(--gc-text);
  padding: 8px;
  font: inherit;
}

.gc-support-feedback{
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}

.gc-support-feedback.is-ok{ color: #6fffd8; }
.gc-support-feedback.is-error{ color: #ff8e8e; }

.gc-support-list-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}

.gc-support-list{
  display: grid;
  gap: 8px;
}

.gc-support-empty{
  padding: 10px;
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: rgba(7, 14, 29, 0.76);
  color: var(--gc-text-soft);
  font-size: 0.86rem;
}

.gc-support-ticket{
  border: 1px solid rgba(120, 190, 255, 0.2);
  background: rgba(7, 14, 29, 0.8);
  padding: 8px;
}

.gc-support-ticket > summary{
  cursor: pointer;
  display: grid;
  gap: 2px;
  list-style: none;
}

.gc-support-ticket-subject{
  color: var(--gc-primary);
  font-weight: 800;
}

.gc-support-ticket-meta{
  color: var(--gc-text-soft);
  font-size: 0.76rem;
}

.gc-support-ticket-body{
  margin-top: 8px;
  display: grid;
  gap: 8px;
}

.gc-support-timeline{
  display: grid;
  gap: 6px;
}

.gc-support-msg{
  border: 1px solid rgba(120, 190, 255, 0.14);
  background: rgba(5, 11, 22, 0.9);
  padding: 6px 8px;
}

.gc-support-msg-meta{
  font-size: 0.72rem;
  color: var(--gc-text-dim);
  margin-bottom: 4px;
}

.gc-support-msg-body{
  color: var(--gc-text-soft);
  white-space: pre-wrap;
}

.gc-support-ticket-controls{
  display: grid;
  gap: 6px;
}

/* Desktop: TCHAT launcher lives in .gc-special-bar; mobile uses floating FAB (chat.css) */
@media (min-width: 769px){
  .gc-chat-fab{
    display: none !important;
  }
}

@media (max-width: 768px){
  :root{
    --gc-header-h: auto;
    --gc-page-pad-y: 14px;
  }

  .gc-body-ingame{
    padding-bottom: calc(var(--gc-bottom-nav-h) + var(--gc-safe-bottom) + 12px);
  }

  /* Hide desktop sidebar; use bottom nav */
  .gc-sidebar-desktop{ display: none !important; }

  .gc-layout{
    padding-left: 12px;
    padding-right: 12px;
    padding-bottom: 8px;
  }

  /* Header: brand/HUD scroll; resource bar sticks below notch */
  .gc-header{
    position: relative;
    top: auto;
    padding-top: var(--gc-safe-top);
  }

  .gc-header-inner{ padding: 10px 12px; }

  .gc-header-grid{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }

  .gc-hslot-brand{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    min-width: 0;
  }

  .gc-hslot-res{
    display: flex !important;
    justify-content: stretch;
    width: 100%;
    min-width: 0;
    order: 2;
  }

  .gc-resource-sticky{
    position: sticky;
    top: var(--gc-safe-top);
    z-index: 52;
    width: 100%;
    padding-bottom: 4px;
    background:
      linear-gradient(180deg, rgba(6, 12, 22, 0.94) 0%, rgba(6, 12, 22, 0.88) 72%, transparent 100%);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
  }

  .gc-resource-sticky.is-scrolled{
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.42);
  }

  .gc-hslot-brand{ order: 1; }
  .gc-hslot-hud{ order: 3; }

  .resource-bar{
    max-width: none;
    width: 100%;
    justify-content: flex-start;
    flex-wrap: nowrap;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    gap: 6px;
    padding: 6px 8px;
    scrollbar-width: thin;
  }

  .res-block{ flex: 0 0 auto; }

  .gc-hslot-hud{
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
    white-space: normal;
  }

  .gc-hud-cluster{
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 6px;
    white-space: normal;
  }

  .gc-header-pill{
    font-size: 0.76rem;
    padding: 6px 9px;
    max-width: 100%;
  }

  .gc-hud-user{
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 8px;
  }

  .gc-user-info{
    flex: 1 1 auto;
    min-width: 0;
    max-width: calc(100% - 110px);
  }

  .gc-user-name{
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    display: block;
    max-width: 100%;
  }

  .logout-btn{
    min-height: var(--gc-touch-min);
    min-width: var(--gc-touch-min);
    padding: 10px 14px !important;
  }

  .gc-title{
    font-size: 0.82rem;
    display: inline;
  }

  /* Cards & panels ? mehr vertikaler Abstand */
  .gc-panel{ padding: 14px; margin-bottom: 4px; }
  .gc-panel + .gc-panel{ margin-top: 2px; }

  .gc-grid-2,
  .research-grid,
  .gc-ranking-body{
    gap: clamp(16px, 4vw, 22px);
  }

  .gc-flash-container{ gap: 10px; margin-bottom: 14px; }

  .research-list{ gap: var(--gc-card-gap); }
  .research-item,
  .overview-res-card,
  .galaxy-system-card,
  .ranking-stat{
    margin-bottom: 2px;
  }

  .overview-resources{
    grid-template-columns: 1fr;
    gap: clamp(14px, 3.5vw, 18px);
  }

  .overview-res-card{ padding: 16px; }

  .gc-panel-header{
    flex-direction: column;
    align-items: flex-start;
  }

  .building-tabs{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .building-tabs .tab-btn,
  .building-tabs .gc-btn{
    min-height: var(--gc-touch-min);
    width: 100%;
  }

  .gc-btn,
  .gc-btn-sm,
  a.gc-btn{
    min-height: var(--gc-touch-min);
  }

  .btn-upgrade:not(.gc-bld-head-action-btn),
  .btn-research:not(.gc-bld-head-action-btn){
    min-width: var(--gc-touch-min);
    padding: 10px 14px !important;
  }

  .active-build-wrapper,
  .active-research-wrapper{
    grid-template-columns: 1fr;
  }

  .build-icon-large,
  .research-icon-large{
    width: 72px;
    height: 72px;
    margin: 0 auto;
  }

  .section-header{ padding: 12px; margin-bottom: 12px; }

  .motd-banner{
    flex-direction: row;
    align-items: flex-start;
  }
  .motd-banner--expanded .motd-banner-toggle{
    flex-direction: column;
    align-items: flex-start;
  }

  /* Bottom navigation */
  .gc-bottom-nav{
    display: flex;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 60;
    min-height: calc(var(--gc-bottom-nav-h) + var(--gc-safe-bottom));
    padding:
      6px
      max(6px, var(--gc-safe-left))
      calc(6px + var(--gc-safe-bottom))
      max(6px, var(--gc-safe-right));
    gap: 4px;
    background: linear-gradient(180deg, rgba(6,12,22,0.82), rgba(4,8,18,0.98));
    border-top: 1px solid var(--gc-hdr-border);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    box-shadow: 0 -12px 40px rgba(0,0,0,0.55);
  }

  .gc-bottom-nav-item{
    position: relative;
    flex: 1 1 0;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    min-height: var(--gc-touch-min);
    padding: 5px 3px;
    border: none;
    border-radius: var(--gc-radius-sm);
    background: transparent;
    color: var(--gc-text-dim);
    font: inherit;
    cursor: pointer;
    text-decoration: none;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.16s ease, background 0.16s ease, transform 0.12s ease;
  }

  .gc-bottom-nav-item:active{
    transform: scale(0.96);
  }

  .gc-bottom-nav-item.active{
    color: var(--gc-primary-2);
    background: rgba(70, 229, 255, 0.10);
    box-shadow: 0 0 0 1px rgba(70, 229, 255, 0.24) inset;
  }

  .gc-bottom-nav-item.active::before{
    content: "";
    position: absolute;
    top: 2px;
    width: 22px;
    height: 3px;
    border-radius: var(--gc-radius-sm);
    background: var(--gc-primary);
    box-shadow: 0 0 12px rgba(70, 229, 255, 0.45);
  }

  .gc-bottom-nav-icon{ font-size: clamp(1.05rem, 4vw, 1.2rem); line-height: 1; }
  .gc-bottom-nav-label{
    font-size: var(--gc-font-nav);
    font-weight: 700;
    letter-spacing: 0.02em;
    text-align: center;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .gc-bottom-nav-more.active{
    color: var(--gc-primary);
  }

  .gc-bottom-buildings-menu{
    position: fixed;
    left: max(8px, var(--gc-safe-left));
    right: max(8px, var(--gc-safe-right));
    bottom: calc(var(--gc-bottom-nav-h, 64px) + var(--gc-safe-bottom, 0px) + 8px);
    z-index: calc(var(--gc-z-dropdown, 12000) + 2);
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 8px;
    border: 1px solid rgba(120, 190, 255, 0.28);
    border-radius: var(--gc-radius-sm, 2px);
    background: linear-gradient(180deg, rgba(8, 14, 28, 0.98), rgba(4, 8, 18, 0.96));
    box-shadow:
      0 0 0 1px rgba(0, 0, 0, 0.35) inset,
      0 14px 32px rgba(0, 0, 0, 0.55);
    opacity: 0;
    transform: translateY(8px);
    pointer-events: none;
    transition: opacity 0.16s ease, transform 0.16s ease;
  }

  .gc-bottom-buildings-menu[hidden]{
    display: none !important;
  }

  .gc-bottom-buildings-menu.is-open{
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
  }

  .gc-bottom-buildings-menu-item{
    display: block;
    width: 100%;
    margin: 0;
    padding: 10px 12px;
    border: 1px solid rgba(120, 190, 255, 0.16);
    border-radius: var(--gc-radius-sm, 2px);
    background: rgba(6, 12, 24, 0.85);
    color: rgba(220, 236, 255, 0.95);
    font: inherit;
    font-size: 0.82rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-align: left;
    text-transform: uppercase;
    cursor: pointer;
  }

  .gc-bottom-buildings-menu-item:hover,
  .gc-bottom-buildings-menu-item:focus-visible{
    border-color: rgba(70, 229, 255, 0.45);
    background: rgba(70, 229, 255, 0.10);
    outline: none;
  }

  .gc-bottom-nav-item.is-menu-open{
    color: var(--gc-primary-2);
  }

  /* Drawer (More menu) ? class .is-open for smooth animation */
  .gc-nav-drawer{
    display: block;
    position: fixed;
    inset: 0;
    z-index: var(--gc-z-popover, 80);
    pointer-events: none;
    visibility: hidden;
  }

  .gc-nav-drawer.is-open{
    pointer-events: auto;
    visibility: visible;
  }

  .gc-nav-drawer-backdrop{
    position: fixed;
    inset: 0;
    background: rgba(2, 6, 14, 0.62);
    opacity: 0;
    transition: opacity 0.26s cubic-bezier(0.32, 0.72, 0, 1);
  }

  .gc-nav-drawer.is-open .gc-nav-drawer-backdrop{
    opacity: 1;
  }

  .gc-nav-drawer-panel{
    position: fixed;
    top: max(0px, var(--gc-safe-top));
    left: max(0px, var(--gc-safe-left));
    bottom: calc(var(--gc-bottom-nav-h) + var(--gc-safe-bottom));
    width: min(92vw, 380px);
    max-height: none;
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    border-radius: 0 var(--gc-radius-sm) var(--gc-radius-sm) 0;
    background: rgba(7, 14, 32, 0.98);
    border: 1px solid var(--gc-panel-border);
    border-left: none;
    box-shadow: var(--gc-shadow-hard);
    transform: translateX(-104%);
    opacity: 0.92;
    transition:
      transform 0.28s cubic-bezier(0.32, 0.72, 0, 1),
      opacity 0.22s ease;
    will-change: transform, opacity;
  }

  .gc-nav-drawer.is-open .gc-nav-drawer-panel{
    transform: translateX(0);
    opacity: 1;
  }

  .gc-nav-drawer-head{
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex: 0 0 auto;
    padding: 14px 14px 10px;
    border-bottom: 1px solid rgba(120, 190, 255, 0.12);
  }

  .gc-nav-drawer-title{
    font-family: Orbitron, Inter, system-ui, sans-serif;
    font-weight: 800;
    color: var(--gc-primary);
    letter-spacing: 0.05em;
  }

  .gc-nav-drawer-tabs{
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    flex: 0 0 auto;
    padding: 10px 14px;
    border-bottom: 1px solid rgba(120, 190, 255, 0.12);
  }

  .gc-nav-drawer-tab{
    min-height: var(--gc-touch-min);
    padding: 10px 12px;
    border: 1px solid rgba(120, 190, 255, 0.16);
    border-radius: var(--gc-radius-sm);
    background: rgba(5, 10, 22, 0.58);
    color: var(--gc-text-dim);
    font: inherit;
    font-weight: 800;
    letter-spacing: 0.06em;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    transition: color 0.16s ease, border-color 0.16s ease, background 0.16s ease;
  }

  .gc-nav-drawer-tab.is-active{
    color: var(--gc-primary-2);
    border-color: rgba(70, 229, 255, 0.55);
    background: rgba(70, 229, 255, 0.10);
    box-shadow: var(--gc-border-glow);
  }

  .gc-nav-drawer-body{
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
  }

  .gc-nav-drawer-panel-tab{
    display: none;
    height: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding:
      10px 10px
      calc(12px + var(--gc-safe-bottom));
    -webkit-overflow-scrolling: touch;
  }

  .gc-nav-drawer-panel-tab.is-active{
    display: block;
  }

  .gc-nav-section--utility-mobile{
    display: grid;
    gap: 6px;
    margin-top: 8px;
    padding-top: 8px;
    border-top: 1px solid rgba(120, 190, 255, 0.12);
  }

  .gc-nav-section--utility-mobile .gc-nav-section-label{
    padding: 4px 10px 2px;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--gc-text-dim);
  }

  .gc-nav-section--utility-mobile .gc-nav-link{
    width: 100%;
    text-align: left;
    cursor: pointer;
    font: inherit;
  }

  .gc-sidebar-mobile-drawer{
    display: flex !important;
    flex-direction: column;
    gap: 6px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    position: static;
    top: auto;
    max-height: none;
    overflow: visible;
    padding: 0;
    border: none;
    background: transparent;
    box-shadow: none;
  }

  .gc-sidebar-mobile-drawer .gc-nav-link,
  .gc-sidebar-mobile-drawer .gc-nav-sub-link{
    min-height: var(--gc-touch-min);
    word-break: break-word;
    overflow-wrap: anywhere;
  }

  .gc-sidebar-mobile-drawer .gc-nav-link-label{
    min-width: 0;
  }

  .gc-nav-drawer-links{
    display: grid;
    gap: 8px;
  }

  .gc-nav-drawer-link{
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: var(--gc-touch-min);
    padding: 12px 14px;
    border-radius: var(--gc-radius-sm);
    border: 1px solid rgba(120, 190, 255, 0.16);
    background: rgba(5, 10, 22, 0.58);
    color: var(--gc-text-soft);
    font-weight: 700;
    font-size: 0.92rem;
  }

  .gc-nav-drawer-link.active{
    border-color: rgba(70, 229, 255, 0.55);
    color: var(--gc-primary-2);
    box-shadow: var(--gc-border-glow);
  }

  .gc-nav-drawer-group{
    display: flex;
    flex-direction: column;
    gap: 6px;
  }

  .gc-nav-drawer-group-label{
    padding: 4px 14px 0;
    font-size: 0.72rem;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    color: var(--gc-text-dim);
  }

  .gc-nav-drawer-sublink{
    margin-left: 8px;
    min-height: calc(var(--gc-touch-min) - 4px);
    padding-top: 10px;
    padding-bottom: 10px;
    font-size: 0.86rem;
    font-weight: 600;
  }

  body.gc-nav-drawer-open{ overflow: hidden; }

  /* Mobile: no floating special dock over gameplay ? utilities live in META drawer */
  .gc-special-root > .gc-special-bar{
    display: none !important;
  }

  .gc-special-root{
    left: 0;
    right: 0;
    bottom: auto;
    pointer-events: none;
  }

  .gc-special-root.is-open,
  .gc-special-root .gc-special-window:not([hidden]){
    pointer-events: auto;
  }

  .gc-special-window{
    left: max(10px, var(--gc-safe-left));
    right: max(10px, var(--gc-safe-right));
    width: auto;
    max-height: min(68dvh, 620px);
    bottom: calc(var(--gc-bottom-nav-h) + var(--gc-safe-bottom) + 12px);
  }

  .gc-special-window-layout{
    grid-template-columns: 1fr;
  }

  .gc-support-grid{
    grid-template-columns: 1fr;
  }
}

/* Narrow phones: 360?390px */
@media (max-width: 390px){
  .gc-header-pill-label{ display: none; }
  .gc-header-pill .res-sep{ display: none; }
  .gc-bottom-nav-label{ font-size: 0.58rem; }
  .res-value, .res-cap, #res-energy{ font-size: 0.74rem; }
}

@media (max-width: 768px) and (prefers-reduced-motion: reduce){
  .gc-nav-drawer-panel,
  .gc-nav-drawer-backdrop,
  .gc-bottom-nav-item{
    transition: none !important;
  }
}

/* =========================
   24) Desktop Enhancements (981px+)
   ========================= */
@media (min-width: 981px){
  .gc-bottom-nav,
  .gc-nav-drawer{ display: none !important; }

  .gc-body-ingame{ padding-bottom: 0; }

  .gc-sidebar-desktop{
    display: flex;
    position: sticky;
    top: var(--gc-sidebar-top, 136px);
    align-self: start;
    max-height: var(--gc-sidebar-max-height, calc(100dvh - var(--gc-sidebar-top, 136px) - var(--gc-sidebar-bottom-gap, 12px)));
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    scrollbar-gutter: stable;
    scrollbar-width: thin;
    scrollbar-color: rgba(70, 229, 255, 0.35) rgba(4, 10, 22, 0.4);
  }

  .gc-sidebar--right.gc-sidebar-desktop{
    scrollbar-color: rgba(255, 176, 32, 0.35) rgba(4, 10, 22, 0.4);
  }

  .gc-sidebar-desktop::-webkit-scrollbar{
    width: 8px;
  }

  .gc-sidebar-desktop::-webkit-scrollbar-track{
    background: rgba(4, 10, 22, 0.45);
  }

  .gc-sidebar-desktop::-webkit-scrollbar-thumb{
    background: rgba(70, 229, 255, 0.32);
    border-radius: var(--gc-radius-pill);
  }

  .gc-layout{
    align-items: start;
  }

  .gc-header-cmd{
    position: sticky;
    top: 0;
    z-index: 80;
  }

  .gc-resource-sticky{
    position: static;
    padding-bottom: 0;
    background: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    box-shadow: none;
  }
}

/* =========================
   26) Command Console Header + Build Queue v1.7
   ========================= */

.gc-header-cmd{
  z-index: 80;
  overflow: visible;
}

.gc-header-cmd .gc-header-inner{
  display: flex;
  flex-direction: column;
  gap: 8px;
  overflow: visible;
  min-height: 0;
  height: auto;
}

.gc-header-row{
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}

.gc-header-row-top{
  position: relative;
  z-index: 30;
  justify-content: space-between;
  flex-wrap: wrap;
}

.gc-header-row-resources{
  position: relative;
  z-index: 1;
  width: 100%;
  min-height: 0;
  flex-wrap: wrap;
}

/* GC-642 / GC-643 ? queue row under resources (full width) */
.gc-header-row-queues{
  width: 100%;
  min-width: 0;
  align-items: stretch;
}

.gc-header-row-queues[hidden]{
  display: none !important;
}

.gc-header-queues-shell{
  width: 100%;
  min-width: 0;
  padding: 6px 10px 8px;
  border-color: rgba(127, 255, 217, 0.12);
}

.gc-header-queues-head{
  display: flex;
  align-items: center;
  min-width: 0;
  margin-bottom: 6px;
  padding-bottom: 4px;
  border-bottom: 1px solid rgba(127, 255, 217, 0.08);
}

.gc-header-queues-label{
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.55);
  font-weight: 600;
}

.gc-header-queues-body{
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 8px;
  min-width: 0;
}

/* GC-642 / GC-643 ? universal global queue HUD (horizontal chips) */
.gc-global-queue-hud{
  display: flex;
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  color: var(--gc-text-soft);
  overflow: visible;
}

.gc-global-queue-hud.is-empty,
.gc-global-queue-hud[hidden]{
  display: none !important;
}

.gc-global-queue-hud-body{
  display: flex;
  flex-wrap: wrap;
  align-items: stretch;
  gap: 8px;
  flex: 1 1 auto;
  min-width: 0;
  width: 100%;
}

.gc-global-queue-hud-item{
  flex: 1 1 180px;
  min-width: min(100%, 180px);
  max-width: 100%;
}

.gc-global-queue-hud-chip{
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  height: 100%;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  background: linear-gradient(180deg, rgba(8, 14, 28, 0.94), rgba(6, 10, 22, 0.82));
  border: 1px solid rgba(127, 255, 217, 0.14);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.28) inset,
    0 6px 14px rgba(0, 0, 0, 0.24);
  cursor: pointer;
  transition: border-color 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}

.gc-global-queue-hud-chip:hover{
  border-color: rgba(70, 229, 255, 0.28);
  box-shadow: var(--gc-border-glow), 0 8px 18px rgba(0, 0, 0, 0.28);
}

.gc-global-queue-hud-chip.is-queued{
  opacity: 0.88;
}

.gc-global-queue-hud-chip-head{
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
}

.gc-global-queue-hud-glyph{
  flex: 0 0 auto;
  font-size: 0.9rem;
  line-height: 1;
  opacity: 0.92;
}

.gc-global-queue-hud-chip-domain{
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.58rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.62);
  font-weight: 700;
}

.gc-global-queue-hud-chip-title{
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.25;
  color: var(--gc-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-global-queue-hud-chip-subtitle{
  font-size: 0.68rem;
  line-height: 1.35;
  color: var(--gc-text-soft);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-global-queue-hud-chip-foot{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 6px;
  min-width: 0;
  margin-top: auto;
  padding-top: 2px;
}

.gc-global-queue-hud-timer{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.72rem;
  color: var(--gc-primary-2);
}

.gc-global-queue-hud-cancel{
  flex: 0 0 auto;
  min-width: 1.35rem;
  min-height: 1.35rem;
  padding: 0;
  line-height: 1;
  font-size: 0.72rem;
  color: rgba(255, 120, 120, 0.88);
  border-color: rgba(255, 120, 120, 0.22);
  cursor: pointer;
}

.gc-global-queue-hud-cancel:hover,
.gc-global-queue-hud-cancel:focus-visible{
  color: #ffb4b4;
  border-color: rgba(255, 120, 120, 0.45);
  background: rgba(255, 80, 80, 0.1);
}

.gc-global-queue-hud-bar{
  height: 6px;
  margin: 0;
  border-color: rgba(127, 255, 217, 0.22);
}

.gc-global-queue-hud-bar .gc-card-queue-bar-fill{
  background: linear-gradient(90deg, rgba(70, 229, 255, 0.65), rgba(127, 255, 217, 0.95));
}

.gc-header-queues-body .gc-fleet-global-hud{
  flex: 1 1 260px;
  min-width: min(100%, 260px);
  max-width: 100%;
  margin-left: 0;
}

/* GC-654 / compact fleet HUD under resource bar (OGameX-style text rows) */
.gc-boost-hud{
  width: 100%;
  border-top: 1px solid rgba(120, 200, 120, 0.14);
  background: rgba(4, 12, 8, 0.55);
  font-size: 0.72rem;
  line-height: 1.35;
  color: rgba(180, 230, 190, 0.88);
}
.gc-boost-hud[hidden]{
  display: none !important;
}
.gc-boost-hud__toggle{
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.5rem;
  width: 100%;
  margin: 0;
  padding: 3px 10px;
  border: 0;
  background: transparent;
  color: inherit;
  font: inherit;
  text-align: left;
  cursor: pointer;
}
.gc-boost-hud__title{
  font-weight: 600;
  color: rgba(140, 220, 160, 0.95);
  flex-shrink: 0;
}
.gc-boost-hud__summary{
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gc-boost-hud__details{
  padding: 0 10px 4px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.gc-boost-hud__details[hidden]{
  display: none !important;
}
.gc-boost-hud__row{
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.45rem;
  align-items: baseline;
}
.gc-boost-hud__row-time{
  color: rgba(160, 210, 170, 0.85);
}
.gc-boost-hud__note{
  flex-basis: 100%;
  font-size: 0.68rem;
  color: rgba(160, 190, 170, 0.72);
}
@media (max-width: 720px){
  .gc-boost-hud__summary{
    white-space: normal;
  }
  .gc-boost-hud__toggle{
    cursor: pointer;
  }
}
@media (min-width: 721px){
  .gc-boost-hud__details{
    display: none !important;
  }
  .gc-boost-hud__toggle{
    cursor: default;
    pointer-events: none;
  }
}

.gc-fleet-hud-root,
.gc-fleet-drawer-root{
  width: 100%;
  margin-top: 0;
  border-top: 1px solid rgba(70, 229, 255, 0.16);
  background: rgba(4, 8, 18, 0.62);
  position: relative;
  z-index: calc(var(--gc-z-sticky, 40) - 1);
}

/* Safety: drawer must span full resource row if ever nested in the HUD grid. */
.gc-header-cmd .resource-bar.resource-bar-cmd > .gc-fleet-drawer-root,
.gc-header-cmd .resource-bar.resource-bar-cmd > .gc-fleet-hud-root,
.gc-resource-sticky > .gc-fleet-drawer-root,
.gc-resource-sticky > .gc-fleet-hud-root{
  grid-column: 1 / -1;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.gc-fleet-hud-empty{
  margin: 0;
  padding: 4px 10px;
  font-size: 0.72rem;
  color: rgba(180, 210, 240, 0.55);
  line-height: 1.3;
}

.gc-fleet-hud-empty[hidden]{
  display: none !important;
}

.gc-fleet-hud-panel,
.gc-fleet-drawer-panel{
  padding: 1px 10px 3px;
  border: 0;
  max-width: 100%;
}

.gc-fleet-vacation-notice{
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin: 0;
  padding: 6px 12px 7px;
  border-top: 1px solid rgba(255, 154, 26, 0.24);
  background: rgba(255, 154, 26, 0.08);
  font-size: 0.66rem;
  line-height: 1.35;
  color: rgba(255, 196, 120, 0.92);
}

.gc-fleet-vacation-notice[hidden]{
  display: none !important;
}

.gc-fleet-vacation-timer{
  font-size: 0.64rem;
  color: rgba(255, 210, 140, 0.88);
}

.gc-fleet-drawer-panel[hidden]{
  display: none !important;
}

.gc-fleet-hud-list,
.gc-fleet-drawer-list{
  display: flex;
  flex-direction: column;
  gap: 0;
  max-height: min(22vh, 140px);
  overflow-y: auto;
  overflow-x: hidden;
  padding: 0;
  overscroll-behavior: contain;
}

.gc-fleet-hud-root.is-show-all .gc-fleet-hud-list,
.gc-fleet-hud-root.is-show-all .gc-fleet-drawer-list,
.gc-fleet-hud-list.is-show-all,
.gc-fleet-drawer-list.is-show-all{
  max-height: none;
  overflow-y: auto;
}

.gc-fleet-hud-row,
.gc-fleet-drawer-row{
  display: grid;
  grid-template-columns: minmax(0, 38%) minmax(96px, 1fr) 18.5rem;
  column-gap: 10px;
  align-items: center;
  min-height: 17px;
  padding: 1px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  border-bottom: 1px solid rgba(120, 190, 255, 0.06);
  font-size: 0.71rem;
  line-height: 1.2;
}

.gc-fleet-hud-main{
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  column-gap: 8px;
  align-items: center;
  min-width: 0;
  overflow: hidden;
}

.gc-fleet-hud-track{
  position: relative;
  display: block;
  align-self: center;
  width: 100%;
  min-width: 96px;
  height: 12px;
}

.gc-fleet-hud-track-line{
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 1px;
  transform: translateY(-50%);
  background: linear-gradient(
    90deg,
    rgba(70, 229, 255, 0.08) 0%,
    rgba(70, 229, 255, 0.42) 50%,
    rgba(70, 229, 255, 0.08) 100%
  );
  box-shadow: 0 0 6px rgba(70, 229, 255, 0.12);
}

.gc-fleet-hud-track-line::before,
.gc-fleet-hud-track-line::after{
  content: "";
  position: absolute;
  top: 50%;
  width: 2px;
  height: 5px;
  transform: translateY(-50%);
  background: rgba(127, 255, 217, 0.38);
  box-shadow: 0 0 4px rgba(70, 229, 255, 0.22);
}

.gc-fleet-hud-track-line::before{
  left: 0;
}

.gc-fleet-hud-track-line::after{
  right: 0;
}

.gc-fleet-hud-track-dot{
  position: absolute;
  top: 50%;
  left: calc(var(--fleet-progress, 0) * 100%);
  width: 7px;
  height: 7px;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: rgba(127, 255, 217, 0.98);
  box-shadow:
    0 0 8px rgba(70, 229, 255, 0.85),
    0 0 14px rgba(127, 255, 217, 0.45);
  will-change: left;
}

.gc-fleet-hud-track.is-snap .gc-fleet-hud-track-dot{
  transition: none;
}

.gc-fleet-hud-track[data-fleet-flight-status="holding"] .gc-fleet-hud-track-dot{
  animation: gc-fleet-hud-track-pulse 1.35s ease-in-out infinite;
}

.gc-fleet-hud-track[data-fleet-flight-status="returning"] .gc-fleet-hud-track-dot{
  background: rgba(255, 196, 120, 0.98);
  box-shadow:
    0 0 8px rgba(255, 152, 64, 0.75),
    0 0 14px rgba(255, 196, 120, 0.4);
}

.gc-fleet-hud-row--expedition .gc-fleet-hud-track-dot{
  background: rgba(255, 214, 64, 0.98);
  box-shadow:
    0 0 8px rgba(255, 196, 0, 0.72),
    0 0 14px rgba(255, 214, 64, 0.42);
}

.gc-fleet-hud-row--attack .gc-fleet-hud-track-dot{
  background: rgba(255, 120, 120, 0.98);
  box-shadow:
    0 0 8px rgba(255, 88, 72, 0.75),
    0 0 14px rgba(255, 120, 120, 0.4);
}

@keyframes gc-fleet-hud-track-pulse{
  0%, 100%{
    transform: translate(-50%, -50%) scale(1);
    opacity: 0.82;
    box-shadow: 0 0 6px rgba(70, 229, 255, 0.55);
  }
  50%{
    transform: translate(-50%, -50%) scale(1.35);
    opacity: 1;
    box-shadow: 0 0 14px rgba(127, 255, 217, 0.95);
  }
}

@media (prefers-reduced-motion: reduce){
  .gc-fleet-hud-track[data-fleet-flight-status="holding"] .gc-fleet-hud-track-dot{
    animation: none;
  }
}

.gc-fleet-hud-meta{
  display: grid;
  grid-template-columns: 4.2rem 3.6rem 3.6rem 6rem;
  column-gap: 6px;
  align-items: center;
  justify-items: end;
  width: 18.5rem;
  max-width: 18.5rem;
  min-width: 18.5rem;
  white-space: nowrap;
}

.gc-fleet-hud-leg{
  justify-self: start;
  width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  font-size: 0.58rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(180, 210, 240, 0.42);
}

.gc-fleet-hud-row:last-child{
  border-bottom: 0;
}

.gc-fleet-hud-row:hover{
  background: rgba(70, 229, 255, 0.04);
}

.gc-fleet-hud-mission,
.gc-fleet-drawer-row-mission{
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  line-height: 1.2;
}

.gc-fleet-hud-route,
.gc-fleet-drawer-row-route{
  min-width: 0;
  font-size: 0.67rem;
  color: rgba(190, 220, 245, 0.78);
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gc-fleet-hud-ships{
  width: 100%;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: right;
  font-size: 0.64rem;
  font-variant-numeric: tabular-nums;
  color: rgba(180, 210, 240, 0.58);
}

.gc-fleet-hud-ships::before{
  content: "?";
  margin-right: 3px;
  opacity: 0.45;
  font-size: 0.62rem;
}

.gc-fleet-hud-ships[hidden]{
  display: none !important;
}

.gc-fleet-hud-time,
.gc-fleet-drawer-chip--arrival{
  width: 100%;
  min-width: 2.6rem;
  text-align: right;
  font-size: 0.66rem;
  font-weight: 600;
  font-variant-numeric: tabular-nums;
  color: rgba(127, 255, 217, 0.9);
  border: 0;
  background: transparent;
  padding: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  justify-self: end;
}

.gc-fleet-hud-row.is-urgent .gc-fleet-hud-time,
.gc-fleet-hud-time.is-urgent{
  color: rgba(255, 180, 120, 0.96);
  animation: gc-fleet-drawer-timer-pulse 1s ease-in-out infinite;
}

.gc-fleet-hud-row.is-arrived .gc-fleet-hud-time,
.gc-fleet-hud-time.is-arrived{
  color: rgba(127, 255, 217, 1);
}

@keyframes gc-fleet-drawer-timer-pulse{
  0%, 100%{ opacity: 0.82; }
  50%{ opacity: 1; }
}

.gc-fleet-hud-action-wrap{
  width: 100%;
  min-width: 0;
  max-width: 6rem;
  overflow: hidden;
  justify-self: end;
}

.gc-fleet-hud-action,
.gc-fleet-drawer-row-action{
  display: block;
  width: 100%;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  border: 0;
  background: transparent;
  padding: 0 2px;
  min-height: 0;
  font-size: 0.64rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.72);
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
  white-space: nowrap;
}

.gc-fleet-hud-action:hover,
.gc-fleet-hud-action:focus-visible,
.gc-fleet-drawer-row-action:hover,
.gc-fleet-drawer-row-action:focus-visible{
  color: rgba(127, 255, 217, 0.98);
  outline: none;
}

.gc-fleet-hud-more,
.gc-fleet-drawer-more{
  display: block;
  width: 100%;
  margin: 2px 0 0;
  padding: 2px 2px 0;
  border: 0;
  background: transparent;
  font-size: 0.64rem;
  color: rgba(180, 210, 240, 0.55);
  text-align: left;
  cursor: pointer;
}

.gc-fleet-hud-more:hover,
.gc-fleet-drawer-more:hover{
  color: rgba(127, 255, 217, 0.82);
}

/* Legacy flight-route visuals (fleet drawer detail retired; kept for contract/tests) */
.gc-fleet-flight-stage{
  display: flex;
  align-items: center;
  gap: 6px;
  width: 100%;
  min-height: 0;
  padding: 2px 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}

.gc-fleet-flight-core{
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.gc-fleet-flight-track{
  position: relative;
  width: 100%;
  height: 8px;
  flex: 0 0 auto;
}

.gc-fleet-flight-line{
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  height: 2px;
  transform: translateY(-50%);
  background: linear-gradient(
    90deg,
    rgba(70, 229, 255, 0.12) 0%,
    rgba(70, 229, 255, 0.55) 50%,
    rgba(70, 229, 255, 0.12) 100%
  );
}

.gc-fleet-flight-dot{
  position: absolute;
  top: 50%;
  left: calc(var(--fleet-progress, 0) * 100%);
  width: 7px;
  height: 7px;
  border-radius: 50%;
  transform: translate(-50%, -50%);
  background: rgba(127, 255, 217, 0.98);
}

.gc-fleet-flight-meta{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  min-width: 0;
}

.gc-fleet-flight-label{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.56rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.52);
}

.gc-fleet-flight-timer{
  flex: 0 0 auto;
  font-size: 0.72rem;
  font-weight: 700;
  color: rgba(127, 255, 217, 0.96);
  font-variant-numeric: tabular-nums lining-nums;
  white-space: nowrap;
}

.gc-fleet-flight-node{
  flex: 0 0 auto;
  width: 7px;
  height: 7px;
  border: 1px solid rgba(70, 229, 255, 0.55);
  background: rgba(6, 12, 24, 0.95);
}

.gc-fleet-flight-node--target{
  border-color: rgba(127, 255, 217, 0.65);
}

.gc-fleet-drawer-tooltip{
  position: fixed;
  z-index: calc(var(--gc-z-popover, 120) + 2);
  max-width: min(300px, calc(100vw - 20px));
  padding: 8px 10px;
  border-radius: 2px;
  border: 1px solid rgba(70, 229, 255, 0.42);
  background: rgba(6, 12, 24, 0.98);
  color: rgba(210, 230, 250, 0.92);
  font-size: 0.72rem;
  line-height: 1.45;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.45) inset,
    0 10px 28px rgba(0, 0, 0, 0.48),
    0 0 16px rgba(70, 229, 255, 0.14);
  pointer-events: none;
}

.gc-fleet-drawer-tooltip[hidden]{
  display: none !important;
}

.gc-fleet-drawer-tooltip-title{
  margin-bottom: 6px;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gc-primary-2);
}

.gc-fleet-drawer-tooltip-section{
  margin-top: 5px;
}

.gc-fleet-drawer-tooltip-label{
  display: block;
  margin-bottom: 2px;
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.62);
}

/* Mobile tap detail — same HTML as hover tooltip, inline under the row. */
.gc-fleet-drawer-row-detail{
  display: none;
  width: 100%;
  margin: 2px 0 0;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm, 2px);
  border: 1px solid rgba(70, 229, 255, 0.36);
  background: rgba(6, 12, 24, 0.96);
  color: rgba(210, 230, 250, 0.92);
  font-size: 0.72rem;
  line-height: 1.45;
  box-sizing: border-box;
}

.gc-fleet-drawer-row.is-detail-open .gc-fleet-drawer-row-detail,
.gc-fleet-hud-row.is-detail-open .gc-fleet-drawer-row-detail{
  display: block;
}

.gc-fleet-drawer-row.is-detail-open,
.gc-fleet-hud-row.is-detail-open{
  padding-bottom: 6px;
}

.gc-fleet-drawer-row-detail .gc-fleet-drawer-tooltip-title{
  margin-bottom: 6px;
}

.gc-fleet-drawer-row-detail .gc-fleet-drawer-tooltip-section{
  margin-top: 5px;
}

.gc-fleet-drawer-row-detail .gc-fleet-drawer-tooltip-label{
  display: block;
  margin-bottom: 2px;
}

@media (hover: none), (pointer: coarse){
  .gc-fleet-drawer-row[data-movement-id]:not([data-fleet-alert]),
  .gc-fleet-hud-row[data-movement-id]:not([data-fleet-alert]){
    cursor: pointer;
  }
}

@media (max-width: 900px){
  .gc-fleet-flight-timer{
    font-size: 0.68rem;
  }
}

@media (max-width: 720px){
  .gc-fleet-hud-row,
  .gc-fleet-drawer-row{
    grid-template-columns: minmax(0, 1fr);
    row-gap: 4px;
    padding: 6px 0;
    min-height: 0;
  }

  .gc-fleet-hud-track{
    display: none;
  }

  .gc-fleet-hud-main{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    grid-template-columns: unset;
    min-width: 0;
  }

  .gc-fleet-hud-route,
  .gc-fleet-drawer-row-route{
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    word-break: break-word;
  }

  .gc-fleet-hud-meta{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 4px 8px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    grid-template-columns: unset;
  }
}

@media (hover: none), (pointer: coarse){
  .gc-fleet-hud-row{
    cursor: default;
  }

  .gc-fleet-drawer-row[data-movement-id]:not([data-fleet-alert]),
  .gc-fleet-hud-row[data-movement-id]:not([data-fleet-alert]){
    cursor: pointer;
  }
}

.gc-fleet-hud-row--incoming-alert{
  cursor: default;
}

.gc-fleet-hud-row--incoming-alert .gc-fleet-hud-route{
  color: #fca5a5;
}

.gc-fleet-hud-row--incoming-alert .gc-fleet-hud-time{
  color: #fca5a5;
  text-shadow: 0 0 8px rgba(255, 80, 80, 0.28);
}

.gc-fleet-hud-row--incoming-alert .gc-fleet-hud-ships{
  color: #fca5a5;
}

.gc-fleet-hud-row--incoming-alert .gc-fleet-hud-track-line{
  background: linear-gradient(
    90deg,
    rgba(255, 80, 80, 0.08) 0%,
    rgba(255, 100, 100, 0.42) 50%,
    rgba(255, 80, 80, 0.08) 100%
  );
  box-shadow: 0 0 6px rgba(255, 80, 80, 0.16);
}

.gc-fleet-hud-row--incoming-alert.is-urgent .gc-fleet-hud-time{
  animation: gc-fleet-drawer-timer-pulse 1s ease-in-out infinite;
}

/* GC-640A ? legacy fleet HUD chip styles (fleet page / badges) */
.gc-fleet-global-hud{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  flex: 1 1 220px;
  min-width: 0;
  max-width: 100%;
  margin-left: auto;
  padding: 6px 10px;
  border-radius: var(--gc-radius-sm);
  background: linear-gradient(180deg, rgba(8, 14, 28, 0.92), rgba(6, 10, 22, 0.78));
  border: 1px solid rgba(120, 190, 255, 0.16);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.28) inset,
    0 8px 18px rgba(0, 0, 0, 0.28);
  color: var(--gc-text-soft);
  text-decoration: none;
  white-space: nowrap;
  overflow: hidden;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.gc-fleet-global-hud:hover,
.gc-fleet-global-hud:focus-visible{
  border-color: rgba(70, 229, 255, 0.34);
  box-shadow: var(--gc-border-glow), 0 10px 22px rgba(0, 0, 0, 0.32);
}

.gc-fleet-global-hud.is-empty,
.gc-fleet-global-hud[hidden]{
  display: none !important;
}

.gc-fleet-hud-tag{
  flex: 0 0 auto;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.62);
  font-weight: 600;
}

.gc-fleet-hud-count{
  flex: 0 0 auto;
  min-width: 1.1rem;
  padding: 0 0.28rem;
  border: 1px solid rgba(70, 229, 255, 0.35);
  border-radius: var(--gc-radius-sm);
  background: rgba(70, 229, 255, 0.1);
  color: var(--gc-primary-2);
  font-size: 0.68rem;
  font-weight: 800;
  line-height: 1.35;
  text-align: center;
}

.gc-fleet-hud-body{
  display: inline-flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  overflow: hidden;
  font-size: 0.76rem;
}

.gc-fleet-hud-mission{
  flex: 0 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 600;
  color: var(--gc-text);
}

.gc-fleet-hud-mission--expedition{ color: var(--gc-neon-gold); }
.gc-fleet-hud-mission--collect{ color: var(--gc-neon-cyan); }
.gc-fleet-hud-mission--transport{ color: rgba(127, 255, 217, 0.88); }
.gc-fleet-hud-mission--spy{ color: #7dd3fc; }
.gc-fleet-hud-mission--attack{ color: #fca5a5; }
.gc-fleet-hud-mission--colonize{ color: #86efac; }
.gc-fleet-hud-mission--recycle{ color: #fbbf24; }
.gc-fleet-hud-mission--hold{ color: #c4b5fd; }
.gc-fleet-hud-mission--deploy{ color: rgba(127, 255, 217, 0.88); }

.gc-fleet-hud-status{
  flex: 0 0 auto;
  color: var(--gc-accent);
  font-size: 0.72rem;
}

.gc-fleet-hud-target{
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  color: rgba(215, 246, 255, 0.86);
}

.gc-fleet-hud-leg{
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  gap: 4px;
  color: rgba(170, 220, 255, 0.82);
}

.gc-fleet-hud-leg-label{
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.gc-fleet-hud-countdown{
  font-size: 0.76rem;
  color: rgba(215, 246, 255, 0.94);
}

.gc-fleet-hud-more{
  flex: 0 0 auto;
  font-size: 0.68rem;
  color: rgba(127, 255, 217, 0.72);
  font-weight: 600;
}

.gc-fleet-nav-badge{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1rem;
  height: 1rem;
  margin-left: 0.35rem;
  padding: 0 0.28rem;
  border: 1px solid rgba(255, 168, 76, 0.45);
  border-radius: var(--gc-radius-sm);
  background: rgba(255, 168, 76, 0.14);
  color: #ffb347;
  font-family: var(--gc-mono);
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
}

.gc-fleet-nav-badge.hidden,
.gc-fleet-nav-badge[hidden]{
  display: none !important;
}

.gc-bottom-nav-item[data-nav-module="fleet"]{
  position: relative;
}

.gc-bottom-nav-item[data-nav-module="fleet"] .gc-fleet-nav-badge{
  position: absolute;
  top: 2px;
  right: calc(50% - 1.35rem);
  min-width: 1rem;
  height: 1rem;
  margin-left: 0;
  padding: 0 0.22rem;
  font-size: 0.58rem;
}

.gc-bottom-nav-item--fleet-active .gc-bottom-nav-icon{
  animation: gc-fleet-nav-pulse 1.6s ease-in-out infinite;
}

@keyframes gc-fleet-nav-pulse{
  0%, 100%{ filter: drop-shadow(0 0 0 transparent); opacity: 0.92; }
  50%{ filter: drop-shadow(0 0 6px rgba(255, 168, 76, 0.65)); opacity: 1; }
}

@media (prefers-reduced-motion: reduce){
  .gc-bottom-nav-item--fleet-active .gc-bottom-nav-icon{
    animation: none;
    filter: drop-shadow(0 0 4px rgba(255, 168, 76, 0.45));
  }
}

@media (max-width: 900px){
  .gc-fleet-global-hud{
    flex: 1 1 100%;
    margin-left: 0;
    margin-top: 4px;
    padding: 5px 8px;
    gap: 6px;
  }

  .gc-fleet-hud-body{
    gap: 4px;
    font-size: 0.72rem;
  }

  .gc-fleet-hud-status,
  .gc-fleet-hud-leg-label{
    display: none;
  }
}

@media (max-width: 520px){
  .gc-fleet-hud-target{
    max-width: 38vw;
  }
}

.gc-header-meta{
  display: flex;
  align-items: center;
  gap: 8px;
  flex: 0 1 auto;
  min-width: 0;
  flex-wrap: nowrap;
}

.gc-header-fleets-toggle,
.gc-header-planets-toggle{
  display: none;
  position: relative;
  flex: 0 0 auto;
  align-items: center;
  justify-content: center;
  width: 36px;
  min-width: 36px;
  min-height: 36px;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(120, 190, 255, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  background: linear-gradient(180deg, rgba(8, 14, 28, 0.92), rgba(6, 10, 22, 0.78));
  color: rgba(140, 230, 255, 0.95);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.28) inset,
    0 6px 14px rgba(0, 0, 0, 0.28);
  cursor: pointer;
  line-height: 1;
}

.gc-header-fleets-toggle-icon{
  display: block;
  font-size: 1rem;
  line-height: 1;
}

.gc-header-fleets-badge{
  position: absolute;
  top: -4px;
  right: -4px;
  min-width: 1.1rem;
  height: 1.1rem;
  padding: 0 3px;
  border: 1px solid rgba(255, 80, 80, 0.55);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(140, 20, 30, 0.95);
  color: #fff;
  font-size: 0.58rem;
  font-weight: 700;
  line-height: 1.1rem;
  text-align: center;
}

.gc-header-fleets-toggle:not(.has-fleets){
  opacity: 0.72;
}

.gc-header-fleets-toggle.is-active,
.gc-header-fleets-toggle.has-fleets{
  opacity: 1;
  border-color: rgba(70, 229, 255, 0.4);
}

.gc-header-planets-toggle-icon{
  display: block;
  font-size: 1.35rem;
  font-weight: 700;
  transform: translateX(-1px);
}

.gc-header-fleets-toggle:hover,
.gc-header-fleets-toggle:focus-visible,
.gc-header-planets-toggle:hover,
.gc-header-planets-toggle:focus-visible{
  border-color: rgba(70, 229, 255, 0.45);
  outline: none;
}

.gc-header-planets-toggle[aria-expanded="true"] .gc-header-planets-toggle-icon{
  transform: translateX(1px) scaleX(-1);
}

/* Planet-only sheet card (header arrow) — not the full MEHR drawer. */
.gc-planet-registry-sheet{
  position: fixed;
  inset: 0;
  z-index: var(--gc-z-modal, 13000);
  pointer-events: none;
}

.gc-planet-registry-sheet[hidden]{
  display: none !important;
}

.gc-planet-registry-sheet-backdrop{
  position: absolute;
  inset: 0;
  border: none;
  padding: 0;
  margin: 0;
  background: rgba(2, 6, 14, 0.58);
  cursor: pointer;
  pointer-events: auto;
  opacity: 0;
  transition: opacity 0.2s ease;
}

.gc-planet-registry-sheet-panel{
  position: absolute;
  top: max(8px, var(--gc-safe-top, 0px));
  right: max(8px, var(--gc-safe-right, 0px));
  bottom: calc(var(--gc-bottom-nav-h, 64px) + var(--gc-safe-bottom, 0px) + 8px);
  width: min(22rem, calc(100vw - 16px));
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(120, 190, 255, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  background: linear-gradient(180deg, rgba(8, 14, 28, 0.98), rgba(4, 8, 18, 0.96));
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 18px 40px rgba(0, 0, 0, 0.55);
  transform: translateX(110%);
  transition: transform 0.24s ease;
  pointer-events: auto;
  overflow: hidden;
}

.gc-planet-registry-sheet.is-open{
  pointer-events: auto;
}

.gc-planet-registry-sheet.is-open .gc-planet-registry-sheet-backdrop{
  opacity: 1;
}

.gc-planet-registry-sheet.is-open .gc-planet-registry-sheet-panel{
  transform: translateX(0);
}

.gc-planet-registry-sheet-close{
  position: absolute;
  top: 8px;
  right: 8px;
  z-index: 2;
  min-width: 32px;
  min-height: 32px;
}

.gc-planet-registry-sheet-body{
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: 10px 10px 12px;
}

.gc-planet-registry-sheet-body .gc-planet-registry{
  border: none;
  background: transparent;
  box-shadow: none;
  margin: 0;
  padding: 0;
  height: auto;
  max-height: none;
}

.gc-planet-registry-sheet-body .gc-planet-registry-head{
  padding-right: 36px;
}

.gc-planet-registry-sheet-body .gc-planet-registry-list{
  max-height: none;
}

body.gc-planet-sheet-open{
  overflow: hidden;
}

.gc-hslot-messages{
  display: flex;
  align-items: center;
  flex: 0 0 auto;
  min-width: 0;
}

/* Segmented HUD panels (Score / Online / User) */
.gc-hud-panel{
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 5px 9px;
  border-radius: var(--gc-radius-sm);
  background: linear-gradient(180deg, rgba(8, 14, 28, 0.88), rgba(6, 10, 22, 0.72));
  border: 1px solid rgba(120, 190, 255, 0.14);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.28) inset,
    0 8px 18px rgba(0, 0, 0, 0.28);
  font-size: 0.78rem;
  color: var(--gc-text-soft);
  white-space: nowrap;
  min-width: 0;
  text-decoration: none;
}

.gc-hud-panel-score:hover{
  border-color: rgba(70, 229, 255, 0.32);
  box-shadow: var(--gc-border-glow), 0 10px 22px rgba(0, 0, 0, 0.32);
}

.gc-hud-panel-tag{
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(127, 255, 217, 0.62);
  font-weight: 600;
}

.gc-hud-panel-value{ color: rgba(215, 246, 255, 0.94); }
.gc-hud-panel-sep{ opacity: 0.28; font-weight: 300; }

.gc-hud-panel-dot{
  width: 7px;
  height: 7px;
  border-radius: var(--gc-radius-sm);
  background: rgba(120, 255, 220, 0.92);
  box-shadow: 0 0 10px rgba(120, 255, 220, 0.45);
}

.gc-hud-panel-user{
  flex: 1 1 auto;
  min-width: 148px;
  max-width: min(320px, 38vw);
}

.gc-hud-panel-user .gc-commander-identity{
  min-width: 0;
}

.gc-hud-panel-user .gc-user-name{
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.82rem;
  min-width: 0;
  flex: 1 1 auto;
}

.gc-hud-panel-user .gc-admin-badge{
  flex: 0 0 auto;
}

.gc-header-cmd .gc-logo{
  border-radius: var(--gc-radius-sm);
  padding: 7px 11px;
  box-shadow:
    0 10px 24px rgba(0, 0, 0, 0.42),
    0 0 14px rgba(120, 255, 220, 0.08);
}

.gc-header-cmd .gc-admin-badge{
  border-radius: var(--gc-radius-sm);
  padding: 2px 6px;
  font-size: 0.68rem;
}

/* Resource HUD panels (row 2) ? GC-557A scannable command strip */
.gc-header-cmd .resource-bar.resource-bar-cmd{
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 7px;
  align-items: stretch;
  max-width: none;
  width: 100%;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
  border-radius: var(--gc-radius-sm);
  overflow: visible;
}

.gc-header-cmd .resource-bar.resource-bar-cmd.resource-bar-with-planet-limit{
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.gc-header-cmd .hud-res-warn{
  display: block;
  margin-top: 2px;
  padding-left: 2px;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 196, 0, 0.92);
  line-height: 1.2;
}
.gc-header-cmd .hud-res-panel--storage-warn{
  border-color: color-mix(in srgb, rgba(255, 196, 0, 0.75) 45%, var(--hud-res-accent) 55%);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.24) inset,
    0 0 16px rgba(255, 196, 0, 0.14),
    0 6px 14px rgba(0, 0, 0, 0.22);
}
.gc-header-cmd .hud-res-panel--storage-full .hud-res-warn{
  color: rgba(255, 120, 80, 0.96);
}
.gc-header-cmd .hud-res-panel--storage-full{
  border-color: color-mix(in srgb, rgba(255, 120, 80, 0.8) 50%, var(--hud-res-accent) 50%);
}

/* GC-807A ? segmented storage / usage capacity bar (inline in amount column) */
.gc-header-cmd .hud-res-amount .hud-res-capacity{
  width: 100%;
  margin: 0;
}
.gc-header-cmd .hud-res-capacity{
  display: block;
  flex-shrink: 0;
  min-width: 0;
  min-height: 9px;
  visibility: visible;
}
.gc-header-cmd .hud-cap-bar{
  display: grid;
  grid-template-columns: repeat(10, minmax(0, 1fr));
  gap: 2px;
  width: 100%;
  min-width: 0;
  flex-shrink: 0;
  height: 6px;
  padding: 1px;
  border: 1px solid rgba(127, 255, 217, 0.32);
  border-radius: 1px;
  background: rgba(0, 0, 0, 0.38);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.22) inset;
}
.gc-header-cmd .hud-cap-seg{
  min-width: 0;
  border-radius: 0;
  background: rgba(72, 96, 118, 0.42);
  border: 1px solid rgba(127, 255, 217, 0.08);
  transition: background-color 0.22s ease, box-shadow 0.22s ease;
}
.gc-header-cmd .hud-cap-seg.is-filled{
  background: var(--hud-cap-fill, rgba(52, 232, 178, 0.92));
  border-color: color-mix(in srgb, var(--hud-cap-fill, rgba(52, 232, 178, 0.92)) 65%, rgba(127, 255, 217, 0.35));
  box-shadow: 0 0 5px var(--hud-cap-glow, rgba(52, 232, 178, 0.35));
}
.gc-header-cmd .hud-cap-seg.is-active.is-filled{
  box-shadow: 0 0 8px var(--hud-cap-glow, rgba(52, 232, 178, 0.55));
}
.gc-header-cmd .hud-cap-bar--pulse .hud-cap-seg.is-active.is-filled{
  animation: gc-hud-cap-pulse 0.42s ease;
}
@keyframes gc-hud-cap-pulse{
  0%, 100%{ filter: brightness(1); }
  50%{ filter: brightness(1.35); }
}
.gc-header-cmd .hud-cap--tier-green{
  --hud-cap-fill: rgba(46, 204, 113, 0.95);
  --hud-cap-glow: rgba(46, 204, 113, 0.42);
}
.gc-header-cmd .hud-cap--tier-yellow-green{
  --hud-cap-fill: rgba(154, 205, 50, 0.95);
  --hud-cap-glow: rgba(154, 205, 50, 0.4);
}
.gc-header-cmd .hud-cap--tier-yellow{
  --hud-cap-fill: rgba(255, 214, 64, 0.95);
  --hud-cap-glow: rgba(255, 214, 64, 0.38);
}
.gc-header-cmd .hud-cap--tier-orange{
  --hud-cap-fill: rgba(255, 152, 64, 0.96);
  --hud-cap-glow: rgba(255, 152, 64, 0.4);
}
.gc-header-cmd .hud-cap--tier-red{
  --hud-cap-fill: rgba(255, 88, 72, 0.96);
  --hud-cap-glow: rgba(255, 88, 72, 0.45);
}

.gc-header-vacation-banner{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 12px;
  margin: 0 0 8px;
  padding: 8px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 196, 0, 0.35);
  background: rgba(255, 196, 0, 0.08);
  color: var(--gc-text-soft);
  font-size: 0.84rem;
}
.gc-header-vacation-icon{
  flex-shrink: 0;
  font-size: 1rem;
  line-height: 1;
}
.gc-header-vacation-text{
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 220, 120, 0.95);
}
.gc-header-vacation-timer{
  color: var(--gc-text-dim);
  font-size: 0.82rem;
}
.gc-header-vacation-link{
  margin-left: auto;
  color: var(--gc-primary-2);
  font-size: 0.78rem;
  text-decoration: none;
}
.gc-header-vacation-link:hover{
  text-decoration: underline;
}

.gc-header-cmd .hud-res-panel{
  --hud-res-accent: rgba(127, 255, 217, 0.72);
  --hud-res-glow: rgba(127, 255, 217, 0.24);
  --hud-res-bg: rgba(127, 255, 217, 0.05);
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
  gap: 3px;
  min-width: 0;
  min-height: 3.2rem;
  height: 100%;
  padding: 5px 7px 4px 9px;
  border-radius: var(--gc-radius-sm);
  background:
    linear-gradient(180deg, rgba(8, 14, 28, 0.92), rgba(6, 10, 20, 0.78)),
    linear-gradient(135deg, var(--hud-res-bg), transparent 72%);
  border: 1px solid color-mix(in srgb, var(--hud-res-accent) 28%, rgba(120, 190, 255, 0.12));
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.24) inset,
    0 0 18px color-mix(in srgb, var(--hud-res-glow) 55%, transparent),
    0 6px 14px rgba(0, 0, 0, 0.22);
  position: relative;
  overflow: visible;
}

.gc-header-cmd .hud-res-metal{
  --hud-res-accent: rgba(52, 232, 178, 0.95);
  --hud-res-glow: rgba(52, 232, 178, 0.34);
  --hud-res-bg: rgba(52, 232, 178, 0.08);
}

.gc-header-cmd .hud-res-crystal{
  --hud-res-accent: rgba(118, 168, 255, 0.96);
  --hud-res-glow: rgba(118, 168, 255, 0.34);
  --hud-res-bg: rgba(118, 168, 255, 0.08);
}

.gc-header-cmd .hud-res-fuel-cells{
  --hud-res-accent: rgba(255, 186, 56, 0.96);
  --hud-res-glow: rgba(255, 186, 56, 0.32);
  --hud-res-bg: rgba(255, 186, 56, 0.08);
}

.gc-header-cmd .hud-res-energy{
  --hud-res-accent: rgba(35, 242, 166, 0.88);
  --hud-res-glow: rgba(35, 242, 166, 0.22);
  --hud-res-bg: rgba(35, 242, 166, 0.05);
}

.gc-header-cmd .hud-res-planet-limit{
  --hud-res-accent: rgba(120, 200, 255, 0.88);
  --hud-res-glow: rgba(120, 200, 255, 0.22);
  --hud-res-bg: rgba(120, 200, 255, 0.06);
}

.gc-header-cmd .hud-res-panel::before{
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: var(--hud-res-accent);
  opacity: 0.92;
  box-shadow: 0 0 14px var(--hud-res-glow);
}

.gc-header-cmd .hud-res-badge{
  display: none;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  min-width: 1.65rem;
  padding: 1px 4px;
  border-radius: 3px;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  line-height: 1.2;
  text-transform: uppercase;
  color: var(--hud-res-accent);
  background: color-mix(in srgb, var(--hud-res-bg) 80%, rgba(0, 0, 0, 0.35));
  border: 1px solid color-mix(in srgb, var(--hud-res-accent) 42%, transparent);
  box-shadow: 0 0 10px color-mix(in srgb, var(--hud-res-glow) 45%, transparent);
}

.gc-header-cmd .hud-res-body .res-icon--hud{
  width: 42px;
  height: 42px;
  filter: drop-shadow(0 0 12px var(--hud-res-glow));
}

.gc-header-cmd .hud-res-amount{
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  justify-content: center;
  gap: 2px;
  min-width: 0;
  flex: 1 1 auto;
}

.gc-header-cmd .hud-res-name{
  display: block;
  width: 100%;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: color-mix(in srgb, var(--hud-res-accent) 72%, rgba(220, 235, 255, 0.55));
  line-height: 1.1;
  text-align: right;
}

.gc-header-cmd .hud-res-cap-line{
  display: inline-flex;
  align-items: center;
  justify-content: flex-end;
  gap: 2px;
  line-height: 1;
  min-height: 0;
  width: 100%;
}

.gc-header-cmd .hud-res-body .res-value,
.gc-header-cmd .hud-res-body .res-value.energy{
  font-size: clamp(0.88rem, 0.82rem + 0.28vw, 1.02rem);
  font-weight: 700;
  color: rgba(244, 252, 255, 0.98);
  line-height: 1.1;
  min-width: 4.25ch;
  text-align: right;
  width: 100%;
}

.gc-header-cmd .hud-res-body .res-cap,
.gc-header-cmd .hud-res-cap-line .res-sep{
  font-size: 0.66rem;
  font-weight: 500;
  color: rgba(180, 210, 235, 0.62);
}

.gc-header-cmd .hud-res-cap-line .res-sep{
  opacity: 0.45;
}

.gc-header-cmd .hud-res-body #res-energy{
  font-size: clamp(0.84rem, 0.78rem + 0.22vw, 0.96rem);
  font-weight: 700;
  color: rgba(244, 252, 255, 0.96);
  min-width: 5.5ch;
  text-align: right;
}

.gc-header-cmd .res-rate{
  order: 3;
  flex: 0 0 auto;
  min-height: 0.7rem;
  font-size: 0.58rem;
  letter-spacing: 0.04em;
  color: rgba(180, 220, 255, 0.72);
  padding-left: 2px;
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gc-header-cmd .res-rate[aria-hidden="true"]{
  display: block;
}

.gc-header-cmd .hud-res-footer{
  display: flex;
  align-items: baseline;
  flex-wrap: nowrap;
  gap: 6px;
  min-width: 0;
  order: 3;
}

.gc-header-cmd .res-boost-chip{
  flex: 0 1 auto;
  min-width: 0;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: rgba(92, 255, 168, 0.92);
  line-height: 1.1;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gc-header-cmd .res-boost-chip[hidden]{
  display: none;
}

.gc-header-cmd .hud-res-body{
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  padding-left: 2px;
}

.gc-header-cmd .hud-res-body .res-block{
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 0;
  border: none;
  border-radius: var(--gc-radius-sm);
  background: transparent;
  box-shadow: none;
  min-width: 0;
}

.gc-header-cmd .hud-res-body .res-block-energy.energy-warning{
  border: none;
  box-shadow: none;
}

.gc-header-cmd .hud-res-energy.energy-warning{
  border: 1px solid rgba(255, 120, 120, 0.35) !important;
  box-shadow: 0 0 12px rgba(255, 120, 120, 0.15) !important;
  animation: gc-hud-energy-panel-flicker 1.15s ease-in-out infinite;
}
.gc-header-cmd .hud-res-energy.energy-warning .hud-cap-bar{
  animation: gc-hud-energy-bar-flicker 1.15s ease-in-out infinite;
}
@keyframes gc-hud-energy-panel-flicker{
  0%, 100%{
    border-color: rgba(255, 120, 120, 0.32) !important;
    box-shadow: 0 0 10px rgba(255, 120, 120, 0.12) !important;
  }
  50%{
    border-color: rgba(255, 120, 120, 0.72) !important;
    box-shadow: 0 0 22px rgba(255, 120, 120, 0.38) !important;
  }
}
@keyframes gc-hud-energy-bar-flicker{
  0%, 100%{
    border-color: rgba(255, 120, 120, 0.28);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.22) inset, 0 0 4px rgba(255, 88, 72, 0.18);
  }
  50%{
    border-color: rgba(255, 120, 120, 0.72);
    box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.22) inset, 0 0 14px rgba(255, 88, 72, 0.55);
  }
}
@media (prefers-reduced-motion: reduce){
  .gc-header-cmd .hud-res-energy.energy-warning,
  .gc-header-cmd .hud-res-energy.energy-warning .hud-cap-bar{
    animation: none;
  }
}

/* Legacy pill aliases map to panels */
.gc-header-pill{
  border-radius: var(--gc-radius-sm);
}

.gc-user-info{
  border-radius: var(--gc-radius-sm);
}

/* Build queue (JS-rendered) */
.build-queue-root{ margin-top: 4px; }

.build-queue-list{
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.build-queue-empty{
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 14, 28, 0.55);
  border: 1px dashed rgba(120, 190, 255, 0.16);
  color: var(--gc-text-dim);
  font-size: 0.82rem;
}

.build-job{
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 8px;
  align-items: start;
  padding: 6px 8px;
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 14, 28, 0.62);
  border: 1px solid rgba(120, 190, 255, 0.12);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.18) inset;
}

.build-job-active{
  border-color: rgba(127, 255, 217, 0.22);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.18) inset,
    0 0 14px rgba(127, 255, 217, 0.08);
}

.build-job-queued{ opacity: 0.88; }

.build-job-icon{
  width: 38px;
  height: 38px;
  border-radius: var(--gc-radius-sm);
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(120, 255, 217, 0.12);
  display: grid;
  place-items: center;
  overflow: hidden;
}

.build-job-icon img{
  width: 32px;
  height: 32px;
  object-fit: contain;
}

.build-job-body{ min-width: 0; position: relative; padding-right: 44px; }

.job-header{
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 4px;
}

.job-name{
  font-weight: 600;
  font-size: 0.82rem;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.job-time{
  font-family: var(--gc-mono);
  font-size: 0.78rem;
  color: rgba(127, 255, 217, 0.92);
  flex-shrink: 0;
}

.job-time-muted{ color: var(--gc-text-dim); }

.build-bar{
  height: 8px;
  border-radius: var(--gc-radius-sm);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(120, 255, 217, 0.10);
  overflow: hidden;
}

.build-bar-fill{
  height: 100%;
  border-radius: var(--gc-radius-sm);
  background: linear-gradient(90deg, rgba(70, 229, 255, 0.55), rgba(127, 255, 217, 0.75));
  box-shadow: 0 0 10px rgba(127, 255, 217, 0.25);
}

/* Research queue (JS-rendered, mirrors build queue) */
.research-queue-root{ margin-top: 4px; }

.research-queue-list{
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.research-queue-empty{
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 14, 28, 0.55);
  border: 1px dashed rgba(120, 190, 255, 0.16);
  color: var(--gc-text-dim);
  font-size: 0.82rem;
  letter-spacing: 0.02em;
}

.research-job{
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 10px;
  align-items: start;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 14, 28, 0.62);
  border: 1px solid rgba(120, 190, 255, 0.12);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.18) inset;
}

.research-job-active{
  border-color: rgba(127, 255, 217, 0.22);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.18) inset,
    0 0 14px rgba(127, 255, 217, 0.08);
}

.research-job-queued{ opacity: 0.88; }

.research-job-icon{
  width: 52px;
  height: 52px;
  border-radius: var(--gc-radius-sm);
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(120, 255, 217, 0.12);
  display: grid;
  place-items: center;
  overflow: hidden;
}

.research-job-icon img{
  width: 44px;
  height: 44px;
  object-fit: contain;
}

.research-job-body{ min-width: 0; position: relative; padding-right: 52px; }

.research-bar-large{
  height: 8px;
  border-radius: var(--gc-radius-sm);
  background: rgba(255, 255, 255, 0.05);
  border: 1px solid rgba(120, 255, 217, 0.10);
  overflow: hidden;
}

.research-queue-head .gc-panel-subtitle{
  font-family: var(--gc-mono);
  font-size: 0.78rem;
}

.job-badge-active,
.job-badge-queued{
  position: absolute;
  top: 0;
  right: 0;
  font-size: 0.66rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 255, 217, 0.18);
}

.job-badge-active{
  color: rgba(127, 255, 217, 0.95);
  background: rgba(127, 255, 217, 0.08);
}

.job-badge-queued{
  color: var(--gc-text-dim);
  background: rgba(255, 255, 255, 0.04);
}

/* Segmented tabs on buildings page (less pill) */
.buildings-shell .building-tabs .gc-btn{
  border-radius: var(--gc-radius-sm);
}

/* Header logout + HUD buttons */
.gc-header-cmd .logout-btn,
.gc-header-cmd .gc-btn{
  border-radius: var(--gc-radius-sm);
}

.active-research-wrapper,
.research-progress-bar{
  border-radius: var(--gc-radius-sm);
}

.research-progress-fill{
  border-radius: var(--gc-radius-sm);
}

@media (max-width: 768px){
  .gc-header-cmd .gc-header-row-top{
    gap: 8px;
  }

  .gc-header-meta{
    order: 3;
    width: 100%;
  }

  .gc-hud-user{
    margin-left: auto;
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .gc-hud-panel-user{
    min-width: 120px;
    max-width: min(240px, 62vw);
  }

  .gc-hud-user .logout-btn{
    padding: 6px 10px !important;
    font-size: 0.72rem;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: auto auto;
    overflow-x: visible;
    gap: 6px;
    padding-bottom: 0;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd .hud-res-timekeeper{
    grid-column: 1;
    grid-row: 2;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd .hud-res-energy{
    grid-column: 2 / span 2;
    grid-row: 2;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd.resource-bar-with-planet-limit .hud-res-metal{
    grid-column: 1;
    grid-row: 1;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd.resource-bar-with-planet-limit .hud-res-crystal{
    grid-column: 2;
    grid-row: 1;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd.resource-bar-with-planet-limit .hud-res-fuel-cells{
    grid-column: 3;
    grid-row: 1;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd.resource-bar-with-planet-limit .hud-res-planet-limit{
    grid-column: 1;
    grid-row: 2;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd.resource-bar-with-planet-limit .hud-res-energy{
    grid-column: 2 / span 2;
    grid-row: 2;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd:not(.resource-bar-with-planet-limit){
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-template-rows: auto auto;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd:not(.resource-bar-with-planet-limit) .hud-res-metal{
    grid-column: 1;
    grid-row: 1;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd:not(.resource-bar-with-planet-limit) .hud-res-crystal{
    grid-column: 2;
    grid-row: 1;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd:not(.resource-bar-with-planet-limit) .hud-res-fuel-cells{
    grid-column: 3;
    grid-row: 1;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd:not(.resource-bar-with-planet-limit) .hud-res-timekeeper{
    grid-column: 1;
    grid-row: 2;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd:not(.resource-bar-with-planet-limit) .hud-res-energy{
    grid-column: 2 / span 2;
    grid-row: 2;
  }

  .gc-header-cmd .hud-res-badge{ display: none; }
  .gc-header-cmd .hud-res-badge--glyph{ display: inline-flex !important; }

  .gc-header-cmd .hud-res-panel{
    min-height: 3.1rem;
    padding: 5px 6px 5px 8px;
  }

  .gc-header-cmd .hud-cap-bar{
    height: 6px;
    gap: 1px;
  }

  .gc-header-cmd .hud-res-body .res-icon--hud{
    width: 36px;
    height: 36px;
  }

  .gc-bld-card-hero{
    min-height: 84px;
    max-height: 112px;
  }

  .gc-header-cmd .hud-res-body .res-value{
    font-size: 0.84rem;
  }

  .gc-hud-panel-tag{ display: none; }

  .gc-header-row-resources .gc-resource-sticky{
    width: 100%;
    overflow-x: clip;
  }

  .gc-header-cmd .gc-header-row-resources,
  .gc-header-cmd .gc-header-inner{
    overflow-x: clip;
    max-width: 100%;
  }
}

@media (max-width: 390px){
  .gc-hud-panel{
    font-size: 0.72rem;
    padding: 4px 7px;
  }

  .gc-header-cmd .hud-res-body .res-value{
    font-size: 0.8rem;
    min-width: 3.75ch;
  }

  .gc-header-cmd .hud-res-body .res-cap{
    font-size: 0.62rem;
  }
}

/* ==========================================================================
   TACTICAL COMMAND UI v2 ? Global Overrides
   Sci-Fi Industrial / Sharp / Terminal
   ========================================================================== */

body.gc-body-ingame {
  background-color: var(--gc-bg);
  background-image: var(--gc-bg-img);
  background-attachment: fixed;
}

.section-header {
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-bg);
  border: 1px solid var(--gc-border-bright);
  box-shadow: var(--gc-border-glow), inset 0 0 0 1px rgba(0,0,0,0.4);
}

.section-title {
  letter-spacing: 0.14em;
  text-transform: uppercase;
  text-shadow: none;
}

.table-std,
.ban-table,
.gc-table {
  border-collapse: collapse;
  font-family: var(--gc-mono);
  font-size: 0.82rem;
}
.table-std th,
.ban-table th,
.gc-table th {
  text-transform: uppercase;
  letter-spacing: 0.08em;
  font-size: 0.72rem;
  background: rgba(70, 229, 255, 0.08);
  border-bottom: 1px solid var(--gc-border-bright);
}
.table-std td,
.ban-table td,
.gc-table td {
  border-bottom: 1px solid var(--gc-border);
}
.table-std tbody tr:hover,
.ban-table tbody tr:hover,
.gc-table tbody tr:hover {
  background: rgba(70, 229, 255, 0.04);
}

.gc-bottom-nav {
  border-radius: 0;
  border-top: 1px solid var(--gc-border-bright);
  background: var(--gc-panel-bg);
  box-shadow: inset 0 1px 0 rgba(70, 229, 255, 0.08);
}
.gc-bottom-nav-item {
  border-radius: 0;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-size: 0.62rem;
}
.gc-bottom-nav-item.active {
  color: var(--gc-neon-cyan);
  box-shadow: inset 0 -2px 0 var(--gc-neon-cyan);
}

.gc-nav-drawer {
  border-radius: 0;
  border: 1px solid var(--gc-border-bright);
}
.gc-nav-drawer-link {
  border-radius: 0;
  border-left: 2px solid transparent;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.78rem;
}
.gc-nav-drawer-link.active,
.gc-nav-drawer-link:hover {
  border-left-color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.06);
}

.gc-flash,
.gc-flash-container .gc-flash {
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-border);
  box-shadow: var(--gc-border-glow);
  backdrop-filter: none;
}

.gc-hud-panel,
.gc-hud-chip {
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-border);
  background: var(--gc-panel-bg-2);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,0.35);
}

.gc-score-pill .gc-score-delta {
  border-radius: var(--gc-radius-xs);
}

@media (prefers-reduced-motion: reduce) {
  .admin-panel.is-active,
  .admin-tab-panel.is-active { animation: none; }
  .gc-prog-affordable .gc-bld-prod-delta-val { animation: none; }
  .gc-player-card-spinner { animation: none; }
  .gc-player-card-shell { animation: none; }
  .gc-score-pill.gc-score-pulse { animation: none; }
  .gc-score-pill .gc-score-delta.show { animation: none; }
  .planet-evolution-page .pe-highlight-pulse { animation: none; }
  .gc-progress-smooth,
  .build-bar-fill,
  .build-progress-fill,
  .research-progress-fill,
  .research-bar-fill {
    transition: none !important;
    will-change: auto !important;
  }
}

/* GC-547 ? idle / hidden tab: stop compositor-heavy effects */
body.gc-tab-hidden .gc-bg::after {
  opacity: 0;
}

body.gc-tab-hidden .gc-panel::before,
body.gc-tab-hidden .resource-bar::before {
  opacity: 0;
}

body.gc-perf-idle .gc-progress-smooth,
body.gc-perf-idle .build-bar-fill,
body.gc-perf-idle .build-progress-fill,
body.gc-perf-idle .research-progress-fill,
body.gc-perf-idle .research-bar-fill {
  transition: none;
  will-change: auto;
}

/* GC-547C ? idle: hide decorative bg stack; GC-548 keep static planet landscape */
body.gc-perf-idle:not(.gc-has-planet-landscape) .gc-bg {
  display: none;
}

body.gc-perf-idle.gc-body-ingame:not(.gc-has-planet-landscape) {
  background-color: var(--gc-bg);
  background-image: none;
}

body.gc-perf-idle.gc-has-planet-landscape.gc-body-ingame {
  background-color: transparent;
  background-image: none;
}

body.gc-perf-idle.gc-has-planet-landscape .gc-bg {
  display: block;
}

body.gc-perf-idle .gc-bg::after {
  content: none;
  display: none;
}

body.gc-perf-idle .gc-panel::before,
body.gc-perf-idle .gc-panel::after {
  display: none;
}

body.gc-perf-idle .resource-bar::before {
  display: none;
}

body.gc-perf-idle .gc-header,
body.gc-perf-idle .gc-header-cmd {
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  box-shadow: 0 1px 0 rgba(0, 0, 0, 0.35);
}

body.gc-perf-idle .gc-header::after {
  display: none;
}

/* GC-553 ? pause decorative queue loops when idle or tab hidden */
body.gc-perf-idle .gc-card-queue-glyph,
body.gc-perf-idle .gc-card-queue-scanline,
body.gc-perf-idle .gc-card-queue-glyph--research,
body.gc-tab-hidden .gc-card-queue-glyph,
body.gc-tab-hidden .gc-card-queue-scanline,
body.gc-tab-hidden .gc-card-queue-glyph--research {
  animation-play-state: paused;
}

/* ==========================================================================
   PLAYER CARD (global profile modal)
   ========================================================================== */

.gc-player-name {
  color: var(--gc-neon-cyan, #46e5ff);
  cursor: pointer;
  text-decoration: underline;
  text-decoration-color: rgba(70, 229, 255, 0.35);
  text-underline-offset: 0.15em;
  transition: color 0.15s ease, text-shadow 0.15s ease;
}
.gc-player-name:hover,
.gc-player-name:focus-visible {
  color: #9ef6ff;
  text-shadow: 0 0 12px rgba(70, 229, 255, 0.45);
  outline: none;
}

/* --- Name Styles (Identity) — loud, cheap CSS --- */
/* Include .gc-ranking-player-name so ranking color rule cannot win. */
.gc-player-name[data-name-style="ash"],
.gc-player-name.gc-ranking-player-name[data-name-style="ash"],
.gc-chat-msg-sender[data-name-style="ash"] {
  color: #d5dde8;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-decoration: none;
  border-bottom: 2px solid rgba(180, 190, 200, 0.7);
  text-shadow: 0 0 8px rgba(200, 210, 220, 0.35);
}
.gc-player-name[data-name-style="signal"],
.gc-player-name.gc-ranking-player-name[data-name-style="signal"],
.gc-chat-msg-sender[data-name-style="signal"] {
  color: #7af0ff;
  font-weight: 800;
  text-decoration: none;
  padding: 0 3px;
  border: 1px solid rgba(70, 229, 255, 0.55);
  background: rgba(70, 229, 255, 0.12);
  box-shadow: 0 0 12px rgba(70, 229, 255, 0.35);
}
.gc-player-name[data-name-style="etched"],
.gc-player-name.gc-ranking-player-name[data-name-style="etched"],
.gc-chat-msg-sender[data-name-style="etched"] {
  color: #e8eef6;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-shadow:
    0 1px 0 #1a2230,
    0 -1px 0 rgba(255, 255, 255, 0.35),
    0 0 10px rgba(200, 210, 230, 0.25);
  border-bottom: 2px solid #9aa8bc;
}
.gc-player-name[data-name-style="relic"],
.gc-player-name.gc-ranking-player-name[data-name-style="relic"],
.gc-chat-msg-sender[data-name-style="relic"] {
  color: #5dff9a;
  font-family: var(--gc-mono);
  font-weight: 800;
  text-decoration: none;
  padding: 0 3px;
  background: rgba(0, 40, 20, 0.55);
  border: 1px solid rgba(80, 255, 150, 0.55);
  text-shadow: 0 0 10px rgba(80, 255, 150, 0.55);
  box-shadow: 0 0 14px rgba(40, 220, 120, 0.3);
}
.gc-player-name[data-name-style="imperial"],
.gc-player-name.gc-ranking-player-name[data-name-style="imperial"],
.gc-chat-msg-sender[data-name-style="imperial"] {
  color: #ffe07a;
  font-weight: 900;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  padding: 0 4px 1px;
  border: 1px solid rgba(255, 200, 72, 0.7);
  background: rgba(255, 180, 40, 0.12);
  text-shadow: 0 0 12px rgba(255, 200, 72, 0.55);
  box-shadow: 0 0 16px rgba(255, 190, 60, 0.35);
}
.gc-player-name[data-name-style="plasma"],
.gc-player-name.gc-ranking-player-name[data-name-style="plasma"],
.gc-chat-msg-sender[data-name-style="plasma"] {
  color: #00ffe8;
  font-weight: 900;
  text-decoration: none;
  padding: 0 4px;
  border: 1px solid rgba(0, 255, 230, 0.7);
  background: linear-gradient(90deg, rgba(0, 255, 220, 0.18), rgba(80, 180, 255, 0.18));
  text-shadow: 0 0 14px rgba(0, 255, 220, 0.65);
  box-shadow: 0 0 18px rgba(0, 255, 220, 0.4);
}
.gc-player-name[data-name-style="void"],
.gc-player-name.gc-ranking-player-name[data-name-style="void"],
.gc-chat-msg-sender[data-name-style="void"] {
  color: #e0c4ff;
  font-weight: 900;
  text-decoration: none;
  padding: 0 4px;
  border: 1px solid rgba(160, 100, 255, 0.75);
  background: rgba(90, 40, 200, 0.22);
  text-shadow:
    0 0 8px rgba(180, 120, 255, 0.8),
    0 0 18px rgba(120, 40, 255, 0.55);
  box-shadow: 0 0 20px rgba(120, 60, 255, 0.45);
}

/* Shop identity preview ? before/after + unlock chips */
.shop-card-art--identity {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  min-height: 168px;
  padding: 1rem 0.85rem 1.15rem;
  background:
    linear-gradient(160deg, rgba(10, 18, 32, 0.98), rgba(4, 8, 16, 0.99)),
    repeating-linear-gradient(
      0deg,
      transparent,
      transparent 3px,
      rgba(70, 229, 255, 0.03) 3px,
      rgba(70, 229, 255, 0.03) 4px
    );
  border-bottom: 1px solid rgba(70, 229, 255, 0.14);
  position: relative;
}
.shop-card--identity .shop-card-kind {
  position: absolute;
  left: 0.55rem;
  top: 0.55rem;
  bottom: auto;
}
.shop-identity-preview {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-top: 0.35rem;
}
.shop-identity-preview-caption {
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gc-text-dim, rgba(200, 232, 244, 0.48));
  font-family: var(--gc-mono);
}
.shop-identity-compare {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  gap: 0.45rem;
  align-items: end;
}
.shop-identity-col {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  min-width: 0;
  padding: 0.45rem 0.5rem;
  border: 1px solid rgba(120, 160, 190, 0.18);
  background: rgba(0, 0, 0, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
}
.shop-identity-col--after {
  border-color: rgba(70, 229, 255, 0.32);
  background: rgba(70, 229, 255, 0.06);
  box-shadow: inset 0 0 0 1px rgba(70, 229, 255, 0.08);
}
.shop-identity-col-label {
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-text-dim, rgba(200, 232, 244, 0.48));
  font-family: var(--gc-mono);
}
.shop-identity-arrow {
  align-self: center;
  color: rgba(70, 229, 255, 0.55);
  font-size: 1rem;
  font-weight: 700;
  line-height: 1;
  padding-bottom: 0.35rem;
}
.shop-name-preview {
  font-size: 1.05rem;
  font-weight: 700;
  cursor: default;
  pointer-events: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}
.shop-name-preview--before {
  opacity: 0.72;
}
.shop-identity-surfaces {
  margin: 0;
  font-size: 0.72rem;
  color: rgba(160, 200, 220, 0.62);
  letter-spacing: 0.04em;
}
.shop-identity-section-hint {
  margin: 0 0 0.85rem;
  max-width: 42rem;
}
.shop-unlock-list {
  margin-top: 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.shop-unlock-list-label {
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-text-dim, rgba(200, 232, 244, 0.48));
  font-family: var(--gc-mono);
}
.shop-unlock-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.shop-unlock-chip {
  display: inline-flex;
  align-items: baseline;
  gap: 0.35rem;
  padding: 0.22rem 0.45rem;
  border: 1px solid rgba(70, 229, 255, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(70, 229, 255, 0.06);
  font-size: 0.78rem;
  line-height: 1.2;
}
.shop-unlock-chip-k {
  color: var(--gc-text-dim, rgba(200, 232, 244, 0.55));
  font-size: 0.68rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  font-family: var(--gc-mono);
}
.shop-unlock-chip-v {
  color: var(--gc-primary, #46e5ff);
  font-weight: 600;
}
.shop-unlock-chip[data-unlock-kind="title_flair"] {
  border-color: rgba(255, 200, 72, 0.28);
  background: rgba(255, 200, 72, 0.06);
}
.shop-unlock-chip[data-unlock-kind="title_flair"] .shop-unlock-chip-v {
  color: #ffd056;
}
.shop-grid--identity {
  grid-template-columns: repeat(auto-fill, minmax(19rem, 1fr));
}

/* --- Identity Shell (WILD look, cheap: color/border/shadow only) --- */
/* Identity Shell: UI tint from equipped PlayerCard theme only (body[data-identity-theme]).
   Not driven by name_style / aura / flair. See docs/PAYMENT_SHOP.md Identity Shell.
   IMPORTANT: never set --gc-id-rgb on the shared :not(cyan) block ? that selector is
   more specific than [data-identity-theme="violet"] and would lock the shell to cyan. */
.gc-body-ingame[data-identity-theme="violet"] { --gc-id-rgb: 168, 120, 255; }
.gc-body-ingame[data-identity-theme="amber"] { --gc-id-rgb: 255, 190, 80; }
.gc-body-ingame[data-identity-theme="emerald"] { --gc-id-rgb: 80, 220, 140; }
.gc-body-ingame[data-identity-theme="rose"] { --gc-id-rgb: 255, 120, 160; }
.gc-body-ingame[data-identity-theme="ash"] { --gc-id-rgb: 154, 164, 176; }
.gc-body-ingame[data-identity-theme="steel"] { --gc-id-rgb: 160, 176, 196; }
.gc-body-ingame[data-identity-theme="gold"] { --gc-id-rgb: 255, 200, 72; }
.gc-body-ingame[data-identity-theme="void"] { --gc-id-rgb: 140, 90, 255; }
.gc-body-ingame[data-identity-theme="plasma"] { --gc-id-rgb: 0, 255, 220; }

.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) {
  --gc-primary: rgb(var(--gc-id-rgb));
  --gc-primary-2: color-mix(in srgb, rgb(var(--gc-id-rgb)) 65%, #ffffff);
  --gc-neon-cyan: rgb(var(--gc-id-rgb));
  --gc-accent: rgb(var(--gc-id-rgb));
  --gc-accent-cyan: rgb(var(--gc-id-rgb));
  --gc-panel-border: rgba(var(--gc-id-rgb), 0.42);
  --gc-panel-border-strong: rgba(var(--gc-id-rgb), 0.7);
  --gc-border: rgba(var(--gc-id-rgb), 0.36);
  --gc-border-bright: rgba(var(--gc-id-rgb), 0.72);
  --gc-border-glow: 0 0 0 1px rgba(var(--gc-id-rgb), 0.45);
  --gc-border-glow-strong:
    0 0 0 1px rgba(var(--gc-id-rgb), 0.7),
    0 0 18px rgba(var(--gc-id-rgb), 0.35);
  --gc-scanline: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(var(--gc-id-rgb), 0.05) 2px,
    rgba(var(--gc-id-rgb), 0.05) 4px
  );
  --gc-bg-img:
    linear-gradient(90deg, rgba(var(--gc-id-rgb), 0.09) 1px, transparent 1px),
    linear-gradient(0deg, rgba(var(--gc-id-rgb), 0.06) 1px, transparent 1px),
    radial-gradient(1100px 620px at 10% 0%, rgba(var(--gc-id-rgb), 0.28), transparent 55%),
    radial-gradient(900px 520px at 100% 8%, rgba(var(--gc-id-rgb), 0.18), transparent 50%),
    radial-gradient(700px 420px at 50% 100%, rgba(var(--gc-id-rgb), 0.1), transparent 55%),
    linear-gradient(180deg, #040810 0%, #020508 100%);
  box-shadow: inset 4px 0 0 rgb(var(--gc-id-rgb));
}

.gc-body-ingame[data-identity-theme="gold"] {
  --gc-bg: #120e06;
  --gc-bg2: #0a0804;
  --gc-panel: rgba(28, 20, 8, 0.95);
  --gc-panel-bg: rgba(28, 20, 8, 0.95);
  --gc-panel-bg-2: rgba(36, 26, 10, 0.92);
}
.gc-body-ingame[data-identity-theme="void"] {
  --gc-bg: #0a0618;
  --gc-bg2: #05030e;
  --gc-panel: rgba(14, 8, 28, 0.96);
  --gc-panel-bg: rgba(14, 8, 28, 0.96);
  --gc-panel-bg-2: rgba(20, 10, 36, 0.92);
}
.gc-body-ingame[data-identity-theme="plasma"] {
  --gc-bg: #031416;
  --gc-bg2: #020c0e;
  --gc-panel: rgba(2, 22, 26, 0.96);
  --gc-panel-bg: rgba(2, 22, 26, 0.96);
  --gc-panel-bg-2: rgba(4, 30, 34, 0.92);
}

/* Grid bg only without planet landscape ? never wipe --planet-landscape */
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]):not(.gc-has-planet-landscape) .gc-bg {
  background-image: var(--gc-bg-img);
  background-color: var(--gc-bg, #040810);
}

/* Landscape + identity: keep planet art, colorize wash with theme RGB */
body.gc-body-ingame.gc-has-planet-landscape[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-bg {
  opacity: 1;
  display: block;
  background-image:
    linear-gradient(
      rgba(var(--gc-id-rgb), 0.38),
      rgba(0, 8, 18, 0.78)
    ),
    var(--planet-landscape);
  background-image:
    linear-gradient(
      rgba(var(--gc-id-rgb), 0.38),
      rgba(0, 8, 18, 0.78)
    ),
    image-set(
      var(--planet-landscape-webp) type("image/webp"),
      var(--planet-landscape) type("image/jpeg")
    );
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  filter: saturate(0.72);
}
body.gc-body-ingame.gc-has-planet-landscape[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-bg::after {
  content: "";
  display: block;
  background:
    radial-gradient(circle at center, transparent 38%, rgba(0, 0, 0, 0.4) 100%),
    radial-gradient(circle at 50% 12%, rgba(var(--gc-id-rgb), 0.22), transparent 48%),
    linear-gradient(
      90deg,
      rgba(0, 8, 18, 0.5),
      rgba(0, 8, 18, 0.16) 24%,
      rgba(0, 8, 18, 0.16) 76%,
      rgba(0, 8, 18, 0.5)
    );
  opacity: 0.96;
}

/* Landscape panels: theme border/glow, keep translucent landscape panel vars */
body.gc-body-ingame.gc-has-planet-landscape[data-identity-theme]:not([data-identity-theme="cyan"]) {
  --gc-panel: rgba(2, 10, 20, 0.94);
  --gc-panel-strong: rgba(2, 8, 16, 0.96);
  --gc-panel-bg: color-mix(in srgb, rgb(var(--gc-id-rgb)) 12%, rgba(2, 10, 20, 0.94));
  --gc-panel-bg-2: color-mix(in srgb, rgb(var(--gc-id-rgb)) 10%, rgba(4, 12, 24, 0.92));
  --gc-hdr-bg-1: color-mix(in srgb, rgb(var(--gc-id-rgb)) 14%, rgba(4, 10, 20, 0.94));
  --gc-hdr-bg-2: color-mix(in srgb, rgb(var(--gc-id-rgb)) 10%, rgba(6, 12, 24, 0.9));
}
body.gc-body-ingame.gc-has-planet-landscape[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-header,
body.gc-body-ingame.gc-has-planet-landscape[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-header-cmd {
  background: linear-gradient(
    180deg,
    rgba(var(--gc-id-rgb), 0.22) 0%,
    rgba(4, 10, 20, 0.9) 78%
  );
}
body.gc-body-ingame.gc-has-planet-landscape[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-sidebar {
  background: linear-gradient(
    180deg,
    rgba(var(--gc-id-rgb), 0.14) 0%,
    rgba(2, 10, 20, 0.96) 28%
  );
  border-color: rgba(var(--gc-id-rgb), 0.5);
  box-shadow:
    inset -3px 0 0 rgb(var(--gc-id-rgb)),
    0 0 22px rgba(var(--gc-id-rgb), 0.12);
}
body.gc-body-ingame.gc-has-planet-landscape[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-panel:not(.gc-planet-hero),
body.gc-body-ingame.gc-has-planet-landscape[data-identity-theme]:not([data-identity-theme="cyan"]) .section-header {
  background: var(--gc-panel-bg);
  border-color: rgba(var(--gc-id-rgb), 0.55);
  box-shadow:
    inset 0 1px 0 rgba(var(--gc-id-rgb), 0.2),
    0 0 0 1px rgba(0, 0, 0, 0.4),
    0 0 24px rgba(var(--gc-id-rgb), 0.14);
}
body.gc-body-ingame.gc-has-planet-landscape[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-nav-link.active,
body.gc-body-ingame.gc-has-planet-landscape[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-nav-sub-link.active,
body.gc-body-ingame.gc-has-planet-landscape[data-identity-theme]:not([data-identity-theme="cyan"]) button.gc-nav-link.gc-nav-submenu-toggle.active {
  color: #061018;
  background: rgb(var(--gc-id-rgb));
  border-left-color: rgb(var(--gc-id-rgb));
  box-shadow: 0 0 14px rgba(var(--gc-id-rgb), 0.4);
}

.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-header,
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-header-cmd {
  border-bottom: 2px solid rgba(var(--gc-id-rgb), 0.65);
  background: linear-gradient(
    180deg,
    rgba(var(--gc-id-rgb), 0.18) 0%,
    rgba(4, 8, 16, 0.94) 78%
  );
  box-shadow:
    0 0 0 1px rgba(var(--gc-id-rgb), 0.2),
    0 16px 40px rgba(0, 0, 0, 0.4),
    0 8px 28px rgba(var(--gc-id-rgb), 0.18);
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-header::after,
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-header-cmd::after {
  content: "";
  display: block;
  height: 2px;
  background: linear-gradient(
    90deg,
    transparent 0%,
    rgba(var(--gc-id-rgb), 0.15) 15%,
    rgb(var(--gc-id-rgb)) 50%,
    rgba(var(--gc-id-rgb), 0.15) 85%,
    transparent 100%
  );
  opacity: 1;
  transform-origin: center;
  animation: gc-id-scan 2.8s linear infinite;
}
@keyframes gc-id-scan {
  0% { opacity: 0.45; transform: scaleX(0.55); }
  50% { opacity: 1; transform: scaleX(1); }
  100% { opacity: 0.45; transform: scaleX(0.55); }
}
@media (prefers-reduced-motion: reduce) {
  .gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-header::after,
  .gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-header-cmd::after {
    animation: none;
    opacity: 1;
    transform: none;
  }
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .resource-bar,
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-header-cmd .resource-bar.resource-bar-cmd {
  border: 1px solid rgba(var(--gc-id-rgb), 0.7);
  background: rgba(var(--gc-id-rgb), 0.08);
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.45),
    0 0 0 1px rgba(var(--gc-id-rgb), 0.25),
    0 0 22px rgba(var(--gc-id-rgb), 0.28);
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-sidebar {
  border-color: rgba(var(--gc-id-rgb), 0.45);
  background: linear-gradient(
    180deg,
    rgba(var(--gc-id-rgb), 0.1) 0%,
    rgba(4, 8, 16, 0.94) 30%
  );
  box-shadow: inset -3px 0 0 rgb(var(--gc-id-rgb));
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-nav-link:hover,
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-nav-sub-link:hover {
  color: rgb(var(--gc-id-rgb));
  border-left-color: rgb(var(--gc-id-rgb));
  background: rgba(var(--gc-id-rgb), 0.14);
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-nav-link.active,
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-nav-sub-link.active,
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) button.gc-nav-link.gc-nav-submenu-toggle.active,
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) button.gc-nav-link.gc-nav-submenu-toggle.active:hover {
  color: #061018;
  border-left-color: rgb(var(--gc-id-rgb));
  background: rgb(var(--gc-id-rgb));
  box-shadow: 0 0 16px rgba(var(--gc-id-rgb), 0.45);
  font-weight: 700;
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-panel:not(.gc-planet-hero),
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .section-header {
  border: 1px solid rgba(var(--gc-id-rgb), 0.55);
  background: linear-gradient(
    165deg,
    rgba(var(--gc-id-rgb), 0.14) 0%,
    var(--gc-panel-bg, rgba(4, 10, 22, 0.94)) 38%,
    var(--gc-panel-bg-2, rgba(6, 14, 28, 0.9)) 100%
  );
  box-shadow:
    inset 0 1px 0 rgba(var(--gc-id-rgb), 0.22),
    0 0 0 1px rgba(0, 0, 0, 0.35),
    0 0 28px rgba(var(--gc-id-rgb), 0.16);
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-panel:not(.gc-planet-hero)::before {
  border-color: rgb(var(--gc-id-rgb));
  opacity: 1;
  box-shadow: 0 0 12px rgba(var(--gc-id-rgb), 0.35);
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-btn-primary {
  background: rgb(var(--gc-id-rgb));
  border-color: color-mix(in srgb, rgb(var(--gc-id-rgb)) 70%, #ffffff);
  color: #061018;
  font-weight: 700;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.28),
    0 0 20px rgba(var(--gc-id-rgb), 0.4);
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-btn-primary:hover {
  filter: brightness(1.08);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.32),
    0 0 28px rgba(var(--gc-id-rgb), 0.55);
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-btn-ghost {
  border-color: rgba(var(--gc-id-rgb), 0.45);
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-btn-ghost:hover,
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-btn-ghost:focus-visible {
  border-color: rgb(var(--gc-id-rgb));
  color: rgb(var(--gc-id-rgb));
  background: rgba(var(--gc-id-rgb), 0.1);
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) :focus-visible {
  outline-color: rgb(var(--gc-id-rgb));
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .section-title,
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-panel-title {
  color: rgb(var(--gc-id-rgb));
  text-shadow: 0 0 18px rgba(var(--gc-id-rgb), 0.45);
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-bottom-nav {
  border-top: 2px solid rgba(var(--gc-id-rgb), 0.55);
  background: linear-gradient(180deg, rgba(var(--gc-id-rgb), 0.12), rgba(4, 8, 16, 0.96));
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-bottom-nav-item.active {
  color: rgb(var(--gc-id-rgb));
}
.gc-body-ingame[data-identity-theme]:not([data-identity-theme="cyan"]) .gc-bottom-nav-item.active::before {
  background: rgb(var(--gc-id-rgb));
  box-shadow: 0 0 12px rgb(var(--gc-id-rgb));
}

/* Identity Aura FX ? prestige layer on own UI (color stays theme; aura adds glow/rim).
   Source: equipped player_cards.aura_key ? body[data-identity-aura].
   Specificity: match/beat Identity Theme shell rules so FX stack after color remap. */
.gc-body-ingame[data-identity-aura="rim_ash"] { --gc-aura-rgb: 170, 178, 190; }
.gc-body-ingame[data-identity-aura="rim_steel"] { --gc-aura-rgb: 190, 210, 235; }
.gc-body-ingame[data-identity-aura="aura_gold"] { --gc-aura-rgb: 255, 214, 90; }
.gc-body-ingame[data-identity-aura="aura_plasma"] { --gc-aura-rgb: 0, 255, 220; }
.gc-body-ingame[data-identity-aura="aura_void"] { --gc-aura-rgb: 170, 110, 255; }

.gc-body-ingame[data-identity-aura^="rim_"]:not([data-identity-aura="none"]) .gc-header,
.gc-body-ingame[data-identity-aura^="rim_"]:not([data-identity-aura="none"]) .gc-header-cmd {
  box-shadow:
    inset 0 -1px 0 rgba(var(--gc-aura-rgb), 0.45),
    0 8px 24px rgba(var(--gc-aura-rgb), 0.08);
}
.gc-body-ingame[data-identity-aura^="rim_"]:not([data-identity-aura="none"]) .gc-sidebar {
  box-shadow:
    inset 3px 0 0 rgba(var(--gc-aura-rgb), 0.55),
    inset 6px 0 0 rgba(var(--gc-aura-rgb), 0.18);
}
.gc-body-ingame[data-identity-aura^="rim_"]:not([data-identity-aura="none"]) .gc-panel:not(.gc-planet-hero),
.gc-body-ingame[data-identity-aura^="rim_"]:not([data-identity-aura="none"]) .section-header {
  border-color: rgba(var(--gc-aura-rgb), 0.38);
  box-shadow:
    inset 0 0 0 1px rgba(var(--gc-aura-rgb), 0.22),
    0 0 14px rgba(var(--gc-aura-rgb), 0.1);
}
.gc-body-ingame[data-identity-aura^="rim_"]:not([data-identity-aura="none"]) .gc-nav-link.active,
.gc-body-ingame[data-identity-aura^="rim_"]:not([data-identity-aura="none"]) .gc-nav-sub-link.active {
  box-shadow: inset 2px 0 0 rgba(var(--gc-aura-rgb), 0.75);
}

.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) {
  box-shadow: inset 4px 0 22px rgba(var(--gc-aura-rgb), 0.16);
}
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .gc-header,
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .gc-header-cmd {
  box-shadow:
    0 0 28px rgba(var(--gc-aura-rgb), 0.22),
    inset 0 -1px 0 rgba(var(--gc-aura-rgb), 0.5);
}
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .gc-sidebar {
  box-shadow:
    inset 4px 0 0 rgb(var(--gc-aura-rgb)),
    inset 4px 0 24px rgba(var(--gc-aura-rgb), 0.22);
  border-right-color: rgba(var(--gc-aura-rgb), 0.35);
}
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .gc-panel:not(.gc-planet-hero),
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .section-header {
  border-color: rgba(var(--gc-aura-rgb), 0.42);
  box-shadow:
    0 0 0 1px rgba(var(--gc-aura-rgb), 0.28),
    0 0 22px rgba(var(--gc-aura-rgb), 0.18);
}
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .gc-btn-primary {
  box-shadow:
    0 0 0 1px rgba(var(--gc-aura-rgb), 0.45),
    0 0 18px rgba(var(--gc-aura-rgb), 0.4);
}
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .gc-nav-link.active,
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .gc-nav-sub-link.active,
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) button.gc-nav-link.gc-nav-submenu-toggle.active {
  box-shadow:
    inset 3px 0 0 rgb(var(--gc-aura-rgb)),
    0 0 16px rgba(var(--gc-aura-rgb), 0.25);
}
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .gc-bottom-nav {
  box-shadow: 0 -8px 28px rgba(var(--gc-aura-rgb), 0.14);
  border-top-color: rgba(var(--gc-aura-rgb), 0.45);
}
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .resource-bar,
.gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .gc-header-cmd .resource-bar.resource-bar-cmd {
  box-shadow: 0 0 16px rgba(var(--gc-aura-rgb), 0.16);
}
@media (prefers-reduced-motion: no-preference) {
  .gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .gc-panel:not(.gc-planet-hero),
  .gc-body-ingame[data-identity-aura^="aura_"]:not([data-identity-aura="none"]) .section-header {
    animation: gc-id-aura-pulse 3.6s ease-in-out infinite;
  }
}
@keyframes gc-id-aura-pulse {
  0%, 100% { box-shadow: 0 0 0 1px rgba(var(--gc-aura-rgb), 0.28), 0 0 18px rgba(var(--gc-aura-rgb), 0.14); }
  50% { box-shadow: 0 0 0 1px rgba(var(--gc-aura-rgb), 0.42), 0 0 28px rgba(var(--gc-aura-rgb), 0.28); }
}

/* Overview planet display: no panel plate / aura chrome behind the frame */
.gc-body-ingame .overview-hero.gc-planet-hero.gc-panel,
.gc-body-ingame .gc-planet-hero.gc-panel {
  background: transparent;
  border: none;
  box-shadow: none;
  animation: none;
}

body.gc-player-card-open,
body.gc-ship-detail-open,
body.gc-planet-manage-open,
body.gc-combat-report-open { overflow: hidden; }

.gc-ship-detail-trigger {
  margin: 0;
  padding: 0;
  border: none;
  background: none;
  font: inherit;
  font-weight: inherit;
  color: var(--gc-accent-cyan, #5ee9ff);
  cursor: pointer;
  text-align: inherit;
  text-decoration: underline;
  text-underline-offset: 0.15em;
  text-decoration-color: rgba(94, 233, 255, 0.45);
}
.gc-ship-detail-trigger:hover,
.gc-ship-detail-trigger:focus-visible {
  color: #9ef6ff;
  text-decoration-color: rgba(158, 246, 255, 0.75);
  outline: none;
}
.shipyard-ship-card-title .gc-ship-detail-trigger {
  font-size: inherit;
  font-weight: 600;
}
.gc-ship-detail-role {
  margin: 0.25rem 0 0;
  font-size: 0.85rem;
  color: var(--gc-text-muted, rgba(180, 200, 230, 0.75));
}
.gc-ship-detail-desc p {
  margin: 0;
  line-height: 1.45;
}
.gc-ship-detail-build {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid rgba(94, 233, 255, 0.12);
}
.gc-ship-detail-cost {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem 1rem;
  margin-top: 0.35rem;
  font-size: 0.9rem;
}
.gc-ship-detail-meta {
  margin: 0.5rem 0 0;
  font-size: 0.85rem;
  color: var(--gc-text-muted, rgba(180, 200, 230, 0.75));
}
/* --- Modal shell --- */
.gc-player-card-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right))
           max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));
}
.gc-player-card-modal[hidden] { display: none !important; }

.gc-player-card-overlay {
  position: absolute;
  inset: 0;
  background: rgba(4, 8, 18, 0.72);
  backdrop-filter: blur(4px);
  cursor: pointer;
}

.gc-player-card-dialog {
  position: relative;
  z-index: 1;
  width: min(680px, 100%);
  max-height: min(92vh, 880px);
  display: flex;
  flex-direction: column;
  border: 1px solid rgba(70, 229, 255, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  background: linear-gradient(160deg, rgba(12, 20, 36, 0.98), rgba(6, 10, 20, 0.98));
  box-shadow:
    0 0 48px rgba(70, 229, 255, 0.06),
    inset 0 0 0 1px rgba(255, 255, 255, 0.03);
  animation: gc-pc-in 0.22s ease-out;
  overflow: hidden;
}
.gc-player-card-dialog[data-theme="cyan"] {
  border-color: rgba(70, 229, 255, 0.26);
  box-shadow: 0 0 52px rgba(70, 229, 255, 0.07), inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.gc-player-card-dialog[data-theme="violet"] {
  border-color: rgba(168, 120, 255, 0.28);
  box-shadow: 0 0 52px rgba(168, 120, 255, 0.08), inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.gc-player-card-dialog[data-theme="amber"] {
  border-color: rgba(255, 190, 80, 0.28);
  box-shadow: 0 0 52px rgba(255, 190, 80, 0.07), inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.gc-player-card-dialog[data-theme="emerald"] {
  border-color: rgba(80, 220, 140, 0.26);
  box-shadow: 0 0 52px rgba(80, 220, 140, 0.07), inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.gc-player-card-dialog[data-theme="rose"] {
  border-color: rgba(255, 120, 160, 0.26);
  box-shadow: 0 0 52px rgba(255, 120, 160, 0.07), inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.gc-player-card-dialog[data-theme="ash"] {
  border-color: rgba(140, 148, 160, 0.3);
  box-shadow: 0 0 40px rgba(120, 128, 140, 0.06), inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.gc-player-card-dialog[data-theme="steel"] {
  border-color: rgba(160, 176, 196, 0.32);
  box-shadow: 0 0 44px rgba(140, 160, 190, 0.07), inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.gc-player-card-dialog[data-theme="gold"] {
  border-color: rgba(255, 200, 72, 0.42);
  background: linear-gradient(160deg, rgba(24, 20, 12, 0.98), rgba(8, 8, 14, 0.98));
  box-shadow:
    0 0 56px rgba(255, 190, 60, 0.14),
    inset 0 0 0 1px rgba(255, 220, 120, 0.08);
}
.gc-player-card-dialog[data-theme="void"] {
  border-color: rgba(140, 90, 255, 0.42);
  background: linear-gradient(160deg, rgba(16, 10, 30, 0.98), rgba(4, 4, 12, 0.98));
  box-shadow:
    0 0 56px rgba(90, 40, 220, 0.16),
    0 0 28px rgba(180, 120, 255, 0.08),
    inset 0 0 0 1px rgba(180, 120, 255, 0.06);
}
.gc-player-card-dialog[data-theme="plasma"] {
  border-color: rgba(0, 255, 220, 0.4);
  background: linear-gradient(160deg, rgba(6, 22, 26, 0.98), rgba(4, 10, 18, 0.98));
  box-shadow:
    0 0 56px rgba(0, 230, 200, 0.14),
    0 0 24px rgba(80, 180, 255, 0.06),
    inset 0 0 0 1px rgba(0, 255, 210, 0.06);
}

/* Prestige layer: aura + title flair ? ONLY view + live preview (never edit shell) */
.gc-player-card-view[data-aura],
.gc-player-card-preview[data-aura] {
  position: relative;
  --pc-rim: rgba(160, 168, 180, 0.7);
  --pc-aura-color: rgba(255, 200, 72, 0.75);
  --pc-aura-glow: rgba(255, 190, 60, 0.32);
  --pc-aura-fill: transparent;
}
.gc-player-card-edit::before,
.gc-player-card-edit::after {
  content: none !important;
  display: none !important;
}

/* Free rims: visible L-corner brackets + scanline */
.gc-player-card-view[data-aura^="rim_"]::before,
.gc-player-card-preview[data-aura^="rim_"]::before {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 6px;
  z-index: 3;
  border-radius: var(--gc-radius-sm, 2px);
  background:
    linear-gradient(var(--pc-rim), var(--pc-rim)) top left / 14px 1px no-repeat,
    linear-gradient(var(--pc-rim), var(--pc-rim)) top left / 1px 14px no-repeat,
    linear-gradient(var(--pc-rim), var(--pc-rim)) top right / 14px 1px no-repeat,
    linear-gradient(var(--pc-rim), var(--pc-rim)) top right / 1px 14px no-repeat,
    linear-gradient(var(--pc-rim), var(--pc-rim)) bottom left / 14px 1px no-repeat,
    linear-gradient(var(--pc-rim), var(--pc-rim)) bottom left / 1px 14px no-repeat,
    linear-gradient(var(--pc-rim), var(--pc-rim)) bottom right / 14px 1px no-repeat,
    linear-gradient(var(--pc-rim), var(--pc-rim)) bottom right / 1px 14px no-repeat;
  opacity: 0.72;
}
.gc-player-card-view[data-aura="rim_ash"],
.gc-player-card-preview[data-aura="rim_ash"] {
  --pc-rim: rgba(170, 178, 190, 0.75);
}
.gc-player-card-view[data-aura="rim_steel"],
.gc-player-card-preview[data-aura="rim_steel"] {
  --pc-rim: rgba(190, 210, 235, 0.8);
}
.gc-player-card-view[data-aura^="rim_"]::after,
.gc-player-card-preview[data-aura^="rim_"]::after {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 1;
  border-radius: inherit;
  background: repeating-linear-gradient(
    180deg,
    transparent 0,
    transparent 5px,
    rgba(180, 190, 200, 0.035) 5px,
    rgba(180, 190, 200, 0.035) 6px
  );
  opacity: 0.55;
  box-shadow: inset 0 0 0 1px rgba(160, 170, 185, 0.12);
}

/* Premium auras: circuit border + soft glow + tint */
.gc-player-card-view[data-aura^="aura_"],
.gc-player-card-preview[data-aura^="aura_"] {
  isolation: isolate;
  background-image:
    linear-gradient(var(--pc-aura-fill), var(--pc-aura-fill)),
    linear-gradient(165deg, rgba(10, 14, 24, 0.96), rgba(4, 8, 16, 0.98));
}
.gc-player-card-view[data-aura^="aura_"]::before,
.gc-player-card-preview[data-aura^="aura_"]::before {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: 0;
  border-radius: var(--gc-radius-sm, 2px);
  padding: 2px;
  background:
    linear-gradient(
      115deg,
      transparent 18%,
      var(--pc-aura-color) 42%,
      transparent 58%,
      var(--pc-aura-color) 82%,
      transparent 94%
    );
  background-size: 280% 280%;
  -webkit-mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  mask:
    linear-gradient(#000 0 0) content-box,
    linear-gradient(#000 0 0);
  -webkit-mask-composite: xor;
  mask-composite: exclude;
  animation: gc-pc-aura-circuit 3.6s linear infinite;
  z-index: 3;
  opacity: 0.85;
}
.gc-player-card-view[data-aura^="aura_"]::after,
.gc-player-card-preview[data-aura^="aura_"]::after {
  content: "";
  pointer-events: none;
  position: absolute;
  inset: -2px;
  border-radius: var(--gc-radius-sm, 2px);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--pc-aura-color) 28%, transparent),
    0 0 18px var(--pc-aura-glow),
    0 0 36px var(--pc-aura-glow);
  opacity: 0.7;
  z-index: 0;
  animation: gc-pc-aura-pulse 3.5s ease-in-out infinite;
}
.gc-player-card-view[data-aura="aura_gold"],
.gc-player-card-preview[data-aura="aura_gold"] {
  --pc-aura-color: rgba(255, 214, 90, 0.85);
  --pc-aura-glow: rgba(255, 190, 50, 0.32);
  --pc-aura-fill: rgba(255, 190, 60, 0.045);
}
.gc-player-card-view[data-aura="aura_plasma"],
.gc-player-card-preview[data-aura="aura_plasma"] {
  --pc-aura-color: rgba(0, 255, 220, 0.85);
  --pc-aura-glow: rgba(0, 230, 200, 0.3);
  --pc-aura-fill: rgba(0, 230, 200, 0.05);
}
.gc-player-card-view[data-aura="aura_void"],
.gc-player-card-preview[data-aura="aura_void"] {
  --pc-aura-color: rgba(170, 110, 255, 0.88);
  --pc-aura-glow: rgba(120, 50, 255, 0.34);
  --pc-aura-fill: rgba(110, 50, 220, 0.06);
}
.gc-player-card-view[data-aura^="aura_"] .gc-player-card-avatar,
.gc-player-card-preview[data-aura^="aura_"] .gc-player-card-avatar,
.gc-player-card-view[data-aura^="aura_"] .gc-player-card-avatar-placeholder,
.gc-player-card-preview[data-aura^="aura_"] .gc-player-card-avatar-placeholder {
  box-shadow:
    0 0 0 1px rgba(6, 10, 18, 0.9),
    0 0 0 2px color-mix(in srgb, var(--pc-aura-color) 70%, transparent),
    0 0 14px var(--pc-aura-glow);
  border-radius: var(--gc-radius-sm, 2px);
}

@keyframes gc-pc-aura-circuit {
  0% { background-position: 0% 40%; }
  100% { background-position: 220% 60%; }
}
@keyframes gc-pc-aura-pulse {
  0%, 100% { opacity: 0.45; }
  50% { opacity: 0.78; }
}

/* Title flair ? CSS shapes only (no Unicode glyphs) */
.gc-player-card-title-text {
  position: relative;
  display: inline-block;
  max-width: 100%;
}
.gc-player-card-view[data-flair="etched"] .gc-player-card-title-text,
.gc-player-card-preview[data-flair="etched"] .gc-player-card-title-text {
  letter-spacing: 0.06em;
  padding: 0 0 2px 7px;
  border-left: 2px solid rgba(180, 190, 200, 0.35);
  border-bottom: 1px solid rgba(180, 190, 200, 0.28);
  color: rgba(200, 210, 220, 0.88);
}
.gc-player-card-view[data-flair="signal"] .gc-player-card-title-text,
.gc-player-card-preview[data-flair="signal"] .gc-player-card-title-text {
  letter-spacing: 0.1em;
  padding: 0 0 2px 8px;
  border-left: 2px solid rgba(70, 229, 255, 0.65);
  color: rgba(140, 220, 235, 0.95);
  text-shadow: 0 0 8px rgba(70, 229, 255, 0.28);
  animation: gc-pc-flair-signal 3.4s ease-in-out infinite;
  box-shadow: inset 0 -1px 0 rgba(70, 229, 255, 0.2);
}
.gc-player-card-view[data-flair="imperial"] .gc-player-card-title-text,
.gc-player-card-preview[data-flair="imperial"] .gc-player-card-title-text {
  letter-spacing: 0.14em;
  text-transform: uppercase;
  font-weight: 700;
  padding: 1px 2px 3px 8px;
  border-left: 2px solid rgba(255, 200, 72, 0.75);
  border-bottom: 1px solid rgba(255, 200, 80, 0.35);
  color: rgba(255, 214, 140, 0.96);
  text-shadow: 0 0 10px rgba(255, 190, 60, 0.28);
  background: linear-gradient(90deg, rgba(255, 190, 60, 0.06), transparent 65%);
}

.gc-player-card-badge-legendary,
.gc-player-card-badge-mythic,
.gc-player-card-badge-epic {
  box-shadow: 0 0 10px rgba(255, 200, 72, 0.16);
}
.gc-player-card-badge-legendary {
  box-shadow: 0 0 12px rgba(255, 190, 60, 0.22), inset 0 0 0 1px rgba(255, 220, 120, 0.16);
}
.gc-player-card-badge-mythic {
  box-shadow: 0 0 12px rgba(180, 100, 255, 0.24), inset 0 0 0 1px rgba(200, 140, 255, 0.18);
}

@media (prefers-reduced-motion: reduce) {
  .gc-player-card-view[data-aura^="aura_"]::before,
  .gc-player-card-preview[data-aura^="aura_"]::before,
  .gc-player-card-view[data-aura^="aura_"]::after,
  .gc-player-card-preview[data-aura^="aura_"]::after,
  .gc-player-card-view[data-flair="signal"] .gc-player-card-title-text,
  .gc-player-card-preview[data-flair="signal"] .gc-player-card-title-text {
    animation: none;
  }
}
@keyframes gc-pc-flair-signal {
  0%, 100% { opacity: 0.9; text-shadow: 0 0 6px rgba(70, 229, 255, 0.18); }
  50% { opacity: 1; text-shadow: 0 0 10px rgba(70, 229, 255, 0.38); }
}

@keyframes gc-pc-in {
  from { opacity: 0; transform: translateY(8px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

/* --- Header --- */
.gc-player-card-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-shrink: 0;
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--gc-border, rgba(255, 255, 255, 0.08));
}
.gc-player-card-head-title {
  margin: 0;
  font-family: var(--gc-font-display, Orbitron, sans-serif);
  font-size: 0.95rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* --- Body: content + overlay states --- */
.gc-player-card-body {
  position: relative;
  flex: 1 1 auto;
  min-height: 140px;
  overflow: auto;
  padding: 16px;
  -webkit-overflow-scrolling: touch;
}

.gc-player-card-content {
  min-height: 0;
}
.gc-player-card-content:empty {
  display: none;
}

/* CRITICAL: [hidden] must win over display:flex (fixes stuck "Lade Profil?") */
.gc-player-card-loading[hidden],
.gc-player-card-error[hidden] {
  display: none !important;
}

.gc-player-card-loading {
  position: absolute;
  inset: 0;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 24px;
  background: rgba(6, 10, 20, 0.88);
  color: var(--gc-text-muted, #9aa8c4);
  font-size: 0.9rem;
  text-align: center;
  pointer-events: none;
}
.gc-player-card-loading-text {
  letter-spacing: 0.04em;
}

.gc-player-card-spinner {
  width: 28px;
  height: 28px;
  border: 2px solid rgba(70, 229, 255, 0.2);
  border-top-color: var(--gc-neon-cyan, #46e5ff);
  border-radius: 50%;
  animation: gc-pc-spin 0.8s linear infinite;
}
@keyframes gc-pc-spin { to { transform: rotate(360deg); } }

.gc-player-card-error {
  position: absolute;
  inset: 0;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  text-align: center;
  color: #ff9a9a;
  font-size: 0.9rem;
  background: rgba(6, 10, 20, 0.92);
}

.gc-player-card-modal.is-loading .gc-player-card-content {
  visibility: hidden;
  pointer-events: none;
}

/* --- View shell / profile --- */
.gc-player-card-shell {
  animation: gc-pc-in 0.18s ease-out;
}

.gc-player-card-profile {
  margin-bottom: 16px;
}

.gc-player-card-hero {
  display: grid;
  grid-template-columns: auto 1fr;
  gap: 14px;
  align-items: start;
}
.gc-player-card-hero-compact {
  grid-template-columns: auto 1fr;
}

.gc-player-card-hero-actions {
  display: flex;
  justify-content: flex-end;
  margin-top: 12px;
}

.gc-player-card-avatar-wrap {
  flex-shrink: 0;
}

.gc-player-card-avatar-btn {
  display: block;
  padding: 0;
  margin: 0;
  border: none;
  background: none;
  cursor: zoom-in;
  border-radius: var(--gc-radius-xl);
  line-height: 0;
}
.gc-player-card-avatar-btn:focus-visible {
  outline: 2px solid rgba(70, 229, 255, 0.45);
  outline-offset: 2px;
}
.gc-player-card-avatar-btn:hover .gc-player-card-avatar,
.gc-player-card-avatar-btn:focus-visible .gc-player-card-avatar {
  border-color: rgba(70, 229, 255, 0.42);
  box-shadow: 0 0 16px rgba(70, 229, 255, 0.12);
}

.gc-player-card-avatar-zoom {
  position: fixed;
  inset: 0;
  z-index: 1250;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 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));
}
.gc-player-card-avatar-zoom[hidden] {
  display: none !important;
}
.gc-player-card-avatar-zoom-backdrop {
  position: absolute;
  inset: 0;
  border: none;
  padding: 0;
  background: rgba(2, 6, 14, 0.9);
  backdrop-filter: blur(6px);
  cursor: zoom-out;
}
.gc-player-card-avatar-zoom-panel {
  position: relative;
  z-index: 1;
  margin: 0;
  max-width: min(92vw, 420px);
}
.gc-player-card-avatar-zoom-img {
  display: block;
  width: min(88vw, 384px);
  height: min(88vw, 384px);
  max-height: 80vh;
  object-fit: contain;
  border-radius: var(--gc-radius-xl);
  border: 2px solid rgba(70, 229, 255, 0.45);
  box-shadow:
    0 0 36px rgba(70, 229, 255, 0.16),
    0 24px 56px rgba(0, 0, 0, 0.65);
  background: rgba(0, 0, 0, 0.55);
}
.gc-player-card-avatar-zoom-close {
  position: absolute;
  top: -10px;
  right: -10px;
  min-width: 32px;
  min-height: 32px;
  border-radius: var(--gc-radius-pill);
  background: rgba(6, 10, 20, 0.92);
  border: 1px solid rgba(70, 229, 255, 0.35);
}

.gc-player-card-avatar-zoom-panel--badge {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(80vw, 320px);
  max-width: min(92vw, 320px);
}
.gc-player-card-avatar-zoom-img--badge {
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  max-height: 72vh;
  object-fit: contain;
  border-radius: var(--gc-radius-lg);
}
.gc-player-card-badge-zoom-caption {
  margin: 12px 0 0;
  padding: 0;
  width: 100%;
  max-width: 100%;
  text-align: center;
  color: var(--gc-text-soft);
}
.gc-player-card-badge-zoom-caption[hidden] {
  display: none !important;
}
.gc-player-card-badge-zoom-title {
  display: block;
  font-family: var(--gc-font-display, Orbitron, sans-serif);
  font-size: 0.92rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-neon-cyan, #46e5ff);
  overflow-wrap: anywhere;
  word-break: break-word;
}
.gc-player-card-badge-zoom-desc {
  display: block;
  margin-top: 8px;
  font-family: Orbitron, var(--gc-font-display, Orbitron, sans-serif);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  line-height: 1.35;
  color: var(--gc-primary-2, #7fffd9);
  text-shadow: 0 0 12px rgba(127, 255, 217, 0.16);
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
}

.gc-player-card-badge-zoom-btn {
  appearance: none;
  border: none;
  font: inherit;
  color: inherit;
  cursor: zoom-in;
  text-align: center;
  width: 100%;
}
.gc-player-card-badge-zoom-btn:hover,
.gc-player-card-badge-zoom-btn:focus-visible {
  outline: none;
  border-color: rgba(70, 229, 255, 0.42);
  box-shadow: 0 0 18px rgba(70, 229, 255, 0.12);
}
.gc-player-card-badge-zoom-btn:focus-visible {
  box-shadow: 0 0 0 2px rgba(70, 229, 255, 0.35);
}
.gc-player-card-badge-zoom-btn:hover .gc-player-card-badge-img,
.gc-player-card-badge-zoom-btn:focus-visible .gc-player-card-badge-img {
  filter: drop-shadow(0 6px 18px rgba(70, 229, 255, 0.28));
}

.gc-player-card-avatar {
  width: 72px;
  height: 72px;
  max-width: 100%;
  border-radius: var(--gc-radius-sm, 2px);
  object-fit: cover;
  border: 1px solid rgba(70, 229, 255, 0.24);
  background: rgba(0, 0, 0, 0.35);
}
.gc-player-card-avatar-placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 72px;
  height: 72px;
  font-family: var(--gc-font-display, Orbitron, sans-serif);
  font-size: 1.6rem;
  color: rgba(120, 210, 230, 0.85);
  border-radius: var(--gc-radius-sm, 2px);
  border: 1px solid rgba(70, 229, 255, 0.2);
  background: rgba(0, 0, 0, 0.35);
}

.gc-player-card-commander {
  margin: 0 0 4px;
  font-size: 1.15rem;
  line-height: 1.25;
  font-family: var(--gc-font-display, Orbitron, sans-serif);
  letter-spacing: 0.04em;
  word-break: break-word;
}
.gc-player-card-title-text {
  margin: 0 0 6px;
  color: var(--gc-text-muted, #9aa8c4);
  font-size: 0.88rem;
  word-break: break-word;
}
.gc-player-card-activity {
  margin: 0;
  font-size: 0.78rem;
  color: rgba(140, 200, 215, 0.82);
  opacity: 1;
}
.gc-player-card-class {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  margin: 0.35rem 0 0.2rem;
  padding: 0.25rem 0.4rem;
  border: 1px solid color-mix(in srgb, var(--gc-accent, #5ad1ff) 28%, #2a3a45);
  background: rgba(0, 0, 0, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  max-width: 16rem;
}
.gc-player-card-class-portrait {
  width: 36px;
  height: 36px;
  object-fit: cover;
  border-radius: var(--gc-radius-xs, 0);
  border: 1px solid rgba(255, 255, 255, 0.12);
  flex: 0 0 auto;
}
.gc-player-card-class-meta {
  display: flex;
  flex-direction: column;
  gap: 0.05rem;
  min-width: 0;
}
.gc-player-card-class-label {
  font-size: 0.65rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.65;
}
.gc-player-card-class-name {
  font-size: 0.82rem;
  font-weight: 600;
  line-height: 1.2;
}
.gc-player-card-ai-banner {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 0 0 8px;
  padding: 6px 8px;
  border: 1px solid rgba(80, 200, 170, 0.4);
  background: rgba(12, 40, 36, 0.45);
  border-radius: var(--gc-radius-sm, 2px);
}
.gc-player-card-ai-badge {
  display: inline-flex;
  align-self: flex-start;
  padding: 1px 6px;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(120, 220, 200, 0.98);
  border: 1px solid rgba(80, 200, 170, 0.5);
  background: rgba(20, 90, 80, 0.3);
  border-radius: var(--gc-radius-sm, 2px);
}
.gc-player-card-ai-mode,
.gc-player-card-ai-faction {
  font-size: 0.82rem;
  color: var(--gc-text, #d7e6f5);
}
.gc-player-card-ai-desc {
  margin: 2px 0 0;
}

/* --- Stats --- */
.gc-player-card-stats {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}
.gc-player-card-stat {
  padding: 10px 12px;
  border: 1px solid rgba(70, 229, 255, 0.14);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.2);
  box-shadow: none;
  min-width: 0;
}
.gc-player-card-stat-label {
  display: block;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gc-text-muted, #9aa8c4);
  margin-bottom: 4px;
}
.gc-player-card-stat-value {
  font-size: 0.95rem;
  word-break: break-word;
}
.gc-player-card-stat-value .gc-eff-stat{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
}
.gc-player-card-stat-value .gc-eff-stat-bonus{
  font-size: 0.72rem;
}
.gc-tech-bonus-metric{
  color: rgba(160, 200, 220, 0.75);
}
.gc-tech-bonus-sep{
  margin: 0 4px;
  opacity: 0.55;
}
.gc-player-card-stat-sub {
  font-size: 0.78rem;
  opacity: 0.7;
}

/* --- Bio & badges --- */
.gc-player-card-bio {
  margin-bottom: 14px;
  padding: 10px 12px;
  border-left: 2px solid rgba(70, 229, 255, 0.35);
  background: rgba(0, 0, 0, 0.18);
}
.gc-player-card-bio p {
  margin: 6px 0 0;
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: anywhere;
}

.gc-player-card-badges-section {
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid var(--gc-border, rgba(255, 255, 255, 0.08));
}
.gc-player-card-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 8px;
}
.gc-player-card-badges-showcase {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 10px;
}
.gc-player-card-badge-tile {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  gap: 6px;
  padding: 10px 8px;
  min-height: 88px;
  border-radius: var(--gc-radius-sm, 6px);
  border: 1px solid rgba(70, 229, 255, 0.22);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(70, 229, 255, 0.08), transparent 70%),
    rgba(5, 12, 24, 0.92);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
  text-align: center;
}
.gc-badge-icon,
.gc-player-card-badge-img {
  width: 40px;
  height: 40px;
  object-fit: contain;
  flex-shrink: 0;
  filter: drop-shadow(0 4px 14px rgba(70, 229, 255, 0.22));
}
.gc-player-card-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 10px;
  border-radius: var(--gc-radius-pill);
  border: 1px solid rgba(70, 229, 255, 0.25);
  background: rgba(70, 229, 255, 0.06);
  font-size: 0.78rem;
  max-width: 100%;
}
.gc-player-card-badge-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
  letter-spacing: 0.03em;
}
.gc-player-card-badge-tile.gc-player-card-badge-rare {
  border-color: rgba(168, 120, 255, 0.42);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(168, 120, 255, 0.1), transparent 70%),
    rgba(8, 6, 22, 0.92);
}
.gc-player-card-badge-tile.gc-player-card-badge-epic {
  border-color: rgba(255, 190, 80, 0.48);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(255, 190, 80, 0.1), transparent 70%),
    rgba(18, 12, 6, 0.92);
}
.gc-player-card-badge-tile.gc-player-card-badge-legendary {
  border-color: rgba(255, 220, 120, 0.55);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(255, 220, 120, 0.12), transparent 70%),
    rgba(20, 14, 4, 0.94);
  box-shadow: inset 0 0 0 1px rgba(255, 200, 80, 0.12), 0 0 18px rgba(255, 200, 80, 0.08);
}
.gc-player-card-badge-tile.gc-player-card-badge-mythic {
  border-color: rgba(255, 120, 220, 0.55);
  background:
    radial-gradient(ellipse at 50% 0%, rgba(255, 120, 220, 0.14), transparent 70%),
    rgba(16, 6, 20, 0.94);
  box-shadow: inset 0 0 0 1px rgba(255, 120, 220, 0.14), 0 0 20px rgba(255, 120, 220, 0.1);
}
.gc-player-card-badge-rare { border-color: rgba(168, 120, 255, 0.45); }
.gc-player-card-badge-epic { border-color: rgba(255, 190, 80, 0.5); }
.gc-player-card-badge-legendary {
  border-color: rgba(255, 220, 120, 0.55);
  background: rgba(255, 200, 80, 0.08);
}

@media (max-width: 520px){
  .gc-player-card-badges-showcase {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .gc-badge-icon,
  .gc-player-card-badge-img,
  .gc-player-card-badge-option-img {
    width: 32px;
    height: 32px;
  }
  .gc-player-card-badge-tile {
    min-height: 76px;
  }
}

/* --- Private profile --- */
.gc-player-card-private {
  display: flex;
  gap: 14px;
  align-items: center;
  padding: 12px;
  border: 1px dashed rgba(255, 255, 255, 0.12);
  border-radius: var(--gc-radius-sm, 6px);
  background: rgba(0, 0, 0, 0.2);
}
.gc-player-card-private-msg {
  margin: 6px 0 0;
  color: var(--gc-text-muted, #9aa8c4);
  font-size: 0.88rem;
}

.gc-player-card-error-state {
  text-align: center;
  padding: 24px 12px;
}
.gc-player-card-error-text {
  color: #ff8a8a;
  margin: 0 0 14px;
}

/* --- Edit mode --- */
.gc-player-card-edit .gc-player-card-form {
  margin: 0;
}

.gc-player-card-edit-layout {
  display: grid;
  gap: 16px;
  align-items: start;
}

.gc-player-card-preview {
  position: relative;
  overflow: visible;
  padding: 14px 14px 12px;
  border: 1px solid rgba(70, 229, 255, 0.24);
  border-radius: var(--gc-radius-sm, 2px);
  background:
    linear-gradient(165deg, rgba(12, 22, 36, 0.96), rgba(5, 10, 18, 0.98));
  box-shadow:
    inset 0 0 0 1px rgba(255, 255, 255, 0.03),
    0 0 28px rgba(70, 229, 255, 0.05);
  min-width: 0;
}
.gc-player-card-preview[data-theme="cyan"] {
  border-color: rgba(70, 229, 255, 0.28);
  box-shadow: inset 0 0 0 1px rgba(70, 229, 255, 0.05), 0 0 28px rgba(70, 229, 255, 0.06);
}
.gc-player-card-preview[data-theme="violet"] {
  border-color: rgba(168, 120, 255, 0.3);
  background: linear-gradient(165deg, rgba(20, 14, 32, 0.96), rgba(6, 8, 18, 0.98));
  box-shadow: inset 0 0 0 1px rgba(168, 120, 255, 0.05), 0 0 28px rgba(168, 120, 255, 0.07);
}
.gc-player-card-preview[data-theme="amber"] {
  border-color: rgba(255, 190, 80, 0.3);
  background: linear-gradient(165deg, rgba(26, 20, 12, 0.96), rgba(8, 8, 14, 0.98));
  box-shadow: inset 0 0 0 1px rgba(255, 190, 80, 0.05), 0 0 28px rgba(255, 190, 80, 0.06);
}
.gc-player-card-preview[data-theme="emerald"] {
  border-color: rgba(80, 220, 140, 0.28);
  background: linear-gradient(165deg, rgba(10, 26, 20, 0.96), rgba(5, 12, 14, 0.98));
  box-shadow: inset 0 0 0 1px rgba(80, 220, 140, 0.05), 0 0 28px rgba(80, 220, 140, 0.06);
}
.gc-player-card-preview[data-theme="rose"] {
  border-color: rgba(255, 120, 160, 0.28);
  background: linear-gradient(165deg, rgba(26, 12, 20, 0.96), rgba(8, 6, 14, 0.98));
  box-shadow: inset 0 0 0 1px rgba(255, 120, 160, 0.05), 0 0 28px rgba(255, 120, 160, 0.06);
}
.gc-player-card-preview[data-theme="ash"] {
  border-color: rgba(140, 148, 160, 0.32);
  background: linear-gradient(165deg, rgba(18, 20, 24, 0.96), rgba(8, 10, 14, 0.98));
  box-shadow: inset 0 0 0 1px rgba(140, 148, 160, 0.06), 0 0 24px rgba(120, 128, 140, 0.05);
}
.gc-player-card-preview[data-theme="steel"] {
  border-color: rgba(160, 176, 196, 0.34);
  background: linear-gradient(165deg, rgba(16, 22, 30, 0.96), rgba(6, 10, 16, 0.98));
  box-shadow: inset 0 0 0 1px rgba(160, 176, 196, 0.06), 0 0 26px rgba(140, 160, 190, 0.06);
}
.gc-player-card-preview[data-theme="gold"] {
  border-color: rgba(255, 200, 72, 0.4);
  background: linear-gradient(165deg, rgba(26, 22, 12, 0.97), rgba(8, 8, 14, 0.98));
  box-shadow: inset 0 0 0 1px rgba(255, 220, 120, 0.08), 0 0 32px rgba(255, 190, 60, 0.1);
}
.gc-player-card-preview[data-theme="void"] {
  border-color: rgba(140, 90, 255, 0.4);
  background: linear-gradient(165deg, rgba(16, 10, 32, 0.97), rgba(4, 4, 12, 0.98));
  box-shadow: inset 0 0 0 1px rgba(180, 120, 255, 0.07), 0 0 32px rgba(90, 40, 220, 0.12);
}
.gc-player-card-preview[data-theme="plasma"] {
  border-color: rgba(0, 255, 220, 0.38);
  background: linear-gradient(165deg, rgba(6, 22, 26, 0.97), rgba(4, 10, 18, 0.98));
  box-shadow: inset 0 0 0 1px rgba(0, 255, 210, 0.07), 0 0 32px rgba(0, 230, 200, 0.1);
}

.gc-player-card-preview-label {
  position: relative;
  z-index: 2;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gc-text-muted, #9aa8c4);
  margin-bottom: 8px;
  opacity: 0.85;
}
.gc-player-card-preview .gc-player-card-hero {
  position: relative;
  z-index: 2;
  gap: 12px;
}
.gc-player-card-preview .gc-player-card-identity {
  min-width: 0;
}
.gc-player-card-preview .gc-player-card-commander {
  margin: 0 0 4px;
  font-size: 0.95rem;
  line-height: 1.25;
}
.gc-player-card-preview .gc-player-card-title-text {
  margin: 0 0 4px;
  font-size: 0.82rem;
}
.gc-player-card-bio-preview {
  margin: 0;
  font-size: 0.78rem;
  color: var(--gc-text-muted, #9aa8c4);
  white-space: pre-wrap;
  word-break: break-word;
  overflow-wrap: anywhere;
  max-height: 4.5em;
  overflow: hidden;
}
.gc-player-card-preview .gc-player-card-badges-preview {
  position: relative;
  z-index: 2;
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
  gap: 8px;
}

/* Human Wardrobe — social surfaces + cosmetic chips */
.gc-pc-social-preview {
  position: relative;
  z-index: 2;
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.gc-pc-social-preview-label {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gc-text-muted, #9aa8c4);
  opacity: 0.9;
  margin-bottom: 2px;
}
.gc-pc-social-preview-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
  font-size: 0.8rem;
  line-height: 1.35;
  padding: 4px 6px;
  border: 1px solid rgba(120, 160, 200, 0.14);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.22);
}
.gc-pc-social-preview-k {
  flex: 0 0 auto;
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gc-text-muted, #9aa8c4);
  opacity: 0.85;
  min-width: 4.2em;
}
.gc-pc-social-preview-line {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gc-pc-social-preview-msg {
  color: var(--gc-text-muted, #9aa8c4);
  opacity: 0.75;
}
.gc-pc-social-preview-rank-pos {
  color: var(--gc-text-muted, #9aa8c4);
  margin-right: 6px;
  font-variant-numeric: tabular-nums;
  opacity: 0.8;
}

.gc-pc-cosmetic-chip-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}
.gc-pc-cosmetic-chip {
  appearance: none;
  margin: 0;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  min-height: 34px;
  padding: 4px 8px;
  border: 1px solid rgba(120, 190, 255, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(5, 10, 22, 0.88);
  color: inherit;
  font: inherit;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.02);
  transition: border-color 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}
.gc-pc-cosmetic-chip:hover,
.gc-pc-cosmetic-chip:focus-visible {
  border-color: rgba(120, 220, 255, 0.45);
  outline: none;
  box-shadow: inset 0 0 0 1px rgba(120, 220, 255, 0.12), 0 0 0 1px rgba(70, 180, 255, 0.2);
}
.gc-pc-cosmetic-chip.is-selected,
.gc-pc-cosmetic-chip[aria-pressed="true"] {
  border-color: rgba(70, 229, 255, 0.55);
  background: rgba(20, 40, 58, 0.95);
  box-shadow:
    inset 0 0 0 1px rgba(70, 229, 255, 0.18),
    0 0 12px rgba(70, 229, 255, 0.12);
}
.gc-pc-cosmetic-chip .gc-player-name {
  font-size: 0.82rem;
  line-height: 1.2;
  max-width: 9em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gc-pc-cosmetic-chip--theme {
  min-width: 0;
  padding: 4px 8px 4px 6px;
}
.gc-pc-cosmetic-chip-label {
  font-size: 0.72rem;
  letter-spacing: 0.02em;
  color: var(--gc-text-muted, #9aa8c4);
  max-width: 7em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gc-pc-theme-swatch {
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  border-radius: var(--gc-radius-sm, 2px);
  border: 1px solid rgba(255, 255, 255, 0.25);
  background: #46e5ff;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
}
.gc-pc-cosmetic-chip--theme[data-theme="cyan"] .gc-pc-theme-swatch { background: #46e5ff; }
.gc-pc-cosmetic-chip--theme[data-theme="violet"] .gc-pc-theme-swatch { background: #a878ff; }
.gc-pc-cosmetic-chip--theme[data-theme="amber"] .gc-pc-theme-swatch { background: #ffbe50; }
.gc-pc-cosmetic-chip--theme[data-theme="emerald"] .gc-pc-theme-swatch { background: #50dc8c; }
.gc-pc-cosmetic-chip--theme[data-theme="rose"] .gc-pc-theme-swatch { background: #ff7898; }
.gc-pc-cosmetic-chip--theme[data-theme="ash"] .gc-pc-theme-swatch { background: #8c94a0; }
.gc-pc-cosmetic-chip--theme[data-theme="steel"] .gc-pc-theme-swatch { background: #a0b0c4; }
.gc-pc-cosmetic-chip--theme[data-theme="gold"] .gc-pc-theme-swatch { background: #ffc848; }
.gc-pc-cosmetic-chip--theme[data-theme="void"] .gc-pc-theme-swatch { background: #8c5aff; }
.gc-pc-cosmetic-chip--theme[data-theme="plasma"] .gc-pc-theme-swatch { background: #00ffdc; }

.gc-player-card-fields {
  min-width: 0;
  padding-bottom: 8px;
}

.gc-player-card-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 12px;
  font-size: 0.85rem;
}
.gc-player-card-field-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--gc-text-muted, #9aa8c4);
}
.gc-player-card-field-check {
  flex-direction: row;
  align-items: flex-start;
  gap: 10px;
  cursor: pointer;
}
.gc-player-card-field-check-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.gc-player-card-field-hint {
  display: block;
  font-size: 0.75rem;
  color: var(--gc-text-muted, #9aa8c4);
  line-height: 1.35;
}

.gc-player-card-fields .gc-input,
.gc-player-card-fields .gc-textarea,
.gc-player-card-fields select.gc-input {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  min-height: 38px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm, 6px);
  border: 1px solid rgba(120, 190, 255, 0.28);
  background: rgba(5, 10, 22, 0.88);
  color: var(--gc-text, #d7f6ff);
  font-size: 0.88rem;
  font-family: inherit;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 0 0 10px rgba(0, 0, 0, 0.28);
  transition: border-color 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}
.gc-player-card-fields .gc-input::placeholder,
.gc-player-card-fields .gc-textarea::placeholder {
  color: rgba(200, 232, 244, 0.34);
  font-style: italic;
}
.gc-player-card-fields .gc-input:hover,
.gc-player-card-fields .gc-textarea:hover,
.gc-player-card-fields select.gc-input:hover {
  border-color: rgba(70, 229, 255, 0.42);
  background: rgba(6, 12, 26, 0.92);
}
.gc-player-card-fields .gc-input:focus,
.gc-player-card-fields .gc-textarea:focus,
.gc-player-card-fields select.gc-input:focus {
  outline: none;
  border-color: rgba(70, 229, 255, 0.88);
  box-shadow:
    0 0 0 2px rgba(70, 229, 255, 0.14),
    inset 0 0 12px rgba(70, 229, 255, 0.06);
  background: rgba(4, 10, 22, 0.96);
}
.gc-player-card-fields select.gc-input {
  appearance: none;
  padding-right: 32px;
  cursor: pointer;
  background-image:
    linear-gradient(45deg, transparent 50%, rgba(127, 255, 217, 0.75) 50%),
    linear-gradient(135deg, rgba(127, 255, 217, 0.75) 50%, transparent 50%);
  background-position:
    calc(100% - 16px) calc(50% + 2px),
    calc(100% - 11px) calc(50% + 2px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
}
.gc-player-card-fields select.gc-input option {
  background: #060a16;
  color: var(--gc-text, #d7f6ff);
}
.gc-player-card-fields .gc-input-file {
  padding: 6px 0;
  color: rgba(200, 232, 244, 0.72);
  border-style: dashed;
  cursor: pointer;
}
.gc-player-card-fields .gc-input-file::file-selector-button {
  margin-right: 10px;
  padding: 7px 12px;
  border-radius: var(--gc-radius-sm, 6px);
  border: 1px solid rgba(120, 190, 255, 0.28);
  background: rgba(5, 10, 22, 0.88);
  color: var(--gc-text, #d7f6ff);
  font-family: inherit;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  cursor: pointer;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
  transition: border-color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}
.gc-player-card-fields .gc-input-file::file-selector-button:hover {
  border-color: rgba(70, 229, 255, 0.42);
  background: rgba(6, 12, 26, 0.92);
  box-shadow: var(--gc-border-glow, 0 0 12px rgba(70, 229, 255, 0.12)), inset 0 0 0 1px rgba(0, 0, 0, 0.35);
}
.gc-player-card-fields .gc-input-file::-webkit-file-upload-button {
  margin-right: 10px;
  padding: 7px 12px;
  border-radius: var(--gc-radius-sm, 6px);
  border: 1px solid rgba(120, 190, 255, 0.28);
  background: rgba(5, 10, 22, 0.88);
  color: var(--gc-text, #d7f6ff);
  font-family: inherit;
  font-size: 0.82rem;
  cursor: pointer;
}
.gc-player-card-field-check input[type="checkbox"] {
  width: 16px;
  height: 16px;
  margin-top: 2px;
  accent-color: var(--gc-neon-cyan, #46e5ff);
  flex-shrink: 0;
}
.gc-textarea {
  min-height: 88px;
  max-height: 200px;
  resize: vertical;
  line-height: 1.45;
}

.gc-player-card-badges-picker {
  border: 1px solid var(--gc-border, rgba(255, 255, 255, 0.08));
  border-radius: var(--gc-radius-sm, 2px);
  padding: 10px 12px;
  margin: 0 0 16px;
}
.gc-player-card-badges-picker legend {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0 4px;
}
.gc-player-card-badge-options {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(108px, 1fr));
  gap: 10px;
  max-height: 320px;
  overflow-y: auto;
  padding: 4px 2px;
}
.gc-player-card-badge-option {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 10px 8px 8px;
  cursor: pointer;
  border-radius: var(--gc-radius-sm, 6px);
  border: 1px solid rgba(70, 229, 255, 0.16);
  background: rgba(5, 12, 24, 0.88);
  text-align: center;
  transition: border-color .12s ease, background .12s ease, box-shadow .12s ease;
}
.gc-player-card-badge-option:hover {
  background: rgba(70, 229, 255, 0.08);
  border-color: rgba(70, 229, 255, 0.32);
}
.gc-player-card-badge-option:has(input:checked) {
  border-color: rgba(70, 229, 255, 0.55);
  background: rgba(70, 229, 255, 0.1);
  box-shadow: 0 0 16px rgba(70, 229, 255, 0.12);
}
.gc-player-card-badge-option input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  width: 1px;
  height: 1px;
  pointer-events: none;
}
.gc-player-card-badge-option-img {
  width: 40px;
  height: 40px;
  object-fit: contain;
  filter: drop-shadow(0 3px 10px rgba(70, 229, 255, 0.18));
}
.gc-player-card-badge-option-name {
  font-size: 0.72rem;
  line-height: 1.25;
  color: var(--gc-text-soft);
  overflow-wrap: anywhere;
}

.gc-player-card-form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
  position: sticky;
  bottom: 0;
  z-index: 4;
  margin: 0 -4px;
  padding: 12px 4px 8px;
  background: linear-gradient(180deg, rgba(6, 10, 20, 0) 0%, rgba(6, 10, 20, 0.92) 28%, rgba(6, 10, 20, 0.98) 100%);
}
.gc-player-card-form-msg {
  margin: 8px 0 0;
  font-size: 0.82rem;
  color: var(--gc-neon-cyan, #46e5ff);
}
.gc-player-card-form-msg[hidden] {
  display: none !important;
}

/* --- Galaxy / alliance name lists --- */
.galaxy-sector-commanders,
.alliance-member-preview {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--gc-border, rgba(255, 255, 255, 0.08));
}
.galaxy-commander-list,
.alliance-member-list {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
}
.galaxy-commander-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 6px 0;
}
.galaxy-commander-score {
  font-size: 0.82rem;
  color: var(--gc-text-muted, #9aa8c4);
}

/* --- Responsive --- */
@media (min-width: 640px) {
  .gc-player-card-edit-layout {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
  }
  .gc-player-card-stats {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media (max-width: 480px) {
  .gc-player-card-dialog {
    width: 100%;
    max-height: 100vh;
    border-radius: var(--gc-radius-sm, 6px);
  }
  .gc-player-card-body {
    padding: 12px;
  }
  .gc-player-card-hero-actions {
    justify-content: stretch;
  }
  .gc-player-card-hero-actions .gc-btn {
    width: 100%;
  }
  .gc-player-card-stats {
    grid-template-columns: 1fr;
  }
  .gc-player-card-form-actions {
    flex-direction: column-reverse;
  }
  .gc-player-card-form-actions .gc-btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .gc-player-card-dialog,
  .gc-player-card-shell { animation: none; }
  .gc-player-card-spinner { animation: none; }
}

.planet-evolution-page .pe-identity-teaser{
  margin-bottom: 0.85rem;
  padding: 0.65rem 0.75rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(127, 255, 217, 0.28);
  background: var(--gc-panel-bg-2);
}
.planet-evolution-page .pe-identity-teaser-ready{
  border-color: rgba(127, 255, 217, 0.45);
  background: rgba(4, 16, 20, 0.94);
}
.planet-evolution-page .pe-identity-teaser-title{
  margin: 0 0 0.35rem;
  font-size: 0.92rem;
  color: var(--gc-accent, #46e5ff);
}
.planet-evolution-page .pe-identity-teaser-bar{
  margin-top: 0.45rem;
  display: grid;
  gap: 0.35rem;
}

.gc-planet-teaser{
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(70, 229, 255, 0.22);
  background: rgba(70, 229, 255, 0.05);
}
.gc-planet-teaser-ready{
  border-color: rgba(127, 255, 217, 0.4);
  box-shadow: 0 0 18px rgba(70, 229, 255, 0.08);
}
.gc-planet-teaser-head{
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  margin-bottom: 0.55rem;
}
.gc-planet-teaser-title{
  margin: 0 0 0.25rem;
  font-size: 1rem;
  color: var(--gc-accent, #46e5ff);
}
.gc-planet-teaser-body{
  margin: 0;
  font-size: 0.84rem;
  max-width: 36rem;
}
.gc-planet-teaser-stats{
  display: flex;
  gap: 1rem;
}
.gc-planet-teaser-stat{
  display: grid;
  gap: 0.1rem;
  text-align: right;
}
.gc-planet-teaser-stat-label{
  font-size: 0.72rem;
  color: var(--gc-text-dim);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.gc-planet-teaser-stat-value{
  font-family: var(--gc-mono);
  font-weight: 700;
  color: var(--gc-primary-2);
}
.gc-planet-teaser-progress{
  margin-bottom: 0.5rem;
}
.gc-planet-teaser-next{
  margin: 0 0 0.55rem;
}
.gc-planet-teaser-cta{
  margin-top: 0.25rem;
}

/* --- Galactic Directives banner (GC-720F) --- */
/* --- Galactic status card (unified directive + diplomacy on Galaxy) --- */
.gc-galaxy-status{
  --gc-galaxy-status-accent: var(--gc-accent, #46e5ff);
  position: relative;
  margin-bottom: 1rem;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(70, 229, 255, 0.28);
  border-left: 3px solid var(--gc-galaxy-status-accent);
  border-radius: var(--gc-radius-xs, 0);
  background:
    linear-gradient(135deg, rgba(70, 229, 255, 0.07) 0%, transparent 42%),
    linear-gradient(180deg, rgba(10, 18, 32, 0.98) 0%, rgba(4, 10, 22, 0.96) 100%);
  box-shadow: inset 0 1px 0 rgba(70, 229, 255, 0.08);
}
.gc-galaxy-status::before,
.gc-galaxy-status::after{
  content: "";
  position: absolute;
  width: 10px;
  height: 10px;
  pointer-events: none;
  border-color: rgba(70, 229, 255, 0.55);
  border-style: solid;
}
.gc-galaxy-status::before{
  top: 0;
  right: 0;
  border-width: 1px 1px 0 0;
}
.gc-galaxy-status::after{
  bottom: 0;
  right: 0;
  border-width: 0 1px 1px 0;
}
.gc-galaxy-status--alert{
  --gc-galaxy-status-accent: rgba(255, 96, 96, 0.9);
  border-color: rgba(255, 96, 96, 0.35);
  background:
    linear-gradient(135deg, rgba(255, 96, 96, 0.08) 0%, transparent 42%),
    linear-gradient(180deg, rgba(22, 10, 12, 0.98) 0%, rgba(4, 10, 22, 0.96) 100%);
}
.gc-galaxy-status-head{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.65rem 1rem;
  padding: 0.75rem 0.95rem 0.7rem;
  border-bottom: 1px solid rgba(70, 229, 255, 0.14);
  background: rgba(0, 0, 0, 0.22);
}
.gc-galaxy-status-head-copy{
  min-width: 0;
  flex: 1 1 auto;
}
.gc-galaxy-status-kicker{
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  margin: 0 0 0.2rem;
  font-size: 0.68rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gc-text-dim);
}
.gc-galaxy-status-live{
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: var(--gc-galaxy-status-accent);
  box-shadow: 0 0 8px color-mix(in srgb, var(--gc-galaxy-status-accent) 70%, transparent);
  flex-shrink: 0;
}
.gc-galaxy-status-title{
  margin: 0;
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--gc-text, #e8f0ff);
}
.gc-galaxy-status-cta{
  flex: 0 0 auto;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.gc-galaxy-status-body{
  display: grid;
  grid-template-columns: 1fr;
  gap: 0;
}
.gc-galaxy-status--cols-2 .gc-galaxy-status-body{
  grid-template-columns: 1fr 1fr;
}
.gc-galaxy-status-section{
  padding: 0.8rem 0.95rem 0.9rem;
  min-width: 0;
}
.gc-galaxy-status--cols-2 .gc-galaxy-status-section--directive{
  border-right: 1px solid rgba(70, 229, 255, 0.12);
}
.gc-galaxy-status-section-title{
  margin: 0 0 0.55rem;
  font-size: 0.66rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: color-mix(in srgb, var(--gc-galaxy-status-accent) 75%, var(--gc-text-dim));
}
.gc-galaxy-status-layers{
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.gc-galaxy-status-layer{
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(70, 229, 255, 0.16);
  border-left: 2px solid rgba(70, 229, 255, 0.45);
  background: rgba(3, 8, 18, 0.55);
}
.gc-galaxy-status-layer--secondary{
  border-left-style: dashed;
  opacity: 0.95;
}
.gc-galaxy-status-layer--emergency{
  border-color: rgba(255, 96, 96, 0.35);
  border-left-color: rgba(255, 96, 96, 0.75);
  background: rgba(40, 8, 12, 0.45);
}
.gc-galaxy-status-layer-label{
  display: block;
  margin-bottom: 0.15rem;
  font-size: 0.62rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gc-text-dim);
}
.gc-galaxy-status-layer-value{
  display: block;
  font-size: 0.98rem;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0.01em;
  color: var(--gc-text, #e8f0ff);
}
.gc-galaxy-status-layer-desc{
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
  line-height: 1.4;
  color: var(--gc-text-dim);
}
@media (max-width: 720px){
  .gc-galaxy-status--cols-2 .gc-galaxy-status-body{
    grid-template-columns: 1fr;
  }
  .gc-galaxy-status--cols-2 .gc-galaxy-status-section--directive{
    border-right: 0;
    border-bottom: 1px solid rgba(70, 229, 255, 0.12);
  }
  .gc-galaxy-status-head{
    align-items: stretch;
  }
  .gc-galaxy-status-cta{
    width: 100%;
    justify-content: center;
  }
}

/* Neutral chips shared with galactic-politics active row */
.gc-gd-chip{
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.15rem 0.5rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-panel-border-strong);
  background: rgba(3, 8, 18, 0.65);
  font-size: 0.76rem;
}
.gc-gd-chip-label{
  color: var(--gc-text-dim);
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.gc-gd-chip-value{
  font-weight: 700;
  color: var(--gc-text, #e8f0ff);
}
.gc-gd-chip--secondary{
  opacity: 0.92;
  border-style: dashed;
}

/* --- Planet Evolution --- */
.planet-evolution-page .pe-intro{
  margin-bottom: 1rem;
  padding: 0.85rem 1rem;
  border: 1px solid rgba(70, 229, 255, 0.22);
  background: rgba(70, 229, 255, 0.05);
}
.planet-evolution-page .pe-intro-title{
  margin: 0 0 0.5rem;
  font-size: 0.95rem;
  color: var(--gc-accent, #46e5ff);
}
.planet-evolution-page .pe-intro-list{
  margin: 0;
  padding-left: 1.15rem;
  font-size: 0.84rem;
  line-height: 1.5;
  color: var(--gc-text-muted, rgba(200, 220, 240, 0.85));
}
.planet-evolution-page .pe-intro-list li + li{
  margin-top: 0.35rem;
}
.planet-evolution-page .pe-trait-effects{
  list-style: none;
  margin: 0.45rem 0 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.planet-evolution-page .pe-trait-chip{
  display: inline-block;
  padding: 0.2rem 0.45rem;
  border-radius: var(--gc-radius-xs);
  font-size: 0.72rem;
  line-height: 1.3;
  border: 1px solid rgba(120, 190, 255, 0.28);
  background: rgba(8, 22, 38, 0.55);
}
.planet-evolution-page .pe-trait-chip-affinity{
  border-color: rgba(127, 255, 217, 0.35);
  color: rgba(180, 255, 230, 0.95);
}
.planet-evolution-page .pe-trait-chip-unlock{
  border-color: rgba(70, 229, 255, 0.35);
  color: rgba(180, 245, 255, 0.95);
}
.planet-evolution-page .pe-trait-chip-risk,
.planet-evolution-page .pe-trait-chip-block{
  border-color: rgba(255, 140, 100, 0.35);
  color: rgba(255, 200, 170, 0.95);
}
.planet-evolution-page .pe-trait-chip-bonus{
  border-color: rgba(200, 160, 255, 0.35);
  color: rgba(220, 200, 255, 0.95);
}
.planet-evolution-page .pe-highlight-pulse{
  animation: pe-highlight-pulse 2.4s ease-out 1;
  outline: 2px solid rgba(70, 229, 255, 0.55);
  outline-offset: 3px;
}
@keyframes pe-highlight-pulse{
  0%{ box-shadow: 0 0 0 0 rgba(70, 229, 255, 0.45); }
  40%{ box-shadow: 0 0 0 8px rgba(70, 229, 255, 0.12); }
  100%{ box-shadow: none; }
}
.planet-evolution-page .pe-switcher-body {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: stretch;
}
.planet-evolution-page .pe-planet-btn {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.15rem;
  min-width: 10rem;
  text-align: left;
}
.planet-evolution-page .pe-planet-btn.is-active {
  border-color: var(--gc-accent, #46e5ff);
  box-shadow: 0 0 0 1px rgba(70, 229, 255, 0.35);
}
.planet-evolution-page .pe-colonize-soon {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  opacity: 0.72;
  cursor: not-allowed;
}
.planet-evolution-page .pe-coming-soon-badge {
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 0.12rem 0.35rem;
  border-radius: 0.25rem;
  border: 1px solid rgba(255, 255, 255, 0.2);
  opacity: 0.9;
}
.planet-evolution-page .pe-planet-meta,
.planet-evolution-page .pe-planet-spec {
  font-size: 0.78rem;
  opacity: 0.75;
}
.planet-evolution-page .pe-expansion-gate,
.planet-evolution-page .pe-establishment {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.planet-evolution-page .pe-expansion-gate--discovered {
  border-color: rgba(70, 229, 255, 0.35);
  box-shadow: 0 0 0 1px rgba(70, 229, 255, 0.12);
}
.planet-evolution-page .pe-expansion-gate--locked {
  opacity: 0.92;
}
.planet-evolution-page .pe-expansion-gate-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
}
.planet-evolution-page .pe-expansion-gate-level {
  font-size: 0.82rem;
  opacity: 0.85;
}
.planet-evolution-page .pe-expansion-gate-hint {
  margin: 0;
}
.planet-evolution-page .pe-expansion-gate-body {
  padding: 0.75rem 0.85rem;
  border-radius: var(--gc-radius-sm, 6px);
  border: 1px solid var(--gc-panel-border);
  background: rgba(255, 255, 255, 0.03);
}
.planet-evolution-page .pe-expansion-gate-body--new {
  border-color: rgba(70, 229, 255, 0.28);
  background: rgba(70, 229, 255, 0.05);
}
.planet-evolution-page .pe-expansion-gate-body--locked {
  border-style: dashed;
  opacity: 0.88;
}
.planet-evolution-page .pe-expansion-gate-body--checklist {
  border-color: rgba(120, 200, 255, 0.22);
}
.planet-evolution-page .pe-expansion-gate-badge {
  display: inline-flex;
  align-items: center;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  margin-bottom: 0.35rem;
}
.planet-evolution-page .pe-expansion-gate-badge--new {
  color: rgba(120, 230, 255, 0.95);
}
.planet-evolution-page .pe-expansion-gate-badge--locked {
  font-size: 1rem;
  letter-spacing: 0;
  text-transform: none;
}
.planet-evolution-page .pe-expansion-gate-site {
  margin: 0 0 0.35rem;
  font-size: 1rem;
  font-weight: 600;
}
.planet-evolution-page .pe-expansion-gate-req {
  margin: 0.25rem 0 0;
  font-size: 0.88rem;
  opacity: 0.9;
}
.pe-expansion-checklist,
.gc-expansion-checklist-list {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0;
  display: grid;
  gap: 0.45rem;
}
.pe-expansion-checklist-item,
.gc-expansion-checklist-list .pe-expansion-checklist-item {
  display: grid;
  grid-template-columns: 1.25rem 1fr auto;
  gap: 0.35rem 0.5rem;
  align-items: baseline;
  font-size: 0.88rem;
  opacity: 0.82;
}
.pe-expansion-checklist-item--met,
.gc-expansion-checklist-list .pe-expansion-checklist-item--met {
  opacity: 1;
  color: rgba(160, 240, 200, 0.95);
}
.pe-expansion-checklist-mark {
  font-weight: 700;
  text-align: center;
}
.gc-expansion-checklist {
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--gc-panel-border);
}
.gc-expansion-checklist-title {
  margin: 0 0 0.35rem;
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.85;
}
.gc-world-inspector-colonize-blocked {
  margin: 0.35rem 0 0;
  width: 100%;
  text-align: center;
}
.pe-expansion-colonize-cta {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--gc-panel-border);
}
.galaxy-command-map-colonize-banner {
  border-color: rgba(70, 229, 255, 0.35);
  background: rgba(70, 229, 255, 0.08);
}
.galaxy-command-map-graph--colonize-mode .galaxy-command-map-node--colonize-target {
  outline: 2px solid rgba(70, 229, 255, 0.65);
  outline-offset: 2px;
  z-index: 2;
  animation: pe-highlight-pulse 2.4s ease-out infinite;
}
.galaxy-command-map-graph--colonize-mode .galaxy-command-map-node--world-field:not(.galaxy-command-map-node--colonize-target) {
  opacity: 0.42;
}
.planet-evolution-page .pe-main-grid {
  gap: 1rem;
}
.planet-evolution-page .pe-stat-list {
  margin: 0;
  display: grid;
  gap: 0.65rem;
}
.planet-evolution-page .pe-stat-row {
  display: grid;
  grid-template-columns: 8.5rem 1fr;
  gap: 0.75rem;
  align-items: start;
}
.planet-evolution-page .pe-stat-row dt {
  margin: 0;
  font-weight: 600;
  opacity: 0.85;
}
.planet-evolution-page .pe-stat-row dd {
  margin: 0;
}
.planet-evolution-page .pe-tag {
  display: inline-block;
  margin: 0.15rem 0.35rem 0.15rem 0;
  padding: 0.15rem 0.45rem;
  border-radius: var(--gc-radius-xs);
  border: 1px solid var(--gc-panel-border);
  background: rgba(70, 229, 255, 0.06);
  font-size: 0.82rem;
}
.planet-evolution-page .pe-tag-export {
  border-color: rgba(255, 196, 86, 0.35);
}
.planet-evolution-page .pe-tag-legacy {
  border-color: rgba(180, 140, 255, 0.35);
}
.planet-evolution-page .pe-event-box {
  margin-top: 0.85rem;
  padding: 0.85rem;
  border: 1px solid rgba(255, 120, 80, 0.35);
  border-radius: var(--gc-radius-sm, 6px);
  background: rgba(255, 80, 40, 0.06);
}
.planet-evolution-page .pe-event-title {
  font-weight: 700;
  margin-bottom: 0.5rem;
}
.planet-evolution-page .pe-event-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  align-items: center;
}
.planet-evolution-page .pe-alert-warn {
  margin-top: 0.75rem;
  padding: 0.6rem 0.75rem;
  border-radius: var(--gc-radius-xs);
  border: 1px solid rgba(255, 196, 86, 0.4);
  background: rgba(255, 196, 86, 0.08);
  font-size: 0.88rem;
}
.planet-evolution-page .pe-tech-locked {
  opacity: 0.55;
}
.planet-evolution-page .pe-tech-name {
  font-weight: 600;
}
.planet-evolution-page .pe-tech-desc,
.planet-evolution-page .pe-tech-missing {
  font-size: 0.78rem;
  margin-top: 0.2rem;
}
.planet-evolution-page .pe-tech-actions {
  white-space: nowrap;
}
.planet-evolution-page .pe-spec-body {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.planet-evolution-page .pe-page-header {
  margin-bottom: 0.75rem;
}
.planet-evolution-page .pe-hero {
  margin-bottom: 1rem;
  padding: 1rem 1.15rem;
}
.planet-evolution-page .pe-hero-top {
  display: grid;
  grid-template-columns: 1.4fr 1fr auto;
  gap: 1.25rem;
  align-items: start;
}
@media (max-width: 960px) {
  .planet-evolution-page .pe-hero-top {
    grid-template-columns: 1fr;
  }
}
.planet-evolution-page .pe-hero-title-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  margin-bottom: 0.35rem;
}
.planet-evolution-page .pe-hero-name {
  margin: 0;
  font-size: 1.35rem;
}
.planet-evolution-page .pe-badge {
  font-size: 0.72rem;
  padding: 0.12rem 0.45rem;
  border-radius: var(--gc-radius-pill);
  border: 1px solid var(--gc-panel-border);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.planet-evolution-page .pe-badge-home {
  border-color: rgba(70, 229, 255, 0.45);
  color: #8eefff;
}
.planet-evolution-page .pe-badge-spec {
  border-color: rgba(255, 196, 86, 0.45);
  color: #ffd98a;
}
.planet-evolution-page .pe-hero-level {
  font-size: 0.88rem;
  opacity: 0.85;
  margin-bottom: 0.65rem;
}
.planet-evolution-page .pe-xp-labels {
  display: flex;
  justify-content: space-between;
  font-size: 0.78rem;
  opacity: 0.8;
  margin-bottom: 0.35rem;
}
.planet-evolution-page .pe-xp-bar-fill {
  background: linear-gradient(90deg, rgba(255, 196, 86, 0.75), rgba(255, 140, 66, 0.85));
  box-shadow: 0 0 10px rgba(255, 196, 86, 0.25);
}
.planet-evolution-page .pe-progression-summary {
  margin: 0 0 0.75rem;
}
.planet-evolution-page .pe-research-zone .research-queue-list {
  margin-top: 0.35rem;
}
.planet-evolution-page .pe-research-unlock-hint {
  margin: 0.15rem 0 0.45rem;
}
.planet-evolution-page .pe-progress {
  height: 0.45rem;
  border-radius: var(--gc-radius-pill);
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}
.planet-evolution-page .pe-progress-fill {
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg, #46e5ff, #6b9dff);
  transition: width 0.25s ease;
}
.planet-evolution-page .pe-progress-good .pe-progress-fill {
  background: linear-gradient(90deg, #5fd67a, #46e5aa);
}
.planet-evolution-page .pe-progress-xp .pe-progress-fill {
  background: linear-gradient(90deg, #ffc456, #ff8c42);
}
.planet-evolution-page .pe-progress-research .pe-progress-fill {
  background: linear-gradient(90deg, #b48cff, #46e5ff);
}
.planet-evolution-page .pe-hero-metrics {
  display: grid;
  gap: 0.65rem;
}
.planet-evolution-page .pe-metric-label {
  display: block;
  font-size: 0.78rem;
  opacity: 0.75;
  margin-bottom: 0.2rem;
}
.planet-evolution-page .pe-metric-value {
  font-weight: 600;
}
.planet-evolution-page .pe-metric-pct {
  font-size: 0.78rem;
  opacity: 0.8;
}
.planet-evolution-page .pe-hero-score {
  text-align: right;
  min-width: 7rem;
}
.planet-evolution-page .pe-score-label {
  display: block;
  font-size: 0.78rem;
  opacity: 0.75;
}
.planet-evolution-page .pe-score-value {
  display: block;
  font-size: 1.6rem;
  font-weight: 700;
  color: #46e5ff;
}
.planet-evolution-page .pe-score-dna {
  display: block;
  font-size: 0.75rem;
  margin-top: 0.25rem;
}
.planet-evolution-page .pe-hero-location {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-top: 0.85rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--gc-panel-border);
  font-size: 0.82rem;
  opacity: 0.8;
}

.planet-evolution-page .pe-dashboard-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 17rem;
  gap: 1rem;
  align-items: start;
}
@media (max-width: 1100px) {
  .planet-evolution-page .pe-dashboard-layout {
    grid-template-columns: 1fr;
  }
}
.planet-evolution-page .pe-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-bottom: 0.85rem;
}
.planet-evolution-page .pe-tab {
  border: 1px solid var(--gc-panel-border);
  background: rgba(255, 255, 255, 0.03);
  color: inherit;
  padding: 0.45rem 0.75rem;
  border-radius: var(--gc-radius-sm);
  cursor: pointer;
  font-size: 0.85rem;
}
.planet-evolution-page .pe-tab.is-active {
  border-color: rgba(70, 229, 255, 0.5);
  background: rgba(70, 229, 255, 0.1);
}
.planet-evolution-page .pe-tab-badge {
  display: inline-block;
  margin-left: 0.35rem;
  padding: 0 0.35rem;
  border-radius: var(--gc-radius-pill);
  background: rgba(255, 120, 80, 0.85);
  color: #111;
  font-size: 0.72rem;
  font-weight: 700;
}
.planet-evolution-page .pe-tab-panel {
  padding: 0.15rem 0;
}
.planet-evolution-page .pe-stat-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 0.65rem;
  margin-bottom: 1rem;
}
.planet-evolution-page .pe-stat-card {
  padding: 0.75rem;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-bg-2);
}
.planet-evolution-page .pe-stat-card header {
  font-size: 0.78rem;
  opacity: 0.8;
  margin-bottom: 0.35rem;
}
.planet-evolution-page .pe-stat-numbers {
  font-weight: 600;
  margin-bottom: 0.45rem;
  font-size: 0.92rem;
}
.planet-evolution-page .pe-section {
  margin-bottom: 1rem;
}
.planet-evolution-page .pe-section-title {
  margin: 0 0 0.5rem;
  font-size: 0.92rem;
}
.planet-evolution-page .pe-research-job {
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  margin-bottom: 0.5rem;
  background: var(--gc-panel-bg-2);
}
.planet-evolution-page .pe-research-job-head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
  font-size: 0.88rem;
}
.planet-evolution-page .pe-locked-list {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.35rem;
}
.planet-evolution-page .pe-locked-name {
  font-weight: 600;
}

.planet-evolution-page .pe-trait-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
  gap: 0.65rem;
}
.planet-evolution-page .pe-trait-card {
  padding: 0.75rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-panel-border);
}
.planet-evolution-page .pe-trait-positive {
  border-color: rgba(95, 214, 122, 0.4);
  background: rgba(4, 18, 10, 0.92);
}
.planet-evolution-page .pe-trait-negative {
  border-color: rgba(255, 120, 80, 0.4);
  background: rgba(22, 8, 6, 0.92);
}
.planet-evolution-page .pe-trait-rare {
  border-color: rgba(180, 140, 255, 0.45);
  background: rgba(12, 8, 22, 0.92);
}
.planet-evolution-page .pe-trait-card header {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.4rem;
}
.planet-evolution-page .pe-trait-name {
  font-weight: 700;
  font-size: 0.9rem;
}
.planet-evolution-page .pe-trait-rarity {
  font-size: 0.72rem;
  opacity: 0.75;
}
.planet-evolution-page .pe-trait-effect {
  margin: 0;
  font-size: 0.82rem;
  opacity: 0.9;
}

.planet-evolution-page .pe-events-feed,
.planet-evolution-page .pe-history-list,
.planet-evolution-page .pe-policy-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.5rem;
}
.planet-evolution-page .pe-event-item,
.planet-evolution-page .pe-history-item,
.planet-evolution-page .pe-policy-item {
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-bg-2);
}
.planet-evolution-page .pe-policy-slot-card {
  margin-bottom: 0.75rem;
}
.planet-evolution-page .pe-policy-slot-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.5rem;
}
.planet-evolution-page .pe-policy-slot-head h4 {
  margin: 0;
}
.planet-evolution-page .pe-policy-options {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}
.planet-evolution-page .pe-policy-archetype {
  margin-bottom: 0.75rem;
}
.planet-evolution-page .pe-inline-header {
  margin-bottom: 0.5rem;
}

.planet-evolution-page .pe-sidebar {
  display: grid;
  gap: 0.75rem;
}
.planet-evolution-page .pe-sidebar-panel .gc-panel-body {
  display: grid;
  gap: 0.45rem;
}
.planet-evolution-page .pe-sidebar-policy {
  padding: 0.45rem 0.55rem;
  border-radius: var(--gc-radius-xs);
  border: 1px solid var(--gc-panel-border);
  font-size: 0.85rem;
}
.planet-evolution-page .pe-spec-active {
  font-weight: 700;
}
.planet-evolution-page .pe-warning {
  padding: 0.45rem 0.55rem;
  border-radius: var(--gc-radius-xs);
  font-size: 0.82rem;
  margin-bottom: 0.35rem;
}
.planet-evolution-page .pe-warning-warn {
  border: 1px solid rgba(255, 196, 86, 0.4);
  background: rgba(255, 196, 86, 0.08);
}
.planet-evolution-page .pe-warning-critical {
  border: 1px solid rgba(255, 80, 80, 0.45);
  background: rgba(255, 80, 80, 0.08);
}

/* Planet Evolution ? gameplay-first layout */
.planet-evolution-page .pe-hero {
  margin-bottom: 1rem;
  padding: 1.15rem 1.25rem;
  border: 1px solid rgba(70, 229, 255, 0.22);
  box-shadow: var(--gc-border-glow);
}
.planet-evolution-page .pe-hero-top {
  display: flex;
  justify-content: space-between;
  gap: 1.25rem;
  flex-wrap: wrap;
  align-items: flex-start;
}
.planet-evolution-page .pe-hero-name {
  margin: 0;
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  line-height: 1.15;
  letter-spacing: -0.01em;
}
.planet-evolution-page .pe-hero-title-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  align-items: center;
  margin-bottom: 0.4rem;
}
.planet-evolution-page .pe-hero-meta {
  margin: 0;
  font-size: 0.82rem;
  opacity: 0.82;
}
.planet-evolution-page .pe-badge {
  font-size: 0.68rem;
  padding: 0.18rem 0.55rem;
  border-radius: var(--gc-radius-pill);
  border: 1px solid var(--gc-panel-border);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 700;
}
.planet-evolution-page .pe-badge-home {
  border-color: rgba(70, 229, 255, 0.45);
  color: #8eefff;
  background: rgba(70, 229, 255, 0.08);
}
.planet-evolution-page .pe-badge-spec {
  border-color: rgba(180, 140, 255, 0.45);
  color: #cdb8ff;
}
.planet-evolution-page .pe-badge-status-stable {
  border-color: rgba(95, 214, 122, 0.45);
  color: #9ae8a8;
}
.planet-evolution-page .pe-badge-status-pressure {
  border-color: rgba(255, 196, 86, 0.45);
  color: #ffd98a;
}
.planet-evolution-page .pe-badge-status-crisis {
  border-color: rgba(255, 80, 80, 0.5);
  color: #ff9a9a;
}
.planet-evolution-page .pe-hero-score {
  text-align: right;
  min-width: 6rem;
}
.planet-evolution-page .pe-hero-progress {
  margin-top: 1rem;
  padding-top: 0.85rem;
  border-top: 1px solid var(--gc-panel-border);
}
.planet-evolution-page .pe-hero-warnings {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.85rem;
}
.planet-evolution-page .pe-warning-chip {
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-pill);
  background: rgba(255, 255, 255, 0.04);
  color: inherit;
  font-size: 0.75rem;
  padding: 0.25rem 0.65rem;
  cursor: pointer;
}
.planet-evolution-page .pe-warning-warn {
  border-color: rgba(255, 196, 86, 0.4);
  color: #ffd98a;
}
.planet-evolution-page .pe-warning-critical {
  border-color: rgba(255, 80, 80, 0.45);
  color: #ff9a9a;
}

.planet-evolution-page .pe-next-evolution {
  margin-bottom: 1.25rem;
  border-left: 3px solid var(--gc-accent, #46e5ff);
}
.planet-evolution-page .pe-next-head {
  margin-bottom: 0.35rem;
}
.planet-evolution-page .pe-next-priority {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.75;
}
.planet-evolution-page .pe-next-body {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 1.25rem;
  align-items: start;
}
@media (max-width: 900px) {
  .planet-evolution-page .pe-next-body,
  .planet-evolution-page .pe-traits-split {
    grid-template-columns: 1fr;
  }
}
.planet-evolution-page .pe-next-title {
  margin: 0 0 0.45rem;
  font-size: 1.25rem;
}
.planet-evolution-page .pe-next-desc {
  margin: 0 0 0.75rem;
  font-size: 0.92rem;
  line-height: 1.45;
  max-width: 42rem;
}
.planet-evolution-page .pe-next-unlock {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  margin-bottom: 1rem;
  padding: 0.55rem 0.7rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.2);
  background: rgba(70, 229, 255, 0.05);
}
.planet-evolution-page .pe-next-unlock-label {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.72;
}
.planet-evolution-page .pe-next-unlock-value {
  font-size: 0.88rem;
  font-weight: 600;
}
.planet-evolution-page .pe-next-cta {
  min-width: 12rem;
}
.planet-evolution-page .pe-next-event,
.planet-evolution-page .pe-next-running,
.planet-evolution-page .pe-next-identity {
  padding: 0.85rem 1rem;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  background: rgba(0, 0, 0, 0.18);
}
.planet-evolution-page .pe-next-event {
  border-color: rgba(255, 120, 80, 0.45);
}
.planet-evolution-page .pe-next-event h4 {
  margin: 0.25rem 0 0.65rem;
}
.planet-evolution-page .pe-next-running-label {
  display: block;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.75;
  margin-bottom: 0.5rem;
}

.planet-evolution-page .pe-traits-play {
  margin-bottom: 1.25rem;
}
.planet-evolution-page .pe-section-head {
  margin-bottom: 0.75rem;
}
.planet-evolution-page .pe-section-title {
  margin: 0;
  font-size: 1.05rem;
}
.planet-evolution-page .pe-traits-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}
.planet-evolution-page .pe-traits-col-title {
  margin: 0 0 0.65rem;
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.planet-evolution-page .pe-traits-col-strengths {
  color: #9ae8a8;
}
.planet-evolution-page .pe-traits-col-weaknesses {
  color: #ff9a9a;
}
.planet-evolution-page .pe-traits-col-grid {
  display: grid;
  gap: 0.65rem;
}
.planet-evolution-page .pe-trait-play-card {
  padding: 0.85rem 1rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-panel-border);
  min-height: 5.5rem;
}
.planet-evolution-page .pe-trait-play-positive,
.planet-evolution-page .pe-trait-play-rare {
  border-color: rgba(95, 214, 122, 0.35);
  background: linear-gradient(135deg, rgba(95, 214, 122, 0.08), rgba(0, 0, 0, 0.12));
}
.planet-evolution-page .pe-trait-play-negative {
  border-color: rgba(255, 120, 80, 0.35);
  background: linear-gradient(135deg, rgba(255, 120, 80, 0.08), rgba(0, 0, 0, 0.12));
}
.planet-evolution-page .pe-trait-play-neutral {
  border-color: rgba(70, 229, 255, 0.25);
}
.planet-evolution-page .pe-trait-play-name {
  margin: 0 0 0.45rem;
  font-size: 1rem;
  font-weight: 700;
}
.planet-evolution-page .pe-trait-play-effects {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.planet-evolution-page .pe-trait-effect-line {
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.35;
}
.planet-evolution-page .pe-trait-play-effect {
  margin: 0;
  font-size: 0.88rem;
  font-weight: 600;
}

.planet-evolution-page .pe-dev-path,
.planet-evolution-page .pe-dev-research {
  margin-bottom: 1rem;
}
.planet-evolution-page .pe-path-active-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1rem;
}
.planet-evolution-page .pe-path-pick-lead {
  margin: 0 0 0.85rem;
  font-size: 0.92rem;
}
.planet-evolution-page .pe-path-tree {
  display: grid;
  gap: 0;
  position: relative;
}
.planet-evolution-page .pe-path-node {
  display: grid;
  grid-template-columns: 1.75rem 1fr;
  gap: 0.65rem;
  padding-bottom: 0.75rem;
}
.planet-evolution-page .pe-path-node-rail {
  display: flex;
  flex-direction: column;
  align-items: center;
}
.planet-evolution-page .pe-path-node-dot {
  width: 0.85rem;
  height: 0.85rem;
  border-radius: 50%;
  border: 2px solid var(--gc-panel-border);
  background: rgba(0, 0, 0, 0.35);
  flex-shrink: 0;
}
.planet-evolution-page .pe-path-node:not(:last-child) .pe-path-node-rail::after {
  content: "";
  flex: 1;
  width: 2px;
  margin-top: 0.25rem;
  background: var(--gc-panel-border);
}
.planet-evolution-page .pe-path-node.is-unlocked .pe-path-node-dot {
  border-color: rgba(95, 214, 122, 0.7);
  background: rgba(95, 214, 122, 0.35);
  box-shadow: 0 0 10px rgba(95, 214, 122, 0.35);
}
.planet-evolution-page .pe-path-node.is-next .pe-path-node-dot {
  border-color: rgba(255, 196, 86, 0.8);
  background: rgba(255, 196, 86, 0.35);
  box-shadow: 0 0 12px rgba(255, 196, 86, 0.35);
}
.planet-evolution-page .pe-path-node.is-locked {
  opacity: 0.55;
}
.planet-evolution-page .pe-path-node-body {
  padding: 0.55rem 0.75rem;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  background: rgba(255, 255, 255, 0.02);
}
.planet-evolution-page .pe-path-node.is-unlocked .pe-path-node-body {
  border-color: rgba(95, 214, 122, 0.3);
}
.planet-evolution-page .pe-path-node.is-next .pe-path-node-body {
  border-color: rgba(255, 196, 86, 0.35);
}
.planet-evolution-page .pe-path-node-head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
  font-weight: 700;
  font-size: 0.88rem;
}
.planet-evolution-page .pe-path-node-state {
  color: #9ae8a8;
  font-size: 0.75rem;
  text-transform: uppercase;
}
.planet-evolution-page .pe-path-node-req {
  font-size: 0.75rem;
  opacity: 0.75;
}
.planet-evolution-page .pe-path-node-unlocks {
  margin: 0;
  padding-left: 1rem;
  font-size: 0.85rem;
}
.planet-evolution-page .pe-path-node-summary {
  margin: 0;
  font-size: 0.85rem;
  opacity: 0.88;
}
.planet-evolution-page .pe-path-tree-compact .pe-path-node {
  padding-bottom: 0.45rem;
}
.planet-evolution-page .pe-path-upgrade {
  margin-top: 0.85rem;
}
.planet-evolution-page .pe-path-locked {
  padding: 0.5rem 0;
}
.planet-evolution-page .pe-path-locked-bar {
  margin-bottom: 0.65rem;
}
.planet-evolution-page .pe-spec-card-play {
  padding: 1rem;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  background: rgba(0, 0, 0, 0.15);
}
.planet-evolution-page .pe-spec-card-play .pe-spec-btn {
  width: 100%;
  margin-top: 0.75rem;
}

.planet-evolution-page .pe-research-prog-list {
  margin-top: 0.35rem;
}
.planet-evolution-page .pe-research-prog-list .gc-prog-head {
  grid-template-columns: 2fr 1.1fr 0.75fr 0.9fr;
}
.planet-evolution-page .pe-research-prog-main {
  grid-template-columns: 2fr 1.1fr 0.75fr 0.9fr;
}
.planet-evolution-page .pe-research-row-meta {
  padding: 0 0.75rem 0.65rem 3.25rem;
}
.planet-evolution-page .pe-research-choice-row .pe-research-actions {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.planet-evolution-page .pe-research-queue {
  margin-bottom: 0.75rem;
}

.planet-evolution-page .pe-fold {
  margin-bottom: 0.65rem;
}
.planet-evolution-page .pe-fold-summary {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  cursor: pointer;
  font-weight: 600;
  padding: 0.15rem 0;
  list-style: none;
}
.planet-evolution-page .pe-fold-summary::-webkit-details-marker {
  display: none;
}
.planet-evolution-page .pe-fold-badge {
  font-size: 0.68rem;
  padding: 0.1rem 0.45rem;
  border-radius: var(--gc-radius-pill);
  border: 1px solid rgba(70, 229, 255, 0.35);
  color: var(--gc-accent, #46e5ff);
}
.planet-evolution-page .pe-fold-meta {
  font-size: 0.78rem;
  opacity: 0.7;
  margin-left: auto;
}
.planet-evolution-page .pe-fold-body {
  padding-top: 0.75rem;
  border-top: 1px solid var(--gc-panel-border);
  margin-top: 0.55rem;
}

.planet-evolution-page .pe-section-block {
  margin-bottom: 1.25rem;
}
.planet-evolution-page .pe-flow-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.35rem;
}
.planet-evolution-page .pe-flow-item {
  padding: 0.35rem 0.5rem;
  border-radius: var(--gc-radius-xs);
  font-size: 0.85rem;
}
.planet-evolution-page .pe-flow-ok {
  border-left: 3px solid rgba(95, 214, 122, 0.6);
}
.planet-evolution-page .pe-deficit {
  margin-bottom: 0.5rem;
  font-size: 0.85rem;
}
.planet-evolution-page .pe-deficit-warn {
  color: #ffd98a;
}
.planet-evolution-page .pe-deficit-critical {
  color: #ff9a9a;
}
.planet-evolution-page .pe-spec-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr));
  gap: 0.75rem;
}
.planet-evolution-page .pe-spec-card {
  padding: 1rem;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm, 6px);
}
.planet-evolution-page .pe-spec-card h4 {
  margin: 0 0 0.5rem;
}
.planet-evolution-page .pe-spec-hero {
  border: 1px solid rgba(70, 229, 255, 0.2);
}
.planet-evolution-page .pe-spec-active-head {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 0.75rem;
}
.planet-evolution-page .pe-spec-active-name {
  margin: 0;
  font-size: 1.35rem;
}
.planet-evolution-page .pe-spec-tagline {
  margin: 0.25rem 0 0;
  opacity: 0.85;
  font-size: 0.92rem;
}
.planet-evolution-page .pe-spec-tier-badge {
  padding: 0.35rem 0.65rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid var(--gc-panel-border);
  font-weight: 600;
  white-space: nowrap;
}
.planet-evolution-page .pe-spec-identity {
  margin: 0 0 1rem;
  line-height: 1.45;
}
.planet-evolution-page .pe-spec-roadmap {
  display: grid;
  gap: 0.55rem;
  margin-bottom: 1rem;
}
.planet-evolution-page .pe-spec-roadmap-step {
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  opacity: 0.55;
}
.planet-evolution-page .pe-spec-roadmap-step.is-unlocked {
  opacity: 1;
  border-color: rgba(95, 214, 122, 0.35);
  background: rgba(95, 214, 122, 0.05);
}
.planet-evolution-page .pe-spec-roadmap-step.is-next {
  opacity: 1;
  border-color: rgba(255, 196, 86, 0.4);
}
.planet-evolution-page .pe-spec-roadmap-head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.25rem;
  font-weight: 600;
}
.planet-evolution-page .pe-spec-unlock-list {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.85rem;
}
.planet-evolution-page .pe-spec-upgrade {
  padding: 0.75rem;
  border-radius: var(--gc-radius-sm);
  border: 1px dashed rgba(70, 229, 255, 0.35);
  margin-bottom: 0.75rem;
}
.planet-evolution-page .pe-spec-card-head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: start;
}
.planet-evolution-page .pe-spec-match {
  font-size: 0.68rem;
  text-transform: uppercase;
  color: #9ae8a8;
  white-space: nowrap;
}
.planet-evolution-page .pe-spec-preview-tiers {
  display: grid;
  gap: 0.35rem;
  margin: 0.65rem 0;
}
.planet-evolution-page .pe-spec-preview-tier {
  font-size: 0.82rem;
}
.planet-evolution-page .pe-spec-preview-tier-label {
  font-weight: 600;
  margin-right: 0.35rem;
}
.planet-evolution-page .pe-spec-locked-details {
  margin-top: 0.75rem;
}
.planet-evolution-page .pe-spec-locked-list {
  margin: 0.5rem 0 0;
  padding-left: 1.1rem;
}
.planet-evolution-page .pe-secondary-nav {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin: 1.25rem 0 0.75rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--gc-panel-border);
}
.planet-evolution-page .pe-sec-tab {
  border: 1px solid var(--gc-panel-border);
  background: rgba(255, 255, 255, 0.03);
  color: inherit;
  padding: 0.45rem 0.8rem;
  border-radius: var(--gc-radius-sm);
  cursor: pointer;
  font-size: 0.85rem;
}
.planet-evolution-page .pe-sec-tab.is-active {
  border-color: rgba(70, 229, 255, 0.5);
  background: rgba(70, 229, 255, 0.1);
}
.planet-evolution-page .pe-research-zone {
  margin-bottom: 1rem;
}
.planet-evolution-page .pe-research-zone h4 {
  margin: 0 0 0.5rem;
  font-size: 0.88rem;
  opacity: 0.85;
}
.planet-evolution-page .pe-research-card {
  padding: 0.85rem 1rem;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  margin-bottom: 0.5rem;
}
.planet-evolution-page .pe-research-meta {
  margin: 0.35rem 0 0.6rem;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.planet-evolution-page .pe-research-missing {
  color: var(--ogx-warn, #e8a317);
}
.planet-evolution-page .pe-research-card h5 {
  margin: 0 0 0.35rem;
}
.planet-evolution-page .pe-research-unlock {
  margin: 0 0 0.65rem;
  font-size: 0.85rem;
}
.planet-evolution-page .pe-research-locked {
  opacity: 0.7;
}
.planet-evolution-page .pe-research-later summary {
  cursor: pointer;
  margin-bottom: 0.5rem;
  opacity: 0.85;
}
.planet-evolution-page .pe-req-list {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.8rem;
}
.planet-evolution-page .pe-event-decision {
  padding: 1rem;
  margin-bottom: 1rem;
  border: 1px solid rgba(255, 120, 80, 0.4);
}
.planet-evolution-page .pe-event-urgent {
  display: inline-block;
  font-size: 0.7rem;
  text-transform: uppercase;
  color: #ff9a7a;
  margin-bottom: 0.35rem;
}
.planet-evolution-page .pe-event-state {
  font-size: 0.78rem;
  opacity: 0.7;
}
.planet-evolution-page .pe-empty-state,
.planet-evolution-page .pe-empty-inline {
  font-size: 0.88rem;
  opacity: 0.85;
}
.planet-evolution-page .pe-legacy-block {
  margin-top: 1rem;
  padding-top: 0.75rem;
  border-top: 1px solid var(--gc-panel-border);
}
@media (max-width: 768px) {
  .planet-evolution-page .pe-traits-col-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 0.65rem;
    padding-bottom: 0.35rem;
  }
  .planet-evolution-page .pe-trait-play-card {
    flex: 0 0 85%;
    scroll-snap-align: start;
  }
  .planet-evolution-page .pe-research-prog-list .gc-prog-head {
    display: none;
  }
  .planet-evolution-page .pe-research-prog-main {
    grid-template-columns: 1fr;
    gap: 0.5rem;
  }
}

/* Planet Evolution ? compact card dashboard */
.planet-evolution-page.pe-dashboard,
.planet-evolution-page .pe-dashboard-grid {
  min-width: 0;
  max-width: 100%;
}
.planet-evolution-page.pe-dashboard {
  overflow-x: clip;
}
.planet-evolution-page .pe-hero-head {
  margin-bottom: 0.35rem;
}
.planet-evolution-page .pe-hero-title-row--page {
  margin-bottom: 0.65rem;
}
.planet-evolution-page .pe-hero-page-title {
  margin: 0;
  font-size: clamp(1.15rem, 2.5vw, 1.45rem);
}
.planet-evolution-page .pe-hero-help {
  margin: 0.65rem 0 0;
  font-size: 0.78rem;
  opacity: 0.82;
}
.planet-evolution-page .pe-activity-xp {
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(120, 190, 255, 0.1);
}
.planet-evolution-page .pe-activity-xp-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  align-items: center;
}
.planet-evolution-page .pe-activity-xp-stat {
  font-size: 0.78rem;
  font-weight: 600;
}
.planet-evolution-page .pe-activity-xp-tip {
  margin: 0.35rem 0 0;
  font-size: 0.72rem;
  opacity: 0.78;
}
.planet-evolution-page .pe-hero {
  margin-bottom: 0.75rem;
  padding: 0.85rem 1rem;
}
.planet-evolution-page .pe-hero-progress {
  margin-top: 0.65rem;
  padding-top: 0.65rem;
}
.planet-evolution-page .pe-stat-card {
  margin-bottom: 0.75rem;
  padding: 0.75rem 0.9rem;
  min-width: 0;
}
.planet-evolution-page .pe-stat-card--wide {
  grid-column: 1 / -1;
}
.planet-evolution-page .pe-stat-card .pe-expansion-gate-body,
.planet-evolution-page .pe-stat-card .pe-expansion-checklist {
  margin-top: 0.35rem;
}
.planet-evolution-page .pe-dashboard-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.75rem;
  align-items: start;
  margin-bottom: 0.75rem;
}
.planet-evolution-page .pe-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  padding: 0;
  overflow: hidden;
}
.planet-evolution-page .pe-card__title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.65rem 0.85rem;
  border-bottom: 1px solid var(--gc-panel-border);
  font-size: 0.82rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}
.planet-evolution-page .pe-card__meta {
  font-size: 0.72rem;
  font-weight: 600;
  opacity: 0.75;
  white-space: nowrap;
}
.planet-evolution-page .pe-card__body {
  flex: 1 1 auto;
  min-width: 0;
  padding: 0.65rem 0.85rem;
}
.planet-evolution-page .pe-card__body--scroll {
  max-height: min(22rem, 42vh);
  overflow-x: hidden;
  overflow-y: auto;
}
.planet-evolution-page .pe-card__hint {
  margin: 0 0 0.35rem;
  font-size: 0.76rem;
  line-height: 1.35;
}
.planet-evolution-page .pe-card__lead {
  margin: 0 0 0.35rem;
  font-weight: 700;
  font-size: 0.92rem;
}
.planet-evolution-page .pe-card__text {
  margin: 0 0 0.45rem;
  font-size: 0.82rem;
  line-height: 1.4;
}
.planet-evolution-page .pe-card__empty {
  margin: 0;
  font-size: 0.82rem;
  opacity: 0.8;
}
.planet-evolution-page .pe-card__action {
  padding: 0.55rem 0.85rem 0.75rem;
  border-top: 1px solid rgba(120, 190, 255, 0.08);
}
.planet-evolution-page .pe-card__action .gc-btn {
  width: 100%;
}
.planet-evolution-page .pe-card--wide {
  grid-column: 1 / -1;
}
.planet-evolution-page .pe-card-details {
  margin-top: 0.55rem;
}
.planet-evolution-page .pe-card-details > summary {
  cursor: pointer;
  list-style: none;
}
.planet-evolution-page .pe-card-details > summary::-webkit-details-marker {
  display: none;
}
.planet-evolution-page .pe-traits-compact {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.planet-evolution-page .pe-trait-chip-positive {
  border-color: rgba(95, 214, 122, 0.45);
  color: #b8f0c4;
}
.planet-evolution-page .pe-trait-chip-negative {
  border-color: rgba(255, 120, 80, 0.45);
  color: #ffb8a8;
}
.planet-evolution-page .pe-events-feed--compact {
  gap: 0.35rem;
}
.planet-evolution-page .pe-events-feed--compact .pe-event-item {
  padding: 0.45rem 0.55rem;
  font-size: 0.8rem;
}
.planet-evolution-page .pe-queue-compact--card {
  margin-bottom: 0.45rem;
  padding: 0.35rem 0.45rem;
  border-radius: var(--gc-radius-xs);
  border: 1px solid rgba(120, 190, 255, 0.12);
  background: rgba(0, 0, 0, 0.16);
}
.planet-evolution-page .pe-card--research .gc-prog-head {
  display: none;
}
.planet-evolution-page .pe-card--research .pe-research-prog-main {
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas:
    "name name"
    "costs action";
  gap: 0.35rem 0.5rem;
}
.planet-evolution-page .pe-card--research .gc-prog-name-wrap,
.planet-evolution-page .pe-card--research .gc-prog-identity {
  grid-area: name;
}
.planet-evolution-page .pe-card--research .gc-prog-costs {
  grid-area: costs;
}
.planet-evolution-page .pe-card--research .gc-prog-time {
  display: none;
}
.planet-evolution-page .pe-card--research .gc-prog-action {
  grid-area: action;
  justify-self: end;
}
.planet-evolution-page .pe-card--research .gc-prog-card {
  padding: 0.35rem 0.45rem;
}
.planet-evolution-page .pe-card--research .gc-prog-desc {
  display: none;
}
.planet-evolution-page .pe-spec-grid--compact {
  grid-template-columns: 1fr;
  gap: 0.45rem;
}
.planet-evolution-page .pe-spec-grid--compact .pe-spec-card {
  padding: 0.55rem 0.65rem;
}
.planet-evolution-page .pe-ascension-grid--compact {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(9rem, 1fr));
  gap: 0.45rem;
}
.planet-evolution-page .pe-card--action .pe-next-priority {
  font-size: 0.65rem;
}
.planet-evolution-page .pe-card--events .pe-next-event {
  padding: 0.55rem 0.65rem;
  margin: 0;
}
.planet-evolution-page .pe-card--events .pe-event-actions {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.planet-evolution-page .pe-card--events .pe-event-actions .gc-btn {
  width: 100%;
}
@media (max-width: 1024px) {
  .planet-evolution-page .pe-dashboard-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (max-width: 640px) {
  .planet-evolution-page .pe-dashboard-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .planet-evolution-page .pe-card__body--scroll {
    max-height: none;
  }
}

/* Planet Evolution ? progression journey layout */
.planet-evolution-page.pe-journey {
  overflow-x: clip;
}
.planet-evolution-page .pe-journey {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  min-width: 0;
}
.planet-evolution-page .pe-zone {
  position: relative;
  padding: 1rem 1.15rem;
  min-width: 0;
  border: 1px solid rgba(70, 229, 255, 0.14);
  background:
    linear-gradient(165deg, rgba(8, 18, 36, 0.92), rgba(4, 10, 22, 0.88)),
    radial-gradient(ellipse 80% 60% at 50% 0%, rgba(70, 229, 255, 0.06), transparent 70%);
  box-shadow: inset 0 1px 0 rgba(120, 190, 255, 0.08);
}
.planet-evolution-page .pe-zone-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}
.planet-evolution-page .pe-zone-head-main {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}
.planet-evolution-page .pe-zone-subline {
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.35;
  color: var(--gc-text-dim);
}
.planet-evolution-page .pe-zone-title {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.planet-evolution-page .pe-zone-meta {
  font-size: 0.72rem;
  opacity: 0.78;
}
.planet-evolution-page .pe-zone-lead {
  margin: 0 0 0.65rem;
  font-size: 0.88rem;
}
.planet-evolution-page .pe-zone-empty {
  margin: 0;
  font-size: 0.82rem;
  opacity: 0.78;
}
.planet-evolution-page .pe-zone-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  cursor: pointer;
  list-style: none;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.88rem;
}
.planet-evolution-page .pe-zone-summary::-webkit-details-marker {
  display: none;
}
.planet-evolution-page .pe-zone-body {
  margin-top: 0.85rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(120, 190, 255, 0.1);
}

/* Hero monolith */
.planet-evolution-page .pe-hero-monolith {
  position: relative;
  padding: 0.85rem 1rem;
  overflow: visible;
  border-color: rgba(255, 196, 86, 0.22);
  background:
    linear-gradient(145deg, rgba(12, 24, 48, 0.96), rgba(6, 12, 28, 0.94)),
    radial-gradient(ellipse 90% 70% at 15% 20%, rgba(255, 196, 86, 0.08), transparent 55%),
    radial-gradient(ellipse 60% 50% at 85% 80%, rgba(70, 229, 255, 0.07), transparent 60%);
}
.planet-evolution-page .pe-hero-monolith-glow {
  position: absolute;
  inset: -40% -20% auto;
  height: 70%;
  background: radial-gradient(ellipse at 30% 50%, rgba(255, 196, 86, 0.12), transparent 65%);
  pointer-events: none;
  animation: pe-hero-glow-pulse 6s ease-in-out infinite;
}
@keyframes pe-hero-glow-pulse {
  0%, 100% { opacity: 0.55; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
}
.planet-evolution-page .pe-hero-monolith-body {
  position: relative;
  display: grid;
  grid-template-columns: minmax(6.5rem, 9rem) minmax(0, 1fr);
  gap: 0.85rem;
  align-items: start;
  overflow: visible;
  min-width: 0;
}
.planet-evolution-page .pe-hero-content-col {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-width: 0;
}
.planet-evolution-page .pe-hero-mid-row {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr);
  gap: 0.65rem;
  align-items: start;
  min-width: 0;
}
.planet-evolution-page .pe-hero-bonuses-inline {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  min-width: 0;
  padding-left: 0.65rem;
  border-left: 1px solid rgba(120, 190, 255, 0.12);
}
.planet-evolution-page .pe-hero-monolith-primary {
  display: contents;
}
.planet-evolution-page .pe-hero-monolith-grid {
  position: relative;
  display: grid;
  grid-template-columns: minmax(6.5rem, 9rem) minmax(0, 1fr);
  gap: 0.85rem;
  align-items: center;
  overflow: visible;
}
.planet-evolution-page .pe-hero-visual-col {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.3rem;
  min-width: 0;
  position: relative;
  overflow: visible;
}
.planet-evolution-page button.pe-hero-visual {
  appearance: none;
  border: none;
  padding: 0;
  background: transparent;
  cursor: pointer;
  border-radius: 50%;
  transition: transform 0.18s ease, filter 0.18s ease;
}
.planet-evolution-page button.pe-hero-visual:hover {
  transform: scale(1.03);
  filter: brightness(1.08);
}
.planet-evolution-page button.pe-hero-visual:focus-visible {
  outline: 2px solid rgba(70, 229, 255, 0.65);
  outline-offset: 3px;
}
.planet-evolution-page .pe-hero-visual--pending .pe-hero-visual-frame {
  animation: pe-planet-pulse 2.4s ease-in-out infinite;
  box-shadow: 0 0 20px rgba(255, 196, 86, 0.35), inset 0 0 16px rgba(255, 196, 86, 0.12);
}
@keyframes pe-planet-pulse {
  0%, 100% { box-shadow: 0 0 14px rgba(255, 196, 86, 0.22), inset 0 0 12px rgba(255, 196, 86, 0.08); }
  50% { box-shadow: 0 0 24px rgba(255, 196, 86, 0.42), inset 0 0 18px rgba(255, 196, 86, 0.14); }
}
.planet-evolution-page .pe-hero-expansion-hint {
  font-size: 0.62rem;
  line-height: 1.25;
  text-align: center;
  opacity: 0.72;
  max-width: 8.5rem;
}
.planet-evolution-page .pe-hero-planet-hint {
  font-size: 0.62rem;
  line-height: 1.25;
  text-align: center;
  opacity: 0.72;
  max-width: 8.5rem;
}
button.pe-hero-planet-hint {
  appearance: none;
  border: none;
  background: transparent;
  padding: 0;
  margin: 0;
  cursor: pointer;
  color: inherit;
  font: inherit;
}
button.pe-hero-planet-hint:hover {
  opacity: 1;
}
button.pe-hero-planet-hint:focus-visible {
  outline: 2px solid rgba(70, 229, 255, 0.55);
  outline-offset: 2px;
  border-radius: var(--gc-radius-xs);
}
.planet-evolution-page .pe-expansion-drawer-toggle.is-open.pe-hero-visual .pe-hero-visual-frame,
.planet-evolution-page .pe-hero-visual.pe-expansion-drawer-toggle.is-open .pe-hero-visual-frame {
  border-color: rgba(255, 196, 86, 0.55);
}
.planet-evolution-page .pe-planet-details-popover,
.pe-planet-details-popover {
  box-sizing: border-box;
  max-width: 320px;
  max-height: min(70vh, 420px);
  overflow-x: hidden;
  overflow-y: auto;
  white-space: normal;
  word-break: normal;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(70, 229, 255, 0.28);
  background: var(--gc-panel-bg, rgba(8, 16, 32, 0.98));
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
}
.planet-evolution-page .pe-planet-details-popover:not(.gc-popover-layer),
.pe-planet-details-popover:not(.gc-popover-layer) {
  position: absolute;
  z-index: var(--gc-z-popover, 12050);
  left: calc(100% + 12px);
  top: 50%;
  transform: translateY(-50%);
  width: min(320px, calc(100vw - 24px));
}
.pe-planet-details-popover.gc-popover-layer {
  position: fixed;
  z-index: var(--gc-z-popover, 12050);
  width: min(320px, calc(100vw - 16px));
  margin: 0;
}
.planet-evolution-page .pe-planet-details-popover[hidden],
.pe-planet-details-popover[hidden] {
  display: none !important;
}
.planet-evolution-page .pe-planet-details-title {
  margin: 0 0 0.45rem;
  font-weight: 800;
  font-size: 0.88rem;
}
.planet-evolution-page .pe-planet-details-list {
  margin: 0 0 0.45rem;
  display: grid;
  gap: 0.25rem;
  font-size: 0.72rem;
}
.planet-evolution-page .pe-planet-details-list div {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
}
.planet-evolution-page .pe-planet-details-list dt {
  opacity: 0.72;
}
.planet-evolution-page .pe-planet-details-list dd {
  margin: 0;
  text-align: right;
  white-space: normal;
  overflow-wrap: anywhere;
}
.planet-evolution-page .pe-planet-details-label {
  margin: 0.35rem 0 0.2rem;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.7;
}
.planet-evolution-page .pe-planet-details-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.planet-evolution-page .pe-planet-details-evolution {
  margin: 0.45rem 0 0;
  font-size: 0.68rem;
}
.planet-evolution-page .pe-hero-meta-rows {
  display: none;
}
.planet-evolution-page .pe-hero-bonuses-card {
  display: none;
}
.planet-evolution-page .pe-hero-expansion-badge {
  display: none;
}
.planet-evolution-page .pe-badge-event {
  border-color: rgba(255, 120, 80, 0.45);
  color: #ffb8a8;
  background: rgba(255, 120, 80, 0.12);
}
.planet-evolution-page .pe-hero-bonus-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.28rem 0.35rem;
  margin-bottom: 0.35rem;
  font-size: 0.72rem;
  line-height: 1.35;
}
.planet-evolution-page .pe-hero-bonus-row:last-child {
  margin-bottom: 0;
}
.planet-evolution-page .pe-hero-bonus-label {
  flex: 0 0 auto;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  opacity: 0.72;
  white-space: nowrap;
}
.planet-evolution-page .pe-hero-status-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.1rem 0.38rem;
  border-radius: var(--gc-radius-pill);
  border: 1px solid rgba(95, 214, 122, 0.35);
  background: rgba(95, 214, 122, 0.1);
  color: #b8f0c4;
  font-size: 0.68rem;
  font-weight: 700;
}
.planet-evolution-page .pe-hero-status-chip--urgent {
  border-color: rgba(255, 120, 80, 0.4);
  background: rgba(255, 120, 80, 0.12);
  color: #ffb8a8;
}
.planet-evolution-page .pe-hero-focus-row,
.planet-evolution-page .pe-hero-prod-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.28rem 0.4rem;
  font-size: 0.72rem;
  line-height: 1.35;
}
.planet-evolution-page .pe-hero-meta-label {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  opacity: 0.72;
  white-space: nowrap;
}
.planet-evolution-page .pe-hero-meta-muted {
  font-size: 0.72rem;
}
.planet-evolution-page .pe-hero-focus-chips {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.22rem;
}
.planet-evolution-page .pe-hero-focus-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.12rem;
  padding: 0.1rem 0.32rem;
  border-radius: var(--gc-radius-pill);
  border: 1px solid rgba(120, 190, 255, 0.2);
  background: rgba(70, 229, 255, 0.08);
  font-size: 0.7rem;
  font-weight: 700;
  white-space: nowrap;
}
.planet-evolution-page .pe-hero-prod-badge {
  padding: 0.1rem 0.38rem;
  border-radius: var(--gc-radius-pill);
  border: 1px solid rgba(95, 214, 122, 0.35);
  background: rgba(95, 214, 122, 0.1);
  color: #b8f0c4;
  font-size: 0.7rem;
  font-weight: 700;
}
.planet-evolution-page .pe-hero-spec {
  font-size: 0.68rem;
  opacity: 0.85;
}
.planet-evolution-page .pe-hero-expansion-badge {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  width: 100%;
  margin-top: 0.55rem;
  padding: 0.35rem 0.55rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.2);
  background: rgba(0, 0, 0, 0.22);
  color: inherit;
  font: inherit;
  cursor: pointer;
  text-align: left;
}
.planet-evolution-page .pe-hero-expansion-badge:hover {
  border-color: rgba(70, 229, 255, 0.38);
  background: rgba(70, 229, 255, 0.06);
}
.planet-evolution-page .pe-hero-expansion-badge-label {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.planet-evolution-page .pe-hero-expansion-badge-meta {
  margin-left: auto;
  font-size: 0.72rem;
}
.planet-evolution-page .pe-hero-expansion-badge-chevron {
  font-size: 0.65rem;
  opacity: 0.75;
  transition: transform 0.18s ease;
}
.planet-evolution-page .pe-expansion-drawer-toggle.is-open .pe-hero-expansion-badge-chevron {
  transform: rotate(180deg);
}
.planet-evolution-page .pe-expansion-drawer {
  padding: 0.55rem 0.75rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.2);
  background: var(--gc-panel-bg, rgba(8, 16, 32, 0.96));
  box-shadow: inset 0 1px 0 rgba(120, 190, 255, 0.08);
}
.planet-evolution-page .pe-expansion-drawer[hidden] {
  display: none !important;
}
.planet-evolution-page .pe-expansion-panel {
  padding: 0.35rem 0;
}
.planet-evolution-page .pe-expansion-panel + .pe-expansion-panel {
  margin-top: 0.45rem;
  padding-top: 0.45rem;
  border-top: 1px solid rgba(120, 190, 255, 0.1);
}
.planet-evolution-page .pe-expansion-panel-lead {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
}
.planet-evolution-page .pe-expansion-panel-note {
  margin: 0 0 0.25rem;
  font-size: 0.78rem;
}
.planet-evolution-page .pe-expansion-rail--compact .pe-rail-step {
  padding: 0.28rem 0;
}
.planet-evolution-page .pe-expansion-rail--compact .pe-rail-step-node {
  flex: 0 0 0.95rem;
  width: 0.95rem;
  height: 0.95rem;
}
.planet-evolution-page .pe-expansion-rail--compact .pe-rail-step-label {
  font-size: 0.78rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.planet-evolution-page .pe-expansion-rail--compact .pe-rail-step:not(:last-child)::after {
  left: 0.46rem;
  top: 1.2rem;
}
.planet-evolution-page .pe-hero-visual {
  position: relative;
  width: 100%;
  max-width: 9rem;
  aspect-ratio: 1;
}
.planet-evolution-page .pe-hero-visual-frame {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 2px solid rgba(70, 229, 255, 0.35);
  box-shadow:
    0 0 24px rgba(70, 229, 255, 0.18),
    inset 0 0 20px rgba(70, 229, 255, 0.08);
}
.planet-evolution-page .pe-hero-visual-frame::before {
  content: "";
  position: absolute;
  inset: -6px;
  border-radius: 50%;
  border: 1px dashed rgba(255, 196, 86, 0.25);
  animation: pe-orbit-spin 24s linear infinite;
}
@keyframes pe-orbit-spin {
  to { transform: rotate(360deg); }
}
.planet-evolution-page .pe-hero-visual-planet {
  position: absolute;
  inset: 8%;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 30%, rgba(255, 255, 255, 0.15), transparent 45%),
    center / cover no-repeat
    image-set(
      var(--planet-landscape-webp) type("image/webp"),
      var(--planet-landscape) type("image/jpeg")
    ),
    radial-gradient(circle at 50% 50%, #1a3a5c, #0a1528);
  box-shadow: inset 0 -8px 16px rgba(0, 0, 0, 0.45);
}
.planet-evolution-page .pe-hero-monolith-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
}
.planet-evolution-page .pe-hero-kicker {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  opacity: 0.65;
}
.planet-evolution-page .pe-hero-monolith-name {
  margin: 0 0 0.35rem;
  font-size: clamp(1.35rem, 3vw, 1.85rem);
  font-weight: 800;
  line-height: 1.15;
}
.planet-evolution-page .pe-hero-progress-punch {
  margin: 0;
  font-size: clamp(0.92rem, 2vw, 1.05rem);
  font-weight: 600;
  color: #ffd98a;
  text-shadow: 0 0 12px rgba(255, 196, 86, 0.25);
}
.planet-evolution-page .pe-hero-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.planet-evolution-page .pe-badge-status-stable {
  border-color: rgba(95, 214, 122, 0.45);
  color: #b8f0c4;
}
.planet-evolution-page .pe-badge-rarity {
  border-color: rgba(180, 140, 255, 0.45);
  color: #d4c0ff;
}
.planet-evolution-page .pe-hero-stat-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.4rem;
  min-width: 0;
}
.planet-evolution-page .pe-hero-stat {
  min-width: 0;
  padding: 0.4rem 0.45rem;
  border-radius: var(--gc-radius-xs);
  border: 1px solid rgba(120, 190, 255, 0.12);
  background: rgba(0, 0, 0, 0.18);
}
.planet-evolution-page .pe-hero-stat-label {
  display: block;
  font-size: 0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.7;
  margin-bottom: 0.12rem;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.planet-evolution-page .pe-hero-stat-value {
  display: block;
  font-size: 0.82rem;
  font-weight: 700;
  line-height: 1.25;
  overflow-wrap: anywhere;
}
.planet-evolution-page .pe-hero-stat-value--loc {
  font-size: 0.72rem;
}
.planet-evolution-page .pe-hero-stat-value--score {
  color: #46e5ff;
  font-size: 0.9rem;
}
.planet-evolution-page .pe-hero-xp-block {
  margin-top: 0.15rem;
}
.planet-evolution-page .pe-xp-bar--hero {
  height: 0.65rem;
}
.planet-evolution-page .pe-activity-xp--inline {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem 1rem;
  margin-top: 0.65rem;
  padding-top: 0.65rem;
  border-top: 1px solid rgba(120, 190, 255, 0.1);
}

/* Expansion progress rail */
.planet-evolution-page .pe-expansion-rail {
  list-style: none;
  margin: 0;
  padding: 0.25rem 0 0.25rem 0.15rem;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.planet-evolution-page .pe-rail-step {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.55rem 0 0.55rem 0.15rem;
}
.planet-evolution-page .pe-rail-step:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 0.62rem;
  top: 1.65rem;
  bottom: -0.15rem;
  width: 2px;
  background: linear-gradient(180deg, rgba(70, 229, 255, 0.35), rgba(70, 229, 255, 0.08));
}
.planet-evolution-page .pe-rail-step-node {
  flex: 0 0 1.25rem;
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.05rem;
  border-radius: 50%;
  border: 2px solid rgba(120, 190, 255, 0.35);
  background: rgba(0, 0, 0, 0.35);
  box-shadow: 0 0 8px rgba(70, 229, 255, 0.1);
}
.planet-evolution-page .pe-rail-step--done .pe-rail-step-node {
  border-color: rgba(95, 214, 122, 0.7);
  background: rgba(95, 214, 122, 0.25);
  box-shadow: 0 0 10px rgba(95, 214, 122, 0.25);
}
.planet-evolution-page .pe-rail-step--done .pe-rail-step-node::after {
  content: "?";
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.65rem;
  color: #b8f0c4;
  line-height: 1.25rem;
  text-align: center;
}
.planet-evolution-page .pe-rail-step--active .pe-rail-step-node {
  border-color: rgba(255, 196, 86, 0.85);
  background: rgba(255, 196, 86, 0.2);
  box-shadow: 0 0 14px rgba(255, 196, 86, 0.35);
  animation: pe-rail-pulse 2s ease-in-out infinite;
}
@keyframes pe-rail-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.08); }
}
.planet-evolution-page .pe-rail-step--active .pe-rail-step-label {
  color: #ffd98a;
  font-weight: 700;
}
.planet-evolution-page .pe-rail-step-label {
  display: block;
  font-size: 0.72rem;
  line-height: 1.25;
}

.planet-evolution-page .pe-rail-step-copy {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.planet-evolution-page .pe-rail-step-building {
  display: block;
  font-size: 0.62rem;
  line-height: 1.2;
}

.planet-evolution-page .pe-expansion-panel-scope {
  margin: 0 0 8px;
  font-size: 0.68rem;
  line-height: 1.35;
}

.planet-evolution-page .pe-goal-establishment {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.35;
}
  font-size: 0.88rem;
  line-height: 1.35;
}

/* Tech + goal row */
.planet-evolution-page .pe-core-row {
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(14rem, 0.85fr);
  gap: 0.65rem;
  align-items: start;
  min-width: 0;
}
.planet-evolution-page .pe-zone--tech,
.planet-evolution-page .pe-zone--goal {
  padding: 0.65rem 0.75rem;
  min-width: 0;
  height: auto;
  min-height: 0;
}
.planet-evolution-page .pe-zone--tech {
  display: flex;
  flex-direction: column;
}
.planet-evolution-page .pe-zone--goal {
  display: block;
  align-self: start;
  position: relative;
}
.planet-evolution-page .pe-zone--tech .pe-zone-head,
.planet-evolution-page .pe-zone--goal .pe-zone-head {
  margin-bottom: 0.35rem;
}
.planet-evolution-page .pe-zone--tech {
  min-height: 0;
  overflow: hidden;
}
.planet-evolution-page .pe-tech-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 0.35rem;
  min-width: 0;
  max-width: 100%;
}
.planet-evolution-page .pe-tech-card {
  position: relative;
  display: flex;
  flex-direction: column;
  min-width: 0;
  padding: 0.45rem 0.5rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: rgba(0, 0, 0, 0.22);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.planet-evolution-page .pe-tech-card:hover {
  border-color: rgba(70, 229, 255, 0.45);
  box-shadow: 0 0 16px rgba(70, 229, 255, 0.12);
  transform: translateY(-1px);
}
.planet-evolution-page .pe-tech-card--locked {
  opacity: 0.72;
}
.planet-evolution-page .pe-tech-card-body {
  display: grid;
  grid-template-columns: 2.25rem minmax(0, 1fr);
  grid-template-areas:
    "icon info"
    "action action";
  gap: 0.3rem 0.45rem;
  align-items: start;
}
.planet-evolution-page .pe-tech-card-icon {
  grid-area: icon;
  width: 2.25rem;
  height: 2.25rem;
  object-fit: contain;
  filter: drop-shadow(0 0 6px rgba(70, 229, 255, 0.25));
}
.planet-evolution-page .pe-tech-card-fallback {
  grid-area: icon;
  font-size: 1.75rem;
  line-height: 2.75rem;
  text-align: center;
}
.planet-evolution-page .pe-tech-card-info {
  grid-area: info;
  min-width: 0;
}
.planet-evolution-page .pe-tech-card-name-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.35rem;
  min-width: 0;
  margin-bottom: 0.2rem;
}
.planet-evolution-page .pe-tech-card-name {
  margin: 0;
  min-width: 0;
  font-size: 0.88rem;
  font-weight: 700;
}
.planet-evolution-page .pe-tech-card-meta {
  margin: 0;
  font-size: 0.72rem;
  opacity: 0.78;
  line-height: 1.35;
}
.planet-evolution-page .pe-tech-reward-chip {
  display: inline-block;
  margin-top: 0.15rem;
  padding: 0.05rem 0.35rem;
  border-radius: 999px;
  font-size: 0.66rem;
  line-height: 1.3;
  color: var(--gc-text-dim);
  background: rgba(255, 217, 138, 0.08);
  border: 1px solid rgba(255, 217, 138, 0.14);
}
.planet-evolution-page .pe-tech-card-missing {
  margin: 0.2rem 0 0;
  font-size: 0.68rem;
  line-height: 1.35;
}
.planet-evolution-page .pe-reward-xp-line {
  margin: 0;
}
.planet-evolution-page .pe-xp-formula-breakdown {
  margin-top: 0.35rem;
  font-size: 0.82em;
  opacity: 0.9;
}
.planet-evolution-page .pe-xp-formula-label,
.planet-evolution-page .pe-xp-formula-result {
  margin: 0.15rem 0 0;
}
.planet-evolution-page .pe-xp-formula-lines {
  margin: 0.15rem 0 0;
  padding-left: 1rem;
}
.planet-evolution-page .pe-hero-xp-reward {
  margin: 0.25rem 0 0;
  font-size: 0.72rem;
}
.planet-evolution-page .pe-goal-xp-line {
  margin: 0.25rem 0 0;
  font-size: 0.78rem;
  line-height: 1.35;
}
.planet-evolution-page .pe-research-later .pe-tech-grid--locked {
  margin-top: 0.45rem;
}
.planet-evolution-page .pe-tech-card-action {
  grid-area: action;
}
.planet-evolution-page .pe-tech-card-action .gc-btn {
  width: 100%;
  max-width: 100%;
  padding-top: 0.28rem;
  padding-bottom: 0.28rem;
  font-size: 0.74rem;
}
.planet-evolution-page .pe-research-later {
  margin-top: 0.35rem;
  font-size: 0.72rem;
}
.planet-evolution-page .pe-research-later > summary {
  cursor: pointer;
  list-style: none;
  padding: 0.2rem 0;
  color: var(--gc-text-dim);
}
.planet-evolution-page .pe-research-later > summary::-webkit-details-marker {
  display: none;
}

/* Featured next goal */
.planet-evolution-page .pe-zone--goal {
  padding: 0.65rem 0.75rem;
  border-color: rgba(120, 190, 255, 0.18);
  background: rgba(0, 0, 0, 0.22);
  overflow: hidden;
}
.planet-evolution-page .pe-zone-head--goal .pe-zone-title {
  color: #ffd98a;
}
.planet-evolution-page .pe-goal-body {
  position: relative;
  margin-bottom: 0.2rem;
  min-width: 0;
}
.planet-evolution-page .pe-goal-kicker {
  margin: 0 0 0.25rem;
  font-size: 0.92rem;
  font-weight: 800;
}
.planet-evolution-page .pe-goal-text {
  margin: 0 0 0.3rem;
  font-size: 0.78rem;
  line-height: 1.35;
  opacity: 0.88;
}
.planet-evolution-page .pe-goal-unlock {
  margin: 0;
  font-size: 0.68rem;
  opacity: 0.75;
}
.planet-evolution-page .pe-goal-cta {
  width: 100%;
  max-width: 100%;
  margin-top: 0.25rem;
  font-size: 0.82rem;
  box-shadow: none;
}
.planet-evolution-page .pe-goal-events {
  margin-top: 0.35rem;
  padding-top: 0.3rem;
  border-top: 1px solid rgba(120, 190, 255, 0.1);
}
.planet-evolution-page .pe-goal-event-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.18rem 0.45rem;
  border-radius: var(--gc-radius-pill);
  border: 1px solid rgba(95, 214, 122, 0.3);
  background: rgba(95, 214, 122, 0.08);
  color: #b8f0c4;
  font-size: 0.68rem;
  font-weight: 700;
}
.planet-evolution-page .pe-goal-event-chip--urgent {
  border-color: rgba(255, 120, 80, 0.4);
  background: rgba(255, 120, 80, 0.12);
  color: #ffb8a8;
}
.planet-evolution-page .pe-goal-event-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  margin-top: 0.35rem;
}
.planet-evolution-page .pe-goal-event-actions .gc-btn {
  flex: 1 1 auto;
  min-width: 4.5rem;
}
.planet-evolution-page .pe-hero-head-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 0.35rem;
  flex: 0 0 auto;
}
.planet-evolution-page .pe-hero-chronicle-btn {
  border-color: rgba(120, 190, 255, 0.22);
  color: var(--gc-text-soft);
  white-space: nowrap;
}
.planet-evolution-page .pe-hero-help-btn,
.planet-evolution-page .pe-tech-info-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  width: 1.35rem;
  height: 1.35rem;
  padding: 0;
  border-radius: 50%;
  border: 1px solid rgba(120, 190, 255, 0.22);
  background: rgba(0, 0, 0, 0.22);
  color: var(--gc-text-dim);
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
}
.planet-evolution-page .pe-hero-help-btn:hover,
.planet-evolution-page .pe-hero-help-btn:focus-visible,
.planet-evolution-page .pe-tech-info-btn:hover,
.planet-evolution-page .pe-tech-info-btn:focus-visible,
.planet-evolution-page .pe-info-trigger[aria-expanded="true"] {
  border-color: rgba(70, 229, 255, 0.35);
  color: var(--gc-text-soft);
}
.planet-evolution-page .pe-tech-card-name-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.35rem;
  min-width: 0;
  margin-bottom: 0.2rem;
}
.pe-info-popover.gc-popover-layer {
  position: fixed;
  z-index: var(--gc-z-popover, 12050);
  box-sizing: border-box;
  max-width: min(340px, calc(100vw - 16px));
  max-height: min(70vh, 420px);
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(120, 190, 255, 0.22);
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 16, 32, 0.98);
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.45);
  pointer-events: auto;
  -webkit-overflow-scrolling: touch;
}
.pe-info-popover--sheet.gc-popover-layer {
  left: 0;
  right: 0;
  bottom: 0;
  top: auto;
  width: auto;
  max-width: none;
  margin: 0 auto;
  border-radius: var(--gc-radius-md) var(--gc-radius-md) 0 0;
  border-bottom: none;
  box-shadow: 0 -10px 36px rgba(0, 0, 0, 0.5);
}
.pe-info-popover-backdrop {
  position: fixed;
  inset: 0;
  z-index: calc(var(--gc-z-popover, 12050) - 1);
  background: rgba(0, 0, 0, 0.45);
  pointer-events: auto;
}
.pe-info-popover .pe-info-popover-title {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  font-weight: 800;
  color: var(--gc-text-soft);
}
.pe-info-popover .pe-info-popover-list {
  margin: 0;
  display: grid;
  gap: 0.28rem;
}
.pe-info-popover .pe-info-popover-list div {
  display: grid;
  gap: 0.08rem;
}
.pe-info-popover .pe-info-popover-list dt {
  margin: 0;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}
.pe-info-popover .pe-info-popover-list dd {
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.35;
  color: var(--gc-text-soft);
}
.pe-info-popover .pe-info-popover-foot,
.pe-info-popover .pe-info-popover-bullets {
  margin: 0.35rem 0 0;
  font-size: 0.64rem;
  line-height: 1.35;
  color: var(--gc-text-dim);
}
.pe-info-popover .pe-info-popover-bullets {
  padding-left: 1rem;
}
.planet-evolution-page .pe-choice-banner {
  margin: 0 0 0.35rem;
  font-size: 0.64rem;
  line-height: 1.35;
  color: rgba(255, 216, 140, 0.85);
}
.planet-evolution-page .pe-choice-options {
  display: grid;
  gap: 0.35rem;
}
.planet-evolution-page .pe-choice-option {
  display: grid;
  gap: 0.12rem;
}
.planet-evolution-page .pe-choice-option-effect {
  margin: 0;
  font-size: 0.62rem;
  line-height: 1.3;
  padding-left: 0.1rem;
}
.planet-evolution-page .pe-choice-option-focus {
  margin: 0;
  font-size: 0.68rem;
  line-height: 1.35;
  padding-left: 0.1rem;
}
.planet-evolution-page .pe-choice-option-unlocks,
.planet-evolution-page .pe-choice-option-irreversible {
  margin: 0;
  font-size: 0.62rem;
  line-height: 1.3;
  padding-left: 0.1rem;
}
.planet-evolution-page .pe-goal-benefits-btn {
  appearance: none;
  border: 0;
  background: none;
  padding: 0;
  margin: 0 0 0.25rem;
  font: inherit;
  font-size: 0.64rem;
  color: var(--gc-primary-2);
  text-decoration: underline;
  text-underline-offset: 0.12em;
  cursor: pointer;
}
.planet-evolution-page .pe-goal-benefits-btn:hover,
.planet-evolution-page .pe-goal-benefits-btn:focus-visible {
  color: var(--gc-text-soft);
}
.pe-help-modal .pe-help-dialog,
.pe-choice-confirm-modal .pe-choice-confirm-dialog {
  width: min(420px, 100%);
}
.pe-help-modal .pe-help-modal-lead {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.45;
  color: var(--gc-text-soft);
}

/* EPIC-20 World Boss ? spawn ETA + help (scoped) */
.gc-world-boss-page .gc-world-boss-cards {
  display: grid;
  gap: 1rem;
  max-width: 100%;
  overflow-x: hidden;
}
.gc-world-boss-page .gc-world-boss-card {
  border: 1px solid rgba(90, 200, 255, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(6, 14, 24, 0.55);
  padding: 0.85rem 0.9rem 1rem;
  max-width: 100%;
  overflow-x: hidden;
}
.gc-world-boss-page .gc-world-boss-card--active {
  box-shadow: 0 0 20px rgba(60, 180, 255, 0.2);
}
.gc-world-boss-page .gc-world-boss-board-details {
  margin-top: 0.75rem;
  border-top: 1px solid rgba(90, 200, 255, 0.18);
  padding-top: 0.45rem;
}
.gc-world-boss-page .gc-world-boss-board-details > summary {
  cursor: pointer;
  font-size: 0.82rem;
  color: rgba(180, 230, 255, 0.9);
  list-style: none;
}
.gc-world-boss-page .gc-world-boss-board-details > summary::-webkit-details-marker {
  display: none;
}
.gc-world-boss-page .gc-world-boss-board-panels {
  display: grid;
  gap: 0.75rem;
  margin-top: 0.55rem;
}
.gc-world-boss-page .gc-world-boss-board-sub {
  margin: 0 0 0.35rem;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}
.gc-world-boss-page .gc-world-boss-cap {
  margin: 0 0 0.65rem;
}
.gc-world-boss-page .gc-world-boss-rewards-block {
  margin-top: 0.75rem;
  border: 1px solid rgba(90, 200, 255, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(4, 12, 20, 0.45);
  padding: 0.35rem 0.55rem 0.55rem;
}
.gc-world-boss-page .gc-world-boss-claim-panel {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.55rem 0.75rem;
  margin-top: 0.65rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(80, 220, 140, 0.45);
  background: linear-gradient(180deg, rgba(18, 42, 28, 0.92), rgba(8, 18, 14, 0.96));
  border-radius: var(--gc-radius-sm, 2px);
  box-shadow: 0 0 14px rgba(60, 180, 100, 0.12);
}
.gc-world-boss-page .gc-world-boss-claim-panel__head {
  flex: 1 1 12rem;
  min-width: 0;
}
.gc-world-boss-page .gc-world-boss-claim-panel__title {
  margin: 0 0 0.25rem;
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(180, 255, 210, 0.95);
}
.gc-world-boss-page .gc-world-boss-claim-panel__loot {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 0.55rem;
  font-size: 0.74rem;
  opacity: 0.9;
}
.gc-world-boss-page .gc-world-boss-claim-panel .wb-claim-btn {
  flex: 0 0 auto;
  min-height: 2.4rem;
  white-space: nowrap;
}
.gc-world-boss-page .gc-world-boss-rewards-toggle {
  cursor: pointer;
  list-style: none;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(180, 230, 255, 0.92);
  padding: 0.35rem 0.15rem;
}
.gc-world-boss-page .gc-world-boss-rewards-toggle::-webkit-details-marker {
  display: none;
}
.gc-world-boss-page .gc-world-boss-rewards-inner {
  margin-top: 0.35rem;
}
.gc-world-boss-page .gc-world-boss-claim-wrap {
  margin: 0.65rem 0 0.15rem;
}
.gc-world-boss-page .gc-world-boss-payout,
.gc-world-boss-page .gc-world-boss-rewards {
  margin-top: 0.55rem;
}
.gc-world-boss-page .gc-world-boss-rewards {
  margin-top: 0.7rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(90, 200, 255, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(4, 14, 24, 0.55);
}
.gc-world-boss-page .gc-world-boss-payout {
  margin-top: 0.7rem;
  padding: 0.65rem 0.7rem;
  border: 1px solid rgba(120, 210, 160, 0.45);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(8, 28, 18, 0.55);
}
.gc-world-boss-page .gc-world-boss-payout-title {
  margin: 0 0 0.3rem;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(170, 240, 200, 0.95);
}
.gc-world-boss-page .gc-world-boss-payout-lead {
  margin: 0 0 0.4rem;
}
.gc-world-boss-page .gc-world-boss-payout-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.3rem;
}
.gc-world-boss-page .gc-world-boss-payout-item {
  display: flex;
  align-items: baseline;
  gap: 0.55rem;
  font-size: 0.88rem;
  font-weight: 600;
  color: var(--gc-text);
}
.gc-world-boss-page .gc-world-boss-payout-amount {
  min-width: 2.4rem;
  color: rgba(170, 240, 200, 0.95);
}
.gc-world-boss-page .gc-world-boss-payout-hint {
  margin: 0.45rem 0 0;
  font-size: 0.72rem;
}
.gc-world-boss-page .gc-world-boss-rewards-title {
  margin: 0 0 0.4rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(180, 230, 255, 0.92);
}
.gc-world-boss-page .gc-world-boss-rewards-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.35rem;
}
.gc-world-boss-page .gc-world-boss-reward-row {
  display: grid;
  grid-template-columns: minmax(7rem, 38%) 1fr;
  gap: 0.45rem 0.65rem;
  align-items: baseline;
  font-size: 0.78rem;
}
.gc-world-boss-page .gc-world-boss-reward-row.is-locked {
  opacity: 0.55;
}
.gc-world-boss-page .gc-world-boss-reward-row.is-earned {
  opacity: 1;
}
.gc-world-boss-page .gc-world-boss-reward-row.is-earned .gc-world-boss-reward-tier {
  color: rgba(170, 240, 200, 0.95);
}
.gc-world-boss-page .gc-world-boss-reward-badge {
  display: inline-block;
  margin-left: 0.3rem;
  color: rgba(140, 230, 170, 0.95);
  font-weight: 800;
}
.gc-world-boss-page .gc-world-boss-reward-tier {
  color: var(--gc-text-soft);
  font-weight: 600;
}
.gc-world-boss-page .gc-world-boss-reward-grants {
  color: var(--gc-text);
}
.gc-world-boss-page .gc-world-boss-claimed-list {
  margin: 0.35rem 0 0;
  padding-left: 1.1rem;
  font-size: 0.78rem;
}
.gc-world-boss-page .gc-world-boss-ally-xp {
  color: rgba(180, 230, 255, 0.92);
}
.gc-world-boss-page .gc-world-boss-reward-row[data-wb-reward-tier="alliance_xp"] .gc-world-boss-reward-tier {
  color: rgba(160, 220, 255, 0.95);
}
.gc-world-boss-page .gc-world-boss-panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.gc-world-boss-page .gc-world-boss-help-btn {
  flex: 0 0 auto;
  min-width: 1.6rem;
  border-radius: var(--gc-radius-sm, 2px);
  font-weight: 700;
}

/* Encounter stage — cinematic arena (Boss Window Mockup) */
.gc-world-boss-page .gc-world-boss-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(220px, 280px);
  gap: 0.85rem 1rem;
  align-items: start;
  width: 100%;
  max-width: 100%;
}
.gc-world-boss-page .gc-world-boss-arena {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.gc-world-boss-page .gc-world-boss-rail {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.gc-world-boss-page .gc-world-boss-hero {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.65rem;
  text-align: left;
  width: 100%;
}
.gc-world-boss-page .gc-world-boss-hero--active {
  padding: 0;
}
.gc-world-boss-page .gc-world-boss-stage {
  position: relative;
  display: block;
  width: 100%;
  max-width: min(100%, 780px);
  min-height: 400px;
  margin: 0 auto;
  border: 1px solid rgba(80, 160, 200, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  overflow: hidden;
  --wb-stage-glow: rgba(40, 180, 255, 0.22);
  background:
    radial-gradient(ellipse 120% 55% at 50% 118%, rgba(40, 120, 180, 0.55) 0%, transparent 52%),
    radial-gradient(ellipse 70% 40% at 50% 100%, rgba(20, 60, 110, 0.5) 0%, transparent 60%),
    radial-gradient(ellipse 35% 28% at 12% 68%, rgba(70, 90, 120, 0.28) 0%, transparent 70%),
    radial-gradient(ellipse 32% 26% at 88% 58%, rgba(55, 75, 100, 0.26) 0%, transparent 70%),
    radial-gradient(1px 1px at 12% 22%, rgba(200, 230, 255, 0.55), transparent),
    radial-gradient(1px 1px at 28% 48%, rgba(180, 210, 255, 0.4), transparent),
    radial-gradient(1px 1px at 64% 18%, rgba(220, 240, 255, 0.5), transparent),
    radial-gradient(1px 1px at 78% 36%, rgba(170, 200, 255, 0.35), transparent),
    radial-gradient(1px 1px at 44% 32%, rgba(200, 230, 255, 0.45), transparent),
    linear-gradient(180deg, #030812 0%, #081426 38%, #061018 72%, #040a12 100%);
  box-shadow:
    inset 0 0 48px rgba(0, 20, 40, 0.6),
    0 0 28px var(--wb-stage-glow);
}
.gc-world-boss-page .gc-world-boss-stage.gc-wb-phase-2 {
  --wb-stage-glow: rgba(255, 150, 40, 0.2);
}
.gc-world-boss-page .gc-world-boss-stage.gc-wb-phase-3 {
  --wb-stage-glow: rgba(255, 60, 60, 0.22);
}
.gc-world-boss-page .gc-world-boss-stage::before,
.gc-world-boss-page .gc-world-boss-stage::after {
  content: "";
  position: absolute;
  pointer-events: none;
  z-index: 1;
}
.gc-world-boss-page .gc-world-boss-stage::before {
  left: -10%;
  right: -10%;
  bottom: -8%;
  height: 42%;
  background:
    radial-gradient(ellipse at 50% 80%, rgba(30, 90, 140, 0.45) 0%, transparent 65%),
    linear-gradient(180deg, transparent 0%, rgba(8, 30, 55, 0.35) 100%);
  filter: blur(8px);
  opacity: 0.85;
  animation: gc-wb-nebula-drift 14s ease-in-out infinite;
}
.gc-world-boss-page .gc-world-boss-stage::after {
  inset: 0;
  background: linear-gradient(
    180deg,
    transparent 0%,
    transparent 46%,
    rgba(0, 40, 70, 0.08) 47%,
    transparent 48%,
    transparent 100%
  );
  background-size: 100% 18px;
  opacity: 0.35;
  mix-blend-mode: screen;
  animation: gc-wb-scan-drift 9s linear infinite;
}
.gc-world-boss-page .gc-world-boss-stage-fx {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  overflow: hidden;
}
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle {
  position: absolute;
  width: 3px;
  height: 3px;
  border-radius: 50%;
  background: rgba(180, 230, 255, 0.75);
  box-shadow: 0 0 6px rgba(120, 200, 255, 0.65);
  opacity: 0.35;
  animation: gc-wb-particle-drift 11s ease-in-out infinite;
}
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(1) { left: 12%; top: 28%; animation-delay: 0s; }
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(2) { left: 22%; top: 55%; animation-delay: -1.2s; width: 2px; height: 2px; }
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(3) { left: 38%; top: 18%; animation-delay: -2.4s; }
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(4) { left: 48%; top: 42%; animation-delay: -0.8s; width: 2px; height: 2px; }
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(5) { left: 58%; top: 22%; animation-delay: -3.1s; }
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(6) { left: 68%; top: 48%; animation-delay: -1.7s; }
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(7) { left: 78%; top: 30%; animation-delay: -4s; width: 2px; height: 2px; }
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(8) { left: 84%; top: 58%; animation-delay: -2.2s; }
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(9) { left: 18%; top: 70%; animation-delay: -5s; }
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(10) { left: 72%; top: 72%; animation-delay: -3.6s; width: 2px; height: 2px; }
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(11) { left: 42%; top: 62%; animation-delay: -0.4s; }
.gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle:nth-child(12) { left: 90%; top: 40%; animation-delay: -4.5s; }
.gc-world-boss-page .gc-world-boss-stage-overlay {
  position: absolute;
  inset: 0 0 auto 0;
  z-index: 6;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.65rem 0.75rem;
  pointer-events: none;
}
.gc-world-boss-page .gc-world-boss-stage-overlay-left,
.gc-world-boss-page .gc-world-boss-stage-overlay-right {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
}
.gc-world-boss-page .gc-world-boss-stage-overlay-right {
  align-items: flex-end;
}
.gc-world-boss-page .gc-world-boss-stage-label {
  margin: 0;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(140, 200, 230, 0.75);
}
.gc-world-boss-page .gc-world-boss-stage .gc-world-boss-name {
  margin: 0;
  font-size: 1.05rem;
  color: rgba(230, 245, 255, 0.95);
  text-shadow: 0 1px 8px rgba(0, 0, 0, 0.85);
}
.gc-world-boss-page .gc-world-boss-stage .gc-world-boss-eta,
.gc-world-boss-page .gc-world-boss-stage .gc-world-boss-coords {
  margin: 0;
  font-size: 0.72rem;
  color: rgba(180, 220, 245, 0.85);
}
.gc-world-boss-page .gc-world-boss-phase-badge {
  display: inline-block;
  margin-top: 0.25rem;
  padding: 0.12rem 0.4rem;
  border: 1px solid rgba(255, 170, 60, 0.55);
  border-radius: var(--gc-radius-sm, 2px);
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(255, 200, 120, 0.95);
  background: rgba(40, 20, 8, 0.65);
}
.gc-world-boss-page .gc-world-boss-hero-art {
  position: absolute;
  left: 50%;
  top: 1%;
  transform: translateX(-50%);
  width: min(94%, 580px);
  height: 58%;
  aspect-ratio: auto;
  border: none;
  border-radius: 0;
  background: transparent;
  overflow: visible;
  box-shadow: none;
  z-index: 2;
  --wb-glow: rgba(40, 180, 255, 0.45);
  --wb-glow-soft: rgba(40, 140, 220, 0.22);
}
.gc-world-boss-page .gc-world-boss-hero-art.gc-wb-phase-1 {
  --wb-glow: rgba(40, 200, 255, 0.52);
  --wb-glow-soft: rgba(40, 160, 255, 0.26);
}
.gc-world-boss-page .gc-world-boss-hero-art.gc-wb-phase-2 {
  --wb-glow: rgba(255, 160, 40, 0.55);
  --wb-glow-soft: rgba(220, 120, 30, 0.28);
}
.gc-world-boss-page .gc-world-boss-hero-art.gc-wb-phase-3 {
  --wb-glow: rgba(255, 60, 60, 0.58);
  --wb-glow-soft: rgba(220, 30, 40, 0.32);
}
.gc-world-boss-page .gc-world-boss-hero-art.gc-wb-phase-0 {
  --wb-glow: rgba(180, 180, 200, 0.22);
  --wb-glow-soft: rgba(120, 120, 140, 0.12);
  opacity: 0.72;
}
.gc-world-boss-page .gc-world-boss-hero-art.gc-wb-phase-0 .gc-world-boss-portrait {
  filter:
    grayscale(0.35)
    drop-shadow(0 0 14px var(--wb-glow))
    drop-shadow(0 0 28px var(--wb-glow-soft));
}
.gc-world-boss-page .gc-world-boss-hero-art.gc-wb-glow .gc-world-boss-portrait {
  animation: gc-wb-glow-pulse 2.8s ease-in-out infinite;
}
.gc-world-boss-page .gc-world-boss-hero-art.gc-wb-phase-3.gc-wb-glow .gc-world-boss-portrait {
  animation: gc-wb-glow-pulse-unstable 1.6s ease-in-out infinite;
}
.gc-world-boss-page .gc-world-boss-boss-float {
  position: absolute;
  inset: 2% 2% 6% 2%;
  z-index: 2;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: gc-wb-boss-float 3.6s ease-in-out infinite;
  transform-origin: 50% 55%;
}
.gc-world-boss-page .gc-world-boss-boss-float picture,
.gc-world-boss-page .gc-world-boss-boss-float .gc-world-boss-portrait {
  width: 100%;
  height: 100%;
}
.gc-world-boss-page .gc-world-boss-portrait {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  padding: 0;
  background: transparent;
  border: none;
  filter:
    drop-shadow(0 0 18px var(--wb-glow))
    drop-shadow(0 0 36px var(--wb-glow-soft));
}
.gc-world-boss-page .gc-world-boss-aura {
  position: absolute;
  inset: 8% 10% 14% 10%;
  z-index: 1;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, var(--wb-glow) 0%, transparent 68%);
  opacity: 0.6;
  pointer-events: none;
  animation: gc-wb-aura-pulse 2.4s ease-in-out infinite;
}
.gc-world-boss-page .gc-world-boss-shadow {
  position: absolute;
  left: 18%;
  right: 18%;
  bottom: 2%;
  height: 16%;
  z-index: 1;
  border-radius: 50%;
  background: radial-gradient(ellipse at center, rgba(0, 0, 0, 0.72) 0%, transparent 72%);
  filter: blur(3px);
  pointer-events: none;
  opacity: 0.9;
  animation: gc-wb-shadow-pulse 3.6s ease-in-out infinite;
}
.gc-world-boss-page .gc-world-boss-hit-flash {
  position: absolute;
  inset: 0;
  z-index: 4;
  pointer-events: none;
  opacity: 0;
  background: radial-gradient(ellipse at center, rgba(255, 255, 255, 0.55) 0%, rgba(255, 80, 80, 0.2) 40%, transparent 70%);
}
.gc-world-boss-page .gc-world-boss-hero-art.is-hit .gc-world-boss-hit-flash {
  animation: gc-wb-hit-flash 0.28s ease-out;
}
.gc-world-boss-page .gc-world-boss-hero-art.is-crit .gc-world-boss-boss-float {
  animation: gc-wb-crit-shake 0.45s ease-out;
}
.gc-world-boss-page .gc-world-boss-damage-mount {
  position: absolute;
  left: 50%;
  top: 34%;
  z-index: 8;
  transform: translateX(-50%);
  pointer-events: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  min-height: 1px;
}
.gc-world-boss-page .gc-world-boss-stage .gc-world-boss-hp-wrap {
  position: absolute;
  left: 1.25rem;
  right: 1.25rem;
  width: auto;
  max-width: none;
  bottom: 24%;
  z-index: 5;
  margin: 0;
  box-sizing: border-box;
}
.gc-world-boss-page .gc-world-boss-hp-label {
  margin: 0 0 0.28rem;
  text-align: center;
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(200, 230, 255, 0.88);
  text-shadow: 0 1px 6px rgba(0, 0, 0, 0.85);
}
.gc-world-boss-page .gc-world-boss-formation {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 108px;
  z-index: 4;
  margin: 0;
  pointer-events: none;
}
.gc-world-boss-page .gc-world-boss-ship-slot {
  position: absolute;
  bottom: 6px;
  width: 64px;
  margin-left: -32px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.1rem;
  transition: bottom 0.18s ease-out, transform 0.18s ease-out;
  --wb-ship-rot: 0deg;
  transform: rotate(var(--wb-ship-rot));
}
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(1) { left: 16%; bottom: 4px; --wb-ship-rot: -14deg; }
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(2) { left: 38%; bottom: 28px; --wb-ship-rot: -5deg; }
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(3) { left: 62%; bottom: 28px; --wb-ship-rot: 5deg; }
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(4) { left: 84%; bottom: 4px; --wb-ship-rot: 14deg; }
.gc-world-boss-page .gc-world-boss-ship-slot:only-child { left: 50%; bottom: 22px; --wb-ship-rot: 0deg; }
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(1):nth-last-child(2) { left: 34%; bottom: 10px; --wb-ship-rot: -8deg; }
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(2):nth-last-child(1) { left: 66%; bottom: 10px; --wb-ship-rot: 8deg; }
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(1):nth-last-child(3) { left: 22%; bottom: 4px; --wb-ship-rot: -12deg; }
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(2):nth-last-child(2) { left: 50%; bottom: 30px; --wb-ship-rot: 0deg; }
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(3):nth-last-child(1) { left: 78%; bottom: 4px; --wb-ship-rot: 12deg; }
.gc-world-boss-page .gc-world-boss-formation.is-lunging .gc-world-boss-ship-slot {
  bottom: 22px;
  transform: rotate(var(--wb-ship-rot)) scale(1.06);
}
.gc-world-boss-page .gc-world-boss-ship-img {
  width: 52px;
  height: 52px;
  object-fit: contain;
  display: block;
  animation: gc-wb-ship-bob 2.8s ease-in-out infinite;
  filter:
    drop-shadow(0 0 8px rgba(80, 180, 255, 0.5))
    drop-shadow(0 4px 8px rgba(0, 0, 0, 0.6));
}
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(1) .gc-world-boss-ship-img { animation-delay: 0s; }
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(2) .gc-world-boss-ship-img { animation-delay: -0.4s; }
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(3) .gc-world-boss-ship-img { animation-delay: -0.8s; }
.gc-world-boss-page .gc-world-boss-ship-slot:nth-child(4) .gc-world-boss-ship-img { animation-delay: -1.2s; }
.gc-world-boss-page .gc-world-boss-formation.is-lunging .gc-world-boss-ship-img {
  animation: none;
}
.gc-world-boss-page .gc-world-boss-ship-count {
  display: block;
  font-size: 0.68rem;
  font-weight: 700;
  color: rgba(180, 230, 255, 0.95);
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.9);
  background: rgba(4, 12, 22, 0.72);
  border: 1px solid rgba(80, 160, 200, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  padding: 0.05rem 0.28rem;
  line-height: 1.2;
}
.gc-world-boss-page .gc-world-boss-projectiles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 7;
  overflow: hidden;
}
.gc-world-boss-page .gc-world-boss-action-bar {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.gc-world-boss-page .gc-world-boss-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.45rem;
}
.gc-world-boss-page .gc-world-boss-actions .gc-btn-primary {
  min-height: 2.4rem;
  padding-inline: 1.1rem;
  font-weight: 650;
}
.gc-world-boss-page .gc-world-boss-cooldown-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.4rem;
  width: fit-content;
  margin: 0;
  padding: 0.35rem 0.65rem;
  border: 1px solid rgba(255, 160, 60, 0.4);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(30, 18, 8, 0.75);
  color: rgba(255, 200, 140, 0.95);
  font-size: 0.8rem;
}
.gc-world-boss-page .gc-world-boss-action-hint {
  margin: 0;
  font-size: 0.72rem;
}
.gc-world-boss-page .gc-world-boss-rail .gc-world-boss-progress {
  border: 1px solid rgba(80, 160, 200, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(6, 14, 24, 0.72);
  padding: 0.65rem 0.75rem;
}
.gc-world-boss-page .gc-world-boss-rail .gc-world-boss-progress-grid {
  grid-template-columns: 1fr;
}
.gc-world-boss-page .gc-wb-projectile {
  position: absolute;
  width: 8px;
  height: 36px;
  border-radius: var(--gc-radius-xs, 0);
  background: linear-gradient(180deg, #fff 0%, #7ae0ff 30%, #2a90cc 100%);
  box-shadow:
    0 0 14px rgba(120, 230, 255, 1),
    0 0 28px rgba(40, 180, 255, 0.65),
    0 10px 18px rgba(40, 160, 255, 0.45);
  opacity: 0;
  transform: translate(-50%, 0);
  will-change: transform, opacity;
  pointer-events: none;
}
.gc-world-boss-page .gc-wb-projectile.is-plasma {
  background: linear-gradient(180deg, #fff 0%, #c070ff 45%, #6020aa 100%);
  box-shadow:
    0 0 14px rgba(180, 100, 255, 1),
    0 0 26px rgba(140, 60, 220, 0.7),
    0 10px 18px rgba(120, 60, 200, 0.4);
}
.gc-world-boss-page .gc-wb-projectile.is-kinetic {
  background: linear-gradient(180deg, #fff8e0 0%, #ffb040 50%, #a05010 100%);
  box-shadow:
    0 0 14px rgba(255, 180, 60, 1),
    0 0 24px rgba(255, 140, 40, 0.65),
    0 10px 18px rgba(200, 100, 20, 0.4);
}
.gc-world-boss-page .gc-wb-projectile.is-flying {
  animation: gc-wb-projectile-fly 0.7s linear both;
}
.gc-world-boss-page .gc-wb-dmg-num {
  font-family: var(--gc-font-mono, ui-monospace, monospace);
  font-weight: 800;
  font-size: 1.75rem;
  color: #ff4a4a;
  text-shadow:
    0 0 16px rgba(255, 40, 40, 0.75),
    0 2px 6px rgba(0, 0, 0, 0.95);
  animation: gc-wb-dmg-float 1.45s ease-out forwards;
  white-space: nowrap;
}
.gc-world-boss-page .gc-wb-dmg-num.is-crit {
  font-size: 2.05rem;
  color: #ffefef;
  text-shadow:
    0 0 18px rgba(255, 60, 60, 0.95),
    0 0 4px #ff2020,
    0 2px 6px rgba(0, 0, 0, 0.95);
}
.gc-world-boss-page .gc-wb-dmg-crit-label {
  font-size: 0.85rem;
  font-weight: 800;
  letter-spacing: 0.12em;
  color: #ffb0a0;
  text-shadow: 0 0 10px rgba(255, 80, 60, 0.8);
  animation: gc-wb-dmg-float 1.45s ease-out forwards;
}
.gc-world-boss-page .gc-wb-dmg-salvo {
  font-size: 0.72rem;
  font-weight: 700;
  color: rgba(160, 230, 180, 0.95);
  animation: gc-wb-dmg-float 1.2s ease-out forwards;
}
.gc-world-boss-page .gc-world-boss-ready.is-pulse {
  animation: gc-wb-ready-pulse 0.8s ease-out;
}
@keyframes gc-wb-projectile-fly {
  0% { opacity: 1; transform: translate(-50%, 0) scaleY(1); }
  75% { opacity: 1; }
  100% { opacity: 0; transform: translate(-50%, -260px) scaleY(1.45); }
}
@keyframes gc-wb-dmg-float {
  0% { opacity: 0; transform: translateY(10px) scale(0.82); }
  12% { opacity: 1; transform: translateY(0) scale(1.12); }
  65% { opacity: 1; transform: translateY(-36px) scale(1); }
  100% { opacity: 0; transform: translateY(-64px) scale(0.94); }
}
@keyframes gc-wb-ready-pulse {
  0% { box-shadow: 0 0 0 0 rgba(80, 220, 140, 0.5); }
  100% { box-shadow: 0 0 0 0 transparent; color: rgba(160, 255, 200, 1); }
}
.gc-world-boss-page .gc-world-boss-hp-wrap {
  width: 100%;
}
.gc-world-boss-page .gc-world-boss-name {
  margin: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.55rem;
  align-items: center;
  justify-content: center;
}
.gc-world-boss-page .gc-world-boss-coords {
  margin: 0;
  font-size: 0.8rem;
}
.gc-world-boss-page .gc-world-boss-discovered {
  margin: 0;
  font-size: 0.76rem;
}
.gc-world-boss-page .gc-world-boss-desc {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
  line-height: 1.4;
  max-width: 36rem;
}
.gc-world-boss-page .gc-world-boss-status-badge {
  display: inline-flex;
  align-items: center;
  padding: 0.12rem 0.4rem;
  border: 1px solid rgba(90, 200, 255, 0.45);
  border-radius: var(--gc-radius-sm, 2px);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(180, 230, 255, 0.95);
  background: rgba(10, 30, 48, 0.75);
}
.gc-world-boss-page .gc-world-boss-status-badge--active {
  border-color: rgba(80, 220, 140, 0.55);
  color: rgba(160, 255, 200, 0.95);
  background: rgba(8, 36, 24, 0.75);
}
.gc-world-boss-page .gc-world-boss-status-badge--defeated {
  border-color: rgba(255, 180, 80, 0.55);
  color: rgba(255, 220, 160, 0.95);
  background: rgba(40, 24, 8, 0.75);
}
.gc-world-boss-page .gc-world-boss-status-badge--expired {
  border-color: rgba(160, 170, 180, 0.45);
  color: rgba(200, 210, 220, 0.9);
  background: rgba(24, 28, 32, 0.75);
}
.gc-world-boss-page .gc-world-boss-hp {
  position: relative;
  height: 18px;
  border: 2px solid rgba(140, 190, 220, 0.55);
  border-radius: var(--gc-radius-xs, 0);
  background:
    linear-gradient(180deg, rgba(30, 40, 50, 0.95) 0%, rgba(8, 14, 22, 0.98) 100%);
  overflow: hidden;
  box-shadow:
    0 0 0 1px rgba(20, 30, 40, 0.9),
    0 0 16px rgba(40, 160, 220, 0.28),
    inset 0 1px 0 rgba(220, 240, 255, 0.18),
    inset 0 -1px 0 rgba(0, 0, 0, 0.55);
}
.gc-world-boss-page .gc-world-boss-hp::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: repeating-linear-gradient(
    90deg,
    transparent 0,
    transparent 11px,
    rgba(0, 0, 0, 0.28) 11px,
    rgba(0, 0, 0, 0.28) 12px
  );
  opacity: 0.55;
}
.gc-world-boss-page .gc-world-boss-hp::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 3;
  pointer-events: none;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.16) 0%, transparent 45%);
}
.gc-world-boss-page .gc-world-boss-hp.gc-wb-phase-2 {
  border-color: rgba(255, 170, 60, 0.65);
  box-shadow:
    0 0 0 1px rgba(40, 24, 8, 0.9),
    0 0 18px rgba(255, 140, 40, 0.35),
    inset 0 1px 0 rgba(255, 220, 160, 0.2),
    inset 0 -1px 0 rgba(0, 0, 0, 0.55);
}
.gc-world-boss-page .gc-world-boss-hp.gc-wb-phase-3 {
  border-color: rgba(255, 90, 90, 0.7);
  box-shadow:
    0 0 0 1px rgba(40, 8, 8, 0.9),
    0 0 20px rgba(255, 60, 60, 0.4),
    inset 0 1px 0 rgba(255, 180, 180, 0.2),
    inset 0 -1px 0 rgba(0, 0, 0, 0.55);
}
.gc-world-boss-page .gc-world-boss-hp-fill {
  position: relative;
  z-index: 1;
  height: 100%;
  max-width: 100%;
  background: linear-gradient(90deg, rgba(30, 120, 170, 0.98), rgba(90, 230, 255, 0.98));
  transition: width 0.65s ease-out;
  box-shadow: inset 0 0 8px rgba(180, 240, 255, 0.35);
}
.gc-world-boss-page .gc-world-boss-hp.gc-wb-phase-2 .gc-world-boss-hp-fill {
  background: linear-gradient(90deg, rgba(180, 90, 20, 0.98), rgba(255, 180, 60, 0.98));
}
.gc-world-boss-page .gc-world-boss-hp.gc-wb-phase-3 .gc-world-boss-hp-fill {
  background: linear-gradient(90deg, rgba(160, 20, 30, 0.98), rgba(255, 90, 80, 0.98));
}
.gc-world-boss-page .gc-world-boss-hp.is-hit {
  animation: gc-wb-hp-hit 0.35s ease-out;
}
.gc-world-boss-page .gc-world-boss-hp-text {
  margin: 0.4rem 0 0;
  font-size: 0.9rem;
  text-align: center;
  letter-spacing: 0.03em;
  color: rgba(230, 245, 255, 0.95);
  text-shadow: 0 1px 4px rgba(0, 0, 0, 0.85);
}
.gc-world-boss-page .gc-world-boss-hp-pct {
  opacity: 0.85;
}
.gc-world-boss-page .gc-world-boss-hero-meta {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(100%, 28rem);
  gap: 0.2rem;
}
.gc-world-boss-page .gc-world-boss-status-row{
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0.35rem 0.55rem;
  min-height: 1.4rem;
}
.gc-world-boss-page .gc-world-boss-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin: 0.35rem 0 0.35rem;
  justify-content: center;
  align-items: stretch;
}
.gc-world-boss-page .gc-world-boss-actions .wb-attack-btn,
.gc-world-boss-page .gc-world-boss-actions .wb-auto-attack-btn,
.gc-world-boss-page .gc-world-boss-actions .wb-catch-btn {
  font-family: inherit;
  min-height: 2.4rem;
  border-radius: var(--gc-radius-sm, 2px);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.35rem;
}
.gc-world-boss-page .wb-hit-group {
  display: inline-grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem;
  min-width: 7.5rem;
  width: 7.5rem;
  flex: 0 0 auto;
}
.gc-world-boss-page .wb-hit-group .wb-attack-btn {
  min-width: 0;
  width: 100%;
  padding-left: 0.35rem;
  padding-right: 0.35rem;
  box-sizing: border-box;
}
.gc-world-boss-page .gc-world-boss-actions .wb-auto-attack-btn.is-active {
  border-color: rgba(80, 220, 140, 0.65);
  box-shadow: 0 0 10px rgba(60, 200, 120, 0.25);
}
.gc-world-boss-page .gc-world-boss-actions .wb-catch-btn {
  border-color: rgba(180, 120, 255, 0.55);
  background: linear-gradient(180deg, rgba(48, 28, 72, 0.95), rgba(28, 16, 48, 0.98));
}
.gc-world-boss-page .gc-world-boss-actions .wb-catch-btn:hover,
.gc-world-boss-page .gc-world-boss-actions .wb-catch-btn:focus-visible {
  border-color: rgba(210, 160, 255, 0.85);
}
.gc-world-boss-page .gc-world-boss-actions .wb-catch-meta {
  font-size: 0.72rem;
  opacity: 0.85;
}
.gc-world-boss-page .gc-world-boss-catch-chip {
  border-color: rgba(180, 120, 255, 0.45);
  background: rgba(28, 16, 48, 0.75);
  color: rgba(220, 190, 255, 0.95);
}
.gc-world-boss-page .gc-world-boss-waves {
  margin: 0.15rem 0;
  font-size: 0.8rem;
}
.gc-world-boss-page .gc-world-boss-cooldown {
  margin: 0.35rem 0 0.15rem;
  padding: 0.35rem 0.5rem;
  border: 1px solid rgba(255, 180, 80, 0.45);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(40, 24, 8, 0.55);
  color: rgba(255, 220, 160, 0.95);
  font-size: 0.82rem;
  width: 100%;
  box-sizing: border-box;
}
.gc-world-boss-page .gc-world-boss-ready {
  margin: 0.25rem 0 0;
  font-size: 0.8rem;
  color: rgba(140, 230, 180, 0.9);
}
.gc-world-boss-page .gc-world-boss-progress {
  margin-top: 0.85rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(90, 200, 255, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(4, 12, 22, 0.65);
  width: 100%;
  box-sizing: border-box;
}
.gc-world-boss-page .gc-world-boss-progress-title {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(180, 230, 255, 0.92);
}
.gc-world-boss-page .gc-world-boss-progress-grid {
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(7.5rem, 1fr));
  gap: 0.45rem 0.75rem;
}
.gc-world-boss-page .gc-world-boss-progress-item {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}
.gc-world-boss-page .gc-world-boss-progress-item dt {
  margin: 0;
  font-size: 0.68rem;
  color: var(--gc-text-soft);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.gc-world-boss-page .gc-world-boss-progress-item dd {
  margin: 0;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--gc-text);
}
.gc-world-boss-page .gc-btn.is-disabled,
.galaxy-wb-block .gc-btn.is-disabled {
  opacity: 0.45;
  pointer-events: none;
  cursor: not-allowed;
}
.galaxy-wb-cooldown {
  margin: 0.35rem 0;
  padding: 0.3rem 0.45rem;
  border: 1px solid rgba(255, 180, 80, 0.4);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(40, 24, 8, 0.5);
  color: rgba(255, 220, 160, 0.95);
  font-size: 0.78rem;
}
.gc-world-boss-page .gc-world-boss-eta {
  margin: 0.15rem 0;
  font-size: 0.82rem;
}
.gc-world-boss-page .gc-world-boss-ended {
  margin-top: 0.75rem;
  padding-top: 0.65rem;
  border-top: 1px solid var(--gc-border, rgba(120, 160, 200, 0.25));
}
@keyframes gc-wb-glow-pulse {
  0%, 100% {
    filter:
      drop-shadow(0 0 14px var(--wb-glow))
      drop-shadow(0 0 28px var(--wb-glow-soft));
  }
  50% {
    filter:
      drop-shadow(0 0 28px var(--wb-glow))
      drop-shadow(0 0 52px var(--wb-glow-soft));
  }
}
@keyframes gc-wb-glow-pulse-unstable {
  0%, 100% {
    filter:
      drop-shadow(0 0 12px var(--wb-glow))
      drop-shadow(0 0 24px var(--wb-glow-soft));
  }
  40% {
    filter:
      drop-shadow(0 0 34px var(--wb-glow))
      drop-shadow(0 0 60px var(--wb-glow-soft));
  }
  55% {
    filter:
      drop-shadow(0 0 16px var(--wb-glow))
      drop-shadow(0 0 32px var(--wb-glow-soft));
  }
}
@keyframes gc-wb-boss-float {
  0%, 100% { transform: translateY(0) rotate(-1.6deg); }
  50% { transform: translateY(-14px) rotate(1.8deg); }
}
@keyframes gc-wb-aura-pulse {
  0%, 100% { opacity: 0.42; transform: scale(0.94); }
  50% { opacity: 0.78; transform: scale(1.06); }
}
@keyframes gc-wb-shadow-pulse {
  0%, 100% { opacity: 0.75; transform: scaleX(0.96); }
  50% { opacity: 0.95; transform: scaleX(1.04); }
}
@keyframes gc-wb-nebula-drift {
  0%, 100% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-10px) scale(1.04); opacity: 1; }
}
@keyframes gc-wb-scan-drift {
  0% { background-position: 0 0; }
  100% { background-position: 0 18px; }
}
@keyframes gc-wb-particle-drift {
  0%, 100% { transform: translateY(0) translateX(0); opacity: 0.25; }
  40% { opacity: 0.85; }
  50% { transform: translateY(-18px) translateX(6px); opacity: 0.7; }
}
@keyframes gc-wb-ship-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes gc-wb-hit-flash {
  0% { opacity: 0.95; }
  100% { opacity: 0; }
}
@keyframes gc-wb-hp-hit {
  0% { filter: brightness(1.35); }
  100% { filter: brightness(1); }
}
@keyframes gc-wb-crit-shake {
  0%, 100% { transform: translate(0, 0) rotate(-1.6deg); }
  20% { transform: translate(-5px, 3px) rotate(1deg); }
  40% { transform: translate(5px, -3px) rotate(-2deg); }
  60% { transform: translate(-4px, -2px) rotate(1.5deg); }
  80% { transform: translate(4px, 2px) rotate(-1deg); }
}
@media (max-width: 900px) {
  .gc-world-boss-page .gc-world-boss-layout {
    grid-template-columns: 1fr;
  }
}
@media (max-width: 560px) {
  .gc-world-boss-page .gc-world-boss-stage {
    width: 100%;
    max-width: 100%;
    min-height: 340px;
  }
  .gc-world-boss-page .gc-world-boss-hero-art {
    width: min(98%, 400px);
    height: 52%;
  }
  .gc-world-boss-page .gc-world-boss-progress-grid {
    grid-template-columns: 1fr 1fr;
  }
  .gc-world-boss-page .gc-world-boss-ship-img {
    width: 44px;
    height: 44px;
  }
  .gc-world-boss-page .gc-wb-dmg-num {
    font-size: 1.4rem;
  }
  .gc-world-boss-page .gc-wb-dmg-num.is-crit {
    font-size: 1.65rem;
  }
}
@media (prefers-reduced-motion: reduce) {
  .gc-world-boss-page .gc-world-boss-hero-art.gc-wb-glow .gc-world-boss-portrait,
  .gc-world-boss-page .gc-world-boss-hero-art.gc-wb-phase-3.gc-wb-glow .gc-world-boss-portrait,
  .gc-world-boss-page .gc-world-boss-boss-float,
  .gc-world-boss-page .gc-world-boss-aura,
  .gc-world-boss-page .gc-world-boss-shadow,
  .gc-world-boss-page .gc-world-boss-stage::before,
  .gc-world-boss-page .gc-world-boss-stage::after,
  .gc-world-boss-page .gc-world-boss-stage-fx .gc-wb-particle,
  .gc-world-boss-page .gc-world-boss-ship-img,
  .gc-world-boss-page .gc-world-boss-hp-fill,
  .gc-world-boss-page .gc-wb-projectile.is-flying,
  .gc-world-boss-page .gc-wb-dmg-num,
  .gc-world-boss-page .gc-wb-dmg-crit-label,
  .gc-world-boss-page .gc-wb-dmg-salvo,
  .gc-world-boss-page .gc-world-boss-formation.is-lunging .gc-world-boss-ship-slot,
  .gc-world-boss-page .gc-world-boss-ready.is-pulse {
    animation: none;
    transition: none;
  }
  .gc-world-boss-page .gc-world-boss-boss-float {
    transform: none;
  }
  .gc-world-boss-page .gc-world-boss-stage-fx {
    opacity: 0.35;
  }
}
.gc-world-boss-help-modal .gc-world-boss-help-dialog {
  width: min(460px, 100%);
  border-radius: var(--gc-radius-sm, 2px);
}
.gc-world-boss-help-modal .gc-world-boss-help-lead {
  margin: 0 0 0.65rem;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--gc-text-soft);
}
.gc-world-boss-help-modal .gc-world-boss-help-list {
  margin: 0;
  padding-left: 1.1rem;
  font-size: 0.76rem;
  line-height: 1.45;
  color: var(--gc-text-soft);
}
.gc-world-boss-help-modal .gc-world-boss-help-list li + li {
  margin-top: 0.35rem;
}

/* World Boss nav live pulse */
.gc-nav-sub-link--wb-live {
  animation: gc-nav-wb-live-pulse 1.6s ease-in-out infinite;
  border-color: rgba(90, 210, 255, 0.55);
  box-shadow: 0 0 12px rgba(40, 180, 255, 0.25);
}
.gc-nav-sub-link--wb-live .gc-nav-link-label {
  color: rgba(140, 230, 255, 0.98);
}
.gc-nav-badge--wb-live {
  background: rgba(40, 160, 220, 0.85);
  border-color: rgba(120, 220, 255, 0.7);
  color: #041018;
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  min-width: 2.2rem;
}
@keyframes gc-nav-wb-live-pulse {
  0%, 100% {
    opacity: 1;
    box-shadow: 0 0 8px rgba(40, 180, 255, 0.18);
  }
  50% {
    opacity: 0.72;
    box-shadow: 0 0 16px rgba(60, 210, 255, 0.4);
  }
}
@media (prefers-reduced-motion: reduce) {
  .gc-nav-sub-link--wb-live {
    animation: none;
    opacity: 1;
  }
}

/* EPIC-20 World Boss ? galaxy ring portrait slot + inspector (scoped) */
.galaxy-ring-slot-wrap.has-world-boss-wrap {
  z-index: 8;
}
.galaxy-ring-slot-body.has-boss-image {
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  background-color: rgba(4, 12, 22, 0.92);
  box-shadow: inset 0 0 0 1px rgba(90, 200, 255, 0.35), 0 0 14px rgba(60, 180, 255, 0.35);
}
.galaxy-ring-wb-wrap {
  position: absolute;
  inset: 0;
  z-index: 9;
  width: auto;
  height: auto;
  pointer-events: none;
}
.galaxy-ring-wb-marker {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
  white-space: nowrap;
}
.galaxy-ring-slot.has-world-boss {
  box-shadow: 0 0 12px rgba(60, 180, 255, 0.35);
}
.galaxy-ring-slot.has-asteroid {
  box-shadow: 0 0 10px rgba(140, 160, 190, 0.3);
}
.galaxy-ring-slot-owner-label--world-boss {
  border-color: rgba(90, 200, 255, 0.55);
  background: rgba(8, 28, 44, 0.85);
  color: rgba(160, 230, 255, 0.95);
}
.galaxy-ring-slot-owner-label--asteroid {
  border-color: rgba(160, 180, 210, 0.55);
  background: rgba(16, 20, 28, 0.88);
  color: rgba(190, 210, 235, 0.95);
}
.galaxy-ring-slot-owner-label--pirate {
  border-color: rgba(230, 90, 90, 0.6);
  background: rgba(40, 10, 12, 0.9);
  color: rgba(255, 170, 160, 0.95);
}
.galaxy-pirate-block {
  margin-top: 0.65rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(230, 90, 90, 0.4);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(28, 8, 10, 0.55);
}
.galaxy-pirate-block-title {
  font-size: 0.7rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(255, 170, 160, 0.9);
}
.galaxy-pirate-hp {
  height: 6px;
  margin: 0.4rem 0 0.25rem;
  background: rgba(0, 0, 0, 0.45);
  border: 1px solid rgba(230, 90, 90, 0.25);
}
.galaxy-pirate-hp-fill {
  height: 100%;
  background: linear-gradient(90deg, #a33, #e66);
}
.galaxy-wb-block {
  margin-top: 0.65rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(90, 200, 255, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(6, 16, 28, 0.55);
}
.galaxy-asteroid-block {
  margin-top: 0.65rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(160, 180, 210, 0.4);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(10, 14, 22, 0.55);
}
.galaxy-asteroid-desc {
  margin: 0 0 0.45rem;
  font-size: 0.72rem;
  line-height: 1.35;
}
.galaxy-asteroid-board {
  margin: 0;
  padding: 6px 14px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.14);
  background: rgba(4, 10, 18, 0.72);
}
.galaxy-asteroid-board.is-empty {
  padding: 5px 14px;
}
.galaxy-asteroid-board-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 0;
}
.galaxy-asteroid-board-toggle {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin: 0;
  padding: 2px 0;
  border: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  text-align: left;
  min-width: 0;
  flex: 1;
}
.galaxy-asteroid-board-toggle:hover .galaxy-asteroid-board-title {
  color: var(--gc-primary-2, rgba(120, 230, 255, 0.95));
}
.galaxy-asteroid-board-chevron {
  display: inline-block;
  width: 0.85rem;
  font-size: 0.7rem;
  color: var(--gc-text-soft);
  transition: transform 0.12s ease;
}
.galaxy-asteroid-board:not(.is-collapsed) .galaxy-asteroid-board-chevron {
  transform: rotate(90deg);
}
.galaxy-asteroid-board-title {
  margin: 0;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(190, 210, 235, 0.95);
}
.galaxy-asteroid-board-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.35rem;
  padding: 0 5px;
  border: 1px solid rgba(70, 229, 255, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(20, 40, 60, 0.7);
  font-size: 0.68rem;
  color: rgba(160, 230, 255, 0.95);
}
.galaxy-asteroid-board-next {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  margin-left: auto;
  padding-left: 8px;
  color: var(--gc-text-soft, rgba(180, 210, 230, 0.72));
  font-size: 0.68rem;
  white-space: nowrap;
  min-width: 0;
}
.galaxy-asteroid-board-next-label {
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.85;
}
.galaxy-asteroid-board-next-eta,
.galaxy-asteroid-board-cap {
  color: rgba(160, 230, 255, 0.95);
}
.galaxy-asteroid-board-schedule {
  margin: 0 0 8px;
  font-size: 0.7rem;
  line-height: 1.35;
}
.galaxy-asteroid-board-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 1px 5px;
  border: 1px solid rgba(70, 229, 255, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  font-size: 0.62rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: rgba(180, 210, 230, 0.9);
  background: rgba(12, 28, 42, 0.85);
}
.galaxy-asteroid-board-badge--en-route {
  border-color: rgba(255, 190, 80, 0.45);
  color: rgba(255, 210, 140, 0.95);
}
.galaxy-asteroid-board-row.is-en-route {
  border-color: rgba(255, 190, 80, 0.35);
  box-shadow: inset 0 0 0 1px rgba(255, 190, 80, 0.12);
}
.galaxy-asteroid-board-row.is-engaged {
  opacity: 0.88;
}
.galaxy-asteroid-board-slots {
  color: rgba(160, 230, 255, 0.85);
  font-size: 0.68rem;
}
.galaxy-asteroid-board-empty-wrap {
  display: grid;
  gap: 6px;
}
.galaxy-asteroid-board-empty-timer {
  margin: 0;
}
.galaxy-ring-asteroid-wrap.is-en-route .galaxy-ring-asteroid-marker,
.galaxy-ring-asteroid-marker.is-en-route {
  opacity: 0.85;
  filter: saturate(1.15);
}
.galaxy-ring-asteroid-en-route-badge {
  position: absolute;
  right: -2px;
  top: -2px;
  font-size: 0.65rem;
  color: rgba(255, 210, 140, 0.95);
  text-shadow: 0 0 4px rgba(0, 0, 0, 0.8);
}
.galaxy-asteroid-block.is-en-route {
  border-color: rgba(255, 190, 80, 0.35);
}
.galaxy-asteroid-block-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.galaxy-asteroid-board-panel {
  margin-top: 8px;
}
.galaxy-asteroid-board.is-collapsed .galaxy-asteroid-board-panel,
.galaxy-asteroid-board-panel[hidden] {
  display: none !important;
}
.galaxy-asteroid-board-subtitle {
  margin: 0 0 8px;
  font-size: 0.7rem;
  line-height: 1.35;
}
.galaxy-asteroid-help-btn {
  flex-shrink: 0;
  min-width: 28px;
}
.galaxy-asteroid-board-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 6px;
  max-height: 180px;
  overflow: auto;
}
.galaxy-asteroid-board-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 6px 8px;
  border: 1px solid rgba(120, 150, 180, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(8, 14, 22, 0.65);
}
.galaxy-asteroid-board-row.is-current-system {
  border-color: rgba(70, 229, 255, 0.45);
  box-shadow: inset 0 0 0 1px rgba(70, 229, 255, 0.12);
}
.galaxy-asteroid-board-row-main,
.galaxy-asteroid-board-row-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}
.galaxy-asteroid-board-title-icon,
.galaxy-asteroid-board-thumb,
.galaxy-asteroid-icon {
  display: inline-block;
  flex-shrink: 0;
  border-radius: 50%;
  border: 1px solid rgba(140, 200, 230, 0.45);
  background: var(--gc-galaxy-asteroid-img, url("img/debris/asteroid.jpg")) center/cover no-repeat;
  box-shadow: 0 0 6px rgba(70, 140, 190, 0.25);
}
.galaxy-asteroid-board-title-icon {
  width: 16px;
  height: 16px;
}
.galaxy-asteroid-board-thumb {
  width: 18px;
  height: 18px;
}
.galaxy-asteroid-icon {
  width: 20px;
  height: 20px;
}
.galaxy-asteroid-board-type {
  font-size: 0.74rem;
  font-weight: 700;
  color: rgba(210, 225, 240, 0.95);
}
.galaxy-asteroid-board-coords,
.galaxy-asteroid-board-loot,
.galaxy-asteroid-board-ttl {
  font-size: 0.7rem;
  color: var(--gc-text-soft);
}
.galaxy-asteroid-board-empty {
  margin: 0;
  font-size: 0.7rem;
  line-height: 1.35;
}
.galaxy-asteroid-help-modal {
  z-index: var(--gc-z-modal, 13000);
}
.galaxy-asteroid-help-modal .galaxy-asteroid-help-dialog {
  width: min(460px, 100%);
  border-radius: var(--gc-radius-sm, 2px);
}
.galaxy-asteroid-help-modal .galaxy-asteroid-help-lead {
  margin: 0 0 0.65rem;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--gc-text-soft);
}
.galaxy-asteroid-help-modal .galaxy-asteroid-help-list {
  margin: 0;
  padding-left: 1.1rem;
  display: grid;
  gap: 0.35rem;
  font-size: 0.76rem;
  line-height: 1.45;
  color: var(--gc-text-soft);
}
.galaxy-asteroid-block-head {
  display: flex;
  gap: 0.45rem;
  align-items: center;
  margin-bottom: 0.4rem;
  font-size: 0.78rem;
  font-weight: 700;
  color: rgba(190, 210, 235, 0.95);
}
.galaxy-asteroid-stats {
  margin: 0 0 0.5rem;
  display: grid;
  gap: 4px;
}
.galaxy-asteroid-stats > div {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.72rem;
}
.galaxy-asteroid-stats dt {
  margin: 0;
  color: var(--gc-text-soft);
}
.galaxy-asteroid-stats dd {
  margin: 0;
}
.galaxy-wb-block-head {
  display: flex;
  gap: 0.55rem;
  align-items: center;
  margin-bottom: 0.45rem;
}
.galaxy-wb-block-art {
  width: 48px;
  height: 48px;
  object-fit: cover;
  border: 1px solid rgba(90, 180, 220, 0.4);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(4, 10, 18, 0.9);
  flex: 0 0 auto;
}
.galaxy-wb-block-meta {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
}
.galaxy-wb-block-title {
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gc-text-soft);
}
.galaxy-wb-hp {
  position: relative;
  height: 8px;
  border: 1px solid rgba(90, 180, 220, 0.4);
  background: rgba(8, 16, 24, 0.9);
  overflow: hidden;
  margin-bottom: 0.25rem;
}
.galaxy-wb-hp-fill {
  height: 100%;
  max-width: 100%;
  background: linear-gradient(90deg, rgba(40, 140, 190, 0.85), rgba(80, 220, 255, 0.9));
}
.galaxy-wb-hp-text {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
}
.galaxy-fleet-action--world-boss {
  border-color: rgba(90, 200, 255, 0.55);
}
.pe-choice-confirm-body .pe-choice-confirm-label {
  margin: 0 0 0.25rem;
  font-size: 0.88rem;
  font-weight: 700;
  color: var(--gc-text-soft);
}
.pe-choice-confirm-body .pe-choice-confirm-effect {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  line-height: 1.35;
}
.pe-choice-confirm-body .pe-choice-confirm-warning {
  margin: 0 0 0.55rem;
  font-size: 0.68rem;
  color: rgba(255, 196, 86, 0.85);
}
.pe-choice-confirm-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.planet-evolution-page .pe-hero-chronicle-btn:hover,
.planet-evolution-page .pe-hero-chronicle-btn:focus-visible,
.planet-evolution-page .pe-hero-chronicle-btn[aria-expanded="true"] {
  border-color: rgba(70, 229, 255, 0.35);
  color: var(--gc-text);
}
.pe-chronicle-modal .pe-chronicle-dialog {
  width: min(420px, 100%);
  max-height: min(60vh, 520px);
}
.pe-chronicle-modal .pe-chronicle-modal-body {
  overflow-x: hidden;
  overflow-y: auto;
  max-height: calc(60vh - 3.5rem);
  padding-top: 0.15rem;
}
.planet-evolution-page .pe-chronicle-timeline {
  list-style: none;
  margin: 0;
  padding: 0;
  min-width: 0;
}
.planet-evolution-page .pe-chronicle-timeline-item {
  display: grid;
  grid-template-columns: 1.35rem minmax(0, 1fr);
  gap: 0.55rem;
  align-items: start;
  padding: 0.45rem 0;
  min-width: 0;
  border-bottom: 1px solid rgba(120, 190, 255, 0.08);
}
.planet-evolution-page .pe-chronicle-timeline-item:last-child {
  border-bottom: 0;
  padding-bottom: 0;
}
.planet-evolution-page .pe-chronicle-timeline-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.35rem;
  height: 1.35rem;
  border-radius: 50%;
  border: 1px solid rgba(70, 229, 255, 0.22);
  background: rgba(0, 0, 0, 0.25);
  font-size: 0.72rem;
  line-height: 1;
}
.planet-evolution-page .pe-chronicle-timeline-content {
  min-width: 0;
}
.planet-evolution-page .pe-chronicle-timeline-meta {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.12rem;
  min-width: 0;
}
.planet-evolution-page .pe-chronicle-timeline-type {
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}
.planet-evolution-page .pe-chronicle-timeline-date {
  flex: 0 0 auto;
  font-size: 0.58rem;
  color: rgba(180, 220, 245, 0.62);
  white-space: nowrap;
}
.planet-evolution-page .pe-chronicle-timeline-item--highlight .pe-chronicle-timeline-icon {
  border-color: rgba(255, 196, 86, 0.35);
  background: rgba(255, 196, 86, 0.08);
}
.planet-evolution-page .pe-chronicle-timeline-item--highlight .pe-chronicle-timeline-type {
  color: rgba(255, 216, 140, 0.82);
}
.planet-evolution-page .pe-chronicle-timeline-text {
  margin: 0;
  min-width: 0;
  font-size: 0.74rem;
  line-height: 1.4;
  color: var(--gc-text-soft);
  white-space: normal;
  overflow: visible;
  text-overflow: clip;
}

/* Legacy compact footer ? removed from template */
.planet-evolution-page .pe-compact-footer {
  display: none;
}

/* Compact footer strips */
.planet-evolution-page .pe-compact-footer {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.4rem;
  min-width: 0;
}
.planet-evolution-page .pe-compact-strip {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 0.45rem 0.55rem;
  align-items: start;
  min-width: 0;
  padding: 0.4rem 0.55rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.12);
  background: rgba(0, 0, 0, 0.16);
}
.planet-evolution-page .pe-compact-strip--urgent {
  border-color: rgba(255, 120, 80, 0.35);
  background: rgba(48, 12, 8, 0.35);
}
.planet-evolution-page .pe-compact-label {
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  opacity: 0.72;
  white-space: nowrap;
  padding-top: 0.08rem;
}
.planet-evolution-page .pe-compact-body {
  min-width: 0;
  font-size: 0.76rem;
  line-height: 1.35;
}
.planet-evolution-page .pe-compact-body--wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem 0.35rem;
  align-items: center;
}
.planet-evolution-page .pe-compact-inline {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.planet-evolution-page .pe-compact-inline--muted {
  opacity: 0.72;
}
.planet-evolution-page .pe-compact-event {
  display: flex;
  flex-wrap: wrap;
  gap: 0.28rem 0.4rem;
  align-items: center;
}
.planet-evolution-page .pe-compact-urgent-tag {
  font-size: 0.58rem;
  font-weight: 800;
  text-transform: uppercase;
  color: #ffb8a8;
}
.planet-evolution-page .pe-compact-event-name {
  font-weight: 700;
  font-size: 0.76rem;
}
.planet-evolution-page .pe-compact-event-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  width: 100%;
}
.planet-evolution-page .pe-compact-event-actions .gc-btn {
  flex: 1 1 auto;
  min-width: 5rem;
}
.planet-evolution-page .pe-focus-chip-inline {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.12rem 0.35rem;
  border-radius: var(--gc-radius-pill);
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.72rem;
}
.planet-evolution-page .pe-compact-spec {
  font-size: 0.72rem;
  opacity: 0.85;
}
.planet-evolution-page .pe-spec-picker-inline {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 0.25rem;
}
.planet-evolution-page .pe-prod-chip--inline {
  padding: 0.12rem 0.38rem;
  font-size: 0.68rem;
}
.planet-evolution-page .pe-timeline--compact .pe-timeline-item {
  padding: 0.15rem 0;
}
.planet-evolution-page .pe-timeline--compact .pe-timeline-text {
  font-size: 0.72rem;
}
.planet-evolution-page .pe-compact-details {
  padding: 0.35rem 0.55rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.12);
  background: rgba(0, 0, 0, 0.14);
}
.planet-evolution-page .pe-compact-details-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
  cursor: pointer;
  list-style: none;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.planet-evolution-page .pe-compact-details-summary::-webkit-details-marker {
  display: none;
}
.planet-evolution-page .pe-compact-details .pe-zone-body {
  margin-top: 0.45rem;
  padding-top: 0.45rem;
}

/* Events */
.planet-evolution-page .pe-event-card-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  gap: 0.65rem;
}
.planet-evolution-page .pe-event-card {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.75rem 0.85rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.14);
  background: rgba(0, 0, 0, 0.18);
}
.planet-evolution-page .pe-event-card--urgent {
  border-color: rgba(255, 120, 80, 0.45);
  background: linear-gradient(135deg, rgba(48, 12, 8, 0.85), rgba(24, 8, 6, 0.9));
  box-shadow: 0 0 18px rgba(255, 120, 80, 0.12);
}
.planet-evolution-page .pe-event-card--stable {
  border-color: rgba(95, 214, 122, 0.3);
  background: rgba(95, 214, 122, 0.06);
  align-items: center;
}
.planet-evolution-page .pe-event-card-icon {
  flex: 0 0 2rem;
  width: 2rem;
  height: 2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.15rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
}
.planet-evolution-page .pe-event-card-title {
  margin: 0.25rem 0 0.65rem;
  font-size: 1rem;
}
.planet-evolution-page .pe-event-urgent {
  display: inline-block;
  margin-bottom: 0.25rem;
  padding: 0.1rem 0.4rem;
  border-radius: var(--gc-radius-pill);
  background: rgba(255, 120, 80, 0.25);
  color: #ffb8a8;
  font-size: 0.68rem;
  font-weight: 800;
  text-transform: uppercase;
}
.planet-evolution-page .pe-event-name {
  display: block;
  font-weight: 700;
  font-size: 0.88rem;
}
.planet-evolution-page .pe-event-state {
  display: block;
  font-size: 0.75rem;
  opacity: 0.75;
  margin-top: 0.15rem;
}
.planet-evolution-page .pe-event-stable-msg {
  margin: 0;
  font-size: 0.88rem;
  color: #b8f0c4;
}
.planet-evolution-page .pe-event-actions {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
}
.planet-evolution-page .pe-event-actions .gc-btn {
  width: 100%;
}

/* Planet focus */
.planet-evolution-page .pe-focus-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(8.5rem, 1fr));
  gap: 0.55rem;
  margin-bottom: 0.85rem;
}
.planet-evolution-page .pe-focus-chip {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.2rem;
  padding: 0.55rem 0.45rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.14);
  background: rgba(0, 0, 0, 0.18);
  text-align: center;
}
.planet-evolution-page .pe-focus-icon {
  font-size: 1.35rem;
  line-height: 1;
}
.planet-evolution-page .pe-focus-label {
  font-size: 0.72rem;
  font-weight: 600;
  opacity: 0.85;
}
.planet-evolution-page .pe-focus-value {
  font-size: 0.82rem;
  font-weight: 800;
  color: #46e5ff;
}
.planet-evolution-page .pe-focus-spec {
  margin: 0 0 0.55rem;
  font-size: 0.88rem;
}

/* Production strip */
.planet-evolution-page .pe-prod-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
}
.planet-evolution-page .pe-prod-chip {
  display: inline-flex;
  align-items: center;
  padding: 0.35rem 0.65rem;
  border-radius: var(--gc-radius-pill);
  border: 1px solid rgba(95, 214, 122, 0.35);
  background: rgba(95, 214, 122, 0.1);
  color: #b8f0c4;
  font-size: 0.78rem;
  font-weight: 700;
}
.planet-evolution-page .pe-prod-chip--export {
  border-color: rgba(70, 229, 255, 0.35);
  background: rgba(70, 229, 255, 0.1);
  color: #8eefff;
}
.planet-evolution-page .pe-prod-chip--chain {
  border-color: rgba(180, 140, 255, 0.35);
  background: rgba(180, 140, 255, 0.1);
  color: #d4c0ff;
}
.planet-evolution-page .pe-prod-chip--muted {
  border-color: rgba(120, 190, 255, 0.2);
  background: rgba(255, 255, 255, 0.04);
  color: inherit;
  opacity: 0.75;
  font-weight: 600;
}

/* Chronicle timeline */
.planet-evolution-page .pe-timeline {
  list-style: none;
  margin: 0;
  padding: 0.25rem 0 0.25rem 0.5rem;
}
.planet-evolution-page .pe-timeline-item {
  position: relative;
  display: flex;
  align-items: flex-start;
  gap: 0.85rem;
  padding: 0.55rem 0 0.55rem 0.15rem;
}
.planet-evolution-page .pe-timeline-item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 0.47rem;
  top: 1.35rem;
  bottom: -0.1rem;
  width: 2px;
  background: linear-gradient(180deg, rgba(70, 229, 255, 0.3), rgba(70, 229, 255, 0.06));
}
.planet-evolution-page .pe-timeline-dot {
  flex: 0 0 0.65rem;
  width: 0.65rem;
  height: 0.65rem;
  margin-top: 0.25rem;
  border-radius: 50%;
  background: #46e5ff;
  box-shadow: 0 0 8px rgba(70, 229, 255, 0.45);
}
.planet-evolution-page .pe-timeline-item--empty .pe-timeline-dot {
  background: rgba(120, 190, 255, 0.35);
  box-shadow: none;
}
.planet-evolution-page .pe-timeline-text {
  font-size: 0.85rem;
  line-height: 1.4;
}

@media (max-width: 1024px) {
  .planet-evolution-page .pe-core-row {
    grid-template-columns: 1fr;
  }
  .planet-evolution-page .pe-zone--goal {
    order: -1;
  }
  .planet-evolution-page .pe-hero-mid-row {
    grid-template-columns: 1fr;
  }
  .planet-evolution-page .pe-hero-bonuses-inline {
    padding-left: 0;
    border-left: none;
    padding-top: 0.35rem;
    border-top: 1px solid rgba(120, 190, 255, 0.1);
  }
}
@media (max-width: 720px) {
  .planet-evolution-page .pe-hero-monolith-body {
    grid-template-columns: 1fr;
  }
  .planet-evolution-page .pe-hero-visual-col,
  .planet-evolution-page .pe-hero-visual {
    max-width: 8rem;
    margin: 0 auto;
  }
  .pe-planet-details-popover.gc-popover-layer {
    left: 8px !important;
    right: 8px !important;
    bottom: 8px !important;
    top: auto !important;
    width: auto !important;
    max-width: none;
    transform: none !important;
  }
  .planet-evolution-page .pe-planet-details-popover:not(.gc-popover-layer) {
    left: 50%;
    top: calc(100% + 8px);
    transform: translateX(-50%);
  }
  .planet-evolution-page .pe-hero-stat-strip {
    grid-template-columns: 1fr;
  }
  .planet-evolution-page .pe-tech-grid {
    grid-template-columns: 1fr;
    max-height: none;
  }
}

/* ==========================================================================
   Player messages (inbox) ? Genesis Colonies panel language
   ========================================================================== */

.gc-messages-nav-badge,
.gc-messages-hud-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1rem;
  height: 1rem;
  margin-left: 0.35rem;
  padding: 0 0.28rem;
  border: 1px solid rgba(70, 229, 255, 0.35);
  border-radius: var(--gc-radius-sm);
  background: rgba(70, 229, 255, 0.1);
  color: var(--gc-primary-2);
  font-family: var(--gc-mono);
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1;
}

.gc-nav-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1rem;
  height: 1rem;
  margin-left: 0.35rem;
  padding: 0 0.28rem;
  border: 1px solid rgba(70, 229, 255, 0.35);
  border-radius: var(--gc-radius-sm);
  background: rgba(70, 229, 255, 0.12);
  color: var(--gc-primary-2);
  font-family: var(--gc-mono);
  font-size: 0.62rem;
  font-weight: 800;
  line-height: 1;
  pointer-events: none;
}

.gc-nav-badge--alert {
  border-color: rgba(255, 168, 76, 0.45);
  background: rgba(255, 140, 40, 0.14);
  color: #ffb86a;
  box-shadow: 0 0 8px rgba(255, 140, 40, 0.18);
}

.gc-nav-badge.hidden,
.gc-nav-badge[hidden] {
  display: none !important;
}

.gc-messages-nav-badge.hidden,
.gc-messages-hud-badge.hidden,
.gc-messages-nav-badge[hidden],
.gc-messages-hud-badge[hidden] {
  display: none !important;
}

.gc-bottom-nav-icon--letter{
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  opacity: 0.92;
}

.gc-bottom-nav-item[data-nav-module="messages"]{
  position: relative;
}

.gc-bottom-nav-item[data-nav-module="messages"] .gc-messages-nav-badge{
  position: absolute;
  top: 2px;
  right: calc(50% - 1.35rem);
  min-width: 1rem;
  height: 1rem;
  margin-left: 0;
  padding: 0 0.22rem;
  font-size: 0.58rem;
  pointer-events: none;
}

.gc-hud-panel-messages {
  position: relative;
  flex: 0 0 auto;
  width: auto;
  min-height: 0;
  height: auto;
  text-decoration: none;
  color: inherit;
  transition: border-color 0.16s ease, box-shadow 0.16s ease;
}

.gc-hud-panel-messages.active {
  border-color: rgba(70, 229, 255, 0.42);
  box-shadow: var(--gc-border-glow), 0 10px 22px rgba(0, 0, 0, 0.32);
}

.gc-hud-panel-messages .gc-chat-fab-badge {
  top: -4px;
  right: -4px;
}

.gc-hud-panel-messages:hover {
  border-color: var(--gc-panel-border-strong);
  box-shadow: var(--gc-border-glow);
}

/* GC-575 ? Planet Registry (far-right rail) */
.gc-sidebar-right-rails{
  min-width: 0;
  min-height: 0;
}

.gc-planet-registry{
  display: flex;
  flex-direction: column;
  gap: 6px;
  min-height: 0;
  flex: 1 1 auto;
  padding: 8px 8px 6px;
  border: 1px solid rgba(70, 229, 255, 0.22);
  border-radius: var(--gc-radius-xs, 0);
  background:
    linear-gradient(180deg, rgba(6, 16, 30, 0.96) 0%, rgba(3, 10, 20, 0.98) 100%);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.4),
    inset 0 1px 0 rgba(70, 229, 255, 0.06);
}

.gc-planet-registry.is-busy{
  opacity: 0.65;
  pointer-events: none;
}

.gc-planet-registry-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 2px 4px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.14);
}

.gc-planet-registry-title{
  margin: 0;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(180, 240, 255, 0.88);
}

.gc-planet-registry-limit{
  flex: 0 0 auto;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  color: rgba(120, 200, 255, 0.78);
  padding: 1px 5px;
  border-radius: var(--gc-radius-sm, 2px);
  border: 1px solid rgba(120, 200, 255, 0.22);
  background: rgba(120, 200, 255, 0.06);
}

.gc-planet-registry-list{
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-height: 0;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: rgba(70, 229, 255, 0.35) rgba(4, 10, 22, 0.4);
  max-height: min(52vh, 420px);
  padding-right: 2px;
}

.gc-planet-registry-empty{
  margin: 8px 2px;
  font-size: 0.72rem;
  color: rgba(160, 200, 220, 0.55);
}

.gc-planet-registry-card{
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  width: 100%;
  margin: 0;
  padding: 6px 7px;
  border: 1px solid rgba(70, 229, 255, 0.14);
  border-radius: var(--gc-radius-xs, 0);
  background: rgba(4, 12, 24, 0.72);
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.12s ease, background 0.12s ease, box-shadow 0.12s ease;
}

.gc-planet-registry-card:hover{
  border-color: rgba(70, 229, 255, 0.34);
  background: rgba(8, 20, 36, 0.9);
  box-shadow: inset 0 0 12px rgba(70, 229, 255, 0.05);
}

.gc-planet-registry-card.is-active{
  border-color: rgba(127, 255, 217, 0.45);
  background: linear-gradient(90deg, rgba(20, 60, 55, 0.35) 0%, rgba(6, 16, 28, 0.85) 100%);
  box-shadow: inset 2px 0 0 rgba(127, 255, 217, 0.75);
}

.gc-planet-registry-card-main{
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
  width: 100%;
}

.gc-planet-registry-card-thumb{
  flex: 0 0 auto;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  overflow: hidden;
  border: 1px solid rgba(70, 229, 255, 0.38);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.45),
    inset 0 0 6px rgba(0, 0, 0, 0.35);
  background-color: rgba(6, 14, 28, 0.9);
  background-size: cover;
  background-position: center;
}

.gc-planet-registry-card-thumb.has-planet-image{
  background-image: var(--gr-planet-image);
}

@supports (background-image: image-set(url("x") type("image/webp"))){
  .gc-planet-registry-card-thumb.has-planet-image{
    background-image: image-set(
      var(--gr-planet-image-webp, var(--gr-planet-image)) type("image/webp"),
      var(--gr-planet-image) type("image/png"),
      var(--gr-planet-image) type("image/jpeg")
    );
  }
}

.gc-planet-registry-card.is-active .gc-planet-registry-card-thumb{
  border-color: rgba(127, 255, 217, 0.65);
  box-shadow:
    0 0 0 1px rgba(127, 255, 217, 0.25),
    inset 0 0 6px rgba(0, 0, 0, 0.35);
}

.gc-planet-registry-card-copy{
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 1px;
  min-width: 0;
  flex: 1 1 auto;
}

.gc-planet-registry-card-name-row{
  display: flex;
  align-items: center;
  gap: 6px;
  min-width: 0;
  max-width: 100%;
}

.gc-planet-registry-card-name{
  font-size: 0.82rem;
  font-weight: 700;
  color: rgba(215, 246, 255, 0.96);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  min-width: 0;
  max-width: 100%;
}

.gc-planet-registry-card-role{
  font-size: 0.62rem;
  font-weight: 500;
  color: rgba(127, 255, 217, 0.62);
  letter-spacing: 0.02em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

.gc-planet-registry-card-meta{
  display: flex;
  align-items: center;
  gap: 4px;
  min-width: 0;
  max-width: 100%;
  margin-top: 1px;
  padding-top: 2px;
  border-top: 1px solid rgba(127, 255, 217, 0.1);
}

.gc-planet-registry-card-coord{
  display: block;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.6rem;
  color: rgba(127, 255, 217, 0.48);
  letter-spacing: 0.04em;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-planet-registry-card-coord a.gc-galaxy-coord-link{
  color: inherit;
}

.gc-planet-registry-card-status{
  display: inline-flex;
  align-items: center;
  gap: 2px;
  flex: 0 0 auto;
  line-height: 1;
}

.gc-planet-registry-status-icon{
  display: inline-block;
  font-size: 0.72rem;
  line-height: 1;
  opacity: 0.85;
  user-select: none;
}

@media (min-width: 1280px){
  .gc-planet-registry-list{
    max-height: none;
    flex: 1 1 auto;
  }
}

/* Shared HUD select ? same pattern as former header planet switcher */

.gc-hud-select{
  position: relative;
  width: 100%;
  min-width: 0;
}
.gc-hud-select.is-open{
  z-index: var(--gc-z-dropdown);
}
.gc-hud-select-native{
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}
.gc-hud-select-trigger{
  width: 100%;
  justify-content: space-between;
  gap: 8px;
  padding: 7px 10px;
  cursor: pointer;
  text-align: left;
}
.gc-hud-select-trigger:hover{
  border-color: rgba(70, 229, 255, 0.32);
  box-shadow: var(--gc-border-glow), 0 10px 22px rgba(0, 0, 0, 0.32);
}
.gc-hud-select-value{
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.82rem;
  font-weight: 600;
  color: rgba(215, 246, 255, 0.94);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.gc-hud-select-chevron{
  flex: 0 0 auto;
  font-size: 0.65rem;
  line-height: 1;
  color: rgba(127, 255, 217, 0.65);
}
.gc-hud-select-menu{
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  right: 0;
  z-index: var(--gc-z-dropdown);
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 4px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.22);
  background: linear-gradient(180deg, rgba(8, 14, 28, 0.98), rgba(6, 10, 22, 0.96));
  box-shadow: 0 12px 28px rgba(0, 0, 0, 0.5);
  max-height: min(240px, 45vh);
  overflow-y: auto;
}
.gc-hud-select-menu.gc-popover-layer{
  position: fixed;
  top: 0;
  left: 0;
  right: auto;
  width: auto;
  max-height: min(240px, calc(100vh - 16px));
}
.gc-hud-select-menu[hidden]{
  display: none !important;
  pointer-events: none !important;
}
body > .gc-hud-select-menu.gc-popover-layer[hidden]{
  display: none !important;
  pointer-events: none !important;
}
body > .gc-hud-select-menu.gc-popover-layer:not([hidden]){
  pointer-events: auto;
}
.gc-hud-select-item{
  display: block;
  width: 100%;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: var(--gc-radius-sm);
  background: transparent;
  color: rgba(215, 246, 255, 0.94);
  font-size: 0.82rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: background 0.12s ease, border-color 0.12s ease;
}
.gc-hud-select-item:hover{
  background: rgba(70, 229, 255, 0.06);
  border-color: rgba(70, 229, 255, 0.14);
}
.gc-hud-select-item.is-active{
  background: rgba(70, 229, 255, 0.1);
  border-color: rgba(70, 229, 255, 0.28);
}
.gc-hud-select-item:disabled{
  opacity: 0.45;
  cursor: not-allowed;
}
.gc-hud-select.is-open .gc-hud-select-trigger{
  border-color: rgba(70, 229, 255, 0.38);
  box-shadow: var(--gc-border-glow);
}
.gc-hud-select-trigger:disabled{
  opacity: 0.45;
  cursor: not-allowed;
}

@media (max-width: 980px){
  .gc-layout .gc-sidebar-desktop{
    position: relative;
    z-index: 2;
  }
}

@media (max-width: 768px){
  .gc-hslot-messages{
    order: 2;
    margin-left: auto;
  }
}

.gc-messages-page {
  max-width: 100%;
  overflow-x: hidden;
}

.gc-messages-page .gc-messages-panel {
  padding: 0;
  overflow: hidden;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  min-height: 0;
}

.gc-messages-page .gc-messages-head {
  padding: var(--gc-panel-pad);
  padding-bottom: 10px;
  border-bottom: 1px solid var(--gc-panel-border);
}

.gc-messages-unread-pill {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.4rem;
  padding: 0 0.35rem;
  margin-left: 0.25rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.35);
  background: rgba(70, 229, 255, 0.1);
  color: var(--gc-primary-2);
  font-family: var(--gc-mono);
  font-weight: 700;
}

.gc-messages-head-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.gc-messages-body {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  gap: 0;
  padding: 16px var(--gc-panel-pad) var(--gc-panel-pad);
  min-width: 0;
  min-height: 0;
  max-width: 100%;
  overflow: hidden;
}

.gc-messages-page .gc-messages-tabs.building-tabs,
.gc-messages-page .gc-messages-tabs--global.building-tabs {
  padding: 8px var(--gc-panel-pad) 10px;
  gap: 6px;
  flex-wrap: nowrap;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: thin;
  border-bottom: 1px solid rgba(70, 229, 255, 0.1);
}

.gc-messages-tabs--global {
  display: flex;
  min-width: 0;
  max-width: 100%;
}

.gc-messages-list-toolbar {
  display: none;
}

.gc-messages-list-footer {
  flex: 0 0 auto;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
  border-top: 1px solid var(--gc-panel-border);
  background: var(--gc-panel-bg-2);
  position: relative;
  z-index: 1;
}

.gc-messages-select-normal {
  display: flex;
  justify-content: flex-start;
}

.gc-messages-select-active {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.gc-messages-select-active-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.gc-messages-selected-count {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gc-primary-2);
  font-family: var(--gc-mono);
}

.gc-messages-select-all {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gc-text-soft);
  cursor: pointer;
  user-select: none;
}

.gc-messages-select-all input {
  accent-color: var(--gc-primary-2);
}

.gc-messages-bulk-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.gc-messages-item {
  position: relative;
  display: block;
  width: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  box-sizing: border-box;
  text-align: left;
  padding: 14px 16px;
  border: 0;
  border-bottom: 1px solid rgba(120, 190, 255, 0.08);
  background: transparent;
  color: var(--gc-text);
  cursor: pointer;
  transition: background 0.14s ease, box-shadow 0.14s ease;
}

.gc-messages-list-wrap.is-selecting .gc-messages-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 8px;
  align-items: start;
  padding: 12px 14px 12px 10px;
}

.gc-messages-item-check {
  display: none;
  align-items: flex-start;
  padding-top: 2px;
  cursor: pointer;
}

.gc-messages-list-wrap.is-selecting .gc-messages-item-check {
  display: flex;
}

.gc-messages-item-check input {
  accent-color: var(--gc-primary-2);
}

.gc-messages-item-content {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.gc-messages-page .gc-messages-tabs .tab-btn {
  border-radius: var(--gc-radius-sm);
  flex: 0 0 auto;
  white-space: nowrap;
}

.gc-messages-page .gc-messages-tabs .tab-btn--utility {
  opacity: 0.82;
}

.gc-messages-layout {
  display: grid;
  grid-template-columns: minmax(280px, 36%) minmax(0, 1fr);
  gap: 16px;
  flex: 1 1 auto;
  min-height: 520px;
  height: clamp(520px, 62vh, calc(100vh - 200px));
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  align-items: stretch;
}

.gc-messages-inset {
  border: 1px solid var(--gc-panel-border);
  background: var(--gc-panel-bg-2);
  border-radius: var(--gc-radius-sm);
  box-shadow: inset 0 1px 0 rgba(70, 229, 255, 0.04);
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.gc-messages-list-wrap {
  display: flex;
  flex-direction: column;
  min-height: 0;
  min-width: 0;
  height: 100%;
  overflow: hidden;
}

.gc-messages-list {
  display: block;
  flex: 1 1 0;
  min-height: 120px;
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

.gc-messages-list.is-loading {
  opacity: 0.55;
  transition: opacity 0.15s ease;
}

.gc-messages-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 3px;
  background: transparent;
  transition: background 0.14s ease;
}

.gc-messages-item:hover {
  background: rgba(70, 229, 255, 0.06);
}

.gc-messages-item.is-active {
  background: rgba(70, 229, 255, 0.1);
  box-shadow: inset 0 0 0 1px rgba(70, 229, 255, 0.14);
}

.gc-messages-item.is-active::before {
  background: var(--gc-primary);
}

.gc-messages-item.is-unread::after {
  content: "";
  position: absolute;
  right: 12px;
  top: 50%;
  width: 7px;
  height: 7px;
  margin-top: -3px;
  border-radius: 50%;
  background: var(--gc-primary);
  box-shadow: 0 0 8px rgba(70, 229, 255, 0.65);
}

.gc-messages-item.is-unread .gc-messages-item-subject {
  color: var(--gc-primary-2);
  font-weight: 800;
}

.gc-messages-item-subject {
  font-size: 0.98rem;
  padding-right: 14px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-messages-item .gc-galaxy-coord-link,
.gc-messages-detail-subject .gc-galaxy-coord-link,
.gc-messages-detail-body .gc-galaxy-coord-link,
.gc-combat-teaser .gc-galaxy-coord-link {
  position: relative;
  z-index: 2;
  pointer-events: auto;
}

.gc-messages-plain-line {
  margin: 0 0 0.45rem;
  white-space: pre-wrap;
  word-break: break-word;
}

.gc-messages-plain-line:last-child {
  margin-bottom: 0;
}

.gc-messages-item-meta {
  font-size: 0.8rem;
  color: var(--gc-text-soft);
  font-family: var(--gc-mono);
}

.gc-messages-item-teaser {
  display: block;
  margin-top: 2px;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.gc-messages-item-teaser .gc-combat-teaser {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
}

.gc-messages-item--report .gc-messages-item-subject,
.gc-messages-item--combat .gc-messages-item-subject {
  font-family: var(--gc-font-display, Orbitron, sans-serif);
  font-size: 0.82rem;
  letter-spacing: 0.04em;
}

.gc-messages-detail-wrap {
  min-height: 0;
  height: 100%;
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  flex: 1;
  position: relative;
}

.gc-messages-detail[hidden],
.gc-messages-detail-empty[hidden] {
  display: none !important;
}

.gc-messages-detail-wrap.has-message .gc-messages-detail-empty {
  display: none !important;
}

.gc-messages-detail-wrap:not(.has-message) .gc-messages-detail {
  display: none !important;
}

.gc-messages-detail {
  display: flex;
  flex-direction: column;
  gap: 14px;
  padding: 16px 18px;
  flex: 1 1 0;
  min-height: 0;
  overflow: hidden;
}

.gc-messages-detail-subject {
  margin: 0;
  font-size: 1.15rem;
  color: var(--gc-primary-2);
  letter-spacing: 0.02em;
}

.gc-messages-detail-meta {
  margin: 0;
  font-size: 0.84rem;
  color: var(--gc-text-soft);
  font-family: var(--gc-mono);
}

.gc-messages-detail-body {
  white-space: pre-wrap;
  line-height: 1.55;
  font-size: 0.95rem;
  flex: 1;
  min-width: 0;
  max-width: 100%;
  overflow-x: hidden;
  overflow-y: auto;
  padding: 14px;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  background: rgba(5, 10, 22, 0.55);
  word-break: break-word;
  overflow-wrap: anywhere;
}

.gc-messages-detail-body--report {
  white-space: normal;
  padding: 0;
  background: transparent;
  border: none;
}

.gc-messages-detail-body--report .gc-combat-teaser,
.gc-messages-detail-body--report .gc-combat-report-shell {
  max-width: 100%;
  min-width: 0;
}

.gc-spy-report {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.gc-spy-report-head {
  padding: 12px;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  background: rgba(5, 10, 22, 0.55);
}

.gc-spy-report-coords {
  font-family: var(--gc-mono);
  font-size: 1rem;
  color: var(--gc-neon-cyan);
  letter-spacing: 0.04em;
}

.gc-spy-report-owner {
  margin-top: 4px;
  font-weight: 700;
}

.gc-spy-report-planet,
.gc-spy-report-probes {
  margin-top: 2px;
  font-size: 0.82rem;
  color: var(--gc-text-soft);
}

.gc-spy-report-section {
  padding: 10px 12px;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  background: rgba(5, 10, 22, 0.45);
}

.gc-spy-report-section--locked {
  opacity: 0.72;
}

.gc-spy-report-section-title {
  margin: 0 0 8px;
  font-size: 0.72rem;
  font-family: var(--gc-mono);
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gc-text-soft);
}

.gc-spy-report-kv {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
  font-size: 0.86rem;
}

.gc-spy-report-kv:last-child {
  border-bottom: none;
}

.gc-spy-report-kv strong {
  font-family: var(--gc-mono);
  color: var(--gc-neon-cyan);
}

.gc-spy-report-energy,
.gc-spy-report-activity-row {
  margin-top: 8px;
  font-size: 0.82rem;
  color: var(--gc-text-soft);
}

.gc-spy-report-locked,
.gc-spy-report-empty {
  margin: 0;
  font-size: 0.82rem;
  color: var(--gc-text-soft);
  font-style: italic;
}

/* --- Combat report modal (playercard shell, wider) --- */
.gc-combat-report-modal .gc-combat-report-dialog {
  width: min(820px, 100%);
  max-height: min(92vh, 880px);
  border-radius: var(--gc-radius-sm);
}

.gc-combat-report-shell .gc-player-card-stat {
  border-radius: 0;
}

.gc-combat-report-modal .gc-player-card-body {
  overflow: auto;
}

.gc-combat-report-shell {
  display: flex;
  flex-direction: column;
  gap: 16px;
  padding: 6px 4px 10px;
}

.gc-combat-report-hero {
  position: relative;
  overflow: hidden;
  padding: 16px 18px 16px 20px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.22);
  background: linear-gradient(135deg, rgba(8, 16, 32, 0.9), rgba(4, 8, 18, 0.85));
}

.gc-combat-report-hero::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: rgba(70, 229, 255, 0.75);
}

.gc-combat-report-hero--victory::before {
  background: rgba(80, 220, 140, 0.85);
}

.gc-combat-report-hero--defeat::before {
  background: rgba(255, 120, 160, 0.85);
}

.gc-combat-report-hero--draw::before {
  background: rgba(255, 190, 80, 0.85);
}

.gc-combat-report-hero--open::before,
.gc-combat-report-hero--intel::before {
  background: rgba(120, 180, 255, 0.85);
}

.gc-combat-report-hero--expedition::before {
  background: rgba(160, 120, 255, 0.8);
}

.gc-combat-report-hero--intel {
  border-color: rgba(120, 180, 255, 0.35);
  box-shadow: inset 0 0 24px rgba(120, 180, 255, 0.06);
}

.gc-combat-report-hero--expedition {
  border-color: rgba(160, 120, 255, 0.35);
  box-shadow: inset 0 0 24px rgba(160, 120, 255, 0.06);
}

.gc-expedition-report-delivery-notice {
  margin: 0 0 12px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm, 6px);
  border: 1px solid rgba(160, 120, 255, 0.28);
  background: rgba(160, 120, 255, 0.08);
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--gc-text-soft);
}

.gc-expedition-cargo-stat {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 4px;
}

.gc-expedition-cargo-jackpot-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--gc-radius-pill);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  text-transform: uppercase;
  color: #f6e8a8;
  background: rgba(214, 164, 32, 0.22);
  border: 1px solid rgba(214, 164, 32, 0.45);
}

.gc-expedition-cargo-base {
  font-size: 0.68rem;
  color: var(--gc-text-muted, var(--gc-text-soft));
}

.gc-combat-report-hero-desc {
  margin: 10px 0 0;
  font-size: 0.82rem;
  line-height: 1.45;
  color: var(--gc-text-soft);
}

.gc-combat-report-fleet-status {
  margin: 10px 0 0;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}

.gc-combat-report-shell--intel .gc-combat-report-overview--intel {
  border-color: rgba(120, 180, 255, 0.22);
}

.gc-combat-report-panel--locked {
  opacity: 0.72;
}

.gc-spy-report-stats-row {
  display: flex;
  flex-wrap: wrap;
  gap: 12px 18px;
  margin-bottom: 10px;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}

.gc-spy-report-stats-row strong {
  color: var(--gc-text);
}

.gc-combat-report-activity-row {
  padding: 6px 0;
  border-bottom: 1px solid rgba(70, 229, 255, 0.08);
  font-size: 0.78rem;
}

.gc-combat-report-activity-row:last-child {
  border-bottom: none;
}

.gc-spy-report-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
  padding-top: 12px;
  border-top: 1px solid rgba(120, 180, 255, 0.15);
}

/* GC-700E: combat report CTAs + kind badge */
.gc-combat-report-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(120, 180, 255, 0.15);
}

.gc-combat-report-coords {
  margin-top: 4px;
  font-size: 0.85rem;
  letter-spacing: 0.04em;
}

.gc-combat-report-kind {
  margin-top: 6px;
}

.gc-combat-kind-badge {
  display: inline-block;
  padding: 2px 6px;
  border: 1px solid rgba(120, 180, 255, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(180, 210, 255, 0.95);
  background: rgba(40, 70, 110, 0.35);
}

.gc-combat-kind-badge--pirate {
  border-color: rgba(255, 160, 80, 0.45);
  color: rgba(255, 200, 140, 0.95);
  background: rgba(90, 50, 20, 0.4);
}

.gc-combat-kind-badge--world-boss {
  border-color: rgba(220, 100, 255, 0.45);
  color: rgba(230, 180, 255, 0.95);
  background: rgba(70, 30, 90, 0.4);
}

.gc-combat-report-panel--loot-empty {
  opacity: 0.85;
}

.gc-combat-teaser-kind {
  display: block;
  margin-top: 4px;
}

.gc-messages-detail-actions .gc-btn-danger {
  text-decoration: none;
}

.gc-combat-report-hero--victory {
  border-color: rgba(80, 220, 140, 0.35);
  box-shadow: inset 0 0 24px rgba(80, 220, 140, 0.06);
}

.gc-combat-report-hero--defeat {
  border-color: rgba(255, 120, 160, 0.35);
  box-shadow: inset 0 0 24px rgba(255, 120, 160, 0.06);
}

.gc-combat-report-hero--draw {
  border-color: rgba(255, 190, 80, 0.35);
}

.gc-combat-report-hero-top {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}

.gc-combat-report-hero-icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  font-size: 1.35rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.25);
  background: rgba(70, 229, 255, 0.08);
}

.gc-combat-report-hero-text {
  flex: 1;
  min-width: 0;
}

.gc-combat-report-coords,
.gc-combat-report-place {
  font-size: 1.08rem;
  color: var(--gc-neon-cyan);
  letter-spacing: 0.04em;
  font-weight: 600;
}

.gc-combat-report-vs {
  margin-top: 6px;
  font-weight: 700;
  font-size: 0.96rem;
}

.gc-combat-report-route-sub {
  margin-top: 2px;
  font-size: 0.74rem;
  color: var(--gc-text-soft);
  letter-spacing: 0.03em;
}

.gc-combat-report-shell .gc-player-card-stat--highlight .gc-player-card-stat-value {
  color: rgba(255, 214, 64, 0.98);
}

.gc-combat-report-columns--duel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
}

.gc-combat-side-card {
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-width: 0;
  padding: 14px 16px;
  border: 1px solid rgba(70, 229, 255, 0.16);
  border-radius: var(--gc-radius-sm);
  background: linear-gradient(180deg, rgba(8, 14, 28, 0.92), rgba(4, 8, 18, 0.88));
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.28);
}

.gc-combat-side-card--attacker {
  border-left: 3px solid rgba(80, 220, 140, 0.55);
}

.gc-combat-side-card--defender {
  border-left: 3px solid rgba(255, 120, 160, 0.55);
}

.gc-combat-side-card--winner {
  border-color: rgba(80, 220, 140, 0.42);
  box-shadow:
    inset 0 0 0 1px rgba(80, 220, 140, 0.12),
    0 0 24px rgba(80, 220, 140, 0.08);
}

.gc-combat-side-card--defender.gc-combat-side-card--winner {
  border-color: rgba(255, 120, 160, 0.42);
  box-shadow:
    inset 0 0 0 1px rgba(255, 120, 160, 0.12),
    0 0 24px rgba(255, 120, 160, 0.08);
}

.gc-combat-side-card--loser {
  opacity: 0.88;
}

.gc-combat-side-card-head {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.gc-combat-side-card-head-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.gc-combat-side-card-role {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gc-text-soft);
}

.gc-combat-side-card-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: var(--gc-radius-pill);
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(210, 255, 230, 0.98);
  background: rgba(80, 220, 140, 0.18);
  border: 1px solid rgba(80, 220, 140, 0.45);
}

.gc-combat-side-card--defender .gc-combat-side-card-badge {
  color: rgba(255, 220, 230, 0.98);
  background: rgba(255, 120, 160, 0.18);
  border-color: rgba(255, 120, 160, 0.45);
}

.gc-combat-side-card-name {
  font-size: 1.05rem;
  line-height: 1.25;
  color: var(--gc-text);
}

.gc-combat-side-card-planet {
  font-size: 0.84rem;
  color: var(--gc-text-soft);
}

.gc-combat-side-card-coords {
  font-size: 0.74rem;
  color: var(--gc-text-dim);
}

.gc-combat-side-card-total {
  justify-self: start;
  font-size: 0.82rem;
  color: var(--gc-neon-cyan);
}

.gc-combat-side-card-body {
  min-width: 0;
}

.gc-combat-report-panel--loot-found {
  border-color: rgba(255, 196, 64, 0.42);
  background: linear-gradient(180deg, rgba(28, 22, 8, 0.55), rgba(8, 10, 18, 0.72));
  box-shadow: inset 0 0 28px rgba(255, 196, 64, 0.06);
}

.gc-combat-report-panel--loot-found .gc-combat-report-panel-title {
  color: rgba(255, 214, 64, 0.96);
}

.gc-combat-report-panel--debris {
  border-color: rgba(160, 180, 220, 0.32);
  background: linear-gradient(180deg, rgba(12, 16, 28, 0.72), rgba(4, 8, 18, 0.82));
}

.gc-combat-debris-chip {
  border-style: dashed;
}

.gc-combat-debris-footer {
  display: grid;
  gap: 10px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(160, 180, 220, 0.18);
}

.gc-combat-debris-hint {
  font-size: 0.92rem;
  color: rgba(196, 210, 236, 0.88);
}

.gc-combat-debris-harvested {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 10px;
  font-size: 0.88rem;
  color: rgba(160, 176, 204, 0.82);
}

.gc-combat-debris-harvested-label {
  font-weight: 600;
  color: rgba(180, 196, 224, 0.9);
}

.gc-combat-debris-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.gc-combat-report-body {
  overflow-x: clip;
}

@media (max-width: 640px) {
  .gc-combat-report-columns--duel {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 390px) {
  .gc-combat-report-modal .gc-combat-report-dialog {
    width: 100%;
    max-height: 100dvh;
    border-radius: 0;
  }

  .gc-combat-report-hero {
    padding: 12px 12px 12px 14px;
  }

  .gc-combat-report-hero-top {
    flex-wrap: wrap;
  }

  .gc-combat-report-result-badge {
    width: 100%;
    margin-top: 4px;
    align-items: flex-start;
  }

  .gc-combat-report-shell {
    gap: 12px;
    padding-inline: 0;
  }
}

.gc-combat-report-result-badge {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  padding: 5px 10px;
  border-radius: 0;
  font-family: var(--gc-font-display, Orbitron, sans-serif);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid rgba(70, 229, 255, 0.35);
  color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.1);
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

.gc-combat-report-result-main {
  font-size: 0.78rem;
  line-height: 1.2;
}

.gc-combat-report-result-sub {
  font-size: 0.58rem;
  letter-spacing: 0.06em;
  color: var(--gc-text-soft);
  text-transform: none;
  font-family: var(--gc-font-ui, system-ui, sans-serif);
}

.gc-combat-report-hero--victory .gc-combat-report-result-badge {
  border-color: rgba(80, 220, 140, 0.45);
  color: #86efac;
  background: rgba(80, 220, 140, 0.12);
}

.gc-combat-report-hero--defeat .gc-combat-report-result-badge {
  border-color: rgba(255, 120, 160, 0.45);
  color: #fda4af;
  background: rgba(255, 120, 160, 0.1);
}

.gc-combat-report-stats {
  margin: 0;
}

.gc-combat-report-overview {
  padding: 12px 14px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.18);
  background: linear-gradient(160deg, rgba(8, 14, 28, 0.9), rgba(5, 9, 18, 0.95));
}

.gc-combat-report-battlefield {
  margin: 6px 0 10px;
  font-size: 0.92rem;
  color: var(--gc-neon-cyan);
  letter-spacing: 0.02em;
}

.gc-combat-report-sides {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

@media (max-width: 560px) {
  .gc-combat-report-sides {
    grid-template-columns: 1fr;
  }
}

.gc-combat-report-side {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.22);
  min-width: 0;
}

.gc-combat-report-side--attacker {
  border-left: 3px solid rgba(80, 220, 140, 0.7);
}

.gc-combat-report-side--defender {
  border-left: 3px solid rgba(255, 120, 160, 0.7);
}

.gc-combat-report-side-role {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gc-text-soft);
}

.gc-combat-report-side-name {
  font-size: 0.88rem;
  color: var(--gc-text);
}

.gc-combat-report-side-planet {
  font-size: 0.76rem;
  color: var(--gc-text-soft);
}

.gc-combat-report-side-coords {
  font-size: 0.78rem;
  color: var(--gc-neon-cyan);
}

.gc-combat-report-side-units {
  font-size: 0.74rem;
  color: var(--gc-text-soft);
}

.gc-combat-report-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

@media (max-width: 640px) {
  .gc-combat-report-columns {
    grid-template-columns: 1fr;
  }
}

.gc-combat-report-panel {
  padding: 12px 14px;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  background: rgba(5, 10, 22, 0.5);
}

.gc-combat-report-panel-title {
  margin: 0 0 10px;
  font-size: 0.72rem;
  font-family: var(--gc-font-display, Orbitron, sans-serif);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  color: var(--gc-text-soft);
}

.gc-combat-report-panel--research .gc-combat-report-research-hint {
  margin: 0 0 10px;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
  line-height: 1.45;
}

.gc-combat-research-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 12px;
  min-width: 0;
}

.gc-combat-research-col {
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid rgba(70, 229, 255, 0.14);
  background: rgba(5, 12, 24, 0.55);
  border-radius: var(--gc-radius-sm);
}

.gc-combat-research-col-title {
  margin: 0 0 8px;
  font-size: 0.72rem;
  font-family: var(--gc-font-display, Orbitron, sans-serif);
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-soft);
}

.gc-combat-research-side--attacker .gc-combat-research-bonus {
  color: rgba(134, 239, 172, 0.95);
}

.gc-combat-research-side--defender .gc-combat-research-bonus {
  color: rgba(253, 164, 175, 0.95);
}

.gc-combat-research-row {
  display: grid;
  grid-template-columns: 1fr auto auto;
  gap: 8px 10px;
  align-items: center;
  padding: 5px 0;
  border-bottom: 1px solid rgba(70, 229, 255, 0.08);
  font-size: 0.78rem;
}

.gc-combat-research-row:last-child {
  border-bottom: none;
}

.gc-combat-research-tech {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  color: var(--gc-text);
}

.gc-combat-research-level {
  color: var(--gc-neon-cyan);
  font-size: 0.76rem;
}

.gc-combat-research-bonus {
  font-weight: 700;
  font-size: 0.76rem;
}

@media (max-width: 640px) {
  .gc-combat-research-columns {
    grid-template-columns: 1fr;
  }
}

.gc-combat-report-panel--forces-wrap > .gc-combat-report-panel-body {
  padding: 0;
  border: none;
  background: transparent;
}

.gc-combat-report-columns--forces {
  gap: 10px;
}

.gc-combat-report-panel--inline {
  padding: 12px 14px;
  border: 1px solid var(--gc-panel-border);
  border-radius: var(--gc-radius-sm);
  background: rgba(5, 10, 22, 0.5);
}

.gc-combat-report-panel--attacker.gc-combat-report-panel--inline {
  border-left: 3px solid rgba(80, 220, 140, 0.55);
}

.gc-combat-report-panel--defender.gc-combat-report-panel--inline {
  border-left: 3px solid rgba(255, 120, 160, 0.55);
}

.gc-combat-force-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.gc-combat-force-head--solo {
  justify-content: flex-end;
}

.gc-combat-force-label {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gc-text-soft);
}

.gc-combat-force-count {
  font-size: 0.78rem;
  color: var(--gc-neon-cyan);
}

.gc-combat-defender-forces {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.gc-combat-force-block + .gc-combat-force-block {
  padding-top: 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.gc-combat-losses-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

@media (max-width: 560px) {
  .gc-combat-losses-split,
  .gc-combat-round-split {
    grid-template-columns: 1fr;
  }
}

.gc-combat-loss-col {
  padding: 10px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.2);
  min-width: 0;
}

.gc-combat-loss-col--attacker {
  border-left: 3px solid rgba(80, 220, 140, 0.65);
}

.gc-combat-loss-col--defender {
  border-left: 3px solid rgba(255, 120, 160, 0.65);
}

.gc-combat-loss-col-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.gc-combat-loss-col-role {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gc-text-soft);
}

.gc-combat-loss-col-total {
  font-size: 0.88rem;
  color: var(--gc-neon-cyan);
}

.gc-combat-loss-col--attacker .gc-combat-unit-chip {
  border-left-color: rgba(80, 220, 140, 0.55);
}

.gc-combat-loss-col--defender .gc-combat-unit-chip {
  border-left-color: rgba(255, 120, 160, 0.55);
}

.gc-combat-report-panel--losses .gc-combat-report-panel-title {
  margin-bottom: 12px;
}

.gc-combat-unit-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.gc-combat-unit-chip {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 6px 12px 6px 8px;
  border-radius: 0;
  border: 1px solid rgba(120, 190, 255, 0.18);
  border-left: 2px solid rgba(70, 229, 255, 0.45);
  background: rgba(8, 14, 28, 0.65);
  font-size: 0.86rem;
}

.gc-combat-unit-chip-img {
  width: 32px;
  height: 32px;
  object-fit: contain;
  flex-shrink: 0;
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.35);
}

.gc-combat-unit-chip-qty {
  font-family: var(--gc-mono);
  color: var(--gc-neon-cyan);
}

.gc-combat-report-empty {
  margin: 0;
  font-size: 0.82rem;
  color: var(--gc-text-soft);
  font-style: italic;
}

.gc-combat-round {
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: 0;
  margin-bottom: 6px;
  overflow: hidden;
}

.gc-combat-round[open] {
  border-color: rgba(70, 229, 255, 0.22);
}

.gc-combat-round-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 8px 10px;
  cursor: pointer;
  font-size: 0.8rem;
  list-style: none;
}

.gc-combat-round-title-main {
  font-family: var(--gc-font-display, Orbitron, sans-serif);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.72rem;
}

.gc-combat-round-title-stats {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.76rem;
}

.gc-combat-round-stat--atk {
  color: rgba(134, 239, 172, 0.95);
}

.gc-combat-round-stat--def {
  color: rgba(253, 164, 175, 0.95);
}

.gc-combat-round-stat-sep {
  color: var(--gc-text-dim);
}

.gc-combat-round-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 10px;
}

.gc-combat-round-half {
  min-width: 0;
}

.gc-combat-round-half-label {
  display: block;
  margin-bottom: 6px;
  font-size: 0.66rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gc-text-soft);
}

.gc-combat-round-half--attacker .gc-combat-round-half-label {
  color: rgba(134, 239, 172, 0.85);
}

.gc-combat-round-half--defender .gc-combat-round-half-label {
  color: rgba(253, 164, 175, 0.85);
}

.gc-combat-round-title::-webkit-details-marker {
  display: none;
}

.gc-combat-round-body {
  padding: 8px 10px 10px;
  border-top: 1px solid rgba(255, 255, 255, 0.05);
}

/* Inbox combat teaser card */
.gc-combat-teaser {
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px 12px 10px 14px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.2);
  background: linear-gradient(160deg, rgba(10, 18, 34, 0.85), rgba(6, 10, 20, 0.9));
  text-align: left;
}

.gc-combat-teaser::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: rgba(70, 229, 255, 0.65);
}

.gc-combat-teaser--victory::before {
  background: rgba(80, 220, 140, 0.75);
}

.gc-combat-teaser--defeat::before {
  background: rgba(255, 120, 160, 0.75);
}

.gc-combat-teaser--draw::before {
  background: rgba(255, 190, 80, 0.75);
}

.gc-combat-teaser--open::before,
.gc-combat-teaser--intel::before {
  background: rgba(120, 180, 255, 0.75);
}

.gc-combat-teaser--expedition::before {
  background: rgba(160, 120, 255, 0.7);
}

.gc-combat-teaser--intel .gc-combat-teaser-badge,
.gc-combat-teaser--open .gc-combat-teaser-badge {
  border-color: rgba(120, 180, 255, 0.4);
  color: #a5c4ff;
}

.gc-combat-teaser--expedition .gc-combat-teaser-badge {
  border-color: rgba(160, 120, 255, 0.4);
  color: #c4b5fd;
}

.gc-combat-teaser--compact {
  padding: 8px 10px;
  gap: 6px;
}

.gc-combat-teaser-top {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
}

.gc-combat-teaser--compact .gc-combat-teaser-top {
  flex-wrap: wrap;
}

.gc-combat-teaser--compact .gc-combat-teaser-badge {
  display: none;
}

.gc-combat-teaser--compact .gc-combat-teaser-coords,
.gc-combat-teaser--compact .gc-combat-teaser-place,
.gc-combat-teaser--compact .gc-combat-teaser-vs {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

.gc-combat-teaser-icon {
  flex-shrink: 0;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  font-size: 1rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.22);
  background: rgba(70, 229, 255, 0.08);
}

.gc-combat-teaser-headings {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 3px;
}

.gc-combat-teaser-coords,
.gc-combat-teaser-place {
  font-size: 0.88rem;
  color: var(--gc-neon-cyan);
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  font-weight: 600;
}

/* Clickable coordinate links ? galaxy view */
a.gc-galaxy-coord-link {
  color: var(--gc-neon-cyan);
  text-decoration: none;
  border-bottom: 1px solid rgba(70, 229, 255, 0.35);
  transition: color 0.15s, border-color 0.15s;
}

a.gc-galaxy-coord-link:hover,
a.gc-galaxy-coord-link:focus-visible {
  color: #fff;
  border-bottom-color: rgba(70, 229, 255, 0.75);
}

.galaxy-slot-coord a.gc-galaxy-coord-link,
.fleet-active-coords a.gc-galaxy-coord-link,

.gc-combat-teaser-vs {
  font-size: 0.76rem;
  color: var(--gc-text-soft);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gc-combat-teaser-badge {
  flex-shrink: 1;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 1px;
  min-width: 0;
  max-width: 42%;
  overflow: hidden;
  text-overflow: ellipsis;
  padding: 3px 8px;
  border-radius: 0;
  font-size: 0.62rem;
  font-family: var(--gc-font-display, Orbitron, sans-serif);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  border: 1px solid rgba(70, 229, 255, 0.3);
  color: var(--gc-neon-cyan);
  background: rgba(70, 229, 255, 0.08);
}

.gc-combat-teaser-badge-sub {
  font-size: 0.54rem;
  letter-spacing: 0.04em;
  text-transform: none;
  color: var(--gc-text-soft);
  font-family: var(--gc-font-ui, system-ui, sans-serif);
}

.gc-combat-teaser--victory .gc-combat-teaser-badge {
  border-color: rgba(80, 220, 140, 0.4);
  color: #86efac;
}

.gc-combat-teaser--defeat .gc-combat-teaser-badge {
  border-color: rgba(255, 120, 160, 0.4);
  color: #fda4af;
}

.gc-combat-teaser-meta {
  margin: 0;
  font-size: 0.72rem;
  color: var(--gc-text-soft);
}

.gc-combat-teaser-hint {
  margin: 0;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}

.gc-combat-teaser-open {
  align-self: flex-start;
}

.gc-messages-item--report .gc-combat-teaser-open,
.gc-messages-item--combat .gc-combat-teaser-open {
  pointer-events: auto;
}

.gc-messages-detail-body .gc-combat-teaser {
  margin-top: 4px;
}

/* Loot chips inside combat modal ? square panels, no pills */
.gc-combat-report-shell .gc-expedition-loot-chip {
  border-radius: 0;
  border-left-width: 2px;
}

.gc-combat-report-shell .gc-expedition-loot-grid {
  gap: 6px;
}

.gc-combat-teaser-open.gc-btn {
  border-radius: var(--gc-radius-sm);
}

.gc-messages-detail-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  min-width: 0;
  max-width: 100%;
  padding-top: 10px;
  border-top: 1px solid var(--gc-panel-border);
}

.gc-messages-empty,
.gc-messages-detail-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 180px;
  padding: 1.25rem;
  color: var(--gc-text-soft);
  font-size: 0.86rem;
  text-align: center;
}

.gc-messages-detail-empty {
  flex: 1 1 0;
  min-height: 0;
  gap: 0.65rem;
  width: 100%;
}

.gc-messages-detail-empty-title {
  margin: 0;
  font-family: var(--gc-font-display, Orbitron, Inter, system-ui, sans-serif);
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--gc-primary-2);
}

.gc-messages-detail-empty-text {
  margin: 0;
  max-width: 24rem;
  line-height: 1.55;
  font-size: 0.84rem;
}

/* Compose modal */
.gc-messages-compose-dialog {
  border: 1px solid var(--gc-panel-border-strong);
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-strong);
  color: var(--gc-text);
  padding: 0;
  max-width: 540px;
  width: calc(100% - 2rem);
  box-shadow: var(--gc-btn-glow-2);
}

.gc-messages-compose-dialog::backdrop {
  background: rgba(0, 4, 12, 0.72);
  backdrop-filter: blur(2px);
}

.gc-messages-compose-form {
  display: grid;
  gap: 12px;
  padding: var(--gc-panel-pad);
}

.gc-messages-compose-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding-bottom: 8px;
  border-bottom: 1px solid var(--gc-panel-border);
}

.gc-messages-compose-head h2 {
  margin: 0;
}

.gc-messages-field {
  display: grid;
  gap: 6px;
}

.gc-messages-field-label {
  font-size: 0.76rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--gc-text-dim);
  font-weight: 600;
}

.gc-messages-input {
  width: 100%;
  box-sizing: border-box;
  padding: 9px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.28);
  background: rgba(5, 10, 22, 0.82);
  font: inherit;
  font-size: 0.88rem;
  color: var(--gc-text);
}

.gc-messages-input:focus {
  outline: none;
  border-color: rgba(70, 229, 255, 0.92);
  box-shadow: 0 0 0 2px rgba(70, 229, 255, 0.2);
}

.gc-messages-textarea {
  min-height: 140px;
  resize: vertical;
}

.gc-messages-compose-status {
  min-height: 1.2rem;
  font-size: 0.8rem;
  color: var(--gc-text-soft);
}

.gc-messages-compose-foot {
  display: flex;
  justify-content: flex-end;
  padding-top: 4px;
}

@media (max-width: 900px) {
  .gc-messages-layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto minmax(0, 1fr);
    height: auto;
    min-height: 0;
  }

  .gc-messages-list-wrap {
    height: clamp(220px, 38vh, 340px);
    max-height: none;
  }

  .gc-messages-detail-wrap {
    min-height: 280px;
    height: auto;
  }

  .gc-messages-page .gc-messages-tabs.building-tabs,
  .gc-messages-page .gc-messages-tabs--global.building-tabs {
    display: grid;
    grid-template-columns: 1fr 1fr;
  }

  .gc-messages-page .gc-messages-tabs .tab-btn {
    width: 100%;
    min-height: var(--gc-touch-min);
  }
}

/* =========================
   Account options page ? compact control module (GC-952)
   ========================= */
.gc-options-page {
  max-width: 980px;
  min-width: 0;
}

.gc-options-control-module {
  min-width: 0;
  border: 1px solid rgba(70, 229, 255, 0.34);
  border-radius: var(--gc-radius-md, 10px);
  background:
    linear-gradient(180deg, rgba(70, 229, 255, 0.05) 0%, rgba(4, 10, 22, 0.18) 100%),
    rgba(4, 10, 22, 0.82);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.28) inset,
    0 0 24px rgba(70, 229, 255, 0.06);
  overflow: hidden;
}

.gc-options-module-header {
  padding: 12px 14px 10px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.14);
  background: linear-gradient(180deg, rgba(70, 229, 255, 0.08) 0%, rgba(4, 10, 22, 0.12) 100%);
}

.gc-options-module-title {
  margin: 0;
  font-family: var(--gc-mono);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--gc-neon-cyan, #46e5ff);
}

.gc-options-module-nav-hint {
  margin: 4px 0 0;
  font-size: 0.78rem;
  line-height: 1.35;
  color: var(--gc-text-muted, rgba(180, 210, 230, 0.72));
}

.gc-options-module-shell {
  display: grid;
  grid-template-columns: minmax(148px, 190px) minmax(0, 1fr);
  min-width: 0;
}

.gc-options-tab-rail {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 10px 8px;
  border-right: 1px solid rgba(70, 229, 255, 0.12);
  background: rgba(2, 8, 18, 0.55);
  min-width: 0;
}

.gc-options-tab-btn {
  display: flex;
  align-items: center;
  width: 100%;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid transparent;
  border-radius: var(--gc-radius-sm, 6px);
  background: transparent;
  color: var(--gc-text-soft, rgba(200, 220, 235, 0.82));
  font-size: 0.78rem;
  font-weight: 600;
  text-align: left;
  cursor: pointer;
  transition: border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}

.gc-options-tab-btn:hover {
  border-color: rgba(70, 229, 255, 0.18);
  color: var(--gc-text, #e8f4ff);
}

.gc-options-tab-btn.is-active {
  border-color: rgba(70, 229, 255, 0.42);
  color: var(--gc-neon-cyan, #46e5ff);
  background: rgba(70, 229, 255, 0.08);
  box-shadow:
    0 0 0 1px rgba(70, 229, 255, 0.12) inset,
    0 0 14px rgba(70, 229, 255, 0.12);
}

.gc-options-tab-content {
  min-width: 0;
  padding: 10px 12px 12px;
  background: rgba(2, 8, 18, 0.42);
}

.gc-options-tab-panel {
  min-width: 0;
}

.gc-options-tab-panel[hidden] {
  display: none !important;
}

.gc-options-card-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
}

.gc-options-card-grid--single {
  grid-template-columns: minmax(0, 1fr);
}

.gc-options-card {
  min-width: 0;
  padding: 8px 10px 10px;
  border: 1px solid rgba(70, 229, 255, 0.12);
  border-radius: var(--gc-radius-sm, 6px);
  background: rgba(6, 12, 24, 0.72);
}

.gc-options-card--wide {
  grid-column: 1 / -1;
}

.gc-options-card-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 6px;
}

.gc-options-card-title {
  font-family: var(--gc-mono);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gc-primary-2);
}

.gc-options-card-sub {
  font-size: 0.76rem;
  line-height: 1.3;
  color: var(--gc-text-muted, rgba(180, 210, 230, 0.72));
}

.gc-options-notify-card {
  max-width: 640px;
}

.gc-options-galaxy-card {
  max-width: 640px;
}

.gc-options-galaxy-grid {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.gc-options-galaxy-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.gc-options-galaxy-field-help {
  margin: 0;
}

.gc-options-galaxy-field-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
}

.gc-options-galaxy-spy-input {
  width: 6rem;
  min-width: 5rem;
}

.gc-options-galaxy-hint {
  margin: 0;
}

.gc-options-notify-grid {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.gc-options-danger-zone {
  min-width: 0;
  padding: 10px;
  border: 1px solid rgba(255, 120, 72, 0.34);
  border-radius: var(--gc-radius-sm, 6px);
  background:
    linear-gradient(180deg, rgba(255, 120, 72, 0.06) 0%, rgba(8, 10, 18, 0.5) 100%),
    rgba(8, 10, 18, 0.62);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.22) inset;
}

.gc-options-danger-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 8px;
}

.gc-options-danger-title {
  font-family: var(--gc-mono);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: #ff9a62;
}

.gc-options-danger-sub {
  font-size: 0.76rem;
  line-height: 1.3;
  color: var(--gc-text-muted, rgba(180, 210, 230, 0.72));
}

.gc-options-safety-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  min-width: 0;
}

.gc-options-safety-block--reset {
  grid-column: 1 / -1;
}

.gc-options-form {
  padding: 0;
  min-width: 0;
}

.gc-options-notify-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px 10px;
  align-items: center;
  min-width: 0;
}

.gc-options-sound-toggle {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}

.gc-options-sound-btn.is-active {
  border-color: var(--gc-primary-2);
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--gc-primary-2) 45%, transparent);
}

.gc-options-notify-hint {
  margin-top: 2px;
}

.gc-options-form-head {
  margin-bottom: 6px;
}

.gc-options-form-kicker {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--gc-mono);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-primary-2);
}

.gc-options-form-kicker::before {
  content: "?";
  color: var(--gc-neon-cyan);
  font-size: 0.62rem;
}

.gc-options-field-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: 8px 10px;
  align-items: end;
}

.gc-options-field-row-password {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.gc-options-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.gc-options-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}

.gc-options-current {
  display: flex;
  align-items: center;
  min-height: 38px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.14);
  background: rgba(0, 0, 0, 0.42);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.03), inset 0 0 12px rgba(0, 0, 0, 0.35);
  color: var(--gc-text);
  font-size: 0.88rem;
  line-height: 1.25;
}

.gc-options-current-mono {
  font-family: var(--gc-mono);
  font-size: 0.82rem;
  letter-spacing: 0.02em;
  word-break: break-all;
}

.gc-options-page .gc-options-input,
.gc-options-page .gc-input {
  width: 100%;
  min-height: 38px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.28);
  background: rgba(5, 10, 22, 0.88);
  color: var(--gc-text);
  font-size: 0.88rem;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 0 0 10px rgba(0, 0, 0, 0.28);
  transition: border-color 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}

.gc-options-page .gc-options-input::placeholder,
.gc-options-page .gc-input::placeholder {
  color: rgba(200, 232, 244, 0.34);
  font-style: italic;
}

.gc-options-page .gc-options-input:hover,
.gc-options-page .gc-input:hover {
  border-color: rgba(70, 229, 255, 0.42);
  background: rgba(6, 12, 26, 0.92);
}

.gc-options-page .gc-options-input:focus,
.gc-options-page .gc-input:focus {
  outline: none;
  border-color: rgba(70, 229, 255, 0.88);
  box-shadow:
    0 0 0 2px rgba(70, 229, 255, 0.14),
    inset 0 0 12px rgba(70, 229, 255, 0.06);
  background: rgba(4, 10, 22, 0.96);
}

.gc-options-page .gc-options-input:-webkit-autofill,
.gc-options-page .gc-options-input:-webkit-autofill:hover,
.gc-options-page .gc-options-input:-webkit-autofill:focus,
.gc-options-page .gc-input:-webkit-autofill,
.gc-options-page .gc-input:-webkit-autofill:hover,
.gc-options-page .gc-input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--gc-text);
  caret-color: var(--gc-text);
  border-color: rgba(70, 229, 255, 0.55);
  -webkit-box-shadow: 0 0 0 1000px rgba(5, 10, 22, 0.94) inset;
  box-shadow: 0 0 0 1000px rgba(5, 10, 22, 0.94) inset, 0 0 0 2px rgba(70, 229, 255, 0.12);
  transition: background-color 99999s ease-out 0s;
}

.gc-options-form-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 10px;
  margin-top: 8px;
  padding-top: 2px;
}

.gc-options-save {
  min-height: 38px;
  min-width: 120px;
  padding: 9px 16px;
  font-size: 0.78rem;
  letter-spacing: 0.1em;
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.35),
    0 0 14px rgba(70, 229, 255, 0.08);
}

.gc-options-save:hover {
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.35),
    0 0 18px rgba(70, 229, 255, 0.18);
}

.gc-options-form-hint {
  margin: 0;
  font-size: 0.78rem;
  font-family: var(--gc-mono);
  letter-spacing: 0.04em;
  color: var(--gc-success);
}

.gc-options-form-hint.gc-options-hint-error {
  color: var(--gc-danger);
}

.gc-options-form-hint.gc-options-hint-success {
  color: var(--gc-neon-cyan);
}

.gc-options-verify-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 10px;
  margin-bottom: 8px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(70, 229, 255, 0.12);
  background: rgba(0, 0, 0, 0.28);
}

.gc-options-verify-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: var(--gc-radius-sm);
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.gc-options-verify-badge-ok {
  border: 1px solid rgba(0, 230, 138, 0.45);
  background: rgba(0, 40, 28, 0.4);
  color: var(--gc-success);
  box-shadow: 0 0 10px rgba(0, 230, 138, 0.1);
}

.gc-options-verify-badge-warn {
  border: 1px solid rgba(255, 154, 26, 0.45);
  background: rgba(40, 24, 0, 0.35);
  color: var(--gc-warning);
}

.gc-options-verify-icon {
  font-size: 0.85rem;
}

.gc-options-resend-hint {
  width: 100%;
  margin: 0;
  font-size: 0.78rem;
  font-family: var(--gc-mono);
}

.gc-options-resend-hint.gc-options-hint-error {
  color: var(--gc-danger);
}

.gc-options-resend-hint.gc-options-hint-success {
  color: var(--gc-neon-cyan);
}

/* Security advisory card */
.gc-options-page .gc-options-security {
  padding: 0;
}

.gc-options-security-card {
  margin: 0;
  padding: 10px 12px 12px;
  border-top: 1px solid rgba(255, 154, 26, 0.22);
  background:
    linear-gradient(135deg, rgba(255, 154, 26, 0.08) 0%, rgba(4, 10, 22, 0.55) 42%, rgba(4, 10, 22, 0.82) 100%);
  box-shadow: inset 0 0 0 1px rgba(255, 154, 26, 0.12);
}

.gc-options-security-head {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 8px;
}

.gc-options-security-icon {
  flex: 0 0 auto;
  width: 28px;
  height: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 154, 26, 0.45);
  background: rgba(40, 24, 0, 0.45);
  color: var(--gc-warning);
  font-size: 0.95rem;
  box-shadow: 0 0 12px rgba(255, 154, 26, 0.12);
}

.gc-options-security-title {
  display: block;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gc-warning);
}

.gc-options-security-lead {
  margin: 3px 0 0;
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--gc-text-soft);
}

.gc-options-security-list {
  margin: 0;
  padding: 0 0 0 1rem;
  color: var(--gc-text-soft);
  font-size: 0.8rem;
  line-height: 1.4;
}

.gc-options-security-list li {
  margin-bottom: 4px;
}

.gc-options-security-list li::marker {
  color: rgba(255, 154, 26, 0.75);
}

.gc-options-safety-block {
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid rgba(255, 120, 72, 0.16);
  border-radius: var(--gc-radius-sm);
  background: rgba(6, 12, 24, 0.58);
}

.gc-options-safety-lead,
.gc-options-safety-status {
  margin: 0 0 8px;
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--gc-text-soft);
}

.gc-options-safety-timer {
  margin: 0 0 8px;
  font-size: 0.78rem;
  line-height: 1.35;
  color: rgba(255, 196, 120, 0.92);
  letter-spacing: 0.02em;
}

.gc-options-safety-timer[hidden] {
  display: none !important;
}

.gc-options-safety-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.gc-options-safety-password {
  margin-bottom: 8px;
}

.gc-options-safety-hint {
  margin-top: 8px;
}

.gc-options-safety-modal .gc-modal-panel {
  max-width: 420px;
}

.gc-options-safety-modal-lead,
.gc-options-safety-modal-phrase-label {
  margin: 0 0 8px;
  font-size: 0.82rem;
  color: var(--gc-text-soft);
}

@media (max-width: 860px) {
  .gc-options-module-shell {
    grid-template-columns: 1fr;
  }

  .gc-options-tab-rail {
    flex-direction: row;
    flex-wrap: nowrap;
    overflow-x: auto;
    overscroll-behavior-x: contain;
    border-right: none;
    border-bottom: 1px solid rgba(70, 229, 255, 0.12);
    padding: 8px;
    gap: 6px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
  }

  .gc-options-tab-btn {
    flex: 0 0 auto;
    width: auto;
    white-space: nowrap;
  }

  .gc-options-card-grid,
  .gc-options-safety-grid {
    grid-template-columns: 1fr;
  }

  .gc-options-field-row-password {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .gc-options-field-row {
    grid-template-columns: 1fr;
  }

  .gc-options-save {
    width: 100%;
  }

  .gc-options-notify-row {
    grid-template-columns: 1fr;
  }

  .gc-options-sound-toggle {
    justify-content: flex-start;
  }
}

/* Orbital Shipyard page */
.shipyard-planet-scope {
  margin: 0.35rem 0 0;
  font-size: 0.9rem;
  color: var(--gc-accent-cyan, #5ee9ff);
}
.shipyard-planet-coords {
  opacity: 0.85;
  margin-left: 0.25rem;
}

.shipyard-queue-list {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}
.shipyard-queue-list-inner {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.shipyard-job {
  display: grid;
  grid-template-columns: 38px 1fr;
  gap: 8px;
  align-items: start;
  padding: 6px 8px;
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 14, 28, 0.62);
  border: 1px solid rgba(120, 190, 255, 0.12);
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.18) inset;
}
.shipyard-job-active {
  border-color: rgba(127, 255, 217, 0.22);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.18) inset,
    0 0 14px rgba(127, 255, 217, 0.08);
}
.shipyard-job-queued { opacity: 0.88; }
.shipyard-job-icon {
  width: 38px;
  height: 38px;
  border-radius: var(--gc-radius-sm);
  background: rgba(0, 0, 0, 0.22);
  border: 1px solid rgba(120, 255, 217, 0.12);
  display: grid;
  place-items: center;
  overflow: hidden;
}
.shipyard-job-icon img {
  width: 32px;
  height: 32px;
  object-fit: contain;
}
.shipyard-job-body {
  min-width: 0;
  position: relative;
  padding-right: 44px;
}
.shipyard-queue-job-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
  margin-top: 0.35rem;
}
.shipyard-queue-hint {
  margin: 0 0 0.75rem;
  font-size: 0.85rem;
}
.shipyard-page .shipyard-resource-summary {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  margin-top: 0.75rem;
}

.gc-ship-card.gc-prog-card {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 0 0 9px;
  min-height: 0;
}

.gc-ship-card.gc-prog-card:hover {
  transform: translateY(-2px);
}

.gc-ship-card-title-btn {
  all: unset;
  cursor: pointer;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  text-decoration: none;
}

.gc-ship-card-title-btn:hover,
.gc-ship-card-title-btn:focus-visible {
  color: var(--gc-primary-2);
  text-decoration: underline;
}

.gc-ship-card-desc {
  margin: 0;
  font-size: 0.72rem;
  line-height: 1.25;
  color: var(--gc-text-dim);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.gc-ship-role-badge {
  flex-shrink: 0;
  font-size: 0.62rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  padding: 2px 6px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 154, 26, 0.32);
  background: rgba(255, 154, 26, 0.12);
  color: rgba(255, 205, 140, 0.98);
  white-space: nowrap;
}

.gc-ship-card-subhead {
  display: flex;
  align-items: center;
  margin-top: -2px;
}

.gc-ship-card .gc-bld-card-meta {
  display: flex;
  flex-direction: column;
  gap: 5px;
  padding: 5px 6px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.10);
  background: rgba(0, 0, 0, 0.18);
  min-width: 0;
  max-width: 100%;
  overflow: hidden;
}

.gc-ship-card .shipyard-ship-cost {
  margin: 0;
}

/* GC-632 ? production stat chips (Shipyard + Defense cards) */
.gc-prod-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 4px;
  width: 100%;
  min-width: 0;
  max-width: 100%;
}

.gc-prod-stat-chip {
  display: flex;
  flex-direction: column;
  gap: 1px;
  min-width: 0;
  padding: 3px 5px;
  background: rgba(5, 14, 24, 0.82);
  border: 1px solid rgba(34, 211, 238, 0.32);
  border-radius: 0;
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.35);
}

.gc-prod-stat-chip-label {
  font-size: 0.58rem;
  font-weight: 600;
  line-height: 1.15;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: rgba(160, 210, 225, 0.72);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-prod-stat-chip-value {
  font-size: 0.72rem;
  font-weight: 700;
  line-height: 1.2;
  color: rgba(186, 245, 255, 0.96);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-ship-card .gc-prod-stat-grid {
  margin: 0;
}

.gc-ship-card-action {
  margin-top: auto;
  padding-top: 2px;
}

.gc-ship-card-action.shipyard-ship-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

.gc-ship-card .shipyard-qty-input {
  width: auto;
  min-width: 3.75rem;
  max-width: 7.5rem;
  min-height: 28px;
  padding: 4px 6px;
  font-size: 0.82rem;
  font-weight: 700;
  color: var(--gc-text);
  background: rgba(5, 10, 22, 0.72);
  border: 1px solid rgba(120, 190, 255, 0.28);
  border-radius: var(--gc-radius-sm);
}

.gc-ship-card .shipyard-qty-input:focus {
  border-color: rgba(70, 229, 255, 0.55);
  outline: none;
  box-shadow: 0 0 0 1px rgba(70, 229, 255, 0.22);
}

.shipyard-page .gc-ship-card-action .gc-btn-ghost {
  font-size: 0.68rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  color: var(--gc-text-soft);
}

.gc-defense-role-badge {
  border-color: rgba(147, 112, 255, 0.32);
  background: rgba(147, 112, 255, 0.12);
  color: rgba(210, 190, 255, 0.98);
}

.defense-page .shipyard-ship-grid {
  margin-top: 4px;
}

.gc-ship-card .shipyard-blockers {
  margin-top: 0;
}

.shipyard-blocker-research.is-unmet {
  border-color: rgba(147, 112, 255, 0.42);
  background: rgba(147, 112, 255, 0.12);
  color: rgba(210, 190, 255, 0.96);
}

.shipyard-blocker-building.is-unmet {
  border-color: rgba(255, 120, 90, 0.38);
  background: rgba(255, 120, 90, 0.1);
  color: rgba(255, 185, 165, 0.96);
}

.shipyard-ship-list {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}

.shipyard-ship-card {
  display: grid;
  grid-template-columns: 44px 1fr;
  grid-template-rows: auto auto auto;
  gap: 0.2rem 0.65rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.2);
  align-items: start;
}

.shipyard-ship-card .shipyard-ship-thumb {
  grid-row: 1 / span 3;
  width: 44px;
  height: 44px;
}

.shipyard-ship-card .shipyard-ship-card-head,
.shipyard-ship-card .shipyard-ship-desc,
.shipyard-ship-card .shipyard-ship-cost,
.shipyard-ship-card .shipyard-ship-actions,
.shipyard-ship-card .shipyard-hint-warn,
.shipyard-ship-card .shipyard-blockers,
.shipyard-ship-card .shipyard-locked-reason {
  grid-column: 2;
}

.shipyard-ship-card .shipyard-ship-desc {
  margin: 0;
  font-size: 0.78rem;
  line-height: 1.25;
}

.gc-ship-card .gc-ship-card-locked-hint {
  margin: 0;
  font-size: 0.75rem;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
}

.shipyard-ship-card.is-locked {
  opacity: 0.65;
}

.shipyard-ship-card-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  margin-bottom: 0.35rem;
}

.shipyard-ship-card-title {
  margin: 0;
  font-size: 1.05rem;
}

.shipyard-ship-role {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gc-accent, #ff9a1a);
}

.shipyard-ship-cost {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1rem;
  margin: 0.5rem 0;
  font-size: 0.85rem;
}

.shipyard-ship-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.75rem;
}

.shipyard-qty-input {
  width: 5rem;
}

.shipyard-inventory-list {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.shipyard-inventory-row {
  display: flex;
  justify-content: space-between;
  padding: 0.35rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.shipyard-hint-warn {
  margin: 0.5rem 0 0;
  font-size: 0.85rem;
  color: #e8a040;
}

.shipyard-ship-card--blocked {
  border-color: rgba(255, 75, 106, 0.18);
}

.shipyard-blockers {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem 0.45rem;
  margin-top: 0.55rem;
}

.shipyard-blocker {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  max-width: 100%;
  padding: 0.18rem 0.5rem;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.04);
  font-size: 0.76rem;
  line-height: 1.25;
  color: var(--gc-text-soft);
}

.shipyard-blocker.is-unmet {
  border-color: rgba(255, 75, 106, 0.38);
  background: rgba(255, 75, 106, 0.1);
  color: rgba(255, 170, 185, 0.96);
}

.shipyard-blocker.is-met {
  border-color: rgba(35, 242, 166, 0.28);
  background: rgba(35, 242, 166, 0.08);
  color: rgba(160, 255, 220, 0.95);
}

.shipyard-blocker-warn.is-unmet {
  border-color: rgba(232, 160, 64, 0.42);
  background: rgba(232, 160, 64, 0.1);
  color: rgba(255, 210, 140, 0.96);
}

.shipyard-blocker-icon {
  flex-shrink: 0;
  font-size: 0.68rem;
  line-height: 1;
}

.shipyard-blocker-text {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.shipyard-blocker-progress {
  flex-shrink: 0;
  font-size: 0.72rem;
  opacity: 0.92;
}

.shipyard-blocker-resource .gc-res-icon {
  width: 14px;
  height: 14px;
}

.gc-cost-chip.is-unmet {
  border-color: rgba(255, 75, 106, 0.38);
  background: rgba(255, 75, 106, 0.1);
}

.gc-cost-chip.is-unmet .gc-cost-val {
  color: rgba(255, 140, 160, 0.96);
}

.fleet-no-ships-panel,
.fleet-shipyard-link-panel {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.75rem;
}

/* Empire page (GC-620B shell, GC-620C polish) */
.empire-page {
  display: grid;
  gap: var(--gc-card-gap, 14px);
  max-width: 100%;
  overflow-x: clip;
}

/* GC-Emp-01 — Empire Focus Mode: slide side rails, expand main (documented CORE §3 exception). */
.empire-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-left: auto;
}

.empire-focus-close {
  min-width: 36px;
  min-height: 36px;
  padding: 0 10px;
  font-size: 1.35rem;
  line-height: 1;
  border-radius: var(--gc-radius-sm, 2px);
  border: 1px solid var(--gc-border, rgba(120, 180, 220, 0.35));
}

body.gc-empire-focus .gc-layout--dual > .gc-sidebar--left,
html.gc-empire-focus .gc-layout--dual > .gc-sidebar--left {
  transform: translateX(calc(-100% - 24px));
  opacity: 0;
  pointer-events: none;
}

/* Right rails use display:contents on desktop — target children directly. */
body.gc-empire-focus .gc-sidebar--right,
body.gc-empire-focus .gc-planet-registry,
html.gc-empire-focus .gc-sidebar--right,
html.gc-empire-focus .gc-planet-registry {
  transform: translateX(calc(100% + 24px));
  opacity: 0;
  pointer-events: none;
}

@media (min-width: 1280px) {
  body.gc-empire-focus .gc-layout--dual,
  html.gc-empire-focus .gc-layout--dual {
    grid-template-columns: 0 minmax(0, 1fr) 0 0;
    gap: 0;
  }

  body.gc-empire-focus .gc-layout--dual > .gc-sidebar--left,
  body.gc-empire-focus .gc-sidebar--right,
  body.gc-empire-focus .gc-planet-registry,
  html.gc-empire-focus .gc-layout--dual > .gc-sidebar--left,
  html.gc-empire-focus .gc-sidebar--right,
  html.gc-empire-focus .gc-planet-registry {
    max-width: 0;
    min-width: 0;
    overflow: hidden;
    border: 0;
    padding: 0;
    margin: 0;
  }

  body.gc-empire-focus #main-content.gc-main,
  html.gc-empire-focus #main-content.gc-main {
    max-width: none;
    width: 100%;
  }
}

@media (min-width: 992px) and (max-width: 1279px) {
  body.gc-empire-focus .gc-layout--dual,
  html.gc-empire-focus .gc-layout--dual {
    grid-template-columns: 0 minmax(0, 1fr);
    gap: 0;
  }
}

.gc-layout--dual > .gc-sidebar--left,
.gc-sidebar--right,
.gc-planet-registry {
  transition: transform 0.22s ease, opacity 0.18s ease;
}

.empire-summary {
  background:
    radial-gradient(ellipse at 12% 0%, rgba(70, 229, 255, 0.08), transparent 52%),
    var(--gc-panel-bg);
}

.empire-summary-value {
  font-weight: 700;
}

.empire-summary-value--score {
  color: var(--gc-primary-2);
}

.empire-summary-value--energy {
  color: var(--gc-neon-green, #7fffd9);
}

.empire-section-head {
  display: grid;
  gap: 4px;
  margin-bottom: 14px;
}

.empire-section-kicker {
  margin: 0;
  font-size: 0.92rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-primary-2);
}

.empire-section-sub {
  margin: 0;
  font-size: 0.82rem;
}

.empire-prod-panel {
  background:
    radial-gradient(ellipse at 80% 0%, rgba(127, 255, 217, 0.07), transparent 55%),
    linear-gradient(180deg, rgba(8, 16, 32, 0.98), rgba(4, 10, 22, 0.94));
  border-color: rgba(70, 229, 255, 0.22);
  box-shadow:
    0 22px 48px rgba(0, 0, 0, 0.42),
    inset 0 1px 0 rgba(127, 255, 217, 0.08);
}

.empire-prod-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.empire-prod-card {
  position: relative;
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 76px;
  padding: 14px 14px 14px 12px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.18);
  background: rgba(3, 8, 18, 0.72);
  box-shadow: 0 14px 32px rgba(0, 0, 0, 0.34);
  overflow: hidden;
}

.empire-prod-card::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: linear-gradient(180deg, var(--accent, rgba(70, 229, 255, 0.9)), transparent);
  opacity: 0.95;
}

.empire-prod-card--metal { --accent: rgba(255, 196, 120, 0.95); }
.empire-prod-card--crystal { --accent: rgba(120, 210, 255, 0.95); }
.empire-prod-card--fuel { --accent: rgba(127, 255, 217, 0.95); }
.empire-prod-card--energy { --accent: rgba(255, 220, 120, 0.95); }

.empire-prod-card-icon {
  flex-shrink: 0;
  filter: drop-shadow(0 0 12px rgba(70, 229, 255, 0.18));
}

.empire-prod-card-body {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.empire-prod-card-label {
  color: var(--gc-text-dim);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  line-height: 1.2;
}

.empire-prod-card-value {
  font-size: clamp(1rem, 1.6vw, 1.18rem);
  font-weight: 800;
  color: var(--gc-text);
  line-height: 1.1;
  white-space: nowrap;
}

.empire-prod-card-unit,
.empire-colony-stat-unit {
  margin-left: 1px;
  font-size: 0.78em;
  font-weight: 600;
  color: var(--gc-text-dim);
}

.empire-colonies-section {
  display: grid;
  gap: 12px;
}

.empire-colony-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: var(--gc-card-gap, 14px);
}

.empire-colony-card {
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: 0;
  padding: 0;
  overflow: hidden;
  border-color: rgba(70, 229, 255, 0.18);
  background:
    linear-gradient(180deg, rgba(8, 14, 28, 0.96), rgba(4, 10, 22, 0.92));
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.empire-colony-card:hover {
  border-color: rgba(70, 229, 255, 0.32);
  box-shadow: 0 18px 40px rgba(0, 0, 0, 0.38);
}

.empire-colony-card-head {
  display: grid;
  gap: 10px;
  padding: 14px 14px 12px;
  border-bottom: 1px solid rgba(120, 190, 255, 0.1);
  background: rgba(70, 229, 255, 0.03);
}

.empire-colony-title-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px;
}

.empire-colony-name {
  margin: 0;
  flex: 1 1 auto;
  min-width: 0;
  font-size: 1.02rem;
  font-weight: 700;
  letter-spacing: 0.03em;
  color: var(--gc-primary-2);
  line-height: 1.25;
  word-break: break-word;
}

.empire-colony-meta-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  flex-wrap: wrap;
}

.empire-colony-coords {
  margin: 0;
  font-size: 0.82rem;
  color: var(--gc-text-dim);
}

.empire-colony-type {
  flex-shrink: 0;
  padding: 4px 10px;
  font-size: 0.68rem;
}

.empire-homeworld-badge {
  position: relative;
  flex-shrink: 0;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  padding: 5px 10px 5px 8px;
  border: 1px solid rgba(255, 214, 120, 0.38);
  background:
    linear-gradient(135deg, rgba(255, 196, 80, 0.14), rgba(70, 229, 255, 0.08));
  color: rgba(255, 232, 170, 0.96);
  font-size: 0.64rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  box-shadow:
    inset 0 0 0 1px rgba(0, 0, 0, 0.28),
    0 0 18px rgba(255, 196, 80, 0.12);
}

.empire-homeworld-badge::before,
.empire-homeworld-badge::after {
  content: "";
  position: absolute;
  width: 5px;
  height: 5px;
  pointer-events: none;
}

.empire-homeworld-badge::before {
  top: -1px;
  left: -1px;
  border-top: 1px solid rgba(255, 214, 120, 0.75);
  border-left: 1px solid rgba(255, 214, 120, 0.75);
}

.empire-homeworld-badge::after {
  bottom: -1px;
  right: -1px;
  border-bottom: 1px solid rgba(255, 214, 120, 0.75);
  border-right: 1px solid rgba(255, 214, 120, 0.75);
}

.empire-homeworld-badge-star {
  color: rgba(255, 220, 120, 0.98);
  font-size: 0.72rem;
  line-height: 1;
  text-shadow: 0 0 10px rgba(255, 196, 80, 0.45);
}

.empire-colony-prod-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  background: rgba(120, 190, 255, 0.08);
}

.empire-colony-stat {
  display: grid;
  gap: 6px;
  align-content: start;
  min-width: 0;
  padding: 12px 10px;
  background: rgba(4, 10, 22, 0.88);
}

.empire-colony-stat-label {
  color: var(--gc-text-dim);
  font-size: 0.68rem;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
}

.empire-colony-stat-value {
  font-size: 0.92rem;
  font-weight: 700;
  line-height: 1.2;
  white-space: nowrap;
}

.empire-colony-score-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 11px 14px;
  border-top: 1px solid rgba(127, 255, 217, 0.14);
  background: rgba(70, 229, 255, 0.05);
}

.empire-colony-score-label {
  color: var(--gc-text-dim);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  flex-shrink: 0;
}

.empire-colony-score-value {
  font-size: 1.02rem;
  font-weight: 800;
  color: var(--gc-neon-green, #7fffd9);
  text-align: right;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}

.empire-colony-empty {
  margin: 0;
  grid-column: 1 / -1;
}

@media (max-width: 980px) {
  .empire-prod-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .empire-prod-grid {
    grid-template-columns: 1fr;
  }

  .empire-colony-grid {
    grid-template-columns: 1fr;
  }

  .empire-colony-prod-grid {
    grid-template-columns: 1fr;
  }

  .empire-colony-title-row {
    flex-direction: column;
    align-items: flex-start;
  }

  .empire-colony-meta-row {
    flex-direction: column;
    align-items: flex-start;
  }
}

@media (max-width: 420px) {
  .empire-prod-card {
    min-height: 68px;
    padding: 12px;
  }

  .empire-colony-score-bar {
    flex-direction: column;
    align-items: flex-start;
    gap: 4px;
  }

  .empire-colony-score-value {
    text-align: left;
    width: 100%;
  }
}

/* Empire matrix (GC-620D full matrix) */
.empire-matrix-panel {
  padding: 0;
  overflow: hidden;
  border-color: rgba(70, 229, 255, 0.2);
}

.empire-matrix-panel .empire-section-head {
  padding: 14px 14px 0;
  margin-bottom: 10px;
}

.empire-matrix-scroll {
  overflow-x: auto;
  overflow-y: hidden;
  max-width: 100%;
  -webkit-overflow-scrolling: touch;
  border-top: 1px solid rgba(120, 190, 255, 0.1);
  scrollbar-color: rgba(70, 229, 255, 0.35) rgba(4, 10, 22, 0.6);
  scrollbar-width: thin;
}

.empire-matrix-scroll::-webkit-scrollbar {
  height: 8px;
}

.empire-matrix-scroll::-webkit-scrollbar-track {
  background: rgba(4, 10, 22, 0.72);
}

.empire-matrix-scroll::-webkit-scrollbar-thumb {
  border-radius: var(--gc-radius-pill);
  background: linear-gradient(90deg, rgba(70, 229, 255, 0.35), rgba(127, 255, 217, 0.55));
}

.empire-matrix {
  width: max-content;
  min-width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  font-size: 0.8rem;
}

.empire-matrix th,
.empire-matrix td {
  padding: 8px 11px;
  border-bottom: 1px solid rgba(120, 190, 255, 0.08);
  border-right: 1px solid rgba(120, 190, 255, 0.06);
  vertical-align: middle;
}

.empire-matrix-sticky-col {
  position: sticky;
  left: 0;
  z-index: 4;
  min-width: 190px;
  max-width: 240px;
  background: rgba(6, 12, 24, 0.98);
  box-shadow: 8px 0 18px rgba(0, 0, 0, 0.28);
}

.empire-matrix-corner {
  z-index: 6;
  text-align: left;
  color: var(--gc-text-dim);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  vertical-align: bottom;
}

.empire-matrix-colony-header-row .empire-matrix-colony-head {
  min-width: 132px;
  max-width: 168px;
  text-align: left;
  vertical-align: top;
  background: rgba(70, 229, 255, 0.05);
  border-bottom: 2px solid rgba(70, 229, 255, 0.16);
  position: sticky;
  top: 0;
  z-index: 2;
}

.empire-matrix-colony-head .empire-matrix-colony-name {
  display: block;
  font-weight: 700;
  color: var(--gc-primary-2);
  line-height: 1.25;
  white-space: normal;
}

.empire-matrix-homeworld-badge {
  display: inline-block;
  margin-top: 4px;
  padding: 2px 6px;
  border: 1px solid rgba(255, 214, 120, 0.35);
  color: rgba(255, 232, 170, 0.95);
  font-size: 0.58rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.empire-matrix-colony-coords {
  display: block;
  margin-top: 4px;
  font-size: 0.72rem;
  color: var(--gc-text-dim);
}

.empire-matrix-colony-type {
  display: inline-block;
  margin-top: 6px;
  padding: 3px 8px;
  font-size: 0.62rem;
}

.empire-matrix-colony-temp {
  display: block;
  margin-top: 4px;
  font-size: 0.68rem;
  white-space: normal;
}

.empire-matrix-total-head {
  min-width: 88px;
  text-align: right;
  color: var(--gc-neon-green, #7fffd9);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: rgba(70, 229, 255, 0.08);
  border-bottom: 2px solid rgba(127, 255, 217, 0.22);
  position: sticky;
  top: 0;
  z-index: 2;
}

.empire-matrix-section-row .empire-matrix-section-label {
  text-align: left;
  padding: 0;
  background: rgba(70, 229, 255, 0.08);
  border-top: 1px solid rgba(70, 229, 255, 0.18);
  border-bottom: 1px solid rgba(70, 229, 255, 0.12);
}

.empire-matrix-section-toggle{
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  margin: 0;
  padding: 10px 12px;
  border: none;
  background: transparent;
  font-family: inherit;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-align: left;
  color: var(--gc-primary-2);
  cursor: pointer;
  transition: color 0.12s ease, background 0.12s ease;
}

.empire-matrix-section-toggle:hover{
  background: rgba(70, 229, 255, 0.06);
  color: var(--gc-neon-cyan);
}

.empire-matrix-section-chevron{
  flex: 0 0 auto;
  width: 0.55rem;
  height: 0.55rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: rotate(45deg) translateY(-1px);
  transition: transform 0.15s ease;
}

.empire-matrix-section-row.is-collapsed .empire-matrix-section-chevron{
  transform: rotate(-45deg) translateY(1px);
}

.empire-matrix-section-title{
  flex: 1 1 auto;
}

.empire-matrix-data-row.is-section-collapsed{
  display: none;
}

.empire-matrix-account-tag {
  margin-left: 8px;
  padding: 2px 8px;
  border: 1px solid rgba(255, 214, 120, 0.28);
  color: rgba(255, 220, 120, 0.92);
  font-size: 0.62rem;
  letter-spacing: 0.08em;
}

.empire-matrix-row-label {
  text-align: left;
  color: var(--gc-text-dim);
  font-size: 0.72rem;
  font-weight: 600;
  white-space: normal;
  line-height: 1.25;
}

.empire-matrix-data-row:hover td,
.empire-matrix-data-row:hover .empire-matrix-sticky-col {
  background: rgba(70, 229, 255, 0.035);
}

.empire-matrix-cell {
  text-align: right;
  color: var(--gc-text-soft);
  white-space: nowrap;
}

.empire-matrix-cell--production {
  color: var(--gc-neon-green, #7fffd9);
  font-weight: 700;
}

.empire-matrix-cell--account {
  text-align: center;
  color: rgba(255, 220, 120, 0.95);
  font-weight: 700;
  background: rgba(255, 196, 80, 0.05);
}

.empire-matrix-cell--total {
  font-weight: 800;
  color: var(--gc-text);
  background: rgba(70, 229, 255, 0.04);
}

.empire-matrix-cell.is-zero,
.empire-matrix-zero {
  opacity: 0.38;
}

.empire-matrix-unit {
  margin-left: 1px;
  font-size: 0.72em;
  color: var(--gc-text-dim);
  font-weight: 600;
}

.empire-matrix-empty {
  padding: 18px 14px;
  color: var(--gc-text-dim);
}

@media (max-width: 720px) {
  .empire-page,
  .empire-summary,
  .empire-prod-panel,
  .empire-matrix-panel {
    max-width: 100%;
    overflow-x: clip;
  }

  .empire-matrix-sticky-col {
    min-width: 148px;
    max-width: 168px;
    padding: 8px 9px;
  }

  .empire-matrix-colony-header-row .empire-matrix-colony-head {
    min-width: 112px;
    max-width: 140px;
    padding: 8px 9px;
  }

  .empire-matrix th,
  .empire-matrix td {
    padding: 7px 8px;
    font-size: 0.74rem;
  }
}

/* GC-540 / GC-INV-UX — Inventory vault */
.inventory-page {
  --inv-hub-pad: 10px;
  position: relative;
}

.inventory-page::before {
  content: "";
  position: absolute;
  inset: -8px -4px auto -4px;
  height: 180px;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(ellipse 70% 80% at 18% 0%, rgba(70, 229, 255, 0.07), transparent 62%),
    radial-gradient(ellipse 50% 60% at 88% 10%, rgba(255, 184, 77, 0.04), transparent 55%);
}

.inventory-page > * {
  position: relative;
  z-index: 1;
}

.inventory-page .gc-panel.inventory-panel {
  margin-bottom: 10px;
}

.inventory-page .inventory-headline--compact {
  margin-bottom: 8px;
}

.inventory-page .inventory-headline--compact .section-title {
  margin: 0;
}

.inventory-page .inventory-headline__row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 12px;
}

.inventory-page .inventory-planet-scope {
  margin: 0;
  font-size: 0.74rem;
  color: var(--gc-text-dim);
}

.inventory-tabs {
  display: flex;
  gap: 0.35rem;
  margin: 0 0 0.85rem;
  flex-wrap: wrap;
}

.inventory-tabs--inline {
  margin: 0;
  flex-shrink: 0;
}

.inventory-workspace-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 14px;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.12);
}

.inventory-workspace-context {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
  margin-left: auto;
  min-width: 0;
}

.inventory-workspace-context[hidden] {
  display: none !important;
}

.inventory-head-link {
  appearance: none;
  background: transparent;
  border: none;
  padding: 0;
  margin: 0;
  color: var(--gc-text-dim, #7a9);
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: underline;
  text-underline-offset: 3px;
}

.inventory-head-link:hover,
.inventory-head-link:focus-visible {
  color: var(--gc-accent, #5ad0e6);
  outline: none;
}

.inventory-workspace .inventory-workspace-context--items .inventory-tk-rail {
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}

.inventory-workspace .inventory-items-body.inventory-vault {
  padding: 0;
  border: none;
  background: transparent;
  box-shadow: none;
}

.inventory-workspace .inventory-drops-panel {
  margin-top: 12px;
  padding: 8px 0 0;
  border: none;
  border-top: 1px solid rgba(70, 229, 255, 0.12);
  background: transparent;
  box-shadow: none;
}

.inventory-tab {
  appearance: none;
  background: rgba(8, 18, 24, 0.9);
  border: 1px solid var(--gc-border, #2a3a44);
  border-radius: var(--gc-radius-sm, 2px);
  color: var(--gc-text-muted, #8aa);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.45rem 0.85rem;
  cursor: pointer;
  min-height: 34px;
}

.inventory-tab.is-active {
  color: var(--gc-accent, #5ad0e6);
  border-color: rgba(90, 208, 230, 0.55);
  background: rgba(20, 40, 50, 0.95);
}

.inventory-panel-tab[hidden] {
  display: none !important;
}

.inventory-panel-tab.is-active {
  display: block;
}

.inventory-rewards-hub,
.inventory-containers-hero {
  padding: 10px 12px 12px;
  border-color: rgba(70, 229, 255, 0.32);
  background:
    linear-gradient(180deg, rgba(10, 18, 32, 0.98) 0%, rgba(6, 10, 18, 0.96) 100%);
  box-shadow:
    0 0 0 1px rgba(70, 229, 255, 0.1) inset,
    0 14px 36px rgba(0, 0, 0, 0.38),
    0 0 40px rgba(70, 229, 255, 0.06);
}

.inventory-vault {
  padding: 12px 14px 14px;
  border-color: rgba(70, 229, 255, 0.28);
  background:
    linear-gradient(180deg, rgba(10, 18, 32, 0.98) 0%, rgba(6, 10, 18, 0.96) 100%);
  box-shadow:
    0 0 0 1px rgba(70, 229, 255, 0.08) inset,
    0 12px 32px rgba(0, 0, 0, 0.34),
    0 0 36px rgba(70, 229, 255, 0.05);
}

.inventory-vault-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px 16px;
  margin-bottom: 10px;
  padding-bottom: 10px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.12);
}

.inventory-vault-titles {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}

.inventory-vault-titles .gc-panel-subtitle {
  font-size: 0.72rem;
  color: var(--gc-text-dim);
}

.inventory-tk-rail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  min-width: 0;
  padding: 6px 10px;
  border: 1px solid rgba(62, 200, 208, 0.28);
  border-radius: var(--gc-radius-sm);
  background: rgba(62, 200, 208, 0.06);
}

.inventory-tk-rail__icon {
  width: 22px;
  height: 22px;
  object-fit: contain;
  flex-shrink: 0;
  filter: drop-shadow(0 0 6px rgba(62, 200, 208, 0.35));
}

.inventory-tk-rail__tag {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  color: rgba(62, 200, 208, 0.88);
  flex-shrink: 0;
}

.inventory-tk-rail__balance {
  font-size: 1.05rem;
  line-height: 1;
  color: rgba(244, 252, 255, 0.98);
  flex-shrink: 0;
}

.inventory-tk-rail__chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 4px;
  margin-left: auto;
  min-width: 0;
}

.inventory-tk-rail__deposit-list {
  display: none;
}

.inventory-tk-chip {
  appearance: none;
  border: 1px solid rgba(62, 200, 208, 0.28);
  border-radius: var(--gc-radius-sm);
  background: rgba(62, 200, 208, 0.06);
  color: rgba(220, 245, 255, 0.9);
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  padding: 4px 8px;
  line-height: 1.15;
  cursor: pointer;
  white-space: nowrap;
  min-height: 28px;
  transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.inventory-tk-chip:hover {
  border-color: rgba(62, 200, 208, 0.5);
  box-shadow: 0 0 8px rgba(62, 200, 208, 0.14);
}

.inventory-tk-chip--all {
  border-color: rgba(220, 245, 255, 0.42);
  background: rgba(62, 200, 208, 0.12);
  font-weight: 800;
}
.inventory-tk-chip--build { border-color: rgba(52, 232, 178, 0.35); }
.inventory-tk-chip--research { border-color: rgba(118, 168, 255, 0.35); }
.inventory-tk-chip--shipyard { border-color: rgba(255, 186, 56, 0.35); }

.inventory-active-boosters-rail {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  padding: 6px 0 10px;
  border-bottom: 1px solid rgba(120, 200, 140, 0.12);
}

.inventory-active-boosters-rail[hidden] {
  display: none !important;
}

.inventory-active-boosters-rail__label {
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(170, 230, 185, 0.75);
  flex-shrink: 0;
}

.inventory-active-boosters-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  min-width: 0;
  flex: 1 1 auto;
}

.inventory-active-booster-chip {
  display: inline-flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 4px 8px;
  max-width: 100%;
  padding: 5px 8px;
  border-radius: var(--gc-radius-sm);
  background: rgba(40, 90, 60, 0.18);
  border: 1px solid rgba(120, 200, 140, 0.22);
  font-size: 0.74rem;
}

.inventory-active-booster-chip .inventory-active-booster-label {
  font-weight: 600;
  color: rgba(170, 230, 185, 0.95);
}

.inventory-active-booster-chip .inventory-active-booster-effect {
  color: rgba(190, 240, 200, 0.85);
  max-width: 14rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inventory-active-booster-chip .inventory-active-booster-time {
  margin-left: auto;
  color: rgba(160, 210, 175, 0.9);
  font-size: 0.7rem;
}

.inventory-containers-hub__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  margin-bottom: 8px;
}

.inventory-containers-hub__title {
  font-size: 0.92rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(244, 252, 255, 0.95);
}

.inventory-containers-hub__sub {
  font-size: 0.68rem;
  color: var(--gc-text-dim);
}

.inventory-container-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(132px, 1fr));
  gap: 8px;
}

.inventory-loot-card {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0;
  border-radius: 2px;
  overflow: hidden;
  border: 1px solid rgba(70, 229, 255, 0.18);
  background:
    linear-gradient(165deg, rgba(12, 22, 38, 0.96) 0%, rgba(6, 10, 18, 0.98) 100%);
  box-shadow:
    0 0 0 1px rgba(70, 229, 255, 0.06),
    0 6px 16px rgba(0, 0, 0, 0.32);
  transition: transform 0.18s ease, box-shadow 0.18s ease, border-color 0.18s ease;
  clip-path: polygon(
    0 4px, 4px 0, calc(100% - 4px) 0, 100% 4px,
    100% calc(100% - 4px), calc(100% - 4px) 100%, 4px 100%, 0 calc(100% - 4px)
  );
}

.inventory-loot-card:hover {
  transform: translateY(-2px);
  border-color: rgba(70, 229, 255, 0.38);
  box-shadow:
    0 0 0 1px rgba(70, 229, 255, 0.12) inset,
    0 0 14px rgba(70, 229, 255, 0.12),
    0 10px 24px rgba(0, 0, 0, 0.42);
}

.inventory-loot-card--owned:hover .inventory-loot-card-glow,
.inventory-loot-card--free-ready:hover .inventory-loot-card-glow {
  opacity: 0.78;
}

.inventory-loot-card--owned:hover .inventory-open-btn.gc-btn-primary,
.inventory-loot-card--free-ready:hover .inventory-open-btn.gc-btn-primary {
  box-shadow: 0 0 14px rgba(70, 229, 255, 0.35);
  border-color: rgba(70, 229, 255, 0.55);
}

.inventory-loot-card--empty {
  opacity: 0.72;
}

.inventory-loot-card--empty .inventory-loot-card-img {
  filter: grayscale(0.85) brightness(0.72) saturate(0.65);
}

.inventory-loot-card--owned,
.inventory-loot-card--free-ready {
  opacity: 1;
}

.inventory-loot-card--free-ready .inventory-loot-card-img {
  filter: none;
}

.inventory-loot-card--owned .inventory-loot-card-img {
  filter: none;
}

.inventory-loot-card-hero {
  position: relative;
  aspect-ratio: 1 / 0.78;
  display: grid;
  place-items: center;
  padding: 8px 8px 4px;
  background: radial-gradient(ellipse at 50% 35%, rgba(80, 140, 220, 0.12), transparent 68%);
}

.inventory-loot-card-glow {
  position: absolute;
  inset: 10% 8% 16%;
  border-radius: 0;
  filter: blur(18px);
  opacity: 0.55;
  pointer-events: none;
  transition: opacity 0.28s ease, filter 0.28s ease;
}

.inventory-loot-card-glow--common { background: rgba(184, 192, 204, 0.42); }
.inventory-loot-card-glow--uncommon { background: rgba(110, 207, 143, 0.5); }
.inventory-loot-card-glow--rare { background: rgba(94, 176, 255, 0.56); }
.inventory-loot-card-glow--epic { background: rgba(199, 125, 255, 0.58); }
.inventory-loot-card-glow--legendary { background: rgba(255, 184, 77, 0.62); }

.inventory-loot-card--owned.inventory-loot-card[data-rarity="legendary"] {
  border-color: rgba(255, 184, 77, 0.45);
  box-shadow: 0 0 24px rgba(255, 184, 77, 0.12), 0 12px 32px rgba(0, 0, 0, 0.4);
}

.inventory-loot-card--owned.inventory-loot-card[data-rarity="epic"] {
  border-color: rgba(199, 125, 255, 0.4);
}

.inventory-loot-card--owned.inventory-loot-card[data-rarity="rare"] {
  border-color: rgba(94, 176, 255, 0.35);
}

.inventory-loot-card-img {
  position: relative;
  z-index: 1;
  width: min(100%, 112px);
  height: auto;
  max-height: 88px;
  object-fit: contain;
  filter: drop-shadow(0 6px 12px rgba(0, 0, 0, 0.42));
  transition: filter 0.28s ease, transform 0.28s ease;
}

.inventory-loot-card--owned:hover .inventory-loot-card-img,
.inventory-loot-card--free-ready:hover .inventory-loot-card-img {
  transform: scale(1.04) translateY(-1px);
  filter: drop-shadow(0 8px 16px rgba(0, 0, 0, 0.5)) drop-shadow(0 0 12px rgba(70, 229, 255, 0.18));
}

.inventory-loot-card-stock {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 2;
  min-width: 26px;
  padding: 1px 6px;
  border-radius: 2px;
  font-size: 0.68rem;
  font-weight: 700;
  text-align: center;
  letter-spacing: 0.04em;
  color: #e8f4ff;
  background: rgba(8, 16, 28, 0.92);
  border: 1px solid rgba(70, 229, 255, 0.35);
  box-shadow: 0 0 8px rgba(70, 229, 255, 0.1);
  clip-path: polygon(0 0, calc(100% - 5px) 0, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
}

.inventory-loot-card--owned .inventory-loot-card-stock {
  color: #b8f5c8;
  border-color: rgba(110, 207, 143, 0.45);
}

.inventory-loot-card-body {
  padding: 4px 8px 2px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.inventory-loot-card-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 4px;
}

.inventory-loot-card-name {
  margin: 0;
  font-size: 0.72rem;
  font-weight: 650;
  line-height: 1.2;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.inventory-loot-card-status,
.inventory-loot-card-hint {
  margin: 0;
  font-size: 0.6rem;
  color: var(--gc-text-dim);
  line-height: 1.2;
}

.inventory-loot-card-status[hidden] {
  display: none !important;
}

.inventory-loot-card-cooldown {
  margin: 0;
  font-size: 0.58rem;
  color: var(--gc-accent-warm, #ffb84d);
  letter-spacing: 0.02em;
}

.inventory-loot-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 4px 8px 8px;
  margin-top: auto;
}

.inventory-loot-card-actions .inventory-open-btn {
  flex: 1 1 100%;
  min-width: 0;
  min-height: 28px;
  font-size: 0.7rem;
  padding: 4px 6px;
}

.inventory-container-grid .inventory-rarity-badge {
  border-radius: 2px;
  clip-path: polygon(0 0, calc(100% - 4px) 0, 100% 4px, 100% 100%, 4px 100%, 0 calc(100% - 4px));
  letter-spacing: 0.05em;
  font-size: 0.58rem;
  padding: 1px 5px;
  flex-shrink: 0;
}

.inventory-rarity-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 2px;
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.inventory-rarity-badge--common { color: #b8c0cc; background: rgba(184, 192, 204, 0.12); }
.inventory-rarity-badge--uncommon { color: #6ecf8f; background: rgba(110, 207, 143, 0.14); }
.inventory-rarity-badge--rare { color: #5eb0ff; background: rgba(94, 176, 255, 0.14); }
.inventory-rarity-badge--epic { color: #c77dff; background: rgba(199, 125, 255, 0.14); }
.inventory-rarity-badge--legendary { color: #ffb84d; background: rgba(255, 184, 77, 0.16); }

.inventory-trade-hint,
.inventory-locked-hint,
.inventory-use-hint {
  font-size: 0.72rem;
  color: rgba(160, 190, 210, 0.85);
}
.inventory-locked-hint {
  color: rgba(200, 170, 120, 0.9);
}

.inventory-item-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(128px, 1fr));
  gap: 8px;
}

.inventory-item-vault {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.inventory-item-group {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
}

.inventory-item-group__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  padding: 0 2px 4px;
  border-bottom: 1px solid rgba(70, 229, 255, 0.12);
}

.inventory-item-group__title {
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(220, 245, 255, 0.88);
}

.inventory-item-group__count {
  font-size: 0.68rem;
  color: var(--gc-text-dim);
}

.inventory-item-card {
  display: flex;
  flex-direction: column;
  gap: 0;
  min-width: 0;
  border-radius: var(--gc-radius-sm);
  overflow: hidden;
  border: 1px solid rgba(70, 229, 255, 0.16);
  background:
    linear-gradient(165deg, rgba(12, 22, 38, 0.96) 0%, rgba(6, 10, 18, 0.98) 100%);
  box-shadow: 0 0 0 1px rgba(70, 229, 255, 0.04);
  transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}

.inventory-item-card:hover {
  border-color: rgba(70, 229, 255, 0.34);
  box-shadow: 0 8px 22px rgba(0, 0, 0, 0.28), 0 0 18px rgba(70, 229, 255, 0.08);
  transform: translateY(-1px);
}

.inventory-item-card--uncommon { border-color: rgba(110, 207, 143, 0.28); }
.inventory-item-card--rare { border-color: rgba(94, 176, 255, 0.3); }
.inventory-item-card--epic { border-color: rgba(199, 125, 255, 0.32); }
.inventory-item-card--legendary { border-color: rgba(255, 184, 77, 0.36); }

.inventory-item-card-hero {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 56px;
  padding: 8px 8px 4px;
  background: rgba(0, 0, 0, 0.22);
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}

.inventory-item-card .inventory-item-icon {
  font-size: 1.6rem;
  width: 2.4rem;
  height: 2.4rem;
}

.inventory-item-card .inventory-item-img {
  width: 2.4rem;
  height: 2.4rem;
  object-fit: contain;
}

.inventory-item-card .inventory-item-amount {
  position: absolute;
  top: 6px;
  right: 6px;
  padding: 1px 5px;
  font-size: 0.68rem;
  font-weight: 700;
  background: rgba(0, 0, 0, 0.65);
  border: 1px solid rgba(70, 229, 255, 0.22);
  border-radius: var(--gc-radius-sm);
  color: rgba(244, 252, 255, 0.95);
}

.inventory-item-card-body {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 10px 4px;
  min-width: 0;
  flex: 1 1 auto;
}

.inventory-item-card .inventory-item-name {
  font-size: 0.8rem;
  font-weight: 600;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.inventory-item-card .inventory-rarity-badge {
  align-self: flex-start;
  font-size: 0.62rem;
  padding: 1px 6px;
}

.inventory-item-card .inventory-collectible-badge {
  align-self: flex-start;
  font-size: 0.58rem;
  padding: 1px 5px;
}

.inventory-item-card-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-height: 0;
}

.inventory-item-card-meta > span {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  line-height: 1.25;
}

.inventory-item-card-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  padding: 6px 10px 10px;
  margin-top: auto;
}

.inventory-item-card-actions .gc-btn {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 28px;
}

.inventory-reward-row {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px 10px;
  padding: 6px 10px;
  border-radius: var(--gc-radius-sm);
  background: rgba(0, 0, 0, 0.14);
}

.inventory-item-icon,
.inventory-reward-icon {
  font-size: 1.28rem;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 1.6rem;
  height: 1.6rem;
}
.inventory-item-img {
  width: 1.55rem;
  height: 1.55rem;
  object-fit: contain;
}

.inventory-item-name,
.inventory-reward-label {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 0.86rem;
  line-height: 1.2;
}

.inventory-reward-amount {
  color: #8fe8a8;
  font-weight: 700;
}

.inventory-empty {
  color: var(--gc-text-dim);
  padding: 12px 4px;
  grid-column: 1 / -1;
}

.inventory-craft-progress {
  font-size: 0.72rem;
  color: var(--gc-accent-warm, #ffb84d);
}

.inventory-exchange-progress {
  font-size: 0.72rem;
  color: var(--gc-accent-cool, #7ec8ff);
}

.inventory-endgame-hint {
  font-size: 0.72rem;
  color: var(--gc-text-muted, #9aa3b2);
  font-style: italic;
}

.inventory-collectible-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: var(--gc-radius-sm);
  font-size: 0.68rem;
  font-weight: 600;
  color: #c9b8ff;
  background: rgba(201, 184, 255, 0.12);
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.inventory-use-btn,
.inventory-craft-btn,
.inventory-exchange-btn {
  flex-shrink: 0;
}

@media (max-width: 640px) {
  .inventory-container-grid {
    grid-template-columns: repeat(auto-fill, minmax(118px, 1fr));
    gap: 6px;
  }

  .inventory-item-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .inventory-vault-head {
    flex-direction: column;
  }

  .inventory-tk-rail {
    width: 100%;
  }

  .inventory-tk-rail__chips {
    margin-left: 0;
    width: 100%;
    justify-content: flex-start;
  }
}

.inventory-effect-message {
  display: flex;
  align-items: center;
  gap: 10px;
  margin: 0 0 10px;
  padding: 12px 14px;
  border-radius: 0;
  background: rgba(143, 232, 168, 0.1);
  border: 1px solid rgba(143, 232, 168, 0.22);
  color: #8fe8a8;
  font-weight: 600;
  line-height: 1.35;
}

.inventory-rewards-panel-wrap.gc-panel {
  border-radius: 0;
}

.inventory-effect-message--success {
  box-shadow: 0 0 18px rgba(143, 232, 168, 0.08);
}

.inventory-effect-icon {
  flex-shrink: 0;
  font-size: 1.25rem;
  line-height: 1;
}

.inventory-effect-text {
  flex: 1 1 auto;
}

.inventory-item-card[hidden] {
  display: none !important;
}

.inventory-rewards-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Collapsible loot drops reference */
.inventory-drops-panel {
  margin-top: 4px;
  padding: 10px 12px 12px;
  border-color: rgba(70, 229, 255, 0.22);
  background:
    linear-gradient(180deg, rgba(10, 18, 32, 0.96) 0%, rgba(6, 10, 18, 0.94) 100%);
  box-shadow:
    0 0 0 1px rgba(70, 229, 255, 0.06) inset,
    0 10px 28px rgba(0, 0, 0, 0.28);
}

.inventory-drops-details {
  border: none;
}

.inventory-drops-summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 4px 2px 12px;
  cursor: pointer;
  list-style: none;
  user-select: none;
}

.inventory-drops-summary::-webkit-details-marker {
  display: none;
}

.inventory-drops-summary-text {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}

.inventory-drops-chevron {
  flex: 0 0 auto;
  font-size: 1.1rem;
  color: var(--gc-primary-2, #7fffd9);
  transition: transform 0.18s ease;
}

.inventory-drops-details[open] .inventory-drops-chevron {
  transform: rotate(180deg);
}

.inventory-drops-body {
  padding-top: 4px;
  border-top: 1px solid rgba(120, 190, 255, 0.14);
}

.inventory-drops-intro {
  margin: 0 0 14px;
  font-size: 0.78rem;
}

.inventory-drops-table {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.inventory-drops-row {
  padding: 12px 12px 14px;
  border: 1px solid rgba(120, 190, 255, 0.16);
  background: rgba(4, 10, 22, 0.55);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.28);
}

.inventory-drops-row--legendary { border-color: rgba(255, 184, 77, 0.28); }
.inventory-drops-row--epic { border-color: rgba(199, 125, 255, 0.24); }
.inventory-drops-row--rare { border-color: rgba(94, 176, 255, 0.22); }
.inventory-drops-row--uncommon { border-color: rgba(110, 207, 143, 0.2); }

.inventory-drops-row-head {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}

.inventory-drops-row-img {
  width: 56px;
  height: 56px;
  object-fit: contain;
  flex: 0 0 auto;
}

.inventory-drops-row-meta {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.inventory-drops-row-name {
  margin: 0;
  font-size: 0.92rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.inventory-drops-row-tagline {
  margin: 0;
  font-size: 0.72rem;
  color: var(--gc-text-dim);
  line-height: 1.35;
}

.inventory-drops-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
  gap: 8px;
}

.inventory-drop-chip {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid rgba(120, 190, 255, 0.14);
  background: rgba(0, 0, 0, 0.28);
  min-width: 0;
}

.inventory-drop-chip-icon {
  font-size: 1.15rem;
  line-height: 1;
}

.inventory-drop-chip-body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.inventory-drop-chip-name {
  font-size: 0.72rem;
  line-height: 1.25;
  color: var(--gc-text-soft);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.inventory-drop-chip-amount {
  font-size: 0.74rem;
  font-weight: 700;
  color: #8fe8a8;
}

.inventory-drop-chip-weight {
  font-size: 0.68rem;
  color: var(--gc-text-dim);
  opacity: 0.85;
}

.inventory-drops-footnote {
  margin: 14px 0 0;
  font-size: 0.68rem;
  color: var(--gc-text-dim);
  letter-spacing: 0.03em;
}

@media (max-width: 640px) {
  .inventory-drops-grid {
    grid-template-columns: 1fr;
  }
}

/* GC-543 / GC-543B ? Lootbox opening modal (Genesis HUD) */
.gc-loot-modal-root {
  position: relative;
  z-index: 1200;
}

body.gc-loot-modal-open {
  overflow: hidden;
}

.gc-loot-modal {
  position: fixed;
  inset: 0;
  z-index: 1200;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
  background:
    radial-gradient(ellipse at 50% 20%, rgba(70, 229, 255, 0.08), transparent 55%),
    rgba(2, 6, 14, 0.88);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.gc-loot-modal::before {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.06;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(70, 229, 255, 0.35) 2px,
    rgba(70, 229, 255, 0.35) 3px
  );
}

.gc-loot-card--hud {
  position: relative;
  width: min(940px, 100%);
  max-height: min(92vh, 900px);
  overflow: auto;
  padding: 22px 20px 18px;
  border-radius: 4px;
  border: 1px solid var(--gc-panel-border-strong, rgba(70, 229, 255, 0.32));
  background:
    linear-gradient(180deg, rgba(6, 14, 28, 0.98), rgba(2, 8, 18, 0.99));
  box-shadow:
    0 0 0 1px rgba(70, 229, 255, 0.1),
    0 0 40px rgba(70, 229, 255, 0.12),
    0 24px 64px rgba(0, 0, 0, 0.65);
  clip-path: polygon(
    0 10px, 10px 0, calc(100% - 10px) 0, 100% 10px,
    100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0 calc(100% - 10px)
  );
}

.gc-loot-card-corners {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.gc-loot-card-corners::before,
.gc-loot-card-corners::after {
  content: "";
  position: absolute;
  width: 18px;
  height: 18px;
  border: 2px solid rgba(70, 229, 255, 0.55);
}

.gc-loot-card-corners::before {
  top: 6px;
  left: 6px;
  border-right: none;
  border-bottom: none;
}

.gc-loot-card-corners::after {
  bottom: 6px;
  right: 6px;
  border-left: none;
  border-top: none;
}

.gc-loot-card-scanlines {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.04;
  background: repeating-linear-gradient(
    180deg,
    transparent 0,
    transparent 3px,
    rgba(255, 255, 255, 0.5) 3px,
    rgba(255, 255, 255, 0.5) 4px
  );
}

.gc-loot-card.rarity-uncommon { border-color: rgba(110, 207, 143, 0.45); box-shadow: 0 0 36px rgba(110, 207, 143, 0.12); }
.gc-loot-card.rarity-rare { border-color: rgba(94, 176, 255, 0.55); box-shadow: 0 0 40px rgba(94, 176, 255, 0.16); }
.gc-loot-card.rarity-epic { border-color: rgba(199, 125, 255, 0.55); box-shadow: 0 0 44px rgba(199, 125, 255, 0.18); }
.gc-loot-card.rarity-legendary { border-color: rgba(255, 184, 77, 0.55); box-shadow: 0 0 48px rgba(255, 184, 77, 0.2); }

.gc-loot-card--win-epic { box-shadow: 0 0 52px rgba(199, 125, 255, 0.28); }
.gc-loot-card--win-legendary { box-shadow: 0 0 56px rgba(255, 184, 77, 0.32); }
.gc-loot-card--win-rare { box-shadow: 0 0 48px rgba(94, 176, 255, 0.24); }

.gc-loot-close {
  position: absolute;
  top: 8px;
  right: 10px;
  z-index: 2;
  min-width: 32px;
  padding: 4px 8px;
}

.gc-loot-close:disabled {
  opacity: 0.35;
  cursor: default;
}

.gc-loot-header {
  text-align: center;
  margin-bottom: 14px;
  padding-top: 4px;
}

.gc-loot-title {
  font-size: 1rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #e8f4ff;
  text-shadow: 0 0 18px rgba(70, 229, 255, 0.35);
}

.gc-loot-subtitle {
  margin-top: 6px;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}

.gc-loot-subtitle.rarity-rare { color: #5eb0ff; }
.gc-loot-subtitle.rarity-epic { color: #c77dff; }
.gc-loot-subtitle.rarity-legendary { color: #ffb84d; }

.gc-loot-crate {
  position: relative;
  display: grid;
  place-items: center;
  height: 120px;
  margin: 4px auto 16px;
  max-width: 160px;
  border-radius: 2px;
  border: 1px solid rgba(70, 229, 255, 0.22);
  background: radial-gradient(ellipse at 50% 40%, rgba(70, 229, 255, 0.1), transparent 70%);
  overflow: hidden;
  clip-path: polygon(
    0 6px, 6px 0, calc(100% - 6px) 0, 100% 6px,
    100% calc(100% - 6px), calc(100% - 6px) 100%, 6px 100%, 0 calc(100% - 6px)
  );
}

.gc-loot-crate-glow {
  position: absolute;
  inset: 8% 6% 12%;
  border-radius: 0;
  filter: blur(18px);
  opacity: 0.65;
  pointer-events: none;
}

.gc-loot-crate-img {
  position: relative;
  z-index: 1;
  width: min(100%, 132px);
  height: auto;
  max-height: 96px;
  object-fit: contain;
  filter: drop-shadow(0 8px 20px rgba(0, 0, 0, 0.45));
  animation: gc-loot-crate-glow 2.4s ease-in-out infinite alternate;
}

.gc-loot-crate.rarity-epic {
  border-color: rgba(199, 125, 255, 0.35);
  box-shadow: 0 0 24px rgba(199, 125, 255, 0.15);
}

.gc-loot-crate.rarity-legendary {
  border-color: rgba(255, 184, 77, 0.4);
  box-shadow: 0 0 28px rgba(255, 184, 77, 0.18);
}

.gc-loot-crate.rarity-rare {
  border-color: rgba(94, 176, 255, 0.35);
}

@keyframes gc-loot-crate-glow {
  from { filter: drop-shadow(0 8px 16px rgba(70, 229, 255, 0.25)); }
  to { filter: drop-shadow(0 10px 24px rgba(199, 125, 255, 0.45)); }
}

.gc-loot-roller {
  position: relative;
  overflow: hidden;
  margin: 0 auto 14px;
  max-width: 100%;
  height: 148px;
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.42);
  border: 1px solid rgba(70, 229, 255, 0.22);
  box-shadow: inset 0 0 24px rgba(0, 0, 0, 0.45);
}

.gc-loot-roller-rail {
  position: absolute;
  inset: 0;
  pointer-events: none;
  background: linear-gradient(
    90deg,
    rgba(0, 0, 0, 0.55) 0%,
    transparent 18%,
    transparent 82%,
    rgba(0, 0, 0, 0.55) 100%
  );
  z-index: 1;
}

.gc-loot-marker {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 3px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(199, 125, 255, 0.2), #46e5ff, rgba(199, 125, 255, 0.2));
  box-shadow: 0 0 16px rgba(70, 229, 255, 0.85);
  z-index: 3;
  pointer-events: none;
}

.gc-loot-marker::before,
.gc-loot-marker::after {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
}

.gc-loot-marker::before {
  top: 4px;
  border-bottom: 10px solid #46e5ff;
  filter: drop-shadow(0 0 6px rgba(70, 229, 255, 0.8));
}

.gc-loot-marker::after {
  bottom: 4px;
  border-top: 10px solid #c77dff;
  filter: drop-shadow(0 0 6px rgba(199, 125, 255, 0.8));
}

.gc-loot-strip {
  display: flex;
  gap: 8px;
  align-items: stretch;
  height: 100%;
  padding: 12px 8px;
  will-change: transform;
}

.gc-loot-tile {
  flex: 0 0 148px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 10px 8px;
  border-radius: 2px;
  border: 1px solid rgba(70, 229, 255, 0.18);
  background: linear-gradient(180deg, rgba(8, 16, 30, 0.95), rgba(4, 10, 20, 0.98));
  text-align: center;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}

.gc-loot-tile.rarity-uncommon { border-color: rgba(110, 207, 143, 0.4); box-shadow: 0 0 10px rgba(110, 207, 143, 0.12); }
.gc-loot-tile.rarity-rare { border-color: rgba(94, 176, 255, 0.45); box-shadow: 0 0 12px rgba(94, 176, 255, 0.14); }
.gc-loot-tile.rarity-epic { border-color: rgba(199, 125, 255, 0.5); box-shadow: 0 0 14px rgba(199, 125, 255, 0.16); }
.gc-loot-tile.rarity-legendary { border-color: rgba(255, 184, 77, 0.55); box-shadow: 0 0 16px rgba(255, 184, 77, 0.18); }
.gc-loot-tile.rarity-mythic { border-color: rgba(255, 120, 200, 0.55); box-shadow: 0 0 16px rgba(255, 120, 200, 0.18); }

.gc-loot-tile.is-winning {
  border-color: #46e5ff;
  box-shadow:
    0 0 22px rgba(70, 229, 255, 0.55),
    inset 0 0 12px rgba(70, 229, 255, 0.12);
  animation: gc-loot-winner-pulse 0.75s ease-out 2;
}

@keyframes gc-loot-winner-pulse {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}

.gc-loot-tile-icon {
  font-size: 1.75rem;
  line-height: 1;
  filter: drop-shadow(0 0 8px rgba(70, 229, 255, 0.25));
}

.gc-loot-tile-name {
  font-size: 0.7rem;
  font-weight: 700;
  color: #d8e4f4;
  line-height: 1.2;
  letter-spacing: 0.03em;
}

.gc-loot-tile-amount {
  font-size: 0.88rem;
  font-weight: 800;
  color: #8fe8a8;
  text-shadow: 0 0 10px rgba(143, 232, 168, 0.25);
}

.gc-loot-tile-rarity {
  font-size: 0.58rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gc-text-dim);
}

.gc-loot-status {
  text-align: center;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: #46e5ff;
  margin-bottom: 14px;
  text-shadow: 0 0 12px rgba(70, 229, 255, 0.35);
}

.gc-loot-skip {
  display: block;
  margin: 0 auto;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.gc-loot-results {
  margin-top: 10px;
}

.gc-loot-results-panel {
  padding: 14px 12px;
  border-radius: 2px;
  border: 1px solid rgba(70, 229, 255, 0.2);
  background:
    linear-gradient(135deg, rgba(8, 16, 32, 0.92), rgba(4, 10, 22, 0.96));
  box-shadow: inset 0 0 24px rgba(70, 229, 255, 0.06);
}

.gc-loot-results-title {
  text-align: center;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: #c9e4ff;
  margin-bottom: 14px;
}

.gc-loot-results-grid {
  display: grid;
  gap: 8px;
  margin-bottom: 16px;
}

.gc-loot-result-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
  border-radius: 2px;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(70, 229, 255, 0.12);
}

.gc-loot-result-row--primary {
  padding: 16px 14px;
  border-color: rgba(70, 229, 255, 0.35);
  box-shadow: 0 0 20px rgba(70, 229, 255, 0.12);
}

.gc-loot-result-row.rarity-epic { border-color: rgba(199, 125, 255, 0.4); }
.gc-loot-result-row.rarity-legendary { border-color: rgba(255, 184, 77, 0.45); }

.gc-loot-result-icon {
  font-size: 1.6rem;
  filter: drop-shadow(0 0 8px rgba(70, 229, 255, 0.2));
}

.gc-loot-result-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 2px;
}

.gc-loot-result-name {
  font-weight: 700;
  letter-spacing: 0.03em;
}

.gc-loot-result-amount {
  color: #8fe8a8;
  font-weight: 800;
  font-size: 1.05rem;
}

.gc-loot-result-row--primary .gc-loot-result-amount {
  font-size: 1.25rem;
}

.gc-loot-result-rarity {
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--gc-text-dim);
}

.gc-loot-results-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

body.gc-reduced-motion .gc-loot-crate-img {
  animation: none;
}

body.gc-reduced-motion .gc-loot-strip {
  transition: none !important;
}

body.gc-reduced-motion .gc-loot-tile.is-winning {
  animation: none;
}

@media (max-width: 640px) {
  .gc-loot-card--hud {
    padding: 16px 12px 14px;
  }

  .gc-loot-tile {
    flex-basis: 120px;
  }

  .gc-loot-roller {
    height: 128px;
  }

  .gc-loot-results-actions .gc-btn {
    flex: 1 1 100%;
  }
}

/* GC-550 — Auction House Active-Lots AAA */
.auction-page,
.auction-house-page {
  max-width: 100%;
  min-width: 0;
  overflow-x: clip;
}

.auction-house-shell.gc-panel {
  padding: 12px;
}

.auction-house-shell .auction-house-status-panel {
  margin: -12px -12px 0;
  padding: 14px 16px 12px;
  border-bottom: 1px solid rgba(127, 255, 217, 0.08);
  background:
    linear-gradient(180deg, rgba(8, 18, 36, 0.55) 0%, rgba(4, 10, 22, 0.2) 100%);
}

.auction-house-shell .auction-house-window-header {
  margin-bottom: 10px;
  padding-bottom: 0;
  border-bottom: none;
  align-items: flex-start;
  gap: 12px;
}

.auction-house-eyebrow {
  margin: 0 0 4px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gc-accent);
}

.auction-house-status-chips {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: stretch;
  gap: 8px;
}

.auction-house-rotation-clock.auction-rotation-timer {
  display: flex;
  margin: 0;
  padding: 8px 12px;
  min-width: 11rem;
  flex-direction: column;
  gap: 2px;
  border: 1px solid rgba(0, 229, 255, 0.2);
  background: rgba(1, 10, 18, 0.88);
  box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.28);
}

.auction-rotation-timer-label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}

.auction-rotation-timer-value {
  font-size: 1.05rem;
  font-weight: 700;
  color: #ffb84d;
}

.auction-house-divider {
  margin: 12px 0;
}

.auction-stats-bar,
.auction-house-stats-bar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 10px 0 0;
  padding: 0;
  border: 1px solid rgba(70, 229, 255, 0.16);
  border-radius: var(--gc-radius-sm);
  background: rgba(3, 8, 18, 0.5);
}

.auction-stat,
.auction-house-stat {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  gap: 2px 10px;
  align-items: center;
  padding: 12px 14px;
  min-height: 62px;
}

.auction-stat + .auction-stat,
.auction-house-stat + .auction-house-stat {
  border-left: 1px solid rgba(0, 229, 255, 0.14);
}

.auction-house-stat--nav {
  cursor: pointer;
  transition: background 0.12s ease, box-shadow 0.12s ease;
}

.auction-house-stat--nav:hover,
.auction-house-stat--nav:focus-visible {
  outline: none;
  background: rgba(70, 229, 255, 0.07);
  box-shadow: inset 0 0 0 1px rgba(70, 229, 255, 0.28);
}

.auction-stat-icon {
  grid-row: 1 / span 2;
  font-size: 1.05rem;
  opacity: 0.85;
  color: var(--gc-accent);
}

.auction-stat-label {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}

.auction-stat-value,
.auction-stat strong {
  grid-column: 2;
  font-size: 1.4rem;
  font-weight: 800;
  line-height: 1;
  color: var(--gc-accent);
}

.auction-house-lots {
  min-width: 0;
}

.auction-house-lots-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 14px;
  margin-bottom: 12px;
}

.auction-house-lots-title {
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-text);
}

.auction-house-lots-sub {
  font-size: 0.76rem;
}

.auction-house-lot-list {
  display: grid;
  gap: 12px;
  min-width: 0;
}

.auction-house-lot {
  border: 1px solid rgba(70, 229, 255, 0.16);
  border-radius: var(--gc-radius-sm);
  background:
    linear-gradient(105deg, rgba(2, 14, 28, 0.92) 0%, rgba(4, 12, 24, 0.78) 55%, rgba(6, 10, 20, 0.88) 100%);
  box-shadow: inset 3px 0 0 rgba(70, 229, 255, 0.22);
  overflow: hidden;
  transition: border-color 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
}

.auction-house-lot.auction-house-row--common { box-shadow: inset 3px 0 0 rgba(160, 170, 185, 0.35); }
.auction-house-lot.auction-house-row--uncommon { box-shadow: inset 3px 0 0 rgba(110, 207, 143, 0.55); }
.auction-house-lot.auction-house-row--rare { box-shadow: inset 3px 0 0 rgba(94, 176, 255, 0.65); }
.auction-house-lot.auction-house-row--epic { box-shadow: inset 3px 0 0 rgba(199, 125, 255, 0.7); }
.auction-house-lot.auction-house-row--legendary { box-shadow: inset 3px 0 0 rgba(255, 184, 77, 0.75); }

.auction-house-lot.auction-house-row--leading {
  border-color: rgba(70, 229, 255, 0.38);
  background:
    linear-gradient(105deg, rgba(4, 28, 42, 0.95) 0%, rgba(4, 16, 30, 0.82) 60%, rgba(6, 12, 24, 0.9) 100%);
}

.auction-house-lot-body {
  display: grid;
  grid-template-columns: 88px minmax(0, 1.15fr) minmax(6rem, 0.7fr) minmax(5rem, 0.45fr) minmax(11.5rem, 1.35fr);
  gap: 12px 14px;
  align-items: center;
  padding: 14px 16px 10px;
}

.auction-house-lot-visual {
  display: grid;
  place-items: center;
  width: 88px;
  height: 88px;
  border: 1px solid rgba(70, 229, 255, 0.14);
  background: rgba(0, 0, 0, 0.35);
}

.auction-house-lot-thumb,
.auction-house-thumb {
  width: 72px;
  height: 72px;
  object-fit: contain;
  filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.45));
}

.auction-house-lot-identity {
  display: grid;
  gap: 6px;
  min-width: 0;
  justify-items: start;
}

.auction-house-lot-identity-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}

.auction-house-row-name {
  font-size: 1rem;
  font-weight: 700;
  color: var(--gc-text);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.auction-house-lot-bidder {
  font-size: 0.8rem;
  color: var(--gc-text-soft);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
}

.auction-house-lot-bidder-empty {
  color: var(--gc-text-dim);
}

.auction-house-row-you {
  color: var(--gc-accent);
  font-weight: 700;
}

.auction-house-lot-bid {
  display: grid;
  gap: 4px;
  justify-items: start;
}

.auction-house-lot-bid-label {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}

.auction-house-lot-bid-value,
.auction-house-lot .col-bid {
  font-size: 1.02rem;
  font-weight: 700;
  color: var(--gc-text);
  line-height: 1.15;
  letter-spacing: 0.01em;
}

.auction-currency-wrap {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: 0.78rem;
  color: var(--gc-text-soft);
}

.auction-house-lot-time {
  display: grid;
  gap: 2px;
  justify-items: start;
  min-width: 0;
}

.auction-house-lot-time-label {
  font-size: 0.66rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-text-dim);
}

.auction-time,
.auction-house-time {
  display: block;
  font-size: 0.86rem;
  font-weight: 650;
  line-height: 1.2;
  white-space: nowrap;
}

.auction-time-warn,
.auction-house-time {
  color: #ffb84d;
}

.auction-house-time.is-urgent {
  color: #ff7a6e;
}

.auction-house-time-value {
  white-space: nowrap;
}

.auction-house-lot-form.auction-house-bid-form {
  display: grid;
  gap: 6px;
  min-width: 0;
  width: 100%;
  padding: 0;
  border: none;
}

.auction-house-lot-form .auction-house-bid-label {
  font-size: 0.74rem;
}

.auction-house-lot-form .auction-house-bid-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
  align-items: stretch;
}

.auction-house-lot-form .auction-house-bid-input {
  width: 100%;
  min-width: 0;
  flex: none;
}

.auction-house-lot-form .auction-house-bid-btn {
  width: 100%;
  min-width: 0;
  min-height: 36px;
  padding: 8px 12px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  white-space: nowrap;
  overflow: visible;
}

.auction-house-loot-preview {
  position: relative;
}

.auction-house-loot-preview-toggle {
  appearance: none;
  border: 1px solid rgba(70, 229, 255, 0.24);
  background: rgba(7, 14, 32, 0.82);
  color: var(--gc-text-soft);
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 4px 8px;
  border-radius: var(--gc-radius-sm);
  cursor: pointer;
}

.auction-house-loot-preview-toggle:hover,
.auction-house-loot-preview-toggle[aria-expanded="true"] {
  border-color: rgba(70, 229, 255, 0.45);
  color: var(--gc-accent);
}

.auction-house-loot-preview-panel {
  position: absolute;
  left: 0;
  top: calc(100% + 6px);
  z-index: var(--gc-z-popover, 40);
  min-width: 12rem;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  background: var(--gc-panel-strong);
  border: 1px solid var(--gc-panel-border);
  box-shadow: var(--gc-border-glow), 0 12px 28px rgba(0, 0, 0, 0.35);
}

.auction-house-loot-preview-title {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #9aa3b2);
}

.auction-house-loot-preview-list {
  margin: 0;
  padding-left: 1rem;
  font-size: 0.8rem;
  line-height: 1.45;
  color: var(--gc-text, #e8edf5);
}

.auction-house-lot-recent.auction-house-recent-bids {
  margin: 0 16px 12px;
  padding: 8px 10px;
  border: 1px solid rgba(70, 229, 255, 0.1);
  background: rgba(3, 8, 18, 0.45);
}

.auction-house-recent-title {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #9aa3b2);
}

.auction-house-recent-list {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.2rem;
}

.auction-house-recent-row {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  font-size: 0.78rem;
}

.auction-house-recent-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.auction-house-recent-amount {
  color: var(--gc-text-muted, #9aa3b2);
  flex-shrink: 0;
}

.auction-house-recent-empty {
  margin: 0;
  font-size: 0.8rem;
  color: var(--gc-text-muted, #9aa3b2);
}

.auction-house-bid-form {
  display: grid;
  gap: 6px;
}

.auction-house-form-error {
  margin: 0;
  font-size: 0.78rem;
  color: #ff8f8f;
}

.auction-house-bid-label {
  font-size: 0.85rem;
  color: var(--gc-text-muted, #9aa3b2);
}

.auction-house-bid-row {
  display: flex;
  gap: 0.5rem;
  align-items: stretch;
}

.auction-house-bid-input {
  flex: 1;
  min-width: 0;
}

.auction-house-bid-btn {
  flex-shrink: 0;
  min-width: 0;
}

.auction-house-bid-hint {
  margin: 0;
  font-size: 0.76rem;
  color: var(--gc-text-dim);
}

.auction-house-page .gc-trader-input,
.auction-house-page input.gc-trader-input,
.auction-house-page .auction-house-bid-input {
  width: 100%;
  min-height: 38px;
  padding: 8px 10px;
  border-radius: var(--gc-radius-sm);
  border: 1px solid rgba(120, 190, 255, 0.28);
  background: rgba(5, 10, 22, 0.88);
  color: var(--gc-text);
  font-family: var(--gc-mono);
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.02), inset 0 0 10px rgba(0, 0, 0, 0.28);
  transition: border-color 0.12s ease, box-shadow 0.12s ease, background 0.12s ease;
  appearance: textfield;
  -moz-appearance: textfield;
}

.auction-house-page input[type="number"]::-webkit-outer-spin-button,
.auction-house-page input[type="number"]::-webkit-inner-spin-button {
  -webkit-appearance: none;
  margin: 0;
}

.auction-house-page .gc-trader-input:hover,
.auction-house-page .auction-house-bid-input:hover {
  border-color: rgba(70, 229, 255, 0.42);
  background-color: rgba(6, 12, 26, 0.92);
}

.auction-house-page .gc-trader-input:focus,
.auction-house-page .auction-house-bid-input:focus {
  outline: none;
  border-color: rgba(70, 229, 255, 0.88);
  box-shadow:
    0 0 0 2px rgba(70, 229, 255, 0.14),
    inset 0 0 12px rgba(70, 229, 255, 0.06);
  background-color: rgba(4, 10, 22, 0.96);
}

.auction-house-empty-panel,
.auction-house-empty {
  margin: 0;
  color: var(--gc-text-muted, #9aa3b2);
  text-align: center;
  padding: 2rem 1rem;
}

@keyframes auction-house-soft-pulse {
  0%, 100% { box-shadow: inset 3px 0 0 rgba(70, 229, 255, 0.35); }
  50% {
    box-shadow:
      inset 3px 0 0 var(--gc-accent),
      0 0 0 1px rgba(70, 229, 255, 0.35),
      0 0 18px rgba(70, 229, 255, 0.18);
  }
}

@keyframes auction-house-stat-pulse {
  0%, 100% { background: transparent; }
  50% { background: rgba(70, 229, 255, 0.1); }
}

.auction-house-lot.is-pulse {
  animation: auction-house-soft-pulse 0.7s ease 2;
}

.auction-house-stat.is-pulse {
  animation: auction-house-stat-pulse 0.55s ease 2;
}

@media (max-width: 1100px) {
  .auction-house-lot-body {
    grid-template-columns: 72px minmax(0, 1fr) minmax(6rem, 0.7fr) minmax(14rem, 1.2fr);
    grid-template-areas:
      "visual identity bid form"
      "visual identity time form";
  }

  .auction-house-lot-visual { grid-area: visual; width: 72px; height: 72px; }
  .auction-house-lot-thumb,
  .auction-house-thumb { width: 58px; height: 58px; }
  .auction-house-lot-identity { grid-area: identity; }
  .auction-house-lot-bid { grid-area: bid; }
  .auction-house-lot-time { grid-area: time; }
  .auction-house-lot-form { grid-area: form; }
}

@media (max-width: 820px) {
  .auction-house-status-chips {
    justify-content: flex-start;
  }
  .auction-house-shell .auction-house-window-header {
    flex-direction: column;
    align-items: stretch;
    gap: 8px;
  }
  .auction-house-rotation-clock.auction-rotation-timer {
    min-width: 0;
    width: 100%;
  }
}

@media (max-width: 640px) {
  .auction-stats-bar,
  .auction-house-stats-bar {
    grid-template-columns: 1fr;
  }

  .auction-stat + .auction-stat,
  .auction-house-stat + .auction-house-stat {
    border-left: none;
    border-top: 1px solid rgba(0, 229, 255, 0.14);
  }

  .auction-house-lot-body {
    grid-template-columns: 64px minmax(0, 1fr);
    grid-template-areas:
      "visual identity"
      "bid bid"
      "time time"
      "form form";
  }

  .auction-house-bid-row {
    flex-direction: column;
  }

  .auction-house-bid-btn {
    width: 100%;
    min-width: 0;
  }
}

/* GC-551 Vote Center */
.vote-center-page {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.vote-center-eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--gc-accent-cyan, #00e5ff);
  opacity: 0.85;
}

.vote-center-desc {
  margin: 0 0 1rem;
  color: var(--gc-text-muted, #9aa8b8);
}

.vote-center-vote-btn {
  width: 100%;
  justify-content: center;
  margin-top: auto;
}

.vote-center-status-list {
  margin: 0;
  display: grid;
  gap: 0.65rem;
}

.vote-center-status-row {
  display: flex;
  justify-content: space-between;
  gap: 1rem;
  align-items: baseline;
}

.vote-center-status-row dt {
  margin: 0;
  color: var(--gc-text-muted, #9aa8b8);
}

.vote-center-status-row dd {
  margin: 0;
}

.vote-center-hint-status {
  margin: 1rem 0 0;
  font-size: 0.9rem;
}

.vote-center-hint-ready {
  color: var(--gc-accent-green, #4ade80);
}

.vote-center-hint-wait {
  color: var(--gc-text-muted, #9aa8b8);
}

.vote-center-rewards-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.vote-center-reward-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(0, 229, 255, 0.14);
  border-radius: 0;
  background: rgba(0, 0, 0, 0.18);
}

.vote-center-reward-visual {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: center;
}

.vote-center-reward-item {
  display: flex;
  align-items: center;
  gap: 0.55rem;
  padding: 0.4rem 0.55rem;
  border-radius: 0;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(0, 229, 255, 0.1);
  min-width: 8.5rem;
}

.vote-center-reward-item-img {
  width: 42px;
  height: 42px;
  object-fit: contain;
  flex-shrink: 0;
}

.vote-center-reward-item-meta {
  display: flex;
  flex-direction: column;
  gap: 0.12rem;
  min-width: 0;
}

.vote-center-reward-item-name {
  font-size: 0.88rem;
  font-weight: 600;
  line-height: 1.2;
}

.vote-center-reward-item-amount {
  font-size: 0.8rem;
  color: var(--gc-text-muted, #9aa8b8);
}

.vote-center-reward-info {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 0;
}

.vote-center-reward-box {
  font-weight: 600;
}

.vote-center-empty {
  margin: 0;
  color: var(--gc-text-muted, #9aa8b8);
}

.vote-center-providers-list {
  display: grid;
  gap: 1.25rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.vote-center-provider-card {
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(0, 229, 255, 0.18);
  border-radius: 0;
  background: rgba(0, 0, 0, 0.22);
}

.vote-center-provider-hero {
  position: relative;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background-color: #040810;
  background-image: var(--vote-banner);
  background-image: image-set(
    var(--vote-banner-webp) type("image/webp"),
    var(--vote-banner) type("image/png")
  );
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}

.vote-center-provider-hero-overlay {
  position: absolute;
  inset: 0;
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 0.8rem 0.9rem;
  background: linear-gradient(
    180deg,
    rgba(0, 8, 18, 0.82) 0%,
    rgba(0, 8, 18, 0.22) 42%,
    rgba(0, 8, 18, 0.58) 100%
  );
  pointer-events: none;
}

.vote-center-provider-body {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding: 0.85rem 1rem 1rem;
  flex: 1;
}

.vote-center-provider-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  padding: 0.85rem 1rem 0;
}

.vote-center-provider-name {
  margin: 0;
  font-size: 1.08rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.65);
}

.vote-center-provider-subtitle {
  margin: 0;
  font-size: 0.86rem;
  color: var(--gc-accent-cyan, #00e5ff);
  opacity: 0.92;
}

.vote-center-provider-reward-status {
  font-size: 0.86rem;
  color: var(--gc-accent-green, #4ade80);
}

.vote-center-provider-hero .gc-bld-card-level--hero {
  z-index: 7;
}

.vote-center-provider-meta {
  margin: 0;
  display: grid;
  gap: 0.45rem;
}

.vote-center-status-row--reward .vote-center-status-dd {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
  flex: 1;
}

.vote-center-provider-cooldown {
  color: var(--gc-text-muted, #9aa8b8);
  white-space: nowrap;
}

.vote-center-provider-hint {
  margin: 0;
  font-size: 0.86rem;
}

@media (max-width: 900px) {
  .vote-center-providers-list {
    grid-template-columns: 1fr;
  }
}

.vote-center-rewards-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 0.75rem;
}

.vote-center-pending-badge {
  padding: 0.2rem 0.55rem;
  border-radius: 0;
  background: rgba(74, 222, 128, 0.12);
  color: var(--gc-accent-green, #4ade80);
}

.vote-center-rewards-summary {
  margin: 0 0 0.75rem;
}

.vote-center-rewards-actions {
  margin-bottom: 1rem;
}

.vote-center-reward-title {
  font-weight: 600;
}

.vote-center-reward-provider {
  font-size: 0.82rem;
  color: var(--gc-text-muted, #9aa8b8);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.vote-center-reward-type {
  font-size: 0.88rem;
  color: var(--gc-accent-cyan, #00e5ff);
}

@media (max-width: 720px) {
  .vote-center-reward-card {
    grid-template-columns: 1fr;
    align-items: stretch;
  }

  .vote-center-reward-visual {
    order: 2;
  }

  .vote-center-reward-info {
    order: 1;
  }

  .vote-center-claim-btn {
    order: 3;
    width: 100%;
  }
}

.vote-center-page .gc-panel,
.vote-center-page .gc-btn {
  border-radius: 0;
}

/* GC-703 Referrals */
.referral-page {
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

.referral-eyebrow {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  color: var(--gc-accent-cyan, #00e5ff);
  opacity: 0.85;
}

.referral-link-card {
  display: grid;
  gap: 0.85rem;
}

.referral-code-row,
.referral-link-row,
.referral-apply-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.65rem;
  align-items: stretch;
}

.referral-apply-label {
  display: block;
  margin: 0 0 0.55rem;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(200, 232, 244, 0.72);
}

.referral-apply-form {
  display: grid;
  gap: 0.35rem;
}

.gc-referral-input-wrap {
  position: relative;
  display: flex;
  flex: 1 1 14rem;
  min-width: 0;
  min-height: 46px;
  border: 1px solid rgba(0, 220, 255, 0.35);
  background: linear-gradient(180deg, rgba(8, 18, 32, 0.95), rgba(3, 8, 18, 0.98));
  box-shadow:
    inset 0 0 12px rgba(0, 220, 255, 0.08),
    0 0 18px rgba(0, 220, 255, 0.08);
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.gc-referral-input-wrap:focus-within {
  border-color: #00d9ff;
  box-shadow:
    inset 0 0 18px rgba(0, 220, 255, 0.18),
    0 0 25px rgba(0, 220, 255, 0.22);
}

.gc-referral-input-accent {
  flex: 0 0 4px;
  align-self: stretch;
  background: linear-gradient(180deg, rgba(0, 234, 255, 0.95), rgba(0, 140, 180, 0.55));
  box-shadow: 0 0 12px rgba(0, 220, 255, 0.45);
}

.gc-referral-input-wrap:focus-within .gc-referral-input-accent {
  box-shadow: 0 0 18px rgba(0, 220, 255, 0.65);
}

.gc-referral-input {
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  height: 46px;
  margin: 0;
  padding: 0 16px;
  border: none;
  border-radius: 0;
  background: transparent;
  color: #dff7ff;
  font-family: Orbitron, "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.82rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  box-shadow: none;
  appearance: none;
}

.gc-referral-input:focus {
  outline: none;
}

.gc-referral-input::placeholder {
  color: #4f7188;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  opacity: 1;
}

.gc-referral-input-wrap--readonly .gc-referral-input {
  color: rgba(215, 246, 255, 0.88);
  cursor: default;
}

.referral-action-btn {
  align-self: stretch;
  min-height: 46px;
  padding-inline: 1.1rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  font-family: Orbitron, Inter, system-ui, sans-serif;
  font-size: 0.68rem;
  font-weight: 700;
  border-radius: 0;
}

.referral-code-value {
  font-size: 1.1rem;
  letter-spacing: 0.14em;
  font-family: Orbitron, "JetBrains Mono", ui-monospace, monospace;
  color: #dff7ff;
  text-shadow: 0 0 14px rgba(0, 220, 255, 0.18);
}

.referral-progress {
  margin: 0;
  color: var(--gc-text-muted, #9aa8b8);
}

.referral-progress-pending {
  opacity: 0.85;
}

.referral-tier-list {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.referral-tier-card {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
  padding: 0.75rem 1rem;
  border: 1px solid rgba(0, 229, 255, 0.14);
  background: rgba(0, 0, 0, 0.18);
}

.referral-tier-card--claimable {
  border-color: rgba(74, 222, 128, 0.35);
}

.referral-tier-card--claimed {
  opacity: 0.72;
}

.referral-tier-card--locked {
  opacity: 0.55;
}

.referral-tier-title {
  margin: 0 0 0.25rem;
  font-size: 1rem;
}

.referral-tier-desc,
.referral-tier-progress,
.referral-criteria,
.referral-apply-hint,
.referral-linked-note {
  margin: 0;
  color: var(--gc-text-muted, #9aa8b8);
  font-size: 0.9rem;
}

.referral-tier-claimed {
  color: var(--gc-accent-green, #4ade80);
  font-size: 0.85rem;
}

.referral-same-ip-flag {
  display: block;
  margin-top: 0.35rem;
  color: #fbbf24;
}

@media (max-width: 720px) {
  .referral-tier-card {
    grid-template-columns: 1fr;
  }

  .referral-apply-row,
  .referral-link-row {
    flex-direction: column;
  }

  .referral-action-btn {
    width: 100%;
  }
}

.referral-page .gc-panel,
.referral-page .gc-btn {
  border-radius: 0;
}

.id-directives-page {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1rem;
  width: 100%;
  box-sizing: border-box;
  padding: 12px 18px 28px;
}

/* High-Command terminal frame — compact, no edge clipping */
.id-directives-main-frame {
  --id-frame-accent: #d4a24a;
  position: relative;
  width: 100%;
  max-width: min(1080px, 100%);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  padding: 22px 24px 24px;
  border: 1px solid rgba(255, 184, 77, 0.32);
  background-color: #080e16;
  background-image:
    linear-gradient(165deg, rgba(14, 18, 28, 0.98) 0%, rgba(6, 10, 18, 0.99) 45%, rgba(8, 14, 24, 0.98) 100%),
    linear-gradient(var(--id-frame-accent), var(--id-frame-accent)),
    linear-gradient(var(--id-frame-accent), var(--id-frame-accent)),
    linear-gradient(var(--id-frame-accent), var(--id-frame-accent)),
    linear-gradient(var(--id-frame-accent), var(--id-frame-accent)),
    linear-gradient(var(--id-frame-accent), var(--id-frame-accent)),
    linear-gradient(var(--id-frame-accent), var(--id-frame-accent)),
    linear-gradient(var(--id-frame-accent), var(--id-frame-accent)),
    linear-gradient(var(--id-frame-accent), var(--id-frame-accent));
  background-repeat: no-repeat;
  background-size:
    auto,
    18px 2px, 2px 18px,
    18px 2px, 2px 18px,
    18px 2px, 2px 18px,
    18px 2px, 2px 18px;
  background-position:
    center,
    top left, top left,
    top right, top right,
    bottom left, bottom left,
    bottom right, bottom right;
  box-shadow:
    0 0 0 1px rgba(255, 184, 77, 0.08) inset,
    0 0 40px rgba(255, 184, 77, 0.06),
    0 18px 48px rgba(0, 0, 0, 0.45);
  overflow: visible;
}

.id-directives-main-frame .id-directives-header {
  margin-bottom: 0;
  padding-bottom: 8px;
  border-bottom: 1px solid rgba(255, 184, 77, 0.14);
}

.id-directives-main-frame .id-directives-panel {
  overflow: visible;
  padding: 14px 16px 16px;
  border-color: rgba(255, 184, 77, 0.18);
  background: rgba(4, 8, 16, 0.55);
}

.id-directives-main-frame .gc-panel-header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 6px 12px;
  margin-bottom: 12px;
  min-width: 0;
}

.id-directives-main-frame .gc-panel-title,
.id-directives-main-frame .gc-panel-subtitle {
  min-width: 0;
}

.id-directives-main-frame .id-directive-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin-top: 0;
  overflow: visible;
}

.id-directives-eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: rgba(255, 184, 77, 0.92);
  opacity: 1;
  text-shadow: 0 0 12px rgba(255, 184, 77, 0.25);
}

.id-directives-header .section-title {
  letter-spacing: 0.04em;
  margin: 0 0 0.35rem;
}

.id-directives-hint {
  margin: 0;
  max-width: 62ch;
  line-height: 1.45;
}

@media (max-width: 1100px) {
  .id-directives-main-frame .id-directive-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 720px) {
  .id-directives-page {
    padding: 8px 10px 20px;
  }

  .id-directives-main-frame {
    max-width: 100%;
    padding: 14px 12px 16px;
  }

  .id-directives-main-frame .id-directives-panel {
    padding: 12px;
  }

  .id-directives-main-frame .id-directive-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }
}

@media (max-width: 480px) {
  .id-directives-main-frame .id-directive-grid {
    grid-template-columns: 1fr;
  }
}

/* Command strip — meta + claim-all (no clip-path; padding clears edges) */
.id-directives-command-strip {
  padding: 0;
  overflow: visible;
  border: 1px solid rgba(255, 184, 77, 0.28);
  background:
    linear-gradient(135deg, rgba(16, 20, 30, 0.98) 0%, rgba(6, 10, 18, 0.99) 100%);
  box-shadow:
    0 0 0 1px rgba(255, 184, 77, 0.06) inset,
    0 8px 28px rgba(0, 0, 0, 0.35);
  clip-path: none;
}

.id-directives-command-strip__inner {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.85rem 1.25rem;
  padding: 14px 16px;
  min-width: 0;
}

.id-directives-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 1.25rem 2rem;
}

.id-directives-stat {
  display: flex;
  flex-direction: column;
  gap: 4px;
}

.id-directives-stat__label {
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(200, 232, 244, 0.55);
}

.id-directives-stat__value {
  font-size: 0.88rem;
  color: var(--gc-neon-cyan, #46e5ff);
  letter-spacing: 0.04em;
}

.id-directives-claim-strip {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem 1rem;
  margin-left: auto;
}

.id-directives-claimable-wrap {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.id-directives-pending-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 2rem;
  padding: 4px 10px;
  font-size: 0.88rem;
  font-weight: 700;
  color: #e8f4ff;
  background: rgba(8, 16, 28, 0.92);
  border: 1px solid rgba(70, 229, 255, 0.35);
  box-shadow: 0 0 12px rgba(70, 229, 255, 0.15);
  clip-path: polygon(0 0, calc(100% - 6px) 0, 100% 6px, 100% 100%, 6px 100%, 0 calc(100% - 6px));
}

.id-directives-pending-badge:not(:empty):not([data-id-claimable-count="0"]) {
  color: #b8f5c8;
  border-color: rgba(110, 207, 143, 0.45);
  box-shadow: 0 0 14px rgba(110, 207, 143, 0.2);
}

.id-directives-claimable-label {
  font-size: 0.78rem;
  color: var(--gc-text-dim);
  letter-spacing: 0.02em;
}

.id-directives-claim-all-btn:disabled {
  opacity: 0.45;
}

.id-directive-grid {
  margin-top: 4px;
}

.id-directive-grid--weekly {
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

/* Directive cards — no clip-path so badges/labels never get sheared off */
.id-directives-page .id-directive-card.inventory-loot-card {
  gap: 0;
  min-height: 100%;
  min-width: 0;
  overflow: hidden;
  clip-path: none;
  border-radius: 0;
  border: 1px solid rgba(255, 184, 77, 0.22);
  background:
    linear-gradient(180deg, rgba(16, 20, 30, 0.98) 0%, rgba(7, 10, 18, 0.99) 100%);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.35) inset,
    0 8px 20px rgba(0, 0, 0, 0.35);
}

.id-directives-page .id-directive-card.inventory-loot-card:hover {
  border-color: rgba(255, 184, 77, 0.45);
  box-shadow:
    0 0 0 1px rgba(255, 184, 77, 0.1) inset,
    0 0 18px rgba(255, 184, 77, 0.1),
    0 12px 28px rgba(0, 0, 0, 0.45);
}

.id-directive-card__tag-row {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 10px 10px 0;
  min-width: 0;
}

.id-directive-card__category-tag {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(200, 232, 244, 0.55);
}

.id-directive-card__cadence-tag {
  flex: 0 0 auto;
  margin-left: auto;
  padding: 3px 7px;
  font-size: 0.58rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  color: #ffd28a;
  border: 1px solid rgba(255, 184, 77, 0.45);
  background: rgba(255, 184, 77, 0.1);
  box-shadow: 0 0 10px rgba(255, 184, 77, 0.12);
}

.id-directive-card__hero {
  aspect-ratio: 16 / 11;
  padding: 10px 12px 8px;
  overflow: hidden;
}

.id-directive-card__hero .inventory-loot-card-img {
  width: min(100%, 128px);
  max-height: 110px;
}

.id-directive-card__pct {
  position: absolute;
  bottom: 10px;
  left: 10px;
  z-index: 2;
  padding: 3px 9px;
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  color: #e8f4ff;
  background: rgba(8, 16, 28, 0.88);
  border: 1px solid rgba(70, 229, 255, 0.3);
  clip-path: polygon(0 0, calc(100% - 5px) 0, 100% 5px, 100% 100%, 5px 100%, 0 calc(100% - 5px));
}

.id-directive-card__body {
  flex: 1 1 auto;
  gap: 8px;
  padding: 2px 10px 8px;
  min-width: 0;
}

.id-directive-card__title {
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.id-directives-page .inventory-loot-card-head {
  gap: 6px;
  min-width: 0;
}

.id-directives-page .inventory-rarity-badge {
  flex: 0 0 auto;
}

.id-directive-card__desc {
  line-height: 1.35;
  min-height: 2.7em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.id-directive-card__progress {
  position: relative;
  height: 6px;
  margin-top: 4px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(70, 229, 255, 0.12);
  overflow: hidden;
  clip-path: polygon(0 0, calc(100% - 4px) 0, 100% 4px, 100% 100%, 4px 100%, 0 calc(100% - 4px));
}

.id-directive-card__progress-fill {
  height: 100%;
  background: linear-gradient(90deg, rgba(70, 229, 255, 0.45) 0%, rgba(110, 207, 143, 0.85) 100%);
  box-shadow: 0 0 10px rgba(70, 229, 255, 0.35);
  transition: width 0.35s ease;
}

.id-directive-card__progress-meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  flex-wrap: wrap;
}

.id-directive-card__progress-label {
  font-size: 0.74rem;
  color: rgba(200, 232, 244, 0.75);
}

.id-directive-card__expires {
  font-size: 0.72rem;
  color: var(--gc-accent-warm, #ffb84d);
  letter-spacing: 0.02em;
}

.id-directive-card__loot-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 2px;
}

.id-directive-loot-chip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 8px 4px 4px;
  border: 1px solid rgba(70, 229, 255, 0.2);
  background: rgba(8, 16, 28, 0.65);
  clip-path: polygon(0 0, calc(100% - 4px) 0, 100% 4px, 100% 100%, 4px 100%, 0 calc(100% - 4px));
}

.id-directive-loot-chip__img {
  width: 28px;
  height: 28px;
  object-fit: contain;
  filter: drop-shadow(0 2px 6px rgba(0, 0, 0, 0.4));
}

.id-directive-loot-chip__amt {
  font-size: 0.72rem;
  color: var(--gc-neon-cyan, #46e5ff);
}

.id-directive-card__actions {
  border-top: 1px solid rgba(255, 184, 77, 0.12);
  background: rgba(0, 0, 0, 0.18);
  padding: 8px 10px;
  min-width: 0;
}

.id-directive-card__claim-btn {
  flex: 1 1 100%;
  min-width: 0;
}

.id-directive-card__claimed-badge {
  flex: 1 1 100%;
  text-align: center;
  padding: 6px 4px;
  font-size: 0.68rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #6ecf8f;
}

.id-directive-card__active-hint {
  flex: 1 1 100%;
  text-align: center;
  padding: 4px 2px;
  font-size: 0.68rem;
  line-height: 1.3;
  color: var(--gc-text-dim);
  letter-spacing: 0.02em;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.id-directive-card--weekly {
  border-color: rgba(255, 184, 77, 0.5);
  box-shadow:
    0 0 0 1px rgba(255, 184, 77, 0.12) inset,
    0 0 22px rgba(255, 184, 77, 0.12),
    0 10px 26px rgba(0, 0, 0, 0.4);
}

.id-directive-card--weekly .id-directive-card__tag-row {
  background: linear-gradient(90deg, rgba(255, 184, 77, 0.08) 0%, transparent 70%);
}

/* State + rarity accents (match inventory owned glow) */
.id-directive-card--claimed {
  opacity: 0.78;
}

.id-directive-card--claimed .inventory-loot-card-img {
  filter: grayscale(0.7) brightness(0.75) saturate(0.5);
}

.id-directive-card--completed {
  border-color: rgba(110, 207, 143, 0.42);
  box-shadow:
    0 0 0 1px rgba(110, 207, 143, 0.12),
    0 0 28px rgba(110, 207, 143, 0.14),
    0 12px 32px rgba(0, 0, 0, 0.4);
}

.id-directive-card--completed .id-directive-card__pct {
  color: #b8f5c8;
  border-color: rgba(110, 207, 143, 0.45);
}

.id-directive-card--completed .id-directive-card__claim-btn {
  box-shadow: 0 0 16px rgba(110, 207, 143, 0.25);
}

.id-directive-card[data-rarity="legendary"]:not(.id-directive-card--claimed) {
  border-color: rgba(255, 184, 77, 0.42);
  box-shadow: 0 0 24px rgba(255, 184, 77, 0.1), 0 12px 32px rgba(0, 0, 0, 0.4);
}

.id-directive-card[data-rarity="epic"]:not(.id-directive-card--claimed) {
  border-color: rgba(199, 125, 255, 0.38);
}

.id-directive-card[data-rarity="rare"]:not(.id-directive-card--claimed) {
  border-color: rgba(94, 176, 255, 0.32);
}

.id-directives-empty {
  margin: 0;
  color: var(--gc-text-dim);
}

.id-directives-page .gc-panel,
.id-directives-page .gc-btn {
  border-radius: 0;
}

@media (max-width: 640px) {
  .id-directives-command-strip__inner {
    flex-direction: column;
    align-items: stretch;
  }

  .id-directives-claim-strip {
    margin-left: 0;
    justify-content: space-between;
  }

  .id-directive-grid--weekly {
    grid-template-columns: 1fr;
  }
}

.galactic-politics-page {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: var(--gc-space-4, 1rem);
  isolation: isolate;
}

.galactic-politics-page::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.28;
  background:
    linear-gradient(180deg, rgba(6, 10, 16, 0.35) 0%, rgba(6, 10, 16, 0.82) 100%),
    url("/static/img/politics/chamber/chamber_backdrop.webp") center top / cover no-repeat;
}

.galactic-politics-page > * {
  position: relative;
  z-index: 1;
}

.galactic-politics-eyebrow {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8b97a8);
}

.galactic-politics-galaxy-list {
  display: flex;
  flex-direction: column;
  gap: var(--gc-space-4, 1rem);
}

.galactic-politics-galaxy-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
}

.galactic-politics-phase {
  font-size: 0.82rem;
  color: var(--gc-accent, #5cc8ff);
}

.galactic-politics-active {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin: 0.75rem 0;
}

.galactic-politics-countdown {
  margin: 0 0 0.75rem;
  font-size: 0.9rem;
}

.galactic-politics-options {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 0.75rem;
}

.galactic-politics-option {
  display: flex;
  flex-direction: column;
  gap: 0.4rem;
  border: 1px solid rgba(92, 200, 255, 0.22);
  padding: 0;
  background: rgba(0, 0, 0, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  overflow: hidden;
  min-width: 0;
}

.galactic-politics-option--selected {
  border-color: var(--gc-accent, #5cc8ff);
  box-shadow: inset 0 0 0 1px rgba(92, 200, 255, 0.35);
}

.galactic-politics-option--cooldown {
  opacity: 0.65;
}

.gp-option-banner {
  position: relative;
  aspect-ratio: 16 / 9;
  background: #0a1018;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.gp-option-banner-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.gp-option-banner .gp-option-mono {
  position: absolute;
  left: 0.4rem;
  bottom: 0.35rem;
  margin: 0;
  padding: 0.1rem 0.3rem;
  background: rgba(0, 0, 0, 0.65);
  border: 1px solid rgba(92, 200, 255, 0.35);
  font-family: var(--gc-font-mono, ui-monospace, monospace);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  color: var(--gc-accent, #5cc8ff);
}

.galactic-politics-option-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.55rem 0.65rem 0;
  min-width: 0;
}

.galactic-politics-option-title {
  margin: 0;
  font-size: 0.92rem;
  flex: 1 1 auto;
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.galactic-politics-option-votes {
  flex-shrink: 0;
  font-size: 0.82rem;
  color: var(--gc-text-muted, #8b97a8);
}

.galactic-politics-option-desc {
  margin: 0;
  padding: 0 0.65rem;
  font-size: 0.78rem;
}

.gp-option-desc--clamp {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.galactic-politics-option .gp-tradeoff-list,
.galactic-politics-option .galactic-politics-vote-btn,
.galactic-politics-option .galactic-politics-cooldown-note,
.galactic-politics-option .gp-option-tally {
  margin-left: 0.65rem;
  margin-right: 0.65rem;
}

.galactic-politics-option .galactic-politics-vote-btn,
.galactic-politics-option .galactic-politics-cooldown-note {
  margin-bottom: 0.65rem;
}

.galactic-politics-vote-btn {
  width: calc(100% - 1.3rem);
  padding: 0.45rem 0.5rem;
}

.gp-tradeoff-list {
  list-style: none;
  margin: 0 0 0.35rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  min-width: 0;
}

.gp-tradeoff-chip {
  max-width: 100%;
  font-size: 0.68rem;
  padding: 0.15rem 0.3rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--gc-text-muted, #8b97a8);
  border-radius: var(--gc-radius-sm, 2px);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.galactic-politics-empty,
.galactic-politics-cooldown-note,
.galactic-politics-note {
  margin: 0;
  font-size: 0.85rem;
}

.galactic-politics-page .gc-panel,
.galactic-politics-page .gc-btn {
  border-radius: 0;
}

/* GC-POL-00 — Mandate rail + chronicle */
.gp-rail-kicker {
  margin: 0;
  font-size: 0.68rem;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8b97a8);
}

.gp-mandate-rail {
  margin: 0.85rem 0 1rem;
  padding: 0.85rem;
  border: 1px solid rgba(92, 200, 255, 0.28);
  border-left: 3px solid var(--gc-accent, #5cc8ff);
  background:
    linear-gradient(135deg, rgba(20, 40, 58, 0.55) 0%, rgba(6, 10, 16, 0.72) 55%),
    repeating-linear-gradient(
      -45deg,
      transparent,
      transparent 6px,
      rgba(92, 200, 255, 0.03) 6px,
      rgba(92, 200, 255, 0.03) 7px
    );
}

.gp-mandate-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.75rem;
}

.gp-mandate-period {
  margin: 0.2rem 0 0;
  font-size: 1.15rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.gp-mandate-origin {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
}

.gp-mandate-badge {
  flex-shrink: 0;
  padding: 0.2rem 0.45rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8b97a8);
  border-radius: var(--gc-radius-sm, 2px);
}

.gp-mandate-badge--live {
  border-color: rgba(92, 200, 255, 0.55);
  color: var(--gc-accent, #5cc8ff);
  background: rgba(92, 200, 255, 0.08);
}

.gp-seal-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 0.65rem;
}

.gp-seal {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 0.55rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.28);
  min-height: 0;
  border-radius: var(--gc-radius-sm, 2px);
  position: relative;
  overflow: hidden;
}

.gp-seal-art {
  flex-shrink: 0;
  width: 56px;
  height: 56px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: #0a1018;
  object-fit: cover;
}

.gp-seal-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
  flex: 1 1 auto;
}

.gp-seal-name {
  font-size: 0.92rem;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gp-seal::before {
  content: "";
  position: absolute;
  inset: 0 auto 0 0;
  width: 3px;
  background: rgba(255, 255, 255, 0.18);
}

.gp-seal--industrial::before { background: #d4a25a; }
.gp-seal--scientific::before { background: #6ec8ff; }
.gp-seal--military::before { background: #e06868; }
.gp-seal--logistics::before { background: #7ad4a8; }
.gp-seal--defensive::before { background: #8aa0c8; }
.gp-seal--expansion::before { background: #c6a0ff; }
.gp-seal--exploration::before { background: #5cd4d0; }

.gp-seal-role {
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8b97a8);
}

.gp-seal-mono {
  display: none;
}

.gp-seal-meta {
  margin-top: auto;
  font-size: 0.75rem;
  color: var(--gc-text-muted, #8b97a8);
}

.gp-mandate-turnout,
.gp-mandate-countdown {
  margin: 0.65rem 0 0;
  font-size: 0.82rem;
  color: var(--gc-text-muted, #8b97a8);
}

.gp-vote-rail {
  margin: 0 0 1rem;
  padding: 0.85rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(0, 0, 0, 0.18);
}

.gp-vote-rail-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.75rem;
  margin-bottom: 0.45rem;
}

.gp-vote-cycle-period {
  margin: 0;
  font-size: 0.82rem;
  color: var(--gc-text-muted, #8b97a8);
}

.gp-option-mono {
  font-family: var(--gc-font-mono, ui-monospace, monospace);
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  color: var(--gc-accent, #5cc8ff);
}

.gp-chronicle {
  margin-top: 0.25rem;
  padding-top: 0.85rem;
  border-top: 1px solid rgba(255, 255, 255, 0.08);
}

.gp-chronicle-empty {
  margin: 0.45rem 0 0;
  font-size: 0.82rem;
}

.gp-chronicle-list {
  list-style: none;
  margin: 0.55rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}

.gp-chronicle-item {
  display: grid;
  grid-template-columns: minmax(110px, 0.9fr) minmax(160px, 1.4fr) auto;
  gap: 0.55rem;
  align-items: center;
  padding: 0.5rem 0.55rem;
  border: 1px solid rgba(255, 255, 255, 0.06);
  background: rgba(0, 0, 0, 0.16);
  border-radius: var(--gc-radius-sm, 2px);
}

.gp-chronicle-item--live {
  border-color: rgba(92, 200, 255, 0.35);
  background: rgba(92, 200, 255, 0.06);
}

.gp-chronicle-when {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.gp-chronicle-election {
  font-size: 0.82rem;
}

.gp-chronicle-effect {
  font-size: 0.72rem;
}

.gp-chronicle-seals {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  align-items: center;
}

.gp-chronicle-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.3rem;
  padding: 0.15rem 0.4rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  font-size: 0.78rem;
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.22);
}

.gp-chronicle-mono {
  font-family: var(--gc-font-mono, ui-monospace, monospace);
  font-size: 0.7rem;
  letter-spacing: 0.06em;
  color: var(--gc-accent, #5cc8ff);
}

.gp-chronicle-live {
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-accent, #5cc8ff);
}

.gp-chronicle-votes {
  font-size: 0.75rem;
  color: var(--gc-text-muted, #8b97a8);
  text-align: right;
  white-space: nowrap;
}

@media (max-width: 720px) {
  .gp-chronicle-item {
    grid-template-columns: 1fr;
  }

  .gp-chronicle-votes {
    text-align: left;
  }

  .gp-mandate-head,
  .gp-vote-rail-head {
    flex-direction: column;
    align-items: flex-start;
  }
}

.gp-guide-strip {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.35rem;
  margin: 0;
  padding: 0;
  border: none;
  background: transparent;
}

.gp-tabs-wrap {
  margin: 0.55rem 0 0.65rem;
}

.gp-tab {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  padding: 0.4rem 0.5rem;
  border: 1px solid rgba(92, 200, 255, 0.22);
  background: rgba(8, 16, 24, 0.55);
  color: var(--gc-text, #e8eef6);
  cursor: pointer;
  font: inherit;
  text-align: left;
  border-radius: var(--gc-radius-sm, 2px);
}

.gp-tab:hover {
  border-color: rgba(92, 200, 255, 0.45);
}

.gp-tab--active {
  border-color: var(--gc-accent, #5cc8ff);
  background: rgba(92, 200, 255, 0.1);
  box-shadow: inset 0 0 0 1px rgba(92, 200, 255, 0.25);
}

.gp-tab-icon {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: #0a1018;
}

.gp-tab-num {
  flex-shrink: 0;
  font-family: var(--gc-font-mono, ui-monospace, monospace);
  font-size: 0.72rem;
  color: var(--gc-accent, #5cc8ff);
}

.gp-tab-label {
  font-size: 0.78rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.gp-tab-hint {
  margin: 0.4rem 0 0;
  font-size: 0.78rem;
  line-height: 1.35;
}

.gp-tab-panel[hidden] {
  display: none !important;
}

.gp-status-strip {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  flex-wrap: wrap;
  margin: 0.55rem 0 0;
  padding: 0.45rem 0.55rem;
  border: 1px solid rgba(212, 162, 90, 0.35);
  background: rgba(8, 14, 20, 0.72);
  overflow: hidden;
  min-width: 0;
}

.gp-status-sigil-wrap {
  position: relative;
  width: 48px;
  height: 48px;
  flex-shrink: 0;
}

.gp-status-ring,
.gp-status-sigil {
  position: absolute;
  inset: 0;
  width: 48px;
  height: 48px;
  object-fit: cover;
}

.gp-status-sigil {
  inset: 6px;
  width: 36px;
  height: 36px;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.gp-status-copy {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  min-width: 0;
  flex: 1 1 140px;
}

.gp-status-mandate {
  font-size: 0.92rem;
  font-weight: 600;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gp-status-countdown {
  font-size: 0.78rem;
  color: var(--gc-text-muted, #8b97a8);
}

.gp-status-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  max-width: 100%;
}

.gp-status-badge {
  padding: 0.2rem 0.4rem;
  border: 1px solid rgba(255, 255, 255, 0.18);
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  border-radius: var(--gc-radius-sm, 2px);
  color: var(--gc-text-muted, #8b97a8);
  white-space: normal;
  line-height: 1.2;
  max-width: 100%;
}

.gp-status-badge--vote {
  border-color: rgba(122, 212, 168, 0.55);
  color: #7ad4a8;
}

.gp-status-badge--res {
  border-color: rgba(92, 200, 255, 0.55);
  color: var(--gc-accent, #5cc8ff);
}

.gp-status-badge--alert {
  border-color: rgba(224, 104, 104, 0.55);
  color: #e06868;
}

.gp-guide-step {
  display: none;
}

.gp-section-help,
.gp-quorum-hint,
.gp-cooldown-note {
  margin: 0.25rem 0 0.55rem;
  font-size: 0.8rem;
  line-height: 1.35;
}

.gp-section-title {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-accent, #5cc8ff);
}

.gp-bloc-set-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  min-width: 0;
  max-width: 100%;
  padding: 0.45rem 0.5rem !important;
  overflow: hidden;
}

.gp-bloc-set-btn--active {
  border-color: var(--gc-accent, #5cc8ff);
  color: var(--gc-accent, #5cc8ff);
}

.gp-bloc-btn-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.12);
}

.gp-bloc-btn-label {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gp-bloc-btn-grid,
.gp-faction-board {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(110px, 1fr));
  gap: 0.45rem;
  margin-top: 0.45rem;
}

.gp-faction-tile {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.28rem;
  margin: 0;
  padding: 0.45rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: var(--gc-radius-sm, 2px);
  background:
    linear-gradient(180deg, rgba(18, 28, 40, 0.92) 0%, rgba(6, 10, 16, 0.95) 100%);
  color: var(--gc-text, #e8eef6);
  cursor: pointer;
  text-align: left;
  min-width: 0;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.gp-faction-tile:hover:not(:disabled) {
  border-color: rgba(212, 162, 90, 0.55);
}

.gp-faction-tile:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.gp-faction-tile--active,
.gp-faction-tile[aria-pressed="true"] {
  border-color: rgba(212, 162, 90, 0.85);
  box-shadow: inset 0 0 0 1px rgba(212, 162, 90, 0.45);
  opacity: 1;
}

.gp-faction-art {
  width: 100%;
  height: 48px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: #0a1018;
}

.gp-faction-mono {
  font-family: var(--gc-font-mono, ui-monospace, monospace);
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  color: var(--gc-accent, #5cc8ff);
}

.gp-faction-label {
  font-size: 0.78rem;
  font-weight: 600;
  line-height: 1.25;
  word-break: break-word;
}

.gp-faction-stance {
  font-size: 0.66rem;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.gp-bloc-count {
  font-size: 0.72rem;
  white-space: nowrap;
}

.gp-bloc-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gp-resolution-head {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
  margin-bottom: 0.35rem;
}

.gp-resolution-mark {
  flex-shrink: 0;
  border: 1px solid rgba(92, 200, 255, 0.3);
  background: #0a1018;
  object-fit: cover;
}

.gp-chronicle-summary {
  cursor: pointer;
  list-style: none;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gc-accent, #5cc8ff);
  padding: 0.35rem 0;
}

.gp-chronicle-summary::-webkit-details-marker {
  display: none;
}

@media (max-width: 720px) {
  .gp-guide-strip {
    grid-template-columns: 1fr;
  }

  .gp-tab-label {
    white-space: normal;
  }
}

.gp-senate-hero {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: 0.85rem 0 0.25rem;
  border-bottom: 1px solid rgba(92, 200, 255, 0.18);
  margin-bottom: 0.35rem;
}

.gp-senate-hero-seal {
  flex-shrink: 0;
  width: min(256px, 42vw);
  height: auto;
  aspect-ratio: 8 / 3;
  object-fit: cover;
  border: 1px solid rgba(92, 200, 255, 0.35);
  background: rgba(0, 0, 0, 0.35);
}

.gp-diplomacy-rail {
  margin: 0 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}

.gp-chamber {
  position: relative;
  margin: 0;
  padding: 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--gc-radius-sm, 2px);
  overflow: hidden;
  isolation: isolate;
}

.gp-chamber::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  opacity: 0.55;
  /* Page-level backdrop already paints once — chamber only adds a local veil. */
  background: linear-gradient(180deg, rgba(6, 10, 16, 0.4) 0%, rgba(6, 10, 16, 0.88) 100%);
}

.gp-chamber > * {
  position: relative;
  z-index: 1;
}

.gp-chamber--live {
  border-color: rgba(92, 200, 255, 0.35);
  border-left: 3px solid var(--gc-accent, #5cc8ff);
  background: rgba(8, 18, 28, 0.55);
}

.gp-chamber--stance {
  border-color: rgba(212, 162, 90, 0.28);
  border-left: 3px solid rgba(212, 162, 90, 0.75);
  background: rgba(0, 0, 0, 0.28);
}

.gp-chamber--resolution {
  border-color: rgba(92, 200, 255, 0.28);
  border-left: 3px solid rgba(92, 200, 255, 0.65);
  background: rgba(8, 18, 28, 0.45);
}

.gp-chamber-head {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.35rem 0.75rem;
  margin-bottom: 0.45rem;
}

.gp-chamber-head .gp-rail-kicker {
  margin: 0;
}

.gp-chamber-tag {
  font-size: 0.72rem;
  line-height: 1.3;
  color: var(--gc-text-muted, #8b97a8);
  max-width: 42ch;
}

.gp-badge {
  display: inline-block;
  padding: 0.12rem 0.4rem;
  border: 1px solid rgba(255, 255, 255, 0.16);
  border-radius: var(--gc-radius-sm, 2px);
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8b97a8);
  background: rgba(0, 0, 0, 0.35);
  white-space: nowrap;
}

.gp-badge-stance {
  border-color: rgba(212, 162, 90, 0.55);
  color: #e0c090;
}

.gp-badge-mandate {
  border-color: rgba(92, 200, 255, 0.4);
  color: var(--gc-accent, #5cc8ff);
}

.gp-badge-duration {
  border-color: rgba(92, 200, 255, 0.35);
  color: var(--gc-accent, #5cc8ff);
  margin-top: 0.25rem;
}

.gp-stamp {
  display: inline-block;
  padding: 0.1rem 0.35rem;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: rgba(0, 0, 0, 0.4);
  font-size: 0.72rem;
}

.gp-emergency-theater {
  display: flex;
  gap: 0.75rem;
  padding: 0.75rem;
  border: 1px solid rgba(224, 104, 104, 0.45);
  border-left: 3px solid #e06868;
  background: linear-gradient(90deg, rgba(80, 16, 16, 0.35), rgba(0, 0, 0, 0.25));
}

.gp-rail-kicker--alert {
  color: #e06868;
}

.gp-emergency-title {
  margin: 0.15rem 0;
  font-size: 1.05rem;
}

.gp-emergency-desc {
  margin: 0;
  font-size: 0.82rem;
}

.gp-emergency-cd {
  margin: 0.35rem 0 0;
  font-size: 0.8rem;
}

.gp-identity-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.gp-identity-chip {
  display: flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.4rem 0.55rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(0, 0, 0, 0.22);
  min-width: 160px;
}

.gp-identity-label {
  display: block;
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8b97a8);
}

.gp-identity-mono {
  font-family: var(--gc-font-mono, ui-monospace, monospace);
  font-size: 0.95rem;
  color: var(--gc-accent, #5cc8ff);
}

.gp-bloc-list {
  list-style: none;
  margin: 0.4rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.gp-live-effects {
  /* Live floor identity; visual via .gp-chamber--live */
}

.gp-live-grid {
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
  margin-top: 0.15rem;
}

.gp-live-card,
.gp-sigil-tile {
  display: flex;
  gap: 0.65rem;
  align-items: flex-start;
  padding: 0.55rem;
  border: 1px solid rgba(92, 200, 255, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.4);
  min-width: 0;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}

.gp-live-card--alert {
  border-color: rgba(224, 104, 104, 0.45);
  background: linear-gradient(90deg, rgba(80, 16, 16, 0.35), rgba(0, 0, 0, 0.35));
}

.gp-live-art {
  flex-shrink: 0;
  width: 64px;
  height: 64px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.14);
  background: #0a1018;
}

.gp-live-copy {
  min-width: 0;
  flex: 1;
}

.gp-live-title {
  display: block;
  margin: 0.1rem 0 0.3rem;
  font-size: 1.02rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gp-live-cd {
  margin: 0.35rem 0 0;
  font-size: 0.78rem;
}

.gp-live-empty {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 0.25rem;
  padding: 0.65rem;
  border: 1px dashed rgba(92, 200, 255, 0.28);
  background: rgba(0, 0, 0, 0.28);
}

.gp-live-empty-line {
  margin: 0;
  font-size: 0.88rem;
  color: var(--gc-text, #e8eef6);
}

.gp-stance-help {
  border-left: 2px solid rgba(212, 162, 90, 0.55);
  padding-left: 0.45rem;
}

.gp-bloc-row {
  display: grid;
  grid-template-columns: 32px minmax(0, 1.4fr) auto minmax(0, 1fr);
  gap: 0.45rem;
  align-items: center;
  padding: 0.4rem 0.5rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.28);
  min-width: 0;
}

.gp-bloc-row-art {
  width: 32px;
  height: 32px;
  object-fit: cover;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: #0a1018;
}

.gp-bloc-row-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
}

.gp-bloc-name {
  font-weight: 600;
  font-size: 0.86rem;
}

.gp-bloc-stance,
.gp-bloc-btn-stance {
  font-size: 0.68rem;
  line-height: 1.25;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gp-bloc-btn-copy {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 0.05rem;
}

.gp-bloc-set-btn {
  align-items: flex-start;
}

.gp-bloc-count {
  font-size: 0.8rem;
}

.gp-bloc-tags {
  font-size: 0.72rem;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gp-bloc-btn-row {
  display: none;
}

.gp-resolution-session,
.gp-resolution-propose,
.gp-resolution-floor {
  padding: 0.75rem;
  border: 1px solid rgba(92, 200, 255, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  background:
    linear-gradient(180deg, rgba(12, 24, 36, 0.75) 0%, rgba(6, 10, 16, 0.85) 100%);
}

.gp-resolution-head {
  display: flex;
  gap: 0.75rem;
  align-items: flex-start;
}

.gp-resolution-mark {
  width: 56px;
  height: 56px;
  object-fit: cover;
  border: 1px solid rgba(92, 200, 255, 0.35);
  background: #0a1018;
  flex-shrink: 0;
}

.gp-resolution-head-copy {
  min-width: 0;
  flex: 1;
}

.gp-resolution-title {
  margin: 0.15rem 0 0.25rem;
  font-size: 1.12rem;
}

.gp-tally-bar {
  display: flex;
  height: 6px;
  margin: 0.45rem 0;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.gp-tally-bar--floor {
  height: 10px;
  margin: 0.65rem 0 0.4rem;
  border: 1px solid rgba(255, 255, 255, 0.08);
}

.gp-tally-yes { background: #7ad4a8; }
.gp-tally-no { background: #e06868; }

.gp-resolution-propose-hint {
  margin: 0.25rem 0 0.45rem;
  font-size: 0.82rem;
}

.gp-resolution-propose-label {
  display: block;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8b97a8);
  margin-bottom: 0.25rem;
}

.gp-resolution-actions,
.gp-resolution-propose-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
  margin-top: 0.45rem;
  align-items: center;
}

.gp-resolution-actions--floor {
  margin-top: 0.65rem;
  gap: 0.55rem;
}

.gp-resolution-actions--floor .gc-btn {
  flex: 1 1 120px;
  min-height: 2.4rem;
  border-radius: var(--gc-radius-sm, 2px);
}

.gp-resolution-propose-preview {
  margin-top: 0.45rem;
}

.gp-resolution-select {
  flex: 1;
  min-width: 180px;
  max-width: 100%;
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.35);
  color: var(--gc-text, #e8eef6);
  border: 1px solid rgba(255, 255, 255, 0.14);
  padding: 0.35rem 0.5rem;
}

.gp-tradeoff-label {
  color: var(--gc-text-muted, #8b97a8);
  margin-right: 0.15rem;
}

.gp-option-tally--empty {
  opacity: 0.35;
}

.gp-seal-row:has(.gp-seal:only-child) {
  grid-template-columns: minmax(160px, 320px);
}

.gp-bloc-controls {
  margin-top: 0.55rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(255, 255, 255, 0.06);
}

.gp-option-art-row {
  display: flex;
  gap: 0.55rem;
  align-items: flex-start;
}

.gp-option-art {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  background: #0a1018;
  object-fit: contain;
}

.gp-option-tally {
  height: 4px;
  margin: 0.45rem 0 0.35rem;
  background: rgba(255, 255, 255, 0.08);
  overflow: hidden;
}

.gp-option-tally > span {
  display: block;
  height: 100%;
  background: var(--gc-accent, #5cc8ff);
}

.gp-tradeoff-list {
  list-style: none;
  margin: 0 0 0.55rem;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  min-width: 0;
}

.gp-tradeoff-chip {
  max-width: 100%;
  font-size: 0.68rem;
  padding: 0.15rem 0.3rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  color: var(--gc-text-muted, #8b97a8);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.galaxy-command-map-politics-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.45rem;
}

.gc-cmap-politics-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.1rem 0.3rem;
  border: 1px solid rgba(92, 200, 255, 0.35);
  font-size: 0.65rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-accent, #5cc8ff);
  background: rgba(0, 0, 0, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  text-decoration: none;
}

.gc-cmap-politics-badge--emergency {
  border-color: rgba(224, 104, 104, 0.55);
  color: #e06868;
}

/* GC-700A/D ? Combat Simulator one-window */
.combat-simulator-page {
  max-width: 100%;
  overflow-x: hidden;
}

.gc-combat-sim-window {
  border: 1px solid rgba(94, 196, 255, 0.28);
  border-left: 3px solid var(--gc-accent, #5ec4ff);
  border-radius: 0;
  background: rgba(8, 14, 22, 0.92);
  padding: 0.75rem;
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
}

.gc-combat-sim-window-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 0.5rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.gc-combat-sim-window-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}

.gc-combat-sim-window-title-row {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.gc-combat-sim-route {
  margin: 0.25rem 0 0;
  font-size: 0.82rem;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.35rem;
}

.gc-combat-sim-route-role {
  opacity: 0.7;
  text-transform: uppercase;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
}

.gc-combat-sim-route-arrow {
  opacity: 0.55;
}

.gc-combat-sim-spy-source,
.gc-combat-sim-attacker-meta,
.gc-combat-sim-import-error {
  margin: 0.15rem 0 0;
  font-size: 0.78rem;
}

.gc-combat-sim-run-head {
  border-radius: 0;
  flex-shrink: 0;
}

.gc-combat-sim-results,
.gc-battle-lab-report {
  padding: 0.65rem 0.75rem;
  border: 1px solid rgba(94, 196, 255, 0.25);
  background: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, rgba(0, 0, 0, 0.2) 100%);
}

.gc-battle-lab-forecast {
  text-align: center;
  padding: 0.5rem 0 0.65rem;
  margin-bottom: 0.5rem;
  border-bottom: 1px solid rgba(94, 196, 255, 0.35);
}

.gc-battle-lab-forecast-label {
  margin: 0 0 0.35rem;
  font-size: 0.65rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  opacity: 0.7;
}

.gc-battle-lab-banner {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-accent, #5ec4ff);
}

.gc-battle-lab-banner-pct {
  margin: 0.2rem 0 0;
  font-size: 0.95rem;
  font-weight: 600;
}

.gc-battle-lab-block {
  margin-top: 0.55rem;
  padding-top: 0.45rem;
  border-top: 1px dashed rgba(255, 255, 255, 0.1);
}

.gc-battle-lab-block-title {
  margin: 0 0 0.35rem;
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  opacity: 0.85;
  font-weight: 700;
}

.gc-battle-lab-unit-table {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gc-battle-lab-unit-row {
  display: grid;
  grid-template-columns: 1.25rem minmax(0, 1fr) 3.5rem;
  align-items: center;
  gap: 0.35rem;
  padding: 0.18rem 0;
  font-size: 0.8rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.gc-battle-lab-unit-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-battle-lab-unit-qty {
  text-align: right;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.gc-battle-lab-sev--none .gc-battle-lab-unit-qty { color: #6ee7a0; }
.gc-battle-lab-sev--low .gc-battle-lab-unit-qty { color: #e8b84a; }
.gc-battle-lab-sev--medium .gc-battle-lab-unit-qty { color: #fb923c; }
.gc-battle-lab-sev--high .gc-battle-lab-unit-qty { color: #f87171; }

.gc-battle-lab-unit-icon.is-good { color: #6ee7a0; }
.gc-battle-lab-unit-icon.is-bad { color: #f87171; }
.gc-battle-lab-unit-icon.is-neutral { color: rgba(255, 255, 255, 0.45); }

.gc-battle-lab-total {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  opacity: 0.9;
}

.gc-battle-lab-resource-list {
  margin: 0;
  display: grid;
  gap: 0.25rem;
}

.gc-battle-lab-resource-list div {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 0.5rem;
  font-size: 0.78rem;
  padding: 0.12rem 0;
}

.gc-battle-lab-resource-list dt {
  opacity: 0.85;
}

.gc-battle-lab-resource-list dd {
  margin: 0;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

.gc-battle-lab-meter-block {
  margin-top: 0.55rem;
  padding: 0.45rem 0 0.35rem;
  border-top: 1px dashed rgba(255, 255, 255, 0.1);
}

.gc-battle-lab-meter-track {
  height: 0.55rem;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.12);
  overflow: hidden;
}

.gc-battle-lab-meter-fill {
  display: block;
  height: 100%;
  background: linear-gradient(90deg, rgba(94, 196, 255, 0.85), rgba(110, 231, 160, 0.9));
  transition: width 0.35s ease;
}

.gc-battle-lab-meter--negative .gc-battle-lab-meter-fill {
  background: linear-gradient(90deg, rgba(248, 113, 113, 0.85), rgba(232, 184, 74, 0.75));
}

.gc-battle-lab-meter--warning .gc-battle-lab-meter-fill {
  background: linear-gradient(90deg, rgba(232, 184, 74, 0.9), rgba(251, 146, 60, 0.85));
}

.gc-battle-lab-meter-label {
  margin: 0.35rem 0 0.15rem;
  font-size: 0.82rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.gc-battle-lab-meter-net {
  margin: 0;
  font-size: 0.78rem;
  opacity: 0.9;
}

.gc-battle-lab-analysis,
.gc-battle-lab-advice {
  margin: 0;
  padding: 0;
  list-style: none;
}

.gc-battle-lab-analysis-item,
.gc-battle-lab-advice-item {
  display: flex;
  gap: 0.4rem;
  align-items: flex-start;
  padding: 0.2rem 0;
  font-size: 0.78rem;
  line-height: 1.45;
}

.gc-battle-lab-analysis-icon {
  flex-shrink: 0;
  width: 1rem;
  font-weight: 700;
}

.gc-battle-lab-analysis--positive .gc-battle-lab-analysis-icon { color: #6ee7a0; }
.gc-battle-lab-analysis--warning .gc-battle-lab-analysis-icon { color: #e8b84a; }
.gc-battle-lab-analysis--negative .gc-battle-lab-analysis-icon { color: #f87171; }

.gc-battle-lab-advice-item {
  padding: 0.35rem 0.45rem;
  margin-bottom: 0.25rem;
  border-left: 2px solid rgba(94, 196, 255, 0.55);
  background: rgba(94, 196, 255, 0.06);
}

.gbl-result {
  margin-bottom: 0.35rem;
}

.gbl-result-header {
  text-align: center;
  padding: 0.3rem 0 0.35rem;
}

.gbl-result-banner {
  margin: 0;
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--gc-accent, #5ec4ff);
}

.gbl-result-pct {
  margin: 0.15rem 0 0;
  font-size: 0.85rem;
  font-weight: 600;
}

.gbl-result-bar {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  min-height: 48px;
  max-height: 56px;
  border: 1px solid rgba(255, 255, 255, 0.12);
  border-radius: 0;
  overflow: hidden;
}

.gbl-result-tile {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.2rem;
  min-height: 48px;
  max-height: 56px;
  padding: 0 0.15rem;
  font-size: 0.68rem;
  line-height: 1.15;
  border-right: 1px solid rgba(255, 255, 255, 0.08);
  background: rgba(255, 255, 255, 0.03);
  border-radius: 0;
  overflow: hidden;
  white-space: nowrap;
}

.gbl-result-tile:last-child {
  border-right: none;
}

.gbl-result-tile-ico {
  flex-shrink: 0;
  font-size: 0.72rem;
  line-height: 1;
}

.gbl-result-tile-val {
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}

.gbl-result-tile--net.positive .gbl-result-tile-val {
  color: #6ee7a0;
  font-weight: 700;
}

.gbl-result-tile--net.negative .gbl-result-tile-val {
  color: #f87171;
  font-weight: 700;
}

.gbl-result-details-wrap {
  text-align: center;
  padding: 0.2rem 0 0;
}

.gbl-result-details-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.15rem 0.45rem;
  font-size: 0.72rem;
  line-height: 1.2;
  border: none;
  border-radius: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  opacity: 0.85;
}

.gbl-result-details-chevron {
  font-size: 0.6rem;
  opacity: 0.85;
}

.gbl-result-details-btn:hover {
  opacity: 1;
  background: rgba(255, 255, 255, 0.06);
}

.gbl-result-tile-visual {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
}

.gbl-result-tile-visual--multi .gbl-unit-icon {
  width: 18px;
  height: 18px;
}

.gbl-result-tile-qty {
  font-weight: 700;
  font-size: 0.68rem;
}

.gbl-result-tile-val--compact {
  font-size: 0.62rem;
  opacity: 0.85;
}

.gbl-result-tile-visual--res .gbl-res-icon {
  width: 16px;
  height: 16px;
}

.gbl-dashboard {
  margin-top: 0.25rem;
}

.gbl-dash-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.35rem;
}

.gbl-dash-panel {
  padding: 0.35rem 0.4rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0;
  background: rgba(0, 0, 0, 0.15);
}

.gbl-dash-panel.gbl-dash-combat {
  grid-column: 1 / -1;
}

.gbl-dash-title {
  margin: 0 0 0.25rem;
  font-size: 0.62rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  text-align: center;
  opacity: 0.85;
}

.gbl-dash-title--sub {
  margin-top: 0.35rem;
}

.gbl-unit-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  justify-content: center;
  min-height: 2rem;
}

.gbl-unit-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.15rem;
  padding: 0.1rem 0.25rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
}

.gbl-unit-icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.gbl-unit-chip-qty {
  font-size: 0.72rem;
  font-weight: 700;
}

.gbl-unit-empty {
  font-size: 0.72rem;
  opacity: 0.7;
}

.gbl-resource-strip {
  display: flex;
  justify-content: center;
  gap: 0.5rem;
  flex-wrap: wrap;
}

.gbl-res-cell {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.15rem;
  min-width: 3.5rem;
}

.gbl-res-icon {
  width: 22px;
  height: 22px;
  object-fit: contain;
}

.gbl-res-cell-val {
  font-size: 0.72rem;
  font-weight: 600;
}

.gbl-signal-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  justify-content: center;
}

.gbl-signal-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.12rem 0.35rem;
  font-size: 0.68rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
}

.gbl-signal-dot {
  font-size: 0.55rem;
  line-height: 1;
}

.gbl-advice-chips {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.gbl-advice-chip {
  font-size: 0.68rem;
  padding: 0.15rem 0.3rem;
  border-left: 2px solid rgba(94, 196, 255, 0.5);
  background: rgba(94, 196, 255, 0.06);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gbl-dash-combat-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.25rem;
  margin-bottom: 0.25rem;
}

.gbl-stat-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.35rem;
}

.gbl-stat-side {
  margin: 0 0 0.2rem;
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.75;
  text-align: center;
}

.gbl-stat-cards {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  justify-content: center;
}

.gbl-stat-card {
  min-width: 5.5rem;
  padding: 0.25rem 0.3rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.03);
}

.gbl-stat-card.is-zero {
  opacity: 0.45;
}

.gbl-stat-card-head {
  display: flex;
  align-items: center;
  gap: 0.2rem;
  margin-bottom: 0.15rem;
  font-size: 0.65rem;
  font-weight: 700;
}

.gbl-stat-card-head .gbl-unit-icon {
  width: 22px;
  height: 22px;
}

.gbl-stat-row {
  display: flex;
  align-items: center;
  gap: 0.25rem;
  font-size: 0.68rem;
  line-height: 1.3;
}

.gbl-stat-ico {
  width: 0.85rem;
  text-align: center;
}

.gbl-why-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem;
  justify-content: center;
  margin-top: 0.35rem;
  padding-top: 0.3rem;
  border-top: 1px dashed rgba(255, 255, 255, 0.1);
}

.gbl-why-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.2rem;
  padding: 0.12rem 0.3rem;
  font-size: 0.65rem;
  border: 1px solid rgba(255, 255, 255, 0.1);
  cursor: help;
}

.gbl-why-chip-ico {
  font-size: 0.7rem;
}

.gbl-stat-empty {
  font-size: 0.68rem;
  opacity: 0.7;
  text-align: center;
}

@media (max-width: 720px) {
  .gbl-dash-grid {
    grid-template-columns: 1fr;
  }

  .gbl-stat-grid {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 720px) {
  .gbl-result-bar {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    max-height: none;
    min-height: auto;
  }

  .gbl-result-tile {
    min-height: 44px;
    max-height: 48px;
  }
}

.gc-battle-lab-details-toggle {
  margin-bottom: 0.35rem;
}

.gc-battle-lab-details {
  margin-top: 0.25rem;
  padding-top: 0.35rem;
  border-top: 1px dashed rgba(255, 255, 255, 0.12);
}

.gc-battle-lab-combat-values-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
}

.gc-battle-lab-combat-values-cols {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.5rem;
  margin-top: 0.35rem;
}

.gc-battle-lab-combat-col-title {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  text-transform: uppercase;
  opacity: 0.85;
}

.gc-battle-lab-combat-card {
  border: 1px solid rgba(255, 255, 255, 0.08);
  padding: 0.35rem 0.45rem;
  margin-bottom: 0.35rem;
  font-size: 0.75rem;
  background: rgba(0, 0, 0, 0.18);
}

.gc-battle-lab-combat-card.is-zero {
  opacity: 0.45;
}

.gc-battle-lab-combat-card-head {
  display: flex;
  justify-content: space-between;
  gap: 0.35rem;
  margin-bottom: 0.2rem;
  font-size: 0.8rem;
}

.gc-battle-lab-combat-stat {
  margin: 0.1rem 0;
  opacity: 0.92;
}

.gc-battle-lab-combat-role {
  margin: 0.25rem 0 0;
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  color: var(--gc-accent, #5ec4ff);
}

.gc-battle-lab-combat-hint {
  margin: 0.15rem 0 0;
  font-size: 0.72rem;
  opacity: 0.85;
  font-style: italic;
}

.gc-battle-lab-combat-rf {
  margin: 0.2rem 0 0;
  font-size: 0.72rem;
  color: #e8b84a;
}

.gc-battle-lab-combat-why {
  margin-top: 0.45rem;
  padding-top: 0.35rem;
  border-top: 1px dashed rgba(255, 255, 255, 0.1);
}

.gc-battle-lab-combat-why-title {
  margin: 0 0 0.25rem;
  font-size: 0.72rem;
  text-transform: uppercase;
}

.gc-battle-lab-combat-why-list {
  margin: 0;
  padding-left: 1rem;
  font-size: 0.78rem;
  line-height: 1.45;
}

@media (max-width: 860px) {
  .gc-battle-lab-combat-values-cols {
    grid-template-columns: minmax(0, 1fr);
  }
}

.gc-combat-sim-battle-line {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--gc-accent, #5ec4ff);
  margin-bottom: 0.35rem;
}

.combat-sim-reasons {
  margin: 0 0 0.45rem;
  padding-left: 1rem;
  font-size: 0.78rem;
  opacity: 0.88;
}

.gc-combat-sim-outcome-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(5.5rem, 1fr));
  gap: 0.35rem;
}

.gc-combat-sim-outcome {
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 0;
  padding: 0.35rem 0.45rem;
  background: rgba(0, 0, 0, 0.2);
}

.gc-combat-sim-outcome--attacker { border-left: 2px solid rgba(94, 196, 255, 0.7); }
.gc-combat-sim-outcome--defender { border-left: 2px solid rgba(255, 160, 80, 0.7); }
.gc-combat-sim-outcome--draw { border-left: 2px solid rgba(180, 180, 180, 0.5); }

.gc-combat-sim-outcome-label {
  display: block;
  font-size: 0.65rem;
  text-transform: uppercase;
  opacity: 0.75;
}

.gc-combat-sim-outcome-pct,
.gc-combat-sim-outcome-value {
  font-size: 1.1rem;
  font-weight: 700;
}

.gc-combat-sim-positive { color: #6ee7a0; }
.gc-combat-sim-negative { color: #f87171; }

.gc-combat-sim-loss-cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
  gap: 0.35rem;
  margin-top: 0.45rem;
}

.gc-combat-sim-loss-card {
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 0;
  padding: 0.35rem 0.45rem;
  font-size: 0.78rem;
}

.gc-combat-sim-loss-card-value {
  display: block;
  font-weight: 600;
  margin-top: 0.1rem;
}

.gc-combat-sim-resource-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.45rem;
}

.gc-combat-sim-chip {
  font-size: 0.75rem;
  padding: 0.2rem 0.45rem;
  border: 1px solid rgba(94, 196, 255, 0.35);
  border-radius: 0;
  background: rgba(94, 196, 255, 0.08);
}

.combat-sim-warnings-chips {
  display: flex;
  flex-wrap: wrap;
  gap: 0.3rem;
  margin: 0.45rem 0 0;
  padding: 0;
  list-style: none;
}

.combat-sim-warning-chip {
  font-size: 0.72rem;
  padding: 0.15rem 0.4rem;
  border-radius: 0;
  border: 1px solid rgba(232, 184, 74, 0.45);
  background: rgba(232, 184, 74, 0.12);
  color: var(--gc-warning, #e8b84a);
}

.gc-combat-sim-setup-bar {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  gap: 0.5rem;
  padding-bottom: 0.45rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}

.gc-combat-sim-setup-field {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  font-size: 0.75rem;
}

.gc-combat-sim-check {
  display: flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.78rem;
}

.gc-combat-sim-input,
.gc-combat-sim-qty {
  border-radius: 0 !important;
  min-height: 1.75rem;
}

.gc-combat-sim-qty {
  width: 3.5rem;
  text-align: center;
  padding-inline: 0.25rem;
}

.gc-combat-sim-run-mobile {
  display: none;
  border-radius: 0;
}

.gc-combat-sim-sides {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.65rem;
}

.gc-combat-sim-side {
  min-width: 0;
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-top: 2px solid rgba(94, 196, 255, 0.35);
  padding: 0.45rem;
  border-radius: 0;
}

.gc-combat-sim-side[data-sim-side="defender"] {
  border-top-color: rgba(255, 160, 80, 0.45);
}

.gc-combat-sim-side-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.35rem;
  margin-bottom: 0.35rem;
}

.gc-combat-sim-side-title {
  margin: 0;
  font-size: 0.85rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.gc-combat-sim-side-actions {
  display: flex;
  gap: 0.25rem;
}

.gc-combat-sim-side-meta {
  margin: 0 0 0.35rem;
  font-size: 0.75rem;
}

.gc-combat-sim-tabs,
.combat-sim-tabs {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin-bottom: 0.35rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
}

.gc-combat-sim-tab,
.combat-sim-tab {
  border: 0;
  border-radius: 0;
  background: transparent;
  color: inherit;
  font-size: 0.72rem;
  padding: 0.3rem 0.55rem;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  margin-bottom: -1px;
}

.gc-combat-sim-tab.active,
.combat-sim-tab.active {
  color: var(--gc-accent, #5ec4ff);
  border-bottom-color: var(--gc-accent, #5ec4ff);
}

.gc-combat-sim-unit-toolbar {
  margin-bottom: 0.35rem;
}

.gc-combat-sim-unit-grid {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.gc-combat-sim-unit-row {
  display: grid;
  grid-template-columns: 28px minmax(0, 1fr) 4.5rem;
  align-items: center;
  gap: 0.35rem;
  padding: 0.25rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
  font-size: 0.78rem;
}

.gc-combat-sim-unit-row--attacker {
  grid-template-columns: 28px minmax(0, 1fr) 4.5rem auto;
}

.gc-combat-sim-qty-max {
  min-width: 2.25rem;
  padding-inline: 0.35rem;
}

.gc-combat-sim-unit-icon {
  width: 28px;
  height: 28px;
  object-fit: contain;
}

.gc-combat-sim-unit-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.gc-combat-sim-tech-row {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(6.5rem, 1fr));
  gap: 0.45rem;
  font-size: 0.78rem;
}

.gc-combat-sim-tech-row label {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}

.combat-sim-unknown {
  font-style: italic;
  opacity: 0.75;
}

.gc-combat-sim-spy-switch {
  font-size: 0.78rem;
  border-top: 1px dashed rgba(255, 255, 255, 0.1);
  padding-top: 0.35rem;
}

.gc-combat-sim-spy-switch-body {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
  margin-top: 0.35rem;
}

.gc-combat-sim-details {
  border-top: 1px solid rgba(255, 255, 255, 0.08);
  padding-top: 0.45rem;
}

.gc-combat-sim-detail-block {
  margin-bottom: 0.55rem;
}

.gc-combat-sim-detail-block h4 {
  margin: 0 0 0.25rem;
  font-size: 0.82rem;
}

.combat-sim-loss-list {
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: 0.76rem;
}

.combat-sim-loss-list li {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  padding: 0.12rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.04);
}

.combat-sim-timeline {
  margin: 0;
  padding-left: 1rem;
  font-size: 0.76rem;
}

.combat-sim-timeline-round {
  font-weight: 600;
  color: var(--gc-accent, #5ec4ff);
}

.gc-combat-sim-admin-panel {
  margin-top: 0.35rem;
  font-size: 0.78rem;
  border-top: 1px dashed rgba(255, 255, 255, 0.12);
  padding-top: 0.35rem;
}

.gc-combat-sim-admin-hint {
  margin: 0.35rem 0 0.5rem;
  max-width: 42rem;
  line-height: 1.45;
}

.combat-sim-admin-actions {
  display: flex;
  gap: 0.35rem;
  margin: 0.35rem 0;
}

.combat-sim-details-pre {
  margin: 0.35rem 0 0;
  padding: 0.55rem;
  max-height: 14rem;
  overflow: auto;
  font-size: 0.72rem;
  background: rgba(0, 0, 0, 0.25);
  white-space: pre-wrap;
  word-break: break-word;
  border-radius: 0;
}

.combat-sim-efficiency-scroll {
  max-height: 16rem;
  overflow: auto;
}

.combat-sim-efficiency-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.72rem;
}

.combat-sim-efficiency-table th,
.combat-sim-efficiency-table td {
  padding: 0.2rem 0.35rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.08);
  text-align: left;
}

@media (max-width: 860px) {
  .gc-combat-sim-sides {
    grid-template-columns: minmax(0, 1fr);
  }

  .gc-combat-sim-run-head {
    display: none;
  }

  .gc-combat-sim-run-mobile {
    display: inline-flex;
  }

  .gc-combat-sim-unit-row {
    grid-template-columns: 28px minmax(0, 1fr) 3.5rem;
  }

  .gc-combat-sim-unit-row--attacker {
    grid-template-columns: 28px minmax(0, 1fr) 3.5rem auto;
  }
}

/* EPIC-09 Alliance Hub (GC-AL-008B polish) */
.alliance-hub-page {
  display: flex;
  flex-direction: column;
  gap: var(--gc-gap-md, 12px);
}
.alliance-hub-header { margin-bottom: 0; }

.alliance-hub-module {
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  overflow: hidden;
  position: relative;
}
/* Scanline/raster overlay would sit on top of the alliance logo image */
.alliance-hub-module.gc-panel::before,
.alliance-hub-module.gc-panel::after,
.alliance-hub-visitor.gc-panel::before,
.alliance-hub-visitor.gc-panel::after,
.alliance-hub-directory.gc-panel::before,
.alliance-hub-directory.gc-panel::after,
.alliance-hub-panel.gc-panel::before,
.alliance-hub-panel.gc-panel::after {
  display: none;
}

/* Profile-first hero ? compact identity strip */
.alliance-hub-hero {
  padding: 12px 14px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
  background:
    linear-gradient(135deg, rgba(110, 200, 255, 0.05) 0%, transparent 50%),
    linear-gradient(180deg, rgba(0, 0, 0, 0.2) 0%, rgba(0, 0, 0, 0.06) 100%);
}
.alliance-hub-hero-top {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 14px 16px;
}
.alliance-hub-hero-logo-row {
  display: flex;
  justify-content: center;
  align-items: center;
  width: auto;
  flex: 0 0 auto;
  padding: 0;
  position: relative;
}
.alliance-hub-hero-main {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: space-between;
  gap: 10px 14px;
  flex: 1 1 0;
  min-width: 0;
}
.alliance-hub-hero-actions {
  position: static;
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: 6px;
  flex: 1 1 100%;
  max-width: 100%;
  z-index: 1;
}
.alliance-hub-hero-action {
  margin: 0;
  min-height: 28px;
  white-space: nowrap;
  flex: 0 1 auto;
}
.alliance-hub-hero-body,
.alliance-hub-hero-meta {
  flex: 1 1 200px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.alliance-hub-hero-logo-wrap {
  flex: 0 0 auto;
  min-width: 0;
  max-width: none;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin: 0;
}
.alliance-hub-hero-identity {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 6px 10px;
}
.alliance-hub-hero-identity .alliance-hub-name {
  margin: 0;
  font-size: 1.15rem;
  font-weight: 600;
  line-height: 1.2;
  letter-spacing: 0.02em;
}
.alliance-hub-xp--hero { margin-top: 0; }

/* Ops band: active project + donation pool */
.alliance-hub-ops {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 0;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
  background: rgba(0, 0, 0, 0.1);
}
@media (min-width: 900px) {
  .alliance-hub-ops:has(.alliance-hub-project-active) {
    grid-template-columns: minmax(180px, 0.7fr) minmax(0, 1.6fr);
  }
}
@media (min-width: 900px) and (max-width: 1180px) {
  .alliance-hub-ops:has(.alliance-hub-project-active) {
    grid-template-columns: minmax(0, 1fr);
  }
  .alliance-hub-ops .alliance-hub-project-active {
    border-right: none;
    border-bottom: 1px solid var(--gc-border-subtle, #222);
  }
}
.alliance-hub-ops .alliance-hub-project-active,
.alliance-hub-ops .alliance-hub-pool {
  border-bottom: none;
  padding: 12px 14px;
}
.alliance-hub-ops .alliance-hub-project-active {
  border-right: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-xp-card--inline {
  margin-top: 2px;
  padding: 0;
  border: none;
  background: transparent;
}
.alliance-hub-pool-need {
  margin: 2px 0 0;
  font-size: 0.68rem;
  opacity: 0.72;
}
.alliance-hub-pool-hint {
  margin: 0 0 8px;
  font-size: 0.74rem;
  opacity: 0.75;
}
.alliance-hub-pool-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  width: 100%;
  min-width: 0;
  min-height: 0;
}
.alliance-hub-pool-action-btns {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 6px;
  width: 100%;
  min-width: 0;
}
.alliance-hub-pool-action-btns .gc-btn {
  min-width: 0;
}
.alliance-hub-pool-action-btns [data-donate-btn] {
  width: 100%;
}
.alliance-hub-pool-full-badge {
  display: inline-flex;
  align-items: center;
  padding: 4px 8px;
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--gc-success, #7fd4a0);
  border: 1px solid rgba(127, 212, 160, 0.35);
  background: rgba(127, 212, 160, 0.08);
  border-radius: var(--gc-radius-sm, 2px);
}
.alliance-hub-pool-tile.is-full {
  opacity: 0.88;
  border-color: rgba(127, 212, 160, 0.28);
}

/* Public visitor page */
.alliance-hub-visitor {
  display: flex;
  flex-direction: column;
  gap: 12px;
  padding: 12px 14px 16px;
}
.alliance-hub-visitor-hero {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 12px 16px;
  align-items: center;
}
.alliance-hub-visitor-identity {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.alliance-hub-visitor-xp {
  max-width: 100%;
}
.alliance-hub-visitor-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: center;
}
.alliance-hub-visitor-actions--hero {
  grid-column: 1 / -1;
  padding-top: 8px;
  border-top: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-visitor-apply {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-width: 420px;
  padding: 10px 12px;
  border: 1px solid var(--gc-border-subtle, #222);
  background: rgba(0, 0, 0, 0.16);
}
.alliance-hub-detail-member-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  border: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-detail-member-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px 12px;
  align-items: center;
  padding: 8px 10px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-detail-member-row:last-child {
  border-bottom: none;
}
.alliance-hub-detail-member-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.alliance-hub-detail-member-pts {
  text-align: right;
  opacity: 0.9;
  font-size: 0.85rem;
}
.gc-player-card-alliance {
  margin: 4px 0 0;
  font-size: 0.82rem;
}
.gc-player-card-alliance-link,
.gc-world-boss-alliance-link {
  color: var(--gc-accent, #6ec8ff);
  text-decoration: none;
  border-bottom: 1px solid transparent;
}
.gc-player-card-alliance-link:hover,
.gc-world-boss-alliance-link:hover {
  border-bottom-color: currentColor;
}

.alliance-hub-stats {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  padding: 12px 16px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
  background: rgba(0, 0, 0, 0.12);
}
.alliance-hub-stat-tile {
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  gap: 6px;
  min-width: 0;
  min-height: 52px;
  padding: 10px 12px;
  border: 1px solid var(--gc-border-subtle, #222);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.18);
}
.alliance-hub-stat-label {
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  opacity: 0.62;
  line-height: 1.2;
}
.alliance-hub-stat-value {
  font-size: 0.84rem;
  line-height: 1.35;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.alliance-hub-desc-card {
  padding: 14px 16px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
  max-width: 900px;
}
.alliance-hub-desc-card .alliance-hub-desc-text,
.alliance-hub-desc-card .alliance-hub-desc-empty {
  margin: 0;
  max-width: 860px;
  font-size: 0.88rem;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  opacity: 0.92;
}
.alliance-hub-desc-empty { opacity: 0.55; font-style: italic; }

.alliance-hub-hero-quickstats {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  font-size: 0.78rem;
  opacity: 0.9;
}
.alliance-hub-hero-desc {
  margin: 0;
  max-width: 760px;
  font-size: 0.88rem;
  line-height: 1.6;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  opacity: 0.92;
}
.alliance-hub-hero-desc--empty { opacity: 0.55; font-style: italic; }

.alliance-hub-xp-card {
  padding: 14px 16px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
  background: rgba(0, 0, 0, 0.1);
}
.alliance-hub-xp-hint {
  margin: 8px 0 6px;
  font-size: 0.82rem;
  line-height: 1.5;
  opacity: 0.85;
}
.alliance-hub-xp-sources {
  margin: 0;
  padding-left: 18px;
  font-size: 0.78rem;
  line-height: 1.55;
  opacity: 0.75;
}
.alliance-hub-xp-recent {
  margin: 8px 0 0;
  font-size: 0.75rem;
  color: var(--gc-accent, #6ec8ff);
}

.alliance-hub-project-desc {
  margin: 0;
  font-size: 0.8rem;
  line-height: 1.45;
  opacity: 0.85;
}
.alliance-hub-project-effect-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
}
.alliance-hub-project-effect-col {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
  padding: 8px 10px;
  border: 1px solid var(--gc-border-subtle, #222);
  background: rgba(0, 0, 0, 0.15);
  border-radius: var(--gc-radius-sm, 2px);
}
.alliance-hub-project-effect-col--next {
  border-color: rgba(110, 200, 255, 0.25);
}
.alliance-hub-project-effect-label {
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.65;
  line-height: 1.2;
}
.alliance-hub-project-effect-val {
  font-size: 0.78rem;
  line-height: 1.4;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.alliance-hub-member-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.alliance-hub-member-list .alliance-hub-member-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 8px;
  padding: 8px 10px;
  border: 1px solid var(--gc-border-subtle, #222);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.12);
}
.alliance-hub-member-row-main {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  min-width: 0;
  flex: 1;
}
.alliance-hub-member-avatar {
  width: 32px;
  height: 32px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
  border: 1px solid var(--gc-border, #334);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(110, 200, 255, 0.08);
  font-size: 0.85rem;
  font-weight: 600;
}
.alliance-hub-member-row-body { min-width: 0; flex: 1; }
.alliance-hub-member-row-head {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 6px;
}
.alliance-hub-member-row-stats {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 4px;
  font-size: 0.72rem;
  opacity: 0.8;
}
.alliance-hub-member-leave {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-member-table-wrap {
  overflow-x: auto;
  margin-bottom: 12px;
  -webkit-overflow-scrolling: touch;
}
.alliance-hub-member-table--roster {
  width: 100%;
  table-layout: auto;
  border-collapse: collapse;
}
.alliance-hub-member-table--roster thead th {
  position: sticky;
  top: 0;
  z-index: 1;
  background: var(--gc-bg-inset, #111);
}
.alliance-hub-member-table--roster tr.alliance-hub-member-row {
  display: table-row;
  padding: 0;
  border: none;
  border-radius: 0;
  background: transparent;
}
.alliance-hub-member-table--roster th,
.alliance-hub-member-table--roster td {
  display: table-cell;
  vertical-align: middle;
  padding: 10px 12px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
  text-align: left;
  white-space: nowrap;
}
.alliance-hub-member-table--roster td:first-child,
.alliance-hub-member-table--roster th:first-child {
  white-space: normal;
  min-width: 10rem;
}
.alliance-hub-member-table--roster td:last-child,
.alliance-hub-member-table--roster th:last-child {
  white-space: normal;
  min-width: 0;
  width: 1%;
}
.alliance-hub-member-table--roster .alliance-hub-member-cell-player {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.alliance-hub-member-table--roster .alliance-hub-member-name {
  min-width: 0;
  overflow: hidden;
  text-overflow: ellipsis;
}
.alliance-hub-member-table--roster .alliance-hub-member-meta {
  font-size: 0.75rem;
  opacity: 0.85;
  white-space: nowrap;
}
.alliance-hub-member-table--roster .alliance-hub-member-actions {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: center;
  gap: 4px;
  min-width: 0;
}
.alliance-hub-member-table--roster .alliance-hub-member-action-btn {
  width: 1.65rem;
  height: 1.65rem;
  min-width: 1.65rem;
  padding: 0;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 0.82rem;
  line-height: 1;
  white-space: nowrap;
}
.alliance-hub-member-table--roster .alliance-hub-member-action-btn--danger:hover {
  color: var(--gc-danger, #e85d5d);
  border-color: rgba(232, 93, 93, 0.55);
}
.alliance-hub-member-table--roster .alliance-hub-role-badge {
  display: inline-block;
  white-space: nowrap;
}
.alliance-hub-member-grid--roster {
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  gap: 10px;
}
.alliance-hub-member-card--roster {
  gap: 10px;
  padding: 12px 14px;
}
.alliance-hub-member-card-head {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.alliance-hub-member-card-identity {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.alliance-hub-member-stat-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 10px;
  margin: 0;
}
.alliance-hub-member-stat {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.alliance-hub-member-stat--wide {
  grid-column: 1 / -1;
}
.alliance-hub-member-stat dt {
  margin: 0;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.62;
}
.alliance-hub-member-stat dd {
  margin: 0;
  font-size: 0.82rem;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.alliance-hub-project-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 6px 8px;
}
.alliance-hub-project-card-head .gc-prog-info {
  margin-left: 0;
}
.alliance-hub-project-affects {
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-project-affects-label {
  display: block;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.65;
  margin-bottom: 4px;
}
.alliance-hub-project-affects-list {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 8px;
}
.alliance-hub-project-affects-tag {
  font-size: 0.75rem;
  padding: 2px 6px;
  border: 1px solid var(--gc-border-subtle, #222);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.15);
}
.alliance-hub-project-affects-tag::before {
  content: "? ";
  opacity: 0.75;
}
.alliance-hub-project-card--highlight {
  border-color: var(--gc-accent, #6ec8ff);
  box-shadow: 0 0 0 1px rgba(110, 200, 255, 0.35);
}
.alliance-hub-unlock-card--diplomacy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 10px;
  padding: 20px;
  border: 1px solid var(--gc-border-subtle, #222);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.2);
  max-width: 520px;
}
.alliance-hub-unlock-icon {
  font-size: 1.5rem;
  line-height: 1;
  opacity: 0.85;
}
.alliance-hub-unlock-title {
  margin: 0;
  font-size: 1.05rem;
  font-weight: 600;
}
.alliance-hub-unlock-desc {
  margin: 0;
  font-size: 0.86rem;
  line-height: 1.5;
  opacity: 0.9;
}
.alliance-hub-unlock-btn {
  margin-top: 4px;
}
.alliance-hub-section-title--with-tip {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.alliance-hub-member-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.78rem;
}
.alliance-hub-member-table th,
.alliance-hub-member-table td {
  padding: 6px 8px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
  text-align: left;
  vertical-align: middle;
}
.alliance-hub-member-table th {
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.75;
}
.alliance-hub-member-cell-player {
  display: flex;
  align-items: center;
  gap: 8px;
  min-width: 0;
}
.alliance-hub-member-meta {
  font-size: 0.72rem;
  opacity: 0.85;
  white-space: nowrap;
}
.alliance-hub-project-card--locked {
  opacity: 0.94;
  border-color: rgba(232, 184, 74, 0.45);
  background: rgba(0, 0, 0, 0.18);
}
.alliance-hub-project-req-list {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin: 6px 0 0;
}
.alliance-hub-project-req {
  font-size: 0.72rem;
  color: var(--gc-warn, #e8b84a);
}
.alliance-hub-unlock-card {
  padding: 12px;
  border: 1px solid var(--gc-border-subtle, #222);
  background: rgba(0, 0, 0, 0.15);
  border-radius: var(--gc-radius-sm, 2px);
}
.alliance-hub-unlock-project {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  margin: 8px 0;
}
.alliance-hub-section-hint {
  margin: 4px 0 8px;
  font-size: 0.78rem;
  opacity: 0.8;
}
.alliance-hub-hero-actions--chat {
  display: none;
}

/* GC-AL layout contract ? scoped under module to survive global resets */
.alliance-hub-module .alliance-hub-pool-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
  gap: 8px;
}
.alliance-hub-module .alliance-hub-pool-tile {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  overflow: hidden;
}
.alliance-hub-module .alliance-hub-pool-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  width: 100%;
  min-width: 0;
}
.alliance-hub-module .alliance-hub-donate-input {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
}
.alliance-hub-module .alliance-hub-tab-bar {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--gc-border, #334);
  background: var(--gc-bg-inset, #111);
}
.alliance-hub-module button.alliance-hub-tab {
  appearance: none;
  -webkit-appearance: none;
  flex: 1;
  min-width: 0;
  padding: 10px 8px;
  border: none;
  border-right: 1px solid var(--gc-border-subtle, #222);
  border-bottom: 2px solid transparent;
  border-radius: 0;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font: inherit;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.65;
  transition: opacity 0.15s, border-color 0.15s;
}
.alliance-hub-module .alliance-hub-project-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
}
.alliance-hub-module .alliance-hub-project-card {
  min-width: 0;
}
.alliance-hub-module .alliance-hub-project-card .alliance-hub-project-effect-grid {
  grid-template-columns: minmax(0, 1fr);
}
.alliance-hub-module .alliance-hub-grid-section {
  grid-column: 1 / -1;
  margin-top: 4px;
}
.alliance-hub-module .alliance-hub-grid-section:first-child {
  margin-top: 0;
}
.alliance-hub-module .alliance-hub-project-card,
.alliance-hub-module .alliance-hub-member-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  min-width: 0;
  padding: 10px;
  border: 1px solid var(--gc-border-subtle, #222);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.12);
}
.alliance-hub-module .alliance-hub-member-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
  gap: 10px;
  margin: 0;
  padding: 0;
}
.alliance-hub-module .alliance-hub-tabs {
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.alliance-hub-module .alliance-hub-tab-panel {
  overflow-x: hidden;
}

.alliance-hub-dip-badge {
  margin-left: auto;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 2px 6px;
  border: 1px solid var(--gc-border, #334);
  border-radius: var(--gc-radius-sm, 2px);
}
.alliance-hub-dip-badge--alliance { border-color: #7fd4a0; color: #7fd4a0; }
.alliance-hub-dip-badge--nap { border-color: var(--gc-accent, #6ec8ff); color: var(--gc-accent, #6ec8ff); }
.alliance-hub-dip-badge--war { border-color: #ff7a7a; color: #ff7a7a; }
.alliance-hub-dip-badge--neutral { opacity: 0.7; }
.alliance-hub-dip-intro {
  margin: 0 0 10px;
  font-size: 0.82rem;
  opacity: 0.8;
}
.alliance-hub-coming-soon {
  padding: 12px;
  border: 1px solid var(--gc-border-subtle, #222);
  background: rgba(0, 0, 0, 0.15);
  border-radius: var(--gc-radius-sm, 2px);
}
.alliance-hub-coming-soon-note {
  margin: 6px 0 0;
  font-size: 0.8rem;
  opacity: 0.7;
}

.alliance-hub-manage-modal {
  border: none;
  padding: 0;
  background: transparent;
  max-width: min(560px, calc(100vw - 24px));
  width: 100%;
  color: inherit;
}
.alliance-hub-manage-modal::backdrop {
  background: rgba(4, 8, 18, 0.72);
}
.alliance-hub-manage-modal[hidden] { display: none !important; }
.alliance-hub-manage-panel {
  width: 100%;
  max-height: min(90vh, 820px);
  overflow: auto;
  border: 1px solid var(--gc-border, #334);
  border-radius: var(--gc-radius-sm, 2px);
  background: var(--gc-surface-1, #101620);
  box-shadow: 0 0 32px rgba(110, 200, 255, 0.1);
}
.alliance-hub-manage-panel .gc-modal-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 12px 14px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-manage-panel .gc-modal-title {
  margin: 0;
  font-size: 0.95rem;
}
.alliance-hub-manage-body {
  padding: 14px;
}
.alliance-hub-manage-body .alliance-hub-leave-wrap {
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid var(--gc-border-subtle, #222);
  justify-content: flex-start;
}

.alliance-hub-bonus-section {
  padding: 10px 16px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
}

.alliance-hub-project-duration {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 8px;
  font-size: 0.72rem;
  opacity: 0.85;
}
.alliance-hub-project-duration-label {
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.7;
}

.alliance-hub-command {
  padding: 14px 16px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
  background: linear-gradient(180deg, rgba(110, 200, 255, 0.04) 0%, transparent 100%);
}
.alliance-hub-command-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 12px;
  flex-wrap: wrap;
}
.alliance-hub-identity-block {
  display: flex;
  align-items: center;
  gap: 12px;
  min-width: 0;
}
.alliance-hub-logo-frame {
  flex-shrink: 0;
  overflow: hidden;
  border: 1px solid var(--gc-border, #334);
  background: var(--gc-bg-inset, #111);
  border-radius: var(--gc-radius-sm, 2px);
}
.alliance-hub-logo-frame--sm { width: 32px; height: 32px; }
.alliance-hub-logo-frame--md { width: 40px; height: 40px; }
.alliance-hub-logo-frame--lg { width: 56px; height: 56px; }
.alliance-hub-logo-frame--hero {
  /* Emblem frame: solid plate, image edge-to-edge (no scanline/gradient peek) */
  width: 8.5rem;
  height: 8.5rem;
  max-width: 8.5rem;
  max-height: 8.5rem;
  min-height: 0;
  padding: 0;
  border: 1px solid rgba(110, 200, 255, 0.42);
  border-radius: var(--gc-radius-sm, 2px);
  background: #0a1018;
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.55) inset,
    0 0 16px rgba(110, 200, 255, 0.1);
  position: relative;
  isolation: isolate;
  z-index: 1;
}
.alliance-hub-logo-frame--hero .alliance-hub-logo {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
  position: relative;
  z-index: 1;
}
.alliance-hub-logo-frame--hero .alliance-hub-logo-ph {
  width: 100%;
  height: 100%;
  font-size: 1.45rem;
  position: relative;
  z-index: 1;
}
.alliance-hub-logo {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.alliance-hub-logo-ph {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  height: 100%;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: var(--gc-accent, #6ec8ff);
  text-transform: uppercase;
}
.alliance-hub-logo-upload {
  margin-top: 12px;
  padding-top: 10px;
  border-top: 1px solid var(--gc-border-subtle, #222);
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.alliance-hub-logo-upload-label {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.alliance-hub-logo-upload-hint {
  font-size: 0.68rem;
  opacity: 0.55;
}
.alliance-hub-identity {
  display: flex;
  align-items: baseline;
  gap: 8px;
  min-width: 0;
}
.alliance-hub-tag {
  font-weight: 700;
  color: var(--gc-accent, #6ec8ff);
  font-size: 0.85rem;
  letter-spacing: 0.02em;
  flex-shrink: 0;
}
.alliance-hub-name {
  font-size: 1.05rem;
  font-weight: 600;
  line-height: 1.2;
}
.alliance-hub-chip-row {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: flex-end;
}
.alliance-hub-chip {
  font-size: 0.68rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  padding: 2px 6px;
  border: 1px solid var(--gc-border, #334);
  border-radius: var(--gc-radius-sm, 2px);
  line-height: 1.4;
}
.alliance-hub-chip--level {
  border-color: var(--gc-accent, #6ec8ff);
  color: var(--gc-accent, #6ec8ff);
}
.alliance-hub-chip--members { opacity: 0.9; }
.alliance-hub-chip--recruit-open { border-color: var(--gc-accent, #6ec8ff); color: var(--gc-accent, #6ec8ff); }
.alliance-hub-chip--recruit-application { opacity: 0.85; }
.alliance-hub-chip--recruit-closed { opacity: 0.55; }

.alliance-hub-xp { margin-top: 10px; }
.alliance-hub-xp-head {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 8px;
  margin-bottom: 4px;
}
.alliance-hub-xp-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.65;
}
.alliance-hub-xp-val { font-size: 0.75rem; opacity: 0.85; }
.alliance-hub-xp-bar-wrap {
  height: 5px;
  background: var(--gc-bg-inset, #111);
  border: 1px solid var(--gc-border, #334);
}
.alliance-hub-xp-bar {
  height: 100%;
  background: var(--gc-accent, #6ec8ff);
  transition: width 0.3s linear;
}

.alliance-hub-bonus-grid {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.alliance-hub-bonus-tile {
  display: flex;
  flex-direction: column;
  gap: 1px;
  padding: 5px 8px;
  border: 1px solid var(--gc-border-subtle, #222);
  border-radius: var(--gc-radius-sm, 2px);
  min-width: 88px;
}
.alliance-hub-bonus-pct {
  font-size: 0.8rem;
  color: var(--gc-accent, #6ec8ff);
  font-weight: 600;
}
.alliance-hub-bonus-name {
  font-size: 0.65rem;
  opacity: 0.75;
  line-height: 1.2;
}

.alliance-hub-pool {
  padding: 12px 16px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-section-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
  margin-bottom: 10px;
}
.alliance-hub-section-title {
  font-size: 0.78rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  font-weight: 600;
}
.alliance-hub-section-sub {
  font-size: 0.72rem;
  opacity: 0.6;
}
.alliance-hub-pool-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(11.5rem, 1fr));
  gap: 8px;
}
.alliance-hub-pool-tile {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--gc-border, #334);
  border-radius: var(--gc-radius-sm, 2px);
  background: var(--gc-bg-inset, #111);
  min-width: 0;
  overflow: hidden;
}
.alliance-hub-pool-tile-head {
  display: flex;
  align-items: center;
  gap: 8px;
}
.alliance-hub-pool-icon img,
.alliance-hub-pool-icon .gc-res-icon {
  width: 28px;
  height: 28px;
}
.alliance-hub-pool-labels {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.alliance-hub-pool-name {
  font-size: 0.72rem;
  font-weight: 600;
  line-height: 1.2;
}
.alliance-hub-pool-stock {
  font-size: 0.75rem;
  opacity: 0.85;
}
.alliance-hub-pool-sep { opacity: 0.45; margin: 0 2px; }
.alliance-hub-pool-cap-bar {
  height: 4px;
  background: rgba(0, 0, 0, 0.35);
  border: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-pool-cap-fill {
  height: 100%;
  background: var(--gc-accent, #6ec8ff);
  opacity: 0.75;
  transition: width 0.3s linear;
}
.alliance-hub-pool-tile--metal .alliance-hub-pool-cap-fill { background: #c9a227; opacity: 0.85; }
.alliance-hub-pool-tile--crystal .alliance-hub-pool-cap-fill { background: #6ec8ff; }
.alliance-hub-pool-tile--fuel_cells .alliance-hub-pool-cap-fill { background: #7fd4a0; }
.alliance-hub-pool-actions {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 6px;
  width: 100%;
  min-width: 0;
}
.alliance-hub-donate-input {
  width: 100%;
  min-width: 0;
  max-width: 100%;
  box-sizing: border-box;
  font-size: 0.8rem;
}

.alliance-hub-project-active {
  padding: 12px 16px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-project-progress {
  height: 6px;
  border: 1px solid var(--gc-border, #334);
  background: var(--gc-bg-inset, #111);
}
.alliance-hub-project-progress-fill {
  height: 100%;
  background: var(--gc-accent, #6ec8ff);
  width: 0;
  transition: width 0.5s linear;
}
.alliance-hub-project-eta {
  font-size: 0.75rem;
  margin-top: 6px;
  opacity: 0.8;
}

.alliance-hub-tabs {
  display: flex;
  flex-direction: column;
}
.alliance-hub-tab-bar {
  display: flex;
  gap: 0;
  border-bottom: 1px solid var(--gc-border, #334);
  background: var(--gc-bg-inset, #111);
}
.alliance-hub-tab {
  flex: 1;
  min-width: 0;
  padding: 10px 8px;
  border: none;
  border-right: 1px solid var(--gc-border-subtle, #222);
  border-bottom: 2px solid transparent;
  background: transparent;
  color: inherit;
  cursor: pointer;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.65;
  transition: opacity 0.15s, border-color 0.15s;
}
.alliance-hub-tab:last-child { border-right: none; }
.alliance-hub-tab:hover { opacity: 0.9; }
.alliance-hub-tab.is-active {
  opacity: 1;
  border-bottom-color: var(--gc-accent, #6ec8ff);
  background: rgba(110, 200, 255, 0.04);
}
.alliance-hub-tab-panel {
  padding: 14px 16px;
}
.alliance-hub-tab-panel[hidden] { display: none !important; }

.alliance-hub-desc-block { margin-bottom: 12px; }
.alliance-hub-desc-label {
  display: block;
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.65;
  margin-bottom: 6px;
}
.alliance-hub-desc-form textarea { width: 100%; min-height: 72px; }
.alliance-hub-desc-actions { margin-top: 6px; display: flex; justify-content: flex-end; }
.alliance-hub-desc-readonly { margin-bottom: 12px; }
.alliance-hub-desc-text {
  margin: 4px 0 0;
  font-size: 0.85rem;
  opacity: 0.9;
  line-height: 1.45;
}

.alliance-hub-member-grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 6px;
}
.alliance-hub-member-card {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 8px 10px;
  border: 1px solid var(--gc-border-subtle, #222);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.15);
}
.alliance-hub-member-main {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
.alliance-hub-member-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
  margin-top: 2px;
}
.alliance-hub-recruitment-control {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  margin-top: 8px;
  padding-top: 8px;
  border-top: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-recruitment-label {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.75;
}
.alliance-hub-recruitment-modes {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}
.alliance-hub-profile-settings {
  margin-bottom: 12px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-profile-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
  gap: 8px;
  margin-bottom: 8px;
}
.alliance-hub-profile-actions {
  margin-top: 8px;
}
.alliance-hub-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  font-size: 0.78rem;
}
.alliance-hub-leave-wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 12px;
}
.alliance-hub-member-name { font-size: 0.85rem; }
.alliance-hub-role-badge {
  align-self: flex-start;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  padding: 1px 5px;
  border: 1px solid var(--gc-border, #334);
  border-radius: var(--gc-radius-sm, 2px);
  opacity: 0.8;
}
.alliance-hub-role-badge--leader { border-color: var(--gc-accent, #6ec8ff); color: var(--gc-accent, #6ec8ff); }
.alliance-hub-role-badge--officer { opacity: 0.9; }

.alliance-hub-subhead {
  margin: 14px 0 8px;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  opacity: 0.7;
}
.alliance-hub-applications { margin-top: 4px; }
.alliance-hub-application-row {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-application-main { flex: 1; min-width: 0; }
.alliance-hub-application-msg {
  margin: 4px 0 0;
  padding: 6px 8px;
  border-left: 2px solid var(--gc-border, #334);
  font-size: 0.82rem;
  opacity: 0.85;
}
.alliance-hub-application-actions {
  display: flex;
  gap: 4px;
  flex-shrink: 0;
}

.alliance-hub-leave-wrap {
  margin-top: 16px;
  padding-top: 12px;
  border-top: 1px solid var(--gc-border-subtle, #222);
  display: flex;
  justify-content: flex-end;
}

.alliance-hub-project-grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 8px;
}
.alliance-hub-project-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 10px;
  border: 1px solid var(--gc-border-subtle, #222);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.12);
}
.alliance-hub-project-card-head {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 6px 8px;
}
.alliance-hub-project-name { font-size: 0.82rem; font-weight: 600; }
.alliance-hub-project-level { font-size: 0.72rem; opacity: 0.7; }
.alliance-hub-project-costs {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.alliance-hub-diplomacy-form {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-bottom: 10px;
}
.alliance-hub-diplomacy-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.alliance-hub-diplomacy-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
  font-size: 0.85rem;
}
.alliance-hub-dip-relation {
  margin-left: auto;
  font-size: 0.68rem;
  text-transform: uppercase;
  opacity: 0.7;
}
.alliance-hub-dip-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 6px 0;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
}

.alliance-hub-empty {
  font-size: 0.82rem;
  opacity: 0.6;
  padding: 8px 0;
}

.alliance-hub-donations-log {
  padding: 12px 16px;
  border-top: 1px solid var(--gc-border-subtle, #222);
  background: rgba(0, 0, 0, 0.12);
}
.alliance-hub-donation-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.alliance-hub-donation-row {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 4px 0;
  font-size: 0.82rem;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
}
.alliance-hub-donation-amount { margin-left: auto; }
.alliance-hub-donation-res {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  opacity: 0.9;
}
.alliance-hub-donation-res-name {
  font-size: 0.85em;
  letter-spacing: 0.02em;
}

/* Guest / browse */
.alliance-hub-guest {
  display: flex;
  flex-direction: column;
  gap: var(--gc-gap-md, 12px);
}
.alliance-hub-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--gc-gap-md, 12px);
}
.alliance-hub-field {
  display: flex;
  flex-direction: column;
  gap: 4px;
  margin-bottom: 8px;
}
.alliance-hub-directory {
  margin-top: 0;
}
.alliance-hub-directory-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(280px, 0.9fr);
  gap: var(--gc-gap-md, 12px);
  align-items: start;
}
.alliance-hub-browse-grid {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 8px;
}
.alliance-hub-browse-card {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  width: 100%;
  padding: 10px;
  text-align: left;
  background: var(--gc-surface-2, #141820);
  border: 1px solid var(--gc-border-subtle, #222);
  border-radius: var(--gc-radius-sm, 2px);
  cursor: pointer;
  color: inherit;
  font: inherit;
  text-decoration: none;
}
a.alliance-hub-browse-card:hover,
.alliance-hub-browse-card:hover,
.alliance-hub-browse-card.is-active {
  border-color: var(--gc-accent, #6ec8ff);
}
.alliance-hub-browse-card-head {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.alliance-hub-browse-card-titles {
  display: flex;
  flex-direction: column;
  gap: 2px;
  min-width: 0;
}
.alliance-hub-browse-card-stats {
  font-size: 0.72rem;
  opacity: 0.75;
}
.alliance-hub-detail {
  padding: 12px;
  border: 1px solid var(--gc-border-subtle, #222);
  background: var(--gc-surface-2, #141820);
  border-radius: var(--gc-radius-sm, 2px);
  min-height: 200px;
}
.alliance-hub-detail-empty,
.alliance-hub-detail-loading,
.alliance-hub-detail-error,
.alliance-hub-detail-pending,
.alliance-hub-detail-closed {
  font-size: 0.85rem;
  opacity: 0.85;
  margin: 0;
}
.alliance-hub-detail-head {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-bottom: 10px;
}
.alliance-hub-detail-identity {
  display: flex;
  flex-direction: column;
  gap: 4px;
  min-width: 0;
}
.alliance-hub-detail-desc {
  margin: 0 0 10px;
  font-size: 0.85rem;
  opacity: 0.9;
  white-space: pre-wrap;
}
.alliance-hub-detail-bonus {
  margin: 10px 0;
}
.alliance-hub-detail-members {
  margin-top: 12px;
}
.alliance-hub-detail-member-list {
  list-style: none;
  padding: 0;
  margin: 0;
  max-height: 220px;
  overflow-y: auto;
}
.alliance-hub-detail-member {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto auto;
  gap: 8px;
  align-items: center;
  padding: 6px 0;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
  font-size: 0.82rem;
}
.alliance-hub-detail-member-name {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.alliance-hub-detail-member-role {
  font-size: 0.72rem;
  opacity: 0.7;
  text-transform: uppercase;
}
.alliance-hub-detail-member-pts {
  font-size: 0.75rem;
  opacity: 0.85;
}
.alliance-hub-detail-apply {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.alliance-hub-detail-actions {
  margin-top: 12px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.alliance-hub-empty {
  font-size: 0.85rem;
  opacity: 0.75;
  margin: 0;
}
.alliance-hub-browse-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.alliance-hub-browse-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 0;
  border-bottom: 1px solid var(--gc-border-subtle, #222);
  flex-wrap: wrap;
}
.alliance-hub-meta { font-size: 0.75rem; opacity: 0.7; }
.alliance-hub-recruit-badge {
  font-size: 0.62rem;
  text-transform: uppercase;
  padding: 1px 5px;
  border: 1px solid var(--gc-border, #334);
  border-radius: var(--gc-radius-sm, 2px);
}
.alliance-hub-recruit-badge--open { border-color: var(--gc-accent, #6ec8ff); color: var(--gc-accent, #6ec8ff); }
.alliance-hub-recruit-badge--application { opacity: 0.85; }
.alliance-hub-recruit-badge--closed { opacity: 0.55; }
.alliance-hub-apply-inline {
  flex: 1 1 100%;
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-top: 4px;
}
.alliance-hub-pending-target { margin: 0 0 8px; }
.alliance-hub-pending-message {
  margin: 4px 0 8px;
  padding: 6px 8px;
  border-left: 2px solid var(--gc-border, #334);
  font-size: 0.85rem;
}
.alliance-hub-browse-only { grid-column: 1 / -1; }

@media (max-width: 768px) {
  .alliance-hub-grid,
  .alliance-hub-pool-grid {
    grid-template-columns: minmax(0, 1fr);
  }
  .alliance-hub-directory-layout {
    grid-template-columns: minmax(0, 1fr);
  }
  .alliance-hub-tab {
    font-size: 0.65rem;
    padding: 8px 4px;
  }
  .alliance-hub-hero-top {
    flex-direction: row;
    align-items: flex-start;
    gap: 10px;
  }
  .alliance-hub-hero-logo-row .alliance-hub-logo-frame--hero {
    width: 6.5rem;
    height: 6.5rem;
    max-width: 6.5rem;
    max-height: 6.5rem;
  }
  .alliance-hub-hero-main {
    flex-direction: column;
    align-items: stretch;
  }
  .alliance-hub-hero-actions {
    align-self: stretch;
    justify-content: flex-start;
  }
  .alliance-hub-hero-action {
    flex: 1 1 auto;
    min-width: 0;
  }
  .alliance-hub-visitor-hero {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .alliance-hub-member-table--roster th:nth-child(5),
  .alliance-hub-member-table--roster td:nth-child(5),
  .alliance-hub-member-table--roster th:nth-child(6),
  .alliance-hub-member-table--roster td:nth-child(6),
  .alliance-hub-member-table--roster th:nth-child(7),
  .alliance-hub-member-table--roster td:nth-child(7) {
    display: none;
  }
  .alliance-hub-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .alliance-hub-project-effect-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 480px) {
  .alliance-hub-stats {
    grid-template-columns: minmax(0, 1fr);
  }
}

/* GC-TIMEKEEPER-001 + GC-UI Inventory/HUD polish */
.gc-header-cmd .hud-res-timekeeper{
  --hud-res-accent: rgba(62, 200, 208, 0.92);
  --hud-res-glow: rgba(62, 200, 208, 0.28);
  --hud-res-bg: rgba(62, 200, 208, 0.07);
}
.gc-queue-timekeeper-btn{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 1.05rem;
  height: 1.05rem;
  padding: 0;
  margin: 0;
  border: 1px solid rgba(70, 229, 255, 0.28);
  border-radius: var(--gc-radius-sm);
  background: rgba(8, 20, 36, 0.55);
  color: rgba(140, 230, 255, 0.92);
  font-size: 0.72rem;
  line-height: 1;
  cursor: pointer;
  flex-shrink: 0;
  pointer-events: auto;
  opacity: 0.88;
  transition: opacity 0.12s ease, border-color 0.12s ease, background 0.12s ease;
}

.gc-queue-timekeeper-btn:hover,
.gc-queue-timekeeper-btn:focus-visible{
  opacity: 1;
  border-color: rgba(70, 229, 255, 0.52);
  background: rgba(70, 229, 255, 0.12);
  color: rgba(180, 245, 255, 0.98);
}

.gc-queue-timekeeper-btn:disabled,
.gc-queue-timekeeper-btn[hidden]{
  display: none !important;
}

/* GC-INSTANT-UX-001B: keep TK button visible while action is in-flight. */
.gc-queue-timekeeper-btn:disabled.is-busy,
.gc-queue-timekeeper-btn:disabled.is-loading,
.gc-queue-timekeeper-btn.is-busy,
.gc-queue-timekeeper-btn.is-loading{
  display: inline-flex !important;
  opacity: 0.55;
  cursor: default;
  border-color: rgba(70, 229, 255, 0.38);
  color: rgba(180, 245, 255, 0.88);
}

.gc-mini-queue-card .gc-queue-timekeeper-btn{
  grid-column: 3;
  grid-row: 1;
  align-self: start;
  justify-self: end;
}

.gc-bld-hero-queue-cancel + .gc-queue-timekeeper-btn,
.gc-bld-hero-queue .gc-queue-timekeeper-btn{
  display: none !important;
}

@media (max-width: 1600px){
  .gc-header-cmd .resource-bar.resource-bar-cmd{
    gap: 6px;
  }
  .gc-header-cmd .hud-res-panel{
    padding: 5px 6px 5px 8px;
    min-height: 3.05rem;
  }
  .gc-header-cmd .hud-res-body .res-icon--hud{
    width: 38px;
    height: 38px;
  }
  .gc-header-cmd .hud-res-body .res-value,
  .gc-header-cmd .hud-res-body .res-value.energy,
  .hud-res-timekeeper .res-value.timekeeper{
    font-size: clamp(0.82rem, 0.78rem + 0.2vw, 0.96rem);
  }
  .gc-header-cmd .hud-cap-bar{
    height: 6px;
  }
  .gc-header-cmd .res-rate{
    font-size: 0.58rem;
  }
}

@media (max-width: 1280px){
  .gc-header-cmd .resource-bar.resource-bar-cmd{
    gap: 5px;
  }
  .gc-header-cmd .hud-res-panel{
    padding: 4px 5px 4px 7px;
    min-height: 2.9rem;
  }
  .gc-header-cmd .hud-res-body .res-icon--hud{
    width: 34px;
    height: 34px;
  }
  .gc-header-cmd .hud-res-name{
    font-size: 0.54rem;
  }
  .gc-header-cmd .hud-res-body .res-value,
  .gc-header-cmd .hud-res-body .res-value.energy,
  .hud-res-timekeeper .res-value.timekeeper{
    font-size: 0.8rem;
  }
  .gc-header-cmd .hud-res-body .res-cap,
  .gc-header-cmd .hud-res-cap-line .res-sep{
    font-size: 0.58rem;
  }
}

/* GC-MOBILE-RESCUE ? global small-screen usability pass.
   Keep the command shell inside the viewport and turn dense desktop HUD rows
   into touch-sized, scroll-safe mobile surfaces. */
@media (max-width: 768px){
  html,
  body{
    width: 100%;
    max-width: 100%;
    overflow-x: clip;
  }

  .gc-app-shell,
  .gc-layout,
  .gc-layout--dual,
  .gc-main,
  #main-content{
    width: 100%;
    max-width: 100%;
    min-width: 0;
  }

  .gc-layout,
  .gc-layout--dual{
    display: block;
    padding: 10px max(10px, var(--gc-safe-right)) 14px max(10px, var(--gc-safe-left));
  }

  .gc-main > *,
  .gc-page,
  .gc-panel,
  .gc-content-panel{
    max-width: 100%;
    min-width: 0;
  }

  .gc-header-cmd{
    position: sticky;
    top: 0;
    padding-top: var(--gc-safe-top);
  }

  .gc-header-cmd .gc-header-inner{
    width: 100%;
    max-width: 100%;
    padding: 8px max(8px, var(--gc-safe-right)) 8px max(8px, var(--gc-safe-left));
  }

  .gc-header-cmd .gc-header-row,
  .gc-header-cmd .gc-header-row-top,
  .gc-header-cmd .gc-header-row-resources{
    width: 100%;
    max-width: 100%;
  }

  .gc-header-cmd .gc-header-row-top{
    align-items: center;
    gap: 6px;
  }

  .gc-header-cmd .gc-hslot-brand{
    order: 1;
    flex: 1 1 auto;
  }

  .gc-header-cmd .gc-hslot-lang{
    order: 2;
    margin-left: auto;
  }

  .gc-header-cmd .gc-hud-user{
    order: 3;
    flex: 1 1 100%;
    width: 100%;
  }

  .gc-header-cmd .gc-header-meta{
    order: 4;
    display: flex;
    flex-wrap: nowrap;
    align-items: center;
    gap: 6px;
    width: 100%;
    flex: 1 1 100%;
  }

  .gc-header-cmd .gc-header-fleets-toggle,
  .gc-header-cmd .gc-header-planets-toggle{
    display: inline-flex;
  }

  .gc-header-cmd .gc-header-planets-toggle{
    margin-left: auto;
  }

  /* Collapsed fleet HUD stays off the phone layout; sheet portal shows it. */
  .gc-resource-sticky > .gc-fleet-drawer-root:not(.is-show-all),
  .gc-resource-sticky > .gc-fleet-hud-root:not(.is-show-all){
    display: none !important;
  }

  .gc-header-cmd .gc-logo{
    max-width: 100%;
    min-width: 0;
    padding: 6px 8px;
  }

  .gc-header-cmd .gc-title{
    max-width: 13rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    letter-spacing: 0.03em;
  }

  .gc-header-cmd .gc-header-meta,
  .gc-header-cmd .gc-hud-user{
    min-width: 0;
    max-width: 100%;
  }

  .gc-header-cmd .gc-hud-user{
    flex-wrap: nowrap;
    align-items: stretch;
  }

  .gc-header-cmd .gc-hud-panel-user{
    flex: 1 1 auto;
    max-width: none;
  }

  .gc-header-cmd .gc-hud-user .logout-btn{
    flex: 0 0 auto;
    min-height: 38px;
  }

  .gc-header-cmd .gc-hud-panel{
    min-width: 0;
  }

  .gc-header-row-resources .gc-resource-sticky{
    overflow: visible;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd,
  .gc-header-cmd .resource-bar.resource-bar-cmd:not(.resource-bar-with-planet-limit),
  .gc-header-cmd .resource-bar.resource-bar-cmd.resource-bar-with-planet-limit{
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    grid-auto-rows: minmax(36px, auto);
    gap: 5px;
    width: 100%;
    max-width: 100%;
    overflow: visible;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd .hud-res-panel,
  .gc-header-cmd .resource-bar.resource-bar-cmd:not(.resource-bar-with-planet-limit) .hud-res-panel,
  .gc-header-cmd .resource-bar.resource-bar-cmd.resource-bar-with-planet-limit .hud-res-panel{
    grid-column: auto;
    grid-row: auto;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd .hud-res-energy,
  .gc-header-cmd .resource-bar.resource-bar-cmd:not(.resource-bar-with-planet-limit) .hud-res-energy,
  .gc-header-cmd .resource-bar.resource-bar-cmd.resource-bar-with-planet-limit .hud-res-energy{
    grid-column: 2 / span 2;
  }

  .gc-header-cmd .hud-res-panel{
    min-height: 36px;
    padding: 4px 5px 4px 6px;
    overflow: hidden;
  }

  .gc-header-cmd .hud-res-body{
    gap: 4px;
    padding-left: 0;
  }

  .gc-header-cmd .hud-res-body .res-icon--hud{
    width: 22px;
    height: 22px;
  }

  .gc-header-cmd .hud-res-name,
  .gc-header-cmd .res-rate,
  .gc-header-cmd .res-boost-chip{
    font-size: 0.5rem;
    letter-spacing: 0.04em;
  }

  .gc-header-cmd .hud-res-body .res-value,
  .gc-header-cmd .hud-res-body .res-value.energy,
  .hud-res-timekeeper .res-value.timekeeper{
    min-width: 0;
    font-size: 0.7rem;
  }

  .gc-header-cmd .hud-res-capacity,
  .gc-header-cmd .hud-res-cap-line,
  .gc-header-cmd .hud-res-footer{
    display: none !important;
  }

  .gc-header-cmd .hud-res-body .res-cap,
  .gc-header-cmd .hud-res-cap-line .res-sep{
    font-size: 0.52rem;
  }

  .gc-header-cmd .hud-cap-bar{
    height: 4px;
    gap: 1px;
    padding: 0;
  }

  .gc-header-cmd .hud-res-footer{
    min-height: 0;
    overflow: hidden;
  }

  .gc-header-queues-body,
  .gc-global-queue-hud-body{
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 6px;
  }

  .gc-global-queue-hud-item,
  .gc-header-queues-body .gc-fleet-global-hud{
    min-width: 0;
  }

  .gc-fleet-hud-list,
  .gc-fleet-drawer-list{
    max-height: min(28vh, 160px);
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd > .gc-fleet-drawer-root,
  .gc-header-cmd .resource-bar.resource-bar-cmd > .gc-fleet-hud-root{
    grid-column: 1 / -1;
    width: 100%;
  }

  .gc-header-row-resources .gc-resource-sticky,
  .gc-header-cmd .gc-header-row-resources{
    overflow: visible;
  }

  .gc-fleet-drawer-root:not(.is-show-all) .gc-fleet-drawer-more,
  .gc-fleet-hud-root:not(.is-show-all) .gc-fleet-drawer-more{
    min-height: var(--gc-touch-min);
    padding: 8px 10px;
    text-align: center;
  }

  .gc-fleet-drawer-root.is-show-all,
  .gc-fleet-hud-root.is-show-all{
    position: fixed;
    left: max(8px, var(--gc-safe-left));
    right: max(8px, var(--gc-safe-right));
    top: max(var(--gc-fleet-sheet-top, 96px), var(--gc-safe-top));
    bottom: calc(var(--gc-bottom-nav-h) + var(--gc-safe-bottom) + 8px);
    width: auto;
    min-height: min(36vh, 280px);
    margin: 0;
    z-index: calc(var(--gc-z-popover, 80) + 1);
    display: flex;
    flex-direction: column;
    border: 1px solid var(--gc-panel-border);
    border-radius: var(--gc-radius-sm);
    background: rgba(6, 12, 26, 0.98);
    box-shadow: var(--gc-shadow-hard);
    overflow: hidden;
  }

  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal,
  .gc-fleet-hud-root.is-show-all.gc-fleet-sheet-portal{
    z-index: calc(var(--gc-z-popover, 80) + 1);
  }

  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal::before,
  .gc-fleet-hud-root.is-show-all.gc-fleet-sheet-portal::before{
    content: attr(aria-label);
    flex: 0 0 auto;
    padding: 10px 12px 8px;
    border-bottom: 1px solid rgba(120, 190, 255, 0.14);
    font-size: 0.68rem;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--gc-primary-2);
  }

  .gc-fleet-drawer-root.is-show-all .gc-fleet-drawer-panel,
  .gc-fleet-hud-root.is-show-all .gc-fleet-drawer-panel{
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0;
    overflow: hidden;
    padding: 8px 10px 0;
  }

  .gc-fleet-drawer-root.is-show-all .gc-fleet-drawer-list,
  .gc-fleet-hud-root.is-show-all .gc-fleet-drawer-list{
    flex: 1 1 auto;
    min-height: 0;
    max-height: none !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    display: flex;
    flex-direction: column;
    gap: 6px;
    padding: 4px 0 8px;
  }

  /* Sheet rows must not collapse — each fleet is its own readable card line. */
  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-drawer-row,
  .gc-fleet-hud-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-hud-row,
  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-hud-row{
    display: flex !important;
    flex-direction: column;
    flex: 0 0 auto !important;
    position: relative;
    height: auto !important;
    min-height: 3.4rem;
    padding: 8px 6px;
    gap: 4px;
    grid-template-columns: unset;
    border-bottom: 1px solid rgba(120, 190, 255, 0.12);
    background: rgba(4, 10, 20, 0.35);
  }

  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-hud-main{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    min-width: 0;
    width: 100%;
  }

  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-hud-track{
    display: none !important;
  }

  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-hud-meta{
    display: flex !important;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 4px 8px;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-hud-route,
  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-drawer-row-route{
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    word-break: break-word;
  }

  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-drawer-row-detail,
  .gc-fleet-hud-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-drawer-row-detail{
    flex: 0 0 auto;
    width: 100%;
    max-width: 100%;
    margin-top: 4px;
    pointer-events: auto;
  }

  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-drawer-row.is-detail-open,
  .gc-fleet-hud-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-hud-row.is-detail-open,
  .gc-fleet-drawer-root.is-show-all.gc-fleet-sheet-portal .gc-fleet-hud-row.is-detail-open{
    min-height: 0;
    gap: 6px;
  }

  .gc-fleet-drawer-root.is-show-all .gc-fleet-drawer-more,
  .gc-fleet-hud-root.is-show-all .gc-fleet-drawer-more{
    flex: 0 0 auto;
    min-height: var(--gc-touch-min);
    margin: 0;
    padding: 10px 12px;
    border-top: 1px solid rgba(120, 190, 255, 0.16);
    background: rgba(4, 8, 18, 0.96);
    text-align: center;
    font-weight: 700;
    color: var(--gc-primary-2);
  }

  body.gc-fleet-sheet-open{
    overflow: hidden;
  }

  /* Bottom nav must stay above the sheet backdrop (popover z ? 12k). */
  body.gc-fleet-sheet-open .gc-bottom-nav{
    z-index: calc(var(--gc-z-popover, 12050) + 5);
  }

  .gc-fleet-sheet-backdrop{
    position: fixed;
    inset: 0;
    /* Leave bottom nav clickable (Kommando / Nachrichten) while sheet is open. */
    bottom: calc(var(--gc-bottom-nav-h, 64px) + var(--gc-safe-bottom, 0px));
    z-index: calc(var(--gc-z-popover, 80) - 2);
    border: none;
    padding: 0;
    margin: 0;
    background: rgba(2, 6, 14, 0.62);
    cursor: default;
  }

  .gc-fleet-sheet-backdrop[hidden]{
    display: none !important;
  }

  .gc-bottom-nav-item[hidden]{
    display: none !important;
  }

  .gc-bottom-nav{
    overflow-x: hidden;
    justify-content: space-around;
  }

  .gc-bottom-nav-item{
    flex: 1 1 0;
    min-width: 0;
    max-width: none;
    padding-inline: 2px;
  }

  .gc-bottom-nav-label{
    max-width: 100%;
    white-space: normal;
    line-height: 1.05;
    font-size: 0.5rem;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 2;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .gc-fleet-hud-row,
  .gc-fleet-drawer-row{
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    row-gap: 4px;
    min-width: 0;
    min-height: 0;
    padding: 6px 0;
  }

  .gc-fleet-hud-track{
    display: none;
  }

  .gc-fleet-hud-main{
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 2px;
    grid-template-columns: unset;
    min-width: 0;
  }

  .gc-fleet-hud-route,
  .gc-fleet-drawer-row-route{
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    word-break: break-word;
  }

  .gc-fleet-hud-meta{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 4px 8px;
    width: 100%;
    max-width: 100%;
    min-width: 0;
    grid-template-columns: unset;
  }

  .gc-fleet-drawer-root:not(.is-show-all) .gc-fleet-drawer-list,
  .gc-fleet-hud-root:not(.is-show-all) .gc-fleet-drawer-list{
    max-height: min(32vh, 180px);
  }

  .gc-nav-drawer-panel{
    top: max(0px, var(--gc-safe-top));
    bottom: calc(var(--gc-bottom-nav-h) + var(--gc-safe-bottom));
    width: min(92vw, 380px);
    max-height: none;
    padding-bottom: 0;
  }

  .gc-special-window{
    left: max(10px, var(--gc-safe-left));
    right: max(10px, var(--gc-safe-right));
    bottom: calc(var(--gc-bottom-nav-h) + var(--gc-safe-bottom) + 12px);
    width: auto;
    max-height: min(68dvh, 620px);
  }
}

@media (max-width: 360px){
  .gc-header-cmd .gc-title{
    max-width: 10.5rem;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd,
  .gc-header-cmd .resource-bar.resource-bar-cmd:not(.resource-bar-with-planet-limit),
  .gc-header-cmd .resource-bar.resource-bar-cmd.resource-bar-with-planet-limit{
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 4px;
  }

  .gc-header-cmd .resource-bar.resource-bar-cmd .hud-res-energy,
  .gc-header-cmd .resource-bar.resource-bar-cmd:not(.resource-bar-with-planet-limit) .hud-res-energy,
  .gc-header-cmd .resource-bar.resource-bar-cmd.resource-bar-with-planet-limit .hud-res-energy{
    grid-column: 1 / -1;
  }

  .gc-header-cmd .hud-res-panel{
    padding: 4px 4px 4px 6px;
  }

  .gc-header-cmd .hud-res-body .res-icon--hud{
    width: 22px;
    height: 22px;
  }

  .gc-header-cmd .hud-res-body .res-value,
  .gc-header-cmd .hud-res-body .res-value.energy,
  .hud-res-timekeeper .res-value.timekeeper{
    font-size: 0.68rem;
  }
}

/* EPIC-22 LiveOps Retention - Login Rewards + Battle Pass */
.login-rewards-page,
.battle-pass-page { width: 100%; }
.login-rewards-eyebrow,
.premium-eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8a93a3);
}
.login-rewards-status-row {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
  justify-content: space-between;
}
.login-rewards-status-block {
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
  min-width: 5rem;
}
.login-rewards-status-label,
.battle-pass-stat-label {
  font-size: 0.72rem;
  color: var(--gc-text-muted, #8a93a3);
  text-transform: uppercase;
  letter-spacing: 0.06em;
}
.login-rewards-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.login-rewards-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
  gap: 0.65rem;
}
.login-rewards-day {
  border: 1px solid var(--gc-border, #2a3344);
  background: var(--gc-panel-bg, rgba(0,0,0,0.25));
  border-radius: var(--gc-radius-sm, 2px);
  padding: 0.65rem;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  min-height: 9rem;
}
.login-rewards-day--claimable {
  border-color: var(--gc-accent, #5ec8ff);
  box-shadow: inset 0 0 0 1px rgba(94,200,255,0.25);
}
.login-rewards-day--claimed { opacity: 0.72; }
.login-rewards-day--locked { opacity: 0.55; }
.login-rewards-day--milestone {
  border-color: var(--gc-warn, #d4a017);
}
.login-rewards-day-head {
  display: flex;
  justify-content: space-between;
  gap: 0.35rem;
  align-items: baseline;
}
.login-rewards-day-badge {
  font-size: 0.65rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--gc-warn, #d4a017);
  border: 1px solid currentColor;
  padding: 0.05rem 0.3rem;
  border-radius: var(--gc-radius-sm, 2px);
}
.login-rewards-day-rewards {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  flex: 1;
}
.login-rewards-reward-item {
  display: grid;
  grid-template-columns: 1.1rem 1fr auto;
  gap: 0.35rem;
  align-items: center;
  font-size: 0.78rem;
}
.login-rewards-day-state {
  font-size: 0.72rem;
  color: var(--gc-text-muted, #8a93a3);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.battle-pass-command-panel { margin-bottom: 0.75rem; }
.battle-pass-command {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 17rem);
  gap: 0.65rem;
  align-items: stretch;
}
.battle-pass-command-panel--login-only .battle-pass-login-rail {
  width: 100%;
}
.battle-pass-hud {
  display: grid;
  grid-template-columns: minmax(5.5rem, 0.7fr) minmax(10rem, 1.6fr) minmax(7rem, 1fr) minmax(7rem, 1fr);
  gap: 0.45rem;
  min-width: 0;
}
.battle-pass-hud-tile {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.3rem;
  padding: 0.65rem 0.7rem;
  border: 1px solid rgba(94, 200, 255, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(8, 12, 20, 0.45);
  min-height: 4.25rem;
}
.battle-pass-hud-tile--xp {
  justify-content: space-between;
}
.battle-pass-hud-tile--track.is-premium {
  border-color: rgba(212, 160, 23, 0.55);
  box-shadow: inset 0 0 0 1px rgba(212, 160, 23, 0.15);
}
.battle-pass-hud-tile--track.is-premium .battle-pass-hud-value {
  color: rgba(212, 160, 23, 0.98);
}
.battle-pass-hud-value {
  font-size: 1.05rem;
  letter-spacing: 0.02em;
  line-height: 1.2;
}
.battle-pass-hud-xp-head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: center;
}
.battle-pass-hud-xp-icon {
  width: 1.35rem;
  height: 1.35rem;
  object-fit: contain;
  flex: 0 0 auto;
}
.battle-pass-hud-xp-head .battle-pass-stat-label {
  margin-right: auto;
}
.battle-pass-xp-bar {
  height: 0.5rem;
  background: rgba(255,255,255,0.08);
  border: 1px solid var(--gc-border, #2a3344);
  border-radius: var(--gc-radius-sm, 2px);
  overflow: hidden;
}
.battle-pass-xp-fill {
  display: block;
  height: 100%;
  background: var(--gc-accent, #5ec8ff);
}
.battle-pass-xp-text {
  font-size: 0.72rem;
  color: var(--gc-text-muted, #8a93a3);
}
.battle-pass-login-rail {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.65rem 0.7rem;
  border: 1px solid rgba(94, 200, 255, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  background: linear-gradient(180deg, rgba(12, 22, 36, 0.9), rgba(8, 12, 20, 0.55));
  min-height: 100%;
}
.battle-pass-login-rail.is-claimable {
  border-color: rgba(94, 200, 255, 0.65);
  box-shadow: inset 0 0 0 1px rgba(94, 200, 255, 0.2);
}
.battle-pass-login-rail-art {
  width: 2.2rem;
  height: 2.2rem;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(94, 200, 255, 0.2);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.35);
  font-size: 1.1rem;
}
.battle-pass-login-rail-title {
  font-size: 0.86rem;
  letter-spacing: 0.02em;
  display: block;
}
.battle-pass-login-rail-hint {
  margin: 0.15rem 0 0;
  font-size: 0.72rem;
}
.battle-pass-login-rail .gc-btn {
  margin-top: auto;
  align-self: stretch;
  text-align: center;
}
@media (max-width: 980px) {
  .battle-pass-command {
    grid-template-columns: 1fr;
  }
  .battle-pass-hud {
    grid-template-columns: 1fr 1fr;
  }
  .battle-pass-hud-tile--xp {
    grid-column: 1 / -1;
  }
  .battle-pass-login-rail {
    flex-direction: row;
    flex-wrap: wrap;
    align-items: center;
    min-height: 0;
  }
  .battle-pass-login-rail-body { flex: 1; min-width: 10rem; }
  .battle-pass-login-rail .gc-btn {
    margin-top: 0;
    align-self: center;
  }
}
@media (max-width: 560px) {
  .battle-pass-hud {
    grid-template-columns: 1fr;
  }
  .battle-pass-hud-tile--xp { grid-column: auto; }
}

/* Season Pass trackboard (horizontal Free/Premium cards + preview) */
.battle-pass-tracks-panel { margin-top: 0.25rem; }
.battle-pass-trackboard-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(14rem, 18rem);
  grid-template-areas:
    "board board"
    "meta preview"
    "meta preview";
  gap: 0.75rem 1rem;
  align-items: start;
}
.battle-pass-trackboard {
  grid-area: board;
  display: flex;
  align-items: stretch;
  gap: 0.45rem;
  min-width: 0;
}
.battle-pass-trackboard-stage {
  flex: 1;
  min-width: 0;
  display: flex;
  gap: 0.45rem;
  border: 1px solid var(--gc-border, #2a3344);
  background: rgba(0, 0, 0, 0.22);
  padding: 0.55rem;
  border-radius: var(--gc-radius-sm, 2px);
}
.battle-pass-row-labels {
  display: grid;
  grid-template-rows: 1.4rem minmax(5.5rem, 1fr) minmax(6.5rem, 1.15fr);
  gap: 0.4rem;
  flex: 0 0 4.2rem;
  align-items: stretch;
}
.battle-pass-row-spacer { min-height: 1.4rem; }
.battle-pass-row-label {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  padding-right: 0.35rem;
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8a93a3);
  border-right: 1px solid rgba(94, 200, 255, 0.2);
}
.battle-pass-row-label--premium {
  color: rgba(212, 160, 23, 0.95);
  border-right-color: rgba(212, 160, 23, 0.35);
}
.battle-pass-trackboard-viewport {
  display: flex;
  gap: 0.45rem;
  flex: 1;
  min-width: 0;
  overflow: hidden;
}
.battle-pass-tier {
  flex: 1 1 0;
  min-width: 5.5rem;
  max-width: 7.5rem;
  display: grid;
  grid-template-rows: 1.4rem minmax(5.5rem, 1fr) minmax(6.5rem, 1.15fr);
  gap: 0.4rem;
}
.battle-pass-tier[hidden] { display: none !important; }
.battle-pass-tier-num {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 0.82rem;
  letter-spacing: 0.04em;
  color: var(--gc-text-muted, #8a93a3);
  border-bottom: 1px solid rgba(94, 200, 255, 0.15);
}
.battle-pass-tier.is-current .battle-pass-tier-num,
.battle-pass-tier.is-reached .battle-pass-tier-num {
  color: var(--gc-accent, #5ec8ff);
}
.battle-pass-card {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.3rem;
  padding: 0.4rem;
  margin: 0;
  border: 1px solid var(--gc-border, #2a3344);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(8, 12, 20, 0.55);
  color: inherit;
  text-align: left;
  cursor: pointer;
  min-height: 0;
  outline: none;
  transition: border-color 0.12s ease, box-shadow 0.12s ease;
}
.battle-pass-card--free { border-color: rgba(94, 200, 255, 0.28); }
.battle-pass-card--premium { border-color: rgba(212, 160, 23, 0.42); }
.battle-pass-card.is-claimable {
  border-color: rgba(94, 200, 255, 0.7);
  box-shadow: inset 0 0 0 1px rgba(94, 200, 255, 0.22);
}
.battle-pass-card--premium.is-claimable {
  border-color: rgba(212, 160, 23, 0.85);
  box-shadow: inset 0 0 0 1px rgba(212, 160, 23, 0.28);
}
.battle-pass-card.is-claimed { opacity: 0.72; }
.battle-pass-card.is-locked { opacity: 0.55; }
.battle-pass-card.is-selected,
.battle-pass-card:focus-visible {
  border-color: var(--gc-accent, #5ec8ff);
  box-shadow:
    inset 0 0 0 1px rgba(94, 200, 255, 0.35),
    0 0 0 1px rgba(94, 200, 255, 0.25);
}
.battle-pass-card--premium.is-selected,
.battle-pass-card--premium:focus-visible {
  border-color: rgba(212, 160, 23, 0.95);
  box-shadow:
    inset 0 0 0 1px rgba(212, 160, 23, 0.35),
    0 0 0 1px rgba(212, 160, 23, 0.22);
}
.battle-pass-card-art {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  flex: 1;
  min-height: 2.6rem;
  background: rgba(0, 0, 0, 0.28);
  border: 1px solid rgba(255, 255, 255, 0.06);
  border-radius: var(--gc-radius-sm, 2px);
}
.battle-pass-card-art img {
  max-width: 100%;
  max-height: 3.2rem;
  object-fit: contain;
}
.battle-pass-card-icon {
  font-size: 1.45rem;
  line-height: 1;
}
.battle-pass-card-count {
  position: absolute;
  right: 0.2rem;
  bottom: 0.15rem;
  font-size: 0.62rem;
  padding: 0.05rem 0.22rem;
  background: rgba(0, 0, 0, 0.65);
  border: 1px solid rgba(94, 200, 255, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  color: var(--gc-accent, #5ec8ff);
}
.battle-pass-card-title {
  font-size: 0.68rem;
  line-height: 1.25;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 1.7em;
}
.battle-pass-card-state {
  font-size: 0.62rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8a93a3);
}
.battle-pass-card.is-claimable .battle-pass-card-state {
  color: var(--gc-accent, #5ec8ff);
}
.battle-pass-card--premium.is-claimable .battle-pass-card-state {
  color: rgba(212, 160, 23, 0.95);
}
.battle-pass-card-check,
.battle-pass-card-lock {
  position: absolute;
  top: 0.25rem;
  right: 0.3rem;
  font-size: 0.75rem;
  line-height: 1;
  color: var(--gc-accent, #5ec8ff);
}
.battle-pass-card-lock { color: var(--gc-text-muted, #8a93a3); }
.battle-pass-page-btn {
  flex: 0 0 2.2rem;
  min-width: 2.2rem;
  padding: 0;
  font-size: 1.4rem;
  line-height: 1;
  align-self: stretch;
  border-radius: var(--gc-radius-sm, 2px);
}
.battle-pass-page-btn:disabled {
  opacity: 0.35;
  cursor: default;
}
.battle-pass-page-meta {
  grid-area: meta;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.65rem;
}
.battle-pass-page-label {
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8a93a3);
}
.battle-pass-preview {
  grid-area: preview;
  border: 1px solid var(--gc-border, #2a3344);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.28);
  padding: 0.75rem;
  min-height: 12rem;
}
.battle-pass-preview-empty .hint { margin: 0; }
.battle-pass-preview-head {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  margin-bottom: 0.65rem;
}
.battle-pass-preview-meta {
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8a93a3);
}
.battle-pass-preview-title {
  font-size: 1rem;
  letter-spacing: 0.02em;
}
.battle-pass-preview-rarity {
  align-self: flex-start;
  font-size: 0.62rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  padding: 0.1rem 0.35rem;
  border: 1px solid currentColor;
  border-radius: var(--gc-radius-sm, 2px);
  color: var(--gc-accent, #5ec8ff);
}
.battle-pass-preview-rarity[data-rarity="rare"] { color: #5b9dff; }
.battle-pass-preview-rarity[data-rarity="epic"] { color: #b57bff; }
.battle-pass-preview-rarity[data-rarity="legendary"] { color: rgba(212, 160, 23, 0.98); }
.battle-pass-reward-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.battle-pass-reward-item {
  display: grid;
  grid-template-columns: 1.25rem 1fr auto;
  gap: 0.4rem;
  align-items: center;
  font-size: 0.8rem;
}
.battle-pass-reward-icon { text-align: center; }
.battle-pass-reward-img {
  width: 1.35rem;
  height: 1.35rem;
  object-fit: contain;
}
.battle-pass-reward-amt { color: var(--gc-text-muted, #8a93a3); }
.battle-pass-preview-actions { margin-top: 0.75rem; }
.battle-pass-claimed,
.battle-pass-locked {
  font-size: 0.72rem;
  color: var(--gc-text-muted, #8a93a3);
  text-transform: uppercase;
}
.battle-pass-ops-panel { margin-bottom: 0.75rem; }
.battle-pass-ops-header {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  justify-content: space-between;
  gap: 0.5rem 1rem;
}
.battle-pass-ops-pace {
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-accent, #5ec8ff);
}
.battle-pass-ops-hint { margin: 0.35rem 0 0.65rem; }
.battle-pass-ops-drip {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  margin: 0 0 0.85rem;
  padding: 0.55rem 0.65rem;
  border: 1px solid rgba(94, 200, 255, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(8, 12, 20, 0.4);
}
.battle-pass-ops-drip-main {
  display: flex;
  justify-content: space-between;
  gap: 0.75rem;
  align-items: baseline;
}
.battle-pass-ops-drip-label {
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8a93a3);
}
.battle-pass-ops-drip-val {
  font-size: 0.78rem;
  color: var(--gc-accent, #5ec8ff);
}
.battle-pass-ops-drip-bar { max-width: 100%; }
.battle-pass-ops-group { margin-bottom: 0.85rem; }
.battle-pass-ops-group-title {
  margin: 0 0 0.45rem;
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8a93a3);
}
.battle-pass-ops-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0.55rem;
}
.battle-pass-ops-grid--weekly {
  grid-template-columns: 1fr;
}
.battle-pass-op-card {
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  padding: 0.65rem;
  border: 1px solid rgba(120, 140, 170, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(8, 12, 20, 0.45);
  min-height: 9.5rem;
}
.battle-pass-op-card--weekly {
  flex-direction: row;
  flex-wrap: wrap;
  align-items: stretch;
  min-height: 0;
  gap: 0.75rem;
}
.battle-pass-op-card.is-claimable {
  border-color: rgba(94, 200, 255, 0.65);
  box-shadow: inset 0 0 0 1px rgba(94, 200, 255, 0.2);
}
.battle-pass-op-card.is-claimed { opacity: 0.72; }
.battle-pass-op-card-art {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  font-size: 1.25rem;
  border: 1px solid rgba(94, 200, 255, 0.2);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.35);
  flex: 0 0 auto;
}
.battle-pass-op-card-img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  padding: 0.15rem;
}
.battle-pass-op-card--weekly .battle-pass-op-card-art {
  width: 3rem;
  height: 3rem;
  font-size: 1.45rem;
  align-self: center;
}
.battle-pass-op-card-body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
}
.battle-pass-op-card-title {
  font-size: 0.86rem;
  letter-spacing: 0.02em;
}
.battle-pass-op-card-hint {
  margin: 0;
  font-size: 0.72rem;
  flex: 1;
}
.battle-pass-op-card-meta {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: baseline;
}
.battle-pass-op-xp {
  color: var(--gc-accent, #5ec8ff);
  font-size: 0.78rem;
}
.battle-pass-op-card-action {
  margin-top: auto;
}
.battle-pass-op-card--weekly .battle-pass-op-card-action {
  align-self: center;
  margin-top: 0;
}
.battle-pass-op-bar {
  height: 0.35rem;
  background: rgba(40, 50, 70, 0.9);
  border: 1px solid rgba(90, 110, 140, 0.35);
  overflow: hidden;
  border-radius: var(--gc-radius-sm, 2px);
}
.battle-pass-op-fill {
  display: block;
  height: 100%;
  background: rgba(94, 200, 255, 0.75);
}
.battle-pass-op-progress {
  font-size: 0.72rem;
  color: var(--gc-text-muted, #8a93a3);
}
@media (max-width: 900px) {
  .battle-pass-ops-grid {
    grid-template-columns: 1fr;
  }
  .battle-pass-op-card--weekly {
    flex-direction: column;
  }
  .battle-pass-op-card--weekly .battle-pass-op-card-action {
    align-self: stretch;
  }
}
@media (min-width: 981px) {
  .battle-pass-trackboard-layout {
    grid-template-areas:
      "board preview"
      "meta preview";
    grid-template-columns: minmax(0, 1fr) minmax(15rem, 19rem);
  }
  .battle-pass-preview {
    align-self: stretch;
  }
}
@media (max-width: 980px) {
  .battle-pass-trackboard-layout {
    grid-template-columns: 1fr;
    grid-template-areas:
      "board"
      "meta"
      "preview";
  }
}
@media (max-width: 800px) {
  .battle-pass-row-labels { flex-basis: 3.2rem; }
  .battle-pass-tier {
    min-width: 4.8rem;
    max-width: 6.2rem;
  }
  .battle-pass-card-title { font-size: 0.64rem; }
}

/* EPIC-23 Shop ? premium command-supply bay (scoped) */
.shop-page { width: 100%; }
.shop-eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(94, 200, 255, 0.78);
}
.shop-header .section-title {
  letter-spacing: 0.02em;
}
.shop-banner {
  margin-bottom: 0.75rem;
}
.shop-banner--cancel { border-color: rgba(200, 160, 80, 0.45); }
.shop-banner--ok { border-color: rgba(80, 180, 120, 0.45); }

.shop-tabs {
  display: flex;
  gap: 0.35rem;
  margin: 0 0 0.85rem;
  flex-wrap: wrap;
}
.shop-tabs--inline {
  margin: 0;
  flex-shrink: 0;
}
.shop-workspace-header {
  align-items: center;
  gap: 0.75rem;
}
.shop-workspace-context {
  display: flex;
  flex: 1;
  align-items: center;
  justify-content: flex-end;
  min-width: 0;
  margin-left: auto;
}
.shop-workspace-context[hidden] {
  display: none !important;
}
.shop-workspace-context--premium .shop-catalog-rail {
  width: 100%;
}
.free-shop-balance--header {
  margin: 0;
  font-size: 0.82rem;
}
.shop-tab {
  appearance: none;
  background: rgba(8, 18, 24, 0.9);
  border: 1px solid var(--gc-border, #2a3a44);
  border-radius: var(--gc-radius-sm, 2px);
  color: var(--gc-text-muted, #8aa);
  font-size: 0.78rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.45rem 0.85rem;
  cursor: pointer;
}
.shop-tab.is-active {
  color: var(--gc-accent, #5ad0e6);
  border-color: rgba(90, 208, 230, 0.55);
  background: rgba(20, 40, 50, 0.95);
}
.shop-panel[hidden] { display: none !important; }
.shop-panel.is-active { display: block; }

.free-shop-panel { padding-bottom: 1rem; }
.free-shop-hint { margin: 0 0 0.65rem; }
.free-shop-balance {
  margin: 0 0 0.9rem;
  font-size: 0.85rem;
  color: var(--gc-accent, #5ad0e6);
}
.free-shop-grid { margin-top: 0.35rem; }
.free-shop-card.is-locked { opacity: 0.72; }
.free-shop-story-link {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem;
  margin-top: 1rem;
}

.story-free-shop-teaser {
  padding: 0.85rem 0.95rem;
  border: 1px solid var(--gc-border, #2a3a44);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(6, 14, 18, 0.88);
  margin-top: 0.85rem;
}
.story-free-shop-teaser__head {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: baseline;
  margin-bottom: 0.35rem;
}
.story-free-shop-teaser__title {
  margin: 0;
  font-size: 0.9rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.story-free-shop-teaser__bal { margin: 0; font-size: 0.8rem; color: var(--gc-accent, #5ad0e6); }
.story-free-shop-teaser__hint { margin: 0 0 0.65rem; font-size: 0.75rem; }

.shop-catalog-panel {
  position: relative;
  overflow: hidden;
}
.shop-catalog-header {
  align-items: center;
  gap: 0.75rem;
}
.shop-catalog-rail,
.shop-packs-rail {
  flex: 1;
  height: 1px;
  min-width: 2rem;
  background: linear-gradient(
    90deg,
    rgba(70, 229, 255, 0.45),
    rgba(212, 175, 55, 0.28),
    transparent
  );
}

.shop-bay {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
}
.shop-featured {
  display: block;
}
.shop-packs-head {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  margin-top: 0.15rem;
}
.shop-packs-title {
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(180, 198, 220, 0.72);
  white-space: nowrap;
}

.shop-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(17.5rem, 1fr));
  gap: 0.9rem;
}

.shop-card {
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0;
  overflow: hidden;
  border: 1px solid rgba(70, 229, 255, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  background:
    linear-gradient(165deg, rgba(12, 22, 38, 0.92) 0%, rgba(4, 8, 16, 0.96) 55%, rgba(8, 14, 26, 0.94) 100%);
  box-shadow:
    inset 0 1px 0 rgba(120, 210, 255, 0.12),
    0 0 0 1px rgba(0, 0, 0, 0.35),
    0 10px 28px rgba(0, 0, 0, 0.28);
  transition: border-color 0.25s ease, box-shadow 0.25s ease;
}
.shop-card:hover,
.shop-card:focus-within {
  border-color: rgba(70, 229, 255, 0.48);
  box-shadow:
    inset 0 1px 0 rgba(140, 230, 255, 0.18),
    0 0 0 1px rgba(70, 229, 255, 0.12),
    0 14px 34px rgba(0, 12, 28, 0.45),
    0 0 24px rgba(70, 229, 255, 0.08);
}
.shop-card.is-owned {
  opacity: 0.78;
  filter: saturate(0.82);
}
.shop-card-frame {
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 3;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.03);
}
.shop-card-frame::before,
.shop-card-frame::after {
  content: "";
  position: absolute;
  width: 12px;
  height: 12px;
  border-color: rgba(70, 229, 255, 0.55);
  border-style: solid;
}
.shop-card-frame::before {
  top: 5px;
  left: 5px;
  border-width: 1px 0 0 1px;
}
.shop-card-frame::after {
  top: 5px;
  right: 5px;
  border-width: 1px 1px 0 0;
}
.shop-card::before {
  content: "";
  position: absolute;
  left: 5px;
  bottom: 5px;
  width: 12px;
  height: 12px;
  border-style: solid;
  border-color: rgba(70, 229, 255, 0.4);
  border-width: 0 0 1px 1px;
  z-index: 3;
  pointer-events: none;
}
.shop-card::after {
  content: "";
  position: absolute;
  right: 5px;
  bottom: 5px;
  width: 12px;
  height: 12px;
  border-style: solid;
  border-color: rgba(212, 175, 55, 0.45);
  border-width: 0 1px 1px 0;
  z-index: 3;
  pointer-events: none;
}

.shop-card--featured {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr);
  border-color: rgba(212, 175, 55, 0.38);
  background:
    linear-gradient(120deg, rgba(18, 24, 40, 0.96) 0%, rgba(8, 12, 22, 0.98) 48%, rgba(16, 20, 34, 0.95) 100%);
  box-shadow:
    inset 0 1px 0 rgba(232, 196, 90, 0.16),
    0 0 0 1px rgba(212, 175, 55, 0.12),
    0 16px 40px rgba(0, 0, 0, 0.38),
    0 0 36px rgba(212, 175, 55, 0.07);
}
.shop-card--featured:hover,
.shop-card--featured:focus-within {
  border-color: rgba(232, 196, 90, 0.58);
  box-shadow:
    inset 0 1px 0 rgba(232, 196, 90, 0.22),
    0 0 0 1px rgba(212, 175, 55, 0.2),
    0 18px 44px rgba(0, 8, 20, 0.5),
    0 0 40px rgba(212, 175, 55, 0.12);
}
.shop-card--featured .shop-card-art {
  aspect-ratio: auto;
  min-height: 15rem;
  height: 100%;
  border-bottom: none;
  border-right: 1px solid rgba(212, 175, 55, 0.22);
}
.shop-card--featured .shop-card-body {
  justify-content: center;
  gap: 1.1rem;
  padding: 1.15rem 1.25rem;
}
.shop-card--featured .shop-card-title {
  font-size: 1.35rem;
  letter-spacing: 0.03em;
}
.shop-card--featured .shop-card-price {
  font-size: 1.35rem;
  color: #e8c45a;
  text-shadow: 0 0 18px rgba(232, 196, 90, 0.25);
}

.shop-card-art {
  position: relative;
  margin: 0;
  aspect-ratio: 16 / 10;
  overflow: hidden;
  background: #05080f;
  border-bottom: 1px solid rgba(70, 229, 255, 0.16);
}
.shop-card-art::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background:
    radial-gradient(120% 80% at 50% 0%, rgba(70, 229, 255, 0.12), transparent 55%),
    linear-gradient(to top, rgba(3, 6, 12, 0.88) 0%, rgba(3, 6, 12, 0.2) 42%, transparent 70%);
}
.shop-card-art img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center;
  opacity: 0;
  transform: scale(1.04);
  transition: transform 0.55s ease, opacity 0.45s ease, filter 0.35s ease;
  animation: shop-art-in 0.55s ease forwards;
  filter: saturate(1.05) contrast(1.04);
}
.shop-card:hover .shop-card-art img,
.shop-card:focus-within .shop-card-art img {
  transform: scale(1.07);
  filter: saturate(1.12) contrast(1.06);
}
@keyframes shop-art-in {
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@media (prefers-reduced-motion: reduce) {
  .shop-card,
  .shop-card-art img {
    transition: none;
  }
  .shop-card-art img {
    opacity: 1;
    transform: none;
    animation: none;
  }
  .shop-card:hover .shop-card-art img,
  .shop-card:focus-within .shop-card-art img {
    transform: none;
  }
}

.shop-card-kind,
.shop-card-featured-tag {
  position: absolute;
  z-index: 2;
  top: 0.55rem;
  padding: 0.18rem 0.45rem;
  border: 1px solid rgba(70, 229, 255, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(4, 10, 18, 0.78);
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(180, 230, 255, 0.92);
  backdrop-filter: blur(4px);
}
.shop-card-kind { left: 0.55rem; }
.shop-card-featured-tag {
  right: 0.55rem;
  left: auto;
  border-color: rgba(212, 175, 55, 0.5);
  color: #e8c45a;
  background: rgba(18, 14, 6, 0.82);
}

.shop-card-body {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 0.85rem;
  flex: 1;
  padding: 0.85rem 0.9rem 0.95rem;
}
.shop-card-title {
  margin: 0 0 0.4rem;
  font-size: 1.02rem;
  font-weight: 650;
  letter-spacing: 0.01em;
  color: #f2f6fb;
}
.shop-card-hint {
  margin: 0;
  line-height: 1.45;
  color: rgba(170, 188, 210, 0.88);
}
.shop-card-footer {
  display: flex;
  flex-direction: column;
  gap: 0.65rem;
  padding-top: 0.55rem;
  border-top: 1px solid rgba(70, 229, 255, 0.12);
}
.shop-card-price {
  margin: 0;
  font-size: 1.18rem;
  font-weight: 650;
  color: var(--gc-accent, #5ec8ff);
  text-shadow: 0 0 14px rgba(94, 200, 255, 0.2);
}
.shop-provider-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.4rem;
}
.shop-buy-btn.gc-btn-primary {
  box-shadow: 0 0 16px rgba(70, 229, 255, 0.12);
}
.shop-owned,
.shop-locked {
  display: inline-flex;
  align-items: center;
  min-height: 1.8rem;
  font-size: 0.72rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: rgba(160, 180, 200, 0.78);
}
.shop-policy-panel { margin-top: 0.75rem; }
.shop-return-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 0.85rem;
}

@media (max-width: 820px) {
  .shop-card--featured {
    grid-template-columns: 1fr;
  }
  .shop-card--featured .shop-card-art {
    min-height: 12rem;
    height: auto;
    aspect-ratio: 16 / 10;
    border-right: none;
    border-bottom: 1px solid rgba(212, 175, 55, 0.22);
  }
}
.battle-pass-premium-cta {
  margin-top: 0.65rem;
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
}
.battle-pass-premium-cta-art {
  width: 3.5rem;
  height: 3.5rem;
  object-fit: contain;
  flex: 0 0 auto;
  border: 1px solid rgba(212, 160, 23, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(0, 0, 0, 0.35);
  padding: 0.2rem;
}
.battle-pass-premium-cta-body {
  flex: 1;
  min-width: 0;
}
.battle-pass-premium-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 0.45rem;
  margin-top: 0.45rem;
}

/* Public banned players board */
.banned-players-eyebrow {
  margin: 0 0 0.35rem;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8a93a3);
}
.banned-players-table-wrap { overflow-x: auto; }
.banned-players-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 0.9rem;
}
.banned-players-table th,
.banned-players-table td {
  border: 1px solid var(--gc-border, #2a3344);
  padding: 0.45rem 0.6rem;
  text-align: left;
}
.banned-players-table th {
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 0.72rem;
  color: var(--gc-text-muted, #8a93a3);
}
.banned-players-empty { margin: 0; color: var(--gc-text-muted, #8a93a3); }

/* ===== Genesis Story Ops (EPIC-25 / GC-2502) ===== */
.story-ops-page { display: flex; flex-direction: column; gap: 1rem; }
.story-ops-eyebrow {
  margin: 0;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8aa);
}
.story-ops-layout {
  display: grid;
  grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
  gap: 1rem;
  align-items: start;
}
@media (max-width: 900px) {
  .story-ops-layout { grid-template-columns: 1fr; }
}
.story-ops-toc {
  padding: 0.85rem 0.9rem;
  border: 1px solid var(--gc-border, #2a3a44);
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(6, 14, 18, 0.88);
  min-width: 0;
}
.story-ops-toc__title {
  margin: 0 0 0.75rem;
  font-size: 0.85rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
.story-ops-toc__arcs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.55rem;
}
.story-ops-arc {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0.55rem 0.6rem;
  border: 1px solid var(--gc-border, #2a3a44);
  border-radius: var(--gc-radius-sm, 2px);
  font-size: 0.85rem;
  cursor: pointer;
  background: rgba(0, 0, 0, 0.2);
  transition: border-color 0.15s ease, background 0.15s ease;
  min-width: 0;
}
.story-ops-arc:hover,
.story-ops-arc.is-focus {
  border-color: var(--gc-accent, #5ad0e6);
  background: rgba(40, 120, 140, 0.12);
}
.story-ops-arc--completed { opacity: 0.72; }
.story-ops-arc--empty { cursor: default; opacity: 0.7; }
.story-ops-arc__head {
  display: flex;
  justify-content: space-between;
  gap: 0.5rem;
  align-items: baseline;
  flex-wrap: wrap;
}
.story-ops-arc__kind {
  font-size: 0.68rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8aa);
}
.story-ops-arc__season {
  font-size: 0.64rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--gc-text-muted, #8aa);
  border: 1px solid var(--gc-border, rgba(120, 160, 180, 0.35));
  padding: 0.05rem 0.28rem;
  border-radius: var(--gc-radius-xs, 0);
  line-height: 1.2;
}
.story-ops-arc__status {
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  color: var(--gc-accent, #5ad0e6);
  margin-left: auto;
}
.story-ops-arc__title {
  font-size: 0.92rem;
  letter-spacing: 0.02em;
  white-space: normal;
  overflow-wrap: anywhere;
  line-height: 1.25;
}
.story-ops-arc__chapters {
  list-style: none;
  margin: 0.2rem 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}
.story-ops-ch {
  display: flex;
  align-items: flex-start;
  gap: 0.45rem;
  font-size: 0.8rem;
  line-height: 1.35;
  color: var(--gc-text-muted, #8aa);
  min-width: 0;
}
.story-ops-ch__title {
  white-space: normal;
  overflow-wrap: anywhere;
  flex: 1;
  min-width: 0;
}
.story-ops-ch__mark {
  width: 7px;
  height: 7px;
  margin-top: 0.35rem;
  border: 1px solid var(--gc-border, #3a5560);
  background: transparent;
  flex-shrink: 0;
}
.story-ops-ch--done .story-ops-ch__mark {
  background: var(--gc-accent, #5ad0e6);
  border-color: var(--gc-accent, #5ad0e6);
}
.story-ops-ch--current {
  color: var(--gc-text, #d7e6ec);
}
.story-ops-ch--current .story-ops-ch__mark {
  border-color: var(--gc-accent, #5ad0e6);
  box-shadow: 0 0 0 1px rgba(90, 208, 230, 0.35);
}
.story-ops-ch--locked { opacity: 0.55; }
.story-tx__chapter {
  font-size: 0.72rem;
  color: var(--gc-text-muted, #8aa);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.story-tx {
  position: relative;
  overflow: hidden;
  border: 1px solid var(--gc-border, #2a3a44);
  background: linear-gradient(160deg, rgba(8, 18, 24, 0.96), rgba(12, 28, 36, 0.92));
  padding: 1.25rem 1.25rem 1.1rem;
  border-radius: var(--gc-radius-sm, 2px);
}
.story-tx__scan {
  pointer-events: none;
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(80, 200, 220, 0.03) 3px
  );
  opacity: 0.7;
}
.story-tx__contact {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1rem;
  position: relative;
  z-index: 1;
}
/* Speaking contact orb ? intentional circle (avatar exception) */
.story-orb {
  --story-orb-accent: #5ad0e6;
  --story-orb-glow: rgba(90, 208, 230, 0.55);
  position: relative;
  width: 72px;
  height: 72px;
  flex-shrink: 0;
  display: grid;
  place-items: center;
}
.story-orb--androgyn {
  --story-orb-accent: #c4a0ff;
  --story-orb-glow: rgba(180, 140, 255, 0.55);
}
.story-orb__core {
  position: relative;
  z-index: 2;
  width: 44px;
  height: 44px;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--story-orb-accent) 70%, #fff 10%);
  background:
    radial-gradient(circle at 38% 32%, color-mix(in srgb, var(--story-orb-accent) 55%, transparent), transparent 52%),
    radial-gradient(circle at 50% 50%, #0a1620 0%, #061018 70%);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.55),
    0 0 18px color-mix(in srgb, var(--story-orb-glow) 45%, transparent),
    inset 0 0 12px rgba(0, 0, 0, 0.55);
  overflow: hidden;
  display: grid;
  place-items: center;
}
.story-orb__pulse {
  position: absolute;
  inset: 18%;
  border-radius: 50%;
  background: radial-gradient(circle, var(--story-orb-accent), transparent 70%);
  opacity: 0.35;
  animation: story-orb-idle 2.8s ease-in-out infinite;
}
.story-orb__eq {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  gap: 2px;
  height: 16px;
  opacity: 0.55;
}
.story-orb__eq i {
  display: block;
  width: 2px;
  height: 5px;
  background: var(--story-orb-accent);
  border-radius: 0;
  transform-origin: bottom center;
}
.story-orb__ring {
  position: absolute;
  inset: 0;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--story-orb-accent) 35%, transparent);
  opacity: 0;
  pointer-events: none;
}
.story-orb.is-speaking .story-orb__pulse {
  opacity: 0.7;
  animation: story-orb-pulse 0.9s ease-in-out infinite;
}
.story-orb.is-speaking .story-orb__eq {
  opacity: 1;
}
.story-orb.is-speaking .story-orb__eq i:nth-child(1) { animation: story-eq 0.55s ease-in-out infinite; }
.story-orb.is-speaking .story-orb__eq i:nth-child(2) { animation: story-eq 0.7s ease-in-out 0.08s infinite; }
.story-orb.is-speaking .story-orb__eq i:nth-child(3) { animation: story-eq 0.45s ease-in-out 0.04s infinite; }
.story-orb.is-speaking .story-orb__eq i:nth-child(4) { animation: story-eq 0.65s ease-in-out 0.12s infinite; }
.story-orb.is-speaking .story-orb__eq i:nth-child(5) { animation: story-eq 0.5s ease-in-out 0.02s infinite; }
.story-orb.is-speaking .story-orb__ring {
  opacity: 1;
  animation: story-ring-wave 1.6s cubic-bezier(0.15, 0.7, 0.25, 1) infinite;
}
.story-orb.is-speaking .story-orb__ring--2 { animation-delay: 0.45s; }
.story-orb.is-speaking .story-orb__ring--3 { animation-delay: 0.9s; }
.story-orb.is-paused .story-orb__eq { opacity: 0.35; }
.story-orb.is-paused .story-orb__eq i { animation: none !important; height: 4px; }
.story-orb.is-paused .story-orb__ring { animation-play-state: paused; opacity: 0.35; }
@keyframes story-orb-idle {
  0%, 100% { transform: scale(0.92); opacity: 0.28; }
  50% { transform: scale(1.05); opacity: 0.42; }
}
@keyframes story-orb-pulse {
  0%, 100% { transform: scale(0.88); opacity: 0.55; }
  50% { transform: scale(1.18); opacity: 0.9; }
}
@keyframes story-eq {
  0%, 100% { height: 4px; opacity: 0.55; }
  50% { height: 14px; opacity: 1; }
}
@keyframes story-ring-wave {
  0% { transform: scale(0.72); opacity: 0.7; }
  70% { opacity: 0.25; }
  100% { transform: scale(1.35); opacity: 0; }
}
/* legacy portrait class kept as no-op alias if old JS hits it */
.story-tx__portrait { display: none; }
.story-tx__meta { display: flex; flex-direction: column; gap: 0.15rem; }
.story-tx__contact-label {
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  font-size: 0.85rem;
}
.story-tx__status { font-size: 0.72rem; color: var(--gc-accent, #5ad0e6); }
.story-tx__body { position: relative; z-index: 1; max-width: 42rem; }
.story-tx__title {
  margin: 0 0 0.5rem;
  font-size: 1.25rem;
  letter-spacing: 0.02em;
}
.story-tx__text {
  margin: 0;
  line-height: 1.55;
  color: var(--gc-text, #d7e6ec);
  white-space: pre-wrap;
}
.story-tx__progress {
  margin-top: 0.9rem;
  height: 6px;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid var(--gc-border, #2a3a44);
}
.story-tx__progress-fill {
  height: 100%;
  background: var(--gc-accent, #5ad0e6);
  width: 0;
  transition: width 0.25s ease;
}
.story-tx__progress-label { margin: 0.35rem 0 0; font-size: 0.8rem; }
.story-tx__actions {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  margin-top: 1.1rem;
}
.story-tx__waiting { margin: 0; }
.story-ops-rail__title,
.story-lore__title {
  margin: 0 0 0.75rem;
  font-size: 0.95rem;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.story-lore-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.story-lore-item {
  border-left: 2px solid var(--gc-accent, #5ad0e6);
  padding: 0.35rem 0.6rem;
}
.story-lore-item strong { display: block; margin-bottom: 0.2rem; }
.story-lore-item p { margin: 0; font-size: 0.88rem; line-height: 1.45; }

/* Story Ops TTS (Bender Protocol) */
.story-tts {
  position: relative;
  z-index: 1;
  margin: 0 0 1rem;
  padding: 0.65rem 0.75rem;
  border: 1px solid var(--gc-border, #2a3a44);
  background: rgba(0, 0, 0, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
}
.story-tts__row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.story-tts__label {
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--gc-accent, #5ad0e6);
}
.story-tts__btns {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem;
}
.story-tts__vol {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8rem;
}
.story-tts__vol input[type="range"] {
  flex: 1;
  min-width: 120px;
  accent-color: var(--gc-accent, #5ad0e6);
}
.story-tts__vol-val { min-width: 2.5rem; text-align: right; }
.story-tts__auto {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 0.8rem;
  cursor: pointer;
}
.story-tts__hint { margin: 0; font-size: 0.72rem; }

/* EPIC-27 / GC-CLASS-UI-002 — Living Commander Focus (scoped) */
.skilltree-page {
  --cc-vanguard: #e04545;
  --cc-forge: #e08a2a;
  --cc-archivist: #3ecfc9;
  --cc-admiral: #3a6fd9;
  --cc-envoy: #9b5de5;
  display: flex;
  flex-direction: column;
  gap: 0.85rem;
}
.skilltree-kicker {
  margin: 0 0 0.2rem;
  font-size: 0.72rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--gc-accent, #5ad0e6);
  opacity: 0.85;
}
.skilltree-hud {
  display: flex; flex-wrap: wrap; align-items: center; gap: 1rem;
  padding: 0.65rem 0.85rem;
  border: 1px solid var(--gc-border, #2a3a45);
  border-radius: var(--gc-radius-sm, 2px);
  background:
    linear-gradient(135deg, rgba(40, 55, 65, 0.55), rgba(12, 18, 24, 0.9)),
    repeating-linear-gradient(90deg, transparent, transparent 2px, rgba(255,255,255,0.015) 2px, rgba(255,255,255,0.015) 4px);
}
.skilltree-hud-row { display: flex; align-items: baseline; gap: 0.4rem; }
.skilltree-hud-label { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; opacity: 0.7; }
.skilltree-hud-value { font-size: 1.05rem; }
.skilltree-section-title { margin: 0 0 0.35rem; font-size: 1.05rem; }
.skilltree-section-hint { margin: 0 0 0.85rem; font-size: 0.85rem; opacity: 0.75; }

.skilltree-class-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 1rem;
  align-items: stretch;
}
@media (min-width: 1280px) {
  .skilltree-class-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
  .skilltree-class-grid {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    gap: 0.75rem;
    padding-bottom: 0.35rem;
  }
  .skilltree-class-grid .cc-card {
    flex: 0 0 min(82vw, 280px);
    scroll-snap-align: center;
  }
}

.cc-card {
  --cc-theme: var(--gc-accent, #5ad0e6);
  --cc-px: 0px;
  --cc-py: 0px;
  display: flex;
  flex-direction: column;
  min-height: 520px;
  border: 1px solid color-mix(in srgb, var(--cc-theme) 55%, #1a2430);
  border-radius: var(--gc-radius-sm, 2px);
  overflow: hidden;
  cursor: pointer;
  background: linear-gradient(180deg, rgba(28, 36, 44, 0.92) 0%, rgba(10, 14, 18, 0.96) 100%);
  box-shadow: 0 0 0 1px rgba(255,255,255,0.03) inset, 0 8px 24px rgba(0,0,0,0.35);
  transition: transform 180ms ease, box-shadow 180ms ease, border-color 180ms ease, opacity 180ms ease;
}
.cc-card--vanguard { --cc-theme: var(--cc-vanguard); }
.cc-card--forge { --cc-theme: var(--cc-forge); }
.cc-card--archivist { --cc-theme: var(--cc-archivist); }
.cc-card--admiral { --cc-theme: var(--cc-admiral); }
.cc-card--envoy { --cc-theme: var(--cc-envoy); }

.skilltree-class-grid.is-cc-dimming .cc-card:not(.is-cc-hover):not(:hover):not(:focus-within) {
  opacity: 0.55;
  transform: scale(0.98);
}

.cc-card-portrait-wrap {
  position: relative;
  flex: 1 1 auto;
  min-height: 220px;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 20%, color-mix(in srgb, var(--cc-theme) 28%, transparent), transparent 65%),
    linear-gradient(160deg, #1a222c, #0a0e12);
}
.cc-card-portrait {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center top;
  display: block;
  transform: translate(var(--cc-px), var(--cc-py)) scale(1.02);
  transform-origin: center top;
  animation: cc-breath 5.5s ease-in-out infinite;
  transition: transform 80ms linear;
  will-change: transform;
}
.cc-card-scanlines {
  pointer-events: none;
  position: absolute; inset: 0; z-index: 2;
  background: repeating-linear-gradient(0deg, transparent, transparent 2px, rgba(0,0,0,0.12) 2px, rgba(0,0,0,0.12) 3px);
  opacity: 0.3;
  mix-blend-mode: multiply;
}
.cc-card-holo {
  pointer-events: none;
  position: absolute; inset: 0; z-index: 1;
  background: linear-gradient(120deg, transparent 40%, color-mix(in srgb, var(--cc-theme) 18%, transparent) 50%, transparent 60%);
  opacity: 0.5;
  animation: cc-holo-sweep 6s linear infinite;
}
.cc-card-body {
  display: flex;
  flex-direction: column;
  gap: 0.28rem;
  padding: 0.7rem 0.75rem 0.85rem;
  flex: 0 0 auto;
  border-top: 1px solid color-mix(in srgb, var(--cc-theme) 35%, transparent);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--cc-theme) 8%, transparent), transparent 40%),
    repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(255,255,255,0.012) 3px, rgba(255,255,255,0.012) 4px);
}
.cc-card-officer { margin: 0; font-size: 1.02rem; letter-spacing: 0.02em; }
.cc-card-title {
  margin: 0;
  font-size: 0.7rem;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  color: var(--cc-theme);
  font-weight: 700;
}
.cc-card-epithet { margin: 0; font-size: 0.76rem; font-style: italic; opacity: 0.75; }
.cc-card-tag { margin: 0.1rem 0 0; font-size: 0.78rem; opacity: 0.8; line-height: 1.3; }
.cc-card-chips {
  list-style: none; margin: 0.35rem 0 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 0.3rem;
}
.cc-chip {
  display: inline-flex; align-items: baseline; gap: 0.25rem;
  border: 1px solid color-mix(in srgb, var(--cc-theme) 45%, #334);
  border-radius: var(--gc-radius-sm, 2px);
  padding: 0.12rem 0.35rem;
  font-size: 0.68rem;
  background: color-mix(in srgb, var(--cc-theme) 10%, transparent);
}
.cc-chip-label { text-transform: uppercase; letter-spacing: 0.04em; opacity: 0.85; }
.cc-chip-val { color: var(--cc-theme); font-weight: 700; }
.cc-card-icons {
  list-style: none; margin: 0.4rem 0 0; padding: 0;
  display: flex; gap: 0.35rem;
}
.cc-card-icon {
  width: 1.65rem; height: 1.65rem;
  display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid color-mix(in srgb, var(--cc-theme) 50%, #334);
  border-radius: var(--gc-radius-sm, 2px);
  background: transparent;
  color: var(--cc-theme);
}
.cc-card-icon img {
  width: 1.15rem; height: 1.15rem;
  object-fit: contain;
  filter: drop-shadow(0 0 1px color-mix(in srgb, var(--cc-theme) 80%, transparent));
}

.cc-card.is-cc-hover,
.cc-card:hover,
.cc-card:focus-within {
  transform: translateY(-5px) scale(1.025);
  border-color: var(--cc-theme);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--cc-theme) 40%, transparent),
    0 0 24px color-mix(in srgb, var(--cc-theme) 30%, transparent),
    0 14px 30px rgba(0,0,0,0.45);
  z-index: 2;
}
.cc-card.is-cc-hover .cc-card-portrait,
.cc-card:hover .cc-card-portrait,
.cc-card:focus-within .cc-card-portrait {
  animation-play-state: paused;
  transform: translate(var(--cc-px), var(--cc-py)) scale(1.08);
}

@keyframes cc-breath {
  0%, 100% { transform: translate(var(--cc-px), var(--cc-py)) scale(1.02); }
  50% { transform: translate(var(--cc-px), var(--cc-py)) scale(1.045); }
}
@keyframes cc-holo-sweep {
  0% { transform: translateX(-30%); opacity: 0.25; }
  50% { opacity: 0.55; }
  100% { transform: translateX(30%); opacity: 0.25; }
}

.cc-focus[hidden] { display: none !important; }
.cc-focus {
  position: fixed; inset: 0; z-index: var(--gc-z-modal, 1200);
  display: flex; align-items: center; justify-content: center;
  padding: 1rem;
}
.cc-focus-backdrop {
  position: absolute; inset: 0; border: 0; padding: 0;
  background: rgba(4, 8, 12, 0.72);
  cursor: pointer;
}
.cc-focus-panel {
  position: relative; z-index: 1;
  width: min(920px, 100%);
  max-height: min(90vh, 720px);
  overflow: auto;
  border: 1px solid color-mix(in srgb, var(--gc-accent, #5ad0e6) 40%, #2a3a45);
  border-radius: var(--gc-radius-sm, 2px);
  background: linear-gradient(160deg, #152028, #0a1016 60%);
  box-shadow: 0 20px 60px rgba(0,0,0,0.55);
  padding: 1rem;
}
.cc-focus-x { position: absolute; top: 0.5rem; right: 0.5rem; }
.cc-focus-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
  gap: 1rem;
  align-items: stretch;
}
@media (max-width: 800px) {
  .cc-focus-layout { grid-template-columns: 1fr; }
}
.cc-focus-art {
  min-height: 240px;
  border: 1px solid rgba(255,255,255,0.08);
  overflow: hidden;
  background: #0a0e12;
}
.cc-focus-portrait {
  width: 100%; height: 100%; min-height: 260px;
  object-fit: cover; object-position: center top; display: block;
}
.cc-focus-kicker {
  margin: 0; font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--gc-accent, #5ad0e6);
}
.cc-focus-officer { margin: 0.25rem 0 0; font-size: 1.35rem; }
.cc-focus-epithet { margin: 0.2rem 0 0; font-style: italic; opacity: 0.8; }
.cc-focus-desc { margin: 0.65rem 0 0; font-size: 0.9rem; line-height: 1.4; opacity: 0.9; }
.cc-focus-warn {
  margin: 0.75rem 0 0; font-size: 0.78rem; opacity: 0.75;
  border-left: 2px solid var(--gc-accent, #5ad0e6); padding-left: 0.5rem;
}
.cc-focus-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-top: 1rem; }

.cc-active-bar {
  --cc-theme: var(--gc-accent, #5ad0e6);
  display: flex; flex-wrap: wrap; align-items: center; gap: 0.85rem;
  padding: 0.7rem 0.9rem;
  border: 1px solid color-mix(in srgb, var(--cc-theme) 45%, #2a3a45);
  border-radius: var(--gc-radius-sm, 2px);
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--cc-theme) 16%, transparent), transparent 55%),
    linear-gradient(135deg, rgba(28, 36, 44, 0.95), rgba(10, 14, 18, 0.98));
}
.cc-active-bar--vanguard { --cc-theme: var(--cc-vanguard); }
.cc-active-bar--forge { --cc-theme: var(--cc-forge); }
.cc-active-bar--archivist { --cc-theme: var(--cc-archivist); }
.cc-active-bar--admiral { --cc-theme: var(--cc-admiral); }
.cc-active-bar--envoy { --cc-theme: var(--cc-envoy); }
.cc-active-portrait {
  width: 64px; height: 84px; object-fit: cover; object-position: center top;
  border: 1px solid color-mix(in srgb, var(--cc-theme) 55%, transparent);
  border-radius: var(--gc-radius-sm, 2px); flex-shrink: 0;
}
.cc-active-meta { flex: 1; min-width: 160px; }
.cc-active-badge {
  display: inline-block; font-size: 0.65rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--cc-theme);
  border: 1px solid color-mix(in srgb, var(--cc-theme) 50%, transparent);
  padding: 0.12rem 0.4rem; border-radius: var(--gc-radius-sm, 2px); margin-bottom: 0.25rem;
  animation: cc-badge-pulse 2.4s ease-in-out infinite;
}
@keyframes cc-badge-pulse {
  0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--cc-theme) 0%, transparent); }
  50% { box-shadow: 0 0 12px color-mix(in srgb, var(--cc-theme) 35%, transparent); }
}
.cc-active-officer { margin: 0; font-size: 1.1rem; }
.cc-active-title { margin: 0.15rem 0 0; font-size: 0.8rem; opacity: 0.85; text-transform: uppercase; letter-spacing: 0.06em; }
.cc-active-epithet { text-transform: none; letter-spacing: 0; font-style: italic; opacity: 0.8; }

.skilltree-trunk-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.75rem; margin-bottom: 0.75rem; }

.skilltree-trunk--vanguard,
.skilltree-map--vanguard { --cc-theme: var(--cc-vanguard); }
.skilltree-trunk--forge,
.skilltree-map--forge { --cc-theme: var(--cc-forge); }
.skilltree-trunk--archivist,
.skilltree-map--archivist { --cc-theme: var(--cc-archivist); }
.skilltree-trunk--admiral,
.skilltree-map--admiral { --cc-theme: var(--cc-admiral); }
.skilltree-trunk--envoy,
.skilltree-map--envoy { --cc-theme: var(--cc-envoy); }

/* Compact tree skillmap (GC-CLASS-UI-006) — fork silhouette, linear unlock */
.skilltree-page .skilltree-map__viewport {
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  margin: 0 0 0.85rem;
  border: 1px solid color-mix(in srgb, var(--cc-theme, var(--gc-accent)) 22%, #2a3a45);
  background:
    radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--cc-theme, var(--gc-accent)) 10%, transparent), transparent 55%),
    rgba(6, 10, 14, 0.88);
}

.skilltree-page .skilltree-map {
  --cc-theme: var(--gc-accent, #5ad0e6);
  position: relative;
  min-width: 540px;
  width: 100%;
  max-width: 720px;
  margin: 0 auto;
  aspect-ratio: 600 / 448;
  padding: 0.5rem;
  box-sizing: border-box;
}

.skilltree-page .skilltree-map__edges {
  position: absolute;
  inset: 0.5rem;
  width: calc(100% - 1rem);
  height: calc(100% - 1rem);
  pointer-events: none;
  z-index: 0;
}

.skilltree-page .skilltree-map-edge {
  stroke: color-mix(in srgb, var(--cc-theme) 18%, #10161c);
  opacity: 0.72;
  transition: stroke 160ms ease, opacity 160ms ease;
}
.skilltree-page .skilltree-map-edge.is-dim {
  stroke: color-mix(in srgb, var(--cc-theme) 18%, #10161c);
  opacity: 0.55;
}
.skilltree-page .skilltree-map-edge.is-lit {
  stroke: color-mix(in srgb, var(--cc-theme) 82%, white 8%);
  opacity: 1;
  filter: drop-shadow(0 0 4px color-mix(in srgb, var(--cc-theme) 50%, transparent));
}

.skilltree-page .skilltree-map__nodes {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  grid-template-rows: repeat(4, 1fr);
  width: 100%;
  height: 100%;
  gap: 0.35rem;
}

.skilltree-page .skilltree-map-node--slot-1 { grid-column: 3; grid-row: 1; }
.skilltree-page .skilltree-map-node--slot-2 { grid-column: 2; grid-row: 2; }
.skilltree-page .skilltree-map-node--slot-3 { grid-column: 4; grid-row: 2; }
.skilltree-page .skilltree-map-node--slot-4 { grid-column: 3; grid-row: 3; }
.skilltree-page .skilltree-map-node--slot-5 { grid-column: 2; grid-row: 4; }
.skilltree-page .skilltree-map-node--slot-6 { grid-column: 4; grid-row: 4; }

.skilltree-page .skilltree-map-node {
  appearance: none;
  -webkit-appearance: none;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0.15rem;
  width: 100%;
  max-width: 96px;
  aspect-ratio: 1;
  margin: auto;
  padding: 0.25rem;
  border: 1px solid color-mix(in srgb, var(--cc-theme) 28%, #2a3a45);
  border-radius: var(--gc-radius-sm, 2px);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--cc-theme) 10%, transparent), transparent 50%),
    rgba(8, 12, 16, 0.95);
  color: inherit;
  cursor: pointer;
  transition: border-color 160ms ease, box-shadow 160ms ease, opacity 160ms ease;
  outline: none;
}
.skilltree-page .skilltree-map-node:focus-visible {
  outline: 1px solid color-mix(in srgb, var(--cc-theme) 70%, #fff 10%);
  outline-offset: 2px;
}
.skilltree-page .skilltree-map-node__art {
  display: block;
  width: 64%;
  aspect-ratio: 1;
  overflow: hidden;
}
.skilltree-page .skilltree-map-node__art img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
  filter: drop-shadow(0 0 4px color-mix(in srgb, var(--cc-theme) 30%, transparent));
}
.skilltree-page .skilltree-map-node__rank {
  font-size: 0.62rem;
  line-height: 1;
  opacity: 0.9;
}
.skilltree-page .skilltree-map-node__cap {
  position: absolute;
  top: 2px;
  right: 2px;
  font-size: 0.5rem;
  letter-spacing: 0.06em;
  color: #e6c35a;
  border: 1px solid color-mix(in srgb, #a67c2a 70%, transparent);
  padding: 0.05rem 0.2rem;
  border-radius: var(--gc-radius-xs, 0);
  background: rgba(0, 0, 0, 0.55);
}
.skilltree-page .skilltree-map-node--capstone {
  position: relative;
  border-color: color-mix(in srgb, var(--cc-theme) 50%, #a67c2a);
  max-width: 104px;
}
.skilltree-page .skilltree-map-node__state {
  font-size: 0.5rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.7;
  line-height: 1;
  max-width: 100%;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.skilltree-page .skilltree-map-node.is-locked {
  opacity: 0.48;
  filter: saturate(0.5);
}
.skilltree-page .skilltree-map-node.is-available {
  border-color: color-mix(in srgb, var(--cc-theme) 78%, #fff 8%);
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--cc-theme) 30%, transparent),
    0 0 12px color-mix(in srgb, var(--cc-theme) 25%, transparent);
  animation: skilltree-map-pulse 2.6s ease-in-out infinite;
}
.skilltree-page .skilltree-map-node.is-maxed {
  border-color: color-mix(in srgb, var(--cc-theme) 45%, #3d6b4f);
  box-shadow: 0 0 10px color-mix(in srgb, var(--cc-theme) 16%, transparent);
}
.skilltree-page .skilltree-map-node.is-selected,
.skilltree-page .skilltree-map-node[aria-selected="true"] {
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--cc-theme) 55%, transparent),
    0 0 14px color-mix(in srgb, var(--cc-theme) 35%, transparent);
  border-color: color-mix(in srgb, var(--cc-theme) 90%, #fff 12%);
}

@keyframes skilltree-map-pulse {
  0%, 100% {
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--cc-theme) 28%, transparent),
      0 0 8px color-mix(in srgb, var(--cc-theme) 16%, transparent);
  }
  50% {
    box-shadow:
      0 0 0 1px color-mix(in srgb, var(--cc-theme) 50%, transparent),
      0 0 16px color-mix(in srgb, var(--cc-theme) 36%, transparent);
  }
}

.skilltree-page .skilltree-map-dock {
  display: grid;
  grid-template-columns: 88px 1fr auto;
  gap: 0.75rem 1rem;
  align-items: start;
  padding: 0.75rem 0.85rem;
  border: 1px solid color-mix(in srgb, var(--cc-theme, var(--gc-accent)) 28%, #2a3a45);
  border-radius: var(--gc-radius-sm, 2px);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--cc-theme, var(--gc-accent)) 8%, transparent), transparent 50%),
    rgba(8, 12, 16, 0.92);
}
.skilltree-page .skilltree-map-dock[hidden] { display: none !important; }
.skilltree-page .skilltree-map-dock__art {
  width: 88px;
  height: 88px;
  border: 1px solid color-mix(in srgb, var(--cc-theme, var(--gc-accent)) 25%, #2a3a45);
  background: #070b10;
  display: flex;
  align-items: center;
  justify-content: center;
}
.skilltree-page .skilltree-map-dock__art img {
  width: 80%;
  height: 80%;
  object-fit: contain;
}
.skilltree-page .skilltree-map-dock__title-row {
  display: flex;
  flex-wrap: wrap;
  align-items: baseline;
  gap: 0.35rem 0.65rem;
  margin-bottom: 0.25rem;
}
.skilltree-page .skilltree-map-dock__name {
  margin: 0;
  font-size: 0.95rem;
  letter-spacing: 0.02em;
}
.skilltree-page .skilltree-map-dock__rank {
  font-size: 0.75rem;
  opacity: 0.85;
  margin-left: auto;
}
.skilltree-page .skilltree-map-dock__badge {
  display: inline-block;
  margin: 0 0 0.35rem;
  font-size: 0.62rem;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  border: 1px solid #a67c2a;
  color: #e6c35a;
  padding: 0.1rem 0.35rem;
  border-radius: var(--gc-radius-sm, 2px);
}
.skilltree-page .skilltree-map-dock__badge[hidden] { display: none !important; }
.skilltree-page .skilltree-map-dock__desc {
  margin: 0 0 0.45rem;
  font-size: 0.8rem;
  line-height: 1.35;
  opacity: 0.85;
}
.skilltree-page .skilltree-map-dock__effects {
  list-style: none;
  margin: 0 0 0.5rem;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.2rem;
}
.skilltree-page .skilltree-map-dock__effect {
  display: flex;
  align-items: baseline;
  gap: 0.4rem;
  flex-wrap: wrap;
  font-size: 0.74rem;
  border: 1px solid color-mix(in srgb, var(--cc-theme, var(--gc-accent)) 22%, #2a3a45);
  background: rgba(0, 0, 0, 0.18);
  padding: 0.18rem 0.35rem;
  border-radius: var(--gc-radius-sm, 2px);
}
.skilltree-page .skilltree-map-dock__effect-label {
  opacity: 0.8;
}
.skilltree-page .skilltree-map-dock__effect-val {
  margin-left: auto;
  color: color-mix(in srgb, var(--cc-theme, var(--gc-accent)) 70%, #fff 20%);
}
.skilltree-page .skilltree-map-dock__effect-prep {
  font-size: 0.65rem;
  opacity: 0.65;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}
.skilltree-page .skilltree-map-dock__effect.is-prepared {
  border-style: dashed;
  opacity: 0.9;
}
.skilltree-page .skilltree-map-dock__rankbar {
  height: 4px;
  margin: 0 0 0.45rem;
  background: rgba(255, 255, 255, 0.06);
  border: 1px solid color-mix(in srgb, var(--cc-theme, var(--gc-accent)) 20%, #2a3a45);
  border-radius: var(--gc-radius-xs, 0);
  overflow: hidden;
}
.skilltree-page .skilltree-map-dock__rankbar-fill {
  display: block;
  height: 100%;
  width: 0;
  background: color-mix(in srgb, var(--cc-theme, var(--gc-accent)) 75%, #7dcea0 10%);
}
.skilltree-page .skilltree-map-dock__cost {
  margin: 0;
  font-size: 0.72rem;
  opacity: 0.8;
}
.skilltree-page .skilltree-map-dock__locked {
  margin: 0.35rem 0 0;
  font-size: 0.75rem;
  opacity: 0.75;
  color: color-mix(in srgb, var(--gc-text, #c8d4dc) 80%, #c97a5a);
}
.skilltree-page .skilltree-map-dock__locked[hidden] { display: none !important; }
.skilltree-page .skilltree-map-dock__actions {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.35rem;
  min-width: 8.5rem;
}
.skilltree-page .skilltree-map-dock__done {
  font-size: 0.72rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #7dcea0;
  text-align: center;
}

@media (max-width: 720px) {
  .skilltree-page .skilltree-map-dock {
    grid-template-columns: 72px 1fr;
  }
  .skilltree-page .skilltree-map-dock__actions {
    grid-column: 1 / -1;
    min-width: 0;
  }
  .skilltree-page .skilltree-map-dock__actions .gc-btn {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .cc-card,
  .cc-card-portrait,
  .cc-card-holo,
  .cc-active-badge,
  .skilltree-page .skilltree-map-node.is-available { transition: none !important; animation: none !important; }
  .cc-card.is-cc-hover,
  .cc-card:hover,
  .cc-card:focus-within { transform: none; }
  .cc-card-portrait { transform: none !important; }
}


/* === Combat Encounter Theater (GC-CT) — cinematic stage === */
.gc-combat-report-modal .gc-combat-report-dialog {
  width: min(980px, 100%);
}
.gc-combat-report-wrap[data-ct-wrap] {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.gc-combat-theater {
  position: relative;
  border: 1px solid rgba(70, 229, 255, 0.28);
  border-radius: var(--gc-radius-sm, 2px);
  background: #02060c;
  overflow: hidden;
  padding: 0;
  box-shadow:
    inset 0 0 0 1px rgba(120, 200, 255, 0.06),
    0 0 40px rgba(20, 80, 140, 0.18);
}
.gc-combat-theater.is-pirate {
  border-color: rgba(255, 140, 80, 0.4);
  box-shadow:
    inset 0 0 0 1px rgba(255, 140, 80, 0.08),
    0 0 40px rgba(140, 40, 10, 0.22);
}
.gc-ct-toolbar {
  position: relative;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 10px 12px 0;
}
.gc-ct-toolbar-left {
  display: flex;
  align-items: center;
  gap: 8px;
}
.gc-ct-live-pip {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: #5dff9a;
  box-shadow: 0 0 10px rgba(80, 255, 140, 0.85);
  animation: gc-ct-pip 1.4s ease-in-out infinite;
}
@keyframes gc-ct-pip {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.45; transform: scale(0.85); }
}
.gc-ct-round-label {
  font-size: 0.78rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(180, 230, 255, 0.92);
  text-shadow: 0 0 12px rgba(80, 200, 255, 0.35);
}
.gc-ct-arena {
  position: relative;
  display: grid;
  grid-template-columns: 1fr minmax(72px, 0.28fr) 1fr;
  gap: 4px;
  align-items: end;
  min-height: 340px;
  padding: 28px 14px 36px;
  isolation: isolate;
}
.gc-ct-arena.is-resolve {
  filter: brightness(1.12) saturate(1.15);
}
.gc-ct-arena.is-shake {
  animation: gc-ct-shake 0.45s ease-out;
}
@keyframes gc-ct-shake {
  0%, 100% { transform: translateX(0); }
  20% { transform: translateX(-5px) rotate(-0.3deg); }
  40% { transform: translateX(5px) rotate(0.3deg); }
  60% { transform: translateX(-3px); }
  80% { transform: translateX(2px); }
}
.gc-ct-backdrop {
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 0;
  overflow: hidden;
}
.gc-ct-nebula {
  position: absolute;
  border-radius: 50%;
  filter: blur(40px);
  opacity: 0.55;
}
.gc-ct-nebula--a {
  width: 55%;
  height: 70%;
  left: -10%;
  top: 10%;
  background: radial-gradient(circle, rgba(30, 110, 180, 0.55), transparent 70%);
  animation: gc-ct-nebula-drift 14s ease-in-out infinite alternate;
}
.gc-ct-nebula--b {
  width: 50%;
  height: 65%;
  right: -8%;
  top: 5%;
  background: radial-gradient(circle, rgba(140, 50, 180, 0.4), transparent 70%);
  animation: gc-ct-nebula-drift 18s ease-in-out infinite alternate-reverse;
}
.gc-combat-theater.is-pirate .gc-ct-nebula--a {
  background: radial-gradient(circle, rgba(180, 70, 30, 0.5), transparent 70%);
}
.gc-combat-theater.is-pirate .gc-ct-nebula--b {
  background: radial-gradient(circle, rgba(120, 20, 40, 0.45), transparent 70%);
}
@keyframes gc-ct-nebula-drift {
  from { transform: translate(0, 0) scale(1); }
  to { transform: translate(3%, 2%) scale(1.06); }
}
.gc-ct-stars { position: absolute; inset: 0; }
.gc-ct-star {
  position: absolute;
  left: var(--x);
  top: var(--y);
  width: var(--s);
  height: var(--s);
  border-radius: 50%;
  background: #dff6ff;
  opacity: 0.35;
  box-shadow: 0 0 4px rgba(200, 240, 255, 0.6);
  animation: gc-ct-twinkle 3.5s ease-in-out infinite;
  animation-delay: var(--d);
}
@keyframes gc-ct-twinkle {
  0%, 100% { opacity: 0.2; }
  50% { opacity: 0.85; }
}
.gc-ct-horizon {
  position: absolute;
  left: -5%;
  right: -5%;
  bottom: 18%;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(80, 200, 255, 0.35), transparent);
  box-shadow: 0 0 20px rgba(60, 180, 255, 0.25);
}
.gc-ct-planet {
  position: absolute;
  width: 160px;
  height: 160px;
  right: 8%;
  bottom: 8%;
  border-radius: 50%;
  background:
    radial-gradient(circle at 35% 30%, rgba(120, 180, 220, 0.35), transparent 40%),
    radial-gradient(circle at 60% 60%, rgba(40, 80, 120, 0.5), rgba(8, 16, 28, 0.9));
  opacity: 0.45;
  filter: blur(0.5px);
  box-shadow: inset -20px -10px 40px rgba(0, 0, 0, 0.55);
}
.gc-ct-grid {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 42%;
  background:
    linear-gradient(180deg, transparent, rgba(4, 10, 18, 0.85)),
    repeating-linear-gradient(90deg, transparent, transparent 38px, rgba(70, 180, 255, 0.05) 39px),
    repeating-linear-gradient(0deg, transparent, transparent 28px, rgba(70, 180, 255, 0.04) 29px);
  transform: perspective(420px) rotateX(58deg);
  transform-origin: center bottom;
  opacity: 0.7;
  mask-image: linear-gradient(180deg, transparent, #000 35%, #000);
}
.gc-ct-vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 75% 70% at 50% 45%, transparent 40%, rgba(0, 0, 0, 0.72) 100%);
}
.gc-ct-scanlines {
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent,
    transparent 2px,
    rgba(0, 0, 0, 0.08) 3px
  );
  opacity: 0.35;
  mix-blend-mode: multiply;
}
.gc-ct-fx {
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 1;
  overflow: hidden;
}
.gc-ct-particle {
  position: absolute;
  width: 2px;
  height: 2px;
  border-radius: 50%;
  background: rgba(140, 220, 255, 0.7);
  left: calc(6% + (var(--i) * 6.5%));
  top: calc(20% + (var(--i) * 9%) % 55%);
  animation: gc-ct-drift 7s linear infinite;
  animation-delay: calc(var(--i) * -0.45s);
  box-shadow: 0 0 6px rgba(100, 200, 255, 0.5);
}
@keyframes gc-ct-drift {
  0% { transform: translateY(0); opacity: 0.15; }
  50% { opacity: 0.8; }
  100% { transform: translateY(-28px); opacity: 0.1; }
}
.gc-ct-flash {
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 4;
  opacity: 0;
  background: radial-gradient(ellipse 50% 40% at 50% 50%, rgba(180, 230, 255, 0.35), transparent 70%);
}
.gc-ct-flash.is-on {
  animation: gc-ct-flash-pop 0.38s ease-out;
}
.gc-ct-flash.from-atk {
  background: radial-gradient(ellipse 45% 40% at 72% 48%, rgba(120, 220, 255, 0.4), transparent 70%);
}
.gc-ct-flash.from-def {
  background: radial-gradient(ellipse 45% 40% at 28% 48%, rgba(255, 160, 120, 0.35), transparent 70%);
}
@keyframes gc-ct-flash-pop {
  0% { opacity: 0; }
  30% { opacity: 1; }
  100% { opacity: 0; }
}
.gc-ct-side {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  gap: 10px;
  min-width: 0;
  transition: transform 0.18s ease, filter 0.18s ease;
}
.gc-ct-side-meta {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.gc-ct-side--attacker .gc-ct-side-meta { align-items: flex-start; }
.gc-ct-side--defender .gc-ct-side-meta { align-items: flex-end; text-align: right; }
.gc-ct-side.is-hit {
  filter: brightness(1.35) saturate(1.2);
}
.gc-ct-side--attacker.is-hit { transform: translateX(6px); }
.gc-ct-side--defender.is-hit { transform: translateX(-6px); }
.gc-ct-side-label {
  font-size: 0.62rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(140, 190, 220, 0.7);
}
.gc-ct-name {
  font-size: 1rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
  text-shadow: 0 0 18px rgba(80, 180, 255, 0.25);
}
.gc-ct-formation {
  display: flex;
  flex-wrap: nowrap;
  gap: 4px;
  align-items: flex-end;
  min-height: 110px;
  transition: transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1);
}
.gc-ct-side--attacker .gc-ct-formation {
  justify-content: flex-start;
  flex-direction: row;
}
.gc-ct-side--defender .gc-ct-formation {
  justify-content: flex-end;
  flex-direction: row-reverse;
}
.gc-ct-formation.is-lunging {
  transform: translateX(18px);
}
.gc-ct-side--defender .gc-ct-formation.is-lunging {
  transform: translateX(-18px);
}
.gc-ct-formation--defense {
  min-height: 0;
  margin-top: 4px;
  padding-top: 8px;
  border-top: 1px solid rgba(255, 180, 80, 0.15);
  opacity: 0.95;
}
.gc-ct-formation--defense.is-empty {
  display: none;
}
.gc-ct-slot {
  position: relative;
  width: 72px;
  text-align: center;
  animation: gc-ct-float-idle 3.6s ease-in-out infinite;
  animation-delay: calc(var(--ct-rank, 0) * -0.45s);
}
.gc-ct-slot.is-flagship {
  width: 128px;
  z-index: 2;
}
.gc-ct-slot.is-wing {
  width: 92px;
  margin-bottom: 10px;
}
.gc-ct-slot.is-escort {
  width: 64px;
  margin-bottom: 18px;
  opacity: 0.92;
}
.gc-ct-slot--defense {
  width: 52px !important;
  margin-bottom: 0 !important;
}
.gc-ct-slot--defense.is-flagship { width: 64px !important; }
@keyframes gc-ct-float-idle {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-7px); }
}
.gc-ct-slot-glow {
  position: absolute;
  left: 10%;
  right: 10%;
  bottom: 18%;
  height: 40%;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(70, 200, 255, 0.35), transparent 70%);
  filter: blur(8px);
  z-index: 0;
  pointer-events: none;
}
.gc-ct-side--defender .gc-ct-slot-glow {
  background: radial-gradient(ellipse, rgba(255, 140, 80, 0.3), transparent 70%);
}
.gc-ct-slot-img {
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  max-height: 96px;
  object-fit: contain;
  background: transparent !important;
  filter: drop-shadow(0 0 10px rgba(70, 200, 255, 0.45)) drop-shadow(0 8px 12px rgba(0, 0, 0, 0.55));
}
.gc-ct-slot.is-flagship .gc-ct-slot-img {
  max-height: 118px;
  filter: drop-shadow(0 0 16px rgba(90, 220, 255, 0.55)) drop-shadow(0 10px 16px rgba(0, 0, 0, 0.6));
}
.gc-ct-side--defender .gc-ct-slot-img {
  transform: scaleX(-1);
  filter: drop-shadow(0 0 10px rgba(255, 150, 80, 0.4)) drop-shadow(0 8px 12px rgba(0, 0, 0, 0.55));
}
.gc-ct-side--defender .gc-ct-slot.is-flagship .gc-ct-slot-img {
  filter: drop-shadow(0 0 16px rgba(255, 160, 90, 0.5)) drop-shadow(0 10px 16px rgba(0, 0, 0, 0.6));
}
.gc-ct-slot--defense .gc-ct-slot-img {
  max-height: 48px;
  transform: none !important;
  filter: drop-shadow(0 0 8px rgba(255, 180, 80, 0.45));
}
.gc-ct-slot-count {
  position: relative;
  z-index: 2;
  display: inline-block;
  margin-top: -4px;
  padding: 1px 6px;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: #e8f7ff;
  background: rgba(4, 12, 22, 0.82);
  border: 1px solid rgba(80, 180, 255, 0.35);
  border-radius: var(--gc-radius-sm, 2px);
  box-shadow: 0 0 10px rgba(40, 120, 200, 0.25);
}
.gc-ct-side--defender .gc-ct-slot-count {
  border-color: rgba(255, 160, 80, 0.35);
}
.gc-ct-muzzle {
  position: absolute;
  top: 42%;
  width: 14px;
  height: 14px;
  border-radius: 50%;
  opacity: 0;
  pointer-events: none;
  z-index: 3;
  background: radial-gradient(circle, #fff 0%, rgba(120, 220, 255, 0.8) 40%, transparent 70%);
}
.gc-ct-side--attacker .gc-ct-muzzle { right: -2px; }
.gc-ct-side--defender .gc-ct-muzzle { left: -2px; }
.gc-ct-slot.is-firing .gc-ct-muzzle {
  animation: gc-ct-muzzle 0.28s ease-out;
}
@keyframes gc-ct-muzzle {
  0% { opacity: 0; transform: scale(0.4); }
  40% { opacity: 1; transform: scale(1.4); }
  100% { opacity: 0; transform: scale(0.6); }
}
.gc-ct-vs {
  position: relative;
  z-index: 3;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding-bottom: 40px;
  align-self: center;
}
.gc-ct-rift {
  position: absolute;
  width: 3px;
  height: 140px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -55%);
  background: linear-gradient(180deg, transparent, rgba(120, 220, 255, 0.85), rgba(255, 200, 120, 0.7), transparent);
  box-shadow:
    0 0 18px rgba(100, 200, 255, 0.65),
    0 0 40px rgba(80, 160, 255, 0.35);
  animation: gc-ct-rift-pulse 2.4s ease-in-out infinite;
}
@keyframes gc-ct-rift-pulse {
  0%, 100% { opacity: 0.55; height: 130px; }
  50% { opacity: 1; height: 155px; }
}
.gc-ct-vs-badge {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 52px;
  padding: 8px 12px;
  border: 1px solid rgba(255, 220, 120, 0.55);
  border-radius: var(--gc-radius-sm, 2px);
  font-size: 0.95rem;
  font-weight: 800;
  letter-spacing: 0.14em;
  color: #ffe9b0;
  background: linear-gradient(180deg, rgba(60, 40, 10, 0.9), rgba(20, 12, 4, 0.95));
  box-shadow:
    0 0 24px rgba(255, 190, 80, 0.35),
    inset 0 0 12px rgba(255, 220, 140, 0.08);
  text-shadow: 0 0 10px rgba(255, 200, 100, 0.45);
}
.gc-ct-vs-place {
  position: relative;
  z-index: 1;
  font-size: 0.72rem;
  letter-spacing: 0.06em;
  color: rgba(180, 220, 255, 0.75);
  padding: 2px 8px;
  border: 1px solid rgba(80, 160, 220, 0.25);
  background: rgba(4, 12, 22, 0.65);
  border-radius: var(--gc-radius-sm, 2px);
}
.gc-ct-projectiles {
  pointer-events: none;
  position: absolute;
  inset: 0;
  z-index: 4;
  overflow: hidden;
}
.gc-ct-projectile {
  position: absolute;
  left: var(--ct-x0, 20%);
  top: var(--ct-y0, 50%);
  width: 18px;
  height: 3px;
  border-radius: 1px;
  background: #9ef0ff;
  box-shadow:
    0 0 10px rgba(80, 220, 255, 0.95),
    -10px 0 12px rgba(80, 200, 255, 0.45);
  opacity: 0;
}
.gc-ct-projectile.is-flying {
  animation: gc-ct-shot 0.72s ease-out forwards;
}
.gc-ct-projectile.is-plasma {
  width: 22px;
  height: 5px;
  background: #d4a0ff;
  box-shadow:
    0 0 14px rgba(180, 100, 255, 0.95),
    -12px 0 16px rgba(160, 80, 255, 0.5);
}
.gc-ct-projectile.is-kinetic {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #ffd27a;
  box-shadow: 0 0 12px rgba(255, 200, 100, 0.9);
}
.gc-ct-projectile.is-missile {
  width: 26px;
  height: 4px;
  background: linear-gradient(90deg, #ff8a4a, #ffd0a0);
  box-shadow:
    0 0 12px rgba(255, 120, 60, 0.9),
    -14px 0 18px rgba(255, 100, 40, 0.45);
  animation-duration: 0.95s;
}
.gc-ct-projectile.is-flak {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #ffe8a0;
  box-shadow: 0 0 14px rgba(255, 240, 160, 1);
  animation-duration: 0.48s;
}
.gc-ct-projectile.is-from-defender.is-flying {
  animation-name: gc-ct-shot-rev;
}
@keyframes gc-ct-shot {
  0% { opacity: 0; transform: translate(0, 0) scaleX(0.5); }
  12% { opacity: 1; }
  100% {
    opacity: 0;
    left: var(--ct-x1, 80%);
    top: var(--ct-y1, 50%);
    transform: translate(0, 0) scaleX(1.35);
  }
}
@keyframes gc-ct-shot-rev {
  0% { opacity: 0; transform: translate(0, 0) scaleX(0.5); }
  12% { opacity: 1; }
  100% {
    opacity: 0;
    left: var(--ct-x1, 20%);
    top: var(--ct-y1, 50%);
    transform: translate(0, 0) scaleX(1.35);
  }
}
.gc-ct-dmg {
  min-height: 1.6rem;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  align-items: baseline;
}
.gc-ct-side--defender .gc-ct-dmg { justify-content: flex-end; }
.gc-ct-dmg-num {
  font-size: 1.15rem;
  font-weight: 800;
  color: #ff8aa8;
  text-shadow: 0 0 14px rgba(255, 80, 120, 0.55);
  animation: gc-ct-float 0.85s ease-out;
}
.gc-ct-dmg-heavy {
  font-size: 0.68rem;
  letter-spacing: 0.1em;
  font-weight: 700;
  color: #ffc078;
  border: 1px solid rgba(255, 180, 80, 0.45);
  padding: 1px 5px;
  border-radius: var(--gc-radius-sm, 2px);
  background: rgba(40, 20, 4, 0.7);
}
@keyframes gc-ct-float {
  0% { transform: translateY(10px) scale(0.9); opacity: 0; }
  35% { opacity: 1; }
  100% { transform: translateY(-8px) scale(1); opacity: 0.9; }
}
.gc-ct-caption {
  position: relative;
  z-index: 5;
  margin: 0;
  padding: 0 12px 10px;
  text-align: center;
  font-size: 0.78rem;
  letter-spacing: 0.04em;
  color: rgba(170, 210, 235, 0.7);
}
.gc-ct-finale {
  position: relative;
  z-index: 5;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 8px;
  margin: 0 12px 12px;
  padding: 12px;
  border: 1px solid rgba(255, 220, 140, 0.22);
  border-radius: var(--gc-radius-sm, 2px);
  background: linear-gradient(180deg, rgba(20, 28, 40, 0.9), rgba(6, 10, 16, 0.95));
  box-shadow: 0 0 28px rgba(80, 160, 255, 0.12);
}
.gc-ct-finale[hidden] { display: none !important; }
.gc-ct-finale-label {
  width: 100%;
  text-align: center;
  font-size: 1.05rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  margin-bottom: 4px;
  text-transform: uppercase;
}
.gc-ct-finale.is-attacker .gc-ct-finale-label { color: #7dffb0; text-shadow: 0 0 16px rgba(80, 255, 160, 0.35); }
.gc-ct-finale.is-defender .gc-ct-finale-label { color: #ff9ab8; text-shadow: 0 0 16px rgba(255, 100, 140, 0.35); }
.gc-ct-finale.is-draw .gc-ct-finale-label { color: #ffd078; text-shadow: 0 0 16px rgba(255, 200, 100, 0.35); }
.gc-combat-report-payload[data-ct-report][hidden] {
  display: none !important;
}
@media (max-width: 720px) {
  .gc-ct-arena {
    grid-template-columns: 1fr;
    grid-template-rows: auto auto auto;
    min-height: 0;
    padding: 16px 10px 24px;
  }
  .gc-ct-vs { order: 0; padding-bottom: 8px; }
  .gc-ct-side--attacker { order: 1; }
  .gc-ct-side--defender { order: 2; }
  .gc-ct-slot.is-flagship { width: 100px; }
  .gc-ct-slot.is-wing { width: 76px; }
  .gc-ct-planet { opacity: 0.25; width: 100px; height: 100px; }
  .gc-ct-grid { height: 28%; }
}
/* --- Per-unit bolt signatures (GC-CT-FX) --- */
.gc-ct-arena.is-firing .gc-ct-particle {
  opacity: 1;
  filter: brightness(1.4);
}
.gc-ct-impact {
  position: absolute;
  left: 40%;
  top: 45%;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(circle, rgba(255, 240, 200, 0.9), rgba(80, 180, 255, 0.35), transparent 70%);
  animation: gc-ct-impact-pop 0.45s ease-out forwards;
  z-index: 5;
}
@keyframes gc-ct-impact-pop {
  0% { opacity: 0; transform: scale(0.3); }
  35% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0; transform: scale(1.8); }
}
.gc-ct-flash.is-heavy {
  background: radial-gradient(ellipse 55% 45% at 50% 48%, rgba(255, 120, 220, 0.45), transparent 70%);
}
.gc-ct-bolt {
  /* base shared by all signatures */
}
.gc-ct-bolt.is-twin {
  opacity: 0.7;
  height: 2px;
}
.gc-ct-slot.is-firing[data-ct-bolt] .gc-ct-muzzle {
  opacity: 1;
}
.gc-ct-slot.is-firing[data-ct-bolt="planet_breaker"] .gc-ct-muzzle,
.gc-ct-slot.is-firing[data-ct-bolt="eclipse_runner"] .gc-ct-muzzle {
  width: 22px;
  height: 22px;
  background: radial-gradient(circle, #fff 0%, rgba(220, 100, 255, 0.9) 40%, transparent 70%);
}
.gc-ct-slot.is-firing[data-ct-bolt="flak_array"] .gc-ct-muzzle {
  background: radial-gradient(circle, #ffe8a0 0%, rgba(255, 180, 60, 0.85) 45%, transparent 70%);
}

/* Ships */
.gc-ct-bolt--spark_drone {
  width: 5px; height: 5px; border-radius: 50%;
  background: #ffe566;
  box-shadow: 0 0 8px #ffd040, -6px 0 8px rgba(255, 200, 60, 0.5);
  animation-duration: 0.48s !important;
}
.gc-ct-bolt--veil_probe {
  width: 14px; height: 1px;
  background: rgba(160, 240, 255, 0.55);
  box-shadow: 0 0 6px rgba(120, 220, 255, 0.4);
  animation-duration: 0.55s !important;
}
.gc-ct-bolt--falcon_interceptor {
  width: 20px; height: 2px;
  background: #7be7ff;
  box-shadow: 0 0 12px #46e5ff, -12px 0 14px rgba(70, 220, 255, 0.55);
  animation-duration: 0.62s !important;
}
.gc-ct-bolt--solar_skiff {
  width: 26px; height: 3px;
  background: linear-gradient(90deg, #ffd76a, #fff3c0);
  box-shadow: 0 0 14px rgba(255, 210, 80, 0.85), -14px 0 16px rgba(255, 190, 60, 0.45);
  animation-duration: 0.7s !important;
}
.gc-ct-bolt--mule_courier {
  width: 10px; height: 5px; border-radius: 1px;
  background: #c4a882;
  box-shadow: 0 0 6px rgba(180, 140, 90, 0.6);
  animation-duration: 0.78s !important;
}
.gc-ct-bolt--atlas_hauler {
  width: 14px; height: 7px; border-radius: 1px;
  background: #8a7a68;
  box-shadow: 0 0 8px rgba(120, 100, 80, 0.7);
  animation-duration: 0.9s !important;
}
.gc-ct-bolt--ironclad_frigate {
  width: 18px; height: 4px;
  background: #f0f7ff;
  box-shadow: 0 0 14px #6ab0ff, -10px 0 18px rgba(80, 160, 255, 0.65);
  animation-duration: 0.68s !important;
}
.gc-ct-bolt--eclipse_runner {
  width: 12px; height: 12px; border-radius: 50%;
  background: radial-gradient(circle, #ffb0ff, #a040ff 60%, transparent 70%);
  box-shadow: 0 0 18px rgba(200, 80, 255, 0.95), -10px 0 20px rgba(160, 40, 255, 0.5);
  animation-duration: 0.75s !important;
}
.gc-ct-bolt--harvest_reclaimer {
  width: 22px; height: 2px;
  background: #7dffb0;
  box-shadow: 0 0 12px rgba(80, 255, 160, 0.8), -12px 0 14px rgba(60, 220, 140, 0.45);
  animation-duration: 0.66s !important;
}
.gc-ct-bolt--seed_ark {
  width: 22px; height: 4px; border-radius: 2px;
  background: linear-gradient(90deg, #ff8a4a, #ffd0a0);
  box-shadow: 0 0 12px rgba(255, 120, 60, 0.85), -16px 0 20px rgba(255, 100, 40, 0.4);
  animation-duration: 0.95s !important;
}
.gc-ct-bolt--deep_vault_ark {
  width: 28px; height: 5px; border-radius: 2px;
  background: linear-gradient(90deg, #ff6a30, #ffc080);
  box-shadow: 0 0 16px rgba(255, 100, 40, 0.95), -18px 0 24px rgba(255, 80, 20, 0.5);
  animation-duration: 1.05s !important;
}
.gc-ct-bolt--planet_breaker {
  width: 18px; height: 18px; border-radius: 50%;
  background: radial-gradient(circle, #fff, #ff66dd 45%, #a01080 70%, transparent 75%);
  box-shadow: 0 0 24px rgba(255, 80, 200, 1), -12px 0 28px rgba(200, 40, 180, 0.55);
  animation-duration: 1.1s !important;
}

/* Defense */
.gc-ct-bolt--slug_launcher {
  width: 9px; height: 5px; border-radius: 1px;
  background: #ffb060;
  box-shadow: 0 0 8px rgba(255, 150, 60, 0.75);
  animation-duration: 0.58s !important;
}
.gc-ct-bolt--sentinel_turret {
  width: 18px; height: 2px;
  background: #ff6a6a;
  box-shadow: 0 0 12px rgba(255, 80, 80, 0.85), -10px 0 12px rgba(255, 60, 60, 0.4);
  animation-duration: 0.6s !important;
}
.gc-ct-bolt--plasma_arc {
  width: 16px; height: 6px;
  background: linear-gradient(90deg, #c48cff, #80e0ff);
  box-shadow: 0 0 14px rgba(180, 100, 255, 0.9);
  clip-path: polygon(0 40%, 70% 0, 100% 50%, 70% 100%, 0 60%);
  animation-duration: 0.72s !important;
}
.gc-ct-bolt--ion_bastion {
  width: 30px; height: 5px;
  background: linear-gradient(90deg, #a8e8ff, #e8ffff);
  box-shadow: 0 0 18px rgba(120, 220, 255, 1), -16px 0 22px rgba(100, 200, 255, 0.55);
  animation-duration: 0.8s !important;
}
.gc-ct-bolt--flak_array {
  width: 4px; height: 4px; border-radius: 50%;
  background: #ffe8a0;
  box-shadow: 0 0 10px rgba(255, 230, 140, 1), 0 0 18px rgba(255, 180, 60, 0.6);
  animation-duration: 0.42s !important;
}
.gc-ct-bolt--pulse_barrier {
  width: 16px; height: 16px; border-radius: 50%;
  background: transparent;
  border: 2px solid rgba(120, 220, 255, 0.85);
  box-shadow: 0 0 14px rgba(80, 200, 255, 0.7);
  animation-duration: 0.55s !important;
  animation-name: gc-ct-pulse-ring !important;
}
.gc-ct-bolt--pulse_barrier.is-from-defender.is-flying {
  animation-name: gc-ct-pulse-ring !important;
}
@keyframes gc-ct-pulse-ring {
  0% { opacity: 0; transform: scale(0.4); left: var(--ct-x0, 20%); top: var(--ct-y0, 50%); }
  25% { opacity: 1; }
  100% { opacity: 0; transform: scale(1.8); left: var(--ct-x1, 50%); top: var(--ct-y1, 50%); }
}
.gc-ct-bolt--orbital_shield {
  width: 20px; height: 4px; border-radius: 2px;
  background: linear-gradient(90deg, #c8d4e0, #f0f4f8);
  box-shadow: 0 0 12px rgba(200, 220, 240, 0.85), -14px 0 16px rgba(180, 200, 220, 0.4);
  animation-duration: 0.88s !important;
}
.gc-ct-bolt--laser_mid {
  width: 16px; height: 3px;
  background: #9ef0ff;
  box-shadow: 0 0 10px rgba(80, 220, 255, 0.9);
}

/* Legacy family aliases still used as fallbacks */
.gc-ct-projectile.is-laser { /* kept for safety */ }

@media (prefers-reduced-motion: reduce) {
  .gc-ct-particle,
  .gc-ct-projectile.is-flying,
  .gc-ct-dmg-num,
  .gc-ct-formation.is-lunging,
  .gc-ct-slot,
  .gc-ct-nebula,
  .gc-ct-star,
  .gc-ct-rift,
  .gc-ct-live-pip,
  .gc-ct-arena.is-shake {
    animation: none !important;
    transition: none !important;
  }
}
