/* ═══════════════════════════════════════════════════════════════
   Aula LMS CSS v2.0 — Aulas Virtuales
   Dark & Light mode — Responsive 1024/900/768/600/480/360px
   ═══════════════════════════════════════════════════════════════ */

/* ════ VARIABLES ════ */
:root {
    --lms-color: #C9A84C;
    --lms-dark-bg:   #0B1628;
    --lms-dark-bg2:  #111F38;
    --lms-dark-bg3:  #172444;
    --lms-dark-txt:  #F0F4FF;
    --lms-dark-txt2: #94A3B8;
    --lms-dark-brd:  rgba(201,168,76,.15);
    --lms-light-bg:  #F8F9FC;
    --lms-light-bg2: #FFFFFF;
    --lms-light-bg3: #F1F5F9;
    --lms-light-txt: #0F172A;
    --lms-light-txt2:#64748B;
    --lms-light-brd: #E2E8F0;
    --lms-radius:    12px;
    --lms-radius-lg: 16px;
    --lms-font:     'DM Sans', -apple-system, sans-serif;
    --lms-serif:    'DM Serif Display', Georgia, serif;
    --lms-transition: .22s cubic-bezier(.16,1,.3,1);
}

/* ════ BASE ════ */
.lms-aulas-wrap,
.lms-gestion-wrap,
.lms-detalle-wrap,
.lms-mis-aulas-wrap { width:100%; box-sizing:border-box; overflow:hidden; font-family:var(--lms-font); }

/* ════ PAGE HEADER ════ */
.lms-page-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px; flex-wrap:wrap; gap:.7rem; }
.lms-page-title  { font-family:var(--lms-serif); font-size:1.4rem; font-weight:400; color:var(--p-white); margin:0; letter-spacing:-.01em; }
.lms-page-sub    { font-size:.78rem; color:var(--p-silver); margin-top:2px; }

/* ════ GRID DE AULAS (admin) ════ */
.lms-aulas-grid {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr));
    gap:16px; margin-bottom:20px;
}

