:root{--rojo:#b30000;--rojo2:#cc0000;--negro:#0b0b0b;--texto:#fff;--muted:#ffd9d9;--ok:#22c55e;--bad:#ef4444;--gray:#9ca3af;--bd:1px solid rgba(255,255,255,.22);--br:12px}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;background:linear-gradient(160deg,var(--negro) 0%, var(--rojo) 100%);color:var(--texto);font-family:Inter,system-ui,Segoe UI,Roboto,Helvetica,Arial,sans-serif}

/* Header */
header{position:sticky;top:0;z-index:10;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);border-bottom:1px solid rgba(255,255,255,.18)}
.bar{max-width:1100px;margin:auto;padding:12px 18px;display:flex;align-items:center;gap:14px}

/* Logo con subtítulo alineado */
.logo {
    display: flex;
    flex-direction: column;
}

.logo svg {
    height: 40px;
    vertical-align: middle;
}

.logo .sub {
    display: block;
    font-size: 11px;
    opacity: .85;
    margin-top: 2px;
    margin-left: 24px;
    text-align: left;
}

.spacer{flex:1}
.btn{appearance:none;border:var(--bd);background:rgba(0,0,0,.3);color:#fff;border-radius:var(--br);padding:10px 14px;font-weight:800;cursor:pointer}
.btn:hover{filter:brightness(1.08)}
.btn.accent{background:linear-gradient(180deg,var(--rojo2),var(--rojo));border-color:#ff6b6b}
.btn.primary{background:linear-gradient(180deg,#1b1b1b,#121212)}
.btn.ghost{background:transparent}
.wrap{max-width:1100px;margin:auto;padding:20px}
.card{background:rgba(0,0,0,.35);border:var(--bd);border-radius:16px;box-shadow:0 10px 30px rgba(0,0,0,.25)}
.section{padding:18px}
input,select,textarea{width:100%;padding:10px 12px;border-radius:10px;border:var(--bd);background:rgba(0,0,0,.35);color:#fff}
textarea{min-height:80px}
h1,h2,h3{margin:0 0 10px}
.muted{color:var(--muted)}

/* Import Excel Modal */
/* Plan Confirm Modal (usa el mismo sistema de .modal/.modal-content) */
.plan-confirm-content{max-width:540px}
.plan-confirm-actions{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap;margin-top:16px}
.plan-confirm-note{color:var(--muted);line-height:1.45}
#planConfirmPlanName{color:var(--texto)}

.modal{position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.8);z-index:100;display:none;align-items:center;justify-content:center}
.modal-content{background:var(--negro);border:var(--bd);border-radius:16px;padding:24px;max-width:600px;width:90%;max-height:90vh;overflow-y:auto}
.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.modal-close{background:none;border:none;color:var(--texto);font-size:24px;cursor:pointer}
.import-section{margin:16px 0;padding:16px;background:rgba(255,255,255,.05);border-radius:12px}
.file-input-wrapper{position:relative;margin:12px 0}
.file-input-wrapper input[type="file"]{position:absolute;width:100%;height:100%;opacity:0;cursor:pointer}
.file-input-label{display:block;padding:16px;border:2px dashed rgba(255,255,255,.3);border-radius:12px;text-align:center;cursor:pointer;transition:all 0.3s ease}
.file-input-label:hover{border-color:var(--rojo);background:rgba(179,0,0,.1)}
.file-info{margin-top:8px;font-size:14px;color:var(--muted)}
.preview-table{width:100%;border-collapse:collapse;margin:12px 0;font-size:12px}
.preview-table th,.preview-table td{padding:6px;text-align:left;border:1px solid rgba(255,255,255,.1)}
.preview-table th{background:rgba(179,0,0,.3)}
.import-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:12px 0}
.stat-box{padding:10px;background:rgba(0,0,0,.4);border-radius:8px;text-align:center}

/* Estructura de preguntas por bloques y temas */
.admin-folder{margin-bottom:12px}
.admin-folder summary{list-style:none;cursor:pointer;padding:12px 14px;background:rgba(179,0,0,.2);border-radius:8px;font-weight:800;display:flex;align-items:center;justify-content:space-between}
.admin-folder summary::-webkit-details-marker{display:none}
.admin-folder[open] summary{border-radius:8px 8px 0 0}
.admin-subfolder{margin:6px 0 0 12px}
.admin-subfolder summary{background:rgba(179,0,0,.1);padding:10px 12px;font-weight:600;font-size:14px}
.question-list{padding:8px;background:rgba(0,0,0,.2);border-radius:0 0 8px 8px}
.question-item{padding:10px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;align-items:flex-start}
.question-item:last-child{border-bottom:none}
.question-text{flex:1;margin-right:12px}
.question-actions{display:flex;gap:6px;flex-shrink:0}
.question-explanation{margin-top:6px;font-size:12px;color:var(--muted);font-style:italic;background:rgba(255,255,255,.05);padding:6px;border-radius:4px}

/* LANDING REDISEÑADA PROFESIONALMENTE */
#landing{min-height:calc(100vh - 56px);position:relative;display:flex;align-items:center}
.landingBar{position:absolute;top:12px;right:18px;z-index:20}
.landingGrid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px;width:100%}
@media (max-width:960px){.landingGrid{grid-template-columns:1fr}}

/* SECCIÓN IZQUIERDA - EXACTAMENTE COMO LA IMAGEN */
.hero-content {
    padding: 40px 35px;
    position: relative;
}

.hero h1 {
    font-family: Inter, system-ui, Segoe UI, Roboto, Helvetica, Arial, sans-serif;
    font-size: 38px;
    letter-spacing: -0.5px;
    font-weight: 800;
    margin-bottom: 25px;
    color: #ffffff;
    line-height: 1.2;
}

.hero h1 span {
    color: #ffcc00;
}

.hero-subtitle {
    font-size: 18px;
    color: var(--muted);
    margin-bottom: 35px;
    line-height: 1.5;
    font-weight: 500;
}

/* Lista de características - Estilo exacto de la imagen */
.features-list {
    list-style: none;
    padding: 0;
    margin: 0 0 40px 0;
}

.feature-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin-bottom: 20px;
    font-size: 16px;
    color: #fff;
}

.check-icon {
    display: inline-block;
    width: 22px;
    height: 22px;
    border: 2px solid #ffcc00;
    border-radius: 4px;
    flex-shrink: 0;
    margin-top: 2px;
    position: relative;
    background-color: #ffcc00;
}

.check-icon::after {
    content: "✓";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: #000;
    font-weight: bold;
    font-size: 14px;
}

.feature-text {
    line-height: 1.4;
}

/* CTA simple como en la imagen */
.hero-cta {
    text-align: left;
}

.cta-button {
    display: inline-block;
    background: linear-gradient(135deg, var(--rojo2), var(--rojo));
    color: #fff;
    padding: 14px 30px;
    border-radius: 8px;
    font-weight: 700;
    text-decoration: none;
    text-align: center;
    border: none;
    cursor: pointer;
    font-size: 16px;
    transition: all 0.3s ease;
}

.cta-button:hover {
    filter: brightness(1.1);
    transform: translateY(-2px);
}

/* SECCIÓN DERECHA - MANTENIDA PERO CON FONDO AJUSTADO */
.pricing {
    padding: 30px;
    background: rgba(0,0,0,0.4);
    border-radius: 16px;
    height: fit-content;
}

.priceCard {
    border: var(--bd);
    border-radius: 16px;
    padding: 24px;
    background: rgba(0,0,0,.5);
    margin-bottom: 20px;
    cursor: pointer;
    transition: all .2s ease-in-out;
    position: relative;
}

.priceCard:hover {
    filter: brightness(1.15);
    transform: translateY(-3px);
}

/* Estilo para resaltar las tarjetas de precio */
.priceCard.highlight {
    border: 2px solid #ffcc00;
    box-shadow: 0 0 15px rgba(255, 204, 0, 0.3);
}

.price-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.price-badge {
    font-size: 12px;
    padding: 6px 12px;
    border-radius: 8px;
    background: rgba(255,255,255,0.1);
    font-weight: 700;
}

.price-badge.flexible {
    background: linear-gradient(135deg, #ffd700, #ffed4e);
    color: #000;
}

.price-badge.best-value {
    background: linear-gradient(135deg, #ffd700, #ffed4e);
    color: #000;
}

.price {
    font-size: 36px;
    font-weight: 900;
    margin: 12px 0;
}

.price-period {
    font-size: 16px;
    font-weight: 600;
    opacity: 0.8;
}

.price-note {
    font-size: 14px;
    color: var(--muted);
    margin: 8px 0 0 0;
    line-height: 1.4;
}

/* Welcome (login directo) */
#welcome{min-height:calc(100vh - 56px);display:none;align-items:center;justify-content:center}
.loginCard{padding:28px;max-width:560px;margin:auto;text-align:center}
.loginFields{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}
.loginHelper{color:var(--muted);font-size:12px;margin-top:6px}

/* App */
#app{display:none}

/* Topics list con carpetas */
#topicSelect{margin:6px 0}
.folder{border:var(--bd);border-radius:12px;overflow:hidden;margin-top:8px}
.folder summary{list-style:none;cursor:pointer;padding:10px 12px;background:rgba(0,0,0,.4);font-weight:800;display:flex;align-items:center;justify-content:space-between}
.folder summary::-webkit-details-marker{display:none}
.folderContent{padding:8px 12px;background:rgba(0,0,0,.25)}
.folderTools{display:flex;gap:8px;margin:6px 0 8px 0}
.topicList{list-style:none;margin:0;padding:0}
.topicItem{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:14px;border-bottom:1px solid rgba(255,255,255,.08)}
.topicItem:last-child{border-bottom:none}
/* Check moderno (blanco) */
.topicItem input[type=checkbox]{appearance:none;-webkit-appearance:none;width:22px;height:22px;margin:0;border-radius:8px;border:1px solid rgba(255,255,255,.4);background:#fff1;position:relative;cursor:pointer;transition:all .25s ease}
.topicItem input[type=checkbox]:hover{border-color:var(--rojo);box-shadow:0 0 6px rgba(255,0,0,.4)}
.topicItem input[type=checkbox]:checked{background:linear-gradient(160deg,var(--rojo2),var(--rojo));border-color:var(--rojo2)}
.topicItem input[type=checkbox]:checked::after{content:"✔";color:#fff;font-size:14px;position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);font-weight:800}
.topicActions{display:flex;gap:8px;margin-top:8px}

/* Fullscreen test / inmersivo */
#fullscreenTest{position:fixed;inset:0;background:linear-gradient(160deg,#000 0%, #7f0000 100%);z-index:9999;display:none;flex-direction:column;justify-content:center;align-items:center;padding:22px}
@media (max-width: 768px){
  #fullscreenTest{
    justify-content:flex-start;
    overflow-y:auto;
    height:100dvh;
    overflow-x:hidden;
    -webkit-overflow-scrolling:touch;
    padding:14px;
    padding-bottom:80px;
  }

  #fullscreenTest .question h2{
    font-size:18px;
    line-height:1.25;
    margin:12px 0 10px 0;
  }

  #fullscreenTest .option{
    font-size:16px;
    padding:8px 0;
  }

  .question-header-spacing{margin-bottom:8px !important;}
  .progress-bar-spacing{margin-bottom:20px !important;}
  .test-controls-container{margin-top:16px !important;}
}

.question{max-width:900px;width:100%;}
.question h2{font-size:26px;margin:0 0 18px;text-align:center}
.progress{opacity:.85;margin-bottom:8px;text-align:center}
#progressBar{height:8px;background:rgba(255,255,255,.2);border-radius:8px;overflow:hidden;margin:6px auto 12px;max-width:900px}
#progressInner{height:100%;width:0;background:linear-gradient(90deg,var(--rojo2),var(--rojo));transition:width .25s ease}
.option{display:flex;align-items:center;gap:12px;padding:10px 0;font-size:18px}
.option input[type=radio]{width:20px;height:20px;margin:0}
.ctrls{margin-top:18px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap}

/* Estilo para el botón Terminar ahora */
.btn.terminate {
    background: rgba(179,0,0,0.3) !important;
    border: 1px solid var(--rojo) !important;
    color: #fff;
    margin-left: auto; /* ← CAMBIO AQUÍ */
    margin-right: 20px; /* ← AÑADE ESTO */
}
.btn.terminate:hover {
    background: rgba(179,0,0,0.5) !important;
    filter: brightness(1.1);
}

/* KPI + Resumen */
.kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.kpi .box{background:rgba(0,0,0,.45);border:var(--bd);border-radius:12px;padding:10px;text-align:center}
.kpi .big{font-size:22px;font-weight:800}
.summaryQuestion{border-bottom:1px solid rgba(255,255,255,.1);padding:12px 0}
.optionSummary{padding:4px 0}
.correct{color:var(--ok)}
.incorrect{color:var(--bad)}
.gray{color:var(--gray)}

/* Estilos para errores con explicación - MEJORADO CON ACORDEONES */
.error-folder {
    margin-bottom: 12px;
    border: var(--bd);
    border-radius: 8px;
    overflow: hidden;
}

.error-folder summary {
    list-style: none;
    cursor: pointer;
    padding: 12px 14px;
    background: rgba(179,0,0,.2);
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.error-folder summary::-webkit-details-marker {
    display: none;
}

.error-folder[open] summary {
    border-radius: 8px 8px 0 0;
}

.error-subfolder {
    margin: 6px 0 0 12px;
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 6px;
    overflow: hidden;
}

.error-subfolder summary {
    background: rgba(179,0,0,.1);
    padding: 10px 12px;
    font-weight: 600;
    font-size: 14px;
}

.error-items {
    padding: 8px;
    background: rgba(0,0,0,.2);
}

.error-item {
    margin-bottom: 12px;
    padding: 10px;
    background: rgba(0,0,0,.3);
    border-radius: 8px;
}

.error-question {
    font-weight: 600;
    margin-bottom: 6px;
}

.error-explanation {
    font-size: 13px;
    color: var(--muted);
    font-style: italic;
    background: rgba(255,255,255,.05);
    padding: 6px;
    border-radius: 4px;
}

/* Demo data button */
.demo-section{margin:16px 0;padding:16px;background:rgba(255,255,255,.05);border-radius:12px;border:2px dashed var(--rojo)}

/* Mejorar visibilidad de las explicaciones */
.question-explanation {
    margin-top: 8px;
    padding: 10px;
    background: rgba(255,255,255,0.05);
    border-radius: 8px;
    border-left: 3px solid var(--rojo);
    font-size: 14px;
    color: var(--muted);
    line-height: 1.4;
}

/* Estilos para el menú hamburguesa */
.menu-toggle {
    display: flex;
    flex-direction: column;
    cursor: pointer;
    gap: 4px;
    padding: 8px;
}

.menu-toggle span {
    width: 25px;
    height: 3px;
    background-color: #fff;
    transition: all 0.3s ease;
}

.menu-content {
    display: none;
    position: absolute;
    top: 100%;
    right: 0;
    background: rgba(0,0,0,0.9);
    border: var(--bd);
    border-radius: 8px;
    padding: 10px;
    min-width: 280px;
    z-index: 1000;
}

.menu-content.show {
    display: block;
}

.menu-item {
    display: block;
    padding: 10px;
    color: #fff;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.menu-item:last-child {
    border-bottom: none;
}

.menu-item:hover {
    background: rgba(255,255,255,0.1);
}

/* Estilos para formularios de registro y pago */
.form-group {
    margin-bottom: 16px;
}

.form-label {
    display: block;
    margin-bottom: 6px;
    font-weight: 600;
}

.checkbox-group {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 12px;
}

.checkbox-group input[type="checkbox"] {
    width: 18px;
    height: 18px;
    margin-top: 2px;
}

.checkbox-label {
    font-size: 14px;
    line-height: 1.4;
}

.required {
    color: var(--bad);
}

.validation-message {
    font-size: 12px;
    margin-top: 4px;
    display: none;
}

.validation-message.error {
    color: var(--bad);
    display: block;
}

.validation-message.success {
    color: var(--ok);
    display: block;
}

.payment-methods {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    margin: 20px 0;
}

.payment-method {
    border: var(--bd);
    border-radius: 10px;
    padding: 15px;
    text-align: center;
    cursor: pointer;
    transition: all 0.3s ease;
}

.payment-method:hover {
    background: rgba(255,255,255,0.05);
}

.payment-method.selected {
    border-color: var(--rojo);
    background: rgba(179,0,0,0.1);
}

.payment-icon {
    font-size: 24px;
    margin-bottom: 8px;
}

/* Estilos para recuperación de contraseña */
.recovery-card {
    max-width: 500px;
    margin: auto;
}

/* Mensajes de éxito y error */
.alert {
    padding: 12px 16px;
    border-radius: 8px;
    margin: 12px 0;
    font-weight: 600;
}

.alert.success {
    background: rgba(34, 197, 94, 0.2);
    border: 1px solid var(--ok);
    color: var(--ok);
}

.alert.error {
    background: rgba(239, 68, 68, 0.2);
    border: 1px solid var(--bad);
    color: var(--bad);
}

/* Estilos para perfil de usuario */
.user-profile {
    padding: 15px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.user-detail {
    margin-bottom: 8px;
    font-size: 14px;
}

.user-detail strong {
    display: inline-block;
    width: 120px;
}

.subscription-status {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
    margin-left: 8px;
}

.subscription-status.active {
    background: rgba(34, 197, 94, 0.2);
    color: var(--ok);
}

.subscription-status.cancelled {
    background: rgba(239, 68, 68, 0.2);
    color: var(--bad);
}

.profile-actions {
    display: flex;
    flex-direction: column;
    gap: 8px;
    margin-top: 12px;
}

.profile-actions button {
    width: 100%;
    padding: 8px;
    font-size: 14px;
    text-align: left;
}

/* Nuevos estilos para Rankings y Estadísticas */
.stats-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin: 20px 0;
}

.stat-card {
    background: rgba(0,0,0,0.4);
    border: var(--bd);
    border-radius: 12px;
    padding: 18px;
    text-align: center;
}

.stat-value {
    font-size: 32px;
    font-weight: 800;
    margin: 10px 0;
    color: #ffcc00;
}

.stat-label {
    font-size: 14px;
    color: var(--muted);
}

.ranking-table {
    width: 100%;
    border-collapse: collapse;
    margin: 20px 0;
}

.ranking-table th,
.ranking-table td {
    padding: 12px 15px;
    text-align: left;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.ranking-table th {
    background: rgba(179,0,0,0.3);
    font-weight: 700;
}

.ranking-table tr:hover {
    background: rgba(255,255,255,0.05);
}

.ranking-position {
    font-weight: 800;
    font-size: 18px;
    text-align: center;
    width: 50px;
}

.position-1 { color: gold; }
.position-2 { color: silver; }
.position-3 { color: #cd7f32; } /* bronze */

.progress-bar {
    height: 8px;
    background: rgba(255,255,255,0.2);
    border-radius: 4px;
    overflow: hidden;
    margin: 8px 0;
}

.progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--rojo2), var(--rojo));
    border-radius: 4px;
}

.topic-stats {
    margin: 15px 0;
    padding: 12px;
    background: rgba(0,0,0,0.3);
    border-radius: 8px;
}

.topic-stats-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}

.topic-name {
    font-weight: 600;
}

.topic-score {
    font-weight: 700;
    color: #ffcc00;
}

/* Estilos para resultados de test */
.results-container {
    max-width: 900px;
    width: 100%;
    max-height: 90vh;
    overflow-y: auto;
    background: rgba(0,0,0,0.8);
    border-radius: 16px;
    padding: 24px;
    border: var(--bd);
}

.results-header {
    text-align: center;
    margin-bottom: 24px;
}

.score-circle {
    width: 120px;
    height: 120px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--rojo2), var(--rojo));
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    margin: 0 auto 20px;
    border: 4px solid #ffcc00;
}

