/**
 * FUNAJIT Certificaciones — estilos autónomos (públicos + panel admin).
 * Autocontenido: NO depende del CSS de MUN Revolution OS. Paleta FUNAJIT navy/dorado, responsive.
 */
:root {
	--fc-navy: #0D1E46;
	--fc-navy-2: #16264f;
	--fc-gold: #b78318;
	--fc-gold-ink: #7a5a12;
	--fc-ink: #1f2937;
	--fc-muted: #64748b;
	--fc-line: #e2e8f0;
	--fc-bg: #eef3f9;
	--fc-panel: #ffffff;
	--fc-radius: 18px;
	--fc-ok: #16a34a;
	--fc-warn: #b45309;
	--fc-err: #b91c1c;
}

/* ---------------------------------------------------------------- Público (shell) */
body.fc-body { margin: 0; background: var(--fc-bg); color: var(--fc-ink); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif; }
.fc-shell { max-width: 920px; margin: 0 auto; padding: 28px 18px 64px; }
.fc-shell a { color: var(--fc-navy); }
.mr-muted { color: var(--fc-muted); }
.mr-kicker { margin: 0 0 6px; color: var(--fc-gold-ink); font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }

.mr-cert-public-hero, .mr-cert-detail-hero { padding: 8px 4px 20px; }
.mr-cert-public-hero h1, .mr-cert-detail-hero h1 { margin: 0 0 8px; color: var(--fc-navy); font-size: clamp(26px, 5vw, 40px); line-height: 1.08; font-weight: 800; }
.mr-cert-detail-sub { font-size: 18px; color: var(--fc-muted); margin: 0 0 12px; }
.mr-cert-detail-desc { font-size: 16px; line-height: 1.7; }
.mr-app-link { display: inline-block; color: var(--fc-navy); text-decoration: none; font-weight: 700; margin-bottom: 10px; }
.mr-app-link:hover { text-decoration: underline; }

.mr-glass-panel { background: var(--fc-panel); border: 1px solid var(--fc-line); border-radius: var(--fc-radius); padding: 22px; margin: 0 0 18px; box-shadow: 0 12px 32px rgba(13,30,70,.06); }
.mr-panel-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; margin-bottom: 12px; }
.mr-panel-head p { margin: 0; color: var(--fc-gold-ink); font-size: 11px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; }
.mr-panel-head h2 { margin: 2px 0 0; color: var(--fc-navy); font-size: 22px; font-weight: 800; }

/* Tarjetas de la lista pública */
.mr-cert-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.mr-cert-card { display: flex; flex-direction: column; background: var(--fc-panel); border: 1px solid var(--fc-line); border-radius: var(--fc-radius); overflow: hidden; text-decoration: none; color: inherit; transition: transform .15s ease, box-shadow .15s ease; }
.mr-cert-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px rgba(13,30,70,.12); }
.mr-cert-card-cover { display: block; height: 130px; background-size: cover; background-position: center; background-color: var(--fc-navy-2); }
.mr-cert-card-body { display: flex; flex-direction: column; gap: 6px; padding: 16px; }
.mr-cert-card-body strong { color: var(--fc-navy); font-size: 17px; }
.mr-cert-card-sub { color: var(--fc-muted); font-size: 14px; }
.mr-cert-card-cta { margin-top: 6px; color: var(--fc-gold-ink); font-weight: 800; font-size: 14px; }

