/* ════════════════════════════════════════════════════════════════════
   NV Streaming · Temas 5.6 (nv-temas-540.css)
   ────────────────────────────────────────────────────────────────────
   10 temas con paleta propia (fondos en capas bg..bg4, bordes, tres
   niveles de texto, colores de estado del tono del tema y texto sobre
   acento elegido por contraste) y letra propia (títulos, interfaz,
   cifras y claves). Todo por tokens bajo html.nv-on.
   Fondo vivo por tema, solo con transform y opacity: auroras, estrellas
   y estrellas fugaces, órbita, grano de película y fugas de luz,
   brasas, burbujas, destellos y barrido de monitor. Se pausa con la
   pestaña oculta, se apaga con "menos movimiento" y en Configuración
   (interruptor Fondo vivo + intensidad Suave / Normal).
   ════════════════════════════════════════════════════════════════════ */

@property --nv54-a1 { syntax: '<color>'; inherits: true; initial-value: rgba(0,0,0,0); }
@property --nv54-a2 { syntax: '<color>'; inherits: true; initial-value: rgba(0,0,0,0); }
@property --nv54-a3 { syntax: '<color>'; inherits: true; initial-value: rgba(0,0,0,0); }

/* ── 1. Tokens comunes: escala tipográfica y valores por defecto ─── */
html.nv-on body {
  --nv-fs-2xs: 10.5px; --nv-fs-xs: 11.5px; --nv-fs-sm: 12.5px; --nv-fs-md: 13.5px;
  --nv-fs-base: 14px; --nv-fs-lg: 16px; --nv-fs-xl: 20px; --nv-fs-2xl: 26px; --nv-fs-3xl: 32px;
  --nv-lh-tight: 1.15; --nv-lh-snug: 1.3; --nv-lh-body: 1.45;
  --nv-ls-caps: .075em;
  --nv54-ls-display: -.022em;
  --nv54-w-display: 700;
  --nv54-font-kpi: var(--nv-font-display);
  --nv54-ls-kpi: -.03em;
  --nv54-ls-ui: 0em;
  --nv54-ff: 'calt';
  --nv54-on-accent: #fff;
  --nv54-a1: var(--accent); --nv54-a2: var(--accent2); --nv54-a3: var(--accent);
}

/* ── 2. Los 10 temas (paleta, estado, letra, colores del fondo vivo) ─
   Contraste AA medido: texto 18:1, texto2 11:1 sobre tarjeta, texto3
   5,4:1 aun sobre bg4, acento como texto 5:1 o más, texto sobre acento
   5,4:1 o más (claro u oscuro según el acento). */