.score-main {
    font-size: 36px;
    font-weight: 900;
    line-height: 1;
}

.score-out-of {
    font-size: 16px;
    opacity: 0.9;
}

.results-stats {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin: 20px 0;
}

.result-stat {
    text-align: center;
    padding: 15px;
    background: rgba(255,255,255,0.05);
    border-radius: 10px;
}

.result-number {
    font-size: 24px;
    font-weight: 800;
    margin-bottom: 5px;
}

.result-label {
    font-size: 14px;
    color: var(--muted);
}

.question-review {
    margin: 20px 0;
    padding: 15px;
    background: rgba(255,255,255,0.05);
    border-radius: 10px;
}

.review-question {
    font-weight: 600;
    margin-bottom: 10px;
    font-size: 16px;
}

.review-options {
    margin: 10px 0;
}

.review-option {
    padding: 8px 12px;
    margin: 5px 0;
    border-radius: 6px;
    background: rgba(255,255,255,0.03);
}

.review-correct {
    background: rgba(34, 197, 94, 0.2);
    border-left: 3px solid var(--ok);
}

.review-incorrect {
    background: rgba(239, 68, 68, 0.2);
    border-left: 3px solid var(--bad);
}

.review-user-answer {
    background: rgba(255, 204, 0, 0.1);
    border-left: 3px solid #ffcc00;
}

