/*!*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[2].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[13].oneOf[2].use[2]!./node_modules/next/font/google/target.css?{"path":"app/layout.tsx","import":"Rajdhani","arguments":[{"subsets":["latin"],"weight":["500","600","700"],"variable":"--font-hud","display":"swap","adjustFontFallback":true}],"variableName":"hudFont"} ***!
  \*********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* devanagari */
@font-face {
  font-family: '__Rajdhani_cc7473';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/b009b118a8c58d8c-s.woff2) format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
/* latin-ext */
@font-face {
  font-family: '__Rajdhani_cc7473';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/264c8506a75dd158-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: '__Rajdhani_cc7473';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url(/_next/static/media/3d26d2f3aa81a833-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* devanagari */
@font-face {
  font-family: '__Rajdhani_cc7473';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/04971cd00c9d3b68-s.woff2) format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
/* latin-ext */
@font-face {
  font-family: '__Rajdhani_cc7473';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/1a22315a480e72db-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: '__Rajdhani_cc7473';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/6e1768769e6f59a2-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* devanagari */
@font-face {
  font-family: '__Rajdhani_cc7473';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/67695be07a46cf4c-s.woff2) format('woff2');
  unicode-range: U+0900-097F, U+1CD0-1CF9, U+200C-200D, U+20A8, U+20B9, U+20F0, U+25CC, U+A830-A839, U+A8E0-A8FF, U+11B00-11B09;
}
/* latin-ext */
@font-face {
  font-family: '__Rajdhani_cc7473';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/bcc69932347c6777-s.woff2) format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: '__Rajdhani_cc7473';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/ab2e3a11646b0499-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: '__Rajdhani_Fallback_cc7473';src: local("Arial");ascent-override: 102.12%;descent-override: 37.99%;line-gap-override: 0.00%;size-adjust: 91.07%
}.__className_cc7473 {font-family: '__Rajdhani_cc7473', '__Rajdhani_Fallback_cc7473';font-style: normal
}.__variable_cc7473 {--font-hud: '__Rajdhani_cc7473', '__Rajdhani_Fallback_cc7473'
}

/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[2].use[1]!./node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[13].oneOf[2].use[2]!./node_modules/next/font/google/target.css?{"path":"app/layout.tsx","import":"Orbitron","arguments":[{"subsets":["latin"],"weight":["600","700","800","900"],"variable":"--font-jarvis-brand","display":"swap","adjustFontFallback":true}],"variableName":"jarvisBrandFont"} ***!
  \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/* latin */
@font-face {
  font-family: '__Orbitron_c30b06';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url(/_next/static/media/9a4ee768fed045da-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: '__Orbitron_c30b06';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url(/_next/static/media/9a4ee768fed045da-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: '__Orbitron_c30b06';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url(/_next/static/media/9a4ee768fed045da-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin */
@font-face {
  font-family: '__Orbitron_c30b06';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url(/_next/static/media/9a4ee768fed045da-s.p.woff2) format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}@font-face {font-family: '__Orbitron_Fallback_c30b06';src: local("Arial");ascent-override: 81.50%;descent-override: 19.59%;line-gap-override: 0.00%;size-adjust: 124.05%
}.__className_c30b06 {font-family: '__Orbitron_c30b06', '__Orbitron_Fallback_c30b06';font-style: normal
}.__variable_c30b06 {--font-jarvis-brand: '__Orbitron_c30b06', '__Orbitron_Fallback_c30b06'
}

/*!*************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!./app/globals.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************/
/**
 * Jarvis HUD — material + layout owner (imported from app/layout.tsx).
 * Macro rim: HudMacroShellSvg.tsx (#HUD_UNIFIED_SHELL_RIM_V1) owns wide-mode hull (flat rail fill); CSS = layout + non-macro paint. Command uplink chrome: command-uplink-plate.css (imported after this file in layout.tsx).
 * Stack mode (max-width 1100px): macro SVG hidden — HUD v2 uses body.jx-body--hud-v2 .jx-console inset ring: var(--jx-plate-chrome-rim-width) + var(--jx-plate-chrome-border) (see BUILD_CONTEXT.md).
 * Shell-adjacent layout tokens: HudMacroShellSvg.applyHudBridgeCssVars on .jx-chassis (same math as computeShellLayout). :root = fallbacks / materials.
 * Panel/title/dock/controls: fills + layout; border-radius 0 on shell-adjacent surfaces (except .jx-led).
 */

:root {
  --jx-void: #050608;
  --jx-gun-0: #0a0c10;
  --jx-gun-1: #060708;
  --jx-accent-signal: rgba(212, 165, 88, 0.55);
  --jx-metal-1: #2a2e36;
  --jx-metal-2: #1e2228;
  --jx-metal-3: #14161c;
  --jx-metal-4: #0c0e12;
  --jx-radius-outer: 0px;
  --jx-radius-inner: 0px;
  --jx-radius-title: 0px;
  --jx-radius-panel: 0px;
  /* Darker gunmetal vs chrome rail; center bay = panel token */
  --jx-panel-surface: linear-gradient(180deg, #181e26 0%, #111821 46%, #070a10 100%);
  /* Inset plates — center title + hub use same fill as rail mission/archive boxes */
  --jx-support-plate-fill: linear-gradient(180deg, #192433 0%, #121b28 38%, #090f18 72%, #05080f 100%);
  --jx-title-plate-fill: var(--jx-support-plate-fill);
  --jx-plate-border: 1px solid rgba(32, 40, 52, 0.95);
  --jx-plate-shadow:
    inset 0 1px 0 rgba(120, 155, 185, 0.11),
    inset 0 -2px 0 rgba(0, 0, 0, 0.5),
    0 3px 14px rgba(0, 0, 0, 0.4);
  /* Unified raised control face — hub, rail, dock +/↑ */
  --jx-control-bevel: linear-gradient(180deg, #455364 0%, #323c48 48%, #262d37 52%, #181d25 100%);
  --jx-control-bevel-hover: linear-gradient(180deg, #506171 0%, #3a4652 48%, #2e3640 52%, #1f252d 100%);
  /* Wordmark chrome — shared by hero + boxed section titles (publication HUD) */
  --jx-chrome-fill-primary: linear-gradient(
    180deg,
    #ffffff 0%,
    #f6fbff 10%,
    #d2deea 30%,
    #f0f5fb 46%,
    #9fb3c8 58%,
    #e6eff7 76%,
    #5e6e80 100%
  );
  --jx-chrome-fill-sub: linear-gradient(
    180deg,
    #e8f2ff 0%,
    #b4c7da 26%,
    #dde7f2 46%,
    #7a8b9e 54%,
    #c7d6e6 74%,
    #4f6072 100%
  );
  --jx-console-body-fill: var(--jx-panel-surface);
  --jx-workspace-field: linear-gradient(180deg, #161a20 0%, #11151a 48%, #0a0c10 100%);
  /* Channel trough retired — inter-panel mass = SVG only (see .jx-divider transparent) */
  --jx-surface-1: #080a0e;
  --jx-surface-2: #0c0e14;
  --jx-surface-3: #0e1016;
  --jx-surface-4: #12151c;
  --jx-panel-face: var(--jx-panel-surface);
  --jx-panel-field: var(--jx-panel-surface);
  --jx-line-outer: #6a727c;
  --jx-line-inner: #4a525c;
  /* Restrained cool trim for micro-UI only — not shell visibility */
  --jx-line-accent: rgba(110, 145, 158, 0.35);
  --jx-line-guide: 2px;
  --jx-line-thin: 1px;
  --jx-plate-r-rail: var(--jx-radius-panel);
  --jx-plate-r-title: var(--jx-radius-title);
  --jx-plate-r-crown: 0;
  --jx-plate-r-console: var(--jx-radius-panel);
  --jx-plate-r-dock: var(--jx-radius-panel);
  /* Unified SVG rim steel (single family); higher contrast chrome vs panels */
  --jx-shell-body: #050810;
  --jx-shell-face: #4a5e75;
  --jx-shell-hi: #c4d0de;
  /*
   * Plate / content hole insets: fallbacks — live values set on .jx-chassis (OUTER_RIM_TOTAL = 22, flush viewport chrome).
   * TS export: HUD_SHELL_CONTENT_INSET_PX = OUTER_RIM_TOTAL.
   */
  --jx-chassis-inset-x: 22px;
  --jx-chassis-inset-top: 22px;
  --jx-chassis-inset-bottom: 22px;
  --jx-outer-rim: var(--jx-chassis-inset-x);
  --jx-separator-channel: 16px;
  --jx-top-safe: var(--jx-chassis-inset-top);
  --jx-bottom-safe: var(--jx-chassis-inset-bottom);
  --jx-side-safe: 20px;
  --jx-center-inset: 0px;
  /* Live: HudMacroShellSvg sets to center rail inner depth so title/bay align with SVG annulus */
  --jx-hud-center-rail-inset: 0px;
  --jx-title-band-h: 225px;
  /* Title typography scale (hero + subline) — keep in sync with TITLE_BAND_H_PX */
  --jx-title-font-scale-primary: 1;
  --jx-title-font-scale-sub: 1;
  /* Command uplink rail — textarea + chrome controls scale together */
  --jx-dock-h: 126px;
  /* Zero flex gap between title / bay / dock — no seam strip showing through stack */
  --jx-center-gap: 0px;
  /* Side rail content inset — production geometry lock */
  --jx-panel-inset-x: 16px;
  --jx-panel-inset-y-top: 14px;
  --jx-panel-inset-y-bottom: 14px;
  --jx-inner-rim: 0px;
  --jx-layout-rail-grow: 20;
  --jx-layout-center-grow: 50;
  /* Fallback until HudMacroShellSvg sets live --jx-chassis-grid-cols on .jx-chassis (same fr + channel as TS). */
  --jx-chassis-grid-cols: minmax(0, 20fr) var(--jx-separator-channel) minmax(0, 50fr) var(--jx-separator-channel) minmax(0, 20fr);
  --jx-chassis-pad: 4px;
  --jx-chassis-gap: 0px;
  --jx-title-h: var(--jx-title-band-h);
  /* SVG reads unified tokens (backward-compatible names) */
  --jx-shell-outer-body: var(--jx-shell-body);
  --jx-shell-outer-face: var(--jx-shell-face);
  --jx-shell-outer-highlight: var(--jx-shell-hi);
  --jx-shell-inner-body: var(--jx-shell-body);
  --jx-shell-inner-face: var(--jx-shell-face);
  --jx-shell-inner-highlight: var(--jx-shell-hi);
  /* Side bay fill — single gunmetal field; no border/shadow frame language */
  /* Side rails: same stack as --jx-panel-surface */
  --jx-rail-mass: var(--jx-panel-surface);
  --jx-dock-surface: linear-gradient(180deg, #121c28 0%, #0e1822 50%, #0a141c 100%);
  --jx-space-xs: var(--jx-chassis-pad);
  --jx-space-sm: 6px;
  --jx-space-md: 8px;
  --jx-space-lg: 10px;
  --jx-space-xl: 12px;
  --jx-space-2xl: 16px;
  /* Narrow viewport: rail max-height when chassis stacks (breakpoint width is @media below — var() invalid in MQ). */
  --jx-stack-rail-max-height: 42vh;
  --jx-rail-outer-r: var(--jx-plate-r-rail);
}

/* ========== HUD v2 cockpit tokens (aerospace / Iron Man pass — BIG SWING) ========== */
body.jx-body--hud-v2 {
  /* Cockpit field: almost-black */
  --jx-workspace-field: #000105;

  /* Rails: keep blue-silver chrome (used only by SVG) */
  --jx2-rail-chrome-deep: #0b1220;
  --jx2-rail-chrome-body: #21314a;
  --jx2-rail-chrome-mid: #9fb7f0;
  --jx2-rail-chrome-hi: #f0f6ff;

  /* Default v2 plate material (non-main slabs) */
  --jx-support-plate-fill: linear-gradient(
    180deg,
    rgba(34, 58, 104, 0.85),
    rgba(18, 32, 64, 0.94)
  );
  --jx-plate-border: 1px solid rgba(180, 220, 255, 0.75);
  --jx-plate-shadow:
    0 16px 40px rgba(0, 0, 0, 0.98),
    inset 0 1px 0 rgba(230, 245, 255, 0.5),
    inset 0 -3px 6px rgba(0, 0, 0, 0.95);

  /* Title uses its own explicit obsidian override below */
  --jx-title-plate-fill: #0B1215;

  /* Accent LEDs/glow */
  --jx-accent-signal: rgba(140, 230, 255, 0.95);

  /*
   * Frost hi — same hue as `.jx-title` top inset line (`inset 0 2px 0 …`).
   * Rims use higher alpha so 3px borders read; title band keeps softer 0.7 for inner glow.
   */
  --jx-title-inset-frost-top: rgba(240, 250, 255, 0.7);
  --jx-plate-chrome-border: rgba(240, 250, 255, 0.92);
  /* Same rim weight everywhere: secondary tablets, command uplink, stack-mode console inset */
  --jx-plate-chrome-rim-width: 3px;

  /* Rail stack: uniform vertical rhythm between support plates (inset-top > gap for breathing room below shell). */
  --jx-rail-stack-gap: var(--jx-space-lg);
  --jx-rail-stack-inset-top: calc(var(--jx-space-xl) + var(--jx-rail-stack-gap));
  /* Primary / secondary slabs — shorter vertical footprint; horizontal slightly tighter */
  --jx-plate-inset-h: calc(14px * 0.97);
  --jx-plate-inset-v-bottom: calc(12px * 0.97);
  --jx-plate-radius-unified: calc(10px * 0.97);
  /* Secondary slabs — 40% smaller than primary (×0.6) */
  --jx-plate-secondary-inset-h: calc(var(--jx-plate-inset-h) * 0.6);
  --jx-plate-secondary-inset-v-bottom: calc(var(--jx-plate-inset-v-bottom) * 0.6);
  --jx-plate-secondary-radius: calc(var(--jx-plate-radius-unified) * 0.6);

  /* Support tablets — one shared material for every rail slab (primary + secondary). */
  --jx-hud-v2-tablet-surface: #1f2f4d;
  --jx-hud-v2-tablet-bg-layers:
    radial-gradient(
      ellipse 108% 62% at 50% -12%,
      rgba(255, 255, 255, 0.14) 0%,
      rgba(140, 175, 220, 0.06) 28%,
      transparent 58%
    ),
    radial-gradient(ellipse 90% 45% at 100% 100%, rgba(0, 0, 0, 0.48) 0%, transparent 52%),
    radial-gradient(ellipse 70% 50% at 0% 88%, rgba(0, 0, 0, 0.32) 0%, transparent 48%),
    linear-gradient(
      165deg,
      rgba(255, 255, 255, 0.07) 0%,
      rgba(90, 120, 175, 0.05) 22%,
      transparent 46%,
      rgba(0, 0, 0, 0.28) 100%
    ),
    linear-gradient(180deg, #2d4568 0%, #263d5e 18%, #1f2f4d 52%, #18263e 82%, #121d32 100%);

  /*
   * Archive plate (empty) = master geometry: plate padding + “Archive” title line + gap + one column
   * (subtitle + sm chip row, 30px min button). All rail support plates use this min outer height.
   */
  --jx-archive-geometry-title-line: calc(1.28 * clamp(11px, 1.15vw, 14px));
  --jx-archive-geometry-head-gap: 6px;
  --jx-archive-geometry-body-min: calc(1.25 * clamp(9px, 0.88vw, 11px) + 4px + 30px);
  --jx-rail-support-plate-min-h: calc(
    var(--jx-plate-secondary-inset-h) + var(--jx-plate-secondary-inset-v-bottom) +
      var(--jx-archive-geometry-title-line) + var(--jx-archive-geometry-head-gap) + var(--jx-archive-geometry-body-min)
  );
}

/* HUD V2: MAIN PLATES = OBSIDIAN (strict owners only) */
body.jx-body--hud-v2 .jx-rail--left,
body.jx-body--hud-v2 .jx-rail--left .jx-rail-body,
body.jx-body--hud-v2 .jx-rail--right,
body.jx-body--hud-v2 .jx-rail--right .jx-rail-body,
body.jx-body--hud-v2 .jx-bay,
body.jx-body--hud-v2 .jx-main,
body.jx-body--hud-v2 .jx-work,
body.jx-body--hud-v2 .jx-title {
  background-color: #0B1215;
  background-image: none;
}

body.jx-body--hud-v2 .jx-title {
  /* Deep, pressed-in bevel for center title band */
  box-shadow:
    0 24px 60px rgba(0, 0, 0, 1),
    0 0 0 2px rgba(0, 0, 0, 0.95),
    inset 0 2px 0 var(--jx-title-inset-frost-top),
    inset 0 -4px 8px rgba(0, 0, 0, 1),
    inset 0 0 22px rgba(0, 0, 0, 0.9);
  border: 0;
}

html {
  height: 100%;
  width: 100%;
  margin: 0;
  padding: 0;
  overflow: hidden;
  box-sizing: border-box;
  /* Margin strip outside cockpit SVG inset: must match rim body or it reads as a second outer frame */
  background-color: var(--jx-shell-body);
}

html, body {
  max-width: none;
}

body,
body.jx-body {
  width: 100%;
  min-height: 100dvh;
  height: 100dvh;
  margin: 0;
  padding: 0;
  overflow: hidden;
  box-sizing: border-box;
}

body.jx-body {
  background-color: var(--jx-shell-body);
  background-image: none;
  color: #e8ecf2;
  font-family: var(--font-hud), "Segoe UI", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

/* App root from page.tsx fills viewport */
body.jx-body > .jx-root {
  flex: 1 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  max-width: none;
  display: flex;
  flex-direction: column;
  align-self: stretch;
  padding: 0;
}

/* ========== Full-viewport HUD shell (DOM layout fills viewport; macro strokes = SVG only) ========== */
.jx-root {
  width: 100%;
  min-width: 0;
  max-width: none;
  min-height: 0;
  flex: 1 1;
  display: flex;
  flex-direction: column;
  align-self: stretch;
}

.jx-viewport {
  flex: 1 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  max-width: none;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  padding: 0;
  align-self: stretch;
}

/* Shell only — no macro geometry (SVG + plates live inside .jx-chassis). */
.jx-frame {
  flex: 1 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  max-width: none;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  box-sizing: border-box;
  border-radius: 0;
  overflow: hidden;
  border: none;
  padding: 0;
  outline: none;
  box-shadow: none;
  background: transparent;
}

.jx-chassis {
  position: relative;
  flex: 1 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  max-width: none;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  border: none;
  outline: none;
  box-shadow: none;
  /* Neutral plate field — all perimeter/rim read comes from SVG only. */
  background-color: transparent;
  overflow: hidden;
}

/* No CSS geometry may impersonate the macro shell rim (SVG-only stroke family). */
.jx-chassis,
.jx-frame,
.jx-rail,
.jx-rail--left,
.jx-rail--right,
.jx-shell,
.jx-shell-rail,
.jx-shell-border,
.jx-shell-outline,
.jx-shell-rim,
.jx-divider,
.jx-title-band,
.jx-title-plate,
.jx-bay,
.jx-dock,
.jx-center,
.jx-title,
.jx-main,
.jx-panel-shell,
.jx-plate--title,
.jx-plate--bay,
.jx-plate--rail-left,
.jx-plate--rail-right,
.jx-plate--center {
  border: 0 !important;
  outline: 0 !important;
  box-shadow: none !important;
}

/* Welded to outer chassis interior — same inset as SVG innerL/T/R/B (no floating vertical band) */
.jx-chassis-inner {
  position: absolute;
  top: var(--jx-chassis-inset-top);
  right: var(--jx-chassis-inset-x);
  bottom: var(--jx-chassis-inset-bottom);
  left: var(--jx-chassis-inset-x);
  display: flex;
  flex-direction: column;
  min-width: 0;
  min-height: 0;
  box-sizing: border-box;
  margin: 0;
}

/*
 * Five-slot grid — columns from --jx-chassis-grid-cols (written by HudMacroShellSvg.applyHudBridgeCssVars).
 */
.jx-chassis-plates {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: grid;
  grid-template-columns: var(--jx-chassis-grid-cols);
  grid-template-rows: 1fr;
  align-items: stretch;
  pointer-events: none;
}

.jx-plate--rail-left,
.jx-plate--rail-right {
  min-width: 0;
  min-height: 0;
  /* No underlay slab — interactive .jx-rail--* owns side fill; avoids pale “panel in panel” */
  background: transparent;
}

.jx-plate--rail-left {
  grid-column: 1;
}

.jx-plate--rail-right {
  grid-column: 5;
}

.jx-plate--center {
  grid-column: 3;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
}

.jx-plate--title {
  flex: 0 0 var(--jx-title-band-h);
  height: var(--jx-title-band-h);
  min-height: 0;
  background: var(--jx-title-plate-fill);
}

.jx-plate--bay {
  flex: 1 1;
  min-height: 0;
  background: var(--jx-console-body-fill);
}

/*
 * Macro shell draws ABOVE interactive grid so filled rails are the sole visible inter-panel mass.
 * pointer-events: none — clicks pass through to DOM controls below.
 */
.jx-macro-shell-svg {
  position: absolute;
  inset: 0;
  z-index: 3;
  width: 100%;
  height: 100%;
  display: block;
  pointer-events: none;
}

.jx-chassis-interactive {
  position: relative;
  z-index: 2;
  flex: 1 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  display: grid;
  grid-template-columns: var(--jx-chassis-grid-cols);
  grid-template-rows: 1fr;
  align-items: stretch;
  box-sizing: border-box;
  background: transparent;
}

/* Layout shim — channel mass = HudMacroShellSvg vertical pipes (no CSS trough) */
.jx-divider {
  width: var(--jx-separator-channel);
  min-width: var(--jx-separator-channel);
  max-width: var(--jx-separator-channel);
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  border: none;
  outline: none;
  box-shadow: none;
  background: transparent;
  background-image: none;
  overflow: hidden;
  pointer-events: none;
  min-height: 0;
}

.jx-chassis-plates .jx-divider:nth-of-type(1),
.jx-chassis-interactive .jx-divider:nth-of-type(1) {
  grid-column: 2;
}

.jx-chassis-plates .jx-divider:nth-of-type(2),
.jx-chassis-interactive .jx-divider:nth-of-type(2) {
  grid-column: 4;
}

.jx-rail {
  position: relative;
  z-index: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  border-radius: 0;
  align-self: stretch;
  opacity: 1;
  border: none;
  outline: none;
  box-shadow: none;
}

.jx-rail--left,
.jx-rail--right {
  min-width: 0;
  min-height: 0;
  margin-top: 0;
  margin-bottom: 0;
  overflow: hidden;
  border-radius: 0;
  border: none;
  outline: none;
  box-shadow: none;
  filter: none;
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
  background: var(--jx-rail-mass);
}

.jx-rail--left {
  grid-column: 1;
}

.jx-rail--right {
  grid-column: 5;
}

.jx-rail-body {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: var(--jx-space-sm) var(--jx-panel-inset-x) var(--jx-panel-inset-y-bottom);
  display: flex;
  flex-direction: column;
  gap: var(--jx-space-md);
  position: relative;
  z-index: 1;
  background: transparent;
  background-image: none;
  border: none;
  outline: none;
  box-shadow: none;
  filter: none;
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
}

.jx-center {
  grid-column: 3;
  min-width: 0;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  padding: 0;
  border-radius: 0;
  position: relative;
  z-index: 1;
  box-sizing: border-box;
  background: transparent;
  border: none;
  outline: none;
  box-shadow: none;
}

.jx-center-shell {
  flex: 1 1;
  min-height: 0;
  min-width: 0;
  width: 100%;
  display: flex;
  flex-direction: column;
  box-sizing: border-box;
  /* Match center column content to inner edge of HUD_CENTER_CONSOLE_RAIL annulus */
  padding: 0 var(--jx-hud-center-rail-inset);
}

.jx-console {
  height: 100%;
  flex: 1 1;
  min-height: 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: var(--jx-center-gap);
  box-sizing: border-box;
  background: transparent;
  border: none;
  outline: none;
  box-shadow: none;
}

/* Command header plate — unified with tablet frame language (rim = SVG) */
.jx-title {
  flex: 0 0 var(--jx-title-band-h);
  height: var(--jx-title-band-h);
  min-height: var(--jx-title-band-h);
  max-height: var(--jx-title-band-h);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  padding: var(--jx-space-md) var(--jx-space-lg);
  border-radius: 10px;
  box-sizing: border-box;
  border: 0;
  outline: none;
  box-shadow:
    0 28px 70px rgba(0, 0, 0, 1),
    0 0 0 2px rgba(0, 0, 0, 0.95),
    inset 0 3px 0 rgba(245, 252, 255, 0.85),
    inset 0 -5px 10px rgba(0, 0, 0, 1);
  position: relative;
  background: var(--jx-title-plate-fill);
}

.jx-brand {
  margin: 0;
  text-align: center;
  line-height: 1.05;
  position: relative;
  z-index: 1;
}

/*
 * Hero wordmark — Orbitron (--font-jarvis-brand): geometric mass carries multi-stop
 * vertical gradients + drop-shadows (the “3D” read); pair with Rajdhani on body via --font-hud.
 */
.jx-brand-primary {
  display: block;
  font-family: var(--font-jarvis-brand), var(--font-hud), "Segoe UI", system-ui, sans-serif;
  font-weight: 800;
  /* Scales with reduced title band height via --jx-title-font-scale-primary */
  font-size: clamp(
    64px * var(--jx-title-font-scale-primary),
    9.5vw * var(--jx-title-font-scale-primary),
    132px * var(--jx-title-font-scale-primary)
  );
  line-height: 0.92;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #f2f7ff;
  background: var(--jx-chrome-fill-primary);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  /* Glow toned down ~60% vs prior (keep depth shadows) */
  filter:
    drop-shadow(0 0.045em 0.035em rgba(0, 0, 0, 0.72))
    drop-shadow(0 0 8px rgba(160, 210, 255, 0.128))
    drop-shadow(0 0 16px rgba(100, 165, 235, 0.072));
}

.jx-brand-sub {
  display: block;
  margin-top: clamp(5px, 0.65vw, 10px);
  font-family: var(--font-jarvis-brand), var(--font-hud), "Segoe UI", system-ui, sans-serif;
  /* Smaller subline; tied to --jx-title-font-scale-sub */
  font-size: clamp(
    18px * var(--jx-title-font-scale-sub),
    2.8vw * var(--jx-title-font-scale-sub),
    40px * var(--jx-title-font-scale-sub)
  );
  font-weight: 700;
  letter-spacing: 0.22em;
  text-transform: uppercase;
  color: #dbe6f0;
  background: var(--jx-chrome-fill-sub);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter:
    drop-shadow(0 0.045em 0.035em rgba(0, 0, 0, 0.72))
    drop-shadow(0 0 8px rgba(160, 210, 255, 0.128))
    drop-shadow(0 0 16px rgba(100, 165, 235, 0.072));
}

/* Boxed plate / publication section titles — same chrome as hero, centered, web scale */
.jx-chrome-heading {
  margin: 0;
  padding: 0;
  font-family: var(--font-jarvis-brand), var(--font-hud), system-ui, sans-serif;
  font-weight: 800;
  font-size: clamp(11px, 1.15vw, 14px);
  line-height: 1.28;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  text-align: center;
  color: #f2f7ff;
  background: var(--jx-chrome-fill-primary);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter:
    drop-shadow(0 1px 2px rgba(0, 0, 0, 0.78))
    drop-shadow(0 0 6px rgba(160, 210, 255, 0.11))
    drop-shadow(0 0 12px rgba(100, 165, 235, 0.06));
}

.jx-chrome-heading--sub {
  display: block;
  width: 100%;
  box-sizing: border-box;
  font-size: clamp(9px, 0.88vw, 11px);
  font-weight: 700;
  letter-spacing: 0.15em;
  text-align: center;
  background: var(--jx-chrome-fill-sub);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  filter:
    drop-shadow(0 1px 2px rgba(0, 0, 0, 0.72))
    drop-shadow(0 0 4px rgba(160, 210, 255, 0.08))
    drop-shadow(0 0 8px rgba(100, 165, 235, 0.048));
}

/* Center module: fill only; no perimeter shadow (rim = SVG) */
.jx-bay {
  flex: 1 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  gap: 0;
  box-sizing: border-box;
  border-radius: 0;
  overflow: hidden;
  position: relative;
  border: none;
  outline: none;
  box-shadow: none;
  background: var(--jx-console-body-fill);
}

.jx-main {
  flex: 1 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 0;
  border-radius: 0;
  position: relative;
  z-index: 1;
  border: none;
  outline: none;
  background: transparent;
  box-shadow: none;
}

/* Chat + dock move up together; *1.2 = additional 20% lift vs prior clamp */
.jx-bay-chat-stack {
  flex: 1 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  margin-top: calc(clamp(83px, 55vh, 416px) * -1.2);
}

.jx-work {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  padding: var(--jx-space-sm) var(--jx-space-lg) var(--jx-space-xl);
  display: flex;
  flex-direction: column;
  gap: var(--jx-space-md);
  background: transparent;
}

.jx-dock-wrap {
  flex: 0 0 var(--jx-dock-h);
  height: var(--jx-dock-h);
  min-height: var(--jx-dock-h);
  max-height: var(--jx-dock-h);
  overflow: hidden;
  flex-shrink: 0;
  opacity: 1;
  box-sizing: border-box;
  margin-top: 0;
  background: transparent;
  background-image: none;
  border: none;
  outline: none;
  box-shadow: none;
  filter: none;
}

/* Dock: macro rail = SVG only — no second filled slab behind controls */
.jx-dock {
  height: 100%;
  box-sizing: border-box;
  padding: 4px 8px;
  border-radius: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  overflow: hidden;
  background: transparent;
  background-image: none;
  filter: none;
  -webkit-backdrop-filter: none;
          backdrop-filter: none;
  box-shadow: none;
  border: none;
  outline: none;
}

/* Uplink row: single plate (.jx-cmd-plate) in command-uplink-plate.css — no gap between old per-control boxes */
.jx-dock-inner {
  display: flex;
  align-items: stretch;
  gap: 0;
  padding: var(--jx-space-xs) var(--jx-space-sm);
  border-radius: 0;
  background: transparent;
  background-image: none;
  border: none;
  box-shadow: none;
  outline: none;
  filter: none;
}

/* ========== TIER 2 — compartments (tone only, no framed slab) ========== */
.jx-comp {
  padding: var(--jx-space-sm) 0;
  background: transparent;
  box-shadow: none;
}

.jx-comp + .jx-comp {
  margin-top: var(--jx-space-md);
}

.jx-access-hub-actions {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 0;
}

/* Match New Mission: jx-btn--sm intrinsic width, centered in hub plate */
.jx-access-hub-actions--centered {
  align-items: center;
}

.jx-support-plate--hub .jx-access-hub-actions--centered .jx-btn {
  width: auto;
  max-width: 100%;
}

/* Inset plate for support rail blocks — darker/cooler than --jx-rail-mass for rim contrast */
.jx-support-plate {
  padding: 12px 14px 14px;
  margin-bottom: var(--jx-space-lg);
  box-sizing: border-box;
  background: var(--jx-support-plate-fill);
  border: var(--jx-plate-border);
  box-shadow: var(--jx-plate-shadow);
}

/* Modifiers — must follow base .jx-support-plate so padding/margin win */
.jx-support-plate--hub {
  padding: 14px 14px 16px;
  margin-bottom: var(--jx-space-sm);
}

.jx-missions-plate {
  padding: 16px 16px 18px;
  min-height: 0;
}

/* HUD tablet system — v1 baseline; v2 overrides below. */
.jx-plate--tablet-primary,
.jx-missions-plate--tablet {
  position: relative;
  padding: 20px 20px 24px;
  margin-bottom: var(--jx-space-lg);
  background:
    radial-gradient(circle at 8% 0%, rgba(255, 255, 255, 0.12) 0, transparent 40%),
    radial-gradient(circle at 92% 100%, rgba(0, 0, 0, 0.7) 0, transparent 60%),
    var(--jx-support-plate-fill);
  box-shadow:
    /* outer bezel */
    0 0 0 2px rgba(0, 0, 0, 0.95),
    0 10px 26px rgba(0, 0, 0, 0.9),
    /* inner lip */
    inset 0 2px 0 rgba(210, 230, 250, 0.4),
    inset 0 -3px 6px rgba(0, 0, 0, 0.95);
  border-radius: 10px;
}

/* Tablet interior: darker tactical field with subtle grid (v1 baseline) */
.jx-plate--tablet-primary .jx-manifold {
  padding: 12px;
  margin-top: 10px;
  border-radius: 6px;
  background:
    linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0, rgba(255, 255, 255, 0.0) 4px),
    repeating-linear-gradient(
      0deg,
      rgba(255, 255, 255, 0.028),
      rgba(255, 255, 255, 0.028) 1px,
      transparent 1px,
      transparent 3px
    ),
    repeating-linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.02),
      rgba(255, 255, 255, 0.02) 1px,
      transparent 1px,
      transparent 4px
    ),
    #03070f;
  box-shadow:
    inset 0 1px 0 rgba(210, 230, 250, 0.18),
    inset 0 -3px 6px rgba(0, 0, 0, 1);
}

/* Hardware soft-key feel for primary tablet call-to-action (e.g. New Mission). */
.jx-plate--tablet-primary .jx-plate-actions-centered .jx-btn.jx-btn--sm {
  min-width: 180px;
  padding-inline: 20px;
  background-image: var(--jx-control-bevel);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    inset 0 -1px 0 rgba(0, 0, 0, 0.7),
    0 3px 8px rgba(0, 0, 0, 0.7);
}

.jx-plate--tablet-primary .jx-plate-actions-centered .jx-btn.jx-btn--sm:hover:not(:disabled) {
  background-image: var(--jx-control-bevel-hover);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.22),
    inset 0 -1px 0 rgba(0, 0, 0, 0.75),
    0 5px 12px rgba(0, 0, 0, 0.8);
}

/* Secondary tablet frame — shared language, slightly shallower bezel for side/aux consoles (v1 baseline). */
.jx-plate--tablet-secondary {
  position: relative;
  padding: 16px 16px 20px;
  margin-bottom: var(--jx-space-lg);
  background:
    radial-gradient(circle at 6% 0%, rgba(255, 255, 255, 0.08) 0, transparent 40%),
    radial-gradient(circle at 94% 100%, rgba(0, 0, 0, 0.55) 0, transparent 60%),
    var(--jx-support-plate-fill);
  box-shadow:
    0 0 0 1px rgba(0, 0, 0, 0.9),
    0 7px 20px rgba(0, 0, 0, 0.85),
    inset 0 1px 0 rgba(210, 230, 250, 0.3),
    inset 0 -2px 4px rgba(0, 0, 0, 0.9);
  border-radius: 8px;
}

.jx-support-plate:last-of-type {
  margin-bottom: 0;
}

/*
 * HUD v2 — side support tablets: single footprint (Artifacts / secondary metrics) for every rail slab.
 * tablet-primary kept in selector for shared material if used elsewhere; padding/radius match secondary.
 */
body.jx-body--hud-v2 .jx-support-plate.jx-plate--tablet-primary,
body.jx-body--hud-v2 .jx-support-plate.jx-plate--tablet-secondary {
  background-color: var(--jx-hud-v2-tablet-surface);
  background-image: var(--jx-hud-v2-tablet-bg-layers);
  background-repeat: no-repeat;
  border: var(--jx-plate-chrome-rim-width) solid var(--jx-plate-chrome-border);
  box-shadow:
    0 26px 56px rgba(0, 0, 0, 0.78),
    0 10px 22px rgba(0, 0, 0, 0.48);
  padding: var(--jx-plate-secondary-inset-h) var(--jx-plate-secondary-inset-h)
    var(--jx-plate-secondary-inset-v-bottom);
  border-radius: var(--jx-plate-secondary-radius);
}

/* Left/right rails: no plate margin doubling */
body.jx-body--hud-v2 .jx-rail-body .jx-support-plate {
  margin-bottom: 0;
}

/*
 * Rail support plates: same minimum outer box as empty Archive (padding + title band + body band).
 * Flex column + flex-grow children centers shorter UIs inside that footprint without changing chrome.
 */
body.jx-body--hud-v2 .jx-rail-body > .jx-comp--rail-plate > .jx-support-plate {
  min-height: var(--jx-rail-support-plate-min-h);
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

body.jx-body--hud-v2 .jx-rail-body > .jx-comp--rail-plate > .jx-support-plate > .jx-archive {
  flex: 1 1 auto;
  min-height: 0;
  align-content: center;
}

body.jx-body--hud-v2 .jx-support-plate--core-access {
  justify-content: center;
}

body.jx-body--hud-v2 .jx-support-plate--core-access > .jx-support-plate-head--core-split {
  flex: 1 1 auto;
  align-content: center;
  min-height: 0;
}

body.jx-body--hud-v2 .jx-missions-plate.jx-plate--tablet-secondary > .jx-plate-actions-centered {
  flex: 1 1 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 0;
}

/* Rail stack: uniform step between all .jx-comp siblings; extra horizontal inset narrows support plates. */
body.jx-body--hud-v2 .jx-rail-body {
  gap: 0;
  padding-top: var(--jx-rail-stack-inset-top);
}

body.jx-body--hud-v2 .jx-rail--left .jx-rail-body,
body.jx-body--hud-v2 .jx-rail--right .jx-rail-body {
  padding-inline: calc(var(--jx-panel-inset-x) + var(--jx-space-lg));
}

body.jx-body--hud-v2 .jx-rail-body > .jx-comp {
  padding-block: 0;
}

body.jx-body--hud-v2 .jx-rail-body > .jx-comp + .jx-comp {
  margin-top: var(--jx-rail-stack-gap);
}

body.jx-body--hud-v2 .jx-field.jx-field--rail-search {
  width: 100%;
  box-sizing: border-box;
  border-radius: calc(8px * 0.97 * 0.6);
}

/* Raised controls on support slabs: obsidian (#0B1215 family), same mass read as main bay */
body.jx-body--hud-v2 .jx-support-plate .jx-btn:not(.jx-btn--ghost):not(.jx-btn--link):not(.jx-btn--danger) {
  background-color: #0b1215;
  background-image: linear-gradient(
    180deg,
    #172026 0%,
    #10161c 28%,
    #0b1215 55%,
    #070c10 100%
  );
  border: 1px solid rgba(0, 0, 0, 0.62);
  color: #e8ecf2;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    inset 0 -1px 0 rgba(0, 0, 0, 0.55),
    0 4px 10px rgba(0, 0, 0, 0.5);
}

body.jx-body--hud-v2 .jx-support-plate .jx-btn:not(.jx-btn--ghost):not(.jx-btn--link):not(.jx-btn--danger):hover:not(:disabled) {
  background-image: linear-gradient(
    180deg,
    #1c262e 0%,
    #141c23 35%,
    #0d1218 100%
  );
  border-color: rgba(0, 0, 0, 0.72);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.11),
    inset 0 -1px 0 rgba(0, 0, 0, 0.58),
    0 6px 14px rgba(0, 0, 0, 0.55);
}

/* HUD V2: remove black strip under NEW MISSION inside missions plate */
body.jx-body--hud-v2 .jx-missions-plate .jx-manifold {
  margin-top: 0;
  background-color: transparent;
  background-image: none;
}

body.jx-body--hud-v2 .jx-support-plate .jx-btn.jx-btn--sm:not(.jx-btn--ghost):not(.jx-btn--link) {
  font-size: 11px;
  padding: 7px 13px;
  min-height: 30px;
}

body.jx-body--hud-v2 .jx-missions-plate .jx-plate-actions-centered .jx-btn.jx-btn--sm:not(.jx-btn--ghost) {
  min-width: 192px;
  padding-inline: 22px;
  padding-block: 8px;
  font-size: 11px;
}

body.jx-body--hud-v2 .jx-support-plate-head {
  margin-bottom: 6px;
}

/* Left rail — JARVIS CORE / NEW AGENT compact control row (archive-like density) */
body.jx-body--hud-v2 .jx-support-plate--core-access .jx-support-plate-head--core-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: center;
  grid-gap: var(--jx-space-md);
  gap: var(--jx-space-md);
  margin-bottom: 0;
  width: 100%;
}

body.jx-body--hud-v2 .jx-support-plate--core-access .jx-support-plate-head--core-split > .jx-btn:first-child {
  justify-self: start;
}

body.jx-body--hud-v2 .jx-support-plate--core-access .jx-support-plate-head--core-split > .jx-btn:last-child {
  justify-self: end;
}

/* Right rail — primary section controls + detail slot for future expand/collapse */
body.jx-body--hud-v2 .jx-support-plate--rail-section {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: var(--jx-space-md);
}

body.jx-body--hud-v2 .jx-support-plate--rail-section .jx-btn--rail-primary {
  box-sizing: border-box;
  width: auto;
  max-width: 100%;
  align-self: center;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.jx-body--hud-v2 .jx-rail-section-detail {
  display: flex;
  flex-direction: column;
  flex: 1 1 auto;
  justify-content: center;
  gap: var(--jx-space-md);
  min-width: 0;
  min-height: 0;
  align-self: stretch;
  width: 100%;
}

body.jx-body--hud-v2 .jx-support-plate--rail-section .jx-upload-toolbar {
  justify-content: center;
}

/* Support plate header: chrome title centered; split = title column + controls */
.jx-support-plate-head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--jx-space-md);
  margin-bottom: 10px;
  flex-wrap: wrap;
}

.jx-support-plate-head--split {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  grid-gap: 10px;
  gap: 10px;
}

/* Stacked plate head: title row full width + centered, button row directly below (column, not wrap) */
.jx-support-plate-head--stacked {
  display: flex;
  flex-direction: column;
  flex-wrap: nowrap;
  align-items: stretch;
  justify-content: flex-start;
  align-content: stretch;
  gap: 12px;
  margin-bottom: 12px;
  width: 100%;
}

.jx-support-plate-head--stacked .jx-support-plate-head-title {
  width: 100%;
  flex: 0 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
}

.jx-support-plate-head--stacked .jx-support-plate-head-title .jx-chrome-heading {
  max-width: none;
  width: 100%;
  text-align: center;
}

.jx-support-plate-head--stacked .jx-plate-actions-centered {
  flex: 0 0 auto;
  justify-content: center;
  padding-top: 2px;
}

.jx-plate-actions-centered {
  display: flex;
  justify-content: center;
  width: 100%;
}

.jx-support-plate-head-title {
  min-width: 0;
  display: flex;
  justify-content: center;
  align-items: center;
}

.jx-support-plate-head-title .jx-chrome-heading {
  width: 100%;
  max-width: 22em;
  margin-left: auto;
  margin-right: auto;
}

.jx-upload-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}

.jx-block-label {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  text-align: center;
  color: rgba(140, 148, 162, 0.88);
  margin-bottom: 8px;
}

.jx-block-head {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 8px;
  margin-bottom: 8px;
}

.jx-manifold {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.jx-slot {
  flex: 1 1 200px;
  min-width: 0;
  padding: var(--jx-space-sm) 0;
  background: transparent;
  background-image: none;
  box-shadow: none;
  border: none;
  box-sizing: border-box;
  filter: none;
}

.jx-slot--on {
  box-shadow: none;
  border: none;
  background: rgba(255, 255, 255, 0.02);
}

.jx-slot-head {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 6px;
}

.jx-slot-head button.jx-btn--ghost {
  flex: 1 1 auto;
  text-align: left;
}

.jx-slot-tools {
  display: flex;
  flex-wrap: wrap;
  gap: 4px;
}

.jx-archive {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
}

.jx-archive-col {
  flex: 1 1 160px;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.jx-archive-subtitle {
  margin: 0 0 8px;
  text-align: center;
  width: 100%;
  align-self: stretch;
}

body.jx-body--hud-v2 .jx-archive-subtitle {
  margin: 0 0 4px;
}

.jx-chip-cloud {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  justify-content: center;
  width: 100%;
}

.jx-support-lines {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-left: 0;
  border: none;
  border-left: none;
  outline: none;
  box-shadow: none;
  text-align: center;
}

.jx-support-lines .jx-btn--ghost:not(.jx-plate-hint-ghost) {
  justify-content: center;
  width: 100%;
  text-align: center;
}

/* Muted helper copy inside plates — centered “subtitle” body */
.jx-plate-hint {
  font-size: 12px;
  line-height: 1.4;
  color: rgba(150, 190, 205, 0.92);
  text-align: center;
}

.jx-plate-hint--muted {
  color: rgba(150, 190, 205, 0.85);
}

.jx-plate-hint-meta {
  color: rgba(150, 190, 205, 0.82);
  font-weight: 500;
  font-size: 11px;
}

.jx-plate-hint .jx-plate-hint-ghost {
  display: inline-flex;
  width: auto;
  max-width: 100%;
  justify-content: center;
  font-weight: 600;
  vertical-align: baseline;
}

.jx-upload-flow {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-content: flex-start;
}

.jx-upload-flow > .jx-upload-card {
  flex: 1 1 min(200px, 100%);
  min-width: 0;
  box-sizing: border-box;
}

.jx-upload-card {
  padding: 8px;
  background: transparent;
  background-image: none;
  box-shadow: none;
  border: none;
  outline: none;
  cursor: pointer;
  filter: none;
}

.jx-upload-card:focus {
  outline: none;
  box-shadow: none;
}

.jx-upload-links {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

.jx-note {
  margin-top: 8px;
  font-size: 9px;
  color: rgba(140, 148, 160, 0.82);
}

.jx-code {
  font-family: ui-monospace, monospace;
  color: rgba(190, 198, 212, 0.92);
}

/* ========== TIER 3 — controls (inset bevel; not macro shell stroke) ========== */
.jx-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(0, 0, 0, 0.48);
  border-radius: 0;
  background-color: transparent;
  background-image: var(--jx-control-bevel);
  color: #eef2f8;
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 8px 10px;
  cursor: pointer;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    inset 0 -1px 0 rgba(0, 0, 0, 0.38),
    0 3px 6px rgba(0, 0, 0, 0.42);
  filter: none;
}

/* Raised chassis buttons (not text/ghost rows) — Orbitron + depth like hero, HUD scale */
.jx-btn:not(.jx-btn--ghost) {
  font-family: var(--font-jarvis-brand), var(--font-hud), "Segoe UI", system-ui, sans-serif;
  letter-spacing: 0.1em;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7);
  transform: translateY(-1px);
  transition:
    transform 0.1s ease,
    box-shadow 0.1s ease,
    background-image 0.1s ease;
}

.jx-btn:hover:not(:disabled) {
  background-image: var(--jx-control-bevel-hover);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    inset 0 -1px 0 rgba(0, 0, 0, 0.42),
    0 5px 10px rgba(0, 0, 0, 0.4);
  filter: none;
}

.jx-btn:not(.jx-btn--ghost):hover:not(:disabled) {
  transform: translateY(-2px);
}

.jx-btn.jx-btn--ghost:hover:not(:disabled) {
  background: transparent;
  background-image: none;
  box-shadow: none;
  filter: none;
}

.jx-btn:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  transform: translateY(0);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    inset 0 -1px 0 rgba(0, 0, 0, 0.38),
    0 1px 2px rgba(0, 0, 0, 0.35);
}

.jx-btn--block {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.jx-btn--sm {
  padding: 5px 8px;
  font-size: 10px;
}

.jx-btn--busy {
  opacity: 0.75;
}

.jx-btn--muted {
  opacity: 0.75;
}

.jx-btn--danger {
  background-image: linear-gradient(
    180deg,
    #5a3538 0%,
    #3f2528 48%,
    #321e22 52%,
    #26181a 100%
  );
  border: 1px solid rgba(0, 0, 0, 0.5);
  color: #ffd8d8;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    inset 0 -1px 0 rgba(0, 0, 0, 0.45),
    0 3px 6px rgba(0, 0, 0, 0.42);
  filter: none;
}

.jx-btn--danger:hover:not(:disabled) {
  background-image: linear-gradient(
    180deg,
    #6e4246 0%,
    #4f2f34 48%,
    #3f2529 52%,
    #321c20 100%
  );
  color: #ffe8e8;
}

.jx-btn--ghost {
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  background: transparent;
  background-image: none;
  border: none;
  padding: 0;
  font-family: var(--font-hud), "Segoe UI", system-ui, sans-serif;
  font-size: inherit;
  font-weight: 600;
  letter-spacing: normal;
  text-transform: none;
  color: #eaf6ff;
  cursor: pointer;
  text-align: left;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.85);
  box-shadow: none;
  transform: none;
  transition: none;
}

.jx-btn--link,
a.jx-btn--link {
  background: none;
  border: none;
  color: rgba(210, 175, 130, 0.95);
  text-decoration: underline;
  cursor: pointer;
  font-size: 11px;
}

.jx-field {
  width: 100%;
  box-sizing: border-box;
  padding: 8px 10px;
  border-radius: 0;
  border: 1px solid rgba(0, 0, 0, 0.45);
  background-image: linear-gradient(180deg, #2a313a 0%, #20262e 55%, #181d24 100%);
  color: #eaf6ff;
  font-size: 13px;
  box-shadow:
    inset 0 2px 4px rgba(0, 0, 0, 0.32),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  filter: none;
}

/* HUD v2: rail search field — operator chrome frame */
body.jx-body--hud-v2 .jx-field {
  border: 2px solid rgba(195, 225, 255, 0.82);
  background-image: linear-gradient(180deg, #3d5680 0%, #2c3f66 50%, #243a5c 100%);
  box-shadow: inset 0 2px 10px rgba(0, 0, 0, 0.55);
  color: #f2f8ff;
}

.jx-field--tight-top {
  margin-top: 0;
}

.jx-led {
  width: 7px;
  height: 7px;
  border-radius: 50%;
  background: rgba(72, 78, 86, 0.55);
  box-shadow: none;
  flex-shrink: 0;
}

.jx-led--on {
  background: #e8a050;
  box-shadow: none;
  filter: none;
}

.jx-led--sm {
  width: 5px;
  height: 5px;
}

.jx-sr {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.jx-msg {
  padding: 8px 10px;
  border-radius: 0;
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.06) 0%, rgba(0, 0, 0, 0.18) 100%);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    inset 0 -1px 0 rgba(0, 0, 0, 0.25),
    0 1px 2px rgba(0, 0, 0, 0.35);
  border: 1px solid rgba(0, 0, 0, 0.38);
  filter: none;
}

/* Center bay — chat/mission plate: interior frost frame (macro shell still owns outer console) */
body.jx-body--hud-v2 .jx-bay .jx-main {
  box-sizing: border-box;
  border: var(--jx-plate-chrome-rim-width) solid var(--jx-plate-chrome-border);
  border-radius: var(--jx-plate-secondary-radius);
  overflow: hidden;
}

/* Center bay chat bubbles — frost rim; inset depth only (no outer drop shadow vs rim) */
body.jx-body--hud-v2 .jx-bay .jx-msg {
  border: var(--jx-plate-chrome-rim-width) solid var(--jx-plate-chrome-border);
  border-radius: var(--jx-plate-secondary-radius);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    inset 0 -1px 0 rgba(0, 0, 0, 0.22);
}

/* Bay primary controls — same rim + obsidian face as command uplink actions */
body.jx-body--hud-v2 .jx-bay .jx-btn:not(.jx-btn--ghost):not(.jx-btn--link):not(.jx-btn--danger) {
  border: var(--jx-plate-chrome-rim-width) solid var(--jx-plate-chrome-border);
  border-radius: var(--jx-plate-secondary-radius);
  background-color: #0b1215;
  background-image: linear-gradient(
    180deg,
    #172026 0%,
    #10161c 28%,
    #0b1215 55%,
    #070c10 100%
  );
  color: #e8ecf2;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    inset 0 -1px 0 rgba(0, 0, 0, 0.55),
    0 4px 10px rgba(0, 0, 0, 0.5);
}

body.jx-body--hud-v2 .jx-bay .jx-btn:not(.jx-btn--ghost):not(.jx-btn--link):not(.jx-btn--danger):hover:not(:disabled) {
  border-color: rgba(248, 252, 255, 0.98);
  background-image: linear-gradient(
    180deg,
    #1c262e 0%,
    #141c23 35%,
    #0d1218 100%
  );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.11),
    inset 0 -1px 0 rgba(0, 0, 0, 0.58),
    0 6px 14px rgba(0, 0, 0, 0.55);
}

body.jx-body--hud-v2 .jx-bay .jx-mission-row {
  border: var(--jx-plate-chrome-rim-width) solid var(--jx-plate-chrome-border);
  border-radius: var(--jx-plate-secondary-radius);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.08),
    inset 0 -1px 0 rgba(0, 0, 0, 0.45),
    0 2px 6px rgba(0, 0, 0, 0.4);
}

body.jx-body--hud-v2 .jx-bay .jx-mission-row:hover {
  border-color: rgba(248, 252, 255, 0.98);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    inset 0 -1px 0 rgba(0, 0, 0, 0.48),
    0 4px 12px rgba(0, 0, 0, 0.48);
}

.jx-msg--user {
  align-self: flex-end;
  max-width: 92%;
}

.jx-msg--agent {
  align-self: flex-start;
  max-width: 92%;
}

.jx-msg-role {
  font-size: 9px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: rgba(148, 156, 168, 0.82);
  margin-bottom: var(--jx-space-xs);
}

.jx-msg-body {
  white-space: pre-wrap;
  font-size: 14px;
  line-height: 1.5;
  color: #e8ecf2;
}

.jx-mission-row {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  text-align: left;
  border: 1px solid rgba(0, 0, 0, 0.35);
  background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.04) 0%, rgba(0, 0, 0, 0.14) 100%);
  padding: 6px 8px;
  cursor: pointer;
  color: inherit;
  border-radius: 0;
  transform: translateY(-1px);
  transition:
    transform 0.1s ease,
    box-shadow 0.1s ease;
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.07),
    0 3px 6px rgba(0, 0, 0, 0.32);
  filter: none;
}

.jx-mission-row:hover {
  transform: translateY(-2px);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    0 5px 10px rgba(0, 0, 0, 0.35);
}

.jx-mission-meta {
  font-size: 10px;
  color: rgba(136, 144, 158, 0.8);
  margin-left: auto;
}

.jx-hidden-file {
  position: absolute;
  width: 1px;
  height: 1px;
  opacity: 0;
  pointer-events: none;
}

/* Stack layout — SVG + plates hidden; section backgrounds only. No second CSS macro stroke layer in wide mode. */
/* Breakpoint: keep px literal; CSS var() is not a reliable MQ operand across engines. */
@media (max-width: 1100px) {
  .jx-chassis-inner {
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: 0;
  }
  .jx-chassis-plates,
  .jx-macro-shell-svg {
    display: none;
  }
  .jx-divider {
    display: none;
  }
  .jx-chassis-interactive {
    display: flex;
    flex-direction: column;
    gap: 0;
  }
  .jx-rail--left,
  .jx-rail--right {
    background: var(--jx-rail-mass);
    border: none;
    box-shadow: none;
    outline: none;
    filter: none;
    -webkit-backdrop-filter: none;
            backdrop-filter: none;
  }
  .jx-main {
    background: var(--jx-workspace-field);
    border: none;
    box-shadow: none;
    outline: none;
  }
  .jx-bay {
    background: var(--jx-console-body-fill);
    box-shadow: none;
  }
  .jx-title {
    background: var(--jx-title-plate-fill);
    border: none;
    box-shadow: none;
    outline: none;
  }
  .jx-center {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    min-width: 0;
    order: -1;
  }
  .jx-center-shell {
    padding-left: 0;
    padding-right: 0;
  }
  /* Macro SVG hidden here — same plate-chrome inset as wide mode bay frame */
  body.jx-body--hud-v2 .jx-console {
    box-shadow: inset 0 0 0 var(--jx-plate-chrome-rim-width) var(--jx-plate-chrome-border);
  }
  .jx-rail--left,
  .jx-rail--right {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    max-height: var(--jx-stack-rail-max-height);
    margin-top: 0;
    margin-bottom: 0;
    border-radius: 0;
  }
}

/*!**************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!./node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!./app/command-uplink-plate.css ***!
  \**************************************************************************************************************************************************************************************************************************************************************************/
/**
 * Command uplink — HUD v2: one outer frost rim on .jx-cmd-plate (support-tablet chrome).
 * Three surfaces inside: left action, textarea (no nested chrome border), right action.
 */

.jx-cmd-plate {
  display: flex;
  flex-direction: row;
  align-items: stretch;
  flex: 1 1 auto;
  width: 100%;
  min-width: 0;
  min-height: 52px;
  max-height: 108px;
  box-sizing: border-box;
  gap: 8px;
  padding: 8px 10px;
  /* Match body.jx-body--hud-v2 rail tablets — visible frost frame vs bay mass */
  background-color: var(--jx-hud-v2-tablet-surface, #1f2f4d);
  background-image: var(--jx-hud-v2-tablet-bg-layers);
  background-repeat: no-repeat;
  border: var(--jx-plate-chrome-rim-width, 3px) solid
    var(--jx-plate-chrome-border, rgba(240, 250, 255, 0.92));
  border-radius: var(--jx-plate-secondary-radius, calc(10px * 0.97 * 0.6));
  box-shadow:
    0 26px 56px rgba(0, 0, 0, 0.78),
    0 10px 22px rgba(0, 0, 0, 0.48),
    inset 0 1px 0 rgba(230, 245, 255, 0.22),
    inset 0 -2px 5px rgba(0, 0, 0, 0.65);
}

.jx-cmd-plate--dimmed {
  opacity: 0.45;
}

body.jx-body--hud-v2 .jx-cmd-plate:focus-within {
  box-shadow:
    0 28px 60px rgba(0, 0, 0, 0.82),
    0 12px 26px rgba(0, 0, 0, 0.52),
    inset 0 1px 0 rgba(240, 248, 255, 0.28),
    inset 0 -2px 5px rgba(0, 0, 0, 0.68);
}

/* Icon squares — same material + lift as .jx-support-plate .jx-btn (globals.css) */
.jx-cmd-plate__action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 46px;
  min-width: 46px;
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  border: 1px solid rgba(0, 0, 0, 0.48);
  outline: none;
  border-radius: 0;
  background-color: transparent;
  background-image: var(--jx-control-bevel);
  color: #eef2f8;
  font-family: var(--font-jarvis-brand), var(--font-hud), "Segoe UI", system-ui, sans-serif;
  font-size: 22px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: none;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.7);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    inset 0 -1px 0 rgba(0, 0, 0, 0.38),
    0 3px 6px rgba(0, 0, 0, 0.42);
  transform: translateY(-1px);
  cursor: pointer;
  transition:
    transform 0.1s ease,
    box-shadow 0.1s ease,
    background-image 0.1s ease,
    border-color 0.1s ease,
    color 0.1s ease;
  -webkit-tap-highlight-color: transparent;
}

.jx-cmd-plate__action:hover:not(:disabled) {
  background-image: var(--jx-control-bevel-hover);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.18),
    inset 0 -1px 0 rgba(0, 0, 0, 0.42),
    0 5px 10px rgba(0, 0, 0, 0.4);
  transform: translateY(-2px);
}

