/* NOVALINK — componentes y movimiento del tema NOVA (familia visual NOVAFUNDING).
   Vidrio oscuro con borde luminoso, números en Sora, etiquetas en JetBrains Mono, gradiente
   cian → verde → naranja, fondo ambiental con auroras, cuadrícula y chispas, y entradas escalonadas.
   Sin estilos en línea (CSP estricta): nova.js solo crea nodos y fija variables con CSSOM.
   Con «reducir movimiento» no hay animaciones (bloque final). */

/* ================= tipografía ================= */
:root[data-skin="nova"] body{font-family:var(--ff);letter-spacing:-.003em}
:root[data-skin="nova"] :is(h1,h2,h3,.brand .wm,.tile .v,.gate .statement,.head h1,.lock .box h2,.modal h2 .t){font-family:var(--fh);font-stretch:normal}
:root[data-skin="nova"] :is(.eyebrow,.tile .k,.f .lb,.gate .spec .k,.aj-h,th,.live,.who .chip .role,.pill){font-family:var(--mono);font-stretch:normal}
:root[data-skin="nova"] :is(.eyebrow,.tile .k,.f .lb,.gate .spec .k){letter-spacing:.14em;font-weight:600}
:root[data-skin="nova"] .head h1{font-weight:700;letter-spacing:-.025em}
:root[data-skin="nova"] .card h2{font-weight:700;letter-spacing:-.02em}
:root[data-skin="nova"] .tile .v{font-weight:800;letter-spacing:-.03em}
::selection{background:rgba(20,214,230,.35)}
:root[data-skin="nova"]{scrollbar-color:rgba(98,241,249,.35) transparent}
:root[data-skin="nova"] ::-webkit-scrollbar{width:8px;height:8px}
:root[data-skin="nova"] ::-webkit-scrollbar-thumb{background:rgba(98,241,249,.3);border-radius:99px}
:root[data-skin="nova"] ::-webkit-scrollbar-track{background:transparent}

/* texto con el gradiente de la marca (brilla despacio) */
.nv-grad,
:root[data-skin="nova"] .brand .wm b,
:root[data-skin="nova"] .gate .statement em{
  background-image:var(--nv-grad);background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:nvShine 7s ease-in-out infinite alternate;
}
:root[data-skin="nova"][data-theme="light"] .brand .wm b,
:root[data-skin="nova"][data-theme="light"] .gate .statement em{
  background-image:linear-gradient(100deg,#007E90 0%,#00A3B5 30%,#0A8F7A 55%,#C25A00 85%,#B84300 100%)}
@keyframes nvShine{from{background-position:0% 50%}to{background-position:100% 50%}}
:root[data-skin="nova"] .brand .wm{font-weight:700;letter-spacing:.01em;font-size:var(--fs-lg)}
:root[data-skin="nova"] .brand .wm b{font-weight:700}

/* ================= fondo ambiental ================= */
:root[data-skin="nova"] body::before{
  background:radial-gradient(120% 80% at 50% -10%,var(--bg-2) 0%,var(--bg) 60%),var(--bg) !important}
.nv-ambient{position:fixed;inset:0;z-index:-1;overflow:hidden;pointer-events:none;contain:strict;opacity:var(--nv-amb,1)}
.nv-ambient-grid{position:absolute;inset:0;
  background-image:linear-gradient(rgba(20,214,230,.055) 1px,transparent 1px),linear-gradient(90deg,rgba(20,214,230,.055) 1px,transparent 1px);
  background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse 70% 70% at 50% 40%,#000 25%,transparent 80%);
  mask-image:radial-gradient(ellipse 70% 70% at 50% 40%,#000 25%,transparent 80%);
  animation:nvGrid 9s linear infinite}
:root[data-theme="light"] .nv-ambient-grid{background-image:linear-gradient(rgba(8,120,138,.07) 1px,transparent 1px),linear-gradient(90deg,rgba(8,120,138,.07) 1px,transparent 1px)}
@keyframes nvGrid{to{background-position:0 56px,0 0}}
.nv-aurora{position:absolute;border-radius:50%;filter:blur(90px);will-change:transform;animation:nvDrift 26s ease-in-out infinite}
.nv-aurora.a{width:680px;height:680px;top:-280px;right:-240px;background:radial-gradient(circle,rgba(20,214,230,.22) 0%,rgba(20,214,230,0) 70%)}
.nv-aurora.b{width:560px;height:560px;bottom:-240px;left:-200px;background:radial-gradient(circle,rgba(0,245,160,.16) 0%,rgba(0,245,160,0) 70%);animation-duration:31s;animation-delay:-9s}
.nv-aurora.c{width:460px;height:460px;top:45%;left:55%;background:radial-gradient(circle,rgba(255,108,18,.11) 0%,rgba(255,108,18,0) 70%);animation-duration:36s;animation-delay:-17s}
@keyframes nvDrift{0%,100%{transform:translate3d(0,0,0) rotate(0) scale(1)}33%{transform:translate3d(3%,-4%,0) rotate(2deg) scale(1.06)}66%{transform:translate3d(-3%,3%,0) rotate(-1deg) scale(.95)}}
.nv-noise{position:absolute;inset:0;opacity:.45;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.55 0 0 0 0 0.85 0 0 0 0 0.95 0 0 0 0.10 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>")}
:root[data-theme="light"] .nv-noise{display:none}
.nv-spark{position:absolute;bottom:-40px;left:var(--x,50%);width:var(--s,4px);height:var(--s,4px);border-radius:50%;opacity:0;will-change:transform,opacity;
  animation:nvRise var(--d,18s) linear infinite;animation-delay:var(--dl,0s);
  background:radial-gradient(circle at 30% 30%,rgba(166,248,255,.95),rgba(20,214,230,.55) 60%,rgba(20,214,230,0) 100%);box-shadow:0 0 8px rgba(20,214,230,.5)}
.nv-spark.g{background:radial-gradient(circle at 30% 30%,rgba(190,255,230,.95),rgba(0,245,160,.55) 60%,rgba(0,245,160,0) 100%);box-shadow:0 0 8px rgba(0,245,160,.5)}
.nv-spark.o{background:radial-gradient(circle at 30% 30%,rgba(255,220,180,.95),rgba(255,154,46,.55) 60%,rgba(255,154,46,0) 100%);box-shadow:0 0 8px rgba(255,154,46,.45)}
@keyframes nvRise{0%{transform:translate3d(0,0,0) scale(.6);opacity:0}8%{opacity:.85}50%{transform:translate3d(var(--dx,8px),-55vh,0) scale(1);opacity:.9}90%{opacity:.5}100%{transform:translate3d(var(--dx2,-6px),-112vh,0) scale(.5);opacity:0}}
@media (max-width:760px){.nv-aurora{filter:blur(60px)}.nv-aurora.a{width:420px;height:420px}.nv-aurora.b{width:360px;height:360px}.nv-aurora.c{width:300px;height:300px}}

/* ================= barra superior, marca y dock ================= */
:root[data-skin="nova"] .brand .badge{
  width:34px;height:34px;border-radius:0;background:url(novalink-emblema.png) center/contain no-repeat;box-shadow:none;
  filter:drop-shadow(0 0 12px rgba(20,214,230,.45))}
:root[data-skin="nova"] .brand .badge svg{display:none}
:root[data-skin="nova"] header.bar .in{
  background:var(--nav-bg);border-color:var(--glassline);
  box-shadow:var(--e1),inset 0 1px 0 var(--nv-card-top);position:relative;overflow:visible}
:root[data-skin="nova"] header.bar .in::after{content:"";position:absolute;left:12%;right:12%;bottom:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,rgba(20,214,230,.55) 30%,rgba(255,154,46,.45) 70%,transparent);opacity:.7}
:root[data-skin="nova"] .who .chip{background:var(--surface-2);border-color:var(--line)}
:root[data-skin="nova"] .iconbtn{background:var(--accent-tint);border-color:transparent;color:var(--ink-2);box-shadow:none;
  transition:background .25s,color .25s,transform .25s var(--ease-out),box-shadow .25s}
@media (hover:hover) and (pointer:fine){
  :root[data-skin="nova"] .iconbtn:hover{color:var(--ink);background:color-mix(in srgb,var(--accent) 22%,transparent);box-shadow:0 0 22px -8px var(--nv-glow)}
}
:root[data-skin="nova"] .live.on i{background:var(--nv-green);box-shadow:0 0 10px var(--nv-green);animation:nvPulse 1.8s infinite}
:root[data-theme="light"] .live.on i{background:var(--ok)}
@keyframes nvPulse{0%{box-shadow:0 0 0 0 rgba(0,245,160,.65)}70%{box-shadow:0 0 0 10px rgba(0,245,160,0)}100%{box-shadow:0 0 0 0 rgba(0,245,160,0)}}

:root[data-skin="nova"] nav.dock{background:var(--nav-bg);border-color:var(--glassline);box-shadow:var(--e2),inset 0 1px 0 var(--nv-card-top)}
:root[data-skin="nova"] nav.dock::before{content:"";position:absolute;left:10%;right:10%;top:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--nv-cyan-2),var(--nv-green),transparent);opacity:.55}
:root[data-skin="nova"] .dock .tab{font-family:var(--mono);font-weight:600;letter-spacing:.04em}
:root[data-skin="nova"] .dock .tab .halo{
  background:linear-gradient(180deg,rgba(20,214,230,.22),rgba(20,214,230,.05));border-color:rgba(98,241,249,.30)}
:root[data-skin="nova"] .dock .tab .halo::after{content:"";position:absolute;left:28%;right:28%;top:-1px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--nv-cyan-2),var(--nv-green));box-shadow:0 0 12px var(--nv-cyan)}
:root[data-skin="nova"] .dock .tab.on{color:var(--ink)}
:root[data-skin="nova"] .dock .tab.on .ico{color:var(--accent-text);filter:drop-shadow(0 0 6px rgba(98,241,249,.7))}
:root[data-skin="nova"][data-theme="light"] .dock .tab.on .ico{filter:none}