html.nv-on[data-nv-estilo="estreno"] body,
html.nv-on[data-nv-estilo="estreno"] body.dark {
  --bg: #090706; --bg2: #100c0c; --bg3: #181313; --bg4: #211c1c;
  --surface: #211c1c; --surface2: #292424;
  --border: #2d2828; --border2: #403a3a;
  --text: #f7f5f5; --text2: #cfcbcb; --text3: #979292;
  --accent: #ee4952; --accent2: #ff7d68; --accent3: #ffb8ab;
  --nv-accent-rgb: 238,73,82;
  --glow-accent: 0 0 0 3px rgba(238,73,82,.28);
  --green: #60db89; --green2: #9ce9b1; --amber: #fcbe54; --amber2: #fcd999;
  --red: #fa676e; --red2: #ff9da0; --blue: #69c1fc; --blue2: #a4dcff;
  --purple: #ba93fb; --purple2: #d4bcff;
  --nv54-on-accent: #1a0306;
  --nv-font-display: 'Bricolage Grotesque', 'Inter', system-ui, sans-serif;
  --nv-font-ui: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nv-font-num: 'JetBrains Mono', ui-monospace, 'SF Mono', Consolas, monospace;
  --nv54-font-kpi: var(--nv-font-display);
  --nv54-ls-display: -.022em; --nv54-w-display: 700; --nv54-ls-kpi: -.03em;
  --nv54-ls-ui: -.004em; --nv54-ff: 'cv11', 'calt';
  --nv54-a1: #e0303c; --nv54-a2: #ff7a3d; --nv54-a3: #7a1020;
}
html.nv-on[data-nv-estilo="oceano"] body,
html.nv-on[data-nv-estilo="oceano"] body.dark {
  --bg: #010913; --bg2: #02101c; --bg3: #061725; --bg4: #0e2130;
  --surface: #0e2130; --surface2: #162939;
  --border: #162b3d; --border2: #293e51;
  --text: #f1f7fb; --text2: #c2ced8; --text3: #8696a4;
  --accent: #1fa9ff; --accent2: #52dcf0; --accent3: #a8e2ff;
  --nv-accent-rgb: 31,169,255;
  --glow-accent: 0 0 0 3px rgba(31,169,255,.28);
  --green: #78d878; --green2: #a8e8a6; --amber: #ffbc57; --amber2: #ffd79a;
  --red: #f96677; --red2: #ff9da6; --blue: #5cc5f7; --blue2: #9edeff;
  --purple: #ae97ff; --purple2: #cbbfff;
  --nv54-on-accent: #021426;
  --nv-font-display: 'Lexend', 'Manrope', system-ui, sans-serif;
  --nv-font-ui: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nv-font-num: 'JetBrains Mono', ui-monospace, 'SF Mono', Consolas, monospace;
  --nv54-font-kpi: var(--nv-font-display);
  --nv54-ls-display: -.02em; --nv54-w-display: 600; --nv54-ls-kpi: -.03em;
  --nv54-ls-ui: 0em; --nv54-ff: 'calt';
  --nv54-a1: #1a8cff; --nv54-a2: #2fe0d0; --nv54-a3: #2440c8;
}
html.nv-on[data-nv-estilo="purpura"] body,
html.nv-on[data-nv-estilo="purpura"] body.dark {
  --bg: #0b0611; --bg2: #120a1a; --bg3: #191122; --bg4: #231a2d;
  --surface: #231a2d; --surface2: #2b2236;
  --border: #2e243a; --border2: #41364d;
  --text: #f7f4fa; --text2: #cfc9d6; --text3: #9790a2;
  --accent: #b36bff; --accent2: #d09bff; --accent3: #e6ccff;
  --nv-accent-rgb: 179,107,255;
  --glow-accent: 0 0 0 3px rgba(179,107,255,.28);
  --green: #4bdc95; --green2: #93ebb9; --amber: #f9c053; --amber2: #fada99;
  --red: #fa6868; --red2: #ff9e9c; --blue: #73bfff; --blue2: #a9daff;
  --purple: #c290f5; --purple2: #dbbaff;
  --nv54-on-accent: #14061f;
  --nv-font-display: 'Urbanist', 'DM Sans', system-ui, sans-serif;
  --nv-font-ui: 'DM Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nv-font-num: 'DM Mono', ui-monospace, 'SF Mono', Consolas, monospace;
  --nv54-font-kpi: var(--nv-font-display);
  --nv54-ls-display: -.012em; --nv54-w-display: 800; --nv54-ls-kpi: -.02em;
  --nv54-ls-ui: -.003em; --nv54-ff: 'calt';
  --nv54-a1: #8a3cff; --nv54-a2: #ff4fa0; --nv54-a3: #4a3cff;
}
html.nv-on[data-nv-estilo="aurora"] body,
html.nv-on[data-nv-estilo="aurora"] body.dark {
  --bg: #030b06; --bg2: #05120b; --bg3: #0a1911; --bg4: #13231a;
  --surface: #13231a; --surface2: #1b2b22;
  --border: #1c2e24; --border2: #2e4136;
  --text: #f2f7f4; --text2: #c5cfc9; --text3: #8a988f;
  --accent: #1ed783; --accent2: #62e6a9; --accent3: #a8f2cf;
  --nv-accent-rgb: 30,215,131;
  --glow-accent: 0 0 0 3px rgba(30,215,131,.28);
  --green: #a6e56c; --green2: #c5efa0; --amber: #fcbe54; --amber2: #fcd999;
  --red: #fa676e; --red2: #ff9da0; --blue: #69c1fc; --blue2: #a4dcff;
  --purple: #ba93fb; --purple2: #d4bcff;
  --nv54-on-accent: #03140b;
  --nv-font-display: 'Plus Jakarta Sans', 'Plus Jakarta Sans', system-ui, sans-serif;
  --nv-font-ui: 'Plus Jakarta Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nv-font-num: 'JetBrains Mono', ui-monospace, 'SF Mono', Consolas, monospace;
  --nv54-font-kpi: var(--nv-font-display);
  --nv54-ls-display: -.025em; --nv54-w-display: 800; --nv54-ls-kpi: -.035em;
  --nv54-ls-ui: -.002em; --nv54-ff: 'calt';
  --nv54-a1: #15d67c; --nv54-a2: #9be15d; --nv54-a3: #16b8c8;
}
html.nv-on[data-nv-estilo="gala"] body,
html.nv-on[data-nv-estilo="gala"] body.dark {
  --bg: #100507; --bg2: #19080c; --bg3: #220f13; --bg4: #2c181c;
  --surface: #2c181c; --surface2: #352024;
  --border: #392226; --border2: #4d3438;
  --text: #fbf4f5; --text2: #d6c8ca; --text3: #a28e91;
  --accent: #e8b04b; --accent2: #f4cf82; --accent3: #fbe5b8;
  --nv-accent-rgb: 232,176,75;
  --glow-accent: 0 0 0 3px rgba(232,176,75,.28);
  --green: #43dd9a; --green2: #91ebbb; --amber: #f8c153; --amber2: #f9da98;
  --red: #fa6865; --red2: #ff9e9b; --blue: #76beff; --blue2: #abdaff;
  --purple: #c58ff3; --purple2: #ddb9fd;
  --nv54-on-accent: #1c1003;
  --nv-font-display: 'Fraunces', 'Outfit', system-ui, sans-serif;
  --nv-font-ui: 'Outfit', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nv-font-num: 'IBM Plex Mono', ui-monospace, 'SF Mono', Consolas, monospace;
  --nv54-font-kpi: 'Outfit', system-ui, sans-serif;
  --nv54-ls-display: -.012em; --nv54-w-display: 600; --nv54-ls-kpi: -.02em;
  --nv54-ls-ui: .004em; --nv54-ff: 'calt';
  --nv54-a1: #e8a93a; --nv54-a2: #d42a48; --nv54-a3: #6e0f2a;
}
html.nv-on[data-nv-estilo="constelacion"] body,
html.nv-on[data-nv-estilo="constelacion"] body.dark {
  --bg: #060616; --bg2: #0a0b21; --bg3: #11132a; --bg4: #1a1c36;
  --surface: #1a1c36; --surface2: #21243f;
  --border: #232644; --border2: #353958;
  --text: #f4f5fe; --text2: #c8cbdd; --text3: #8e92aa;
  --accent: #857dff; --accent2: #b0abff; --accent3: #d4d1ff;
  --nv-accent-rgb: 133,125,255;
  --glow-accent: 0 0 0 3px rgba(133,125,255,.28);
  --green: #60db89; --green2: #9ce9b1; --amber: #fcbe54; --amber2: #fcd999;
  --red: #fa676e; --red2: #ff9da0; --blue: #69c1fc; --blue2: #a4dcff;
  --purple: #ba93fb; --purple2: #d4bcff;
  --nv54-on-accent: #0a0826;
  --nv-font-display: 'Sora', 'Onest', system-ui, sans-serif;
  --nv-font-ui: 'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nv-font-num: 'JetBrains Mono', ui-monospace, 'SF Mono', Consolas, monospace;
  --nv54-font-kpi: var(--nv-font-display);
  --nv54-ls-display: -.028em; --nv54-w-display: 700; --nv54-ls-kpi: -.035em;
  --nv54-ls-ui: 0em; --nv54-ff: 'calt';
  --nv54-a1: #5a4cff; --nv54-a2: #f2c46d; --nv54-a3: #8e3cff;
}
html.nv-on[data-nv-estilo="orbita"] body,
html.nv-on[data-nv-estilo="orbita"] body.dark {
  --bg: #000810; --bg2: #000e19; --bg3: #021621; --bg4: #071f2c;
  --surface: #071f2c; --surface2: #102734;
  --border: #122d3b; --border2: #253f4f;
  --text: #f0f7fb; --text2: #c1ced7; --text3: #8497a3;
  --accent: #2fd9c4; --accent2: #62a8ff; --accent3: #b8f5ec;
  --nv-accent-rgb: 47,217,196;
  --glow-accent: 0 0 0 3px rgba(47,217,196,.28);
  --green: #72d97c; --green2: #a5e8a9; --amber: #ffbc56; --amber2: #fed899;
  --red: #fa6675; --red2: #ff9da5; --blue: #5fc4f8; --blue2: #a0deff;
  --purple: #b196ff; --purple2: #cebeff;
  --nv54-on-accent: #02140f;
  --nv-font-display: 'Space Grotesk', 'Instrument Sans', system-ui, sans-serif;
  --nv-font-ui: 'Instrument Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nv-font-num: 'Geist Mono', ui-monospace, 'SF Mono', Consolas, monospace;
  --nv54-font-kpi: var(--nv-font-display);
  --nv54-ls-display: -.022em; --nv54-w-display: 700; --nv54-ls-kpi: -.03em;
  --nv54-ls-ui: -.002em; --nv54-ff: 'calt';
  --nv54-a1: #1fcfba; --nv54-a2: #3f86ff; --nv54-a3: #1b4fd0;
}
html.nv-on[data-nv-estilo="lanzamiento"] body,
html.nv-on[data-nv-estilo="lanzamiento"] body.dark {
  --bg: #0c0706; --bg2: #130d0a; --bg3: #1b1411; --bg4: #241d1a;
  --surface: #241d1a; --surface2: #2d2522;
  --border: #302724; --border2: #433a36;
  --text: #f8f5f4; --text2: #d0cbc9; --text3: #99928f;
  --accent: #ff6a1f; --accent2: #ffa24a; --accent3: #ffd0a0;
  --nv-accent-rgb: 255,106,31;
  --glow-accent: 0 0 0 3px rgba(255,106,31,.28);
  --green: #4bdc95; --green2: #93ebb9; --amber: #f9c053; --amber2: #fada99;
  --red: #fa6868; --red2: #ff9e9c; --blue: #73bfff; --blue2: #a9daff;
  --purple: #c290f5; --purple2: #dbbaff;
  --nv54-on-accent: #1c0800;
  --nv-font-display: 'Chakra Petch', 'Red Hat Text', system-ui, sans-serif;
  --nv-font-ui: 'Red Hat Text', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nv-font-num: 'Red Hat Mono', ui-monospace, 'SF Mono', Consolas, monospace;
  --nv54-font-kpi: var(--nv-font-display);
  --nv54-ls-display: -.004em; --nv54-w-display: 700; --nv54-ls-kpi: -.015em;
  --nv54-ls-ui: .004em; --nv54-ff: 'calt';
  --nv54-a1: #ff5a14; --nv54-a2: #ffab3d; --nv54-a3: #b8290e;
}
html.nv-on[data-nv-estilo="estacion"] body,
html.nv-on[data-nv-estilo="estacion"] body.dark {
  --bg: #06080b; --bg2: #0b0f12; --bg3: #12161a; --bg4: #1b1f23;
  --surface: #1b1f23; --surface2: #23272c;
  --border: #252a2f; --border2: #383c41;
  --text: #f5f6f7; --text2: #cacccf; --text3: #909498;
  --accent: #ffd23f; --accent2: #7cc7ff; --accent3: #fff0bf;
  --nv-accent-rgb: 255,210,63;
  --glow-accent: 0 0 0 3px rgba(255,210,63,.28);
  --green: #60db89; --green2: #9ce9b1; --amber: #fcbe54; --amber2: #fcd999;
  --red: #fa676e; --red2: #ff9da0; --blue: #69c1fc; --blue2: #a4dcff;
  --purple: #ba93fb; --purple2: #d4bcff;
  --nv54-on-accent: #1a1400;
  --nv-font-display: 'Barlow Semi Condensed', 'IBM Plex Sans', system-ui, sans-serif;
  --nv-font-ui: 'IBM Plex Sans', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nv-font-num: 'IBM Plex Mono', ui-monospace, 'SF Mono', Consolas, monospace;
  --nv54-font-kpi: var(--nv-font-display);
  --nv54-ls-display: .006em; --nv54-w-display: 700; --nv54-ls-kpi: 0em;
  --nv54-ls-ui: 0em; --nv54-ff: 'calt';
  --nv54-a1: #ffd23f; --nv54-a2: #5aaeff; --nv54-a3: #e8eef5;
}
html.nv-on[data-nv-estilo="nebulosa"] body,
html.nv-on[data-nv-estilo="nebulosa"] body.dark {
  --bg: #090615; --bg2: #0f0a1f; --bg3: #161128; --bg4: #1f1a33;
  --surface: #1f1a33; --surface2: #27223c;
  --border: #2a2440; --border2: #3c3754;
  --text: #f6f5fc; --text2: #cccada; --text3: #9490a7;
  --accent: #ff4d9a; --accent2: #3fe0ef; --accent3: #ffb1d4;
  --nv-accent-rgb: 255,77,154;
  --glow-accent: 0 0 0 3px rgba(255,77,154,.28);
  --green: #53dc91; --green2: #96eab6; --amber: #fac053; --amber2: #fada99;
  --red: #fa686a; --red2: #ff9d9e; --blue: #70bffe; --blue2: #a7dbff;
  --purple: #c091f7; --purple2: #d8bbff;
  --nv54-on-accent: #1e0414;
  --nv-font-display: 'Unbounded', 'Figtree', system-ui, sans-serif;
  --nv-font-ui: 'Figtree', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --nv-font-num: 'JetBrains Mono', ui-monospace, 'SF Mono', Consolas, monospace;
  --nv54-font-kpi: 'Figtree', system-ui, sans-serif;
  --nv54-ls-display: -.03em; --nv54-w-display: 600; --nv54-ls-kpi: -.03em;
  --nv54-ls-ui: .003em; --nv54-ff: 'calt';
  --nv54-a1: #ff3d8f; --nv54-a2: #28d6ea; --nv54-a3: #8a4cff;
}