.jx-cmd-plate__action:disabled {
  opacity: 0.45;
  cursor: not-allowed;
  transform: translateY(0);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.1),
    inset 0 -1px 0 rgba(0, 0, 0, 0.38),
    0 1px 2px rgba(0, 0, 0, 0.35);
}

/*
 * HUD v2: rim matches secondary tablets — globals `--jx-plate-chrome-rim-width` +
 * `--jx-plate-chrome-border` (same hue as `--jx-title-inset-frost-top`, higher alpha for stroke).
 */
body.jx-body--hud-v2 .jx-cmd-plate__action {
  border: var(--jx-plate-chrome-rim-width) solid var(--jx-plate-chrome-border);
}

/* Obsidian faces — border color/weight owned above */
body.jx-body--hud-v2 .jx-cmd-plate__action:not(.jx-cmd-plate__mic--on) {
  background-color: #0b1215;
  background-image: linear-gradient(
    180deg,
    #172026 0%,
    #10161c 28%,
    #0b1215 55%,
    #070c10 100%
  );
  /* Bright chrome-white glyph read (match slab button labels / field text) */
  color: #f2f8ff;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.88);
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.09),
    inset 0 -1px 0 rgba(0, 0, 0, 0.55),
    0 4px 10px rgba(0, 0, 0, 0.5);
}