/* Estilos para errores acumulados */
.errors-container {
    margin-top: 20px;
}

.export-pdf-btn {
    margin: 15px 0;
}

/* Icono de desplegar en folders */
.folder summary::after {
    content: "▼";
    font-size: 12px;
    transition: transform 0.3s ease;
}

.folder[open] summary::after {
    transform: rotate(180deg);
}

/* Nuevos estilos para páginas de Contacto y Documentos */
.contact-info {
    margin: 20px 0;
    padding: 15px;
    background: rgba(0,0,0,0.3);
    border-radius: 10px;
}

.contact-email {
    font-size: 18px;
    font-weight: 600;
    color: #ffcc00;
    margin: 10px 0;
}

.document-block {
    margin-bottom: 20px;
    border: var(--bd);
    border-radius: 10px;
    overflow: hidden;
}

.document-block-header {
    padding: 12px 15px;
    background: rgba(179,0,0,0.2);
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.document-list {
    padding: 15px;
    background: rgba(0,0,0,0.2);
}

.document-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 10px;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.document-item:last-child {
    border-bottom: none;
}

.document-actions {
    display: flex;
    gap: 10px;
}

.admin-controls {
    margin-top: 20px;
    padding: 15px;
    background: rgba(0,0,0,0.3);
    border-radius: 10px;
}

/* Estilos para la nueva página de Rankings */
.rankings-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.ranking-section {
    margin-bottom: 30px;
}

.top3-ranking {
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin-bottom: 20px;
}

.top3-item {
    display: flex;
    align-items: center;
    gap: 15px;
    padding: 15px;
    background: rgba(0,0,0,0.3);
    border-radius: 10px;
    border: var(--bd);
}

.top3-position {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 800;
    font-size: 18px;
}

.position-gold {
    background: linear-gradient(135deg, gold, #ffd700);
    color: #000;
}

.position-silver {
    background: linear-gradient(135deg, silver, #c0c0c0);
    color: #000;
}

.position-bronze {
    background: linear-gradient(135deg, #cd7f32, #b08d57);
    color: #000;
}

.top3-info {
    flex: 1;
}

.top3-name {
    font-weight: 700;
    margin-bottom: 5px;
}

.top3-stats {
    font-size: 14px;
    color: var(--muted);
}

.user-position-card {
    background: rgba(0,0,0,0.4);
    border: var(--bd);
    border-radius: 12px;
    padding: 18px;
    text-align: center;
}

.user-position-value {
    font-size: 32px;
    font-weight: 800;
    margin: 10px 0;
    color: #ffcc00;
}

/* Estilos para la página de Términos y Política */
.terms-policy-section {
    margin-bottom: 30px;
}

.terms-policy-upload {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

/* Nuevos estilos para las nuevas páginas */
.subscription-management-section {
    margin: 20px 0;
    padding: 20px;
    background: rgba(0,0,0,0.3);
    border-radius: 12px;
    border: var(--bd);
}

.funny-message {
    background: linear-gradient(135deg, rgba(255,204,0,0.2), rgba(255,204,0,0.1));
    border: 2px dashed #ffcc00;
    border-radius: 12px;
    padding: 20px;
    margin: 20px 0;
    text-align: center;
}

.cancellation-survey {
    margin: 20px 0;
}

.survey-option {
    display: flex;
    align-items: center;
    gap: 10px;
    margin: 10px 0;
    padding: 12px;
    background: rgba(255,255,255,0.05);
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.survey-option:hover {
    background: rgba(255,255,255,0.1);
}

.survey-option.selected {
    background: rgba(179,0,0,0.2);
    border: 1px solid var(--rojo);
}

.admin-module {
    margin: 20px 0;
    padding: 20px;
    background: rgba(0,0,0,0.3);
    border-radius: 12px;
    border: var(--bd);
}

.module-item {
    margin: 15px 0;
    padding: 15px;
    background: rgba(255,255,255,0.05);
    border-radius: 8px;
    border: var(--bd);
}

.module-item summary {
    cursor: pointer;
    font-weight: 600;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.module-item[open] summary {
    margin-bottom: 10px;
}

.module-details {
    margin-top: 10px;
    padding: 10px;
    background: rgba(0,0,0,0.3);
    border-radius: 6px;
    font-size: 14px;
}

.reactivation-banner {
    background: linear-gradient(135deg, rgba(34,197,94,0.2), rgba(34,197,94,0.1));
    border: 2px solid var(--ok);
    border-radius: 12px;
    padding: 20px;
    margin: 20px 0;
    text-align: center;
}

/* ===== NUEVOS ESTILOS PARA GESTIÓN DE USUARIOS ===== */
.user-filters {
    margin-bottom: 20px;
    padding: 15px;
    background: rgba(0,0,0,0.3);
    border-radius: 10px;
    border: var(--bd);
}

.users-stats {
    margin-bottom: 15px;
    padding: 10px;
    background: rgba(255,255,255,0.05);
    border-radius: 8px;
    font-size: 14px;
}

.users-table-container {
    overflow-x: auto;
    margin: 15px 0;
}

.users-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}

.users-table th,
.users-table td {
    padding: 12px 8px;
    text-align: left;
    border-bottom: 1px solid rgba(255,255,255,0.1);
}

.users-table th {
    background: rgba(179,0,0,0.3);
    font-weight: 700;
    position: sticky;
    top: 0;
}

.users-table tr:hover {
    background: rgba(255,255,255,0.05);
}

.user-status {
    display: inline-block;
    padding: 4px 8px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 600;
}

.status-active {
    background: rgba(34, 197, 94, 0.2);
    color: var(--ok);
}

.status-cancelled {
    background: rgba(239, 68, 68, 0.2);
    color: var(--bad);
}

.status-pending {
    background: rgba(255, 204, 0, 0.2);
    color: #ffcc00;
}

.user-actions {
    display: flex;
    gap: 5px;
    flex-wrap: wrap;
}

.user-action-btn {
    padding: 6px 10px;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    font-size: 12px;
    font-weight: 600;
}

.btn-block {
    background: rgba(255, 204, 0, 0.2);
    color: #ffcc00;
    border: 1px solid #ffcc00;
}

.btn-delete {
    background: rgba(239, 68, 68, 0.2);
    color: var(--bad);
    border: 1px solid var(--bad);
}

.btn-unblock {
    background: rgba(34, 197, 94, 0.2);
    color: var(--ok);
    border: 1px solid var(--ok);
}

.user-action-btn:hover {
    filter: brightness(1.2);
}

/* ===== ESTILOS PARA BOTÓN SIMULACRO GENERAL ===== */
#simulacroGeneralBtn {
    background: linear-gradient(135deg, #ffcc00, #ff9900);
    color: #000;
    font-weight: 800;
    border: none;
}

#simulacroGeneralBtn:hover {
    background: linear-gradient(135deg, #ff9900, #ff6600);
    transform: translateY(-2px);
}

/* ===== MEJORAS PARA SUGERENCIAS EN ADMIN ===== */
.suggestion-details {
    margin-top: 10px;
    padding: 10px;
    background: rgba(0,0,0,0.3);
    border-radius: 6px;
    font-size: 13px;
}

.suggestion-option {
    background: rgba(255,255,255,0.05);
    padding: 8px;
    border-radius: 4px;
    margin: 5px 0;
    border-left: 3px solid var(--rojo);
}

/* Responsive adjustments */
@media (max-width: 768px) {
    .user-filters > div {
        grid-template-columns: 1fr !important;
    }
    
    .users-table {
        font-size: 12px;
    }
    
    .users-table th,
    .users-table td {
        padding: 8px 4px;
    }
    
    .user-actions {
        flex-direction: column;
    }
    
    .terms-policy-upload {
        grid-template-columns: 1fr;
    }
    
    .rankings-layout {
        grid-template-columns: 1fr;
    }
    
    .stats-grid {
        grid-template-columns: 1fr;
    }
}
/* Estilos para el botón de prueba gratuita */
.cta-button.free-trial {
  background: linear-gradient(135deg, #ffcc00, #ff9900) !important;
  color: #000 !important;
  font-weight: 700 !important;
}

.cta-button.free-trial:hover {
  background: linear-gradient(135deg, #ff9900, #ff6600) !important;
  transform: translateY(-2px);
}
/* ===== ESTILOS PARA GESTIÓN DE PREGUNTAS ADMIN ===== */
.questions-stats {
  margin-bottom: 15px;
  padding: 10px;
  background: rgba(255,255,255,0.05);
  border-radius: 8px;
  font-size: 14px;
}

.question-management-item {
  margin: 10px 0;
  padding: 15px;
  background: rgba(0,0,0,0.3);
  border-radius: 10px;
  border: var(--bd);
  position: relative;
}

.question-management-header {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 10px;
}

.question-management-text {
  flex: 1;
  font-weight: 600;
  margin-right: 15px;
  line-height: 1.4;
}

.question-management-meta {
  display: flex;
  gap: 10px;
  font-size: 12px;
  color: var(--muted);
  margin-bottom: 10px;
  flex-wrap: wrap;
}

.question-meta-badge {
  padding: 2px 8px;
  border-radius: 12px;
  background: rgba(255,255,255,0.1);
  font-weight: 600;
}

.question-management-options {
  margin: 10px 0;
  padding: 10px;
  background: rgba(0,0,0,0.4);
  border-radius: 6px;
}

.question-option {
  padding: 5px 0;
  margin: 3px 0;
}

.question-option.correct {
  color: var(--ok);
  font-weight: 600;
}

.question-management-actions {
  display: flex;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}

.btn-edit {
  background: rgba(34, 197, 94, 0.2);
  color: var(--ok);
  border: 1px solid var(--ok);
}

.btn-delete-question {
  background: rgba(239, 68, 68, 0.2);
  color: var(--bad);
  border: 1px solid var(--bad);
}

.btn-toggle-free-trial {
  background: rgba(255, 204, 0, 0.2);
  color: #ffcc00;
  border: 1px solid #ffcc00;
}

.question-actions-left {
  flex: 1;
  display: flex;
  gap: 8px;
}

.question-explanation-admin {
  margin-top: 10px;
  padding: 8px;
  background: rgba(255,255,255,0.05);
  border-radius: 6px;
  font-size: 13px;
  color: var(--muted);
  border-left: 3px solid var(--rojo);
}

/* Modal de edición */
.edit-question-modal {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0,0,0,0.9);
  z-index: 1000;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 20px;
}

.edit-question-content {
  background: var(--negro);
  border: var(--bd);
  border-radius: 16px;
  padding: 24px;
  max-width: 800px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
}

.edit-question-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 20px;
}

.edit-question-body {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 15px;
}

.edit-question-fullwidth {
  grid-column: 1 / -1;
}

/* ==== FOOTER LEGAL ==== */
.footer {
  background: rgba(0,0,0,0.6);
  padding: 20px;
  border-top: 1px solid rgba(255,255,255,0.15);
  margin-top: 40px;
}

.footer-content {
  max-width: 1100px;
  margin: auto;
  display: flex;
  justify-content: center;
  gap: 25px;
  flex-wrap: wrap;
}

.footer-content a {
  color: var(--muted);
  font-size: 14px;
  text-decoration: none;
}

.footer-content a:hover {
  color: #ffffff;
}

/* Estilos para eliminación masiva de temas */
.bulk-delete-section {
    background: rgba(255, 0, 0, 0.05);
    border: 1px solid rgba(255, 0, 0, 0.2);
    border-radius: 10px;
    padding: 20px;
    margin-bottom: 25px;
}

.bulk-delete-section h3 {
    color: #ff4444;
    margin-bottom: 15px;
    margin-top: 0;
}

.btn.danger {
    background: linear-gradient(135deg, #ff4444, #cc0000);
    color: white;
    border: none;
    padding: 10px 15px;
    border-radius: 6px;
    cursor: pointer;
    font-weight: 600;
    transition: all 0.3s ease;
}

.btn.danger:hover {
    background: linear-gradient(135deg, #cc0000, #990000);
    transform: translateY(-1px);
    box-shadow: 0 4px 8px rgba(255, 0, 0, 0.3);
}

.btn.danger:active {
    transform: translateY(0);
}

.btn.danger:disabled {
    background: #cccccc;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* Estilo para mostrar el tema en el test */
.question-header {
    text-align: center;
    margin-bottom: 15px;
}

.question-topic {
    font-size: 16px;
    color: var(--muted);
    margin-bottom: 8px;
    font-weight: 600;
}

.question-number {
    font-size: 18px;
    color: #fff;
    margin-bottom: 5px;
}

.password-container {
    position: relative;
    width: 100%;
}

.password-container input {
    padding-right: 40px;
    width: 100%;
    box-sizing: border-box;
}

.toggle-password {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    cursor: pointer;
    user-select: none;
    padding: 5px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: 4px;
    transition: background-color 0.3s ease;
    font-size: 14px;
}

.toggle-password:hover {
    background: rgba(255, 255, 255, 0.2);
}

.toggle-password.active {
    background: rgba(76, 175, 80, 0.3);
}

/* ===== ESTILOS PARA BARRA DE PROGRESO CON ICONOS ===== */
#progressBar {
  position: relative;
  width: 100%;
  height: 8px;
  background: #eee;
  border-radius: 4px;
  overflow: visible;
  margin: 10px 0;
}

#progressInner {
  height: 100%;
  background: #8B0000; /* ← Rojo burdeos */
  border-radius: 4px;
  transition: width 0.3s ease;
}

#progressMarkers {
  pointer-events: none;
}

#progressMarkers div {
  pointer-events: auto;
  font-size: 14px;
  transition: transform 0.2s;
  filter: drop-shadow(0 0 2px rgba(0,0,0,0.5));
}

#progressMarkers div:hover {
  transform: translateY(-2px) scale(1.05);
}

/* === Estilos del botón de advertencia === */
.btn.warning {
    background-color: #ffcc00 !important;
    color: #000000 !important;
}

.btn.warning:hover {
    background-color: #e6b800 !important;
    color: #000000 !important;
}

/* === Estilo para respuestas no contestadas === */
.review-unanswered-correct {
    background-color: #fff9c4 !important;
    color: #000 !important;
    border-left: 4px solid #ffcc00 !important;
    padding: 8px 12px;
    margin: 5px 0;
    border-radius: 6px;
}

/* === Estilos para edición de email === */

.email-editable {
    display: flex;
    align-items: center;
    gap: 8px;
}

.edit-email-btn {
    background: none;
    border: none;
    cursor: pointer;
    font-size: 14px;
    padding: 4px;
    border-radius: 4px;
    color: var(--text);
}

.edit-email-btn:hover {
    background: rgba(255,255,255,0.1);
}

.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: 1000;
}

.modal-content {
    background: var(--bg);
    padding: 20px;
    border-radius: 8px;
    width: 90%;
    max-width: 400px;
    border: 1px solid var(--border);
}

#newEmailInput {
    width: 100%;
    padding: 10px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--input-bg, #2a2a2a) !important;
    color: var(--text);
    font-size: 14px;
}

#newEmailInput:focus {
    outline: none;
    border-color: var(--accent);
    box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.2);
}

