/* ===== Profesor Labs Academia — estilos ===== */
:root{
  --bg:#0b0714;
  --bg2:#140a22;
  --panel:rgba(23,15,40,.72);
  --panel-solid:#1a1030;
  --border:rgba(255,255,255,.10);
  --txt:#f3eefb;
  --muted:#a99fc4;
  --brand:#e11d48;      /* rojo Profesor Labs */
  --brand2:#f43f5e;
  --gold:#fbbf24;
  --green:#22c55e;
  --cyan:#38bdf8;
  --violet:#8b5cf6;
  --radius:20px;
  --shadow:0 20px 60px rgba(0,0,0,.45);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html,body{margin:0;padding:0}
body{
  font-family:'Nunito',system-ui,sans-serif;
  background:radial-gradient(1200px 800px at 20% -10%,#241041 0%,var(--bg) 55%),var(--bg);
  color:var(--txt);
  min-height:100vh;overflow-x:hidden;
}
.hidden{display:none !important}
h1,h2,h3{font-family:'Fredoka',sans-serif;margin:0}
button{font-family:inherit;cursor:pointer;border:0}
img{max-width:100%}

#starfield{position:fixed;inset:0;z-index:0;pointer-events:none}

/* ===== Botones ===== */
.btn{
  border-radius:14px;padding:12px 20px;font-weight:800;font-size:15px;
  color:#fff;background:#2a1c47;transition:transform .12s ease,filter .12s ease, box-shadow .2s;
  box-shadow:0 4px 0 rgba(0,0,0,.35);
}
.btn:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(0,0,0,.35)}
.btn--primary{background:linear-gradient(180deg,var(--brand2),var(--brand));box-shadow:0 5px 0 #9f1239}
.btn--primary:active{box-shadow:0 1px 0 #9f1239}
.btn--run{background:linear-gradient(180deg,#34d399,#16a34a);box-shadow:0 5px 0 #14532d}
.btn--ghost{background:rgba(255,255,255,.08);box-shadow:none;border:1px solid var(--border)}
.btn--xl{padding:16px 34px;font-size:18px;border-radius:18px}

.chip{display:inline-block;padding:8px 14px;border-radius:999px;background:rgba(255,255,255,.07);
  border:1px solid var(--border);font-size:13px;font-weight:700;color:var(--muted)}
.chip--safe{color:#bbf7d0;border-color:rgba(34,197,94,.35);background:rgba(34,197,94,.10)}

/* ===== Welcome ===== */
.welcome{position:relative;z-index:2;min-height:100vh;display:grid;place-items:center;padding:24px}
.welcome__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;width:min(1080px,100%);align-items:stretch}
.welcome__card{max-width:none;width:100%;text-align:center;background:var(--panel);backdrop-filter:blur(14px);
  border:1px solid var(--border);border-radius:28px;padding:40px 30px;box-shadow:var(--shadow);
  animation:pop .5s cubic-bezier(.2,1.2,.3,1);display:flex;flex-direction:column;align-items:center}
.welcome__card--pro{background:linear-gradient(180deg,#0c1622,#0a0f16);border-color:#173a2a}
.welcome__ico{width:110px;height:110px;display:grid;place-items:center;border-radius:28px;margin:0 auto 4px;
  background:radial-gradient(circle at 40% 30%,rgba(34,197,94,.22),rgba(239,68,68,.08));
  color:#22c55e;border:1px solid #1f3d2c;box-shadow:0 12px 36px rgba(34,197,94,.18)}
.welcome__ico svg{width:56px;height:56px;stroke-width:1.6}
.welcome__mascot{width:130px;height:130px;object-fit:contain;filter:drop-shadow(0 10px 30px rgba(225,29,72,.5));
  animation:float 3.5s ease-in-out infinite}
.welcome__title{font-size:34px;line-height:1.05;margin:14px 0 6px}
.welcome__title span{background:linear-gradient(90deg,var(--brand2),var(--gold));-webkit-background-clip:text;background-clip:text;color:transparent}
.welcome__card--pro .welcome__title span{background:linear-gradient(90deg,#22c55e,#ef4444);-webkit-background-clip:text;background-clip:text;color:transparent}
.welcome__sub{color:var(--muted);font-size:16px;margin:0 0 18px;font-weight:600;flex:1}
.welcome__card--pro .welcome__sub{color:#9fb4c7}
.welcome__ages{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:24px}
.chip--pro{background:rgba(34,197,94,.14);border:1px solid rgba(34,197,94,.35);color:#86efac}
.btn--pro{background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;border:none;box-shadow:0 10px 28px rgba(22,163,74,.35)}
.btn--pro:hover{filter:brightness(1.08)}
.welcome__note{color:var(--muted);font-size:13px;margin-top:14px}
@media(max-width:860px){.welcome__grid{grid-template-columns:1fr}.welcome__title{font-size:30px}}

@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-12px)}}
@keyframes pop{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}

/* ===== Auth ===== */
.auth__card{max-width:420px;display:flex;flex-direction:column;gap:12px}
.auth__logo{width:84px;height:84px;object-fit:contain;margin:0 auto;filter:drop-shadow(0 8px 24px rgba(225,29,72,.45))}
.auth__title{font-size:26px}
.auth__sub{color:var(--muted);font-weight:600;margin:0 0 6px;font-size:15px}
.auth__err{background:rgba(244,63,94,.14);border:1px solid rgba(244,63,94,.4);color:#fecaca;
  padding:10px 14px;border-radius:12px;font-weight:700;font-size:14px}
.field{width:100%;background:rgba(255,255,255,.06);border:1px solid var(--border);border-radius:12px;
  padding:14px 16px;color:var(--txt);font-size:16px;font-family:inherit}
.field:focus{outline:2px solid rgba(225,29,72,.5)}
.linkbtn{background:none;color:var(--muted);font-weight:800;font-size:14px;padding:6px}
.linkbtn:hover{color:#fff}
.linkbtn--muted{color:#6f6690;font-size:13px}

/* ===== App / HUD ===== */
.app{position:relative;z-index:2;min-height:100vh}
.hud{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;
  padding:12px 18px;background:rgba(11,7,20,.82);backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border)}
.hud__brand{display:flex;align-items:center;gap:10px;min-width:0}
.hud__logo{width:38px;height:38px;object-fit:contain}
.hud__name{font-family:'Fredoka';font-weight:600;font-size:17px;white-space:nowrap}
.hud__stats{display:flex;gap:10px;margin-left:auto;align-items:center}
.stat{display:flex;align-items:center;gap:5px;font-weight:900;background:rgba(255,255,255,.06);
  padding:6px 12px;border-radius:999px;border:1px solid var(--border);font-size:15px}
.stat--streak{color:#ffb877}.stat--gems{color:#7dd3fc}
.stat__ico{font-size:16px}
.xpbar{position:relative;width:120px;height:26px;background:rgba(255,255,255,.08);border-radius:999px;
  overflow:hidden;border:1px solid var(--border)}
.xpbar__fill{position:absolute;inset:0;width:0;background:linear-gradient(90deg,var(--gold),#f59e0b);
  border-radius:999px;transition:width .6s cubic-bezier(.2,1,.3,1)}
.xpbar__lvl{position:absolute;inset:0;display:grid;place-items:center;font-size:12px;font-weight:900;
  color:#1a1030;text-shadow:0 1px 0 rgba(255,255,255,.3)}
.hud__right{display:flex;gap:8px;align-items:center}
.lang{background:rgba(255,255,255,.08);color:var(--txt);border:1px solid var(--border);
  border-radius:10px;padding:7px 11px;font-weight:900;font-size:13px}
.planbadge{background:linear-gradient(180deg,var(--gold),#f59e0b);color:#3b2600;font-weight:900;
  border-radius:10px;padding:7px 13px;font-size:13px}
.account{width:38px;height:38px;border-radius:50%;background:linear-gradient(180deg,var(--brand2),var(--brand));
  color:#fff;font-weight:900;font-size:15px;display:grid;place-items:center;border:1px solid rgba(255,255,255,.2)}

/* Modal cuenta */
.acctcard{position:relative;z-index:2;width:min(380px,94vw);text-align:center;background:var(--panel-solid);
  border:1px solid var(--border);border-radius:24px;padding:30px 24px;box-shadow:var(--shadow);
  display:flex;flex-direction:column;gap:12px;animation:pop .3s}
.acctcard__logo{width:72px;height:72px;object-fit:contain;margin:0 auto}
.acctcard__name{font-size:22px;margin:0}
.acctcard__email{color:var(--muted);margin:0;font-weight:600;font-size:14px}
.acctcard__plan{font-weight:900;padding:8px 14px;border-radius:999px;align-self:center;
  background:rgba(251,191,36,.15);border:1px solid rgba(251,191,36,.4);color:var(--gold);margin-bottom:4px}

/* ===== Mapa ===== */
.mapwrap{position:relative;max-width:560px;margin:0 auto;padding:30px 0 120px}
.mappath{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.map{position:relative;z-index:2}
.unit-banner{margin:26px 20px 8px;padding:14px 18px;border-radius:16px;text-align:center;
  font-family:'Fredoka';font-weight:600;font-size:16px;color:#fff;
  background:linear-gradient(180deg,rgba(139,92,246,.35),rgba(139,92,246,.15));
  border:1px solid rgba(139,92,246,.4)}
.unit-banner.u2{background:linear-gradient(180deg,rgba(56,189,248,.35),rgba(56,189,248,.12));border-color:rgba(56,189,248,.4)}
.unit-banner.u3{background:linear-gradient(180deg,rgba(225,29,72,.35),rgba(225,29,72,.12));border-color:rgba(225,29,72,.45)}
.unit-banner.u4{background:linear-gradient(180deg,rgba(249,115,22,.35),rgba(249,115,22,.12));border-color:rgba(249,115,22,.45)}

.node{position:relative;display:flex;flex-direction:column;align-items:center;margin:18px 0;
  transition:transform .12s}
.node__btn{width:82px;height:82px;border-radius:50%;display:grid;place-items:center;font-size:34px;
  position:relative;background:linear-gradient(180deg,#3a2a5c,#2a1c47);
  box-shadow:0 8px 0 rgba(0,0,0,.4), inset 0 3px 8px rgba(255,255,255,.12);
  border:3px solid rgba(255,255,255,.12);transition:transform .12s}
.node__btn:active{transform:translateY(4px)}
.node__label{margin-top:8px;font-size:13px;font-weight:800;color:var(--muted);max-width:130px;text-align:center;line-height:1.15}
.node--done .node__btn{background:linear-gradient(180deg,#34d399,#16a34a);box-shadow:0 8px 0 #14532d,inset 0 3px 8px rgba(255,255,255,.2)}
.node--done .node__label{color:#bbf7d0}
.node--active .node__btn{background:linear-gradient(180deg,var(--gold),#f59e0b);box-shadow:0 8px 0 #b45309,inset 0 3px 8px rgba(255,255,255,.35)}
.node--active .node__label{color:#fde68a}
.node--active .node__btn::after{content:"";position:absolute;inset:-10px;border-radius:50%;
  border:3px solid var(--gold);opacity:.6;animation:ring 1.6s ease-out infinite}
.node--active::before{content:"START";position:absolute;top:-24px;left:50%;transform:translateX(-50%);
  background:var(--gold);color:#3b2600;font-weight:900;font-size:11px;padding:3px 10px;border-radius:8px;letter-spacing:1px}
@keyframes ring{0%{transform:scale(.9);opacity:.7}100%{transform:scale(1.5);opacity:0}}
.node--locked .node__btn{filter:grayscale(.7) brightness(.6);cursor:not-allowed}
.node--locked .node__btn::before{content:"🔒";position:absolute;font-size:22px}
.node--premium .node__btn{background:linear-gradient(180deg,#4c1d3f,#2a1c47);border-color:rgba(251,191,36,.5)}
.node--premium .node__btn::before{content:"👑";position:absolute;top:-6px;right:-6px;font-size:20px}
.node--boss .node__btn{width:98px;height:98px;font-size:44px;border-color:rgba(225,29,72,.6);
  background:linear-gradient(180deg,#7f1d3a,#4c1d3f)}
.node .stars{position:absolute;top:-2px;display:flex;gap:2px;font-size:12px}

/* ===== Modales ===== */
.modal{position:fixed;inset:0;z-index:50;display:grid;place-items:center;padding:16px}
.modal__backdrop{position:absolute;inset:0;background:rgba(4,2,10,.72);backdrop-filter:blur(4px)}

.lesson{position:relative;z-index:2;width:min(1100px,96vw);max-height:94vh;overflow:auto;
  background:var(--panel-solid);border:1px solid var(--border);border-radius:24px;padding:22px;
  box-shadow:var(--shadow);animation:pop .35s cubic-bezier(.2,1.2,.3,1)}
.lesson__close{position:absolute;top:14px;right:14px;width:38px;height:38px;border-radius:50%;
  background:rgba(255,255,255,.08);color:var(--txt);font-size:16px;font-weight:900}
.lesson__head{display:flex;gap:14px;align-items:center;margin-bottom:16px;padding-right:40px}
.lesson__badge{width:52px;height:52px;border-radius:14px;display:grid;place-items:center;font-size:26px;
  background:linear-gradient(180deg,var(--brand2),var(--brand));flex-shrink:0}
.lesson__title{font-size:24px}
.lesson__goal{color:var(--muted);font-weight:600;margin:2px 0 0;font-size:14px}

.lesson__tabs{display:flex;gap:8px;margin-bottom:18px;flex-wrap:wrap}
.ltab{background:rgba(255,255,255,.06);color:var(--muted);padding:10px 16px;border-radius:12px;font-weight:800;font-size:14px;border:1px solid transparent}
.ltab.is-active{background:rgba(225,29,72,.18);color:#fff;border-color:rgba(225,29,72,.4)}
.ltab-panel{display:none;animation:fade .3s}
.ltab-panel.is-active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.video{aspect-ratio:16/7;border-radius:16px;background:
  linear-gradient(135deg,#2a1c47,#4c1d3f);display:grid;place-items:center;position:relative;overflow:hidden;margin-bottom:16px}
.video::after{content:"";position:absolute;inset:0;background:radial-gradient(circle at 50% 45%,rgba(255,255,255,.08),transparent 60%)}
.video__play{width:74px;height:74px;border-radius:50%;background:rgba(255,255,255,.15);display:grid;place-items:center;
  font-size:30px;color:#fff;border:2px solid rgba(255,255,255,.4);z-index:2}
.video__label{position:absolute;bottom:12px;left:16px;font-weight:800;color:#fff;z-index:2}
.learn-steps{display:grid;gap:10px;margin-bottom:18px}
.learn-step{display:flex;gap:12px;align-items:flex-start;background:rgba(255,255,255,.04);padding:12px 14px;border-radius:12px;border:1px solid var(--border)}
.learn-step b{color:var(--gold)}

/* ===== Studio (bloques + juego) ===== */
.studio{display:grid;grid-template-columns:1fr 340px;gap:16px}
.studio__blocks{height:440px;border-radius:14px;overflow:hidden;border:1px solid var(--border);background:#12203a}
.studio__stage{display:flex;flex-direction:column;gap:10px}
.studio__objective{background:rgba(56,189,248,.12);border:1px solid rgba(56,189,248,.3);border-radius:12px;
  padding:10px 12px;font-weight:700;font-size:13px;color:#bae6fd}
.studio__canvas{width:100%;aspect-ratio:1/1;border-radius:14px;overflow:hidden;background:#0c1526;border:1px solid var(--border);display:grid;place-items:center}
.studio__canvas canvas{display:block;border-radius:12px}
.studio__actions{display:flex;gap:8px}
.studio__actions .btn{flex:1}
.studio__msg{min-height:24px;font-weight:800;font-size:14px;text-align:center}
.studio__msg.ok{color:#86efac}.studio__msg.err{color:#fca5a5}

/* ===== IA ===== */
.ai{max-width:640px;margin:0 auto}
.ai__gov{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:12px;font-size:13px;font-weight:800}
.ai__safe{color:#bbf7d0}.ai__quota{color:var(--muted)}.ai__quota b{color:var(--gold)}
.ai__chat{min-height:180px;max-height:300px;overflow:auto;display:flex;flex-direction:column;gap:10px;
  background:rgba(0,0,0,.2);border:1px solid var(--border);border-radius:14px;padding:14px;margin-bottom:10px}
.msg{max-width:80%;padding:10px 14px;border-radius:14px;font-weight:600;font-size:14px;line-height:1.35}
.msg--bot{align-self:flex-start;background:rgba(139,92,246,.18);border:1px solid rgba(139,92,246,.3);border-bottom-left-radius:4px}
.msg--me{align-self:flex-end;background:rgba(225,29,72,.22);border:1px solid rgba(225,29,72,.35);border-bottom-right-radius:4px}
.ai__suggest{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.suggest{background:rgba(255,255,255,.06);border:1px solid var(--border);color:var(--muted);
  padding:7px 12px;border-radius:999px;font-size:13px;font-weight:700}
.ai__inputrow{display:flex;gap:8px}
.ai__inputrow input{flex:1;background:rgba(255,255,255,.06);border:1px solid var(--border);border-radius:12px;
  padding:12px 14px;color:var(--txt);font-size:15px;font-family:inherit}
.ai__inputrow input:focus{outline:2px solid rgba(225,29,72,.5)}
.ai__rules{color:var(--muted);font-size:12px;margin:10px 0 0;text-align:center}

/* ===== Win ===== */
.win{position:relative;z-index:2;text-align:center;width:min(420px,94vw);background:var(--panel-solid);
  border:1px solid var(--border);border-radius:26px;padding:34px 26px;box-shadow:var(--shadow);
  animation:pop .4s cubic-bezier(.2,1.4,.3,1);overflow:hidden}
.win h2{font-size:30px;margin:6px 0 14px;color:var(--gold)}
.win__mascot{width:110px;height:110px;object-fit:contain;animation:float 2.5s ease-in-out infinite}
.win__rewards{display:flex;gap:14px;justify-content:center;margin-bottom:12px}
.reward{background:rgba(255,255,255,.06);border:1px solid var(--border);border-radius:14px;padding:12px 18px;font-size:18px;font-weight:900}
.reward b{color:var(--gold)}
.win__streak{color:#ffb877;font-weight:800;margin:0 0 18px}
.win__burst{position:absolute;inset:0;pointer-events:none}

/* ===== Planes ===== */
.plans{position:relative;z-index:2;width:min(940px,96vw);max-height:92vh;overflow:auto;background:var(--panel-solid);
  border:1px solid var(--border);border-radius:24px;padding:28px;box-shadow:var(--shadow);animation:pop .35s}
.plans__title{font-size:28px;text-align:center}
.plans__sub{color:var(--muted);text-align:center;margin:6px 0 22px;font-weight:600}
.plans__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.plan{background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:18px;padding:22px 18px;display:flex;flex-direction:column;gap:12px;position:relative}
.plan--pop{border-color:var(--gold);box-shadow:0 0 0 2px rgba(251,191,36,.3)}
.plan--pop::before{content:"★ Popular";position:absolute;top:-12px;left:50%;transform:translateX(-50%);
  background:var(--gold);color:#3b2600;font-weight:900;font-size:12px;padding:4px 12px;border-radius:999px}
.plan__name{font-family:'Fredoka';font-size:20px;font-weight:600}
.plan__price{font-size:34px;font-weight:900}
.plan__price small{font-size:14px;color:var(--muted);font-weight:700}
.plan__feats{list-style:none;padding:0;margin:0;display:grid;gap:8px;flex:1}
.plan__feats li{font-size:14px;font-weight:600;color:var(--muted);display:flex;gap:8px}
.plan__feats li::before{content:"✓";color:var(--green);font-weight:900}
.plans__legal{color:var(--muted);font-size:12px;text-align:center;margin:18px 0 0}

/* ===== Tutor IA: escribiendo ===== */
.msg--typing{display:inline-flex;gap:5px;align-items:center}
.msg--typing .tdot{width:7px;height:7px;border-radius:50%;background:var(--muted);opacity:.5;animation:tdot 1s infinite}
.msg--typing .tdot:nth-child(2){animation-delay:.2s}
.msg--typing .tdot:nth-child(3){animation-delay:.4s}
@keyframes tdot{0%,60%,100%{opacity:.35;transform:translateY(0)}30%{opacity:1;transform:translateY(-3px)}}

/* ===== Cuenta: verificación ===== */
.acctverify{background:rgba(251,191,36,.12);border:1px solid rgba(251,191,36,.35);border-radius:12px;
  padding:10px 12px;font-size:13px;color:#fde68a;display:flex;flex-direction:column;gap:6px}
.acctverify .linkbtn{color:var(--gold);font-weight:800}

/* ===== Panel docente ===== */
.teacher{position:relative;z-index:2;width:min(720px,96vw);max-height:92vh;overflow:auto;background:var(--panel-solid);
  border:1px solid var(--border);border-radius:24px;padding:26px;box-shadow:var(--shadow);animation:pop .3s}
.teacher__title{font-size:24px;margin:0 0 14px}
.teacher__code{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:rgba(255,255,255,.05);
  border:1px solid var(--border);border-radius:14px;padding:12px 14px;margin-bottom:16px;font-weight:700}
.teacher__code b{font-family:'Fredoka';font-size:22px;letter-spacing:3px;color:var(--gold)}
.teacher__count{margin-left:auto;color:var(--muted);font-weight:800}
.teacher__add{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;margin-bottom:12px}
.teacher__err{background:rgba(244,63,94,.14);border:1px solid rgba(244,63,94,.4);color:#fecdd3;
  border-radius:10px;padding:8px 12px;font-size:13px;font-weight:700;margin-bottom:10px}
.teacher__list{display:grid;gap:10px}
.teacher__empty,.teacher__loading{color:var(--muted);text-align:center;padding:18px;font-weight:600}
.stu{display:grid;grid-template-columns:1.4fr 1fr auto;gap:10px;align-items:center;
  background:rgba(255,255,255,.04);border:1px solid var(--border);border-radius:14px;padding:12px 14px}
.stu__main{display:flex;flex-direction:column;min-width:0}
.stu__main b{font-weight:800}
.stu__main small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stu__stats{font-size:13px;font-weight:700;color:var(--muted)}
.stu__ctrl{display:flex;align-items:center;gap:8px;justify-self:end}
.stu__ctrl label{font-size:12px;color:var(--muted);font-weight:700;display:flex;align-items:center;gap:6px}
.stu__lim{width:64px;padding:6px 8px;border-radius:8px;border:1px solid var(--border);
  background:rgba(0,0,0,.25);color:var(--fg);font-weight:700;text-align:center}
.stu__del{background:none;border:none;cursor:pointer;font-size:18px;opacity:.8}
.stu__del:hover{opacity:1}

/* ===== Visor de código real ===== */
.codepeek__btn{padding:8px 12px;font-size:13px}
.codepeek__ico{font-family:'JetBrains Mono',ui-monospace,monospace;color:var(--gold);font-weight:900}
.codepeek{margin-top:10px;border:1px solid var(--border);border-radius:14px;overflow:hidden;
  background:#0a1120;box-shadow:0 10px 30px rgba(0,0,0,.35);animation:pop .22s}
.codepeek__bar{display:flex;align-items:center;gap:8px;padding:8px 12px;font-size:12px;font-weight:800;
  color:#cbd5e1;background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));
  border-bottom:1px solid var(--border);letter-spacing:.3px}
.codepeek__live{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 0 rgba(34,197,94,.6);animation:pulse 1.6s infinite}
.codepeek__lang{margin-left:auto;display:inline-flex;gap:5px;align-items:center;font-weight:700;color:#94a3b8;text-transform:none;letter-spacing:0}
.codepeek__lang b{color:#fde047;background:rgba(253,224,71,.12);border:1px solid rgba(253,224,71,.3);border-radius:6px;padding:1px 7px;font-family:'JetBrains Mono',ui-monospace,monospace}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.5)}70%{box-shadow:0 0 0 8px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}
.codepeek__pre{margin:0;padding:12px 14px;max-height:190px;overflow:auto}
.codepeek__pre code{font-family:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;font-size:12.5px;line-height:1.6;white-space:pre;color:#e6edf3}
.tok-kw{color:#c792ea;font-weight:700}
.tok-obj{color:#82aaff}
.tok-str{color:#c3e88d}
.tok-num{color:#f78c6c}
.tok-com{color:#5b6b82;font-style:italic}

/* ===== Unidad 5 (videojuegos) ===== */
.unit-banner.u5{background:linear-gradient(180deg,rgba(139,92,246,.35),rgba(139,92,246,.12));border-color:rgba(139,92,246,.45)}

/* ===== Pad de control (Tetris/táctil) ===== */
.gamepad{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.gpad{height:46px;border-radius:12px;border:1px solid var(--border);background:rgba(255,255,255,.06);
  color:var(--txt);font-size:20px;font-weight:900;cursor:pointer;user-select:none;-webkit-user-select:none;
  touch-action:manipulation;transition:transform .06s,background .1s}
.gpad:hover{background:rgba(255,255,255,.12)}
.gpad:active{transform:translateY(2px);background:var(--brand2)}
#bgUploadBtn{padding:8px 12px;font-size:13px}

/* ===== Botón de Tips ===== */
.lesson__headmain{flex:1;min-width:0}
.tipsbtn{flex-shrink:0;background:linear-gradient(180deg,#f59e0b,#d97706);color:#3b2600;font-weight:900;
  font-size:14px;padding:10px 16px;border-radius:14px;border:none;cursor:pointer;
  box-shadow:0 6px 0 #92400e,0 8px 20px rgba(245,158,11,.35);transition:transform .1s,box-shadow .1s;white-space:nowrap}
.tipsbtn:hover{transform:translateY(-1px)}
.tipsbtn:active{transform:translateY(3px);box-shadow:0 3px 0 #92400e}

/* ===== Modal de Tips ===== */
.tips{position:relative;z-index:2;width:min(560px,95vw);max-height:92vh;overflow:auto;
  background:var(--panel-solid);border:1px solid var(--border);border-radius:24px;padding:24px;
  box-shadow:var(--shadow);animation:pop .35s cubic-bezier(.2,1.2,.3,1)}
.tips__head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:6px;padding-right:36px}
.tips__title{font-family:'Fredoka';font-size:24px;font-weight:800}
.tips__gems{background:rgba(56,189,248,.14);border:1px solid rgba(56,189,248,.4);border-radius:999px;
  padding:6px 14px;font-weight:900;font-size:16px}
.tips__gems b{color:#7dd3fc}
.tips__sub{color:var(--muted);font-weight:600;font-size:14px;margin:0 0 16px}
.tips__list{display:flex;flex-direction:column;gap:12px}
.tip{display:flex;gap:14px;align-items:flex-start;padding:16px;border-radius:16px;
  background:rgba(255,255,255,.04);border:1px solid var(--border)}
.tip--open{background:linear-gradient(180deg,rgba(251,191,36,.12),rgba(251,191,36,.04));border-color:rgba(251,191,36,.35)}
.tip__n{width:34px;height:34px;flex-shrink:0;border-radius:10px;display:grid;place-items:center;
  font-weight:900;font-size:16px;background:linear-gradient(180deg,var(--gold),#f59e0b);color:#3b2600}
.tip__n--lock{background:rgba(255,255,255,.08);color:var(--muted)}
.tip__body{font-size:15px;line-height:1.55;padding-top:4px}
.tip__body b{color:var(--gold)}
.tip__locked{flex:1;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.tip__blur{color:var(--muted);font-weight:700;letter-spacing:2px;filter:blur(.4px);opacity:.7}
.tip__buy{padding:10px 16px;font-size:14px;white-space:nowrap}
.tip__buy:disabled{opacity:.45;cursor:not-allowed}

/* ===== Selector de mundos ===== */
.worlds{position:fixed;inset:0;z-index:5;overflow:auto;display:flex;flex-direction:column;align-items:center;
  padding:48px 20px 60px;gap:8px}
.worlds.hidden{display:none}
.worlds__head{text-align:center;max-width:620px;margin-bottom:18px}
.worlds__logo{width:76px;height:76px;border-radius:20px;object-fit:cover;margin-bottom:10px;
  box-shadow:0 10px 40px rgba(132,141,215,.4)}
.worlds__title{font-family:'Fredoka';font-size:34px;font-weight:800;margin:0 0 6px}
.worlds__sub{color:var(--muted);font-weight:600;font-size:16px;margin:0}
.worlds__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:20px;
  width:min(920px,100%)}
.worldcard{position:relative;text-align:left;cursor:pointer;color:inherit;
  background:linear-gradient(180deg,color-mix(in srgb,var(--wa) 22%,transparent),rgba(255,255,255,.03));
  border:1px solid color-mix(in srgb,var(--wa) 45%,transparent);border-radius:24px;padding:26px 22px;
  display:flex;flex-direction:column;gap:8px;min-height:210px;transition:transform .18s,box-shadow .18s;overflow:hidden}
.worldcard::after{content:"";position:absolute;top:-40%;right:-30%;width:180px;height:180px;border-radius:50%;
  background:var(--wa);filter:blur(70px);opacity:.35}
.worldcard:hover{transform:translateY(-6px);box-shadow:0 18px 46px color-mix(in srgb,var(--wa) 35%,transparent)}
.worldcard__emoji{font-size:52px;line-height:1;position:relative;z-index:1}
.worldcard__name{font-family:'Fredoka';font-size:22px;font-weight:800;position:relative;z-index:1}
.worldcard__desc{color:var(--muted);font-weight:600;font-size:14px;line-height:1.5;flex:1;position:relative;z-index:1}
.worldcard__prog{display:flex;align-items:center;gap:10px;position:relative;z-index:1;font-weight:800;font-size:13px}
.worldcard__bar{flex:1;height:8px;border-radius:999px;background:rgba(255,255,255,.12);overflow:hidden}
.worldcard__bar i{display:block;height:100%;background:var(--wa);border-radius:999px;transition:width .4s}
.worldcard__badge{align-self:flex-start;position:relative;z-index:1;background:rgba(255,255,255,.12);
  border:1px solid var(--border);border-radius:999px;padding:5px 12px;font-weight:800;font-size:12px}
.worldcard--soon{opacity:.72;cursor:default}
.worldcard--soon:hover{transform:none;box-shadow:none}
.hud__back{background:rgba(255,255,255,.08);border:1px solid var(--border);border-radius:12px;
  width:36px;height:36px;font-size:17px;cursor:pointer;color:inherit;margin-right:4px;transition:background .15s}
.hud__back:hover{background:rgba(255,255,255,.16)}

/* ===== Casilla de comandos del robot ===== */
.robotcmd{display:flex;gap:8px;margin-top:10px}
.robotcmd[hidden]{display:none}
.gamepad[hidden]{display:none}
.robotcmd input{flex:1;background:rgba(255,255,255,.06);border:1px solid var(--border);border-radius:12px;
  padding:10px 14px;color:inherit;font-size:15px;font-family:inherit}
.robotcmd input:focus{outline:none;border-color:var(--accent)}
.robotcmd .btn{padding:10px 16px}

/* ===== Responsive ===== */
@media(max-width:760px){
  .worlds__title{font-size:26px}
  .worlds{padding:32px 16px 48px}
  .tips__locked{flex-direction:column;align-items:stretch}
  .tipsbtn{padding:8px 12px;font-size:13px}
  .studio{grid-template-columns:1fr}
  .studio__blocks{height:320px}
  .plans__grid{grid-template-columns:1fr}
  .hud__name{display:none}
  .xpbar{width:84px}
  .welcome__title{font-size:32px}
  .teacher__add{grid-template-columns:1fr}
  .stu{grid-template-columns:1fr;gap:8px}
  .stu__ctrl{justify-self:start}
}

/* ---- Kits para armar ---- */
.kitview{width:100%;height:100%;display:flex;flex-direction:column;gap:8px;padding:10px;box-sizing:border-box;color:#e2e8f0;font-family:Nunito,sans-serif}
.kitview__head{display:flex;gap:10px;align-items:center}
.kitview__emoji{font-size:28px}
.kitview__title{font-size:15px;display:block}
.kitview__sub{margin:2px 0 0;font-size:11px;color:#94a3b8}
.kitview__stage{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#0a1020;border-radius:12px;border:1px solid rgba(255,255,255,.08);overflow:hidden}
.kitview__img{max-width:100%;max-height:220px;object-fit:contain;border-radius:8px}
.kitview__cap{font-size:12px;font-weight:700;color:#7dd3fc;padding:6px}
.kitview__thumbs{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}
.kitview__thumb{flex:0 0 auto;width:72px;background:#16233b;border:1px solid #334155;border-radius:8px;padding:4px;cursor:pointer;color:#cbd5e1}
.kitview__thumb img{width:100%;height:48px;object-fit:cover;border-radius:4px;display:block}
.kitview__thumb span{display:block;font-size:9px;margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kitview__thumb.is-on{border-color:#38bdf8;box-shadow:0 0 0 1px #38bdf8}
.kitview__thumb.is-seen{outline:1px solid rgba(57,217,138,.5)}
.kitview__nav{display:flex;align-items:center;justify-content:center;gap:12px}
.kitview__count{font-size:12px;font-weight:800;color:#94a3b8}
.kitview__missions{background:#0f172a;border:1px solid rgba(56,189,248,.25);border-radius:10px;padding:10px 12px}
.kitview__missions h4{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#38bdf8}
.kitview__missions ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.kitview__mission{font-size:12px;font-weight:700;color:#cbd5e1}
.kitview__mission label{display:flex;align-items:flex-start;gap:8px;cursor:pointer}
.kitview__mission input{margin-top:2px;accent-color:#38bdf8}
.kitview__mission.is-done{color:#39d98a}
.kitview__hint{margin:0;font-size:11px;color:#94a3b8;text-align:center}

/* ---- GameDev Labs premium (Roblox / MC / Luanti / GDevelop / Godot) ---- */
.gdlab{
  --gd-accent:#f97316; --gd-accent2:#fb923c; --gd-glow:rgba(249,115,22,.35);
  position:relative;width:100%;height:100%;min-height:520px;display:flex;flex-direction:column;gap:10px;
  padding:12px;box-sizing:border-box;color:#f1f5f9;font-family:Nunito,sans-serif;overflow:hidden;
  background:radial-gradient(1200px 600px at 10% -10%, var(--gd-glow), transparent 55%),
             radial-gradient(900px 500px at 100% 0%, rgba(99,102,241,.18), transparent 50%),
             #070b16;border-radius:16px
}
.gdlab--mc{--gd-accent:#22c55e;--gd-accent2:#4ade80;--gd-glow:rgba(34,197,94,.28)}
.gdlab--luanti{--gd-accent:#14b8a6;--gd-accent2:#2dd4bf;--gd-glow:rgba(20,184,166,.3)}
.gdlab--gdevelop{--gd-accent:#8b5cf6;--gd-accent2:#a78bfa;--gd-glow:rgba(139,92,246,.32)}
.gdlab--godot{--gd-accent:#38bdf8;--gd-accent2:#7dd3fc;--gd-glow:rgba(56,189,248,.3)}
.gdlab--defold{--gd-accent:#e11d48;--gd-accent2:#fb7185;--gd-glow:rgba(225,29,72,.28)}
.gdlab__aurora{pointer:none}
.gdlab__hero{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap;position:relative;z-index:1}
.gdlab__brand{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--gd-accent2)}
.gdlab__dot{width:8px;height:8px;border-radius:50%;background:var(--gd-accent);box-shadow:0 0 12px var(--gd-accent);animation:gdPulse 1.6s ease-in-out infinite}
@keyframes gdPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(.85)}}
.gdlab__title{margin:4px 0 0;font-family:Fredoka,Nunito,sans-serif;font-size:22px;font-weight:700;letter-spacing:-.02em;color:#fff}
.gdlab__sub{margin:4px 0 0;font-size:12px;font-weight:700;color:#94a3b8;max-width:520px;line-height:1.4}
.gdlab__progress{display:flex;align-items:center;gap:10px;background:rgba(15,23,42,.65);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:8px 12px 8px 8px;backdrop-filter:blur(8px)}
.gdlab__ring{width:44px;height:44px;transform:rotate(-90deg)}
.gdlab__ring-bg{fill:none;stroke:rgba(255,255,255,.08);stroke-width:3}
.gdlab__ring-fg{fill:none;stroke:var(--gd-accent);stroke-width:3;stroke-linecap:round;transition:stroke-dasharray .45s ease}
.gdlab__prog-num{display:block;font-family:Fredoka,Nunito,sans-serif;font-size:16px;font-weight:700;color:#fff;line-height:1}
.gdlab__prog-lbl{font-size:10px;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}
.gdlab.is-complete .gdlab__progress{border-color:rgba(134,239,172,.45);box-shadow:0 0 24px rgba(134,239,172,.15)}
.gdlab__grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(280px,0.9fr);gap:12px;position:relative;z-index:1}
.gdlab__stage-card{
  position:relative;min-height:0;display:flex;flex-direction:column;border-radius:16px;overflow:hidden;
  background:linear-gradient(180deg, rgba(15,23,42,.9), rgba(2,6,23,.95));
  border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 50px rgba(0,0,0,.35)
}
.gdlab__stage-top{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;background:rgba(0,0,0,.25);border-bottom:1px solid rgba(255,255,255,.06)}
.gdlab__live{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:900;letter-spacing:.08em;color:#86efac}
.gdlab__live i{width:7px;height:7px;border-radius:50%;background:#22c55e;box-shadow:0 0 8px #22c55e;animation:gdPulse 1.2s infinite}
.gdlab__stage-hint{font-size:11px;font-weight:700;color:#64748b}
.gdlab__viewport{flex:1;min-height:300px;position:relative;display:flex;align-items:stretch;justify-content:stretch;background:#020617}
.gdlab__canvas{width:100%;height:100%;min-height:300px;display:block;cursor:crosshair}
.gdlab__canvas--webgl{min-height:340px;touch-action:none}
.gdlab__coachhost{
  position:absolute;left:10px;bottom:10px;z-index:6;pointer-events:none;
  width:min(290px,58%);max-width:290px
}
.gdlab__coachhost .plcoach{pointer-events:auto;width:100%}

/* ---- Mission Coach: globo NPC (no tapa el stage) ---- */
.plcoach{position:relative;filter:drop-shadow(0 10px 24px rgba(0,0,0,.35))}
.plcoach.is-minimized .plcoach__bubble{padding:6px 10px}
.plcoach.is-minimized .plcoach__title,
.plcoach.is-minimized .plcoach__line,
.plcoach.is-minimized .plcoach__hint,
.plcoach.is-minimized .plcoach__code,
.plcoach.is-minimized .plcoach__bar{display:none}
.plcoach.is-minimized{cursor:pointer;opacity:.85}
.plcoach__bubble{
  position:relative;background:rgba(12,18,32,.68);border:1px solid rgba(255,255,255,.18);
  border-radius:18px 18px 18px 6px;padding:10px 12px 8px;backdrop-filter:blur(10px);
  color:#f1f5f9;max-height:min(34vh,200px);overflow:hidden
}
.plcoach.is-ready .plcoach__bubble{border-color:rgba(134,239,172,.55)}
.plcoach.is-waiting .plcoach__bubble{border-color:rgba(253,224,71,.4)}
.plcoach.is-celebrate .plcoach__bubble{animation:gdPop .45s ease}
.plcoach__tail{
  position:absolute;left:18px;bottom:-7px;width:14px;height:14px;
  background:rgba(12,18,32,.68);border-right:1px solid rgba(255,255,255,.18);
  border-bottom:1px solid rgba(255,255,255,.18);transform:rotate(45deg)
}
.plcoach__row{display:flex;gap:8px;align-items:flex-start}
.plcoach__face{
  flex:0 0 36px;width:36px;height:36px;border-radius:50%;display:grid;place-items:center;
  font-size:20px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12)
}
.plcoach__content{flex:1;min-width:0}
.plcoach__meta{display:flex;justify-content:space-between;align-items:center;gap:6px;margin-bottom:2px}
.plcoach__name{font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:var(--gd-accent2,#fb923c)}
.plcoach__stepnum{font-size:10px;font-weight:800;color:#64748b}
.plcoach__title{
  font-family:Fredoka,Nunito,sans-serif;font-size:13px;font-weight:700;color:#fff;
  margin:0 0 4px;line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis
}
.plcoach__line{
  margin:0;font-size:12px;font-weight:700;line-height:1.4;color:#e2e8f0;
  min-height:2.8em;max-height:4.2em;overflow:hidden
}
.plcoach__line.is-concept{color:#bae6fd}
.plcoach__hint{font-size:10px;font-weight:900;color:#7dd3fc;text-transform:uppercase;letter-spacing:.04em;margin:0 0 2px}
.plcoach__code{
  margin:4px 0 0;padding:6px 8px;border-radius:8px;background:rgba(2,6,23,.75);color:#86efac;
  font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;line-height:1.3;
  max-height:3.6em;overflow:auto;white-space:pre-wrap
}
.plcoach__bar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:6px}
.plcoach__link{
  border:0;background:transparent;color:#64748b;font-size:11px;font-weight:800;
  cursor:pointer;padding:0;font-family:Nunito,sans-serif
}
.plcoach__link:hover{color:#94a3b8}
.plcoach__next{
  border:0;background:rgba(255,255,255,.08);color:#fff;border-radius:999px;
  padding:5px 10px;font-size:11px;font-weight:900;cursor:pointer;display:inline-flex;
  align-items:center;gap:4px;font-family:Nunito,sans-serif
}
.plcoach__next:disabled{opacity:.4;cursor:default}
.plcoach__next:not(:disabled):hover{background:rgba(255,255,255,.14)}
.plcoach.is-ready .plcoach__next{background:rgba(34,197,94,.35);color:#fff}
.plcoach__caret{font-size:9px;animation:plCaret 1s ease-in-out infinite}
@keyframes plCaret{0%,100%{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(2px)}}
.plcoach__arrow{
  position:absolute;z-index:30;width:28px;height:28px;pointer-events:none;
  display:grid;place-items:center;animation:plArrowBob .9s ease-in-out infinite;
  filter:drop-shadow(0 4px 8px rgba(0,0,0,.45))
}
.plcoach__arrow[hidden]{display:none !important}
.plcoach__arrow-icon{font-size:22px;line-height:1}
.plcoach__arrow.is-up{animation-name:plArrowBobUp}
@keyframes plArrowBob{0%,100%{transform:translateY(0)}50%{transform:translateY(6px)}}
@keyframes plArrowBobUp{
  0%,100%{transform:rotate(180deg) translateY(0)}
  50%{transform:rotate(180deg) translateY(-6px)}
}
.gdlab__chip.is-guide{
  border-color:var(--gd-accent)!important;
  box-shadow:0 0 0 3px rgba(249,115,22,.35), 0 0 18px rgba(249,115,22,.25);
  animation:gdPulse 1.1s ease-in-out infinite;z-index:2;position:relative
}

.gdlab__toast{
  position:absolute;left:50%;bottom:96px;transform:translateX(-50%);
  background:rgba(15,23,42,.92);border:1px solid rgba(255,255,255,.12);color:#f8fafc;
  font-size:12px;font-weight:800;padding:8px 14px;border-radius:999px;backdrop-filter:blur(10px);
  box-shadow:0 10px 30px rgba(0,0,0,.35);animation:gdToast .35s ease;z-index:4;pointer-events:none
}
.gdlab__toast--ok{border-color:rgba(134,239,172,.45);color:#bbf7d0}
.gdlab__toast--warn{border-color:rgba(253,224,71,.45);color:#fef08a}
@keyframes gdToast{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
.gdlab__panel{
  min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:12px;
  background:rgba(15,23,42,.72);border:1px solid rgba(255,255,255,.08);border-radius:16px;backdrop-filter:blur(10px)
}
.gdlab__panel-block h3{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--gd-accent2)}
.gdlab__missions{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.gdlab__mission{
  display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:12px;
  background:rgba(2,6,23,.45);border:1px solid rgba(255,255,255,.06);font-size:12px;font-weight:700;color:#cbd5e1;transition:.2s ease
}
.gdlab__check{
  flex:0 0 18px;width:18px;height:18px;border-radius:50%;border:2px solid rgba(148,163,184,.45);
  display:grid;place-items:center;font-size:10px;font-weight:900;color:transparent;margin-top:1px
}
.gdlab__mission.is-done{border-color:rgba(134,239,172,.35);background:rgba(22,163,74,.12);color:#bbf7d0}
.gdlab__mission.is-done .gdlab__check{border-color:#4ade80;background:#16a34a;color:#fff}
.gdlab__mission.is-pop{animation:gdPop .45s ease}
@keyframes gdPop{0%{transform:scale(1)}40%{transform:scale(1.03)}100%{transform:scale(1)}}
.gdlab__actions{display:flex;flex-wrap:wrap;gap:6px}
.gdlab__chip{
  border:1px solid rgba(255,255,255,.1);background:rgba(15,23,42,.9);color:#e2e8f0;
  font-weight:800;font-size:11px;padding:8px 11px;border-radius:12px;cursor:pointer;transition:.15s ease
}
.gdlab__chip:hover{border-color:var(--gd-accent);background:rgba(255,255,255,.04);transform:translateY(-1px)}
.gdlab__chip--accent{border-color:color-mix(in srgb, var(--gd-accent) 55%, transparent);background:color-mix(in srgb, var(--gd-accent) 18%, #0f172a);color:#fff}
.gdlab__chip--warn{border-color:rgba(250,204,21,.4);color:#fde047}
.gdlab__code{
  width:100%;box-sizing:border-box;resize:vertical;min-height:120px;max-height:200px;
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;line-height:1.4;
  background:#020617;color:#bbf7d0;border:1px solid rgba(255,255,255,.1);border-radius:12px;padding:10px
}
.gdlab__codebar{margin-top:8px}
.gdlab__btn{
  width:100%;border:0;border-radius:12px;padding:10px 12px;font-weight:900;font-size:13px;cursor:pointer;
  font-family:Nunito,sans-serif;transition:.15s ease
}
.gdlab__btn--primary{background:linear-gradient(135deg,var(--gd-accent),var(--gd-accent2));color:#0f172a;box-shadow:0 8px 24px var(--gd-glow)}
.gdlab__btn--primary:hover{filter:brightness(1.06);transform:translateY(-1px)}
.gdlab__btn.is-flash{animation:gdFlash .55s ease}
@keyframes gdFlash{0%,100%{filter:brightness(1)}40%{filter:brightness(1.35)}}
.gdlab__links{display:flex;flex-wrap:wrap;gap:8px}
.gdlab__link{
  font-size:11px;font-weight:800;color:var(--gd-accent2);text-decoration:none;
  border-bottom:1px dashed color-mix(in srgb, var(--gd-accent2) 50%, transparent);padding-bottom:1px
}
.gdlab__link:hover{color:#fff}
.gdlab__footnote{margin:0;font-size:11px;font-weight:700;color:#64748b;line-height:1.4}

/* ---- Academia Stage (animación) ---- */
.animlab{
  --an-accent:#ec4899;--an-accent2:#f9a8d4;--an-glow:rgba(236,72,153,.35);
  position:relative;width:100%;height:100%;min-height:560px;display:flex;flex-direction:column;gap:10px;
  padding:12px;box-sizing:border-box;color:#f1f5f9;font-family:Nunito,sans-serif;overflow:hidden;
  background:radial-gradient(1000px 500px at 8% -10%, var(--an-glow), transparent 55%),
             radial-gradient(800px 420px at 100% 0%, rgba(167,139,250,.22), transparent 50%),
             #0c0618;border-radius:16px
}
.animlab__aurora{display:none}
.animlab__hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;z-index:1}
.animlab__brand{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--an-accent2)}
.animlab__dot{width:8px;height:8px;border-radius:50%;background:var(--an-accent);box-shadow:0 0 12px var(--an-accent);animation:gdPulse 1.6s ease-in-out infinite}
.animlab__title{margin:4px 0 0;font-family:Fredoka,Nunito,sans-serif;font-size:22px;font-weight:700;color:#fff;width:100%}
.animlab__sub{margin:4px 0 0;font-size:12px;font-weight:700;color:#94a3b8;max-width:520px;line-height:1.4}
.animlab__progress{display:flex;align-items:center;gap:8px;background:rgba(15,23,42,.65);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:8px 12px}
.animlab__prog-num{font-family:Fredoka,Nunito,sans-serif;font-size:16px;font-weight:700;color:#fff}
.animlab.is-complete .animlab__progress{border-color:rgba(134,239,172,.45)}
.animlab__grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,0.85fr);gap:12px;position:relative;z-index:1}
.animlab__stage-card{
  position:relative;min-height:0;display:flex;flex-direction:column;border-radius:16px;overflow:hidden;
  background:linear-gradient(180deg, rgba(30,27,75,.9), rgba(15,23,42,.95));
  border:1px solid rgba(255,255,255,.08);box-shadow:0 20px 50px rgba(0,0,0,.35)
}
.animlab__toolbar{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:8px 10px;
  background:rgba(0,0,0,.28);border-bottom:1px solid rgba(255,255,255,.06)
}
.animlab__tool,.animlab__btn,.animlab__chip{
  border:1px solid rgba(255,255,255,.1);background:rgba(15,23,42,.9);color:#e2e8f0;
  font-weight:800;font-size:11px;padding:7px 10px;border-radius:11px;cursor:pointer;font-family:Nunito,sans-serif;transition:.15s ease
}
.animlab__tool:hover,.animlab__btn:hover,.animlab__chip:hover{border-color:var(--an-accent);transform:translateY(-1px)}
.animlab__tool.is-on,.animlab__btn.is-on{border-color:var(--an-accent);background:rgba(236,72,153,.2);box-shadow:0 0 0 2px rgba(236,72,153,.25)}
.animlab__btn--play{background:linear-gradient(135deg,#ec4899,#a78bfa);color:#0f172a;border:0;font-weight:900}
.animlab__btn--accent{background:linear-gradient(135deg,#ec4899,#f472b6);color:#0f172a;border:0;width:100%;margin-top:8px;padding:10px;font-weight:900}
.animlab__btn--ghost{background:transparent}
.animlab__fps{display:inline-flex;align-items:center;gap:6px;font-size:10px;font-weight:800;color:#94a3b8;margin-left:auto}
.animlab__fps-range{width:80px;accent-color:var(--an-accent)}
.animlab__viewport{flex:1;min-height:280px;background:#020617;display:flex;align-items:stretch}
.animlab__canvas{width:100%;height:100%;min-height:280px;display:block;cursor:crosshair;touch-action:none}
.animlab__timeline{
  display:flex;align-items:center;gap:8px;padding:8px 10px;background:rgba(0,0,0,.35);
  border-top:1px solid rgba(255,255,255,.06)
}
.animlab__tl-actions{display:flex;gap:4px;flex-shrink:0}
.animlab__strip{display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;flex:1}
.animlab__thumb{
  flex:0 0 44px;height:44px;border-radius:10px;border:1px solid rgba(255,255,255,.12);
  background:rgba(15,23,42,.85);color:#e2e8f0;font-weight:900;cursor:pointer
}
.animlab__thumb.is-active{border-color:var(--an-accent);box-shadow:0 0 0 2px rgba(236,72,153,.35);background:rgba(236,72,153,.2)}
.animlab__btn--tween{background:linear-gradient(135deg,#a78bfa,#ec4899);color:#0f172a;border:0;font-weight:900}
.animlab__toolbar--sub{
  display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:6px 10px 8px;
  background:rgba(0,0,0,.18);border-bottom:1px solid rgba(255,255,255,.05)
}
.animlab__lab{font-size:10px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#64748b;margin-left:4px}
.animlab__chip.is-on{border-color:var(--an-accent);background:rgba(236,72,153,.22)}
.animlab__coachhost{position:absolute;left:10px;bottom:64px;z-index:6;pointer-events:none;width:min(290px,58%);max-width:290px}
.animlab__coachhost .plcoach{pointer-events:auto;width:100%}
.animlab__toast{
  position:absolute;left:50%;bottom:110px;transform:translateX(-50%);z-index:4;pointer-events:none;
  background:rgba(15,23,42,.92);border:1px solid rgba(255,255,255,.12);color:#f8fafc;
  font-size:12px;font-weight:800;padding:8px 14px;border-radius:999px;backdrop-filter:blur(10px)
}
.animlab__toast--ok{border-color:rgba(134,239,172,.45);color:#bbf7d0}
.animlab__toast--warn{border-color:rgba(253,224,71,.45);color:#fef08a}
.animlab__panel{
  min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:12px;
  background:rgba(15,23,42,.72);border:1px solid rgba(255,255,255,.08);border-radius:16px;backdrop-filter:blur(10px)
}
.animlab__block h3{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--an-accent2)}
.animlab__missions{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.animlab__mission{
  display:flex;align-items:flex-start;gap:8px;padding:8px 10px;border-radius:12px;
  background:rgba(2,6,23,.45);border:1px solid rgba(255,255,255,.06);font-size:12px;font-weight:700;color:#cbd5e1
}
.animlab__check{
  flex:0 0 18px;width:18px;height:18px;border-radius:50%;border:2px solid rgba(148,163,184,.45);
  display:grid;place-items:center;font-size:10px;font-weight:900;color:transparent;margin-top:1px
}
.animlab__mission.is-done{border-color:rgba(134,239,172,.35);background:rgba(22,163,74,.12);color:#bbf7d0}
.animlab__mission.is-done .animlab__check{border-color:#4ade80;background:#16a34a;color:#fff}
.animlab__actions{display:flex;flex-wrap:wrap;gap:6px}
.animlab__chip.is-guide{
  border-color:var(--an-accent)!important;box-shadow:0 0 0 3px rgba(236,72,153,.35);animation:gdPulse 1.1s ease-in-out infinite
}
.animlab__code{
  width:100%;box-sizing:border-box;min-height:120px;border-radius:12px;border:1px solid rgba(255,255,255,.08);
  background:#020617;color:#f9a8d4;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:10px;padding:8px;resize:vertical
}
.animlab__links{display:flex;flex-wrap:wrap;gap:10px}
.animlab__links a{font-size:11px;font-weight:800;color:var(--an-accent2);text-decoration:none;border-bottom:1px dashed rgba(249,168,212,.45)}
.animlab__note{margin:0;font-size:11px;font-weight:700;color:#64748b;line-height:1.4}
@media (max-width:960px){
  .animlab__grid{grid-template-columns:1fr}
  .animlab__title{font-size:18px}
  .animlab__coachhost{bottom:72px}
}

/* ---- Mini Estudio 3D (Blender concepts) ---- */
.blendlab{
  --bl-accent:#a78bfa;--bl-accent2:#f9a8d4;--bl-sun:#fbbf24;
  position:relative;width:100%;height:100%;min-height:580px;display:flex;flex-direction:column;gap:10px;
  padding:12px;box-sizing:border-box;color:#f8fafc;font-family:Nunito,sans-serif;overflow:hidden;
  background:
    radial-gradient(900px 480px at 0% 0%, rgba(167,139,250,.35), transparent 55%),
    radial-gradient(700px 400px at 100% 10%, rgba(236,72,153,.28), transparent 50%),
    radial-gradient(600px 300px at 50% 100%, rgba(251,191,36,.12), transparent 45%),
    #070414;border-radius:18px
}
.blendlab__glow{pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.2));z-index:0}
.blendlab__hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;z-index:1}
.blendlab__brand{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--bl-accent2)}
.blendlab__dot{width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,#a78bfa,#ec4899);box-shadow:0 0 16px #a78bfa;animation:gdPulse 1.5s ease-in-out infinite}
.blendlab__titles{flex:1;min-width:200px}
.blendlab__title{margin:4px 0 0;font-family:Fredoka,Nunito,sans-serif;font-size:24px;font-weight:700;color:#fff;letter-spacing:-.02em}
.blendlab__sub{margin:4px 0 0;font-size:12px;font-weight:700;color:#94a3b8;line-height:1.45;max-width:560px}
.blendlab__progress{display:flex;align-items:center;gap:8px;background:rgba(15,23,42,.7);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:8px 12px;backdrop-filter:blur(8px)}
.blendlab__prog-num{font-family:Fredoka,Nunito,sans-serif;font-size:16px;font-weight:700}
.blendlab.is-complete .blendlab__progress{border-color:rgba(134,239,172,.5);box-shadow:0 0 24px rgba(134,239,172,.2)}
.blendlab.is-premiere{animation:blPremiere .9s ease}
@keyframes blPremiere{0%{filter:brightness(1)}30%{filter:brightness(1.35)}100%{filter:brightness(1)}}
.blendlab__grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(250px,.85fr);gap:12px;position:relative;z-index:1}
.blendlab__stage{
  position:relative;min-height:0;display:flex;flex-direction:column;border-radius:18px;overflow:hidden;
  border:1px solid rgba(255,255,255,.1);background:rgba(8,5,20,.85);
  box-shadow:0 24px 60px rgba(0,0,0,.45), inset 0 1px 0 rgba(255,255,255,.06)
}
.blendlab__viewport{flex:1;min-height:300px;position:relative;background:#05020e}
.blendlab__canvas{width:100%;height:100%;min-height:300px;display:block;touch-action:none;cursor:grab}
.blendlab__canvas:active{cursor:grabbing}
.blendlab__fx{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2}
.blendlab__flash{position:absolute;inset:0;background:#fff}
.blendlab__beat{position:absolute;inset:0;border:3px solid rgba(249,168,212,.5);border-radius:0;box-shadow:inset 0 0 40px rgba(167,139,250,.35)}
.blendlab__spark{position:absolute;width:6px;height:6px;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 0 8px currentColor}
.blendlab__bit{position:absolute;width:8px;height:8px;border-radius:2px;transform:translate(-50%,-50%)}
.blendlab__hint{
  position:absolute;left:12px;top:12px;z-index:3;font-size:10px;font-weight:800;letter-spacing:.04em;
  color:#e2e8f0;background:rgba(15,23,42,.55);border:1px solid rgba(255,255,255,.12);
  padding:6px 10px;border-radius:999px;backdrop-filter:blur(8px);pointer-events:none
}
.blendlab__hint.is-guide{box-shadow:0 0 0 3px rgba(167,139,250,.45);animation:gdPulse 1.1s ease-in-out infinite}
.blendlab__bar{
  display:flex;flex-wrap:wrap;gap:6px;padding:10px;background:rgba(0,0,0,.4);border-top:1px solid rgba(255,255,255,.06)
}
.blendlab__pill{
  border:1px solid rgba(255,255,255,.12);background:rgba(15,23,42,.9);color:#f1f5f9;
  font-weight:900;font-size:11px;padding:8px 12px;border-radius:999px;cursor:pointer;font-family:Nunito,sans-serif;transition:.15s ease
}
.blendlab__pill:hover{transform:translateY(-1px);border-color:var(--bl-accent)}
.blendlab__pill--hero{background:linear-gradient(135deg,rgba(236,72,153,.35),rgba(167,139,250,.35))}
.blendlab__pill--play{background:rgba(52,211,153,.2);border-color:rgba(52,211,153,.45)}
.blendlab__pill--render{
  background:linear-gradient(135deg,#ec4899,#a78bfa);color:#0f172a;border:0;
  box-shadow:0 8px 24px rgba(236,72,153,.35);animation:blClap 2.4s ease-in-out infinite
}
@keyframes blClap{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
.blendlab__pill.is-guide{box-shadow:0 0 0 3px rgba(236,72,153,.4);animation:gdPulse 1s ease-in-out infinite}
.blendlab__coachhost{position:absolute;left:10px;bottom:58px;z-index:6;pointer-events:none;width:min(300px,60%)}
.blendlab__coachhost .plcoach{pointer-events:auto;width:100%}
.blendlab__toast{
  position:absolute;left:50%;bottom:100px;transform:translateX(-50%);z-index:5;pointer-events:none;
  background:rgba(15,23,42,.94);border:1px solid rgba(255,255,255,.14);color:#fff;
  font-size:12px;font-weight:800;padding:10px 16px;border-radius:999px;backdrop-filter:blur(12px);
  box-shadow:0 12px 40px rgba(0,0,0,.4)
}
.blendlab__toast--ok{border-color:rgba(134,239,172,.5);color:#bbf7d0}
.blendlab__toast--warn{border-color:rgba(253,224,71,.5);color:#fef08a}
.blendlab__panel{
  min-height:0;overflow:auto;display:flex;flex-direction:column;gap:10px;padding:12px;
  background:rgba(15,23,42,.75);border:1px solid rgba(255,255,255,.08);border-radius:18px;backdrop-filter:blur(12px)
}
.blendlab__block h3{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--bl-accent)}
.blendlab__missions{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.blendlab__mission{
  display:flex;gap:8px;padding:8px 10px;border-radius:12px;background:rgba(2,6,23,.45);
  border:1px solid rgba(255,255,255,.06);font-size:12px;font-weight:700;color:#cbd5e1
}
.blendlab__check{flex:0 0 18px;width:18px;height:18px;border-radius:50%;border:2px solid rgba(148,163,184,.4);display:grid;place-items:center;font-size:10px;color:transparent}
.blendlab__mission.is-done{border-color:rgba(134,239,172,.35);background:rgba(22,163,74,.12);color:#bbf7d0}
.blendlab__mission.is-done .blendlab__check{border-color:#4ade80;background:#16a34a;color:#fff}
.blendlab__swatches{display:flex;flex-wrap:wrap;gap:8px}
.blendlab__sw{
  width:32px;height:32px;border-radius:50%;border:2px solid rgba(255,255,255,.25);cursor:pointer;
  background:var(--c);box-shadow:0 4px 12px rgba(0,0,0,.3);transition:.15s ease
}
.blendlab__sw:hover{transform:scale(1.12)}
.blendlab__swatches.is-guide{outline:2px solid var(--bl-accent2);outline-offset:4px;border-radius:12px}
.blendlab__nudge{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.blendlab__chip{
  border:1px solid rgba(255,255,255,.12);background:rgba(15,23,42,.9);color:#e2e8f0;
  font-weight:800;font-size:11px;padding:7px 10px;border-radius:10px;cursor:pointer
}
.blendlab__sun{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:800;color:#fde68a}
.blendlab__sun-range{flex:1;accent-color:var(--bl-sun)}
.blendlab__sun-range.is-guide{outline:2px solid var(--bl-sun);border-radius:8px}
.blendlab__code{
  width:100%;box-sizing:border-box;border-radius:12px;border:1px solid rgba(255,255,255,.08);
  background:#020617;color:#c4b5fd;font-family:ui-monospace,Menlo,monospace;font-size:10px;padding:8px;resize:vertical
}
.blendlab__btn{
  width:100%;margin-top:8px;border:0;border-radius:12px;padding:10px;font-weight:900;cursor:pointer;
  background:linear-gradient(135deg,#a78bfa,#ec4899);color:#0f172a;font-family:Nunito,sans-serif
}
.blendlab__links{display:flex;gap:12px}
.blendlab__links a{font-size:11px;font-weight:800;color:var(--bl-accent2);text-decoration:none;border-bottom:1px dashed rgba(249,168,212,.4)}
.blendlab__note{margin:0;font-size:11px;font-weight:700;color:#64748b;line-height:1.4}
@media (max-width:960px){
  .blendlab__grid{grid-template-columns:1fr}
  .blendlab__title{font-size:20px}
}

.studio.studio--gamedev{grid-template-columns:1fr !important}
.studio.studio--gamedev .studio__blocks{display:none !important}
.studio.studio--gamedev .studio__canvas,
.studio.studio--gamedev #gameHolder.studio__canvas{
  aspect-ratio:auto !important;min-height:600px !important;height:min(78vh,920px) !important;
  overflow:hidden;padding:0;border-radius:16px;display:flex !important;flex-direction:column;border:0;background:transparent
}
@media (max-width:960px){
  .gdlab__grid{grid-template-columns:1fr}
  .gdlab__title{font-size:18px}
  .studio.studio--gamedev .studio__canvas,
  .studio.studio--gamedev #gameHolder.studio__canvas{min-height:auto !important;height:auto !important}
}

/* legacy alias */
.gamedev{display:contents}

/* ---- Lab de circuitos (Wokwi / Tinkercad) ---- */
.studio.studio--tinker{grid-template-columns:1fr !important}
.studio.studio--tinker .studio__blocks{display:none !important}
.studio.studio--tinker .studio__canvas,
.studio.studio--tinker #gameHolder.studio__canvas{
  aspect-ratio:auto !important;min-height:620px !important;height:min(78vh,900px) !important;
  overflow:hidden;padding:0;border-radius:14px;place-items:stretch;align-content:stretch;
  display:flex !important;flex-direction:column
}
.studio.studio--tinker .studio__stage{gap:8px}
.studio.studio--tinker .studio__objective{font-size:12px;padding:8px 10px}
.studio.studio--tinker .codepeek,
.studio.studio--tinker #codePeekToggle,
.studio.studio--tinker #bgUploadBtn,
.studio.studio--tinker #runBtn,
.studio.studio--tinker #resetBtn,
.studio.studio--tinker .studio__actions{display:none !important}
#gameHolder.tinkerview,
.studio__canvas.tinkerview,
.tinkerview{
  width:100%;height:100%;min-height:560px;display:flex !important;flex-direction:column;gap:6px;
  padding:6px;background:#070b16;box-sizing:border-box;place-self:stretch
}
.tinkerview__head{display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex:0 0 auto}
.tinkerview__brand{font-size:11px;font-weight:900;color:#22d3ee;letter-spacing:.04em;text-transform:uppercase}
.tinkerview__title{flex:1;font-size:13px;font-weight:800;color:#e2e8f0;min-width:140px}
.tinkerview__actions{display:flex;gap:6px;flex-wrap:wrap}
.tinkerview__btn{padding:6px 10px !important;font-size:12px !important}
.tinkerview__body{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:8px}
.tinkerview__framewrap{
  min-height:0;border-radius:12px;overflow:hidden;border:1px solid rgba(34,211,238,.35);
  background:#000;position:relative;display:flex;flex-direction:column
}
.tinkerview__frame{width:100%;flex:1;min-height:420px;border:0;display:block;background:#0b1220}
.tinkerview__framehint{
  flex:0 0 auto;font-size:11px;font-weight:700;color:#bae6fd;background:rgba(8,47,73,.92);
  padding:6px 10px;border-top:1px solid rgba(34,211,238,.25)
}
.tinkerview__banner{
  flex:0 0 auto;font-size:12px;font-weight:700;color:#ecfeff;background:rgba(8,145,178,.22);
  border:1px solid rgba(34,211,238,.4);border-radius:10px;padding:8px 10px;line-height:1.35
}
.tinkerview__banner b{color:#fde047}
.tinkerview__empty{display:grid;place-items:center;height:100%;color:#94a3b8;font-weight:700;padding:20px;text-align:center}
.tinkerview__side{
  display:flex;flex-direction:column;gap:8px;min-height:0;overflow:auto;
  background:rgba(15,23,42,.95);border:1px solid #334155;border-radius:12px;padding:10px
}
.tinkerview__howto{background:rgba(34,211,238,.08);border:1px solid rgba(34,211,238,.25);border-radius:10px;padding:8px 10px}
.tinkerview__howto h4{margin:0 0 6px;font-size:12px;color:#67e8f9}
.tinkerview__howto ol{margin:0;padding-left:18px;display:grid;gap:4px}
.tinkerview__howto li{font-size:11px;font-weight:700;color:#e2e8f0;line-height:1.35}
.tinkerview__prog{
  font-size:11px;font-weight:900;color:#94a3b8;text-align:center;
  padding:4px 6px;border-radius:8px;background:rgba(255,255,255,.04)
}
.tinkerview__prog.is-done{color:#86efac;background:rgba(57,217,138,.12)}
.tinkerview__tip{margin:0;font-size:11px;font-weight:700;color:#fde047;line-height:1.35}
.tinkerview__missions h4{margin:0 0 4px;font-size:12px;color:#67e8f9}
.tinkerview__missionsub{margin:0 0 6px;font-size:10px;font-weight:700;color:#94a3b8;line-height:1.3}
.tinkerview__mission{display:flex;gap:8px;align-items:flex-start;padding:6px 2px;font-size:11px;font-weight:700;color:#cbd5e1;cursor:pointer;border-radius:8px}
.tinkerview__mission:hover{background:rgba(255,255,255,.04)}
.tinkerview__mission input{margin-top:2px;accent-color:#22d3ee;flex:0 0 auto}
.tinkerview__mission span{line-height:1.35}
.tinkerview__mission em{color:#67e8f9;font-style:normal;margin-right:2px}
.tinkerview__mission.is-on span{color:#86efac}
.tinkerview__finish{width:100%;margin-top:auto;font-size:13px !important}
.tinkerview__finish:disabled{opacity:.45;cursor:not-allowed}
.tinkerview__finish.is-ready{box-shadow:0 0 0 1px rgba(57,217,138,.5)}
.tinkerview.is-expanded{
  position:fixed;inset:0;z-index:95;padding:10px;border-radius:0;background:#050814
}
.tinkerview.is-expanded .tinkerview__body{grid-template-columns:minmax(0,1fr) 300px}
.tinkerview.is-expanded .tinkerview__frame{min-height:0;height:100%}
body.tinker-expanded{overflow:hidden}
@media (max-width:860px){
  .tinkerview__body{grid-template-columns:1fr}
  .studio.studio--tinker .studio__canvas,
  .studio.studio--tinker #gameHolder.studio__canvas{min-height:520px !important;height:auto !important}
  .tinkerview__frame{min-height:360px;height:50vh}
  .tinkerview.is-expanded .tinkerview__body{grid-template-columns:1fr}
}

/* ---- Filtros cámara ---- */
.filtview{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:#0a1020;padding:8px 6px}
.filtview__canvas{width:100%;max-width:480px;aspect-ratio:4/3;border-radius:12px;background:#000;display:block}
.filtview__chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;max-width:520px;padding:0 4px}
.filtview__navbtn,.filtview__chip{border:1px solid #334155;background:#0f1a30;color:#e2e8f0;font-weight:800;font-size:11px;padding:6px 10px;border-radius:999px;cursor:pointer;line-height:1.1}
.filtview__navbtn:hover,.filtview__chip:hover{border-color:#38bdf8;background:#16233b}
.filtview__chip.is-on{border-color:#f472b6;background:rgba(244,114,182,.18);color:#fbcfe8}
.filtview__chip.is-seen:not(.is-on){border-color:#39d98a;color:#bbf7d0}
.filtview__status{font-size:12px;font-weight:700;color:#7dd3fc;text-align:center;padding:0 10px}

/* ---- Labs FX (KalidoKit / Three.js / Leaflet gestures) ---- */
.fxlab{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:8px;background:#0a1020;padding:10px 8px;overflow:auto;position:relative}
.fxlab__title{font-family:Fredoka,Nunito,sans-serif;font-size:18px;font-weight:700;color:#f8fafc;text-align:center}
.fxlab__score{font-size:12px;font-weight:800;color:#7dd3fc;text-align:center;max-width:640px}
.fxlab__score.is-done{color:#86efac}
.fxlab__stage{position:relative;width:100%;max-width:640px}
.fxlab__canvas{width:100%;aspect-ratio:16/10.5;border-radius:12px;background:#000;display:block}
.fxlab__three{width:100%;height:400px;border-radius:12px;overflow:hidden;background:#050814}
.fxlab__three canvas{width:100%!important;height:100%!important;display:block}
.fxlab__map{width:100%;height:min(420px,52vh);border-radius:12px;overflow:hidden;border:1px solid rgba(56,189,248,.35);z-index:1}
.fxlab__pip{position:absolute;right:10px;bottom:10px;width:112px;height:84px;border-radius:10px;border:2px solid rgba(244,114,182,.75);box-shadow:0 8px 24px rgba(0,0,0,.45);background:#000;z-index:5;pointer-events:none}
.fxlab__chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;align-items:center;max-width:640px;padding:2px 4px;flex-direction:row}
.fxlab--map .fxlab__chips{flex-direction:column}
.fxlab__mappad{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;align-items:center;width:100%}
.fxlab__chip{border:1px solid #334155;background:#0f1a30;color:#e2e8f0;font-weight:800;font-size:11px;padding:6px 10px;border-radius:999px;cursor:pointer;line-height:1.1}
.fxlab__chip--pad{min-width:48px;min-height:42px;font-size:18px;border-radius:12px;background:#12203a;border-color:#38bdf8}
.fxlab__chip--pad:hover{background:#1a3358}
.fxlab__chip--zoom{min-width:88px;min-height:42px;font-size:14px;border-radius:12px;background:#1a1630;border-color:#c084fc;color:#e9d5ff}
.fxlab__chip--zoom:hover{background:#2a2148}
.fxlab__maphint{font-size:11px;color:#94a3b8;text-align:center;max-width:520px;line-height:1.35}
.fxlab__quizbtn{width:min(100%,360px);margin-top:6px;font-weight:800}
.fxlab__chip:hover{border-color:#38bdf8;background:#16233b}
.fxlab__chip.is-on{border-color:#f472b6;background:rgba(244,114,182,.18);color:#fbcfe8}
.fxlab__chip.is-seen:not(.is-on){border-color:#39d98a;color:#bbf7d0}
.fxlab__chip--nav{min-width:36px}
.fxlab__chip--hint{cursor:default;opacity:.9;border-style:dashed}
.fxlab__status{font-size:12px;font-weight:700;color:#fde047;text-align:center;min-height:1.2em;max-width:640px}
.fxlab__how{max-width:640px;font-size:13px;line-height:1.5;color:#cbd5e1;background:rgba(15,23,42,.65);border:1px solid rgba(56,189,248,.25);border-radius:12px;padding:10px 12px;word-break:normal;overflow-wrap:anywhere}
.fxlab__how a{color:#7dd3fc;text-decoration:underline}
.fxlab__how ol{margin:0;padding-left:18px}
.fxlab__how li{margin:0 0 6px}
.fxlab__how b{color:#fde047}
.fxlab .btn{margin-top:4px}
.fxlab__start{
  position:relative;z-index:8;width:min(100%,420px);min-height:48px;
  font-size:15px;font-weight:800;pointer-events:auto !important;
  opacity:1 !important;cursor:pointer !important;
}
.fxlab__start:disabled,.fxlab__start.is-busy{opacity:.95 !important;cursor:pointer !important;pointer-events:auto !important}
.fxlab__stark{width:100%;height:min(520px,62vh);border:0;border-radius:12px;background:#000;display:block}
.studio.studio--tinker .fxlab__stark{height:min(580px,68vh)}
.fxlab--starkorig .fxlab__canvas{display:none}
.studio.studio--tinker .fxlab__map{height:min(480px,58vh)}

/* ---- Quiz opción múltiple ---- */
.quizmodal{position:fixed;inset:0;z-index:80;display:grid;place-items:center;padding:16px}
.quizmodal.hidden{display:none!important}
.quizmodal__backdrop{position:absolute;inset:0;background:rgba(5,8,20,.72);backdrop-filter:blur(4px)}
.quizmodal__card{position:relative;z-index:1;width:min(440px,100%);background:linear-gradient(160deg,#1a2450,#121a36);border:1px solid rgba(125,211,252,.35);border-radius:18px;padding:22px 20px 18px;box-shadow:0 20px 60px rgba(0,0,0,.45)}
.quizmodal__prog{font-size:12px;font-weight:800;color:#7dd3fc;margin-bottom:10px;letter-spacing:.02em}
.quizmodal__q{margin:0 0 16px;font-family:Fredoka,Nunito,sans-serif;font-size:18px;line-height:1.35;color:#f8fafc}
.quizmodal__opts{display:grid;gap:8px}
.quizmodal__opt{text-align:left;padding:12px 14px;border-radius:12px;border:1px solid #334155;background:#0f1a30;color:#e2e8f0;font-weight:700;font-size:14px;cursor:pointer;transition:border-color .15s,background .15s}
.quizmodal__opt:hover:not(:disabled){border-color:#38bdf8;background:#16233b}
.quizmodal__opt.is-ok{border-color:#39d98a;background:rgba(57,217,138,.15);color:#bbf7d0}
.quizmodal__opt.is-bad{border-color:#f87171;background:rgba(248,113,113,.12);color:#fecaca}
.quizmodal__opt:disabled{cursor:default;opacity:.95}
.quizmodal__fb{margin:12px 0 0;font-size:13px;font-weight:800}
.quizmodal__fb.ok{color:#86efac}.quizmodal__fb.bad{color:#fca5a5}
.quizmodal__next{margin-top:14px;width:100%}

/* ---- Laberinto de misión (quest) ---- */
.studio__canvas.questview{
  aspect-ratio:auto;min-height:380px;overflow:visible;display:flex;flex-direction:column;
  align-items:center;justify-content:flex-start;gap:8px;padding:8px 6px 10px;background:#0a1020
}
.questview__stage{width:100%;display:flex;justify-content:center;flex:0 0 auto}
.questview__stage canvas{display:block;border-radius:10px;max-width:100%}
.questpad{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;flex:0 0 auto;z-index:2}
.questpad__hint{margin:0;font-size:11px;font-weight:800;color:#fde047;text-align:center;line-height:1.3;padding:0 8px}
.questpad__grid{display:grid;grid-template-columns:repeat(3,52px);grid-template-rows:repeat(2,44px);gap:6px;justify-content:center}
.questpad__grid button{
  width:52px;height:44px;border-radius:12px;border:2px solid #38bdf8;background:#1e3a5f;color:#e0f2fe;
  font-size:18px;font-weight:900;cursor:pointer;box-shadow:0 4px 0 #0ea5e9
}
.questpad__grid button:active{transform:translateY(2px);box-shadow:0 2px 0 #0ea5e9}
.questpad__grid span{display:block}

/* ---- Scratch / mBlock lab (animación con bloques) ---- */
.scratchlab{
  --sc-accent:#9966ff;--sc-motion:#4c97ff;--sc-ctrl:#ffab19;
  display:flex;flex-direction:column;gap:12px;height:100%;min-height:520px;
  padding:14px;border-radius:16px;position:relative;overflow:hidden;
  background:radial-gradient(ellipse at 20% 0%,rgba(153,102,255,.25),transparent 50%),
    radial-gradient(ellipse at 90% 20%,rgba(76,151,255,.18),transparent 45%),
    linear-gradient(165deg,#0f172a 0%,#1e1b4b 50%,#0c1222 100%);
  color:#e2e8f0;font-family:Nunito,system-ui,sans-serif
}
.scratchlab__hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px}
.scratchlab__brand{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#c4b5fd}
.scratchlab__dot{width:8px;height:8px;border-radius:50%;background:linear-gradient(135deg,#9966ff,#4c97ff);box-shadow:0 0 12px #9966ff;animation:gdPulse 1.6s ease-in-out infinite}
.scratchlab__title{margin:4px 0 0;font-family:Fredoka,Nunito,sans-serif;font-size:22px;font-weight:700;color:#fff;width:100%}
.scratchlab__sub{margin:4px 0 0;font-size:12px;font-weight:700;color:#94a3b8;max-width:520px;line-height:1.4}
.scratchlab__progress{display:flex;align-items:center;gap:8px;background:rgba(15,23,42,.65);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:8px 12px}
.scratchlab__prog-num{font-family:Fredoka,Nunito,sans-serif;font-size:16px;font-weight:700;color:#fff}
.scratchlab.is-complete .scratchlab__progress{border-color:rgba(134,239,172,.45)}
.scratchlab__grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(220px,.75fr);gap:12px}
.scratchlab__stage-card{
  position:relative;border-radius:16px;overflow:hidden;border:1px solid rgba(196,181,253,.25);
  background:#020617;box-shadow:0 12px 40px rgba(0,0,0,.35);min-height:280px;display:flex
}
.scratchlab__canvas{width:100%;height:100%;min-height:280px;display:block;background:#0f172a}
.scratchlab__toast{
  position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
  padding:8px 14px;border-radius:999px;font-size:12px;font-weight:800;
  background:rgba(15,23,42,.9);border:1px solid rgba(255,255,255,.12);pointer-events:none;z-index:4
}
.scratchlab__toast--ok{border-color:rgba(134,239,172,.45);color:#bbf7d0}
.scratchlab__toast--warn{border-color:rgba(253,224,71,.45);color:#fef08a}
.scratchlab__panel{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto}
.scratchlab__block{
  background:rgba(15,23,42,.55);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px
}
.scratchlab__block h3{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#c4b5fd}
.scratchlab__missions{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.scratchlab__mission{
  display:flex;align-items:flex-start;gap:8px;font-size:12px;font-weight:700;color:#cbd5e1;
  padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.03);border:1px solid transparent
}
.scratchlab__mission.is-done{border-color:rgba(134,239,172,.35);background:rgba(34,197,94,.12);color:#bbf7d0}
.scratchlab__check{
  flex-shrink:0;width:16px;height:16px;border-radius:50%;border:2px solid #64748b;margin-top:1px
}
.scratchlab__mission.is-done .scratchlab__check{
  border-color:#86efac;background:#22c55e;
  box-shadow:inset 0 0 0 2px #0f172a
}
.scratchlab__tip{margin:0;font-size:12px;font-weight:700;color:#94a3b8;line-height:1.45}
.scratchlab__credit{margin:0;font-size:10px;font-weight:700;color:#64748b;text-align:center}
@media (max-width:900px){
  .scratchlab__grid{grid-template-columns:1fr}
  .scratchlab{min-height:0}
}

/* =====================================================================
   TRACKS (Kids / Pro) + Tema Pro (Red Team) + Ética + Lab en tu PC
   ===================================================================== */

/* Iconos Lucide: tamaño según contexto */
.trackcard__ico svg{width:56px;height:56px;stroke-width:1.6}
.worldcard__emoji svg{width:46px;height:46px;stroke-width:1.7}
.node__btn svg{width:32px;height:32px;stroke-width:2}
.lesson__badge svg{width:24px;height:24px;stroke-width:2}
.lab-box__h svg,.ethics__list svg,.ethics__ico svg{width:18px;height:18px;stroke-width:2.2;vertical-align:middle}

/* Botón volver en el selector de mundos */
.worlds__head{position:relative}
.worlds__back{position:absolute;left:0;top:0;background:rgba(255,255,255,.06);border:1px solid var(--border);
  color:var(--txt);border-radius:999px;padding:8px 14px;font-weight:800;font-size:13px;transition:.15s}
.worlds__back:hover{background:rgba(255,255,255,.12);transform:translateX(-2px)}

/* Grid de tracks */
.tracks__grid{max-width:820px;margin:0 auto;grid-template-columns:repeat(2,1fr)}
@media (max-width:640px){ .tracks__grid{grid-template-columns:1fr} }

.trackcard{position:relative;display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;
  padding:30px 22px;border-radius:22px;border:1px solid var(--border);color:var(--txt);
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));
  box-shadow:var(--shadow);transition:transform .18s ease,box-shadow .18s ease,border-color .18s}
.trackcard:hover{transform:translateY(-6px);border-color:color-mix(in srgb,var(--wa) 60%,transparent);
  box-shadow:0 26px 70px rgba(0,0,0,.5)}
.trackcard__ico{width:92px;height:92px;display:grid;place-items:center;border-radius:24px;
  background:radial-gradient(circle at 50% 30%,color-mix(in srgb,var(--wa) 35%,transparent),transparent 70%);
  color:var(--wa);font-size:52px}
.trackcard__name{font-family:'Fredoka',sans-serif;font-size:26px;font-weight:700}
.trackcard__desc{font-size:14px;color:var(--muted);line-height:1.5;max-width:34ch}
.trackcard__age{font-size:12.5px;font-weight:800;color:var(--wa);letter-spacing:.02em}
.trackcard__prog{font-size:12px;color:var(--muted);font-weight:800}
.trackcard--kids{background:linear-gradient(180deg,rgba(139,92,246,.14),rgba(139,92,246,.03))}
.trackcard--pro{background:linear-gradient(180deg,#0c1622,#0a0f16);border-color:#173a2a}
.trackcard--pro .trackcard__ico{color:#22c55e}
.trackcard--pro .trackcard__name{color:#e6fff0}
.trackcard--pro:hover{box-shadow:0 26px 70px rgba(34,197,94,.18)}

/* Tarjeta de mundo Pro */
.worldcard--pro{background:linear-gradient(180deg,#0c1622,#0a0f16);border-color:#173a2a;color:#e2e8f0}
.worldcard--pro .worldcard__emoji{color:#ef4444}
.worldcard--pro .worldcard__desc{color:#9fb4c7}

/* ---- Tema Pro (body.pro) ---- */
body.pro{background:radial-gradient(1100px 700px at 80% -10%,#10261c 0%,#070b10 55%),#070b10}
body.pro #tracks .worlds__title,body.pro #worlds .worlds__title{color:#eafff2}
body.pro .hud{background:linear-gradient(180deg,#0c1622,rgba(10,15,20,.85));border-bottom:1px solid #12211a}
body.pro .hud__name{color:#cbe6d6}
body.pro .mapwrap,body.pro .app{background:transparent}
body.pro .unit-banner{background:linear-gradient(90deg,rgba(34,197,94,.16),transparent);color:#bff0d0;
  border-left:3px solid #22c55e}
body.pro .node__btn{background:linear-gradient(180deg,#111c14,#0b1210);border:2px solid #1f3d2c;color:#22c55e;
  box-shadow:0 8px 22px rgba(0,0,0,.5)}
body.pro .node--active .node__btn{border-color:#ef4444;box-shadow:0 0 0 4px rgba(239,68,68,.22),0 8px 22px rgba(0,0,0,.5)}
body.pro .node--done .node__btn{background:linear-gradient(180deg,#16a34a,#128a3e);border-color:#22c55e;color:#031b0d}
body.pro .node--premium .node__btn{border-color:#f59e0b}
body.pro .node--boss .node__btn{border-color:#ef4444;background:linear-gradient(180deg,#2a0f12,#14090b)}
body.pro .node__label{color:#c7d6cb}
body.pro .lesson{border:1px solid #143026}
body.pro .lesson__badge{background:linear-gradient(180deg,#111c14,#0b1210);color:#22c55e;border:1px solid #1f3d2c}
body.pro .ltab.is-active{color:#22c55e;border-color:#22c55e}
body.pro .video{background:linear-gradient(135deg,#0c1622,#0a0f16);border:1px solid #143026}

/* Estudio Pro: sin bloques, escenario a pantalla completa */
.studio--pro .studio__blocks{display:none !important}
.studio--pro .studio__stage{width:100% !important;flex:1 1 100% !important}
.studio--pro .studio__canvas{min-height:380px}

/* PLABS_PRO_LAB_CANVAS_V1 — Lab Pro: full-width interactive engines (not square game canvas) */
.studio--pro .studio__canvas,
.studio--pro #gameHolder.studio__canvas{
  aspect-ratio:auto !important;
  width:100% !important;
  min-height:min(70vh,640px) !important;
  height:auto !important;
  display:block !important;
  place-items:unset !important;
  overflow:auto !important;
  background:#070b12 !important;
  border:1px solid #1e293b !important;
}
.studio--pro #gameHolder > *{
  width:100%;
  min-height:380px;
  box-sizing:border-box;
}


/* Lab en tu PC (dentro de la pestaña Teoría) */
.lab-box{margin-top:14px;background:linear-gradient(180deg,#0c1622,#0a0f16);border:1px solid #143026;
  border-radius:14px;padding:14px 16px}
.lab-box__h{display:flex;align-items:center;gap:8px;font-family:'Fredoka',sans-serif;font-weight:700;
  color:#22c55e;font-size:15px;margin-bottom:8px}
.lab-box__list{margin:0;padding-left:20px;color:#c7d6cb;font-size:13.5px;line-height:1.6}
.lab-box__list li{margin:3px 0}
.lab-box__links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.lab-box__links a{background:rgba(34,197,94,.12);border:1px solid #1f3d2c;color:#7ee2a8;text-decoration:none;
  border-radius:9px;padding:6px 12px;font-size:12.5px;font-weight:800;transition:.15s}
.lab-box__links a:hover{background:rgba(34,197,94,.2);border-color:#22c55e}

/* Modal Código de Ética */
.ethics{position:relative;z-index:1;width:min(560px,94vw);max-height:92vh;overflow:auto;margin:auto;
  background:linear-gradient(180deg,#0c1622,#0a0f16);border:1px solid #173a2a;border-radius:22px;
  padding:26px 24px;box-shadow:0 30px 80px rgba(0,0,0,.6);text-align:center}
.ethics__ico{width:64px;height:64px;margin:0 auto 10px;display:grid;place-items:center;border-radius:18px;
  background:radial-gradient(circle at 50% 30%,rgba(239,68,68,.3),transparent 70%);color:#ef4444}
.ethics__ico svg{width:34px;height:34px}
.ethics__title{font-size:23px;color:#eafff2}
.ethics__sub{color:#9fb4c7;font-size:14px;margin:6px 0 16px}
.ethics__list{list-style:none;margin:0 0 16px;padding:0;text-align:left;display:flex;flex-direction:column;gap:10px}
.ethics__list li{display:flex;gap:10px;align-items:flex-start;color:#cbd5e1;font-size:13.5px;line-height:1.5}
.ethics__list li svg{color:#22c55e;flex:0 0 auto;margin-top:2px}
.ethics__agree{display:flex;gap:10px;align-items:flex-start;text-align:left;background:rgba(255,255,255,.03);
  border:1px solid #143026;border-radius:12px;padding:12px 14px;color:#e2e8f0;font-size:13.5px;cursor:pointer}
.ethics__agree input{margin-top:2px;width:18px;height:18px;accent-color:#22c55e;flex:0 0 auto}
.ethics__age{color:#64748b;font-size:11.5px;margin:12px 0 16px}
.ethics__actions{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.ethics__actions .btn--primary{background:linear-gradient(180deg,#22c55e,#16a34a);color:#052e16}
.ethics__actions .btn--primary:disabled{opacity:.45;cursor:not-allowed}

/* ===== Spectra Lab (neuro-friendly social skills) ===== */
.spectra{
  --sp-teal:#0d9488;--sp-teal2:#14b8a6;--sp-sand:#f5f0e8;--sp-slate:#1e293b;--sp-muted:#64748b;
  position:relative;display:flex;flex-direction:column;gap:12px;min-height:420px;padding:14px;border-radius:18px;
  background:linear-gradient(165deg,#f5f0e8 0%,#e8f4f2 45%,#dceeea 100%);color:var(--sp-slate);
  border:1px solid rgba(13,148,136,.18);box-shadow:0 16px 48px rgba(15,23,42,.08);overflow:hidden}
.spectra[data-calm="1"] .spectra__sand{animation:none;opacity:.35}
.spectra[data-calm="1"] .spectra__dot{animation:none}
.spectra__sand{pointer-events:none;position:absolute;inset:0;opacity:.5;
  background:radial-gradient(900px 400px at 10% -10%,rgba(13,148,136,.08),transparent 60%),
  radial-gradient(700px 350px at 90% 110%,rgba(245,240,232,.9),transparent 55%)}
.spectra__hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:12px;position:relative;z-index:1}
.spectra__guide{display:flex;align-items:flex-start;gap:12px;flex:1;min-width:240px}
.spectra__nube{flex:0 0 auto;border-radius:14px;background:rgba(255,255,255,.55);border:1px solid rgba(13,148,136,.15)}
.spectra__brand{display:block;font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--sp-teal)}
.spectra__title{margin:4px 0 0;font-family:Fredoka,Nunito,sans-serif;font-size:22px;font-weight:700;color:var(--sp-slate);letter-spacing:-.02em}
.spectra__sub{margin:4px 0 0;font-size:12.5px;font-weight:700;color:var(--sp-muted);line-height:1.45;max-width:520px}
.spectra__hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.spectra__calm{
  min-height:44px;padding:10px 16px;border-radius:12px;border:2px solid rgba(13,148,136,.35);
  background:#fff;color:var(--sp-teal);font-size:13px;font-weight:800;cursor:pointer;transition:.15s ease}
.spectra__calm:hover{border-color:var(--sp-teal);transform:translateY(-1px)}
.spectra__calm.is-on{background:var(--sp-teal);color:#fff;border-color:var(--sp-teal)}
.spectra__progress{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.72);
  border:1px solid rgba(13,148,136,.2);border-radius:14px;padding:8px 14px;backdrop-filter:blur(6px)}
.spectra__prog-num{font-family:Fredoka,Nunito,sans-serif;font-size:17px;font-weight:700;color:var(--sp-teal)}
.spectra__progress span{font-size:10px;font-weight:800;color:var(--sp-muted);text-transform:uppercase;letter-spacing:.04em}
.spectra.is-complete .spectra__progress{border-color:rgba(13,148,136,.55);box-shadow:0 0 20px rgba(13,148,136,.15)}
.spectra__grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.3fr) minmax(260px,.85fr);gap:12px;position:relative;z-index:1}
.spectra__stage{
  display:flex;flex-direction:column;gap:10px;background:rgba(255,255,255,.78);border:1px solid rgba(13,148,136,.14);
  border-radius:16px;padding:12px;min-height:320px;position:relative}
.spectra__stage-inner{flex:1;display:flex;flex-direction:column;gap:10px;min-height:240px}
.spectra__coachhost{margin-top:4px}
.spectra__coachhost .plcoach{filter:drop-shadow(0 8px 18px rgba(15,23,42,.12))}
.spectra__toast{
  position:absolute;left:12px;right:12px;bottom:12px;padding:12px 14px;border-radius:12px;font-size:13px;font-weight:800;
  background:#fff;border:1px solid rgba(13,148,136,.25);color:var(--sp-slate);box-shadow:0 10px 30px rgba(15,23,42,.1);z-index:5}
.spectra__toast--ok{border-color:rgba(13,148,136,.45);background:#ecfdf5;color:#065f46}
.spectra__toast--warn{border-color:rgba(245,158,11,.45);background:#fffbeb;color:#92400e}
.spectra__panel{display:flex;flex-direction:column;gap:10px}
.spectra__block{background:rgba(255,255,255,.82);border:1px solid rgba(13,148,136,.12);border-radius:14px;padding:12px 14px}
.spectra__block h3{margin:0 0 8px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--sp-teal)}
.spectra__missions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.spectra__mission{display:flex;align-items:flex-start;gap:8px;font-size:13px;font-weight:700;color:var(--sp-slate);line-height:1.35}
.spectra__mission.is-done{color:var(--sp-teal)}
.spectra__check{width:18px;height:18px;display:grid;place-items:center;border-radius:6px;border:2px solid rgba(13,148,136,.25);
  font-size:11px;font-weight:900;flex:0 0 auto}
.spectra__mission.is-done .spectra__check{background:var(--sp-teal);border-color:var(--sp-teal);color:#fff}
.spectra__code{width:100%;box-sizing:border-box;border:1px solid rgba(13,148,136,.2);border-radius:10px;padding:10px;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:11px;line-height:1.45;background:#faf8f4;color:var(--sp-slate);resize:vertical}
.spectra__note{margin:0;font-size:11.5px;color:var(--sp-muted);line-height:1.45;font-weight:700}
.spectra__prompt,.spectra__scenario,.spectra__label{margin:0;font-size:14px;line-height:1.5;font-weight:700;color:var(--sp-slate)}
.spectra__label{font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:var(--sp-teal)}
.spectra__btn{
  min-height:48px;padding:12px 18px;border-radius:12px;border:2px solid rgba(13,148,136,.3);background:#fff;
  color:var(--sp-teal);font-size:14px;font-weight:800;cursor:pointer;transition:.15s ease;touch-action:manipulation}
.spectra__btn:hover:not(:disabled){border-color:var(--sp-teal);transform:translateY(-1px)}
.spectra__btn:disabled{opacity:.55;cursor:not-allowed}
.spectra__btn--primary{background:linear-gradient(180deg,var(--sp-teal2),var(--sp-teal));color:#fff;border-color:var(--sp-teal);width:100%}
.spectra__btn--ghost{background:transparent}
.spectra__btn.is-guide,.spectra__choice.is-guide,.spectra__card.is-guide,.spectra__tl.is-guide{
  box-shadow:0 0 0 3px rgba(13,148,136,.35);border-color:var(--sp-teal)}
.spectra__space-canvas{width:100%;max-width:360px;height:auto;display:block;border-radius:12px;border:1px solid rgba(13,148,136,.2);
  touch-action:none;cursor:grab;background:var(--sp-sand)}
.spectra__space-check{align-self:flex-start}
.spectra__cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.spectra__card{
  min-height:88px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px;
  border-radius:14px;border:2px solid rgba(13,148,136,.2);background:#fff;font-size:13px;font-weight:800;color:var(--sp-slate);
  cursor:pointer;transition:.15s ease;touch-action:manipulation}
.spectra__card-emoji{font-size:28px;line-height:1}
.spectra__card:hover:not(:disabled){border-color:var(--sp-teal)}
.spectra__card.is-ok{border-color:#059669;background:#ecfdf5}
.spectra__card.is-bad{border-color:#dc2626;background:#fef2f2}
.spectra__turn-scene{background:var(--sp-sand);border-radius:14px;padding:14px;border:1px solid rgba(13,148,136,.15)}
.spectra__turn-face{font-size:12px;font-weight:900;text-transform:uppercase;color:var(--sp-teal);letter-spacing:.06em}
.spectra__turn-line{margin:8px 0 0;font-size:15px;font-weight:700;line-height:1.45}
.spectra__turn-light{
  min-height:52px;display:grid;place-items:center;border-radius:12px;font-size:15px;font-weight:900;text-align:center;padding:10px}
.spectra__turn-light.is-wait{background:#fee2e2;color:#991b1b;border:2px solid #fca5a5}
.spectra__turn-light.is-go{background:#d1fae5;color:#065f46;border:2px solid #6ee7b7}
.spectra__turn-light.is-done{background:#e0f2fe;color:#075985;border:2px solid #7dd3fc}
.spectra__choices{display:flex;flex-direction:column;gap:10px}
.spectra__choice{
  min-height:52px;padding:14px 16px;border-radius:12px;border:2px solid rgba(13,148,136,.22);background:#fff;
  font-size:14px;font-weight:800;color:var(--sp-slate);cursor:pointer;text-align:left;transition:.15s ease;touch-action:manipulation}
.spectra__choice--wide{width:100%}
.spectra__choice:hover:not(:disabled){border-color:var(--sp-teal)}
.spectra__choice.is-ok{border-color:#059669;background:#ecfdf5;color:#065f46}
.spectra__choice.is-bad{border-color:#dc2626;background:#fef2f2;color:#991b1b}
.spectra__traffic-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.spectra__tl{
  min-height:72px;border-radius:14px;border:3px solid transparent;font-size:14px;font-weight:900;color:#fff;cursor:pointer;
  touch-action:manipulation;transition:.15s ease}
.spectra__tl--stop{background:linear-gradient(180deg,#ef4444,#dc2626);border-color:#b91c1c}
.spectra__tl--think{background:linear-gradient(180deg,#f59e0b,#d97706);border-color:#b45309;color:#422006}
.spectra__tl--act{background:linear-gradient(180deg,#22c55e,#16a34a);border-color:#15803d}
.spectra__tl.is-ok{box-shadow:0 0 0 4px rgba(13,148,136,.35)}
.spectra__tl.is-bad{opacity:.65;filter:grayscale(.3)}
.spectra__seq-head{margin:0 0 8px;font-size:13px;font-weight:900;color:var(--sp-teal);text-transform:uppercase;letter-spacing:.04em}
.spectra__seq-next{align-self:flex-start;margin-top:8px}
.spectra__day-done,.spectra__boss-done{
  display:grid;place-items:center;min-height:180px;padding:20px;text-align:center;background:rgba(13,148,136,.08);border-radius:14px}
.spectra__zonechips{display:flex;gap:4px;align-items:center;background:rgba(255,255,255,.7);border:1px solid rgba(13,148,136,.2);border-radius:12px;padding:4px}
.spectra__zchip{width:36px;height:36px;border:none;border-radius:10px;background:transparent;cursor:pointer;font-size:18px;line-height:1;touch-action:manipulation}
.spectra__zchip.is-on,.spectra__zchip:hover{background:rgba(13,148,136,.15);transform:scale(1.06)}
.spectra__zones .spectra__cards{margin-top:8px}
.spectra__zone-tool{margin-top:12px}
.spectra__mail{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.spectra__email{
  width:100%;box-sizing:border-box;min-height:46px;border:1px solid rgba(13,148,136,.25);border-radius:10px;
  padding:10px 12px;font-size:14px;font-weight:700;color:var(--sp-slate);background:#fff}
.spectra__email:focus{outline:2px solid rgba(13,148,136,.35);border-color:var(--sp-teal)}
.spectra__phrase{
  margin-top:12px;padding:14px;border-radius:14px;border:1px solid rgba(13,148,136,.2);
  background:linear-gradient(180deg,rgba(204,251,241,.75),rgba(255,255,255,.9))}
.spectra__phrase-text{
  margin:8px 0 12px;font-family:Fredoka,Nunito,sans-serif;font-size:17px;font-weight:700;
  color:var(--sp-slate);line-height:1.4}
.spectra__phrase-actions{display:flex;flex-wrap:wrap;gap:8px}
.spectra__phrase-actions .spectra__btn{flex:1;min-width:140px}
.spectra__phrase-actions .spectra__btn--primary{width:auto}
.spectra__cards--skills{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}
.spectra__card--skill{min-height:96px}
.spectra__practice-body{margin-top:10px;display:flex;flex-direction:column;gap:10px}
@media (max-width:820px){
  .spectra__grid{grid-template-columns:1fr}
  .spectra__cards{grid-template-columns:1fr}
  .spectra__traffic-row{grid-template-columns:1fr}
}

.kritalab{
  --ki-accent:#7c3aed;--ki-ink:#0f172a;
  display:flex;flex-direction:column;gap:12px;height:100%;min-height:540px;
  padding:14px;border-radius:16px;position:relative;overflow:hidden;
  background:radial-gradient(ellipse at 10% 0%,rgba(124,58,237,.28),transparent 48%),
    radial-gradient(ellipse at 90% 10%,rgba(14,165,233,.15),transparent 42%),
    linear-gradient(165deg,#0b1020 0%,#1a1035 45%,#0c1222 100%);
  color:#e2e8f0;font-family:Nunito,system-ui,sans-serif
}
.kritalab__glow{pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.15));z-index:0}
.kritalab__hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;z-index:1}
.kritalab__brand{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#c4b5fd}
.kritalab__dot{width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,#7c3aed,#38bdf8);box-shadow:0 0 14px #7c3aed;animation:gdPulse 1.5s ease-in-out infinite}
.kritalab__titles{flex:1;min-width:200px}
.kritalab__title{margin:4px 0 0;font-family:Fredoka,Nunito,sans-serif;font-size:24px;font-weight:700;color:#fff;letter-spacing:-.02em}
.kritalab__sub{margin:4px 0 0;font-size:12px;font-weight:700;color:#94a3b8;line-height:1.45;max-width:560px}
.kritalab__progress{display:flex;align-items:center;gap:8px;background:rgba(15,23,42,.7);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:8px 12px}
.kritalab__prog-num{font-family:Fredoka,Nunito,sans-serif;font-size:16px;font-weight:700}
.kritalab.is-complete .kritalab__progress{border-color:rgba(134,239,172,.5);box-shadow:0 0 24px rgba(134,239,172,.2)}
.kritalab__grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(250px,.85fr);gap:12px;position:relative;z-index:1}
.kritalab__stage{display:flex;flex-direction:column;gap:8px;min-height:0;position:relative}
.kritalab__viewport{
  flex:1;min-height:320px;position:relative;border-radius:14px;overflow:hidden;
  border:1px solid rgba(196,181,253,.28);background:#f1f5f9;
  box-shadow:0 16px 48px rgba(0,0,0,.4),inset 0 0 0 1px rgba(255,255,255,.4)
}
.kritalab__canvas{width:100%;height:100%;min-height:320px;display:block;touch-action:none;cursor:crosshair;background:#f8fafc}
.kritalab__canvas.is-guide{box-shadow:inset 0 0 0 3px rgba(124,58,237,.55)}
.kritalab__hud{
  position:absolute;top:10px;right:10px;display:flex;gap:6px;pointer-events:none;z-index:2
}
.kritalab__hud span{
  font-size:10px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;
  padding:5px 8px;border-radius:8px;background:rgba(15,23,42,.78);color:#e2e8f0;border:1px solid rgba(255,255,255,.1)
}
.kritalab__bar{display:flex;flex-wrap:wrap;gap:6px}
.kritalab__pill{
  border:1px solid rgba(255,255,255,.12);background:rgba(15,23,42,.65);color:#e2e8f0;
  border-radius:12px;padding:8px 12px;font-size:12px;font-weight:800;cursor:pointer
}
.kritalab__pill:hover{border-color:#a78bfa;transform:translateY(-1px)}
.kritalab__pill.is-on{background:rgba(124,58,237,.35);border-color:#a78bfa}
.kritalab__pill--export{background:rgba(14,165,233,.2);border-color:rgba(56,189,248,.45)}
.kritalab__pill.is-guide{box-shadow:0 0 0 3px rgba(124,58,237,.4);animation:gdPulse 1s ease-in-out infinite}
.kritalab__coachhost{position:absolute;left:10px;bottom:58px;z-index:6;pointer-events:none;width:min(300px,60%)}
.kritalab__coachhost .plcoach{pointer-events:auto;width:100%}
.kritalab__toast{
  position:absolute;left:50%;bottom:14px;transform:translateX(-50%);z-index:5;
  padding:8px 14px;border-radius:999px;font-size:12px;font-weight:800;
  background:rgba(15,23,42,.92);border:1px solid rgba(255,255,255,.12);pointer-events:none
}
.kritalab__toast--ok{border-color:rgba(134,239,172,.5);color:#bbf7d0}
.kritalab__toast--warn{border-color:rgba(253,224,71,.5);color:#fef08a}
.kritalab__panel{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto}
.kritalab__block{background:rgba(15,23,42,.55);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px}
.kritalab__block h3{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#c4b5fd}
.kritalab__missions{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.kritalab__mission{
  display:flex;align-items:flex-start;gap:8px;font-size:12px;font-weight:700;color:#cbd5e1;
  padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.03)
}
.kritalab__mission.is-done{background:rgba(34,197,94,.12);color:#bbf7d0}
.kritalab__check{flex-shrink:0;width:16px;height:16px;border-radius:50%;border:2px solid #64748b;margin-top:1px}
.kritalab__mission.is-done .kritalab__check{border-color:#86efac;background:#22c55e;box-shadow:inset 0 0 0 2px #0f172a}
.kritalab__layers{display:grid;gap:6px}
.kritalab__layer{
  display:flex;align-items:center;gap:8px;width:100%;text-align:left;
  border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:#e2e8f0;
  border-radius:10px;padding:8px 10px;font-size:12px;font-weight:800;cursor:pointer
}
.kritalab__layer.is-on{border-color:#a78bfa;background:rgba(124,58,237,.25)}
.kritalab__layer.is-guide,.kritalab__layers.is-guide{box-shadow:0 0 0 3px rgba(124,58,237,.35)}
.kritalab__layer-dot{width:8px;height:8px;border-radius:50%;background:#64748b}
.kritalab__layer.is-on .kritalab__layer-dot{background:#c4b5fd;box-shadow:0 0 8px #a78bfa}
.kritalab__range{display:grid;gap:4px;font-size:11px;font-weight:800;color:#94a3b8;margin-bottom:8px}
.kritalab__range input{width:100%;accent-color:#7c3aed}
.kritalab__range.is-guide,.kritalab__size.is-guide,.kritalab__opacity.is-guide,.kritalab__pressure.is-guide{outline:2px solid rgba(124,58,237,.55);border-radius:8px}
.kritalab__palette{display:flex;flex-wrap:wrap;gap:6px}
.kritalab__palette.is-guide{box-shadow:0 0 0 3px rgba(124,58,237,.35);border-radius:10px;padding:4px}
.kritalab__sw{
  width:28px;height:28px;border-radius:8px;border:2px solid rgba(255,255,255,.2);
  background:var(--c);cursor:pointer;padding:0
}
.kritalab__sw.is-on{border-color:#fff;box-shadow:0 0 0 2px #7c3aed}
.kritalab__code{
  width:100%;box-sizing:border-box;resize:vertical;min-height:110px;
  background:#020617;color:#a5b4fc;border:1px solid rgba(255,255,255,.1);border-radius:10px;
  font:11px/1.4 ui-monospace,Menlo,monospace;padding:8px
}
.kritalab__btn{
  margin-top:8px;width:100%;border:0;border-radius:12px;padding:10px;
  font-weight:900;font-size:12px;cursor:pointer;color:#fff;
  background:linear-gradient(135deg,#7c3aed,#4f46e5)
}
.kritalab__btn.is-guide{box-shadow:0 0 0 3px rgba(167,139,250,.5)}
.kritalab__links{display:flex;gap:12px;justify-content:center;font-size:12px;font-weight:800}
.kritalab__links a{color:#a5b4fc}
.kritalab__note{margin:0;font-size:11px;font-weight:700;color:#64748b;line-height:1.4;text-align:center}
@media (max-width:900px){
  .kritalab__grid{grid-template-columns:1fr}
  .kritalab{min-height:0}
}

/* ---- Stop Motion Studio (producto propio) ---- */
.sms{
  --sm-accent:#ec4899;--sm-rec:#ef4444;
  display:flex;flex-direction:column;gap:12px;height:100%;min-height:560px;
  padding:14px;border-radius:16px;position:relative;overflow:hidden;
  background:radial-gradient(ellipse at 15% 0%,rgba(236,72,153,.22),transparent 50%),
    radial-gradient(ellipse at 95% 15%,rgba(251,191,36,.12),transparent 40%),
    linear-gradient(165deg,#05070f 0%,#120a18 40%,#0a0e1a 100%);
  color:#e2e8f0;font-family:Nunito,system-ui,sans-serif
}
.sms__glow{pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.25));z-index:0}
.sms__hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;z-index:1}
.sms__brand{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#f9a8d4}
.sms__rec{
  width:10px;height:10px;border-radius:50%;background:#ef4444;
  box-shadow:0 0 0 0 rgba(239,68,68,.6);animation:smsRec 1.4s ease-out infinite
}
@keyframes smsRec{
  0%{box-shadow:0 0 0 0 rgba(239,68,68,.55)}
  70%{box-shadow:0 0 0 10px rgba(239,68,68,0)}
  100%{box-shadow:0 0 0 0 rgba(239,68,68,0)}
}
.sms__titles{flex:1;min-width:200px}
.sms__title{margin:4px 0 0;font-family:Fredoka,Nunito,sans-serif;font-size:24px;font-weight:700;color:#fff;letter-spacing:-.02em}
.sms__sub{margin:4px 0 0;font-size:12px;font-weight:700;color:#94a3b8;line-height:1.45;max-width:560px}
.sms__progress{display:flex;align-items:center;gap:8px;background:rgba(15,23,42,.7);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:8px 12px}
.sms__prog-num{font-family:Fredoka,Nunito,sans-serif;font-size:16px;font-weight:700}
.sms.is-complete .sms__progress{border-color:rgba(134,239,172,.5)}
.sms.is-premiere{animation:blPremiere .9s ease}
.sms__grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.8fr);gap:12px;position:relative;z-index:1}
.sms__stagewrap{display:flex;flex-direction:column;gap:8px;min-height:0;position:relative}
.sms__viewport{
  flex:1;min-height:300px;position:relative;border-radius:12px;overflow:hidden;
  border:1px solid rgba(249,168,212,.28);
  box-shadow:0 20px 50px rgba(0,0,0,.5),0 0 0 1px rgba(255,255,255,.04);
  background:#000
}
.sms__canvas{width:100%;height:100%;min-height:300px;display:block;touch-action:none;cursor:grab;background:#0b1220}
.sms__canvas:active{cursor:grabbing}
.sms__canvas.is-guide{box-shadow:inset 0 0 0 3px rgba(236,72,153,.5)}
.sms__letter{
  pointer-events:none;position:absolute;inset:0;
  box-shadow:inset 0 0 80px rgba(0,0,0,.45);border:12px solid transparent;
  border-image:linear-gradient(180deg,rgba(0,0,0,.5),transparent 30%,transparent 70%,rgba(0,0,0,.55)) 1
}
.sms__transport{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.sms__cap{
  display:inline-flex;align-items:center;gap:8px;
  border:0;border-radius:14px;padding:12px 18px;cursor:pointer;
  background:linear-gradient(135deg,#ef4444,#db2777);color:#fff;
  font-weight:900;font-size:13px;letter-spacing:.04em;
  box-shadow:0 8px 24px rgba(239,68,68,.35)
}
.sms__cap span{font-size:16px}
.sms__cap:hover{transform:translateY(-1px);filter:brightness(1.05)}
.sms__cap.is-guide{box-shadow:0 0 0 4px rgba(251,113,133,.55),0 8px 24px rgba(239,68,68,.35);animation:gdPulse 1s ease-in-out infinite}
.sms__btn{
  border:1px solid rgba(255,255,255,.14);background:rgba(15,23,42,.7);color:#e2e8f0;
  border-radius:12px;padding:10px 12px;font-size:13px;font-weight:800;cursor:pointer;min-width:42px
}
.sms__btn:hover{border-color:#f9a8d4}
.sms__btn.is-on{background:rgba(236,72,153,.25);border-color:#f9a8d4}
.sms__btn--prem{background:rgba(251,191,36,.15);border-color:rgba(251,191,36,.45)}
.sms__btn.is-guide{box-shadow:0 0 0 3px rgba(236,72,153,.4);animation:gdPulse 1s ease-in-out infinite}
.sms__fps{display:inline-flex;border:1px solid rgba(255,255,255,.12);border-radius:12px;overflow:hidden}
.sms__fps.is-guide{box-shadow:0 0 0 3px rgba(236,72,153,.4)}
.sms__fps button{
  border:0;background:transparent;color:#94a3b8;padding:8px 10px;font-size:11px;font-weight:900;cursor:pointer
}
.sms__fps button.is-on{background:rgba(236,72,153,.3);color:#fff}
.sms__strip{
  display:flex;gap:6px;overflow-x:auto;padding:8px;min-height:64px;
  background:rgba(2,6,23,.75);border:1px solid rgba(255,255,255,.08);border-radius:12px
}
.sms__thumb{
  flex:0 0 72px;height:48px;border-radius:6px;border:2px solid transparent;
  background-size:cover;background-position:center;cursor:pointer;padding:0
}
.sms__thumb.is-on{border-color:#f9a8d4;box-shadow:0 0 0 1px #ec4899}
.sms__strip-empty{font-size:11px;font-weight:700;color:#64748b;padding:12px;width:100%;text-align:center}
.sms__coachhost{position:absolute;left:10px;bottom:120px;z-index:6;pointer-events:none;width:min(300px,58%)}
.sms__coachhost .plcoach{pointer-events:auto;width:100%}
.sms__toast{
  position:absolute;left:50%;bottom:100px;transform:translateX(-50%);z-index:5;
  padding:8px 14px;border-radius:999px;font-size:12px;font-weight:800;
  background:rgba(15,23,42,.92);border:1px solid rgba(255,255,255,.12);pointer-events:none
}
.sms__toast--ok{border-color:rgba(134,239,172,.5);color:#bbf7d0}
.sms__toast--warn{border-color:rgba(253,224,71,.5);color:#fef08a}
.sms__panel{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto}
.sms__block{background:rgba(15,23,42,.55);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px}
.sms__block h3{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#f9a8d4}
.sms__missions{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.sms__mission{
  display:flex;align-items:flex-start;gap:8px;font-size:12px;font-weight:700;color:#cbd5e1;
  padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.03)
}
.sms__mission.is-done{background:rgba(34,197,94,.12);color:#bbf7d0}
.sms__check{flex-shrink:0;width:16px;height:16px;border-radius:50%;border:2px solid #64748b;margin-top:1px}
.sms__mission.is-done .sms__check{border-color:#86efac;background:#22c55e;box-shadow:inset 0 0 0 2px #0f172a}
.sms__meta{display:grid;grid-template-columns:1fr 1fr;gap:8px;font-size:12px;font-weight:700;color:#94a3b8}
.sms__meta b{color:#fff;font-family:Fredoka,Nunito,sans-serif}
.sms__code{
  width:100%;box-sizing:border-box;resize:vertical;min-height:120px;
  background:#020617;color:#fda4af;border:1px solid rgba(255,255,255,.1);border-radius:10px;
  font:11px/1.4 ui-monospace,Menlo,monospace;padding:8px
}
.sms__copy{
  margin-top:8px;width:100%;border:0;border-radius:12px;padding:10px;
  font-weight:900;font-size:12px;cursor:pointer;color:#fff;
  background:linear-gradient(135deg,#ec4899,#db2777)
}
.sms__note{margin:0;font-size:11px;font-weight:700;color:#64748b;line-height:1.4;text-align:center}
@media (max-width:900px){
  .sms__grid{grid-template-columns:1fr}
  .sms{min-height:0}
  .sms__coachhost{bottom:140px}
}

/* ---- Academia Dub Booth (doblaje) ---- */
.dublab{
  --db-accent:#38bdf8;--db-rec:#ef4444;
  display:flex;flex-direction:column;gap:12px;height:100%;min-height:560px;
  padding:14px;border-radius:16px;position:relative;overflow:hidden;
  background:radial-gradient(ellipse at 12% 0%,rgba(56,189,248,.22),transparent 48%),
    radial-gradient(ellipse at 90% 10%,rgba(239,68,68,.12),transparent 40%),
    linear-gradient(165deg,#05070f 0%,#0a1628 42%,#0c1222 100%);
  color:#e2e8f0;font-family:Nunito,system-ui,sans-serif
}
.dublab__glow{pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.2));z-index:0}
.dublab__hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;z-index:1}
.dublab__brand{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#7dd3fc}
.dublab__dot{width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,#38bdf8,#ef4444);box-shadow:0 0 14px #38bdf8;animation:gdPulse 1.5s ease-in-out infinite}
.dublab__titles{flex:1;min-width:200px}
.dublab__title{margin:4px 0 0;font-family:Fredoka,Nunito,sans-serif;font-size:24px;font-weight:700;color:#fff;letter-spacing:-.02em}
.dublab__sub{margin:4px 0 0;font-size:12px;font-weight:700;color:#94a3b8;line-height:1.45;max-width:560px}
.dublab__progress{display:flex;align-items:center;gap:8px;background:rgba(15,23,42,.7);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:8px 12px}
.dublab__prog-num{font-family:Fredoka,Nunito,sans-serif;font-size:16px;font-weight:700}
.dublab.is-complete .dublab__progress{border-color:rgba(134,239,172,.5)}
.dublab.is-premiere,.dublab.is-takeok{animation:blPremiere .85s ease}
.dublab.is-rec .dublab__brand{color:#fda4af}
.dublab__grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(250px,.85fr);gap:12px;position:relative;z-index:1}
.dublab__stage{display:flex;flex-direction:column;gap:8px;min-height:0;position:relative}
.dublab__booth{
  flex:1;min-height:320px;display:flex;flex-direction:column;gap:10px;
  border-radius:14px;padding:12px;
  background:linear-gradient(180deg,rgba(15,23,42,.9),rgba(2,6,23,.95));
  border:1px solid rgba(56,189,248,.28);box-shadow:0 16px 48px rgba(0,0,0,.45)
}
.dublab__window{
  position:relative;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.1);
  background:#020617;min-height:200px;display:flex;align-items:center;justify-content:center
}
.dublab__face{width:100%;max-width:360px;height:auto;display:block}
.dublab__tc{
  position:absolute;left:10px;bottom:10px;font:700 11px ui-monospace,Menlo,monospace;
  padding:4px 8px;border-radius:8px;background:rgba(0,0,0,.65);color:#7dd3fc;border:1px solid rgba(56,189,248,.25)
}
.dublab__meters{display:flex;gap:10px;align-items:stretch}
.dublab__vu{flex:0 0 36px;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#020617}
.dublab__vu.is-guide{box-shadow:0 0 0 3px rgba(56,189,248,.45)}
.dublab__wave{flex:1;width:100%;border-radius:8px;border:1px solid rgba(255,255,255,.1);background:#020617}
.dublab__transport{display:flex;flex-wrap:wrap;gap:6px}
.dublab__pill{
  border:1px solid rgba(255,255,255,.12);background:rgba(15,23,42,.7);color:#e2e8f0;
  border-radius:12px;padding:8px 12px;font-size:12px;font-weight:800;cursor:pointer
}
.dublab__pill:hover{border-color:#38bdf8;transform:translateY(-1px)}
.dublab__pill.is-on{background:rgba(56,189,248,.25);border-color:#38bdf8}
.dublab__pill--rec{background:rgba(239,68,68,.18);border-color:rgba(239,68,68,.45)}
.dublab__pill--rec.is-on{background:#ef4444;color:#fff;animation:gdPulse 1s ease-in-out infinite}
.dublab__pill--prem{background:rgba(251,191,36,.15);border-color:rgba(251,191,36,.45)}
.dublab__pill.is-guide{box-shadow:0 0 0 3px rgba(56,189,248,.4);animation:gdPulse 1s ease-in-out infinite}
.dublab__gain{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:800;color:#94a3b8}
.dublab__gain input{flex:1;accent-color:#38bdf8}
.dublab__coachhost{position:absolute;left:10px;bottom:10px;z-index:6;pointer-events:none;width:min(300px,58%)}
.dublab__coachhost .plcoach{pointer-events:auto;width:100%}
.dublab__toast{
  position:absolute;left:50%;bottom:70px;transform:translateX(-50%);z-index:5;
  padding:8px 14px;border-radius:999px;font-size:12px;font-weight:800;
  background:rgba(15,23,42,.92);border:1px solid rgba(255,255,255,.12);pointer-events:none
}
.dublab__toast--ok{border-color:rgba(134,239,172,.5);color:#bbf7d0}
.dublab__toast--warn{border-color:rgba(253,224,71,.5);color:#fef08a}
.dublab__panel{display:flex;flex-direction:column;gap:10px;min-height:0;overflow:auto}
.dublab__block{background:rgba(15,23,42,.55);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px}
.dublab__block.is-guide{box-shadow:0 0 0 3px rgba(56,189,248,.35)}
.dublab__block h3{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:#7dd3fc}
.dublab__missions{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.dublab__mission{
  display:flex;align-items:flex-start;gap:8px;font-size:12px;font-weight:700;color:#cbd5e1;
  padding:8px 10px;border-radius:10px;background:rgba(255,255,255,.03)
}
.dublab__mission.is-done{background:rgba(34,197,94,.12);color:#bbf7d0}
.dublab__check{flex-shrink:0;width:16px;height:16px;border-radius:50%;border:2px solid #64748b;margin-top:1px}
.dublab__mission.is-done .dublab__check{border-color:#86efac;background:#22c55e;box-shadow:inset 0 0 0 2px #0f172a}
.dublab__script{display:grid;gap:6px;max-height:220px;overflow:auto}
.dublab__line{
  text-align:left;border:1px solid rgba(255,255,255,.1);background:rgba(2,6,23,.55);color:#e2e8f0;
  border-radius:10px;padding:8px 10px;cursor:pointer;display:grid;gap:2px
}
.dublab__line.is-on{border-color:#38bdf8;background:rgba(56,189,248,.12)}
.dublab__line-tc{font:700 10px ui-monospace,Menlo,monospace;color:#7dd3fc}
.dublab__line-char{font-size:10px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#94a3b8}
.dublab__line-txt{font-size:12px;font-weight:700;line-height:1.35}
.dublab__btnsoft{
  margin-top:8px;width:100%;border:1px solid rgba(56,189,248,.35);background:rgba(56,189,248,.1);
  color:#e0f2fe;border-radius:10px;padding:8px;font-weight:800;font-size:12px;cursor:pointer
}
.dublab__btnsoft.is-guide{box-shadow:0 0 0 3px rgba(56,189,248,.4)}
.dublab__takes{display:grid;gap:6px;max-height:140px;overflow:auto}
.dublab__take{
  text-align:left;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);color:#e2e8f0;
  border-radius:10px;padding:8px 10px;cursor:pointer;display:grid;gap:2px
}
.dublab__take b{font-size:12px}
.dublab__take span{font-size:11px;color:#94a3b8}
.dublab__empty{font-size:11px;font-weight:700;color:#64748b;text-align:center;padding:10px}
.dublab__code{
  width:100%;box-sizing:border-box;resize:vertical;min-height:110px;
  background:#020617;color:#7dd3fc;border:1px solid rgba(255,255,255,.1);border-radius:10px;
  font:11px/1.4 ui-monospace,Menlo,monospace;padding:8px
}
.dublab__btn{
  margin-top:8px;width:100%;border:0;border-radius:12px;padding:10px;
  font-weight:900;font-size:12px;cursor:pointer;color:#0f172a;
  background:linear-gradient(135deg,#38bdf8,#818cf8)
}
.dublab__note{margin:0;font-size:11px;font-weight:700;color:#64748b;line-height:1.4;text-align:center}
@media (max-width:900px){
  .dublab__grid{grid-template-columns:1fr}
  .dublab{min-height:0}
}

/* Dub Booth Pro extras */
.dublab__screens{display:flex;gap:8px}
.dublab__window--ref{flex:1;position:relative;border-radius:12px;overflow:hidden;border:1px solid rgba(56,189,248,.35);background:#020617;min-height:200px;display:flex;align-items:center;justify-content:center}
.dublab__badge{
  position:absolute;top:10px;right:10px;z-index:2;
  font:900 9px/1 Nunito,sans-serif;letter-spacing:.08em;
  padding:5px 8px;border-radius:8px;background:rgba(239,68,68,.85);color:#fff
}
.dublab__refbar{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.08);z-index:2}
.dublab__refbar-i{display:block;height:100%;width:0;background:linear-gradient(90deg,#38bdf8,#f472b6);transition:width .05s linear}
.dublab__adrphase{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);z-index:3;
  font:900 28px Fredoka,Nunito,sans-serif;color:#fff;text-shadow:0 4px 24px rgba(0,0,0,.8);
  padding:10px 18px;border-radius:14px;background:rgba(15,23,42,.55);border:1px solid rgba(255,255,255,.2);
  pointer-events:none
}
.dublab.is-loop .dublab__brand{color:#f9a8d4}
.dublab__pill--loop{background:rgba(236,72,153,.18);border-color:rgba(236,72,153,.45)}
.dublab__pill--loop.is-on{background:#db2777;color:#fff;animation:gdPulse 1.1s ease-in-out infinite}
.dublab__take{display:flex;align-items:center;justify-content:space-between;gap:8px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.04);border-radius:10px;padding:8px 10px}
.dublab__take-main{display:grid;gap:2px;min-width:0}
.dublab__take-main b{font-size:12px;color:#e2e8f0}
.dublab__take-main span{font-size:11px;color:#94a3b8;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dublab__take-acts{display:flex;gap:4px;flex-shrink:0}
.dublab__take-acts button{
  border:1px solid rgba(56,189,248,.35);background:rgba(56,189,248,.12);color:#e0f2fe;
  border-radius:8px;padding:4px 8px;font-size:10px;font-weight:900;cursor:pointer
}


/* ===== Spectra Lab ===== */
.spectra{
  --sp-accent:#14b8a6;--sp-soft:#5eead4;--sp-sand:#f5e6c8;--sp-ink:#0f172a;
  display:flex;flex-direction:column;gap:12px;height:100%;min-height:560px;
  padding:14px;border-radius:16px;position:relative;overflow:hidden;
  background:
    radial-gradient(ellipse at 10% 0%,rgba(20,184,166,.2),transparent 50%),
    radial-gradient(ellipse at 90% 20%,rgba(245,230,200,.12),transparent 45%),
    linear-gradient(165deg,#07141a 0%,#0c1c22 45%,#0a1218 100%);
  color:#e2e8f0;font-family:Nunito,system-ui,sans-serif
}
.spectra.is-calm{filter:saturate(.75) brightness(.95)}
.spectra.is-calm .spectra__glow{opacity:.35}
.spectra__glow{pointer-events:none;position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.18));z-index:0}
.spectra__hero{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:10px;position:relative;z-index:1}
.spectra__brand{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:var(--sp-soft)}
.spectra__dot{width:9px;height:9px;border-radius:50%;background:linear-gradient(135deg,#14b8a6,#f5e6c8);box-shadow:0 0 14px #14b8a6}
.spectra__titles{flex:1;min-width:200px}
.spectra__title{margin:4px 0 0;font-family:Fredoka,Nunito,sans-serif;font-size:24px;font-weight:700;color:#fff;letter-spacing:-.02em}
.spectra__sub{margin:4px 0 0;font-size:12px;font-weight:700;color:#94a3b8;line-height:1.45;max-width:560px}
.spectra__progress{display:flex;align-items:center;gap:8px;background:rgba(15,23,42,.7);border:1px solid rgba(255,255,255,.1);border-radius:14px;padding:8px 12px}
.spectra__prog-num{font-family:Fredoka,Nunito,sans-serif;font-size:16px;font-weight:700}
.spectra.is-complete .spectra__progress{border-color:rgba(134,239,172,.5)}
.spectra__grid{flex:1;min-height:0;display:grid;grid-template-columns:minmax(0,1.4fr) minmax(240px,.85fr);gap:12px;position:relative;z-index:1}
.spectra__stage{display:flex;flex-direction:column;gap:10px;min-height:0;position:relative}
.spectra__meters{display:grid;gap:8px}
.spectra__meter{display:grid;gap:4px;font-size:12px;font-weight:800;color:#cbd5e1}
.spectra__meter input{width:100%;accent-color:var(--sp-accent)}
.spectra__zone{display:inline-flex;align-items:center;justify-content:center;min-width:64px;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:900;letter-spacing:.06em}
.spectra__zone--green{background:rgba(34,197,94,.2);color:#86efac;border:1px solid rgba(34,197,94,.35)}
.spectra__zone--yellow{background:rgba(234,179,8,.2);color:#fde68a;border:1px solid rgba(234,179,8,.35)}
.spectra__zone--red{background:rgba(239,68,68,.2);color:#fecaca;border:1px solid rgba(239,68,68,.35)}
.spectra__scene{
  flex:1;min-height:280px;border-radius:16px;padding:16px;
  background:linear-gradient(180deg,rgba(15,23,42,.92),rgba(2,6,23,.96));
  border:1px solid rgba(20,184,166,.28);box-shadow:0 16px 48px rgba(0,0,0,.4);
  display:flex;flex-direction:column;gap:12px
}
.spectra__bubble{font-size:16px;font-weight:800;line-height:1.45;color:#f8fafc}
.spectra__emotions{display:flex;flex-wrap:wrap;gap:8px}
.spectra__emo{
  width:48px;height:48px;border-radius:14px;border:1px solid rgba(255,255,255,.12);
  background:rgba(15,23,42,.7);font-size:22px;cursor:pointer
}
.spectra__emo.is-on,.spectra__emo:hover{border-color:var(--sp-accent);box-shadow:0 0 0 3px rgba(20,184,166,.25)}
.spectra__choices{display:grid;gap:8px}
.spectra__choice{
  text-align:left;border:1px solid rgba(255,255,255,.12);background:rgba(15,23,42,.75);
  color:#e2e8f0;border-radius:14px;padding:12px 14px;font-size:13px;font-weight:800;cursor:pointer;line-height:1.35
}
.spectra__choice:hover{border-color:var(--sp-accent);transform:translateY(-1px)}
.spectra__choice.is-ok{border-color:rgba(134,239,172,.55);background:rgba(22,163,74,.15);color:#bbf7d0}
.spectra__choice.is-no{border-color:rgba(252,165,165,.45);background:rgba(127,29,29,.18);color:#fecaca}
.spectra__nav{display:flex;flex-wrap:wrap;gap:8px}
.spectra__btn{
  border:1px solid rgba(255,255,255,.12);background:rgba(15,23,42,.7);color:#e2e8f0;
  border-radius:12px;padding:10px 14px;font-size:12px;font-weight:800;cursor:pointer
}
.spectra__btn--main{background:linear-gradient(135deg,#14b8a6,#2dd4bf);color:#042f2e;border:0;font-weight:900}
.spectra__coachhost{position:absolute;left:10px;bottom:10px;z-index:6;pointer-events:none;width:min(290px,58%)}
.spectra__coachhost .plcoach{pointer-events:auto;width:100%}
.spectra__toast{
  position:absolute;right:12px;top:12px;z-index:8;max-width:260px;padding:10px 12px;border-radius:12px;
  background:rgba(2,6,23,.92);border:1px solid rgba(255,255,255,.12);font-size:12px;font-weight:800
}
.spectra__toast--ok{border-color:rgba(134,239,172,.45);color:#bbf7d0}
.spectra__toast--warn{border-color:rgba(253,224,71,.45);color:#fef08a}
.spectra__panel{display:flex;flex-direction:column;gap:10px;min-height:0}
.spectra__block{
  background:rgba(15,23,42,.72);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px
}
.spectra__block h3{margin:0 0 8px;font-size:11px;font-weight:900;letter-spacing:.06em;text-transform:uppercase;color:var(--sp-soft)}
.spectra__missions{margin:0;padding:0;list-style:none;display:grid;gap:6px}
.spectra__mission{
  display:flex;gap:8px;align-items:flex-start;font-size:12px;font-weight:700;color:#cbd5e1;
  padding:8px;border-radius:10px;border:1px solid transparent
}
.spectra__check{
  flex:0 0 18px;height:18px;border-radius:6px;border:1px solid rgba(255,255,255,.2);
  display:inline-flex;align-items:center;justify-content:center;font-size:11px
}
.spectra__mission.is-done{border-color:rgba(134,239,172,.35);background:rgba(22,163,74,.12);color:#bbf7d0}
.spectra__mission.is-done .spectra__check{border-color:#4ade80;background:#16a34a;color:#fff}
.spectra__note{margin:0;font-size:11px;font-weight:700;color:#64748b;line-height:1.45}
@media (max-width:900px){
  .spectra__grid{grid-template-columns:1fr}
  .spectra{min-height:0}
}

/* ===== Hub role / path gate ===== */
.pl-hub{overflow:auto}
.gate{position:relative;z-index:5;min-height:100vh;display:flex;align-items:center;justify-content:center;padding:32px 16px}
.gate.hidden{display:none}
.gate__inner{width:min(980px,100%);text-align:center}
.gate__logo{width:72px;height:72px;border-radius:18px;object-fit:cover;margin-bottom:10px}
.gate__kicker{margin:0;font-size:12px;font-weight:900;letter-spacing:.12em;text-transform:uppercase;color:#a78bfa}
.gate__title{font-family:Fredoka,Nunito,sans-serif;font-size:clamp(28px,5vw,42px);font-weight:800;margin:8px 0;color:#fff}
.gate__sub{color:#94a3b8;font-weight:700;font-size:16px;margin:0 0 22px}
.gate__back{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);color:#e2e8f0;border-radius:12px;padding:8px 12px;font-weight:800;cursor:pointer;margin-bottom:12px}
.gate__cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.gate__cards--2{grid-template-columns:repeat(2,minmax(0,1fr));max-width:720px;margin:0 auto}
.gate__card{text-align:left;border:1px solid rgba(255,255,255,.12);background:linear-gradient(165deg,rgba(15,23,42,.92),rgba(2,6,23,.96));border-radius:18px;padding:20px;color:#e2e8f0;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}
.gate__card:hover{transform:translateY(-3px);border-color:#a78bfa;box-shadow:0 18px 40px rgba(0,0,0,.35)}
.gate__card--pro:hover{border-color:#22c55e}
.gate__card--teacher:hover{border-color:#38bdf8}
.gate__card--school:hover{border-color:#f59e0b}
.gate__ico{font-size:28px;display:block;margin-bottom:10px}
.gate__card strong{display:block;font-size:18px;font-weight:900;margin-bottom:6px;color:#fff}
.gate__card span:last-child{font-size:13px;font-weight:700;color:#94a3b8;line-height:1.4}
@media (max-width:820px){
  .gate__cards,.gate__cards--2{grid-template-columns:1fr}
}

.welcome--solo{padding:28px 20px}
.welcome--solo .welcome__grid--solo{
  max-width:min(760px,96vw);width:100%;margin:0 auto;
  grid-template-columns:1fr
}
.welcome--solo .welcome__card{
  width:100%;max-width:none;
  padding:48px 42px 36px;
  min-height:420px
}
.welcome--solo .welcome__title{font-size:clamp(32px,4.5vw,40px)}
.welcome--solo .welcome__sub{font-size:17px;max-width:34em}
.welcome--solo .welcome__mascot{width:148px;height:148px}
.welcome--solo .welcome__ico{width:128px;height:128px}
.welcome--solo .btn--xl{min-width:min(280px,100%);padding:16px 28px;font-size:18px}
@media(max-width:560px){
  .welcome--solo .welcome__card{padding:32px 20px 28px;min-height:0}
  .welcome--solo .welcome__mascot{width:120px;height:120px}
}
.welcome__hub{display:inline-block;margin-bottom:10px;font-size:13px;font-weight:800;color:#a78bfa;text-decoration:none}

/* ===== Org panel full-bleed ===== */
.org-shell{position:fixed;inset:0;z-index:80;background:#070b14;overflow:auto}
.org-shell.hidden{display:none}
body.org-open{overflow:hidden}
.org{min-height:100%;padding:20px clamp(14px,3vw,28px) 40px;color:#e2e8f0;font-family:Nunito,system-ui,sans-serif}
.org__top{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:18px}
.org__kicker{margin:0;font-size:11px;font-weight:900;letter-spacing:.1em;text-transform:uppercase;color:#5eead4}
.org h1{margin:4px 0;font-family:Fredoka,Nunito,sans-serif;font-size:clamp(24px,4vw,34px);color:#fff}
.org__lead{margin:0;color:#94a3b8;font-weight:700;max-width:640px}
.org__top-actions{display:flex;gap:8px}
.org__btn{border:1px solid rgba(255,255,255,.14);background:rgba(15,23,42,.75);color:#e2e8f0;border-radius:12px;padding:10px 14px;font-size:13px;font-weight:800;cursor:pointer}
.org__btn--primary{background:linear-gradient(135deg,#14b8a6,#2dd4bf);color:#042f2e;border:0}
.org__btn--soft{background:rgba(20,184,166,.12);border-color:rgba(20,184,166,.35)}
.org__btn--ghost{background:transparent}
.org__btn--danger{background:rgba(239,68,68,.15);border-color:rgba(239,68,68,.4);color:#fecaca;padding:6px 10px;font-size:12px}
.org__stats{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px;margin-bottom:16px}
.org__stat{background:rgba(15,23,42,.8);border:1px solid rgba(255,255,255,.08);border-radius:14px;padding:12px}
.org__stat-v{font-family:Fredoka,Nunito,sans-serif;font-size:22px;font-weight:800;color:#fff}
.org__stat-l{font-size:11px;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.04em}
.org__stat-h{font-size:11px;font-weight:700;color:#64748b;margin-top:2px}
.org__layout{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(0,1.8fr);gap:14px}
.org__side,.org__main,.org__block,.org__steps,.org__price{background:rgba(15,23,42,.78);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:14px}
.org__side h3,.org__main h2,.org__report h3,.org__steps h3{margin:0 0 10px;font-size:13px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;color:#5eead4}
.org__groups{display:grid;gap:8px;margin-bottom:10px}
.org__group{text-align:left;border:1px solid rgba(255,255,255,.1);background:rgba(2,6,23,.55);color:#e2e8f0;border-radius:12px;padding:10px;font-weight:800;cursor:pointer}
.org__group.is-on{border-color:#14b8a6;background:rgba(20,184,166,.12)}
.org__sec{margin-top:14px}
.org__sec-list{margin:0;padding-left:18px;color:#94a3b8;font-weight:700;font-size:12px;line-height:1.5}
.org__toolbar{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}
.org__code-pill{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:rgba(56,189,248,.15);color:#7dd3fc;font-size:12px;font-weight:900}
.org__count{font-weight:900;color:#94a3b8}
.org__add{display:grid;grid-template-columns:1.2fr 1fr auto;gap:8px;margin-bottom:10px}
.org__field{width:100%;border:1px solid rgba(255,255,255,.12);background:rgba(2,6,23,.7);color:#fff;border-radius:12px;padding:10px 12px;font-weight:700}
.org__err{color:#fecaca;font-weight:800;margin-bottom:8px}
.org__table-wrap{overflow:auto;border:1px solid rgba(255,255,255,.08);border-radius:12px}
.org__table{width:100%;border-collapse:collapse;min-width:640px}
.org__table th,.org__table td{padding:10px 12px;border-bottom:1px solid rgba(255,255,255,.06);text-align:left;font-size:13px}
.org__table th{font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:#64748b}
.org__email{font-size:11px;color:#64748b;font-weight:700}
.org__mini{width:72px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:#020617;color:#fff;padding:4px 6px}
.org__empty{color:#64748b;font-weight:700;padding:16px;text-align:center}
.org__report{margin-top:16px}
.org__report-grid{display:grid;grid-template-columns:1.4fr .8fr;gap:12px}
.org__chart{min-height:160px;display:flex;align-items:flex-end;gap:8px;padding:12px;background:rgba(2,6,23,.55);border-radius:12px}
.org__bar{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:4px;height:140px}
.org__bar i{display:block;width:100%;max-width:28px;border-radius:8px 8px 0 0;background:linear-gradient(180deg,#2dd4bf,#0f766e);min-height:4px}
.org__bar span{font-size:9px;font-weight:800;color:#64748b}

.org__prog{min-width:140px}
.org__prog-top{display:flex;justify-content:space-between;gap:8px;font-size:12px;font-weight:800;margin-bottom:4px}
.org__prog-top strong{color:#5eead4}
.org__prog-bar{height:8px;border-radius:99px;background:rgba(148,163,184,.18);overflow:hidden}
.org__prog-bar i{display:block;height:100%;background:linear-gradient(90deg,#14b8a6,#2dd4bf);border-radius:99px}
.org__class strong{display:block;font-size:12px;color:#e2e8f0}
.org__table{min-width:760px}

.org__onboard-grid{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.1fr);gap:16px}
.org__price-amt{font-family:Fredoka,Nunito,sans-serif;font-size:40px;font-weight:800;color:#fff}
.org__price-amt span{font-size:16px;color:#94a3b8}
.org__price-sub{color:#94a3b8;font-weight:700;margin:4px 0 12px}
.org__price-feats{margin:0 0 14px;padding-left:18px;font-weight:700;color:#cbd5e1;line-height:1.5}
.org__note{font-size:12px;font-weight:700;color:#64748b;line-height:1.45}
.org__steps ol{margin:0;padding-left:18px;font-weight:700;color:#cbd5e1;line-height:1.6}
@media (max-width:980px){
  .org__stats{grid-template-columns:repeat(3,minmax(0,1fr))}
  .org__layout,.org__onboard-grid,.org__report-grid{grid-template-columns:1fr}
  .org__add{grid-template-columns:1fr}
}
@media (max-width:560px){
  .org__stats{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media print{
  .org__top-actions,.org__add,.org__btn--danger,.org__side{display:none!important}
  .org-shell{position:static;background:#fff;color:#111}
  .org,.org__main,.org__stat{background:#fff;color:#111;border-color:#ddd}
}


/* Billing interval toggle */
.bill-toggle{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:rgba(15,23,42,.75);border:1px solid rgba(255,255,255,.12);margin:0 0 16px}
.bill-toggle__btn{border:0;background:transparent;color:#94a3b8;font-weight:800;font-size:13px;padding:8px 16px;border-radius:999px;cursor:pointer}
.bill-toggle__btn.is-on{background:linear-gradient(135deg,#14b8a6,#2dd4bf);color:#042f2e}
.plans .bill-toggle{display:flex;justify-content:center;margin:0 auto 18px}
.org__bill{margin:0 0 14px}
.org__price-amt small{font-size:14px;color:#94a3b8;font-weight:800}
.org__save{display:inline-block;margin-left:8px;padding:2px 8px;border-radius:999px;background:rgba(34,197,94,.18);color:#86efac;font-size:11px;font-weight:900}

/* ===== Mentes Brillantes ===== */
.mentes{--mb:#7B61FF;--mb2:#0ea5e9;--mb3:#22c55e;position:relative;display:flex;flex-direction:column;gap:12px;min-height:0;padding:14px;border-radius:18px;background:linear-gradient(160deg,#f5f3ff 0%,#ecfeff 50%,#f0fdf4 100%);border:1px solid rgba(123,97,255,.18);overflow-x:hidden;overflow-y:auto;max-width:100%;width:100%;box-sizing:border-box;container-type:inline-size;container-name:mentes}
.mentes__sand{pointer-events:none;position:absolute;inset:0;opacity:.4;background:radial-gradient(circle at 20% 20%,rgba(123,97,255,.12),transparent 40%),radial-gradient(circle at 80% 0,rgba(14,165,233,.1),transparent 35%)}
.mentes__hero{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;position:relative;z-index:1}
.mentes__brand{margin:0;font-size:11px;font-weight:900;letter-spacing:.08em;color:var(--mb)}
.mentes__title{margin:4px 0 0;font-family:Fredoka,Nunito,sans-serif;font-size:22px;font-weight:700;color:#1e2035}
.mentes__sub{margin:4px 0 0;font-size:12.5px;font-weight:700;color:#6a6d90;max-width:520px}
.mentes__hero-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.mentes__btn{border:1px solid rgba(123,97,255,.25);background:#fff;border-radius:12px;padding:10px 14px;font-weight:800;font-size:13px;cursor:pointer;color:#1e2035}
.mentes__btn--primary{background:linear-gradient(135deg,var(--mb2),var(--mb3));color:#fff;border:none;box-shadow:0 8px 18px rgba(14,165,233,.25)}
.mentes__btn--ghost{background:rgba(255,255,255,.7)}
.mentes__btn--voice.is-on{background:var(--mb);color:#fff;border-color:var(--mb)}
.mentes__progress{display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.75);border:1px solid rgba(123,97,255,.2);border-radius:12px;padding:6px 10px}
.mentes__prog-num{font-family:Fredoka,Nunito,sans-serif;font-size:17px;font-weight:700;color:var(--mb)}
.mentes__grid{flex:1;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;position:relative;z-index:1;width:100%;min-width:0}
.mentes__stage{background:rgba(255,255,255,.82);border:1px solid rgba(123,97,255,.12);border-radius:16px;padding:12px;min-height:280px;display:flex;flex-direction:column;gap:10px}
.mentes__stage-inner{flex:1;display:flex;flex-direction:column;gap:10px}
.mentes__panel{display:flex;flex-direction:column;gap:10px}
.mentes__block{background:rgba(255,255,255,.85);border:1px solid rgba(123,97,255,.12);border-radius:14px;padding:12px}
.mentes__block h3{margin:0 0 8px;font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.06em;color:var(--mb)}
.mentes__missions{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.mentes__mission{display:flex;gap:8px;font-size:13px;font-weight:700;color:#1e2035}
.mentes__mission.is-done{color:var(--mb)}
.mentes__check{width:18px;height:18px;border-radius:6px;border:2px solid rgba(123,97,255,.25);display:grid;place-items:center;font-size:11px}
.mentes__mission.is-done .mentes__check{background:var(--mb);border-color:var(--mb);color:#fff}
.mentes__note,.mentes__hint,.mentes__disclaimer{font-size:11.5px;line-height:1.45;font-weight:700;color:#6a6d90;margin:0}
.mentes__disclaimer{padding:10px 12px;border-radius:12px;background:#f5f3ff;border:1px solid #ddd6fe;color:#5b21b6}
.mentes__prompt,.mentes__lead{margin:0;font-size:14px;font-weight:700;color:#1e2035;line-height:1.45}
.mentes__label{font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;color:var(--mb)}
.mentes__childrow{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.mentes__select,.mentes__input,.mentes__area{width:100%;box-sizing:border-box;border:1px solid rgba(123,97,255,.2);border-radius:10px;padding:10px;font:inherit;font-weight:700}
.mentes__select{width:auto;min-width:180px;flex:1}
.mentes__worldcards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:8px}
.mentes__wcard{display:flex;flex-direction:column;gap:4px;text-align:left;padding:14px;border-radius:14px;border:1px solid rgba(123,97,255,.18);background:#fff;cursor:pointer}
.mentes__wcard:hover{border-color:var(--mb);transform:translateY(-2px)}
.mentes__wemoji{font-size:28px}
.mentes__chips{display:flex;flex-wrap:wrap;gap:8px}
.mentes__chip,.mentes__choice,.mentes__pec,.mentes__target,.mentes__pad,.mentes__bubble{border:1px solid rgba(123,97,255,.2);background:#fff;border-radius:12px;padding:10px 12px;font-weight:800;cursor:pointer}
.mentes__choice{display:block;width:100%;text-align:left;margin-top:8px}
.mentes__target{font-size:42px;min-height:120px}
.mentes__target.is-star{background:#fef9c3}
.mentes__ring{width:140px;height:140px;border-radius:50%;margin:12px auto;display:grid;place-items:center;font-size:28px;font-weight:900;color:var(--mb);background:conic-gradient(var(--mb2) calc(var(--p,0)*1turn),#e5e7eb 0);box-shadow:inset 0 0 0 14px #fff}
.mentes__pads{display:grid;grid-template-columns:1fr 1fr;gap:10px;max-width:280px}
.mentes__pad{height:72px;border:none;border-radius:16px;opacity:.85}
.mentes__pad.is-on{outline:4px solid #1e2035;opacity:1}
.mentes__light{font-size:48px;text-align:center;padding:12px}
.mentes__breathcircle{width:160px;height:160px;margin:12px auto;border-radius:50%;display:grid;place-items:center;font-weight:900;color:#fff;background:var(--mb2);transition:transform .4s ease}
.mentes__breathcircle.in{transform:scale(1.15);background:var(--mb2)}
.mentes__breathcircle.hold{transform:scale(1.15);background:var(--mb)}
.mentes__breathcircle.out{transform:scale(.85);background:var(--mb3)}
.mentes__pecs-bank{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.mentes__pec{display:flex;flex-direction:column;align-items:center;gap:4px;font-size:12px}
.mentes__pecs-built{min-height:40px;padding:10px;border-radius:12px;background:#f8fafc;font-weight:800}
.mentes__bubbles{display:flex;flex-wrap:wrap;gap:10px}
.mentes__bubble{font-size:28px}
.mentes__bubble.is-pop{opacity:.3;transform:scale(.8)}
.mentes__joint-stage{position:relative;height:220px;border-radius:14px;background:#ecfeff;border:1px dashed rgba(14,165,233,.35)}
.mentes__dot{position:absolute;border:none;background:transparent;font-size:28px;cursor:pointer;transition:left .25s,top .25s}
.mentes__face{font-size:64px;text-align:center}
.mentes__storytxt{padding:12px;border-radius:12px;background:#fff;border:1px solid rgba(123,97,255,.15);font-weight:700;line-height:1.5}
.mentes__toast{padding:10px 12px;border-radius:12px;font-weight:800;font-size:13px}
.mentes__toast--ok{background:#ecfdf5;color:#065f46;border:1px solid #a7f3d0}
.mentes__toast--warn{background:#fffbeb;color:#92400e;border:1px solid #fde68a}
.mentes__check input{accent-color:var(--mb)}
@media(max-width:860px){.mentes__grid{grid-template-columns:1fr}.mentes__worldcards{grid-template-columns:1fr}.mentes__pecs-bank{grid-template-columns:repeat(2,minmax(0,1fr))}}
/* PLABS_MENTES_RESP_V1 */
@container mentes (min-width:760px){.mentes__grid{grid-template-columns:minmax(0,1.35fr) minmax(200px,.72fr)}}
.mentes__stage,.mentes__panel{min-width:0;max-width:100%}
.mentes__chip{white-space:normal;max-width:100%;overflow-wrap:anywhere}

.org__mentes{margin:12px 0;padding:14px 16px;border-radius:16px;background:linear-gradient(135deg,#f5f3ff,#ecfeff);border:1px solid rgba(123,97,255,.2)}
.org__mentes h3{margin:0 0 6px;color:#7B61FF;font-size:15px}


/* PLABS_VIDEO_EMBED_V1 */
.video.video--embed{background:#000;padding:0;display:block}
.video.video--embed::after{display:none}
.video__iframe{position:absolute;inset:0;width:100%;height:100%;border:0;border-radius:16px}
.video.video--embed{position:relative;aspect-ratio:16/9}


/* PLABS_ANDROID_PREMIUM_CHROME_V1 */
body.pl-android .world-card[data-world="androidaudit"],
body.pro .world-card[data-id="androidaudit"]{
  box-shadow:0 0 0 1px rgba(61,220,132,.35),0 18px 40px rgba(61,220,132,.12);
}
body.pl-android {
  --pro-accent:#3DDC84;
}
body.pl-android .lesson-card,
body.pl-android .unit-card{
  border-color:rgba(61,220,132,.22);
}
body.pl-android #lessonModal .modal__panel,
body.pl-android .lesson-modal .panel{
  box-shadow:0 0 60px rgba(61,220,132,.12);
}
body.pl-android .btn--primary{
  background:linear-gradient(180deg,#4ade80,#16a34a);
  color:#052e16;
}
.world-card--android{
  position:relative;overflow:hidden;
}
.world-card--android::after{
  content:"";position:absolute;inset:auto -20% -40% auto;width:180px;height:180px;border-radius:50%;
  background:radial-gradient(circle,rgba(61,220,132,.35),transparent 70%);pointer-events:none;
}