body.jx-body--hud-v2 .jx-cmd-plate__action:hover:not(:disabled) {
  border-color: rgba(248, 252, 255, 0.98);
}

body.jx-body--hud-v2 .jx-cmd-plate__action:not(.jx-cmd-plate__mic--on):hover:not(:disabled) {
  background-image: linear-gradient(
    180deg,
    #1c262e 0%,
    #141c23 35%,
    #0d1218 100%
  );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.11),
    inset 0 -1px 0 rgba(0, 0, 0, 0.58),
    0 6px 14px rgba(0, 0, 0, 0.55);
}

.jx-cmd-plate__mic {
  font-size: 19px;
  line-height: 1;
}

.jx-cmd-plate__mic--on {
  color: rgba(255, 130, 150, 0.98);
  text-shadow:
    0 0 10px rgba(255, 80, 100, 0.85),
    0 1px 3px rgba(0, 0, 0, 0.72);
  background-color: #0b1215;
  background-image: linear-gradient(
    180deg,
    #5a3538 0%,
    #3f2528 48%,
    #321e22 52%,
    #26181a 100%
  );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.12),
    inset 0 -1px 0 rgba(0, 0, 0, 0.45),
    0 4px 10px rgba(0, 0, 0, 0.5),
    0 0 12px rgba(255, 60, 90, 0.22);
  transform: translateY(-1px);
}