/* ===== CLASES NUEVAS PARA REEMPLAZAR ESTILOS INLINE DEL JS ===== */

/* Para el test en pantalla completa */
.question-header-spacing {
    margin-bottom: 30px;
}

.question-topic-spacing {
    margin-bottom: 10px;
}

.question-number-spacing {
    margin-bottom: 15px;
}

.progress-bar-spacing {
    position: relative;
    margin-bottom: 40px;
}

.question-title-spacing {
    margin-top: 20px;
}

/* Para marcadores en la barra de progreso */
.progress-marker {
    position: absolute;
    pointer-events: auto;
    cursor: pointer;
    z-index: 10;
    font-size: 16px;
    text-shadow: 0 0 3px black;
}

/* Para validaciones y errores */
.validation-error-border {
    border: 2px solid var(--bad) !important;
}

.validation-error-show {
    display: block !important;
}

.validation-error-hide {
    display: none !important;
}

/* Para mensajes de "no encontrado" */
.no-questions-found,
.no-users-found {
    text-align: center;
    padding: 20px;
}

/* Para vista previa de importación */
.import-debug {
    background: #ffeb3b;
    color: #000;
    padding: 10px;
    margin-bottom: 10px;
    border-radius: 5px;
    font-size: 12px;
}

/* Para carpetas vacías */
.empty-folder-message {
    color: var(--muted);
    font-size: 13px;
    padding: 6px 12px;
}

