/* Sense U · Escuela · panel de Fabiola e inscripción (ciruela profundo, oro y neón, como /acceso). */
:root{
  --fondo:#120818;--fondo-2:#1B0F27;--hoja:#1F1230;--linea:rgba(231,198,118,.22);--linea-2:rgba(255,255,255,.08);
  --texto:#F7F0FA;--texto-2:#CDBEDB;--texto-3:#9C8AAE;
  --oro:#E7C676;--oro-claro:#F6E0A0;--oro-hondo:#B8862E;--neon:#F06BF0;--magenta:#B8309F;
  --ok:#7FE3B4;--aviso:#FFC85A;--mal:#FF8FA3;--revision:#D7B4FF;
  --oro-grad:linear-gradient(135deg,#B8862E 0%,#E7C676 18%,#FBECBC 36%,#DDB25C 54%,#C89A42 68%,#F2DC9C 86%,#CFA04A 100%);
  --borde-oro:linear-gradient(135deg,#6E4A12,#B8862E 14%,#F6E0A0 30%,#D2A24A 44%,#8C6220 56%,#E9C97A 70%,#B78530 84%,#F4DD98);
  --f-display:"Bodoni Moda","DM Serif Display",Didot,Georgia,serif;--f-texto:"Jost","Futura",system-ui,sans-serif;
  --radio:18px;--sombra:0 20px 50px rgba(0,0,0,.45);--gutter:max(16px,env(safe-area-inset-left,0px));
  color-scheme:dark}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body.sue{margin:0;overflow-x:clip;min-height:100vh;min-height:100dvh;font:400 16px/1.55 var(--f-texto);color:var(--texto);-webkit-font-smoothing:antialiased;
  background:radial-gradient(1000px 700px at 90% -10%,rgba(184,48,159,.22),transparent 60%),radial-gradient(900px 700px at -10% 110%,rgba(119,98,154,.28),transparent 60%),var(--fondo);background-attachment:fixed}
:where(.sue) a{color:var(--oro-claro)}
.sue h1,.sue h2,.sue h3{font-family:var(--f-display);font-weight:400;line-height:1.08;margin:0;letter-spacing:.005em;text-wrap:balance}
.sue p{margin:0}
:where(.sue) :where(button,input,select,textarea){font:inherit;color:inherit}
.sue :focus-visible{outline:2px solid var(--oro);outline-offset:3px;border-radius:10px}
.sue [hidden]{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.55em;min-height:46px;padding:12px 22px;border-radius:999px;border:1px solid transparent;
  font:500 .9rem/1 var(--f-texto);letter-spacing:.06em;text-decoration:none;cursor:pointer;transition:transform .18s,box-shadow .2s,background .2s,border-color .2s;white-space:nowrap;-webkit-tap-highlight-color:transparent}
.btn svg{width:18px;height:18px;flex:none}
.btn-oro{background:var(--oro-grad);color:#2A1438;border-color:rgba(110,74,18,.55);box-shadow:0 6px 18px rgba(231,198,118,.18)}
.btn-oro:hover{box-shadow:0 0 0 2px rgba(246,224,160,.25),0 0 22px rgba(255,190,80,.35);transform:translateY(-1px)}
.btn-hueco{background:rgba(255,255,255,.03);border-color:var(--linea);color:var(--texto)}
.btn-hueco:hover{border-color:var(--oro);background:rgba(231,198,118,.07)}
.btn-wa{background:#1F3B2C;border-color:rgba(127,227,180,.35);color:#C9F5DD}
.btn-wa:hover{background:#25483A;border-color:var(--ok)}
.btn-mal{background:transparent;border-color:rgba(255,143,163,.4);color:#FFC2CD}
.btn-mal:hover{background:rgba(255,143,163,.08)}
.btn-chico{min-height:38px;padding:8px 14px;font-size:.82rem}
.btn-icono{width:44px;min-height:44px;padding:0;border-radius:50%}
.btn[disabled]{opacity:.55;pointer-events:none}
.btn.cargando{position:relative;color:transparent!important}
.btn.cargando::after{content:"";position:absolute;width:18px;height:18px;border-radius:50%;border:2px solid currentColor;border-color:#2A1438 transparent #2A1438 transparent;animation:gira .8s linear infinite}
.btn-hueco.cargando::after{border-color:var(--oro) transparent var(--oro) transparent}
@keyframes gira{to{transform:rotate(360deg)}}

/* Tarjetas con filo de oro */
.tarjeta{position:relative;border-radius:var(--radio);padding:20px;background:linear-gradient(160deg,rgba(40,22,58,.92),rgba(24,13,36,.92)) padding-box,linear-gradient(140deg,rgba(231,198,118,.45),rgba(231,198,118,.08) 40%,rgba(240,107,240,.18) 75%,rgba(231,198,118,.35)) border-box;border:1px solid transparent;box-shadow:var(--sombra)}
.tarjeta.lisa{background:rgba(255,255,255,.035);border:1px solid var(--linea-2);box-shadow:none}
.filete{width:84px;height:1px;background:linear-gradient(90deg,transparent,#B8862E 15%,#F6E0A0 50%,#B8862E 85%,transparent);margin:14px 0}
.eyebrow{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--oro)}

/* Campos */
.campo{display:grid;gap:6px;margin-bottom:16px}
.campo>span,.campo>label{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#EAD7AE}
.campo small{color:var(--texto-3);font-size:.82rem}
.campo .error{color:var(--mal);font-size:.85rem}
.entrada,.sue select,.sue textarea{width:100%;min-width:0;min-height:48px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.045);border:1px solid var(--linea-2);color:var(--texto);transition:border-color .2s,box-shadow .2s}
.sue textarea{min-height:90px;resize:vertical}
.entrada:focus,.sue select:focus,.sue textarea:focus{outline:none;border-color:var(--oro);box-shadow:0 0 0 3px rgba(231,198,118,.15)}
.entrada.mal{border-color:var(--mal)}
.sue select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--oro) 50%),linear-gradient(135deg,var(--oro) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:40px}
.sue select option{background:#1F1230}
.fila{display:grid;gap:12px;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.marca{display:flex;gap:12px;align-items:flex-start;cursor:pointer;color:var(--texto-2);font-size:.92rem}
.marca input{width:22px;height:22px;accent-color:var(--oro);flex:none;margin-top:1px}

/* ===== Entrada con código ===== */
.entrar{min-height:100vh;min-height:100dvh;display:grid;place-items:center;padding:32px var(--gutter)}
.entrar-caja{width:min(420px,100%);text-align:center}
.entrar-logo{width:210px;height:auto;margin:0 auto 6px;filter:drop-shadow(0 0 10px rgba(255,120,255,.5)) drop-shadow(0 0 1px rgba(246,210,130,.6))}
.entrar h1{font-size:clamp(2rem,7vw,2.5rem)}
.entrar .filete{margin:18px auto}
.entrar .tarjeta{text-align:left;margin-top:8px;padding:26px 22px}
.codigo-entrada{font:500 1.35rem/1 var(--f-texto);letter-spacing:.24em;text-align:center;text-transform:uppercase;min-height:60px}
.codigo-entrada::placeholder{letter-spacing:.2em;color:rgba(205,190,219,.35)}
.entrar .btn{width:100%;margin-top:6px}
.entrar-pie{margin-top:22px;color:var(--texto-3);font-size:.85rem}
.mensaje{margin-top:14px;padding:12px 14px;border-radius:12px;font-size:.92rem;background:rgba(255,143,163,.1);color:#FFD3DB;border-left:3px solid var(--mal)}

/* ===== Panel ===== */
.app{display:grid;min-height:100vh;min-height:100dvh;grid-template-columns:minmax(0,1fr)}
.lateral{position:fixed;inset:auto 0 0 0;z-index:40;background:rgba(18,8,24,.86);backdrop-filter:blur(18px) saturate(140%);-webkit-backdrop-filter:blur(18px) saturate(140%);border-top:1px solid var(--linea);padding:6px 6px calc(6px + env(safe-area-inset-bottom,0px))}
.lateral .logo{display:none}
.menu{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:2px;list-style:none;margin:0;padding:0}
.menu button{position:relative;display:grid;justify-items:center;gap:3px;width:100%;padding:8px 0;border:0;background:none;color:var(--texto-3);font-size:.6rem;white-space:nowrap;letter-spacing:.04em;cursor:pointer;border-radius:12px;transition:color .2s,background .2s}
.menu svg{width:22px;height:22px}
.menu button[aria-current="page"]{color:var(--oro-claro)}
.menu button[aria-current="page"] svg{filter:drop-shadow(0 0 6px rgba(246,224,160,.55))}
.insignia{position:absolute;top:3px;left:calc(50% + 6px);min-width:19px;height:19px;padding:0 5px;border-radius:999px;background:var(--neon);color:#2A0A2A;font:600 .7rem/19px var(--f-texto);box-shadow:0 0 12px rgba(240,107,240,.7)}
.principal{min-width:0;padding:0 var(--gutter) calc(96px + env(safe-area-inset-bottom,0px));max-width:1180px;width:100%;margin:0 auto}
.barra{display:flex;align-items:center;gap:12px;padding:calc(18px + env(safe-area-inset-top,0px)) 0 14px;position:sticky;top:0;z-index:30;background:linear-gradient(180deg,var(--fondo) 70%,transparent)}
.barra .logo-chico{height:30px;width:auto;filter:drop-shadow(0 0 6px rgba(240,107,240,.55))}
.barra .titulo{font:400 1.05rem var(--f-display);color:var(--texto-2);margin-left:auto}
.vista{animation:entra .35s cubic-bezier(.2,.7,.2,1)}
@keyframes entra{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.saludo{margin:10px 0 22px}
.saludo h1{font-size:clamp(2.1rem,7.5vw,3.3rem)}
.saludo p{color:var(--texto-2);margin-top:8px}
.seccion{margin:30px 0 14px;display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.seccion h2{font-size:1.55rem}
.seccion .enlace{background:none;border:0;color:var(--oro);cursor:pointer;font-size:.88rem;letter-spacing:.04em}

.cifras{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.cifra{display:grid;gap:4px;text-align:left;cursor:pointer;padding:18px;border-radius:var(--radio);border:1px solid var(--linea-2);background:rgba(255,255,255,.035);transition:transform .2s,border-color .2s,background .2s}
.cifra:hover{transform:translateY(-2px);border-color:var(--linea)}
.cifra b{font:300 2.4rem/1 var(--f-texto);font-variant-numeric:lining-nums tabular-nums}
.cifra span{font-size:.85rem;color:var(--texto-2)}
.cifra i{width:9px;height:9px;border-radius:50%;display:inline-block;margin-right:6px;vertical-align:1px}
.cifra.ok b{color:var(--ok)}.cifra.ok i{background:var(--ok);box-shadow:0 0 10px var(--ok)}
.cifra.aviso b{color:var(--aviso)}.cifra.aviso i{background:var(--aviso);box-shadow:0 0 10px var(--aviso)}
.cifra.revision b{color:var(--revision)}.cifra.revision i{background:var(--revision);box-shadow:0 0 10px var(--revision)}
.cifra.mal b{color:var(--mal)}.cifra.mal i{background:var(--mal);box-shadow:0 0 10px var(--mal)}

.llamado{display:flex;gap:14px;align-items:center;margin-top:14px;padding:16px 18px}
.llamado .ico{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;flex:none;background:rgba(240,107,240,.12);color:var(--neon)}
.llamado .ico svg{width:22px;height:22px}
.llamado .txt{flex:1;min-width:0}
.llamado .txt b{display:block;font-weight:500}
.llamado .txt span{color:var(--texto-2);font-size:.9rem}
.llamado.dorado .ico{background:rgba(231,198,118,.12);color:var(--oro)}

.ingresos{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.ingresos b{font:400 2.2rem/1 var(--f-display);background:var(--oro-grad);-webkit-background-clip:text;background-clip:text;color:transparent}

/* Chips de filtro y búsqueda */
.herramientas{display:grid;gap:12px;margin-bottom:16px}
.buscar{position:relative}
.buscar svg{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;color:var(--texto-3)}
.buscar input{padding-left:42px;border-radius:999px}
.chips{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}
.chips::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--linea-2);background:rgba(255,255,255,.03);border-radius:999px;padding:8px 14px;font-size:.85rem;color:var(--texto-2);cursor:pointer;transition:all .2s}
.chip b{font-weight:500;color:var(--texto);margin-left:4px}
.chip[aria-pressed="true"]{background:rgba(231,198,118,.14);border-color:var(--oro);color:var(--oro-claro)}

/* Lista de alumnas */
.lista{display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}
.alumna{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.035);border:1px solid var(--linea-2);cursor:pointer;text-align:left;width:100%;transition:border-color .2s,background .2s,transform .2s}
.alumna:hover{border-color:var(--linea);background:rgba(255,255,255,.055)}
.avatar{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font:400 1.15rem var(--f-display);color:var(--oro-claro);background:radial-gradient(circle at 30% 25%,rgba(240,107,240,.35),rgba(42,20,56,.9));box-shadow:inset 0 0 0 1px rgba(231,198,118,.45)}
.alumna .nom,.alumna .det{display:block}
.alumna .nom{font-weight:500;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.alumna .det{color:var(--texto-3);font-size:.85rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.estado{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:999px;font-size:.75rem;letter-spacing:.03em;white-space:nowrap;border:1px solid currentColor}
.estado::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor;box-shadow:0 0 8px currentColor}
.e-activa,.e-aprobada{color:var(--ok)}.e-por_vencer{color:var(--aviso)}.e-vencida,.e-rechazada{color:var(--mal)}.e-nueva,.e-revision{color:var(--revision)}.e-en_linea{color:var(--neon)}.e-sin_pago,.e-archivada{color:var(--texto-3)}
.vacio{text-align:center;padding:48px 20px;color:var(--texto-2)}
.vacio svg{width:46px;height:46px;color:var(--oro);opacity:.8;margin-bottom:10px}
.vacio h3{font-size:1.5rem;color:var(--texto);margin-bottom:6px}

/* Comprobantes por revisar */
.revisar{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
.comp{display:grid;gap:16px;padding:16px}
.comp-img{display:block;width:100%;padding:0;position:relative;border-radius:14px;overflow:hidden;background:#0C0612;aspect-ratio:4/5;cursor:zoom-in;border:1px solid var(--linea-2)}
.comp-img img{width:100%;height:100%;object-fit:cover;object-position:top;display:block}
.comp-img .pdf{position:absolute;inset:0;display:grid;place-items:center;color:var(--texto-2);gap:6px;text-align:center}
.comp-img .lupa{position:absolute;right:10px;bottom:10px;background:rgba(18,8,24,.75);border-radius:999px;padding:6px 12px;font-size:.78rem;backdrop-filter:blur(6px)}
.comp h3{font-size:1.5rem}
.datos{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.93rem;margin:12px 0}
.datos dt{color:var(--texto-3)}
.datos dd{margin:0;overflow-wrap:anywhere}
.acciones{display:flex;flex-wrap:wrap;gap:10px;margin-top:6px}
.acciones .btn{flex:1 1 auto;white-space:normal;text-align:center}

/* Hoja inferior (detalle, formularios) */
.velo{position:fixed;inset:0;z-index:60;background:rgba(6,2,10,.62);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity .25s}
.velo.abierto{opacity:1}
.hoja{position:fixed;z-index:61;left:0;right:0;bottom:0;max-height:92vh;max-height:92dvh;overflow:auto;overscroll-behavior:contain;background:var(--hoja);border-radius:24px 24px 0 0;border-top:1px solid var(--linea);padding:10px var(--gutter) calc(24px + env(safe-area-inset-bottom,0px));transform:translateY(100%);transition:transform .32s cubic-bezier(.2,.8,.2,1);box-shadow:0 -20px 60px rgba(0,0,0,.5)}
.hoja.abierto{transform:none}
.hoja .asa{width:44px;height:5px;border-radius:9px;background:rgba(255,255,255,.18);margin:4px auto 14px}
.hoja-cab{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.hoja-cab h2{font-size:1.8rem;flex:1}
.historial{display:grid;gap:8px;margin-top:8px}
.mov{display:grid;grid-template-columns:1fr auto;gap:4px 12px;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid var(--linea-2);font-size:.9rem}
.mov .que{font-weight:500}
.mov .cuando{color:var(--texto-3);font-size:.82rem}
.mov .botones{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}

/* Contenido */
.migas{display:flex;flex-wrap:wrap;align-items:center;gap:4px;margin:4px 0 16px;font-size:.92rem}
.migas button{background:none;border:0;color:var(--oro);cursor:pointer;padding:4px 2px}
.migas button[aria-current]{color:var(--texto);cursor:default}
.migas span{color:var(--texto-3)}
.carpetas{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:22px}
.carpeta{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:1/1;border:1px solid var(--linea);background:linear-gradient(150deg,#2A1438,#160B20);cursor:pointer;text-align:left;padding:0;transition:transform .25s,box-shadow .25s}
.carpeta:hover{transform:translateY(-3px);box-shadow:0 14px 34px rgba(0,0,0,.45),0 0 0 1px rgba(231,198,118,.4)}
.carpeta img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.78;transition:transform .6s,opacity .3s}
.carpeta:hover img{transform:scale(1.05);opacity:.9}
.carpeta .sin-portada{position:absolute;inset:0;display:grid;place-items:center;color:var(--oro);opacity:.55}
.carpeta .sin-portada svg{width:44px;height:44px}
.carpeta .pie{position:absolute;inset:auto 0 0 0;padding:34px 14px 12px;background:linear-gradient(180deg,transparent,rgba(10,4,14,.92))}
.carpeta .pie b{display:block;font:400 1.15rem/1.15 var(--f-display);overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.carpeta .pie span{font-size:.78rem;color:var(--texto-2)}
.rejilla{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;border-radius:14px;overflow:hidden}
.pieza{position:relative;aspect-ratio:1/1;background:#1A0E24;border:0;padding:0;cursor:pointer;overflow:hidden}
.pieza img,.pieza video{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .4s,transform .4s}
.pieza img.lista,.pieza video.lista{opacity:1}
.pieza:hover img{transform:scale(1.04)}
.pieza .marca-tipo{position:absolute;top:6px;right:6px;background:rgba(10,4,14,.7);border-radius:999px;padding:3px 8px;font-size:.68rem;letter-spacing:.06em;display:flex;gap:4px;align-items:center}
.pieza .marca-tipo svg{width:12px;height:12px}
.pieza .icono-archivo{position:absolute;inset:0;display:grid;place-content:center;justify-items:center;gap:6px;color:var(--oro);padding:8px;text-align:center}
.pieza .icono-archivo svg{width:30px;height:30px}
.pieza .icono-archivo small{color:var(--texto-2);font-size:.7rem;overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.esqueleto{background:linear-gradient(100deg,rgba(255,255,255,.03) 30%,rgba(255,255,255,.08) 50%,rgba(255,255,255,.03) 70%) 0 0/200% 100%;animation:brillo 1.4s linear infinite}
@keyframes brillo{to{background-position:-200% 0}}
.nota-carpeta{display:flex;gap:12px;align-items:flex-start;color:var(--texto-2);font-size:.88rem;margin-top:18px}
.nota-carpeta svg{width:20px;height:20px;color:var(--oro);flex:none;margin-top:2px}

/* Visor */
.visor{position:fixed;inset:0;z-index:80;background:rgba(6,2,10,.96);display:grid;grid-template-rows:auto minmax(0,1fr) auto;grid-template-columns:minmax(0,1fr);opacity:0;transition:opacity .25s}
.visor.abierto{opacity:1}
.visor-cab{display:flex;align-items:center;gap:10px;padding:calc(10px + env(safe-area-inset-top,0px)) var(--gutter) 10px}
.visor-cab .nombre{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--texto-2);font-size:.9rem}
.visor-medio{position:relative;display:grid;place-items:center;overflow:hidden;touch-action:pan-y;min-height:0;padding:0 8px}
.visor-medio img,.visor-medio video{position:absolute;top:0;left:8px;width:calc(100% - 16px);height:100%;object-fit:contain;display:block}
.visor-medio audio{width:min(480px,100%)}
.visor-medio iframe{width:min(900px,100%);height:100%;border:0;background:#fff}
.visor-medio .cargando-visor{position:absolute;width:34px;height:34px;border-radius:50%;border:2px solid var(--oro);border-color:var(--oro) transparent;animation:gira .9s linear infinite}
.visor-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,.08);border:0;color:#fff;width:46px;height:46px;border-radius:50%;cursor:pointer;display:grid;place-items:center}
.visor-nav svg{width:22px;height:22px}
.visor-nav.ant{left:12px}.visor-nav.sig{right:12px}
.visor-pie{display:flex;justify-content:center;gap:10px;padding:12px var(--gutter) calc(14px + env(safe-area-inset-bottom,0px))}
.visor-pie .info{color:var(--texto-3);font-size:.82rem;align-self:center}

/* Avisos */
.avisos{position:fixed;z-index:90;left:50%;transform:translateX(-50%);bottom:calc(92px + env(safe-area-inset-bottom,0px));display:grid;gap:8px;width:min(460px,calc(100% - 32px))}
.aviso{display:flex;align-items:center;gap:12px;padding:12px 14px 12px 16px;border-radius:14px;background:#2A1A3A;border:1px solid var(--linea);box-shadow:var(--sombra);animation:sube .3s cubic-bezier(.2,.8,.2,1)}
.aviso p{flex:1;font-size:.92rem}
.aviso.mal{border-color:rgba(255,143,163,.5)}
@keyframes sube{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* Ajustes */
.plan-editor{display:grid;gap:10px;padding:14px;border-radius:14px;background:rgba(255,255,255,.03);border:1px solid var(--linea-2);margin-bottom:10px}
.plan-editor .fila3{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.plan-editor .pie-plan{display:flex;justify-content:space-between;align-items:center;gap:10px}
.interruptor{display:inline-flex;align-items:center;gap:10px;cursor:pointer;font-size:.88rem;color:var(--texto-2)}
.interruptor input{appearance:none;width:44px;height:26px;border-radius:999px;background:rgba(255,255,255,.12);position:relative;cursor:pointer;transition:background .2s;flex:none}
.interruptor input::after{content:"";position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:#fff;transition:transform .2s}
.interruptor input:checked{background:var(--oro-hondo)}
.interruptor input:checked::after{transform:translateX(18px)}
.copiable{display:flex;gap:8px;align-items:center;padding:6px 6px 6px 14px;border-radius:999px;background:rgba(255,255,255,.045);border:1px solid var(--linea-2)}
.copiable code{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:500 .92rem var(--f-texto);color:var(--oro-claro)}
.codigo-nuevo{font:500 1.7rem/1.2 var(--f-texto);letter-spacing:.2em;text-align:center;padding:18px;border-radius:14px;background:rgba(231,198,118,.08);border:1px dashed var(--oro);color:var(--oro-claro);margin:12px 0;user-select:all}
.ajustes{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
.ajustes h2{font-size:1.5rem;margin-bottom:4px}
.ajustes .ayuda{color:var(--texto-2);font-size:.9rem;margin-bottom:14px}

/* ===== Inscripción pública ===== */
.insc{max-width:640px;margin:0 auto;padding:calc(24px + env(safe-area-inset-top,0px)) var(--gutter) 60px}
.insc-cab{text-align:center;margin-bottom:26px}
.insc-cab .eyebrow{display:block;margin-bottom:6px}
.insc-cab img{display:block;width:170px;height:auto;margin:0 auto 10px;filter:drop-shadow(0 0 10px rgba(255,120,255,.5))}
.insc-cab h1{font-size:clamp(2.2rem,8vw,3.2rem)}
.insc-cab p{color:var(--texto-2);margin-top:10px}
.insc-cab .filete{margin:16px auto}
.pasos{display:flex;justify-content:center;gap:8px;margin:0 0 22px;padding:0;list-style:none;counter-reset:p}
.pasos li{display:flex;align-items:center;gap:8px;color:var(--texto-3);font-size:.8rem;letter-spacing:.06em}
.pasos li::before{counter-increment:p;content:counter(p);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--linea-2);font-size:.82rem}
.pasos li+li::after{order:-1;content:"";width:18px;height:1px;background:var(--linea-2)}
.pasos li.hecho,.pasos li.actual{color:var(--texto)}
.pasos li.actual::before{background:var(--oro-grad);color:#2A1438;border-color:transparent;box-shadow:0 0 14px rgba(231,198,118,.4)}
.pasos li.hecho::before{content:"✓";border-color:var(--oro);color:var(--oro)}
.paso{animation:entra .35s cubic-bezier(.2,.7,.2,1)}
.paso>h2{font-size:1.9rem;margin-bottom:6px}
.paso>.ayuda{color:var(--texto-2);margin-bottom:18px}
.planes{display:grid;gap:12px}
.plan{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;padding:18px;border-radius:18px;cursor:pointer;background:rgba(255,255,255,.035);border:1px solid var(--linea-2);transition:border-color .2s,background .2s,box-shadow .2s}
.plan input{position:absolute;opacity:0;pointer-events:none}
.plan .bola{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--linea);display:grid;place-items:center}
.plan .bola::after{content:"";width:12px;height:12px;border-radius:50%;background:var(--oro-grad);transform:scale(0);transition:transform .2s}
.plan:has(input:checked){border-color:var(--oro);background:rgba(231,198,118,.07);box-shadow:0 0 0 3px rgba(231,198,118,.1)}
.plan:has(input:checked) .bola::after{transform:scale(1)}
.plan:has(input:focus-visible){outline:2px solid var(--oro);outline-offset:3px}
.plan b{display:block;font-weight:500;font-size:1.05rem}
.plan small{color:var(--texto-2);font-size:.86rem}
.plan .precio{font:400 1.45rem var(--f-display);color:var(--oro-claro);text-align:right;white-space:nowrap}
.plan .precio small{display:block;font:400 .72rem var(--f-texto);color:var(--texto-3);letter-spacing:.06em}
.monto{text-align:center;padding:22px;margin-bottom:16px}
.monto span{font-size:.75rem;letter-spacing:.2em;text-transform:uppercase;color:var(--oro)}
.monto b{display:block;font:400 3rem/1.1 var(--f-display);margin-top:4px;background:var(--oro-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.banco{display:grid;gap:10px}
.banco .dato{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 10px;padding:12px 8px 12px 16px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid var(--linea-2)}
.banco .dato span{grid-column:1;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;color:var(--texto-3)}
.banco .dato b{grid-column:1;font-weight:500;font-size:1.08rem;letter-spacing:.04em;overflow-wrap:anywhere}
.banco .dato .btn{grid-column:2;grid-row:1/3}
.subir{position:relative;display:grid;place-items:center;text-align:center;gap:8px;min-height:180px;padding:22px;border-radius:18px;border:1.5px dashed var(--linea);background:rgba(231,198,118,.04);cursor:pointer;transition:border-color .2s,background .2s;overflow:hidden}
.subir:hover,.subir.encima{border-color:var(--oro);background:rgba(231,198,118,.08)}
.subir svg{width:36px;height:36px;color:var(--oro)}
.subir b{font-weight:500}
.subir small{color:var(--texto-3)}
.subir input{position:absolute;inset:0;opacity:0;cursor:pointer}
.subir.con-archivo{place-items:stretch;padding:12px}
.vista-previa{display:flex;gap:14px;align-items:center;text-align:left}
.vista-previa img{width:84px;height:110px;object-fit:cover;border-radius:10px;border:1px solid var(--linea-2)}
.vista-previa .doc{width:84px;height:110px;border-radius:10px;display:grid;place-items:center;background:rgba(255,255,255,.05)}
.navegar{display:flex;gap:10px;margin-top:22px}
.navegar .btn{flex:1}
.listo{text-align:center;padding:30px 22px}
.listo .sello{width:84px;height:84px;margin:0 auto 16px;border-radius:50%;display:grid;place-items:center;background:var(--oro-grad);color:#2A1438;box-shadow:0 0 34px rgba(231,198,118,.45);animation:sello .6s cubic-bezier(.2,1.4,.4,1)}
.listo .sello svg{width:40px;height:40px}
@keyframes sello{from{transform:scale(.4);opacity:0}}
.listo h2{font-size:2.1rem}
.listo .folio{display:inline-block;margin:14px 0 6px;padding:8px 16px;border-radius:999px;border:1px solid var(--oro);color:var(--oro-claro);letter-spacing:.14em}
.listo p{color:var(--texto-2)}
.listo .btn{margin-top:20px}
.letra-chica{color:var(--texto-3);font-size:.8rem;margin-top:16px;text-align:center}

/* ===== Clases en línea (público) ===== */
.cl-barra{position:sticky;top:0;z-index:30;display:flex;align-items:center;gap:14px;padding:calc(12px + env(safe-area-inset-top,0px)) var(--gutter) 12px;background:rgba(18,8,24,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--linea-2)}
.cl-marca{display:flex;align-items:center;gap:10px;text-decoration:none}
.cl-marca img{height:32px;width:auto;filter:drop-shadow(0 0 6px rgba(240,107,240,.5))}
.cl-marca span{font:400 1rem var(--f-display);color:var(--oro-claro);letter-spacing:.04em}
.cl-yo{margin-left:auto;display:flex;align-items:center;gap:14px;font-size:.9rem;color:var(--texto-2)}
.cl-yo a{color:var(--oro);text-decoration:none}
.cl{max-width:1100px;margin:0 auto;padding:24px var(--gutter) 60px}
.cl-hero{text-align:center;padding:28px 0 8px}
.cl-hero h1{font-size:clamp(2.6rem,9vw,4.4rem)}
.cl-hero p{color:var(--texto-2);max-width:560px;margin:0 auto}
.cl-bienvenida{margin-bottom:18px}
.cl-rejilla{display:grid;gap:16px;grid-template-columns:minmax(0,1fr)}
.cl-modulo{display:grid;grid-template-columns:120px minmax(0,1fr);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;background:rgba(255,255,255,.035);border:1px solid var(--linea-2);transition:transform .25s,border-color .25s,box-shadow .25s}
.cl-modulo:hover{transform:translateY(-3px);border-color:var(--linea);box-shadow:0 16px 40px rgba(0,0,0,.4)}
.cl-portada{position:relative;display:block;min-height:150px;background:radial-gradient(circle at 30% 20%,rgba(240,107,240,.35),transparent 60%),linear-gradient(150deg,#3A1B4D,#160B20);overflow:hidden}
.cl-portada img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cl-portada.grande{border-radius:20px;aspect-ratio:4/5;min-height:0}
.cl-num{position:absolute;left:10px;bottom:10px;padding:4px 10px;border-radius:999px;background:rgba(10,4,14,.72);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--oro-claro);backdrop-filter:blur(6px)}
.cl-info{display:grid;align-content:center;gap:6px;padding:16px}
.cl-info b{font:400 1.35rem/1.15 var(--f-display)}
.cl-info small{color:var(--texto-2)}
.cl-info .btn{justify-self:start;margin-top:4px}
.cl-precio{font:400 1.4rem var(--f-display);color:var(--oro-claro)}
.cl-paquete{border-color:var(--oro)}
.cl-barra-prog{display:block;height:4px;border-radius:9px;background:rgba(255,255,255,.08);overflow:hidden}
.cl-barra-prog i{display:block;height:100%;background:var(--oro-grad);transition:width .4s}
.cl-enlace{margin-top:32px}
.cl-enlace h2{font-size:1.7rem}
.cl-enlace p{color:var(--texto-2);margin:6px 0 14px}
.cl-fila{display:grid;gap:10px;grid-template-columns:minmax(0,1fr)}
.cl-volver{display:inline-block;margin-bottom:14px;color:var(--oro);text-decoration:none;font-size:.92rem}
.cl-sala{display:grid;gap:18px;grid-template-columns:minmax(0,1fr)}
.cl-pantalla{position:relative;border-radius:18px;overflow:hidden;background:#000;aspect-ratio:16/9;max-height:78vh;border:1px solid var(--linea-2)}
.cl-pantalla video{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#000}
.cl-agua{position:absolute;pointer-events:none;font-size:.78rem;letter-spacing:.06em;color:rgba(255,255,255,.22);text-shadow:0 1px 2px rgba(0,0,0,.4);transition:left 1.5s,top 1.5s;white-space:nowrap}
.cl-ahora h1{font-size:clamp(1.6rem,5vw,2.3rem);margin:6px 0 12px}
.cl-ahora .acciones .btn{flex:0 1 auto}
.cl-ahora .btn[disabled]{opacity:.35}
.cl-lista{list-style:none;margin:0;padding:0;display:grid;gap:6px}
.cl-lista li{border-radius:14px;background:rgba(255,255,255,.03);border:1px solid var(--linea-2)}
.cl-lista button,.cl-lista.bloqueada li{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;width:100%;padding:12px 14px;background:none;border:0;text-align:left;cursor:pointer;color:inherit}
.cl-n{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--linea);font-size:.85rem;color:var(--oro-claro)}
.cl-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cl-visto{color:var(--ok);opacity:0}
.cl-lista li.vista .cl-visto{opacity:1}
.cl-lista li.actual{border-color:var(--oro);background:rgba(231,198,118,.08)}
.cl-lista li.actual .cl-n{background:var(--oro-grad);color:#2A1438;border-color:transparent}
.cl-lista.bloqueada li{cursor:default;color:var(--texto-2)}
.cl-venta{display:grid;gap:24px;grid-template-columns:minmax(0,1fr)}
.cl-venta h1{font-size:clamp(2.2rem,7vw,3.4rem);margin-top:6px}
.cl-desc{color:var(--texto-2);margin-bottom:18px;white-space:pre-line}
.cl-comprar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:20px;padding:18px;border-radius:18px;border:1px solid var(--oro);background:rgba(231,198,118,.06)}
.cl-comprar b{display:block;font:400 2.2rem/1 var(--f-display);background:var(--oro-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.cl-comprar small{color:var(--texto-2)}
/* Panel · sección En línea */
.mod-panel{display:grid;grid-template-columns:96px minmax(0,1fr);gap:16px;align-items:start}
.mod-panel .cl-portada{min-height:0;aspect-ratio:4/5;border-radius:14px}
.pasos-linea{display:grid;gap:12px;counter-reset:pl;margin:0;padding:0;list-style:none}
.pasos-linea li{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;color:var(--texto-2)}
.pasos-linea li::before{counter-increment:pl;content:counter(pl);width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:var(--oro-grad);color:#2A1438;font-weight:600;font-size:.85rem}
.pasos-linea b{color:var(--texto)}
.ruta-samba{font:500 .82rem var(--f-texto);color:var(--oro-claro);background:rgba(255,255,255,.04);border:1px dashed var(--linea);border-radius:10px;padding:8px 10px;overflow-wrap:anywhere}
@media (min-width:640px){
  .cl-rejilla{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cl-modulo{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr}
  .cl-modulo .cl-portada{aspect-ratio:4/3}
  .cl-fila{grid-template-columns:minmax(0,1fr) auto}
}
@media (min-width:980px){
  .cl-rejilla{grid-template-columns:repeat(3,minmax(0,1fr))}
  .cl-sala{grid-template-columns:minmax(0,1fr) 340px;align-items:start}
  .cl-pantalla{grid-column:1}
  .cl-ahora{grid-column:1}
  .cl-lista#lista{grid-column:2;grid-row:1/3;max-height:78vh;overflow:auto}
  .cl-venta{grid-template-columns:400px minmax(0,1fr);align-items:start}
}
@media (min-width:640px){
  .cifras{grid-template-columns:repeat(4,1fr)}
  .carpetas{grid-template-columns:repeat(3,1fr)}
  .rejilla{grid-template-columns:repeat(4,1fr);gap:6px}
  .comp{grid-template-columns:260px 1fr;align-items:start}
  .hoja{left:50%;right:auto;width:min(620px,100%);bottom:50%;border-radius:24px;border:1px solid var(--linea);transform:translate(-50%,calc(50% + 30px));opacity:0;transition:transform .28s cubic-bezier(.2,.8,.2,1),opacity .2s;max-height:88vh}
  .hoja.abierto{transform:translate(-50%,50%);opacity:1}
  .hoja .asa{display:none}
}
@media (min-width:980px){
  .app{grid-template-columns:240px minmax(0,1fr)}
  .lateral{position:sticky;top:0;inset:auto;height:100vh;height:100dvh;border-top:0;border-right:1px solid var(--linea);padding:28px 16px;background:rgba(18,8,24,.55)}
  .lateral .logo{display:block;width:150px;height:auto;margin:0 8px 34px;filter:drop-shadow(0 0 8px rgba(240,107,240,.5))}
  .menu{grid-template-columns:1fr;gap:4px}
  .menu button{grid-template-columns:auto 1fr;justify-items:start;align-items:center;gap:14px;padding:12px 14px;font-size:.95rem;letter-spacing:.02em}
  .menu button:hover{background:rgba(255,255,255,.04);color:var(--texto)}
  .menu button[aria-current="page"]{background:rgba(231,198,118,.1)}
  .insignia{position:static;margin-left:auto;grid-column:3}
  .menu button{grid-template-columns:auto 1fr auto}
  .barra .logo-chico{display:none}
  .principal{padding:0 40px 60px}
  .carpetas{grid-template-columns:repeat(4,1fr)}
  .rejilla{grid-template-columns:repeat(6,1fr)}
  .avisos{bottom:28px}
  .revisar{grid-template-columns:repeat(2,minmax(0,1fr))}
  .comp{grid-template-columns:200px 1fr}
}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}

/* Calendario de clases */
.clase-cal{display:grid;grid-template-columns:62px minmax(0,1fr);gap:12px;align-items:center;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.035);border:1px solid var(--linea-2);border-left:3px solid var(--c);cursor:pointer;transition:background .2s}
.clase-cal:hover{background:rgba(255,255,255,.06)}
.clase-cal .hora{font:400 1.25rem/1.05 var(--f-texto);color:var(--c);font-variant-numeric:tabular-nums}
.clase-cal .hora small{display:block;font-size:.78rem;color:var(--texto-3)}
.clase-cal b{display:block;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.clase-cal small{display:block;color:var(--texto-3);font-size:.82rem}
.clase-cal.cancelada{opacity:.55}
.clase-cal.cancelada b{text-decoration:line-through}
.dia-cal{margin-bottom:18px}
.dia-cal h3{font-size:1.25rem;margin-bottom:8px;display:flex;align-items:center;gap:10px}
.dia-cal.hoy h3{color:var(--oro-claro)}
.vacio-dia{color:var(--texto-3);font-size:.88rem;padding:4px 2px}
.mes-cal{padding:14px}
.mes-cab{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.mes-cab b{font:400 1.25rem var(--f-display)}
.rejilla-mes{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.rejilla-mes .dsem{font-size:.72rem;color:var(--texto-3);padding:4px 0}
.rejilla-mes .celda{display:grid;justify-items:center;gap:4px;padding:8px 0 6px;border-radius:10px;border:1px solid transparent;background:none;color:var(--texto);cursor:pointer;min-height:48px}
.rejilla-mes .celda:hover{background:rgba(255,255,255,.05)}
.rejilla-mes .celda b{font-weight:400;font-size:.95rem}
.rejilla-mes .celda.hoy b{color:var(--oro-claro);font-weight:600}
.rejilla-mes .celda.elegido{border-color:var(--oro);background:rgba(231,198,118,.08)}
.puntos{display:flex;gap:3px;min-height:6px}
.puntos i{width:6px;height:6px;border-radius:50%;border:1px solid}
.color-cal{width:34px;height:34px;border-radius:50%;background:var(--c);border:2px solid transparent;cursor:pointer;box-shadow:0 0 0 2px rgba(0,0,0,.3) inset}
.color-cal[aria-pressed="true"]{border-color:#fff;box-shadow:0 0 12px var(--c)}