/* ── 3. Tipografía (todo por tokens) ──────────────────────────────── */
html.nv-on body {
  font-family: var(--nv-font-ui);
  font-feature-settings: var(--nv54-ff);
  font-variant-numeric: tabular-nums;
  font-optical-sizing: auto;
  font-kerning: normal;
  letter-spacing: var(--nv54-ls-ui);
  line-height: 1.4;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
  -webkit-text-size-adjust: 100%; text-size-adjust: 100%;
}
html.nv-on body :is(.topbar-title, .sidebar-logo h1, .modal-header h3, #confirm-title, .section-header h2, .section-header h3, .mc-header-title, .platform-header h2) {
  font-family: var(--nv-font-display) !important;
  letter-spacing: var(--nv54-ls-display) !important;
  font-weight: var(--nv54-w-display) !important;
}
html.nv-on body .topbar-title { font-size: 18px; line-height: var(--nv-lh-tight); }
html.nv-on body .topbar-subtitle { font-size: var(--nv-fs-sm); letter-spacing: .005em; }
html.nv-on body :is(.p4-num, .stat-value, .ci-metric-val) {
  font-family: var(--nv54-font-kpi) !important;
  letter-spacing: var(--nv54-ls-kpi) !important;
  font-variant-numeric: tabular-nums lining-nums;
}
html.nv-on body .nav-section-label { font-weight: 700; letter-spacing: .12em; }
html.nv-on body :is(.p4-lbl, .stat-label) { letter-spacing: .005em; }
html.nv-on body :is(input, select, textarea, button) { font-family: inherit; letter-spacing: inherit; font-feature-settings: inherit; }
html.nv-on body :is(code, kbd, samp, pre) { font-family: var(--nv-font-num); font-variant-ligatures: none; }
/* Tablas: cabecera en versalitas finas, cifras alineadas */
html.nv-on body table th { font-weight: 700; letter-spacing: .06em; }
html.nv-on body table td { font-variant-numeric: tabular-nums; }
html.nv-on body .sb-user-avatar-wrap { color: var(--nv54-on-accent); }
/* Botones con relleno de acento: texto legible por contraste */
html.nv-on body :is(.btn-accent, .btn-solid, .nv6-btn--pri) { color: var(--nv54-on-accent); }