/* ════ TARJETA DE AULA (admin) ════ */
.lms-aula-card {
    border-radius:var(--lms-radius-lg); overflow:hidden;
    border:1px solid var(--p-border2); transition:all var(--lms-transition);
    position:relative; cursor:default;
}
.lms-aula-card:hover { border-color:var(--lms-color,#C9A84C); transform:translateY(-2px); box-shadow:0 8px 30px rgba(0,0,0,.15); }
.lms-aula-card::before { content:''; position:absolute; top:0; left:0; right:0; height:3px; background:var(--lms-color); }

.lms-aula-card--dark  { background:var(--p-navy2); }
.lms-aula-card--light { background:#fff; border-color:#e2e8f0; }
.lms-aula-card--light .lms-aula-card-titulo { color:#0f172a; }
.lms-aula-card--light .lms-aula-card-desc   { color:#64748b; }
.lms-aula-card--light .lms-aula-card-meta   { color:#94a3b8; }

.lms-aula-card-img {
    width:100%; height:140px; object-fit:cover;
    background:var(--p-navy3);
    background-size:cover; background-position:center;
}
.lms-aula-card-img--placeholder { display:flex; align-items:center; justify-content:center; opacity:.4; }

.lms-aula-card-body   { padding:16px; }
.lms-aula-card-top    { display:flex; gap:6px; margin-bottom:8px; flex-wrap:wrap; }
.lms-aula-card-titulo { font-size:.96rem; font-weight:500; color:var(--p-white); margin:0 0 6px; line-height:1.3; }
.lms-aula-card-desc   { font-size:.8rem; color:var(--p-silver); line-height:1.5; margin-bottom:10px; }
.lms-aula-card-meta   { display:flex; gap:12px; font-size:.75rem; color:var(--p-silver); margin-bottom:12px; flex-wrap:wrap; }
.lms-aula-card-actions { display:flex; gap:6px; flex-wrap:wrap; }

/* ════ BADGES ════ */
.lms-badge { display:inline-block; border-radius:20px; padding:2px 10px; font-size:.72rem; font-weight:500; white-space:nowrap; }
.lms-badge--ok      { background:rgba(52,201,122,.12); color:#6EE7B7; border:1px solid rgba(52,201,122,.2); }
.lms-badge--draft   { background:rgba(148,163,184,.1); color:var(--p-silver); border:1px solid rgba(148,163,184,.2); }
.lms-badge--neutral { background:rgba(201,168,76,.1); color:var(--p-gold); border:1px solid rgba(201,168,76,.2); }
.lms-badge--fail    { background:rgba(224,82,82,.12); color:#FCA5A5; border:1px solid rgba(224,82,82,.2); }

/* ════ EMPTY STATE ════ */
.lms-empty { text-align:center; padding:3rem 1rem; }
.lms-empty-icon { font-size:3rem; margin-bottom:1rem; opacity:.5; }
.lms-empty h3 { font-family:var(--lms-serif); font-size:1.2rem; color:var(--p-white); margin-bottom:.5rem; }
.lms-empty p  { color:var(--p-silver); font-size:.86rem; margin-bottom:1.2rem; }

/* ════ MODAL ════ */
.lms-modal {
    position:fixed; inset:0; z-index:9999;
    background:rgba(0,0,0,.7);
    display:flex; align-items:center; justify-content:center;
    padding:20px; backdrop-filter:blur(4px);
}
.lms-modal-card {
    background:var(--p-navy2); border:1px solid var(--p-border);
    border-radius:var(--lms-radius-lg); padding:24px;
    width:100%; max-width:600px; max-height:90vh; overflow-y:auto;
    animation:lmsSlideUp .3s cubic-bezier(.16,1,.3,1);
}
@keyframes lmsSlideUp { from{opacity:0;transform:translateY(20px)} to{opacity:1;transform:translateY(0)} }
.lms-modal-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; padding-bottom:14px; border-bottom:1px solid var(--p-border); }
.lms-modal-title  { font-family:var(--lms-serif); font-size:1.1rem; color:var(--p-white); margin:0; }
.lms-modal-close  { background:transparent; border:none; color:var(--p-silver); font-size:1.1rem; cursor:pointer; padding:4px 8px; border-radius:6px; }
.lms-modal-close:hover { background:rgba(255,255,255,.08); }
.lms-modal-footer { display:flex; justify-content:flex-end; gap:8px; margin-top:20px; padding-top:16px; border-top:1px solid var(--p-border2); flex-wrap:wrap; }

/* ════ FORM GRID ════ */
.lms-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.lms-field { min-width:0; }
.lms-field-full { grid-column:1 / -1; }
.lms-label { display:block; font-size:.74rem; font-weight:500; color:var(--p-silver); margin-bottom:5px; text-transform:uppercase; letter-spacing:.06em; }
.lms-color-row { display:flex; gap:8px; align-items:center; }

/* ════ GESTIÓN DEL AULA ════ */
.lms-gestion-header { display:flex; align-items:center; gap:12px; margin-bottom:16px; flex-wrap:wrap; padding-bottom:14px; border-bottom:1px solid var(--p-border2); }
.lms-gestion-titulo { font-family:var(--lms-serif); font-size:1.2rem; color:var(--p-white); margin:0; flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lms-gestion-actions { display:flex; gap:8px; flex-wrap:wrap; }
.lms-btn-back { background:transparent; border:1px solid var(--p-border2); color:var(--p-silver); border-radius:8px; padding:6px 12px; font-size:.8rem; cursor:pointer; font-family:var(--lms-font); transition:all .18s; white-space:nowrap; }
.lms-btn-back:hover { border-color:var(--p-border); color:var(--p-white); }

/* Tabs de gestión */
.lms-gestion-tabs { display:flex; border-bottom:1px solid var(--p-border2); margin-bottom:16px; overflow-x:auto; scrollbar-width:none; }
.lms-gestion-tabs::-webkit-scrollbar { display:none; }
.lms-gestion-tab { background:transparent; border:none; color:rgba(148,163,184,.55); padding:10px 16px; font-size:.82rem; font-weight:400; cursor:pointer; border-bottom:2px solid transparent; margin-bottom:-1px; white-space:nowrap; font-family:var(--lms-font); transition:all .2s; min-height:40px; }
.lms-gestion-tab:hover { color:var(--p-white2); }
.lms-gestion-tab--active { color:var(--p-gold)!important; border-bottom-color:var(--p-gold)!important; font-weight:500; }
.lms-gestion-content { display:none; }
.lms-gestion-content--active { display:block; }

/* Layout contenido */
.lms-cont-layout { display:grid; grid-template-columns:260px 1fr; gap:14px; min-height:400px; margin-bottom:14px; }
.lms-modulos-lista { border:1px solid var(--p-border2); border-radius:var(--lms-radius); overflow:hidden; background:var(--p-navy2); }
.lms-cont-panel    { border:1px solid var(--p-border2); border-radius:var(--lms-radius); background:var(--p-navy2); padding:16px; }
.lms-cont-placeholder { display:flex; align-items:center; justify-content:center; height:100%; color:var(--p-silver); font-size:.84rem; text-align:center; padding:2rem; opacity:.6; }

/* Items de módulo (admin) */
.lms-admin-modulo { border-bottom:1px solid var(--p-border2); }
.lms-admin-modulo:last-child { border-bottom:none; }
.lms-admin-modulo-header { display:flex; align-items:center; gap:8px; padding:10px 14px; cursor:pointer; transition:background .18s; }
.lms-admin-modulo-header:hover { background:var(--p-glass2); }
.lms-admin-modulo-handle { color:var(--p-silver); opacity:.4; cursor:grab; font-size:.9rem; }
.lms-admin-modulo-titulo { flex:1; font-size:.86rem; font-weight:500; color:var(--p-white2); }
.lms-admin-modulo-count  { font-size:.72rem; color:var(--p-silver); }
.lms-admin-modulo-btns   { display:flex; gap:4px; }

/* Contenidos del módulo seleccionado */
.lms-cont-list    { display:flex; flex-direction:column; gap:6px; margin-bottom:12px; }
.lms-cont-item-admin {
    display:flex; align-items:center; gap:8px;
    background:var(--p-navy3); border:1px solid var(--p-border2);
    border-radius:9px; padding:9px 12px; transition:border-color .18s;
}
.lms-cont-item-admin:hover { border-color:var(--p-border); }
.lms-cont-tipo-badge { font-size:.68rem; font-weight:600; border-radius:4px; padding:2px 7px; white-space:nowrap; }
.lms-cont-tipo-video   { background:rgba(52,201,122,.1); color:#6EE7B7; }
.lms-cont-tipo-archivo { background:rgba(147,197,253,.1); color:#93C5FD; }
.lms-cont-tipo-texto   { background:rgba(201,168,76,.1); color:var(--p-gold); }
.lms-cont-tipo-link    { background:rgba(148,163,184,.1); color:var(--p-silver); }
.lms-cont-tipo-quiz    { background:rgba(224,82,82,.1); color:#FCA5A5; }
.lms-cont-item-titulo  { flex:1; font-size:.84rem; color:var(--p-white2); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ════ VISTA ALUMNO — MIS AULAS ════ */
.lms-mis-aulas-wrap { padding:0; }
.lms-codigo-bar { display:flex; align-items:center; gap:12px; background:var(--p-navy2); border:1px solid var(--p-border); border-radius:var(--lms-radius); padding:12px 16px; margin-bottom:18px; flex-wrap:wrap; }
.lms-codigo-label { font-size:.84rem; font-weight:500; color:var(--p-gold); white-space:nowrap; }
.lms-codigo-form  { display:flex; gap:8px; align-items:center; flex-wrap:wrap; flex:1; }
.lms-codigo-msg   { font-size:.8rem; padding:5px 10px; border-radius:6px; margin-top:4px; width:100%; }
.lms-codigo-msg--ok  { background:rgba(52,201,122,.1); color:#6EE7B7; }
.lms-codigo-msg--err { background:rgba(224,82,82,.1); color:#FCA5A5; }

/* Grid de aulas para el alumno */
.lms-mis-aulas-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:16px; }

/* ════ VISTA DETALLE DEL AULA (alumno) ════ */
.lms-detalle-wrap { min-height:600px; }
.lms-detalle-wrap.lms-tema-light { background:#f8f9fc; color:#0f172a; }
.lms-detalle-wrap.lms-tema-dark  { background:var(--p-navy); color:var(--p-white2); }

.lms-det-header {
    display:flex; align-items:center; gap:14px; padding:14px 20px;
    border-bottom:1px solid var(--p-border2); flex-wrap:wrap; gap:.7rem;
}
.lms-det-info    { flex:1; min-width:0; }
.lms-det-titulo  { font-family:var(--lms-serif); font-size:1.15rem; color:var(--p-white); margin:0 0 6px; }
.lms-det-layout  { display:grid; grid-template-columns:280px 1fr; min-height:500px; }
.lms-det-sidebar { border-right:1px solid var(--p-border2); overflow-y:auto; max-height:calc(100vh - 200px); }
.lms-det-main    { overflow-y:auto; max-height:calc(100vh - 200px); }

/* Barra de progreso */
.lms-progreso-bar  { height:6px; background:rgba(255,255,255,.1); border-radius:3px; overflow:hidden; margin-bottom:4px; }
.lms-progreso-fill { height:100%; background:var(--lms-color,#C9A84C); border-radius:3px; transition:width .6s cubic-bezier(.16,1,.3,1); }
.lms-progreso-pct  { font-size:.74rem; color:var(--p-silver); }

/* Módulos en sidebar */
.lms-mod-item { border-bottom:1px solid var(--p-border2); }
.lms-mod-header { display:flex; align-items:center; gap:8px; padding:12px 16px; cursor:pointer; transition:background .18s; user-select:none; }
.lms-mod-header:hover { background:var(--p-glass2); }
.lms-mod-num    { min-width:22px; height:22px; border-radius:50%; background:rgba(201,168,76,.1); color:var(--p-gold); font-size:.72rem; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0; border:1px solid rgba(201,168,76,.2); }
.lms-mod-titulo { flex:1; font-size:.84rem; font-weight:500; color:var(--p-white2); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lms-mod-progress { font-size:.7rem; color:var(--p-silver); white-space:nowrap; flex-shrink:0; }
.lms-mod-chevron { color:var(--p-silver); font-size:.7rem; transition:transform .2s; flex-shrink:0; }
.lms-mod-item.open .lms-mod-chevron { transform:rotate(180deg); }
.lms-mod-contenidos { display:none; }
.lms-mod-item.open .lms-mod-contenidos { display:block; }

/* Items de contenido (sidebar alumno) */
.lms-cont-item { display:flex; align-items:center; gap:8px; padding:9px 16px 9px 32px; cursor:pointer; transition:background .15s; border-bottom:1px solid rgba(255,255,255,.03); }
.lms-cont-item:hover { background:rgba(201,168,76,.06); }
.lms-cont-item--done { opacity:.65; }
.lms-cont-item--active { background:rgba(201,168,76,.1)!important; border-left:2px solid var(--lms-color,#C9A84C); }
.lms-cont-icono { font-size:.88rem; flex-shrink:0; }
.lms-cont-titulo { flex:1; font-size:.8rem; color:var(--p-white2); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.lms-cont-check { color:var(--p-green,#34C97A); font-size:.8rem; flex-shrink:0; }

/* Área de contenido activo */
.lms-det-bienvenida { padding:30px; text-align:center; }
.lms-det-portada    { width:100%; max-height:200px; object-fit:cover; border-radius:10px; margin-bottom:16px; }
.lms-det-start-hint { color:var(--p-silver); font-size:.84rem; margin-top:12px; opacity:.6; }

/* Reproductor de video */
.lms-video-wrap { position:relative; padding-bottom:56.25%; height:0; overflow:hidden; border-radius:var(--lms-radius) var(--lms-radius) 0 0; }
.lms-video-wrap iframe, .lms-video-wrap video { position:absolute; top:0; left:0; width:100%; height:100%; border:none; }
video.lms-video-native { width:100%; border-radius:var(--lms-radius); }

/* Vista de archivo */
.lms-archivo-wrap { padding:24px; text-align:center; }
.lms-archivo-icon { font-size:3.5rem; margin-bottom:12px; display:block; }
.lms-archivo-nombre { font-size:1rem; font-weight:500; color:var(--p-white); margin-bottom:6px; }
.lms-archivo-meta   { font-size:.78rem; color:var(--p-silver); margin-bottom:16px; }
.lms-archivo-preview { width:100%; border:1px solid var(--p-border2); border-radius:var(--lms-radius); min-height:500px; }

/* Vista de texto */
.lms-texto-wrap  { padding:24px; line-height:1.8; }
.lms-texto-wrap h1,.lms-texto-wrap h2,.lms-texto-wrap h3 { font-family:var(--lms-serif); color:var(--p-white); margin-bottom:.6rem; }
.lms-texto-wrap p { color:var(--p-white2); margin-bottom:1rem; }
.lms-texto-wrap a { color:var(--p-gold); }

/* Botón completar */
.lms-btn-completar-wrap { padding:16px 24px; border-top:1px solid var(--p-border2); display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:.7rem; }
.lms-btn-completar { background:var(--p-gold)!important; color:var(--p-navy)!important; border:none!important; font-weight:600!important; min-width:160px; }
.lms-btn-completar:hover { filter:brightness(1.08)!important; }
.lms-btn-completar:disabled { opacity:.5!important; cursor:not-allowed!important; }

/* ════ FOROS ════ */
.lms-foro-wrap    { padding:20px; }
.lms-foro-item    { background:var(--p-navy2); border:1px solid var(--p-border2); border-radius:var(--lms-radius); margin-bottom:12px; overflow:hidden; }
.lms-foro-header  { padding:14px 16px; font-weight:500; color:var(--p-white); cursor:pointer; display:flex; align-items:center; gap:8px; }
.lms-foro-header:hover { background:var(--p-glass2); }
.lms-foro-body    { border-top:1px solid var(--p-border2); }
.lms-mensaje      { padding:12px 16px; border-bottom:1px solid rgba(255,255,255,.04); }
.lms-mensaje:last-child { border-bottom:none; }
.lms-mensaje-meta { display:flex; align-items:center; gap:8px; margin-bottom:6px; flex-wrap:wrap; }
.lms-mensaje-user { font-size:.8rem; font-weight:500; color:var(--p-gold); }
.lms-mensaje-fecha { font-size:.72rem; color:var(--p-silver); }
.lms-mensaje-body { font-size:.84rem; color:var(--p-white2); line-height:1.6; }
.lms-respuesta    { padding:10px 16px 10px 32px; border-bottom:1px solid rgba(255,255,255,.03); background:var(--p-navy3); }
.lms-foro-reply-form { padding:14px 16px; background:var(--p-navy3); border-top:1px solid var(--p-border2); }
.lms-foro-reply-form textarea { width:100%; min-height:80px; resize:vertical; box-sizing:border-box; }

/* ════ CERTIFICADO CARD ════ */
.lms-cert-card { background:var(--p-navy2); border:1px solid var(--p-gold,#C9A84C); border-radius:var(--lms-radius-lg); padding:20px; text-align:center; margin-top:16px; }
.lms-cert-icon { font-size:2.5rem; margin-bottom:8px; display:block; }
.lms-cert-title { font-family:var(--lms-serif); font-size:1.1rem; color:var(--p-white); margin-bottom:4px; }
.lms-cert-sub   { font-size:.8rem; color:var(--p-silver); margin-bottom:14px; }

/* ════ RESPONSIVE ════ */
@media (max-width:1024px) {
    .lms-det-layout  { grid-template-columns:240px 1fr; }
    .lms-cont-layout { grid-template-columns:220px 1fr; }
    .lms-aulas-grid  { grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); }
}
@media (max-width:900px) {
    .lms-det-layout  { grid-template-columns:1fr; grid-template-rows:auto 1fr; }
    .lms-det-sidebar { border-right:none; border-bottom:1px solid var(--p-border2); max-height:260px; }
    .lms-cont-layout { grid-template-columns:1fr; }
    .lms-cont-panel  { min-height:200px; }
}
@media (max-width:768px) {
    .lms-aulas-grid { grid-template-columns:1fr 1fr; }
    .lms-form-grid  { grid-template-columns:1fr; }
    .lms-mis-aulas-grid { grid-template-columns:1fr 1fr; }
    .lms-det-header { padding:12px 14px; }
    .lms-det-main   { max-height:none; }
}
@media (max-width:600px) {
    .lms-aulas-grid { grid-template-columns:1fr; }
    .lms-mis-aulas-grid { grid-template-columns:1fr; }
    .lms-modal-card { padding:18px 14px; border-radius:14px; }
    .lms-gestion-tabs { padding:0; }
    .lms-codigo-bar { flex-direction:column; align-items:flex-start; gap:8px; }
    .lms-codigo-form { width:100%; }
    .lms-det-layout { grid-template-columns:1fr; }
    .lms-det-sidebar { max-height:220px; }
    .lms-aula-card-actions { flex-wrap:wrap; }
}
@media (max-width:480px) {
    .lms-gestion-tab { padding:8px 10px; font-size:.77rem; }
    .lms-modal { padding:10px; }
    .lms-modal-card { padding:14px 12px; }
    .lms-aula-card-img { height:110px; }
}
@media (max-width:360px) {
    .lms-gestion-tab { padding:7px 8px; font-size:.72rem; }
    .lms-aula-card-actions { gap:4px; }
}

/* ════ INSCRIPCIÓN DE ALUMNOS ════ */
.lms-inscribir-wrap         { margin-top:16px; padding-top:14px; border-top:1px solid rgba(255,255,255,.08); }
.lms-inscribir-header       { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; flex-wrap:wrap; gap:.5rem; }
.lms-inscribir-titulo       { font-size:.84rem; font-weight:500; color:var(--p-white); }

.lms-check-lista { max-height:220px; overflow-y:auto; border:1px solid rgba(255,255,255,.1); border-radius:10px; background:var(--p-navy3); -webkit-overflow-scrolling:touch; }
.lms-check-row   {
    display:flex; align-items:center; gap:12px;
    padding:10px 14px; cursor:pointer;
    border-bottom:1px solid rgba(255,255,255,.04);
    transition:background .15s; -webkit-tap-highlight-color:transparent;
    user-select:none; -webkit-user-select:none;
}
.lms-check-row:last-child   { border-bottom:none; }
.lms-check-row:hover        { background:rgba(201,168,76,.08); }
.lms-check-row input[type="checkbox"] {
    width:17px; height:17px; cursor:pointer; flex-shrink:0;
    accent-color:#C9A84C; margin:0;
}
.lms-check-nombre { flex:1; font-size:.84rem; color:var(--p-white2); }
.lms-check-rol    { font-size:.72rem; font-weight:600; }
.lms-check-empty  { padding:14px; text-align:center; color:var(--p-silver); font-size:.82rem; }

.lms-check-selectors { display:flex; gap:8px; margin-top:7px; }
.lms-btn-sel-todos,
.lms-btn-sel-ninguno {
    background:transparent; border:1px solid rgba(255,255,255,.15);
    color:var(--p-silver); border-radius:7px; padding:4px 12px;
    font-size:.76rem; cursor:pointer; font-family:var(--lms-font);
    transition:all .18s; -webkit-tap-highlight-color:transparent;
}
.lms-btn-sel-todos:hover,
.lms-btn-sel-ninguno:hover { border-color:var(--p-gold); color:var(--p-gold); }

/* ════ CÓDIGO DEL AULA ════ */
.lms-aula-card-codigo  { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.lms-codigo-badge      { background:rgba(201,168,76,.12); color:var(--p-gold,#C9A84C); border:1px solid rgba(201,168,76,.25); border-radius:6px; padding:2px 10px; font-family:monospace; font-size:.82rem; font-weight:700; letter-spacing:.06em; }
.lms-codigo-copy       { font-size:.72rem; color:var(--p-silver,#94A3B8); cursor:pointer; text-decoration:underline; transition:color .18s; -webkit-tap-highlight-color:transparent; }
.lms-codigo-copy:hover { color:var(--p-gold,#C9A84C); }

/* ════ DRAG & DROP ════ */
.lms-drag-handle {
    color:rgba(148,163,184,.4); cursor:grab; font-size:1rem;
    padding:0 4px; flex-shrink:0; user-select:none; -webkit-user-select:none;
    transition:color .18s;
}
.lms-drag-handle:hover { color:var(--p-gold,#C9A84C); }
.lms-cont-item-admin[draggable="true"] { cursor:default; }
.lms-cont-item-admin.dragging { opacity:.4; background:rgba(201,168,76,.08)!important; }
.lms-admin-modulo[draggable="true"] { cursor:default; }
.lms-admin-modulo.dragging { opacity:.4; }
.lms-drop-indicator {
    height:3px; background:var(--p-gold,#C9A84C); border-radius:2px;
    margin:2px 0; transition:all .15s;
}

/* ════ TOGGLE SWITCH — Restricción de acceso ════ */
.lms-toggle-label {
    display:flex; align-items:center; gap:10px;
    cursor:pointer; font-size:.82rem; color:var(--p-white2);
    user-select:none; -webkit-user-select:none;
}
.lms-toggle-wrap {
    position:relative; display:inline-block;
    width:40px; height:22px; flex-shrink:0;
}
.lms-toggle-check {
    opacity:0; width:0; height:0; position:absolute;
}
.lms-toggle-slider {
    position:absolute; inset:0; cursor:pointer;
    background:rgba(148,163,184,.2); border-radius:22px;
    border:1px solid rgba(148,163,184,.3);
    transition:background .25s, border-color .25s;
}
.lms-toggle-slider::before {
    content:''; position:absolute;
    width:16px; height:16px; border-radius:50%;
    left:2px; bottom:2px; background:#fff;
    transition:transform .25s cubic-bezier(.16,1,.3,1);
    box-shadow:0 1px 4px rgba(0,0,0,.25);
}
.lms-toggle-check:checked + .lms-toggle-slider {
    background:var(--p-gold,#C9A84C);
    border-color:var(--p-gold,#C9A84C);
}
.lms-toggle-check:checked + .lms-toggle-slider::before {
    transform:translateX(18px);
}
.lms-toggle-check:focus + .lms-toggle-slider {
    box-shadow:0 0 0 2px rgba(201,168,76,.25);
}

/* ════ TOGGLE DE RESTRICCIÓN DE ACCESO ════ */
.lms-label-toggle {
    display:flex; align-items:center; gap:12px;
    cursor:pointer; padding:10px 0;
    user-select:none; -webkit-user-select:none;
}
.lms-toggle-check { display:none; }
.lms-toggle-slider {
    position:relative; flex-shrink:0;
    width:44px; height:24px;
    background:rgba(148,163,184,.2);
    border:1px solid rgba(148,163,184,.3);
    border-radius:12px;
    transition:background .25s, border-color .25s;
    cursor:pointer;
}
.lms-toggle-slider::after {
    content:'';
    position:absolute; top:3px; left:3px;
    width:16px; height:16px;
    background:#fff; border-radius:50%;
    transition:transform .25s cubic-bezier(.16,1,.3,1);
    box-shadow:0 1px 4px rgba(0,0,0,.3);
}
.lms-toggle-check:checked + .lms-toggle-slider {
    background:rgba(201,168,76,.6);
    border-color:var(--p-gold,#C9A84C);
}
.lms-toggle-check:checked + .lms-toggle-slider::after {
    transform:translateX(20px);
    background:var(--p-gold,#C9A84C);
}
.lms-toggle-label {
    font-size:.82rem; color:var(--p-white2,#E2E8F0); line-height:1.4;
}
.lms-toggle-check:checked ~ .lms-toggle-label {
    color:var(--p-gold,#C9A84C);
}

/* Badge de candado en la lista de contenidos del admin */
.lms-badge-restriccion {
    font-size:.82rem; opacity:.8;
    title:'Requiere completar el contenido anterior';
}

/* ════ PANTALLA DE ACCESO RESTRINGIDO (alumno) ════ */
.lms-acceso-restringido {
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    min-height:340px; padding:2.5rem 2rem; text-align:center;
}
.lms-restringido-icon {
    font-size:3.5rem; margin-bottom:1rem; opacity:.7;
    animation:lms-pulse-lock 2s ease-in-out infinite;
}
@keyframes lms-pulse-lock {
    0%,100% { transform:scale(1); }
    50%      { transform:scale(1.1); }
}
.lms-restringido-titulo {
    font-family:var(--lms-serif,'DM Serif Display',serif);
    font-size:1.3rem; color:var(--p-white,#F0F4FF);
    margin:0 0 .8rem; font-weight:400;
}
.lms-restringido-msg {
    font-size:.9rem; color:var(--p-silver,#94A3B8);
    max-width:420px; margin:0 auto .8rem; line-height:1.6;
}
.lms-restringido-hint {
    font-size:.78rem; color:rgba(148,163,184,.5);
    max-width:380px; margin:0 auto 1.4rem; font-style:italic;
}

/* Indicador visual en el índice lateral del aula para ítems bloqueados */
.lms-cont-item--bloqueado {
    opacity:.5; cursor:not-allowed !important;
    position:relative;
}
.lms-cont-item--bloqueado::after {
    content:'🔒';
    position:absolute; right:10px; top:50%; transform:translateY(-50%);
    font-size:.7rem; opacity:.6;
}
.lms-cont-item--bloqueado:hover { background:transparent !important; }


/* ════════════════════════════════════════════════════════
   FIX GLOBAL DE CONTRASTE — LMS
   ════════════════════════════════════════════════════════ */

/* Tarjetas de aula — todo el texto debe ser claro */
.lms-aula-card { color: var(--p-white2) !important; }
.lms-aula-card-titulo { color: var(--p-white) !important; }
.lms-aula-card-desc { color: var(--p-silver) !important; }
.lms-aula-card-meta { color: var(--p-silver) !important; }

/* Botones de tarjeta de aula */
.lms-aula-card .isfis-panel__btn:not(.isfis-panel__btn--primary) {
    color: var(--p-white2) !important;
    -webkit-text-fill-color: var(--p-white2) !important;
}
.lms-aula-card .isfis-panel__btn--primary {
    color: var(--p-navy) !important;
    -webkit-text-fill-color: var(--p-navy) !important;
    font-weight: 700 !important;
}

/* ▶ Comenzar / ▶ Continuar — texto oscuro sobre dorado */
.isfis-panel__btn--primary {
    color: var(--p-navy) !important;
    -webkit-text-fill-color: var(--p-navy) !important;
}

/* Índice lateral del aula */
.lms-sidebar-mod-titulo { color: var(--p-white) !important; }
.lms-cont-item { color: var(--p-white2) !important; }
.lms-cont-item--done { color: var(--p-green) !important; }
.lms-cont-item--active { color: var(--p-gold) !important; }

/* Header del aula */
.lms-det-titulo { color: var(--p-white) !important; }
.lms-det-prog-label { color: var(--p-silver) !important; }

/* Panel de gestión */
.lms-admin-modulo-titulo { color: var(--p-white2) !important; }
.lms-cont-item-titulo { color: var(--p-white2) !important; }
.lms-gestion-tab { color: var(--p-silver) !important; }
.lms-gestion-tab.lms-gestion-tab--active { color: var(--p-gold) !important; }

/* Modal */
.lms-modal-title { color: var(--p-white) !important; }
.lms-modal-close { color: var(--p-silver) !important; }

/* Progreso */
.lms-prog-label { color: var(--p-silver) !important; }
.lms-prog-pct { color: var(--p-white) !important; }

/* Código badge */
.lms-codigo-badge { color: var(--p-gold) !important; }

/* Página de acceso restringido */
.lms-restringido-titulo { color: var(--p-white) !important; }
.lms-restringido-msg { color: var(--p-silver) !important; }

/* Toggle de restricción */
.lms-toggle-label { color: var(--p-white2) !important; }

/* ══ FIX BOTONES LMS ══ */
.lms-aula-card .isfis-panel__btn--primary,
.lms-gestion-panel .isfis-panel__btn--primary,
.lms-modal .isfis-panel__btn--primary {
    color: #0B1628 !important;
    -webkit-text-fill-color: #0B1628 !important;
    font-weight: 700 !important;
}
.lms-aula-card .isfis-panel__btn:not(.isfis-panel__btn--primary),
.lms-gestion-panel .isfis-panel__btn:not(.isfis-panel__btn--primary),
.lms-modal .isfis-panel__btn:not(.isfis-panel__btn--primary) {
    color: #E2E8F0 !important;
    -webkit-text-fill-color: #E2E8F0 !important;
}

/* ══ BOTÓN GESTIONAR — siempre visible ══ */
.lms-btn-gestionar-aula,
.lms-btn-gestionar-aula:hover,
.lms-btn-gestionar-aula:focus {
    color: #0B1628 !important;
    -webkit-text-fill-color: #0B1628 !important;
    background: var(--p-gold, #C9A84C) !important;
    border-color: var(--p-gold, #C9A84C) !important;
    font-weight: 600 !important;
    opacity: 1 !important;
    visibility: visible !important;
}

/* ══ TODOS los botones de las tarjetas de aula ══ */
.lms-aula-card-actions .isfis-panel__btn {
    color: #E2E8F0 !important;
    -webkit-text-fill-color: #E2E8F0 !important;
    opacity: 1 !important;
    visibility: visible !important;
}
.lms-aula-card-actions .isfis-panel__btn--primary {
    color: #0B1628 !important;
    -webkit-text-fill-color: #0B1628 !important;
}