/* ================= cabecera de pantalla ================= */
:root[data-skin="nova"] .head .rule{width:64px;height:3px;border-radius:3px;background:var(--nv-grad);background-size:200% 100%;
  box-shadow:0 0 14px -2px var(--nv-glow);animation:nvShine 6s ease-in-out infinite alternate}
:root[data-skin="nova"] .eyebrow{color:var(--accent-text);display:inline-flex;align-items:center;gap:8px}
:root[data-skin="nova"] .head .eyebrow::before{content:"";width:18px;height:1px;background:linear-gradient(90deg,transparent,var(--accent-text))}

/* ================= tarjetas de vidrio ================= */
:root[data-skin="nova"] :is(.card,.tile,.gate .spec,.install,.trader-role){
  position:relative;background:var(--nv-card);border:1px solid var(--line);
  box-shadow:var(--e2),inset 0 1px 0 var(--nv-card-top);
  transition:transform .5s var(--ease-out),box-shadow .5s,border-color .4s}
:root[data-skin="nova"] .card{border-radius:var(--r-lg)}
/* foco de luz que sigue al ratón (nova.js fija --mx/--my) */
:root[data-skin="nova"] :is(.card,.tile)::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:radial-gradient(600px 200px at var(--mx,50%) var(--my,0%),rgba(98,241,249,.08),transparent 60%);opacity:0;transition:opacity .4s}
@media (hover:hover) and (pointer:fine){
  :root[data-skin="nova"] :is(.card,.tile):hover{border-color:color-mix(in srgb,var(--accent) 34%,transparent);
    box-shadow:0 36px 70px -34px rgba(0,0,0,.9),0 0 0 1px rgba(98,241,249,.05),0 0 40px -18px var(--nv-glow),inset 0 1px 0 var(--nv-card-top)}
  :root[data-skin="nova"] :is(.card,.tile):hover::after{opacity:1}
  :root[data-skin="nova"][data-theme="light"] :is(.card,.tile):hover{box-shadow:0 26px 50px -30px rgba(11,20,38,.32),0 0 30px -16px var(--nv-glow)}
}
/* línea de luz superior en la primera tarjeta de cada pantalla */
:root[data-skin="nova"] .screen > .card:first-of-type::before,
:root[data-skin="nova"] .gate .box .card::before{content:"";position:absolute;left:10%;right:10%;top:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,var(--nv-cyan-2),var(--nv-green),transparent);box-shadow:0 0 18px rgba(20,214,230,.8)}

