/**
 * MUN Revolution OS — Capa visual "Diplomatic 2026"
 * Archivo: public/assets/munos-theme-2026.css
 *
 * Capa de refinamiento que se carga DESPUÉS de public.css (como dependencia
 * del handle mr-os-public). No modifica el layout estructural ni la lógica:
 * solo refina color, tipografía, sombras, radios, foco y micro-interacciones.
 *
 * Objetivo: unificar la experiencia del delegado (vistas públicas que hoy
 * heredan el tema de WordPress y se ven "atrasadas") con el lenguaje navy/oro
 * del portal, y subir el nivel de detalle en ambos.
 *
 * Nota: public.css usa ~8.800 declaraciones !important. Para ganar la cascada
 * sin reescribir 20k líneas, esta capa usa !important de forma quirúrgica solo
 * en las propiedades que refina. Es un puente estable; el refactor a tokens
 * globales está descrito en la auditoría como deuda a saldar más adelante.
 */

/* ============================================================
   1. TOKENS GLOBALES
   ============================================================ */
:root {
	/* Marca diplomática */
	--mros-navy-900: #0f1626;
	--mros-navy-800: #141d33;
	--mros-navy-700: #1b2745;
	--mros-navy-600: #243356;
	--mros-ink: #1d2433;
	--mros-ink-soft: #51607a;
	/* AUDITORÍA 1.2 (contraste): antes #7a869c = 3.67:1 sobre blanco (falla WCAG AA 4.5:1 en texto pequeño).
	   Ahora igual que ink-soft (#51607a = 6.36:1). Solo afecta COLOR de texto secundario; cero cambio de layout. */
	--mros-ink-muted: #51607a;

	/* Oro institucional (más sobrio que el gradiente actual) */
	--mros-gold-700: #946420;
	--mros-gold-600: #b8842f;
	--mros-gold-500: #c79238;
	--mros-gold-100: #f6ecd7;
	--mros-gold-tint: #fbf6ea;

	/* Acento de apoyo */
	--mros-accent: #2f5fd0;

	/* Superficies y neutros fríos */
	--mros-canvas: #eef1f6;
	--mros-canvas-2: #f5f7fb;
	--mros-surface: #ffffff;
	--mros-surface-tint: #f8fafc;
	--mros-line: #e2e7f0;
	--mros-line-strong: #ccd4e2;

	/* Semánticos refinados */
	--mros-ok-bg: #e9f7ef;    --mros-ok-line: #aedcc1;  --mros-ok-ink: #14784a;
	--mros-warn-bg: #fdf3df;  --mros-warn-line: #ecca8a; --mros-warn-ink: #8a5a08;
	--mros-bad-bg: #fdeef0;   --mros-bad-line: #f0aeb5;  --mros-bad-ink: #9a2530;
	--mros-info-bg: #eaf2fd;  --mros-info-line: #b6cdf3; --mros-info-ink: #1f4f9c;

	/* Radios consistentes */
	--mros-r-sm: 10px;
	--mros-r-md: 14px;
	--mros-r-lg: 20px;
	--mros-r-pill: 999px;

	/* Sombras en capas (suaves, no planas) */
	--mros-shadow-sm: 0 1px 2px rgba(16, 24, 40, .04), 0 2px 6px rgba(16, 24, 40, .05);
	--mros-shadow-md: 0 6px 16px rgba(16, 24, 40, .07), 0 2px 4px rgba(16, 24, 40, .04);
	--mros-shadow-lg: 0 18px 48px rgba(16, 24, 40, .12), 0 4px 12px rgba(16, 24, 40, .06);

	/* Tipografía */
	--mros-font: "Inter", "Segoe UI", system-ui, -apple-system, "Helvetica Neue", Arial, sans-serif;
	--mros-motion: 160ms cubic-bezier(.2, .7, .3, 1);
	--mros-ring: 0 0 0 3px rgba(184, 132, 47, .38);
}

/* ============================================================
   2. FOCO ACCESIBLE GLOBAL (detalle de calidad transversal)
   Antes no había anillo de foco consistente: riesgo de a11y.
   ============================================================ */
.mr-public-shell a:focus-visible,
.mr-public-shell button:focus-visible,
.mr-public-shell input:focus-visible,
.mr-public-shell summary:focus-visible,
body.mr-os-portal-body a:focus-visible,
body.mr-os-portal-body button:focus-visible,
body.mr-os-portal-body input:focus-visible,
body.mr-os-portal-body select:focus-visible,
body.mr-os-portal-body textarea:focus-visible,
.mr-system-login a:focus-visible,
.mr-system-login button:focus-visible,
.mr-system-login input:focus-visible {
	outline: none !important;
	box-shadow: var(--mros-ring) !important;
	border-color: var(--mros-gold-600) !important;
}

@media (prefers-reduced-motion: reduce) {
	.mr-public-shell *,
	body.mr-os-portal-body *,
	.mr-system-login * {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
	}
}

/* ============================================================
   3. FLUJO PÚBLICO DEL DELEGADO  (confirmar / pase / certificado)
   Es lo primero que ve un delegado y hoy se ve plano/atrasado.
   ============================================================ */
.mr-public-shell {
	background: linear-gradient(180deg, var(--mros-canvas-2), var(--mros-canvas)) !important;
	font-family: var(--mros-font) !important;
	padding: clamp(28px, 6vw, 72px) 16px !important;
	-webkit-font-smoothing: antialiased;
}

/* Tarjeta tratada como una credencial/acta oficial */
.mr-confirm-card {
	background: var(--mros-surface) !important;
	border: 1px solid var(--mros-line) !important;
	border-radius: var(--mros-r-lg) !important;
	box-shadow: var(--mros-shadow-lg) !important;
	color: var(--mros-ink) !important;
	max-width: 680px !important;
}

/* Nota: el banner superior navy/oro del h1 ya existe en public.css.
   No lo duplicamos para evitar recortar el eyebrow. */

/* Eyebrow / kicker tipo credencial diplomática */
.mr-kicker,
.mr-confirm-eyebrow {
	color: var(--mros-gold-700) !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
	margin: 0 0 4px !important;
}

.mr-participant-summary {
	background: var(--mros-gold-tint) !important;
	border: 1px solid var(--mros-gold-100) !important;
	border-radius: var(--mros-r-md) !important;
	padding: 18px 20px !important;
	margin-bottom: 22px !important;
}

.mr-participant-summary p {
	color: var(--mros-ink-soft) !important;
	margin: 9px 0 !important;
}

.mr-participant-summary strong {
	color: var(--mros-navy-700) !important;
}

.mr-confirm-event-note {
	color: var(--mros-ink-soft) !important;
	line-height: 1.55 !important;
	margin-bottom: 18px !important;
}

/* Formulario */
.mr-public-form label {
	color: var(--mros-navy-700) !important;
	font-weight: 700 !important;
	font-size: 14px !important;
}

.mr-public-form input,
.mr-system-login input {
	background: var(--mros-surface-tint) !important;
	border: 1px solid var(--mros-line-strong) !important;
	border-radius: var(--mros-r-sm) !important;
	color: var(--mros-ink) !important;
	font-size: 16px !important;
	padding: 12px 14px !important;
	transition: border-color var(--mros-motion), box-shadow var(--mros-motion), background var(--mros-motion) !important;
}

.mr-public-form input::placeholder,
.mr-system-login input::placeholder {
	color: var(--mros-ink-muted) !important;
}

/* Botón primario sólido (reemplaza el peso 850 y el gris plano) */
.mr-public-actions button,
.mr-public-link,
.mr-confirm-button {
	background: linear-gradient(180deg, var(--mros-gold-600), var(--mros-gold-700)) !important;
	border: 1px solid var(--mros-gold-700) !important;
	border-radius: var(--mros-r-pill) !important;
	box-shadow: var(--mros-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, .25) !important;
	color: #fff !important;
	font-weight: 700 !important;
	letter-spacing: .01em !important;
	padding: 13px 22px !important;
	transition: transform var(--mros-motion), box-shadow var(--mros-motion), filter var(--mros-motion) !important;
}

.mr-public-actions button:hover,
.mr-public-link:hover,
.mr-confirm-button:hover {
	box-shadow: var(--mros-shadow-md), inset 0 1px 0 rgba(255, 255, 255, .3) !important;
	transform: translateY(-1px) !important;
	filter: saturate(1.03) !important;
}

.mr-public-actions button:active,
.mr-confirm-button:active {
	transform: translateY(0) !important;
}

/* Secundario: contorno sobrio en navy, no gris genérico */
.mr-public-actions .mr-secondary,
.mr-secondary-link {
	background: var(--mros-surface) !important;
	border: 1px solid var(--mros-line-strong) !important;
	color: var(--mros-navy-700) !important;
	box-shadow: var(--mros-shadow-sm) !important;
}

.mr-public-actions .mr-secondary:hover,
.mr-secondary-link:hover {
	border-color: var(--mros-navy-700) !important;
	color: var(--mros-navy-800) !important;
}

.mr-confirm-actions {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 12px !important;
	margin-top: 8px !important;
}

/* Avisos */
.mr-alert {
	border-radius: var(--mros-r-md) !important;
	border: 1px solid var(--mros-warn-line) !important;
	background: var(--mros-warn-bg) !important;
	color: var(--mros-warn-ink) !important;
	padding: 14px 16px !important;
}

.mr-alert-info {
	border-color: var(--mros-info-line) !important;
	background: var(--mros-info-bg) !important;
	color: var(--mros-info-ink) !important;
}

.mr-public-success {
	border-color: var(--mros-ok-line) !important;
	background: var(--mros-ok-bg) !important;
	color: var(--mros-ok-ink) !important;
}

.mr-public-error {
	border-color: var(--mros-bad-line) !important;
	background: var(--mros-bad-bg) !important;
	color: var(--mros-bad-ink) !important;
}

/* ============================================================
   4. LOGIN DEL SISTEMA
   ============================================================ */
.mr-system-login {
	font-family: var(--mros-font) !important;
}

.mr-login-brand {
	color: #fff !important;
}

.mr-login-copy h1 {
	font-weight: 800 !important;
	letter-spacing: -.02em !important;
}

.mr-login-card {
	border-radius: var(--mros-r-lg) !important;
	box-shadow: var(--mros-shadow-lg) !important;
	border: 1px solid var(--mros-line) !important;
}

.mr-login-card h2 {
	color: var(--mros-navy-800) !important;
	font-weight: 800 !important;
	letter-spacing: -.015em !important;
}

.mr-login-card > p {
	color: var(--mros-gold-700) !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
}

.mr-login-card button {
	background: linear-gradient(180deg, var(--mros-gold-600), var(--mros-gold-700)) !important;
	border: 1px solid var(--mros-gold-700) !important;
	border-radius: var(--mros-r-pill) !important;
	color: #fff !important;
	font-weight: 700 !important;
	padding: 13px 22px !important;
	transition: transform var(--mros-motion), box-shadow var(--mros-motion) !important;
}

.mr-login-card button:hover {
	transform: translateY(-1px) !important;
	box-shadow: var(--mros-shadow-md) !important;
}

.mr-login-error {
	border-radius: var(--mros-r-md) !important;
	border: 1px solid var(--mros-bad-line) !important;
	background: var(--mros-bad-bg) !important;
	color: var(--mros-bad-ink) !important;
	padding: 12px 14px !important;
}

/* ============================================================
   5. COMPONENTES COMPARTIDOS DEL PORTAL  (refinamiento sobrio)
   Solo color/sombra/radio/peso/transición. No se toca layout.
   ============================================================ */

/* Botón de acción del portal: baja el peso 850 -> 700 y suaviza el oro */
body.mr-os-portal-body .mr-app-button,
body.mr-os-portal-body .mr-app-quick a,
body.mr-os-portal-body .mr-app-form button,
body.mr-os-portal-body .mr-upload-box button {
	background: linear-gradient(180deg, var(--mros-gold-600), var(--mros-gold-700)) !important;
	border-color: var(--mros-gold-700) !important;
	box-shadow: var(--mros-shadow-sm), inset 0 1px 0 rgba(255, 255, 255, .22) !important;
	font-weight: 700 !important;
	letter-spacing: .01em !important;
}

body.mr-os-portal-body .mr-app-button:hover,
body.mr-os-portal-body .mr-app-quick a:hover,
body.mr-os-portal-body .mr-app-form button:hover {
	box-shadow: var(--mros-shadow-md), inset 0 1px 0 rgba(255, 255, 255, .28) !important;
	transform: translateY(-1px) !important;
	filter: none !important;
}

/* Paneles glass: sombra más limpia y borde más fino */
body.mr-os-portal-body .mr-glass-panel {
	box-shadow: var(--mros-shadow-md) !important;
	border: 1px solid rgba(226, 231, 240, .9) !important;
}

/* Encabezados de panel con jerarquía clara */
body.mr-os-portal-body .mr-glass-panel h2,
body.mr-os-portal-body .mr-panel-head h2 {
	color: var(--mros-navy-800) !important;
	font-weight: 800 !important;
	letter-spacing: -.01em !important;
}

/* Inputs del portal */
body.mr-os-portal-body .mr-app-form input,
body.mr-os-portal-body .mr-app-form select,
body.mr-os-portal-body .mr-app-form textarea {
	border-radius: var(--mros-r-sm) !important;
	border: 1px solid var(--mros-line-strong) !important;
	transition: border-color var(--mros-motion), box-shadow var(--mros-motion) !important;
}

/* Tablas: cabecera más legible, filas con hover */
body.mr-os-portal-body .mr-app-table th {
	color: var(--mros-ink-soft) !important;
	font-size: 11px !important;
	letter-spacing: .06em !important;
	text-transform: uppercase !important;
}

body.mr-os-portal-body .mr-app-table tbody tr {
	transition: background var(--mros-motion) !important;
}

body.mr-os-portal-body .mr-app-table tbody tr:hover {
	background: rgba(184, 132, 47, .045) !important;
}

/* ============================================================
   6. PÍLDORAS DE ESTADO  (refinadas, consistentes en todo el OS)
   ============================================================ */
.mr-status,
.mr-app-table td .mr-status {
	border-radius: var(--mros-r-pill) !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: .01em !important;
	padding: 5px 11px !important;
	gap: 6px !important;
}

.mr-status::before {
	content: "";
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: currentColor;
	opacity: .85;
	flex: 0 0 auto;
}

.mr-status-invited,
.mr-status-pending,
.mr-status-pending_confirmation {
	background: var(--mros-warn-bg) !important;
	border-color: var(--mros-warn-line) !important;
	color: var(--mros-warn-ink) !important;
}

.mr-status-confirmed,
.mr-status-checked_in {
	background: var(--mros-ok-bg) !important;
	border-color: var(--mros-ok-line) !important;
	color: var(--mros-ok-ink) !important;
}

.mr-status-declined,
.mr-status-absent {
	background: var(--mros-bad-bg) !important;
	border-color: var(--mros-bad-line) !important;
	color: var(--mros-bad-ink) !important;
}

.mr-status-requires_review,
.mr-status-loaded {
	background: var(--mros-info-bg) !important;
	border-color: var(--mros-info-line) !important;
	color: var(--mros-info-ink) !important;
}

/* ============================================================
   7. ESTADOS VACÍOS  (invitación a actuar, no "no hay nada")
   ============================================================ */
body.mr-os-portal-body .mr-app-empty {
	border-radius: var(--mros-r-md) !important;
	border: 1px dashed var(--mros-line-strong) !important;
	background: var(--mros-surface-tint) !important;
	color: var(--mros-ink-muted) !important;
}

/* ============================================================
   8. REFINAMIENTO DE ALTA ESPECIFICIDAD  (gana la cascada)

   public.css cierra con reglas `html body.mr-os-portal-body .mr-app-hero …`
   (especificidad 0,3,3) que la Sección 5 —escrita como `body.mr-os-portal-body`
   (0,2,1)— no podía vencer. Por eso el hero seguía con el degradado dorado
   intenso y la navegación seguía siendo la "nube" de píldoras navy.

   Aquí igualamos ese prefijo `html body.mr-os-portal-body …`; al cargar esta
   capa DESPUÉS, con especificidad pareja ganamos. Solo color/peso/sombra/
   espaciado: no se toca el layout estructural ni el HTML.
   ============================================================ */

/* --- 8.1 Hero: degradado sobrio en lugar del oro saturado --------------- */
html body.mr-os-portal-body .mr-app-hero {
	background: rgba(255, 255, 255, .72) !important;
	-webkit-backdrop-filter: saturate(140%) blur(14px);
	backdrop-filter: saturate(140%) blur(14px);
	border: 1px solid rgba(15, 23, 42, .08) !important;
	border-radius: 18px !important;
	box-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 8px 24px rgba(16, 24, 40, .05) !important;
	color: var(--mros-ink) !important;
}
html body.mr-os-portal-body .mr-app-hero p {
	color: var(--mros-gold-700) !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	letter-spacing: .16em !important;
	text-transform: uppercase !important;
}
html body.mr-os-portal-body .mr-app-hero h2 {
	color: var(--mros-navy-800) !important;
	font-weight: 700 !important;
	letter-spacing: -.02em !important;
	text-shadow: none !important;
}

/* --- 8.2 Navegación: de "nube" de blobs navy a píldoras silenciosas ------
   Un único tratamiento: superficie clara, borde fino, tinta suave; el oro
   solo aparece en hover/foco. Esto elimina las tres paletas en conflicto y
   el peso visual que rompía el minimalismo. */
html body.mr-os-portal-body .mr-app-hero .mr-app-quick {
	gap: 8px !important;
	max-width: 600px !important;
	row-gap: 8px !important;
}
html body.mr-os-portal-body .mr-app-hero .mr-app-quick a,
html body.mr-os-portal-body .mr-app-hero a {
	background: rgba(255, 255, 255, .82) !important;
	border: 1px solid var(--mros-line-strong) !important;
	border-radius: var(--mros-r-pill) !important;
	box-shadow: 0 1px 1px rgba(16, 24, 40, .03) !important;
	color: var(--mros-ink-soft) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0 !important;
	min-height: 34px !important;
	padding: 7px 15px !important;
	transition: background var(--mros-motion), border-color var(--mros-motion), color var(--mros-motion) !important;
}
html body.mr-os-portal-body .mr-app-hero .mr-app-quick a:hover,
html body.mr-os-portal-body .mr-app-hero a:hover,
html body.mr-os-portal-body .mr-app-hero .mr-app-quick a:focus-visible {
	background: var(--mros-gold-tint) !important;
	border-color: var(--mros-gold-600) !important;
	color: var(--mros-gold-700) !important;
}

/* --- 8.3 Lista compacta: filas planas, número que nunca se recorta ------
   El `> div` es fila flex (space-between). Garantizamos que el lado del
   nombre encoja con elipsis y que el número quede fijo a la derecha, para
   que no se corte como en la captura. Sombras fuera; hairline limpio. */