/* Para botón de resultados */
.results-back-button-container {
    text-align: center;
    margin-top: 20px;
}

/* Para botones de marcado */
.mark-button-container {
    display: flex;
    gap: 10px;
    margin-top: 30px;
    flex-wrap: wrap;
}

/* Para el botón de finalizar */
.terminate-button {
    background-color: #FF5722;
    color: white;
    border: none;
}

.terminate-button:hover {
    background-color: #E64A19;
}

/* ===== CLASES ADICIONALES PARA LOS CONTROLES DEL TEST ===== */

/* Para los controles del test */
.test-controls-container {
    display: flex;
    gap: 10px;
    margin-top: 30px;
    flex-wrap: wrap;
}

/* Botón de finalizar test */
.btn-terminate-test {
    background-color: #FF5722;
    color: white;
    border: none;
}

.btn-terminate-test:hover {
    background-color: #E64A19;
}

/* Para el botón de marcar pregunta */
.btn-mark-question {
    background-color: rgba(255, 193, 7, 0.1);
    color: #FFC107;
    border: 1px solid rgba(255, 193, 7, 0.3);
}

.btn-mark-question:hover {
    background-color: rgba(255, 193, 7, 0.2);
}

/* ===== CLASES FINALES PARA COMPLETAR LA LIMPIEZA ===== */