/* Catálogo (1.89.0): certificaciones y cursos en grupos distintos; la tarjeta dice a simple vista cuál es cuál. */
.fc-catalogo .mr-cert-hero-center { padding-top: 12px; }
.fc-catalogo .mr-cert-hero-logo { height: 80px; margin-bottom: 12px; }
.fc-catalogo .fc-catalogo-gratis { text-align: center; line-height: 1.6; }
.fc-catalogo-cards { max-width: 1120px; margin: 36px auto 0; display: flex; flex-direction: column; gap: 42px; }
.fc-grupo { min-width: 0; }
.fc-grupo-cab { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 16px; margin: 0 0 18px; padding-bottom: 12px; border-bottom: 2px solid var(--fc-line); }
.fc-catalogo .fc-grupo-cab h2 { margin: 0; font-size: 26px; line-height: 1.2; font-weight: 800; color: var(--fc-navy); }
.fc-grupo-cab p { margin: 0; color: var(--fc-muted); font-size: 15px; line-height: 1.5; flex: 1 1 280px; }
.fc-grupo-curso .fc-grupo-cab { border-bottom-style: solid; }
.fc-catalogo .fc-grupo-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; align-items: stretch; }
.fc-catalogo .fc-grupo-certificacion .fc-grupo-grid { grid-template-columns: 1fr; }
.fc-catalogo .mr-cert-card.fc-tarjeta { width: auto; max-width: none; border-radius: var(--fc-radius); box-shadow: 0 10px 28px rgba(13,30,70,.07); }
.fc-tarjeta-cab { display: flex; align-items: center; gap: 14px; padding: 18px 24px; background-size: cover; background-position: center; }
.fc-tarjeta-icono { display: inline-flex; flex: none; }
.fc-tarjeta-tipo { font-size: 12px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.fc-tarjeta-certificacion { border-color: var(--fc-navy); border-top-width: 1px; }
.fc-tarjeta-certificacion .fc-tarjeta-cab { background-color: var(--fc-navy); color: #f2c968; }
.fc-tarjeta-curso { border: 1px solid #d6deec; background: #fff; }
.fc-tarjeta-curso .fc-tarjeta-cab { background-color: #f3f6fc; color: var(--fc-navy); border-bottom: 1px solid #e3e9f3; }
.fc-catalogo .mr-cert-card-body { padding: 24px; flex: 1; gap: 8px; }
.fc-catalogo h3 { font-size: 22px; line-height: 1.25; margin: 0; font-weight: 800; }
.fc-catalogo h3 a { text-decoration: none; color: var(--fc-navy); }
.fc-catalogo-descripcion { line-height: 1.6; margin: 4px 0 0; }
.fc-catalogo-ficha { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 14px 18px; margin: 12px 0 0; padding-top: 14px; border-top: 1px solid var(--fc-line); }
.fc-catalogo-ficha dt { color: var(--fc-muted); font-size: 12px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.fc-catalogo-ficha dd { margin: 3px 0 0; line-height: 1.45; font-size: 14px; overflow-wrap: anywhere; }
.fc-catalogo-acciones { display: grid; gap: 10px; margin-top: auto; padding-top: 18px; }
.fc-catalogo-acciones a { padding: 4px 0; text-underline-offset: 3px; }
.fc-catalogo-acciones .mr-cert-card-cta { margin: 0; padding: 13px 16px; border-radius: 12px; text-align: center; text-decoration: none; }
.fc-tarjeta-certificacion .mr-cert-card-cta { background: var(--fc-navy); color: #fff; }
.fc-tarjeta-curso .mr-cert-card-cta { background: var(--fc-navy); color: #fff; border: 2px solid var(--fc-navy); }
.fc-catalogo-acceso { text-align: center; font-size: 14px; }
/* La certificación ocupa su propia fila; los cursos comparten tamaño y jerarquía. */
.fc-grupo-certificacion .fc-tarjeta:only-child { display: grid; grid-template-columns: 190px minmax(0, 1fr); }
.fc-grupo-certificacion .fc-tarjeta:only-child .fc-tarjeta-cab { flex-direction: column; align-items: flex-start; justify-content: center; padding: 28px; }
.fc-grupo-certificacion .fc-tarjeta:only-child .mr-cert-card-body { display: grid; grid-template-columns: minmax(0, 1fr) minmax(210px, .8fr); gap: 10px 28px; }
.fc-grupo-certificacion .fc-tarjeta:only-child :is(h3,.mr-cert-card-sub,.fc-catalogo-descripcion) { grid-column: 1; }
.fc-grupo-certificacion .fc-tarjeta:only-child .fc-catalogo-ficha { grid-column: 2; grid-row: 1 / span 3; grid-template-columns: 1fr; margin: 0; padding: 0 0 0 24px; border-top: 0; border-left: 1px solid var(--fc-line); }
.fc-grupo-certificacion .fc-tarjeta:only-child .fc-catalogo-acciones { grid-column: 1 / -1; }
.fc-grupo-curso .fc-tarjeta { min-width: 0; }
.fc-grupo-curso .fc-tarjeta h3 { min-height: 2.5em; }
.fc-grupo-curso .mr-cert-card-sub { min-height: 3em; }
.fc-grupo-curso .fc-catalogo-descripcion { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; min-height: 4.8em; }
@media(min-width:761px) { .fc-grupo-curso .fc-catalogo-ficha { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media(max-width:760px) {
 .fc-catalogo .fc-grupo-grid { grid-template-columns: 1fr; }
 .fc-grupo-certificacion .fc-tarjeta:only-child { display: flex; }
 .fc-grupo-certificacion .fc-tarjeta:only-child .fc-tarjeta-cab { flex-direction: row; align-items: center; justify-content: flex-start; padding: 18px 24px; }
 .fc-grupo-certificacion .fc-tarjeta:only-child .mr-cert-card-body { display: flex; }
 .fc-grupo-certificacion .fc-tarjeta:only-child .fc-catalogo-ficha { grid-template-columns: repeat(2, minmax(0, 1fr)); border-left: 0; border-top: 1px solid var(--fc-line); padding: 14px 0 0; margin-top: 12px; }
 .fc-grupo-curso .fc-tarjeta h3,.fc-grupo-curso .mr-cert-card-sub,.fc-grupo-curso .fc-catalogo-descripcion { min-height: 0; }
}
.fc-catalogo-gratuidad { max-width: 860px; margin: 28px auto 0; }
.fc-catalogo-gratuidad summary { padding: 16px; cursor: pointer; font-weight: 700; line-height: 1.5; border: 1px solid var(--fc-line); border-radius: 12px; }
.fc-catalogo :is(a,summary):focus-visible { outline: 3px solid #8a5c00; outline-offset: 4px; }
@media(max-width:640px) { .fc-catalogo .mr-cert-card-body { padding: 20px; } .fc-tarjeta-cab { padding: 14px 20px; } .fc-catalogo .mr-cert-hero-logo { height: 64px; } .fc-catalogo-cards { gap: 40px; } }
@media(prefers-reduced-motion:reduce) { .fc-catalogo .mr-cert-card { transition: none; } .fc-catalogo .mr-cert-card:hover { transform: none; } }

.mr-cert-section-title { color: var(--fc-navy); margin: 0 0 10px; }
.mr-cert-section-body { line-height: 1.7; }

/* Botones */
.mr-app-button, .mr-button-secondary, .fc-shell button, .mr-cert-enroll-cta {
	display: inline-block; border: 0; border-radius: 14px; padding: 12px 20px; font-weight: 800; font-size: 15px;
	cursor: pointer; text-decoration: none; text-align: center;
}
.mr-app-button, .fc-shell button[type="submit"], .mr-cert-enroll-cta { background: var(--fc-navy); color: #fff; }
.mr-app-button:hover, .fc-shell button[type="submit"]:hover, .mr-cert-enroll-cta:hover { background: var(--fc-navy-2); }
/* Enlaces con forma de botón (fondo navy) dentro del shell: forzar texto blanco.
   Sin esto, `.fc-shell a { color: navy }` gana por especificidad y el texto queda navy sobre navy (invisible). */
.fc-shell a.mr-app-button, .fc-shell a.mr-cert-enroll-cta { color: #fff; }
.mr-button-secondary { background: #eef2f7; color: var(--fc-navy); border: 1px solid var(--fc-line); }
.fc-shell button[disabled] { opacity: .5; cursor: not-allowed; }

/* Formularios */
.mr-app-form { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.mr-app-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 700; color: var(--fc-navy); font-size: 14px; }
.mr-app-form .mr-wide { grid-column: 1 / -1; }
.mr-app-form input, .mr-app-form select, .mr-app-form textarea {
	font: inherit; padding: 11px 12px; border: 1px solid var(--fc-line); border-radius: 12px; background: #fff; color: var(--fc-ink); width: 100%; box-sizing: border-box;
}
.mr-app-form input:focus, .mr-app-form select:focus, .mr-app-form textarea:focus { outline: 2px solid var(--fc-gold); outline-offset: 1px; border-color: var(--fc-gold); }
.mr-login-check { flex-direction: row !important; align-items: center; gap: 8px; font-weight: 600; }
.mr-login-check input { width: auto !important; }
.mr-field-help { display: block; font-weight: 500; color: var(--fc-muted); font-size: 12px; }

/* Avisos */
.mr-alert { padding: 12px 16px; border-radius: 12px; margin: 0 0 14px; font-weight: 600; }
.mr-alert-info { background: #eff6ff; color: #1e40af; }
.mr-alert-error { background: #fef2f2; color: var(--fc-err); }
.mr-alert-success { background: #ecfdf5; color: var(--fc-ok); }
.mr-viewas-banner { background: var(--fc-navy); color: #fff; padding: 10px 16px; border-radius: 14px; margin-bottom: 14px; font-weight: 700; }

/* Estados */
.mr-status { display: inline-block; padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 800; }
.mr-status-confirmed { background: #ecfdf5; color: var(--fc-ok); }
.mr-status-pending { background: #fffbeb; color: var(--fc-warn); }
.mr-status-declined { background: #fef2f2; color: var(--fc-err); }

/* ---------------------------------------------------------------- Panel wp-admin */
.fc-admin .fc-admin-title { color: var(--fc-navy); }
.fc-admin .mr-glass-panel { max-width: 960px; }
.fc-admin .mr-cert-admin-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.fc-admin .mr-cert-admin-card { display: flex; flex-direction: column; gap: 6px; border: 1px solid var(--fc-line); border-radius: 14px; padding: 14px; background: #fff; }
.fc-admin .mr-cert-admin-card-top { display: flex; justify-content: space-between; align-items: center; gap: 8px; }
.fc-admin .mr-cert-admin-card-top strong { color: var(--fc-navy); font-size: 16px; }
.fc-admin .mr-row-actions { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 8px; }
.fc-admin .mr-section-tabs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.fc-admin .mr-section-tabs a { padding: 8px 14px; border-radius: 10px; text-decoration: none; background: #eef2f7; color: var(--fc-navy); }
.fc-admin .mr-section-tabs a.is-active { background: var(--fc-navy); color: #fff; }
.fc-admin .mr-user-edit-card { border: 1px solid var(--fc-line); border-radius: 12px; padding: 10px 14px; margin: 0 0 10px; background: #fff; }
.fc-admin .mr-user-edit-card summary { display: flex; justify-content: space-between; align-items: center; gap: 10px; cursor: pointer; font-weight: 600; }
.fc-admin .mr-user-edit-card summary small { display: block; color: var(--fc-muted); font-weight: 500; }
.fc-admin .mr-app-table { width: 100%; border-collapse: collapse; }
.fc-admin .mr-app-table th, .fc-admin .mr-app-table td { text-align: left; padding: 8px 10px; border-bottom: 1px solid var(--fc-line); }
.fc-admin .mr-cert-answers { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px; margin: 10px 0; }
.fc-admin .mr-cert-answers > div { display: flex; flex-direction: column; }
.fc-admin .mr-cert-answers strong { color: var(--fc-navy); }
.fc-admin .mr-inline-form { display: flex; gap: 8px; align-items: center; margin-top: 8px; }
.fc-admin .mr-danger-link { color: var(--fc-err); background: none; border: 0; cursor: pointer; text-decoration: underline; }
.fc-admin .mr-danger-button { background: var(--fc-err); color: #fff; }
.fc-admin .mr-danger-details summary { color: var(--fc-err); cursor: pointer; font-weight: 700; }
.fc-admin .mr-chatapp-count { background: var(--fc-navy); color: #fff; border-radius: 999px; padding: 2px 12px; font-weight: 800; }
.fc-admin .mr-note { color: var(--fc-muted); font-size: 13px; }

/* Móvil: una sola columna (los formularios públicos se usan mucho desde el teléfono). */
@media (max-width: 720px) {
	.mr-app-form { grid-template-columns: 1fr; }
	.mr-panel-head { flex-direction: column; }
}

/* ============================================================
   Certificaciones — Responsive total  [1.14.0]
   ============================================================ */
/* La tabla de Accesos vive en .mr-table-wrap, que no tenía regla: ahora nunca desborda. */
.mr-table-wrap { overflow-x: auto; }
/* Imágenes dentro del contenido editable nunca desbordan en pantallas chicas. */
.mr-cert-section-body img, .mr-cert-detail-desc img { max-width: 100%; height: auto; }
/* Correos/nombres largos no rompen el layout. */
.fc-admin .mr-app-table td, .fc-admin .mr-user-edit-card summary small, .fc-admin .mr-cert-answers strong { overflow-wrap: anywhere; }
.fc-admin .mr-inline-form { flex-wrap: wrap; }

/* ---------------------------------------------------------------- Panel propio en el front  [1.28.0] */
/* El panel del equipo vive en /certificaciones/panel/ (fuera de wp-admin, que MUN OS intercepta). Es el
   MISMO markup, así que aquí se visten las clases que en wp-admin pone WordPress: .wrap, .button, .notice. */
.fc-shell .fc-admin-front { max-width: 1000px; margin: 0 auto; }
.fc-shell .fc-admin-front .fc-admin-title { font-size: clamp(24px, 4vw, 32px); margin: 0 0 18px; }
.fc-admin-topbar {
	display: flex; justify-content: space-between; align-items: center; gap: 14px; flex-wrap: wrap;
	background: var(--fc-panel); border: 1px solid var(--fc-line); border-radius: var(--fc-radius);
	padding: 12px 18px; margin: 0 0 18px;
}
.fc-admin-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; }
.fc-admin-brand strong { display: block; color: var(--fc-navy); font-size: 15px; }
.fc-admin-brand small { display: block; color: var(--fc-muted); font-size: 12px; }
.fc-admin-session { display: inline-flex; align-items: center; gap: 12px; color: var(--fc-muted); font-size: 14px; font-weight: 600; }
.fc-admin-session .mr-app-link { margin: 0; }
/* Nombre y correo de la sesión, y «Cambiar de cuenta» con el borde dorado del resto de herramientas. */
.fc-admin-cuenta { display: grid; min-width: 0; text-align: right; }
.fc-admin-cuenta strong { color: var(--fc-navy); font-size: 13px; }
.fc-admin-cuenta small { color: var(--fc-muted); font-size: 12px; font-weight: 500; overflow-wrap: anywhere; }
.fc-admin-session .fc-admin-cambiar { border: 1px solid var(--fc-gold); border-radius: 11px; color: var(--fc-navy); font-size: 12px; font-weight: 700; padding: 7px 11px; text-decoration: none; white-space: nowrap; }
@media (max-width: 640px) {
	.fc-admin-session { flex-wrap: wrap; width: 100%; }
	.fc-admin-cuenta { flex-basis: 100%; text-align: left; }
}
/* Botones y avisos del markup de wp-admin, vestidos para el front. */
.fc-shell .fc-admin .button, .fc-shell .fc-admin .button-primary {
	background: var(--fc-navy); border: 0; border-radius: 12px; color: #fff; cursor: pointer;
	font-size: 14px; font-weight: 800; padding: 10px 18px; text-decoration: none;
}
.fc-shell .fc-admin .button:hover { background: var(--fc-navy-2); }
.fc-shell .fc-admin .button-link { background: none; border: 0; color: var(--fc-navy); cursor: pointer; font: inherit; padding: 0; text-decoration: underline; }
.fc-shell .fc-admin .mr-danger-link { color: var(--fc-err); }
.fc-shell .fc-admin .notice { border-radius: 12px; border-left: 4px solid var(--fc-ok); background: #ecfdf5; padding: 2px 16px; margin: 0 0 16px; }
.fc-shell .fc-admin .notice-error { border-left-color: var(--fc-err); background: #fef2f2; }
.fc-shell .fc-admin .notice-warning { border-left-color: #c58a00; background: #fff7e6; }
/* 1.103.0: aviso a quien administra la página pública que mira (fc_aviso_administracion). */
.fc-admin-aviso { background: #eef3ff; border: 1px solid #c9d6f5; border-radius: 14px; color: #0D1E46; margin: 0 0 16px; padding: 12px 16px; }
.fc-admin-aviso p { margin: 0; }
.fc-admin-aviso .fc-admin-aviso-acciones { display: flex; flex-wrap: wrap; gap: 10px 16px; align-items: center; margin-top: 10px; }
.fc-shell .fc-admin details summary { cursor: pointer; }

/* Pantalla de acceso al panel */
.fc-panel-login { max-width: 460px; margin: 4vh auto 0; background: var(--fc-panel); border: 1px solid var(--fc-line); border-radius: var(--fc-radius); padding: 30px 26px; text-align: center; box-shadow: 0 16px 46px rgba(13,30,70,.12); }
.fc-panel-login-logo { display: block; margin: 0 auto 14px; height: 62px; width: auto; }
.fc-panel-login h1 { margin: 2px 0 10px; color: var(--fc-navy); font-size: 24px; }
.fc-panel-login-lead { color: var(--fc-muted); font-size: 14.5px; line-height: 1.6; margin: 0 0 18px; }
.fc-panel-login-form { text-align: left; }
.fc-panel-login-form button { width: 100%; }
.fc-panel-login .mr-alert { text-align: left; }
.fc-panel-login-alt { margin: 14px 0 0; font-size: 14px; }
.fc-panel-login-note { margin: 20px 0 0; padding-top: 16px; border-top: 1px solid var(--fc-line); color: var(--fc-muted); font-size: 12.5px; line-height: 1.6; }

/* ---------------------------------------------------------------- Notificaciones del sistema  [1.27.0] */
/* Bandeja del equipo en el panel: reemplaza el correo de aviso por cada inscripción. */
.fc-admin .fc-notif-list { list-style: none; margin: 6px 0 0; padding: 0; }
.fc-admin .fc-notif {
	display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap;
	border: 1px solid var(--fc-line); border-left: 4px solid var(--fc-line); border-radius: 12px;
	background: #fff; padding: 12px 14px; margin: 0 0 8px;
}
.fc-admin .fc-notif.is-unread { border-left-color: var(--fc-gold); background: #fffdf7; }
.fc-admin .fc-notif-body { display: flex; flex-direction: column; gap: 2px; min-width: 240px; flex: 1 1 320px; }
.fc-admin .fc-notif-body strong { color: var(--fc-navy); font-size: 15px; overflow-wrap: anywhere; }
.fc-admin .fc-notif-body small { color: var(--fc-muted); overflow-wrap: anywhere; }
.fc-admin .fc-notif-actions { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.fc-admin .fc-notif-actions .mr-app-link { margin: 0; }
.fc-admin .fc-notifs .mr-row-actions { margin-top: 12px; }

/* wp-admin en móvil (782px es el corte estándar de WordPress): la tabla de Accesos se apila en tarjetas. */
@media (max-width: 782px) {
	.fc-admin .mr-app-table thead { display: none; }
	.fc-admin .mr-app-table,
	.fc-admin .mr-app-table tbody { display: block; width: 100%; }
	.fc-admin .mr-app-table tr { background: #fff; border: 1px solid var(--fc-line); border-radius: 12px; display: block; margin: 0 0 10px; padding: 4px 12px; }
	.fc-admin .mr-app-table td { border-bottom: 1px solid var(--fc-line); display: block; padding: 8px 0; }
	.fc-admin .mr-app-table td:last-child { border-bottom: 0; }
	.fc-admin .mr-app-table td::before {
		color: var(--fc-muted); content: attr(data-label); display: block; font-size: 10.5px;
		font-weight: 800; letter-spacing: .04em; margin-bottom: 2px; text-transform: uppercase;
	}
	.fc-admin .mr-app-table td:not([data-label])::before, .fc-admin .mr-app-table td[data-label=""]::before { content: none; }
}

/* Público en móvil: campos a 16px (evita el auto-zoom de iOS al enfocar) y botón de envío a lo ancho. */
@media (max-width: 720px) {
	.mr-app-form input:not([type="checkbox"]):not([type="radio"]), .mr-app-form select, .mr-app-form textarea { font-size: 16px; }
	.mr-cert-form button[type="submit"] { width: 100%; }
	.mr-cert-detail-hero h1 { overflow-wrap: anywhere; }
}

/* El asistente de 2 pasos + «seguir redes» (clases .fc-follow/.fc-wizard/.fc-step…) se movió a
   public/assets/follow-steps.css en la 1.23.0: lo comparten la inscripción a una certificación y la
   solicitud de acceso al curso MUN 101, que viven en shells distintos. */


/* ============================================================
   Estilo FUNAJIT — glassmorphism pro en páginas públicas  [1.20.0]
   ============================================================ */
/* Oculta la burbuja de soporte global del sitio SOLO en las páginas del plugin
   (este CSS solo se carga aquí, así que no afecta al resto de funajit.org). */
body.fc-body #fjxpBurbuja,
body.fc-body .fjxp-burbuja { display: none !important; }

/* Fondo ambiental de marca: da profundidad y algo que difuminar tras el vidrio.
   Selector con mayor especificidad + !important para ganarle a la regla base `body.fc-body`
   aunque un optimizador de CSS (LiteSpeed) reordene las reglas en producción. */
html body.fc-body {
	background:
		radial-gradient(58% 52% at 6% -8%, rgba(13,30,70,.20), transparent 62%),
		radial-gradient(54% 48% at 110% 2%, rgba(183,131,24,.22), transparent 58%),
		radial-gradient(60% 55% at 96% 114%, rgba(28,45,92,.18), transparent 62%),
		radial-gradient(40% 40% at 50% 55%, rgba(96,80,200,.08), transparent 70%),
		linear-gradient(180deg, #e8eef8 0%, #dbe4f2 100%) !important;
	background-attachment: fixed !important;
	min-height: 100vh;
}

/* Tarjetas de la lista: vidrio esmerilado. */
.mr-cert-card {
	background: rgba(255,255,255,.42);
	-webkit-backdrop-filter: blur(20px) saturate(150%);
	backdrop-filter: blur(20px) saturate(150%);
	border: 1px solid rgba(255,255,255,.55);
	box-shadow: 0 14px 40px rgba(13,30,70,.14), inset 0 1px 0 rgba(255,255,255,.65);
}
.mr-cert-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 60px rgba(13,30,70,.20), inset 0 1px 0 rgba(255,255,255,.75);
	border-color: rgba(183,131,24,.4);
}

/* Paneles (landing, formulario, bienvenida): vidrio. */
.mr-glass-panel {
	background: rgba(255,255,255,.56);
	-webkit-backdrop-filter: blur(24px) saturate(140%);
	backdrop-filter: blur(24px) saturate(140%);
	border: 1px solid rgba(255,255,255,.6);
	box-shadow: 0 16px 46px rgba(13,30,70,.12), inset 0 1px 0 rgba(255,255,255,.6);
}

/* Si el navegador no soporta backdrop-filter, se usan fondos más opacos (legibilidad). */
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.mr-cert-card { background: rgba(255,255,255,.92); }
	.mr-glass-panel { background: rgba(255,255,255,.95); }
}

/* Hero CENTRADO y elevado de la lista de certificaciones (estilo institucional FUNAJIT). */
.mr-cert-hero-center { text-align: center; max-width: 800px; margin: 0 auto; padding: 34px 12px 6px; }
.mr-cert-hero-logo { display: block; height: 128px; width: auto; margin: 0 auto 22px; }
.mr-cert-hero-center .mr-kicker { color: var(--fc-gold-ink); }
.mr-cert-hero-center h1 { margin: 0 0 16px; font-size: clamp(30px, 5.5vw, 46px); text-wrap: balance; }
.mr-cert-hero-lead { font-size: 18px; line-height: 1.7; color: var(--fc-muted); max-width: 640px; margin: 0 auto; text-wrap: pretty; }

/* Rejilla de tarjetas CENTRADA (se ve equilibrada con una o varias certificaciones). */
.mr-cert-grid-center { display: flex; flex-wrap: wrap; justify-content: center; gap: 18px; max-width: 900px; margin: 34px auto 0; }
.mr-cert-grid-center .mr-cert-card { width: 340px; max-width: 100%; }

@media (max-width: 720px) {
	.mr-cert-hero-logo { height: 96px; margin-bottom: 16px; }
	.mr-cert-hero-center { padding-top: 18px; }
	.mr-cert-hero-lead { font-size: 16px; }
}

/* Emisión masiva y verificación pública de certificados. */
.fc-certificate-batch { display: grid; gap: 16px; }
.fc-certificate-batch h3 { color: var(--fc-navy); font-size: 22px; margin: 2px 0 8px; }
.fc-certificate-batch .mr-kicker { margin-bottom: 0; }
.fc-certificate-batch-stats { display: flex; flex-wrap: wrap; gap: 10px; }
.fc-certificate-batch-stats span { background: rgba(255,255,255,.72); border: 1px solid var(--fc-line); border-radius: 12px; min-width: 105px; padding: 10px 14px; }
.fc-certificate-batch-stats small { color: var(--fc-muted); display: block; font-size: 10px; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }
.fc-certificate-batch-stats strong { color: var(--fc-navy); display: block; font-size: 24px; line-height: 1.15; }
.fc-certificate-batch-done { color: #14784a; font-weight: 750; margin: 0; }
.fc-certificate-check { display: grid; min-height: 72vh; place-items: start center; padding-top: clamp(22px,5vw,52px); }
.fc-certificate-check-card { border: 0; border-radius: 20px; box-shadow: 0 14px 40px rgba(13,30,70,.12); max-width: 440px; overflow: hidden; padding: 0; text-align: left; width: 100%; }
.fc-certificate-check-brand { align-items: baseline; border-bottom: 1px solid var(--fc-line); display: flex; gap: 10px; padding: 18px 22px 14px; }
.fc-certificate-check-brand strong { color: var(--fc-navy); font-size: 18px; font-weight: 900; letter-spacing: .04em; }
.fc-certificate-check-brand span { color: var(--fc-muted); font-size: 12px; font-weight: 700; }
.fc-certificate-verdict { color: #fff; padding: 30px 22px 26px; text-align: center; }
.fc-certificate-verdict.is-valid { background: #1f6b4a; }
.fc-certificate-verdict.is-invalid { background: #b42318; }
.fc-certificate-verdict h1 { color: inherit; font-size: 22px; margin: 0 0 6px; }
.fc-certificate-verdict p { color: inherit; font-size: 14.5px; line-height: 1.5; margin: 0; opacity: .93; }
.fc-certificate-check-icon { align-items: center; background: rgba(255,255,255,.18); border-radius: 50%; color: #fff; display: flex; font-size: 32px; font-weight: 900; height: 62px; justify-content: center; margin: 0 auto 14px; width: 62px; }
.fc-certificate-detail { padding: 11px 22px 0; }
.fc-certificate-facts { display: grid; margin: 0; text-align: left; }
.fc-certificate-facts div { border-bottom: 1px solid var(--fc-line); display: grid; gap: 12px; grid-template-columns: 118px 1fr; padding: 11px 0; }
.fc-certificate-facts div:last-child { border-bottom: 0; }
.fc-certificate-facts dt { color: var(--fc-muted); font-size: 13px; }
.fc-certificate-facts dd { color: #10182b; font-size: 14.5px; font-weight: 650; margin: 0; overflow-wrap: anywhere; }
.fc-certificate-code { background: #f7f9fd; border: 1px solid var(--fc-line); border-radius: 12px; color: var(--fc-muted); font-family: ui-monospace,Menlo,monospace; font-size: 13px; letter-spacing: .04em; margin: 16px 22px 0; padding: 11px 14px; text-align: center; overflow-wrap: anywhere; }
.fc-certificate-check-note { color: var(--fc-muted); font-size: 12.5px; line-height: 1.55; padding: 18px 22px 22px; }
@media (max-width: 560px) {
	.fc-certificate-check { padding-left: 0; padding-right: 0; }
	.fc-certificate-facts div { grid-template-columns: 104px 1fr; }
}

/* =============================================================================
 * DIS-13 · CONTRASTE REFORZADO Y COLORES FORZADOS
 * -----------------------------------------------------------------------------
 * Hasta aquí las cuatro hojas del plugin no tenían ni una consulta
 * `prefers-contrast` ni `forced-colors`. Cada hoja lleva el suyo, porque se
 * encolan por separado (esta y follow-steps.css en el formulario público,
 * mun101.css en el curso, aviso-gratuito.css en las tres superficies).
 * Va al FINAL de la hoja a propósito: tiene que ganarle a todo lo anterior.
 *
 * Ratios con la fórmula de luminancia relativa de WCAG 2.1, contra el fondo REAL:
 *   · `.mr-app-form input,select,textarea` borde var(--fc-line) #e2e8f0 sobre #fff
 *     = 1,2328:1. SC 1.4.11 pide 3:1 y el campo no tiene otro indicio de límite.
 *     Pasa a var(--fc-navy) #0D1E46 = 16,2632:1 y de 1px a 2px.
 *   · `.mr-button-secondary` se distingue solo por su relleno #eef2f7, que sobre el
 *     panel blanco da 1,1242:1, y por el mismo borde de 1,2328:1: no hay límite que
 *     valga. Borde a var(--fc-navy) = 14,4660:1 medido sobre su propio relleno.
 *   · var(--fc-gold) #b78318 como TEXTO (`.mr-kicker`, `.mr-panel-head p`,
 *     `.mr-cert-card-cta`) = 3,3476:1 sobre #fff, por debajo del 4,5:1 de AA.
 *     Pasa a #8a5c00 —el mismo dorado oscuro que ya usa el foco del catálogo—
 *     = 5,8147:1. Como BORDE de foco (`.mr-app-form :focus`) sí pasa el 3:1 y por
 *     eso se refuerza a 3px pero no se cuenta como arreglo.
 *   · var(--fc-ok) #16a34a = 3,1286:1 sobre el fondo real de `.mr-alert-success` y
 *     `.mr-status-confirmed` (#ecfdf5) → #0f5c35 = 7,6598:1.
 *   · var(--fc-muted) #64748b da 4,7588:1 sobre #fff —pasa— pero 4,2656:1 sobre
 *     var(--fc-bg) #eef3f9, que es el fondo real del shell → #475569 = 6,7923:1
 *     sobre --fc-bg y 7,5777:1 sobre panel.
 *   · var(--fc-warn) sobre #fffbeb = 4,8424:1 y var(--fc-err) sobre #fef2f2 =
 *     5,9146:1: los dos ya pasaban. No se tocan.
 *   · Los tokens NO se redefinen dentro de la consulta: se cambian los selectores.
 *     Redefinir `--fc-gold` aquí rompería la lectura literal de la paleta que hacen
 *     las pruebas del ecosistema, y haría invisible qué se subió y desde dónde.
 * ========================================================================== */
@media (prefers-contrast: more) {
	.mr-app-form input, .mr-app-form select, .mr-app-form textarea { border-width: 2px; border-color: var(--fc-navy); }
	.mr-app-form input:focus, .mr-app-form select:focus, .mr-app-form textarea:focus { outline-width: 3px; outline-color: #8a5c00; border-color: #8a5c00; }
	.mr-button-secondary { border-width: 2px; border-color: var(--fc-navy); }
	.mr-kicker, .mr-panel-head p, .mr-cert-card-cta, .mr-cert-hero-center .mr-kicker { color: #8a5c00; }
	.mr-alert-success, .mr-status-confirmed { color: #0f5c35; }
	.mr-muted, .mr-cert-detail-sub, .mr-cert-card-sub, .fc-catalogo-ficha dt, .mr-field-help, .mr-cert-hero-lead, .fc-panel-login-lead, .fc-panel-login-note, .fc-certificate-check-note, .fc-certificate-code, .fc-certificate-facts dt, .fc-certificate-check-brand span, .fc-certificate-batch-stats small, .fc-admin .mr-note, .fc-admin .fc-notif-body small, .fc-admin .mr-user-edit-card summary small, .fc-admin-brand small, .fc-admin-session, .fc-admin .mr-app-table td::before { color: #475569; }
	.mr-glass-panel, .mr-cert-card, .fc-catalogo-gratuidad summary, .fc-panel-login, .fc-admin .mr-cert-admin-card, .fc-admin .mr-user-edit-card, .fc-admin-topbar, .fc-admin .fc-notif, .fc-certificate-code, .fc-certificate-batch-stats span { border-color: #475569; }
	.fc-catalogo :is(a,summary):focus-visible { outline-width: 4px; }
}

/* En colores forzados el navegador ANULA fondos, degradados y sombras: lo que hoy
   se distingue SOLO por relleno deja de distinguirse. Este bloque no repinta —pone
   límites explícitos y usa grosor de trazo, que el navegador no fuerza—.
   · `.mr-app-button`, `.mr-cert-enroll-cta` y el secundario quedan idénticos
     (mismo ButtonFace, mismo ButtonText): se separan por grosor, 3px y 1px.
   · Las alertas y las insignias de estado se leen SOLO por color de fondo; sin él
     no queda ninguna señal de si algo salió bien, está pendiente o falló. Se
     reconstruyen con borde izquierdo y se conserva su gramática: trazo grueso
     continuo = error, grueso discontinuo = pendiente, fino = información. */
@media (forced-colors: active) {
	.mr-glass-panel, .mr-cert-card, .fc-panel-login, .fc-admin .mr-cert-admin-card, .fc-admin .mr-user-edit-card, .fc-admin-topbar, .fc-admin .fc-notif { border: 1px solid CanvasText; }
	.mr-app-form input, .mr-app-form select, .mr-app-form textarea { border: 1px solid CanvasText; }
	.mr-app-button, .fc-shell button[type="submit"], .mr-cert-enroll-cta, .fc-admin .mr-danger-button { border: 3px solid ButtonText; }
	.mr-button-secondary, .fc-admin .mr-section-tabs a { border: 1px solid ButtonText; }
	.fc-admin .mr-section-tabs a.is-active { border-width: 3px; text-decoration: underline; }
	.mr-alert-info, .mr-alert-error, .mr-alert-success, .mr-status-confirmed, .mr-status-pending, .mr-status-declined { border: 1px solid CanvasText; }
	.mr-alert-error, .mr-status-declined { border-left: 7px solid CanvasText; }
	.mr-status-pending { border-left: 7px dashed CanvasText; }
	.mr-alert-info, .mr-alert-success, .mr-status-confirmed { border-left: 3px solid CanvasText; }
	.fc-shell :focus-visible, .fc-catalogo :is(a,summary):focus-visible { outline: 3px solid Highlight; outline-offset: 2px; }
	.mr-app-form input:focus, .mr-app-form select:focus, .mr-app-form textarea:focus { outline: 3px solid Highlight; outline-offset: 2px; }
}

/* «Saltar al contenido»: lo inyecta funajit-paginas en todas las páginas, pero su hoja no carga aquí y el enlace salía crudo (serif azul). Oculto salvo con foco de teclado. */
.fjxp-salto-contenido { position: fixed; top: 8px; left: 8px; z-index: 999999; padding: 12px 18px; color: #fff; background: #0D1E46; border-radius: 10px; font: 700 14px Inter, sans-serif; text-decoration: none; transform: translateY(-200%); }
.fjxp-salto-contenido:focus { transform: translateY(0); outline: 3px solid #e8b84a; outline-offset: 3px; }
