/* ============================================================
   0. TOKENS
   ============================================================ */
:root{
  /* estudio exterior */
  --studio-void:#05070B;
  --studio-back:#0C1118;
  --studio-wall:#161D27;
  --studio-floor:#090C12;
  --ice:#9FE8FF;      /* azul hielo de los tubos */
  --ice-core:#E8FBFF;

  /* panel de la app */
  --panel-bg:#080B1C;
  --cyan:#22E0FF;
  --magenta:#FF3CD5;
  --violet:#7A5CFF;
  --pink:#FF74C0;
  --ink:#EAF6FF;
  --ink-soft:#B9CBE8;
  --muted:#7E92BC;
  --line:rgba(56,214,255,.26);
  --line-soft:rgba(120,150,220,.15);
  --card:rgba(12,16,48,.7);
  --glow-cyan:0 0 16px rgba(34,224,255,.45);
  --glow-magenta:0 0 20px rgba(255,60,213,.35);

  --font-display:'Michroma',"Trebuchet MS",sans-serif;
  --font-ui:'Chakra Petch',system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-data:'JetBrains Mono',ui-monospace,Menlo,monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:var(--font-ui);color:var(--ink);
  background:var(--studio-void);
  min-height:100vh;overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
button{font-family:inherit;color:inherit;background:none;border:none;cursor:pointer}
a{color:inherit;text-decoration:none}
input{font-family:inherit}
:focus-visible{outline:2px solid var(--cyan);outline-offset:3px;border-radius:6px}
::selection{background:var(--magenta);color:#fff}

/* ============================================================
   1. ESTUDIO DE NEÓN — fondo fijo tras el panel
   ============================================================ */
#studio{position:fixed;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}
.tubes{animation:breathe 7s ease-in-out infinite}
@keyframes breathe{0%,100%{opacity:.86}50%{opacity:1}}

/* ============================================================
   2. PANEL DE LA APLICACIÓN — flota centrado sobre el estudio
   ============================================================ */
.stage{
  position:relative;z-index:1;
  min-height:100vh;display:flex;align-items:center;justify-content:center;
  padding:clamp(8px,2vh,24px) clamp(10px,3vw,54px);
}
.panel{
  position:relative;width:100%;max-width:min(2000px,152vh);
  border-radius:clamp(12px,1.4vw,20px);
  border:1px solid rgba(110,190,255,.3);
  background:var(--panel-bg);
  overflow:hidden;
  box-shadow:
    0 40px 110px rgba(0,0,0,.72),
    0 0 130px rgba(70,160,255,.20),
    inset 0 0 0 1px rgba(120,190,255,.07);
}
/* cielo interior del panel */
.sky{position:absolute;inset:0;z-index:0;pointer-events:none}
.sky-base{
  position:absolute;inset:0;
  background:
    radial-gradient(105% 60% at 50% -8%, #191046 0%, transparent 60%),
    radial-gradient(56% 46% at 3% 22%, rgba(255,60,213,.14) 0%, transparent 66%),
    radial-gradient(56% 46% at 98% 28%, rgba(34,224,255,.12) 0%, transparent 66%),
    linear-gradient(180deg,#0A0C24 0%,#05060F 64%,#03040A 100%);
}
#constellation{position:absolute;inset:0;width:100%;height:100%;opacity:.85}
.wave-mesh{
  position:absolute;top:5%;left:0;right:0;height:38%;
  background-image:radial-gradient(rgba(140,190,255,.75) 1.1px, transparent 1.1px);
  background-size:14px 14px;
  -webkit-mask-image:radial-gradient(62% 100% at 50% 2%,#000 0%,transparent 72%);
  mask-image:radial-gradient(62% 100% at 50% 2%,#000 0%,transparent 72%);
  opacity:.5;animation:drift 26s linear infinite;
}
@keyframes drift{to{background-position:140px 0}}

.app{position:relative;z-index:1;display:flex;flex-direction:column;padding:clamp(12px,1.4vw,16px) clamp(12px,1.7vw,20px)}

/* ============================================================
   3. CABECERA
   ============================================================ */
.topbar{
  display:flex;align-items:center;gap:clamp(12px,2vw,24px);
  padding:clamp(11px,1.1vw,18px) clamp(14px,1.7vw,26px);
  background:rgba(8,11,34,.72);
  border:1px solid var(--line-soft);border-radius:12px;
  backdrop-filter:blur(14px);
}
.logo{display:flex;align-items:center;gap:11px;margin-right:auto}
.logo-mark{display:flex;align-items:center;gap:6px;font-family:var(--font-display);font-size:clamp(16px,1.55vw,25px);white-space:nowrap}
.logo-mark .ai{color:var(--cyan);text-shadow:var(--glow-cyan)}
.logo-mark .bar{width:1.5px;height:clamp(20px,1.8vw,30px);background:linear-gradient(var(--cyan),var(--magenta))}
.logo-mark .me{color:var(--magenta);text-shadow:var(--glow-magenta)}
.logo-word{font-family:var(--font-display);font-size:clamp(10px,.92vw,15px);line-height:1.6;letter-spacing:.09em;white-space:nowrap}
.logo-dom{font-family:var(--font-data);font-size:clamp(9px,.8vw,13px);letter-spacing:.04em;color:var(--muted);text-transform:none}

.nav{display:flex;gap:clamp(16px,2.1vw,38px);font-size:clamp(13px,1.05vw,18px);font-weight:500}
.nav a{position:relative;padding:5px 0;color:var(--ink-soft);transition:color .2s;white-space:nowrap}
.nav a:hover{color:var(--ink)}
.nav a.is-active{color:#fff}
.nav a.is-active::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:2px;
  background:linear-gradient(90deg,var(--cyan),var(--magenta));box-shadow:var(--glow-cyan);
}
.btn-ghost{
  padding:clamp(8px,.8vw,13px) clamp(18px,1.7vw,30px);border-radius:999px;border:1px solid var(--line);
  background:rgba(34,224,255,.06);font-size:clamp(12.5px,1vw,16px);font-weight:600;letter-spacing:.04em;
  transition:.22s;white-space:nowrap;
}
.btn-ghost:hover{background:rgba(34,224,255,.16);box-shadow:var(--glow-cyan);transform:translateY(-1px)}
.btn-ghost.create{border-color:var(--cyan);color:#fff}
.profile{display:flex;align-items:center;gap:10px;font-size:clamp(12.5px,1vw,17px);color:var(--ink-soft)}
.avatar{
  width:clamp(28px,2.6vw,40px);height:clamp(28px,2.6vw,40px);border-radius:50%;flex:none;border:1px solid var(--cyan);
  background:radial-gradient(circle at 35% 30%,#FFD9B0,#B36A4E 60%,#40204A);
  box-shadow:0 0 10px rgba(34,224,255,.5);
}
.burger{display:none;width:38px;height:38px;border:1px solid var(--line-soft);border-radius:10px;flex:none}
.burger span{display:block;width:16px;height:1.5px;margin:3.5px auto;background:var(--ink);transition:.25s}
.topbar[data-open="true"] .burger span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.topbar[data-open="true"] .burger span:nth-child(2){opacity:0}
.topbar[data-open="true"] .burger span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

/* ============================================================
   4. HÉROE
   ============================================================ */
.hero{padding:clamp(18px,3vw,26px) 0 clamp(10px,1.6vw,14px);text-align:center}
.hero h1{
  font-family:var(--font-display);font-size:clamp(21px,3.3vw,54px);
  letter-spacing:.05em;text-transform:uppercase;line-height:1.25;
  text-shadow:0 0 24px rgba(90,140,255,.45);
}
.hero h1 em{font-style:normal;color:var(--cyan);text-shadow:0 0 22px rgba(34,224,255,.85)}
.console{
  display:flex;align-items:center;gap:10px;
  width:100%;max-width:min(1120px,80%);margin:clamp(16px,2.2vw,30px) auto 0;
  padding:clamp(7px,.6vw,10px) clamp(8px,.7vw,12px) clamp(7px,.6vw,10px) clamp(22px,2vw,34px);
  background:rgba(6,10,32,.8);border:1.5px solid var(--cyan);border-radius:999px;
  box-shadow:0 0 0 1px rgba(34,224,255,.18),0 0 30px rgba(34,224,255,.3),inset 0 0 26px rgba(34,224,255,.06);
  transition:box-shadow .3s;
}
.console:focus-within{box-shadow:0 0 0 1px rgba(34,224,255,.35),0 0 46px rgba(34,224,255,.5),inset 0 0 30px rgba(255,60,213,.08)}
.console input{flex:1;min-width:0;background:none;border:none;outline:none;color:var(--ink);font-size:clamp(13.5px,1.1vw,19px);padding:clamp(9px,.9vw,15px) 0}
.console input::placeholder{color:#6E80AC}
.btn-generate{
  padding:clamp(10px,1vw,17px) clamp(22px,2.2vw,38px);border-radius:999px;
  background:linear-gradient(95deg,var(--cyan),var(--violet) 55%,var(--magenta));
  color:#04060B;font-weight:700;font-size:clamp(11.5px,.95vw,16px);letter-spacing:.13em;
  box-shadow:0 0 20px rgba(255,60,213,.4);transition:.22s;white-space:nowrap;
}
.btn-generate:hover{filter:brightness(1.12);box-shadow:0 0 30px rgba(255,60,213,.7)}
.btn-generate[data-busy="true"]{opacity:.75;cursor:progress}
.params{display:flex;flex-wrap:wrap;justify-content:center;gap:clamp(10px,1.1vw,18px);margin-top:clamp(14px,1.8vw,26px)}
.param{
  display:flex;align-items:center;gap:clamp(9px,.8vw,13px);padding:clamp(6px,.6vw,10px) clamp(15px,1.4vw,24px) clamp(6px,.6vw,10px) clamp(6px,.6vw,10px);
  background:rgba(16,22,60,.7);border:1px solid var(--line-soft);border-radius:999px;
  font-size:clamp(11.5px,.95vw,16px);color:var(--ink-soft);transition:.2s;
}
.param:hover{border-color:var(--line);color:var(--ink)}
.switch{position:relative;width:clamp(32px,2.8vw,44px);height:clamp(17px,1.5vw,24px);flex:none;background:#2A3157;border-radius:999px;transition:.25s}
.switch::after{content:"";position:absolute;top:2px;left:2px;width:calc(clamp(17px,1.5vw,24px) - 4px);height:calc(clamp(17px,1.5vw,24px) - 4px);border-radius:50%;background:#7E92BC;transition:.25s}
.param[aria-pressed="true"]{color:#fff;border-color:var(--line)}
.param[aria-pressed="true"] .switch{background:rgba(34,224,255,.28);box-shadow:inset 0 0 10px rgba(34,224,255,.5)}
.param[aria-pressed="true"] .switch::after{transform:translateX(calc(clamp(32px,2.8vw,44px) - clamp(17px,1.5vw,24px)));background:var(--cyan);box-shadow:var(--glow-cyan)}

/* ============================================================
   5. TABLERO DE TRES COLUMNAS
   ============================================================ */
.board{
  flex:1;min-height:0;
  display:grid;
  grid-template-columns:clamp(230px,21vw,340px) minmax(0,1fr) clamp(206px,18vw,300px);
  gap:clamp(12px,1.4vw,24px);align-items:stretch;
}
.col-left,.col-center{display:flex;flex-direction:column}
.col-right{display:flex;flex-direction:column;gap:14px}
.col-right .card:last-child{flex:1;display:flex;flex-direction:column}
.card{
  background:var(--card);border:1px solid var(--line);border-radius:clamp(14px,1.2vw,20px);
  padding:clamp(13px,1.2vw,20px) clamp(12px,1.1vw,18px);backdrop-filter:blur(16px);
  box-shadow:0 0 0 1px rgba(34,224,255,.06),0 16px 40px rgba(0,0,0,.5),inset 0 1px 0 rgba(255,255,255,.05);
}
.card-head{
  display:flex;align-items:center;justify-content:space-between;
  padding:0 3px clamp(10px,1vw,16px);font-size:clamp(10.5px,.88vw,15px);font-weight:700;letter-spacing:.14em;
  color:var(--cyan);text-transform:uppercase;white-space:nowrap;
}
.card-head .chev{color:var(--ink-soft);font-size:clamp(15px,1.2vw,20px);line-height:1;padding:0 6px;text-decoration:none;cursor:pointer}
.card-head .chev:hover{color:var(--cyan)}
.card-foot{display:flex;justify-content:center;margin-top:auto;padding-top:clamp(12px,1.2vw,20px)}
.btn-outline{
  padding:clamp(8px,.85vw,14px) clamp(22px,2.2vw,36px);border-radius:999px;border:1px solid var(--line);
  background:rgba(34,224,255,.05);font-size:clamp(11.5px,.95vw,16px);font-weight:600;letter-spacing:.04em;transition:.22s;
}
.btn-outline:hover{background:rgba(34,224,255,.16);box-shadow:var(--glow-cyan)}

/* filas */
.row{display:flex;align-items:center;gap:clamp(9px,.9vw,14px);padding:clamp(7px,.75vw,12px) clamp(8px,.8vw,13px);border-radius:clamp(10px,.9vw,14px);border:1px solid transparent;transition:.2s}
.row + .row{margin-top:clamp(6px,.6vw,10px)}
.row:hover{background:rgba(34,224,255,.06);border-color:var(--line-soft)}
.row.is-current{
  background:linear-gradient(90deg,rgba(34,224,255,.12),rgba(255,60,213,.07));
  border-color:var(--cyan);box-shadow:inset 0 0 18px rgba(34,224,255,.12);
}
.thumb{width:clamp(34px,3.1vw,52px);height:clamp(34px,3.1vw,52px);flex:none;border-radius:clamp(7px,.7vw,12px);border:1px solid rgba(120,160,255,.35)}
.row-txt{min-width:0;flex:1}
.row-title{display:block;font-size:clamp(12.5px,1.02vw,18px);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-sub{display:block;font-size:clamp(10.5px,.86vw,14px);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.play{
  width:clamp(24px,2.3vw,36px);height:clamp(24px,2.3vw,36px);flex:none;border-radius:50%;display:grid;place-items:center;
  border:1px solid var(--line);background:rgba(34,224,255,.1);color:var(--cyan);font-size:clamp(8px,.72vw,12px);transition:.2s;
}
.play:hover{background:var(--cyan);color:#04060B;box-shadow:var(--glow-cyan);transform:scale(1.1)}
.play[aria-pressed="true"]{background:var(--cyan);color:#04060B;box-shadow:var(--glow-cyan)}
.star{font-size:clamp(13px,1.15vw,19px);color:#4E5C82;transition:.2s;line-height:1}
.star:hover{color:var(--cyan);transform:scale(1.15)}
.star[aria-pressed="true"]{color:var(--cyan);text-shadow:var(--glow-cyan)}
.kebab{color:var(--muted);font-size:clamp(14px,1.2vw,20px);letter-spacing:1px;padding:0 1px}
.kebab:hover{color:var(--ink)}

/* pistas destacadas */
.tracks{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(12px,1.2vw,20px);align-content:start}
.track{
  background:linear-gradient(180deg,rgba(26,18,62,.75),rgba(10,14,40,.75));
  border:1px solid rgba(255,60,213,.22);border-radius:clamp(12px,1.1vw,18px);padding:clamp(9px,.9vw,15px);transition:.25s;
}
.track:hover{transform:translateY(-4px);border-color:var(--magenta);box-shadow:0 14px 34px rgba(255,60,213,.2),var(--glow-magenta)}
.cover{position:relative;aspect-ratio:1;border-radius:9px;overflow:hidden;display:grid;place-items:center;border:1px solid rgba(150,180,255,.2)}
.cover::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 50%,transparent 38%,rgba(4,6,11,.62))}
.cover-ring{position:absolute;inset:0;z-index:1;pointer-events:none}
.cover-ring::before,.cover-ring::after{
  content:"";position:absolute;left:50%;top:50%;border-radius:50%;
  transform:translate(-50%,-50%) rotate(-17deg);
  border:1.5px solid rgba(255,255,255,.42);box-shadow:0 0 14px rgba(190,230,255,.5);
}
.cover-ring::before{width:96%;height:36%}
.cover-ring::after{width:66%;height:21%;border-color:rgba(255,255,255,.28)}
.play-xl{
  position:relative;z-index:2;width:clamp(38px,3.9vw,62px);height:clamp(38px,3.9vw,62px);border-radius:50%;
  display:grid;place-items:center;background:rgba(6,10,32,.5);
  border:1.5px solid rgba(255,255,255,.85);color:#fff;font-size:clamp(12px,1.1vw,18px);
  backdrop-filter:blur(4px);transition:.2s;
}
.play-xl:hover{background:var(--cyan);color:#04060B;border-color:var(--cyan);box-shadow:var(--glow-cyan)}
.play-xl[aria-pressed="true"]{background:var(--magenta);border-color:var(--magenta);color:#fff}
.track-title{margin-top:clamp(9px,1vw,15px);font-size:clamp(12.5px,1.05vw,19px);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.track-sub{font-size:clamp(10.5px,.88vw,15px);color:var(--muted);margin-top:3px}
.track-time{display:flex;align-items:center;gap:clamp(8px,.8vw,13px);margin-top:clamp(9px,1vw,15px);font-family:var(--font-data);font-size:clamp(11.5px,1vw,17px);color:var(--ink-soft)}
.stats{display:flex;justify-content:space-between;margin-top:clamp(9px,1vw,16px);padding-top:clamp(8px,.9vw,14px);border-top:1px solid var(--line-soft)}
.stat{display:flex;flex-direction:column;align-items:center;gap:3px;font-size:clamp(9px,.78vw,13px);color:var(--muted)}
.stat i{font-style:normal;font-size:clamp(12px,1.05vw,18px);color:var(--pink)}
.stat:hover i{color:var(--cyan)}
.stat b{font-family:var(--font-data);font-weight:500;font-size:clamp(10px,.92vw,16px);color:var(--ink-soft)}
.eq{display:none;gap:2px;align-items:flex-end;height:11px}
.eq span{width:2.5px;background:var(--cyan);border-radius:2px;animation:bounce .9s ease-in-out infinite}
.eq span:nth-child(2){animation-delay:.15s}
.eq span:nth-child(3){animation-delay:.3s}
.eq span:nth-child(4){animation-delay:.45s}
[data-playing="true"] .eq{display:flex}
@keyframes bounce{0%,100%{height:3px}50%{height:11px}}

/* ============================================================
   6. PIE DEL PANEL
   ============================================================ */
.footer{
  margin-top:clamp(12px,1.6vw,16px);
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;
  padding:clamp(12px,1.2vw,20px) 4px 4px;border-top:1px solid var(--line-soft);
  font-size:clamp(11px,.95vw,16px);color:var(--muted);
}
.footer nav{display:flex;flex-wrap:wrap;gap:clamp(12px,1.6vw,20px)}
.footer nav a:hover{color:var(--cyan)}
.footer .legal{font-family:var(--font-data);letter-spacing:.05em;font-size:clamp(10px,.85vw,14px)}

/* ============================================================
   7. RESPONSIVE
   ============================================================ */
@media (max-width:1024px){
  .board{grid-template-columns:1fr 1fr}
  .col-center{grid-column:1 / -1;order:-1}
}
@media (max-width:860px){
  .stage{align-items:flex-start;padding:0}
  .panel{max-width:none;border-radius:0;border:none;min-height:100vh}
  .burger{display:block}
  .nav{
    position:absolute;top:62px;left:12px;right:12px;z-index:20;
    flex-direction:column;gap:0;display:none;
    background:rgba(6,9,24,.98);border:1px solid var(--line-soft);border-radius:12px;padding:4px 14px;
  }
  .topbar[data-open="true"] .nav{display:flex}
  .nav a{padding:12px 0;font-size:14.5px;border-bottom:1px solid var(--line-soft)}
  .nav a:last-child{border-bottom:none}
  .nav a.is-active::after{display:none}
  .profile,.btn-ghost:not(.create){display:none}
}
@media (max-width:680px){
  .board{grid-template-columns:1fr}
  .tracks{grid-template-columns:1fr 1fr}
  .console{flex-direction:column;border-radius:20px;padding:12px;gap:10px}
  .console input{width:100%;text-align:center}
  .btn-generate{width:100%}
}
@media (max-width:430px){
  .tracks{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ============================================================
   9. BIBLIOTECA — rejilla de colecciones y lista de pistas
   ============================================================ */
.tiles{
  display:grid;gap:clamp(12px,1.3vw,20px);
  grid-template-columns:repeat(auto-fit,minmax(clamp(190px,17vw,260px),1fr));
  margin-bottom:clamp(16px,2vw,28px);
}
.tile{display:flex;align-items:center;gap:clamp(11px,1.1vw,16px);transition:.2s}
.tile:hover{transform:translateY(-3px);border-color:var(--cyan);box-shadow:0 16px 36px rgba(0,0,0,.5),var(--glow-cyan)}
.tile .thumb{width:clamp(42px,3.6vw,60px);height:clamp(42px,3.6vw,60px);border-radius:clamp(9px,.9vw,14px)}
.tag{
  font-family:var(--font-data);font-size:clamp(8.5px,.72vw,11px);letter-spacing:.1em;text-transform:uppercase;
  color:var(--cyan);border:1px solid var(--line);border-radius:999px;padding:3px 9px;white-space:nowrap;
}

.list-head,.track-row{
  display:grid;align-items:center;
  grid-template-columns:clamp(26px,2.4vw,40px) minmax(0,3fr) minmax(0,1.4fr) clamp(52px,4.4vw,74px) auto;
  gap:clamp(10px,1.1vw,18px);
}
.list-head{
  padding:0 clamp(10px,1vw,16px) clamp(8px,.9vw,14px);
  font-size:clamp(9.5px,.8vw,13px);letter-spacing:.14em;text-transform:uppercase;
  color:var(--muted);border-bottom:1px solid var(--line-soft);
}
.track-row{
  padding:clamp(8px,.85vw,14px) clamp(10px,1vw,16px);
  border-radius:clamp(10px,.9vw,14px);border:1px solid transparent;transition:.2s;
}
.track-row + .track-row{margin-top:clamp(4px,.45vw,8px)}
.track-row:hover{background:rgba(34,224,255,.06);border-color:var(--line-soft)}
.track-row.is-current{
  background:linear-gradient(90deg,rgba(34,224,255,.12),rgba(255,60,213,.07));
  border-color:var(--cyan);box-shadow:inset 0 0 18px rgba(34,224,255,.12);
}
.track-row .idx{font-family:var(--font-data);font-size:clamp(10.5px,.88vw,14px);color:var(--muted);text-align:center}
.track-row .meta{display:flex;align-items:center;gap:clamp(10px,1vw,15px);min-width:0}
.track-row .genre{font-size:clamp(10.5px,.88vw,14px);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.track-row .time{font-family:var(--font-data);font-size:clamp(10.5px,.9vw,15px);color:var(--ink-soft)}
.track-row .acts{display:flex;align-items:center;gap:clamp(8px,.8vw,13px);justify-content:flex-end}
.empty{
  padding:clamp(26px,3vw,44px) 16px;text-align:center;color:var(--muted);
  font-size:clamp(12.5px,1vw,16px);
}

/* ============================================================
   10. PLANES — tarjetas de precio
   ============================================================ */
.billing{display:flex;justify-content:center;align-items:center;gap:clamp(10px,1vw,16px);margin-top:clamp(14px,1.7vw,24px)}
.billing .lbl{font-size:clamp(12px,.95vw,16px);color:var(--muted);transition:color .2s}
.billing .lbl[data-on="true"]{color:#fff}
.save{
  font-family:var(--font-data);font-size:clamp(9.5px,.78vw,12px);letter-spacing:.08em;
  color:var(--cyan);border:1px solid var(--line);border-radius:999px;padding:3px 10px;
}
.plans{
  display:grid;gap:clamp(14px,1.5vw,24px);
  grid-template-columns:repeat(auto-fit,minmax(clamp(240px,22vw,340px),1fr));
  margin-top:clamp(18px,2.2vw,32px);
}
.plan{display:flex;flex-direction:column;padding:clamp(18px,1.8vw,30px);transition:.25s}
.plan:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(0,0,0,.55),var(--glow-cyan)}
.plan.featured{
  border-color:var(--magenta);
  background:linear-gradient(165deg,rgba(255,60,213,.1),rgba(12,16,48,.72) 55%);
  box-shadow:0 22px 54px rgba(0,0,0,.55),var(--glow-magenta);
}
.plan .badge{
  align-self:flex-start;font-family:var(--font-data);font-size:clamp(9px,.75vw,12px);
  letter-spacing:.12em;text-transform:uppercase;color:var(--magenta);
  border:1px solid rgba(255,60,213,.4);border-radius:999px;padding:3px 10px;margin-bottom:12px;
}
.plan h2{font-family:var(--font-display);font-size:clamp(14px,1.25vw,21px);letter-spacing:.05em;text-transform:uppercase}
.plan .who{margin-top:clamp(7px,.8vw,12px);font-size:clamp(11.5px,.95vw,15px);color:var(--muted);min-height:2.8em}
.price{display:flex;align-items:baseline;gap:6px;margin:clamp(14px,1.5vw,22px) 0 4px}
.price .num{font-family:var(--font-display);font-size:clamp(24px,2.4vw,42px);color:#fff}
.price .per{font-size:clamp(11px,.9vw,14px);color:var(--muted)}
.price-note{font-family:var(--font-data);font-size:clamp(9.5px,.78vw,12px);color:var(--muted);min-height:1.4em}
.feats{list-style:none;margin:clamp(16px,1.7vw,26px) 0 clamp(18px,2vw,30px);display:flex;flex-direction:column;gap:clamp(8px,.85vw,13px)}
.feats li{display:flex;gap:10px;font-size:clamp(11.5px,.95vw,15px);color:var(--ink-soft);line-height:1.5}
.feats i{font-style:normal;color:var(--cyan);flex:none}
.feats li.off{color:var(--muted)}
.feats li.off i{color:#41506E}
.plan .cta{margin-top:auto;width:100%;text-align:center}
.btn-solid{
  display:block;width:100%;padding:clamp(11px,1vw,16px);border-radius:999px;
  background:linear-gradient(95deg,var(--cyan),var(--violet) 55%,var(--magenta));
  color:#04060B;font-weight:700;font-size:clamp(12px,.95vw,16px);letter-spacing:.08em;
  box-shadow:0 0 22px rgba(255,60,213,.35);transition:.22s;
}
.btn-solid:hover{filter:brightness(1.12);box-shadow:0 0 32px rgba(255,60,213,.6)}

/* tabla comparativa */
.compare{margin-top:clamp(22px,2.6vw,40px);overflow-x:auto}
.compare table{width:100%;border-collapse:collapse;min-width:520px}
.compare caption{
  text-align:left;padding-bottom:clamp(10px,1vw,16px);
  font-size:clamp(10.5px,.88vw,15px);font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--cyan);
}
.compare th,.compare td{
  padding:clamp(9px,.9vw,15px) clamp(8px,.9vw,14px);
  border-bottom:1px solid var(--line-soft);
  font-size:clamp(11.5px,.95vw,15px);text-align:center;
}
.compare th:first-child,.compare td:first-child{text-align:left;color:var(--ink-soft)}
.compare thead th{font-weight:600;color:#fff}
.compare td{color:var(--ink-soft);font-family:var(--font-data)}
.compare tbody tr:hover{background:rgba(34,224,255,.05)}

/* preguntas */
.faq{margin-top:clamp(22px,2.6vw,40px);display:grid;gap:clamp(10px,1vw,16px);grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.faq details{
  background:var(--card);border:1px solid var(--line-soft);border-radius:clamp(12px,1vw,16px);
  padding:clamp(13px,1.2vw,20px);transition:border-color .2s;
}
.faq details[open]{border-color:var(--line)}
.faq summary{
  cursor:pointer;font-size:clamp(12.5px,1vw,16px);font-weight:600;list-style:none;
  display:flex;justify-content:space-between;gap:12px;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--cyan);font-family:var(--font-data)}
.faq details[open] summary::after{content:"–"}
.faq p{margin-top:10px;font-size:clamp(11.5px,.92vw,15px);color:var(--muted);line-height:1.6}

@media (max-width:680px){
  .list-head{display:none}
  .track-row{grid-template-columns:clamp(24px,6vw,32px) minmax(0,1fr) auto;gap:10px}
  .track-row .genre,.track-row .time{display:none}
}

/* ============================================================
   11. VARIANTES DEL TABLERO (biblioteca, planes)
   ============================================================ */
.board--equal{grid-template-columns:repeat(auto-fit,minmax(clamp(238px,21vw,360px),1fr))}
.span-all{grid-column:1 / -1}
.stack{display:flex;flex-direction:column;gap:clamp(12px,1.3vw,20px)}
.stack .card{margin-top:0}
.stack .card:last-child{flex:1;display:flex;flex-direction:column}
.row .val{
  font-family:var(--font-data);font-size:clamp(11.5px,.95vw,16px);
  color:var(--cyan);white-space:nowrap;
}

/* ============================================================
   12. CONTROLES DE LA FILA .params EN OTRAS PÁGINAS
   ============================================================ */
.params.tabs{gap:clamp(8px,.9vw,14px)}
.tab{
  padding:clamp(7px,.75vw,12px) clamp(15px,1.4vw,24px);border-radius:999px;
  border:1px solid var(--line-soft);background:rgba(16,22,60,.7);
  font-size:clamp(11.5px,.95vw,16px);font-weight:600;color:var(--ink-soft);transition:.2s;
}
.tab:hover{color:var(--ink);border-color:var(--line)}
.tab[aria-selected="true"]{
  color:#fff;border-color:var(--cyan);
  background:linear-gradient(90deg,rgba(34,224,255,.16),rgba(255,60,213,.1));
  box-shadow:inset 0 0 18px rgba(34,224,255,.12);
}
.params .lbl{font-size:clamp(12px,.95vw,16px);color:var(--muted);transition:color .2s}
.params .lbl[data-on="true"]{color:#fff}
.params .save{
  font-family:var(--font-data);font-size:clamp(9.5px,.78vw,12px);letter-spacing:.08em;
  color:var(--cyan);border:1px solid var(--line);border-radius:999px;padding:4px 11px;
}
.params #ciclo{padding:clamp(6px,.6vw,10px)}
.console #cuenta{cursor:default;user-select:none}

/* ============================================================
   13. ESTUDIO DE CREACIÓN
   ============================================================ */
.field{margin-bottom:clamp(12px,1.25vw,18px)}
.field:last-of-type{margin-bottom:0}
.field > label,.field-label{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  font-size:clamp(10.5px,.86vw,14px);letter-spacing:.12em;text-transform:uppercase;
  color:var(--muted);margin-bottom:clamp(7px,.8vw,12px);
}
.field-label b{font-family:var(--font-data);font-weight:500;letter-spacing:.04em;color:var(--cyan);text-transform:none}

/* área de texto */
.ta{
  width:100%;resize:vertical;min-height:clamp(78px,7vw,120px);
  background:rgba(6,10,32,.7);border:1px solid var(--line-soft);border-radius:clamp(11px,1vw,16px);
  padding:clamp(11px,1.1vw,17px) clamp(12px,1.2vw,18px);
  color:var(--ink);font-size:clamp(12.5px,1vw,16px);line-height:1.6;outline:none;
  transition:border-color .2s,box-shadow .2s;
}
.ta::placeholder{color:#63769F}
.ta:focus{border-color:var(--cyan);box-shadow:0 0 26px rgba(34,224,255,.22),inset 0 0 22px rgba(34,224,255,.05)}
.ta:disabled{opacity:.4;cursor:not-allowed}
.ta-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:8px}
.mini{
  font-family:var(--font-data);font-size:clamp(9.5px,.78vw,12.5px);color:var(--muted);
}
.link-btn{
  font-size:clamp(11px,.9vw,14px);color:var(--cyan);border-bottom:1px solid transparent;transition:.2s;
}
.link-btn:hover{border-bottom-color:var(--cyan)}
.link-btn[disabled]{color:var(--muted);cursor:not-allowed}

/* grupo segmentado */
.seg{display:flex;gap:6px;padding:4px;background:rgba(6,10,32,.6);border:1px solid var(--line-soft);border-radius:999px}
.seg button{
  flex:1;padding:clamp(7px,.7vw,11px) clamp(8px,.8vw,14px);border-radius:999px;
  font-size:clamp(10.5px,.85vw,14px);font-weight:600;color:var(--ink-soft);
  white-space:nowrap;transition:.2s;
}
.seg button:hover{color:#fff}
.seg button[aria-pressed="true"]{
  color:#04060B;background:linear-gradient(95deg,var(--cyan),var(--violet));
  box-shadow:0 0 16px rgba(34,224,255,.4);
}

/* deslizadores */
input[type="range"]{
  -webkit-appearance:none;appearance:none;width:100%;height:20px;background:none;cursor:pointer;
}
input[type="range"]::-webkit-slider-runnable-track{
  height:4px;border-radius:999px;
  background:linear-gradient(90deg,var(--cyan) 0 var(--pct,50%),rgba(120,150,220,.22) var(--pct,50%) 100%);
}
input[type="range"]::-moz-range-track{height:4px;border-radius:999px;background:rgba(120,150,220,.22)}
input[type="range"]::-moz-range-progress{height:4px;border-radius:999px;background:var(--cyan)}
input[type="range"]::-webkit-slider-thumb{
  -webkit-appearance:none;width:15px;height:15px;margin-top:-5.5px;border-radius:50%;
  background:#EAF6FF;border:2px solid var(--cyan);box-shadow:var(--glow-cyan);transition:transform .15s;
}
input[type="range"]::-moz-range-thumb{
  width:15px;height:15px;border-radius:50%;background:#EAF6FF;border:2px solid var(--cyan);box-shadow:var(--glow-cyan);
}
input[type="range"]:hover::-webkit-slider-thumb{transform:scale(1.15)}
input[type="range"]:focus-visible{outline:none}
input[type="range"]:focus-visible::-webkit-slider-thumb{outline:2px solid var(--cyan);outline-offset:3px}

/* etiquetas de estilo */
.chips{display:flex;flex-wrap:wrap;gap:clamp(6px,.65vw,10px)}
.chip{
  display:inline-flex;align-items:center;gap:7px;
  padding:clamp(6px,.6vw,10px) clamp(11px,1vw,16px);border-radius:999px;
  border:1px solid var(--line-soft);background:rgba(16,22,60,.62);
  font-size:clamp(11px,.9vw,14px);color:var(--ink-soft);transition:.2s;
}
.chip:hover{border-color:var(--line);color:var(--ink)}
.chip[aria-pressed="true"]{
  color:#fff;border-color:var(--cyan);
  background:linear-gradient(90deg,rgba(34,224,255,.18),rgba(255,60,213,.1));
  box-shadow:inset 0 0 16px rgba(34,224,255,.14);
}
.chip[aria-pressed="true"] .x{color:var(--cyan)}
.chip .x{color:transparent;font-size:.9em}
.chip-add{
  flex:1;min-width:120px;background:rgba(6,10,32,.6);border:1px dashed var(--line-soft);
  border-radius:999px;padding:clamp(6px,.6vw,10px) clamp(13px,1.1vw,18px);
  color:var(--ink);font-size:clamp(11px,.9vw,14px);outline:none;transition:.2s;
}
.chip-add::placeholder{color:#63769F}
.chip-add:focus{border-style:solid;border-color:var(--cyan);box-shadow:0 0 20px rgba(34,224,255,.2)}

/* botón principal de generación + progreso */
.btn-run{
  width:100%;padding:clamp(13px,1.2vw,19px);border-radius:999px;
  background:linear-gradient(95deg,var(--cyan),var(--violet) 55%,var(--magenta));
  color:#04060B;font-weight:700;font-size:clamp(12.5px,1vw,17px);letter-spacing:.13em;
  box-shadow:0 0 26px rgba(255,60,213,.4);transition:.22s;
}
.btn-run:hover{filter:brightness(1.12);box-shadow:0 0 38px rgba(255,60,213,.66)}
.btn-run[disabled]{opacity:.6;cursor:progress;filter:none}
.run-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}
.bar{height:4px;border-radius:999px;background:rgba(120,150,220,.2);overflow:hidden;margin-top:12px}
.bar span{display:block;height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,var(--cyan),var(--magenta));transition:width .3s linear}

/* cola de generación */
.queue{display:flex;flex-direction:column;gap:clamp(8px,.85vw,13px)}
.qitem{
  display:flex;align-items:center;gap:clamp(9px,.9vw,14px);
  padding:clamp(8px,.85vw,13px);border-radius:clamp(11px,1vw,15px);
  border:1px solid var(--line-soft);background:rgba(10,14,38,.55);transition:.2s;
}
.qitem:hover{border-color:var(--line);background:rgba(34,224,255,.06)}
.qitem.is-running{border-color:var(--magenta);box-shadow:inset 0 0 18px rgba(255,60,213,.12)}
.qitem .thumb{width:clamp(38px,3.2vw,52px);height:clamp(38px,3.2vw,52px)}
.qitem .wave{width:100%;height:22px;display:block}
.qitem .row-txt{flex:1;min-width:0}

/* reproductor */
.player{
  display:flex;align-items:center;gap:clamp(11px,1.2vw,20px);
  margin-top:clamp(12px,1.3vw,20px);padding:clamp(10px,1vw,16px) clamp(12px,1.2vw,20px);
  background:rgba(8,11,34,.8);border:1px solid var(--line);border-radius:clamp(12px,1.1vw,18px);
  backdrop-filter:blur(14px);box-shadow:0 -6px 30px rgba(0,0,0,.45),inset 0 1px 0 rgba(255,255,255,.05);
}
.player .thumb{width:clamp(38px,3.2vw,50px);height:clamp(38px,3.2vw,50px)}
.player .now{min-width:0;width:clamp(120px,14vw,220px)}
.player .wave-wrap{flex:1;min-width:0;display:flex;align-items:center;gap:10px}
.player canvas{flex:1;min-width:0;height:clamp(30px,3vw,44px);display:block;cursor:pointer}
.player .t{font-family:var(--font-data);font-size:clamp(10px,.85vw,13.5px);color:var(--ink-soft);white-space:nowrap}
.player .big{
  width:clamp(38px,3.4vw,52px);height:clamp(38px,3.4vw,52px);border-radius:50%;flex:none;
  display:grid;place-items:center;border:1px solid var(--cyan);background:rgba(34,224,255,.12);
  color:var(--cyan);font-size:clamp(11px,1vw,16px);transition:.2s;
}
.player .big:hover{background:var(--cyan);color:#04060B;box-shadow:var(--glow-cyan)}
.player .big[aria-pressed="true"]{background:var(--cyan);color:#04060B;box-shadow:var(--glow-cyan)}
.player .vol{width:clamp(70px,7vw,120px)}

@media (max-width:680px){
  .player{flex-wrap:wrap}
  .player .now{width:auto;flex:1}
  .player .wave-wrap{order:3;width:100%;flex-basis:100%}
  .player .vol{display:none}
}

/* enlaces que se ven como botones */
a.btn-outline,a.btn-ghost{display:inline-block;text-align:center;text-decoration:none}
.card-foot a.btn-outline{display:inline-block}

/* ============================================================
   14. ESTUDIO v2 — núcleo, estructura, voz
   ============================================================ */
.core{
  position:relative;border-radius:clamp(12px,1.1vw,18px);overflow:hidden;
  border:1px solid var(--line-soft);background:rgba(4,7,20,.75);
  height:clamp(92px,8vw,132px);margin-bottom:clamp(12px,1.3vw,18px);
}
.core canvas{width:100%;height:100%;display:block}
.core .read{
  position:absolute;left:clamp(11px,1vw,16px);bottom:clamp(9px,.9vw,14px);
  display:flex;gap:clamp(8px,.9vw,14px);font-family:var(--font-data);
  font-size:clamp(9px,.75vw,12px);color:var(--muted);letter-spacing:.06em;
}
.core .read b{color:var(--cyan);font-weight:500}
.core .lab{
  position:absolute;right:clamp(11px,1vw,16px);top:clamp(9px,.9vw,14px);
  font-family:var(--font-data);font-size:clamp(8.5px,.7vw,11px);letter-spacing:.14em;
  text-transform:uppercase;color:var(--muted);
}

/* estructura */
.timeline{
  display:flex;gap:3px;height:clamp(38px,3.6vw,56px);
  border-radius:clamp(9px,.8vw,13px);overflow:hidden;
  background:rgba(6,10,32,.6);border:1px solid var(--line-soft);padding:3px;
}
.timeline .blk{
  position:relative;min-width:0;border-radius:clamp(7px,.6vw,10px);
  display:flex;flex-direction:column;justify-content:center;align-items:center;gap:2px;
  font-size:clamp(8.5px,.72vw,11.5px);color:#04060B;font-weight:700;
  cursor:pointer;transition:.2s;overflow:hidden;white-space:nowrap;
}
.timeline .blk small{font-family:var(--font-data);font-weight:500;font-size:.86em;opacity:.75}
.timeline .blk:hover{filter:brightness(1.15)}
.timeline .blk::after{
  content:"×";position:absolute;top:2px;right:5px;font-size:.9em;opacity:0;transition:opacity .2s;
}
.timeline .blk:hover::after{opacity:.75}
.timeline .hueco{
  flex:1;display:grid;place-items:center;color:var(--muted);
  font-size:clamp(10px,.85vw,13.5px);cursor:default;
}
.blk-intro   {background:linear-gradient(160deg,#7FE9FF,#22A8D6)}
.blk-verso   {background:linear-gradient(160deg,#22E0FF,#3C7BE0)}
.blk-estribillo{background:linear-gradient(160deg,#FF74C0,#FF3CD5)}
.blk-puente  {background:linear-gradient(160deg,#B58CFF,#7A5CFF)}
.blk-solo    {background:linear-gradient(160deg,#FFD48C,#FF8A5C)}
.blk-outro   {background:linear-gradient(160deg,#8FA6C8,#54627A)}

.sec-add{display:flex;flex-wrap:wrap;gap:clamp(6px,.6vw,9px);margin-top:clamp(9px,.9vw,14px)}
.sec-add .chip{padding:clamp(5px,.5vw,8px) clamp(10px,.9vw,15px)}
.sec-add .chip::before{content:"+";margin-right:6px;color:var(--cyan)}

/* barra de herramientas de la letra */
.tools{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.tools button{
  padding:clamp(5px,.5vw,8px) clamp(9px,.85vw,14px);border-radius:8px;
  border:1px solid var(--line-soft);background:rgba(16,22,60,.6);
  font-family:var(--font-data);font-size:clamp(9.5px,.78vw,12.5px);color:var(--ink-soft);transition:.2s;
}
.tools button:hover{color:#fff;border-color:var(--line);background:rgba(34,224,255,.1)}

/* selector nativo con la piel del sitio */
.sel{
  width:100%;padding:clamp(8px,.8vw,13px) clamp(12px,1.1vw,17px);
  background:rgba(6,10,32,.7);border:1px solid var(--line-soft);border-radius:999px;
  color:var(--ink);font-family:inherit;font-size:clamp(11.5px,.95vw,15px);
  outline:none;cursor:pointer;appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--cyan) 50%),linear-gradient(135deg,var(--cyan) 50%,transparent 50%);
  background-position:right 18px center,right 13px center;background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
.sel:focus{border-color:var(--cyan);box-shadow:0 0 22px rgba(34,224,255,.22)}
.sel option{background:#0A0E20;color:var(--ink)}

.kbd{
  font-family:var(--font-data);font-size:.9em;color:var(--muted);
  border:1px solid var(--line-soft);border-radius:5px;padding:1px 6px;
}

/* ============================================================
   15. UNA PANTALLA POR PÁGINA
   El panel ocupa el alto de la ventana; lo que no cabe se
   desplaza dentro de su columna, nunca la página entera.
   Así el pie siempre queda a la vista.
   ============================================================ */
@media (min-width:861px){
  .stage{height:100vh}
  .panel{height:100%;display:flex}
  .app{flex:1;min-height:0;height:100%;overflow:hidden}
  .board{flex:1;min-height:0}
  .board > .card,
  .board > .col-right{min-height:0;overflow-y:auto;overscroll-behavior:contain}
  .col-right{padding-right:2px}

  /* el tablero de planes tiene dos filas: se desplaza entero, no por tarjeta */
  .board--equal{overflow-y:auto;overscroll-behavior:contain;align-items:start}
  .board--equal > .card{overflow:visible;min-height:auto}

  /* barra de desplazamiento discreta */
  .board > .card,
  .board > .col-right,
  .modal-body{scrollbar-width:thin;scrollbar-color:rgba(34,224,255,.35) transparent}
  .board > .card::-webkit-scrollbar,
  .board > .col-right::-webkit-scrollbar,
  .modal-body::-webkit-scrollbar{width:8px}
  .board > .card::-webkit-scrollbar-track,
  .board > .col-right::-webkit-scrollbar-track,
  .modal-body::-webkit-scrollbar-track{background:transparent}
  .board > .card::-webkit-scrollbar-thumb,
  .board > .col-right::-webkit-scrollbar-thumb,
  .modal-body::-webkit-scrollbar-thumb{
    background:rgba(34,224,255,.28);border-radius:999px;border:2px solid transparent;background-clip:content-box;
  }
  .board > .card:hover::-webkit-scrollbar-thumb,
  .board > .col-right:hover::-webkit-scrollbar-thumb{background:rgba(34,224,255,.5);background-clip:content-box}
}

/* ============================================================
   16. VENTANA EMERGENTE
   ============================================================ */
.modal{
  position:fixed;inset:0;margin:auto;               /* centrada de verdad, no arriba a la izquierda */
  width:min(1180px,94vw);max-height:88vh;
  padding:0;border:none;background:transparent;color:var(--ink);
}
.modal::backdrop{background:rgba(2,4,10,.74);backdrop-filter:blur(7px)}
.modal .card{max-height:88vh;display:flex;flex-direction:column;padding:clamp(16px,1.5vw,26px)}
.modal-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding-bottom:clamp(12px,1.2vw,18px);border-bottom:1px solid var(--line-soft);
}
.modal-head h2{
  font-family:var(--font-display);font-size:clamp(13px,1.15vw,20px);
  letter-spacing:.06em;text-transform:uppercase;color:var(--cyan);
}
.modal-close{
  width:clamp(30px,2.6vw,40px);height:clamp(30px,2.6vw,40px);border-radius:50%;flex:none;
  display:grid;place-items:center;border:1px solid var(--line);background:rgba(34,224,255,.08);
  color:var(--ink-soft);font-size:clamp(13px,1.1vw,18px);transition:.2s;
}
.modal-close:hover{background:var(--cyan);color:#04060B;box-shadow:var(--glow-cyan);transform:rotate(90deg)}
.modal-body{overflow-y:auto;min-height:0;padding:clamp(14px,1.4vw,22px) 2px}
.modal-foot{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:14px;
  padding-top:clamp(12px,1.2vw,18px);border-top:1px solid var(--line-soft);
}
.modal .tracks{grid-template-columns:repeat(auto-fit,minmax(clamp(180px,16vw,250px),1fr))}
.modal .params{margin-top:0;justify-content:flex-start}
@media (prefers-reduced-motion:no-preference){
  .modal[open]{animation:pop .28s cubic-bezier(.2,.8,.3,1)}
  @keyframes pop{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
}

/* ============================================================
   17. CUENTA EN LA CABECERA
   ============================================================ */
.acct{display:flex;align-items:center;gap:clamp(9px,.9vw,14px)}
.user{
  display:flex;align-items:center;gap:clamp(8px,.8vw,12px);
  padding:clamp(4px,.4vw,7px) clamp(9px,.9vw,14px) clamp(4px,.4vw,7px) clamp(4px,.4vw,6px);
  border-radius:999px;border:1px solid var(--line-soft);background:rgba(16,22,60,.55);
  transition:.2s;text-decoration:none;
}
.user:hover{border-color:var(--cyan);background:rgba(34,224,255,.1);box-shadow:var(--glow-cyan)}
.u-txt{display:flex;flex-direction:column;line-height:1.25;min-width:0}
.u-name{font-size:clamp(11.5px,.95vw,15px);font-weight:600;white-space:nowrap}
.u-cred{font-family:var(--font-data);font-size:clamp(9px,.75vw,12px);color:var(--muted);white-space:nowrap}
.u-cred b{color:var(--cyan);font-weight:500}
.acct[data-sesion="no"] .user{display:none}
@media (max-width:900px){
  .acct .user .u-txt{display:none}
  .acct{gap:8px}
}

/* ============================================================
   18. ESTUDIO SIN DESPLAZAMIENTO
   Las áreas de texto ceden altura; el resto mantiene la suya.
   ============================================================ */
@media (min-width:861px){
  .board--fit > .card,
  .board--fit > .col-right{overflow:hidden}
  .board--fit .card{display:flex;flex-direction:column}
  .board--fit .col-center .field.grow{display:flex;flex-direction:column;flex:1 1 0;min-height:0}
  .board--fit .col-center .field.grow .ta{flex:1;min-height:46px}
  .board--fit .queue{flex:1;min-height:0;overflow-y:auto;scrollbar-width:thin;scrollbar-color:rgba(34,224,255,.3) transparent}
  .board--fit .queue::-webkit-scrollbar{width:6px}
  .board--fit .queue::-webkit-scrollbar-thumb{background:rgba(34,224,255,.3);border-radius:999px}
}

/* ============================================================
   19. PLANES — tarjetas con vida
   ============================================================ */
.board--equal{overflow:visible;align-items:stretch}
.board--equal > .card{overflow:hidden;min-height:0}

.plan{
  position:relative;display:flex;flex-direction:column;isolation:isolate;
  padding:clamp(16px,1.6vw,28px);
  background:linear-gradient(168deg,rgba(20,26,68,.82),rgba(8,11,32,.9));
  transition:transform .35s cubic-bezier(.2,.8,.3,1),box-shadow .35s,border-color .35s;
}
/* aurora interior */
.plan::before{
  content:"";position:absolute;inset:-40% -30% auto;height:70%;z-index:-1;
  background:radial-gradient(60% 60% at 50% 50%,var(--aura,rgba(34,224,255,.35)),transparent 70%);
  filter:blur(28px);opacity:.5;transition:opacity .35s,transform .6s;
}
.plan:hover::before{opacity:.95;transform:translateY(8px) scale(1.08)}
/* barrido de luz al pasar el ratón */
.plan::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:linear-gradient(115deg,transparent 38%,rgba(255,255,255,.09) 48%,transparent 58%);
  transform:translateX(-120%);transition:transform .8s cubic-bezier(.2,.8,.3,1);
}
.plan:hover::after{transform:translateX(120%)}
.plan:hover{transform:translateY(-6px);border-color:var(--cyan);box-shadow:0 28px 60px rgba(0,0,0,.6),0 0 40px rgba(34,224,255,.25)}

.plan[data-tono="cyan"]  {--aura:rgba(34,224,255,.4)}
.plan[data-tono="magenta"]{--aura:rgba(255,60,213,.42)}
.plan[data-tono="violeta"]{--aura:rgba(122,92,255,.42)}

/* destacado: borde en degradado giratorio */
.plan.featured{border-color:transparent;background:linear-gradient(168deg,rgba(38,20,66,.9),rgba(10,12,36,.94))}
.plan.featured::marker{content:""}
.plan.featured .aro{
  content:"";position:absolute;inset:-1px;border-radius:inherit;z-index:-2;padding:1px;
  background:conic-gradient(from var(--giro,0deg),var(--cyan),var(--violet),var(--magenta),var(--cyan));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;
  animation:giro 6s linear infinite;
}
@keyframes giro{to{--giro:360deg}}
@property --giro{syntax:'<angle>';inherits:false;initial-value:0deg}
.plan.featured:hover{box-shadow:0 30px 66px rgba(0,0,0,.62),0 0 46px rgba(255,60,213,.35)}

.plan .badge{
  align-self:flex-start;font-family:var(--font-data);font-size:clamp(8.5px,.72vw,11.5px);
  letter-spacing:.14em;text-transform:uppercase;color:#04060B;font-weight:700;
  background:linear-gradient(95deg,var(--cyan),var(--magenta));
  border-radius:999px;padding:4px 12px;margin-bottom:clamp(9px,.9vw,14px);
  box-shadow:0 0 18px rgba(255,60,213,.45);
}
.plan h2{
  font-family:var(--font-display);font-size:clamp(13px,1.2vw,21px);
  letter-spacing:.06em;text-transform:uppercase;
}
.plan .who{margin-top:clamp(6px,.7vw,11px);font-size:clamp(11px,.92vw,15px);color:var(--muted);line-height:1.5}
.price{display:flex;align-items:baseline;gap:7px;margin:clamp(12px,1.3vw,20px) 0 3px}
.price .num{
  font-family:var(--font-display);font-size:clamp(24px,2.6vw,46px);line-height:1;
  background:linear-gradient(120deg,#fff,var(--cyan) 55%,var(--magenta));
  -webkit-background-clip:text;background-clip:text;color:transparent;
  filter:drop-shadow(0 0 18px rgba(34,224,255,.35));
}
.price .per{font-size:clamp(10.5px,.88vw,14px);color:var(--muted)}
.price-note{font-family:var(--font-data);font-size:clamp(9px,.75vw,12px);color:var(--muted);min-height:1.3em}

.feats{
  list-style:none;margin:clamp(12px,1.3vw,20px) 0 clamp(14px,1.5vw,24px);
  display:flex;flex-direction:column;gap:clamp(6px,.7vw,11px);
  padding-top:clamp(12px,1.2vw,18px);border-top:1px solid var(--line-soft);
}
.feats li{display:flex;gap:10px;align-items:flex-start;font-size:clamp(11px,.9vw,15px);color:var(--ink-soft);line-height:1.45}
.feats i{
  font-style:normal;flex:none;width:clamp(15px,1.3vw,20px);height:clamp(15px,1.3vw,20px);
  border-radius:50%;display:grid;place-items:center;font-size:.72em;
  background:rgba(34,224,255,.14);color:var(--cyan);border:1px solid var(--line);
}
.feats li.off{color:#5C6C8E}
.feats li.off i{background:rgba(120,150,220,.07);color:#41506E;border-color:rgba(120,150,220,.14)}
.plan .cta{margin-top:auto}

/* ============================================================
   20. FORMULARIOS DE CUENTA Y ACCESO
   ============================================================ */
.form-row{display:flex;flex-direction:column;gap:7px;margin-bottom:clamp(11px,1.1vw,17px)}
.form-row.dos{display:grid;grid-template-columns:1fr 1fr;gap:clamp(10px,1vw,16px)}
.form-row.dos > *{margin:0}
.form-row label{
  font-size:clamp(10px,.82vw,13px);letter-spacing:.11em;text-transform:uppercase;color:var(--muted);
}
.inp{
  width:100%;padding:clamp(9px,.9vw,14px) clamp(13px,1.2vw,18px);
  background:rgba(6,10,32,.72);border:1px solid var(--line-soft);border-radius:clamp(10px,.9vw,14px);
  color:var(--ink);font-size:clamp(12px,.98vw,16px);outline:none;transition:.2s;
}
.inp::placeholder{color:#63769F}
.inp:focus{border-color:var(--cyan);box-shadow:0 0 22px rgba(34,224,255,.22)}
.inp[readonly]{color:var(--ink-soft);background:rgba(6,10,32,.4)}

.sep{display:flex;align-items:center;gap:12px;margin:clamp(13px,1.3vw,20px) 0;color:var(--muted);font-size:clamp(10px,.82vw,13px)}
.sep::before,.sep::after{content:"";flex:1;height:1px;background:var(--line-soft)}
.oauth{display:flex;flex-direction:column;gap:9px}
.btn-oauth{
  display:flex;align-items:center;justify-content:center;gap:10px;width:100%;
  padding:clamp(10px,.95vw,15px);border-radius:999px;border:1px solid var(--line-soft);
  background:rgba(16,22,60,.55);font-size:clamp(11.5px,.95vw,15px);font-weight:600;transition:.2s;
}
.btn-oauth:hover{border-color:var(--cyan);background:rgba(34,224,255,.1);box-shadow:var(--glow-cyan)}
.btn-oauth b{font-family:var(--font-data);font-weight:500;color:var(--cyan)}

/* pestañas y contenido de la cuenta */
.acct-head{display:flex;align-items:center;gap:clamp(12px,1.2vw,18px);flex-wrap:wrap}
.acct-head .avatar{width:clamp(46px,4vw,64px);height:clamp(46px,4vw,64px)}
.acct-head .mail{font-size:clamp(11px,.9vw,14px);color:var(--muted);font-family:var(--font-data)}
.badge-plan{
  font-family:var(--font-data);font-size:clamp(9px,.75vw,12px);letter-spacing:.12em;text-transform:uppercase;
  color:#04060B;font-weight:700;background:linear-gradient(95deg,var(--cyan),var(--violet));
  border-radius:999px;padding:4px 12px;
}
.panes > section{display:none}
.panes > section.on{display:block;animation:fade .25s ease}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.kv{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:clamp(10px,1vw,15px) 0;border-bottom:1px solid var(--line-soft);
}
.kv:last-child{border-bottom:none}
.kv .k{font-size:clamp(11.5px,.95vw,15px)}
.kv .k small{display:block;color:var(--muted);font-size:.82em;margin-top:3px}
.kv .v{font-family:var(--font-data);font-size:clamp(11px,.9vw,15px);color:var(--cyan);white-space:nowrap}
.kv .v.plain{color:var(--ink-soft)}

.meter{height:8px;border-radius:999px;background:rgba(120,150,220,.16);overflow:hidden;margin-top:9px}
.meter span{display:block;height:100%;border-radius:999px;background:linear-gradient(90deg,var(--cyan),var(--magenta))}
.card-mini{
  display:flex;align-items:center;gap:12px;padding:clamp(11px,1.1vw,17px);
  border:1px solid var(--line-soft);border-radius:clamp(11px,1vw,15px);background:rgba(10,14,38,.5);
}
.card-mini .brand{
  font-family:var(--font-data);font-size:clamp(10px,.85vw,13px);letter-spacing:.1em;
  padding:5px 10px;border:1px solid var(--line);border-radius:7px;color:var(--cyan);
}
.danger{color:#FF7A7A;border-color:rgba(255,122,122,.4)}
.danger:hover{background:rgba(255,122,122,.12);box-shadow:0 0 18px rgba(255,122,122,.3)}

/* ============================================================
   21. VENTANA EN LÍNEA (pantallas estrechas)
   Debajo de 861 px, la ventana de Explorar deja de flotar y se
   despliega dentro del tablero, justo bajo «Pistas destacadas».
   ============================================================ */
@media (max-width:860px){
  .modal.inline{
    position:static;margin:clamp(12px,2vw,18px) 0 0;
    width:100%;max-height:none;grid-column:1 / -1;
  }
  .modal.inline .card{max-height:none}
  .modal.inline .modal-body{overflow:visible}
  .modal.inline::backdrop{background:transparent}
}
@media (min-width:861px){
  .modal.inline:not([open]){display:none}
}

/* ============================================================
   22. REGISTRO
   ============================================================ */
.board--dos{grid-template-columns:minmax(0,1.32fr) minmax(0,1fr)}
.check{
  display:flex;align-items:flex-start;gap:11px;cursor:pointer;
  font-size:clamp(11px,.9vw,14.5px);color:var(--ink-soft);line-height:1.5;
}
.check input{
  appearance:none;flex:none;width:clamp(17px,1.5vw,22px);height:clamp(17px,1.5vw,22px);
  border:1px solid var(--line);border-radius:6px;background:rgba(6,10,32,.7);
  display:grid;place-items:center;cursor:pointer;transition:.2s;margin-top:1px;
}
.check input:checked{background:linear-gradient(135deg,var(--cyan),var(--violet));border-color:var(--cyan);box-shadow:var(--glow-cyan)}
.check input:checked::after{content:"✓";color:#04060B;font-size:.72em;font-weight:700}
.check a{color:var(--cyan)}
.fuerza{display:flex;gap:4px;margin-top:8px}
.fuerza i{flex:1;height:3px;border-radius:999px;background:rgba(120,150,220,.2);transition:background .25s}
.fuerza[data-n="1"] i:nth-child(1){background:#FF6B6B}
.fuerza[data-n="2"] i:nth-child(-n+2){background:#FFB259}
.fuerza[data-n="3"] i:nth-child(-n+3){background:#5FD8A8}
.fuerza[data-n="4"] i{background:var(--cyan)}
.pistas-uso{display:flex;flex-direction:column;gap:clamp(9px,.9vw,14px)}
.paso{display:flex;gap:clamp(10px,1vw,15px);align-items:flex-start}
.paso .n{
  flex:none;width:clamp(22px,2vw,30px);height:clamp(22px,2vw,30px);border-radius:9px;
  display:grid;place-items:center;font-family:var(--font-data);font-size:clamp(10px,.82vw,13px);
  color:var(--cyan);background:rgba(34,224,255,.1);border:1px solid var(--line);
}
.paso p{font-size:clamp(11px,.9vw,14.5px);color:var(--ink-soft);line-height:1.5}
.paso p b{color:#fff;font-weight:600;display:block;margin-bottom:2px}

/* ============================================================
   23. ESTUDIO DE VÍDEO
   ============================================================ */
.frame-wrap{
  display:grid;place-items:center;background:rgba(4,7,20,.75);
  border:1px solid var(--line-soft);border-radius:clamp(12px,1.1vw,18px);
  padding:clamp(9px,.9vw,14px);margin-bottom:clamp(12px,1.3vw,18px);
  min-height:clamp(120px,11vw,200px);
}
.frame{
  position:relative;width:100%;max-height:clamp(104px,10vw,182px);
  aspect-ratio:16/9;border-radius:clamp(8px,.7vw,12px);overflow:hidden;
  border:1px solid rgba(120,170,255,.28);background:#05070E;
  transition:aspect-ratio .35s cubic-bezier(.2,.8,.3,1);
}
.frame canvas{width:100%;height:100%;display:block}
.frame .hud{
  position:absolute;left:8px;bottom:7px;display:flex;gap:8px;
  font-family:var(--font-data);font-size:clamp(8px,.68vw,11px);color:var(--muted);letter-spacing:.06em;
}
.frame .hud b{color:var(--cyan);font-weight:500}
.frame .rec{
  position:absolute;right:8px;top:7px;display:flex;align-items:center;gap:6px;
  font-family:var(--font-data);font-size:clamp(8px,.66vw,10.5px);letter-spacing:.14em;color:var(--muted);
}
.frame .rec::before{
  content:"";width:7px;height:7px;border-radius:50%;background:var(--magenta);
  box-shadow:0 0 10px var(--magenta);animation:latido 2s ease-in-out infinite;
}
@keyframes latido{0%,100%{opacity:.35}50%{opacity:1}}

.drop{
  display:flex;align-items:center;gap:clamp(10px,1vw,15px);
  padding:clamp(11px,1.1vw,17px);border-radius:clamp(11px,1vw,15px);
  border:1px dashed var(--line);background:rgba(6,10,32,.55);
  cursor:pointer;transition:.2s;
}
.drop:hover,.drop.sobre{border-style:solid;border-color:var(--cyan);background:rgba(34,224,255,.08);box-shadow:var(--glow-cyan)}
.drop .ic{
  flex:none;width:clamp(32px,2.8vw,44px);height:clamp(32px,2.8vw,44px);border-radius:10px;
  display:grid;place-items:center;font-size:clamp(14px,1.2vw,19px);
  background:rgba(34,224,255,.1);border:1px solid var(--line);color:var(--cyan);
}
.drop p{font-size:clamp(11px,.9vw,14.5px);color:var(--ink-soft);line-height:1.45}
.drop p small{display:block;color:var(--muted);font-size:.85em;margin-top:2px}

.blk-general{background:linear-gradient(160deg,#7FE9FF,#22A8D6)}
.blk-medio   {background:linear-gradient(160deg,#22E0FF,#3C7BE0)}
.blk-detalle {background:linear-gradient(160deg,#FF74C0,#FF3CD5)}
.blk-aereo   {background:linear-gradient(160deg,#B58CFF,#7A5CFF)}
.blk-cierre  {background:linear-gradient(160deg,#8FA6C8,#54627A)}

.pista-mus{
  display:flex;align-items:center;gap:clamp(9px,.9vw,14px);
  padding:clamp(8px,.85vw,13px);border-radius:clamp(10px,.9vw,14px);
  border:1px solid var(--line-soft);background:rgba(10,14,38,.55);
}
.pista-mus .thumb{width:clamp(32px,2.7vw,42px);height:clamp(32px,2.7vw,42px)}

/* rejilla de vídeos */
.vids{display:grid;gap:clamp(12px,1.2vw,20px);grid-template-columns:repeat(auto-fit,minmax(clamp(190px,17vw,270px),1fr))}
.vid{
  border:1px solid rgba(122,92,255,.24);border-radius:clamp(12px,1.1vw,18px);
  padding:clamp(9px,.9vw,14px);background:linear-gradient(180deg,rgba(22,20,60,.75),rgba(10,14,40,.75));
  transition:.25s;
}
.vid:hover{transform:translateY(-4px);border-color:var(--violet);box-shadow:0 16px 38px rgba(122,92,255,.22),0 0 22px rgba(122,92,255,.35)}
.vid .lienzo{
  position:relative;aspect-ratio:16/9;border-radius:clamp(8px,.7vw,12px);overflow:hidden;
  display:grid;place-items:center;border:1px solid rgba(150,180,255,.18);
}
.vid .lienzo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(4,6,11,.75))}
.vid .dur{
  position:absolute;right:7px;bottom:6px;z-index:2;
  font-family:var(--font-data);font-size:clamp(8.5px,.7vw,11px);
  background:rgba(4,6,11,.75);border:1px solid var(--line-soft);border-radius:6px;padding:2px 7px;
}
.vid .res{
  position:absolute;left:7px;top:6px;z-index:2;
  font-family:var(--font-data);font-size:clamp(8px,.66vw,10.5px);letter-spacing:.08em;
  color:var(--violet);background:rgba(4,6,11,.7);border:1px solid rgba(122,92,255,.3);
  border-radius:6px;padding:2px 7px;
}
.vid h3{margin-top:clamp(8px,.9vw,13px);font-size:clamp(12px,1vw,17px);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.vid .by{font-size:clamp(10px,.85vw,14px);color:var(--muted);margin-top:2px}