/* Para elementos de estadísticas */
.stats-grid-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 15px;
    margin: 15px 0;
}

.stats-box {
    padding: 12px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 8px;
}

.stats-label {
    font-size: 12px;
    color: var(--muted);
}

.stats-value {
    font-weight: 700;
    font-size: 18px;
}

.stats-fullwidth-box {
    padding: 12px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 8px;
    margin-bottom: 15px;
}

/* Para detalles de sugerencias */
.suggestion-details {
    padding: 15px;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 8px;
    margin-top: 10px;
}

.suggestion-option {
    padding: 10px;
    background: rgba(255, 255, 255, 0.05);
    border-radius: 6px;
    margin: 10px 0;
}

/* Para el botón de finalizar test - posición y color */
.btn-finalizar-test {
    background-color: #FF5722 !important;
    color: white !important;
    border: none !important;
    margin-left: auto !important; /* Esto lo empuja a la derecha */
}

.btn-finalizar-test:hover {
    background-color: #E64A19 !important;
}

/* Botón de marcar pregunta - COLOR CORRECTO */
.btn-marcar-revisar {
    background-color: transparent !important;
    color: var(--text) !important;
    border: 1px solid var(--muted) !important;
}

.btn-marcar-revisar:hover {
    background-color: rgba(255, 193, 7, 0.1) !important;
    border-color: #FFC107 !important;
    color: #FFC107 !important;
}