body.jx-body--hud-v2 .jx-cmd-plate__mic--on:hover:not(:disabled) {
  background-image: linear-gradient(
    180deg,
    #6e4246 0%,
    #4f2f34 48%,
    #3f2529 52%,
    #321c20 100%
  );
  box-shadow:
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    inset 0 -1px 0 rgba(0, 0, 0, 0.48),
    0 6px 14px rgba(0, 0, 0, 0.55),
    0 0 14px rgba(255, 60, 90, 0.28);
  transform: translateY(-2px);
}

/* Chat field — default: inner rim (non–HUD v2). HUD v2: rim is only .jx-cmd-plate outer edge. */
.jx-cmd-plate__field {
  flex: 1 1 auto;
  min-width: 0;
  min-height: 0;
  align-self: stretch;
  margin: 0;
  padding: 8px 12px;
  resize: none;
  box-sizing: border-box;
  border: var(--jx-plate-chrome-rim-width, 3px) solid
    var(--jx-plate-chrome-border, rgba(240, 250, 255, 0.92));
  outline: none;
  border-radius: calc(var(--jx-plate-secondary-radius, 6px) * 0.55);
  background: rgba(0, 6, 14, 0.62);
  background-image: linear-gradient(180deg, rgba(0, 0, 0, 0.35) 0%, transparent 40%);
  color: #f2f8ff;
  font-family: inherit;
  font-size: 18px;
  line-height: 1.35;
  box-shadow:
    inset 0 3px 10px rgba(0, 0, 0, 0.65),
    inset 0 1px 0 rgba(255, 255, 255, 0.05);
  -webkit-appearance: none;
  -moz-appearance: none;
       appearance: none;
}

.jx-cmd-plate__field:focus,
.jx-cmd-plate__field:focus-visible {
  border-color: rgba(252, 254, 255, 1);
  box-shadow:
    inset 0 3px 12px rgba(0, 0, 0, 0.7),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.jx-cmd-plate__field:disabled {
  opacity: 0.55;
  cursor: not-allowed;
}

.jx-cmd-plate__field::placeholder {
  color: rgba(226, 236, 248, 0.45);
}

/*
 * HUD v2: middle control = typed surface only — no second frost stroke (outer plate + action
 * rims are the only chrome lines). Inset depth only; no border that stacks inside the shell.
 */
body.jx-body--hud-v2 .jx-cmd-plate__field {
  border: none;
  border-radius: 0;
  box-shadow: inset 0 2px 12px rgba(0, 0, 0, 0.58);
}

body.jx-body--hud-v2 .jx-cmd-plate__field:focus,
body.jx-body--hud-v2 .jx-cmd-plate__field:focus-visible {
  border: none;
  outline: none;
  box-shadow: inset 0 2px 14px rgba(0, 0, 0, 0.65);
}