/* ── 4. Colores fijos del HTML viejo: siguen el tema ──────────────── */
html.nv-on body [style*="background:#0d0d1a"],
html.nv-on body [style*="background:#0d0d1c"],
html.nv-on body [style*="background:#0c0c1e"],
html.nv-on body [style*="background:#12121f"],
html.nv-on body [style*="background:#1a1a2e"] { background: var(--bg3) !important; }
html.nv-on body [style*="background:#0a0a16"],
html.nv-on body [style*="background:#0a0a1e"],
html.nv-on body [style*="background:#08081a"] { background: var(--bg2) !important; }
html.nv-on body [style*="solid #252540"],
html.nv-on body [style*="solid #2a2a45"] { border-color: var(--border2) !important; }
html.nv-on body [style*="solid #1e1e35"],
html.nv-on body [style*="solid #1e1e38"],
html.nv-on body [style*="solid #1a1a32"],
html.nv-on body [style*="solid #1a1a30"] { border-color: var(--border) !important; }
html.nv-on body [style*="color:#eeeeff"] { color: var(--text) !important; }
html.nv-on body [style*="color:#c4c9f8"],
html.nv-on body [style*="color:#9194b8"] { color: var(--text2) !important; }
html.nv-on body [style*="color:#7880a8"],
html.nv-on body [style*="color:#4a4a70"] { color: var(--text3) !important; }
html.nv-on body :is([style*="color:#a5b4fc"], [style*="color:#A5B4FC"], [style*="color:#818cf8"], [style*="color:#c4b5fd"]) { color: var(--accent2) !important; }
/* (el menú reescribe el style con setProperty: se ve como rgb(...)) */
html.nv-on body #sidebar .nav-item:is([style*="color:#A5B4FC"], [style*="color: rgb(165, 180, 252)"]) { color: var(--accent2) !important; }
html.nv-on body [style*="color:#6366f1"] { color: var(--accent) !important; }
html.nv-on body [style*="background:#6366f1"] { background: var(--accent) !important; color: var(--nv54-on-accent) !important; }
/* main.css: piezas con azul noche fijo */
html.nv-on body :is(.sidebar-logo, .sb-user-footer, .page-card-header) { border-color: var(--border) !important; }
html.nv-on body .form-group select option { background: var(--bg2); color: var(--text); }
html.nv-on body .modal-body::-webkit-scrollbar-thumb { background: var(--border2); }
html.nv-on body ::selection { background: rgba(var(--nv-accent-rgb), .32); color: var(--text); }

/* ════════════════════════════════════════════════════════════════════
   5 · FONDO VIVO
   Capas (todas aria-hidden, sin eventos): g1..g3 brillos, rb aurora,
   st/st2 estrellas, ss estrella fugaz, or órbita, ln líneas de monitor,
   sc barrido, lk fuga de luz, gl destello, pt partículas, gr grano,
   vg viñeta. El JS pone data-fx con las capas del tema.
   ════════════════════════════════════════════════════════════════════ */
#nv54-amb { display: none; }
html.nv-on #nv54-amb {
  display: block; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  overflow: hidden; contain: strict;
  opacity: 1; transition: --nv54-a1 .9s ease, --nv54-a2 .9s ease, --nv54-a3 .9s ease, opacity .5s ease;
}
html.nv-on.nv54-suave #nv54-amb { opacity: .55; }
html.nv-on #nv54-amb > * { position: absolute; display: none; will-change: transform; backface-visibility: hidden; }
html.nv-on #nv54-amb > :is(.g1, .g2, .g3, .vg) { display: block; }
html.nv-on #nv54-amb[data-fx~="rb"] > .rb,
html.nv-on #nv54-amb[data-fx~="st"] > :is(.st, .st2),
html.nv-on #nv54-amb[data-fx~="ss"] > .ss,
html.nv-on #nv54-amb[data-fx~="or"] > .or,
html.nv-on #nv54-amb[data-fx~="ln"] > :is(.ln, .sc),
html.nv-on #nv54-amb[data-fx~="lk"] > .lk,
html.nv-on #nv54-amb[data-fx~="gl"] > .gl,
html.nv-on #nv54-amb[data-fx~="pt"] > .pt,
html.nv-on #nv54-amb[data-fx~="gr"] > .gr { display: block; }

/* Brillos: tres manchas grandes del color del tema que fluyen */
html.nv-on #nv54-amb .g1 {
  width: 82vmax; height: 82vmax; left: -26vmax; top: -38vmax; opacity: var(--nv54-o1, .26);
  background: radial-gradient(closest-side, var(--nv54-a1), transparent);
  animation: nv54D1 38s ease-in-out infinite alternate;
}
html.nv-on #nv54-amb .g2 {
  width: 74vmax; height: 74vmax; right: -28vmax; bottom: -36vmax; opacity: var(--nv54-o2, .2);
  background: radial-gradient(closest-side, var(--nv54-a2), transparent);
  animation: nv54D2 46s ease-in-out infinite alternate;
}
html.nv-on #nv54-amb .g3 {
  width: 56vmax; height: 56vmax; left: 34%; top: 18%; opacity: var(--nv54-o3, .14);
  background: radial-gradient(closest-side, var(--nv54-a3), transparent);
  animation: nv54D3 58s ease-in-out infinite alternate;
}
@keyframes nv54D1 { 0% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(14vw,9vh,0) scale(1.12); } 100% { transform: translate3d(5vw,20vh,0) scale(.94); } }
@keyframes nv54D2 { 0% { transform: translate3d(0,0,0) scale(1); } 50% { transform: translate3d(-16vw,-8vh,0) scale(1.14); } 100% { transform: translate3d(-6vw,-18vh,0) scale(1); } }
@keyframes nv54D3 { 0% { transform: translate3d(0,0,0) scale(.9); } 50% { transform: translate3d(-18vw,10vh,0) scale(1.1); } 100% { transform: translate3d(10vw,-12vh,0) scale(1); } }