/* No permitir seleccionar texto (para evitar copiar fácilmente) */
.no-select {
    -webkit-user-select: none; /* Chrome / Safari */
    -moz-user-select: none;    /* Firefox */
    -ms-user-select: none;     /* IE/Edge antiguos */
    user-select: none;         /* Estándar */
}

/* Flecha en desplegables de documentos */
.document-block > summary.document-block-header {
  list-style: none; /* quita el marker por defecto en algunos navegadores */
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.document-block > summary.document-block-header::-webkit-details-marker {
  display: none; /* quita el triangulito nativo de Chrome */
}

.document-block > summary.document-block-header::after {
  content: "▼";
  font-size: 14px;
  opacity: 0.7;
}

.document-block[open] > summary.document-block-header::after {
  content: "▲";
}

/* ====== Ajustes SOLO para móvil (cabecera / botones superiores) ====== */
@media (max-width: 768px) {
  header .bar{
    flex-wrap: wrap;
    padding: 10px 12px;
    gap: 10px;
  }

  /* En móvil el spacer estorba y provoca espacios raros */
  header .bar .spacer{
    display: none;
  }

  /* Botonera superior: en móvil se hace barra con scroll horizontal */
  #appButtons{
    width: 100%;
    display: flex;
    gap: 10px;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    padding: 6px 0;
  }

  #appButtons .btn{
    flex: 0 0 auto;
    padding: 8px 10px;
    font-size: 13px;
    border-radius: 12px;
    white-space: nowrap;
  }

  /* Oculta la barra de scroll (iOS/Chrome) */
  #appButtons::-webkit-scrollbar{
    display: none;
  }

  /* El menú hamburguesa a la derecha si aparece */
  .menu-container{
    margin-left: auto;
  }
}