html body.mr-os-portal-body .mr-compact-list {
	gap: 8px !important;
}
html body.mr-os-portal-body .mr-compact-list > div {
	background: var(--mros-surface) !important;
	border: 1px solid var(--mros-line) !important;
	border-radius: var(--mros-r-md) !important;
	box-shadow: none !important;
	gap: 14px !important;
	overflow: hidden !important;
	transition: border-color var(--mros-motion), background var(--mros-motion) !important;
}
html body.mr-os-portal-body .mr-compact-list > div:hover {
	background: var(--mros-surface-tint) !important;
	border-color: var(--mros-line-strong) !important;
}
/* Lado izquierdo (badge/nombre/texto): encoge y trunca, no empuja */
html body.mr-os-portal-body .mr-compact-list > div > .mr-committee,
html body.mr-os-portal-body .mr-compact-list > div > span:first-child {
	min-width: 0 !important;
	overflow: hidden !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-committee > span:last-child {
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
}
/* El número/etiqueta de la derecha queda fijo y completo */
html body.mr-os-portal-body .mr-compact-list > div > strong {
	color: var(--mros-navy-700) !important;
	flex: 0 0 auto !important;
	font-weight: 700 !important;
	text-align: right !important;
	white-space: nowrap !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-committee strong {
	color: var(--mros-navy-800) !important;
	font-weight: 650 !important;
	letter-spacing: -.01em !important;
}

/* --- 8.4 Stats: tarjetas calmadas, número con jerarquía sobria ---------- */
html body.mr-os-portal-body .mr-app-stats > div {
	background: var(--mros-surface) !important;
	border: 1px solid var(--mros-line) !important;
	border-radius: var(--mros-r-md) !important;
	box-shadow: var(--mros-shadow-sm) !important;
}
html body.mr-os-portal-body .mr-app-stats > div > span {
	color: var(--mros-navy-800) !important;
	font-weight: 700 !important;
	letter-spacing: -.02em !important;
}

/* --- 8.5 Botones del portal: baja el peso 900 a uno legible ------------- */
html body.mr-os-portal-body button,
html body.mr-os-portal-body .mr-app-button,
html body.mr-os-portal-body .mr-actions a,
html body.mr-os-portal-body .mr-row-actions a,
html body.mr-os-portal-body .mr-mini-action {
	font-weight: 650 !important;
	letter-spacing: 0 !important;
}

/* --- 8.6 Acciones de fila (staff): nunca colapsar el control ------------
   Refuerzo defensivo: aunque ya añadimos la clase `mr-staff-candidates-table`
   al markup para activar el layout dedicado, garantizamos aquí que ningún
   `<select>` de acciones se reduzca a "Cor…" en cualquier tabla del portal. */
html body.mr-os-portal-body .mr-row-actions {
	min-width: 0 !important;
}
html body.mr-os-portal-body .mr-row-actions .mr-inline-form {
	flex-wrap: wrap !important;
	gap: 6px !important;
}
html body.mr-os-portal-body .mr-row-actions .mr-inline-form select {
	min-width: 130px !important;
	flex: 1 1 130px !important;
}

/* --- 8.7 Píldora de estado fija dentro de tablas (no se corta) ---------- */
html body.mr-os-portal-body .mr-app-table .mr-status {
	white-space: nowrap !important;
}

/* ============================================================
   9. ESPACIOS ABIERTOS (sección pública + panel)  [0.8.54]
   Mobile-first. La página pública usa clases nuevas (mr-spaces-*),
   así que no necesita !important para ganar la cascada.
   ============================================================ */

/* --- 9.1 Contenedor público (página standalone, look de sistema) ------- */
body.mr-os-portal-body .mr-spaces-shell,
.mr-public-shell .mr-spaces-shell {
	max-width: 1060px;
	margin: 0 auto;
	padding: clamp(18px, 4vw, 44px) clamp(14px, 4vw, 28px) 64px;
	font-family: var(--mros-font);
	color: var(--mros-ink);
	box-sizing: border-box;
	min-height: 100vh;
}
.mr-spaces-shell *,
.mr-spaces-shell *::before,
.mr-spaces-shell *::after { box-sizing: border-box; }

/* --- 9.2 Hero --------------------------------------------------------- */
.mr-spaces-hero {
	background: linear-gradient(135deg, var(--mros-navy-900), var(--mros-navy-700));
	color: #fff;
	border-radius: var(--mros-r-lg);
	padding: clamp(24px, 6vw, 48px);
	box-shadow: var(--mros-shadow-lg);
	text-align: center;
}
.mr-spaces-hero .mr-kicker {
	color: var(--mros-gold-500);
	letter-spacing: .14em;
	text-transform: uppercase;
	font-size: .74rem;
	font-weight: 700;
	margin: 0 0 10px;
}
.mr-spaces-hero h1 {
	margin: 0;
	font-size: clamp(1.7rem, 5vw, 2.6rem);
	line-height: 1.1;
	font-weight: 760;
	color: #fff;
}
.mr-spaces-hero-sub {
	margin: 10px 0 0;
	font-weight: 600;
	color: var(--mros-gold-100);
}
.mr-spaces-hero-lead {
	margin: 14px auto 0;
	max-width: 620px;
	color: rgba(255, 255, 255, .82);
	font-size: .98rem;
	line-height: 1.55;
}

/* --- 9.3 Alertas ------------------------------------------------------ */
.mr-spaces-alert {
	margin: 22px 0 0;
	padding: 18px 20px;
	border-radius: var(--mros-r-md);
	border: 1px solid var(--mros-line-strong);
	background: var(--mros-surface);
	box-shadow: var(--mros-shadow-sm);
}
.mr-spaces-alert strong { display: block; font-size: 1.08rem; margin-bottom: 4px; }
.mr-spaces-alert p { margin: 0 0 6px; line-height: 1.5; }
.mr-spaces-alert-success { border-color: var(--mros-ok-line); background: var(--mros-ok-bg); color: var(--mros-ok-ink); }
.mr-spaces-alert-error { border-color: var(--mros-bad-line); background: var(--mros-bad-bg); color: var(--mros-bad-ink); }

/* --- 9.4 Estado vacío ------------------------------------------------- */
.mr-spaces-empty {
	margin-top: 26px;
	text-align: center;
	padding: clamp(28px, 7vw, 56px);
	background: var(--mros-surface);
	border: 1px dashed var(--mros-line-strong);
	border-radius: var(--mros-r-lg);
}
.mr-spaces-empty h2 { margin: 0 0 8px; color: var(--mros-navy-800); }
.mr-spaces-empty p { margin: 0 auto; max-width: 460px; color: var(--mros-ink-soft); }

/* --- 9.5 Grid de espacios -------------------------------------------- */
.mr-spaces-grid {
	margin-top: 28px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}
.mr-spaces-card {
	background: var(--mros-surface);
	border: 1px solid var(--mros-line);
	border-radius: var(--mros-r-lg);
	padding: 22px;
	box-shadow: var(--mros-shadow-sm);
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: box-shadow var(--mros-motion), transform var(--mros-motion), border-color var(--mros-motion);
}
.mr-spaces-card:hover { box-shadow: var(--mros-shadow-md); transform: translateY(-2px); border-color: var(--mros-line-strong); }
.mr-spaces-card.is-selected { border-color: var(--mros-gold-500); box-shadow: var(--mros-ring); }
.mr-spaces-card-committee { font-size: .82rem; color: var(--mros-ink-soft); }
.mr-spaces-card-country { margin: 2px 0 0; font-size: 1.3rem; font-weight: 720; color: var(--mros-navy-800); line-height: 1.2; }
.mr-spaces-card-topic { margin: 0; color: var(--mros-ink-soft); font-size: .92rem; line-height: 1.45; }
.mr-spaces-card .mr-spaces-btn { margin-top: auto; }

/* --- 9.6 Botones ------------------------------------------------------ */
.mr-spaces-btn {
	display: inline-block;
	text-align: center;
	cursor: pointer;
	border-radius: var(--mros-r-pill);
	padding: 12px 22px;
	font-weight: 650;
	font-size: .95rem;
	text-decoration: none;
	border: 1px solid transparent;
	transition: background var(--mros-motion), color var(--mros-motion), border-color var(--mros-motion);
}
/* AUDITORÍA 1.2 (contraste): blanco sobre gold-600 (#b8842f) = 3.29:1 → falla AA. gold-700 (#946420) = 5.12:1. */
.mr-spaces-btn-primary { background: var(--mros-gold-700); color: #fff; width: 100%; }
.mr-spaces-btn-primary:hover { background: var(--mros-gold-700); color: #fff; }
.mr-spaces-btn-outline { background: transparent; color: var(--mros-navy-800); border-color: var(--mros-line-strong); }
.mr-spaces-btn-outline:hover { border-color: var(--mros-gold-500); color: var(--mros-gold-700); }
.mr-spaces-btn-ghost { background: rgba(255,255,255,.18); color: inherit; border-color: currentColor; margin-top: 6px; }

/* --- 9.7 Formulario de postulación ----------------------------------- */
.mr-spaces-form-wrap {
	margin: 26px 0;
	background: var(--mros-surface);
	border: 1px solid var(--mros-line-strong);
	border-radius: var(--mros-r-lg);
	box-shadow: var(--mros-shadow-md);
	overflow: hidden;
}
.mr-spaces-form-target {
	background: var(--mros-gold-tint);
	border-bottom: 1px solid var(--mros-gold-100);
	padding: 22px clamp(18px, 4vw, 28px);
}
.mr-spaces-form-target .mr-kicker { color: var(--mros-gold-700); letter-spacing: .12em; text-transform: uppercase; font-size: .72rem; font-weight: 700; margin: 0 0 6px; }
.mr-spaces-form-target h2 { margin: 0; color: var(--mros-navy-900); font-size: 1.35rem; }
.mr-spaces-form-country { margin: 6px 0 10px; color: var(--mros-ink-soft); }
.mr-spaces-form-country strong { color: var(--mros-navy-800); }
.mr-spaces-back { color: var(--mros-gold-700); text-decoration: none; font-size: .9rem; font-weight: 600; }
.mr-spaces-back:hover { text-decoration: underline; }
.mr-spaces-form { padding: clamp(18px, 4vw, 28px); display: grid; gap: 16px; }
.mr-spaces-field { display: flex; flex-direction: column; gap: 6px; }
.mr-spaces-field > span { font-weight: 600; font-size: .92rem; color: var(--mros-navy-800); }
.mr-spaces-req { color: var(--mros-bad-ink); font-style: normal; }
.mr-spaces-field input,
.mr-spaces-field textarea {
	width: 100%;
	padding: 12px 14px;
	border: 1px solid var(--mros-line-strong);
	border-radius: var(--mros-r-sm);
	font-size: 1rem;
	font-family: inherit;
	color: var(--mros-ink);
	background: var(--mros-surface-tint);
	transition: border-color var(--mros-motion), box-shadow var(--mros-motion);
}
.mr-spaces-field input:focus,
.mr-spaces-field textarea:focus { outline: none; border-color: var(--mros-gold-500); box-shadow: var(--mros-ring); background: #fff; }
.mr-spaces-field textarea { resize: vertical; min-height: 92px; }
.mr-spaces-consent { margin: 0; font-size: .84rem; color: var(--mros-ink-muted); line-height: 1.5; }

/* --- 9.8 Pie --------------------------------------------------------- */
.mr-spaces-foot { margin-top: 40px; text-align: center; color: var(--mros-ink-muted); font-size: .82rem; }

/* --- 9.9 Escritorio / tablet ----------------------------------------- */
@media (min-width: 720px) {
	.mr-spaces-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
	.mr-spaces-btn-primary { width: auto; }
	.mr-spaces-form { grid-template-columns: 1fr 1fr; }
	.mr-spaces-field-full,
	.mr-spaces-field:has(textarea),
	.mr-spaces-consent,
	.mr-spaces-form > button { grid-column: 1 / -1; }
}

/* --- 9.10 Panel interno (postulaciones) ------------------------------ */
html body.mr-os-portal-body .mr-panel-hint { color: var(--mros-ink-soft); font-size: .92rem; line-height: 1.5; margin: 0 0 8px; }
html body.mr-os-portal-body .mr-subhead { margin: 22px 0 10px; font-size: 1.05rem; color: var(--mros-navy-800); }
html body.mr-os-portal-body .mr-empty-hint { color: var(--mros-ink-muted); margin: 0 0 6px; }
html body.mr-os-portal-body .mr-spaces-apps { display: grid; grid-template-columns: 1fr; gap: 14px; }
html body.mr-os-portal-body .mr-spaces-app { border: 1px solid var(--mros-line); border-radius: var(--mros-r-md); padding: 16px; background: var(--mros-surface); box-shadow: var(--mros-shadow-sm); }
html body.mr-os-portal-body .mr-spaces-app-head { display: flex; flex-wrap: wrap; gap: 6px 12px; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
html body.mr-os-portal-body .mr-spaces-app-head strong { font-size: 1.05rem; color: var(--mros-navy-800); display: block; }
html body.mr-os-portal-body .mr-spaces-app-target { color: var(--mros-gold-700); font-weight: 600; font-size: .9rem; }
html body.mr-os-portal-body .mr-spaces-app-date { color: var(--mros-ink-muted); font-size: .82rem; }
html body.mr-os-portal-body .mr-spaces-app-reassign { margin: 0 0 12px; padding: 9px 12px; border: 1px solid #f0c674; border-left: 3px solid #e0a106; border-radius: 8px; background: rgba(240, 198, 116, .14); color: #7a5600; font-size: .85rem; line-height: 1.4; }
html body.mr-os-portal-body .mr-spaces-app-reassign strong { color: #5e4300; }
html body.mr-os-portal-body .mr-spaces-app-fields { display: grid; grid-template-columns: 1fr; gap: 8px; margin: 0 0 12px; }
html body.mr-os-portal-body .mr-spaces-app-fields dt { font-size: .76rem; text-transform: uppercase; letter-spacing: .04em; color: var(--mros-ink-muted); margin: 0; }
html body.mr-os-portal-body .mr-spaces-app-fields dd { margin: 2px 0 0; color: var(--mros-ink); line-height: 1.45; }
html body.mr-os-portal-body .mr-spaces-app-actions { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-start; }
html body.mr-os-portal-body .mr-spaces-app-actions textarea { width: 100%; min-width: 220px; padding: 8px 10px; border: 1px solid var(--mros-line-strong); border-radius: var(--mros-r-sm); margin-bottom: 8px; }
html body.mr-os-portal-body .mr-spaces-history { margin-top: 22px; }
html body.mr-os-portal-body .mr-spaces-history > summary { cursor: pointer; font-weight: 600; color: var(--mros-navy-700); padding: 6px 0; }
@media (min-width: 720px) {
	html body.mr-os-portal-body .mr-spaces-app-fields { grid-template-columns: 1fr 1fr; gap: 8px 18px; }
}

/* ============================================================
   10. ESPACIOS ABIERTOS — multi-conferencia + publicación manual  [0.8.55]
   ============================================================ */

/* --- 10.1 Bloque por conferencia (página pública) -------------------- */
.mr-spaces-conf { margin-top: 34px; padding-top: 26px; border-top: 2px solid var(--mros-line); }
.mr-spaces-conf:first-of-type { border-top: 0; }
.mr-spaces-conf-head {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	background: var(--mros-surface);
	border: 1px solid var(--mros-line);
	border-left: 4px solid var(--mros-gold-500);
	border-radius: var(--mros-r-md);
	padding: 16px 18px;
	box-shadow: var(--mros-shadow-sm);
}
.mr-spaces-conf-logo img { display: block; max-height: 56px; max-width: 140px; width: auto; height: auto; object-fit: contain; }
.mr-spaces-conf-meta .mr-kicker { color: var(--mros-gold-700); letter-spacing: .12em; text-transform: uppercase; font-size: .7rem; font-weight: 700; margin: 0 0 2px; }
.mr-spaces-conf-meta h2 { margin: 0; color: var(--mros-navy-800); font-size: clamp(1.2rem, 3.5vw, 1.6rem); line-height: 1.15; }
.mr-spaces-conf-details { display: flex; flex-wrap: wrap; gap: 4px 14px; margin-top: 6px; color: var(--mros-ink-soft); font-size: .9rem; }
.mr-spaces-conf-details span { display: inline-flex; align-items: center; }
.mr-spaces-conf .mr-spaces-grid { margin-top: 18px; }

/* --- 10.2 Panel: publicación manual de no confirmados ---------------- */
html body.mr-os-portal-body .mr-spaces-listed { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 14px; }
html body.mr-os-portal-body .mr-spaces-listed-title { width: 100%; margin: 0 0 2px; font-size: .82rem; color: var(--mros-ink-muted); text-transform: uppercase; letter-spacing: .04em; }
html body.mr-os-portal-body .mr-spaces-listed-chip {
	display: inline-flex; align-items: center; gap: 8px;
	background: var(--mros-gold-tint); border: 1px solid var(--mros-gold-100);
	color: var(--mros-navy-800); border-radius: var(--mros-r-pill);
	padding: 6px 8px 6px 14px; font-size: .9rem; font-weight: 600;
}
html body.mr-os-portal-body .mr-spaces-listed-chip small { color: var(--mros-ink-soft); font-weight: 500; }
html body.mr-os-portal-body .mr-spaces-listed-chip form { margin: 0; }
html body.mr-os-portal-body .mr-spaces-listed-chip button {
	border: 0; cursor: pointer; width: 22px; height: 22px; border-radius: 50%;
	background: rgba(154,37,48,.10); color: var(--mros-bad-ink); font-weight: 700; line-height: 1;
}
html body.mr-os-portal-body .mr-spaces-listed-chip button:hover { background: var(--mros-bad-bg); }
html body.mr-os-portal-body .mr-spaces-publish-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }
html body.mr-os-portal-body .mr-col-check,
html body.mr-os-portal-body .mr-col-check + th { white-space: nowrap; }

/* ============================================================
   11. ESPACIOS ABIERTOS — campos de formulario ampliados  [0.8.56]
   ============================================================ */
.mr-spaces-field select {
	width: 100%; padding: 12px 14px; border: 1px solid var(--mros-line-strong);
	border-radius: var(--mros-r-sm); font-size: 1rem; font-family: inherit;
	color: var(--mros-ink); background: var(--mros-surface-tint);
}
.mr-spaces-field select:focus { outline: none; border-color: var(--mros-gold-500); box-shadow: var(--mros-ring); background: #fff; }
.mr-spaces-field input[type="date"] { width: 100%; }
.mr-spaces-help { display: block; color: var(--mros-ink-muted); font-size: .82rem; line-height: 1.45; margin-top: 2px; }

/* Grupos de opción (radio) */
.mr-spaces-fieldset { border: 0; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.mr-spaces-fieldset > legend { font-weight: 600; font-size: .92rem; color: var(--mros-navy-800); padding: 0; }
.mr-spaces-radio { display: flex; flex-wrap: wrap; gap: 10px; }
.mr-spaces-radio label {
	display: inline-flex; align-items: center; gap: 8px; cursor: pointer;
	border: 1px solid var(--mros-line-strong); border-radius: var(--mros-r-pill);
	padding: 9px 16px; background: var(--mros-surface-tint); font-size: .95rem;
}
.mr-spaces-radio input { accent-color: var(--mros-gold-600); }
.mr-spaces-radio label:focus-within { border-color: var(--mros-gold-500); box-shadow: var(--mros-ring); }

/* Subida de archivos */
.mr-spaces-field input[type="file"] {
	width: 100%; padding: 10px 12px; border: 1px dashed var(--mros-line-strong);
	border-radius: var(--mros-r-sm); background: var(--mros-surface-tint); font-size: .92rem; cursor: pointer;
}
.mr-spaces-field input[type="file"]:focus { outline: none; border-color: var(--mros-gold-500); box-shadow: var(--mros-ring); }

/* Aceptación de términos */
.mr-spaces-check {
	display: flex; gap: 12px; align-items: flex-start;
	background: var(--mros-surface-tint); border: 1px solid var(--mros-line);
	border-radius: var(--mros-r-md); padding: 14px 16px;
}
.mr-spaces-check input { margin-top: 3px; width: 20px; height: 20px; flex: 0 0 auto; accent-color: var(--mros-gold-600); }
.mr-spaces-check span { font-size: .88rem; line-height: 1.5; color: var(--mros-ink-soft); }

/* Enlace a archivo adjunto en el panel */
html body.mr-os-portal-body .mr-spaces-file-link { display: inline-flex; align-items: center; gap: 6px; color: var(--mros-accent); font-weight: 600; text-decoration: none; }
html body.mr-os-portal-body .mr-spaces-file-link:hover { text-decoration: underline; }

@media (min-width: 720px) {
	.mr-spaces-fieldset,
	.mr-spaces-check,
	.mr-spaces-field:has(textarea),
	.mr-spaces-field-full { grid-column: 1 / -1; }
}

/* --- 11.1 Badge "Publicado al público" en la lista de participantes [0.8.58] --- */
html body.mr-os-portal-body .mr-tag-published {
	display: inline-block; margin-top: 4px;
	background: var(--mros-gold-tint); color: var(--mros-gold-700);
	border: 1px solid var(--mros-gold-100); border-radius: var(--mros-r-pill);
	padding: 2px 10px; font-size: .72rem; font-weight: 700; white-space: nowrap;
}

/* --- Desglose diagnóstico de Espacios abiertos (panel) [0.8.89] --- */
html body.mr-os-portal-body .mr-spaces-diag { margin: 0 0 14px; }
html body.mr-os-portal-body .mr-spaces-diag > summary { cursor: pointer; color: var(--mros-accent); font-size: 13px; font-weight: 700; padding: 4px 0; }
html body.mr-os-portal-body .mr-spaces-diag ul { list-style: none; margin: 8px 0 6px; padding: 12px 14px; background: var(--mros-canvas-2); border: 1px solid var(--mros-line); border-radius: var(--mros-r-sm); }
html body.mr-os-portal-body .mr-spaces-diag li { color: var(--mros-ink-soft); font-size: 13px; line-height: 1.6; }
html body.mr-os-portal-body .mr-spaces-diag .mr-spaces-diag-total { color: var(--mros-navy-800); font-weight: 800; border-top: 1px solid var(--mros-line); margin-top: 6px; padding-top: 6px; }
html body.mr-os-portal-body .mr-spaces-diag p { color: var(--mros-ink-muted); font-size: 12px; margin: 0; }

/* ============================================================
   KPIs del resumen — rediseño limpio (0.8.103)
   Componente nuevo (.mr-kpi*) para no chocar con los overrides
   acumulados de .mr-app-stats. Estética navy/oro, minimalista.
   ============================================================ */
html body.mr-os-portal-body .mr-kpi-row {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 14px;
	margin: 4px 0 22px;
}
html body.mr-os-portal-body .mr-kpi {
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 7px;
	background: #fff;
	border: 1px solid #e6eaf0;
	border-radius: 16px;
	padding: 18px 18px 16px 21px;
	box-shadow: 0 1px 2px rgba(16, 24, 40, .04), 0 4px 14px rgba(16, 24, 40, .03);
	overflow: hidden;
	transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
html body.mr-os-portal-body .mr-kpi:hover {
	box-shadow: 0 2px 4px rgba(16, 24, 40, .05), 0 10px 26px rgba(16, 24, 40, .06);
	border-color: #dde3ec;
	transform: translateY(-1px);
}
html body.mr-os-portal-body .mr-kpi::before {
	content: "";
	position: absolute;
	top: 12px;
	bottom: 12px;
	left: 0;
	width: 3px;
	border-radius: 0 3px 3px 0;
	background: var(--mr-kpi-accent, #c9a227);
}
html body.mr-os-portal-body .mr-kpi--total    { --mr-kpi-accent: #c9a227; }
html body.mr-os-portal-body .mr-kpi--confirmed { --mr-kpi-accent: #1f9d57; }
html body.mr-os-portal-body .mr-kpi--pending   { --mr-kpi-accent: #e08a00; }
html body.mr-os-portal-body .mr-kpi--checked   { --mr-kpi-accent: #2563c9; }
html body.mr-os-portal-body .mr-kpi-label {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .045em;
	text-transform: uppercase;
	color: #6b7686;
	line-height: 1.2;
}
html body.mr-os-portal-body .mr-kpi-value {
	font-size: clamp(28px, 3vw, 36px);
	font-weight: 700;
	line-height: 1;
	color: #16233b;
	font-variant-numeric: tabular-nums;
	letter-spacing: -.012em;
}
html body.mr-os-portal-body .mr-kpi-sub {
	font-size: 12.5px;
	font-weight: 500;
	color: #8a93a3;
	line-height: 1.3;
}
@media (max-width: 720px) {
	html body.mr-os-portal-body .mr-kpi-row { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 16px; }
	html body.mr-os-portal-body .mr-kpi { padding: 14px 14px 13px 16px; border-radius: 14px; gap: 5px; }
	html body.mr-os-portal-body .mr-kpi:hover { transform: none; }
}

/* ============================================================
   Menú lateral: panel flotante de subsecciones al hacer hover (0.8.105)
   Aparece a la derecha del grupo, sin empujar el resto del menú.
   Solo escritorio (>=861px). En móvil la barra inferior maneja la nav.
   ============================================================ */
@media (min-width: 861px) {
	/* El sidebar recorta por overflow; al posar el cursor en un grupo,
	   liberamos el overflow SOLO en ese momento para dejar salir el panel.
	   El resto del tiempo conserva su scroll. (:has() soportado en navegadores actuales.) */
	html body.mr-os-portal-body .mr-app-sidebar:has(.mr-navgrp:hover),
	html body.mr-os-portal-body .mr-app-sidebar:has(.mr-navgrp:focus-within) {
		overflow: visible !important;
	}

	html body.mr-os-portal-body .mr-app-nav--clean .mr-navgrp {
		position: relative;
		width: 100%;
	}

	html body.mr-os-portal-body .mr-nav-flyout {
		position: absolute;
		top: -4px;
		left: calc(100% + 11px);
		z-index: 1300;
		min-width: 234px;
		max-width: 288px;
		max-height: calc(100vh - 110px);
		overflow-y: auto;
		padding: 8px;
		background: #ffffff;
		border: 1px solid #e6eaf0;
		border-radius: 15px;
		box-shadow: 0 16px 40px rgba(13, 30, 70, .18), 0 3px 10px rgba(13, 30, 70, .08);
		opacity: 0;
		visibility: hidden;
		transform: translateX(-14px) scale(.94);
		transform-origin: left top;
		filter: blur(10px);
		will-change: opacity, transform, filter;
		/* Curva tipo Apple (easeOutExpo), más lenta + "focus-in" con desenfoque: sensación premium. */
		transition: opacity .55s cubic-bezier(.16, 1, .3, 1), transform .68s cubic-bezier(.16, 1, .3, 1), filter .55s cubic-bezier(.16, 1, .3, 1), visibility .68s;
		pointer-events: none;
	}
	/* Puente invisible que cubre el espacio entre el grupo y el panel,
	   para que el cursor pueda cruzar sin que se cierre. */
	html body.mr-os-portal-body .mr-nav-flyout::before {
		content: "";
		position: absolute;
		top: 0;
		bottom: 0;
		left: -15px;
		width: 15px;
	}
	html body.mr-os-portal-body .mr-navgrp:hover .mr-nav-flyout,
	html body.mr-os-portal-body .mr-navgrp:focus-within .mr-nav-flyout {
		opacity: 1;
		visibility: visible;
		transform: translateX(0);
		pointer-events: auto;
	}

	html body.mr-os-portal-body .mr-nav-flyout-head {
		margin: 4px 10px 7px;
		font-size: 10.5px;
		font-weight: 800;
		letter-spacing: .15em;
		text-transform: uppercase;
		color: #9aa3b2;
	}
	html body.mr-os-portal-body .mr-nav-flyout-link {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 10px;
		padding: 9px 11px;
		border-radius: 10px;
		color: #28344b;
		font-size: 13.5px;
		font-weight: 550;
		line-height: 1.2;
		text-decoration: none;
		transition: background .14s ease, color .14s ease, box-shadow .14s ease;
	}
	html body.mr-os-portal-body .mr-nav-flyout-link span { min-width: 0; }
	html body.mr-os-portal-body .mr-nav-flyout-link:hover,
	html body.mr-os-portal-body .mr-nav-flyout-link:focus-visible {
		background: #f5f1e4;
		color: #16233b;
		outline: none;
	}
	html body.mr-os-portal-body .mr-nav-flyout-link.is-active {
		background: #faf6ea;
		color: #8a5a08;
		font-weight: 700;
		box-shadow: inset 2px 0 0 #c9a227;
	}
	html body.mr-os-portal-body .mr-nav-flyout .mr-nav-badge {
		flex: 0 0 auto;
		background: #e08a00;
		color: #fff;
		border-radius: 999px;
		padding: 1px 7px;
		font-size: 11px;
		font-weight: 700;
		font-style: normal;
	}
}
@media (prefers-reduced-motion: reduce) {
	html body.mr-os-portal-body .mr-nav-flyout { transition: none !important; transform: none !important; }
}
@media (min-width: 861px) {
	/* El chevron › solo tiene sentido cuando el grupo abre un panel. */
	html body.mr-os-portal-body .mr-navgrp:not(.mr-navgrp--has-flyout) .mr-nav-group-link::after {
		display: none !important;
	}
}
/* El panel flotante solo existe en escritorio; en móvil/tablet no debe mostrarse inline. */
html body.mr-os-portal-body .mr-nav-flyout { display: none; }
@media (min-width: 861px) {
	html body.mr-os-portal-body .mr-navgrp--has-flyout .mr-nav-flyout { display: block; }
}

/* ============================================================
   FIX 0.8.106 — los enlaces del flyout heredaban las reglas globales
   ".mr-app-nav a" (texto blanco, pastilla, min-height 78px, flex).
   Aquí se neutralizan con mayor especificidad + !important para que
   se vean como una lista limpia y legible sobre fondo blanco.
   ============================================================ */
@media (min-width: 861px) {
	html body.mr-os-portal-body .mr-nav-flyout .mr-nav-flyout-link {
		display: flex !important;
		flex: 0 0 auto !important;
		align-items: center !important;
		justify-content: space-between !important;
		text-align: left !important;
		gap: 10px !important;
		min-height: 0 !important;
		width: 100% !important;
		margin: 0 !important;
		padding: 9px 11px !important;
		border: 0 !important;
		border-radius: 10px !important;
		background: transparent !important;
		box-shadow: none !important;
		color: #28344b !important;
		font-size: 13.5px !important;
		font-weight: 550 !important;
		line-height: 1.25 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		text-decoration: none !important;
	}
	html body.mr-os-portal-body .mr-nav-flyout .mr-nav-flyout-link span {
		color: #28344b !important;
		font-size: 13.5px !important;
		font-weight: 550 !important;
		letter-spacing: 0 !important;
		text-transform: none !important;
		white-space: normal !important;
	}
	html body.mr-os-portal-body .mr-nav-flyout .mr-nav-flyout-link:hover,
	html body.mr-os-portal-body .mr-nav-flyout .mr-nav-flyout-link:focus-visible {
		background: #f5f1e4 !important;
	}
	html body.mr-os-portal-body .mr-nav-flyout .mr-nav-flyout-link:hover span,
	html body.mr-os-portal-body .mr-nav-flyout .mr-nav-flyout-link:focus-visible span,
	html body.mr-os-portal-body .mr-nav-flyout .mr-nav-flyout-link.is-active span {
		color: #16233b !important;
	}
	html body.mr-os-portal-body .mr-nav-flyout .mr-nav-flyout-link.is-active {
		background: #faf6ea !important;
		box-shadow: inset 2px 0 0 #c9a227 !important;
	}
	html body.mr-os-portal-body .mr-nav-flyout .mr-nav-flyout-link.is-active span {
		color: #8a5a08 !important;
		font-weight: 700 !important;
	}
	html body.mr-os-portal-body .mr-nav-flyout .mr-nav-flyout-head {
		color: #9aa3b2 !important;
		font-size: 10.5px !important;
		font-weight: 800 !important;
		letter-spacing: .15em !important;
		text-transform: uppercase !important;
		margin: 4px 10px 7px !important;
		text-align: left !important;
	}
}

/* ============================================================
   FIX 0.8.107 — el panel solo abría al click (foco), no al hover.
   Causa: el overflow del sidebar recortaba el panel y se liberaba
   vía :has(:focus-within) (click) pero no de forma fiable en
   :has(:hover) en algunos navegadores. Con solo 5 grupos el sidebar
   no necesita recortar: lo dejamos overflow visible en escritorio,
   así el :hover puro muestra el panel sin depender de :has().
   ============================================================ */
@media (min-width: 861px) {
	html body.mr-os-portal-body .mr-app-sidebar {
		overflow: visible !important;
	}
}

/* 0.8.108 — apertura del panel controlada por JS (.is-open), posicionado fixed.
   Fiable en todos los navegadores; no depende de :has() ni del overflow del sidebar. */
@media (min-width: 861px) {
	html body.mr-os-portal-body .mr-navgrp.is-open .mr-nav-flyout {
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
		pointer-events: auto !important;
	}
}

/* 0.8.109 — el panel se traslada al <body> (JS); el estado abierto va en la propia
   .mr-nav-flyout. Aseguramos display en escritorio aunque ya no esté dentro de .mr-navgrp. */
@media (min-width: 861px) {
	html body.mr-os-portal-body .mr-nav-flyout { display: block; }
	html body.mr-os-portal-body .mr-nav-flyout.is-open {
		opacity: 1 !important;
		visibility: visible !important;
		transform: none !important;
		filter: blur(0) !important;
		pointer-events: auto !important;
	}
}

/* ============================================================
   0.8.114 — Salvaguarda responsive GLOBAL de tablas del panel.
   Auditoría: el corte "letra por letra" venía de tablas con anchos
   de escritorio (min-width/table-layout fixed/overflow-wrap anywhere)
   cuyo reset a tarjetas no cubría la franja tablet 721–900px.
   El apilado genérico de .mr-app-table se activa hasta 900px; aquí
   garantizamos, en TODO ese rango y para TODA tabla del panel, que
   ninguna celda conserve ancho de escritorio ni parta el texto.
   ============================================================ */
@media (max-width: 900px) {
	html body.mr-os-portal-body .mr-app-table,
	html body.mr-os-portal-body .mr-app-table thead,
	html body.mr-os-portal-body .mr-app-table tbody,
	html body.mr-os-portal-body .mr-app-table tr { min-width: 0 !important; }
	html body.mr-os-portal-body .mr-app-table th,
	html body.mr-os-portal-body .mr-app-table td {
		min-width: 0 !important;
		overflow-wrap: break-word !important;
		word-break: normal !important;
	}
}

/* ============================================================
   0.8.115 — Tarjeta DEFINITIVA para la lista de Participantes/Staff
   (.mr-staff-candidates-table) en tablet/móvil. Regla de máxima
   especificidad y última en cargar: gana sobre cualquier ancho de
   columna (%/min-width), truncado (ellipsis/nowrap) o grid previo
   que dejaba el valor en ~1 carácter. Etiqueta fija + valor a 1fr.
   ============================================================ */
@media (max-width: 900px) {
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table { display: block !important; width: 100% !important; min-width: 0 !important; table-layout: auto !important; }
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table thead { display: none !important; }
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table tbody,
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table tr { display: block !important; width: 100% !important; min-width: 0 !important; }
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table tr { margin: 0 0 14px !important; }
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td,
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td:nth-child(1),
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td:nth-child(2),
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td:nth-child(3),
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td:nth-child(4),
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td:nth-child(5),
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td:nth-child(6) {
		display: grid !important;
		grid-template-columns: 104px minmax(0, 1fr) !important;
		gap: 4px 12px !important;
		align-items: start !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		box-sizing: border-box !important;
		padding: 8px 14px !important;
		text-align: left !important;
	}
	/* El valor (hijo directo) va a la columna 2 y llena el espacio. */
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td > * {
		grid-column: 2 !important;
		min-width: 0 !important;
		max-width: 100% !important;
	}
	/* El contenedor anidado de Nombre (.mr-participant-main) se aplana para no constreñir. */
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td .mr-participant-main {
		display: block !important;
		width: 100% !important;
		min-width: 0 !important;
		max-width: 100% !important;
	}
	/* NINGÚN descendiente (nombre, correo, código, badges) se trunca ni se parte por letra. */
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td * {
		min-width: 0 !important;
		max-width: 100% !important;
		white-space: normal !important;
		overflow: visible !important;
		text-overflow: clip !important;
		overflow-wrap: break-word !important;
		word-break: normal !important;
	}
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td::before {
		content: attr(data-label) !important;
		grid-column: 1 !important;
		align-self: start !important;
		font-weight: 700 !important;
		font-size: 10px !important;
		line-height: 1.4 !important;
		letter-spacing: .04em !important;
		text-transform: uppercase !important;
		color: #64748b !important;
		white-space: normal !important;
	}
	/* Acciones: botones a todo el ancho, en columna. */
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td.mr-actions { grid-template-columns: 104px minmax(0, 1fr) !important; }
	html body.mr-os-portal-body table.mr-app-table.mr-staff-candidates-table td.mr-actions > * { grid-column: 2 !important; }
}

/* ============================================================
   0.8.116 — Barra lateral responsive y profesional.
   Problema: reglas previas ponían el <aside> en flex con
   justify-content:space-between → la navegación se iba al FONDO
   con un hueco vacío arriba ("se pierde"). Y en tablet/móvil el
   sidebar no se ocultaba aunque ya aparece la barra inferior.
   ============================================================ */
/* >1100px: barra lateral vertical (único rango donde se muestra el sidebar; hay sitio para
   columna + contenido). Se fuerza columna pegada arriba, con scroll si no cabe (nada se pierde). */
@media (min-width: 1101px) {
	html body.mr-os-portal-body .mr-app-sidebar {
		display: flex !important;
		flex-direction: column !important;
		align-items: stretch !important;
		justify-content: flex-start !important;
		gap: 10px !important;
		overflow-y: auto !important;
		overflow-x: hidden !important;
	}
	html body.mr-os-portal-body .mr-app-sidebar .mr-app-nav,
	html body.mr-os-portal-body .mr-app-sidebar .mr-app-nav.mr-app-nav--clean {
		flex: 0 0 auto !important;
		flex-direction: column !important;
		justify-content: flex-start !important;
		margin: 0 !important;
		overflow: visible !important;
	}
	html body.mr-os-portal-body .mr-app-sidebar .mr-app-brand { flex: 0 0 auto !important; }
	html body.mr-os-portal-body .mr-mobile-bottom-nav { display: none !important; }
}
/* ≤1100px: el sidebar se oculta y manda la barra inferior de 5 grupos (nada se pierde); el
   contenido pasa a todo el ancho. Antes, el rango 861–1100 convertía el sidebar en una barra
   horizontal con scroll (diseño viejo) que se ROMPÍA con la navegación agrupada nueva. Ahora la
   transición es coherente: vertical >1100, barra inferior ≤1100. */
@media (max-width: 1100px) {
	html body.mr-os-portal-body .mr-app { display: block !important; grid-template-columns: 1fr !important; }
	html body.mr-os-portal-body .mr-app-sidebar { display: none !important; }
	html body.mr-os-portal-body .mr-app-main { width: 100% !important; max-width: 100% !important; padding-bottom: 100px !important; }
	html body.mr-os-portal-body .mr-mobile-bottom-nav { display: flex !important; }
}

/* ============================================================
   0.8.124 — Topbar + barra inferior: bloque ÚNICO y definitivo
   (reemplaza los parches 0.8.118–0.8.123 que se pisaban).
   - Logo del SISTEMA (MUN Revolution OS, .mr-os-topbar-logo-lock): SIEMPRE
     visible y FIJO JUNTO AL USUARIO (derecha). Altura EXPLÍCITA para que el
     SVG no colapse a 0px dentro del flex (era la causa de que no apareciera).
   - Chip de usuario centrado, dentro del cuadro.
   - Marca del MUN (MUN-SDE, .mr-mobile-event-brand-lock): sidebar en escritorio,
     topbar en ≤1100 (cuando el sidebar se oculta).
   - Barra inferior móvil: fondo sólido (sin backdrop-filter) → iOS no la desancla.
   ============================================================ */
html body.mr-os-portal-body .mr-app-topbar {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: wrap !important;
	align-items: center !important;
	justify-content: flex-start !important;
	gap: 10px 14px !important;
	min-height: 0 !important;
	height: auto !important;
	padding: 12px 18px !important;
	overflow: visible !important;
}
html body.mr-os-portal-body .mr-app-topbar .mr-topbar-page {
	order: 1 !important;
	flex: 1 1 auto !important;
	min-width: 0 !important;
	text-align: left !important;
}
/* Logo del SISTEMA (MUN Revolution OS): SIEMPRE visible, junto al usuario. */
html body.mr-os-portal-body .mr-app-topbar .mr-os-topbar-logo-lock {
	order: 3 !important;
	display: flex !important;
	flex: 0 0 auto !important;
	align-items: center !important;
	justify-content: flex-end !important;
	margin: 0 !important;
	padding: 0 !important;
	width: auto !important;
	min-width: 96px !important;
	max-width: 180px !important;
	overflow: visible !important;
}
html body.mr-os-portal-body .mr-app-topbar .mr-os-topbar-logo-lock img {
	display: block !important;
	height: 34px !important;
	width: auto !important;
	max-width: 100% !important;
	object-fit: contain !important;
}
/* Usuario al final, centrado y dentro del cuadro. */
html body.mr-os-portal-body .mr-app-topbar .mr-topbar-tools {
	order: 4 !important;
	flex: 0 0 auto !important;
	align-self: center !important;
	align-items: center !important;
	width: auto !important;
	margin: 0 !important;
}
html body.mr-os-portal-body .mr-app-topbar .mr-app-user { align-items: center !important; margin: 0 !important; }
/* Marca del MUN (MUN-SDE): en escritorio vive en el sidebar; en ≤1100 aparece en el topbar. */
html body.mr-os-portal-body .mr-app-topbar .mr-mobile-event-brand-lock { order: 2 !important; }
@media (min-width: 1101px) {
	html body.mr-os-portal-body .mr-app-topbar .mr-mobile-event-brand-lock { display: none !important; }
}
@media (max-width: 1100px) {
	html body.mr-os-portal-body .mr-app-topbar .mr-mobile-event-brand-lock { display: flex !important; flex: 0 0 auto !important; align-items: center !important; gap: 8px !important; }
	html body.mr-os-portal-body .mr-app-topbar .mr-mobile-event-brand-lock img { height: 26px !important; width: auto !important; max-width: 120px !important; }
	html body.mr-os-portal-body .mr-app-topbar .mr-mobile-event-brand-lock span { font-size: 12px !important; line-height: 1.2 !important; }
	/* Barra inferior móvil: fondo sólido para que iOS no la desancle al final. */
	html body.mr-os-portal-body .mr-mobile-bottom-nav {
		background: #0d1e46 !important;
		-webkit-backdrop-filter: none !important;
		backdrop-filter: none !important;
	}
}


/* ==========================================================================
   0.8.143 — Capa de pulido aditiva (features nuevas + ritmo de espaciado).
   Carga al final y gana la cascada; SOLO estiliza clases NUEVAS de la sesión
   (chat, pase por cuenta, confirmación autenticada, preview del inspector) y
   añade tokens de espaciado/tipografía fluida. No reescribe reglas existentes.
   El modo oscuro global queda pendiente (requiere que public.css adopte tokens).
   ========================================================================== */
:root {
	--mros-s1: 4px;  --mros-s2: 8px;  --mros-s3: 12px; --mros-s4: 16px;
	--mros-s5: 24px; --mros-s6: 32px; --mros-s7: 48px;
	--mros-mono: ui-monospace, "SF Mono", Menlo, Consolas, monospace;
	--mros-fs-h2: clamp(1.3rem, 1.05rem + 1vw, 1.7rem);
}

/* ── Chat (delegado y admin): burbujas por dirección ── */
.mr-chat-list {
	display: flex !important;
	flex-direction: column !important;
	gap: var(--mros-s2) !important;
	padding: var(--mros-s3) !important;
	background: var(--mros-surface-tint) !important;
	border: 1px solid var(--mros-line) !important;
	border-radius: var(--mros-r-md) !important;
	max-height: 440px;
	overflow-y: auto;
}
.mr-chat-msg {
	max-width: 82% !important;
	padding: 9px 13px !important;
	border-radius: 14px !important;
	font-size: .9rem !important;
	line-height: 1.45 !important;
	box-shadow: var(--mros-shadow-sm);
	margin: 0 !important;
}
.mr-chat-msg span {
	display: block !important;
	font-size: .72rem !important;
	opacity: .72 !important;
	margin-bottom: 2px !important;
}
.mr-chat-msg p { margin: 0 !important; }
.mr-chat-msg--in {
	align-self: flex-start !important;
	background: var(--mros-surface) !important;
	border: 1px solid var(--mros-line) !important;
	color: var(--mros-ink) !important;
	border-bottom-left-radius: 4px !important;
}
.mr-chat-msg--out {
	align-self: flex-end !important;
	background: linear-gradient(180deg, var(--mros-accent), #254db0) !important;
	color: #fff !important;
	border-bottom-right-radius: 4px !important;
}
.mr-chat-msg--out span { color: #d3ddf6 !important; }
.mr-chat-compose { margin-top: var(--mros-s3) !important; }

/* ── Confirmación autenticada del delegado ── */
.mr-delegate-confirm-block {
	background: var(--mros-gold-tint) !important;
	border: 1px solid var(--mros-gold-100) !important;
	border-radius: var(--mros-r-md) !important;
	padding: var(--mros-s4) !important;
}

/* ── Pase QR por cuenta ── */
.mr-delegate-pass-qr {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: var(--mros-s3) !important;
	padding: var(--mros-s5) !important;
	background: var(--mros-surface) !important;
	border: 1px solid var(--mros-line) !important;
	border-radius: var(--mros-r-lg) !important;
	box-shadow: var(--mros-shadow-md) !important;
}
.mr-delegate-pass-qr canvas,
.mr-delegate-pass-qr img { border-radius: var(--mros-r-sm); max-width: 100%; height: auto; }
.mr-delegate-pass-qr p { color: var(--mros-ink-soft) !important; font-size: .84rem !important; text-align: center; margin: 0 !important; }

/* ── Inspector de correos: preview HTML + código fuente ── */
.mr-email-preview-frame {
	width: 100% !important;
	min-height: 420px;
	border: 1px solid var(--mros-line) !important;
	border-radius: var(--mros-r-md) !important;
	background: #fff !important;
	box-shadow: var(--mros-shadow-sm);
}
.mr-email-preview-source {
	width: 100% !important;
	font-family: var(--mros-mono) !important;
	font-size: 12px !important;
	line-height: 1.5 !important;
	border: 1px solid var(--mros-line) !important;
	border-radius: var(--mros-r-md) !important;
	background: var(--mros-surface-tint) !important;
	color: var(--mros-ink) !important;
	padding: var(--mros-s3) !important;
}

/* ── Micro-interacciones sutiles (solo donde hay puntero, respeta reduced-motion) ── */
@media (hover: hover) {
	.mr-chat-compose button, .mr-delegate-confirm-block button { transition: transform var(--mros-motion), box-shadow var(--mros-motion); }
	.mr-chat-compose button:hover, .mr-delegate-confirm-block button:hover { transform: translateY(-1px); }
}


/* ── 0.8.146 — Hub de Mensajes en la barra superior (notificación tipo Espacios) ── */
.mr-topbar-msg {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px; height: 42px;
	border-radius: var(--mros-r-pill) !important;
	color: var(--mros-ink) !important;
	background: var(--mros-surface) !important;
	border: 1px solid var(--mros-line) !important;
	text-decoration: none !important;
	transition: transform var(--mros-motion), border-color var(--mros-motion), box-shadow var(--mros-motion);
	flex: none;
}
.mr-topbar-msg:hover { border-color: var(--mros-gold-600) !important; transform: translateY(-1px); box-shadow: var(--mros-shadow-sm); }
.mr-topbar-msg:focus-visible { outline: none; box-shadow: var(--mros-ring) !important; }
.mr-topbar-msg.has-notification { border-color: var(--mros-gold-600) !important; }
.mr-topbar-msg .mr-topbar-msg-icon { display: block; }
.mr-topbar-msg .mr-topbar-msg-badge {
	position: absolute !important;
	top: -5px; right: -5px;
	margin: 0 !important;
	min-width: 18px; height: 18px;
	padding: 0 4px !important;
	font-size: .66rem !important; font-weight: 700 !important;
	line-height: 18px !important; text-align: center;
	color: #fff !important;
	background: var(--mros-bad-ink) !important;
	border-radius: var(--mros-r-pill) !important;
	box-shadow: 0 0 0 2px var(--mros-surface);
}


/* ── 0.8.153 — Agrupar el ícono de Mensajes a la IZQUIERDA de la tarjeta de usuario (fix móvil/desktop:
   antes, dentro de .mr-app-user, empujaba "Salir" a otra línea). ── */
.mr-topbar-user-group { display: inline-flex; align-items: center; gap: 10px; flex-wrap: nowrap; }
.mr-topbar-user-group .mr-topbar-msg { width: 40px; height: 40px; flex: none; }


/* ── 0.8.158 — Logo del SISTEMA (MUN Revolution OS) más grande en el topbar: es el nombre del producto,
   no debe verse minúsculo junto al del evento. Capa aditiva (gana la cascada). ── */
html body.mr-os-portal-body .mr-app-topbar .mr-os-topbar-logo-lock { min-width: 120px !important; max-width: 260px !important; }
html body.mr-os-portal-body .mr-app-topbar .mr-os-topbar-logo-lock img { height: 48px !important; }


/* ── 0.8.160 — Transparencia tipo Apple (frosted glass) en el CHROME que flota sobre el contenido:
   topbar y barra de sub-pestañas. Guardado por @supports con fallback sólido (el navegador que no
   soporte backdrop-filter conserva el fondo blanco actual). No se toca el contenido (legibilidad). ── */
@supports ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))) {
	html body.mr-os-portal-body .mr-app-topbar {
		background-color: rgba(255, 255, 255, 0.72) !important;
		-webkit-backdrop-filter: saturate(180%) blur(20px);
		backdrop-filter: saturate(180%) blur(20px);
		border: 1px solid rgba(255, 255, 255, 0.55) !important;
		box-shadow: 0 8px 30px rgba(16, 24, 40, 0.08), inset 0 1px 0 rgba(255, 255, 255, 0.6) !important;
	}
	html body.mr-os-portal-body .mr-section-tabs {
		background-color: rgba(255, 255, 255, 0.68) !important;
		-webkit-backdrop-filter: saturate(180%) blur(16px);
		backdrop-filter: saturate(180%) blur(16px);
		border: 1px solid rgba(255, 255, 255, 0.5) !important;
	}
	/* Sidebar navy con un velo translúcido sutil (mantiene contraste del texto claro). */
	html body.mr-os-portal-body .mr-app-nav {
		-webkit-backdrop-filter: saturate(140%) blur(8px);
		backdrop-filter: saturate(140%) blur(8px);
	}
}


/* ── 0.15 — Portal del Delegado como app: sidebar, credencial QR, foto y talleres ── */
html body.mr-os-portal-body .mr-delegate-app-page {
	max-width: 1280px !important;
	padding: clamp(18px, 3vw, 34px) !important;
}
html body.mr-os-portal-body .mr-viewas-banner {
	align-items: center;
	background: #0d1e46 !important;
	border-radius: 22px !important;
	box-shadow: 0 18px 50px rgba(13, 30, 70, .18);
	color: #fff !important;
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	justify-content: space-between;
	margin: 0 auto 18px !important;
	max-width: 1120px;
	padding: 14px 18px !important;
}
html body.mr-os-portal-body .mr-viewas-banner span { align-items: center; display: inline-flex; flex-wrap: wrap; gap: 8px; font-weight: 800; }
html body.mr-os-portal-body .mr-viewas-banner small { color: rgba(255,255,255,.76); font-weight: 700; }
html body.mr-os-portal-body .mr-viewas-banner a {
	background: rgba(255,255,255,.14);
	border-radius: 999px;
	color: #fff !important;
	font-size: .78rem;
	font-weight: 800;
	padding: 7px 12px;
	text-decoration: none !important;
}
html body.mr-os-portal-body .mr-viewas-banner a.is-active { background: #f6c945; color: #0d1e46 !important; }
html body.mr-os-portal-body .mr-viewas-banner a.mr-viewas-exit { background: #fff; color: #0d1e46 !important; }

html body.mr-os-portal-body .mr-delegate-app {
	display: grid;
	gap: 22px;
	grid-template-columns: 290px minmax(0, 1fr);
	margin: 0 auto;
	max-width: 1180px;
}
html body.mr-os-portal-body .mr-delegate-sidebar,
html body.mr-os-portal-body .mr-delegate-panel,
html body.mr-os-portal-body .mr-delegate-status-grid > div {
	background: rgba(255, 255, 255, .82) !important;
	border: 1px solid rgba(203, 213, 225, .78) !important;
	box-shadow: 0 18px 55px rgba(15, 23, 42, .08);
}
@supports ((-webkit-backdrop-filter: blur(12px)) or (backdrop-filter: blur(12px))) {
	html body.mr-os-portal-body .mr-delegate-sidebar,
	html body.mr-os-portal-body .mr-delegate-panel,
	html body.mr-os-portal-body .mr-delegate-status-grid > div {
		-webkit-backdrop-filter: saturate(180%) blur(18px);
		backdrop-filter: saturate(180%) blur(18px);
	}
}
html body.mr-os-portal-body .mr-delegate-sidebar {
	align-self: start;
	border-radius: 28px !important;
	display: grid;
	gap: 18px;
	padding: 18px !important;
	position: sticky;
	top: 20px;
}
html body.mr-os-portal-body .mr-delegate-brand {
	align-items: center;
	color: #0f172a !important;
	display: grid;
	gap: 10px;
	text-decoration: none !important;
}
html body.mr-os-portal-body .mr-delegate-brand img {
	background: #fff;
	border: 1px solid #dbe4f0;
	border-radius: 22px;
	height: 82px;
	object-fit: contain;
	padding: 12px;
	width: 100%;
}
html body.mr-os-portal-body .mr-delegate-brand span { font-size: 1.05rem; font-weight: 900; line-height: 1.15; }
html body.mr-os-portal-body .mr-delegate-profile-card {
	background: #0d1e46;
	border-radius: 22px;
	color: #fff;
	display: grid;
	gap: 8px;
	padding: 16px;
}
html body.mr-os-portal-body .mr-delegate-profile-card img {
	border: 3px solid rgba(255,255,255,.85);
	border-radius: 50%;
	height: 70px;
	object-fit: cover;
	width: 70px;
}
html body.mr-os-portal-body .mr-delegate-profile-card strong { font-size: 1rem; line-height: 1.2; }
html body.mr-os-portal-body .mr-delegate-profile-card span { color: rgba(255,255,255,.84); font-size: .88rem; font-weight: 800; }
html body.mr-os-portal-body .mr-delegate-nav { display: grid; gap: 6px; }
html body.mr-os-portal-body .mr-delegate-nav a,
html body.mr-os-portal-body .mr-delegate-logout {
	border-radius: 16px;
	color: #18233a !important;
	font-weight: 850;
	padding: 11px 12px;
	text-decoration: none !important;
}
html body.mr-os-portal-body .mr-delegate-nav a:hover { background: #eef4ff; }
/* Sección activa (la marca public.js con IntersectionObserver): resalta dónde está el delegado. */
html body.mr-os-portal-body .mr-delegate-nav a.is-active {
	background: #0D1E46 !important;
	color: #fff !important;
	box-shadow: 0 6px 16px rgba(13,30,70,.18);
}
html body.mr-os-portal-body .mr-delegate-logout { background: #fff7e0; color: #8a610d !important; text-align: center; }

html body.mr-os-portal-body .mr-delegate-content { display: grid; gap: 18px; min-width: 0; }
html body.mr-os-portal-body .mr-delegate-hero {
	align-items: center;
	background: linear-gradient(135deg, #0d1e46, #172f69) !important;
	border-radius: 30px;
	box-shadow: 0 22px 70px rgba(13, 30, 70, .2);
	color: #fff;
	display: grid;
	gap: 18px;
	grid-template-columns: minmax(0, 1fr) 150px;
	overflow: hidden;
	padding: clamp(24px, 4vw, 44px);
}
html body.mr-os-portal-body .mr-delegate-hero p,
html body.mr-os-portal-body .mr-delegate-hero h1 { margin: 0 !important; }
html body.mr-os-portal-body .mr-delegate-hero p { color: #d4af37; font-size: .78rem; font-weight: 900; letter-spacing: .08em; text-transform: uppercase; }
html body.mr-os-portal-body .mr-delegate-hero h1 { color: #fff !important; font-size: clamp(2rem, 5vw, 4rem) !important; line-height: .98 !important; }
html body.mr-os-portal-body .mr-delegate-hero-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 9px;
	margin-top: 18px;
}
html body.mr-os-portal-body .mr-delegate-hero-meta > span {
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 999px;
	color: #fff;
	font-weight: 800;
	padding: 8px 12px;
}
html body.mr-os-portal-body .mr-delegate-committee-mark {
	background: rgba(255,255,255,.94);
	border-radius: 28px;
	display: grid;
	min-height: 132px;
	place-items: center;
}
html body.mr-os-portal-body .mr-delegate-committee-mark img { max-height: 104px; max-width: 124px; object-fit: contain; }

html body.mr-os-portal-body .mr-delegate-status-grid {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}
html body.mr-os-portal-body .mr-delegate-status-grid > div,
html body.mr-os-portal-body .mr-delegate-panel {
	border-radius: 24px !important;
	padding: 18px !important;
}
html body.mr-os-portal-body .mr-delegate-status-grid span { color: #64748b; display: block; font-size: .74rem; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; }
html body.mr-os-portal-body .mr-delegate-status-grid strong { color: #0f172a; display: block; font-size: 1.1rem; margin-top: 5px; }
html body.mr-os-portal-body .mr-delegate-panel h2 { color: #0f172a !important; font-size: clamp(1.3rem, 2vw, 1.8rem) !important; margin: 0 0 12px !important; }
html body.mr-os-portal-body .mr-delegate-pass-panel {
	align-items: center;
	display: grid;
	gap: 18px;
	grid-template-columns: minmax(0, 1fr) 280px;
}
html body.mr-os-portal-body .mr-delegate-pass-panel p { color: #53627a; margin: 0 !important; }
html body.mr-os-portal-body .mr-delegate-qr-wrap {
	background: #f8fafc;
	border: 1px solid #dbe4f0;
	border-radius: 22px;
	display: grid;
	gap: 10px;
	justify-items: center;
	padding: 14px;
}
html body.mr-os-portal-body .mr-delegate-qr-wrap .mr-local-qr-canvas { width: min(100%, 240px) !important; }
html body.mr-os-portal-body .mr-delegate-qr-wrap > strong {
	background: #fff7db;
	border-radius: 999px;
	color: #73510a;
	font-size: .82rem;
	padding: 6px 12px;
}
html body.mr-os-portal-body .mr-delegate-photo-request {
	align-items: center;
	display: grid;
	gap: 18px;
	grid-template-columns: minmax(0, 1fr) minmax(240px, 360px);
}
html body.mr-os-portal-body .mr-delegate-photo-form { display: grid; gap: 10px; }
html body.mr-os-portal-body .mr-delegate-photo-form input[type=file] {
	background: #fff;
	border: 1px solid #cbd5e1;
	border-radius: 16px;
	padding: 12px;
}
html body.mr-os-portal-body .mr-delegate-photo-form button,
html body.mr-os-portal-body .mr-chat-compose button {
	background: #24449d !important;
	border: 0 !important;
	border-radius: 16px !important;
	color: #fff !important;
	font-weight: 900 !important;
	min-height: 44px;
}
html body.mr-os-portal-body .mr-delegate-video-grid,
html body.mr-os-portal-body .mr-workshop-admin-grid {
	display: grid;
	gap: 14px;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
}
html body.mr-os-portal-body .mr-delegate-video-card,
html body.mr-os-portal-body .mr-workshop-admin-card {
	background: #fff;
	border: 1px solid #dbe4f0;
	border-radius: 20px;
	display: grid;
	gap: 12px;
	overflow: hidden;
	padding: 12px;
}
html body.mr-os-portal-body .mr-delegate-video-card strong,
html body.mr-os-portal-body .mr-workshop-admin-card strong { color: #0f172a; display: block; font-size: 1rem; }
html body.mr-os-portal-body .mr-delegate-video-card span,
html body.mr-os-portal-body .mr-workshop-admin-card span { color: #64748b; display: block; font-size: .84rem; font-weight: 800; margin-top: 4px; }
html body.mr-os-portal-body .mr-delegate-video-card p,
html body.mr-os-portal-body .mr-workshop-admin-card p { color: #53627a; margin: 8px 0 0 !important; }
html body.mr-os-portal-body .mr-delegate-video-card a { color: #24449d !important; font-weight: 900; margin-top: 10px; text-decoration: none !important; }
html body.mr-os-portal-body .mr-delegate-video-frame { aspect-ratio: 16 / 9; background: #0d1e46; border-radius: 16px; overflow: hidden; }
html body.mr-os-portal-body .mr-delegate-video-frame iframe { border: 0; height: 100%; width: 100%; }

html body.mr-os-portal-body .mr-participant-with-photo { align-items: center; display: flex; gap: 12px; min-width: 0; }
html body.mr-os-portal-body .mr-participant-photo {
	background: #eef2f7;
	border: 1px solid #dbe4f0;
	border-radius: 50%;
	flex: none;
	height: 46px;
	object-fit: cover;
	width: 46px;
}
html body.mr-os-portal-body .mr-delegate-admin-photo-card {
	align-items: center;
	background: #f8fafc;
	border: 1px solid #dbe4f0;
	border-radius: 22px;
	display: flex;
	gap: 14px;
	margin: 0 0 18px;
	padding: 14px;
}
html body.mr-os-portal-body .mr-delegate-admin-photo-card img {
	border-radius: 50%;
	height: 76px;
	object-fit: cover;
	width: 76px;
}
html body.mr-os-portal-body .mr-delegate-admin-photo-card strong { color: #0f172a; display: block; font-size: 1.05rem; }
html body.mr-os-portal-body .mr-delegate-admin-photo-card span { color: #64748b; display: block; font-size: .88rem; margin-top: 3px; }

@media (max-width: 900px) {
	html body.mr-os-portal-body .mr-delegate-app-page { padding: 12px !important; }
	html body.mr-os-portal-body .mr-delegate-app { grid-template-columns: 1fr; }
	html body.mr-os-portal-body .mr-delegate-sidebar { position: static; }
	html body.mr-os-portal-body .mr-delegate-brand { grid-template-columns: 64px minmax(0, 1fr); }
	html body.mr-os-portal-body .mr-delegate-brand img { height: 64px; }
	html body.mr-os-portal-body .mr-delegate-nav { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 4px; }
	html body.mr-os-portal-body .mr-delegate-nav a { background: #f5f7fb; flex: 0 0 auto; white-space: nowrap; }
	html body.mr-os-portal-body .mr-delegate-hero,
	html body.mr-os-portal-body .mr-delegate-pass-panel,
	html body.mr-os-portal-body .mr-delegate-photo-request { grid-template-columns: 1fr; }
	html body.mr-os-portal-body .mr-delegate-committee-mark { min-height: 96px; }
	html body.mr-os-portal-body .mr-delegate-status-grid { grid-template-columns: 1fr; }
}

/* 0.18 — Pulido visual de activación, vista previa por rol y listado de MUNs. */
html body.mr-os-portal-body .mr-access-reset-screen {
	align-items: center !important;
	gap: clamp(28px, 5vw, 72px) !important;
	grid-template-columns: minmax(300px, .86fr) minmax(360px, 480px) !important;
	margin: 0 auto !important;
	max-width: min(1120px, calc(100vw - 48px)) !important;
	min-height: calc(100vh - 48px) !important;
	padding: clamp(24px, 5vh, 54px) 0 !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-brand {
	align-self: center !important;
	display: grid !important;
	gap: 26px !important;
	justify-items: start !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-logo {
	display: grid !important;
	gap: 18px !important;
	justify-items: start !important;
	max-width: 420px !important;
	width: 100% !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-logo img {
	filter: drop-shadow(0 22px 48px rgba(15, 23, 42, .1)) !important;
	height: auto !important;
	max-height: none !important;
	max-width: min(100%, 360px) !important;
	object-fit: contain !important;
	width: 100% !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-logo span {
	background: #0f172a !important;
	border: 1px solid rgba(212, 175, 55, .22) !important;
	border-radius: 18px !important;
	box-shadow: 0 16px 34px rgba(15, 23, 42, .12) !important;
	color: #fff7d6 !important;
	display: inline-flex !important;
	font-size: .74rem !important;
	font-weight: 900 !important;
	letter-spacing: .18em !important;
	line-height: 1 !important;
	padding: 11px 18px !important;
	text-transform: uppercase !important;
	width: auto !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-copy {
	border-left: 3px solid #b78318 !important;
	max-width: 500px !important;
	padding-left: 22px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-copy h1 {
	font-size: clamp(2rem, 4vw, 3rem) !important;
	line-height: 1.03 !important;
	margin: 8px 0 12px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-copy span {
	color: #667085 !important;
	font-size: clamp(.98rem, 1.45vw, 1.14rem) !important;
	line-height: 1.55 !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card {
	border-radius: 30px !important;
	box-shadow: 0 28px 80px rgba(15, 23, 42, .14) !important;
	max-width: 480px !important;
	padding: clamp(24px, 3.2vw, 34px) !important;
	width: 100% !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card h2 {
	font-size: clamp(1.8rem, 3vw, 2.55rem) !important;
	line-height: 1.02 !important;
	margin-bottom: 18px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-app-notice-info {
	background: #f8fbff !important;
	border: 1px solid #dbe6f5 !important;
	border-radius: 20px !important;
	box-shadow: none !important;
	color: #253047 !important;
	font-size: .96rem !important;
	font-weight: 800 !important;
	line-height: 1.35 !important;
	margin-bottom: 20px !important;
	padding: 14px 16px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card form {
	gap: 17px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card label {
	color: #1f2937 !important;
	font-size: .94rem !important;
	font-weight: 850 !important;
	gap: 8px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card input:not([type="checkbox"]) {
	border: 1px solid #d9e2ef !important;
	border-radius: 16px !important;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8) !important;
	color: #0f172a !important;
	min-height: 50px !important;
	padding: 12px 14px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen input[type="file"] {
	background: #fbfdff !important;
	cursor: pointer !important;
	font-size: .88rem !important;
	line-height: 1.2 !important;
	padding: 8px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen input[type="file"]::file-selector-button {
	background: #0d1e46 !important;
	border: 0 !important;
	border-radius: 12px !important;
	color: #fff !important;
	cursor: pointer !important;
	font: inherit !important;
	font-weight: 900 !important;
	margin-right: 12px !important;
	min-height: 34px !important;
	padding: 8px 13px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card small {
	color: #667085 !important;
	font-size: .88rem !important;
	font-weight: 650 !important;
	line-height: 1.38 !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card button {
	border-radius: 16px !important;
	box-shadow: 0 14px 28px rgba(36, 68, 157, .18) !important;
	min-height: 50px !important;
}

html body.mr-os-portal-body .mr-viewas-panel .mr-viewas-list {
	gap: 10px !important;
}
html body.mr-os-portal-body .mr-viewas-panel .mr-viewas-list .mr-app-button {
	border-radius: 16px !important;
	min-height: 48px !important;
	padding: 12px 18px !important;
}
html body.mr-os-portal-body .mr-viewas-actions {
	border-top: 1px solid #e6edf7 !important;
	margin-top: 14px !important;
	padding-top: 18px !important;
}
html body.mr-os-portal-body .mr-viewas-actions .mr-app-button,
html body.mr-os-portal-body .mr-sandbox-preview-actions .mr-app-button-accent {
	background: #fff8e6 !important;
	border: 1px solid rgba(183, 131, 24, .42) !important;
	box-shadow: 0 12px 26px rgba(183, 131, 24, .11) !important;
	color: #0d1e46 !important;
	margin-inline: auto !important;
	max-width: 420px !important;
	width: min(100%, 420px) !important;
}
html body.mr-os-portal-body .mr-viewas-actions .mr-app-button:hover,
html body.mr-os-portal-body .mr-sandbox-preview-actions .mr-app-button-accent:hover {
	background: #ffe7a8 !important;
	color: #0d1e46 !important;
}

html body.mr-os-portal-body .mr-compact-list .mr-event-list-item {
	align-items: center !important;
	display: grid !important;
	gap: 18px !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	padding: 20px !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-main {
	align-items: center !important;
	display: flex !important;
	gap: 16px !important;
	min-width: 0 !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-main > span:last-child {
	display: block !important;
	min-width: 0 !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-main strong {
	color: #111827 !important;
	display: block !important;
	font-size: 1.05rem !important;
	line-height: 1.25 !important;
	max-width: 100% !important;
	overflow-wrap: break-word !important;
	word-break: normal !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-main small {
	color: #667085 !important;
	display: inline-block !important;
	line-height: 1.35 !important;
	margin-top: 4px !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-logo {
	border-radius: 18px !important;
	flex: 0 0 64px !important;
	height: 64px !important;
	object-fit: contain !important;
	padding: 10px !important;
	width: 64px !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-item > .mr-actions {
	align-items: center !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	justify-content: flex-end !important;
	min-width: 0 !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-actions a,
html body.mr-os-portal-body .mr-compact-list .mr-actions button,
html body.mr-os-portal-body .mr-compact-list .mr-danger-details summary {
	align-items: center !important;
	border-radius: 14px !important;
	display: inline-flex !important;
	font-size: .9rem !important;
	font-weight: 900 !important;
	justify-content: center !important;
	min-height: 42px !important;
	padding: 10px 16px !important;
	white-space: nowrap !important;
}

@media (max-width: 860px) {
	html body.mr-os-portal-body .mr-access-reset-screen {
		gap: 24px !important;
		grid-template-columns: 1fr !important;
		max-width: min(560px, calc(100vw - 28px)) !important;
		min-height: auto !important;
		padding: 18px 0 !important;
	}
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-brand {
		justify-items: center !important;
		text-align: center !important;
	}
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-logo {
		justify-items: center !important;
		max-width: 300px !important;
	}
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-logo img {
		max-width: 260px !important;
	}
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-copy {
		border-left: 0 !important;
		border-top: 3px solid #b78318 !important;
		padding-left: 0 !important;
		padding-top: 16px !important;
	}
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card {
		border-radius: 24px !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-item {
		align-items: stretch !important;
		grid-template-columns: 1fr !important;
		padding: 18px !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-main {
		align-items: flex-start !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-item > .mr-actions {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		justify-content: stretch !important;
		width: 100% !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-actions form,
	html body.mr-os-portal-body .mr-compact-list .mr-actions details,
	html body.mr-os-portal-body .mr-compact-list .mr-actions a,
	html body.mr-os-portal-body .mr-compact-list .mr-actions button,
	html body.mr-os-portal-body .mr-compact-list .mr-danger-details summary {
		width: 100% !important;
	}
}

@media (max-width: 480px) {
	html body.mr-os-portal-body .mr-access-reset-screen {
		max-width: calc(100vw - 18px) !important;
	}
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-logo img {
		max-width: 220px !important;
	}
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-copy h1,
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card h2 {
		font-size: 1.8rem !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-logo {
		height: 58px !important;
		width: 58px !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-item > .mr-actions {
		grid-template-columns: 1fr !important;
	}
}


/* ==========================================================================
   0.24 — Correcciones operativas visuales: activación compacta, MUNs móvil,
   chat y Mi comité. Capa final, específica y sin tocar lógica.
   ========================================================================== */
html body.mr-os-portal-body .mr-access-reset-screen {
	align-items: center !important;
	gap: clamp(28px, 4vw, 56px) !important;
	grid-template-columns: minmax(300px, .9fr) minmax(360px, 500px) !important;
	margin-inline: auto !important;
	max-width: 1180px !important;
	padding: clamp(28px, 5vh, 54px) 24px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-logo {
	gap: 18px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-logo img {
	max-width: min(330px, 70vw) !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-logo span {
	border-radius: 999px !important;
	font-size: .76rem !important;
	font-weight: 700 !important;
	letter-spacing: .16em !important;
	padding: 9px 18px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-copy {
	max-width: 480px !important;
	padding-left: 22px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-copy p,
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card > p {
	font-size: .78rem !important;
	font-weight: 700 !important;
	letter-spacing: .18em !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-copy h1 {
	font-size: clamp(2rem, 4.4vw, 3.35rem) !important;
	font-weight: 760 !important;
	letter-spacing: 0 !important;
	line-height: 1.05 !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-copy span {
	font-size: clamp(1rem, 1.6vw, 1.2rem) !important;
	line-height: 1.5 !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card {
	border-radius: 26px !important;
	padding: clamp(24px, 3.8vw, 36px) !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card h2 {
	font-size: clamp(2rem, 4vw, 3rem) !important;
	font-weight: 760 !important;
	letter-spacing: 0 !important;
	line-height: 1.04 !important;
	margin-bottom: 22px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card label {
	font-size: .96rem !important;
	font-weight: 650 !important;
	gap: 8px !important;
	margin-bottom: 16px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card input:not([type="checkbox"]):not([type="file"]) {
	border-radius: 16px !important;
	font-size: 1rem !important;
	font-weight: 600 !important;
	min-height: 52px !important;
	padding: 12px 16px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card input[type="file"] {
	border-radius: 16px !important;
	font-size: .95rem !important;
	min-height: 50px !important;
	padding: 10px 12px !important;
}
html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card button[type="submit"] {
	border-radius: 16px !important;
	font-weight: 750 !important;
	min-height: 52px !important;
}

html body.mr-os-portal-body .mr-action-guide {
	background: #f8fafc !important;
	border: 1px solid #dbe4f0 !important;
	border-radius: 20px !important;
	display: grid !important;
	gap: 8px !important;
	margin: 14px 0 18px !important;
	padding: 16px 18px !important;
}
html body.mr-os-portal-body .mr-action-guide > strong {
	color: #0d1e46 !important;
	font-size: .95rem !important;
}
html body.mr-os-portal-body .mr-action-guide span {
	color: #53627a !important;
	font-size: .88rem !important;
	line-height: 1.45 !important;
}
html body.mr-os-portal-body .mr-action-guide b { color: #0f172a !important; }

html body.mr-os-portal-body .mr-compact-list .mr-event-list-item {
	align-items: center !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-main {
	overflow: visible !important;
	width: 100% !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-main > span {
	flex: 1 1 auto !important;
	min-width: 0 !important;
	overflow: visible !important;
	width: 100% !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-main strong {
	overflow-wrap: break-word !important;
	word-break: normal !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-item > strong.mr-actions {
	color: inherit !important;
	flex: initial !important;
	min-width: 0 !important;
	text-align: initial !important;
	white-space: normal !important;
}

html body.mr-os-portal-body .mr-chat-msg--out,
html body.mr-os-portal-body .mr-chat-msg--out span,
html body.mr-os-portal-body .mr-chat-msg--out p,
html body.mr-os-portal-body .mr-chat-msg--out small {
	color: #ffffff !important;
}
html body.mr-os-portal-body .mr-chat-msg--out span,
html body.mr-os-portal-body .mr-chat-msg--out small {
	opacity: .82 !important;
}
html body.mr-os-portal-body .mr-chat-workspace {
	align-items: stretch !important;
	grid-template-columns: minmax(260px, 340px) minmax(0, 1fr) !important;
}
html body.mr-os-portal-body .mr-chat-thread-panel,
html body.mr-os-portal-body .mr-chat-detail-panel {
	min-width: 0 !important;
}
html body.mr-os-portal-body .mr-chat-thread-panel .mr-compact-list {
	gap: 8px !important;
}
html body.mr-os-portal-body .mr-chat-thread-panel .mr-compact-list > div {
	align-items: center !important;
	border-radius: 18px !important;
	display: grid !important;
	gap: 10px !important;
	grid-template-columns: minmax(0, 1fr) auto !important;
	padding: 12px 14px !important;
}
html body.mr-os-portal-body .mr-chat-thread-panel .mr-compact-list a {
	min-width: 0 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
}
html body.mr-os-portal-body .mr-chat-detail-panel .mr-chat-list {
	background: #f6f8fc !important;
	border-radius: 22px !important;
	max-height: min(58vh, 560px) !important;
	padding: 18px !important;
}
html body.mr-os-portal-body .mr-chat-detail-panel .mr-app-form,
html body.mr-os-portal-body .mr-delegate-messages .mr-chat-compose {
	background: #ffffff !important;
	border: 1px solid #dbe4f0 !important;
	border-radius: 22px !important;
	box-shadow: 0 14px 34px rgba(13, 30, 70, .08) !important;
	margin-top: 14px !important;
	padding: 16px !important;
}

html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-card--polished {
	align-items: stretch !important;
	display: grid !important;
	gap: 18px !important;
	min-height: 0 !important;
	padding: 22px !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-main {
	align-items: center !important;
	display: flex !important;
	gap: 18px !important;
	justify-content: flex-start !important;
	min-height: 0 !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-event--logo-only {
	display: none !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large {
	display: grid !important;
	gap: 8px !important;
	justify-items: start !important;
	min-width: 0 !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee-badge,
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee-name {
	font-size: clamp(1.2rem, 2.4vw, 1.8rem) !important;
	line-height: 1.14 !important;
	max-width: 100% !important;
	overflow-wrap: break-word !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-topic {
	color: #667085 !important;
	font-size: .95rem !important;
	font-weight: 650 !important;
	line-height: 1.35 !important;
	max-width: 680px !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-authorities {
	display: grid !important;
	gap: 12px !important;
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)) !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-authority-card {
	align-items: center !important;
	border-radius: 20px !important;
	min-height: 0 !important;
	padding: 12px !important;
}

@media (max-width: 860px) {
	html body.mr-os-portal-body .mr-access-reset-screen {
		grid-template-columns: 1fr !important;
		max-width: min(560px, calc(100vw - 24px)) !important;
		padding: 18px 0 !important;
	}
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-logo img {
		max-width: 230px !important;
	}
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-copy h1,
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card h2 {
		font-size: clamp(1.8rem, 9vw, 2.35rem) !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-item {
		display: flex !important;
		flex-direction: column !important;
		gap: 16px !important;
		padding: 16px !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-main {
		align-items: center !important;
		display: flex !important;
		gap: 12px !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-logo {
		flex: 0 0 52px !important;
		height: 52px !important;
		width: 52px !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-item > .mr-actions {
		display: grid !important;
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		max-width: 100% !important;
		width: 100% !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-actions a,
	html body.mr-os-portal-body .mr-compact-list .mr-actions button,
	html body.mr-os-portal-body .mr-compact-list .mr-danger-details summary {
		font-size: .86rem !important;
		min-height: 40px !important;
		padding: 9px 10px !important;
	}
	html body.mr-os-portal-body .mr-chat-workspace {
		grid-template-columns: 1fr !important;
	}
	html body.mr-os-portal-body .mr-chat-detail-panel .mr-chat-list {
		max-height: none !important;
	}
}

@media (max-width: 520px) {
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-item > .mr-actions {
		grid-template-columns: 1fr !important;
	}
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card {
		padding: 22px 18px !important;
	}
	html body.mr-os-portal-body .mr-access-reset-screen .mr-login-card input[type="file"] {
		font-size: .84rem !important;
	}
}

/* ==========================================================================
   0.25 — Blindaje final de MUNs en plataforma.
   La tarjeta deja de competir en dos columnas: datos arriba, acciones abajo.
   ========================================================================== */
html body.mr-os-portal-body .mr-compact-list .mr-event-list-item {
	align-items: stretch !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 18px !important;
	min-width: 0 !important;
	overflow: visible !important;
	padding: clamp(18px, 2.4vw, 26px) !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-main {
	align-items: center !important;
	display: flex !important;
	gap: 18px !important;
	min-width: 0 !important;
	overflow: visible !important;
	width: 100% !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-copy {
	display: block !important;
	flex: 1 1 auto !important;
	min-width: 0 !important;
	overflow: visible !important;
	width: auto !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-copy strong {
	display: block !important;
	font-size: clamp(1.12rem, 2vw, 1.35rem) !important;
	line-height: 1.18 !important;
	max-width: 100% !important;
	overflow-wrap: normal !important;
	white-space: normal !important;
	word-break: normal !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-copy span,
html body.mr-os-portal-body .mr-compact-list .mr-event-list-copy small {
	color: #667085 !important;
	display: block !important;
	font-size: .95rem !important;
	line-height: 1.45 !important;
	margin-top: 6px !important;
	max-width: 60ch !important;
	white-space: normal !important;
	word-break: normal !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions {
	align-items: center !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
	justify-content: flex-end !important;
	min-width: 0 !important;
	text-align: initial !important;
	white-space: normal !important;
	width: 100% !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions form,
html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions details {
	margin: 0 !important;
	min-width: 0 !important;
}
html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions a,
html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions button,
html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions summary {
	min-width: 118px !important;
}

@media (max-width: 720px) {
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-main {
		align-items: flex-start !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-logo {
		flex-basis: 54px !important;
		height: 54px !important;
		width: 54px !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	}
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions form,
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions details,
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions a,
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions button,
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions summary {
		min-width: 0 !important;
		width: 100% !important;
	}
}

@media (max-width: 460px) {
	html body.mr-os-portal-body .mr-compact-list .mr-event-list-actions {
		grid-template-columns: 1fr !important;
	}
}

/* ── Mi comité: roster colapsable (0.29) ── cabecera clara + menos scroll en móvil, sin tocar las tarjetas ── */
html body.mr-os-portal-body .mr-committee-roster-details { margin-top: 16px; }
html body.mr-os-portal-body .mr-committee-roster-summary {
	cursor: pointer;
	list-style: none;
	font-weight: 800;
	color: #0D1E46;
	padding: 10px 14px;
	background: #eef4ff;
	border: 1px solid #d7e3f7;
	border-radius: 12px;
	margin-bottom: 10px;
	display: flex;
	align-items: center;
	gap: 8px;
}
html body.mr-os-portal-body .mr-committee-roster-summary::-webkit-details-marker { display: none; }
html body.mr-os-portal-body .mr-committee-roster-summary::before { content: "\25be"; font-size: .8em; opacity: .7; }
html body.mr-os-portal-body .mr-committee-roster-details:not([open]) .mr-committee-roster-summary::before { content: "\25b8"; }

/* ==========================================================================
   0.32 — Pulido pre-migración: Mi comité, delegado, QR y documentos.
   ========================================================================== */
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-card--polished {
	background: linear-gradient(135deg, #ffffff 0%, #f7f9fd 100%) !important;
	gap: clamp(16px, 2vw, 24px) !important;
	min-height: 0 !important;
	padding: clamp(18px, 2.2vw, 28px) !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-main {
	background: #ffffff !important;
	border: 1px solid #dbe4f0 !important;
	border-radius: 26px !important;
	box-shadow: 0 18px 38px rgba(13, 30, 70, .07) !important;
	display: grid !important;
	grid-template-columns: auto minmax(0, 1fr) !important;
	margin: 0 !important;
	padding: clamp(18px, 2.4vw, 30px) !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee {
	align-items: center !important;
	display: flex !important;
	gap: clamp(18px, 2.4vw, 30px) !important;
	min-width: 0 !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee-logo,
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee-mark {
	align-items: center !important;
	background: #ffffff !important;
	border: 1px solid #dbe4f0 !important;
	border-radius: 24px !important;
	box-shadow: 0 14px 34px rgba(13, 30, 70, .08) !important;
	display: flex !important;
	flex: 0 0 clamp(86px, 8vw, 128px) !important;
	height: clamp(86px, 8vw, 128px) !important;
	justify-content: center !important;
	width: clamp(86px, 8vw, 128px) !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee-logo img,
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee-mark img {
	max-height: 76% !important;
	max-width: 76% !important;
	object-fit: contain !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee > span,
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee-name {
	color: #0d172a !important;
	font-size: clamp(1.45rem, 3vw, 2.6rem) !important;
	font-weight: 800 !important;
	line-height: 1.05 !important;
	white-space: normal !important;
	word-break: normal !important;
}
html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-authorities {
	margin-top: 6px !important;
}
html body.mr-os-portal-body .mr-documents-table .mr-document-actions {
	min-width: min(320px, 90vw) !important;
}
html body.mr-os-portal-body .mr-document-actions {
	align-items: flex-start !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
}
html body.mr-os-portal-body .mr-document-actions details {
	flex: 1 1 110px !important;
	min-width: 110px !important;
}
html body.mr-os-portal-body .mr-document-edit-form {
	background: #ffffff !important;
	border: 1px solid #dbe4f0 !important;
	border-radius: 20px !important;
	box-shadow: 0 18px 42px rgba(13, 30, 70, .1) !important;
	margin-top: 10px !important;
	padding: 14px !important;
	position: relative !important;
	z-index: 3 !important;
}
html body.mr-os-portal-body .mr-document-actions .mr-danger-link {
	border-color: #fecaca !important;
	color: #b91c1c !important;
}
html body.mr-os-portal-body .mr-delegate-nav a {
	align-items: center !important;
	display: flex !important;
	justify-content: space-between !important;
}
html body.mr-os-portal-body .mr-delegate-nav-badge,
html body.mr-os-portal-body .mr-delegate-message-indicator b {
	align-items: center !important;
	background: #ef4444 !important;
	border-radius: 999px !important;
	color: #ffffff !important;
	display: inline-flex !important;
	font-size: .72rem !important;
	font-weight: 900 !important;
	height: 22px !important;
	justify-content: center !important;
	min-width: 22px !important;
	padding: 0 6px !important;
}
html body.mr-os-portal-body .mr-delegate-message-indicator {
	align-items: center !important;
	background: #ffffff !important;
	border: 1px solid #dbe4f0 !important;
	border-radius: 999px !important;
	box-shadow: 0 14px 32px rgba(13, 30, 70, .12) !important;
	color: #0d1e46 !important;
	display: inline-flex !important;
	gap: 8px !important;
	margin: 0 0 14px auto !important;
	padding: 10px 13px !important;
	text-decoration: none !important;
	width: max-content !important;
}
/* Membrete institucional del portal del delegado: UNA sola placa clara con los logos parejos y
   separados por divisores sutiles (en vez de varios mosaicos blancos flotando sobre el azul, que
   generaban demasiado contraste). Más cercano al bloque de identidad de Mesa y más limpio. */
html body.mr-os-portal-body .mr-delegate-brand-stack {
	align-items: center !important;
	background: #ffffff !important;
	border: 1px solid rgba(219,228,240,.9) !important;
	border-radius: 18px !important;
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 0 !important;
	justify-content: center !important;
	padding: 12px 10px !important;
	box-shadow: 0 10px 26px rgba(13,30,70,.14) !important;
}
html body.mr-os-portal-body .mr-delegate-brand-stack img {
	background: transparent !important;
	border-radius: 0 !important;
	max-height: 40px !important;
	max-width: 128px !important;
	object-fit: contain !important;
	padding: 4px 18px !important;
}
html body.mr-os-portal-body .mr-delegate-brand-stack img + img {
	border-left: 1px solid rgba(15,23,42,.1) !important;
}
html body.mr-os-portal-body .mr-delegate-profile-card small {
	color: rgba(255,255,255,.86) !important;
	font-size: .82rem !important;
	font-weight: 750 !important;
	line-height: 1.25 !important;
}
/* Escala del proceso: ROJO (inicio) → ÁMBAR (en proceso) → AZUL (confirmado) → VERDE (acreditado, final).
   Así el delegado ve de un vistazo en qué parte del proceso está. NOTA: se anclan como hijas de
   .mr-delegate-status-grid para GANARLE a `.mr-delegate-status-grid > div` (glass, !important) que si no las pisa. */
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card {
	border-left-width: 5px !important;
	border-left-style: solid !important;
}
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--loaded,
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--invited {
	background: #fff1f2 !important;
	border-color: #f43f5e !important;
}
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--pending,
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--pending_confirmation,
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--requires_review {
	background: #fffbeb !important;
	border-color: #f59e0b !important;
}
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--confirmed {
	background: #eff6ff !important;
	border-color: #2563eb !important;
}
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--checked_in,
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--checked-in,
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--accredited {
	background: #ecfdf5 !important;
	border-color: #22c55e !important;
}
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--declined,
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--absent,
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--replaced,
html body.mr-os-portal-body .mr-delegate-status-grid > .mr-delegate-status-card--withdrawn {
	background: #f8fafc !important;
	border-color: #94a3b8 !important;
}
html body.mr-os-portal-body .mr-delegate-pass-actions {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
	justify-content: center !important;
	margin-top: 14px !important;
}
html body.mr-os-portal-body .mr-delegate-pass-actions button {
	background: #0d1e46 !important;
	border: 0 !important;
	border-radius: 999px !important;
	color: #ffffff !important;
	cursor: pointer !important;
	font-weight: 850 !important;
	padding: 10px 16px !important;
}
html body.mr-os-portal-body .mr-delegate-dais-grid {
	display: grid !important;
	gap: 12px !important;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)) !important;
}
html body.mr-os-portal-body .mr-delegate-dais-card {
	align-items: center !important;
	background: #ffffff !important;
	border: 1px solid #dbe4f0 !important;
	border-radius: 20px !important;
	display: flex !important;
	gap: 12px !important;
	padding: 12px !important;
}
html body.mr-os-portal-body .mr-delegate-dais-card img {
	border-radius: 18px !important;
	height: 58px !important;
	object-fit: cover !important;
	width: 58px !important;
}
html body.mr-os-portal-body .mr-delegate-dais-card span {
	color: #a16a12 !important;
	display: block !important;
	font-size: .78rem !important;
	font-weight: 850 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
}

@media (max-width: 720px) {
	html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-main,
	html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee {
		align-items: flex-start !important;
		grid-template-columns: 1fr !important;
	}
	html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee-logo,
	html body.mr-os-portal-body .mr-my-committee-panel .mr-committee-profile-identity--large .mr-committee-mark {
		height: 86px !important;
		width: 86px !important;
	}
	html body.mr-os-portal-body .mr-document-actions {
		display: grid !important;
		grid-template-columns: 1fr !important;
	}
}

@media print {
	body.mr-os-portal-body * {
		visibility: hidden !important;
	}
	body.mr-os-portal-body .mr-delegate-pass-panel,
	body.mr-os-portal-body .mr-delegate-pass-panel * {
		visibility: visible !important;
	}
	body.mr-os-portal-body .mr-delegate-pass-panel {
		box-shadow: none !important;
		left: 0 !important;
		position: absolute !important;
		top: 0 !important;
		width: 100% !important;
	}
	body.mr-os-portal-body .mr-delegate-pass-actions {
		display: none !important;
	}
}

/* ============================================================
   0.34 — Chat tipo app (hub de Mensajes del panel interno)
   Lista de conversaciones + conversación en un solo panel,
   estilo mensajería 2026: avatares con bandera, snippet del
   último mensaje, badge de no leídos, composer pegado abajo.
   Móvil ≤720px: lista O conversación (con botón volver).
   ============================================================ */
.mr-chatapp {
	display: grid !important;
	grid-template-columns: minmax(260px, 340px) 1fr;
	padding: 0 !important;
	overflow: hidden;
	align-items: stretch;
}
.mr-chatapp-side {
	border-right: 1px solid rgba(15, 23, 42, 0.08);
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.mr-chatapp-side-head {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 18px 20px 10px;
}
.mr-chatapp-side-head h3 {
	margin: 0 !important;
	font-size: 1.02rem !important;
	letter-spacing: -0.01em;
}
.mr-chatapp-count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 22px;
	height: 22px;
	padding: 0 7px;
	border-radius: 11px;
	background: rgba(15, 23, 42, 0.07);
	color: rgba(15, 23, 42, 0.65);
	font-size: 0.74rem;
	font-weight: 700;
}
.mr-chatapp-threads {
	overflow-y: auto;
	max-height: 620px;
	padding: 0 10px 14px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	scrollbar-width: thin;
}
.mr-chatapp-item {
	display: flex !important;
	align-items: center;
	gap: 12px;
	padding: 10px 12px !important;
	border-radius: 14px;
	text-decoration: none !important;
	min-width: 0;
	border: 1px solid transparent;
	transition: background 0.15s ease;
}
.mr-chatapp-item:hover {
	background: rgba(15, 23, 42, 0.045);
}
.mr-chatapp-item.is-active {
	background: rgba(37, 66, 133, 0.09);
	border-color: rgba(37, 66, 133, 0.16);
}
.mr-chatapp-avatar {
	flex: 0 0 42px;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 1.35rem;
	line-height: 1;
	background: linear-gradient(160deg, rgba(37, 66, 133, 0.10), rgba(37, 66, 133, 0.04));
	border: 1px solid rgba(15, 23, 42, 0.07);
	color: #254285;
	font-weight: 800;
}
.mr-chatapp-item-body {
	flex: 1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 1px;
}
.mr-chatapp-item-top,
.mr-chatapp-item-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
	min-width: 0;
}
.mr-chatapp-item-name {
	font-weight: 650;
	color: #0f172a;
	font-size: 0.92rem;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	min-width: 0;
}
.mr-chatapp-item-top time {
	flex: 0 0 auto;
	font-size: 0.72rem;
	color: rgba(15, 23, 42, 0.45);
	white-space: nowrap;
}
.mr-chatapp-item-snippet {
	font-size: 0.82rem;
	color: rgba(15, 23, 42, 0.55);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	min-width: 0;
}
.mr-chatapp-unread {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	padding: 0 6px;
	border-radius: 10px;
	background: #dc2626;
	color: #fff;
	font-size: 0.72rem;
	font-weight: 800;
}
.mr-chatapp-item.is-unread .mr-chatapp-item-name {
	font-weight: 800;
}
.mr-chatapp-item.is-unread .mr-chatapp-item-snippet {
	color: #0f172a;
	font-weight: 600;
}
.mr-chatapp-none {
	padding: 10px 12px;
	color: rgba(15, 23, 42, 0.55);
	font-size: 0.9rem;
}
.mr-chatapp-main {
	display: flex;
	flex-direction: column;
	min-width: 0;
	min-height: 480px;
}
.mr-chatapp-head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 13px 20px;
	border-bottom: 1px solid rgba(15, 23, 42, 0.08);
	background: rgba(255, 255, 255, 0.55);
}
.mr-chatapp-head .mr-chatapp-avatar {
	flex-basis: 38px;
	width: 38px;
	height: 38px;
	font-size: 1.2rem;
}
.mr-chatapp-head-id {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.mr-chatapp-head-id strong {
	font-size: 0.98rem;
	color: #0f172a;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.mr-chatapp-head-id span {
	font-size: 0.78rem;
	color: rgba(15, 23, 42, 0.55);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.mr-chatapp-back {
	display: none;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	border-radius: 50%;
	background: rgba(15, 23, 42, 0.06);
	color: #0f172a !important;
	text-decoration: none !important;
	font-size: 1.1rem;
	flex: 0 0 auto;
}
.mr-chatapp .mr-chatapp-scroll {
	flex: 1;
	overflow-y: auto;
	max-height: 520px;
	padding: 18px 20px !important;
	margin: 0 !important;
	scrollbar-width: thin;
}
.mr-chatapp-composer {
	display: flex;
	align-items: flex-end;
	gap: 10px;
	padding: 12px 16px;
	border-top: 1px solid rgba(15, 23, 42, 0.08);
	background: rgba(255, 255, 255, 0.55);
}
.mr-chatapp-composer textarea {
	flex: 1;
	min-height: 44px !important;
	max-height: 130px;
	border-radius: 22px !important;
	padding: 11px 16px !important;
	resize: none;
	font-size: 0.95rem;
	line-height: 1.35;
}
.mr-chatapp-composer button {
	flex: 0 0 auto;
	border-radius: 22px !important;
	padding: 11px 22px !important;
	font-weight: 700;
}
.mr-chatapp-empty {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	color: rgba(15, 23, 42, 0.45);
	padding: 40px 20px;
	text-align: center;
}
.mr-chatapp-empty span {
	font-size: 2.4rem;
	opacity: 0.55;
}
.mr-chatapp-empty p {
	margin: 0;
	font-size: 0.95rem;
}

/* Histórico legado colapsado */
.mr-legacy-msgs > summary {
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 10px;
	font-weight: 700;
	color: rgba(15, 23, 42, 0.7);
	font-size: 0.92rem;
	list-style: none;
}
.mr-legacy-msgs > summary::-webkit-details-marker {
	display: none;
}
.mr-legacy-msgs > summary::before {
	content: '▸';
	font-size: 0.8rem;
	transition: transform 0.15s ease;
}
.mr-legacy-msgs[open] > summary::before {
	transform: rotate(90deg);
}

/* Móvil: lista O conversación, nunca apretadas lado a lado */
@media (max-width: 720px) {
	.mr-chatapp {
		grid-template-columns: 1fr;
	}
	.mr-chatapp--open .mr-chatapp-side {
		display: none;
	}
	.mr-chatapp:not(.mr-chatapp--open) .mr-chatapp-main {
		display: none;
	}
	.mr-chatapp-side {
		border-right: 0;
	}
	.mr-chatapp-threads {
		max-height: none;
	}
	.mr-chatapp-back {
		display: inline-flex;
	}
	.mr-chatapp-main {
		min-height: 0;
	}
	.mr-chatapp .mr-chatapp-scroll {
		max-height: 56vh;
	}
	.mr-chatapp-composer {
		position: sticky;
		bottom: 0;
	}
}

/* 0.36 — Pad de firma del tutor (activación de delegado + registro de staff) */
.mr-signature-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 4px 0 6px;
}
.mr-signature-title {
	font-size: 0.86rem;
	font-weight: 650;
	color: rgba(15, 23, 42, 0.75);
}
.mr-signature-pad {
	width: 100%;
	max-width: 100%;
	height: 160px;
	border: 1.5px dashed rgba(15, 23, 42, 0.25);
	border-radius: 12px;
	background: #fff;
	touch-action: none;
	cursor: crosshair;
	display: block;
}
.mr-signature-actions {
	display: flex;
	justify-content: flex-end;
}
.mr-signature-clear {
	background: transparent !important;
	border: 1px solid rgba(15, 23, 42, 0.2) !important;
	color: rgba(15, 23, 42, 0.7) !important;
	border-radius: 10px !important;
	padding: 6px 14px !important;
	font-size: 0.82rem !important;
	cursor: pointer;
	width: auto !important;
}

/* 0.37 — Tema y subtemas del comité (portal delegado + Mi comité) */
.mr-delegate-topic-panel .mr-delegate-topic-title {
	font-size: 1.05rem;
	font-weight: 750;
	color: #0f172a;
	margin: 4px 0 10px;
	line-height: 1.35;
}
.mr-delegate-subtopics,
.mr-committee-subtopics {
	margin: 6px 0 8px;
	padding-left: 22px;
	display: flex;
	flex-direction: column;
	gap: 7px;
}
.mr-delegate-subtopics li,
.mr-committee-subtopics li {
	font-size: 0.92rem;
	line-height: 1.45;
	color: rgba(15, 23, 42, 0.78);
}
.mr-delegate-subtopics li::marker,
.mr-committee-subtopics li::marker {
	font-weight: 800;
	color: #b8860b;
}
.mr-committee-subtopics {
	margin-top: 10px;
}
.mr-committee-subtopics li {
	font-size: 0.86rem;
}

/* 0.38 — Cola de verificación de menores (Participantes) */
.mr-minors-queue {
	margin: 4px 0 14px;
	padding: 14px 18px;
	border: 1px solid rgba(184, 134, 11, 0.25);
	border-radius: 16px;
	background: rgba(255, 251, 235, 0.55);
}
.mr-minors-queue > summary {
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	font-size: 0.92rem;
	list-style: none;
}
.mr-minors-queue > summary::-webkit-details-marker { display: none; }
.mr-minors-queue > summary::before {
	content: '▸';
	font-size: 0.8rem;
	transition: transform 0.15s ease;
}
.mr-minors-queue[open] > summary::before { transform: rotate(90deg); }
.mr-minors-group-title {
	margin: 14px 0 6px;
	font-size: 0.84rem;
	font-weight: 700;
	color: rgba(15, 23, 42, 0.65);
}
.mr-minors-queue .mr-compact-list > div {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	flex-wrap: wrap;
}

/* 0.43 — Enlace de activación copiable (soporte) */
.mr-generated-link { display: flex; flex-direction: column; gap: 6px; }
.mr-generated-link-row { display: flex; gap: 8px; align-items: center; }
.mr-generated-link-row input {
	flex: 1;
	min-width: 0;
	font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
	font-size: 0.82rem;
	padding: 9px 12px !important;
	border-radius: 10px !important;
}
.mr-generated-link-row .mr-mini-action { flex: 0 0 auto; }
@media (max-width: 720px) {
	.mr-generated-link-row { flex-direction: column; align-items: stretch; }
}

/* ============================================================
   0.44 — Menú de acciones por fila (patrón moderno)
   Un solo botón "Acciones ▾" que despliega el menú en flujo
   (no se recorta dentro de contenedores con overflow). Reemplaza
   las filas de 4-5 botones que obligaban a scroll horizontal.
   ============================================================ */
html body.mr-os-portal-body .mr-actions-menu { position: relative; display: inline-block; }
html body.mr-os-portal-body .mr-actions-menu > summary {
	list-style: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border-radius: 10px;
	background: #0D1E46;
	color: #fff;
	font-weight: 700;
	font-size: .82rem;
	white-space: nowrap;
	transition: background .15s ease;
}
html body.mr-os-portal-body .mr-actions-menu > summary::-webkit-details-marker { display: none; }
html body.mr-os-portal-body .mr-actions-menu > summary::after { content: '▾'; font-size: .7rem; opacity: .85; }
html body.mr-os-portal-body .mr-actions-menu[open] > summary { background: #254285; }
html body.mr-os-portal-body .mr-actions-menu-panel {
	margin-top: 8px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	background: #fff;
	border: 1px solid rgba(15, 23, 42, .12);
	border-radius: 14px;
	padding: 10px;
	box-shadow: 0 14px 34px rgba(13, 30, 70, .16);
	width: min(300px, 78vw);
}
/* El panel se despliega EN FLUJO (empuja la fila) a propósito: los contenedores de tabla usan
   overflow-x:auto, que recortaría un panel flotante. Así nunca se corta, en desktop ni en móvil. */
html body.mr-os-portal-body .mr-actions-menu-panel > form { margin: 0; }
html body.mr-os-portal-body .mr-actions-menu-item,
html body.mr-os-portal-body .mr-actions-submenu > summary {
	display: block;
	width: 100%;
	box-sizing: border-box;
	text-align: left;
	padding: 10px 12px;
	border-radius: 9px;
	border: 1px solid transparent;
	background: #f1f5f9;
	color: #0f172a;
	font-weight: 650;
	font-size: .85rem;
	cursor: pointer;
	text-decoration: none;
	white-space: normal;
	line-height: 1.25;
}
html body.mr-os-portal-body .mr-actions-menu-item:hover,
html body.mr-os-portal-body .mr-actions-submenu > summary:hover { background: #e2e8f0; }
html body.mr-os-portal-body .mr-actions-menu-item--gold { background: #b8860b; color: #fff; }
html body.mr-os-portal-body .mr-actions-menu-item--gold:hover { background: #a2760a; }
html body.mr-os-portal-body .mr-actions-menu-item--primary { background: #0D1E46; color: #fff; }
html body.mr-os-portal-body .mr-actions-menu-item--primary:hover { background: #254285; }
html body.mr-os-portal-body .mr-actions-submenu { width: 100%; }
html body.mr-os-portal-body .mr-actions-submenu > summary { list-style: none; }
html body.mr-os-portal-body .mr-actions-submenu > summary::-webkit-details-marker { display: none; }
html body.mr-os-portal-body .mr-actions-submenu[open] > summary { background: #e2e8f0; }
html body.mr-os-portal-body .mr-actions-submenu.mr-danger-details > summary { color: #b91c1c; }
html body.mr-os-portal-body .mr-actions-submenu form { margin: 8px 0 0; display: flex; flex-direction: column; gap: 8px; }
html body.mr-os-portal-body .mr-actions-submenu input[type="email"],
html body.mr-os-portal-body .mr-actions-submenu input[type="text"] { width: 100%; box-sizing: border-box; }

/* Red de seguridad universal: NINGUNA fila de acciones hace scroll horizontal — envuelve en varias líneas. */
html body.mr-os-portal-body .mr-row-actions,
html body.mr-os-portal-body .mr-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

/* 0.45 — Fecha + sede del MUN bajo el logo (portal interno y portal del delegado)
   Contraste por contexto: el sidebar del DELEGADO es CLARO (texto oscuro); el sidebar INTERNO es OSCURO
   (texto claro). Base = claro; override para el sidebar interno oscuro. */
html body.mr-os-portal-body .mr-event-meta-block {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin: 12px 0 2px;
	padding: 10px 12px;
	background: rgba(15, 23, 42, 0.04);
	border: 1px solid rgba(15, 23, 42, 0.10);
	border-radius: 12px;
}
html body.mr-os-portal-body .mr-event-meta-item {
	display: flex;
	align-items: flex-start;
	gap: 8px;
	font-size: 0.8rem;
	line-height: 1.35;
	color: #334155;
	font-weight: 650;
}
html body.mr-os-portal-body .mr-event-meta-ico {
	display: inline-flex;
	flex: 0 0 auto;
	margin-top: 1px;
	color: #b8860b;
}
/* Sidebar INTERNO (fondo azul oscuro): invertir a texto claro. */
html body.mr-os-portal-body .mr-app-sidebar .mr-event-meta-block {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.14);
}
html body.mr-os-portal-body .mr-app-sidebar .mr-event-meta-item {
	color: rgba(255, 255, 255, 0.92);
}
html body.mr-os-portal-body .mr-app-sidebar .mr-event-meta-ico {
	color: #d4af37;
}

/* 0.50 — Enlaces y formato dentro de los mensajes de chat (delegado y equipo) */
html body.mr-os-portal-body .mr-chat-msg a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
	word-break: break-word;
	font-weight: 700;
}
html body.mr-os-portal-body .mr-chat-msg a:hover { opacity: .85; }
html body.mr-os-portal-body .mr-chat-msg strong { font-weight: 800; }
html body.mr-os-portal-body .mr-chat-msg em { font-style: italic; }
html body.mr-os-portal-body .mr-inbox-body a { color: #254285; text-decoration: underline; word-break: break-word; }

/* 0.51 — Comunicados grupales (difusión estilo red social) */
html body.mr-os-portal-body .mr-delegate-announcements { display: flex; flex-direction: column; gap: 12px; margin: 0 0 18px; }
html body.mr-os-portal-body .mr-delegate-ann-title { margin: 0 0 2px; font-size: .8rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: #b8860b; }
html body.mr-os-portal-body .mr-announcement-card {
	background: #fff;
	border: 1px solid rgba(15, 23, 42, .10);
	border-left: 4px solid #254285;
	border-radius: 14px;
	padding: 14px 16px;
	box-shadow: 0 8px 22px rgba(13, 30, 70, .06);
}
html body.mr-os-portal-body .mr-announcement-body { color: #0f172a; font-size: .95rem; line-height: 1.5; word-break: break-word; }
html body.mr-os-portal-body .mr-announcement-body a { color: #254285; font-weight: 700; text-decoration: underline; }
html body.mr-os-portal-body .mr-announcement-date { margin-top: 8px; font-size: .74rem; color: rgba(15, 23, 42, .5); }
html body.mr-os-portal-body .mr-announcement-reactions { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
html body.mr-os-portal-body .mr-reaction-form { margin: 0; }
html body.mr-os-portal-body .mr-reaction-btn {
	background: #f1f5f9 !important;
	border: 1px solid rgba(15, 23, 42, .12) !important;
	border-radius: 999px !important;
	padding: 4px 12px !important;
	font-size: 1.05rem !important;
	line-height: 1 !important;
	cursor: pointer;
	width: auto !important;
	transition: transform .1s ease, background .15s ease;
}
html body.mr-os-portal-body .mr-reaction-btn:hover { transform: scale(1.12); }
html body.mr-os-portal-body .mr-reaction-btn.is-active { background: rgba(37, 66, 133, .14) !important; border-color: rgba(37, 66, 133, .4) !important; }

/* Panel de métricas de difusiones (admin) */
html body.mr-os-portal-body .mr-broadcast-metrics { margin-top: 14px; display: flex; flex-direction: column; gap: 8px; }
html body.mr-os-portal-body .mr-broadcast-metrics-title { margin: 0 0 2px; font-size: .8rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; color: rgba(15, 23, 42, .55); }
html body.mr-os-portal-body .mr-broadcast-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 10px 12px; background: rgba(15, 23, 42, .03); border: 1px solid rgba(15, 23, 42, .08); border-radius: 12px; }
html body.mr-os-portal-body .mr-broadcast-text { font-size: .9rem; color: #0f172a; min-width: 0; }
html body.mr-os-portal-body .mr-broadcast-when { display: block; font-size: .72rem; color: rgba(15, 23, 42, .5); margin-top: 2px; }
html body.mr-os-portal-body .mr-broadcast-stats { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
html body.mr-os-portal-body .mr-broadcast-reads { font-size: .82rem; font-weight: 700; color: #254285; white-space: nowrap; }
html body.mr-os-portal-body .mr-broadcast-reaction { font-size: .85rem; background: #fff; border: 1px solid rgba(15, 23, 42, .12); border-radius: 999px; padding: 2px 9px; white-space: nowrap; }

/* 0.52 — Portal del delegado: hero alineado con el sidebar, ícono de mensajes superpuesto sobre el hero,
   membrete con SOLO el logo de MUN Revolution, logo del comité junto a su nombre, Mesa Directiva dentro
   del panel del pase (aprovechando el espacio vacío). */
html body.mr-os-portal-body .mr-delegate-content { position: relative; }
html body.mr-os-portal-body .mr-delegate-message-indicator {
	position: absolute !important;
	top: 16px !important;
	right: 16px !important;
	margin: 0 !important;
	z-index: 30 !important;
}
/* El membrete baja al pie de su columna para no chocar con el ícono del tope. */
html body.mr-os-portal-body .mr-delegate-hero .mr-delegate-brand-stack { align-self: end; }
html body.mr-os-portal-body .mr-delegate-brand-stack--single { justify-content: center; }
/* Pase: columna de info (con Mesa Directiva) a la izquierda, QR arriba a la derecha. */
html body.mr-os-portal-body .mr-delegate-pass-panel { align-items: start !important; }
html body.mr-os-portal-body .mr-delegate-pass-info { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
html body.mr-os-portal-body .mr-delegate-dais-inline { margin-top: 20px; padding-top: 18px; border-top: 1px solid rgba(15, 23, 42, .08); }
html body.mr-os-portal-body .mr-dais-committee { display: flex; align-items: center; gap: 8px; margin: 4px 0 14px; }
html body.mr-os-portal-body .mr-dais-committee-logo { width: 30px; height: 30px; object-fit: contain; border-radius: 6px; background: #fff; border: 1px solid rgba(15, 23, 42, .08); flex: 0 0 auto; }
html body.mr-os-portal-body .mr-dais-committee strong { color: #0f172a; font-size: 1rem; }
/* Logo del comité junto al nombre en la tarjeta de perfil del sidebar (fondo oscuro). */
html body.mr-os-portal-body .mr-delegate-committee-name { display: inline-flex !important; align-items: center; gap: 6px; }
html body.mr-os-portal-body .mr-delegate-committee-logo { width: 20px; height: 20px; object-fit: contain; border-radius: 4px; background: #fff; padding: 1px; flex: 0 0 auto; }

/* 0.53 — Logo del producto MUN Revolution OS en el hero del delegado, con buen tamaño (no diminuto) */
html body.mr-os-portal-body .mr-delegate-hero { grid-template-columns: minmax(0, 1fr) 210px; }
html body.mr-os-portal-body .mr-delegate-brand-stack--single { padding: 16px 18px !important; }
html body.mr-os-portal-body .mr-delegate-brand-stack--single img {
	max-height: 100px !important;
	max-width: 100% !important;
	width: auto !important;
	padding: 0 !important;
}
@media (max-width: 720px) {
	html body.mr-os-portal-body .mr-delegate-brand-stack--single img { max-height: 84px !important; }
}

/* 0.54 — Perfil del pase escaneado (solo lectura) */
html body.mr-os-portal-body .mr-scanpass-card { max-width: 640px; }
html body.mr-os-portal-body .mr-scanpass-head { display: flex; align-items: center; gap: 16px; margin: 8px 0 18px; }
html body.mr-os-portal-body .mr-scanpass-photo { width: 84px; height: 84px; border-radius: 16px; object-fit: cover; border: 1px solid rgba(15,23,42,.12); flex: 0 0 auto; }
html body.mr-os-portal-body .mr-scanpass-id h1 { margin: 0 !important; font-size: 1.6rem; }
html body.mr-os-portal-body .mr-scanpass-code { display: inline-block; margin-top: 6px; background: #fff7db; border-radius: 999px; padding: 2px 12px; font-weight: 800; font-size: .85rem; color: #7a5c05; }
html body.mr-os-portal-body .mr-scanpass-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 12px; margin: 6px 0 16px; }
html body.mr-os-portal-body .mr-scanpass-grid > div { background: rgba(15,23,42,.03); border: 1px solid rgba(15,23,42,.08); border-radius: 12px; padding: 10px 12px; }
html body.mr-os-portal-body .mr-scanpass-grid span { display: block; font-size: .72rem; text-transform: uppercase; letter-spacing: .04em; color: rgba(15,23,42,.5); font-weight: 700; margin-bottom: 3px; }
html body.mr-os-portal-body .mr-scanpass-grid strong { font-size: .95rem; color: #0f172a; }

/* 0.55 — Botón de acreditar en el pase escaneado */
html body.mr-os-portal-body .mr-scanpass-accredit { margin: 4px 0 8px; }
html body.mr-os-portal-body .mr-scanpass-accredit button {
	background: #0D1E46 !important;
	color: #fff !important;
	border: none !important;
	border-radius: 12px !important;
	padding: 12px 22px !important;
	font-weight: 800 !important;
	font-size: .95rem !important;
	cursor: pointer;
	width: 100%;
}
html body.mr-os-portal-body .mr-scanpass-accredit button:hover { background: #254285 !important; }

/* 0.59 — Chats oficiales por sala (comité, general, mesas y staff) */
html body.mr-os-portal-body .mr-groupchat-app {
	display: grid !important;
	grid-template-columns: minmax(260px, 340px) minmax(0, 1fr);
	min-height: 680px;
	overflow: hidden;
	padding: 0 !important;
}
html body.mr-os-portal-body .mr-groupchat-rooms {
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: rgba(248, 250, 252, .72);
	border-right: 1px solid rgba(15, 23, 42, .08);
}
html body.mr-os-portal-body .mr-groupchat-rooms > h3 {
	margin: 0 !important;
	padding: 18px 18px 10px !important;
	font-size: .96rem !important;
	color: #0f172a !important;
}
html body.mr-os-portal-body .mr-groupchat-room-list {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 0 10px 16px;
	overflow-y: auto;
	max-height: 650px;
}
html body.mr-os-portal-body .mr-groupchat-room {
	display: grid !important;
	grid-template-columns: 42px minmax(0, 1fr) auto;
	align-items: center;
	gap: 10px;
	padding: 10px 12px !important;
	border: 1px solid transparent;
	border-radius: 16px;
	color: #0f172a !important;
	text-decoration: none !important;
	transition: background .15s ease, border-color .15s ease, transform .15s ease;
}
html body.mr-os-portal-body .mr-groupchat-room:hover {
	background: #fff;
	border-color: rgba(15, 23, 42, .08);
	transform: translateY(-1px);
}
html body.mr-os-portal-body .mr-groupchat-room.is-active {
	background: #fff;
	border-color: rgba(37, 66, 133, .18);
	box-shadow: 0 10px 24px rgba(13, 30, 70, .07);
}
html body.mr-os-portal-body .mr-groupchat-room-avatar {
	width: 42px;
	height: 42px;
	border-radius: 14px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #0d1e46;
	color: #fff;
	font-size: 1.15rem;
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, .16);
}
html body.mr-os-portal-body .mr-groupchat-room-copy {
	display: flex;
	flex-direction: column;
	gap: 2px;
	min-width: 0;
}
html body.mr-os-portal-body .mr-groupchat-room-copy strong {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: #0f172a;
	font-size: .9rem;
}
html body.mr-os-portal-body .mr-groupchat-room-copy small {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	color: rgba(15, 23, 42, .54);
	font-size: .76rem;
}
html body.mr-os-portal-body .mr-groupchat-room .mr-badge-count {
	align-self: start;
	min-width: 20px;
	height: 20px;
	border-radius: 999px;
	background: #dc2626;
	color: #fff;
	font-size: .72rem;
	font-weight: 800;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0 6px;
}
html body.mr-os-portal-body .mr-groupchat-main {
	display: flex;
	flex-direction: column;
	min-width: 0;
	background: linear-gradient(180deg, #fff, #f8fafc);
}
html body.mr-os-portal-body .mr-groupchat-head {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	justify-content: space-between;
	gap: 14px;
	padding: 16px 18px;
	border-bottom: 1px solid rgba(15, 23, 42, .08);
	background: rgba(255, 255, 255, .78);
}
html body.mr-os-portal-body .mr-groupchat-head h3 {
	margin: 0 !important;
	font-size: 1.05rem !important;
	color: #0f172a !important;
}
html body.mr-os-portal-body .mr-groupchat-head p {
	margin: 2px 0 0 !important;
	color: rgba(15, 23, 42, .56);
	font-size: .82rem;
}
html body.mr-os-portal-body .mr-groupchat-moderate {
	display: flex;
	align-items: center;
	gap: 8px;
	margin: 0;
	flex-wrap: wrap;
	justify-content: flex-end;
}
html body.mr-os-portal-body .mr-groupchat-moderate select,
html body.mr-os-portal-body .mr-groupchat-moderate input {
	min-height: 38px !important;
	border-radius: 999px !important;
	padding: 7px 12px !important;
	font-size: .82rem !important;
}
html body.mr-os-portal-body .mr-groupchat-moderate button {
	min-height: 38px !important;
	border-radius: 999px !important;
	padding: 7px 14px !important;
	font-size: .82rem !important;
}
html body.mr-os-portal-body .mr-groupchat-scroll {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 10px;
	padding: 20px !important;
	overflow-y: auto;
	max-height: 610px;
	background:
		linear-gradient(180deg, rgba(255, 255, 255, .82), rgba(248, 250, 252, .92)),
		repeating-linear-gradient(45deg, rgba(37, 66, 133, .03) 0 1px, transparent 1px 14px);
}
html body.mr-os-portal-body .mr-groupchat-message {
	display: flex;
	align-items: flex-end;
	gap: 8px;
	max-width: 76%;
	min-width: 0; /* permite que la burbuja encoja en móvil (si no, el texto parte palabra por palabra) */
}
/* Foto del remitente: avatar de tamaño fijo. Sin esto la imagen se renderiza a tamaño real y en flexbox
   (min-width:auto) NO encoge → se traga el ancho y aplasta el texto. Era el bug de la vista móvil. */
html body.mr-os-portal-body .mr-groupchat-message > img {
	flex: 0 0 auto;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	object-fit: cover;
	border: 1px solid rgba(15, 23, 42, .12);
	align-self: flex-end;
}
html body.mr-os-portal-body .mr-groupchat-message.is-own {
	align-self: flex-end;
	justify-content: flex-end;
}
/* Red de seguridad móvil: imágenes dentro de mensajes/anuncios/documentos nunca desbordan (sin tocar logos/avatares). */
html body.mr-os-portal-body .mr-groupchat-body img,
html body.mr-os-portal-body .mr-chat-msg img,
html body.mr-os-portal-body .mr-token-list article img,
html body.mr-os-portal-body .mr-doc-body img { max-width: 100%; height: auto; }
html body.mr-os-portal-body .mr-groupchat-message.is-other {
	align-self: flex-start;
	justify-content: flex-start;
}
html body.mr-os-portal-body .mr-groupchat-bubble {
	padding: 10px 12px;
	border-radius: 16px;
	background: #fff;
	border: 1px solid rgba(15, 23, 42, .10);
	box-shadow: 0 8px 22px rgba(13, 30, 70, .06);
	color: #0f172a;
	min-width: 210px;
}
html body.mr-os-portal-body .mr-groupchat-message.is-own .mr-groupchat-bubble {
	background: linear-gradient(180deg, #315fd2, #2448a7);
	color: #fff;
	border-color: rgba(36, 72, 167, .45);
	border-bottom-right-radius: 5px;
}
html body.mr-os-portal-body .mr-groupchat-message.is-other .mr-groupchat-bubble {
	border-bottom-left-radius: 5px;
}
html body.mr-os-portal-body .mr-groupchat-message.is-deleted .mr-groupchat-bubble {
	opacity: .7;
	font-style: italic;
}
html body.mr-os-portal-body .mr-groupchat-bubble header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 5px;
	font-size: .76rem;
	color: rgba(15, 23, 42, .55);
}
html body.mr-os-portal-body .mr-groupchat-message.is-own .mr-groupchat-bubble header {
	color: rgba(255, 255, 255, .78);
}
html body.mr-os-portal-body .mr-groupchat-bubble header strong {
	color: inherit;
	font-weight: 800;
}
html body.mr-os-portal-body .mr-groupchat-bubble header time {
	white-space: nowrap;
	font-size: .72rem;
}
html body.mr-os-portal-body .mr-groupchat-body {
	font-size: .94rem;
	line-height: 1.46;
	word-break: break-word;
}
html body.mr-os-portal-body .mr-groupchat-body p {
	margin: 0 0 6px !important;
}
html body.mr-os-portal-body .mr-groupchat-body p:last-child {
	margin-bottom: 0 !important;
}
html body.mr-os-portal-body .mr-groupchat-body a {
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 2px;
	font-weight: 750;
}
html body.mr-os-portal-body .mr-groupchat-actions {
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
	margin-top: 8px;
}
html body.mr-os-portal-body .mr-groupchat-actions form {
	display: inline-flex;
	margin: 0;
}
html body.mr-os-portal-body .mr-groupchat-actions button {
	min-width: 30px !important;
	min-height: 30px !important;
	padding: 3px 8px !important;
	border-radius: 999px !important;
	background: rgba(255, 255, 255, .68) !important;
	border: 1px solid rgba(15, 23, 42, .12) !important;
	color: #0f172a !important;
	font-size: .98rem !important;
}
html body.mr-os-portal-body .mr-groupchat-actions button.is-active {
	background: #fff7db !important;
	border-color: #d4af37 !important;
}
html body.mr-os-portal-body .mr-groupchat-delete button {
	color: #b42318 !important;
	font-size: .75rem !important;
	font-weight: 800 !important;
}
html body.mr-os-portal-body .mr-groupchat-reads {
	margin-top: 8px;
	font-size: .75rem;
	color: rgba(15, 23, 42, .56);
}
html body.mr-os-portal-body .mr-groupchat-message.is-own .mr-groupchat-reads {
	color: rgba(255, 255, 255, .75);
}
html body.mr-os-portal-body .mr-groupchat-reads summary {
	cursor: pointer;
	font-weight: 750;
}
html body.mr-os-portal-body .mr-groupchat-reads ul {
	margin: 6px 0 0;
	padding-left: 16px;
}
html body.mr-os-portal-body .mr-groupchat-compose {
	display: flex;
	align-items: flex-end;
	gap: 10px;
	margin: 0;
	padding: 14px 16px;
	border-top: 1px solid rgba(15, 23, 42, .08);
	background: rgba(255, 255, 255, .86);
}
html body.mr-os-portal-body .mr-groupchat-compose textarea {
	flex: 1;
	min-height: 44px !important;
	max-height: 132px;
	border-radius: 22px !important;
	padding: 11px 15px !important;
	resize: vertical;
	font-size: .94rem !important;
	line-height: 1.35;
}
html body.mr-os-portal-body .mr-groupchat-compose button {
	flex: 0 0 auto;
	border-radius: 999px !important;
	padding: 11px 20px !important;
	min-height: 44px !important;
	font-weight: 800 !important;
}
html body.mr-os-portal-body .mr-delegate-room-bubbles {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	padding: 2px 0 12px;
	scrollbar-width: thin;
}
html body.mr-os-portal-body .mr-delegate-room-bubbles .mr-chip {
	flex: 0 0 auto;
	position: relative;
	text-decoration: none !important;
}
html body.mr-os-portal-body .mr-delegate-room-bubbles .mr-chip.is-active {
	background: #0d1e46 !important;
	color: #fff !important;
	border-color: #0d1e46 !important;
}
html body.mr-os-portal-body .mr-delegate-groupchat-list {
	max-height: 520px;
	margin-bottom: 12px !important;
}
html body.mr-os-portal-body .mr-delegate-groupchat-reactions {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	margin-top: 8px;
}
html body.mr-os-portal-body .mr-delegate-groupchat-reactions form {
	margin: 0;
}
html body.mr-os-portal-body .mr-delegate-groupchat-reactions button {
	min-width: 30px !important;
	min-height: 30px !important;
	border-radius: 999px !important;
	padding: 3px 8px !important;
	background: rgba(255, 255, 255, .75) !important;
	border: 1px solid rgba(15, 23, 42, .12) !important;
	color: #0f172a !important;
}
html body.mr-os-portal-body .mr-delegate-groupchat-reactions button.is-active {
	background: #fff7db !important;
	border-color: #d4af37 !important;
}

@media (max-width: 900px) {
	html body.mr-os-portal-body .mr-groupchat-app {
		grid-template-columns: 1fr;
		min-height: 0;
	}
	html body.mr-os-portal-body .mr-groupchat-rooms {
		border-right: 0;
		border-bottom: 1px solid rgba(15, 23, 42, .08);
	}
	html body.mr-os-portal-body .mr-groupchat-room-list {
		display: grid;
		grid-auto-flow: column;
		grid-auto-columns: minmax(230px, 82%);
		overflow-x: auto;
		overflow-y: hidden;
		max-height: none;
		padding-bottom: 12px;
	}
	html body.mr-os-portal-body .mr-groupchat-head {
		align-items: flex-start;
		flex-direction: column;
	}
	html body.mr-os-portal-body .mr-groupchat-moderate {
		justify-content: flex-start;
		width: 100%;
	}
	html body.mr-os-portal-body .mr-groupchat-scroll {
		max-height: 58vh;
		padding: 14px !important;
	}
	html body.mr-os-portal-body .mr-groupchat-message {
		max-width: 92%;
	}
	html body.mr-os-portal-body .mr-groupchat-compose {
		position: sticky;
		bottom: 0;
	}
}

@media (max-width: 560px) {
	html body.mr-os-portal-body .mr-groupchat-compose {
		align-items: stretch;
		flex-direction: column;
	}
	html body.mr-os-portal-body .mr-groupchat-compose button {
		width: 100%;
	}
	html body.mr-os-portal-body .mr-groupchat-bubble {
		min-width: 0;
	}
	html body.mr-os-portal-body .mr-groupchat-bubble header {
		align-items: flex-start;
		flex-direction: column;
		gap: 2px;
	}
}

/* ── Documentos y guías del delegado (0.60): tarjetas con ícono + color por tipo + video embebido ── */
/* Tarjetas de documentos como CUADRADOS en grilla (más estético que rectángulos largos, 0.72) */
html body.mr-os-portal-body .mr-doc-list { display: grid; gap: 14px; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); align-items: start; }
html body.mr-os-portal-body .mr-doc-card {
	display: flex;
	flex-direction: column;
	gap: 10px;
	background: #fff;
	border: 1px solid #e6ebf3;
	border-radius: 18px;
	padding: 16px;
	min-height: 148px;
	box-shadow: 0 4px 14px rgba(13,30,70,.05);
	transition: box-shadow .16s ease, transform .16s ease;
}
html body.mr-os-portal-body .mr-doc-card:hover { box-shadow: 0 10px 26px rgba(13,30,70,.10); transform: translateY(-1px); }
html body.mr-os-portal-body .mr-doc-icon {
	flex: 0 0 auto;
	width: 46px; height: 46px;
	display: flex; align-items: center; justify-content: center;
	font-size: 23px;
	background: #eef4ff;
	border-radius: 14px;
}
html body.mr-os-portal-body .mr-doc-body { display: flex; flex-direction: column; gap: 3px; min-width: 0; flex: 1; }
html body.mr-os-portal-body .mr-doc-body strong { color: #0f172a; font-size: .98rem; line-height: 1.3; }
html body.mr-os-portal-body .mr-doc-type { color: #94a3b8; font-size: .72rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; }
html body.mr-os-portal-body .mr-doc-open {
	align-self: flex-start;
	margin-top: auto;
	font-weight: 800;
	font-size: .9rem;
	color: #0D1E46 !important;
	text-decoration: none !important;
}
html body.mr-os-portal-body .mr-doc-open:hover { text-decoration: underline !important; }
html body.mr-os-portal-body .mr-doc-videowrap { margin-top: 8px; }
html body.mr-os-portal-body .mr-doc-videowrap summary { cursor: pointer; font-weight: 800; color: #b91c1c; list-style: none; }
html body.mr-os-portal-body .mr-doc-videowrap summary::-webkit-details-marker { display: none; }
html body.mr-os-portal-body .mr-doc-videowrap summary::before { content: "\25b6"; margin-right: 6px; font-size: .8em; }
html body.mr-os-portal-body .mr-doc-videowrap[open] summary::before { content: "\25bc"; }
html body.mr-os-portal-body .mr-doc-videowrap .mr-delegate-video-frame { margin-top: 8px; max-width: 100%; }
/* Un doc con video expandido puede ocupar toda la fila para que el reproductor no quede diminuto. */
html body.mr-os-portal-body .mr-doc-card:has(.mr-doc-videowrap[open]) { grid-column: 1 / -1; }
/* Acento de color por tipo (borde izquierdo + fondo del ícono) */
html body.mr-os-portal-body .mr-doc-card--video { border-left-color: #b91c1c; }
html body.mr-os-portal-body .mr-doc-card--video .mr-doc-icon { background: #fdeaea; }
html body.mr-os-portal-body .mr-doc-card--pdf { border-left-color: #dc2626; }
html body.mr-os-portal-body .mr-doc-card--pdf .mr-doc-icon { background: #fdeaea; }
html body.mr-os-portal-body .mr-doc-card--image { border-left-color: #7c3aed; }
html body.mr-os-portal-body .mr-doc-card--image .mr-doc-icon { background: #f1eafe; }
html body.mr-os-portal-body .mr-doc-card--sheet { border-left-color: #059669; }
html body.mr-os-portal-body .mr-doc-card--sheet .mr-doc-icon { background: #e7f7f0; }
html body.mr-os-portal-body .mr-doc-card--slides { border-left-color: #ea580c; }
html body.mr-os-portal-body .mr-doc-card--slides .mr-doc-icon { background: #fdeee2; }
html body.mr-os-portal-body .mr-doc-card--doc { border-left-color: #2563eb; }
html body.mr-os-portal-body .mr-doc-card--doc .mr-doc-icon { background: #e8f0ff; }

/* ============================================================
   Chat flotante (0.61) — botón 3D tipo app social + panel iframe
   ============================================================ */
html body.mr-os-portal-body .mr-chat-fab {
	position: fixed; right: 20px; bottom: 20px; z-index: 9999;
	width: 60px; height: 60px; border: 0; border-radius: 50%; cursor: pointer;
	background: radial-gradient(circle at 30% 25%, #3b82f6 0%, #2563eb 45%, #1d4ed8 100%);
	box-shadow: 0 10px 24px rgba(37,99,235,.45), 0 3px 8px rgba(0,0,0,.25), inset 0 2px 4px rgba(255,255,255,.35);
	display: flex; align-items: center; justify-content: center;
	transition: transform .18s ease, box-shadow .18s ease;
}
html body.mr-os-portal-body .mr-chat-fab:hover { transform: translateY(-2px) scale(1.05); box-shadow: 0 14px 30px rgba(37,99,235,.55), 0 4px 10px rgba(0,0,0,.28); }
html body.mr-os-portal-body .mr-chat-fab:active { transform: translateY(0) scale(.98); }
html body.mr-os-portal-body .mr-chat-fab-ico { font-size: 28px; line-height: 1; filter: drop-shadow(0 1px 1px rgba(0,0,0,.25)); }
/* Badge de no leídos (notificación) sobre el botón flotante */
html body.mr-os-portal-body .mr-chat-fab-badge {
	position: absolute; top: -2px; right: -2px; min-width: 20px; height: 20px; padding: 0 5px;
	border-radius: 999px; background: #ef4444; color: #fff; font-size: 11px; font-weight: 700;
	display: flex; align-items: center; justify-content: center; line-height: 1;
	border: 2px solid #fff; box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
html body.mr-os-portal-body .mr-chat-fab-badge[hidden] { display: none; }

html body.mr-os-portal-body .mr-chat-dock {
	position: fixed; right: 20px; bottom: 92px; z-index: 9999;
	width: 380px; max-width: calc(100vw - 32px); height: 560px; max-height: calc(100vh - 120px);
	background: #fff; border-radius: 18px; overflow: hidden;
	box-shadow: 0 24px 60px rgba(15,23,42,.35), 0 6px 16px rgba(15,23,42,.18);
	display: none; flex-direction: column;
}
html body.mr-os-portal-body .mr-chat-dock.is-open { display: flex; animation: mr-chat-pop .16s ease; }
@keyframes mr-chat-pop { from { opacity: 0; transform: translateY(12px) scale(.98); } to { opacity: 1; transform: none; } }
html body.mr-os-portal-body .mr-chat-dock-head {
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	padding: 12px 16px; color: #fff;
	background: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);
}
html body.mr-os-portal-body .mr-chat-dock-head strong { font-size: 15px; letter-spacing: .2px; }
html body.mr-os-portal-body .mr-chat-dock-close {
	background: rgba(255,255,255,.18); color: #fff; border: 0; border-radius: 8px;
	width: 30px; height: 30px; font-size: 15px; cursor: pointer; line-height: 1;
}
html body.mr-os-portal-body .mr-chat-dock-close:hover { background: rgba(255,255,255,.32); }
html body.mr-os-portal-body .mr-chat-dock-body { flex: 1 1 auto; min-height: 0; position: relative; display: flex; flex-direction: column; }
html body.mr-os-portal-body .mr-chat-dock-body.is-loading { opacity: .55; pointer-events: none; }
html body.mr-os-portal-body .mr-chat-dock-loading { margin: auto; color: #6b7280; font-size: 13px; padding: 24px; text-align: center; }

/* ≤1100px la navegación pasa a barra INFERIOR fija (~100px). El botón flotante y el panel deben quedar
   POR ENCIMA de esa barra para no taparla (bug reportado por Hegel). */
@media (max-width: 1100px) {
	html body.mr-os-portal-body .mr-chat-fab { right: 16px; bottom: calc(96px + env(safe-area-inset-bottom)); }
	html body.mr-os-portal-body .mr-chat-dock { bottom: calc(164px + env(safe-area-inset-bottom)); max-height: calc(100vh - 200px); }
}
@media (max-width: 640px) {
	/* En teléfono el panel es hoja inferior; deja libre la barra de navegación de abajo. */
	html body.mr-os-portal-body .mr-chat-dock {
		right: 0; left: 0; width: 100%; max-width: 100%;
		bottom: calc(84px + env(safe-area-inset-bottom));
		height: auto; top: 8vh; max-height: none; border-radius: 18px 18px 0 0;
	}
}

/* Vista del widget (cargada por AJAX en el panel) — reutiliza burbujas .mr-chat-* */
html body.mr-os-portal-body .mr-cw { display: flex; flex-direction: column; height: 100%; min-height: 0; background: #f5f7fb; }
html body.mr-os-portal-body .mr-cw-rooms {
	display: flex; gap: 8px; padding: 10px 12px; overflow-x: auto; flex: 0 0 auto;
	background: #fff; border-bottom: 1px solid #e6eaf2; -webkit-overflow-scrolling: touch;
}
html body.mr-os-portal-body .mr-cw-room {
	flex: 0 0 auto; text-decoration: none; color: #1f2937; background: #eef2fb;
	border: 1px solid #e0e6f4; border-radius: 12px; padding: 6px 12px; min-width: 96px;
	display: flex; flex-direction: column; line-height: 1.25;
}
html body.mr-os-portal-body .mr-cw-room strong { font-size: 13px; }
html body.mr-os-portal-body .mr-cw-room span { font-size: 11px; color: #6b7280; }
html body.mr-os-portal-body .mr-cw-room.is-active { background: #2563eb; border-color: #2563eb; }
html body.mr-os-portal-body .mr-cw-room.is-active strong,
html body.mr-os-portal-body .mr-cw-room.is-active span { color: #fff; }
html body.mr-os-portal-body .mr-cw-thread { flex: 1 1 auto; min-height: 0; overflow-y: auto; padding: 14px 12px; }
html body.mr-os-portal-body .mr-cw-empty { color: #6b7280; text-align: center; padding: 24px 12px; font-size: 13px; }
html body.mr-os-portal-body .mr-cw-reacts { display: flex; flex-wrap: wrap; gap: 2px; margin-top: 4px; }
html body.mr-os-portal-body .mr-cw-reacts form { margin: 0; }
html body.mr-os-portal-body .mr-cw-reacts button {
	background: transparent; border: 0; cursor: pointer; font-size: 15px; line-height: 1;
	padding: 2px 4px; border-radius: 8px; opacity: .55; transition: opacity .12s ease, transform .12s ease;
}
html body.mr-os-portal-body .mr-cw-reacts button:hover { opacity: 1; transform: scale(1.2); }
html body.mr-os-portal-body .mr-cw-reacts button.is-active { opacity: 1; background: #e8f0ff; }
html body.mr-os-portal-body .mr-cw-compose {
	flex: 0 0 auto; display: flex; gap: 8px; padding: 10px 12px;
	background: #fff; border-top: 1px solid #e6eaf2;
}
html body.mr-os-portal-body .mr-cw-compose textarea {
	flex: 1 1 auto; resize: none; border: 1px solid #d6deec; border-radius: 12px;
	padding: 8px 12px; font: inherit; font-size: 14px; max-height: 96px;
}
html body.mr-os-portal-body .mr-cw-compose button {
	flex: 0 0 auto; border: 0; border-radius: 12px; padding: 0 16px; cursor: pointer;
	background: #2563eb; color: #fff; font-weight: 600;
}
html body.mr-os-portal-body .mr-cw-compose button[disabled] { background: #9db4e6; cursor: not-allowed; }

/* ============================================================
   Reacciones en el hilo 1:1 delegado↔equipo (0.62)
   ============================================================ */
html body.mr-os-portal-body .mr-dm-reacts { display: flex; align-items: center; gap: 6px; margin-top: 4px; position: relative; }
html body.mr-os-portal-body .mr-dm-react-current {
	font-size: 15px; line-height: 1; background: #fff; border: 1px solid #e3e8f2;
	border-radius: 999px; padding: 2px 7px; box-shadow: 0 1px 2px rgba(15,23,42,.08);
}
html body.mr-os-portal-body .mr-dm-react-picker { display: flex; gap: 1px; opacity: .5; transition: opacity .12s ease; }
html body.mr-os-portal-body .mr-chat-msg:hover .mr-dm-react-picker,
html body.mr-os-portal-body .mr-dm-react-picker:focus-within { opacity: 1; }
html body.mr-os-portal-body .mr-dm-react-picker form { margin: 0; }
html body.mr-os-portal-body .mr-dm-react-picker button {
	background: transparent; border: 0; cursor: pointer; font-size: 15px; line-height: 1;
	padding: 1px 3px; border-radius: 8px; transition: transform .12s ease, background .12s ease;
}
html body.mr-os-portal-body .mr-dm-react-picker button:hover { transform: scale(1.25); }
html body.mr-os-portal-body .mr-dm-react-picker button.is-active { background: #e8f0ff; }

/* 0.65 — Barra de reacciones compartida de chats (grupo + comunicados): pills + selector "＋" tipo red social
   y detalle "N reacciones / Visto por N" para roles con permiso. Markup en mr_os_group_reaction_bar(). */
html body.mr-os-portal-body .mr-reactbar { margin-top: 6px; display: flex; flex-direction: column; gap: 4px; }
html body.mr-os-portal-body .mr-reactbar-row { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
html body.mr-os-portal-body .mr-react-pillform { margin: 0; }
html body.mr-os-portal-body .mr-react-pill {
	display: inline-flex; align-items: center; gap: 4px;
	background: rgba(15,23,42,.06); border: 1px solid rgba(15,23,42,.10);
	border-radius: 999px; padding: 2px 9px; font-size: .8rem; line-height: 1.4;
	cursor: pointer; color: #0f172a; transition: transform .1s ease, background .15s ease;
}
html body.mr-os-portal-body .mr-react-pill:hover { transform: scale(1.06); }
html body.mr-os-portal-body .mr-react-pill.is-mine { background: rgba(37,99,235,.16); border-color: rgba(37,99,235,.45); font-weight: 700; }
html body.mr-os-portal-body .mr-react-emoji { font-size: .95rem; line-height: 1; }
html body.mr-os-portal-body .mr-react-n { font-variant-numeric: tabular-nums; }
/* Botón "＋" para reaccionar y su paleta emergente */
html body.mr-os-portal-body .mr-react-add { position: relative; display: inline-flex; }
html body.mr-os-portal-body .mr-react-add-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 1px;
	width: auto; min-width: 30px; height: 26px; padding: 0 8px;
	background: rgba(15,23,42,.05); border: 1px solid rgba(15,23,42,.12);
	border-radius: 999px; cursor: pointer; color: #334155; font-size: .95rem; line-height: 1;
}
html body.mr-os-portal-body .mr-react-add-btn:hover { background: rgba(15,23,42,.10); }
html body.mr-os-portal-body .mr-react-add-plus { font-size: .72rem; font-weight: 800; margin-left: 1px; }
html body.mr-os-portal-body .mr-react-menu {
	display: none; position: absolute; bottom: calc(100% + 6px); left: 0; z-index: 60;
	background: #fff; border: 1px solid rgba(15,23,42,.14); border-radius: 16px;
	box-shadow: 0 12px 30px rgba(13,30,70,.18); padding: 4px 6px; gap: 2px;
	/* Red de seguridad móvil: nunca desbordar el viewport aunque la burbuja esté pegada al borde. */
	flex-wrap: wrap; max-width: calc(100vw - 40px);
}
html body.mr-os-portal-body .mr-react-add.is-open .mr-react-menu { display: flex; }
html body.mr-os-portal-body .mr-react-menu form { margin: 0; }
html body.mr-os-portal-body .mr-react-menu-btn {
	background: transparent; border: 0; cursor: pointer; font-size: 1.25rem; line-height: 1;
	padding: 4px 6px; border-radius: 10px; transition: transform .1s ease, background .12s ease;
}
html body.mr-os-portal-body .mr-react-menu-btn:hover { transform: scale(1.2); background: rgba(15,23,42,.06); }
html body.mr-os-portal-body .mr-react-menu-btn.is-mine { background: rgba(37,99,235,.16); }
/* Detalle "N reacciones" / "Visto por N" (solo roles con permiso) */
html body.mr-os-portal-body .mr-engage-detail { margin-top: 2px; }
html body.mr-os-portal-body .mr-engage-detail > summary { cursor: pointer; list-style: none; font-size: .72rem; color: rgba(15,23,42,.55); font-weight: 600; }
html body.mr-os-portal-body .mr-engage-detail > summary::-webkit-details-marker { display: none; }
html body.mr-os-portal-body .mr-engage-list { display: flex; flex-wrap: wrap; gap: 4px 10px; margin-top: 4px; }
html body.mr-os-portal-body .mr-engage-list span { font-size: .74rem; color: rgba(15,23,42,.7); }

/* 0.66 — Separación clara Equipo vs Staff + Mesa Directiva por comité (panel interno).
   Tarjeta "scope note" que explica y enlaza ambas secciones, y parrilla de Mesas agrupada por comité.
   Todo sobre panel blanco (.mr-glass-panel = #fff), por eso las cartas internas usan gris muy claro. */
html body.mr-os-portal-body .mr-scope-note { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: 14px 0 18px; }
html body.mr-os-portal-body .mr-scope-note-item {
	display: flex; gap: 12px; align-items: flex-start; padding: 13px 15px; border-radius: 16px;
	border: 1px solid rgba(15,23,42,.12); background: #f8fafc; text-decoration: none; color: inherit;
}
html body.mr-os-portal-body .mr-scope-note-item.is-active { border-color: rgba(37,99,235,.45); background: rgba(37,99,235,.08); }
html body.mr-os-portal-body a.mr-scope-note-link { transition: transform .12s ease, box-shadow .15s ease, background .15s ease; }
html body.mr-os-portal-body a.mr-scope-note-link:hover { transform: translateY(-2px); box-shadow: 0 10px 26px rgba(13,30,70,.14); background: #fff; }
html body.mr-os-portal-body .mr-scope-note-ico { font-size: 1.5rem; line-height: 1; flex: 0 0 auto; }
html body.mr-os-portal-body .mr-scope-note-item > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
html body.mr-os-portal-body .mr-scope-note-item strong { font-size: .92rem; color: #0f172a; }
html body.mr-os-portal-body .mr-scope-note-item span { font-size: .8rem; color: rgba(15,23,42,.65); line-height: 1.45; }

/* Mesa Directiva por comité (panel de Staff). Clases .mr-dais-head* propias para NO chocar con la
   .mr-dais-committee del portal del delegado. Nombre del comité en <div> (no <h3>) para evitar la regla
   .mr-glass-panel h3 !important que lo hacía gigante. Nombre y rol de cada miembro SIEMPRE visibles (sin recortar). */
html body.mr-os-portal-body .mr-dais-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 14px; margin-top: 14px; }
html body.mr-os-portal-body .mr-dais-card { border: 1px solid rgba(15,23,42,.10); border-radius: 16px; background: #f8fafc; padding: 16px; }
html body.mr-os-portal-body .mr-dais-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 8px; margin: 0 0 12px; }
html body.mr-os-portal-body .mr-dais-head-name { font-size: 1rem; font-weight: 700; color: #0f172a; line-height: 1.25; min-width: 0; }
html body.mr-os-portal-body .mr-dais-head-count { font-style: normal; font-size: .72rem; font-weight: 700; color: #1d4ed8; background: rgba(37,99,235,.12); border-radius: 999px; padding: 2px 9px; flex: 0 0 auto; }
html body.mr-os-portal-body .mr-dais-members { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
html body.mr-os-portal-body .mr-dais-member { display: flex; align-items: flex-start; gap: 10px; min-width: 0; }
html body.mr-os-portal-body .mr-dais-avatar { width: 44px; height: 44px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; border: 1px solid rgba(15,23,42,.12); background: #e2e8f0; }
html body.mr-os-portal-body .mr-dais-id { display: flex; flex-direction: column; min-width: 0; gap: 3px; }
html body.mr-os-portal-body .mr-dais-name { font-size: .9rem; font-weight: 700; color: #0f172a; line-height: 1.25; }
html body.mr-os-portal-body .mr-dais-role { align-self: flex-start; font-size: .72rem; font-weight: 600; color: #1d4ed8; background: rgba(37,99,235,.1); border-radius: 999px; padding: 2px 9px; }
html body.mr-os-portal-body .mr-dais-email { font-size: .74rem; color: rgba(15,23,42,.55); word-break: break-word; }

/* Tarjetas de Staff (foto, nombre, correo, WhatsApp, rol/área). Sin columna de comité (los de mesa van arriba). */
html body.mr-os-portal-body .mr-staff-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 14px; margin-top: 14px; }
html body.mr-os-portal-body .mr-staff-card { border: 1px solid rgba(15,23,42,.10); border-radius: 16px; background: #f8fafc; padding: 16px; display: flex; flex-direction: column; gap: 10px; }
html body.mr-os-portal-body .mr-staff-card-head { display: flex; align-items: center; gap: 12px; min-width: 0; }
html body.mr-os-portal-body .mr-staff-avatar { width: 52px; height: 52px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; border: 1px solid rgba(15,23,42,.12); background: #e2e8f0; }
html body.mr-os-portal-body .mr-staff-id { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
html body.mr-os-portal-body .mr-staff-name { font-size: 1rem; font-weight: 700; color: #0f172a; line-height: 1.2; }
html body.mr-os-portal-body .mr-staff-badges { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
html body.mr-os-portal-body .mr-staff-hasuser, html body.mr-os-portal-body .mr-staff-nouser { font-size: .68rem; font-weight: 700; padding: 2px 8px; border-radius: 999px; }
html body.mr-os-portal-body .mr-staff-hasuser { color: #166534; background: rgba(22,101,52,.12); }
html body.mr-os-portal-body .mr-staff-nouser { color: #9a3412; background: rgba(154,52,18,.12); }
html body.mr-os-portal-body .mr-staff-meta { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
html body.mr-os-portal-body .mr-staff-meta li { display: flex; align-items: flex-start; gap: 8px; font-size: .82rem; color: #334155; min-width: 0; word-break: break-word; }
html body.mr-os-portal-body .mr-staff-meta-ico { flex: 0 0 auto; }
html body.mr-os-portal-body .mr-staff-meta a { color: #1d4ed8; text-decoration: none; word-break: break-word; }
html body.mr-os-portal-body .mr-staff-note { font-size: .74rem; color: rgba(15,23,42,.6); margin: 0; }
html body.mr-os-portal-body .mr-staff-note.mr-invite-error { color: #b91c1c; }
html body.mr-os-portal-body .mr-staff-actions { margin-top: 2px; }
html body.mr-os-portal-body .mr-staff-fn { border-top: 1px solid rgba(15,23,42,.08); padding-top: 8px; }
html body.mr-os-portal-body .mr-staff-fn > summary { cursor: pointer; font-size: .8rem; font-weight: 600; color: #1d4ed8; list-style: none; }
html body.mr-os-portal-body .mr-staff-fn > summary::-webkit-details-marker { display: none; }
html body.mr-os-portal-body .mr-staff-fn-form { display: flex; flex-direction: column; gap: 6px; margin-top: 8px; }

/* Visor de miembros de un chat de grupo (solo Admin/Secretaría). */
html body.mr-os-portal-body .mr-chat-members { margin-top: 4px; width: 100%; }
html body.mr-os-portal-body .mr-chat-members > summary { cursor: pointer; font-size: .8rem; font-weight: 600; color: #1d4ed8; list-style: none; }
html body.mr-os-portal-body .mr-chat-members > summary::-webkit-details-marker { display: none; }
html body.mr-os-portal-body .mr-chat-members-list { margin-top: 10px; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; max-height: 340px; overflow: auto; }
html body.mr-os-portal-body .mr-chat-member { display: flex; align-items: center; gap: 10px; min-width: 0; padding: 6px 8px; border-radius: 12px; background: #f8fafc; border: 1px solid rgba(15,23,42,.08); }
html body.mr-os-portal-body .mr-chat-member-avatar { width: 38px; height: 38px; border-radius: 50%; object-fit: cover; flex: 0 0 auto; border: 1px solid rgba(15,23,42,.12); background: #e2e8f0; }
html body.mr-os-portal-body .mr-chat-member-id { display: flex; flex-direction: column; min-width: 0; flex: 1 1 auto; }
html body.mr-os-portal-body .mr-chat-member-id strong { font-size: .82rem; color: #0f172a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body.mr-os-portal-body .mr-chat-member-id small { font-size: .72rem; color: rgba(15,23,42,.55); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body.mr-os-portal-body .mr-chat-member-role { flex: 0 0 auto; font-size: .68rem; font-weight: 600; color: #334155; background: rgba(15,23,42,.06); border: 1px solid rgba(15,23,42,.1); border-radius: 999px; padding: 2px 8px; white-space: nowrap; }

@media (max-width: 720px) {
	html body.mr-os-portal-body .mr-scope-note { grid-template-columns: 1fr; }
	html body.mr-os-portal-body .mr-dais-grid { grid-template-columns: 1fr; }
	html body.mr-os-portal-body .mr-staff-grid { grid-template-columns: 1fr; }
	html body.mr-os-portal-body .mr-chat-members-list { grid-template-columns: 1fr; }
}

/* 0.68 — Editor inline de miembro (rol + funciones), panel de Secretaría y realce del Secretario/a General. */
html body.mr-os-portal-body .mr-member-edit { margin-top: 8px; border-top: 1px dashed rgba(15,23,42,.14); padding-top: 8px; }
html body.mr-os-portal-body .mr-member-edit > summary { cursor: pointer; font-size: .78rem; font-weight: 600; color: #1d4ed8; list-style: none; }
html body.mr-os-portal-body .mr-member-edit > summary::-webkit-details-marker { display: none; }
html body.mr-os-portal-body .mr-member-edit-form { display: flex; flex-direction: column; gap: 8px; margin-top: 8px; }
html body.mr-os-portal-body .mr-member-edit-role { display: flex; flex-direction: column; gap: 3px; font-size: .78rem; color: #334155; }
html body.mr-os-portal-body .mr-member-edit-role select { width: 100%; max-width: 100%; }
html body.mr-os-portal-body .mr-member-edit-tasks { display: flex; flex-direction: column; gap: 5px; }
html body.mr-os-portal-body .mr-member-edit-tasks-title { font-size: .74rem; font-weight: 700; color: rgba(15,23,42,.6); }
html body.mr-os-portal-body .mr-sec-section .mr-dais-role { color: #7c3aed; background: rgba(124,58,237,.1); }
html body.mr-os-portal-body .mr-sec-card.is-general { border-color: rgba(124,58,237,.45); box-shadow: 0 0 0 1px rgba(124,58,237,.18) inset; }
html body.mr-os-portal-body .mr-sec-card.is-general .mr-dais-role { color: #fff; background: #7c3aed; }
html body.mr-os-portal-body .mr-leadership-sub { margin: 16px 0 4px; font-size: .78rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: rgba(15,23,42,.55); }
html body.mr-os-portal-body .mr-leadership-dir .mr-dais-grid { margin-top: 6px; }

/* ============================================================
   Hub de Mensajes unificado del delegado (0.70) — Equipo (1:1) + salas en una sola lista
   ============================================================ */
html body.mr-os-portal-body .mr-msghub { display: block; }
html body.mr-os-portal-body .mr-msghub-list {
	display: flex; flex-direction: row; gap: 8px; overflow-x: auto; padding-bottom: 8px;
	margin-bottom: 12px; -webkit-overflow-scrolling: touch;
}
html body.mr-os-portal-body .mr-msghub-item {
	flex: 0 0 auto; display: flex; align-items: center; gap: 10px; min-width: 180px; max-width: 240px;
	padding: 9px 12px; border-radius: 14px; text-decoration: none; background: #fff;
	border: 1px solid rgba(15,23,42,.12); box-shadow: 0 4px 12px rgba(13,30,70,.05); position: relative;
	transition: background .12s ease, border-color .12s ease;
}
html body.mr-os-portal-body .mr-msghub-item:hover { border-color: #93b4f0; }
html body.mr-os-portal-body .mr-msghub-item.is-active { background: #2563eb; border-color: #2563eb; }
html body.mr-os-portal-body .mr-msghub-item.is-active strong,
html body.mr-os-portal-body .mr-msghub-item.is-active span { color: #fff !important; }
html body.mr-os-portal-body .mr-msghub-item--team { background: #eef4ff; border-color: #cfe0fb; }
html body.mr-os-portal-body .mr-msghub-item--team.is-active { background: #2563eb; }
html body.mr-os-portal-body .mr-msghub-ava {
	flex: 0 0 auto; width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center;
	justify-content: center; font-size: 17px; background: rgba(37,99,235,.10); line-height: 1;
}
html body.mr-os-portal-body .mr-msghub-item.is-active .mr-msghub-ava { background: rgba(255,255,255,.22); }
html body.mr-os-portal-body .mr-msghub-copy { min-width: 0; display: flex; flex-direction: column; line-height: 1.25; }
html body.mr-os-portal-body .mr-msghub-copy strong { font-size: 13.5px; color: #0f172a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body.mr-os-portal-body .mr-msghub-copy span { font-size: 11.5px; color: #64748b; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
html body.mr-os-portal-body .mr-msghub-badge {
	position: absolute; top: -5px; right: -5px; min-width: 19px; height: 19px; padding: 0 5px;
	border-radius: 999px; background: #ef4444; color: #fff; font-size: 11px; font-weight: 700;
	display: flex; align-items: center; justify-content: center; border: 2px solid #fff;
}
html body.mr-os-portal-body .mr-msghub-thread { min-width: 0; }
html body.mr-os-portal-body .mr-msghub-thread-head {
	display: flex; flex-direction: column; gap: 1px; padding: 0 0 8px; margin-bottom: 10px;
	border-bottom: 1px solid rgba(15,23,42,.08);
}
html body.mr-os-portal-body .mr-msghub-thread-head strong { font-size: 15px; color: #0f172a; }
html body.mr-os-portal-body .mr-msghub-thread-head span { font-size: 12px; color: #64748b; }

/* Escritorio: dos columnas (lista | conversación) */
@media (min-width: 900px) {
	html body.mr-os-portal-body .mr-msghub { display: grid; grid-template-columns: minmax(230px, 300px) minmax(0, 1fr); gap: 18px; align-items: start; }
	html body.mr-os-portal-body .mr-msghub-list {
		flex-direction: column; overflow-x: visible; overflow-y: auto; max-height: 62vh;
		margin-bottom: 0; padding-bottom: 0; padding-right: 4px;
	}
	html body.mr-os-portal-body .mr-msghub-item { min-width: 0; max-width: none; }
}

/* ============================================================
   Hub interno unificado (0.70): salas fijadas arriba de los hilos privados en la lista del inbox
   ============================================================ */
html body.mr-os-portal-body .mr-chatapp-grouplabel {
	margin: 10px 6px 4px; font-size: 11px; font-weight: 700; letter-spacing: .04em;
	text-transform: uppercase; color: #94a3b8;
}
html body.mr-os-portal-body .mr-chatapp-grouplabel:first-child { margin-top: 2px; }
html body.mr-os-portal-body .mr-chatapp-item--room .mr-chatapp-avatar {
	background: rgba(37,99,235,.12); color: #1d4ed8;
}

/* ============================================================
   0.71: organización del bloque Secretaría/Mesa del pase QR (ritmo vertical consistente)
   ============================================================ */
html body.mr-os-portal-body .mr-delegate-dais-inline .mr-kicker { margin: 18px 0 8px !important; }
html body.mr-os-portal-body .mr-delegate-dais-inline .mr-kicker:first-child { margin-top: 0 !important; }
html body.mr-os-portal-body .mr-delegate-dais-inline .mr-delegate-dais-grid { margin: 0 0 4px !important; }
html body.mr-os-portal-body .mr-dais-committee { margin: 8px 0 10px !important; }

/* ============================================================
   Bubble flotante (0.71): conversación "Equipo" (1:1) con paridad a la sección Mensajes
   ============================================================ */
html body.mr-os-portal-body .mr-cw-room--team { background: #eef4ff; border-color: #cfe0fb; }
html body.mr-os-portal-body .mr-cw-room--team.is-active { background: #2563eb; border-color: #2563eb; }
html body.mr-os-portal-body .mr-cw-compose--team { flex-direction: column; align-items: stretch; gap: 6px; }
html body.mr-os-portal-body .mr-cw-target {
	border: 1px solid #d6deec; border-radius: 10px; padding: 6px 10px; font: inherit; font-size: 13px; background: #fff; color: #0f172a;
}
html body.mr-os-portal-body .mr-cw-compose-row { display: flex; gap: 8px; }
html body.mr-os-portal-body .mr-cw-compose-row textarea {
	flex: 1 1 auto; resize: none; border: 1px solid #d6deec; border-radius: 12px;
	padding: 8px 12px; font: inherit; font-size: 14px; max-height: 96px;
}
html body.mr-os-portal-body .mr-cw-compose-row button {
	flex: 0 0 auto; border: 0; border-radius: 12px; padding: 0 16px; cursor: pointer; background: #2563eb; color: #fff; font-weight: 600;
}

/* Sección "Mi foto" del portal del delegado (0.74): cambiar foto de perfil de forma persistente */
html body.mr-os-portal-body .mr-delegate-photo-manage-row { display: flex; gap: 18px; align-items: flex-start; flex-wrap: wrap; }
html body.mr-os-portal-body .mr-delegate-photo-current {
	width: 120px; height: 120px; border-radius: 20px; object-fit: cover;
	border: 1px solid rgba(15,23,42,.12); background: #eef2f9; flex: 0 0 auto;
}
html body.mr-os-portal-body .mr-delegate-photo-manage-body { flex: 1 1 260px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
html body.mr-os-portal-body .mr-delegate-photo-manage .mr-delegate-photo-form { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
html body.mr-os-portal-body .mr-delegate-photo-manage .mr-delegate-photo-form input[type="file"] { max-width: 100%; min-width: 0; flex: 1 1 200px; }

/* ============================================================================================
   0.75 — LIQUID GLASS (facelift Apple-style, pedido de Hegel: "transparencias tipo Apple",
   que el sistema no se perciba arcaico). CAPA 100% ADITIVA: solo fondo/borde/sombra/radio y
   micro-interacciones; NO cambia colores de texto (regla de contraste: sidebar interno OSCURO
   = texto claro, lado delegado CLARO = texto oscuro). Envuelta en @supports para que los
   navegadores sin backdrop-filter conserven los fondos sólidos actuales. Blur reducido en
   móvil (rendimiento GPU) y fallback sólido si el usuario prefiere menos transparencia.
   ============================================================================================ */
@supports ((-webkit-backdrop-filter: blur(2px)) or (backdrop-filter: blur(2px))) {
	/* Lienzo ambiental: lavados suaves de marca (azul/navy/dorado) para que el vidrio "lea". */
	html body.mr-os-portal-body {
		background:
			radial-gradient(1100px 750px at 88% -12%, rgba(37, 99, 235, 0.10), transparent 60%),
			radial-gradient(950px 700px at -8% 28%, rgba(246, 201, 69, 0.12), transparent 55%),
			radial-gradient(900px 650px at 55% 112%, rgba(13, 30, 70, 0.08), transparent 60%),
			#eef1f6 !important;
	}

	/* Paneles de vidrio: panel interno, tarjetas del delegado y login. */
	html body.mr-os-portal-body .mr-glass-panel,
	html body.mr-os-portal-body .mr-delegate-panel,
	html body.mr-os-portal-body .mr-confirm-card,
	html body.mr-os-portal-body .mr-login-card {
		background: rgba(255, 255, 255, 0.66) !important;
		-webkit-backdrop-filter: blur(22px) saturate(1.7);
		backdrop-filter: blur(22px) saturate(1.7);
		border: 1px solid rgba(255, 255, 255, 0.65) !important;
		box-shadow: 0 1px 2px rgba(13, 30, 70, 0.05), 0 14px 34px rgba(13, 30, 70, 0.10) !important;
		border-radius: 22px !important;
	}

	/* Sidebar interno: navy translúcido (el texto claro existente no se toca). */
	html body.mr-os-portal-body .mr-app-sidebar {
		background: linear-gradient(180deg, rgba(13, 30, 70, 0.92), rgba(13, 30, 70, 0.84)) !important;
		-webkit-backdrop-filter: blur(24px) saturate(1.5);
		backdrop-filter: blur(24px) saturate(1.5);
		border-right: 1px solid rgba(255, 255, 255, 0.08);
	}

	/* Topbar del panel: vidrio claro. */
	html body.mr-os-portal-body .mr-app-topbar {
		background: rgba(255, 255, 255, 0.60) !important;
		-webkit-backdrop-filter: blur(20px) saturate(1.6);
		backdrop-filter: blur(20px) saturate(1.6);
		border: 1px solid rgba(255, 255, 255, 0.60) !important;
		border-radius: 18px !important;
		box-shadow: 0 8px 24px rgba(13, 30, 70, 0.07) !important;
	}

	/* Sidebar del delegado (CLARO: su texto oscuro no se toca). */
	html body.mr-os-portal-body .mr-delegate-sidebar {
		-webkit-backdrop-filter: blur(18px) saturate(1.5);
		backdrop-filter: blur(18px) saturate(1.5);
	}

	/* Pestañas de subsecciones: chips de vidrio. */
	html body.mr-os-portal-body .mr-section-tabs a {
		background: rgba(255, 255, 255, 0.55);
		-webkit-backdrop-filter: blur(12px);
		backdrop-filter: blur(12px);
		border: 1px solid rgba(255, 255, 255, 0.65);
		border-radius: 999px;
		box-shadow: 0 2px 8px rgba(13, 30, 70, 0.05);
	}

	/* Chat flotante: dock de vidrio (el FAB conserva su color de marca). */
	html body.mr-os-portal-body .mr-chat-dock {
		background: rgba(255, 255, 255, 0.72) !important;
		-webkit-backdrop-filter: blur(24px) saturate(1.6);
		backdrop-filter: blur(24px) saturate(1.6);
		border: 1px solid rgba(255, 255, 255, 0.65) !important;
	}

	/* Cartas internas de secciones (Mesas, staff, scope-notes, miembros de chat): vidrio suave
	   sobre el panel (antes gris plano #f8fafc). */
	html body.mr-os-portal-body .mr-dais-card,
	html body.mr-os-portal-body .mr-staff-card,
	html body.mr-os-portal-body .mr-scope-note-item,
	html body.mr-os-portal-body .mr-chat-member {
		background: rgba(255, 255, 255, 0.55);
		border-color: rgba(13, 30, 70, 0.08);
	}

	/* Móvil: blur más liviano (GPU) — el efecto se mantiene, el scroll no se degrada. */
	@media (max-width: 720px) {
		html body.mr-os-portal-body .mr-glass-panel,
		html body.mr-os-portal-body .mr-delegate-panel,
		html body.mr-os-portal-body .mr-confirm-card,
		html body.mr-os-portal-body .mr-login-card { -webkit-backdrop-filter: blur(14px) saturate(1.5); backdrop-filter: blur(14px) saturate(1.5); border-radius: 18px !important; }
		html body.mr-os-portal-body .mr-app-sidebar { -webkit-backdrop-filter: blur(16px) saturate(1.4); backdrop-filter: blur(16px) saturate(1.4); }
		html body.mr-os-portal-body .mr-app-topbar { -webkit-backdrop-filter: blur(14px) saturate(1.4); backdrop-filter: blur(14px) saturate(1.4); }
	}
}

/* Si el usuario pide MENOS transparencia (accesibilidad), volver a superficies sólidas. */
@media (prefers-reduced-transparency: reduce) {
	html body.mr-os-portal-body .mr-glass-panel,
	html body.mr-os-portal-body .mr-delegate-panel,
	html body.mr-os-portal-body .mr-confirm-card,
	html body.mr-os-portal-body .mr-login-card { background: #ffffff !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
	html body.mr-os-portal-body .mr-app-sidebar { background: #0D1E46 !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
	html body.mr-os-portal-body .mr-app-topbar,
	html body.mr-os-portal-body .mr-chat-dock { background: #ffffff !important; -webkit-backdrop-filter: none; backdrop-filter: none; }
}

/* Micro-interacciones modernas (fuera del @supports: aplican siempre). Solo forma/sombra/movimiento. */
html body.mr-os-portal-body .mr-app-button,
html body.mr-os-portal-body .mr-app-form button,
html body.mr-os-portal-body .mr-inline-form button,
html body.mr-os-portal-body .mr-row-actions button,
html body.mr-os-portal-body .mr-chat-compose button,
html body.mr-os-portal-body .mr-chatapp-composer button,
html body.mr-os-portal-body .mr-mini-action {
	border-radius: 999px !important;
	transition: transform 0.12s ease, box-shadow 0.15s ease, filter 0.15s ease;
}
html body.mr-os-portal-body .mr-app-button:hover,
html body.mr-os-portal-body .mr-app-form button:hover,
html body.mr-os-portal-body .mr-inline-form button:hover,
html body.mr-os-portal-body .mr-row-actions button:hover,
html body.mr-os-portal-body .mr-chat-compose button:hover,
html body.mr-os-portal-body .mr-chatapp-composer button:hover,
html body.mr-os-portal-body .mr-mini-action:hover {
	transform: translateY(-1px);
	box-shadow: 0 8px 20px rgba(13, 30, 70, 0.16);
}
html body.mr-os-portal-body .mr-app-button:active,
html body.mr-os-portal-body .mr-app-form button:active,
html body.mr-os-portal-body .mr-inline-form button:active,
html body.mr-os-portal-body .mr-row-actions button:active { transform: translateY(0) scale(0.98); }
html body.mr-os-portal-body button:focus-visible,
html body.mr-os-portal-body a:focus-visible {
	outline: 2px solid rgba(37, 99, 235, 0.55);
	outline-offset: 2px;
	border-radius: 10px;
}

/* Campos de formulario: superficies suaves + anillo de foco moderno (texto intacto). */
html body.mr-os-portal-body .mr-app-form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
html body.mr-os-portal-body .mr-app-form select,
html body.mr-os-portal-body .mr-app-form textarea {
	background: rgba(255, 255, 255, 0.78);
	border: 1px solid rgba(13, 30, 70, 0.12);
	border-radius: 14px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
html body.mr-os-portal-body .mr-app-form input:focus,
html body.mr-os-portal-body .mr-app-form select:focus,
html body.mr-os-portal-body .mr-app-form textarea:focus {
	border-color: rgba(37, 99, 235, 0.55);
	box-shadow: 0 0 0 4px rgba(37, 99, 235, 0.12);
}

/* Tablas: cabecera afinada + hover de fila (legibilidad moderna sin tocar colores base). */
html body.mr-os-portal-body .mr-app-table thead th {
	font-size: 0.72rem;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(13, 30, 70, 0.55);
}
html body.mr-os-portal-body .mr-app-table tbody tr { transition: background 0.12s ease; }
html body.mr-os-portal-body .mr-app-table tbody tr:hover { background: rgba(37, 99, 235, 0.045); }

/* Botón "Vista de delegado" (Mesa/Admin): discreto con ícono. */
html body.mr-os-portal-body .mr-delegate-view-btn {
	display: inline-flex; align-items: center; gap: 7px;
	margin-top: 12px; width: fit-content;
}

/* Respeto a usuarios con movimiento reducido. */
@media (prefers-reduced-motion: reduce) {
	html body.mr-os-portal-body .mr-app-button,
	html body.mr-os-portal-body .mr-app-form button,
	html body.mr-os-portal-body .mr-inline-form button,
	html body.mr-os-portal-body .mr-row-actions button,
	html body.mr-os-portal-body .mr-mini-action,
	html body.mr-os-portal-body .mr-app-table tbody tr { transition: none; }
	html body.mr-os-portal-body .mr-app-button:hover,
	html body.mr-os-portal-body .mr-app-form button:hover { transform: none; }
}

/* ============================================================================================
   0.76 — FACELIFT DEL RESUMEN (dashboard) + topbar afinada. Pedido de Hegel: la carátula seguía
   viéndose igual/arcaica tras 0.75. KPIs como tiles de vidrio con ícono y barra de progreso,
   "MUN activo" como tarjeta hero navy, comités con barras proporcionales, actividad como línea
   de tiempo. Texto: se respetan las reglas de contraste (la tarjeta navy define SUS colores).
   ============================================================================================ */
/* Topbar: menos "bloque blanco", más frost sutil (feedback: "la barra quedó mal"). */
html body.mr-os-portal-body .mr-app-topbar {
	background: rgba(255, 255, 255, 0.5) !important;
	border: 1px solid rgba(255, 255, 255, 0.45) !important;
	border-radius: 16px !important;
	box-shadow: 0 4px 14px rgba(13, 30, 70, 0.05) !important;
}

/* Hero del dashboard: presencia real (vidrio + acento dorado como pluma, no barra dura). */
html body.mr-os-portal-body .mr-app-hero {
	position: relative;
	background: linear-gradient(120deg, rgba(13, 30, 70, 0.06), rgba(255, 255, 255, 0.5) 45%) !important;
	border: 1px solid rgba(255, 255, 255, 0.6) !important;
	border-left: 4px solid #f6c945 !important;
	border-radius: 22px !important;
	box-shadow: 0 10px 28px rgba(13, 30, 70, 0.08) !important;
}

/* KPI tiles: vidrio + ícono en chip + hover lift; acento por tipo. */
html body.mr-os-portal-body .mr-kpi {
	position: relative;
	background: rgba(255, 255, 255, 0.66) !important;
	-webkit-backdrop-filter: blur(18px) saturate(1.6);
	backdrop-filter: blur(18px) saturate(1.6);
	border: 1px solid rgba(255, 255, 255, 0.65) !important;
	border-left-width: 1px !important; /* fuera la barrita lateral dura de antes */
	border-radius: 20px !important;
	box-shadow: 0 1px 2px rgba(13, 30, 70, 0.04), 0 10px 26px rgba(13, 30, 70, 0.08) !important;
	transition: transform 0.15s ease, box-shadow 0.2s ease;
	overflow: hidden;
}
html body.mr-os-portal-body .mr-kpi:hover { transform: translateY(-2px); box-shadow: 0 16px 36px rgba(13, 30, 70, 0.13) !important; }
html body.mr-os-portal-body .mr-kpi-ico {
	position: absolute; top: 14px; right: 14px;
	width: 38px; height: 38px; display: grid; place-items: center;
	font-size: 1.15rem; border-radius: 12px;
	background: rgba(13, 30, 70, 0.06); border: 1px solid rgba(13, 30, 70, 0.06);
}
html body.mr-os-portal-body .mr-kpi--total .mr-kpi-ico { background: rgba(246, 201, 69, 0.18); }
html body.mr-os-portal-body .mr-kpi--confirmed .mr-kpi-ico { background: rgba(22, 163, 74, 0.12); }
html body.mr-os-portal-body .mr-kpi--accounts .mr-kpi-ico { background: rgba(37, 99, 235, 0.12); }
html body.mr-os-portal-body .mr-kpi--checked .mr-kpi-ico { background: rgba(13, 30, 70, 0.10); }
html body.mr-os-portal-body .mr-kpi-bar {
	display: block; height: 6px; border-radius: 999px; overflow: hidden;
	background: rgba(13, 30, 70, 0.08); margin: 8px 0 4px;
}
html body.mr-os-portal-body .mr-kpi-bar i {
	display: block; height: 100%; border-radius: 999px;
	background: linear-gradient(90deg, #16a34a, #4ade80);
}
html body.mr-os-portal-body .mr-kpi--accounts .mr-kpi-bar i { background: linear-gradient(90deg, #2563eb, #60a5fa); }

/* Tarjeta "MUN activo": hero navy con vidrio (define sus propios colores de texto). */
html body.mr-os-portal-body .mr-active-event-card {
	background: linear-gradient(135deg, rgba(13, 30, 70, 0.94), rgba(23, 47, 105, 0.90)) !important;
	border: 1px solid rgba(255, 255, 255, 0.14) !important;
	box-shadow: 0 18px 40px rgba(13, 30, 70, 0.28) !important;
}
html body.mr-os-portal-body .mr-active-event-card .mr-panel-head p { color: #f6c945 !important; }
html body.mr-os-portal-body .mr-active-event-card h2,
html body.mr-os-portal-body .mr-active-event-card .mr-panel-head h2 { color: #ffffff !important; }
html body.mr-os-portal-body .mr-active-event-card .mr-app-link {
	color: #0D1E46 !important; background: #f6c945; border-radius: 999px; padding: 8px 16px;
	font-weight: 700; text-decoration: none;
}
html body.mr-os-portal-body .mr-active-event-card .mr-event-meta { border-top: 1px solid rgba(255, 255, 255, 0.14); }
html body.mr-os-portal-body .mr-active-event-card .mr-event-meta > span:not(.mr-status) {
	color: #e6ecfb !important;
	background: rgba(255, 255, 255, 0.10);
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 999px; padding: 6px 14px;
}

/* Participantes por comité: filas con barra proporcional. */
html body.mr-os-portal-body .mr-committee-ranking .mr-committee-rank-row { display: flex; flex-direction: column; gap: 6px; padding: 10px 0; }
html body.mr-os-portal-body .mr-committee-rank-top { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-width: 0; }
html body.mr-os-portal-body .mr-committee-rank-top strong { font-variant-numeric: tabular-nums; color: #0D1E46; }
html body.mr-os-portal-body .mr-committee-rank-bar { display: block; height: 6px; border-radius: 999px; background: rgba(13, 30, 70, 0.07); overflow: hidden; }
html body.mr-os-portal-body .mr-committee-rank-bar i { display: block; height: 100%; border-radius: 999px; background: linear-gradient(90deg, #0D1E46, #2563eb); }

/* Actividad reciente: línea de tiempo con puntos. */
html body.mr-os-portal-body .mr-chat-workspace .mr-chat-detail-panel .mr-compact-list > div {
	position: relative; padding-left: 20px; border-left: 2px solid rgba(13, 30, 70, 0.08);
}
html body.mr-os-portal-body .mr-chat-workspace .mr-chat-detail-panel .mr-compact-list > div::before {
	content: ""; position: absolute; left: -6px; top: 8px;
	width: 10px; height: 10px; border-radius: 50%;
	background: #2563eb; border: 2px solid #fff; box-shadow: 0 0 0 2px rgba(37, 99, 235, 0.25);
}
html body.mr-os-portal-body .mr-chat-workspace .mr-chat-detail-panel .mr-compact-list > div strong {
	font-size: 0.72rem; font-weight: 600; color: rgba(13, 30, 70, 0.5); white-space: nowrap;
}

/* ============================================================================================
   0.77 — Correcciones de la carátula/sidebar (feedback de Hegel sobre 0.76). Todo en la capa
   final (gana por orden de carga + especificidad). No toca lógica ni colores de texto base.
   ============================================================================================ */

/* (1) Sidebar PLANO: ni el contenedor del nav ni los grupos ni los ítems tienen fondo/borde/velo. El
   `backdrop-filter` del 0.75 dibujaba un rectángulo sutil (más oscuro) detrás del menú — se elimina. Solo
   el ítem ACTIVO se resalta (leve + franja dorada). Máxima especificidad para que NADA lo pise. */
html body.mr-os-portal-body .mr-app-sidebar .mr-app-nav,
html body.mr-os-portal-body .mr-app-sidebar .mr-app-nav--clean .mr-navgrp,
html body.mr-os-portal-body .mr-app-sidebar .mr-app-nav--clean .mr-nav-group-link {
	background: transparent !important;
	background-image: none !important;
	border: 1px solid transparent !important;
	box-shadow: none !important;
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
}
html body.mr-os-portal-body .mr-app-sidebar .mr-app-nav--clean .mr-nav-group-link:hover,
html body.mr-os-portal-body .mr-app-sidebar .mr-app-nav--clean .mr-nav-group-link:focus {
	background: rgba(255, 255, 255, 0.08) !important;
	border-color: rgba(255, 255, 255, 0.14) !important;
}
html body.mr-os-portal-body .mr-app-sidebar .mr-app-nav--clean .mr-nav-group-link.is-active {
	background: rgba(255, 255, 255, 0.10) !important;
	border-color: rgba(255, 255, 255, 0.16) !important;
	box-shadow: inset 3px 0 0 #f6c945 !important;
}

/* (3) Logo del MUN: la caja blanca del logo forzaba min-height y dejaba el logo pegado arriba.
   Ahora abraza su contenido con padding simétrico → mismo aire arriba y abajo. */
html body.mr-os-portal-body .mr-app-sidebar .mr-app-brand.mr-app-brand--event {
	min-height: 0 !important;
	padding: 20px 16px !important;
	margin: 20px 0 !important;
	gap: 12px !important;
}

/* (2) Tarjeta "MUN activo": quitar las líneas divisorias de más y hacer visible el estado "Activo". */
html body.mr-os-portal-body .mr-active-event-card .mr-panel-head {
	border-bottom: none !important;
	padding-bottom: 0 !important;
	margin-bottom: 4px !important;
}
html body.mr-os-portal-body .mr-active-event-card .mr-event-meta {
	border-top: none !important;
	padding-top: 6px !important;
}
html body.mr-os-portal-body .mr-active-event-card .mr-status,
html body.mr-os-portal-body .mr-active-event-card .mr-status-active {
	color: #f6c945 !important;
	background: rgba(246, 201, 69, 0.16) !important;
	border: 1px solid rgba(246, 201, 69, 0.40) !important;
	font-weight: 700 !important;
}
html body.mr-os-portal-body .mr-active-event-card .mr-status::before {
	background: #f6c945 !important;
	color: #f6c945 !important;
}

/* (4) Dashboard: "Actividad reciente" y "Participantes por comité" tenían cajas por ítem que
   rompían el diseño. Se limpian: timeline sin cajas + filas de comité sin cajas. */
html body.mr-os-portal-body .mr-chat-workspace .mr-chat-detail-panel .mr-compact-list > div {
	background: transparent !important;
	border: 0 !important;
	border-left: 2px solid rgba(13, 30, 70, 0.10) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	min-height: 0 !important;
	padding: 11px 0 11px 20px !important;
	gap: 12px !important;
}
html body.mr-os-portal-body .mr-chat-workspace .mr-chat-thread-panel .mr-compact-list > div {
	background: transparent !important;
	border: 0 !important;
	border-bottom: 1px solid rgba(13, 30, 70, 0.07) !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	min-height: 0 !important;
	padding: 12px 0 !important;
}
html body.mr-os-portal-body .mr-chat-workspace .mr-chat-thread-panel .mr-compact-list > div:last-child { border-bottom: 0 !important; }
/* (2) Quitar la CAJA BLANCA del contenedor de la lista dentro de los paneles (era "cuadro dentro del cuadro":
   panel + caja de la lista). Ahora la lista va directa sobre el panel, sin caja intermedia. */
html body.mr-os-portal-body .mr-chat-workspace .mr-chat-detail-panel .mr-compact-list,
html body.mr-os-portal-body .mr-chat-workspace .mr-chat-thread-panel .mr-compact-list {
	background: transparent !important;
	background-image: none !important;
	border: 0 !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	padding: 0 !important;
	-webkit-backdrop-filter: none !important;
	backdrop-filter: none !important;
}
/* (3) Nombre del comité COMPLETO (sin recortar con "…") en "Participantes por comité": que envuelva. */
html body.mr-os-portal-body .mr-committee-ranking .mr-committee > span:last-child {
	white-space: normal !important;
	overflow: visible !important;
	text-overflow: clip !important;
}

/* ============================================================
   0.86 — Chats: formato WhatsApp, aviso de notificaciones,
   pista de formato y menú de borrado de moderación.
   ============================================================ */
/* Formato ligero dentro de burbujas: tachado y monoespaciado (negrita/cursiva ya heredan). */
html body.mr-os-portal-body .mr-groupchat-body code,
html body.mr-os-portal-body .mr-chat-msg p code,
html body.mr-os-portal-body .mr-cw .mr-chat-msg p code {
	background: rgba(15,23,42,.08); border-radius: 6px; padding: 1px 6px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92em;
}
html body.mr-os-portal-body .mr-groupchat-body s,
html body.mr-os-portal-body .mr-chat-msg p s { opacity: .75; }

/* Pista de formato bajo los cuadros de redacción del chat. */
html body.mr-os-portal-body .mr-compose-hint {
	display: block; color: #94a3b8; font-size: 11px; margin-top: 4px; line-height: 1.4;
}

/* Aviso flotante "activa las notificaciones" (junto al botón del chat, por encima de la barra inferior). */
html body.mr-os-portal-body .mr-chat-notif-ask {
	position: fixed; right: 20px; bottom: 92px; z-index: 9998;
	display: flex; align-items: center; gap: 10px; max-width: min(360px, calc(100vw - 32px));
	background: #0f172a; color: #e2e8f0; border-radius: 14px; padding: 10px 12px;
	box-shadow: 0 14px 34px rgba(15,23,42,.4);
}
html body.mr-os-portal-body .mr-chat-notif-ask[hidden] { display: none; }
html body.mr-os-portal-body .mr-chat-notif-ask p { margin: 0; font-size: 12.5px; line-height: 1.45; }
html body.mr-os-portal-body .mr-chat-notif-ask button {
	border: 0; border-radius: 9px; cursor: pointer; font-weight: 700; line-height: 1;
}
html body.mr-os-portal-body #mr-chat-notif-yes { background: #2563eb; color: #fff; padding: 8px 12px; font-size: 12.5px; }
html body.mr-os-portal-body #mr-chat-notif-yes:hover { background: #1d4ed8; }
html body.mr-os-portal-body #mr-chat-notif-no { background: rgba(255,255,255,.12); color: #cbd5e1; width: 26px; height: 26px; flex: 0 0 26px; font-size: 12px; }
@media (max-width: 1100px) {
	html body.mr-os-portal-body .mr-chat-notif-ask { right: 16px; bottom: calc(168px + env(safe-area-inset-bottom)); }
}

/* Menú "Eliminar" del chat oficial (moderación): opciones borrar con aviso / sin rastro.
   Se abre hacia ARRIBA (los mensajes moderados suelen estar al fondo del scroll del chat) y
   sus botones anulan con !important el estilo píldora genérico de .mr-groupchat-actions button. */
html body.mr-os-portal-body .mr-groupchat-delete-menu { position: relative; }
html body.mr-os-portal-body .mr-groupchat-delete-menu summary {
	list-style: none; cursor: pointer; color: #b91c1c; font-size: 12px; font-weight: 600; padding: 3px 6px;
}
html body.mr-os-portal-body .mr-groupchat-message.is-own .mr-groupchat-delete-menu summary { color: #fecaca; }
html body.mr-os-portal-body .mr-groupchat-delete-menu summary::-webkit-details-marker { display: none; }
html body.mr-os-portal-body .mr-groupchat-delete-menu[open] > div {
	position: absolute; z-index: 30; right: 0; bottom: calc(100% + 6px); top: auto; min-width: 230px;
	background: #fff; border: 1px solid #e2e8f0; border-radius: 12px; padding: 6px;
	box-shadow: 0 14px 34px rgba(15,23,42,.18); display: grid; gap: 2px;
}
html body.mr-os-portal-body .mr-groupchat-delete-menu form { margin: 0; display: block !important; }
html body.mr-os-portal-body .mr-groupchat-delete-menu[open] > div button {
	width: 100% !important; text-align: left !important; background: transparent !important;
	border: 0 !important; border-radius: 8px !important; cursor: pointer; font-size: 12.5px !important;
	padding: 8px 10px !important; color: #334155 !important; min-width: 0 !important; min-height: 0 !important;
}
html body.mr-os-portal-body .mr-groupchat-delete-menu[open] > div button:hover { background: #f1f5f9 !important; }
html body.mr-os-portal-body .mr-groupchat-delete-menu[open] > div button.mr-danger-strong { color: #b91c1c !important; font-weight: 700; }

/* Alerta de staff duplicado (0.86) */
html body.mr-os-portal-body .mr-staff-dup-alert {
	background: #fff7ed; border: 1px solid #fdba74; border-left: 4px solid #ea580c;
	border-radius: 14px; padding: 14px 16px; margin: 0 0 16px;
}
html body.mr-os-portal-body .mr-staff-dup-alert > strong { color: #9a3412; display: flex; align-items: center; gap: 8px; font-size: 14px; }
html body.mr-os-portal-body .mr-staff-dup-alert > p { color: #7c2d12; font-size: 12.5px; margin: 6px 0 10px; }
html body.mr-os-portal-body .mr-staff-dup-group {
	background: #fff; border: 1px solid #fed7aa; border-radius: 12px; padding: 10px 12px; margin-bottom: 8px;
}
html body.mr-os-portal-body .mr-staff-dup-group > strong { font-size: 13px; color: #0f172a; }
html body.mr-os-portal-body .mr-staff-dup-rows { display: grid; gap: 6px; margin-top: 8px; }
html body.mr-os-portal-body .mr-staff-dup-row {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; justify-content: space-between;
	background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 10px; padding: 8px 10px;
}
html body.mr-os-portal-body .mr-staff-dup-row > div { min-width: 0; }
html body.mr-os-portal-body .mr-staff-dup-row strong { display: block; font-size: 13px; color: #0f172a; }
html body.mr-os-portal-body .mr-staff-dup-row small { color: #64748b; font-size: 12px; display: block; overflow-wrap: anywhere; }
html body.mr-os-portal-body .mr-staff-dup-row form { margin: 0; }
html body.mr-os-portal-body .mr-staff-dup-row .mr-staff-dup-del {
	background: rgba(185,28,28,.08); border: 0; border-radius: 9px; color: #b91c1c;
	cursor: pointer; font-size: 12px; font-weight: 700; padding: 7px 10px;
}
html body.mr-os-portal-body .mr-staff-dup-row .mr-staff-dup-del:hover { background: #fee2e2; }
@media (max-width: 720px) {
	html body.mr-os-portal-body .mr-staff-dup-row { flex-direction: column; align-items: stretch; }
	html body.mr-os-portal-body .mr-staff-dup-row .mr-staff-dup-del { width: 100%; }
}

/* 0.88 — Barra "Cargar más" de tablas con carga progresiva (participantes, etc.) */
html body.mr-os-portal-body .mr-prog-more {
	display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap;
	margin: 10px 2px 0; padding: 10px 12px;
	background: rgba(37, 66, 133, .04); border: 1px dashed rgba(37, 66, 133, .18); border-radius: 12px;
}
html body.mr-os-portal-body .mr-prog-info { color: #5b6b86; font-size: 13px; font-weight: 600; }
html body.mr-os-portal-body .mr-prog-btn { flex: 0 0 auto; }
@media (max-width: 720px) {
	html body.mr-os-portal-body .mr-prog-more { flex-direction: column; align-items: stretch; text-align: center; }
	html body.mr-os-portal-body .mr-prog-btn { width: 100%; }
}

/* 0.90 — Aviso flotante (toast) para acciones de una sola fila por AJAX (verificación de tutor, estado de staff…) */
html body.mr-os-portal-body .mr-toast {
	position: fixed; left: 50%; bottom: 24px; transform: translate(-50%, 20px); z-index: 100000;
	max-width: min(90vw, 520px); background: #0f172a; color: #f1f5f9;
	padding: 12px 18px; border-radius: 12px; font-size: 14px; font-weight: 600; line-height: 1.4;
	box-shadow: 0 16px 40px rgba(15,23,42,.4); opacity: 0; transition: opacity .28s ease, transform .28s ease;
	border-left: 4px solid #22c55e;
}
html body.mr-os-portal-body .mr-toast.is-in { opacity: 1; transform: translate(-50%, 0); }
html body.mr-os-portal-body .mr-toast.mr-toast--err { border-left-color: #ef4444; }

/* 0.92 — Ver foto original al hacer clic en un avatar (paneles internos) */
html body.mr-os-portal-body .mr-participant-photo,
html body.mr-os-portal-body .mr-staff-avatar,
html body.mr-os-portal-body .mr-dais-avatar,
html body.mr-os-portal-body .mr-chat-member-avatar,
html body.mr-os-portal-body .mr-user-edit-avatar { cursor: zoom-in; }
html body.mr-os-portal-body .mr-photo-viewer {
	position: fixed; inset: 0; z-index: 100001; background: rgba(15,23,42,.86);
	display: flex; align-items: center; justify-content: center; padding: 24px;
	opacity: 0; transition: opacity .2s ease; cursor: zoom-out;
}
html body.mr-os-portal-body .mr-photo-viewer.is-in { opacity: 1; }
html body.mr-os-portal-body .mr-photo-viewer img {
	max-width: 92vw; max-height: 92vh; border-radius: 12px; background: #fff;
	box-shadow: 0 24px 70px rgba(0,0,0,.5);
}