/* Aurora: banda de luz que ondula */
html.nv-on #nv54-amb .rb {
  left: -25vw; top: -14vh; width: 150vw; height: 72vh; opacity: var(--nv54-orb, .34);
  background:
    radial-gradient(28% 50% at 18% 55%, var(--nv54-a1), transparent 70%),
    radial-gradient(26% 42% at 46% 38%, var(--nv54-a3), transparent 70%),
    radial-gradient(30% 50% at 76% 58%, var(--nv54-a2), transparent 70%);
  transform-origin: 50% 0;
  animation: nv54Rib 26s ease-in-out infinite alternate;
}
@keyframes nv54Rib {
  0% { transform: translate3d(-6vw,0,0) skewY(-5deg) scaleY(.9); }
  50% { transform: translate3d(3vw,4vh,0) skewY(3deg) scaleY(1.18); }
  100% { transform: translate3d(8vw,-2vh,0) skewY(-2deg) scaleY(1); }
}

/* Estrellas: dos planos a distinta velocidad; el cercano titila */
html.nv-on #nv54-amb .st {
  left: 0; right: 0; top: -300px; bottom: 0; opacity: var(--nv54-stars, .7);
  background-image:
    radial-gradient(1px 1px at 20px 30px, rgba(255,255,255,.8), transparent 60%),
    radial-gradient(1px 1px at 150px 90px, rgba(255,255,255,.55), transparent 60%),
    radial-gradient(1px 1px at 80px 250px, rgba(255,255,255,.5), transparent 60%),
    radial-gradient(1px 1px at 40px 170px, rgba(255,255,255,.45), transparent 60%),
    radial-gradient(1px 1px at 190px 20px, rgba(255,255,255,.6), transparent 60%);
  background-size: 263px 241px, 331px 283px, 197px 307px, 353px 229px, 229px 199px;
  animation: nv54Stars 220s linear infinite;
}
html.nv-on #nv54-amb .st2 {
  left: 0; right: 0; top: -400px; bottom: 0; opacity: .8;
  background-image:
    radial-gradient(1.6px 1.6px at 230px 190px, rgba(255,255,255,.95), transparent 60%),
    radial-gradient(1.5px 1.5px at 300px 60px, color-mix(in srgb, var(--nv54-a2) 70%, #fff), transparent 60%),
    radial-gradient(1.8px 1.8px at 90px 330px, color-mix(in srgb, var(--nv54-a1) 55%, #fff), transparent 60%);
  background-size: 419px 373px, 467px 389px, 521px 457px;
  animation: nv54Stars2 140s linear infinite, nv54Tw 4.6s ease-in-out infinite alternate;
}
@keyframes nv54Stars { to { transform: translate3d(-40px, 300px, 0); } }
@keyframes nv54Stars2 { to { transform: translate3d(-90px, 400px, 0); } }
@keyframes nv54Tw { 0% { opacity: .3; } 100% { opacity: .85; } }

/* Estrella fugaz: cruza cada ~15 s */
html.nv-on #nv54-amb .ss {
  top: 14%; left: 68%; width: 190px; height: 1.5px; border-radius: 2px; opacity: 0;
  background: linear-gradient(90deg, #fff, color-mix(in srgb, var(--nv54-a2) 60%, transparent) 30%, transparent);
  animation: nv54Ss 15s cubic-bezier(.3,.1,.3,1) 4s infinite;
}
@keyframes nv54Ss {
  0% { opacity: 0; transform: rotate(-24deg) translate3d(0,0,0); }
  1.5% { opacity: .9; }
  7% { opacity: 0; transform: rotate(-24deg) translate3d(-520px,0,0); }
  100% { opacity: 0; transform: rotate(-24deg) translate3d(-520px,0,0); }
}

/* Órbita: anillo inclinado con un satélite que gira */
html.nv-on #nv54-amb .or {
  width: 120vmax; height: 120vmax; right: -52vmax; top: -64vmax; border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--nv54-a1) 34%, transparent);
  box-shadow: 0 0 0 16vmax color-mix(in srgb, var(--nv54-a2) 3%, transparent) inset;
  animation: nv54Or 120s linear infinite;
}
html.nv-on #nv54-amb .or::after {
  content: ''; position: absolute; left: 50%; bottom: -4px; width: 7px; height: 7px; margin-left: -3.5px; border-radius: 50%;
  background: var(--nv54-a1); box-shadow: 0 0 14px 3px color-mix(in srgb, var(--nv54-a1) 70%, transparent);
}
@keyframes nv54Or { from { transform: rotate(-16deg) scaleY(.46) rotate(0deg); } to { transform: rotate(-16deg) scaleY(.46) rotate(360deg); } }

/* Estación: líneas de monitor + barrido */
html.nv-on #nv54-amb .ln {
  inset: 0; will-change: auto;
  background:
    repeating-linear-gradient(180deg, rgba(255,255,255,.02) 0 1px, transparent 1px 4px),
    linear-gradient(90deg, rgba(255,255,255,.028) 1px, transparent 1px) 0 0 / 56px 56px,
    linear-gradient(180deg, rgba(255,255,255,.028) 1px, transparent 1px) 0 0 / 56px 56px;
}
html.nv-on #nv54-amb .sc {
  left: 0; right: 0; top: -30vh; height: 26vh; opacity: .9;
  background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--nv54-a1) 7%, transparent) 70%, color-mix(in srgb, var(--nv54-a1) 16%, transparent) 99%, transparent);
  animation: nv54Sc 11s linear infinite;
}
@keyframes nv54Sc { from { transform: translate3d(0,0,0); } to { transform: translate3d(0,160vh,0); } }

