/* Academia de Alto Impacto — hoja de estilos de la plataforma
   Marca (Iris): morado #552189, oscuro #160620, naranja #F05613 (decorativo o botón con texto oscuro; texto naranja = #C2410C),
   dorado #D9A73B, Montserrat local. Color por programa en --prog (lo emite el servidor con nonce).
   Todo lo de la plataforma cuelga de .ap (body de las zonas app, admin y auth). La landing pública usa landing-kit-v3.css
   (y landing.css) y solo recibe de aquí los tokens de marca y las clases "ac-" del bloque de compatibilidad. */

/* ========== compatibilidad con la landing (index.php) ========== */
:root{
  --accent:#552189; --accent-ink:#ffffff;
  --dark:#160620; --dark-ink:#f6f1fa;
  --naranja:#F05613; --naranja-texto:#C2410C; --dorado:#D9A73B; --peligro:#B42318;
  --surface:#f6f2f9; --ink:#1b1024; --muted:#5d5368; --line:#e7e0ee;
  --font-display:'Montserrat','Montserrat Fallback',system-ui,-apple-system,'Segoe UI',sans-serif;
  --font-body:'Montserrat','Montserrat Fallback',system-ui,-apple-system,'Segoe UI',sans-serif;
  --fw-display:700; --ls-display:-.02em;
}
.saltar{position:absolute;left:-9999px;top:0;z-index:200;background:#160620;color:#f6f1fa;padding:.7rem 1rem;border-radius:0 0 10px 0;font-weight:600}
.saltar:focus{left:0}
.ac-nav .nav__in{flex-wrap:wrap;row-gap:6px;padding-block:8px}
.ac-marca{font-weight:800;color:var(--dark)}
.ac-marca span{color:var(--accent)}
.ac-menu{display:flex;align-items:center;gap:6px 18px;flex-wrap:wrap;font-size:.92rem;font-weight:600}
.ac-menu a:not(.btn){color:var(--muted);padding:.35rem 0}
.ac-menu a:not(.btn):hover{color:var(--ink)}
.ac-salir{margin:0}
@media(max-width:599px){.ac-menu{width:100%;gap:4px 16px}}
.ac-hero h1{max-width:14ch}
.ac-hero .lead{margin-top:1.25rem}
.ac-mt{margin-top:1rem}
.btn--naranja{background:var(--naranja);color:var(--dark)}
.btn--naranja:hover{background:color-mix(in srgb,var(--naranja) 88%,#fff)}
.btn--peligro{background:var(--peligro);color:#fff}
.btn--peligro:hover{background:color-mix(in srgb,var(--peligro) 85%,#000)}
.ac-pie .social a{display:inline-flex;align-items:center;gap:.45rem}
.ac-pie .social .ico{color:var(--dorado)}

/* ========== tokens de la plataforma ========== */
.ap{
  /* MODO DÍA (nunca blanco): lila-crema de la marca; la cabecera sigue siendo violeta oscuro */
  --bg:#e8dcef; --surface:#dccde8; --card:#f3ebf7; --card2:#ece0f3;
  --ink:#1b0628; --muted:#503a66; --line:#cbb7dc; --field-line:#7a6590;
  --accent:#F05613; --accent-hover:#d9490c; --accent-ink:#1b0628; --accent-t:#8a2f05; --accent-soft:#e0cdee;
  --violeta:#552189; --violeta-hover:#3d1660;
  --focus:#552189; --hdr:rgba(27,6,40,.94);
  --ok:#136b33; --ok-bg:#e4f5ea; --warn:#7a4a05; --warn-bg:#fff2d9; --err:#a3180b; --err-bg:#fdecea;
  --neutral:#4a4153; --neutral-bg:#eee9f3;
  --naranja:#F05613; --dorado:#D9A73B; --peligro:#B42318; --peligro-hover:#8f1b12;
  --prog:var(--accent);
  --shadow:0 1px 2px rgba(22,6,32,.06),0 10px 26px -14px rgba(22,6,32,.22);
  --shadow-lg:0 2px 4px rgba(22,6,32,.08),0 22px 44px -18px rgba(22,6,32,.34);
  --r-sm:8px; --r:12px; --r-lg:18px;
  --font:'Montserrat','Montserrat Fallback',system-ui,-apple-system,'Segoe UI',sans-serif;
  --top:64px;
}
html[data-tema="oscuro"]{color-scheme:dark}
html[data-tema="oscuro"] .ap{
  /* MODO NOCHE: violetas muy oscuros de la marca (#1B0628 / #220833 / #2F1049) + naranja */
  --bg:#1b0628; --surface:#220833; --card:#2a0d41; --card2:#331250;
  --ink:#f7f1fa; --muted:#c3afd6; --line:#472071; --field-line:#9a82b3;
  --accent:#F05613; --accent-hover:#ff7a3d; --accent-ink:#1b0628; --accent-t:#ff9a66; --accent-soft:#3d1660;
  --violeta:#8a4bd0; --violeta-hover:#a06ae0;
  --focus:#ffb38f; --hdr:rgba(27,6,40,.94);
  --ok:#6fd49a; --ok-bg:#123424; --warn:#f2c46e; --warn-bg:#3b2b0d; --err:#ff9f95; --err-bg:#3e1612;
  --neutral:#cfc3dd; --neutral-bg:#2c1c3c;
  --peligro:#d4352a; --peligro-hover:#e24a3f;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 26px -14px rgba(0,0,0,.7);
  --shadow-lg:0 2px 4px rgba(0,0,0,.5),0 22px 44px -18px rgba(0,0,0,.8);
}

/* ========== base ========== */
.ap{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:1rem;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden}
.ap *,.ap *::before,.ap *::after{box-sizing:border-box}
.ap main{flex:1 0 auto;width:100%}
.ap [hidden]{display:none !important}
.ap :where(h1,h2,h3,h4){font-family:var(--font);margin:0;line-height:1.15;letter-spacing:-.02em;text-wrap:balance;overflow-wrap:break-word}
.ap :where(h1){font-size:clamp(1.65rem,4.4vw,2.35rem);font-weight:800}
.ap :where(h2){font-size:clamp(1.15rem,2.6vw,1.45rem);font-weight:800}
.ap :where(h3){font-size:1.05rem;font-weight:700;letter-spacing:-.01em}
.ap :where(p){margin:0;text-wrap:pretty}
.ap :where(ul,ol){margin:0;padding:0;list-style:none}
.ap :where(a){color:inherit;text-decoration:none}
.ap :where(button,input,select,textarea){font:inherit;color:inherit}
.ap img,.ap svg{max-width:100%;display:block}
.ap :focus-visible{outline:3px solid var(--focus);outline-offset:2px;border-radius:6px}
.ap .sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;margin:-1px;padding:0;border:0}
.ap .muted{color:var(--muted)}
.ap .sm{font-size:.9rem}
.ap .xs{font-size:.8rem}
.ap .wrap{width:100%;max-width:1240px;margin-inline:auto;padding-inline:20px}
.ap .wrap--mid{max-width:1000px}
.ap .wrap--narrow{max-width:680px}
.ap .sec{padding-block:clamp(22px,4vw,44px)}
.ap .sec--tight{padding-block:clamp(16px,3vw,28px)}
.ap .sec--flush-top{padding-top:0}
.ap .stack>*+*{margin-top:1.1rem}
.ap .ac-mt{margin-top:1rem}
.ap .kicker{display:inline-flex;align-items:center;gap:.5rem;font-size:.75rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-t)}
.ap .lead{font-size:clamp(1rem,2vw,1.12rem);color:var(--muted);max-width:62ch}
.ap .ac-enlace,.ap .link-arrow{color:var(--accent-t);font-weight:600;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1.5px}
.ap .link-arrow{display:inline-flex;align-items:center;gap:.4rem;text-decoration:none;font-weight:700}
.ap .link-arrow:hover{text-decoration:underline}
.ap .ac-enlace:hover{text-decoration-thickness:2.5px}
.ap code{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.88em;background:var(--surface);padding:.1em .4em;border-radius:5px}

/* ---------- iconos (SVG propios como máscara) ---------- */
.ap .ico{display:inline-block;flex:none;width:1.25em;height:1.25em;background:currentColor;vertical-align:-.25em;-webkit-mask:var(--i) center/contain no-repeat;mask:var(--i) center/contain no-repeat}
.ap .i-check{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}
.ap .i-check-circle{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M22 11.08V12a10 10 0 1 1-5.93-9.14'/%3E%3Cpolyline points='22 4 12 14.01 9 11.01'/%3E%3C/svg%3E")}
.ap .i-circle{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3C/svg%3E")}
.ap .i-play{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='%23000' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='7 4 20 12 7 20 7 4'/%3E%3C/svg%3E")}
.ap .i-lock{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='11' width='18' height='11' rx='2'/%3E%3Cpath d='M7 11V7a5 5 0 0 1 10 0v4'/%3E%3C/svg%3E")}
.ap .i-book{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z'/%3E%3Cpath d='M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z'/%3E%3C/svg%3E")}
.ap .i-calendar{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E")}
.ap .i-user{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='12' cy='7' r='4'/%3E%3C/svg%3E")}
.ap .i-users{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2'/%3E%3Ccircle cx='9' cy='7' r='4'/%3E%3Cpath d='M23 21v-2a4 4 0 0 0-3-3.87'/%3E%3Cpath d='M16 3.13a4 4 0 0 1 0 7.75'/%3E%3C/svg%3E")}
.ap .i-key{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.78 7.78 5.5 5.5 0 0 1 7.78-7.78zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4'/%3E%3C/svg%3E")}
.ap .i-shield{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z'/%3E%3C/svg%3E")}
.ap .i-file{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3C/svg%3E")}
.ap .i-clock{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cpolyline points='12 6 12 12 16 14'/%3E%3C/svg%3E")}
.ap .i-arrow{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3Cpolyline points='12 5 19 12 12 19'/%3E%3C/svg%3E")}
.ap .i-arrow-left{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='19' y1='12' x2='5' y2='12'/%3E%3Cpolyline points='12 19 5 12 12 5'/%3E%3C/svg%3E")}
.ap .i-chevron-down{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}
.ap .i-chevron-right{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='9 18 15 12 9 6'/%3E%3C/svg%3E")}
.ap .i-search{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='8'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E")}
.ap .i-sun{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='5'/%3E%3Cline x1='12' y1='1' x2='12' y2='3'/%3E%3Cline x1='12' y1='21' x2='12' y2='23'/%3E%3Cline x1='4.22' y1='4.22' x2='5.64' y2='5.64'/%3E%3Cline x1='18.36' y1='18.36' x2='19.78' y2='19.78'/%3E%3Cline x1='1' y1='12' x2='3' y2='12'/%3E%3Cline x1='21' y1='12' x2='23' y2='12'/%3E%3Cline x1='4.22' y1='19.78' x2='5.64' y2='18.36'/%3E%3Cline x1='18.36' y1='5.64' x2='19.78' y2='4.22'/%3E%3C/svg%3E")}
.ap .i-moon{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z'/%3E%3C/svg%3E")}
.ap .i-eye{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E")}
.ap .i-eye-off{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24'/%3E%3Cline x1='1' y1='1' x2='23' y2='23'/%3E%3C/svg%3E")}
.ap .i-log-out{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpolyline points='16 17 21 12 16 7'/%3E%3Cline x1='21' y1='12' x2='9' y2='12'/%3E%3C/svg%3E")}
.ap .i-grid{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='3' width='7' height='7' rx='1'/%3E%3Crect x='14' y='14' width='7' height='7' rx='1'/%3E%3Crect x='3' y='14' width='7' height='7' rx='1'/%3E%3C/svg%3E")}
.ap .i-video{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='23 7 16 12 23 17 23 7'/%3E%3Crect x='1' y='5' width='15' height='14' rx='2'/%3E%3C/svg%3E")}
.ap .i-info{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='16' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12.01' y2='8'/%3E%3C/svg%3E")}
.ap .i-alert{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='12' y1='8' x2='12' y2='12'/%3E%3Cline x1='12' y1='16' x2='12.01' y2='16'/%3E%3C/svg%3E")}
.ap .i-ig{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2' y='2' width='20' height='20' rx='5'/%3E%3Cpath d='M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z'/%3E%3Cline x1='17.5' y1='6.5' x2='17.51' y2='6.5'/%3E%3C/svg%3E")}
.ap .i-sliders{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='4' y1='21' x2='4' y2='14'/%3E%3Cline x1='4' y1='10' x2='4' y2='3'/%3E%3Cline x1='12' y1='21' x2='12' y2='12'/%3E%3Cline x1='12' y1='8' x2='12' y2='3'/%3E%3Cline x1='20' y1='21' x2='20' y2='16'/%3E%3Cline x1='20' y1='12' x2='20' y2='3'/%3E%3Cline x1='1' y1='14' x2='7' y2='14'/%3E%3Cline x1='9' y1='8' x2='15' y2='8'/%3E%3Cline x1='17' y1='16' x2='23' y2='16'/%3E%3C/svg%3E")}
.ap .i-layers{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='12 2 2 7 12 12 22 7 12 2'/%3E%3Cpolyline points='2 17 12 22 22 17'/%3E%3Cpolyline points='2 12 12 17 22 12'/%3E%3C/svg%3E")}
.ap .i-list{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='8' y1='6' x2='21' y2='6'/%3E%3Cline x1='8' y1='12' x2='21' y2='12'/%3E%3Cline x1='8' y1='18' x2='21' y2='18'/%3E%3Cline x1='3' y1='6' x2='3.01' y2='6'/%3E%3Cline x1='3' y1='12' x2='3.01' y2='12'/%3E%3Cline x1='3' y1='18' x2='3.01' y2='18'/%3E%3C/svg%3E")}
.ap .i-upload{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E")}
.ap .i-download{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E")}
.ap .i-plus{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E")}
.ap .i-x{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='18' y1='6' x2='6' y2='18'/%3E%3Cline x1='6' y1='6' x2='18' y2='18'/%3E%3C/svg%3E")}
.ap .i-card{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='1' y='4' width='22' height='16' rx='2'/%3E%3Cline x1='1' y1='10' x2='23' y2='10'/%3E%3C/svg%3E")}
.ap .i-activity{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='22 12 18 12 15 21 9 3 6 12 2 12'/%3E%3C/svg%3E")}
.ap .i-award{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='7'/%3E%3Cpolyline points='8.21 13.89 7 23 12 20 17 23 15.79 13.88'/%3E%3C/svg%3E")}
.ap .i-external{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6'/%3E%3Cpolyline points='15 3 21 3 21 9'/%3E%3Cline x1='10' y1='14' x2='21' y2='3'/%3E%3C/svg%3E")}
.ap .i-maximize{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3'/%3E%3C/svg%3E")}
.ap .i-radio{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='2'/%3E%3Cpath d='M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14'/%3E%3C/svg%3E")}
.ap .i-mail{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z'/%3E%3Cpolyline points='22,6 12,13 2,6'/%3E%3C/svg%3E")}
.ap .i-filter{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3'/%3E%3C/svg%3E")}
.ap .i-trash{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6m5 0V4a1 1 0 0 1 1-1h2a1 1 0 0 1 1 1v2'/%3E%3C/svg%3E")}
.ap .i-edit{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.1 2.1 0 0 1 3 3L7 19l-4 1 1-4z'/%3E%3C/svg%3E")}
.ap .i-refresh{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='23 4 23 10 17 10'/%3E%3Cpolyline points='1 20 1 14 7 14'/%3E%3Cpath d='M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15'/%3E%3C/svg%3E")}
.ap .i-home{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3 10l9-7 9 7v10a1 1 0 0 1-1 1h-5v-6H9v6H4a1 1 0 0 1-1-1z'/%3E%3C/svg%3E")}
.ap .i-bolt{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolygon points='13 2 3 14 12 14 11 22 21 10 12 10 13 2'/%3E%3C/svg%3E")}
.ap .i-wa{--i:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 11.5a8.5 8.5 0 0 1-12.6 7.4L3 20.5l1.7-5.3A8.5 8.5 0 1 1 21 11.5z'/%3E%3C/svg%3E")}

/* ========== botones ========== */
.ap .btn{display:inline-flex;align-items:center;justify-content:center;gap:.55rem;min-height:46px;padding:.65rem 1.25rem;border-radius:var(--r);border:2px solid transparent;
  font-weight:700;font-size:.95rem;line-height:1.2;text-align:center;cursor:pointer;max-width:100%;text-decoration:none;
  transition:background-color .18s,color .18s,border-color .18s,box-shadow .18s,transform .18s}
.ap .btn:active{transform:translateY(1px)}
.ap .btn--sm{min-height:40px;padding:.45rem .95rem;font-size:.88rem;border-radius:10px}
.ap .btn--block{display:flex;width:100%}
.ap .btn--solid{background:var(--accent);color:var(--accent-ink)}
.ap .btn--solid:hover{background:var(--accent-hover)}
.ap .btn--naranja{background:var(--naranja);color:#160620}
.ap .btn--naranja:hover{background:color-mix(in srgb,var(--naranja) 86%,#fff)}
.ap .btn--ink{background:var(--ink);color:var(--bg)}
.ap .btn--ink:hover{background:color-mix(in srgb,var(--ink) 85%,var(--accent))}
.ap .btn--line{background:transparent;color:var(--ink);border-color:var(--field-line)}
.ap .btn--line:hover{border-color:var(--accent-t);color:var(--accent-t);background:var(--accent-soft)}
.ap .btn--ghost{background:transparent;color:var(--accent-t)}
.ap .btn--ghost:hover{background:var(--accent-soft)}
.ap .btn--peligro{background:var(--peligro);color:#fff}
.ap .btn--peligro:hover{background:var(--peligro-hover)}
.ap .btn--claro{background:#fff;color:#160620}
.ap .btn--claro:hover{background:#f1e8fa}
.ap .btn-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.ap .btn[disabled]{opacity:.55;cursor:not-allowed}
@media(pointer:coarse){.ap .btn--sm{min-height:44px}}

/* ========== avisos, notas, vacíos ========== */
.ap .aviso{display:flex;gap:.7rem;align-items:flex-start;border-radius:var(--r);padding:.85rem 1rem;font-size:.93rem;font-weight:600;border:1px solid}
.ap .aviso__ic{flex:none;margin-top:.05rem}
.ap .aviso--ok{background:var(--ok-bg);border-color:color-mix(in srgb,var(--ok) 35%,transparent);color:var(--ok)}
.ap .aviso--error{background:var(--err-bg);border-color:color-mix(in srgb,var(--err) 35%,transparent);color:var(--err)}
.ap .aviso--info{background:var(--accent-soft);border-color:color-mix(in srgb,var(--accent-t) 30%,transparent);color:var(--ink)}
.ap .ac-errores{list-style:disc;padding-left:1.2rem;font-size:.9rem;color:var(--err)}
.ap .note{display:flex;gap:.7rem;align-items:flex-start;background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:var(--r);padding:.9rem 1.1rem;font-size:.93rem}
.ap .note .ico{color:var(--accent-t);margin-top:.15rem}
.ap .vacio{display:grid;justify-items:center;text-align:center;gap:.7rem;padding:clamp(32px,6vw,56px) 20px;background:var(--card);border:1px dashed var(--field-line);border-radius:var(--r-lg)}
.ap .vacio__ic{display:grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--accent-soft);color:var(--accent-t);font-size:1.6rem}
.ap .vacio p{color:var(--muted);max-width:46ch}
.ap .vacio__acc{margin-top:.4rem}

/* ========== formularios ========== */
.ap .form{display:grid;gap:1.1rem}
.ap .form label,.ap .campo>label{display:grid;gap:.4rem;font-weight:700;font-size:.9rem}
.ap .campo{display:grid;gap:.4rem}
.ap .form input:not([type=checkbox]):not([type=radio]):not([type=file]),.ap .form select,.ap .form textarea,.ap .buscador input{
  width:100%;min-height:48px;padding:.7rem .9rem;border:1.5px solid var(--field-line);border-radius:10px;background:var(--card);color:var(--ink);font-weight:500;font-size:1rem;
  transition:border-color .15s,box-shadow .15s}
.ap .form textarea{min-height:120px;resize:vertical;line-height:1.5}
.ap .form input[type=file]{width:100%;padding:.7rem;border:1.5px dashed var(--field-line);border-radius:10px;background:var(--card);font-size:.92rem;font-weight:500}
.ap .form input::placeholder{color:var(--muted);opacity:.85}
.ap .form input:focus,.ap .form select:focus,.ap .form textarea:focus,.ap .buscador input:focus{outline:none;border-color:var(--accent-t);box-shadow:0 0 0 4px color-mix(in srgb,var(--accent-t) 25%,transparent)}
.ap .form small,.ap .campo small{color:var(--muted);font-size:.84rem;font-weight:500}
.ap .two{display:grid;gap:1.1rem;grid-template-columns:1fr 1fr}
@media(max-width:639px){.ap .two{grid-template-columns:1fr}}
.ap .clave{position:relative}
.ap .clave input{padding-right:3.4rem !important}
.ap .clave__ver{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:10px;background:transparent;color:var(--muted);cursor:pointer}
.ap .clave__ver:hover{color:var(--accent-t);background:var(--accent-soft)}
.ap .ac-check{display:flex !important;gap:.7rem !important;align-items:flex-start;font-weight:500 !important;font-size:.92rem !important;line-height:1.5;cursor:pointer;min-height:44px;padding:.35rem 0}
.ap .ac-check input{flex:none;width:22px;height:22px;margin:.1rem 0 0;accent-color:var(--accent)}
.ap .ac-checks{display:grid;gap:.25rem 1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,270px),1fr));max-height:420px;overflow:auto;padding:.35rem;border:1px solid var(--line);border-radius:var(--r);background:var(--card2)}
.ap .faq{background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.ap .faq>summary{display:flex;align-items:center;justify-content:space-between;gap:1rem;cursor:pointer;list-style:none;min-height:52px;padding:.8rem 1.1rem;font-weight:700}
.ap .faq>summary::-webkit-details-marker{display:none}
.ap .faq>summary::after{content:"";width:1.1em;height:1.1em;background:currentColor;-webkit-mask:var(--i-chev) center/contain no-repeat;mask:var(--i-chev) center/contain no-repeat;transition:transform .2s}
.ap .faq[open]>summary::after{transform:rotate(180deg)}
.ap .faq[open]>summary{border-bottom:1px solid var(--line)}
.ap .faq>form,.ap .faq>div{padding:1.1rem}
.ap .faq--peligro{border-color:color-mix(in srgb,var(--err) 40%,var(--line))}
.ap .faq--peligro>summary{color:var(--err)}

/* ========== chips ========== */
.ap .chip{display:inline-flex;align-items:center;gap:.4rem;padding:.2rem .65rem;border-radius:999px;font-size:.75rem;font-weight:800;letter-spacing:.01em;background:var(--neutral-bg);color:var(--neutral);white-space:nowrap}
.ap .chip--estado::before,.ap .chip--listo::before,.ap .chip--activo::before,.ap .chip--revisar::before,.ap .chip--gracia::before,.ap .chip--invitado::before,
.ap .chip--suspendido::before,.ap .chip--oculto::before,.ap .chip--revocado::before,.ap .chip--borrado::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.ap .chip--listo,.ap .chip--activo,.ap .chip--ok{background:var(--ok-bg);color:var(--ok)}
.ap .chip--revisar,.ap .chip--gracia,.ap .chip--invitado,.ap .chip--aviso{background:var(--warn-bg);color:var(--warn)}
.ap .chip--suspendido,.ap .chip--error{background:var(--err-bg);color:var(--err)}
.ap .chip--acento{background:var(--accent-soft);color:var(--accent-t)}

/* ========== progreso ========== */
.ap .prog{display:grid;gap:.4rem;width:100%;max-width:420px}
.ap .prog__txt{display:flex;justify-content:space-between;gap:1rem;font-size:.8rem;font-weight:600;color:var(--muted)}
.ap .prog__txt b{color:var(--ink);font-weight:800;font-variant-numeric:tabular-nums}
.ap .prog__bar{width:100%;height:8px;appearance:none;-webkit-appearance:none;border:0;border-radius:99px;background:var(--line);overflow:hidden;color:var(--accent)}
.ap .prog__bar::-webkit-progress-bar{background:var(--line);border-radius:99px}
.ap .prog__bar::-webkit-progress-value{background:var(--prog);border-radius:99px}
.ap .prog__bar::-moz-progress-bar{background:var(--prog);border-radius:99px}
.ap .prog--claro .prog__txt{color:rgba(255,255,255,.82)}
.ap .prog--claro .prog__txt b{color:#fff}
.ap .prog--claro .prog__bar,.ap .prog--claro .prog__bar::-webkit-progress-bar{background:rgba(255,255,255,.22)}
.ap .prog--claro .prog__bar::-webkit-progress-value{background:#fff}
.ap .prog--claro .prog__bar::-moz-progress-bar{background:#fff}

/* ========== cabecera y navegación ========== */
.ap-top{position:sticky;top:0;z-index:50;background:var(--hdr);-webkit-backdrop-filter:saturate(1.4) blur(14px);backdrop-filter:saturate(1.4) blur(14px);border-bottom:1px solid var(--line)}
.ap-top__in{max-width:1240px;margin-inline:auto;padding-inline:20px;min-height:var(--top);display:flex;align-items:center;gap:20px}
.ap-logo{display:inline-flex;align-items:center;gap:.65rem;color:var(--ink);flex:none;align-self:flex-start;justify-self:start;min-height:44px}
.ap-logo__sv{width:34px;height:34px;flex:none}
.ap-logo__t{display:grid;line-height:1.05}
.ap-logo__t span{font-size:.68rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.ap-logo__t b{font-size:1.02rem;font-weight:800;letter-spacing:-.015em}
.ap-logo--claro{color:#fff}
.ap-logo--claro .ap-logo__t span{color:rgba(255,255,255,.75)}
.ap-nav{display:flex;align-items:center;gap:4px;margin-left:12px}
.ap-nav__a{display:inline-flex;align-items:center;gap:.5rem;min-height:44px;padding:.45rem .95rem;border-radius:999px;font-size:.92rem;font-weight:700;color:var(--muted);transition:background-color .15s,color .15s}
.ap-nav__a:hover{color:var(--ink);background:var(--accent-soft)}
.ap-nav__a[aria-current="page"]{background:var(--accent-soft);color:var(--accent-t)}
.ap-nav__solo-movil{display:none}
.ap-acciones{display:flex;align-items:center;gap:6px;margin-left:auto}
.ap-icon-btn{display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:50%;background:transparent;color:var(--muted);cursor:pointer;font-size:1.15rem}
.ap-icon-btn:hover{background:var(--accent-soft);color:var(--accent-t)}
.ap-tema .i-sun{display:none}
html[data-tema="oscuro"] .ap-tema .i-sun{display:inline-block}
html[data-tema="oscuro"] .ap-tema .i-moon{display:none}
.ap-user{position:relative}
.ap-user__btn{display:flex;align-items:center;gap:.2rem;min-height:44px;padding:.15rem .5rem .15rem .2rem;border-radius:999px;cursor:pointer;list-style:none;color:var(--muted)}
.ap-user__btn::-webkit-details-marker{display:none}
.ap-user__btn:hover,.ap-user[open] .ap-user__btn{background:var(--accent-soft)}
.ap-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:var(--accent);color:var(--accent-ink);font-weight:800;font-size:.95rem}
.ap-user__menu{position:absolute;right:0;top:calc(100% + 8px);width:min(280px,calc(100vw - 32px));background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow-lg);padding:6px;z-index:60}
.ap-user__id{display:grid;gap:2px;padding:.7rem .8rem;border-bottom:1px solid var(--line);margin-bottom:6px;min-width:0}
.ap-user__id b{font-size:.95rem}
.ap-user__id span{font-size:.8rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ap-user__menu a,.ap-user__menu button{display:flex;align-items:center;gap:.7rem;width:100%;min-height:44px;padding:.5rem .8rem;border:0;background:transparent;border-radius:9px;font-weight:600;font-size:.92rem;text-align:left;cursor:pointer;color:var(--ink)}
.ap-user__menu a:hover,.ap-user__menu button:hover{background:var(--accent-soft);color:var(--accent-t)}
.ap-user__menu form{margin:0}
@media(max-width:759px){
  .ap{padding-bottom:68px}
  .ap-top__in{gap:8px;padding-inline:16px}
  .ap-nav{position:fixed;left:0;right:0;bottom:0;z-index:60;margin:0;gap:0;background:var(--card);border-top:1px solid var(--line);padding:4px 6px calc(4px + env(safe-area-inset-bottom));
    display:grid;grid-auto-flow:column;grid-auto-columns:1fr}
  .ap-nav__a{flex-direction:column;justify-content:center;gap:2px;min-height:56px;padding:.3rem;border-radius:12px;font-size:.75rem}
  .ap-nav__a .ico{font-size:1.35rem}
  .ap-nav__solo-movil{display:inline-flex}
  .ap-user__btn .ico{display:none}
}
.ap.zona-auth{padding-bottom:0}

/* ========== pie ========== */
.ap-pie{border-top:1px solid var(--line);background:var(--card);margin-top:clamp(24px,5vw,56px)}
.ap-pie__in{max-width:1240px;margin-inline:auto;padding:18px 20px;display:flex;flex-wrap:wrap;gap:8px 24px;align-items:center;justify-content:space-between;font-size:.85rem;color:var(--muted)}
.ap-pie nav{display:flex;flex-wrap:wrap;gap:4px 20px}
.ap-pie a{display:inline-flex;align-items:center;gap:.4rem;min-height:44px;color:var(--muted);font-weight:600}
.ap-pie a:hover{color:var(--accent-t);text-decoration:underline}

/* ========== pantallas de acceso (entrar, recuperar, activar) ========== */
.auth{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);min-height:100vh}
.auth__marca{display:flex;flex-direction:column;justify-content:space-between;gap:48px;padding:clamp(28px,4vw,52px);background:#160620;color:#f6f1fa;position:relative;overflow:hidden}
.auth__marca::before{content:"";position:absolute;inset:0;background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.035) 0 2px,transparent 2px 22px);pointer-events:none}
.auth__marca>*{position:relative}
.auth__kick{font-size:.75rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--dorado);margin-bottom:.9rem}
.auth__titulo{font-size:clamp(1.8rem,3.2vw,2.6rem);font-weight:800;line-height:1.1;letter-spacing:-.025em;max-width:16ch}
.auth__pts{display:grid;gap:.9rem;margin-top:2rem}
.auth__pts li{display:flex;gap:.75rem;align-items:flex-start;color:rgba(246,241,250,.88);font-weight:500}
.auth__pts .ico{color:var(--naranja);margin-top:.2rem}
.auth__pie{font-size:.8rem;color:rgba(246,241,250,.65)}
.auth__panel{display:grid;place-items:center;padding:clamp(20px,4vw,48px)}
.auth__card{width:100%;max-width:440px;display:grid;gap:1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(24px,4vw,36px);box-shadow:var(--shadow)}
.auth__card h1{font-size:clamp(1.5rem,3vw,1.85rem)}
.auth__intro{color:var(--muted);font-size:.95rem}
.auth__logo-movil{display:none;margin-bottom:.4rem}
.auth__extra{font-size:.88rem;color:var(--muted)}
.auth__legal{display:flex;flex-wrap:wrap;gap:0 1.2rem;padding-top:.6rem;border-top:1px solid var(--line);font-size:.82rem}
.auth__legal a{display:inline-flex;align-items:center;min-height:44px;color:var(--muted);font-weight:600}
.auth__legal a:hover{color:var(--accent-t);text-decoration:underline}
.auth__vinculos{display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;justify-content:space-between;font-size:.9rem}
.auth__vinculos a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:899px){
  .auth{grid-template-columns:1fr;min-height:100vh;align-content:start}
  .auth__marca{display:none}
  .auth__panel{align-items:start;padding-block:28px}
  .auth__logo-movil{display:inline-flex}
}

/* ========== panel del alumno ========== */
.hello{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 32px}
.hello__stats{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:519px){.hello__stats{display:grid;grid-template-columns:1fr 1fr;width:100%}.stat{padding:.55rem .75rem}}
.phead .ac-anio{color:rgba(255,255,255,.78)}
.stat{display:flex;align-items:center;gap:.7rem;padding:.6rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r)}
.stat .ico{color:var(--accent-t);font-size:1.35rem}
.stat b{display:block;font-size:1.2rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.stat span span{display:block;font-size:.76rem;color:var(--muted);font-weight:600}

.cont{border:1px solid rgba(255,255,255,.14);display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);background:#1b0a2a;color:#f6f1fa;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg);transition:transform .2s}
.cont__thumb{position:relative;display:grid;place-items:center;min-height:200px;background:color-mix(in srgb,var(--prog) 72%,#12041a);
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 2px,transparent 2px 16px)}
.cont__play{display:grid;place-items:center;width:76px;height:76px;border-radius:50%;background:#fff;color:#160620;font-size:2rem;box-shadow:0 10px 30px -8px rgba(0,0,0,.5);transition:transform .2s}
.cont__play .ico{margin-left:.15em}
.cont:hover .cont__play{transform:scale(1.08)}
.cont__body{display:grid;align-content:center;gap:.8rem;padding:clamp(20px,3.4vw,36px)}
.cont__kick{display:inline-flex;align-items:center;gap:.5rem;font-size:.74rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#e9d3ff}
.cont__t{font-size:clamp(1.25rem,2.6vw,1.75rem);font-weight:800;line-height:1.2;letter-spacing:-.02em;overflow-wrap:break-word}
.cont__meta{font-size:.9rem;color:rgba(246,241,250,.82)}
.cont__cta{justify-self:start;margin-top:.3rem}
@media(max-width:759px){.cont{grid-template-columns:1fr}.cont__thumb{min-height:0;aspect-ratio:16/8}.cont__play{width:60px;height:60px;font-size:1.6rem}}

.tools{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;justify-content:space-between}
.buscador{position:relative;flex:1 1 280px;max-width:480px;margin:0}
.buscador>.ico{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;font-size:1.1rem}
.ap .buscador input{padding-left:2.8rem}
.seg{display:inline-flex;padding:4px;gap:2px;background:var(--surface);border:1px solid var(--line);border-radius:999px}
.seg button{min-height:40px;padding:.3rem 1rem;border:0;border-radius:999px;background:transparent;font-weight:700;font-size:.86rem;color:var(--muted);cursor:pointer}
.seg button:hover{color:var(--ink)}
.seg button[aria-pressed="true"]{background:var(--card);color:var(--accent-t);box-shadow:var(--shadow)}
html:not(.js) .seg{display:none}
@media(pointer:coarse){.seg button{min-height:44px}}

.fam__cab{display:flex;align-items:center;flex-wrap:wrap;gap:.2rem .8rem;margin-bottom:14px}
.fam__cab h2{display:flex;align-items:center;gap:.6rem}
.fam__cab h2 .ico{color:var(--accent-t)}
.fam__n{font-size:.82rem;font-weight:600;color:var(--muted)}
.fam{margin-top:clamp(24px,4vw,40px)}
.pgrid{display:grid;gap:18px;grid-template-columns:repeat(auto-fill,minmax(250px,1fr))}
.pcard{display:flex;min-width:0}
.pcard__a{display:flex;flex-direction:column;width:100%;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:transform .2s,box-shadow .2s,border-color .2s}
.pcard__a:hover{border-color:var(--prog);box-shadow:var(--shadow-lg);transform:translateY(-3px)}
.pcard__cover{position:relative;display:grid;place-items:center;aspect-ratio:16/9;background:color-mix(in srgb,var(--prog) 72%,#12041a);
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.06) 0 2px,transparent 2px 16px);color:#fff;overflow:hidden}
.pcard__ico{font-size:2.6rem;opacity:.92}
.pcard__ico .ico{width:1em;height:1em}
.pcard__ins{position:absolute;left:10px;top:10px;right:10px;display:flex;justify-content:space-between;gap:8px}
.pcard__ins .chip{background:rgba(14,4,22,.72);color:#fff;font-size:.72rem}
.pcard.is-bloqueado .pcard__cover{filter:saturate(.35) brightness(.8)}
.pcard__body{display:grid;gap:.45rem;padding:14px 16px 16px;align-content:start;flex:1}
.pcard__t{font-size:1rem;font-weight:800;line-height:1.28;letter-spacing:-.01em;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.pcard__meta{font-size:.82rem;color:var(--muted);font-weight:600}
.pcard__body .prog{margin-top:.3rem}
.pcard__bloq{display:inline-flex;align-items:center;gap:.4rem;font-size:.82rem;font-weight:700;color:var(--muted);margin-top:.3rem}
.pcard.is-completo .prog__txt b{color:var(--ok)}
@media(max-width:639px){
  .pgrid{grid-auto-flow:column;grid-auto-columns:min(80%,300px);grid-template-columns:none;overflow-x:auto;scroll-snap-type:x proximity;
    margin-inline:-20px;padding:2px 20px 10px;scroll-padding-inline:20px}
  .pcard{scroll-snap-align:start}
}

/* ========== programa ========== */
.phead{background:color-mix(in srgb,var(--prog) 34%,#12041a);color:#fff;
  background-image:repeating-linear-gradient(135deg,rgba(255,255,255,.04) 0 2px,transparent 2px 22px)}
.phead__in{display:grid;gap:1rem;padding-block:clamp(24px,5vw,52px)}
.phead .crumb{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .5rem;font-size:.85rem;font-weight:600;color:rgba(255,255,255,.82)}
.phead .crumb a{color:#fff;text-decoration:underline;text-underline-offset:3px}
.phead .crumb .ico{font-size:.85em;opacity:.7}
.phead h1{color:#fff;max-width:24ch}
.phead .lead{color:rgba(255,255,255,.88);max-width:68ch}
.phead .chip{background:rgba(255,255,255,.16);color:#fff}
.pstats{display:flex;flex-wrap:wrap;gap:8px 22px;font-size:.9rem;font-weight:600;color:rgba(255,255,255,.9)}
.pstats span{display:inline-flex;align-items:center;gap:.5rem}
.phead__acc{display:grid;gap:1rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;margin-top:.5rem}
.phead .prog{max-width:420px}
.phead .note{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.2);border-left-color:var(--naranja);color:#fff}
.phead .note .ico{color:#fff}
.phead .note a{color:#fff;text-decoration:underline}
@media(max-width:639px){.phead__acc{grid-template-columns:1fr}.phead__acc .btn{width:100%}}
.mods-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.mod{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.mod+.mod{margin-top:12px}
.mod>summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:.9rem;align-items:center;min-height:64px;padding:.9rem 1.1rem;cursor:pointer;list-style:none}
.mod>summary::-webkit-details-marker{display:none}
.mod>summary:hover{background:var(--card2)}
.mod__chev{color:var(--muted);transition:transform .2s}
.mod[open] .mod__chev{transform:rotate(90deg)}
.mod__t{font-weight:800;font-size:1rem;line-height:1.3;overflow-wrap:break-word}
.mod__m{font-size:.8rem;font-weight:600;color:var(--muted);white-space:nowrap}
.mod__m b{color:var(--ink)}
.lec{border-top:1px solid var(--line)}
.lec__i+.lec__i{border-top:1px solid var(--line)}
.lec__a,.lec__f{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:.8rem;align-items:center;min-height:56px;padding:.7rem 1.1rem}
.lec__a:hover{background:var(--accent-soft)}
.lec__a:hover .lec__t{color:var(--accent-t)}
.lec__st{display:grid;place-items:center;color:var(--muted);font-size:1.3rem}
.lec__t{font-weight:600;font-size:.95rem;line-height:1.35;overflow-wrap:break-word}
.lec__t small{display:block;font-weight:500;font-size:.78rem;color:var(--muted)}
.lec__m{display:inline-flex;align-items:center;gap:.5rem;font-size:.8rem;font-weight:600;color:var(--muted);white-space:nowrap}
.lec__i.is-hecha .lec__st{color:var(--ok)}
.lec__i.is-siguiente .lec__st{color:var(--accent-t)}
.lec__i.is-siguiente .lec__t{font-weight:800}
.lec__i.is-bloqueada .lec__f{color:var(--muted);cursor:not-allowed}
@media(max-width:519px){.mod>summary{grid-template-columns:auto minmax(0,1fr)}.mod__m{grid-column:2}}

/* ========== lección ========== */
.lp{display:grid;gap:22px 28px;grid-template-columns:minmax(0,1fr);grid-template-areas:"main" "lado" "desc"}
.lp__main{grid-area:main;display:grid;gap:14px;align-content:start;min-width:0}
.lp__lado{grid-area:lado;min-width:0}
.lp__desc{grid-area:desc;min-width:0}
@media(min-width:1024px){
  .lp{grid-template-columns:minmax(0,1fr) 360px;grid-template-areas:"main lado" "desc lado";align-items:start}
  .lp__lado{position:sticky;top:calc(var(--top) + 16px)}
}
.crumb--clara{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem .5rem;font-size:.85rem;font-weight:600;color:var(--muted)}
.crumb--clara a{color:var(--accent-t);text-decoration:underline;text-underline-offset:3px}
.crumb--clara .ico{font-size:.85em;opacity:.6}
.player{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-lg)}
.player iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.player:fullscreen{border-radius:0;border:0;aspect-ratio:auto;width:100vw;height:100vh}
.player--vacio{display:grid;place-items:center;color:#e9d3ff;text-align:center;padding:24px;background:#1b0a2a}
.player--vacio p{max-width:34ch;font-weight:600}
.marca-agua,.ac-marca-agua{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:2;user-select:none;-webkit-user-select:none}
.ac-marca-agua span{position:absolute;white-space:nowrap;font-size:clamp(.68rem,1.5vw,.95rem);font-weight:600;letter-spacing:.02em;color:rgba(255,255,255,.42);text-shadow:0 0 3px rgba(0,0,0,.65)}
.ac-marca-agua__a{left:6%;top:10%;animation:ac-marca-a 46s linear infinite alternate}
.ac-marca-agua__b{left:52%;top:72%;animation:ac-marca-b 58s linear infinite alternate}
@keyframes ac-marca-a{0%{left:6%;top:10%}25%{left:48%;top:28%}50%{left:14%;top:58%}75%{left:42%;top:82%}100%{left:8%;top:40%}}
@keyframes ac-marca-b{0%{left:52%;top:72%}30%{left:10%;top:44%}60%{left:46%;top:14%}100%{left:20%;top:86%}}
.player-bar{display:flex;flex-wrap:wrap;gap:.5rem 1rem;align-items:center;justify-content:space-between;font-size:.82rem;color:var(--muted)}
.lp__meta{display:flex;flex-wrap:wrap;gap:8px}
.lp__acc{display:flex;flex-wrap:wrap;gap:12px 16px;align-items:center;justify-content:space-between;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px}
.lp__acc.is-hecha{border-color:color-mix(in srgb,var(--ok) 40%,var(--line));background:color-mix(in srgb,var(--ok-bg) 55%,var(--card))}
.ac-completar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:0}
.ac-hecha{display:inline-flex;align-items:center;gap:.5rem;font-weight:800;color:var(--ok)}
.ac-hecha .ico{font-size:1.3rem}
.ac-vecinas{display:flex;gap:10px;flex-wrap:wrap}
.desc{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(16px,3vw,24px)}
.desc h2{font-size:1.05rem;margin-bottom:.6rem}
.desc p{max-width:72ch;color:var(--ink)}
.plist{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden}
.plist>summary{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:.8rem;align-items:center;min-height:60px;padding:.8rem 1rem;cursor:pointer;list-style:none}
.plist>summary::-webkit-details-marker{display:none}
.plist__t{display:grid;gap:2px;min-width:0}
.plist__t b{font-size:.95rem;line-height:1.25;overflow-wrap:break-word}
.plist__t span{font-size:.78rem;color:var(--muted);font-weight:600}
.plist__chev{color:var(--muted);transition:transform .2s}
.plist[open] .plist__chev{transform:rotate(180deg)}
.plist__cuerpo{position:relative;max-height:min(58vh,560px);overflow:auto;border-top:1px solid var(--line);overscroll-behavior:contain}
@media(min-width:1024px){.plist__cuerpo{max-height:calc(100vh - var(--top) - 190px)}}
.pl__a,.pl__f{display:grid;grid-template-columns:26px minmax(0,1fr) auto;gap:.7rem;align-items:start;min-height:56px;padding:.7rem 1rem}
.pl__i+.pl__i{border-top:1px solid var(--line)}
.pl__a:hover{background:var(--accent-soft)}
.pl__st{display:grid;place-items:center;color:var(--muted);font-size:1.15rem;margin-top:.1rem}
.pl__t{font-size:.9rem;font-weight:600;line-height:1.35;overflow-wrap:break-word}
.pl__m{font-size:.76rem;color:var(--muted);font-weight:600;white-space:nowrap;margin-top:.15rem}
.pl__i.is-hecha .pl__st{color:var(--ok)}
.pl__i.is-actual{background:var(--accent-soft);box-shadow:inset 4px 0 0 var(--accent-t)}
.pl__i.is-actual .pl__st{color:var(--accent-t)}
.pl__i.is-actual .pl__t{font-weight:800}
.pl__i.is-bloqueada .pl__f{color:var(--muted);cursor:not-allowed}
.plist__pie a{min-height:44px;display:inline-flex;align-items:center}
.plist__pie{padding:.2rem 1rem;border-top:1px solid var(--line);background:var(--card2)}

/* ========== calendario ========== */
.ev-grupo+.ev-grupo{margin-top:clamp(24px,4vw,40px)}
.ev-grupo>h2{margin-bottom:14px;display:flex;align-items:center;gap:.6rem}
.ev-grupo>h2 .ico{color:var(--accent-t)}
.ev-lista{display:grid;gap:12px}
.ev{display:grid;grid-template-columns:72px minmax(0,1fr) auto;gap:16px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:14px 16px}
.ev.is-pasado{background:var(--card2)}
.ev__f{display:grid;justify-items:center;align-content:center;min-height:76px;border-radius:var(--r);background:var(--accent-soft);color:var(--accent-t);line-height:1.05;text-align:center}
.ev__f b{font-size:1.6rem;font-weight:800}
.ev__f span{font-size:.72rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.ev.is-pasado .ev__f{background:var(--neutral-bg);color:var(--neutral)}
.ev__c{display:grid;gap:.35rem;min-width:0}
.ev__c h3{font-size:1.05rem;overflow-wrap:break-word}
.ev__m{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem .9rem;font-size:.84rem;color:var(--muted);font-weight:600}
.ev__m span{display:inline-flex;align-items:center;gap:.35rem}
.ev__acc{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.chip--directo{background:var(--warn-bg);color:var(--warn)}
.chip--mentoria{background:var(--ok-bg);color:var(--ok)}
@media(max-width:699px){
  .ev{grid-template-columns:60px minmax(0,1fr);gap:12px}
  .ev__f{min-height:64px}
  .ev__acc{grid-column:1 / -1;justify-content:flex-start}
}

/* ========== cuenta ========== */
.perfil{display:flex;align-items:center;gap:1rem;flex-wrap:wrap}
.perfil .ap-avatar{width:64px;height:64px;font-size:1.6rem}
.perfil__t{display:grid;gap:2px;min-width:0}
.perfil__t b{font-size:1.2rem}
.perfil__t span{color:var(--muted);overflow-wrap:anywhere}
.ac-bloques{display:grid;gap:20px;align-items:start}
@media(min-width:960px){.ac-bloques--2{grid-template-columns:repeat(2,minmax(0,1fr))}}
.ac-bloque{background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(18px,3vw,28px);display:grid;gap:1rem}
.ac-bloque>h2,.ac-bloque .ac-h2{display:flex;align-items:center;gap:.7rem;margin:0}
.bloque-ic{display:grid;place-items:center;width:38px;height:38px;border-radius:10px;background:var(--accent-soft);color:var(--accent-t);font-size:1.15rem;flex:none}
.ac-h2{display:flex;align-items:center;gap:.6rem;flex-wrap:wrap;font-size:clamp(1.1rem,2.4vw,1.35rem);margin:0 0 .9rem}
.ac-anio{font-weight:600;color:var(--muted);font-size:.6em}
.ac-h1,.ac-h1--leccion{font-size:clamp(1.65rem,4.4vw,2.35rem)}

/* ========== tablas ========== */
.table-wrap{overflow-x:auto;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg)}
.table{width:100%;border-collapse:collapse;font-size:.9rem}
.table th{position:sticky;top:0;text-align:left;padding:.75rem 1rem;font-size:.72rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--card2);border-bottom:1px solid var(--line);white-space:nowrap}
.table td{padding:.8rem 1rem;border-bottom:1px solid var(--line);vertical-align:middle}
.table tbody tr:last-child td{border-bottom:0}
.table tbody tr:hover td{background:var(--card2)}
.table td.vacia{color:var(--muted);text-align:center;padding:2rem 1rem}
.ac-acciones{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ac-acciones form{margin:0}
@media(max-width:719px){
  .table--cards thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .table--cards,.table--cards tbody,.table--cards tr,.table--cards td{display:block;width:100%}
  .table--cards tr{padding:.7rem 1rem;border-bottom:1px solid var(--line)}
  .table--cards tbody tr:last-child{border-bottom:0}
  .table--cards td{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.35rem 0;border:0;text-align:right}
  .table--cards td::before{content:attr(data-label);flex:none;font-size:.72rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left}
  .table--cards td:not([data-label])::before,.table--cards td[data-label=""]::before{content:none}
  .table--cards td.vacia{display:block;text-align:center}
  .table--cards .ac-acciones{justify-content:flex-end}
  .table--cards td>span,.table--cards .celda{min-width:0;overflow-wrap:anywhere;text-align:right}
  .table--cards tbody tr:hover td{background:transparent}
}

/* ========== administración ========== */
.ph{display:grid;gap:.5rem}
.ac-admin-menu{display:flex;gap:2px;overflow-x:auto;border-bottom:1px solid var(--line);margin-top:.4rem;scrollbar-width:thin}
.ac-admin-menu a{flex:none;display:inline-flex;align-items:center;min-height:46px;padding:.5rem 1rem;border-bottom:3px solid transparent;margin-bottom:-1px;font-size:.92rem;font-weight:700;color:var(--muted);white-space:nowrap}
.ac-admin-menu a:hover{color:var(--ink);background:var(--accent-soft);border-radius:8px 8px 0 0}
.ac-admin-menu a[aria-current="page"]{color:var(--accent-t);border-bottom-color:var(--accent-t)}
.ac-cifras{display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(min(100%,165px),1fr))}
.ac-cifras>div{position:relative;display:grid;gap:.15rem;padding:1.1rem 1.1rem 1rem;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg)}
.ac-cifras>div::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:0 4px 4px 0;background:var(--accent-t)}
.ac-cifras b{display:block;font-size:2rem;font-weight:800;line-height:1.1;font-variant-numeric:tabular-nums}
.ac-cifras span{display:block;font-size:.82rem;color:var(--muted);font-weight:600}
.ac-cifras .is-aviso::before{background:var(--naranja)}
.ac-filtros{grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));align-items:end;padding:16px;background:var(--card);border:1px solid var(--line);border-radius:var(--r-lg)}
.ac-paginas{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:.5rem}
.ac-admin-bloques{display:grid;gap:14px}
.ac-resumen-nota{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;font-size:.9rem;color:var(--muted)}

/* ========== movimiento reducido ========== */
@media(prefers-reduced-motion:reduce){
  .ap *,.ap *::before,.ap *::after{animation:none !important;transition:none !important;scroll-behavior:auto !important}
  .ac-marca-agua__a{left:8%;top:12%}
  .ac-marca-agua__b{left:40%;top:78%}
  .pcard__a:hover{transform:none}
}
@media(prefers-reduced-motion:no-preference){.ap{scroll-behavior:smooth}}
.ap{--i-chev:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E")}

/* RG8-PARCHE (10/10/2026): foto de perfil en los avatares */
.ap-avatar__img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
.fit-av--foto{overflow:hidden;padding:0}
.fit-av__img{width:100%;height:100%;border-radius:50%;object-fit:cover;display:block}
