/* Academia Naval V48.61 · integridad de tema y legibilidad global.
   Esta hoja se carga al final para que claro/oscuro compartan el mismo
   sistema de superficies, texto y estados en toda la aplicacion. */
:root{
  --anv-surface:var(--card);
  --anv-surface-soft:color-mix(in srgb,var(--card) 88%,var(--bg));
  --anv-surface-raised:color-mix(in srgb,var(--card) 96%,var(--primarioLight));
  --anv-field:color-mix(in srgb,var(--bg) 72%,var(--card));
  --anv-text:var(--text);
  --anv-text-muted:var(--muted);
  --anv-focus:color-mix(in srgb,var(--primario) 42%,transparent);
  --anv-success-bg:#e8f7ee;--anv-success-fg:#165b35;--anv-success-line:#4fa775;
  --anv-danger-bg:#fff0f1;--anv-danger-fg:#8a2028;--anv-danger-line:#dc5961;
  --anv-warning-bg:#fff6d8;--anv-warning-fg:#70500a;--anv-warning-line:#e0ac25;
}
html[data-theme="dark"]{
  --anv-surface:var(--card);
  --anv-surface-soft:color-mix(in srgb,var(--card) 90%,#000 10%);
  --anv-surface-raised:color-mix(in srgb,var(--card) 92%,var(--primario) 8%);
  --anv-field:color-mix(in srgb,var(--card) 84%,#000 16%);
  --anv-text:var(--text);
  --anv-text-muted:var(--muted);
  --anv-focus:color-mix(in srgb,var(--primario) 58%,transparent);
  --anv-success-bg:#153b2a;--anv-success-fg:#c8f6d9;--anv-success-line:#43bf79;
  --anv-danger-bg:#421f23;--anv-danger-fg:#ffd4d7;--anv-danger-line:#ef626a;
  --anv-warning-bg:#3f3417;--anv-warning-fg:#ffe39a;--anv-warning-line:#d9aa35;
}

/* Controles nativos: nunca deben conservar una superficie clara al cambiar tema. */
html[data-theme="dark"] body :where(
  input:not([type="range"]):not([type="color"]):not([type="checkbox"]):not([type="radio"]),
  textarea,select
){background-color:var(--anv-field);color:var(--text);border-color:var(--borde);caret-color:var(--text)}
html[data-theme="dark"] body :where(input,textarea)::placeholder{color:var(--muted);opacity:.82}
html[data-theme="dark"] body select option{background:var(--card);color:var(--text)}
html[data-theme="dark"] body :where(input,textarea,select):focus-visible{outline:3px solid var(--anv-focus);outline-offset:1px}
html[data-theme="dark"] body :where(button,[role="button"],a):focus-visible{outline-color:var(--anv-focus)}

/* Superficies compartidas que antes podian quedarse con colores de modo claro. */
html[data-theme="dark"] :where(
  .auth-box,.quiz-card,.mod,.pdf-box,.perfil-modal-card,.perfil-identidad-card,
  .social-card,.social-chat-tool-panel,.social-chat-head,.social-section-head,
  .esp-card,.esp-question,.esp-sheet-choice,.esp-purchase-summary,
  .audiolibro-card,.audiolibro-modal-card
){color:var(--text)}
html[data-theme="dark"] :where(
  .mod small,.tema-ruta-copy small,.tomo-card small,.perfil-dato small,
  .perfil-acceso-rapido small,.social-list-meta,.social-search-help,
  .social-chat-contact small,.social-section-copy small,.social-person-copy small
){color:var(--muted);opacity:1}

/* Estados semanticos: conservan significado y contraste en ambos temas. */
html[data-theme="dark"] :where(.fuego-opcion.correcta,.progreso-pregunta.respondida,.quiz-question-label-v4638.respondida){background:var(--anv-success-bg)!important;color:var(--anv-success-fg)!important;border-color:var(--anv-success-line)!important}
html[data-theme="dark"] :where(.fuego-opcion.incorrecta,.simulacro-total.invalido,.ultimo-nivel,.quiz-tool-stop-v4638){background:var(--anv-danger-bg)!important;color:var(--anv-danger-fg)!important;border-color:var(--anv-danger-line)!important}
html[data-theme="dark"] :where(.progreso-marcar.activa,.quiz-progress-mark.activa){background:var(--anv-warning-bg)!important;color:var(--anv-warning-fg)!important;border-color:var(--anv-warning-line)!important}
html[data-theme="dark"] .progreso-leyenda i.respondida{background:var(--anv-success-bg);border-color:var(--anv-success-line)}
html[data-theme="dark"] .progreso-leyenda i.marcada{background:var(--anv-warning-bg);border-color:var(--anv-warning-line)}
html[data-theme="dark"] .guardada-numero{background:color-mix(in srgb,var(--primario) 18%,var(--card));color:var(--textoAcento)}
html[data-theme="dark"] .guardada-respuesta{color:var(--anv-success-fg)}
html[data-theme="dark"] :where(.guardada-eliminar,.guardadas-borrar,.guardadas-mini-lista-head button){background:var(--anv-danger-bg);color:var(--anv-danger-fg)}
html[data-theme="dark"] .simulacro-opcion-principal .simulacro-opcion-icono,
html[data-theme="dark"] .simulacro-insignia{background:color-mix(in srgb,#ff8c00 16%,var(--card));color:#ffd08b}

/* Asistente y controles auxiliares. */
html[data-theme="dark"] .ai-menu-fab-pct{border-color:var(--card);background:var(--card);color:var(--textoAcento)}
html[data-theme="dark"] .social-avatar.has-photo{background-color:var(--card)}
html[data-theme="dark"] .social-message:not(.mine) .social-message-reply-ref,
html[data-theme="dark"] .social-section-message:not(.mine) .social-message-reply-ref{background:color-mix(in srgb,var(--primario) 9%,var(--card));color:var(--text);border-left-color:color-mix(in srgb,var(--primario) 55%,var(--borde))}
html[data-theme="dark"] .social-chat-tool-panel{background:color-mix(in srgb,var(--card) 96%,#000 4%);box-shadow:0 18px 42px rgba(0,0,0,.34)}
html[data-theme="dark"] .social-notification-toggle{box-shadow:0 7px 18px rgba(0,0,0,.2)}

/* Solicitud de permiso Web Push: aparece automaticamente, pero el navegador
   solo puede mostrar su permiso nativo despues de una accion del usuario. */
.social-notification-prompt{
  display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:11px;align-items:center;
  margin:0 0 13px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--primario) 28%,var(--borde));
  border-radius:18px;background:linear-gradient(135deg,color-mix(in srgb,var(--primario) 8%,var(--card)),var(--card));
  color:var(--text);box-shadow:0 12px 28px color-mix(in srgb,var(--primario) 9%,transparent)
}
.social-notification-prompt[hidden]{display:none!important}
.social-notification-prompt-icon{display:grid;place-items:center;width:44px;height:44px;border-radius:14px;background:color-mix(in srgb,var(--primario) 14%,var(--card));font-size:20px}
.social-notification-prompt-copy{min-width:0}.social-notification-prompt-copy b,.social-notification-prompt-copy small{display:block}.social-notification-prompt-copy b{font-size:11.5px;line-height:1.25}.social-notification-prompt-copy small{margin-top:3px;color:var(--muted);font-size:9px;line-height:1.4}
.social-notification-prompt-actions{display:flex;gap:6px;align-items:center}.social-notification-prompt-actions button{min-height:35px;padding:0 10px;border-radius:10px;font-size:7.5px;font-weight:950;letter-spacing:.06em;cursor:pointer}
.social-notification-prompt-allow{border:0;background:var(--primario);color:var(--sobrePrimario)}
.social-notification-prompt-later{border:1px solid var(--borde);background:var(--card);color:var(--muted)}
.social-notification-device-state{flex:0 0 auto;padding:6px 8px;border:1px solid var(--borde);border-radius:999px;background:var(--anv-surface-soft);color:var(--muted);font-size:7px;font-weight:950;letter-spacing:.05em;white-space:nowrap}
.social-notification-device-state.active{border-color:color-mix(in srgb,#22a06b 42%,var(--borde));background:color-mix(in srgb,#22a06b 11%,var(--card));color:color-mix(in srgb,#22a06b 76%,var(--text))}
.social-notification-device-state.blocked{border-color:color-mix(in srgb,#d84b53 40%,var(--borde));background:color-mix(in srgb,#d84b53 10%,var(--card));color:color-mix(in srgb,#d84b53 78%,var(--text))}
.social-notification-device-state.unavailable{opacity:.72}

/* FAB: + abre una tarea temporal; X la cierra. */
.social-primary-action{transition:transform .16s ease,background .16s ease,color .16s ease,border-color .16s ease,box-shadow .16s ease}
.social-primary-action.is-open{border:1px solid color-mix(in srgb,var(--primario) 40%,var(--borde))!important;background:var(--card)!important;color:var(--textoAcento)!important;transform:rotate(90deg);box-shadow:0 12px 28px color-mix(in srgb,var(--primario) 16%,rgba(0,0,0,.15))!important}
#socialNewChatCard,#socialNewSectionCard{transform-origin:bottom right}
#socialNewChatCard:not([hidden]),#socialNewSectionCard:not([hidden]){animation:anvSocialCreateIn .14s ease-out}
@keyframes anvSocialCreateIn{from{opacity:.35;transform:translateY(8px) scale(.985)}to{opacity:1;transform:none}}

/* En oscuro, cabeceras, compositor y navegacion del Chat deben integrarse al
   mismo fondo de la app sin bloques claros rezagados. */
html[data-theme="dark"] #socialPanel{color:var(--text)}
html[data-theme="dark"] :where(.social-tabs,.social-card,.social-composer,.social-section-composer,.social-chat-head,.social-section-head){border-color:color-mix(in srgb,var(--primario) 24%,var(--borde))}
html[data-theme="dark"] :where(.social-search-row input,.social-section-create-form input,.social-chat-search-form input,.social-composer textarea,.social-section-composer textarea){background:var(--anv-field);color:var(--text)}
html[data-theme="dark"] .social-message:not(.mine),html[data-theme="dark"] .social-section-message:not(.mine){background:var(--anv-surface-raised);color:var(--text);border-color:color-mix(in srgb,var(--primario) 19%,var(--borde))}
html[data-theme="dark"] :where(.social-conversation-row,.social-section-row,.social-notification-pending-row):hover{background:color-mix(in srgb,var(--primario) 8%,var(--card))}

@media(max-width:640px){
  .social-notification-prompt{grid-template-columns:40px minmax(0,1fr);padding:12px}.social-notification-prompt-icon{width:40px;height:40px}.social-notification-prompt-actions{grid-column:1/-1;justify-content:flex-end}.social-notification-prompt-actions button{min-height:36px;padding:0 12px}
  .social-notification-device-state{align-self:flex-start}
}
@media(prefers-reduced-motion:reduce){#socialNewChatCard:not([hidden]),#socialNewSectionCard:not([hidden]){animation:none}.social-primary-action{transition:none}}

/* Cierre de auditoria V48.61: componentes historicos que usaban fondos claros
   deliberados pero rompian continuidad al activar el tema oscuro. */
html[data-theme="dark"] .perfil-acceso-alineado.activo{
  border-color:color-mix(in srgb,#22c55e 48%,var(--borde));
  background:linear-gradient(145deg,color-mix(in srgb,#14532d 24%,var(--card)),var(--card));
  color:var(--text)
}
html[data-theme="dark"] .ranking-perfil-compacto #listaRankingNacional .ranking-fila{
  background:color-mix(in srgb,var(--card) 94%,var(--primario) 6%)!important;
  color:var(--text)!important;
  border-color:color-mix(in srgb,var(--primario) 24%,var(--borde))!important;
  box-shadow:0 7px 16px rgba(0,0,0,.22)!important
}
html[data-theme="dark"] .ranking-perfil-compacto #listaRankingNacional .ranking-identidad b{color:var(--text)!important}
html[data-theme="dark"] .ranking-perfil-compacto #listaRankingNacional .ranking-identidad small{color:var(--muted)!important}
html[data-theme="dark"] .ranking-perfil-compacto #listaRankingNacional .ranking-puntos{color:var(--textoAcento)!important}
html[data-theme="dark"] .ranking-perfil-compacto #listaRankingNacional .ranking-pos-1{background:linear-gradient(135deg,color-mix(in srgb,#f59e0b 14%,var(--card)),var(--card) 68%)!important}
html[data-theme="dark"] .ranking-perfil-compacto #listaRankingNacional .ranking-pos-2{background:linear-gradient(135deg,color-mix(in srgb,#94a3b8 12%,var(--card)),var(--card) 68%)!important}
html[data-theme="dark"] .ranking-perfil-compacto #listaRankingNacional .ranking-pos-3{background:linear-gradient(135deg,color-mix(in srgb,#c26c2e 14%,var(--card)),var(--card) 68%)!important}
html[data-theme="dark"] .ranking-perfil-compacto #listaRankingNacional .ranking-yo{background:linear-gradient(135deg,color-mix(in srgb,var(--primario) 18%,var(--card)),var(--card))!important}

html[data-theme="dark"] .perfil-analitica-estado.error{
  border-color:var(--anv-danger-line);background:var(--anv-danger-bg);color:var(--anv-danger-fg)
}
html[data-theme="dark"] .analitica-carga-cabecera strong{color:#86efac}
html[data-theme="dark"] .analitica-carga[data-nivel="Media"] .analitica-carga-cabecera strong{color:#fcd34d}
html[data-theme="dark"] .analitica-carga[data-nivel="Alta"] .analitica-carga-cabecera strong{color:#fca5a5}
html[data-theme="dark"] .subtema-chip.proceso{background:color-mix(in srgb,#f59e0b 13%,var(--card));color:#fcd34d;border-color:color-mix(in srgb,#f59e0b 38%,var(--borde))}
html[data-theme="dark"] .social-danger-soft{background:var(--anv-danger-bg);color:var(--anv-danger-fg);border-color:var(--anv-danger-line)}

/* El visor legal conserva el documento como documento, pero su contenedor no
   debe encender una superficie blanca durante la transicion de tema. */
html[data-theme="dark"] .legal-viewer-card,html[data-theme="dark"] .legal-viewer-head{background:var(--card);color:var(--text);border-color:var(--borde)}
html[data-theme="dark"] .legal-viewer-head button{background:var(--anv-field);color:var(--text);border-color:var(--borde)}
html[data-theme="dark"] .legal-viewer-loading{color:var(--muted)}


/* Chat es una vista de pantalla completa: la superficie base debe ser opaca.
   Esto evita que Inicio se transparente por debajo si un navegador descarta
   una capa decorativa de background-image. */
#socialPanel{background-color:var(--bg)!important;isolation:isolate}
html[data-theme="dark"] #socialPanel{background-color:var(--bg)!important}

/* Evita destellos de modo claro mientras cambian las variables de tema. */
html.tema-cambio-rapido,html.tema-cambio-rapido body,html.tema-cambio-rapido #socialPanel{
  transition:background-color .12s ease,color .12s ease,border-color .12s ease
}


/* V50: encabezado de Estudiar centrado como Ruta Academica. */
#studyHub > .study-hub-title{
  box-sizing:border-box;
  width:100%;
  margin:0;
  padding:2px 15px 16px!important;
  text-align:center;
  font-size:20px!important;
  line-height:1.2;
  font-weight:900;
  letter-spacing:-.02em;
  text-transform:none;
  color:var(--text)!important;
}