/* Cine: fuga de luz cálida */
html.nv-on #nv54-amb .lk {
  width: 70vmax; height: 50vmax; left: -18vmax; top: -16vmax; opacity: 0;
  background: radial-gradient(closest-side, color-mix(in srgb, var(--nv54-a2) 70%, #fff 10%), transparent);
  animation: nv54Lk 19s ease-in-out infinite;
}
@keyframes nv54Lk {
  0%, 100% { opacity: 0; transform: translate3d(0,0,0) scale(.9); }
  35% { opacity: .2; transform: translate3d(8vw,4vh,0) scale(1.05); }
  60% { opacity: .08; transform: translate3d(16vw,2vh,0) scale(1.15); }
}

/* Destello diagonal (Gala) */
html.nv-on #nv54-amb .gl {
  left: -35%; top: -10%; width: 30%; height: 120%; opacity: var(--nv54-glint, .8);
  background: linear-gradient(100deg, transparent, color-mix(in srgb, var(--nv54-a1) 9%, transparent) 42%, rgba(255,255,255,.06) 50%, transparent 62%);
  animation: nv54Gl 16s cubic-bezier(.45,0,.25,1) infinite;
}
@keyframes nv54Gl { 0%, 55% { transform: translate3d(0,0,0) skewX(-8deg); } 100% { transform: translate3d(520%,0,0) skewX(-8deg); } }

/* Partículas: brasas, bokeh o burbujas según el tema */
html.nv-on #nv54-amb .pt { inset: 0; will-change: auto; opacity: var(--nv54-pto, .7); }
html.nv-on #nv54-amb .pt i {
  position: absolute; left: var(--x); bottom: -24px; width: var(--s); height: var(--s); border-radius: 50%;
  background: radial-gradient(circle, color-mix(in srgb, var(--nv54-a1) 80%, #fff) 0 30%, color-mix(in srgb, var(--nv54-a1) 40%, transparent) 55%, transparent 72%);
  opacity: 0; will-change: transform, opacity;
  animation: nv54Up var(--d) linear var(--dl) infinite;
}
html.nv-on #nv54-amb .pt i:nth-child(3n) { background: radial-gradient(circle, color-mix(in srgb, var(--nv54-a2) 80%, #fff) 0 30%, color-mix(in srgb, var(--nv54-a2) 40%, transparent) 55%, transparent 72%); }
@keyframes nv54Up {
  0% { opacity: 0; transform: translate3d(0,0,0) scale(.6); }
  12% { opacity: 1; }
  70% { opacity: .7; }
  100% { opacity: 0; transform: translate3d(var(--dx), -105vh, 0) scale(1); }
}
/* bokeh: círculos suaves y grandes que suben muy despacio */
html.nv-on #nv54-amb[data-pt="bokeh"] .pt i { width: calc(var(--s) * 5); height: calc(var(--s) * 5); animation-duration: calc(var(--d) * 2.2);
  background: radial-gradient(circle, color-mix(in srgb, var(--nv54-a1) 55%, transparent), color-mix(in srgb, var(--nv54-a1) 18%, transparent) 60%, transparent 70%); }
html.nv-on #nv54-amb[data-pt="bokeh"] .pt i:nth-child(3n) { background: radial-gradient(circle, color-mix(in srgb, var(--nv54-a2) 55%, transparent), color-mix(in srgb, var(--nv54-a2) 18%, transparent) 60%, transparent 70%); }
/* burbujas: aro fino */
html.nv-on #nv54-amb[data-pt="burbujas"] .pt i { width: calc(var(--s) * 2.4); height: calc(var(--s) * 2.4); animation-duration: calc(var(--d) * 1.6);
  background: radial-gradient(circle, transparent 55%, color-mix(in srgb, var(--nv54-a2) 60%, transparent) 64%, transparent 72%); }

/* Grano de película: textura de ruido que salta 8 veces por segundo */
html.nv-on #nv54-amb .gr {
  inset: -96px; opacity: var(--nv54-grain, .07);
  background-image: var(--nv54-noise, none); background-size: 160px 160px;
  animation: nv54Gr 1s steps(1) infinite;
}
@keyframes nv54Gr {
  0% { transform: translate3d(0,0,0); } 12% { transform: translate3d(-38px,22px,0); } 25% { transform: translate3d(26px,-44px,0); }
  37% { transform: translate3d(-60px,-12px,0); } 50% { transform: translate3d(50px,34px,0); } 62% { transform: translate3d(-14px,58px,0); }
  75% { transform: translate3d(70px,-26px,0); } 87% { transform: translate3d(-44px,-60px,0); }
}

/* Viñeta: profundidad en los bordes */
html.nv-on #nv54-amb .vg {
  inset: 0; will-change: auto;
  background: radial-gradient(120% 90% at 50% 40%, transparent 55%, color-mix(in srgb, var(--bg) 70%, #000) 100%);
  opacity: .7;
}

/* Intensidad por tema (opacidad de cada capa) */
html.nv-on[data-nv-estilo="estreno"] body { --nv54-o1: .24; --nv54-o2: .16; --nv54-o3: .1; --nv54-leak: .2; --nv54-grain: .075; }
html.nv-on[data-nv-estilo="oceano"] body { --nv54-o1: .26; --nv54-o2: .2; --nv54-o3: .16; --nv54-orb: .2; --nv54-pto: .5; }
html.nv-on[data-nv-estilo="purpura"] body { --nv54-o1: .28; --nv54-o2: .2; --nv54-o3: .16; --nv54-orb: .22; --nv54-pto: .4; }
html.nv-on[data-nv-estilo="aurora"] body { --nv54-o1: .2; --nv54-o2: .16; --nv54-o3: .14; --nv54-orb: .36; }
html.nv-on[data-nv-estilo="gala"] body { --nv54-o1: .2; --nv54-o2: .22; --nv54-o3: .22; --nv54-glint: .9; --nv54-leak: .14; --nv54-grain: .06; --nv54-pto: .45; }
html.nv-on[data-nv-estilo="constelacion"] body { --nv54-o1: .3; --nv54-o2: .12; --nv54-o3: .2; --nv54-stars: .8; }
html.nv-on[data-nv-estilo="orbita"] body { --nv54-o1: .2; --nv54-o2: .24; --nv54-o3: .16; --nv54-stars: .85; }
html.nv-on[data-nv-estilo="lanzamiento"] body { --nv54-o1: .16; --nv54-o2: .3; --nv54-o3: .2; --nv54-grain: .05; --nv54-pto: .85; }
html.nv-on[data-nv-estilo="estacion"] body { --nv54-o1: .09; --nv54-o2: .14; --nv54-o3: .05; --nv54-stars: .35; }
html.nv-on[data-nv-estilo="nebulosa"] body { --nv54-o1: .3; --nv54-o2: .22; --nv54-o3: .26; --nv54-orb: .24; --nv54-stars: .7; }
html.nv-on[data-nv-estilo="estacion"] #nv54-amb .st2 { display: none; }
/* Lanzamiento: el calor sube desde abajo */
html.nv-on[data-nv-estilo="lanzamiento"] #nv54-amb .g2 { right: auto; left: 10vw; bottom: -52vmax; width: 90vmax; height: 70vmax; }

/* Pausa si la pestaña no se ve; quieto si se apaga o el sistema lo pide */
html.nv54-oculto #nv54-amb *, html.nv54-oculto #nv54-amb *::after { animation-play-state: paused !important; }
html.nv54-quieto #nv54-amb > * { animation: none !important; }
html.nv54-quieto #nv54-amb > :not(.g1, .g2, .g3, .vg) { display: none !important; }
@media (prefers-reduced-motion: reduce) {
  html.nv-on #nv54-amb > *, html.nv-on #nv54-amb .pt i, html.nv-on #nv54-amb .or::after { animation: none !important; }
  html.nv-on #nv54-amb > :is(.ss, .sc, .lk, .gl, .pt, .gr) { display: none !important; }
}

/* Cambio de tema suave: también el menú y la barra superior */
html.nv53-xfade #sidebar, html.nv53-xfade #sidebar *, html.nv53-xfade .topbar, html.nv53-xfade .topbar * {
  transition: background-color .45s ease, border-color .45s ease, color .35s ease, box-shadow .45s ease !important;
}
/* ════════════════════════════════════════════════════════════════════
   7 · VENTANA CONFIGURACIÓN COMPACTA
   ════════════════════════════════════════════════════════════════════ */