/* métricas */
:root[data-skin="nova"] .tile{overflow:hidden;border-radius:var(--r-md)}
:root[data-skin="nova"] .tile .k{color:var(--muted)}
:root[data-skin="nova"] .tile.hot .v{color:var(--accent-text);text-shadow:0 0 22px rgba(98,241,249,.35)}
:root[data-skin="nova"] .tile.bad .v{text-shadow:0 0 22px rgba(255,107,122,.25)}
:root[data-skin="nova"][data-theme="light"] .tile :is(.v){text-shadow:none !important}
:root[data-skin="nova"] .pos{color:var(--gain)}
:root[data-skin="nova"] .neg{color:var(--loss)}
.nv-bump{animation:nvBump .7s var(--ease-out)}
@keyframes nvBump{0%{transform:scale(1.07);text-shadow:0 0 18px currentColor}100%{transform:none}}

/* ================= controles ================= */
:root[data-skin="nova"] .btn{
  background:var(--accent-tint);color:var(--ink);box-shadow:inset 0 0 0 1px var(--accent-line);font-weight:600;
  transition:transform .35s var(--ease-out),box-shadow .35s,background .3s,color .3s,opacity .3s}
:root[data-skin="nova"] .btn.primary{
  color:#1C1206;background:var(--nv-grad-warm);
  box-shadow:0 12px 34px -12px rgba(255,108,18,.8),inset 0 1px 0 rgba(255,255,255,.45)}