html.nv54 {
  --nv54-spring: cubic-bezier(.32,1.3,.5,1);
  --nv54-soft: cubic-bezier(.2,.8,.2,1);
}

/* Sección Temas */
.nv54-t { display: flex; flex-direction: column; gap: 14px; }
.nv54-cur {
  display: flex; align-items: center; gap: 10px; min-width: 0;
  padding: 10px 10px 10px 12px; border-radius: 13px; background: var(--bg3); border: 1px solid var(--border);
  animation: nv54Up .34s var(--nv54-soft) both;
}
.nv54-cur-sw { width: 30px; height: 30px; flex-shrink: 0; border-radius: 9px; position: relative; overflow: hidden;
  background: linear-gradient(135deg, var(--accent), var(--accent2)); box-shadow: 0 6px 16px -8px rgba(var(--nv-accent-rgb), .9);
  transition: background .45s ease; }
.nv54-cur-sw::after { content: ''; position: absolute; inset: 0; background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,.5) 50%, transparent 70%); transform: translateX(-120%); }
.nv54-cur.flash .nv54-cur-sw::after { animation: nv54Shine .8s var(--nv54-soft); }
@keyframes nv54Shine { to { transform: translateX(120%); } }
.nv54-cur-tx { min-width: 0; flex: 1; }
.nv54-cur-tx b { display: block; font-family: var(--nv-font-display); font-weight: var(--nv54-w-display); font-size: 15px; line-height: 1.15; letter-spacing: var(--nv54-ls-display); color: var(--text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nv54-cur-tx small { display: block; margin-top: 3px; font-size: 11.5px; color: var(--text3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
/* Fondo vivo: fila propia, bien visible */
.nv54-amb-row {
  display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto; align-items: center; gap: 10px 12px;
  padding: 10px 12px; border-radius: 13px; position: relative; overflow: hidden; isolation: isolate;
  background: var(--bg3); border: 1px solid var(--border);
  animation: nv54Up .36s var(--nv54-soft) 40ms both;
  transition: border-color .25s ease, background-color .25s ease;
}
.nv54-amb-row::before {
  content: ''; position: absolute; inset: -40% -10%; z-index: -1; opacity: 0; pointer-events: none;
  background: radial-gradient(40% 70% at 12% 50%, rgba(var(--nv-accent-rgb), .22), transparent 70%), radial-gradient(40% 80% at 80% 40%, color-mix(in srgb, var(--accent2) 16%, transparent), transparent 70%);
  transition: opacity .4s ease;
}
.nv54-amb-row.on { border-color: rgba(var(--nv-accent-rgb), .38); }
.nv54-amb-row.on::before { opacity: 1; animation: nv54RowFlow 9s ease-in-out infinite alternate; }
@keyframes nv54RowFlow { from { transform: translate3d(-4%,0,0); } to { transform: translate3d(5%,0,0); } }
.nv54-amb-ico { width: 32px; height: 32px; border-radius: 10px; display: grid; place-items: center; color: var(--text3);
  background: var(--bg4); box-shadow: inset 0 0 0 1px var(--border2); transition: color .25s ease, background-color .25s ease, box-shadow .25s ease; }
.nv54-amb-ico svg { width: 16px; height: 16px; }
.nv54-amb-row.on .nv54-amb-ico { color: var(--nv54-on-accent); background: linear-gradient(135deg, var(--accent), var(--accent2)); box-shadow: 0 6px 16px -8px rgba(var(--nv-accent-rgb), .9); }
.nv54-amb-tx { min-width: 0; cursor: pointer; user-select: none; }
.nv54-amb-tx b { display: block; font: 700 13.5px/1.2 var(--nv-font-ui); color: var(--text); }
.nv54-amb-tx small { display: block; margin-top: 3px; font-size: 11.5px; line-height: 1.3; color: var(--text3); }
.nv54-int { display: inline-flex; padding: 2px; gap: 2px; border-radius: 9px; background: var(--bg); border: 1px solid var(--border); transition: opacity .25s ease; }
.nv54-int button { height: 26px; padding: 0 10px; border: 0; border-radius: 7px; background: none; cursor: pointer;
  font: 650 11.5px/1 var(--nv-font-ui); color: var(--text3); transition: background-color .2s ease, color .2s ease, transform .25s var(--nv54-spring); }
.nv54-int button:hover { color: var(--text); }
.nv54-int button:active { transform: scale(.94); }
.nv54-int button[aria-checked="true"] { background: var(--bg4); color: var(--text); box-shadow: 0 0 0 1px var(--border2) inset, 0 3px 8px -4px rgba(0,0,0,.6); }
.nv54-int button:focus-visible { outline: 2px solid var(--accent); outline-offset: 1px; }
.nv54-amb-row:not(.on) .nv54-int { opacity: .45; pointer-events: none; }
.nv54-sw {
  display: inline-flex; align-items: center; flex-shrink: 0; cursor: pointer;
  padding: 4px; margin: -4px; border-radius: 99px; border: 0; background: none;
}
.nv54-sw i { width: 42px; height: 25px; border-radius: 99px; background: var(--bg4); box-shadow: inset 0 0 0 1px var(--border2); position: relative; transition: background-color .25s ease, box-shadow .25s ease; }
.nv54-sw i::after { content: ''; position: absolute; top: 3px; left: 3px; width: 19px; height: 19px; border-radius: 50%; background: var(--text3); box-shadow: 0 2px 5px rgba(0,0,0,.4); transition: transform .34s var(--nv54-spring), background-color .2s ease; }
.nv54-sw[aria-checked="true"] i { background: var(--accent); box-shadow: inset 0 0 0 1px rgba(255,255,255,.08); }
.nv54-sw[aria-checked="true"] i::after { transform: translateX(17px); background: var(--nv54-on-accent); }
.nv54-sw:active i::after { width: 23px; }
.nv54-sw[aria-checked="true"]:active i::after { transform: translateX(13px); }
.nv54-sw:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.nv54-amb-note { grid-column: 2 / -1; margin: -2px 0 0; font-size: 11px; color: var(--amber); }

.nv54-grp { display: flex; flex-direction: column; gap: 8px; }
.nv54-grp-h { display: flex; align-items: center; gap: 10px; padding: 0 2px;
  font: 700 10.5px/1 var(--nv-font-ui); letter-spacing: .13em; text-transform: uppercase; color: var(--text3); }
.nv54-grp-h::after { content: ''; flex: 1; height: 1px; background: linear-gradient(90deg, var(--border2), transparent); }
.nv54-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.nv54-card {
  --d: 0ms;
  position: relative; display: flex; flex-direction: column; gap: 6px; min-width: 0;
  padding: 5px 5px 8px; border-radius: 13px; cursor: pointer; text-align: left;
  background: var(--bg3); border: 1px solid var(--border); color: var(--text2);
  font-family: var(--nv-font-ui);
  transition: transform .32s var(--nv54-spring), border-color .2s ease, background-color .2s ease, box-shadow .3s ease, color .2s ease;
  animation: nv54Up .38s var(--nv54-soft) var(--d) both;
}
.nv54-card:hover { transform: translateY(-2px); border-color: var(--border2); color: var(--text); }
.nv54-card:active { transform: scale(.96); transition-duration: .08s; }
.nv54-card:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.nv54-card[aria-checked="true"] {
  color: var(--text); border-color: transparent;
  background: color-mix(in srgb, var(--c1) 10%, var(--bg3));
  box-shadow: 0 0 0 1.5px var(--c1), 0 10px 22px -14px var(--c1);
}
.nv54-pv {
  position: relative; display: block; height: 46px; border-radius: 9px; overflow: hidden;
  background: radial-gradient(90% 120% at 100% 0%, color-mix(in srgb, var(--c1) 36%, transparent), transparent 62%), var(--t0);
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.06);
}
.nv54-pv::before { content: ''; position: absolute; left: 5px; top: 5px; bottom: 5px; width: 20%; border-radius: 4px; background: var(--tp); }
.nv54-pv::after { content: ''; position: absolute; left: calc(20% + 10px); right: 7px; bottom: 7px; height: 4px; border-radius: 3px; background: linear-gradient(90deg, var(--c1), var(--c2)); transform-origin: left; transition: transform .45s var(--nv54-spring); }
.nv54-card:hover .nv54-pv::after { transform: scaleX(.75); }
.nv54-aa { position: absolute; left: calc(20% + 10px); top: 7px; font-family: var(--f); font-weight: 700; font-size: 17px; line-height: 1; color: #fff; letter-spacing: -.01em; opacity: .94; }
.nv54-chk { position: absolute; right: 4px; top: 4px; width: 16px; height: 16px; border-radius: 50%; display: grid; place-items: center;
  background: var(--c1); color: var(--on, #fff); opacity: 0; transform: scale(.3) rotate(-30deg);
  transition: opacity .2s ease, transform .38s var(--nv54-spring); }
.nv54-chk svg { width: 9px; height: 9px; }
.nv54-card[aria-checked="true"] .nv54-chk { opacity: 1; transform: none; }
.nv54-nm { padding: 0 3px; font-size: 11.5px; font-weight: 650; line-height: 1.2; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.nv54-card.pop { animation: nv54Pop .42s var(--nv54-spring); }
@keyframes nv54Pop { 0% { transform: scale(.92); } 100% { transform: none; } }
@keyframes nv54Up { from { opacity: 0; transform: translateY(8px) scale(.98); } to { opacity: 1; transform: none; } }

/* Teléfono: hoja que sube desde abajo */
@media (max-width: 600px) {
  .nv54-grid { grid-template-columns: repeat(6, minmax(0, 1fr)); }
  .nv54-grid > .nv54-card { grid-column: span 2; }
  .nv54-grid > .nv54-card:nth-child(n+4) { grid-column: span 3; }
  .nv54-pv { height: 50px; }
  .nv54-nm { font-size: 12px; }
  .nv54-amb-row { grid-template-columns: auto minmax(0, 1fr) auto; }
  .nv54-sw { grid-column: 3; grid-row: 1; }
  .nv54-int { grid-column: 1 / -1; grid-row: 2; justify-self: stretch; }
  .nv54-int button { flex: 1; height: 32px; }
}
@keyframes nv54Sheet { from { transform: translateY(100%); } to { transform: none; } }
@keyframes nv54SheetOut { to { transform: translateY(100%); } }
@media (prefers-reduced-motion: reduce) {
  .nv54-card, .nv54-cur, .nv54-amb-row, .nv54-amb-row::before, .nv54-chk, .nv54-sw i::after, .nv54-pv::after, .nv54-cur-sw::after { animation: none !important; transition-duration: .01ms !important; }
}
/* Nebulosa: el botón principal usa rosa claro (accent2 es turquesa) */
html.nv-on[data-nv-estilo="nebulosa"] body .btn-primary { color: var(--accent3); }
/* Órbita y Estación: accent2 es de otro tono; el botón principal usa el tono claro del acento */
html.nv-on:is([data-nv-estilo="orbita"], [data-nv-estilo="estacion"]) body .btn-primary { color: var(--accent3); }