:root[data-skin="nova"] .btn.ghost{background:var(--surface-2);color:var(--ink);border:0;box-shadow:inset 0 0 0 1px var(--line)}
:root[data-skin="nova"] .btn.danger{background:var(--bad-tint);box-shadow:inset 0 0 0 1px var(--bad-line);border:0;color:var(--bad-text)}
@media (hover:hover) and (pointer:fine){
  :root[data-skin="nova"] .btn:hover{transform:translateY(-2px);background:color-mix(in srgb,var(--accent) 20%,transparent);box-shadow:inset 0 0 0 1px var(--accent),0 0 24px -8px var(--nv-glow)}
  :root[data-skin="nova"] .btn.primary:hover{background:var(--nv-grad-warm);box-shadow:0 18px 40px -12px rgba(255,108,18,.95),inset 0 1px 0 rgba(255,255,255,.45)}
  :root[data-skin="nova"] .btn.ghost:hover{background:var(--accent-tint);box-shadow:inset 0 0 0 1px var(--accent-line),0 0 24px -10px var(--nv-glow)}
  :root[data-skin="nova"] .btn.danger:hover{background:color-mix(in srgb,var(--bad) 20%,transparent);box-shadow:inset 0 0 0 1px var(--bad)}
}
:root[data-skin="nova"] .tabs{background:var(--surface-2);border-color:var(--line);border-radius:16px;padding:5px}
:root[data-skin="nova"] .tabs button{border-radius:12px;font-weight:600;transition:color .3s,background .3s,box-shadow .3s}
:root[data-skin="nova"] .tabs button.on{color:#04121A;background:var(--nv-grad-cool);box-shadow:0 10px 26px -10px rgba(20,214,230,.9)}
:root[data-skin="nova"] :is(input,select,textarea){background:var(--surface-2);border-color:var(--line);border-radius:12px;font-weight:500;box-shadow:none}
:root[data-skin="nova"] :is(input,select,textarea):focus{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-tint)}
:root[data-skin="nova"] .switch.on{background:linear-gradient(135deg,#14D6E6,#00F5A0);box-shadow:0 0 22px -4px rgba(20,214,230,.9)}
:root[data-skin="nova"] .switch.on::after{background:#04121A}
:root[data-skin="nova"] .switch.danger.on{background:linear-gradient(135deg,#FF9AA5,#FF6B7A);box-shadow:0 0 22px -6px rgba(255,107,122,.9)}
:root[data-skin="nova"] .pill{font-weight:600;letter-spacing:.04em}
:root[data-skin="nova"] .pasos li.hecho .num{background:var(--nv-grad-cool);border-color:transparent;color:#04121A;box-shadow:0 0 16px -4px var(--nv-glow)}

/* tablas */
:root[data-skin="nova"] th{color:var(--muted);letter-spacing:.1em;font-weight:600}
:root[data-skin="nova"] tbody tr{transition:background .2s}
@media (hover:hover){:root[data-skin="nova"] tbody tr:hover{background:var(--accent-tint)}}

/* menús, avisos, banners, diálogos */
:root[data-skin="nova"] .menu{background:var(--surface-solid);border-color:var(--accent-line)}
:root[data-skin="nova"] #toast{background:var(--surface-solid);color:var(--ink);border:1px solid var(--line);font-weight:600;
  box-shadow:0 30px 60px -24px rgba(0,0,0,.9),0 0 30px -14px var(--nv-glow);overflow:hidden}
:root[data-skin="nova"] #toast::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--nv-cyan-2);box-shadow:0 0 12px var(--nv-cyan-2)}
:root[data-skin="nova"] #toast.bad::before{background:var(--nv-red);box-shadow:0 0 12px var(--nv-red)}
:root[data-skin="nova"] .modal-veil.on{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
:root[data-skin="nova"] .modal .box{background:var(--surface-solid);border:1px solid var(--accent-line);
  box-shadow:0 40px 90px -30px rgba(0,0,0,.9),0 0 50px -24px var(--nv-glow)}
:root[data-skin="nova"][data-theme="dark"] .modal .box{background:linear-gradient(180deg,#0D1628,#070B16)}
:root[data-skin="nova"] .modal .box::before{content:"";position:absolute;left:10%;right:10%;top:-1px;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,#14D6E6 30%,#FF9A2E 70%,transparent);opacity:.8}
:root[data-skin="nova"] .notipanel{border-color:var(--accent-line)}

/* ================= portada (entrar / crear cuenta) ================= */
:root[data-skin="nova"] .gate{position:relative;isolation:isolate}
/* velo suave detrás del texto de la portada: las velas no compiten con el titular */
:root[data-skin="nova"] .gate .hero{position:relative}
:root[data-skin="nova"] .gate .hero::before{content:"";position:absolute;inset:-30px -70px -30px -90px;z-index:-1;pointer-events:none;
  background:radial-gradient(62% 58% at 42% 58%,color-mix(in srgb,var(--bg) 88%,transparent) 0%,color-mix(in srgb,var(--bg) 55%,transparent) 55%,transparent 80%)}
:root[data-skin="nova"] .gate .statement{font-weight:700;letter-spacing:-.03em;font-size:clamp(30px,3.6vw,46px)}
:root[data-skin="nova"] .gate .spec .v{font-weight:600}
:root[data-skin="nova"] .gate .box .card{border-color:rgba(98,241,249,.30);border-radius:24px;overflow:visible}
/* anillo de luz que gira alrededor de la tarjeta de acceso */
:root[data-skin="nova"] .gate .box .card::after,
:root[data-skin="nova"] .lock .box::after{content:"";position:absolute;inset:-1px;border-radius:inherit;padding:1.5px;pointer-events:none;opacity:.85;
  background:conic-gradient(from var(--nv-a),rgba(20,214,230,0) 0deg,#14D6E6 60deg,#00F5A0 110deg,rgba(255,154,46,0) 170deg,rgba(255,154,46,0) 220deg,#FF9A2E 290deg,rgba(20,214,230,0) 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:nvSpin 5s linear infinite}
@property --nv-a{syntax:'<angle>';inherits:false;initial-value:0deg}
@keyframes nvSpin{to{--nv-a:360deg}}
/* esquinas HUD */
.nv-hud{position:absolute;inset:-12px;pointer-events:none}
.nv-hud i{position:absolute;width:18px;height:18px;border:2px solid var(--nv-cyan-2);opacity:.75}
.nv-hud i:nth-child(1){left:0;top:0;border-right:0;border-bottom:0;border-top-left-radius:6px}
.nv-hud i:nth-child(2){right:0;top:0;border-left:0;border-bottom:0;border-top-right-radius:6px}
.nv-hud i:nth-child(3){left:0;bottom:0;border-right:0;border-top:0;border-bottom-left-radius:6px;border-color:var(--nv-orange)}
.nv-hud i:nth-child(4){right:0;bottom:0;border-left:0;border-top:0;border-bottom-right-radius:6px;border-color:var(--nv-orange)}
.nv-boxhead{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:-4px 0 16px;font:600 10.5px/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent-text)}
.nv-boxhead span:last-child{display:inline-flex;align-items:center;gap:7px;color:var(--muted)}
.nv-boxhead span:last-child::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--nv-green);box-shadow:0 0 8px var(--nv-green)}

/* emblema holográfico: halo, disco y dos anillos que giran */
.nv-stage{position:relative;width:min(230px,52vw);aspect-ratio:1;margin:0 0 4px -10px;pointer-events:none}
.nv-stage .halo{position:absolute;inset:6%;border-radius:50%;background:radial-gradient(circle,rgba(20,214,230,.34) 0%,rgba(20,214,230,.10) 42%,transparent 70%);animation:nvBreath 4.5s ease-in-out infinite}
.nv-stage .disk{position:absolute;inset:22%;border-radius:50%;background:radial-gradient(circle,rgba(6,10,21,.95) 50%,rgba(6,10,21,0) 72%)}
:root[data-theme="light"] .nv-stage .disk{background:radial-gradient(circle,rgba(255,255,255,.9) 50%,rgba(255,255,255,0) 72%)}
.nv-stage .ring{position:absolute;inset:4%;border-radius:50%;border:1.5px solid transparent;border-top-color:var(--nv-cyan-2);border-left-color:rgba(98,241,249,.25);animation:nvRot 9s linear infinite}
.nv-stage .ring.r2{inset:12%;border-top-color:var(--nv-orange);border-right-color:rgba(255,154,46,.25);border-left-color:transparent;animation-duration:13s;animation-direction:reverse}
.nv-stage .ring.r3{inset:0;border:1px dashed rgba(98,241,249,.18);animation-duration:40s}
.nv-stage img{position:absolute;inset:26%;width:48%;height:48%;object-fit:contain;filter:drop-shadow(0 0 18px rgba(20,214,230,.55));animation:nvFloat 6s ease-in-out infinite}
.nv-stage .tag{position:absolute;font:600 9.5px/1 var(--mono);letter-spacing:.18em;color:var(--accent-text);white-space:nowrap;opacity:.85}
.nv-stage .tag::before{content:"";display:inline-block;width:6px;height:6px;margin-right:6px;border-radius:50%;background:var(--nv-green);box-shadow:0 0 8px var(--nv-green);vertical-align:1px}
.nv-stage .t1{right:-46%;top:18%}
.nv-stage .t2{right:-58%;bottom:22%}
.nv-stage .t2::before{background:var(--nv-orange);box-shadow:0 0 8px var(--nv-orange)}
@keyframes nvRot{to{transform:rotate(360deg)}}
@keyframes nvBreath{0%,100%{transform:scale(1);opacity:.9}50%{transform:scale(1.08);opacity:1}}
@keyframes nvFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
@media (max-width:860px){.nv-stage{width:150px;margin:0 auto 0}.nv-stage .tag{display:none}}

/* velas japonesas animadas detrás de la portada (canvas de nova.js) */
.nv-candles{position:fixed;inset:0;z-index:-1;width:100%;height:100%;pointer-events:none;opacity:.9;
  -webkit-mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.35) 38%,#000 62%);mask-image:linear-gradient(180deg,transparent 0%,rgba(0,0,0,.35) 38%,#000 62%)}
:root[data-theme="light"] .nv-candles{opacity:.5}
.nv-candles.en{position:absolute;z-index:0}
:root[data-skin="nova"] .lock > .box{z-index:1}
:root[data-skin="nova"] .lock .box .big{font-size:0;width:84px;height:62px;margin:0 auto 12px;background:url(novalink-emblema.png) center/contain no-repeat;filter:drop-shadow(0 0 16px rgba(20,214,230,.55))}

/* candado del panel del equipo */
:root[data-skin="nova"] .lock .box{position:relative;background:var(--nv-card);border:1px solid rgba(98,241,249,.30);box-shadow:var(--e3),0 0 50px -24px var(--nv-glow)}
:root[data-skin="nova"][data-theme="dark"] .lock{background:radial-gradient(120% 90% at 50% 0%,rgba(10,16,32,.86),rgba(6,10,21,.94))}

/* ================= «Acceso concedido» al entrar al panel ================= */
.nv-rally{position:fixed;inset:0;z-index:200;display:grid;place-items:center;pointer-events:none;
  background:radial-gradient(70% 60% at 50% 50%,rgba(10,16,32,.92),rgba(6,10,21,.97));animation:nvRallyOut .6s ease 1.5s forwards}
:root[data-theme="light"] .nv-rally{background:radial-gradient(70% 60% at 50% 50%,rgba(255,255,255,.94),rgba(238,243,248,.98))}
.nv-rally .in{display:flex;flex-direction:column;align-items:center;gap:16px}
.nv-rally img{width:110px;height:auto;filter:drop-shadow(0 0 24px rgba(20,214,230,.7));animation:nvRallyPop .9s var(--ease-out) both}
.nv-rally b{font:700 clamp(18px,3vw,28px)/1 var(--fh);letter-spacing:.32em;text-indent:.32em;background-image:var(--nv-grad);background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;animation:nvRallyText 1s var(--ease-out) .2s both,nvShine 2s ease-in-out infinite alternate}
.nv-rally small{font:600 11px/1 var(--mono);letter-spacing:.2em;text-transform:uppercase;color:var(--muted);animation:nvRallyText .9s var(--ease-out) .45s both}
.nv-rally svg{width:200px;height:44px;overflow:visible}
.nv-rally svg path{fill:none;stroke:url(#nvRallyG);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:260;stroke-dashoffset:260;animation:nvDraw 1.1s var(--ease-out) .35s forwards}
@keyframes nvRallyPop{from{transform:scale(.4) rotate(-12deg);opacity:0;filter:blur(8px)}to{transform:none;opacity:1}}
@keyframes nvRallyText{from{opacity:0;transform:translateY(10px);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
@keyframes nvDraw{to{stroke-dashoffset:0}}
@keyframes nvRallyOut{to{opacity:0;visibility:hidden}}

/* ================= entradas escalonadas ================= */
:root[data-skin="nova"] .screen.on{animation:none}
:root[data-skin="nova"] .screen.on > *{animation:nvUp .8s var(--ease-out) both}
:root[data-skin="nova"] .screen.on > :nth-child(2){animation-delay:.06s}
:root[data-skin="nova"] .screen.on > :nth-child(3){animation-delay:.12s}
:root[data-skin="nova"] .screen.on > :nth-child(4){animation-delay:.18s}
:root[data-skin="nova"] .screen.on > :nth-child(5){animation-delay:.24s}
:root[data-skin="nova"] .screen.on > :nth-child(n+6){animation-delay:.3s}
:root[data-skin="nova"] .screen.on .tiles > .tile{animation:nvPop .7s var(--ease-out) both}
:root[data-skin="nova"] .screen.on .tiles > .tile:nth-child(2){animation-delay:.05s}
:root[data-skin="nova"] .screen.on .tiles > .tile:nth-child(3){animation-delay:.1s}
:root[data-skin="nova"] .screen.on .tiles > .tile:nth-child(4){animation-delay:.15s}
:root[data-skin="nova"] .screen.on .tiles > .tile:nth-child(5){animation-delay:.2s}
:root[data-skin="nova"] .screen.on .tiles > .tile:nth-child(n+6){animation-delay:.25s}
@keyframes nvUp{from{opacity:0;transform:translateY(18px);filter:blur(8px)}to{opacity:1;transform:none;filter:none}}
@keyframes nvPop{from{opacity:0;transform:scale(.94);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
:root[data-skin="nova"] .rise{animation-name:nvUp;animation-duration:.8s}

/* ================= movimiento reducido ================= */
@media (prefers-reduced-motion:reduce){
  .nv-ambient-grid,.nv-aurora,.nv-stage *,.nv-rally,.nv-rally *,
  :root[data-skin="nova"] :is(.brand .wm b,.gate .statement em,.head .rule,.live.on i,.screen.on > *,.tiles > .tile,.rise),
  :root[data-skin="nova"] .gate .box .card::after,:root[data-skin="nova"] .lock .box::after{animation:none !important}
  .nv-spark,.nv-candles,.nv-rally{display:none !important}
  .nv-bump{animation:none}
}

/* =====================================================================
   NOVALINK · experiencia 2 — menos texto, más claridad y más movimiento
   ===================================================================== */

/* ---------- portada mínima ---------- */
:root[data-skin="nova"] .gate .statement{font-size:clamp(34px,4.4vw,56px);line-height:1.02}
.nv-lead{font-size:clamp(15px,1.4vw,18px);color:var(--ink-2);font-weight:500;max-width:34ch}
.nv-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0}
.nv-chips li{display:inline-flex;align-items:center;gap:8px;padding:8px 14px 8px 10px;border-radius:999px;
  font:600 12.5px/1 var(--ff);color:var(--ink);background:var(--surface-2);border:1px solid var(--line);
  transition:transform .4s var(--ease-out),border-color .3s,box-shadow .3s}
.nv-chips li:hover{transform:translateY(-2px);border-color:var(--accent-line);box-shadow:0 10px 24px -14px var(--nv-glow)}
.nv-ico{width:22px;height:22px;border-radius:50%;flex:none;display:inline-block;background:var(--accent-tint) center/14px no-repeat}
.nv-ico-bolt{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2362F1F9' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M13 2 4 14h7l-1 8 9-12h-7z'/%3E%3C/svg%3E")}
.nv-ico-lock{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2300F5A0' stroke-width='2.4' stroke-linecap='round'%3E%3Crect x='5' y='11' width='14' height='10' rx='2'/%3E%3Cpath d='M8 11V7a4 4 0 0 1 8 0v4'/%3E%3C/svg%3E")}
.nv-ico-shield{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FF9A2E' stroke-width='2.4' stroke-linejoin='round'%3E%3Cpath d='M12 3l8 3v6c0 4.5-3.4 8.3-8 9-4.6-.7-8-4.5-8-9V6l8-3z'/%3E%3C/svg%3E")}
:root[data-theme="light"] .nv-ico{background-color:rgba(8,120,138,.12)}
.nv-legal{font-size:11px !important;opacity:.7}
:root[data-skin="nova"] .gate .spec{display:none}
.nv-formt{margin:0 0 18px;font:700 20px/1.2 var(--fh);letter-spacing:-.02em;color:var(--ink)}
.nv-formt small{display:block;margin-top:6px;font:500 13px/1.4 var(--ff);letter-spacing:0;color:var(--muted)}

/* etiquetas flotantes (portada y candado del equipo) */
:root[data-skin="nova"] .gate .f{position:relative;margin-bottom:14px}
:root[data-skin="nova"] .gate .f .lb{position:absolute;left:15px;top:50%;transform:translateY(-50%);margin:0;pointer-events:none;
  font:500 15px/1 var(--ff);letter-spacing:0;text-transform:none;color:var(--muted);transition:all .25s var(--ease-out)}
:root[data-skin="nova"] .gate .f input{height:58px;padding:24px 46px 8px 15px;font-size:15.5px}
:root[data-skin="nova"] .gate .f:focus-within .lb,
:root[data-skin="nova"] .gate .f:has(input:not(:placeholder-shown)) .lb{top:14px;transform:none;font:600 10.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent-text)}
:root[data-skin="nova"] .gate .f .lb .faint{display:none}
.nv-ojo{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:36px;height:36px;border-radius:10px;display:grid;place-items:center;
  color:var(--muted);background:transparent;transition:color .2s,background .2s}
.nv-ojo:hover,.nv-ojo[aria-pressed="true"]{color:var(--accent-text);background:var(--accent-tint)}
.nv-ojo svg{width:18px;height:18px}
.nv-mayus{display:block;margin:-6px 0 10px 4px;font:600 11px/1.2 var(--mono);letter-spacing:.08em;color:var(--warn-text)}
.nv-mayus[hidden]{display:none}
:root[data-skin="nova"] .lock .f{position:relative}
.nv-shake{animation:nvShake .5s cubic-bezier(.36,.07,.19,.97)}
@keyframes nvShake{10%,90%{transform:translateX(-2px)}20%,80%{transform:translateX(4px)}30%,50%,70%{transform:translateX(-8px)}40%,60%{transform:translateX(8px)}}
:root[data-skin="nova"] .err:not(:empty){animation:nvUp .45s var(--ease-out)}

/* botones: estado ocupado con giro, ripple y brillo que cruza */
:root[data-skin="nova"] .btn{position:relative;overflow:hidden;isolation:isolate}
:root[data-skin="nova"] .btn.primary::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(105deg,transparent 35%,rgba(255,255,255,.45) 50%,transparent 65%);transform:translateX(-120%);transition:none}
@media (hover:hover){:root[data-skin="nova"] .btn.primary:hover::after{transform:translateX(120%);transition:transform .9s var(--ease-out)}}
:root[data-skin="nova"] .btn[aria-busy="true"]{opacity:.85;color:transparent !important}
:root[data-skin="nova"] .btn[aria-busy="true"]::before{content:"";position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;
  border:2px solid rgba(28,18,6,.25);border-top-color:#1C1206;animation:nvRot .7s linear infinite}
:root[data-skin="nova"] .btn:not(.primary)[aria-busy="true"]::before{border-color:rgba(98,241,249,.25);border-top-color:var(--accent-text)}
.nv-ripple{position:absolute;left:var(--rx);top:var(--ry);width:12px;height:12px;margin:-6px 0 0 -6px;border-radius:50%;pointer-events:none;z-index:-1;
  background:rgba(255,255,255,.45);animation:nvRipple .7s ease-out forwards}
@keyframes nvRipple{to{transform:scale(40);opacity:0}}

/* ---------- ayuda bajo demanda («?») ---------- */
.nv-ayuda{display:none !important}
.nv-ay-on .nv-ayuda{display:block !important;animation:nvUp .45s var(--ease-out)}
.nv-ay-on h2 small.nv-ayuda,.nv-ay-on .modal h2 small.nv-ayuda{display:block !important}
.nv-q{display:inline-grid;place-items:center;width:22px;height:22px;margin-left:8px;vertical-align:3px;border-radius:50%;flex:none;
  font:700 12px/1 var(--mono);color:var(--accent-text);background:var(--accent-tint);border:1px solid var(--accent-line);
  transition:transform .3s var(--spring),background .2s,box-shadow .2s;letter-spacing:0;text-transform:none}
.nv-q:hover{transform:scale(1.12);box-shadow:0 0 16px -4px var(--nv-glow)}
.nv-q[aria-expanded="true"]{background:var(--nv-grad-cool);color:#04121A;border-color:transparent}
.head .nv-q{vertical-align:12px}

/* ---------- Resumen ordenado: primero lo que importa ---------- */
:root[data-skin="nova"] #scr-resumen.on{display:flex;flex-direction:column;gap:16px}
:root[data-skin="nova"] #scr-resumen.on > *{margin:0 !important;order:5}
:root[data-skin="nova"] #scr-resumen.on > .head{order:0;margin-bottom:4px !important}
:root[data-skin="nova"] #scr-resumen.on > :is(.arranque,#licBanner,#mt5BanR){order:1}
:root[data-skin="nova"] #scr-resumen.on > #guia{order:2}
:root[data-skin="nova"] #scr-resumen.on > #tiles{order:3}
:root[data-skin="nova"] #scr-resumen.on > .tiles + .card{order:4}
:root[data-skin="nova"] #scr-resumen.on > #licBanner:empty,:root[data-skin="nova"] #scr-resumen.on > #mt5BanR:empty{display:none}
:root[data-skin="nova"] #scr-resumen.on > .nv-cuenta-h{order:8}
:root[data-skin="nova"] #scr-resumen.on > .nv-cuenta{order:9}
:root[data-skin="nova"] #scr-resumen:not(.nv-cuenta-abierta) > .nv-cuenta{display:none}
.nv-cuenta-h{display:flex;align-items:center;gap:14px;width:100%;padding:16px 20px;border-radius:var(--r-lg);text-align:left;color:var(--ink);
  background:var(--surface-2);border:1px dashed var(--line);transition:border-color .3s,background .3s,transform .3s var(--ease-out)}
.nv-cuenta-h:hover{border-color:var(--accent-line);background:var(--accent-tint)}
.nv-cuenta-h b{font:700 16px/1.2 var(--fh)}
.nv-cuenta-h small{display:block;margin-top:3px;font:500 12.5px/1.3 var(--ff);color:var(--muted)}
.nv-cuenta-h .car{margin-left:auto;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--accent-tint);color:var(--accent-text);transition:transform .4s var(--spring)}
.nv-cuenta-abierta .nv-cuenta-h .car{transform:rotate(180deg)}
.nv-cuenta-h .ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:var(--nv-grad-cool);color:#04121A;flex:none}

/* progreso de la guía */
.nv-prog{display:flex;align-items:center;gap:12px;margin:-6px 0 16px}
.nv-prog .bar{flex:1;height:8px;border-radius:99px;background:var(--accent-tint);overflow:hidden}
.nv-prog .bar i{display:block;height:100%;width:var(--p,0%);border-radius:inherit;background:linear-gradient(90deg,#14D6E6,#00F5A0);
  box-shadow:0 0 14px -2px rgba(20,214,230,.8);transition:width 1.2s var(--ease-out)}
.nv-prog b{font:700 13px/1 var(--mono);color:var(--accent-text);white-space:nowrap}
:root[data-skin="nova"] .pasos li{transition:transform .3s var(--ease-out)}
:root[data-skin="nova"] .pasos li:not(.hecho) .num{border-color:var(--accent-line);color:var(--accent-text);box-shadow:0 0 0 0 rgba(20,214,230,.5);animation:nvPulseC 2s infinite}
@keyframes nvPulseC{0%{box-shadow:0 0 0 0 rgba(20,214,230,.45)}70%{box-shadow:0 0 0 10px rgba(20,214,230,0)}100%{box-shadow:0 0 0 0 rgba(20,214,230,0)}}

/* métricas más grandes con barra de acento */
:root[data-skin="nova"] .tile{min-height:104px}
:root[data-skin="nova"] .tile .v{font-size:clamp(20px,17cqi,30px)}
:root[data-skin="nova"] .tile::before{content:"";position:absolute;left:16px;right:16px;top:0;height:2px;border-radius:0 0 2px 2px;
  background:linear-gradient(90deg,#14D6E6,#00F5A0);opacity:0;transform:scaleX(.3);transition:opacity .35s,transform .5s var(--ease-out)}
:root[data-skin="nova"] .tile:hover::before{opacity:1;transform:none}
:root[data-skin="nova"] .tile.bad::before{background:linear-gradient(90deg,#FF9AA5,#FF6B7A)}

/* inclinación 3D (nova.js fija --rx/--ry) */
.nv-tilt{transform:perspective(900px) rotateX(var(--tx,0deg)) rotateY(var(--ty,0deg)) translateZ(0);transition:transform .25s ease-out}
.nv-tilt:not(:hover){--tx:0deg;--ty:0deg;transition:transform .7s var(--ease-out)}

/* tarjetas de cuenta */
:root[data-skin="nova"] .acc{transition:transform .5s var(--ease-out),box-shadow .5s,border-color .4s}
:root[data-skin="nova"] .acc .login{font-family:var(--fh);letter-spacing:-.02em}
:root[data-skin="nova"] .acc .top .dot.on{box-shadow:0 0 0 0 rgba(0,245,160,.6);animation:nvPulse 1.8s infinite}

/* ---------- dock: píldora que se desliza ---------- */
.nv-pill{position:absolute;top:7px;bottom:7px;left:0;width:0;border-radius:18px;pointer-events:none;z-index:0;
  background:linear-gradient(180deg,rgba(20,214,230,.24),rgba(20,214,230,.06));border:1px solid rgba(98,241,249,.34);
  box-shadow:0 10px 30px -12px rgba(20,214,230,.8),inset 0 1px 0 rgba(255,255,255,.08);
  transform:translateX(var(--px,0));width:var(--pw,0);transition:transform .55s var(--spring),width .55s var(--spring)}
.nv-pill::after{content:"";position:absolute;left:28%;right:28%;top:-1px;height:2px;border-radius:2px;background:linear-gradient(90deg,var(--nv-cyan-2),var(--nv-green));box-shadow:0 0 12px var(--nv-cyan)}
:root[data-theme="light"] .nv-pill{background:linear-gradient(180deg,rgba(15,194,211,.18),rgba(15,194,211,.05));box-shadow:0 10px 24px -14px rgba(8,120,138,.5)}
nav.dock.nv-pill-on .tab .halo{opacity:0 !important}
nav.dock.nv-pill-on .tab{z-index:1}
:root[data-skin="nova"] .dock .tab.on .ico{animation:nvHop .5s var(--spring)}
@keyframes nvHop{0%{transform:translateY(0) scale(1)}40%{transform:translateY(-5px) scale(1.12)}100%{transform:translateY(-1px)}}

/* ---------- cambio de pantalla con barrido de luz ---------- */
.nv-sweep{position:fixed;left:0;right:0;top:0;height:2px;z-index:120;pointer-events:none;transform-origin:0 50%;
  background:linear-gradient(90deg,#14D6E6,#00F5A0,#FF9A2E);box-shadow:0 0 16px rgba(20,214,230,.9);animation:nvSweep .8s var(--ease-out) forwards}
@keyframes nvSweep{0%{transform:scaleX(0);opacity:1}70%{transform:scaleX(1);opacity:1}100%{transform:scaleX(1);opacity:0}}

/* ---------- luz que sigue al cursor ---------- */
.nv-cursor{position:fixed;left:0;top:0;width:520px;height:520px;margin:-260px 0 0 -260px;border-radius:50%;pointer-events:none;z-index:-1;
  background:radial-gradient(circle,rgba(20,214,230,.10),rgba(20,214,230,0) 65%);transform:translate3d(var(--cx,-999px),var(--cy,-999px),0);transition:opacity .4s}
:root[data-theme="light"] .nv-cursor{background:radial-gradient(circle,rgba(15,194,211,.10),rgba(15,194,211,0) 65%)}

/* ---------- celebración (cuenta en línea, guía completa) ---------- */
.nv-burst{position:fixed;left:0;top:0;width:0;height:0;pointer-events:none;z-index:150}
.nv-burst i{position:absolute;left:0;top:0;width:var(--s,7px);height:var(--s,7px);border-radius:var(--r,2px);background:var(--c);
  animation:nvBurst var(--d,1s) cubic-bezier(.15,.7,.3,1) forwards}
@keyframes nvBurst{0%{transform:translate(0,0) rotate(0) scale(1);opacity:1}100%{transform:translate(var(--bx),var(--by)) rotate(var(--br)) scale(.4);opacity:0}}
.nv-ring-burst{position:fixed;width:16px;height:16px;margin:-8px 0 0 -8px;border-radius:50%;border:2px solid var(--nv-green);pointer-events:none;z-index:150;animation:nvRingB .9s ease-out forwards}
@keyframes nvRingB{to{transform:scale(9);opacity:0}}

/* ---------- gráficos que se dibujan y barras que crecen ---------- */
.nv-draw{stroke-dasharray:1;stroke-dashoffset:1;animation:nvDraw2 1.6s var(--ease-out) .1s forwards}
@keyframes nvDraw2{to{stroke-dashoffset:0}}
.nv-grow{transform-box:fill-box;transform-origin:50% 100%;animation:nvBarV2 .9s var(--ease-out) both}
@keyframes nvBarV2{from{transform:scaleY(0)}}

/* ---------- diálogos que aparecen con profundidad ---------- */
:root[data-skin="nova"] .modal.on .box{animation:nvModal .55s var(--ease-out)}
@keyframes nvModal{from{opacity:0;transform:translateY(24px) scale(.96);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
:root[data-skin="nova"] .menu.on{animation:nvPop .3s var(--ease-out)}
:root[data-skin="nova"] .notipanel.on{animation:nvUp .45s var(--ease-out)}
:root[data-skin="nova"] #toast.on{animation:nvToast .6s var(--spring)}
@keyframes nvToast{from{opacity:0;transform:translateY(24px) scale(.94)}}

/* filas nuevas en tablas en vivo */
:root[data-skin="nova"] tbody tr{animation:nvRow .5s var(--ease-out) both}
@keyframes nvRow{from{opacity:0;transform:translateX(-10px)}}

@media (prefers-reduced-motion:reduce){
  .nv-pill,.nv-sweep,.nv-cursor,.nv-burst,.nv-ring-burst{display:none !important}
  .nv-draw{stroke-dasharray:none;animation:none}
  .nv-grow,.nv-tilt,:root[data-skin="nova"] tbody tr,:root[data-skin="nova"] .modal.on .box,.nv-shake,.pasos li .num{animation:none !important;transform:none !important}
}
.nv-q-fila{display:flex;align-items:center;gap:8px;margin:0 0 10px}
.nv-q-fila .nv-q{margin-left:0}
.nv-q-txt{font:600 11px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.nv-pwbox{display:block;position:relative}
.nv-pwbox input{padding-right:48px}
:root[data-skin="nova"] .gate [data-install-help]{display:none !important}
:root[data-skin="nova"] .gate .hero{gap:18px}
:root[data-skin="nova"] .gate .box .card{padding:30px}

/* selectores segmentados y fichas de cuenta (Analítica, ajustes, noticias) */
:root[data-skin="nova"] .segmento{background:var(--surface-2);border-color:var(--line);border-radius:14px}
:root[data-skin="nova"] .segmento button{border-radius:10px;font-weight:600;transition:color .3s,background .3s,box-shadow .3s,transform .3s var(--ease-out)}
:root[data-skin="nova"] .segmento button[aria-checked="true"]{color:#04121A;background:var(--nv-grad-cool);box-shadow:0 10px 24px -12px rgba(20,214,230,.9)}
:root[data-skin="nova"] .ancta{background:var(--nv-card);border-color:var(--line);transition:transform .4s var(--ease-out),border-color .3s,box-shadow .3s}
:root[data-skin="nova"] .ancta:hover{transform:translateY(-3px);border-color:var(--accent-line);box-shadow:0 18px 36px -22px var(--nv-glow)}
:root[data-skin="nova"] .ancta[aria-checked="true"]{border-color:var(--accent);background:linear-gradient(165deg,rgba(20,214,230,.16),rgba(20,214,230,.04));box-shadow:0 0 0 1px var(--accent),0 18px 40px -20px var(--nv-glow)}
:root[data-skin="nova"] .ancta .l{font-family:var(--fh);letter-spacing:-.02em}
:root[data-skin="nova"] .news-calendar .news-provider{background:var(--nv-card);border-color:var(--line);transition:transform .4s var(--ease-out),border-color .3s,box-shadow .3s}
:root[data-skin="nova"] .news-calendar .news-provider:hover{transform:translateY(-3px);border-color:var(--accent-line);box-shadow:0 18px 36px -22px var(--nv-glow)}
:root[data-skin="nova"] .news-calendar .news-provider[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 1px var(--accent),0 18px 40px -20px var(--nv-glow)}
:root[data-skin="nova"] .news-calendar .news-period[aria-pressed="true"]{color:#04121A}
:root[data-skin="nova"] .news-calendar .news-period[aria-pressed="true"]::before{background:var(--nv-grad-cool);box-shadow:0 8px 20px -10px rgba(20,214,230,.9)}
:root[data-skin="nova"] #scr-analitica .an-dia[aria-pressed=true]{outline-color:var(--nv-cyan-2);box-shadow:0 0 18px -4px var(--nv-glow)}

/* latencia como indicador en vivo */
:root[data-skin="nova"] :is(#latLine,#latLineA){display:inline-flex;align-items:center;gap:10px;max-width:none;width:fit-content;padding:9px 16px 9px 12px;
  border-radius:999px;background:var(--surface-2);border:1px solid var(--accent-line);font:600 12.5px/1.35 var(--mono);color:var(--ink-2)}
:root[data-skin="nova"] :is(#latLine,#latLineA)::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--nv-green);box-shadow:0 0 10px var(--nv-green);animation:nvPulse 1.8s infinite}

/* estados vacíos con presencia */
:root[data-skin="nova"] .empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:44px 20px;text-align:center;
  font:500 14px/1.4 var(--ff);color:var(--muted);border-top:0}
:root[data-skin="nova"] .empty::before{content:"";width:64px;height:64px;border-radius:20px;opacity:.9;
  background:url(novalink-emblema.png) center/38px no-repeat,radial-gradient(circle,rgba(20,214,230,.18),rgba(20,214,230,0) 70%);
  border:1px dashed var(--accent-line);animation:nvFloat 5s ease-in-out infinite}
:root[data-skin="nova"] .empty[hidden]{display:none}
