/* =====================================================================
   Base transversal. Aplica a todo el sistema (publico y administrativo).
   ===================================================================== */

:root {
    /* Los controles y scrollbars nativos siguen el esquema declarado, en
       lugar de que el navegador lo adivine. */
    color-scheme: light;
}

html,
body {
    min-height: 100%;
}

body {
    display: flex;
    min-height: 100vh;
    flex-direction: column;
}

main.page {
    flex: 1 0 auto;
}

/* Sin el retardo de 300 ms por doble tap. Se aplica a los controles y no a
   html para no interferir con el paneo y el zoom de los mapas Leaflet. */
a,
button,
input,
label,
select,
summary,
textarea,
[role="button"],
[role="tab"] {
    touch-action: manipulation;
    -webkit-tap-highlight-color: rgba(97, 18, 50, 0.15);
}

/* Anillo de foco de respaldo: cualquier control sin regla propia queda
   visible al navegar con teclado. */
:focus-visible {
    outline: 2px solid #611232;
    outline-offset: 2px;
}

/* Evita viudas en titulos y mejora el reparto de lineas en parrafos. */
h1,
h2,
h3,
h4,
h5,
h6 {
    text-wrap: balance;
}

p,
.mmz-datos-intro,
.mmz-datos-help,
.mmz-input-help {
    text-wrap: pretty;
}

/* Los anclas de encabezado no quedan tapadas por el topbar sticky. */
:target {
    scroll-margin-top: calc(var(--mmz-admin-topbar-offset, 0px) + 80px);
}

/* Texto solo para lectores de pantalla. Bootstrap 3 del CDN ya define
   .sr-only; se declara aqui para no depender de que ese CSS cargue. */
.sr-only {
    border: 0;
    clip: rect(0, 0, 0, 0);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute;
    white-space: nowrap;
    width: 1px;
}

.mmz-global-alert {
    border-radius: 9px;
    display: flex;
    flex-direction: column;
    font-size: 14px;
    gap: 2px;
    line-height: 1.5;
    margin: 0 0 20px;
    padding: 13px 16px;
}

.mmz-global-alert--error {
    background: #fff5f5;
    border: 1px solid #edcaca;
    border-left: 4px solid #b10f2e;
    color: #6f2532;
}

.mmz-global-alert strong {
    color: #8d1730;
    font-size: 14.5px;
}

/* Los <select> nativos necesitan color explicito: en modo oscuro de Windows
   heredan texto blanco sobre el fondo blanco del tema. */
select.form-control,
.mmz-estado-filter__select,
.mmz-colonia-select {
    background-color: #fff;
    color: #333;
}

.mmz-container {
    padding-bottom: max(48px, env(safe-area-inset-bottom));
    padding-left: max(15px, env(safe-area-inset-left));
    padding-right: max(15px, env(safe-area-inset-right));
}

.mmz-top-action {
    padding-top: 24px;
}

.mmz-wizard {
    margin: 24px 0 28px;
}

.mmz-wizard li.current {
    background-color: #f7f7f7;
    color: #333;
    box-shadow: inset 0 -4px 0 #611232;
}

.mmz-wizard li.current h5 {
    color: #611232;
    font-weight: 700;
}

.mmz-wizard li.current span {
    color: #333;
}

@media (min-width: 768px) {
    .mmz-wizard li.current {
        height: 70px;
        top: 0;
    }

    .mmz-wizard li.current h5 {
        margin-top: 14px;
    }

    .mmz-wizard li.current::before,
    .mmz-wizard li.current::after {
        background-color: #f7f7f7;
    }

    .mmz-wizard li.current::after {
        height: 52px;
        width: 52px;
        top: 9px;
        right: -29px;
    }

    .mmz-wizard li:nth-child(5) {
        z-index: 1;
    }
}

.form-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 24px;
}

.planteles-list,
.document-list {
    margin-top: 16px;
}

.mmz-plantel-option {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 12px;
    align-items: start;
    cursor: pointer;
}

.mmz-plantel-option input {
    margin-top: 4px;
}

.mmz-plantel-option.disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.mmz-planteles-intro {
    color: #4a4a4a;
    margin-bottom: 18px;
}

.mmz-planteles-layout {
    align-items: stretch;
}

.mmz-planteles-panel {
    height: 100%;
    margin-bottom: 18px;
}

.mmz-planteles-panel__heading {
    align-items: center;
    display: flex;
    gap: 10px;
    font-weight: 600;
}

.mmz-planteles-panel__step {
    align-items: center;
    background-color: #235b4e;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    height: 24px;
    justify-content: center;
    width: 24px;
}

.mmz-planteles-list {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-top: 16px;
    max-height: 520px;
    overflow-y: auto;
    padding-right: 4px;
}

.mmz-planteles-fieldset {
    border: 0;
    margin: 0;
    min-width: 0;
    padding: 0;
}

.mmz-planteles-keyboard-help {
    color: #5f6b66;
    display: block;
    font-size: 12px;
    line-height: 1.45;
    margin-top: 10px;
}

.mmz-plantel-card {
    background-color: #fff;
    border: 1px solid #d6dbdf;
    border-radius: 6px;
    cursor: pointer;
    display: grid;
    gap: 12px;
    grid-template-columns: auto minmax(0, 1fr);
    margin: 0;
    padding: 14px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.mmz-plantel-card:hover:not(.is-disabled) {
    border-color: #235b4e;
    box-shadow: 0 1px 6px rgba(35, 91, 78, 0.1);
}

.mmz-plantel-card:focus-within:not(.is-disabled) {
    border-color: #235b4e;
    box-shadow: 0 0 0 3px rgba(35, 91, 78, 0.18);
}

.mmz-plantel-card.is-selected {
    border-color: #235b4e;
    box-shadow: 0 0 0 3px rgba(35, 91, 78, 0.18);
}

.mmz-plantel-card.is-disabled {
    background-color: #f7f7f7;
    cursor: not-allowed;
    opacity: 0.65;
}

.mmz-plantel-card input[type="radio"] {
    margin-top: 4px;
}

.mmz-plantel-card__body {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.mmz-plantel-card__titulo {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.mmz-plantel-card__titulo strong {
    color: #1f2937;
    font-size: 15px;
    line-height: 1.3;
}

.mmz-plantel-card__identidad {
    align-items: flex-start;
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 6px 10px;
    min-width: 0;
}

.mmz-plantel-card__cupo {
    background-color: #e6f3ee;
    border-radius: 999px;
    color: #1d6f5d;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 600;
    padding: 3px 10px;
    white-space: nowrap;
}

.mmz-plantel-card__cupo--bajo {
    background-color: #fff4e0;
    color: #a05d00;
}

.mmz-plantel-card__cupo--agotado {
    background-color: #f5e6e6;
    color: #9c1c1c;
}

.mmz-plantel-card__meta {
    color: #4a4a4a;
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    gap: 4px 16px;
}

.mmz-plantel-card__cct {
    color: #6b7280;
}

.mmz-planteles-empty {
    align-items: center;
    background-color: #f7f9fa;
    border: 1px dashed #c4cdd5;
    border-radius: 6px;
    color: #4a4a4a;
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 28px 18px;
    text-align: center;
}

.mmz-planteles-empty p {
    margin: 0;
}

.mmz-planteles-empty__icon {
    align-items: center;
    background-color: #235b4e;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-weight: 700;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.mmz-planteles-empty__spinner {
    border: 3px solid #d6dbdf;
    border-radius: 50%;
    border-top-color: #235b4e;
    display: inline-block;
    height: 28px;
    width: 28px;
    animation: mmz-spin 0.8s linear infinite;
}

@keyframes mmz-spin {
    to { transform: rotate(360deg); }
}

.mmz-planteles-estado {
    align-items: center;
    background-color: #eef5f2;
    border: 1px solid #cfe3db;
    border-radius: 8px;
    color: #155146;
    display: flex;
    gap: 8px;
    margin-bottom: 6px;
    padding: 10px 14px;
}

.mmz-planteles-estado::before {
    background-color: #235b4e;
    border-radius: 50%;
    content: "";
    flex: 0 0 8px;
    height: 8px;
    width: 8px;
}

.mmz-planteles-estado strong {
    font-size: 15px;
    font-weight: 700;
}

.mmz-planteles-ayuda {
    display: block;
    margin: 8px 0 14px;
}

.mmz-plantel-detalle {
    position: sticky;
    top: 18px;
}

.mmz-plantel-detalle__body {
    display: flex;
    flex-direction: column;
    gap: 14px;
    min-height: 360px;
}

.mmz-plantel-detalle__placeholder {
    align-items: center;
    color: #4a4a4a;
    display: flex;
    flex: 1;
    flex-direction: column;
    gap: 12px;
    justify-content: center;
    padding: 24px 12px;
    text-align: center;
}

.mmz-plantel-detalle__placeholder p {
    margin: 0;
}

.mmz-plantel-detalle__placeholder-icon {
    align-items: center;
    background-color: #eef2f3;
    border-radius: 50%;
    color: #235b4e;
    display: inline-flex;
    font-size: 20px;
    font-weight: 700;
    height: 48px;
    justify-content: center;
    width: 48px;
}

.mmz-plantel-detalle__contenido {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mmz-plantel-detalle__placeholder[hidden],
.mmz-plantel-detalle__contenido[hidden],
.mmz-plantel-detalle__direccion[hidden],
.mmz-plantel-detalle__mapa-link[hidden] {
    display: none;
}

.mmz-plantel-detalle__nombre {
    color: #1f2937;
    font-size: 18px;
    margin: 0;
}

.mmz-plantel-detalle__ubicacion {
    color: #4a4a4a;
    margin: 0;
}

.mmz-plantel-detalle__datos {
    background-color: #f7f9fa;
    border-radius: 6px;
    display: grid;
    gap: 4px 14px;
    grid-template-columns: 1fr 1fr;
    margin: 0;
    padding: 12px 14px;
}

.mmz-plantel-detalle__datos > div {
    display: flex;
    flex-direction: column;
}

.mmz-plantel-detalle__datos dt {
    color: #6b7280;
    font-size: 12px;
    font-weight: 600;
    text-transform: uppercase;
}

.mmz-plantel-detalle__datos dd {
    color: #1f2937;
    font-size: 14px;
    margin: 0;
}

.mmz-plantel-cupo {
    display: inline-block;
    font-weight: 600;
}

.mmz-plantel-cupo--bajo {
    color: #a05d00;
}

.mmz-plantel-cupo--agotado {
    color: #9c1c1c;
}

.mmz-plantel-detalle__direccion {
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 10px 12px;
}

.mmz-plantel-detalle__direccion > span {
    color: #6b7280;
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-bottom: 3px;
    text-transform: uppercase;
}

.mmz-plantel-detalle__direccion p {
    color: #1f2937;
    font-size: 13px;
    margin: 0;
}

/* El lugar al que hay que presentarse, dentro del resumen. */
/* La sede temporal del resumen reusa el bloque de la elección de plantel; aquí
   solo se separa de la lista de datos que tiene encima. */
.mmz-resumen-sede-alterna {
    margin-top: 14px;
}

.mmz-plantel-detalle__mapa-contexto {
    margin-top: 4px;
}

.mmz-plantel-detalle__mapa-contexto h4 {
    color: #1f2937;
    display: block;
    font-size: 14px;
    font-family: inherit;
    font-weight: 700;
    line-height: 1.35;
    margin: 0;
    text-wrap: balance;
}

.mmz-plantel-detalle__mapa-contexto p {
    color: #6b7280;
    font-size: 12px;
    margin: 2px 0 0;
}

.mmz-plantel-detalle__mapa {
    margin: 0;
    min-height: 220px;
}

.mmz-plantel-detalle__mapa iframe {
    height: 240px;
}

.mmz-plantel-detalle__mapa-link {
    margin: 0;
    text-align: right;
}

.mmz-plantel-detalle__mapa-link a {
    color: #235b4e;
    font-size: 13px;
    font-weight: 600;
}

.mmz-datos-intro {
    color: #4a4a4a;
    margin-bottom: 18px;
}

.mmz-datos-layout {
    align-items: stretch;
}

.mmz-datos-panel {
    margin-bottom: 18px;
}

.mmz-datos-panel__heading {
    align-items: center;
    display: flex;
    font-weight: 600;
    gap: 10px;
}

.mmz-datos-panel__step {
    align-items: center;
    background-color: #235b4e;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    height: 24px;
    justify-content: center;
    width: 24px;
}

.mmz-datos-resumen {
    background-color: #fbfcfd;
    height: 100%;
}

.mmz-datos-resumen__lead {
    color: #4a4a4a;
    font-size: 13px;
    margin-bottom: 14px;
}

.mmz-datos-resumen__lista {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin: 0;
}

.mmz-datos-resumen__lista > div {
    background-color: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    padding: 8px 12px;
}

.mmz-datos-resumen__lista dt {
    color: #6b7280;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.mmz-datos-resumen__lista dd {
    color: #1f2937;
    font-size: 16px;
    margin: 2px 0 0;
    word-break: break-word;
}

.mmz-datos-resumen__lista dd small {
    color: #6b7280;
    display: block;
    font-size: 13px;
    font-weight: 400;
    margin-top: 2px;
}

.mmz-datos-sede-alterna {
    margin-top: 12px;
}

.mmz-datos-help {
    background-color: #f4f7f9;
    border-left: 3px solid #235b4e;
    border-radius: 3px;
    color: #4a4a4a;
    font-size: 14px;
    margin: 0 0 14px;
    padding: 8px 12px;
}

.mmz-input-group label {
    color: #1f2937;
    font-weight: 600;
}

.mmz-required {
    color: #9c1c1c;
    font-weight: 700;
}

.mmz-input-icon {
    align-items: stretch;
    display: flex;
    position: relative;
}

.mmz-input-icon__icon {
    align-items: center;
    background-color: #f4f7f9;
    border: 1px solid #d6dbdf;
    border-radius: 4px 0 0 4px;
    border-right: none;
    color: #235b4e;
    display: inline-flex;
    flex: 0 0 42px;
    font-weight: 700;
    justify-content: center;
}

.mmz-input-icon__icon svg {
    display: block;
}

.mmz-input-icon .form-control {
    border-radius: 0 4px 4px 0;
    flex: 1;
    min-width: 0;
}

.mmz-input-icon .form-control:focus {
    z-index: 1;
}

.mmz-input-icon .form-control.is-valid {
    border-color: #1d6f5d;
    box-shadow: 0 0 0 1px #1d6f5d inset;
}

.mmz-input-icon .form-control.is-invalid {
    border-color: #9c1c1c;
    box-shadow: 0 0 0 1px #9c1c1c inset;
}

.mmz-correo-feedback,
.mmz-campo-feedback {
    display: block;
    font-size: 12px;
    margin-top: 6px;
    min-height: 16px;
}

.mmz-correo-feedback--ok,
.mmz-campo-feedback--ok {
    color: #1d6f5d;
}

.mmz-correo-feedback--error,
.mmz-campo-feedback--error {
    color: #9c1c1c;
}

/* La regla "al menos uno" pertenece al par de campos y no a uno solo: la
   pastilla del encabezado anuncia el estado y la "o" une las alternativas,
   para que ninguna etiqueta cargue la condición ni desalinee las columnas. */
.mmz-req-chip {
    background-color: #f1f4f3;
    border: 1px solid #e0e6e4;
    border-radius: 11px;
    color: #5f6b68;
    font-size: 12px;
    font-weight: 600;
    margin-left: auto;
    padding: 2px 10px;
    white-space: nowrap;
}

.mmz-req-chip--obligatorio {
    background-color: #fbeeee;
    border-color: #f0d4d4;
    color: #7a2f2f;
}

.mmz-telefonos__grid {
    align-items: end;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
}

.mmz-telefonos__campo {
    margin-bottom: 0;
    min-width: 0;
}

.mmz-telefonos__o {
    color: #6f7a77;
    font-size: 13px;
    padding-bottom: 9px;
}

@media (max-width: 767px) {
    .mmz-telefonos__grid {
        grid-template-columns: minmax(0, 1fr);
    }

    /* Apilado, la "o" separa en lugar de flotar junto al borde izquierdo. */
    .mmz-telefonos__o {
        padding: 0;
        text-align: center;
    }
}

.mmz-direccion-cp .panel-body {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.mmz-cp-row {
    display: flex;
    gap: 8px;
    align-items: stretch;
}

.mmz-cp-input {
    flex: 1;
    font-size: 18px;
    font-weight: 600;
    letter-spacing: 0.12em;
    text-align: center;
}

.mmz-cp-btn {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    gap: 8px;
    justify-content: center;
    min-width: 110px;
    white-space: nowrap;
}

.mmz-cp-btn[disabled] {
    cursor: not-allowed;
    opacity: 0.7;
}

.mmz-cp-btn.is-loading {
    cursor: progress;
}

.mmz-cp-btn.is-bloqueado {
    cursor: not-allowed;
    opacity: 0.55;
}

.mmz-cp-btn__spinner {
    border: 2px solid rgba(255, 255, 255, 0.4);
    border-radius: 50%;
    border-top-color: #fff;
    display: inline-block;
    height: 14px;
    width: 14px;
    animation: mmz-spin 0.8s linear infinite;
}

.mmz-cp-btn__spinner[hidden] {
    display: none;
}

.mmz-cp-feedback {
    display: block;
    font-size: 12px;
    margin-top: 6px;
    min-height: 16px;
}

.mmz-cp-feedback--ok {
    color: #1d6f5d;
}

.mmz-cp-feedback--error {
    color: #9c1c1c;
}

.form-control[aria-invalid="true"] {
    border-color: #b10f2e;
    box-shadow: 0 0 0 1px rgba(177, 15, 46, 0.16);
}

.mmz-cp-resultado[hidden] {
    display: none;
}

.mmz-cp-resultado__chip {
    align-items: center;
    background-color: #e6f3ee;
    border: 1px solid #b9d8cc;
    border-radius: 6px;
    color: #1d6f5d;
    display: flex;
    gap: 12px;
    padding: 10px 14px;
}

.mmz-cp-resultado__chip strong {
    color: #155146;
    display: block;
    font-size: 16px;
    letter-spacing: 0.04em;
}

.mmz-cp-resultado__chip small {
    color: #2f6f5e;
    display: block;
    font-size: 12px;
}

.mmz-cp-resultado__icon {
    align-items: center;
    background-color: #1d6f5d;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 32px;
    font-size: 11px;
    font-weight: 700;
    height: 32px;
    justify-content: center;
    width: 32px;
}

.mmz-cp-cambiar-wrap {
    margin: 12px 0 0;
}

.mmz-cp-cambiar {
    align-items: center;
    border-color: #6f253d;
    color: #6f253d;
    display: inline-flex;
    font-size: 14px;
    font-weight: 600;
    gap: 8px;
    min-height: 40px;
    padding: 8px 13px;
}

.mmz-cp-cambiar:hover,
.mmz-cp-cambiar:focus {
    background-color: #f8eef1;
    border-color: #5b1830;
    color: #5b1830;
}

/* Preguntas iniciales del registro anticipado. */
.mmz-opciones-educativas__paso {
    color: #6f253d;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .05em;
    margin: 0 0 6px;
    text-transform: uppercase;
}

.panel.mmz-step-card.mmz-opciones-educativas > .panel-body {
    padding: 24px;
}

.mmz-opciones-educativas__ayuda {
    color: #66736e;
    font-size: 14px;
    margin: 0 0 22px;
}

.mmz-opciones-educativas__ayuda > span {
    color: #a82924;
    font-weight: 700;
}

.mmz-opciones-educativas__grupo {
    border: 0;
    margin: 0;
    min-width: 0;
    padding: 0;
}

.mmz-opciones-educativas__grupo + .mmz-opciones-educativas__grupo {
    border-top: 1px solid #e6ece9;
    margin-top: 26px;
    padding-top: 26px;
}

.mmz-opciones-educativas__legend {
    align-items: flex-start;
    color: #27332f;
    display: flex;
    font-size: 16px;
    gap: 11px;
    line-height: 1.35;
    margin: 0 0 14px;
    padding: 0;
    width: 100%;
}

.mmz-opciones-educativas__legend strong,
.mmz-opciones-educativas__legend small {
    display: block;
}

.mmz-opciones-educativas__legend strong {
    font-size: 17px;
    font-weight: 700;
}

.mmz-opciones-educativas__legend small {
    color: #687570;
    font-size: 13px;
    font-weight: 400;
    margin-top: 2px;
}

.mmz-opciones-educativas__numero {
    align-items: center;
    background: #1d6f5d;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 28px;
    font-size: 13px;
    font-weight: 700;
    height: 28px;
    justify-content: center;
    margin-top: 1px;
    width: 28px;
}

.mmz-opciones-educativas__legend .mmz-required {
    margin-left: auto;
}

.mmz-opciones-educativas__lista {
    display: grid;
    gap: 9px;
}

.mmz-opciones-educativas__opcion {
    align-items: center;
    background: #fff;
    border: 1px solid #d7e0dc;
    border-radius: 8px;
    color: #34413c;
    cursor: pointer;
    display: flex;
    font-size: 15px;
    font-weight: 600;
    gap: 12px;
    line-height: 1.4;
    margin: 0;
    min-height: 54px;
    padding: 13px 15px;
    transition: background-color .16s ease, border-color .16s ease, box-shadow .16s ease, transform .16s ease;
}

.mmz-opciones-educativas__opcion:hover {
    background: #f4f8f6;
    border-color: #82ad9f;
}

.mmz-opciones-educativas__opcion:has(input:checked) {
    background: #e9f4ef;
    border-color: #26715f;
    box-shadow: 0 0 0 1px #26715f;
}

.mmz-opciones-educativas__opcion:has(input:focus-visible) {
    box-shadow: 0 0 0 3px rgb(35 91 78 / 24%);
}

.mmz-opciones-educativas__opcion input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.mmz-opciones-educativas__radio {
    background: #fff;
    border: 2px solid #8c9893;
    border-radius: 50%;
    flex: 0 0 18px;
    height: 18px;
    position: relative;
    width: 18px;
}

.mmz-opciones-educativas__opcion input:checked + .mmz-opciones-educativas__radio {
    border-color: #1d6f5d;
}

.mmz-opciones-educativas__opcion input:checked + .mmz-opciones-educativas__radio::after {
    background: #1d6f5d;
    border-radius: 50%;
    content: '';
    height: 8px;
    left: 3px;
    position: absolute;
    top: 3px;
    width: 8px;
}

.mmz-step-actions.mmz-opciones-educativas__acciones {
    box-shadow: none;
    margin: 0;
}

.mmz-direccion-form-panel[hidden] {
    display: none;
}

.mmz-direccion-form-panel input[readonly] {
    background-color: #f4f7f9;
    color: #1f2937;
    cursor: default;
}

.mmz-colonia-select {
    background-color: #fff;
}

.mmz-noint-row {
    align-items: center;
    display: flex;
    gap: 14px;
}

.mmz-noint-row .form-control {
    flex: 1;
}

.mmz-sn-toggle {
    align-items: center;
    background-color: #f4f7f9;
    border: 1px solid #d6dbdf;
    border-radius: 4px;
    cursor: pointer;
    display: inline-flex;
    font-weight: 500;
    gap: 6px;
    margin: 0;
    padding: 8px 12px;
    white-space: nowrap;
}

.mmz-sn-toggle input {
    height: 16px;
    margin: 0;
    width: 16px;
}

.mmz-input-help {
    color: #6b7280;
    display: block;
    font-size: 12px;
    margin-top: 6px;
}

.mmz-direccion-placeholder[hidden] {
    display: none;
}

.mmz-direccion-placeholder .panel-body {
    align-items: center;
    display: flex;
    justify-content: center;
    min-height: 220px;
}

.mmz-direccion-placeholder__inner {
    align-items: center;
    color: #4a4a4a;
    display: flex;
    flex-direction: column;
    gap: 12px;
    text-align: center;
}

.mmz-direccion-placeholder__icon {
    align-items: center;
    background-color: #eef2f3;
    border-radius: 50%;
    color: #235b4e;
    display: inline-flex;
    font-size: 14px;
    font-weight: 700;
    height: 48px;
    justify-content: center;
    letter-spacing: 0.05em;
    width: 48px;
}

.mmz-cambio-cp-modal .mmz-cambio-cp-modal__dialogo {
    background:
        radial-gradient(circle at 100% 0, rgba(21, 81, 70, 0.08), transparent 210px),
        #fff;
    border: 1px solid rgba(15, 63, 55, 0.14);
    border-radius: 18px;
    box-shadow: 0 28px 80px rgba(15, 23, 32, 0.3);
    max-height: calc(100vh - 40px);
    max-height: calc(100dvh - 40px);
    max-width: 610px;
    overflow: auto;
}

.mmz-cambio-cp-modal .mmz-modal__header {
    align-items: flex-start;
    border-bottom: 0;
    padding: 26px 28px 10px;
}

.mmz-cambio-cp-modal__encabezado {
    align-items: center;
    display: flex;
    gap: 14px;
    min-width: 0;
}

.mmz-cambio-cp-modal__icono {
    align-items: center;
    background-color: #fff5df;
    border: 1px solid #efd6a7;
    border-radius: 15px;
    color: #9a5d00;
    display: inline-flex;
    flex: 0 0 52px;
    height: 52px;
    justify-content: center;
    transform: rotate(-2deg);
    width: 52px;
}

.mmz-cambio-cp-modal__encabezado small {
    color: #68766f;
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 1.2;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.mmz-cambio-cp-modal .mmz-modal__header h3 {
    color: #172720;
    font-size: 22px;
    font-weight: 650;
    line-height: 1.22;
    margin: 0;
    text-wrap: balance;
}

.mmz-cambio-cp-modal .mmz-modal__cerrar {
    margin: 0 -7px 0 12px;
}

.mmz-cambio-cp-modal .mmz-modal__cuerpo {
    padding: 6px 28px 28px;
}

.mmz-cambio-cp-modal .mmz-modal__cuerpo > #mmz-cambio-cp-mensaje {
    color: #50605a;
    font-size: 15px;
    line-height: 1.6;
    margin: 10px 0 0;
    text-wrap: pretty;
}

.mmz-cambio-cp-modal__comparacion {
    align-items: stretch;
    background-color: #f5f8f7;
    border: 1px solid #dce5e2;
    border-radius: 13px;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    margin-top: 20px;
    padding: 13px;
}

.mmz-cambio-cp-modal__comparacion > div {
    align-items: center;
    background-color: #fff;
    border: 1px solid #e1e7e5;
    border-radius: 9px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-width: 0;
    padding: 10px 12px;
}

.mmz-cambio-cp-modal__comparacion > div.is-nuevo {
    background-color: #eef7f3;
    border-color: #b9d8cc;
}

.mmz-cambio-cp-modal__comparacion span:not(.mmz-cambio-cp-modal__flecha) {
    color: #72807a;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.mmz-cambio-cp-modal__comparacion strong {
    color: #34443f;
    font-size: 20px;
    letter-spacing: 0.08em;
    line-height: 1.25;
    margin-top: 3px;
}

.mmz-cambio-cp-modal__comparacion .is-nuevo strong {
    color: #155146;
}

.mmz-cambio-cp-modal__flecha {
    align-items: center;
    color: #87958f;
    display: inline-flex;
    font-size: 21px;
    justify-content: center;
}

.mmz-cambio-cp-modal__plantel {
    align-items: center;
    background-color: #f8faf9;
    border: 1px solid #e0e7e4;
    border-radius: 12px;
    display: flex;
    gap: 12px;
    margin-top: 16px;
    padding: 12px 14px;
}

.mmz-cambio-cp-modal__plantel[hidden] {
    display: none;
}

.mmz-cambio-cp-modal__plantel-icono {
    align-items: center;
    background-color: #155146;
    border-radius: 10px;
    color: #fff;
    display: inline-flex;
    flex: 0 0 38px;
    font-size: 14px;
    font-weight: 700;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.mmz-cambio-cp-modal__plantel > div {
    min-width: 0;
}

.mmz-cambio-cp-modal__plantel small,
.mmz-cambio-cp-modal__plantel strong,
.mmz-cambio-cp-modal__plantel > div span {
    display: block;
}

.mmz-cambio-cp-modal__plantel small {
    color: #718079;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.mmz-cambio-cp-modal__plantel strong {
    color: #20322b;
    font-size: 14px;
    line-height: 1.35;
    margin-top: 2px;
}

.mmz-cambio-cp-modal__plantel > div span {
    color: #68766f;
    font-size: 11px;
    margin-top: 2px;
}

.mmz-cambio-cp-modal .mmz-modal__cuerpo > p.mmz-cambio-cp-modal__aviso {
    align-items: flex-start;
    background-color: #fff8eb;
    border: 1px solid #efd6a7;
    border-radius: 11px;
    color: #6b4500;
    display: flex;
    font-size: 13px;
    font-weight: 600;
    gap: 10px;
    line-height: 1.45;
    margin: 16px 0 0;
    padding: 12px 13px;
}

.mmz-cambio-cp-modal [hidden] {
    display: none !important;
}

.mmz-cambio-cp-modal__aviso > span:first-child {
    align-items: center;
    background-color: #a05d00;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 22px;
    font-size: 12px;
    height: 22px;
    justify-content: center;
    width: 22px;
}

.mmz-cambio-cp-modal .mmz-modal__cuerpo > p.mmz-cambio-cp-modal__error {
    background-color: #fff2f4;
    border: 1px solid #efc8d0;
    border-radius: 10px;
    color: #7f1933;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.45;
    margin: 16px 0 0;
    padding: 11px 13px;
}

.mmz-cambio-cp-modal__acciones {
    border-top: 1px solid #e8edeb;
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 22px;
    padding-top: 18px;
}

.mmz-cambio-cp-modal__acciones .btn {
    align-items: center;
    border-radius: 8px;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    justify-content: center;
    line-height: 1.3;
    min-height: 46px;
    padding: 9px 13px;
    white-space: normal;
}

.mmz-cambio-cp-modal__acciones .btn-primary:last-child:nth-child(3) {
    grid-column: 1 / -1;
}

.mmz-cambio-cp-modal__acciones .btn[hidden] {
    display: none;
}

.mmz-cambio-cp-modal.is-loading .mmz-modal__cuerpo {
    cursor: progress;
}

.mmz-cambio-cp-modal.is-bloqueado .mmz-cambio-cp-modal__icono {
    background-color: #fff0f2;
    border-color: #efc8d0;
    color: #9f2241;
}

@media (max-width: 600px) {
    .mmz-cambio-cp-modal {
        padding: 12px;
    }

    .mmz-cambio-cp-modal__dialogo {
        max-height: calc(100dvh - 24px);
    }

    .mmz-cambio-cp-modal .mmz-modal__header {
        padding: 22px 18px 8px;
    }

    .mmz-cambio-cp-modal__encabezado {
        align-items: flex-start;
    }

    .mmz-cambio-cp-modal__icono {
        border-radius: 12px;
        flex-basis: 44px;
        height: 44px;
        width: 44px;
    }

    .mmz-cambio-cp-modal .mmz-modal__header h3 {
        font-size: 19px;
    }

    .mmz-cambio-cp-modal .mmz-modal__cuerpo {
        padding: 6px 18px 20px;
    }

    .mmz-cambio-cp-modal .mmz-modal__cuerpo > #mmz-cambio-cp-mensaje {
        font-size: 14px;
    }

    .mmz-cambio-cp-modal__comparacion {
        gap: 8px;
        padding: 9px;
    }

    .mmz-cambio-cp-modal__comparacion > div {
        padding: 9px 7px;
    }

    .mmz-cambio-cp-modal__comparacion strong {
        font-size: 17px;
    }

    .mmz-cambio-cp-modal__acciones {
        grid-template-columns: 1fr;
    }

    .mmz-cambio-cp-modal__acciones .btn-primary:last-child:nth-child(3) {
        grid-column: auto;
    }
}

.mmz-responsables-toolbar {
    align-items: center;
    background-color: #f7f9fa;
    border: 1px solid #e1e6ea;
    border-radius: 6px;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    margin-bottom: 18px;
    padding: 12px 16px;
}

.mmz-responsables-toolbar__info {
    align-items: center;
    color: #4a4a4a;
    display: flex;
    font-size: 14px;
    gap: 8px;
}

.mmz-responsables-toolbar__contador {
    background-color: #235b4e;
    border-radius: 999px;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    min-width: 28px;
    padding: 2px 10px;
    text-align: center;
}

.mmz-responsables-list {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.mmz-responsable-card {
    margin-bottom: 0;
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

.mmz-responsable-card.mmz-card-error {
    border-color: #9c1c1c;
    box-shadow: 0 0 0 3px rgba(156, 28, 28, 0.18);
}

.mmz-responsable-card.mmz-card-error > .panel-heading {
    background-color: #fbeaea;
    color: #9c1c1c;
}

.mmz-responsable-card .form-control.is-invalid {
    border-color: #9c1c1c;
    box-shadow: 0 0 0 1px #9c1c1c inset;
}

.mmz-field-error {
    color: #9c1c1c;
    display: block;
    font-size: 12px;
    font-weight: 500;
    margin-top: 6px;
}

.mmz-field-error[hidden] {
    display: none;
}

/* ===== Vista MEDICA ===== */

.mmz-sangre-grid {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(auto-fill, minmax(80px, 1fr));
}

.mmz-sangre-option {
    align-items: center;
    background-color: #fff;
    border: 1px solid #d6dbdf;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    font-weight: 600;
    justify-content: center;
    margin: 0;
    padding: 10px 6px;
    transition: border-color 0.15s ease, background-color 0.15s ease, color 0.15s ease;
}

.mmz-sangre-option input {
    height: 1px;
    margin: -1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    width: 1px;
}

.mmz-sangre-option span {
    color: #1f2937;
}

.mmz-sangre-option:hover {
    border-color: #235b4e;
}

.mmz-sangre-option:has(input:focus-visible),
.mmz-sino-option:has(input:focus-visible) {
    border-color: #235b4e;
    box-shadow: 0 0 0 3px rgb(35 91 78 / 24%);
}

.mmz-sangre-option input:checked ~ span {
    color: #fff;
}

.mmz-sangre-option:has(input:checked) {
    background-color: #235b4e;
    border-color: #235b4e;
}

.mmz-sangre-option--texto span {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1.1;
}

.mmz-sino-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: 1fr 1fr;
    margin-top: 6px;
}

.mmz-sino-option {
    align-items: center;
    background-color: #fff;
    border: 1px solid #d6dbdf;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    gap: 8px;
    justify-content: center;
    margin: 0;
    padding: 12px 14px;
    transition: border-color 0.15s ease, background-color 0.15s ease;
}

.mmz-sino-option input {
    accent-color: #235b4e;
    height: 16px;
    margin: 0;
    width: 16px;
}

.mmz-sino-option span {
    color: #1f2937;
    font-weight: 600;
}

.mmz-sino-option:hover {
    border-color: #235b4e;
}

.mmz-sino-option:has(input:checked) {
    background-color: #eef5f3;
    border-color: #235b4e;
    box-shadow: 0 0 0 1px #235b4e inset;
}

/* Las preguntas de "Necesidades especiales" son tarjetas Sí/No identicas una
   tras otra. Con la separacion por defecto, el hueco entre una pregunta y la
   siguiente es casi el mismo que hay entre un enunciado y sus botones, asi que
   el bloque se lee corrido y es facil contestar la pregunta que no era. Damos
   mas aire entre preguntas que dentro de cada una; el detalle condicional se
   queda pegado a la pregunta que lo abrio. */
.mmz-medica-form .mmz-fieldset:has(.mmz-sino-grid) {
    margin-bottom: 8px;
}

.mmz-medica-form .mmz-fieldset:has(.mmz-sino-grid) ~ .mmz-fieldset:has(.mmz-sino-grid) {
    margin-top: 26px;
}

/* .mmz-fieldset anula el margen de .form-group, asi que la ayuda del tipo de
   sangre quedaba pegada a la etiqueta del NSS y ambas se leian como un solo
   bloque. Le devolvemos el aire que separa un campo del siguiente. */
.mmz-medica-form .mmz-fieldset:has(.mmz-sangre-grid) {
    margin-bottom: 22px;
}

.mmz-condicional[hidden] {
    display: none;
}

.mmz-condicional {
    background-color: #f4f7f9;
    border-left: 3px solid #235b4e;
    border-radius: 4px;
    padding: 12px 14px;
}

.mmz-medica-form [data-campo-grupo="tipo_sangre"] + [data-campo-grupo="nss"] {
    padding-top: 6px;
}

.mmz-alergias-toggle {
    margin-top: 10px;
}

.mmz-field-group-error {
    background-color: #fbeaea;
    border-radius: 6px;
    padding: 10px 12px;
}

.mmz-field-group-error .mmz-sino-option,
.mmz-field-group-error .mmz-sangre-option,
.mmz-field-group-error .mmz-seguro-salud__opcion {
    border-color: #9c1c1c;
}

.mmz-medica-form .form-control.is-invalid {
    border-color: #9c1c1c;
    box-shadow: 0 0 0 1px #9c1c1c inset;
}

.mmz-seguro-salud__pregunta {
    font-size: 17px;
    line-height: 1.4;
}

.mmz-seguro-salud__ayuda {
    color: #59645f;
    margin: 3px 0 16px;
}

/* Término que trae ayuda al lado: el subrayado punteado lo liga con el icono
   de interrogación que abre el tooltip. */
.mmz-termino-ayuda {
    border-bottom: 1px dotted #59645f;
}

.mmz-seguro-salud__opciones {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mmz-seguro-salud__opcion {
    align-items: center;
    background-color: #fff;
    border: 1px solid #d6dbdf;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    gap: 12px;
    margin: 0;
    min-height: 86px;
    padding: 15px 16px;
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}

.mmz-seguro-salud__opcion:hover {
    border-color: #235b4e;
}

.mmz-seguro-salud__opcion:has(input:checked) {
    background-color: #eef5f3;
    border-color: #235b4e;
    box-shadow: 0 0 0 1px #235b4e inset;
}

.mmz-seguro-salud__opcion:has(input:focus-visible) {
    box-shadow: 0 0 0 3px rgb(35 91 78 / 24%);
}

.mmz-seguro-salud__opcion input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.mmz-seguro-salud__radio {
    background-color: #fff;
    border: 2px solid #89958f;
    border-radius: 50%;
    flex: 0 0 20px;
    height: 20px;
    position: relative;
    width: 20px;
}

.mmz-seguro-salud__opcion input:checked + .mmz-seguro-salud__radio {
    border-color: #235b4e;
}

.mmz-seguro-salud__opcion input:checked + .mmz-seguro-salud__radio::after {
    background-color: #235b4e;
    border-radius: 50%;
    content: '';
    height: 8px;
    left: 4px;
    position: absolute;
    top: 4px;
    width: 8px;
}

.mmz-seguro-salud__texto,
.mmz-seguro-salud__texto strong,
.mmz-seguro-salud__texto small {
    display: block;
}

.mmz-seguro-salud__texto strong {
    color: #27332f;
    font-size: 16px;
    margin-bottom: 3px;
}

.mmz-seguro-salud__texto small {
    color: #59645f;
    font-size: 13px;
    line-height: 1.4;
}

.mmz-seguro-salud__resultado {
    background-color: #eef5f3;
    border-left: 4px solid #235b4e;
    color: #21483e;
    font-weight: 600;
    margin: 16px 0 0;
    padding: 11px 14px;
}

.mmz-seguro-salud__resultado[hidden] {
    display: none;
}

@media (max-width: 767px) {
    .mmz-seguro-salud__opciones {
        grid-template-columns: 1fr;
    }
}

/* ===== Vista DOCUMENTOS ===== */

.mmz-docs-progreso {
    background-color: #fff;
    border: 1px solid #e1e6ea;
    border-radius: 8px;
    margin-bottom: 18px;
    padding: 14px 18px;
}

.mmz-docs-progreso[data-todos-cargados="1"] {
    background-color: #eef5f3;
    border-color: #b9d8cc;
}

.mmz-docs-progreso__cabecera {
    align-items: center;
    color: #1f2937;
    display: flex;
    font-size: 14px;
    gap: 14px;
    justify-content: space-between;
    margin-bottom: 10px;
}

.mmz-docs-progreso__contador strong {
    color: #235b4e;
    font-size: 18px;
}

.mmz-docs-progreso__estado {
    color: #4a4a4a;
    font-size: 13px;
}

.mmz-docs-progreso[data-todos-cargados="1"] .mmz-docs-progreso__estado {
    color: #1d6f5d;
    font-weight: 600;
}

.mmz-docs-progreso__barra {
    background-color: #eef2f3;
    border-radius: 999px;
    height: 8px;
    overflow: hidden;
}

.mmz-docs-progreso__fill {
    background: linear-gradient(90deg, #235b4e, #1d6f5d);
    height: 100%;
    transition: width 0.4s ease;
}

.mmz-docs-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.mmz-doc-card {
    background-color: #fff;
    border: 1px solid #d6dbdf;
    border-radius: 8px;
    padding: 16px 18px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-doc-card.is-cargado {
    border-color: #b9d8cc;
}

.mmz-doc-card.is-pendiente:hover {
    border-color: #235b4e;
    box-shadow: 0 1px 6px rgba(35, 91, 78, 0.08);
}

.mmz-doc-card__header {
    align-items: center;
    display: flex;
    gap: 12px;
    margin-bottom: 12px;
}

.mmz-doc-card__numero {
    align-items: center;
    background-color: #235b4e;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 32px;
    font-size: 14px;
    font-weight: 700;
    height: 32px;
    justify-content: center;
    width: 32px;
}

.mmz-doc-card__titulo {
    flex: 1;
    min-width: 0;
}

.mmz-doc-card__titulo strong {
    color: #1f2937;
    display: block;
    font-size: 15px;
}

.mmz-doc-card__titulo small {
    color: #6b7280;
    display: block;
    font-size: 12px;
    line-height: 1.35;
    margin-top: 2px;
}

.mmz-doc-card__estado {
    flex: 0 0 auto;
}

.mmz-doc-chip {
    border-radius: 999px;
    font-size: 12px;
    font-weight: 600;
    padding: 4px 12px;
    white-space: nowrap;
}

.mmz-doc-chip--ok {
    background-color: #e6f3ee;
    color: #1d6f5d;
}

.mmz-doc-chip--pendiente {
    background-color: #fff4e0;
    color: #a05d00;
}

.mmz-doc-card__body {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mmz-doc-archivo {
    align-items: center;
    background-color: #f7f9fa;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    display: flex;
    gap: 12px;
    padding: 10px 12px;
}

.mmz-doc-archivo__icono {
    align-items: center;
    background-color: #9c1c1c;
    border-radius: 4px;
    color: #fff;
    display: inline-flex;
    flex: 0 0 36px;
    font-size: 11px;
    font-weight: 700;
    height: 36px;
    justify-content: center;
    letter-spacing: 0.04em;
    width: 36px;
}

.mmz-doc-archivo__info {
    flex: 1;
    min-width: 0;
}

.mmz-doc-archivo__info strong {
    color: #1f2937;
    display: block;
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-doc-archivo__info small {
    color: #6b7280;
    display: block;
    font-size: 12px;
}

.mmz-doc-drop {
    align-items: center;
    background-color: #fafcfc;
    border: 2px dashed #b8c2c8;
    border-radius: 8px;
    cursor: pointer;
    display: flex;
    gap: 14px;
    margin: 0;
    padding: 16px 18px;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.mmz-doc-drop:hover,
.mmz-doc-drop.is-dragging {
    background-color: #eef5f3;
    border-color: #235b4e;
}

.mmz-doc-drop.has-file {
    background-color: #eef5f3;
    border-color: #1d6f5d;
    border-style: solid;
}

.mmz-doc-drop.has-error {
    background-color: #fbeaea;
    border-color: #9c1c1c;
}

.mmz-doc-drop input[type="file"] {
    height: 0.1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    width: 0.1px;
    z-index: -1;
}

.mmz-doc-drop__icono {
    align-items: center;
    background-color: #235b4e;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 32px;
    font-size: 18px;
    font-weight: 700;
    height: 32px;
    justify-content: center;
    width: 32px;
}

.mmz-doc-drop.has-file .mmz-doc-drop__icono {
    background-color: #1d6f5d;
}

.mmz-doc-drop.has-error .mmz-doc-drop__icono {
    background-color: #9c1c1c;
}

.mmz-doc-drop__texto {
    flex: 1;
    min-width: 0;
}

.mmz-doc-drop__texto strong {
    color: #1f2937;
    display: block;
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-doc-drop__texto small {
    color: #6b7280;
    display: block;
    font-size: 12px;
}

.mmz-doc-drop.has-error .mmz-doc-drop__texto strong {
    color: #9c1c1c;
}

.mmz-doc-actions {
    display: flex;
    justify-content: flex-end;
}

.mmz-doc-btn[disabled] {
    cursor: not-allowed;
    opacity: 0.55;
}

.mmz-doc-btn.is-loading {
    cursor: progress;
}

.btn.disabled,
.btn[data-disabled="1"] {
    cursor: not-allowed;
    opacity: 0.55;
    pointer-events: auto;
}

/* ----- Documentos cargados (top section) ----- */

.mmz-docs-section__titulo {
    color: #1f2937;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin: 18px 0 10px;
    text-transform: uppercase;
}

.mmz-docs-cargados[hidden],
.mmz-docs-pendientes[hidden],
.mmz-docs-completo[hidden] {
    display: none;
}

.mmz-docs-cargados__grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
}

.mmz-doc-cargado {
    align-items: center;
    background-color: #fff;
    border: 1px solid #b9d8cc;
    border-radius: 8px;
    display: flex;
    gap: 12px;
    overflow: hidden;
    padding: 10px 12px;
    position: relative;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease, opacity 0.15s ease;
}

.mmz-doc-cargado:hover {
    border-color: #1d6f5d;
    box-shadow: 0 1px 6px rgba(35, 91, 78, 0.08);
}

.mmz-doc-cargado.is-eliminando {
    opacity: 0.5;
    pointer-events: none;
}

.mmz-doc-cargado__icono {
    align-items: center;
    background-color: #9c1c1c;
    border-radius: 4px;
    color: #fff;
    display: inline-flex;
    flex: 0 0 36px;
    font-size: 11px;
    font-weight: 700;
    height: 36px;
    justify-content: center;
    letter-spacing: 0.04em;
    width: 36px;
}

.mmz-doc-cargado__info {
    flex: 1;
    min-width: 0;
}

.mmz-doc-cargado__info strong {
    color: #155146;
    display: block;
    font-size: 13px;
    line-height: 1.2;
}

.mmz-doc-cargado__info small {
    color: #4a4a4a;
    display: block;
    font-size: 11px;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-doc-cargado__meta {
    color: #6b7280 !important;
}

.mmz-doc-cargado__quitar {
    align-items: center;
    background-color: transparent;
    border: 1px solid transparent;
    border-radius: 50%;
    color: #9c1c1c;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 28px;
    font-size: 18px;
    height: 28px;
    justify-content: center;
    line-height: 1;
    opacity: 0;
    padding: 0;
    transition: opacity 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
    width: 28px;
}

.mmz-doc-cargado:hover .mmz-doc-cargado__quitar,
.mmz-doc-cargado:focus-within .mmz-doc-cargado__quitar {
    opacity: 1;
}

.mmz-doc-cargado__quitar:hover {
    background-color: #fbeaea;
    border-color: #9c1c1c;
}

/* Mostrar siempre el boton quitar en pantallas tactiles */
@media (hover: none) {
    .mmz-doc-cargado__quitar { opacity: 1; }
}

.mmz-resumen-hint {
    align-items: center;
    background-color: #eef5f2;
    border: 1px solid #cfe3db;
    border-radius: 6px;
    color: #155146;
    display: inline-flex;
    font-size: 12.5px;
    gap: 8px;
    line-height: 1.3;
    margin: 0 0 12px;
    padding: 8px 12px;
}

.mmz-resumen-hint__icono {
    font-size: 14px;
    line-height: 1;
}

.mmz-doc-cargado__abrir {
    align-items: center;
    background: transparent;
    border: 0;
    color: inherit;
    cursor: pointer;
    display: flex;
    flex: 1;
    font: inherit;
    gap: 12px;
    min-width: 0;
    padding: 0;
    text-align: left;
}

.mmz-doc-cargado__abrir:focus-visible {
    outline: 2px solid #1d6f5d;
    outline-offset: 2px;
    border-radius: 6px;
}

.mmz-doc-cargado__abrir .mmz-doc-cargado__info strong {
    text-decoration: none;
}

.mmz-doc-cargado__abrir:hover .mmz-doc-cargado__info strong {
    color: #1d6f5d;
}

/* ----- Vista previa de documento ----- */

.mmz-doc-preview[hidden] { display: none !important; }

.mmz-doc-preview {
    align-items: center;
    bottom: 0;
    display: flex;
    justify-content: center;
    left: 0;
    padding: 16px;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 1080;
}

.mmz-doc-preview__backdrop {
    background-color: rgba(15, 35, 30, 0.55);
    inset: 0;
    position: absolute;
}

.mmz-doc-preview__dialogo {
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.25);
    display: flex;
    flex-direction: column;
    max-height: 92vh;
    max-width: 960px;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.mmz-doc-preview__cabecera {
    align-items: center;
    background-color: #f4f7f6;
    border-bottom: 1px solid #d6dbdf;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    padding: 10px 14px;
}

.mmz-doc-preview__titulo {
    color: #155146;
    font-size: 15px;
    font-weight: 600;
    margin: 0;
}

.mmz-doc-preview__acciones {
    align-items: center;
    display: flex;
    gap: 8px;
}

.mmz-doc-preview__cerrar {
    background-color: transparent;
    border: 1px solid transparent;
    border-radius: 50%;
    color: #155146;
    cursor: pointer;
    font-size: 22px;
    height: 32px;
    line-height: 1;
    padding: 0;
    width: 32px;
}

.mmz-doc-preview__cerrar:hover {
    background-color: #e3ece9;
    border-color: #155146;
}

.mmz-doc-preview__cuerpo {
    background-color: #525659;
    flex: 1;
    min-height: 0;
    overflow: hidden;
    position: relative;
}

.mmz-doc-preview__carga {
    align-items: center;
    background: linear-gradient(145deg, #edf5f2 0%, #dceae6 100%);
    display: flex;
    inset: 0;
    justify-content: center;
    opacity: 0;
    padding: 24px;
    position: absolute;
    transition: opacity 180ms ease, visibility 0s linear 180ms;
    visibility: hidden;
    z-index: 2;
}

.mmz-doc-preview.is-loading .mmz-doc-preview__carga,
.mmz-doc-preview.has-load-error .mmz-doc-preview__carga {
    opacity: 1;
    transition-delay: 0s;
    visibility: visible;
}

.mmz-doc-preview.has-load-error .mmz-doc-preview__carga-contenido {
    border-color: #e6bdc6;
    color: #7a1c32;
}

.mmz-doc-preview.has-load-error .mmz-doc-preview__carga-indicador {
    display: none;
}

.mmz-doc-preview__carga-contenido {
    align-items: center;
    background-color: rgba(255, 255, 255, 0.94);
    border: 1px solid #c8ddd7;
    border-radius: 14px;
    box-shadow: 0 12px 32px rgba(20, 72, 62, 0.14);
    color: #155146;
    display: flex;
    flex-direction: column;
    max-width: 330px;
    padding: 28px 32px;
    text-align: center;
    width: 100%;
}

.mmz-doc-preview__carga-indicador {
    animation: mmz-doc-preview-girar 800ms linear infinite;
    border: 3px solid #cfe1dc;
    border-radius: 50%;
    border-top-color: #1d6f5d;
    height: 44px;
    margin-bottom: 16px;
    width: 44px;
}

.mmz-doc-preview__carga-titulo {
    font-size: 16px;
    font-weight: 700;
    line-height: 1.3;
}

.mmz-doc-preview__carga-ayuda {
    color: #5e746e;
    font-size: 13px;
    line-height: 1.45;
    margin-top: 5px;
}

@keyframes mmz-doc-preview-girar {
    to { transform: rotate(360deg); }
}

@media (prefers-reduced-motion: reduce) {
    .mmz-doc-preview__carga {
        transition: none;
    }

    .mmz-doc-preview__carga-indicador {
        animation: none;
    }
}

.mmz-doc-preview__iframe {
    background-color: #525659;
    border: 0;
    display: block;
    height: min(80vh, 720px);
    width: 100%;
}

/* Las fotografias se muestran como imagen: dentro de un iframe quedarian
   pegadas a la esquina y sin ajustar al alto disponible. */
.mmz-doc-preview__img {
    display: block;
    height: min(80vh, 720px);
    margin: 0 auto;
    max-width: 100%;
    object-fit: contain;
}

.mmz-doc-preview__iframe[hidden],
.mmz-doc-preview__img[hidden] {
    display: none;
}

body.mmz-doc-preview-abierta { overflow: hidden; }

/* El scroll del visor no arrastra la pagina de fondo al llegar al limite. */
.mmz-doc-preview,
.mmz-doc-preview__dialogo,
.mmz-doc-preview__cuerpo {
    overscroll-behavior: contain;
}

/* ----- Documentos pendientes ----- */

.mmz-docs-pendientes__lista {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.mmz-docs-pendientes__grupo {
    margin-top: 22px;
}

.mmz-docs-pendientes__grupo:first-child {
    margin-top: 0;
}

.mmz-docs-pendientes__grupo .mmz-docs-section__titulo {
    margin-top: 0;
}

.mmz-docs-pendientes__intro {
    color: #5b6472;
    font-size: 13px;
    margin: -3px 0 10px;
}

.mmz-doc-academico__opciones {
    border: 0;
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-bottom: 14px;
    min-inline-size: 0;
    padding: 0;
}

.mmz-doc-academico__opciones[hidden] {
    display: none;
}

.mmz-doc-academico__opcion {
    align-items: flex-start;
    background-color: #fff;
    border: 1px solid #d6dbdf;
    border-radius: 8px;
    color: #263242;
    cursor: pointer;
    display: flex;
    font-size: 13px;
    gap: 9px;
    line-height: 1.35;
    margin: 0;
    min-height: 56px;
    padding: 12px;
    transition: border-color 0.15s ease, background-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-doc-academico__opcion:hover,
.mmz-doc-academico__opcion:has(input:checked) {
    background-color: #eef5f3;
    border-color: #235b4e;
    box-shadow: 0 1px 5px rgba(35, 91, 78, 0.08);
}

.mmz-doc-academico__opcion input {
    flex: 0 0 auto;
    margin: 2px 0 0;
}

.mmz-doc-pendiente {
    background-color: #fff;
    border: 1px solid #d6dbdf;
    border-radius: 8px;
    padding: 16px 18px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-doc-pendiente:hover {
    border-color: #235b4e;
    box-shadow: 0 1px 6px rgba(35, 91, 78, 0.08);
}

.mmz-doc-pendiente__header {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 12px;
}

.mmz-doc-pendiente__titulo {
    flex: 1;
    min-width: 0;
}

.mmz-doc-pendiente__titulo strong {
    color: #1f2937;
    display: block;
    font-size: 15px;
}

.mmz-doc-pendiente__titulo small {
    color: #6b7280;
    display: block;
    font-size: 12px;
    line-height: 1.35;
    margin-top: 2px;
}

/* drop-zone progreso (extiende mmz-doc-drop existente) */

.mmz-doc-drop.is-subiendo {
    background-color: #f4f7f9;
    border-color: #235b4e;
    border-style: solid;
    cursor: progress;
    pointer-events: none;
}

.mmz-doc-drop.is-subiendo .mmz-doc-drop__texto {
    opacity: 0.5;
}

.mmz-doc-drop__progreso {
    align-items: center;
    background-color: rgba(255, 255, 255, 0.85);
    border-radius: 8px;
    bottom: 0;
    color: #235b4e;
    display: flex;
    font-size: 13px;
    font-weight: 600;
    gap: 10px;
    inset: 0;
    justify-content: center;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.mmz-doc-drop__progreso[hidden] {
    display: none;
}

.mmz-doc-drop {
    position: relative;
}

.mmz-doc-drop__spinner {
    border: 3px solid rgba(35, 91, 78, 0.2);
    border-radius: 50%;
    border-top-color: #235b4e;
    display: inline-block;
    height: 18px;
    width: 18px;
    animation: mmz-spin 0.8s linear infinite;
}

/* ----- Sección "todos cargados" ----- */

.mmz-docs-completo {
    align-items: center;
    background-color: #eef5f3;
    border: 1px solid #b9d8cc;
    border-radius: 8px;
    display: flex;
    gap: 14px;
    margin-top: 18px;
    padding: 16px 18px;
}

.mmz-docs-completo__icono {
    align-items: center;
    background-color: #1d6f5d;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 38px;
    font-size: 13px;
    font-weight: 700;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.mmz-docs-completo p {
    color: #155146;
    margin: 0;
}

.mmz-docs-completo p strong {
    display: block;
    font-size: 14px;
}

.mmz-docs-completo p small {
    color: #2f6f5e;
    display: block;
    font-size: 12px;
}

/* ===== Vista RESUMEN ===== */

.mmz-resumen-persona {
    align-items: center;
    background: #fff;
    border: 1px solid #e3dcdf;
    border-left: 5px solid #611232;
    border-radius: 12px;
    box-shadow: 0 5px 18px rgb(65 23 38 / 6%);
    display: flex;
    gap: 18px;
    margin-bottom: 20px;
    padding: 19px 21px;
}

.mmz-resumen-persona__avatar {
    align-items: center;
    background: #f7edf1;
    border-radius: 50%;
    color: #611232;
    display: inline-flex;
    flex: 0 0 64px;
    font-size: 28px;
    font-weight: 700;
    height: 64px;
    justify-content: center;
    text-transform: uppercase;
    width: 64px;
}

.mmz-resumen-persona__info {
    flex: 1;
    min-width: 0;
}

.mmz-resumen-persona__eyebrow {
    color: #8a6a3f;
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.1em;
    margin-bottom: 2px;
    text-transform: uppercase;
}

.mmz-resumen-persona__info h3 {
    color: #2b3431;
    font-size: 21px;
    line-height: 1.3;
    margin: 0 0 8px;
}

.mmz-resumen-persona__datos {
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    gap: 8px 20px;
    margin: 0;
}

.mmz-resumen-persona__dato {
    color: #3f4945;
    font-weight: 600;
    white-space: nowrap;
}

.mmz-resumen-persona__dato small {
    color: #7a837f;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-right: 4px;
    text-transform: uppercase;
}

.mmz-resumen-persona__status {
    background: #f7f2ea;
    border: 1px solid #e8d9c4;
    border-radius: 999px;
    color: #6f4e21;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 700;
    padding: 8px 12px;
}

.mmz-resumen-card {
    margin-bottom: 18px;
}

.panel.mmz-resumen-card > .panel-heading.mmz-resumen-card__heading {
    align-items: center;
    background: #fbfcfc;
    border-bottom: 1px solid #edf1f0;
    display: flex;
    font-size: 16px;
    font-weight: 700;
    gap: 10px;
    justify-content: space-between;
    padding: 14px 17px;
}

.mmz-resumen-card__count {
    background: #f3f4f4;
    border-radius: 999px;
    color: #5c6863;
    font-size: 12px;
    font-weight: 700;
    margin-left: 8px;
    padding: 2px 10px;
}

.mmz-resumen-card__count.is-pending {
    background: #fff3dd;
    color: #89570d;
}

.mmz-resumen-card__count.is-complete {
    background: #f7edf1;
    color: #611232;
}

.mmz-resumen-card__editar {
    border: 1px solid #d7c3ca;
    border-radius: 6px;
    color: #611232;
    font-size: 12.5px;
    font-weight: 700;
    line-height: 1;
    padding: 7px 10px;
    text-decoration: none;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.mmz-resumen-card__editar:hover,
.mmz-resumen-card__editar:focus-visible {
    background: #f7edf1;
    border-color: #b8919f;
    color: #611232;
    text-decoration: none;
}

.panel.mmz-resumen-card > .panel-body.mmz-resumen-card__body {
    padding: 9px 18px 12px;
}

.mmz-resumen-card__empty {
    color: #6b7280;
    font-style: italic;
    margin: 6px 0 3px;
}

.mmz-resumen-dl {
    display: grid;
    gap: 0;
    grid-template-columns: 1fr;
    margin: 0;
}

.mmz-resumen-dl--cols {
    column-gap: 28px;
    grid-template-columns: 1fr 1fr;
}

.mmz-resumen-card .mmz-resumen-dl > div,
.mmz-final-detalle .mmz-resumen-dl > div {
    background: transparent;
    border: 0;
    border-bottom: 1px solid #edf1f0;
    border-radius: 0;
    padding: 10px 0;
}

.mmz-resumen-dl__full {
    grid-column: 1 / -1;
}

.mmz-resumen-dl dt {
    color: #747e79;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.mmz-resumen-dl dd {
    color: #27322e;
    font-size: 15px;
    margin: 3px 0 0;
    word-break: break-word;
}

.mmz-resumen-dl dd small {
    color: #6b7280;
    font-size: 13px;
    margin-left: 4px;
}

.mmz-resumen-direccion {
    color: #27322e;
    display: flex;
    flex-direction: column;
    font-size: 15px;
    gap: 4px;
    line-height: 1.5;
    margin: 3px 0 0;
    padding: 8px 0;
}

/* Dentro de una lista de datos, el renglón ya trae su propio espaciado: aquí
   solo se conservan los saltos de línea de la dirección. */
.mmz-resumen-dl dd.mmz-resumen-direccion {
    margin: 3px 0 0;
    padding: 0;
}

.mmz-resumen-direccion small {
    color: #747e79;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

/* Con uno o dos responsables, que es el caso normal, la lista vertical dejaba
   media tarjeta en blanco. Se usa auto-fill y no auto-fit para que un solo
   responsable ocupe una columna en vez de estirarse a todo lo ancho. */
.mmz-resumen-responsables {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(auto-fill, minmax(340px, 1fr));
}

/* Las tres tarjetas de la primera fila se igualan de alto: con las columnas
   flotadas de Bootstrap, la dirección quedaba como un escalón junto al resto. */
.mmz-resumen-fila {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
    /* El margen inferior pasa a la fila: al estirar las tarjetas al alto de la
       celda, el suyo quedaba dentro y se comía la separación con la siguiente
       sección. */
    margin-bottom: 18px;
    row-gap: 18px;
}

/* El clearfix de .row se convierte en dos celdas fantasma dentro de la rejilla. */
.mmz-resumen-fila::before,
.mmz-resumen-fila::after {
    display: none;
}

.mmz-resumen-fila > [class*='col-'] {
    float: none;
    width: 100%;
}

.mmz-resumen-fila > [class*='col-'] > .mmz-resumen-card {
    height: 100%;
    margin-bottom: 0;
}

/* Etiqueta a la izquierda y valor a la derecha: cada dato ocupa su renglón y
   deja de partirse en mitades ilegibles cuando la tarjeta es angosta. */
.mmz-resumen-responsable__datos {
    display: grid;
    gap: 4px 10px;
    grid-template-columns: auto minmax(0, 1fr);
    margin: 8px 0 0;
}

.mmz-resumen-responsable__datos > div {
    display: contents;
}

.mmz-resumen-responsable__datos dt {
    color: #8a9491;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding-top: 2px;
    text-transform: uppercase;
    white-space: nowrap;
}

.mmz-resumen-responsable__datos dd {
    color: #3f4a47;
    font-size: 13px;
    line-height: 1.45;
    margin: 0;
    overflow-wrap: anywhere;
}

/* Estado del resumen: lo unico que puede faltar al llegar aqui son los
   documentos, asi que se anuncia junto al nombre y no al final del scroll. */
.mmz-resumen-estado {
    align-items: center;
    border-radius: 10px;
    display: flex;
    gap: 12px;
    margin: 0 0 18px;
    padding: 12px 16px;
}

.mmz-resumen-estado__icono {
    align-items: center;
    border-radius: 50%;
    display: inline-flex;
    flex: none;
    font-size: 13px;
    font-weight: 700;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.mmz-resumen-estado__texto {
    flex: 1;
    font-size: 14.5px;
    line-height: 1.5;
    margin: 0;
}

.mmz-resumen-estado__accion {
    flex: none;
    white-space: nowrap;
}

.mmz-resumen-estado--pendiente {
    background-color: #fff8ec;
    border: 1px solid #f0dfc0;
}

.mmz-resumen-estado--pendiente .mmz-resumen-estado__texto {
    color: #6b4500;
}

.mmz-resumen-estado--pendiente .mmz-resumen-estado__icono {
    background-color: #a05d00;
    color: #fff;
}

.mmz-resumen-estado--ok {
    background-color: #f8f5f6;
    border: 1px solid #e1d2d7;
}

.mmz-resumen-estado--ok .mmz-resumen-estado__texto {
    color: #553440;
}

/* Informacion medica: los datos duros arriba y las condiciones como frases que
   ya traen su etiqueta, para no gastar un renglon por cada si o no. */
/* Una aclaración larga no cabe pegada al valor como los detalles cortos de
   turno: se baja a su propio renglón. */
.mmz-resumen-dl dd small.mmz-resumen-dl__nota {
    color: #6f7a77;
    display: block;
    font-size: 12.5px;
    line-height: 1.4;
    margin: 3px 0 0;
}

.mmz-resumen-medica__vacio {
    color: #8a9491;
}

/* La lista de datos de arriba ya cierra con su propia línea, así que los chips
   solo necesitan aire, no otro separador. */
.mmz-resumen-condiciones {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
}

/* Lo declarado resalta en ámbar y lo negativo se atenúa: el chip sigue estando
   para dejar ver que la pregunta se contestó. El detalle va debajo de la
   etiqueta para que uno largo no estire la fila. */
.mmz-resumen-condicion {
    background-color: #fdf6e6;
    border: 1px solid #ead69d;
    border-radius: 6px;
    color: #6b4c12;
    font-size: 13px;
    max-width: 100%;
    padding: 6px 12px;
}

.mmz-resumen-condicion strong {
    display: block;
    font-weight: 700;
}

.mmz-resumen-condicion span {
    display: block;
    line-height: 1.4;
}

.mmz-resumen-condicion--no {
    background-color: #fafbfc;
    border-color: #eceff1;
    color: #8a9491;
}

.mmz-resumen-condicion--no strong {
    font-weight: 400;
}

/* Los opcionales capturados son textos largos: se quedan a un renglón por dato
   en vez de repartirse en columnas. */
.mmz-resumen-medica__notas {
    margin-top: 4px;
}

.mmz-resumen-medica__vacios {
    color: #8a9491;
    font-size: 13px;
    margin: 12px 0 0;
}

.mmz-resumen-responsable {
    background: #fbfcfc;
    border: 1px solid #e6ebe9;
    border-left: 4px solid #611232;
    border-radius: 8px;
    padding: 13px 14px;
}

.mmz-resumen-responsable__cabecera {
    /* Con el nombre en dos renglones, centrar dejaba el parentesco flotando a
       media altura; alineado arriba acompaña a la primera línea. */
    align-items: flex-start;
    display: flex;
    gap: 10px;
    justify-content: space-between;
    margin-bottom: 4px;
}

.mmz-resumen-responsable__cabecera > .mmz-resumen-chip {
    flex: none;
}

.mmz-resumen-responsable__cabecera strong {
    color: #1f2937;
    font-size: 15px;
}

.mmz-resumen-responsable__meta,
.mmz-resumen-responsable__direccion {
    color: #4a4a4a;
    font-size: 13px;
    line-height: 1.4;
    margin: 2px 0 0;
}

.mmz-resumen-responsable__direccion {
    color: #6b7280;
}

.mmz-resumen-chip,
.mmz-resumen-valor-destacado {
    background: #f7edf1;
    border-radius: 999px;
    color: #611232;
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    padding: 5px 9px;
}

.mmz-resumen-card .mmz-doc-cargado {
    border-color: #e0e6e4;
    border-radius: 8px;
}

.mmz-resumen-card .mmz-doc-cargado:not(.is-faltante):hover {
    border-color: #b8919f;
    box-shadow: 0 3px 10px rgb(97 18 50 / 8%);
}

.mmz-resumen-card .mmz-doc-cargado__info strong {
    color: #303b37;
}

.mmz-doc-cargado.is-faltante {
    background-color: #fff8ec;
    border-color: #f0d6a8;
}

.mmz-doc-cargado.is-faltante .mmz-doc-cargado__icono {
    background-color: #a05d00;
}

.mmz-doc-cargado.is-faltante .mmz-doc-cargado__info strong {
    color: #6b4500;
}

.mmz-resumen-aviso {
    align-items: center;
    border-radius: 10px;
    display: flex;
    gap: 14px;
    margin: 16px 0;
    padding: 14px 18px;
}

.mmz-resumen-aviso--ok {
    background-color: #f8f5f6;
    border: 1px solid #e1d2d7;
}

.mmz-resumen-aviso--ok p {
    color: #553440;
}

.mmz-resumen-aviso--alerta {
    background-color: #fff8ec;
    border: 1px solid #f0d6a8;
}

.mmz-resumen-aviso--alerta p {
    color: #6b4500;
}

.mmz-resumen-aviso__icono {
    align-items: center;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 36px;
    font-size: 13px;
    font-weight: 700;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.mmz-resumen-aviso--ok .mmz-resumen-aviso__icono {
    background-color: #611232;
}

.mmz-resumen-aviso--alerta .mmz-resumen-aviso__icono {
    background-color: #a05d00;
}

.mmz-resumen-aviso p {
    margin: 0;
}

.mmz-resumen-aviso p strong {
    display: block;
    font-size: 14px;
    margin-bottom: 2px;
}

/* ===== Vista FINALIZADO ===== */

.mmz-final-confirmacion {
    align-items: center;
    background: #fff;
    border: 1px solid #e3dcdf;
    border-left: 5px solid #611232;
    border-radius: 13px;
    box-shadow: 0 8px 24px rgb(65 23 38 / 8%);
    display: flex;
    gap: 22px;
    margin: 8px 0 22px;
    padding: 26px 28px;
}

.mmz-final-confirmacion__icono {
    align-items: center;
    background: #f7edf1;
    border-radius: 50%;
    color: #611232;
    display: inline-flex;
    flex: 0 0 72px;
    height: 72px;
    justify-content: center;
    width: 72px;
}

.mmz-final-confirmacion__texto {
    flex: 1;
    min-width: 0;
}

.mmz-final-confirmacion__eyebrow {
    color: #8a6a3f;
    display: block;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.11em;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.mmz-final-confirmacion__texto h2 {
    color: #303030;
    font-size: clamp(28px, 3vw, 36px);
    line-height: 1.2;
    margin: 0 0 7px;
}

.mmz-final-confirmacion__texto p {
    color: #59635f;
    font-size: 16px;
    line-height: 1.5;
    margin: 0;
}

.mmz-final-confirmacion__meta {
    color: #66716d;
    font-size: 13px !important;
    line-height: 1.5;
    margin-top: 10px !important;
}

.mmz-final-confirmacion__texto p strong {
    color: #3d4642;
}

.mmz-final-identificadores {
    background: #fff;
    border: 1px solid #e0e6e4;
    border-radius: 13px;
    box-shadow: 0 5px 18px rgb(28 56 49 / 5%);
    margin-bottom: 22px;
    overflow: hidden;
}

.mmz-final-section-heading {
    align-items: center;
    background: #fbfcfc;
    border-bottom: 1px solid #edf1f0;
    display: flex;
    gap: 18px;
    justify-content: space-between;
    padding: 17px 20px;
}

.mmz-final-section-heading h3 {
    color: #25312e;
    font-size: 20px;
    line-height: 1.3;
    margin: 0 0 3px;
    text-align: left;
}

.mmz-final-section-heading p {
    color: #66716d;
    font-size: 14px;
    line-height: 1.45;
    margin: 0;
}

.mmz-final-section-heading__status {
    background: #f7f2ea;
    border: 1px solid #e8d9c4;
    border-radius: 999px;
    color: #6f4e21;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    padding: 8px 12px;
}

.mmz-final-identificadores__grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    padding: 20px;
}

.mmz-final-identificador {
    background-color: #fff;
    border: 1px solid #e0d7da;
    border-top: 4px solid #611232;
    border-radius: 9px;
    min-width: 0;
    padding: 18px 20px;
    text-align: center;
}

.mmz-final-identificador__label {
    color: #6b7280;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.mmz-final-identificador__valor {
    color: #611232;
    font-family: 'Menlo', 'Consolas', monospace;
    font-size: clamp(20px, 3vw, 28px);
    font-weight: 700;
    letter-spacing: 0.05em;
    margin: 6px 0 8px;
    overflow-wrap: anywhere;
}

.mmz-final-identificador__valor--pendiente {
    color: #6b7280;
    font-family: inherit;
    font-size: 20px;
    letter-spacing: 0;
}

.mmz-final-identificador small {
    color: #4a4a4a;
    display: block;
    font-size: 13px;
    line-height: 1.4;
}

.mmz-final-identificador__copiar {
    align-items: center;
    background-color: #fff;
    border: 1px solid #cfd6d4;
    border-radius: 7px;
    color: #611232;
    cursor: pointer;
    display: inline-flex;
    font-size: 12.5px;
    font-weight: 700;
    gap: 6px;
    margin-top: 12px;
    padding: 7px 13px;
}

.mmz-final-identificador__copiar:hover {
    background-color: #fbf6f8;
    border-color: #611232;
}

.mmz-final-identificador__copiar:focus {
    outline: 3px solid rgb(97 18 50 / 22%);
    outline-offset: 2px;
}

.mmz-final-identificador__copiar.is-copiado {
    background-color: #eaf5ef;
    border-color: #bfe0cf;
    color: #1b5e46;
}

.mmz-final-identificadores__pie {
    align-items: center;
    border-top: 1px solid #edf1f0;
    color: #66716d;
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    gap: 12px;
    justify-content: space-between;
    padding: 14px 20px;
}

.mmz-final-identificadores__imprimir {
    white-space: normal;
}

.mmz-final-identificadores__aviso {
    background-color: #fff8e6;
    border: 1px solid #e8d69f;
    border-radius: 8px;
    color: #6d5200;
    font-size: 13px;
    line-height: 1.45;
    margin: 0 20px 20px;
    padding: 10px 14px;
    text-align: center;
}

.mmz-final-detalle {
    background: #fff;
    border: 1px solid #e0e6e4;
    border-radius: 13px;
    box-shadow: 0 5px 18px rgb(28 56 49 / 5%);
    margin-bottom: 22px;
    overflow: hidden;
}

.mmz-final-detalle__cuerpo {
    padding: 8px 20px 14px;
}

.mmz-final-pasos {
    background: #fff;
    border: 1px solid #e0e6e4;
    border-radius: 13px;
    box-shadow: 0 5px 18px rgb(28 56 49 / 5%);
    margin-bottom: 22px;
    overflow: hidden;
}

/* Los pasos son una secuencia: una sola columna con hilo conector para que se
   lean en orden, sin depender de estados que el sistema no puede conocer. */
.mmz-final-pasos__lista {
    display: grid;
    gap: 0;
    grid-template-columns: 1fr;
    list-style: none;
    margin: 0;
    padding: 20px 20px 8px;
}

/* Cierre de la lista de pasos: no es un paso más —no hay nada que hacer, solo
   esperar—, así que va aparte y sin número. */
.mmz-final-pendiente {
    align-items: flex-start;
    background-color: #fbf6f8;
    border-top: 1px solid #ecd9e1;
    display: flex;
    gap: 13px;
    padding: 16px 20px 18px;
}

.mmz-final-pendiente__icono {
    align-items: center;
    background-color: #f3e0e8;
    border-radius: 50%;
    color: #611232;
    display: inline-flex;
    flex: 0 0 36px;
    height: 36px;
    justify-content: center;
}

.mmz-final-pendiente strong {
    color: #611232;
    display: block;
    font-size: 18px;
    margin-bottom: 5px;
}

.mmz-final-pendiente p {
    color: #5d2740;
    font-size: 17px;
    line-height: 1.6;
    margin: 0;
    text-wrap: pretty;
}

.mmz-final-paso {
    display: grid;
    gap: 0 16px;
    grid-template-columns: 34px minmax(0, 1fr);
    min-width: 0;
    padding-bottom: 22px;
    position: relative;
}

.mmz-final-paso:last-child {
    padding-bottom: 6px;
}

.mmz-final-paso:not(:last-child)::before {
    background-color: #e3e8e6;
    content: '';
    height: calc(100% - 42px);
    left: 16px;
    position: absolute;
    top: 42px;
    width: 2px;
}

.mmz-final-pasos__numero {
    align-items: center;
    background-color: #611232;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 34px;
    font-size: 14px;
    font-weight: 700;
    height: 34px;
    justify-content: center;
    position: relative;
    width: 34px;
    z-index: 1;
}

.mmz-final-paso__contenido {
    min-width: 0;
    padding-top: 6px;
}

.mmz-final-paso__contenido strong {
    color: #1f2937;
    display: block;
    font-size: 15.5px;
    line-height: 1.3;
}

.mmz-final-paso__contenido p {
    color: #4a4a4a;
    font-size: 13.5px;
    line-height: 1.5;
    margin: 5px 0 0;
}

.mmz-final-paso__contenido strong.mmz-final-paso__destacado {
    color: #611232;
    display: inline;
    font-size: inherit;
    font-weight: 700;
}

.mmz-final-paso__aviso {
    background-color: #fbf6f8;
    border: 1px solid #ecd9e1;
    border-radius: 8px;
    color: #5d2740;
    font-size: 13px;
    line-height: 1.5;
    margin-top: 12px;
    padding: 11px 14px;
}

.mmz-final-paso__aviso strong {
    color: inherit;
    font-size: inherit;
    margin-bottom: 2px;
}

.mmz-final-paso__accion {
    align-items: center;
    display: inline-flex;
    gap: 8px;
    margin-top: 14px;
    white-space: normal;
}

.mmz-final-paso__accion .mmz-btn__icono {
    flex: 0 0 auto;
}

/* Cuando la accion no se puede ofrecer, el boton sigue a la vista y esta nota
   explica al aspirante que hacer. Va debajo del boton, como pildora: se nota,
   pero se ciñe a su texto en lugar de ocupar el ancho del paso. */
.mmz-final-paso__nota {
    align-items: center;
    background-color: #fff3d4;
    border: 1px solid #e3c266;
    border-radius: 8px;
    color: #6b4e0c;
    display: flex;
    font-size: 12.5px;
    font-weight: 600;
    gap: 7px;
    line-height: 1.4;
    margin: 9px 0 0;
    max-width: 100%;
    padding: 7px 12px;
    width: fit-content;
}

.mmz-final-paso__nota[hidden] {
    display: none;
}

.mmz-final-paso__nota-icono {
    align-items: center;
    color: #a87c15;
    display: inline-flex;
    flex: 0 0 auto;
    justify-content: center;
}

.mmz-final-paso__accion:focus {
    outline: 3px solid rgb(97 18 50 / 22%);
    outline-offset: 3px;
}

.mmz-final-paso__accion[disabled] {
    background-color: #e5e7eb;
    border-color: #cbd0d5;
    box-shadow: none;
    color: #4b5563;
    cursor: not-allowed;
    opacity: 1;
}

/* ----- Anticipado: documentos para concluir la inscripcion ----- */

.mmz-final-docs {
    background-color: #fff;
    border: 1px solid #e0e6e4;
    border-radius: 13px;
    box-shadow: 0 5px 18px rgb(28 56 49 / 5%);
    margin-bottom: 22px;
    overflow: hidden;
}

.mmz-final-docs__titulo {
    color: #25312e;
    font-size: 20px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 3px;
    text-align: left;
}

.mmz-final-docs__intro {
    color: #66716d;
    font-size: 14px;
    line-height: 1.45;
    margin: 0;
}

.mmz-final-docs__lead {
    color: #3f4a46;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.45;
    margin: 18px 20px 14px;
}

.mmz-final-docs__lista {
    counter-reset: doc;
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0 20px 20px;
}

.mmz-final-docs__lista li {
    background: #fbfcfc;
    border: 1px solid #e7ecea;
    border-radius: 8px;
    color: #3c4a47;
    font-size: 13.5px;
    line-height: 1.5;
    min-height: 54px;
    padding: 11px 12px 11px 48px;
    position: relative;
}

.mmz-final-docs__lista li::before {
    align-items: center;
    background-color: #f7edf1;
    border-radius: 50%;
    color: #611232;
    content: counter(doc);
    counter-increment: doc;
    display: inline-flex;
    flex: 0 0 28px;
    font-size: 13px;
    font-weight: 700;
    height: 28px;
    justify-content: center;
    left: 11px;
    position: absolute;
    top: 11px;
    width: 28px;
}

.mmz-final-docs__lista sup {
    color: #9f2241;
    font-weight: 700;
    margin-left: 1px;
}

.mmz-final-docs__cierre {
    border-top: 1px solid #eef2f1;
    color: #4b3c42;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.4;
    margin: 0;
    padding: 17px 20px;
    text-align: center;
}

@media (max-width: 540px) {
    .mmz-final-docs__titulo {
        font-size: 18px;
    }
}

.mmz-final-actions {
    margin-top: 8px;
}

.mmz-final-actions > a.btn:first-of-type {
    margin-left: auto;
    margin-right: 0;
}

/* ===== Comprobante impreso ===== */

@media print {
    @page {
        margin: 4mm 7mm 7mm;
        size: Letter portrait;
    }

    html,
    body {
        background: #fff;
        height: auto !important;
        font-size: 8.5pt;
        line-height: 1.2;
        min-height: 0 !important;
        print-color-adjust: exact;
        -webkit-print-color-adjust: exact;
    }

    body {
        display: block !important;
    }

    body.mmz-page--finalizado header,
    body.mmz-page--finalizado footer,
    body.mmz-page--finalizado .navbar,
    body.mmz-page--finalizado .sub-navbar,
    body.mmz-page--finalizado .container > .row,
    body.mmz-page--finalizado .container > .breadcrumb,
    body.mmz-page--finalizado .container > .mmz-wizard {
        display: none !important;
    }

    body.mmz-page--finalizado .page,
    body.mmz-page--finalizado .mmz-container {
        flex: none !important;
        min-height: 0 !important;
        margin: 0 !important;
        max-width: none !important;
        padding: 0 !important;
        width: 100% !important;
    }

    .mmz-skip-link,
    .breadcrumb,
    .mmz-wizard,
    .mmz-toasts,
    .mmz-global-alert,
    .mmz-final-identificadores__pie,
    .mmz-final-actions,
    .mmz-final-identificador__copiar,
    .mmz-final-paso__accion,
    .mmz-final-paso__nota {
        display: none !important;
    }

    .mmz-final-confirmacion,
    .mmz-final-identificadores,
    .mmz-final-detalle,
    .mmz-final-pasos {
        border: 1px solid #d5dcda;
        border-radius: 6px;
        box-shadow: none;
        break-inside: avoid;
        margin: 0 0 3mm;
    }

    .mmz-final-confirmacion {
        border-left-width: 2px;
        gap: 3.5mm;
        padding: 3.5mm 4.5mm;
    }

    .mmz-final-confirmacion__icono {
        flex-basis: 11mm;
        height: 11mm;
        width: 11mm;
    }

    .mmz-final-confirmacion__icono svg {
        height: 7mm;
        width: 7mm;
    }

    .mmz-final-confirmacion__eyebrow {
        font-size: 7.4pt;
        margin-bottom: 0.7mm;
    }

    .mmz-final-confirmacion__texto h2 {
        font-size: 17pt;
        line-height: 1.1;
        margin-bottom: 1mm;
    }

    .mmz-final-confirmacion__texto p,
    .mmz-final-confirmacion__meta {
        font-size: 8.5pt !important;
        line-height: 1.2;
    }

    .mmz-final-confirmacion__meta {
        font-size: 7.8pt !important;
        margin-top: 0.9mm !important;
    }

    .mmz-final-section-heading {
        gap: 2.7mm;
        padding: 2.5mm 3.8mm;
    }

    .mmz-final-section-heading h3 {
        font-size: 12pt;
        line-height: 1.15;
        margin-bottom: 0.5mm;
    }

    .mmz-final-section-heading p {
        font-size: 7.8pt;
        line-height: 1.2;
    }

    .mmz-final-section-heading__status {
        font-size: 7.5pt;
        padding: 1.5mm 2.5mm;
    }

    .mmz-final-identificadores__grid {
        gap: 3mm;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 2.8mm 3.8mm;
    }

    .mmz-final-identificador {
        border-top-width: 2px;
        padding: 2.5mm 2.8mm;
    }

    .mmz-final-identificador__label {
        font-size: 7.5pt;
    }

    .mmz-final-identificador__valor,
    .mmz-final-identificador__valor--pendiente {
        font-size: 15pt;
        margin: 0.7mm 0;
    }

    .mmz-final-identificador small,
    .mmz-final-identificadores__aviso {
        font-size: 7.4pt;
        line-height: 1.2;
    }

    .mmz-final-identificadores__aviso {
        margin: 0 3mm 1.5mm;
        padding: 1mm 2mm;
    }

    .mmz-final-detalle__cuerpo {
        padding: 1.5mm 3.8mm 2mm;
    }

    .mmz-final-detalle .mmz-resumen-dl {
        gap: 0;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        margin: 0;
    }

    .mmz-final-detalle .mmz-resumen-dl > div {
        min-height: 0;
        padding: 1.5mm 1.8mm;
    }

    .mmz-final-detalle .mmz-resumen-dl__full {
        grid-column: 1 / -1;
    }

    .mmz-final-detalle dt {
        font-size: 6.8pt;
        margin-bottom: 0.4mm;
    }

    .mmz-final-detalle dd {
        font-size: 8pt;
        line-height: 1.2;
        overflow-wrap: anywhere;
    }

    .mmz-final-detalle dd small {
        display: block;
        font-size: 7.2pt;
        line-height: 1.2;
        margin: 0.6mm 0 0;
    }

    .mmz-final-sede-alterna {
        border-left-width: 2px;
        border-radius: 4px;
        margin-top: 1.5mm;
        padding: 2.5mm 3mm;
    }

    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__encabezado {
        align-items: center;
        gap: 2.2mm;
    }

    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__icono {
        flex-basis: 6.5mm;
        height: 6.5mm;
        width: 6.5mm;
    }

    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__icono svg {
        height: 4.5mm;
        width: 4.5mm;
    }

    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__etiqueta {
        font-size: 6.5pt;
        margin-bottom: 0.5mm;
    }

    .mmz-final-sede-alterna h4 {
        font-size: 8.5pt;
        line-height: 1.2;
    }

    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__explicacion {
        font-size: 7.2pt;
        line-height: 1.2;
        margin: 1.1mm 0;
    }

    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__datos {
        display: grid;
        gap: 2.7mm;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 1.6mm 2mm;
    }

    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__datos > div + div {
        border-left: 1px solid rgba(181, 138, 53, 0.2);
        border-top: 0;
        margin-top: 0;
        padding-left: 2.7mm;
        padding-top: 0;
    }

    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__datos dt {
        font-size: 6.5pt;
    }

    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__datos dd {
        font-size: 7.2pt;
        line-height: 1.2;
        margin-top: 0.5mm;
    }

    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__notas {
        margin-top: 1.1mm;
        padding-top: 1.1mm;
    }

    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__notas strong,
    .mmz-final-sede-alterna .mmz-plantel-sede-alterna__notas p {
        font-size: 7pt;
        line-height: 1.2;
    }

    .mmz-final-pasos__lista {
        gap: 2mm 3.8mm;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 2.3mm 3.8mm;
    }

    .mmz-final-pendiente {
        align-items: center;
        break-inside: avoid;
        gap: 1.8mm;
        padding: 1.8mm 3.8mm 2mm;
    }

    .mmz-final-pendiente__icono {
        flex-basis: 5.5mm;
        height: 5.5mm;
    }

    .mmz-final-pendiente__icono svg {
        height: 3.4mm;
        width: 3.4mm;
    }

    .mmz-final-pendiente strong {
        display: inline;
        font-size: 7.5pt;
        margin: 0 0.7mm 0 0;
    }

    .mmz-final-pendiente p {
        display: inline;
        font-size: 7pt;
        line-height: 1.18;
    }

    .mmz-final-paso,
    .mmz-final-paso:last-child {
        gap: 2.2mm;
        grid-template-columns: 7.5mm minmax(0, 1fr);
        padding: 0;
    }

    .mmz-final-paso:not(:last-child)::before {
        display: none;
    }

    .mmz-final-pasos__numero {
        flex-basis: 7.5mm;
        font-size: 7.6pt;
        height: 7.5mm;
        width: 7.5mm;
    }

    .mmz-final-paso__contenido {
        padding-top: 0.7mm;
    }

    .mmz-final-paso__contenido strong {
        font-size: 8.4pt;
        line-height: 1.2;
    }

    .mmz-final-paso__contenido p,
    .mmz-final-paso__aviso {
        font-size: 7.3pt;
        line-height: 1.2;
    }

    .mmz-final-paso__contenido p {
        margin-top: 0.8mm;
    }

    .mmz-final-paso__aviso {
        margin-top: 1mm;
        padding: 1mm 1.4mm;
    }

    .mmz-final-paso {
        break-inside: avoid;
    }
}

/* ===== Vista CURP ===== */

.mmz-curp-hero {
    align-items: center;
    background: linear-gradient(135deg, #235b4e 0%, #1d6f5d 100%);
    border-radius: 10px;
    color: #fff;
    display: flex;
    gap: 20px;
    margin: 8px 0 22px;
    padding: 22px 24px;
}

.mmz-curp-hero__icono {
    align-items: center;
    background-color: rgba(255, 255, 255, 0.16);
    border-radius: 50%;
    display: inline-flex;
    flex: 0 0 60px;
    height: 60px;
    justify-content: center;
    width: 60px;
}

.mmz-curp-hero__texto {
    flex: 1;
    min-width: 0;
}

.mmz-curp-hero__texto h2 {
    color: #fff;
    font-size: 22px;
    margin: 0 0 6px;
}

.mmz-curp-hero__texto p {
    color: rgba(255, 255, 255, 0.92);
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
}

.mmz-curp-card {
    margin-bottom: 12px;
}

.mmz-datos-help--warning {
    background-color: #fff8ec;
    border-left-color: #a05d00;
    color: #6b4500;
}

.mmz-curp-input-wrap {
    margin-bottom: 16px;
}

.mmz-curp-input-wrap > .mmz-datos-help {
    display: block;
    margin: 8px 0 0;
}

.mmz-curp-input {
    font-family: 'Menlo', 'Consolas', monospace;
    font-size: 20px;
    font-weight: 600;
    letter-spacing: 0.16em;
    padding: 14px 16px;
    text-align: center;
    text-transform: uppercase;
}

.mmz-curp-input::placeholder {
    color: #c2c8ce;
    font-weight: 500;
    letter-spacing: 0.12em;
}

.mmz-curp-input.is-completo {
    border-color: #1d6f5d;
    box-shadow: 0 0 0 1px #1d6f5d inset;
}

.mmz-curp-field-meta {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-top: 6px;
}

.mmz-curp-field-meta .mmz-field-error {
    margin: 0;
}

.mmz-curp-counter {
    color: #6b7280;
    display: block;
    flex: 0 0 auto;
    font-size: 12px;
    margin: 0 0 0 auto;
    text-align: right;
}

.mmz-curp-input.is-completo ~ .mmz-curp-field-meta .mmz-curp-counter {
    color: #1d6f5d;
    font-weight: 600;
}

.mmz-curp-turnstile {
    margin: 4px 0 12px;
}

.mmz-curp-terminos {
    background-color: #f7faf9;
    border: 1px solid #d6e4df;
    border-radius: 6px;
    margin: 4px 0 12px;
    padding: 10px 12px;
}

.mmz-curp-terminos__label {
    align-items: center;
    display: flex;
    font-weight: normal;
    gap: 10px;
    line-height: 1.35;
    margin: 0;
}

.mmz-curp-terminos__texto {
    cursor: pointer;
    display: inline;
    font-weight: normal;
    margin: 0;
}

.mmz-curp-terminos__check {
    accent-color: #155146;
    flex: 0 0 auto;
    height: 19px;
    margin: 0;
    width: 19px;
}

.mmz-curp-terminos__label span {
    color: #2b2b2b;
    font-size: 13px;
}

.mmz-curp-terminos__label a {
    color: #155146;
    text-decoration: underline;
}

.mmz-curp-terminos__separador {
    margin: 0 3px;
}

.mmz-curp-terminos.is-invalid {
    background-color: #fdf3f3;
    border-color: #e0a3a3;
}

.mmz-curp-terminos__error {
    color: #9c1c1c;
    font-size: 12.5px;
    font-weight: 600;
    margin: 8px 0 0;
}

.mmz-curp-terminos__error[hidden] {
    display: none;
}

.mmz-curp-actions {
    margin-top: 10px;
}

.mmz-curp-btn {
    font-size: 15px;
    font-weight: 600;
    padding: 12px 18px;
}

.mmz-curp-btn[aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.65;
}

.mmz-curp-aviso {
    color: #6b7280;
    font-size: 12px;
    margin: 6px 4px 0;
    text-align: center;
}

.mmz-curp-convocatoria-card .panel-body {
    padding-top: 14px;
}

.mmz-curp-convocatoria-card .mmz-convocatoria-info__titulo {
    color: #155146;
    font-size: 15px;
    margin: 0 0 10px;
}

.mmz-curp-checklist {
    display: flex;
    flex-direction: column;
    gap: 12px;
    list-style: none;
    margin: 0 0 12px;
    padding: 0;
}

.mmz-curp-checklist li {
    align-items: flex-start;
    background-color: #fbfcfd;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    display: flex;
    gap: 12px;
    padding: 10px 12px;
}

.mmz-curp-checklist__icono {
    align-items: center;
    background-color: #235b4e;
    border-radius: 6px;
    color: #fff;
    display: inline-flex;
    flex: 0 0 36px;
    font-size: 11px;
    font-weight: 700;
    height: 36px;
    justify-content: center;
    letter-spacing: 0.04em;
    width: 36px;
}

.mmz-curp-checklist li > div {
    flex: 1;
    min-width: 0;
}

.mmz-curp-checklist strong {
    color: #1f2937;
    display: block;
    font-size: 14px;
    line-height: 1.3;
}

.mmz-curp-checklist small {
    color: #4a4a4a;
    display: block;
    font-size: 12px;
    line-height: 1.4;
    margin-top: 2px;
}

/* Sin esto el enlace hereda el azul por defecto del navegador. */
.mmz-curp-checklist small a {
    color: #155146;
    font-weight: 600;
    text-decoration: underline;
}

.mmz-curp-checklist small a:hover,
.mmz-curp-checklist small a:focus {
    color: #0f3b33;
}

.mmz-curp-checklist__tip {
    font-size: 12px;
    margin: 0;
}

/* ===== Bloque de ayuda / mesa de servicio ===== */

.mmz-soporte {
    background-color: #fbfcfd;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    margin-top: 28px;
    padding: 28px 24px 30px;
    text-align: center;
}

.mmz-soporte__titulo {
    color: #1f2937;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.25;
    margin: 0 0 8px;
}

.mmz-soporte__texto {
    color: #4a4a4a;
    font-size: 14px;
    line-height: 1.5;
    margin: 0 auto 18px;
    max-width: 620px;
}

.mmz-soporte__boton {
    align-items: center;
    background-color: #fff;
    border: 1px solid #9d2449;
    border-radius: 4px;
    color: #9d2449;
    display: inline-flex;
    font-size: 15px;
    gap: 8px;
    padding: 11px 26px;
    text-decoration: none;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.mmz-soporte__boton:hover,
.mmz-soporte__boton:focus {
    background-color: #9d2449;
    color: #fff;
    text-decoration: none;
}

.mmz-soporte__boton:focus {
    outline: 2px solid #9d2449;
    outline-offset: 2px;
}

@media (max-width: 540px) {
    .mmz-soporte {
        padding: 22px 16px 24px;
    }

    .mmz-soporte__titulo {
        font-size: 19px;
    }

    .mmz-soporte__boton {
        width: 100%;
        justify-content: center;
    }
}

@media (prefers-reduced-motion: reduce) {
    .mmz-soporte__boton {
        transition: none;
    }
}

/* ===== Estado público sin convocatoria o sin cobertura ===== */

.mmz-disponibilidad-card > .panel-heading {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.mmz-disponibilidad__estado {
    background: #fff8ec;
    border: 1px solid #f0d6a8;
    border-radius: 999px;
    color: #7a4e00;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    padding: 7px 10px;
}

.mmz-disponibilidad--cobertura .mmz-disponibilidad__estado {
    background: #f7edf1;
    border-color: #dfcbd3;
    color: #611232;
}

.mmz-disponibilidad__grid {
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mmz-disponibilidad__grupo {
    background: #fbfcfc;
    border: 1px solid #e3e8e6;
    border-radius: 10px;
    min-width: 0;
    padding: 18px;
}

.mmz-disponibilidad__grupo-header {
    align-items: center;
    display: flex;
    gap: 10px;
    margin-bottom: 14px;
}

.mmz-disponibilidad__grupo-numero {
    align-items: center;
    background: #611232;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 28px;
    font-size: 13px;
    font-weight: 700;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.mmz-disponibilidad__grupo h3 {
    color: #27322e;
    font-size: 17px;
    line-height: 1.35;
    margin: 1px 0 0;
}

.mmz-disponibilidad__datos {
    display: grid;
    gap: 9px;
    margin: 0;
}

.mmz-disponibilidad__datos > div {
    align-items: baseline;
    border-bottom: 1px solid #e8edeb;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    padding-bottom: 8px;
}

.mmz-disponibilidad__datos > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.mmz-disponibilidad__datos dt {
    color: #747e79;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.035em;
    text-transform: uppercase;
}

.mmz-disponibilidad__datos dd {
    color: #27322e;
    font-size: 14px;
    font-weight: 700;
    margin: 0;
    overflow-wrap: anywhere;
    text-align: right;
}

.mmz-disponibilidad__lista {
    color: #4f5c57;
    display: grid;
    font-size: 14px;
    gap: 10px;
    line-height: 1.5;
    list-style: none;
    margin: 0;
    padding: 0;
}

.mmz-disponibilidad__lista li {
    padding-left: 17px;
    position: relative;
}

.mmz-disponibilidad__lista li::before {
    background: #611232;
    border-radius: 50%;
    content: "";
    height: 6px;
    left: 0;
    position: absolute;
    top: 0.55em;
    width: 6px;
}

.mmz-disponibilidad__nota {
    background: #f8f5f6;
    border: 1px solid #e1d2d7;
    border-left: 4px solid #611232;
    border-radius: 8px;
    color: #553440;
    display: flex;
    flex-direction: column;
    font-size: 13.5px;
    gap: 2px;
    line-height: 1.45;
    margin-top: 18px;
    padding: 13px 15px;
}

.mmz-disponibilidad__nota strong {
    color: #611232;
    font-size: 14px;
}

.mmz-step-actions.mmz-disponibilidad__acciones > a.btn:first-of-type {
    margin-left: auto;
    margin-right: 0;
}

@media (max-width: 767px) {
    .mmz-disponibilidad-card > .panel-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .mmz-disponibilidad__grid {
        grid-template-columns: 1fr;
    }

    .mmz-step-actions.mmz-disponibilidad__acciones > a.btn:first-of-type {
        margin-left: 0;
    }
}

/* ===== Preguntas iniciales por código postal ===== */

.mmz-cp-decision__header {
    margin-bottom: 18px;
}

.mmz-cp-decision__header .mmz-step-intro strong {
    color: #611232;
    font-weight: 700;
}

.mmz-cp-decision__error {
    border-radius: 10px;
    font-size: 14px;
    margin-bottom: 18px;
}

.mmz-cp-decision {
    background: #fff;
    border: 1px solid #e0e6e4;
    border-radius: 13px;
    box-shadow: 0 5px 18px rgb(28 56 49 / 5%);
    overflow: hidden;
}

.mmz-cp-decision__section-heading {
    align-items: center;
    background: #fbfcfc;
    border-bottom: 1px solid #edf1f0;
    display: flex;
    gap: 20px;
    justify-content: space-between;
    padding: 18px 20px;
}

.mmz-cp-decision__section-heading h3 {
    color: #25312e;
    font-size: 20px;
    line-height: 1.3;
    margin: 0 0 3px;
}

.mmz-cp-decision__section-heading p {
    color: #66716d;
    font-size: 14px;
    line-height: 1.45;
    margin: 0;
}

.mmz-cp-decision__cp {
    background: #f7f2ea;
    border: 1px solid #e8d9c4;
    border-radius: 999px;
    color: #6f4e21;
    flex: 0 0 auto;
    font-size: 13px;
    line-height: 1;
    padding: 9px 13px;
}

.mmz-cp-decision__cp strong {
    color: #611232;
    font-size: 15px;
    margin-left: 3px;
}

.mmz-cp-decision__grid {
    align-items: stretch;
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    padding: 20px;
}

.mmz-cp-option {
    background: #fff;
    border: 1px solid #dce3e0;
    border-radius: 11px;
    box-shadow: 0 3px 12px rgb(30 55 48 / 5%);
    display: flex;
    flex-direction: column;
    margin: 0;
    min-width: 0;
    overflow: hidden;
    transition: border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
}

.mmz-cp-option.is-available:hover {
    border-color: #c7b3ba;
    box-shadow: 0 8px 22px rgb(65 23 38 / 10%);
    transform: translateY(-2px);
}

.mmz-cp-option.is-unavailable {
    background: #fcfcfb;
    border-color: #e4e1db;
}

.mmz-cp-option__header {
    align-items: start;
    background: #fbfcfc;
    border-bottom: 1px solid #edf1f0;
    display: grid;
    gap: 11px;
    grid-template-columns: 34px minmax(0, 1fr);
    padding: 17px;
}

.mmz-cp-option__number {
    align-items: center;
    background: #611232;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    font-size: 14px;
    font-weight: 700;
    height: 32px;
    justify-content: center;
    width: 32px;
}

.mmz-cp-option.is-unavailable .mmz-cp-option__number {
    background: #8a827c;
}

.mmz-cp-option__title {
    min-width: 0;
}

.mmz-cp-option__title h3 {
    color: #26312e;
    font-size: 18px;
    line-height: 1.3;
    margin: 0 0 4px;
}

.mmz-cp-option__title p {
    color: #6a746f;
    font-size: 13px;
    line-height: 1.4;
    margin: 0;
}

.mmz-cp-option__status {
    align-items: center;
    color: #1f6a59;
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    gap: 6px;
    grid-column: 2;
    line-height: 1.2;
}

.mmz-cp-option__status::before {
    background: currentColor;
    border-radius: 50%;
    content: '';
    height: 7px;
    width: 7px;
}

.mmz-cp-option.is-unavailable .mmz-cp-option__status {
    color: #8a5a10;
}

.mmz-cp-option__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 17px;
}

.mmz-cp-option__details {
    display: flex;
    flex-direction: column;
    margin: 0;
}

.mmz-cp-option__details > div {
    border-bottom: 1px solid #edf1f0;
    padding: 10px 0;
}

.mmz-cp-option__details > div:first-child {
    padding-top: 0;
}

.mmz-cp-option__details dt {
    color: #737d78;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.045em;
    line-height: 1.3;
    margin-bottom: 3px;
    text-transform: uppercase;
}

.mmz-cp-option__details dd {
    color: #2d3834;
    font-size: 14.5px;
    font-weight: 600;
    line-height: 1.4;
    margin: 0;
}

.mmz-cp-option__note {
    color: #66716d;
    font-size: 13px;
    line-height: 1.5;
    margin: 14px 0 0;
}

.mmz-cp-option__note strong {
    color: #611232;
}

.mmz-cp-option__availability {
    background: #fff8ec;
    border: 1px solid #f0d6a8;
    border-radius: 8px;
    color: #6b4500;
    display: flex;
    flex-direction: column;
    font-size: 12.5px;
    gap: 3px;
    line-height: 1.45;
    margin-top: 14px;
    padding: 11px 12px;
}

.mmz-cp-option__availability strong {
    font-size: 13px;
}

.mmz-cp-option__confirmation {
    background: #f8f6f7;
    border: 1px solid #e4d9dd;
    border-radius: 8px;
    margin-top: 14px;
    padding: 12px;
}

.mmz-cp-option__check {
    align-items: flex-start;
    color: #3f4945;
    cursor: pointer;
    display: flex;
    font-size: 13px;
    font-weight: 500;
    gap: 10px;
    line-height: 1.45;
    margin: 0;
}

.mmz-cp-option__check input {
    accent-color: #611232;
    flex: 0 0 auto;
    height: 17px;
    margin: 1px 0 0;
    width: 17px;
}

.mmz-cp-option__footer {
    border-top: 1px solid #edf1f0;
    margin-top: auto;
    padding: 14px 17px 16px;
}

.mmz-cp-option__footer .btn {
    align-items: center;
    display: inline-flex;
    font-size: 14px;
    justify-content: center;
    min-height: 43px;
    white-space: normal;
}

.mmz-cp-option__footer .btn[disabled] {
    background: #eeeae8;
    border-color: #d7d0cc;
    color: #746d69;
    opacity: 1;
}

.mmz-cp-option__footer small {
    color: #7a837f;
    display: block;
    font-size: 11.5px;
    line-height: 1.4;
    margin-top: 8px;
    text-align: center;
}

.mmz-cp-decision__actions {
    margin-top: 20px;
}

@media (max-width: 991px) {
    .mmz-cp-decision__grid {
        grid-template-columns: 1fr;
    }

    .mmz-cp-option__header {
        grid-template-columns: 34px minmax(0, 1fr) auto;
    }

    .mmz-cp-option__status {
        align-self: center;
        grid-column: 3;
        grid-row: 1;
    }
}

@media (max-width: 767px) {
    .mmz-cp-decision__section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 12px;
        padding: 16px;
    }

    .mmz-cp-decision__grid {
        gap: 14px;
        padding: 14px;
    }

    .mmz-cp-option__header {
        grid-template-columns: 32px minmax(0, 1fr);
        padding: 15px;
    }

    .mmz-cp-option__number {
        height: 30px;
        width: 30px;
    }

    .mmz-cp-option__status {
        grid-column: 2;
        grid-row: auto;
    }

    .mmz-cp-option__body {
        padding: 15px;
    }

    .mmz-cp-option__footer {
        padding: 13px 15px 15px;
    }
}

/* ===== Vistas de recuperación de registro ===== */

.mmz-recuperacion-header .mmz-step-intro strong {
    color: #611232;
}

.mmz-existente-card {
    margin-bottom: 18px;
}

.mmz-existente-card .panel-heading {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: space-between;
}

.mmz-existente-card .mmz-resumen-dl > div {
    background: transparent;
    border: 0;
    border-bottom: 1px solid #edf1f0;
    border-radius: 0;
    padding: 10px 0;
}

.mmz-recuperacion-status {
    align-items: center;
    border: 1px solid #e3dcdf;
    border-radius: 999px;
    color: #5e4a52;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 700;
    line-height: 1;
    min-height: 26px;
    padding: 6px 10px;
}

.mmz-recuperacion-status.is-pending {
    background: #fff8ec;
    border-color: #f0d6a8;
    color: #7a4e00;
}

.mmz-recuperacion-status.is-complete {
    background: #f7edf1;
    border-color: #dfcbd3;
    color: #611232;
}

.mmz-recuperacion-status.is-unavailable {
    background: #f4f4f4;
    border-color: #dedede;
    color: #666;
}

.mmz-existente-progreso {
    background-color: #fbf9fa;
    border: 1px solid #e8dfe3;
    border-radius: 9px;
    margin-top: 18px;
    padding: 14px 16px;
}

.mmz-existente-progreso__cabecera {
    align-items: baseline;
    color: #303b37;
    display: flex;
    font-size: 14px;
    gap: 10px;
    justify-content: space-between;
    margin-bottom: 10px;
}

.mmz-existente-progreso__cabecera strong {
    color: #611232;
}

.mmz-existente-progreso__paso {
    color: #747e79;
    font-size: 13px;
    white-space: nowrap;
}

.mmz-existente-progreso__barra {
    background-color: #eee8ea;
    border-radius: 999px;
    height: 9px;
    overflow: hidden;
}

.mmz-existente-progreso__fill {
    background: #611232;
    border-radius: inherit;
    height: 100%;
    transition: width 0.4s ease;
}

.mmz-recuperacion-opciones {
    background: #fff;
    border: 1px solid #e0e6e4;
    border-radius: 13px;
    box-shadow: 0 5px 18px rgb(28 56 49 / 5%);
    overflow: hidden;
}

.mmz-recuperacion-opciones__header {
    background: #fbfcfc;
    border-bottom: 1px solid #edf1f0;
    padding: 17px 20px;
}

.mmz-recuperacion-opciones__header h3 {
    color: #25312e;
    font-size: 20px;
    line-height: 1.3;
    margin: 0 0 4px;
}

.mmz-recuperacion-opciones__header p {
    color: #687570;
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
}

.mmz-recuperacion-opciones__grid {
    display: grid;
    gap: 16px;
    grid-template-columns: 1fr 1fr;
    padding: 20px;
}

.mmz-recuperacion-opcion {
    background: #fff;
    border: 1px solid #dfe5e3;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    gap: 15px;
    margin: 0;
    min-width: 0;
    padding: 18px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-recuperacion-opcion:hover {
    box-shadow: 0 5px 16px rgb(97 18 50 / 7%);
}

.mmz-recuperacion-opcion.is-primary {
    background: #fcfafb;
    border-color: #d9c4cc;
}

.mmz-recuperacion-opcion.is-primary:hover {
    border-color: #b8919f;
}

.mmz-recuperacion-opcion.is-secondary:hover {
    border-color: #c8cfcc;
}

.mmz-recuperacion-opcion__header {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    min-width: 0;
}

.mmz-recuperacion-opcion__number {
    align-items: center;
    background: #611232;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 32px;
    font-size: 14px;
    font-weight: 700;
    height: 32px;
    justify-content: center;
    width: 32px;
}

.mmz-recuperacion-opcion__header h4 {
    color: #27322e;
    font-size: 17px;
    line-height: 1.35;
    margin: 2px 0 4px;
}

.mmz-recuperacion-opcion__header p {
    color: #687570;
    font-size: 13.5px;
    line-height: 1.5;
    margin: 0;
}

.mmz-recuperacion-opcion__meta {
    background: #f7f3f5;
    border-radius: 7px;
    color: #654b55;
    font-size: 13px;
    line-height: 1.4;
    margin-top: auto;
    padding: 9px 11px;
}

.mmz-recuperacion-opcion__meta.is-warning {
    background: #fff8ec;
    color: #7a4e00;
}

.mmz-recuperacion-opcion__btn {
    font-size: 14px;
    min-height: 42px;
    white-space: normal;
}

.mmz-recuperacion-confirmacion > .panel-heading {
    align-items: center;
    display: flex;
    justify-content: space-between;
}

.mmz-recuperacion-confirmacion__grid {
    display: grid;
    gap: 22px;
    grid-template-columns: minmax(0, 1fr) minmax(280px, 0.72fr);
}

.mmz-recuperacion-confirmacion__intro {
    color: #4f5c57;
    font-size: 15px;
    line-height: 1.5;
    margin: 0 0 18px;
}

.mmz-recuperacion-confirmacion__field {
    margin-bottom: 0;
}

.mmz-recuperacion-confirmacion__field .form-control {
    min-height: 44px;
}

.mmz-recuperacion-confirmacion__field .mmz-input-help {
    display: block;
    margin-top: 6px;
}

.mmz-recuperacion-confirmacion__aside {
    background: #faf8f9;
    border: 1px solid #e7dde1;
    border-radius: 9px;
    padding: 16px 17px;
}

.mmz-recuperacion-confirmacion__aside h3 {
    color: #611232;
    font-size: 16px;
    line-height: 1.35;
    margin: 0 0 10px;
}

.mmz-recuperacion-confirmacion__aside ul {
    color: #4f5c57;
    font-size: 13.5px;
    line-height: 1.5;
    margin: 0;
    padding-left: 19px;
}

.mmz-recuperacion-confirmacion__aside li + li {
    margin-top: 6px;
}

.mmz-recuperacion-confirmacion__aside p {
    border-top: 1px solid #e7dde1;
    color: #687570;
    font-size: 13px;
    line-height: 1.45;
    margin: 13px 0 0;
    padding-top: 12px;
}

.mmz-recuperacion-confirmacion__aside p strong {
    color: #424d49;
}

/* Salida alterna al pie de la confirmacion de correo. Banda discreta: el texto
   a la izquierda y la accion a la derecha, para no competir con el formulario. */
.mmz-retomar-alterna {
    align-items: center;
    background: #fbfcfc;
    border: 1px solid #e4eae8;
    border-radius: 13px;
    display: flex;
    gap: 26px;
    justify-content: space-between;
    margin: 0 0 20px;
    padding: 19px 22px;
}

.mmz-retomar-alterna__texto {
    min-width: 0;
}

.mmz-retomar-alterna__texto h3 {
    color: #25312e;
    font-size: 17px;
    line-height: 1.35;
    margin: 0 0 5px;
}

.mmz-retomar-alterna__texto p {
    color: #687570;
    font-size: 14px;
    line-height: 1.5;
    margin: 0;
}

.mmz-retomar-alterna__btn {
    flex: 0 0 auto;
    min-height: 42px;
    white-space: normal;
}

.mmz-recuperacion-confirmacion > .mmz-recuperacion-confirmacion__actions {
    border-bottom: 0;
    border-left: 0;
    border-radius: 0;
    border-right: 0;
    box-shadow: none;
    margin: 0;
}

.mmz-step-actions.mmz-recuperacion-actions > a.btn:first-of-type {
    margin-left: auto;
    margin-right: 0;
}

.mmz-recuperacion-modal .mmz-modal__dialogo {
    max-width: 500px;
}

.mmz-recuperacion-modal .mmz-modal__cuerpo > p:first-child {
    color: #4f5c57;
    font-size: 14px;
    line-height: 1.5;
}

.mmz-btn--cargando {
    cursor: progress;
    opacity: 0.85;
    pointer-events: none;
}

.mmz-btn__spinner {
    animation: mmz-btn-spin 0.7s linear infinite;
    border: 2px solid currentColor;
    border-radius: 50%;
    border-right-color: transparent;
    display: inline-block;
    height: 14px;
    margin-right: 8px;
    vertical-align: -2px;
    width: 14px;
}

.mmz-btn__spinner[hidden] {
    display: none !important;
}

[data-registros-reporte-icon][hidden] {
    display: none !important;
}

@keyframes mmz-btn-spin {
    to { transform: rotate(360deg); }
}

.mmz-toasts {
    display: flex;
    flex-direction: column;
    gap: 12px;
    max-width: 360px;
    pointer-events: none;
    position: fixed;
    right: 24px;
    top: 170px;
    width: calc(100% - 48px);
    z-index: 1100;
}

.mmz-toast {
    align-items: flex-start;
    background-color: #fff;
    border-left: 4px solid #1d6f5d;
    border-radius: 8px;
    box-shadow: 0 10px 28px rgba(15, 23, 32, 0.18);
    color: #1f2937;
    display: flex;
    font-size: 14px;
    gap: 10px;
    line-height: 1.4;
    opacity: 0;
    padding: 12px 14px;
    pointer-events: auto;
    transform: translateX(110%);
    transition: transform 0.28s ease, opacity 0.28s ease;
}

.mmz-toast--visible {
    opacity: 1;
    transform: translateX(0);
}

.mmz-toast--saliendo {
    opacity: 0;
    transform: translateX(110%);
}

.mmz-toast__icono {
    flex: 0 0 auto;
    line-height: 0;
    margin-top: 1px;
}

.mmz-toast__texto {
    flex: 1;
    min-width: 0;
    word-wrap: break-word;
}

.mmz-toast__cerrar {
    background: transparent;
    border: 0;
    color: #6b7280;
    cursor: pointer;
    font-size: 20px;
    line-height: 1;
    margin: -2px -4px 0 0;
    padding: 2px 6px;
}

.mmz-toast__cerrar:hover {
    color: #1f2937;
}

.mmz-toast--success {
    border-left-color: #1d6f5d;
}

.mmz-toast--success .mmz-toast__icono {
    color: #1d6f5d;
}

.mmz-toast--error {
    border-left-color: #c0392b;
}

.mmz-toast--error .mmz-toast__icono {
    color: #c0392b;
}

@media (max-width: 540px) {
    .mmz-toasts {
        left: 16px;
        max-width: none;
        right: 16px;
        top: 130px;
        width: auto;
    }

    .mmz-toast {
        transform: translateY(-110%);
    }

    .mmz-toast--saliendo {
        transform: translateY(-110%);
    }
}

.mmz-modal {
    align-items: center;
    bottom: 0;
    display: none;
    justify-content: center;
    left: 0;
    padding: 20px;
    position: fixed;
    right: 0;
    top: 0;
    z-index: 1050;
}

.mmz-modal--abierto {
    display: flex;
}

.mmz-modal__backdrop {
    background-color: rgba(15, 23, 32, 0.55);
    bottom: 0;
    left: 0;
    position: absolute;
    right: 0;
    top: 0;
}

.mmz-modal__dialogo {
    background-color: #fff;
    border-radius: 10px;
    box-shadow: 0 14px 38px rgba(15, 23, 32, 0.22);
    max-width: 460px;
    position: relative;
    width: 100%;
}

.mmz-modal__header {
    align-items: center;
    border-bottom: 1px solid #e5e7eb;
    display: flex;
    justify-content: space-between;
    padding: 16px 20px;
}

.mmz-modal__header h3 {
    color: #1f2937;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    margin: 0;
}

.mmz-modal__cerrar {
    background: transparent;
    border: 0;
    color: #6b7280;
    cursor: pointer;
    font-size: 26px;
    line-height: 1;
    padding: 0 4px;
}

.mmz-modal__cerrar:hover {
    color: #1f2937;
}

.mmz-modal__cerrar:focus-visible {
    border-radius: 4px;
    outline: 3px solid rgba(21, 81, 70, 0.3);
    outline-offset: 2px;
}

.mmz-modal__cerrar:disabled {
    cursor: not-allowed;
    opacity: 0.55;
}

.mmz-modal__cuerpo {
    padding: 18px 20px 20px;
}

.mmz-modal__cuerpo > p:not(.mmz-modal__nota) {
    color: #374151;
    font-size: 14px;
    line-height: 1.5;
    margin: 0 0 14px;
}

.mmz-modal__label {
    color: #1f2937;
    display: block;
    font-size: 13px;
    font-weight: 600;
    margin-bottom: 6px;
}

.mmz-modal__input--error,
.mmz-modal__input--error:focus {
    border-color: #c0392b;
    box-shadow: 0 0 0 2px rgba(192, 57, 43, 0.15);
}

.mmz-modal__error {
    color: #c0392b;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    margin: 6px 0 0;
}

.mmz-modal__nota {
    background-color: #f8f6f1;
    border-left: 3px solid #c79a3b;
    border-radius: 4px;
    color: #4a4a4a;
    font-size: 13px;
    line-height: 1.5;
    margin: 22px 0 0;
    padding: 10px 12px;
}

.mmz-modal__footer {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 18px;
}

.mmz-finalizar-modal__dialogo {
    border: 1px solid rgba(15, 63, 55, 0.12);
    border-radius: 16px;
    box-shadow: 0 24px 64px rgba(15, 23, 32, 0.28);
    max-height: calc(100vh - 40px);
    max-height: calc(100dvh - 40px);
    max-width: 500px;
    overflow-x: hidden;
    overflow-y: auto;
}

.mmz-finalizar-modal .mmz-modal__header {
    align-items: flex-start;
    border-bottom: 0;
    padding: 24px 24px 12px;
}

.mmz-finalizar-modal__encabezado {
    align-items: center;
    display: flex;
    gap: 12px;
    min-width: 0;
}

.mmz-finalizar-modal__icono {
    align-items: center;
    background-color: #e8f3ef;
    border-radius: 50%;
    color: #155146;
    display: inline-flex;
    flex: 0 0 48px;
    height: 48px;
    justify-content: center;
    width: 48px;
}

.mmz-finalizar-modal .mmz-modal__header h3 {
    color: #182630;
    font-size: 21px;
    line-height: 1.25;
    padding-top: 10px;
    text-wrap: balance;
}

.mmz-finalizar-modal .mmz-modal__cerrar {
    margin: 2px -6px 0 8px;
}

.mmz-finalizar-modal .mmz-modal__cuerpo {
    padding: 6px 24px 24px;
}

.mmz-finalizar-modal .mmz-modal__cuerpo > #mmz-modal-finalizar__descripcion {
    color: #4b5964;
    font-size: 15px;
    line-height: 1.55;
    margin-bottom: 18px;
    text-wrap: pretty;
}

.mmz-modal__cuerpo > p.mmz-finalizar-modal__aviso {
    align-items: center;
    background-color: #fff8ec;
    border: 1px solid #efd6a7;
    border-radius: 10px;
    color: #6b4500;
    display: flex;
    gap: 11px;
    line-height: 1.45;
    margin: 0;
    padding: 13px 15px;
}

.mmz-finalizar-modal__aviso-icono {
    align-items: center;
    background-color: #a05d00;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 24px;
    font-size: 14px;
    font-weight: 700;
    height: 24px;
    justify-content: center;
    width: 24px;
}

.mmz-finalizar-modal__acciones {
    border-top: 1px solid #edf0ef;
    gap: 12px;
    margin-top: 22px;
    padding-top: 18px;
}

.mmz-finalizar-modal__acciones .btn {
    align-items: center;
    border-radius: 7px;
    display: inline-flex;
    flex: 1 1 0;
    font-size: 15px;
    font-weight: 600;
    justify-content: center;
    min-height: 46px;
    padding: 10px 16px;
}

.mmz-finalizar-modal__cancelar,
.mmz-finalizar-modal__cancelar:hover,
.mmz-finalizar-modal__cancelar:focus {
    background-color: #f5f7f6;
    border-color: #cbd4d1;
    color: #34443f;
}

.mmz-finalizar-modal__cancelar:hover {
    background-color: #e9eeec;
    border-color: #aebdb8;
}

.mmz-finalizar-modal__cancelar:disabled {
    background-color: #f5f7f6;
    border-color: #cbd4d1;
    color: #65736f;
    cursor: not-allowed;
    opacity: 0.72;
}

.mmz-finalizar-modal__confirmar,
.mmz-finalizar-modal__confirmar:focus {
    background-color: #9f2241;
    border-color: #9f2241;
    color: #fff;
}

.mmz-finalizar-modal__confirmar:hover {
    background-color: #7f1933;
    border-color: #7f1933;
    color: #fff;
}

.mmz-finalizar-modal .btn,
.mmz-finalizar-modal .mmz-modal__cerrar {
    touch-action: manipulation;
}

.swal2-popup.mmz-confirm {
    background:
        radial-gradient(circle at 100% 0, rgba(21, 81, 70, 0.07), transparent 180px),
        #fff;
    border: 1px solid rgba(15, 63, 55, 0.12);
    border-radius: 20px;
    box-shadow: 0 28px 80px rgba(15, 23, 32, 0.28);
    color: #24332f;
    max-width: calc(100vw - 24px);
    overflow: hidden;
    padding: 0;
}

.mmz-confirm .mmz-confirm__html {
    margin: 0;
    overflow: visible;
    padding: 28px 28px 0;
}

.mmz-confirm__content {
    color: #24332f;
    text-align: left;
}

.mmz-confirm__header {
    align-items: center;
    display: flex;
    gap: 14px;
    padding-right: 24px;
}

.mmz-confirm__icon {
    align-items: center;
    background-color: #e8f3ef;
    border: 1px solid rgba(21, 81, 70, 0.12);
    border-radius: 15px;
    color: #155146;
    display: inline-flex;
    flex: 0 0 52px;
    height: 52px;
    justify-content: center;
    transform: rotate(-2deg);
    width: 52px;
}

.mmz-confirm__heading {
    min-width: 0;
}

.mmz-confirm__eyebrow {
    color: #68766f;
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.09em;
    line-height: 1.2;
    margin-bottom: 5px;
    text-transform: uppercase;
}

.mmz-confirm__title {
    color: #172720;
    font-size: 22px;
    font-weight: 650;
    line-height: 1.22;
    margin: 0;
    text-wrap: balance;
}

.mmz-confirm__message {
    color: #50605a;
    font-size: 15px;
    line-height: 1.6;
    margin: 20px 0 0;
    text-wrap: pretty;
}

.mmz-confirm__change {
    align-items: center;
    background-color: #f5f8f7;
    border: 1px solid #dce5e2;
    border-radius: 12px;
    display: grid;
    gap: 10px;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    margin-top: 18px;
    padding: 12px;
}

.mmz-confirm__change-value {
    color: #5f6c67;
    font-size: 13px;
    font-weight: 650;
    line-height: 1.35;
    overflow-wrap: anywhere;
    text-align: center;
}

.mmz-confirm__change-value.is-new {
    color: #155146;
}

.mmz-confirm__change-arrow {
    color: #89958f;
    font-size: 18px;
}

.mmz-confirm__summary {
    background-color: #f7f9f8;
    border: 1px solid #e0e7e4;
    border-radius: 12px;
    display: grid;
    gap: 0;
    margin: 18px 0 0;
    overflow: hidden;
}

.mmz-confirm__summary > div {
    align-items: center;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    padding: 10px 13px;
}

.mmz-confirm__summary > div + div {
    border-top: 1px solid #e5ebe8;
}

.mmz-confirm__summary dt,
.mmz-confirm__summary dd {
    font-size: 13px;
    line-height: 1.35;
    margin: 0;
}

.mmz-confirm__summary dt {
    color: #64716c;
    font-weight: 500;
}

.mmz-confirm__summary dd {
    color: #20322b;
    font-weight: 700;
    text-align: right;
}

.mmz-confirm__notice {
    align-items: flex-start;
    background-color: #fff8eb;
    border: 1px solid #efd6a7;
    border-radius: 12px;
    color: #6b4500;
    display: flex;
    gap: 11px;
    margin-top: 18px;
    padding: 13px 14px;
}

.mmz-confirm__notice-icon {
    align-items: center;
    background-color: #a05d00;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 23px;
    font-size: 13px;
    font-weight: 700;
    height: 23px;
    justify-content: center;
    margin-top: 1px;
    width: 23px;
}

.mmz-confirm__notice p {
    color: inherit;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.48;
    margin: 0;
}

.mmz-confirm__details {
    color: #4e5d57;
    display: grid;
    font-size: 13px;
    gap: 7px;
    line-height: 1.45;
    margin: 17px 0 0;
    padding-left: 20px;
}

.mmz-confirm .mmz-confirm__actions {
    align-self: stretch;
    border-top: 1px solid #e8edeb;
    display: grid !important;
    gap: 12px;
    grid-template-columns: 1fr 1fr;
    justify-self: stretch;
    margin: 24px 28px 0;
    padding: 18px 0 24px;
    width: auto;
}

.mmz-confirm__button {
    align-items: center;
    border-radius: 9px;
    cursor: pointer;
    display: inline-flex;
    font-size: 14px;
    font-weight: 700;
    justify-content: center;
    line-height: 1.25;
    min-height: 46px;
    padding: 10px 16px;
    transition: background-color 150ms ease, border-color 150ms ease, box-shadow 150ms ease, transform 150ms ease;
}

.mmz-confirm__button:focus-visible {
    box-shadow: 0 0 0 4px rgba(21, 81, 70, 0.18);
    outline: 0;
}

.mmz-confirm__button:active {
    transform: translateY(1px);
}

.mmz-confirm__button--cancel {
    background-color: #f5f7f6;
    border: 1px solid #cbd4d1;
    color: #34443f;
}

.mmz-confirm__button--cancel:hover {
    background-color: #e9eeec;
    border-color: #aebdb8;
    color: #23322d;
}

.mmz-confirm__button--accept {
    background-color: #9f2241;
    border: 1px solid #9f2241;
    color: #fff;
}

.mmz-confirm__button--accept:hover {
    background-color: #7f1933;
    border-color: #7f1933;
    color: #fff;
}

.mmz-confirm .mmz-confirm__close {
    color: #74817c;
    font-size: 27px;
    height: 42px;
    right: 12px;
    top: 10px;
    width: 42px;
}

.mmz-confirm .mmz-confirm__close:hover {
    color: #25362f;
}

.mmz-confirm--warning .mmz-confirm__icon {
    background-color: #fff5df;
    border-color: #efd6a7;
    color: #9a5d00;
}

.mmz-confirm--danger .mmz-confirm__icon {
    background-color: #fff0f2;
    border-color: #efc8d0;
    color: #9f2241;
}

.mmz-confirm--danger .mmz-confirm__notice {
    background-color: #fff2f4;
    border-color: #efc8d0;
    color: #7f1933;
}

.mmz-confirm--danger .mmz-confirm__notice-icon {
    background-color: #9f2241;
}

.mmz-form-confirm-modal__dialogo {
    border: 1px solid rgba(15, 63, 55, 0.12);
    border-radius: 20px;
    box-shadow: 0 28px 80px rgba(15, 23, 32, 0.28);
    max-height: calc(100dvh - 40px);
    max-width: 540px;
    overflow: auto;
    padding: 28px;
}

.mmz-form-confirm-modal__close {
    position: absolute;
    right: 16px;
    top: 14px;
    z-index: 1;
}

.mmz-form-confirm-modal .mmz-modal__footer {
    border-top: 1px solid #e8edeb;
    display: grid;
    gap: 12px;
    grid-template-columns: 1fr 1fr;
    margin-top: 24px;
    padding-top: 18px;
}

body.mmz-modal-bloqueo {
    overflow: hidden;
}

.mmz-modal,
.mmz-modal__dialogo,
.mmz-modal__cuerpo {
    overscroll-behavior: contain;
}

@media (max-width: 540px) {
    .mmz-modal {
        padding: 12px;
    }

    .mmz-modal__footer {
        flex-direction: column-reverse;
    }

    .mmz-modal__footer .btn {
        width: 100%;
    }

    .mmz-finalizar-modal__encabezado {
        align-items: flex-start;
    }

    .mmz-finalizar-modal__dialogo {
        max-height: calc(100vh - 24px);
        max-height: calc(100dvh - 24px);
    }

    .mmz-finalizar-modal__icono {
        flex-basis: 42px;
        height: 42px;
        width: 42px;
    }

    .mmz-finalizar-modal .mmz-modal__header {
        padding: 20px 18px 10px;
    }

    .mmz-finalizar-modal .mmz-modal__header h3 {
        font-size: 19px;
        padding-top: 8px;
    }

    .mmz-finalizar-modal .mmz-modal__cuerpo {
        padding: 6px 18px 18px;
    }

    .mmz-confirm .mmz-confirm__html {
        padding: 22px 18px 0;
    }

    .mmz-confirm__header {
        align-items: flex-start;
        padding-right: 20px;
    }

    .mmz-confirm__icon {
        border-radius: 13px;
        flex-basis: 44px;
        height: 44px;
        width: 44px;
    }

    .mmz-confirm__title {
        font-size: 19px;
    }

    .mmz-confirm__message {
        font-size: 14px;
        margin-top: 17px;
    }

    .mmz-confirm .mmz-confirm__actions {
        grid-template-columns: 1fr;
        margin: 21px 18px 0;
        padding: 16px 0 18px;
    }

    .mmz-confirm .mmz-confirm__button--cancel {
        order: 2;
    }

    .mmz-form-confirm-modal__dialogo {
        max-height: calc(100dvh - 24px);
        padding: 22px 18px 18px;
    }

    .mmz-form-confirm-modal .mmz-modal__footer {
        grid-template-columns: 1fr;
    }
}

.mmz-responsable-card__heading {
    align-items: center;
    display: flex;
    font-weight: 600;
    gap: 10px;
}

.mmz-responsable-card__heading > span:nth-child(2) {
    flex: 1;
    min-width: 0;
}

.mmz-responsable-card__estado {
    background-color: #eef2f3;
    border: 1px solid #d8dfe3;
    border-radius: 999px;
    color: #5f6870;
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 9px;
    white-space: nowrap;
}

.mmz-responsable-card__estado[data-estado="cargando"] {
    background-color: #eef5f3;
    border-color: #c1dcd5;
    color: #155146;
}

.mmz-responsable-card__estado[data-estado="valida"] {
    background-color: #e7f5ee;
    border-color: #b9ddcc;
    color: #176348;
}

.mmz-responsable-card__estado[data-estado="error"] {
    background-color: #fbeaea;
    border-color: #e7b8b8;
    color: #8d2020;
}

.mmz-responsable-card__close {
    background: transparent;
    border: 1px solid #d6dbdf;
    border-radius: 4px;
    color: #9c1c1c;
    cursor: pointer;
    font-size: 18px;
    height: 40px;
    line-height: 1;
    padding: 0;
    transition: background-color 0.15s ease, border-color 0.15s ease;
    width: 40px;
}

.mmz-responsable-card__close:hover {
    background-color: #fbeaea;
    border-color: #9c1c1c;
}

.mmz-responsable-card__close:focus-visible,
.mmz-responsables-agregar:focus-visible {
    border-color: #611232;
    box-shadow: 0 0 0 3px rgba(97, 18, 50, 0.16);
}

/* El separador va entre secciones y no al inicio de cada una: asi lo que se
   inserte arriba de la primera no le enciende una linea de mas. */
.mmz-responsable-section + .mmz-responsable-section {
    border-top: 1px solid #eceff1;
    margin-top: 14px;
    padding-top: 14px;
}

.mmz-responsable-section__titulo {
    color: #235b4e;
    font-size: 14px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin: 0 0 12px;
    text-transform: uppercase;
}

.mmz-responsable-misma {
    align-items: center;
    background-color: #eef5f3;
    border: 1px solid #c1dcd5;
    border-radius: 6px;
    cursor: pointer;
    display: flex;
    gap: 10px;
    margin: 0 0 14px;
    padding: 10px 14px;
}

.mmz-responsable-misma input {
    height: 16px;
    margin: 0;
    width: 16px;
}

.mmz-responsable-misma span {
    color: #155146;
    font-size: 14px;
    font-weight: 600;
}

.mmz-responsable-direccion.is-bloqueado {
    opacity: 0.85;
}

.mmz-responsable-direccion-layout {
    align-items: start;
    display: grid;
    gap: 16px;
    grid-template-columns: minmax(280px, 0.8fr) minmax(0, 1.2fr);
}

.mmz-responsable-direccion-layout > div {
    min-width: 0;
}

.mmz-responsable-direccion-layout .mmz-datos-panel {
    margin-bottom: 0;
}

/* Aviso del kit en la primera tarjeta: dice que esa persona firma cuando el
   aspirante es menor, o que sus datos apareceran cuando firma el estudiante.
   En ambos casos aclara que el kit llega al final, para que no se busque aqui. */
.mmz-responsable-kit {
    align-items: flex-start;
    background-color: #f4f7f9;
    border-left: 3px solid #235b4e;
    color: #4a4a4a;
    display: flex;
    font-size: 14px;
    gap: 10px;
    line-height: 1.5;
    margin: 0 0 14px;
    padding: 10px 13px;
}

.mmz-responsable-kit[hidden] {
    display: none;
}

.mmz-responsable-kit__icon {
    color: #235b4e;
    display: flex;
    flex: none;
    padding-top: 1px;
}

.mmz-responsable-direccion-layout.is-pendiente {
    align-items: stretch;
}

.mmz-responsable-direccion-layout.is-pendiente .mmz-datos-panel {
    height: 100%;
}

.mmz-responsable-direccion-cp .panel-body {
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.mmz-responsable-direccion-datos[hidden],
.mmz-responsable-direccion-placeholder[hidden] {
    display: none;
}

.mmz-responsable-direccion-datos input[readonly] {
    background-color: #f4f7f9;
    color: #1f2937;
    cursor: default;
}

.mmz-responsable-direccion-placeholder .panel-body {
    height: 100%;
    min-height: 270px;
}

.mmz-responsable-direccion-placeholder p {
    margin: 0;
    max-width: 280px;
}

.mmz-curp-input {
    font-family: 'Menlo', 'Consolas', monospace;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.mmz-responsable-curp-group {
    position: relative;
    margin-bottom: 12px;
}

.mmz-responsable-curp-counter {
    position: absolute;
    top: 0;
    right: 0;
    margin: 0;
    line-height: 1.4;
}

.mmz-responsable-curp-group .mmz-cp-feedback {
    margin-top: 4px;
    min-height: 0;
}

.mmz-responsable-curp-group .mmz-cp-feedback:empty {
    display: none;
}

.mmz-responsables-toolbar__hint {
    color: #6b7280;
    font-size: 13px;
}

.mmz-responsables-agregar {
    align-items: center;
    background-color: #fafcfc;
    border: 2px dashed #b8c2c8;
    border-radius: 8px;
    color: #235b4e;
    cursor: pointer;
    display: flex;
    gap: 14px;
    margin-top: 18px;
    min-height: 68px;
    padding: 16px 20px;
    text-align: left;
    transition: background-color 0.15s ease, border-color 0.15s ease, transform 0.15s ease;
    width: 100%;
}

.mmz-responsables-agregar:hover {
    background-color: #eef5f3;
    border-color: #235b4e;
}

.mmz-responsables-agregar:active {
    transform: translateY(1px);
}

.mmz-responsables-agregar[hidden] {
    display: none;
}

.mmz-responsables-agregar__icon {
    align-items: center;
    background-color: #235b4e;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 36px;
    font-size: 22px;
    font-weight: 700;
    height: 36px;
    justify-content: center;
    line-height: 1;
    width: 36px;
}

.mmz-responsables-agregar__texto {
    display: flex;
    flex-direction: column;
    gap: 2px;
}

.mmz-responsables-agregar__texto strong {
    color: #1f2937;
    font-size: 15px;
}

.mmz-responsables-agregar__texto small {
    color: #6b7280;
    font-size: 12px;
}

.mmz-document-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(180px, 260px) auto;
    gap: 12px;
    align-items: center;
}

.mmz-file {
    margin: 0;
}

.turnstile {
    margin: 12px 0 4px;
}

@media (max-width: 991px) {
    .mmz-responsable-direccion-layout {
        grid-template-columns: 1fr;
    }
}

.mmz-curp-layout {
    align-items: flex-start;
}

.mmz-instructions {
    margin-top: 58px;
}

.mmz-instructions ul {
    padding-left: 18px;
}

.mmz-instructions li + li {
    margin-top: 8px;
}

.mmz-instructions__intro {
    margin-bottom: 6px;
}

.mmz-instructions__intro + ul {
    margin-bottom: 14px;
}

.mmz-convocatoria-info {
    background-color: #f4f7f9;
    border-left: 4px solid #235b4e;
    border-radius: 3px;
    padding: 10px 14px;
}

.mmz-convocatoria-info__titulo {
    color: #235b4e;
    font-size: 15px;
    margin: 0 0 8px;
}

.mmz-convocatoria-info__fechas {
    display: grid;
    grid-template-columns: auto 1fr;
    column-gap: 12px;
    row-gap: 4px;
    margin: 0;
}

.mmz-convocatoria-info__fechas dt {
    color: #4a4a4a;
    font-weight: 600;
}

.mmz-convocatoria-info__fechas dd {
    margin: 0;
}

.mmz-admin-nav {
    border-radius: 0;
    margin-bottom: 0;
}

/* ----- Layout admin renovado ----- */

.mmz-admin-body {
    background-color: #f3f5f5;
}

.mmz-admin-topbar {
    background: linear-gradient(135deg, #0f3f37 0%, #155146 50%, #1d6f5d 100%);
    box-shadow: 0 2px 10px rgba(15, 63, 55, 0.18);
    color: #fff;
    left: 0;
    margin-bottom: 24px;
    padding: 0;
    position: sticky;
    right: 0;
    top: var(--mmz-admin-topbar-offset, 0px);
    z-index: 1028;
}

.mmz-admin-topbar__container {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    min-height: 64px;
    /* Respeta el notch en horizontal: la barra es de ancho completo. Va en un
       solo shorthand a proposito: un `padding` posterior pisaria los longhand
       con safe-area y dejaria la proteccion sin efecto. */
    padding: 10px max(15px, env(safe-area-inset-right)) 10px max(15px, env(safe-area-inset-left));
}

.mmz-admin-brand {
    align-items: center;
    color: #fff;
    display: flex;
    gap: 12px;
    text-decoration: none;
}

.mmz-admin-brand:hover,
.mmz-admin-brand:focus-visible {
    color: #fff;
    text-decoration: none;
}

.mmz-admin-brand__escudo {
    align-items: center;
    background-color: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 10px;
    display: inline-flex;
    height: 40px;
    justify-content: center;
    width: 40px;
}

.mmz-admin-brand__texto {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
}

.mmz-admin-brand__texto strong {
    font-size: 15px;
    letter-spacing: 0.02em;
}

.mmz-admin-brand__texto small {
    color: rgba(255, 255, 255, 0.78);
    font-size: 11.5px;
}

.mmz-admin-mainnav {
    align-items: center;
    display: flex;
    flex: 1;
    flex-wrap: wrap;
    gap: 2px;
    margin-left: 12px;
}

.mmz-admin-mainnav__link {
    border-radius: 6px;
    color: rgba(255, 255, 255, 0.82);
    font-size: 13.5px;
    font-weight: 500;
    padding: 8px 12px;
    text-decoration: none;
    transition: background-color 0.15s ease, color 0.15s ease;
}

.mmz-admin-mainnav__link:hover,
.mmz-admin-mainnav__link:focus-visible {
    background-color: rgba(255, 255, 255, 0.10);
    color: #fff;
    text-decoration: none;
}

.mmz-admin-mainnav__link.is-active {
    background-color: rgba(255, 255, 255, 0.18);
    color: #fff;
}

.mmz-admin-user {
    align-items: center;
    background-color: rgba(255, 255, 255, 0.10);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 10px;
    display: flex;
    gap: 8px;
    min-width: 0;
    padding: 5px 7px 5px 5px;
}

.mmz-admin-user__avatar {
    align-items: center;
    background-color: rgba(255, 255, 255, 0.96);
    border: 2px solid rgba(255, 255, 255, 0.36);
    border-radius: 50%;
    box-sizing: border-box;
    box-shadow: 0 1px 2px rgba(15, 35, 30, 0.16);
    color: #155146;
    display: inline-flex;
    flex: 0 0 36px;
    font-size: 14px;
    font-weight: 700;
    height: 36px;
    justify-content: center;
    overflow: hidden;
    width: 36px;
}

.mmz-admin-user__avatar img {
    display: block;
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.mmz-admin-user__avatar img[hidden],
.mmz-admin-user__avatar-fallback[hidden] {
    display: none !important;
}

.mmz-admin-user__avatar-fallback {
    align-items: center;
    display: inline-flex;
    height: 100%;
    justify-content: center;
    width: 100%;
}

.mmz-admin-user__info {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
    max-width: 210px;
    min-width: 0;
    padding-right: 4px;
}

.mmz-admin-user__info strong {
    color: #fff;
    font-size: 13px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-admin-user__info small {
    color: rgba(255, 255, 255, 0.78);
    font-size: 11.5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-admin-user__info small.mmz-admin-user__estado {
    align-self: flex-start;
    background-color: rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    color: #fff;
    font-size: 10px;
    font-weight: 600;
    letter-spacing: 0.03em;
    margin-top: 3px;
    max-width: 100%;
    padding: 1px 9px;
    text-transform: uppercase;
}

.mmz-admin-user__logout {
    margin: 0;
}

.mmz-admin-user__btn {
    align-items: center;
    background-color: rgba(255, 255, 255, 0.08);
    border: 1px solid rgba(255, 255, 255, 0.20);
    border-radius: 8px;
    color: #fff;
    cursor: pointer;
    display: inline-flex;
    flex: 0 0 32px;
    height: 32px;
    justify-content: center;
    padding: 0;
    transition: background-color 0.15s ease, border-color 0.15s ease;
    width: 32px;
}

.mmz-admin-user__btn:hover,
.mmz-admin-user__btn:focus-visible {
    background-color: rgba(255, 255, 255, 0.18);
    border-color: rgba(255, 255, 255, 0.55);
}

.mmz-admin-main {
    padding-bottom: 40px;
}

.mmz-admin-alert {
    border-radius: 8px;
    margin-bottom: 16px;
}

.mmz-admin-breadcrumb {
    align-items: center;
    color: #687873;
    display: flex;
    flex-wrap: wrap;
    font-size: 12.5px;
    gap: 6px;
    margin: 0 0 12px;
    min-width: 0;
}

.mmz-admin-breadcrumb a {
    color: #1d6f5d;
    font-weight: 600;
    text-decoration: none;
}

.mmz-admin-breadcrumb a:hover,
.mmz-admin-breadcrumb a:focus-visible {
    color: #0f3f37;
    text-decoration: underline;
}

.mmz-admin-breadcrumb svg {
    flex: 0 0 auto;
}

.mmz-admin-breadcrumb span {
    min-width: 0;
    overflow-wrap: anywhere;
}

/* ----- Page header reutilizable ----- */

.mmz-admin-pageheader {
    align-items: flex-end;
    background-color: #fff;
    border: 1px solid #e3e9e7;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(21, 81, 70, 0.04);
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    justify-content: space-between;
    margin-bottom: 18px;
    padding: 22px 24px;
}

.mmz-admin-pageheader__main {
    flex: 1 1 320px;
}

.mmz-admin-pageheader__eyebrow {
    color: #1d6f5d;
    display: inline-block;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.mmz-admin-pageheader h1 {
    color: #0f3f37;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 4px;
}

.mmz-admin-pageheader p {
    color: #4a5b56;
    font-size: 13.5px;
    line-height: 1.45;
    margin: 0;
}

.mmz-admin-pageheader__actions {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

/* ----- Centro de herramientas ----- */

.mmz-tools-hero {
    align-items: center;
    background:
        radial-gradient(circle at 88% 18%, rgba(29, 111, 93, 0.12), transparent 28%),
        #fff;
}

.mmz-tools-hero__mark {
    align-items: center;
    background-color: #edf5f1;
    border: 1px solid #d7e6e1;
    border-radius: 14px;
    color: #1d6f5d;
    display: inline-flex;
    flex: 0 0 58px;
    height: 58px;
    justify-content: center;
    width: 58px;
}

.mmz-tools-hero__mark svg {
    height: 28px;
    width: 28px;
}

.mmz-tools-section {
    margin: 0 0 26px;
    margin-left: auto;
    margin-right: auto;
    max-width: 780px;
}

.mmz-tools-section__heading {
    margin: 0 0 12px;
}

.mmz-tools-section__heading h2 {
    color: #173f37;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.3;
    margin: 0 0 3px;
}

.mmz-tools-section__heading p {
    color: #61716c;
    font-size: 13px;
    line-height: 1.45;
    margin: 0;
}

.mmz-tools-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(0, 1fr);
}

.mmz-tool-card {
    align-items: flex-start;
    background-color: #fff;
    border: 1px solid #dfe7e4;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(21, 81, 70, 0.05);
    color: #25332f;
    display: flex;
    gap: 14px;
    min-height: 132px;
    min-width: 0;
    padding: 18px;
    text-decoration: none;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.mmz-tool-card:hover,
.mmz-tool-card:focus-visible {
    border-color: #91b8ad;
    box-shadow: 0 8px 22px rgba(15, 63, 55, 0.10);
    color: #25332f;
    text-decoration: none;
    transform: translateY(-2px);
}

.mmz-tool-card:active {
    box-shadow: 0 2px 6px rgba(15, 63, 55, 0.08);
    transform: translateY(0);
}

.mmz-tool-card__icon {
    align-items: center;
    background-color: #edf5f1;
    border: 1px solid #d9e8e3;
    border-radius: 11px;
    color: #1d6f5d;
    display: inline-flex;
    flex: 0 0 48px;
    height: 48px;
    justify-content: center;
    width: 48px;
}

.mmz-tool-card__body {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    min-width: 0;
}

.mmz-tool-card__badge {
    align-self: flex-start;
    background-color: #f7f2f4;
    border: 1px solid #eadde2;
    border-radius: 999px;
    color: #7a2948;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1.3;
    margin-bottom: 7px;
    padding: 3px 8px;
    text-transform: uppercase;
}

.mmz-tool-card__title {
    color: #143f36;
    font-size: 15.5px;
    font-weight: 700;
    line-height: 1.3;
    margin-bottom: 4px;
    overflow-wrap: anywhere;
}

.mmz-tool-card__description {
    color: #586963;
    font-size: 12.75px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

.mmz-tool-card__arrow {
    align-self: center;
    color: #6c807a;
    flex: 0 0 20px;
    transition: color 0.15s ease, transform 0.15s ease;
}

.mmz-tool-card:hover .mmz-tool-card__arrow,
.mmz-tool-card:focus-visible .mmz-tool-card__arrow {
    color: #1d6f5d;
    transform: translateX(3px);
}

/* ----- KPIs ----- */

.mmz-admin-kpis-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    margin-bottom: 18px;
}

.mmz-admin-kpi {
    background-color: #fff;
    border: 1px solid #e3e9e7;
    border-left: 4px solid #1d6f5d;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(21, 81, 70, 0.04);
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: 16px 18px;
}

.mmz-admin-kpi__label {
    color: #4a5b56;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.mmz-admin-kpi__label-row {
    align-items: center;
    display: flex;
    gap: 6px;
    min-width: 0;
}

.mmz-admin-kpi__label-actions {
    align-items: center;
    display: inline-flex;
    gap: 4px;
    margin-left: auto;
}

.mmz-kpi-report-link {
    align-items: center;
    background: #edf6f3;
    border: 1px solid #cce2db;
    border-radius: 999px;
    color: #155f50;
    display: inline-flex;
    font-size: 11px;
    font-weight: 700;
    gap: 5px;
    letter-spacing: 0;
    line-height: 1;
    padding: 6px 9px;
    text-decoration: none;
    text-transform: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease, color 0.15s ease;
}

.mmz-kpi-report-link:hover,
.mmz-kpi-report-link:focus {
    background: #dceee8;
    border-color: #9fc8bc;
    color: #0f4f43;
    text-decoration: none;
}

.mmz-kpi-report-link:focus-visible {
    box-shadow: 0 0 0 3px rgba(29, 111, 93, 0.22);
    outline: none;
}

.mmz-kpi-report-link.is-loading,
.mmz-kpi-report-link[aria-disabled="true"] {
    cursor: progress;
    opacity: 0.78;
    pointer-events: none;
}

.mmz-kpi-report-link__spinner {
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    display: none;
    height: 13px;
    width: 13px;
}

.mmz-kpi-report-link.is-loading .mmz-kpi-report-link__icon {
    display: none;
}

.mmz-kpi-report-link.is-loading .mmz-kpi-report-link__spinner {
    animation: mmz-kpi-report-spin 0.85s linear infinite;
    display: inline-block;
}

@keyframes mmz-kpi-report-spin {
    to { transform: rotate(360deg); }
}

/* Ayuda contextual reutilizable para cifras y conceptos administrativos. */
.mmz-help-tooltip {
    display: inline-flex;
    flex: 0 0 auto;
    position: relative;
}

.mmz-help-tooltip__trigger {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 50%;
    color: #58706a;
    cursor: help;
    display: inline-flex;
    height: 24px;
    justify-content: center;
    padding: 0;
    transition: background-color 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
    width: 24px;
}

.mmz-help-tooltip__indicator {
    align-items: center;
    color: #58706a;
    display: inline-flex;
    height: 24px;
    justify-content: center;
    width: 24px;
}

.mmz-help-tooltip__icon {
    display: block;
    flex: 0 0 auto;
}

.mmz-help-tooltip__trigger:hover {
    background-color: #e7f2ee;
    color: #0f5b4c;
}

.mmz-help-tooltip__trigger:focus-visible {
    background-color: #e7f2ee;
    box-shadow: 0 0 0 3px rgba(29, 111, 93, 0.25);
    color: #0f5b4c;
    outline: none;
}

.mmz-help-tooltip__content {
    background-color: #173f37;
    border-radius: 7px;
    bottom: calc(100% + 9px);
    box-shadow: 0 8px 22px rgba(15, 63, 55, 0.2);
    color: #fff;
    font-size: 12.5px;
    font-weight: 400;
    left: 50%;
    letter-spacing: 0;
    line-height: 1.4;
    max-width: min(270px, calc(100vw - 48px));
    opacity: 0;
    padding: 9px 11px;
    pointer-events: none;
    position: absolute;
    text-align: left;
    text-transform: none;
    transform: translate(-50%, 4px);
    transition: opacity 0.15s ease, transform 0.15s ease, visibility 0.15s ease;
    visibility: hidden;
    width: max-content;
    z-index: 50;
}

.mmz-help-tooltip__content::after {
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid #173f37;
    content: '';
    left: 50%;
    position: absolute;
    top: 100%;
    transform: translateX(-50%);
}

.mmz-help-tooltip:hover .mmz-help-tooltip__content,
.mmz-help-tooltip:focus-within .mmz-help-tooltip__content,
[data-mmz-tooltip-parent]:hover .mmz-help-tooltip__content,
[data-mmz-tooltip-parent]:focus-visible .mmz-help-tooltip__content {
    opacity: 1;
    pointer-events: auto;
    transform: translate(-50%, 0);
    visibility: visible;
}

[data-mmz-tooltip-parent]:hover .mmz-help-tooltip__indicator,
[data-mmz-tooltip-parent]:focus-visible .mmz-help-tooltip__indicator {
    color: #0f5b4c;
}

.mmz-help-tooltip.is-dismissed .mmz-help-tooltip__content,
[data-mmz-tooltip-parent].is-dismissed .mmz-help-tooltip__content {
    opacity: 0;
    pointer-events: none;
    transform: translate(-50%, 4px);
    visibility: hidden;
}

.mmz-admin-kpi__valor {
    color: #0f3f37;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.1;
}

.mmz-admin-kpi__detalle {
    color: #6b7280;
    font-size: 12px;
}

/* Cifra principal acompanada de una secundaria mas discreta. */
.mmz-admin-kpi__valor-row {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
}

.mmz-admin-kpi__extra {
    align-items: baseline;
    background-color: #f2f7f5;
    border: 1px solid #e0eae6;
    border-radius: 999px;
    color: #40514c;
    display: inline-flex;
    gap: 5px;
    line-height: 1.2;
    padding: 3px 10px;
    text-decoration: none;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.mmz-admin-kpi__extra strong {
    color: #1d6f5d;
    font-size: 15px;
    font-weight: 700;
}

.mmz-admin-kpi__extra small {
    font-size: 11.5px;
    font-weight: 600;
}

a.mmz-admin-kpi__extra:hover,
a.mmz-admin-kpi__extra:focus {
    background-color: #e6f1ed;
    border-color: #cce2db;
    color: #24413a;
    text-decoration: none;
}

a.mmz-admin-kpi__extra:focus-visible {
    outline: 2px solid #1d6f5d;
    outline-offset: 2px;
}

.mmz-admin-kpi--ok {
    border-left-color: #2f8a72;
}

.mmz-admin-kpi--warning {
    border-left-color: #c08a16;
}

.mmz-admin-kpi--warning .mmz-admin-kpi__valor {
    color: #5b3f08;
}

.mmz-admin-kpi--retomado {
    border-left-color: #7a5b98;
}

.mmz-admin-kpi--retomado .mmz-admin-kpi__valor {
    color: #5f497a;
}

.mmz-admin-kpi--danger {
    border-left-color: #9c1c1c;
}

.mmz-admin-kpi--danger .mmz-admin-kpi__valor {
    color: #7a1414;
}

.mmz-admin-kpi--muted {
    border-left-color: #95a2a0;
}

.mmz-admin-kpi--muted .mmz-admin-kpi__valor {
    color: #475552;
}

/* ----- Panorama por estado ----- */

.mmz-kpi-filtro {
    cursor: pointer;
    font: inherit;
    text-align: left;
    transition: box-shadow 0.12s ease, transform 0.12s ease, border-color 0.12s ease;
}

.mmz-kpi-filtro:hover {
    box-shadow: 0 3px 8px rgba(21, 81, 70, 0.12);
    transform: translateY(-1px);
}

.mmz-kpi-filtro.is-active {
    box-shadow: 0 0 0 2px rgba(29, 111, 93, 0.35);
    border-color: #1d6f5d;
}

.mmz-admin-tabs {
    border-bottom: 1px solid #e3e9e7;
    display: flex;
    gap: 4px;
    margin-bottom: 16px;
}

.mmz-admin-tab {
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    color: #4a5b56;
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: -1px;
    padding: 10px 14px;
}

.mmz-admin-tab:hover {
    color: #0f3f37;
}

.mmz-admin-tab.is-active {
    border-bottom-color: #1d6f5d;
    color: #0f3f37;
}

.mmz-panorama-toolbar {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid #e3e9e7;
    background-color: #f6f9f8;
}

.mmz-panorama-buscar {
    max-width: 280px;
}

.mmz-panorama-filtro-activo[hidden] {
    display: none;
}

.mmz-panorama-filtro-activo {
    align-items: center;
    background-color: #e7f1ee;
    border-radius: 999px;
    color: #0f3f37;
    display: inline-flex;
    font-size: 12.5px;
    font-weight: 600;
    gap: 6px;
    padding: 4px 6px 4px 12px;
}

.mmz-panorama-filtro-limpiar {
    background: none;
    border: none;
    color: #0f3f37;
    cursor: pointer;
    font-size: 12px;
    line-height: 1;
    padding: 2px 4px;
}

.mmz-panorama-toggle {
    align-items: center;
    background: none;
    border: none;
    color: #0f3f37;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    gap: 6px;
    padding: 0;
    text-align: left;
}

.mmz-panorama-caret {
    color: #6b7280;
    display: inline-block;
    font-size: 11px;
    transition: transform 0.12s ease;
}

.mmz-panorama-toggle.is-open .mmz-panorama-caret {
    transform: rotate(90deg);
}

.mmz-panorama-estado-plano {
    color: #4a5b56;
}

.mmz-panorama-alerta {
    color: #9a6a04;
    display: inline-block;
    font-size: 11.5px;
    font-weight: 600;
    margin-left: 6px;
    white-space: nowrap;
}

.mmz-panorama-historial > td {
    background-color: #fafcfb;
    padding: 0;
}

.mmz-panorama-historial__box {
    padding: 8px 16px 14px 34px;
}

.mmz-panorama-historial__titulo {
    color: #4a5b56;
    display: block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.03em;
    margin-bottom: 6px;
    text-transform: uppercase;
}

.mmz-panorama-historial__table {
    margin-bottom: 0;
}

.mmz-panorama-historial__table th {
    font-size: 11.5px;
}

/* Grupo de botones de acción: siempre en línea, alineados a la derecha. */
.mmz-admin-actions {
    display: inline-flex;
    gap: 6px;
    justify-content: flex-end;
    white-space: nowrap;
}

.mmz-admin-estado {
    color: #2f3f3b;
    font-weight: 600;
}

/* Barra de cupo por plantel. */
.mmz-cupo {
    min-width: 130px;
    max-width: 180px;
}

.mmz-cupo__cifras {
    color: #2f3f3b;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.mmz-cupo__bar {
    background-color: #eef2f1;
    border-radius: 999px;
    display: block;
    height: 6px;
    margin-top: 5px;
    overflow: hidden;
}

.mmz-cupo__fill {
    background-color: #2f8a72;
    border-radius: 999px;
    display: block;
    height: 100%;
    min-width: 2px;
    transition: width 0.2s ease;
}

.mmz-cupo__fill--alto {
    background-color: #c08a16;
}

.mmz-cupo__fill--full {
    background-color: #9c1c1c;
}

/* ----- Paneles y tablas ----- */

.mmz-admin-stack {
    margin-bottom: 0;
}

.mmz-admin-panel.mmz-admin-panel--soft {
    border: 1px solid #e3e9e7;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(21, 81, 70, 0.04);
    margin-bottom: 18px;
    overflow: hidden;
}

.mmz-admin-panel.mmz-admin-panel--soft > .panel-heading,
.mmz-admin-panel.mmz-admin-panel--soft > header.panel-heading {
    align-items: center;
    background-color: #f6f9f8;
    border-bottom: 1px solid #e3e9e7;
    color: #0f3f37;
    display: flex;
    font-weight: 600;
    gap: 8px;
    justify-content: space-between;
    padding: 12px 16px;
}

.mmz-admin-panel__heading small {
    color: #6b7280;
    font-size: 12px;
    font-weight: 400;
}

/* Aclaracion junto al titulo, cuando la derecha la ocupa un enlace. */
.mmz-admin-panel__nota {
    margin-left: 6px;
}

.mmz-admin-panel__heading h2 {
    color: inherit;
    font-size: 14px;
    font-weight: 700;
    margin: 0;
}

.mmz-admin-pager {
    align-items: center;
    background-color: #f6f9f8;
    border-top: 1px solid #e3e9e7;
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    justify-content: space-between;
    padding: 10px 16px;
}

.mmz-admin-pager__info {
    color: #6b7280;
    font-size: 13px;
}

.mmz-admin-pager__nav {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.mmz-admin-pager__pages {
    align-items: center;
    display: inline-flex;
    gap: 3px;
}

.mmz-admin-pager__page {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 6px;
    color: #315b53;
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    height: 30px;
    justify-content: center;
    min-width: 30px;
    padding: 0 6px;
    text-decoration: none;
}

.mmz-admin-pager__page:hover,
.mmz-admin-pager__page:focus-visible {
    background-color: #e7f1ee;
    border-color: #c5dad4;
    color: #0f3f37;
    text-decoration: none;
}

.mmz-admin-pager__page.is-current {
    background-color: #1d6f5d;
    border-color: #1d6f5d;
    color: #fff;
}

.mmz-admin-pager__ellipsis {
    color: #8a9693;
    padding: 0 2px;
}

.mmz-admin-pager__pos {
    color: #6b7280;
    font-size: 12px;
}

.mmz-admin-pager .btn.disabled,
.mmz-admin-pager .btn:disabled {
    opacity: 0.5;
    pointer-events: none;
}

.mmz-admin-panel.is-loading {
    opacity: 0.6;
    transition: opacity 0.15s ease;
}

.mmz-admin-panel__link {
    color: #1d6f5d;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.mmz-admin-panel__link:hover {
    color: #155146;
    text-decoration: underline;
}

.mmz-admin-table {
    margin: 0;
}

.mmz-admin-table > thead > tr > th {
    background-color: #fafcfb;
    border-bottom: 1px solid #e3e9e7;
    color: #4a5b56;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.mmz-admin-table > tbody > tr > td {
    border-top: 1px solid #eef2f1;
    vertical-align: middle;
}

.mmz-admin-table > tbody > tr:hover {
    background-color: #f6faf9;
}

.mmz-admin-table--inner {
    background-color: #fafcfb;
    border-radius: 6px;
    overflow: hidden;
}

.mmz-admin-empty {
    color: #6b7280;
    font-style: italic;
    padding: 22px !important;
    text-align: center;
}

.mmz-admin-id {
    background-color: #eef5f2;
    border-radius: 4px;
    color: #155146;
    display: inline-block;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px;
    font-weight: 600;
    padding: 2px 6px;
}

.mmz-cell-sub {
    display: block;
    margin-top: 2px;
}

/* ----- Lista de grupos (por estatus, por plantel) ----- */

.mmz-admin-panel--rank > .panel-body {
    padding: 4px 18px 6px;
}

/* Dos listas de distinto largo lado a lado quedan con la misma altura. */
@media (min-width: 992px) {
    .mmz-admin-stack--parejas {
        display: flex;
        flex-wrap: wrap;
    }

    .mmz-admin-stack--parejas > [class*="col-"] {
        display: flex;
    }

    .mmz-admin-stack--parejas > [class*="col-"] > .mmz-admin-panel {
        flex: 1 1 auto;
    }
}

.mmz-rank {
    list-style: none;
    margin: 0;
    padding: 0;
}

.mmz-rank__item {
    min-width: 0;
}

.mmz-rank__item + .mmz-rank__item {
    border-top: 1px solid #eef2f1;
}

.mmz-rank__cuerpo {
    align-items: baseline;
    color: inherit;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    min-width: 0;
    padding: 11px 0;
    text-decoration: none;
}

a.mmz-rank__cuerpo {
    /* El area de clic cubre toda la fila, de borde a borde del panel. */
    margin: 0 -10px;
    padding-left: 10px;
    padding-right: 10px;
    transition: background-color 0.15s ease;
}

a.mmz-rank__cuerpo:hover,
a.mmz-rank__cuerpo:focus {
    background-color: #f2f7f5;
    color: inherit;
    text-decoration: none;
}

a.mmz-rank__cuerpo:focus-visible {
    outline: 2px solid #1d6f5d;
    outline-offset: -2px;
}

.mmz-rank__label {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    min-width: 0;
}

.mmz-rank__nombre {
    color: #24413a;
    font-size: 13.5px;
    font-weight: 600;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-rank__nombre--atenuado {
    color: #7b8682;
    font-style: italic;
    font-weight: 500;
}

.mmz-rank__nota {
    color: #7b8682;
    font-size: 11.5px;
}

.mmz-rank__nota--ubicacion {
    align-items: center;
    color: #55716a;
    display: flex;
    flex-basis: 100%;
    gap: 5px;
    line-height: 1.3;
    margin-top: 1px;
}

.mmz-rank__nota--ubicacion .glyphicon {
    color: #1d6f5d;
    font-size: 10px;
}

.mmz-rank__valor {
    color: #0f3f37;
    flex-shrink: 0;
    font-size: 16px;
    font-variant-numeric: tabular-nums;
    font-weight: 700;
    line-height: 1;
}

/* ----- Fila de registro: panel y listado de aspirantes ----- */

.mmz-registro-persona {
    display: block;
    min-width: 0;
}

.mmz-registro-persona__nombre {
    color: #24413a;
    display: block;
    font-size: 13.5px;
    line-height: 1.3;
    overflow-wrap: anywhere;
}

.mmz-registro-persona__meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 4px 8px;
    margin-top: 4px;
}

.mmz-registro-persona__correo {
    color: #6b7280;
    display: block;
    font-size: 12px;
    margin-top: 3px;
    overflow-wrap: anywhere;
}

.mmz-registro-plantel {
    display: block;
    max-width: 280px;
    overflow-wrap: anywhere;
}

.mmz-registro-plantel__ubicacion {
    color: #7b8682;
    display: block;
    font-size: 11.5px;
    margin-top: 2px;
}

/* Las columnas cortas se ciñen a su contenido para que el ancho sobrante quede
   en las que llevan texto largo (aspirante y plantel). Solo en escritorio: en
   movil la tabla se convierte en tarjetas apiladas. */
@media (min-width: 768px) {
    .mmz-admin-table > thead > tr > .mmz-col-ajustada {
        white-space: nowrap;
        width: 1%;
    }
}

/* Estatus y paso viven juntos: los dos describen el avance del expediente.
   Sin envolver, para que la columna reserve el ancho de la linea completa. */
.mmz-registro-avance {
    align-items: center;
    display: flex;
    flex-wrap: nowrap;
    gap: 6px;
}

.mmz-registro-avance .mmz-status {
    white-space: nowrap;
}

/* Expediente que todavia no elige plantel. */
.mmz-registro-plantel__pendiente {
    color: #7b8682;
    font-style: italic;
    font-weight: 500;
}

.mmz-registro-fecha {
    color: #6b7280;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

.mmz-plantel-turnos-panel {
    margin-top: 16px;
}

.mmz-turnos-links {
    display: grid;
    gap: 12px;
}

.mmz-turnos-link {
    background-color: #fff;
    border: 1px solid #e3e9e7;
    border-radius: 10px;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 14px 16px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-turnos-link:hover {
    border-color: #cdd9d5;
    box-shadow: 0 2px 12px rgba(20, 81, 70, 0.07);
}

.mmz-turnos-link__info {
    display: flex;
    flex-direction: column;
    gap: 6px;
    min-width: 0;
}

.mmz-turnos-link__title {
    align-items: baseline;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 8px;
}

.mmz-turnos-link__title strong {
    color: #1f2a37;
    font-size: 15px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}

.mmz-turnos-link__dates {
    color: #6b7280;
    font-size: 12.5px;
}

.mmz-turnos-link__tags {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 6px 10px;
}

.mmz-turnos-link__cupo {
    color: #4a5b56;
    font-size: 12.5px;
}

.mmz-turnos-link__cupo strong {
    color: #155146;
    font-weight: 700;
}

.mmz-turnos-link__sep {
    color: #b6c2bd;
    margin: 0 2px;
}

.mmz-turnos-link__action {
    align-self: stretch;
    margin-top: 2px;
    text-align: center;
    white-space: nowrap;
}

.mmz-turnos-base-head {
    align-items: flex-end;
    display: flex;
    flex-wrap: wrap;
    gap: 10px 20px;
    justify-content: space-between;
    margin-bottom: 14px;
}

.mmz-turnos-base-head__hint {
    color: #545454;
    flex: 1 1 240px;
    line-height: 1.4;
    margin: 0;
    max-width: 420px;
}

.mmz-turnos-base-control {
    flex: 0 0 auto;
}

.mmz-turnos-base-control label {
    display: block;
    font-size: 12px;
    font-weight: 600;
    margin-bottom: 4px;
}

.mmz-turnos-base-control .form-control {
    width: 130px;
}

.mmz-turnos-base-table {
    margin-bottom: 0;
}

.mmz-turnos-base-table tr[hidden] {
    display: none;
}

.mmz-turnos-base-table th:first-child,
.mmz-turnos-base-table td:first-child {
    text-align: center;
    width: 64px;
}

.mmz-turnos-base-table th:last-child,
.mmz-turnos-base-table td:last-child {
    text-align: right;
    width: 120px;
}

.mmz-turnos-base-table td:last-child .form-control {
    text-align: right;
}

.mmz-turnos-base-num,
.mmz-turno-num {
    align-items: center;
    background-color: #eef3f1;
    border-radius: 999px;
    color: #235b4e;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.mmz-turnos-base-note {
    margin-bottom: 0;
    margin-top: 12px;
}

/* Tabla de turnos por convocatoria (Turno · Nombre · Cupo · Usado) */
.mmz-turnos-toolbar {
    align-items: stretch;
    display: grid;
    gap: 14px;
    grid-template-columns: minmax(220px, 280px) minmax(0, 1fr);
    margin-bottom: 16px;
}

.mmz-turnos-count,
.mmz-participacion-toggle {
    background-color: #fbfcfc;
    border: 1px solid #dce4e1;
    border-radius: 8px;
    min-height: 82px;
}

.mmz-turnos-count {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 14px 16px;
}

.mmz-turnos-count label {
    color: #3d4543;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 8px;
}

.mmz-turnos-count__control {
    align-items: center;
    display: flex;
    gap: 10px;
}

.mmz-turnos-count__control .form-control {
    flex: 0 0 86px;
    font-size: 18px;
    font-weight: 700;
    height: 42px;
}

.mmz-turnos-count__control span {
    color: #697370;
    font-size: 13px;
    font-weight: 600;
}

.mmz-participacion-toggle {
    align-items: center;
    cursor: pointer;
    display: flex;
    gap: 14px;
    margin: 0;
    padding: 14px 16px;
    transition: border-color 0.18s ease, box-shadow 0.18s ease, background-color 0.18s ease;
}

.mmz-participacion-toggle input {
    opacity: 0;
    position: absolute;
}

.mmz-participacion-toggle__switch {
    background-color: #c7cfcc;
    border-radius: 999px;
    flex: 0 0 48px;
    height: 26px;
    position: relative;
    transition: background-color 0.18s ease;
}

.mmz-participacion-toggle__switch::after {
    background-color: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.22);
    content: "";
    height: 20px;
    left: 3px;
    position: absolute;
    top: 3px;
    transition: transform 0.18s ease;
    width: 20px;
}

.mmz-participacion-toggle__body {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.mmz-participacion-toggle__body strong {
    color: #283734;
    font-size: 15px;
}

.mmz-participacion-toggle__body small {
    color: #66716e;
    font-size: 12px;
    line-height: 1.35;
}

.mmz-participacion-toggle input:checked + .mmz-participacion-toggle__switch {
    background-color: #235b4e;
}

.mmz-participacion-toggle input:checked + .mmz-participacion-toggle__switch::after {
    transform: translateX(22px);
}

.mmz-participacion-toggle:has(input:checked) {
    background-color: #f1f7f5;
    border-color: #aaccc1;
    box-shadow: inset 4px 0 0 #235b4e;
}

.mmz-participacion-toggle input:focus-visible + .mmz-participacion-toggle__switch {
    outline: 2px solid #9f2241;
    outline-offset: 3px;
}

.mmz-turnos-editor {
    margin-top: 18px;
}

.mmz-turnos-editor__head {
    align-items: flex-end;
    display: flex;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 10px;
}

.mmz-turnos-editor__head span {
    color: #34423f;
    font-size: 14px;
    font-weight: 700;
}

.mmz-turnos-editor__head small {
    color: #68736f;
    font-size: 12px;
}

.mmz-turnos-list {
    display: grid;
    gap: 8px;
}

.mmz-turno-row {
    align-items: end;
    background-color: #fff;
    border: 1px solid #dde5e2;
    border-radius: 8px;
    display: grid;
    gap: 12px;
    grid-template-columns: 64px minmax(150px, .8fr) minmax(240px, 1fr) minmax(190px, 1fr) 110px 76px;
    padding: 12px;
}

.mmz-turno-horario-admin {
    display: flex;
    align-items: center;
    gap: 6px;
}

.mmz-turno-horario-admin .form-control {
    min-width: 110px;
}

.mmz-turno-row__schedule,
.mmz-turno-row__info {
    min-width: 0;
}

.mmz-turno-row__schedule label,
.mmz-turno-row__info label {
    display: block;
    margin-bottom: 5px;
    color: #374151;
    font-size: 12px;
}

.mmz-turno-row[hidden] {
    display: none;
}

.mmz-turno-row__num,
.mmz-turno-row__used {
    align-items: center;
    display: flex;
    flex-direction: column;
    gap: 4px;
    justify-content: center;
}

.mmz-turno-row__num small,
.mmz-turno-row__used small {
    color: #6b7471;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
}

.mmz-turno-row__name,
.mmz-turno-row__cupo {
    min-width: 0;
}

.mmz-turno-row__name label,
.mmz-turno-row__cupo label {
    color: #4b5855;
    display: block;
    font-size: 12px;
    font-weight: 700;
    margin-bottom: 5px;
}

.mmz-turno-row__cupo .form-control {
    font-weight: 700;
    text-align: right;
}

.mmz-turno-row__used {
    background-color: #f3f7f5;
    border-radius: 8px;
    min-height: 44px;
    padding: 6px 8px;
}

.mmz-turno-row__used span {
    color: #235b4e;
    font-size: 17px;
    font-weight: 800;
    line-height: 1;
}

.mmz-turnos-rule {
    margin-top: 12px;
}

/* Resumen de cupo asignado vs. cupo base del plantel */
.mmz-turnos-cupo {
    margin: 4px 0 18px;
    max-width: 480px;
}

.mmz-turnos-cupo .mmz-cupo-resumen {
    margin-bottom: 10px;
}

.mmz-cupo-barra.is-over .mmz-cupo-barra__fill {
    background-color: #9c1c1c;
}

.mmz-turnos-cupo__aviso {
    align-items: center;
    display: flex;
    font-size: 13px;
    gap: 6px;
    margin: 0;
}

.mmz-turnos-cupo__aviso[hidden] {
    display: none;
}

.mmz-turnos-cupo__aviso::before {
    content: "!";
    align-items: center;
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 700;
    height: 16px;
    justify-content: center;
    width: 16px;
}

.mmz-turnos-cupo__aviso.is-under {
    color: #8a5a00;
}

.mmz-turnos-cupo__aviso.is-under::before {
    background-color: #c08416;
}

.mmz-turnos-cupo__aviso.is-over {
    color: #9c1c1c;
}

.mmz-turnos-cupo__aviso.is-over::before {
    background-color: #9c1c1c;
}

@media (max-width: 767px) {
    .mmz-turnos-base-control,
    .mmz-turnos-base-control .form-control {
        width: 100%;
    }

    .mmz-turnos-toolbar {
        grid-template-columns: 1fr;
    }

    .mmz-turnos-count__control .form-control {
        flex-basis: 100px;
    }

    .mmz-participacion-toggle {
        align-items: flex-start;
    }

    .mmz-turnos-editor__head {
        align-items: flex-start;
        flex-direction: column;
        gap: 2px;
    }

    .mmz-turno-row {
        grid-template-columns: 54px minmax(0, 1fr);
    }

    .mmz-turno-row__cupo,
    .mmz-turno-row__used,
    .mmz-turno-row__schedule,
    .mmz-turno-row__info {
        grid-column: 2;
    }

    .mmz-turno-row__num {
        align-self: start;
        padding-top: 24px;
    }

    .mmz-turno-row__used {
        align-items: flex-start;
        flex-direction: row;
        gap: 6px;
        justify-content: flex-start;
    }
}

.mmz-admin-mono {
    background-color: transparent;
    color: #2b2b2b;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 12px;
    padding: 0;
}

.mmz-admin-detalle {
    color: #4a5b56;
    display: inline-block;
    font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
    font-size: 11.5px;
    max-width: 360px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-admin-step {
    background-color: #eef5f2;
    border-radius: 999px;
    color: #155146;
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    min-width: 28px;
    padding: 2px 8px;
    text-align: center;
}

.mmz-admin-pill {
    background-color: #eef5f2;
    border-radius: 999px;
    color: #155146;
    display: inline-block;
    font-size: 12px;
    font-weight: 600;
    padding: 2px 10px;
}

.mmz-admin-range {
    align-items: center;
    display: inline-flex;
    flex-wrap: wrap;
    font-size: 13px;
    gap: 6px;
}

.mmz-admin-range__sep {
    color: #95a2a0;
}

/* ----- Filtros ----- */

.mmz-admin-filter-card {
    background-color: #fff;
    border: 1px solid #e3e9e7;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(21, 81, 70, 0.04);
    margin-bottom: 14px;
    padding: 14px 16px;
}

.mmz-admin-filter-card__heading {
    align-items: flex-start;
    border-bottom: 1px solid #edf1f0;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    margin: -2px 0 14px;
    padding-bottom: 10px;
}

.mmz-admin-filter-card__heading strong {
    color: #163e37;
    display: block;
    font-size: 14px;
}

.mmz-admin-filter-card__heading small {
    color: #6b7280;
    display: block;
    font-size: 12px;
    margin-top: 2px;
}

.mmz-admin-filter-card__clear {
    color: #1d6f5d;
    flex: 0 0 auto;
    font-size: 12.5px;
    font-weight: 600;
    padding: 2px;
}

.mmz-admin-filter-card__clear:hover,
.mmz-admin-filter-card__clear:focus-visible {
    color: #0f3f37;
    text-decoration: underline;
}

.mmz-admin-filter-card__row {
    display: grid;
    gap: 12px;
    grid-template-columns: 2fr 1fr auto;
}

.mmz-admin-filter-card__row--registros {
    grid-template-columns: minmax(260px, 2fr) minmax(150px, 1fr) minmax(180px, 1fr) auto;
}

.mmz-registros-filtros .mmz-admin-filter-card__field--action .btn {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    line-height: 1;
}

.mmz-admin-filter-card__field label {
    color: #4a5b56;
    display: block;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    margin-bottom: 4px;
    text-transform: uppercase;
}

.mmz-admin-filter-card__field--action {
    align-items: end;
    display: flex;
}

.mmz-admin-filter-card__field--action .btn {
    height: 38px;
    min-width: 140px;
}

.mmz-admin-result-count {
    color: #6b7280;
    font-size: 12.5px;
    margin: 0 4px 14px;
}

.mmz-registros-kpis .mmz-admin-kpi__valor,
.mmz-registro-summary .mmz-admin-kpi__valor,
.mmz-admin-pager__info,
.mmz-admin-pager__pos,
.mmz-admin-pager__page {
    font-variant-numeric: tabular-nums;
}

.mmz-admin-kpi__valor small {
    color: #78918b;
    font-size: 15px;
    margin-left: 2px;
}

.mmz-admin-kpi__valor--text {
    font-size: 22px;
    line-height: 1.25;
}

.mmz-registro-heading-meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px 12px;
}

.mmz-registro-heading-meta > span:last-child {
    color: #6b7280;
    font-size: 12px;
}

.mmz-registro-section-nav {
    align-items: center;
    background-color: #fff;
    border: 1px solid #e3e9e7;
    border-radius: 10px;
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    margin: -4px 0 18px;
    padding: 6px;
}

.mmz-registro-section-nav a {
    border-radius: 7px;
    color: #315b53;
    font-size: 12.5px;
    font-weight: 600;
    padding: 7px 11px;
    text-decoration: none;
}

.mmz-registro-section-nav a:hover,
.mmz-registro-section-nav a:focus-visible {
    background-color: #eef5f2;
    color: #0f3f37;
}

.mmz-anchor-target {
    scroll-margin-top: calc(var(--mmz-admin-topbar-offset, 0px) + 112px);
}

.mmz-admin-section-intro {
    color: #596965;
    font-size: 13px;
    line-height: 1.5;
    margin: 0 0 14px;
    max-width: 860px;
}

.mmz-admin-document-grid {
    display: grid;
    gap: 10px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mmz-admin-document {
    align-items: center;
    background-color: #fbfcfc;
    border: 1px solid #e3e9e7;
    border-radius: 9px;
    display: grid;
    gap: 12px;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    min-width: 0;
    padding: 12px;
}

.mmz-admin-document.is-available {
    border-left: 4px solid #2f8a72;
}

.mmz-admin-document.is-missing {
    border-left: 4px solid #c08a16;
}

.mmz-admin-document__icon {
    align-items: center;
    background-color: #eef5f2;
    border-radius: 8px;
    color: #155146;
    display: flex;
    font-size: 10px;
    font-weight: 800;
    height: 42px;
    justify-content: center;
    letter-spacing: 0.04em;
    width: 42px;
}

.mmz-admin-document__body {
    min-width: 0;
}

.mmz-admin-document__heading {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.mmz-admin-document__heading h3 {
    color: #163e37;
    font-size: 14px;
    font-weight: 700;
    margin: 0;
}

.mmz-admin-document__name {
    color: #33413e;
    font-size: 12.5px;
    margin: 5px 0 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-admin-document__meta {
    color: #71807c;
    font-size: 11.5px;
    font-variant-numeric: tabular-nums;
    margin: 3px 0 0;
}

.mmz-admin-document__meta span {
    margin: 0 4px;
}

.mmz-admin-document__action {
    align-items: stretch;
    display: flex;
    flex-direction: column;
    gap: 6px;
    text-align: right;
}

.mmz-admin-document__warning {
    color: #7a1414;
    display: block;
    font-size: 11.5px;
    max-width: 150px;
}

.mmz-admin-document-history {
    border-top: 1px solid #edf1f0;
    margin-top: 14px;
    padding-top: 12px;
}

.mmz-admin-document-history > summary,
.mmz-audit-event__details > summary {
    color: #1d6f5d;
    cursor: pointer;
    font-size: 12.5px;
    font-weight: 700;
    width: fit-content;
}

.mmz-admin-document-history > summary:focus-visible,
.mmz-audit-event__details > summary:focus-visible,
.mmz-admin-paso > summary:focus-visible {
    border-radius: 4px;
    outline: 3px solid rgba(29, 111, 93, 0.28);
    outline-offset: 3px;
}

.mmz-admin-document-history[open] > summary {
    margin-bottom: 10px;
}

/* ----- Status chips ----- */

.mmz-status {
    background-color: #eef2f1;
    border-radius: 999px;
    color: #475552;
    display: inline-block;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
    line-height: 1;
    padding: 4px 10px;
    text-transform: lowercase;
}

.mmz-status--ok {
    background-color: #dff1ea;
    color: #155146;
}

.mmz-status--warning {
    background-color: #fff1d4;
    color: #6b4a05;
}

.mmz-status--retomado {
    background-color: #ede7f4;
    color: #5f497a;
}

.mmz-status--danger {
    background-color: #fbe1e1;
    color: #7a1414;
}

.mmz-status--muted {
    background-color: #e9eded;
    color: #555f5d;
}

.mmz-status--neutral {
    background-color: #eaeff5;
    color: #2a4368;
}

/* ----- Detalle dl helper ----- */

.mmz-admin-dl {
    display: grid;
    gap: 10px;
    margin: 0;
}

.mmz-admin-dl > div {
    border-bottom: 1px dashed #e3e9e7;
    padding-bottom: 8px;
}

.mmz-admin-dl > div:last-child {
    border-bottom: 0;
    padding-bottom: 0;
}

.mmz-admin-dl dt {
    color: #6b7280;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    margin-bottom: 2px;
    text-transform: uppercase;
}

.mmz-admin-dl dd {
    color: #1f2a28;
    font-size: 13.5px;
    margin: 0;
    word-break: break-word;
}

/* Datos cortos (fechas, telefonos) en dos columnas: la lista de una sola deja
   la tarjeta muy alta y obliga a desplazarse para leer siete renglones. */
@media (min-width: 768px) {
    .mmz-admin-dl--pares {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 10px 20px;
    }

    .mmz-admin-dl--pares > div:nth-last-child(2) {
        border-bottom: 0;
        padding-bottom: 0;
    }
}

/* Aclaracion bajo el valor: la sede, la edad o el aviso de plantel provisional. */
.mmz-admin-dl dd small {
    color: #6b7280;
    display: block;
    font-size: 12px;
    margin-top: 2px;
}

.mmz-admin-dl dd .mmz-status {
    margin-left: 6px;
}

/* ----- Pasos del aspirante ----- */

.mmz-admin-pasos {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.mmz-admin-paso {
    border: 1px solid #e3e9e7;
    border-radius: 8px;
    overflow: hidden;
}

.mmz-admin-paso__heading {
    align-items: center;
    background-color: #fbfcfc;
    cursor: pointer;
    display: flex;
    gap: 10px;
    list-style: none;
    padding: 11px 12px;
}

.mmz-admin-paso__heading::-webkit-details-marker {
    display: none;
}

.mmz-admin-paso[open] > .mmz-admin-paso__heading {
    background-color: #eef5f2;
    border-bottom: 1px solid #d9e6e2;
}

.mmz-admin-paso__num {
    align-items: center;
    background-color: #1d6f5d;
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    height: 26px;
    justify-content: center;
    width: 26px;
}

.mmz-admin-paso__title {
    display: block;
    flex: 1 1 auto;
    min-width: 0;
}

.mmz-admin-paso__title strong,
.mmz-admin-paso__heading h4 {
    color: #0f3f37;
    display: block;
    font-size: 15px;
    font-weight: 600;
    margin: 0;
}

.mmz-admin-paso__title small {
    color: #6b7280;
    display: block;
    font-size: 11.5px;
    font-weight: 400;
    margin-top: 1px;
}

.mmz-admin-paso__toggle {
    color: #1d6f5d;
    flex: 0 0 auto;
    font-size: 11.5px;
    font-weight: 700;
}

.mmz-admin-paso__content {
    padding: 12px;
}

.mmz-admin-empty-inline {
    color: #6b7280;
    font-style: italic;
}

.mmz-admin-field {
    color: #4a5b56;
    font-size: 12px;
    font-weight: 700;
    min-width: 220px;
    text-transform: uppercase;
}

.mmz-admin-responsables {
    display: grid;
    gap: 12px;
}

.mmz-admin-responsable {
    background-color: #fbfcfd;
    border: 1px solid #e3e9e7;
    border-left: 4px solid #1d6f5d;
    border-radius: 6px;
    padding: 12px 14px;
}

.mmz-admin-responsable__heading {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 10px;
}

.mmz-admin-responsable__heading strong {
    color: #1f2a28;
    display: block;
    font-size: 15px;
    line-height: 1.25;
}

.mmz-admin-responsable__index {
    color: #6b7280;
    display: block;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-bottom: 2px;
    text-transform: uppercase;
}

.mmz-admin-responsable__grid {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 0 0 10px;
}

.mmz-admin-responsable__grid > div {
    background-color: #fff;
    border: 1px solid #edf1f0;
    border-radius: 6px;
    padding: 8px 10px;
}

.mmz-admin-responsable__grid dt {
    color: #6b7280;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.mmz-admin-responsable__grid dd {
    color: #1f2a28;
    font-size: 13px;
    margin: 2px 0 0;
    word-break: break-word;
}

.mmz-admin-responsable__address {
    color: #4a5b56;
    font-size: 13px;
    line-height: 1.45;
    margin: 0;
}

.mmz-admin-doc-step {
    align-items: flex-start;
    background-color: #fbfcfd;
    border: 1px solid #e3e9e7;
    border-radius: 6px;
    color: #1f2a28;
    display: flex;
    gap: 10px;
    padding: 10px 12px;
}

.mmz-admin-doc-step ul {
    margin: 0;
    padding-left: 18px;
}

.mmz-admin-doc-step li {
    margin-bottom: 4px;
}

.mmz-admin-doc-step li:last-child {
    margin-bottom: 0;
}

/* ----- Bitácora del expediente ----- */

.mmz-audit-timeline {
    list-style: none;
    margin: 0;
    padding: 0 0 0 20px;
    position: relative;
}

.mmz-audit-timeline::before {
    background-color: #dce7e4;
    bottom: 14px;
    content: "";
    left: 5px;
    position: absolute;
    top: 14px;
    width: 2px;
}

.mmz-audit-event {
    margin-bottom: 8px;
    position: relative;
}

.mmz-audit-event:last-child {
    margin-bottom: 0;
}

.mmz-audit-event__marker {
    background-color: #78918b;
    border: 3px solid #fff;
    border-radius: 999px;
    box-shadow: 0 0 0 1px #c7d7d3;
    height: 12px;
    left: -20px;
    position: absolute;
    top: 13px;
    width: 12px;
}

.mmz-audit-event--ok .mmz-audit-event__marker {
    background-color: #2f8a72;
}

.mmz-audit-event--warning .mmz-audit-event__marker {
    background-color: #c08a16;
}

.mmz-audit-event--danger .mmz-audit-event__marker {
    background-color: #9c1c1c;
}

.mmz-audit-event__card {
    background-color: #fbfcfc;
    border: 1px solid #e3e9e7;
    border-radius: 8px;
    padding: 9px 12px;
}

/* Cuando y quien, apilados a la derecha del titulo. */
.mmz-audit-event__meta {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 1px;
    text-align: right;
}

.mmz-audit-event__heading {
    align-items: flex-start;
    display: flex;
    gap: 14px;
    justify-content: space-between;
}

.mmz-audit-event__category {
    color: #66807a;
    display: block;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    margin-bottom: 2px;
    text-transform: uppercase;
}

.mmz-audit-event__heading h3 {
    color: #163e37;
    font-size: 14px;
    font-weight: 700;
    margin: 0;
}

.mmz-audit-event__heading time {
    color: #6b7280;
    flex: 0 0 auto;
    font-size: 11.5px;
    font-variant-numeric: tabular-nums;
}

.mmz-audit-event__card > p {
    color: #40504c;
    font-size: 12.5px;
    line-height: 1.4;
    margin: 3px 0 0;
}

.mmz-audit-event__actor {
    color: #8a9490;
    font-size: 11px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 260px;
}

.mmz-audit-event__details {
    border-top: 1px dashed #dce7e4;
    margin-top: 7px;
    padding-top: 6px;
}

/* Mientras llega la pagina nueva, el panel se atenua sin saltar de alto. */
.mmz-admin-panel.is-loading [data-bitacora-cuerpo] {
    opacity: 0.45;
    transition: opacity 0.15s ease;
}

.mmz-audit-event__details[open] > summary {
    margin-bottom: 8px;
}

.mmz-audit-event__details dl {
    display: grid;
    gap: 6px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0;
}

.mmz-audit-event__details dl > div {
    background-color: #fff;
    border: 1px solid #edf1f0;
    border-radius: 6px;
    min-width: 0;
    padding: 7px 9px;
}

.mmz-audit-event__details dt {
    color: #72807d;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.mmz-audit-event__details dd {
    color: #293632;
    font-size: 12px;
    margin: 2px 0 0;
    overflow-wrap: anywhere;
}

.mmz-audit-event__details .mmz-audit-event__agent {
    grid-column: 1 / -1;
}

/* ----- Form actions ----- */

.mmz-admin-formbar {
    background-color: #fff;
    border: 1px solid #e3e9e7;
    border-radius: 10px;
    box-shadow: 0 1px 2px rgba(21, 81, 70, 0.04);
    display: flex;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 18px;
    padding: 14px 16px;
}

/* ----- Responsive ----- */

@media (max-width: 991px) {
    .mmz-admin-topbar__container { flex-wrap: wrap; gap: 10px 12px; min-height: 56px; padding: 8px 12px; }
    .mmz-admin-brand { order: 1; }
    .mmz-admin-user { margin-left: auto; order: 2; }
    .mmz-admin-mainnav {
        flex: 1 0 100%;
        flex-wrap: nowrap;
        gap: 4px;
        margin-left: 0;
        order: 3;
        overflow-x: auto;
        padding-bottom: 2px;
        scrollbar-width: none;
        width: 100%;
        -webkit-overflow-scrolling: touch;
    }
    .mmz-admin-mainnav::-webkit-scrollbar { display: none; }
    .mmz-admin-mainnav__link { flex: 0 0 auto; white-space: nowrap; }
    .mmz-admin-user__info { display: none; }
    .mmz-admin-filter-card__row.mmz-admin-filter-card__row--registros { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
    .mmz-admin-responsable__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mmz-admin-document-grid { grid-template-columns: 1fr; }
}

@media (max-width: 480px) {
    .mmz-admin-brand__texto small { display: none; }
    .mmz-admin-brand__texto strong { font-size: 13px; }
    .mmz-admin-brand__escudo { height: 34px; width: 34px; }
    .mmz-admin-responsable__grid { grid-template-columns: 1fr; }
}

@media (max-width: 767px) {
    .mmz-admin-pageheader { padding: 16px; }
    .mmz-admin-pageheader h1 { font-size: 20px; }
    .mmz-admin-pageheader__actions { width: 100%; }
    .mmz-admin-pageheader__actions .btn { flex: 1 1 auto; }
    .mmz-tools-hero__mark { display: none; }
    .mmz-tools-grid { grid-template-columns: 1fr; }
    .mmz-tool-card { min-height: 0; padding: 16px; }

    .mmz-admin-filter-card__row,
    .mmz-admin-filter-card__row.mmz-admin-filter-card__row--registros { grid-template-columns: 1fr; }
    .mmz-admin-filter-card__field--action .btn { min-width: 0; width: 100%; }
    .mmz-admin-filter-card__heading { align-items: flex-start; flex-direction: column; gap: 6px; }

    .mmz-registro-section-nav {
        flex-wrap: nowrap;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .mmz-registro-section-nav a { flex: 0 0 auto; }

    .mmz-admin-formbar { flex-direction: column-reverse; }
    .mmz-admin-formbar .btn { width: 100%; }

    /* Toolbar de cambios pendientes */
    .mmz-pending-toolbar {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }
    .mmz-pending-actions {
        flex-direction: column;
        width: 100%;
    }
    .mmz-pending-actions .btn { width: 100%; }
    .mmz-bulk-state {
        left: 16px;
        max-width: calc(100% - 32px);
        right: 16px;
        text-align: left;
    }
    .mmz-bulk-state__texto {
        white-space: normal;
    }

    /* Toolbar superior del panel (Reporte + título) */
    .mmz-panel-heading-actions {
        align-items: stretch;
        flex-direction: column;
    }
    .mmz-heading-actions { justify-content: flex-start; width: 100%; }
    .mmz-report-dropdown,
    .mmz-report-dropdown .dropdown-toggle { width: 100%; }

    /* Búsqueda DataTables + filtro estado */
    .mmz-dt-search {
        align-items: stretch;
        gap: 8px;
        grid-template-columns: 1fr;
    }
    .mmz-dt-search input,
    .mmz-dt-search input[type="search"] {
        min-width: 0;
        width: 100%;
    }
    .mmz-dt-search .mmz-estado-filter { margin-left: 0; width: 100%; }

    /* Búsqueda fallback */
    .mmz-fallback-table-controls {
        align-items: stretch;
        gap: 10px;
        grid-template-columns: 1fr;
        margin: 12px 12px;
    }
    .mmz-fallback-table-controls .mmz-fallback-search,
    .mmz-fallback-estado { width: 100%; }

    /* Filtro estado se vuelve full width */
    .mmz-estado-filter {
        height: auto;
        width: 100%;
    }
    .mmz-estado-filter__select {
        flex: 1 1 auto;
        min-width: 0;
        padding: 8px 28px 8px 10px;
        width: 100%;
    }
    .mmz-estado-filter__label {
        font-size: 11px;
        padding: 0 8px;
    }
    .mmz-estado-filter__clear { height: auto; min-height: 36px; }

    /* KPIs apilan a una columna */
    .mmz-admin-kpis-grid {
        grid-template-columns: 1fr;
    }

    /* Tablas más compactas */
    .mmz-admin-table > thead > tr > th,
    .mmz-admin-table > tbody > tr > td {
        font-size: 12.5px;
        padding: 8px 10px;
    }

    .mmz-registros-table {
        border-collapse: separate;
        display: block;
    }
    .mmz-registros-table thead {
        clip: rect(0 0 0 0);
        clip-path: inset(50%);
        height: 1px;
        overflow: hidden;
        position: absolute;
        white-space: nowrap;
        width: 1px;
    }
    .mmz-registros-table tbody {
        display: grid;
        gap: 10px;
        padding: 10px;
    }
    .mmz-registros-table > tbody > tr {
        background-color: #fff;
        border: 1px solid #e3e9e7;
        border-radius: 9px;
        display: block;
        overflow: hidden;
        padding: 5px 0;
    }
    .mmz-registros-table > tbody > tr > td {
        align-items: baseline;
        border: 0;
        display: grid;
        gap: 10px;
        grid-template-columns: 105px minmax(0, 1fr);
        padding: 6px 11px;
        text-align: left;
    }
    .mmz-registros-table > tbody > tr > td::before {
        color: #71807c;
        content: attr(data-label);
        font-size: 10px;
        font-weight: 800;
        letter-spacing: 0.04em;
        text-transform: uppercase;
    }
    .mmz-registros-table > tbody > tr > .mmz-registro-action {
        border-top: 1px solid #edf1f0;
        display: block;
        margin-top: 5px;
        padding-top: 10px;
    }
    .mmz-registros-table .mmz-registro-action .btn {
        width: 100%;
    }
    /* Bootstrap pone nowrap a las celdas dentro de .table-responsive. */
    .mmz-registro-persona__nombre,
    .mmz-registro-persona__correo,
    .mmz-registro-plantel {
        max-width: none;
        white-space: normal;
    }
    .mmz-rank__nombre {
        white-space: normal;
    }

    .mmz-admin-pager {
        align-items: stretch;
        flex-direction: column;
    }
    .mmz-admin-pager__nav {
        justify-content: space-between;
    }
    .mmz-admin-pager__pos {
        flex: 1 0 100%;
        order: -1;
        text-align: center;
    }

    .mmz-admin-document {
        align-items: start;
        grid-template-columns: 38px minmax(0, 1fr);
    }
    .mmz-admin-document__icon {
        height: 38px;
        width: 38px;
    }
    .mmz-admin-document__action {
        align-items: center;
        flex-direction: row;
        flex-wrap: wrap;
        grid-column: 2;
        text-align: left;
    }
    .mmz-admin-document__warning {
        max-width: none;
    }

    .mmz-admin-paso__toggle {
        display: none;
    }
    .mmz-admin-paso__content {
        padding: 8px;
    }

    .mmz-audit-event__heading {
        flex-direction: column;
        gap: 4px;
    }
    .mmz-audit-event__heading time {
        order: -1;
    }
    .mmz-audit-event__details dl {
        grid-template-columns: 1fr;
    }
    .mmz-audit-event__details .mmz-audit-event__agent {
        grid-column: auto;
    }

    /* Paginador fallback */
    .mmz-fallback-table-footer {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }
    .mmz-fallback-pager .btn { flex: 1 1 auto; }

    /* dl detalle del registro */
    .mmz-admin-dl { gap: 8px; }
}

.mmz-admin-session-row {
    margin-top: 4px;
}

.mmz-user-credencials {
    border: 1px solid #dce0e0;
    border-radius: 5px;
    margin: 16px 0 20px;
    padding: 6px 20px;
    position: static;
}

.mmz-user-credencials ul {
    margin: 0;
}

.mmz-user-credencials li {
    font-size: 16px;
    padding: 12px 0;
}

.mmz-user-credencials li:first-child {
    border-bottom: 1px solid #dce0e0;
}

.mmz-user-credencials li:last-child {
    overflow-wrap: anywhere;
}

.mmz-user-credencials button {
    font-size: 16px;
    padding: 0;
}

.mmz-user-credencials .user-credencials__name {
    display: inline-block;
    font-weight: 600;
    max-width: 87%;
    vertical-align: top;
}

.mmz-user-logout {
    margin: 0;
}

.mmz-admin-kpis .panel-body {
    min-height: 86px;
}

.mmz-kpi {
    display: block;
    font-size: 32px;
    line-height: 1;
}

.mmz-admin-filter {
    margin-bottom: 18px;
}

.mmz-filter-action {
    padding-top: 25px;
}

.mmz-admin-field {
    width: 220px;
}

.mmz-datatable-panel .panel-body {
    padding: 0;
}

.mmz-data-table {
    margin: 0;
    width: 100%;
}

.mmz-data-table > thead > tr > th,
.mmz-data-table > tbody > tr > td {
    vertical-align: middle;
}

.mmz-data-table .dt-empty {
    padding: 24px;
}

.mmz-planteles-table {
    min-width: 1020px;
    table-layout: fixed;
    width: 100% !important;
}

.mmz-planteles-table-wrap {
    margin: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.mmz-planteles-table > thead > tr > th {
    padding: 12px 14px;
    vertical-align: middle;
}

.mmz-planteles-table > tbody > tr > td {
    line-height: 1.35;
    padding: 14px;
    vertical-align: top;
}

.mmz-planteles-celda-activo {
    text-align: center;
}

.mmz-plantel-status {
    align-items: center;
    display: inline-flex;
    flex-direction: column;
    gap: 6px;
    min-width: 132px;
    text-align: center;
}

.mmz-plantel-status__control {
    align-items: center;
    display: inline-flex;
    gap: 9px;
    justify-content: center;
}

.mmz-plantel-status__badge {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 999px;
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    gap: 6px;
    letter-spacing: 0.01em;
    line-height: 1;
    padding: 6px 9px;
    white-space: nowrap;
}

.mmz-plantel-status__badge.is-active {
    background-color: #edf7f2;
    border-color: #b7dfcb;
    color: #155146;
}

.mmz-plantel-status__badge.is-inactive {
    background-color: #f3f5f4;
    border-color: #d8dfdd;
    color: #5f6966;
}

.mmz-plantel-status__dot {
    background-color: currentColor;
    border-radius: 50%;
    height: 7px;
    opacity: 0.85;
    width: 7px;
}

.mmz-plantel-status__detail {
    color: #697572;
    display: block;
    font-size: 11.5px;
    font-weight: 500;
    line-height: 1.25;
}

.mmz-planteles-celda-cct,
.mmz-planteles-celda-acciones {
    white-space: nowrap;
}

.mmz-planteles-celda-cct .mmz-admin-mono {
    display: inline-block;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    vertical-align: top;
}

.mmz-convocatoria-planteles-summary {
    margin-bottom: 10px;
}

.mmz-planteles-summary {
    margin-bottom: 10px;
}

/* ----- Filtro de estado junto a la búsqueda ----- */

.mmz-estado-filter {
    align-items: center;
    background-color: #fff;
    border: 1px solid #ced4d4;
    border-radius: 6px;
    display: inline-flex;
    gap: 0;
    height: 36px;
    padding: 0;
    position: relative;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-estado-filter:hover {
    border-color: #b3bcbb;
}

.mmz-estado-filter:focus-within {
    border-color: #1d6f5d;
    box-shadow: 0 0 0 2px rgba(29, 111, 93, 0.18);
}

.mmz-estado-filter.is-active {
    border-color: #1d6f5d;
}

/* Contenedor del filtro de estado dentro de la barra de DataTables. */
.mmz-planteles-filtros {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

/* El KPI de provisionales es tambien el control que acota el listado. */
.mmz-admin-kpi__filtro {
    align-self: flex-start;
    background: none;
    border: 1px solid #d5dbd9;
    border-radius: 5px;
    color: #4a5b56;
    cursor: pointer;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.02em;
    margin-top: 6px;
    padding: 3px 9px;
}

.mmz-admin-kpi__filtro:hover {
    border-color: #b3bcbb;
}

.mmz-admin-kpi__filtro[aria-pressed="true"] {
    background-color: #1d6f5d;
    border-color: #1d6f5d;
    color: #fff;
}

/* Distintivo en el listado: el nombre de la fila es interno. */
.mmz-plantel-provisional {
    background-color: #fdf3e3;
    border: 1px solid #f0d9ae;
    border-radius: 3px;
    color: #8a5a10;
    display: inline-block;
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 0.03em;
    margin-top: 3px;
    padding: 1px 6px;
    text-transform: uppercase;
    width: fit-content;
}

.mmz-estado-filter__label {
    align-items: center;
    background-color: #f6f9f8;
    border-right: 1px solid #e6ebe9;
    border-radius: 5px 0 0 5px;
    color: #4a5b56;
    display: inline-flex;
    font-size: 11.5px;
    font-weight: 600;
    gap: 6px;
    height: 100%;
    letter-spacing: 0.04em;
    margin: 0;
    padding: 0 10px;
    text-transform: uppercase;
    white-space: nowrap;
}

.mmz-estado-filter__control {
    align-items: center;
    display: flex;
    height: 100%;
    min-width: 0;
}

.mmz-estado-filter__icono {
    flex: 0 0 auto;
}

.mmz-estado-filter__select {
    background-color: transparent;
    border: 0;
    box-shadow: none !important;
    color: #1f2a28;
    font-size: 13.5px;
    height: 100%;
    min-width: 180px;
    padding: 0 28px 0 10px;
}

.mmz-estado-filter__select:focus-visible {
    box-shadow: 0 0 0 2px rgba(29, 111, 93, 0.45) !important;
    outline: none;
}

.mmz-estado-filter__clear {
    align-items: center;
    background-color: transparent;
    border: 0;
    border-left: 1px solid #eef2f1;
    color: #9c1c1c;
    cursor: pointer;
    display: inline-flex;
    font-size: 18px;
    height: 100%;
    justify-content: center;
    line-height: 1;
    padding: 0;
    width: 30px;
}

.mmz-estado-filter__clear:hover {
    background-color: #fbeaea;
    border-radius: 0 5px 5px 0;
}

.mmz-estado-filter__clear[hidden] {
    display: none;
}

/* Variante DataTables — presenta búsqueda y estado como campos equivalentes. */

.mmz-dt-search {
    align-items: end;
    background-color: transparent;
    border: 0;
    border-radius: 0;
    display: grid !important;
    gap: 12px;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    margin-bottom: 14px;
    padding: 0 4px;
    text-align: left;
    width: 100%;
}

.mmz-dt-search__field {
    display: grid;
    gap: 5px;
    min-width: 0;
}

.mmz-dt-search__field > label {
    color: #4a5b56;
    display: block;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    margin: 0;
    text-align: left;
    text-transform: uppercase;
}

.mmz-dt-search input,
.mmz-dt-search input[type="search"] {
    background-color: #fff;
    border: 1px solid #ced4d4;
    border-radius: 6px;
    color: #1f2a28;
    font-size: 13.5px;
    height: 40px;
    margin: 0;
    min-width: 0;
    padding: 0 12px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    width: 100%;
}

.mmz-dt-search input:focus-visible,
.mmz-dt-search input[type="search"]:focus-visible {
    border-color: #7d8986;
    box-shadow: 0 0 0 2px rgba(71, 85, 82, 0.16);
    outline: none;
}

.mmz-estado-filter--dt,
.mmz-estado-filter--fallback {
    align-items: stretch;
    background-color: transparent;
    border: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
    height: auto;
}

.mmz-estado-filter--dt:hover,
.mmz-estado-filter--fallback:hover,
.mmz-estado-filter--dt:focus-within,
.mmz-estado-filter--fallback:focus-within,
.mmz-estado-filter--dt.is-active,
.mmz-estado-filter--fallback.is-active {
    border: 0;
    box-shadow: none;
}

.mmz-estado-filter--dt .mmz-estado-filter__label,
.mmz-estado-filter--fallback .mmz-estado-filter__label {
    background-color: transparent;
    border: 0;
    border-radius: 0;
    height: auto;
    padding: 0;
}

.mmz-estado-filter--dt .mmz-estado-filter__control,
.mmz-estado-filter--fallback .mmz-estado-filter__control {
    background-color: #fff;
    border: 1px solid #ced4d4;
    border-radius: 6px;
    height: 40px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-estado-filter--dt .mmz-estado-filter__control:hover,
.mmz-estado-filter--fallback .mmz-estado-filter__control:hover {
    border-color: #b3bcbb;
}

.mmz-estado-filter--dt .mmz-estado-filter__control:focus-within,
.mmz-estado-filter--fallback .mmz-estado-filter__control:focus-within {
    border-color: #7d8986;
    box-shadow: 0 0 0 2px rgba(71, 85, 82, 0.16);
}

.mmz-estado-filter--dt.is-active .mmz-estado-filter__control,
.mmz-estado-filter--fallback.is-active .mmz-estado-filter__control {
    border-color: #7d8986;
}

.mmz-estado-filter--dt .mmz-estado-filter__select,
.mmz-estado-filter--fallback .mmz-estado-filter__select {
    flex: 1 1 auto;
    min-width: 0;
    width: 100%;
}

/* Compactar el layout que inyecta DataTables 2 para que no genere huecos */
.dt-container .dt-layout-row {
    margin: 0;
    padding: 0;
}
.dt-container .dt-layout-row + .dt-layout-row {
    margin-top: 6px;
}
.dt-container .dt-layout-cell {
    margin: 0;
    min-height: 0;
    padding: 0;
}
.dt-container .dt-layout-cell:empty { display: none; }
.dt-container .dt-length { display: none; }
.dt-container .dt-processing { display: none !important; }
.dt-container .dt-info { padding: 6px 4px; }

/* Fallback — la misma fila para búsqueda + filtro */

.mmz-fallback-table-controls {
    align-items: end;
    background-color: transparent;
    border: 0;
    border-radius: 0;
    display: grid;
    gap: 10px 12px;
    grid-template-columns: minmax(0, 1fr) minmax(240px, 300px);
    margin: 16px 16px 12px;
    padding: 0;
}

.mmz-fallback-table-controls .mmz-fallback-search {
    margin: 0;
    min-width: 0;
}

.mmz-fallback-table-controls .mmz-fallback-search label {
    color: #4a5b56;
    display: block;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.04em;
    margin: 0 0 4px;
    text-transform: uppercase;
}

.mmz-fallback-table-controls .mmz-fallback-search input {
    background-color: #fff;
    border: 1px solid #ced4d4;
    border-radius: 6px;
    color: #1f2a28;
    font-size: 13.5px;
    height: 36px;
    padding: 0 12px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    width: 100%;
}

.mmz-fallback-table-controls .mmz-fallback-search input:focus-visible {
    border-color: #1d6f5d;
    box-shadow: 0 0 0 2px rgba(29, 111, 93, 0.18);
    outline: none;
}

.mmz-fallback-estado {
    align-self: end;
    display: flex;
    min-width: 0;
}

.mmz-fallback-estado .mmz-estado-filter {
    width: 100%;
}

@media (max-width: 767px) {
    .mmz-dt-search,
    .mmz-fallback-table-controls {
        grid-template-columns: minmax(0, 1fr);
    }

    .mmz-dt-search__field,
    .mmz-estado-filter--dt,
    .mmz-estado-filter--fallback {
        width: 100%;
    }
}

.mmz-table-main,
.mmz-location-cell {
    display: grid;
    gap: 3px;
    min-width: 0;
}

.mmz-table-main strong,
.mmz-table-main small,
.mmz-location-cell strong,
.mmz-location-cell small {
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.mmz-cupo-cell {
    display: grid;
    font-variant-numeric: tabular-nums;
    gap: 6px;
    max-width: 150px;
    min-width: 120px;
}

.mmz-cupo-meta {
    color: #68736f;
    display: block;
    font-size: 11.5px;
    line-height: 1.25;
}

.mmz-cupo-cell .mmz-cupo-disponible {
    align-items: baseline;
    display: flex;
    gap: 5px;
    line-height: 1;
}

.mmz-cupo-disponible__numero {
    font-size: 24px;
    font-weight: 700;
    letter-spacing: -0.02em;
}

.mmz-cupo-disponible__etiqueta {
    font-size: 12.5px;
    font-weight: 600;
}

.mmz-cupo-disponible {
    color: #235b4e;
    font-weight: 600;
}

.mmz-cupo-disponible--bajo {
    color: #8a5a00;
}

.mmz-cupo-disponible--agotado {
    color: #9c1c1c;
}

.mmz-status-badge {
    border: 1px solid transparent;
    border-radius: 999px;
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    line-height: 1;
    padding: 7px 10px;
    white-space: nowrap;
}

.mmz-status-badge.is-active {
    background: #edf7f2;
    border-color: #b7dfcb;
    color: #235b4e;
}

.mmz-status-badge.is-inactive {
    background: #f7f7f7;
    border-color: #dce0e0;
    color: #545454;
}

.mmz-dt-toggle {
    align-items: center;
    cursor: pointer;
    display: inline-flex;
    height: 26px;
    justify-content: center;
    margin: 0;
    min-width: 26px;
}

/* Interruptor del estado administrativo del registro. */
.mmz-dt-toggle input {
    appearance: none;
    -webkit-appearance: none;
    background-color: #cfd8d6;
    border: 0;
    border-radius: 999px;
    cursor: pointer;
    height: 20px;
    margin: 0;
    position: relative;
    transition: background-color 0.15s ease;
    width: 36px;
}

.mmz-dt-toggle input::before {
    background-color: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 2px rgba(15, 63, 55, 0.3);
    content: "";
    height: 16px;
    left: 2px;
    position: absolute;
    top: 2px;
    transition: transform 0.15s ease;
    width: 16px;
}

.mmz-dt-toggle input:checked {
    background-color: #2f8a72;
}

.mmz-dt-toggle input:checked::before {
    transform: translateX(16px);
}

.mmz-dt-toggle input:focus-visible {
    outline: 2px solid rgba(29, 111, 93, 0.45);
    outline-offset: 2px;
}

.mmz-cupo-usado {
    display: inline-block;
    min-width: 42px;
}

.mmz-row-state,
.mmz-save-state {
    display: inline-block;
    font-size: 12px;
    margin-left: 8px;
    min-width: 82px;
    vertical-align: middle;
}

.mmz-row-pending > td {
    background: #fff8e5;
}

.mmz-pending-toolbar {
    align-items: center;
    background-color: #fafcfb;
    border-bottom: 1px solid #e6ebe9;
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    justify-content: space-between;
    padding: 12px 16px;
    position: relative;
    transition: background-color 0.2s ease, border-color 0.2s ease;
}

.mmz-pending-toolbar[data-pending-toolbar]:has([data-pending-count]:not(:empty)) {
    /* Visualmente neutro cuando no hay cambios — gestionado por contenido */
}

.mmz-report-toolbar {
    align-items: center;
    border-bottom: 1px solid #dce0e0;
    display: flex;
    gap: 16px;
    justify-content: space-between;
    padding: 14px 16px;
}

.mmz-report-toolbar .text-muted {
    display: block;
    margin-top: 2px;
}

.mmz-export-form {
    align-items: center;
    display: flex;
    gap: 10px;
}

.mmz-export-form .form-group {
    align-items: center;
    display: flex;
    gap: 8px;
    margin: 0;
}

.mmz-export-state {
    color: #545454;
    display: inline-block;
    max-width: 220px;
}

.mmz-pending-toolbar .text-muted {
    display: block;
    margin-top: 2px;
}

.mmz-pending-actions {
    align-items: center;
    display: flex;
    gap: 8px;
}

.mmz-bulk-state {
    align-items: center;
    background-color: #eef5f2;
    border: 1px solid #cfe3db;
    border-radius: 999px;
    box-shadow: 0 4px 12px rgba(15, 63, 55, 0.10);
    color: #155146;
    display: inline-flex;
    font-size: 12.5px;
    font-weight: 500;
    gap: 6px;
    line-height: 1.3;
    margin-top: 8px;
    max-width: 360px;
    padding: 6px 12px;
    position: absolute;
    right: 16px;
    top: 100%;
    z-index: 5;
    animation: mmz-bulk-aparecer 0.18s ease both;
}

@keyframes mmz-bulk-aparecer {
    from { opacity: 0; transform: translateY(-4px); }
    to   { opacity: 1; transform: translateY(0); }
}

.mmz-bulk-state[hidden] {
    display: none !important;
}

.mmz-bulk-state__icono {
    flex: 0 0 auto;
}

.mmz-bulk-state__texto {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-bulk-state--loading {
    background-color: #fff7e0;
    border-color: #f0d990;
    color: #6b4a05;
}

.mmz-bulk-state--success {
    background-color: #dff1ea;
    border-color: #a4d4c0;
    color: #155146;
}

.mmz-bulk-state--error {
    background-color: #fbe1e1;
    border-color: #e8b4b4;
    color: #7a1414;
}

.mmz-bulk-state--info {
    background-color: #eaeff5;
    border-color: #c5d3e4;
    color: #2a4368;
}

.mmz-bulk-state__spinner {
    border: 2px solid rgba(0, 0, 0, 0.15);
    border-radius: 50%;
    border-top-color: currentColor;
    display: inline-block;
    flex: 0 0 auto;
    height: 14px;
    width: 14px;
    animation: mmz-bulk-spin 0.7s linear infinite;
}

@keyframes mmz-bulk-spin {
    to { transform: rotate(360deg); }
}

.mmz-fallback-search {
    margin-bottom: 0;
}

.mmz-fallback-table-footer {
    align-items: center;
    display: flex;
    justify-content: space-between;
    padding: 12px 16px 16px;
}

.mmz-fallback-pager {
    align-items: center;
    display: inline-flex;
    gap: 8px;
}

.mmz-page-button {
    min-width: 96px;
}

.dt-container {
    padding: 16px;
}

.dt-container .dt-search input,
.dt-container .dt-length select {
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 16px;
    min-height: 38px;
    padding: 6px 12px;
}

.dt-container .dt-search input {
    margin-left: 8px;
    min-width: 260px;
}

.dt-container .dt-paging .dt-paging-button {
    border: 1px solid transparent;
    border-radius: 4px;
}

.dt-container .dt-paging .dt-paging-button.current,
.dt-container .dt-paging .dt-paging-button.current:hover {
    background: #9f2241;
    border-color: #9f2241;
    color: #fff !important;
}

.mmz-admin-panel {
    border-color: #dce0e0;
}

.mmz-admin-panel .panel-heading {
    background: #fff;
    border-color: #dce0e0;
    font-weight: 600;
}

.mmz-panel-heading-actions {
    align-items: center;
    display: flex;
    gap: 12px;
    justify-content: space-between;
}

.mmz-heading-actions {
    align-items: center;
    display: inline-flex;
    flex-wrap: wrap;
    gap: 8px;
    justify-content: flex-end;
}

.mmz-report-dropdown {
    flex: 0 0 auto;
}

.mmz-plantel-form .panel-body {
    padding: 18px;
}

.mmz-form-guide {
    align-items: flex-start;
    background-color: #f1f7f5;
    border: 1px solid #cfe1db;
    border-radius: 10px;
    color: #354b46;
    display: flex;
    gap: 10px;
    margin-bottom: 18px;
    padding: 12px 14px;
}

.mmz-form-guide__icon {
    align-items: center;
    background-color: #235b4e;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 20px;
    font-family: Georgia, serif;
    font-size: 13px;
    font-style: italic;
    font-weight: 700;
    height: 20px;
    justify-content: center;
    margin-top: 1px;
}

.mmz-form-guide p {
    font-size: 13px;
    line-height: 1.45;
    margin: 0;
}

.mmz-form-section-title {
    align-items: center;
    display: flex;
    gap: 10px;
    min-width: 0;
}

.mmz-form-section-title__number {
    align-items: center;
    background-color: #235b4e;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex: 0 0 28px;
    font-size: 13px;
    font-weight: 700;
    height: 28px;
    justify-content: center;
}

.mmz-form-section-title > span:last-child,
.mmz-form-section-title small {
    display: block;
}

.mmz-form-section-title small {
    line-height: 1.35;
    margin-top: 2px;
}

.mmz-field-required {
    color: #9f2241;
    font-weight: 800;
}

.mmz-field-optional {
    background-color: #eef2f1;
    border-radius: 999px;
    color: #596762;
    display: inline-block;
    flex: 0 0 auto;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.03em;
    line-height: 1.2;
    padding: 4px 8px;
    text-transform: uppercase;
}

label .mmz-field-optional {
    margin-left: 5px;
    padding: 3px 7px;
    vertical-align: 1px;
}

.mmz-input-uppercase {
    text-transform: uppercase;
}

.mmz-form-subsection {
    background-color: #fafcfb;
    border: 1px solid #e3e9e7;
    border-radius: 9px;
    margin-top: 4px;
    padding: 14px;
}

.mmz-form-subsection--compact {
    margin-top: 4px;
}

.mmz-form-subsection__heading {
    align-items: flex-start;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    margin-bottom: 12px;
}

.mmz-form-subsection__heading strong,
.mmz-form-subsection__heading small {
    display: block;
}

.mmz-form-subsection__heading strong {
    color: #25463f;
    font-size: 13.5px;
}

.mmz-form-subsection__heading small {
    color: #66716e;
    font-size: 12px;
    line-height: 1.35;
    margin-top: 2px;
}

.mmz-form-subsection .form-group:last-child,
.mmz-form-subsection .row:last-child {
    margin-bottom: 0;
}

@media (min-width: 992px) {
    .mmz-plantel-aside {
        position: sticky;
        top: 18px;
    }
}

.mmz-map-preview {
    align-items: center;
    background: #f7f7f7;
    border: 1px solid #dce0e0;
    border-radius: 5px;
    display: flex;
    justify-content: center;
    min-height: 280px;
    overflow: hidden;
    position: relative;
}

.mmz-map-preview iframe {
    border: 0;
    display: none;
    height: 280px;
    width: 100%;
}

.mmz-map-preview.is-ready iframe {
    display: block;
}

.mmz-map-preview.is-ready .mmz-map-placeholder {
    display: none;
}

.mmz-map-placeholder {
    color: #545454;
    line-height: 1.45;
    max-width: 340px;
    padding: 22px;
    text-align: center;
}

.mmz-map-help {
    color: #545454;
    margin: 10px 0 0;
}

.mmz-active-card {
    border: 1px solid #dce0e0;
    border-radius: 5px;
    padding: 14px;
}

.mmz-active-toggle {
    cursor: pointer;
    display: grid;
    gap: 12px;
    grid-template-columns: auto minmax(0, 1fr);
    margin: 0;
}

.mmz-active-toggle input {
    margin-top: 3px;
}

.mmz-active-toggle strong,
.mmz-active-toggle small {
    display: block;
}

.mmz-active-toggle small {
    color: #545454;
    line-height: 1.35;
    margin-top: 4px;
}

.mmz-form-switch-card {
    align-items: center;
    background-color: #fbfcfc;
    border: 1px solid #dce4e1;
    border-radius: 9px;
    display: flex;
    gap: 12px;
    justify-content: space-between;
    padding: 14px 16px;
    transition: background-color 0.18s ease, border-color 0.18s ease, box-shadow 0.18s ease;
}

.mmz-form-switch {
    align-items: center;
    cursor: pointer;
    display: flex;
    flex: 1 1 auto;
    gap: 12px;
    margin: 0;
    min-width: 0;
}

.mmz-form-switch input[type="checkbox"] {
    opacity: 0;
    position: absolute;
}

.mmz-form-switch__control {
    background-color: #aeb9b5;
    border-radius: 999px;
    flex: 0 0 46px;
    height: 26px;
    position: relative;
    transition: background-color 0.18s ease;
}

.mmz-form-switch__control::after {
    background-color: #fff;
    border-radius: 50%;
    box-shadow: 0 1px 4px rgba(0, 0, 0, 0.24);
    content: "";
    height: 20px;
    left: 3px;
    position: absolute;
    top: 3px;
    transition: transform 0.18s ease;
    width: 20px;
}

.mmz-form-switch__body,
.mmz-form-switch__body strong,
.mmz-form-switch__body small {
    display: block;
}

.mmz-form-switch__body strong {
    color: #283734;
    font-size: 14px;
}

.mmz-form-switch__body small {
    color: #66716e;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.4;
    margin-top: 3px;
}

.mmz-form-switch input:checked + .mmz-form-switch__control {
    background-color: #235b4e;
}

.mmz-form-switch input:checked + .mmz-form-switch__control::after {
    transform: translateX(20px);
}

.mmz-form-switch input:focus-visible + .mmz-form-switch__control {
    outline: 2px solid #9f2241;
    outline-offset: 3px;
}

.mmz-form-switch-card:has(input:checked) {
    background-color: #f1f7f5;
    border-color: #a9ccc0;
    box-shadow: inset 4px 0 0 #235b4e;
}

.mmz-form-switch-card__status {
    background-color: #ecefed;
    border-radius: 999px;
    color: #58625f;
    flex: 0 0 auto;
    font-size: 11px;
    font-weight: 700;
    padding: 5px 9px;
    text-transform: uppercase;
}

.mmz-form-switch-card:has(input:checked) .mmz-form-switch-card__status {
    background-color: #d8ebe5;
    color: #155146;
}

.mmz-form-switch-card--catalog {
    margin-top: 16px;
}

.mmz-alternate-site__intro {
    color: #52625e;
    line-height: 1.5;
    margin: 0 0 14px;
}

.mmz-alternate-site__fields {
    border-top: 1px solid #e3e9e7;
    margin-top: 18px;
    padding-top: 18px;
}

.mmz-alternate-site__fields[hidden] {
    display: none;
}

.mmz-alternate-site__fields .mmz-form-subsection > .row {
    margin-bottom: 12px;
}

.mmz-alternate-site__notice {
    background-color: #f4f8f7;
    border-left: 4px solid #235b4e;
    border-radius: 0 7px 7px 0;
    color: #42534f;
    margin-bottom: 16px;
    padding: 10px 12px;
}

.mmz-alternate-site__notice strong,
.mmz-alternate-site__notice span {
    display: block;
}

.mmz-alternate-site__notice strong {
    color: #16483e;
    font-size: 13px;
}

.mmz-alternate-site__notice span {
    font-size: 12px;
    line-height: 1.4;
    margin-top: 2px;
}

.mmz-alternate-site__retention {
    color: #5d6966;
    font-size: 12.5px;
    line-height: 1.45;
    margin: 12px 0 0;
}

@media (min-width: 768px) {
    .mmz-plantel-form .mmz-admin-formbar {
        bottom: 12px;
        position: sticky;
        z-index: 20;
    }
}

@media (max-width: 767px) {
    .mmz-plantel-form .panel-body {
        padding: 14px;
    }

    .mmz-plantel-form .mmz-admin-panel__heading {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .mmz-form-section-title {
        align-items: flex-start;
    }

    .mmz-form-section-title__number {
        flex-basis: 26px;
        height: 26px;
        margin-top: 1px;
    }

    .mmz-form-subsection {
        padding: 12px;
    }

    .mmz-map-preview,
    .mmz-map-preview iframe {
        min-height: 220px;
    }

    .mmz-map-preview iframe {
        height: 220px;
    }

    .mmz-turnos-base-table th:first-child,
    .mmz-turnos-base-table td:first-child {
        width: 48px;
    }

    .mmz-turnos-base-table th:last-child,
    .mmz-turnos-base-table td:last-child {
        width: 96px;
    }
}

@media (max-width: 480px) {
    .mmz-form-guide {
        padding: 11px 12px;
    }

    .mmz-form-subsection__heading,
    .mmz-form-switch-card {
        align-items: flex-start;
    }

    .mmz-form-subsection__heading {
        flex-direction: column;
        gap: 8px;
    }

    .mmz-form-switch-card {
        flex-wrap: wrap;
        padding: 13px;
    }

    .mmz-form-switch {
        align-items: flex-start;
        flex-basis: 100%;
    }

    .mmz-form-switch-card__status {
        margin-left: 58px;
    }
}

.mmz-import-panel {
    margin-bottom: 28px;
    margin-top: 0;
}

.mmz-import-panel__summary {
    cursor: pointer;
    list-style: none;
    user-select: none;
}

.mmz-import-panel__summary::-webkit-details-marker {
    display: none;
}

.mmz-import-panel__summary > span:first-child,
.mmz-import-panel__summary strong,
.mmz-import-panel__summary small {
    display: block;
}

.mmz-import-panel__summary strong {
    font-size: 14px;
}

.mmz-import-panel__summary small {
    line-height: 1.35;
    margin-top: 2px;
}

.mmz-import-panel__action {
    align-items: center;
    color: #1d6f5d;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 700;
    gap: 9px;
}

.mmz-import-panel__hide {
    display: none;
}

.mmz-import-panel__indicator {
    border-bottom: 2px solid currentColor;
    border-right: 2px solid currentColor;
    display: inline-block;
    height: 8px;
    margin-top: -4px;
    transform: rotate(45deg);
    transition: transform 0.18s ease;
    width: 8px;
}

.mmz-import-panel[open] .mmz-import-panel__show {
    display: none;
}

.mmz-import-panel[open] .mmz-import-panel__hide {
    display: inline;
}

.mmz-import-panel[open] .mmz-import-panel__indicator {
    margin-top: 4px;
    transform: rotate(225deg);
}

.mmz-import-panel__summary:focus-visible {
    outline: 2px solid #9f2241;
    outline-offset: -3px;
}

.mmz-import-action {
    padding-top: 25px;
}

.mmz-import-errors {
    margin: 16px 0 0;
}

.mmz-import-errors ul {
    margin: 8px 0 0;
    padding-left: 18px;
}

.mmz-import-errors li + li {
    margin-top: 4px;
}

.mmz-cupo-resumen {
    border: 1px solid #dce0e0;
    border-radius: 6px;
    display: grid;
    gap: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    margin: -4px 0 10px;
    overflow: hidden;
}

.mmz-cupo-resumen > div {
    background-color: #fafcfb;
    padding: 11px 10px;
}

.mmz-cupo-resumen > div + div {
    border-left: 1px solid #dce0e0;
}

.mmz-cupo-resumen span,
.mmz-cupo-resumen strong {
    display: block;
}

.mmz-cupo-resumen span {
    color: #545454;
    font-size: 11.5px;
    line-height: 1.2;
}

.mmz-cupo-resumen strong {
    color: #235b4e;
    font-size: 22px;
    line-height: 1.1;
    margin-top: 4px;
}

.mmz-cupo-resumen strong.mmz-cupo-disponible--bajo {
    color: #8a5a00;
}

.mmz-cupo-resumen strong.mmz-cupo-disponible--agotado {
    color: #9c1c1c;
}

.mmz-cupo-barra {
    background-color: #eaecec;
    border-radius: 999px;
    height: 8px;
    margin: 0 0 16px;
    overflow: hidden;
}

.mmz-cupo-barra__fill {
    background-color: #235b4e;
    border-radius: inherit;
    display: block;
    height: 100%;
    min-width: 0;
    transition: width 0.25s ease;
}

.mmz-cupo-barra.is-bajo .mmz-cupo-barra__fill {
    background-color: #c08416;
}

.mmz-cupo-barra.is-agotado .mmz-cupo-barra__fill {
    background-color: #9c1c1c;
}

.mmz-form-divider {
    margin: 6px 0 22px;
}

.mmz-form-divider h2 {
    font-size: 28px;
    margin: 0;
}

.mmz-convocatoria-form .panel-heading {
    font-weight: 600;
}

.mmz-status-panel .panel-body {
    padding: 16px;
}

.mmz-status-option {
    cursor: pointer;
    display: block;
    margin: 0 0 12px;
}

.mmz-status-option:last-child {
    margin-bottom: 0;
}

.mmz-status-option input {
    opacity: 0;
    position: absolute;
}

.mmz-status-option-body {
    border: 1px solid #dce0e0;
    border-radius: 5px;
    display: block;
    padding: 14px 16px;
}

.mmz-status-option input:checked + .mmz-status-option-body {
    border-color: #9f2241;
    box-shadow: inset 4px 0 0 #9f2241;
}

.mmz-status-option input:focus-visible + .mmz-status-option-body {
    outline: 2px solid #235b4e;
    outline-offset: 2px;
}

.mmz-status-option-body strong,
.mmz-status-option-body small {
    display: block;
}

.mmz-status-option-body small {
    color: #545454;
    line-height: 1.35;
    margin-top: 4px;
}

.mmz-google-login-action {
    margin-top: 22px;
}

/* ----- Login administrativo ----- */

.mmz-admin-body--login {
    background:
        radial-gradient(circle at 10% 22%, rgba(29, 111, 93, 0.08), transparent 24rem),
        radial-gradient(circle at 90% 78%, rgba(97, 18, 50, 0.06), transparent 26rem),
        #f3f6f5;
}

.mmz-admin-body--login .mmz-admin-topbar--login {
    box-shadow: 0 1px 0 rgba(15, 63, 55, 0.16);
    margin-bottom: 0;
    position: relative;
    top: auto;
}

.mmz-admin-body--login .mmz-admin-topbar__container {
    min-height: 58px;
    padding-bottom: 8px;
    padding-top: 8px;
}

.mmz-admin-body--login .mmz-admin-brand__escudo {
    height: 36px;
    width: 36px;
}

.mmz-admin-body--login .mmz-admin-main {
    align-items: center;
    display: flex;
    padding: clamp(32px, 6vh, 76px) 0 clamp(44px, 8vh, 96px);
}

.mmz-container--login {
    width: 100%;
}

.mmz-admin-login {
    margin: 0 auto;
    max-width: 920px;
    padding: 0 15px;
}

.mmz-admin-login__card {
    background-color: #fff;
    border: 1px solid rgba(21, 81, 70, 0.14);
    border-radius: 18px;
    box-shadow: 0 22px 54px rgba(22, 57, 49, 0.12);
    display: grid;
    grid-template-columns: minmax(0, 0.92fr) minmax(390px, 1.08fr);
    overflow: hidden;
    width: 100%;
}

.mmz-admin-login__identity {
    background:
        radial-gradient(circle at 86% 14%, rgba(255, 255, 255, 0.12) 0 72px, transparent 73px),
        radial-gradient(circle at 8% 92%, rgba(255, 255, 255, 0.08) 0 112px, transparent 113px),
        linear-gradient(145deg, #0f3f37 0%, #155146 55%, #1d6f5d 100%);
    color: #fff;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    min-height: 470px;
    padding: 52px 44px 38px;
    position: relative;
}

.mmz-admin-login__icono {
    align-items: center;
    background-color: rgba(255, 255, 255, 0.14);
    border: 1px solid rgba(255, 255, 255, 0.25);
    border-radius: 15px;
    color: #fff;
    display: inline-flex;
    height: 62px;
    justify-content: center;
    margin-bottom: 30px;
    width: 62px;
}

.mmz-admin-login__eyebrow,
.mmz-admin-login__access-eyebrow {
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

.mmz-admin-login__eyebrow {
    color: rgba(255, 255, 255, 0.72);
    margin: 0 0 12px;
}

.mmz-admin-login__titulo {
    color: #fff;
    font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
    font-size: clamp(27px, 3vw, 34px);
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.14;
    margin: 0 0 18px;
    max-width: 360px;
}

.mmz-admin-login__subtitulo {
    color: rgba(255, 255, 255, 0.82);
    font-size: 15px;
    line-height: 1.6;
    margin: 0;
    max-width: 350px;
}

.mmz-admin-login__restricted {
    align-items: center;
    color: rgba(255, 255, 255, 0.72);
    display: flex;
    font-size: 12px;
    gap: 8px;
    line-height: 1.35;
    margin: 40px 0 0;
}

.mmz-admin-login__restricted svg {
    flex: 0 0 auto;
}

.mmz-admin-login__access {
    align-self: center;
    padding: 50px 52px;
}

.mmz-admin-login__access-eyebrow {
    color: #1d6f5d;
    margin: 0 0 9px;
}

.mmz-admin-login__access-title {
    color: #1f2d29;
    font-family: "Montserrat", "Helvetica Neue", Arial, sans-serif;
    font-size: 29px;
    font-weight: 700;
    letter-spacing: -0.02em;
    line-height: 1.2;
    margin: 0 0 12px;
}

.mmz-admin-login__instruccion {
    color: #596762;
    font-size: 14.5px;
    line-height: 1.55;
    margin: 0 0 24px;
}

.mmz-admin-login__feedback {
    align-items: flex-start;
    border: 1px solid;
    border-radius: 10px;
    display: flex;
    font-size: 12.5px;
    gap: 10px;
    line-height: 1.45;
    margin: -6px 0 20px;
    padding: 11px 12px;
}

.mmz-admin-login__feedback strong {
    display: block;
    margin-bottom: 1px;
}

.mmz-admin-login__feedback-icon {
    align-items: center;
    border: 1px solid currentColor;
    border-radius: 50%;
    display: inline-flex;
    flex: 0 0 20px;
    font-size: 11px;
    font-weight: 700;
    height: 20px;
    justify-content: center;
    margin-top: 1px;
}

.mmz-admin-login__feedback--error {
    background-color: #fff4f5;
    border-color: #efcbd2;
    color: #7f1933;
}

.mmz-admin-login__feedback--info {
    background-color: #eef6f3;
    border-color: #c9ded7;
    color: #174f43;
}

.mmz-admin-login__feedback--success {
    background-color: #eff8f1;
    border-color: #cbe2d0;
    color: #256536;
}

.mmz-admin-login__boton {
    border-radius: 9px;
    font-size: 15.5px;
    min-height: 54px;
}

.mmz-admin-login__help {
    border-top: 1px solid #ebeeed;
    color: #65716d;
    margin-top: 26px;
    padding-top: 20px;
}

.mmz-admin-login__help strong {
    color: #33413d;
    display: block;
    font-size: 13px;
    margin-bottom: 4px;
}

.mmz-admin-login__help p {
    font-size: 12.5px;
    line-height: 1.5;
    margin: 0;
}

.mmz-admin-login__aviso {
    margin-bottom: 14px;
}

.mmz-admin-login__aviso code {
    background-color: rgba(0, 0, 0, 0.06);
    border-radius: 3px;
    font-size: 12px;
    padding: 1px 4px;
}

.mmz-admin-login__meta {
    background-color: #f4f7f6;
    border-radius: 6px;
    color: #3c4a46;
    font-size: 12.5px;
    margin: 0;
    padding: 10px 12px;
}

.mmz-admin-login__meta dt {
    color: #6b7280;
    font-weight: 600;
    margin-bottom: 2px;
}

.mmz-admin-login__meta dd {
    margin: 0;
    word-break: break-all;
}

.mmz-google-button {
    align-items: center;
    background: #fff;
    border: 1px solid #dadce0;
    box-shadow: 0 1px 2px rgba(31, 45, 41, 0.05);
    color: #3c4542;
    display: inline-flex;
    font-weight: 600;
    gap: 12px;
    justify-content: center;
    padding: 0 22px;
    position: relative;
    text-decoration: none;
    transition: background-color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, transform 0.16s ease;
    width: 100%;
}

.mmz-google-button:hover {
    background: #f8faf9;
    border-color: #bfc9c5;
    box-shadow: 0 4px 12px rgba(31, 45, 41, 0.08);
    color: #25312d;
    text-decoration: none;
    transform: translateY(-1px);
}

.mmz-google-button:focus-visible {
    background: #f8faf9;
    border-color: #1d6f5d;
    box-shadow: 0 0 0 3px rgba(29, 111, 93, 0.18);
    color: #25312d;
    text-decoration: none;
}

.mmz-google-button:active {
    box-shadow: 0 1px 2px rgba(31, 45, 41, 0.06);
    transform: translateY(0);
}

.mmz-google-button.is-loading {
    cursor: progress;
    opacity: 0.78;
    pointer-events: none;
}

.mmz-google-logo {
    flex: 0 0 auto;
    height: 22px;
    width: 22px;
}

@media (prefers-reduced-motion: reduce) {
    .mmz-google-button {
        transition: none;
    }
}

@media (max-width: 767px) {
    .mmz-admin-body--login .mmz-admin-main {
        align-items: flex-start;
        padding: 24px 0 48px;
    }

    .mmz-admin-login {
        padding: 0;
    }

    .mmz-admin-login__card {
        border-radius: 14px;
        grid-template-columns: 1fr;
    }

    .mmz-admin-login__identity {
        min-height: 0;
        padding: 30px 26px 26px;
    }

    .mmz-admin-login__icono {
        height: 52px;
        margin-bottom: 20px;
        width: 52px;
    }

    .mmz-admin-login__icono svg {
        height: 32px;
        width: 32px;
    }

    .mmz-admin-login__titulo {
        font-size: clamp(24px, 7vw, 29px);
        margin-bottom: 12px;
    }

    .mmz-admin-login__subtitulo {
        font-size: 14px;
    }

    .mmz-admin-login__restricted {
        margin-top: 24px;
    }

    .mmz-admin-login__access {
        padding: 32px 26px 30px;
    }

    .mmz-admin-login__access-title {
        font-size: 25px;
    }
}

@media (max-width: 480px) {
    .mmz-admin-body--login .mmz-admin-topbar__container {
        min-height: 52px;
    }

    .mmz-admin-body--login .mmz-admin-brand__texto small {
        display: none;
    }

    .mmz-admin-login__identity,
    .mmz-admin-login__access {
        padding-left: 22px;
        padding-right: 22px;
    }

    .mmz-google-button {
        padding: 0 16px;
    }
}

@media (max-width: 767px) {
    .mmz-top-action {
        padding-top: 0;
        text-align: left;
    }

    /* En una columna angosta el boton al lado estrangulaba el texto: se apila
       y el icono acompana a la primera linea del mensaje. */
    .mmz-resumen-estado {
        display: grid;
        grid-template-columns: auto 1fr;
        row-gap: 12px;
    }

    .mmz-resumen-estado__accion {
        grid-column: 1 / -1;
        text-align: center;
    }

    .form-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .form-actions .btn {
        width: 100%;
    }

    .mmz-plantel-option,
    .mmz-document-row {
        grid-template-columns: 1fr;
    }

    .mmz-instructions {
        margin-top: 24px;
    }

    .mmz-filter-action {
        padding-top: 12px;
    }

    .mmz-plantel-side-panel {
        position: static;
    }

    .mmz-plantel-detalle {
        position: static;
    }

    .mmz-planteles-list {
        max-height: none;
    }

    .mmz-plantel-card__titulo {
        flex-direction: column;
        gap: 4px;
    }

    .mmz-datos-resumen {
        height: auto;
    }

    .mmz-input-icon__icon {
        flex-basis: 38px;
    }

    .mmz-cp-row {
        flex-direction: column;
    }

    .mmz-cp-btn {
        width: 100%;
    }

    .mmz-noint-row {
        flex-direction: column;
        align-items: stretch;
    }

    .mmz-sn-toggle {
        justify-content: flex-start;
    }

    .mmz-responsables-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .mmz-responsable-card__heading {
        display: grid;
        grid-template-columns: 26px minmax(0, 1fr) 40px;
    }

    .mmz-responsable-card__estado {
        grid-column: 2;
        grid-row: 2;
        justify-self: start;
        margin-top: 4px;
    }

    .mmz-responsable-card__close {
        grid-column: 3;
        grid-row: 1;
    }

    .mmz-docs-progreso__cabecera {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }

    .mmz-doc-academico__opciones {
        grid-template-columns: 1fr;
    }

    .mmz-doc-card__header {
        flex-wrap: wrap;
    }

    .mmz-doc-card__estado {
        margin-left: 44px;
    }

    .mmz-resumen-persona {
        align-items: flex-start;
        flex-direction: column;
    }

    .mmz-resumen-persona__status {
        align-self: flex-start;
    }

    .mmz-resumen-dl--cols {
        grid-template-columns: 1fr;
    }

    .mmz-resumen-responsable__cabecera {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .mmz-final-confirmacion {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
        padding: 22px 20px;
    }

    .mmz-final-confirmacion__icono {
        flex-basis: 56px;
        height: 56px;
        width: 56px;
    }

    .mmz-final-identificadores__grid,
    .mmz-final-pasos__lista,
    .mmz-final-docs__lista {
        grid-template-columns: 1fr;
    }

    .mmz-final-section-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 10px;
        padding: 16px;
    }

    .mmz-final-identificadores__grid {
        padding: 16px;
    }

    .mmz-final-pasos__lista {
        padding: 16px 16px 4px;
    }

    .mmz-final-identificadores__pie,
    .mmz-final-detalle__cuerpo {
        padding-left: 16px;
        padding-right: 16px;
    }

    .mmz-final-docs__lead {
        margin-left: 16px;
        margin-right: 16px;
    }

    .mmz-final-docs__lista {
        padding-left: 16px;
        padding-right: 16px;
    }

    .mmz-final-identificador__valor {
        font-size: 22px;
    }

    .mmz-final-actions > a.btn:first-of-type {
        margin-left: 0;
    }

    .mmz-curp-hero {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
        padding: 20px;
    }

    .mmz-curp-input {
        font-size: 16px;
        letter-spacing: 0.1em;
    }

    .mmz-recuperacion-opciones__grid,
    .mmz-recuperacion-confirmacion__grid {
        grid-template-columns: 1fr;
    }

    .mmz-recuperacion-opciones__grid {
        padding: 16px;
    }

    .mmz-retomar-alterna {
        align-items: stretch;
        flex-direction: column;
        gap: 15px;
    }

    .mmz-existente-progreso__cabecera {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .mmz-recuperacion-status {
        align-self: flex-start;
    }

    .mmz-recuperacion-confirmacion > .panel-heading {
        align-items: flex-start;
        flex-direction: column;
    }

    .mmz-import-action {
        padding-top: 0;
    }

    .dt-container .dt-search input {
        margin: 8px 0 0;
        min-width: 0;
        width: 100%;
    }

    .mmz-fallback-table-controls {
        align-items: stretch;
        gap: 10px !important;
        grid-template-columns: 1fr !important;
    }

    .mmz-report-toolbar,
    .mmz-heading-actions,
    .mmz-export-form,
    .mmz-pending-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .mmz-export-form .form-group {
        align-items: stretch;
        flex-direction: column;
    }

    .mmz-bulk-state {
        min-width: 0;
    }

    .mmz-fallback-table-footer {
        align-items: stretch;
        flex-direction: column;
        gap: 10px;
    }

    .mmz-fallback-pager {
        justify-content: space-between;
    }

    .mmz-page-button {
        flex: 1;
    }
}

/* ----- Configuracion: selector de modo de registro ----- */

.mmz-modo-form {
    margin: 0;
}

.mmz-modo-aviso {
    margin-bottom: 18px;
}

.mmz-modo-pill {
    align-items: center;
    background-color: #eef5f2;
    border: 1px solid #cfe0d9;
    border-radius: 999px;
    color: #155146;
    display: inline-flex;
    font-size: 12.5px;
    font-weight: 600;
    gap: 8px;
    line-height: 1;
    padding: 8px 14px;
    white-space: nowrap;
}

.mmz-modo-pill__dot {
    background-color: #2f8a72;
    border-radius: 50%;
    box-shadow: 0 0 0 3px rgba(47, 138, 114, 0.18);
    height: 9px;
    width: 9px;
}

.mmz-modo-pill--anticipado {
    background-color: #f7edf0;
    border-color: #e6c6cf;
    color: #8a1d39;
}

.mmz-modo-pill--anticipado .mmz-modo-pill__dot {
    background-color: #9f2241;
    box-shadow: 0 0 0 3px rgba(159, 34, 65, 0.16);
}

/* ----- Tarjetas comparables ----- */

.mmz-modo-grid {
    border: 0;
    display: grid;
    gap: 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin: 0 0 18px;
    padding: 0;
}

.mmz-modo-card {
    cursor: pointer;
    display: block;
    margin: 0;
    position: relative;
}

.mmz-modo-card input {
    height: 1px;
    margin: 0;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.mmz-modo-card__body {
    background-color: #fff;
    border: 1px solid #e3e9e7;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(21, 81, 70, 0.04);
    display: flex;
    flex-direction: column;
    gap: 8px;
    height: 100%;
    padding: 18px 20px 20px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.mmz-modo-card:hover .mmz-modo-card__body {
    border-color: #c7d3cf;
    box-shadow: 0 4px 14px rgba(21, 81, 70, 0.08);
    transform: translateY(-1px);
}

.mmz-modo-card input:checked + .mmz-modo-card__body {
    border-color: #9f2241;
    box-shadow: 0 0 0 1px #9f2241, 0 6px 18px rgba(159, 34, 65, 0.12);
}

.mmz-modo-card input:focus-visible + .mmz-modo-card__body {
    outline: 2px solid #235b4e;
    outline-offset: 2px;
}

.mmz-modo-card__head {
    align-items: center;
    display: flex;
    gap: 10px;
    margin-bottom: 2px;
}

.mmz-modo-card__icon {
    align-items: center;
    background-color: #eef5f2;
    border-radius: 10px;
    color: #1d6f5d;
    display: inline-flex;
    height: 40px;
    justify-content: center;
    width: 40px;
}

.mmz-modo-card input:checked + .mmz-modo-card__body .mmz-modo-card__icon {
    background-color: #f7edf0;
    color: #9f2241;
}

.mmz-modo-card__flag {
    background-color: #eef5f2;
    border: 1px solid #cfe0d9;
    border-radius: 999px;
    color: #155146;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 3px 9px;
    text-transform: uppercase;
}

.mmz-modo-card__check {
    border: 2px solid #cdd6d3;
    border-radius: 50%;
    flex-shrink: 0;
    height: 22px;
    margin-left: auto;
    position: relative;
    transition: border-color 0.15s ease, background-color 0.15s ease;
    width: 22px;
}

.mmz-modo-card input:checked + .mmz-modo-card__body .mmz-modo-card__check {
    background-color: #9f2241;
    border-color: #9f2241;
}

.mmz-modo-card input:checked + .mmz-modo-card__body .mmz-modo-card__check::after {
    border: solid #fff;
    border-width: 0 2px 2px 0;
    content: "";
    height: 9px;
    left: 7px;
    position: absolute;
    top: 3px;
    transform: rotate(45deg);
    width: 5px;
}

.mmz-modo-card__title {
    color: #0f3f37;
    font-size: 17px;
    font-weight: 700;
    line-height: 1.2;
}

.mmz-modo-card__lead {
    color: #4a5b56;
    font-size: 13px;
    line-height: 1.45;
}

.mmz-modo-card__features {
    display: flex;
    flex-direction: column;
    gap: 7px;
    list-style: none;
    margin: 8px 0 0;
    padding: 0;
}

.mmz-modo-card__features li {
    color: #3c4a47;
    font-size: 12.5px;
    line-height: 1.4;
    padding-left: 26px;
    position: relative;
}

.mmz-modo-card__features li::before {
    border-radius: 50%;
    content: "";
    font-size: 11px;
    font-weight: 700;
    height: 18px;
    left: 0;
    line-height: 18px;
    position: absolute;
    text-align: center;
    top: 1px;
    width: 18px;
}

.mmz-modo-card__features li.is-yes::before {
    background-color: #e4f1ec;
    color: #1d6f5d;
    content: "\2713";
}

.mmz-modo-card__features li.is-req::before {
    background-color: #fbf0d8;
    color: #99710f;
    content: "\0021";
}

.mmz-modo-card__features li.is-no::before {
    background-color: #f1ecee;
    color: #8a7178;
    content: "\2715";
}

.mmz-modo-card__features li.is-no {
    color: #6b7280;
}

/* ----- Barra de accion ----- */

.mmz-modo-formbar {
    align-items: center;
    justify-content: space-between;
}

.mmz-modo-formbar__hint {
    color: #6b7280;
    font-size: 12.5px;
    margin: 0;
}

@media (max-width: 767px) {
    .mmz-modo-grid {
        grid-template-columns: 1fr;
    }

    .mmz-modo-formbar {
        align-items: stretch;
    }

    .mmz-modo-formbar__hint {
        text-align: center;
    }
}

/* ----- Generacion de la matricula -----
   Misma tarjeta que las de modo de registro. La matricula se muestra partida
   en sus tramos porque como cadena corrida no se ve donde cae la generacion,
   que es justo lo unico que este formulario cambia. */

/* Decidir el modo de registro y decidir la generacion son dos cosas distintas:
   el aire de arriba evita que se lean como continuacion del formulario previo. */
.mmz-generacion-form {
    margin-top: 34px;
}

.mmz-generacion {
    background-color: #fff;
    border: 1px solid #e3e9e7;
    border-radius: 12px;
    box-shadow: 0 1px 2px rgba(21, 81, 70, 0.04);
    margin-bottom: 18px;
    padding: 22px 24px 24px;
}

.mmz-generacion__head {
    align-items: center;
    border-bottom: 1px solid #eef1f0;
    display: flex;
    gap: 12px;
    margin-bottom: 22px;
    padding-bottom: 18px;
}

.mmz-generacion__icon {
    align-items: center;
    background-color: #eef5f2;
    border-radius: 10px;
    color: #1d6f5d;
    display: inline-flex;
    flex-shrink: 0;
    height: 40px;
    justify-content: center;
    width: 40px;
}

.mmz-generacion__titulo {
    color: #0f3f37;
    font-size: 17px;
    font-weight: 700;
    margin: 0;
}

.mmz-generacion__lead {
    color: #4b5563;
    font-size: 13px;
    margin: 2px 0 0;
}

.mmz-generacion__cuerpo {
    align-items: start;
    display: grid;
    gap: 28px;
    /* Ancho suficiente para que el rotulo no se parta: si cae a dos lineas, el
       campo baja y deja de alinearse con los tramos de la derecha. */
    grid-template-columns: 158px minmax(0, 1fr);
}

.mmz-generacion__label,
.mmz-generacion__muestra-titulo {
    color: #0f3f37;
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    margin-bottom: 6px;
    text-transform: uppercase;
    white-space: nowrap;
}

/* Dos digitos: un campo ancho invita a escribir de mas. */
.mmz-generacion__input {
    border: 1px solid #cdd6d3;
    border-radius: 10px;
    color: #0f3f37;
    font-family: "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: 28px;
    font-weight: 700;
    height: 62px;
    letter-spacing: 0.12em;
    padding: 0 10px;
    text-align: center;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    width: 100%;
}

.mmz-generacion__input:focus {
    border-color: #9f2241;
    box-shadow: 0 0 0 3px rgba(159, 34, 65, 0.12);
    outline: none;
}

.mmz-generacion__ayuda {
    color: #6b7280;
    display: block;
    font-size: 12px;
    margin-top: 6px;
    text-align: center;
}

.mmz-generacion__segmentos {
    display: flex;
    flex-wrap: wrap;
    gap: 4px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.mmz-generacion__segmento {
    background-color: #f7f9f8;
    border: 1px solid #e3e9e7;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 7px 9px 6px;
    text-align: center;
}

.mmz-generacion__segmento-valor {
    color: #38524c;
    font-family: "SFMono-Regular", Menlo, Consolas, monospace;
    font-size: 17px;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.1;
}

.mmz-generacion__segmento-etiqueta {
    color: #8a9491;
    font-size: 10px;
    letter-spacing: 0.03em;
    text-transform: uppercase;
    white-space: nowrap;
}

.mmz-generacion__segmento.is-generacion {
    background-color: #f7edf0;
    border-color: #e2b9c4;
}

.mmz-generacion__segmento.is-generacion .mmz-generacion__segmento-valor {
    color: #9f2241;
}

.mmz-generacion__segmento.is-generacion .mmz-generacion__segmento-etiqueta {
    color: #9f2241;
}

/* Mientras el valor escrito difiere del guardado, el tramo avisa que lo que
   se ve es una vista previa y no lo que hoy emite el sistema. */
.mmz-generacion__segmento.is-cambiando {
    border-style: dashed;
    box-shadow: 0 0 0 3px rgba(159, 34, 65, 0.1);
}

.mmz-generacion__nota {
    color: #8a9491;
    font-size: 12px;
    margin: 8px 0 0;
}

.mmz-generacion__aviso {
    align-items: flex-start;
    background-color: #f7f9f8;
    border-radius: 8px;
    color: #4b5563;
    display: flex;
    font-size: 12.5px;
    gap: 8px;
    line-height: 1.5;
    margin: 24px 0 0;
    padding: 12px 14px;
}

.mmz-generacion__aviso svg {
    color: #1d6f5d;
    flex-shrink: 0;
    margin-top: 1px;
}

@media (max-width: 767px) {
    .mmz-generacion__cuerpo {
        grid-template-columns: 1fr;
    }

    .mmz-generacion__input {
        font-size: 24px;
        height: 56px;
    }
}

/* ----- Usuarios administradores: celdas enriquecidas ----- */

.mmz-admin-user-cell {
    align-items: center;
    display: flex;
    gap: 12px;
    min-width: 0;
}

.mmz-admin-avatar {
    align-items: center;
    border-radius: 50%;
    color: #fff;
    display: inline-flex;
    flex-shrink: 0;
    font-size: 13px;
    font-weight: 700;
    height: 38px;
    justify-content: center;
    letter-spacing: 0.02em;
    width: 38px;
}

.mmz-admin-avatar--general {
    background-color: #9f2241;
}

.mmz-admin-avatar--estado {
    background-color: #1d6f5d;
}

/* Avatar atenuado: administrador invitado que aun no ha iniciado sesion. */
.mmz-admin-avatar--pendiente {
    background-color: #f4f1ea;
    box-shadow: inset 0 0 0 1px #e2d3ac;
    color: #9a7b2e;
}

.mmz-admin-user-cell__text {
    display: flex;
    flex-direction: column;
    gap: 1px;
    min-width: 0;
}

.mmz-admin-user-cell__name {
    align-items: center;
    color: #0f3f37;
    display: flex;
    font-size: 14px;
    font-weight: 700;
    gap: 8px;
    line-height: 1.25;
}

.mmz-admin-user-cell__you {
    background-color: #eef5f2;
    border: 1px solid #cfe0d9;
    border-radius: 999px;
    color: #155146;
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 0.04em;
    padding: 1px 7px;
    text-transform: uppercase;
}

.mmz-admin-user-cell__mail {
    color: #6b7280;
    font-size: 13.5px;
    line-height: 1.3;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* ----- Pill de rol ----- */

.mmz-role-pill {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 13px;
    font-weight: 600;
    gap: 6px;
    line-height: 1;
    padding: 5px 11px 5px 9px;
    white-space: nowrap;
}

.mmz-role-pill svg {
    flex-shrink: 0;
}

.mmz-role-pill--general {
    background-color: #f7edf0;
    color: #8a1d39;
}

.mmz-role-pill--estado {
    background-color: #eaf3fb;
    color: #1c4f72;
}

/* ----- Alcance ----- */

.mmz-usuarios-table__alcance {
    color: #3c4a47;
    font-size: 14px;
}

/* ----- Indicador de acceso con punto ----- */

.mmz-admin-acceso {
    align-items: center;
    display: inline-flex;
    font-size: 13.5px;
    font-weight: 600;
    gap: 7px;
    line-height: 1;
}

.mmz-admin-acceso__dot {
    border-radius: 50%;
    height: 8px;
    width: 8px;
}

.mmz-admin-acceso--on {
    color: #155146;
}

.mmz-admin-acceso--on .mmz-admin-acceso__dot {
    background-color: #2f8a72;
    box-shadow: 0 0 0 3px rgba(47, 138, 114, 0.16);
}

.mmz-admin-acceso--off {
    color: #962c48;
}

.mmz-admin-acceso--off .mmz-admin-acceso__dot {
    background-color: #b42345;
    box-shadow: 0 0 0 3px rgba(180, 35, 69, 0.13);
}

/* ----- Columna Ultimo acceso ----- */

.mmz-usuarios-table__acceso {
    white-space: nowrap;
}

.mmz-acceso-fecha {
    color: #2f3b39;
    display: block;
    font-size: 14px;
    font-weight: 600;
    line-height: 1.3;
}

.mmz-acceso-hora {
    color: #8a8f8d;
    display: block;
    font-size: 13px;
    line-height: 1.3;
}

.mmz-acceso-pendiente {
    align-items: center;
    color: #9a7b2e;
    display: inline-flex;
    font-size: 13.5px;
    font-weight: 600;
    gap: 6px;
    line-height: 1.2;
}

.mmz-acceso-pendiente svg {
    flex-shrink: 0;
}

/* ----- Fila del usuario actual ----- */
/* El realce va en los <td> y no en el <tr>: con border-collapse (Guia Grafica)
   el box-shadow y el background sobre <tr> no se pintan de forma confiable. */

.mmz-usuarios-table > tbody > tr.is-actual > td {
    background-color: #f4faf8;
}

.mmz-usuarios-table > tbody > tr.is-actual > td:first-child {
    box-shadow: inset 3px 0 0 #1d6f5d;
}

.mmz-usuarios-table > tbody > tr.is-actual:hover > td {
    background-color: #eef6f3;
}

/* ----- Formulario de administrador: etiquetas, ayudas y campo contextual ----- */

.mmz-field-hint {
    color: #6b7280;
    font-size: 13.5px;
    margin: 6px 0 0;
}

.mmz-field-label {
    color: #2d3b38;
    display: block;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 8px;
}

/* Distintivo "Opcional" junto a la etiqueta de un campo no obligatorio. */
.mmz-label-optional {
    background-color: #f1f0eb;
    border-radius: 999px;
    color: #6f6a5d;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: 0.03em;
    margin-left: 6px;
    padding: 1px 8px;
    text-transform: uppercase;
    vertical-align: 1px;
}

.mmz-field-reveal {
    border-left: 2px solid #cfe0d9;
    margin-top: 12px;
    padding-left: 14px;
}

.mmz-field-reveal[hidden] {
    display: none;
}

/* SweetAlert2: el framework de gob.mx reduce el font-size base y encoge el
   diálogo. Como swal2 dimensiona su contenido en em relativos a .swal2-popup,
   subir esa base reescala todo el diálogo de forma proporcional. */
.swal2-popup {
    font-size: 1.5rem !important;
}

/* Enlace "Ir al contenido principal": oculto hasta recibir foco con teclado. */
.mmz-skip-link {
    background-color: #611232;
    border-radius: 0 0 6px 0;
    color: #fff;
    font-weight: 700;
    left: -9999px;
    padding: 10px 18px;
    position: absolute;
    top: 0;
    z-index: 2100;
}

.mmz-skip-link:focus {
    color: #fff;
    left: 0;
    outline: 2px solid #fff;
    outline-offset: -4px;
    text-decoration: none;
}

/* Fieldset/legend neutros para agrupar radios sin heredar el estilo de
   Bootstrap (legend grande con borde inferior). El legend imita a un label. */
.mmz-fieldset {
    border: 0;
    margin: 0;
    min-width: 0;
    padding: 0;
}

.mmz-fieldset__legend {
    border: 0;
    color: inherit;
    display: block;
    font-size: inherit;
    font-weight: 700;
    line-height: inherit;
    margin-bottom: 5px;
    padding: 0;
    width: 100%;
}

/* Nota bajo el cupo de solo lectura: explica en pantalla por que no se edita,
   en lugar de esconderlo en un title que teclado y tactil nunca ven. */
.mmz-cupo-ayuda {
    color: #6f6a5d;
    display: block;
    font-size: 11px;
    line-height: 1.3;
    margin-top: 2px;
}

/* Un <legend> que agrupa radios en el admin debe verse igual que la etiqueta
   de cualquier otro campo, sin el borde ni el tamaño que impone Bootstrap. */
legend.mmz-field-label {
    border: 0;
    font-size: 14px;
    line-height: inherit;
    padding: 0;
    width: auto;
}

/* Cifras alineadas en tablas y KPIs del panel administrativo. */
.mmz-admin-kpi__valor,
.mmz-admin-table {
    font-variant-numeric: tabular-nums;
}

/* Respeta la preferencia de movimiento reducido del sistema. */
@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        scroll-behavior: auto !important;
        transition-duration: 0.01ms !important;
    }
}

/* --- Cobertura por codigo postal (admin) --- */

/* Fila dinamica de plantel en el formulario de vinculos. */
.mmz-cp-fila {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 8px;
}

.mmz-cp-fila__orden {
    font-weight: 700;
    min-width: 22px;
    text-align: right;
}

.mmz-cp-fila__distancia {
    width: 110px;
}

.mmz-cp-fila > select {
    flex: 1 1 260px;
    min-width: 220px;
}

/* Lista de ayuda en paneles laterales del admin. */
.mmz-admin-lista {
    margin: 0;
    padding-left: 18px;
}

.mmz-admin-lista li {
    margin-bottom: 6px;
}

/* Distancia del plantel en la tarjeta publica de seleccion. */
.mmz-plantel-card__distancia {
    color: #5f6368;
    display: block;
    font-size: 13px;
}

/* Sede alterna: aviso visible desde la elección y ubicación inequívoca en el detalle. */
.mmz-plantel-card__sede-alterna {
    background-color: #fff7df;
    border: 1px solid #e7c56d;
    border-radius: 999px;
    color: #765519;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    padding: 2px 8px;
    text-transform: uppercase;
    white-space: nowrap;
}

.mmz-plantel-sede-alterna {
    background-color: #fffaf0;
    border: 1px solid #ead69d;
    border-left: 4px solid #b58a35;
    border-radius: 8px;
    color: #3f3522;
    padding: 15px 16px;
}

.mmz-plantel-sede-alterna__encabezado {
    align-items: flex-start;
    display: flex;
    gap: 11px;
}

.mmz-plantel-sede-alterna__icono {
    align-items: center;
    background-color: #f3e4b8;
    border-radius: 50%;
    color: #765519;
    display: inline-flex;
    flex: 0 0 36px;
    height: 36px;
    justify-content: center;
}

.mmz-plantel-sede-alterna__etiqueta {
    color: #765519;
    display: block;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.2;
    margin-bottom: 3px;
    text-transform: uppercase;
}

.mmz-plantel-sede-alterna h4 {
    color: #3f3522;
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    line-height: 1.35;
    margin: 0;
    text-wrap: balance;
}

.mmz-plantel-sede-alterna__explicacion {
    color: #685b41;
    font-size: 13px;
    line-height: 1.45;
    margin: 10px 0 12px;
}

.mmz-plantel-sede-alterna__datos {
    background-color: rgba(255, 255, 255, 0.65);
    border: 1px solid rgba(181, 138, 53, 0.26);
    border-radius: 6px;
    margin: 0;
    padding: 10px 12px;
}

.mmz-plantel-sede-alterna__datos > div + div {
    border-top: 1px solid rgba(181, 138, 53, 0.2);
    margin-top: 8px;
    padding-top: 8px;
}

.mmz-plantel-sede-alterna__datos dt {
    color: #7a6b4d;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.mmz-plantel-sede-alterna__datos dd {
    color: #302a1e;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;
    margin: 2px 0 0;
    overflow-wrap: anywhere;
}

.mmz-plantel-sede-alterna__notas {
    border-top: 1px solid rgba(181, 138, 53, 0.28);
    margin-top: 10px;
    padding-top: 10px;
}

.mmz-plantel-sede-alterna__notas strong {
    color: #765519;
    font-size: 11px;
}

.mmz-plantel-sede-alterna__notas p {
    color: #524730;
    font-size: 12px;
    line-height: 1.45;
    margin: 2px 0 0;
}

/* Panel de codigos postales (admin): KPIs accionables, import plegable,
   filtros de la tabla y modal de pendientes. */
.mmz-admin-kpi--accionable {
    cursor: pointer;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

/* La tarjeta accionable es un <button> o un <a>: se neutralizan los estilos
   nativos para que quede identica a las tarjetas estaticas de al lado. */
button.mmz-admin-kpi {
    font: inherit;
    text-align: left;
    width: 100%;
}

a.mmz-admin-kpi,
a.mmz-admin-kpi:hover,
a.mmz-admin-kpi:focus {
    color: inherit;
    text-decoration: none;
}

/* Tarjeta cuyo filtro esta aplicado: se lee como el estado actual del listado. */
.mmz-admin-kpi--accionable.is-active {
    background-color: #f6faf9;
    box-shadow: inset 0 0 0 1px #cddedb;
}

.mmz-admin-kpi--accionable.is-active .mmz-admin-kpi__accion::before {
    content: "✓ ";
}

.mmz-admin-kpi--accionable:hover {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    transform: translateY(-1px);
}

.mmz-admin-kpi--accionable:focus-visible {
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.12);
    outline: 2px solid #611232;
    outline-offset: 2px;
    transform: translateY(-1px);
}

.mmz-admin-kpi__accion {
    color: #1d6f5d;
    display: block;
    font-size: 12.5px;
    font-weight: 600;
    margin-top: 6px;
}

.mmz-cp-import__summary {
    align-items: center;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    list-style: none;
    user-select: none;
}

.mmz-cp-import__summary::-webkit-details-marker {
    display: none;
}

.mmz-cp-import__indicador {
    border-right: 2px solid #4a5b56;
    border-bottom: 2px solid #4a5b56;
    display: inline-block;
    height: 9px;
    margin-right: 4px;
    transform: rotate(45deg);
    transition: transform 0.15s ease;
    width: 9px;
}

.mmz-cp-import[open] .mmz-cp-import__indicador {
    transform: rotate(225deg);
}

/* Listado principal: toolbar clara, columnas estables y pie de paginacion. */
.mmz-cp-listado-panel .dt-container {
    padding: 0;
}

.mmz-cp-listado-panel .dt-layout-row:first-child {
    background-color: #f8faf9;
    border-bottom: 1px solid #e3e9e7;
    padding: 16px;
}

.mmz-cp-listado-panel .dt-layout-row:last-child {
    align-items: center;
    background-color: #fbfcfc;
    border-top: 1px solid #e3e9e7;
    margin-top: 0;
    padding: 12px 16px;
}

.mmz-cp-listado-panel .dt-info {
    color: #5c6965;
    font-size: 13px;
    padding: 0;
}

.mmz-cp-tabla-toolbar {
    align-items: stretch;
    display: flex !important;
    flex: 1 1 auto;
    flex-direction: column-reverse;
    gap: 14px;
    width: 100%;
}

.mmz-cp-filtros {
    align-items: flex-end;
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 0;
}

.mmz-cp-filtros__label {
    align-items: center;
    color: #4a5b56;
    display: flex;
    flex: 1 0 100%;
    font-size: 11.5px;
    font-weight: 600;
    gap: 6px;
    letter-spacing: 0.04em;
    line-height: 1;
    text-transform: uppercase;
}

.mmz-cp-filtros__icono {
    flex: 0 0 auto;
}

.mmz-cp-filtros__select {
    background-color: #fff;
    border: 1px solid #ced4d4;
    border-radius: 6px;
    box-shadow: none;
    color: #1f2a28;
    flex: 0 1 180px;
    font-size: 13.5px;
    height: 38px;
    min-width: 150px;
    padding: 6px 28px 6px 10px;
}

.mmz-cp-filtros__select--plantel {
    flex-basis: 260px;
    max-width: 360px;
}

.mmz-cp-filtros__select:hover {
    border-color: #aeb9b6;
}

.mmz-cp-filtros__select:focus-visible {
    border-color: #1d6f5d;
    box-shadow: 0 0 0 2px rgba(29, 111, 93, 0.18);
    outline: none;
}

.mmz-cp-filtros__clear {
    align-self: center;
    color: #611232;
    cursor: pointer;
    flex: 0 0 auto;
    font-size: 13px;
    height: auto;
    padding: 8px 4px;
    text-decoration: underline;
}

.mmz-cp-filtros__clear[hidden] {
    display: none !important;
}

.mmz-cp-filtros__clear:hover {
    color: #3c0b20;
}

.mmz-cp-filtros__clear:focus-visible {
    box-shadow: 0 0 0 2px rgba(140, 29, 29, 0.2);
    outline: 2px solid #8c1d1d;
    outline-offset: 1px;
}

.mmz-cp-listado-panel .mmz-cp-busqueda {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 5px;
    margin: 0;
    padding: 0;
    width: 100%;
}

.mmz-cp-listado-panel .mmz-cp-busqueda > label {
    display: block;
    order: -1;
    text-align: left;
    width: 100%;
}

.mmz-cp-busqueda__label {
    color: #33443f;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: .02em;
}

.mmz-cp-listado-panel .mmz-cp-busqueda input,
.mmz-cp-listado-panel .mmz-cp-busqueda input[type="search"] {
    height: 38px;
    margin: 0;
    min-width: 0;
    width: 100% !important;
}

.mmz-cp-tabla-wrap {
    margin: 0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.mmz-cp-tabla {
    min-width: 900px;
    table-layout: fixed;
    width: 100% !important;
}

.mmz-cp-tabla > thead > tr > th {
    padding: 12px 14px;
    vertical-align: middle;
}

.mmz-cp-tabla > tbody > tr > td {
    line-height: 1.35;
    padding: 14px;
    vertical-align: top;
}

.mmz-cp-ubicacion strong {
    color: #26312e;
    display: block;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
    font-size: 16px;
    letter-spacing: 0.02em;
    margin-bottom: 5px;
}

.mmz-cp-ubicacion span {
    color: #596762;
    display: block;
    font-size: 13px;
    line-height: 1.45;
}

.mmz-cp-planteles-lista {
    display: grid;
    gap: 8px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.mmz-cp-plantel {
    align-items: flex-start;
    display: flex;
    gap: 9px;
    min-width: 0;
}

.mmz-cp-plantel + .mmz-cp-plantel {
    border-top: 1px solid #edf1f0;
    padding-top: 8px;
}

.mmz-cp-plantel__orden {
    align-items: center;
    background-color: #e7f1ed;
    border-radius: 50%;
    color: #155146;
    display: inline-flex;
    flex: 0 0 24px;
    font-size: 12px;
    font-weight: 700;
    height: 24px;
    justify-content: center;
}

.mmz-cp-plantel__contenido {
    display: flex;
    flex: 1 1 auto;
    flex-wrap: wrap;
    gap: 4px 8px;
    min-width: 0;
}

.mmz-cp-plantel__nombre {
    color: #27332f;
    flex: 1 0 100%;
    font-weight: 600;
    overflow-wrap: anywhere;
}

.mmz-cp-plantel__meta {
    align-items: center;
    color: #68736f;
    display: inline-flex;
    flex-wrap: wrap;
    font-size: 12.5px;
    gap: 5px;
}

.mmz-cp-plantel__estado {
    align-self: center;
    border-radius: 999px;
    display: inline-flex;
    font-size: 10.5px;
    font-weight: 700;
    line-height: 1.2;
    padding: 4px 8px;
}

.mmz-cp-plantel__estado--tbc {
    background-color: #f1e4e9;
    color: #72233f;
}

.mmz-cp-plantel__estado--inactivo {
    background-color: #6f7573;
    color: #fff;
}

.mmz-cp-plantel__estado--no-disponible {
    background-color: #f4eee2;
    color: #7a4c0b;
}

.mmz-cp-plantel__nota {
    color: #785466;
    flex: 1 0 100%;
    font-size: 11.5px;
    line-height: 1.35;
}

.mmz-cp-origen {
    border-radius: 999px;
    display: inline-flex;
    font-size: 11.5px;
    line-height: 1.2;
    padding: 5px 9px;
    white-space: normal;
}

.mmz-cp-resumen {
    display: grid;
    gap: 8px;
}

.mmz-cp-resumen > strong {
    color: #8a4b00;
    font-size: 13px;
}

.mmz-cp-resumen > strong.is-ok {
    color: #176347;
}

.mmz-cp-resumen__origenes {
    display: flex;
    flex-wrap: wrap;
    gap: 5px;
}

.mmz-cp-resumen__tbc {
    color: #72233f;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.35;
}

.mmz-cp-resumen__incidencia {
    color: #8a4b00;
    font-size: 12px;
    line-height: 1.35;
}

.mmz-cp-fila-acciones {
    display: flex;
    flex-wrap: nowrap;
    gap: 5px;
    justify-content: flex-start;
}

.mmz-cp-fila-acciones .dropdown-menu {
    min-width: 210px;
}

.mmz-cp-menu-danger {
    background: none;
    border: 0;
    color: #8c1d1d;
    display: block;
    padding: 7px 20px;
    text-align: left;
    width: 100%;
}

.mmz-cp-menu-danger:hover,
.mmz-cp-menu-danger:focus {
    background-color: #f5f5f5;
    color: #611232;
    outline: none;
}

.mmz-cp-fila-acciones .btn {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-height: 32px;
    padding: 5px 8px;
}

.mmz-cp-fila-acciones .btn:focus-visible {
    outline: 2px solid #611232;
    outline-offset: 2px;
}

@media (max-width: 991px) {
    .mmz-cp-tabla-toolbar {
        align-items: stretch;
        flex-direction: column;
    }

    .mmz-cp-listado-panel .mmz-cp-busqueda {
        flex-basis: auto;
        width: 100%;
    }
}

@media (max-width: 767px) {
    .mmz-cp-listado-panel .dt-layout-row:first-child,
    .mmz-cp-listado-panel .dt-layout-row:last-child {
        padding: 12px;
    }

    .mmz-cp-listado-panel .dt-layout-row:last-child {
        align-items: stretch;
        flex-direction: column;
        gap: 8px;
    }

    .mmz-cp-filtros__select {
        flex: 1 1 180px;
    }

    .mmz-cp-tabla-wrap {
        overflow: visible;
    }

    .mmz-cp-tabla,
    .mmz-cp-tabla tbody,
    .mmz-cp-tabla tr,
    .mmz-cp-tabla td {
        display: block;
        min-width: 0;
        width: 100% !important;
    }

    .mmz-cp-tabla colgroup,
    .mmz-cp-tabla thead {
        display: none;
    }

    .mmz-cp-tabla > tbody > tr {
        background: #fff;
        border: 1px solid #dfe7e4;
        border-radius: 10px;
        box-shadow: 0 2px 7px rgba(25, 52, 44, .06);
        margin-bottom: 12px;
        padding: 4px 14px;
    }

    .mmz-cp-tabla > tbody > tr > td {
        border: 0;
        border-bottom: 1px solid #edf1f0;
        padding: 12px 0;
    }

    .mmz-cp-tabla > tbody > tr > td::before {
        color: #6c7a75;
        content: attr(data-label);
        display: block;
        font-size: 10.5px;
        font-weight: 700;
        letter-spacing: .04em;
        margin-bottom: 6px;
        text-transform: uppercase;
    }

    .mmz-cp-tabla > tbody > tr > td:last-child {
        border-bottom: 0;
    }

    .mmz-cp-fila-acciones .btn {
        min-height: 40px;
    }
}

@media (max-width: 480px) {
    .mmz-cp-filtros__select {
        flex-basis: 100%;
        width: 100%;
    }
}

.mmz-pendientes-tabla {
    max-height: 420px;
    overflow-y: auto;
    text-align: left;
}

.mmz-pendientes-tabla .table {
    margin-bottom: 0;
}

.mmz-pendientes-acciones {
    white-space: nowrap;
}
/* Roles y permisos administrativos */
.mmz-admin-filters {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 18px;
}

.mmz-admin-filters .form-group {
    min-width: 180px;
    margin-bottom: 0;
}

.mmz-admin-table__description {
    display: block;
    max-width: 520px;
    margin-top: 4px;
    color: #5f6b68;
}

.mmz-role-form .mmz-admin-panel__heading {
    align-items: center;
    display: flex;
    justify-content: space-between;
    gap: 16px;
}

.mmz-role-panel-heading > span,
.mmz-role-panel-heading > small {
    display: block;
}

.mmz-role-panel-heading > small {
    color: #6b7773;
    font-size: 13px;
    font-weight: 400;
    margin-top: 2px;
}

.mmz-role-search {
    border-color: #cbd8d3;
    height: 40px;
    padding-left: 36px;
    width: 100%;
}

.mmz-role-search-control {
    min-width: 280px;
    position: relative;
}

.mmz-role-search-control svg {
    color: #71807b;
    left: 11px;
    pointer-events: none;
    position: absolute;
    top: 11px;
    z-index: 1;
}

.mmz-role-search-control:focus-within svg {
    color: #1d6f5d;
}

.mmz-permission-overview {
    align-items: center;
    background: linear-gradient(105deg, #f6faf8, #eef6f3);
    border: 1px solid #d5e5df;
    border-radius: 10px;
    display: grid;
    gap: 12px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    margin-bottom: 14px;
    padding: 13px 15px;
}

.mmz-permission-overview__icon {
    align-items: center;
    background: #fff;
    border: 1px solid #cfe1db;
    border-radius: 9px;
    color: #1d6f5d;
    display: flex;
    height: 42px;
    justify-content: center;
    width: 42px;
}

.mmz-permission-overview strong,
.mmz-permission-overview small {
    display: block;
}

.mmz-permission-overview strong {
    color: #173f38;
    font-size: 14px;
}

.mmz-permission-overview small {
    color: #61706b;
    font-size: 13px;
    line-height: 1.4;
    margin-top: 2px;
}

.mmz-permission-overview__progress {
    background: #fff;
    border: 1px solid #c7ddd6;
    border-radius: 999px;
    color: #155146;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    font-weight: 800;
    padding: 6px 11px;
    white-space: nowrap;
}

.mmz-permission-group {
    background: #fff;
    border: 1px solid #dce5e2;
    border-radius: 10px;
    margin: 0 0 12px;
    overflow: hidden;
    padding: 0;
    position: relative;
    transition: border-color 160ms ease, box-shadow 160ms ease;
}

.mmz-permission-group:last-child {
    margin-bottom: 0;
}

.mmz-permission-group.has-selection {
    border-color: #bfd8d0;
    box-shadow: 0 4px 13px rgba(15, 63, 55, 0.055);
}

.mmz-permission-group.is-complete {
    border-color: #92c2b4;
}

.mmz-permission-group__header {
    align-items: center;
    background: #f7f9f8;
    border-bottom: 1px solid #e2e9e6;
    display: flex;
    gap: 14px;
    justify-content: space-between;
    padding: 12px 14px;
}

.mmz-permission-group.has-selection .mmz-permission-group__header {
    background: #f1f8f5;
}

.mmz-permission-group__identity {
    align-items: center;
    display: flex;
    gap: 10px;
    min-width: 0;
}

.mmz-permission-group__identity strong,
.mmz-permission-group__identity small {
    display: block;
}

.mmz-permission-group__identity strong {
    color: #123f37;
    font-size: 16px;
    line-height: 1.25;
}

.mmz-permission-group__identity small {
    color: #6c7975;
    font-size: 13px;
    font-variant-numeric: tabular-nums;
    margin-top: 2px;
}

.mmz-permission-group__icon {
    align-items: center;
    background: #fff;
    border: 1px solid #d3e1dc;
    border-radius: 8px;
    color: #397f70;
    display: flex;
    flex: 0 0 auto;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.mmz-permission-group__actions {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 6px;
}

.mmz-permission-action {
    background: #fff;
    border: 1px solid #cddbd6;
    border-radius: 7px;
    color: #155146;
    font-size: 13px;
    font-weight: 700;
    min-height: 36px;
    padding: 6px 10px;
    touch-action: manipulation;
}

.mmz-permission-action:hover:not(:disabled) {
    background: #eaf4f1;
    border-color: #a9ccc1;
}

.mmz-permission-action:focus-visible {
    box-shadow: 0 0 0 3px rgba(29, 111, 93, 0.16);
    outline: 2px solid #1d6f5d;
    outline-offset: 1px;
}

.mmz-permission-action--clear {
    color: #6d3344;
}

.mmz-permission-action--clear:hover:not(:disabled) {
    background: #fbf1f3;
    border-color: #dfbdc6;
}

.mmz-permission-action:disabled {
    background: #f5f7f6;
    border-color: #e2e7e5;
    color: #9aa49f;
    cursor: not-allowed;
}

.mmz-permission-options {
    display: grid;
    gap: 8px;
    grid-template-columns: repeat(auto-fit, minmax(285px, 1fr));
    padding: 12px;
}

.mmz-permission-option {
    align-content: start;
    background: #fff;
    border: 1px solid #e0e7e4;
    border-radius: 8px;
    cursor: pointer;
    display: grid;
    gap: 11px;
    grid-template-columns: 22px 1fr;
    min-height: 78px;
    padding: 11px 12px;
    touch-action: manipulation;
    transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease;
}

.mmz-permission-option:hover {
    background: #f8fbfa;
    border-color: #bcd3cc;
}

.mmz-permission-option.is-selected,
.mmz-permission-option:has(input:checked) {
    background: #eef7f4;
    border-color: #8dbdaf;
    box-shadow: inset 3px 0 0 #1d6f5d;
}

.mmz-permission-option:focus-within {
    border-color: #1d6f5d;
    box-shadow: 0 0 0 3px rgba(29, 111, 93, 0.15);
}

.mmz-permission-option input {
    accent-color: #1d6f5d;
    height: 18px;
    margin: 2px 0 0;
    width: 18px;
}

.mmz-permission-option strong {
    color: #2c3936;
    font-size: 14px;
    line-height: 1.3;
}

.mmz-permission-option strong,
.mmz-permission-option small,
.mmz-permission-option em {
    display: block;
}

.mmz-permission-option small {
    margin-top: 2px;
    color: #5f6b68;
    font-size: 13.5px;
    font-weight: 400;
}

.mmz-permission-option em {
    margin-top: 3px;
    color: #7a1f36;
    font-size: 13px;
}

.mmz-permission-search-empty {
    background: #f7f9f8;
    border: 1px dashed #cbd8d3;
    border-radius: 10px;
    color: #68746f;
    margin: 14px 0;
    padding: 28px 18px;
    text-align: center;
}

.mmz-permission-search-empty strong,
.mmz-permission-search-empty span {
    display: block;
}

.mmz-permission-search-empty strong {
    color: #28423c;
    font-size: 15px;
}

.mmz-permission-search-empty span {
    font-size: 13.5px;
    margin-top: 3px;
}

.mmz-role-summary {
    position: sticky;
    top: calc(var(--mmz-admin-topbar-offset, 0px) + 92px);
}

.mmz-role-summary ul {
    padding-left: 18px;
    color: #40504c;
}

@media (max-width: 991px) {
    .mmz-role-summary {
        position: static;
    }
}

/* ----- Rol protegido en modo consulta (admin/roles/{super}/editar) ----- */

/* Identidad como texto estático, no como campos deshabilitados. */
.mmz-role-identity__row + .mmz-role-identity__row {
    margin-top: 16px;
}

.mmz-role-identity__value {
    color: #1f2a27;
    font-size: 16px;
    font-weight: 600;
    margin: 4px 0 0;
}

.mmz-role-identity__value--muted {
    color: #40504c;
    font-size: 14px;
    font-weight: 400;
    line-height: 1.5;
}

/* Distintivo compacto de rol protegido, junto al nombre. */
.mmz-role-badge {
    align-items: center;
    background: #eef4f1;
    border: 1px solid #cfe0d9;
    border-radius: 999px;
    color: #155146;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    gap: 5px;
    letter-spacing: 0.02em;
    padding: 3px 10px;
    text-transform: uppercase;
    vertical-align: 2px;
}

.mmz-role-badge svg {
    display: block;
}

/* Encabezado de módulo en la lista de permisos otorgados. */
.mmz-permission-group__title {
    align-items: center;
    color: #0f3f37;
    display: flex;
    font-size: 17px;
    font-weight: 700;
    gap: 8px;
    margin: 0;
    padding: 13px 14px;
}

.mmz-permission-group__count {
    background: #eef4f1;
    border-radius: 999px;
    color: #155146;
    font-size: 13px;
    font-weight: 700;
    min-width: 22px;
    padding: 1px 8px;
    text-align: center;
}

/* Permiso otorgado: palomita informativa en vez de checkbox deshabilitado. */
.mmz-permission-option--granted {
    cursor: default;
}

.mmz-permission-option--granted:hover {
    background: #eef7f4;
    border-color: #8dbdaf;
}

.mmz-permission-check {
    align-items: flex-start;
    display: flex;
    margin-top: 3px;
}

.mmz-permission-check svg {
    display: block;
}

/* Desglose por módulo del resumen de acceso. */
.mmz-role-summary__total {
    color: #1f2a27;
    margin: 0 0 12px;
}

.mmz-role-summary__total strong {
    font-size: 22px;
}

.mmz-role-summary .mmz-role-modules {
    list-style: none;
    margin: 0 0 14px;
    padding: 0;
}

.mmz-role-modules li {
    align-items: center;
    border-top: 1px solid #eef2f1;
    color: #40504c;
    display: flex;
    gap: 10px;
    justify-content: space-between;
    padding: 8px 0;
}

.mmz-role-modules li:first-child {
    border-top: 0;
}

.mmz-role-modules__count {
    background: #eef4f1;
    border-radius: 999px;
    color: #155146;
    font-size: 13px;
    font-weight: 700;
    min-width: 24px;
    padding: 2px 8px;
    text-align: center;
}

.mmz-role-modules li.mmz-role-modules__empty {
    background: #f7f9f8;
    border: 1px dashed #cbd8d3;
    border-radius: 8px;
    color: #68746f;
    display: block;
    font-size: 13.5px;
    line-height: 1.4;
    padding: 11px 12px;
    text-align: center;
}

.mmz-access-hero {
    background: linear-gradient(105deg, #fff 62%, #edf6f3 100%);
}

.mmz-access-hero h1 {
    text-wrap: balance;
}

.mmz-access-hero p {
    max-width: 760px;
    text-wrap: pretty;
}

.mmz-access-metrics {
    display: grid;
    gap: 12px;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    margin: 18px 0;
}

.mmz-access-metric {
    background: #fff;
    border: 1px solid #dbe5e1;
    border-radius: 9px;
    box-shadow: 0 3px 10px rgba(15, 63, 55, 0.04);
    min-width: 0;
    padding: 14px 16px;
    position: relative;
}

.mmz-access-metric::before {
    background: #1d6f5d;
    border-radius: 9px 9px 0 0;
    content: "";
    height: 3px;
    inset: -1px -1px auto;
    position: absolute;
}

.mmz-access-metric--success::before { background: #2f8a72; }
.mmz-access-metric--pending::before { background: #b58a35; }
.mmz-access-metric--muted::before { background: #9aa5a1; }

.mmz-access-metric span,
.mmz-access-metric small {
    color: #6b7773;
    display: block;
    font-size: 13px;
}

.mmz-access-metric span {
    font-weight: 700;
    letter-spacing: 0.045em;
    text-transform: uppercase;
}

.mmz-access-metric strong {
    color: #0f3f37;
    display: block;
    font-size: 26px;
    font-variant-numeric: tabular-nums;
    line-height: 1.1;
    margin: 5px 0 3px;
}

.mmz-access-filters {
    align-items: end;
    background: #fff;
    border: 1px solid #dbe5e1;
    border-radius: 9px;
    display: grid;
    gap: 12px;
    grid-template-columns: minmax(260px, 1.5fr) repeat(3, minmax(145px, 0.8fr)) auto;
    margin-bottom: 12px;
    padding: 16px;
}

.mmz-access-filters:focus-within {
    border-color: #bfd4cd;
    box-shadow: 0 4px 14px rgba(15, 63, 55, 0.055);
}

.mmz-access-filters--roles {
    grid-template-columns: minmax(300px, 1.6fr) minmax(170px, 0.7fr) auto;
}

.mmz-access-filters .form-group,
.mmz-access-filters__search {
    margin: 0;
    min-width: 0;
}

.mmz-access-filters label {
    color: #40504c;
    display: block;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 5px;
}

.mmz-access-filters .form-control {
    font-size: 14px;
    height: 39px;
}

.mmz-access-searchbox {
    position: relative;
}

.mmz-access-searchbox svg {
    color: #75817d;
    left: 11px;
    pointer-events: none;
    position: absolute;
    top: 10px;
}

.mmz-access-searchbox .form-control {
    padding-left: 38px;
}

.mmz-access-filters__actions {
    align-items: center;
    display: flex;
    gap: 3px;
    justify-content: flex-end;
    white-space: nowrap;
}

.mmz-access-results {
    align-items: center;
    color: #65716d;
    display: flex;
    font-size: 14px;
    justify-content: space-between;
    margin: 0 2px 8px;
}

.mmz-access-results p { margin: 0; }
.mmz-access-results strong { color: #2d3b38; }

.mmz-access-list {
    border-radius: 9px;
    overflow: hidden;
}

.mmz-access-table > thead > tr > th {
    background: #f4f7f6;
    color: #42514d;
    font-size: 13px;
    letter-spacing: 0.025em;
}

.mmz-access-table > tbody > tr {
    transition: background-color 150ms ease;
}

.mmz-access-table > tbody > tr:hover > td {
    background: #f8fbfa;
}

.mmz-access-table > tbody > tr > td {
    vertical-align: middle;
}

.mmz-access-table__title,
.mmz-access-table__primary,
.mmz-access-table td > small {
    display: block;
}

.mmz-access-table__title,
.mmz-access-table__primary {
    color: #24332f;
}

.mmz-access-table__primary {
    font-variant-numeric: tabular-nums;
}

.mmz-access-table td > small {
    color: #7b8682;
    font-size: 13px;
    font-weight: 400;
    margin-top: 2px;
}

.mmz-access-table__action {
    text-align: right;
    white-space: nowrap;
}

.mmz-access-table__action .btn {
    min-width: 112px;
}

.mmz-inline-warning {
    color: #8a6726;
    display: block;
    font-size: 13px;
    font-weight: 700;
    margin-top: 5px;
}

.mmz-type-badge {
    background: #f1f4f3;
    border: 1px solid #dce4e1;
    border-radius: 999px;
    color: #53615d;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    padding: 4px 9px;
}

.mmz-role-badge--compact {
    font-size: 12px;
    margin-left: 7px;
    padding: 2px 7px;
    vertical-align: 1px;
}

.mmz-admin-empty strong,
.mmz-admin-empty span {
    display: block;
}

.mmz-admin-empty span {
    color: #74807c;
    font-size: 14px;
    font-weight: 400;
    margin-top: 4px;
}

.mmz-context-notice {
    align-items: flex-start;
    background: #f4f7f6;
    border: 1px solid #dce5e2;
    border-left: 4px solid #7d918a;
    border-radius: 7px;
    color: #40504c;
    display: flex;
    flex-direction: column;
    font-size: 14px;
    gap: 2px;
    margin: 0 0 16px;
    padding: 11px 13px;
}

.mmz-context-notice strong { color: #263631; }
.mmz-context-notice--info { background: #eef6f3; border-color: #cfe0d9; border-left-color: #1d6f5d; }
.mmz-context-notice--warning { background: #fff9ea; border-color: #ead9a8; border-left-color: #b58a35; }
.mmz-context-notice--neutral { margin-top: 12px; }

.mmz-account-form .mmz-admin-panel,
.mmz-role-form .mmz-admin-panel {
    border-radius: 9px;
    box-shadow: 0 4px 14px rgba(15, 63, 55, 0.045);
    overflow: hidden;
}

.mmz-account-form .mmz-admin-panel__heading,
.mmz-role-form .mmz-admin-panel__heading {
    background: #f5f8f7;
    border-bottom-color: #dbe5e1;
    min-height: 52px;
}

.mmz-account-summary {
    position: sticky;
    top: calc(var(--mmz-admin-topbar-offset, 0px) + 92px);
}

.mmz-access-summary {
    margin: 0 0 20px;
}

.mmz-access-summary > div {
    border-bottom: 1px solid #edf1ef;
    display: grid;
    gap: 10px;
    grid-template-columns: 86px minmax(0, 1fr);
    padding: 9px 0;
}

.mmz-access-summary dt {
    color: #7a8581;
    font-size: 13px;
    font-weight: 600;
}

.mmz-access-summary dd {
    color: #273631;
    font-size: 14px;
    font-weight: 700;
    margin: 0;
    overflow-wrap: anywhere;
    text-align: right;
}

.mmz-account-summary__status {
    align-items: center;
    background: #eef6f3;
    border: 1px solid #cfe0d9;
    border-radius: 7px;
    color: #155146;
    display: flex;
    font-size: 14px;
    gap: 8px;
    margin: 14px 0 0;
    padding: 9px 11px;
}

.mmz-account-summary__status span {
    background: #2f8a72;
    border-radius: 50%;
    height: 8px;
    width: 8px;
}

.mmz-account-summary__status.is-inactive {
    background: #fbeff1;
    border-color: #e7c5cd;
    color: #8a1d39;
}

.mmz-account-summary__status.is-inactive span,
.mmz-account-summary__status span.is-inactive { background: #b42345; }

.mmz-role-preview {
    background: #f5f8f7;
    border: 1px solid #dce5e2;
    border-radius: 8px;
    margin-top: 9px;
    padding: 12px 14px;
}

.mmz-role-preview__eyebrow {
    color: #75817d;
    display: block;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.05em;
    margin-bottom: 3px;
    text-transform: uppercase;
}

.mmz-role-preview > strong { color: #0f3f37; display: block; }
.mmz-role-preview p { color: #5f6b68; font-size: 14px; margin: 3px 0 8px; }

.mmz-role-preview__meta {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.mmz-role-preview__permissions,
.mmz-role-preview__status {
    align-items: center;
    background: #fff;
    border: 1px solid #dce5e2;
    border-radius: 999px;
    color: #53615d;
    display: inline-flex;
    font-size: 13px;
    font-weight: 700;
    min-height: 36px;
    padding: 6px 11px;
}

.mmz-role-preview__permissions {
    color: #155146;
    cursor: pointer;
    gap: 6px;
    min-height: 40px;
}

.mmz-role-preview__permissions:hover {
    background: #eef6f3;
    border-color: #b9d5cc;
}

.mmz-role-preview__permissions:focus-visible {
    box-shadow: 0 0 0 3px rgba(29, 111, 93, 0.18);
    outline: 2px solid #1d6f5d;
    outline-offset: 2px;
}

.mmz-role-searchbox {
    align-items: flex-end;
    display: flex;
    flex-direction: column;
    gap: 3px;
    justify-content: flex-end;
}

.mmz-role-searchbox small {
    color: #6b7773;
    font-size: 13px;
    min-width: 65px;
    text-align: right;
}

.mmz-permission-group.is-search-empty { display: none; }

.mmz-permission-feedback {
    color: #155146;
    font-size: 13.5px;
    font-weight: 600;
    margin: 10px 0 0;
}

.mmz-role-summary__caption {
    color: #7a8581;
    font-size: 13px;
    margin: -6px 0 5px;
}

.mmz-modal-open { overflow: hidden; }
.mmz-role-permissions-modal[hidden] { display: none; }

.mmz-role-permissions-modal {
    align-items: center;
    display: flex;
    inset: 0;
    justify-content: center;
    padding: 24px;
    position: fixed;
    z-index: 2200;
}

.mmz-role-permissions-modal__backdrop {
    background: rgba(9, 33, 29, 0.62);
    border: 0;
    cursor: default;
    inset: 0;
    padding: 0;
    position: absolute;
    width: 100%;
}

.mmz-role-permissions-dialog {
    background: #fff;
    border: 1px solid #d9e4e0;
    border-radius: 14px;
    box-shadow: 0 24px 70px rgba(8, 41, 35, 0.28);
    display: flex;
    flex-direction: column;
    max-height: calc(100vh - 48px);
    max-width: 760px;
    overflow: hidden;
    position: relative;
    width: 100%;
}

.mmz-role-permissions-dialog:focus { outline: 3px solid transparent; }

.mmz-role-permissions-dialog__header {
    align-items: flex-start;
    background: linear-gradient(110deg, #fff 55%, #edf6f3 100%);
    border-bottom: 1px solid #e2e9e6;
    display: grid;
    gap: 14px;
    grid-template-columns: auto minmax(0, 1fr) auto;
    padding: 22px 24px 18px;
}

.mmz-role-permissions-dialog__icon {
    align-items: center;
    background: #eaf4f1;
    border: 1px solid #cce1da;
    border-radius: 10px;
    color: #1d6f5d;
    display: flex;
    height: 46px;
    justify-content: center;
    width: 46px;
}

.mmz-role-permissions-dialog__header > div:nth-child(2) > span {
    color: #7a1f36;
    display: block;
    font-size: 13px;
    font-weight: 800;
    letter-spacing: 0.06em;
    margin-bottom: 3px;
    text-transform: uppercase;
}

.mmz-role-permissions-dialog__header h2 {
    color: #0f3f37;
    font-size: 24px;
    line-height: 1.2;
    margin: 0;
}

.mmz-role-permissions-dialog__header p {
    color: #5f6b68;
    font-size: 14px;
    line-height: 1.45;
    margin: 5px 0 0;
}

.mmz-role-permissions-dialog__close {
    align-items: center;
    background: #fff;
    border: 1px solid #d8e2df;
    border-radius: 50%;
    color: #40504c;
    display: flex;
    font-size: 25px;
    height: 44px;
    justify-content: center;
    line-height: 1;
    padding: 0 0 3px;
    width: 44px;
}

.mmz-role-permissions-dialog__close:hover {
    background: #f4f7f6;
    color: #7a1f36;
}

.mmz-role-permissions-dialog__close:focus-visible {
    box-shadow: 0 0 0 3px rgba(29, 111, 93, 0.18);
    outline: 2px solid #1d6f5d;
    outline-offset: 2px;
}

.mmz-role-permissions-dialog__summary {
    align-items: baseline;
    background: #f7f9f8;
    border-bottom: 1px solid #e7ecea;
    color: #52605c;
    display: flex;
    font-size: 14px;
    gap: 7px;
    padding: 11px 24px;
}

.mmz-role-permissions-dialog__summary strong {
    color: #7a1f36;
    font-size: 22px;
}

.mmz-role-permissions-dialog__body {
    overscroll-behavior: contain;
    overflow-y: auto;
    padding: 8px 24px 18px;
}

.mmz-role-permissions-group {
    border-bottom: 1px solid #e8eeeb;
    padding: 17px 0;
}

.mmz-role-permissions-group:last-child { border-bottom: 0; }

.mmz-role-permissions-group h3 {
    align-items: center;
    color: #0f3f37;
    display: flex;
    font-size: 16px;
    gap: 8px;
    justify-content: space-between;
    margin: 0 0 9px;
}

.mmz-role-permissions-group h3 span {
    background: #eef5f2;
    border-radius: 999px;
    color: #155146;
    font-size: 13px;
    min-width: 26px;
    padding: 3px 8px;
    text-align: center;
}

.mmz-role-permissions-group ul { list-style: none; margin: 0; padding: 0; }

.mmz-role-permissions-group li {
    display: grid;
    gap: 10px;
    grid-template-columns: 24px minmax(0, 1fr);
    padding: 8px 0;
}

.mmz-role-permissions-group__check {
    align-items: center;
    background: #e8f4f0;
    border-radius: 50%;
    color: #1d6f5d;
    display: flex;
    font-size: 12px;
    font-weight: 800;
    height: 22px;
    justify-content: center;
    margin-top: 1px;
    width: 22px;
}

.mmz-role-permissions-group li strong,
.mmz-role-permissions-group li small { display: block; }
.mmz-role-permissions-group li strong { color: #263631; font-size: 14px; }
.mmz-role-permissions-group li small { color: #68746f; font-size: 13.5px; line-height: 1.4; margin-top: 2px; }

.mmz-role-permissions-empty {
    color: #68746f;
    font-size: 14px;
    margin: 28px 0;
    text-align: center;
}

.mmz-role-permissions-dialog__footer {
    background: #fafbfb;
    border-top: 1px solid #e1e8e5;
    padding: 14px 24px;
    text-align: right;
}

@media (max-width: 1199px) {
    .mmz-access-filters {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }

    .mmz-access-filters__search { grid-column: span 2; }
    .mmz-access-filters__actions { align-self: end; }
}

@media (max-width: 991px) {
    .mmz-access-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .mmz-account-summary { position: static; }
}

@media (max-width: 767px) {
    .mmz-access-metrics { gap: 8px; }
    .mmz-access-metric { padding: 12px; }
    .mmz-access-metric strong { font-size: 22px; }
    .mmz-access-filters,
    .mmz-access-filters--roles { grid-template-columns: 1fr; }
    .mmz-access-filters__search { grid-column: auto; }
    .mmz-access-filters__actions { justify-content: stretch; }
    .mmz-access-filters__actions .btn { flex: 1 1 auto; min-height: 42px; }
    .mmz-access-list .table-responsive { border: 0; margin: 0; overflow: visible; }
    .mmz-access-table,
    .mmz-access-table tbody,
    .mmz-access-table tr,
    .mmz-access-table td { display: block; width: 100%; }
    .mmz-access-table thead { clip: rect(0 0 0 0); height: 1px; margin: -1px; overflow: hidden; position: absolute; width: 1px; }
    .mmz-access-table > tbody > tr { border-bottom: 8px solid #f1f4f3; padding: 14px 14px 10px; }
    .mmz-access-table > tbody > tr:last-child { border-bottom: 0; }
    .mmz-access-table > tbody > tr > td { align-items: flex-start; border: 0; display: grid; gap: 12px; grid-template-columns: minmax(78px, 0.35fr) minmax(0, 1fr); padding: 7px 0; text-align: left; }
    .mmz-access-table > tbody > tr > td::before { color: #7b8682; content: attr(data-label); font-size: 12px; font-weight: 800; letter-spacing: 0.04em; padding-top: 3px; text-transform: uppercase; }
    .mmz-access-table > tbody > tr > td:first-child { display: block; padding-bottom: 12px; }
    .mmz-access-table > tbody > tr > td:first-child::before,
    .mmz-access-table > tbody > tr > td.mmz-access-table__action::before { display: none; }
    .mmz-access-table > tbody > tr > td.mmz-access-table__action { display: block; padding-top: 12px; }
    .mmz-access-table__action .btn { min-height: 42px; width: 100%; }
    .mmz-usuarios-table > tbody > tr.is-actual > td:first-child { box-shadow: none; }
    .mmz-usuarios-table > tbody > tr.is-actual { box-shadow: inset 3px 0 0 #1d6f5d; }
    .mmz-role-form .mmz-admin-panel__heading { align-items: stretch; flex-direction: column; }
    .mmz-role-searchbox { align-items: stretch; justify-content: stretch; width: 100%; }
    .mmz-role-search-control { min-width: 0; width: 100%; }
    .mmz-role-searchbox small { text-align: left; }
    .mmz-permission-overview { grid-template-columns: auto minmax(0, 1fr); }
    .mmz-permission-overview__progress { grid-column: 2; justify-self: start; }
    .mmz-permission-group__header { align-items: stretch; flex-direction: column; }
    .mmz-permission-group__actions { width: 100%; }
    .mmz-permission-action { flex: 1 1 0; min-height: 42px; }
    .mmz-permission-options { grid-template-columns: 1fr; padding: 10px; }
    .mmz-role-permissions-modal { padding: 12px; }
    .mmz-role-permissions-dialog { max-height: calc(100vh - 24px); }
    .mmz-role-permissions-dialog__header { gap: 10px; padding: 18px 16px 15px; }
    .mmz-role-permissions-dialog__icon { height: 40px; width: 40px; }
    .mmz-role-permissions-dialog__header h2 { font-size: 20px; }
    .mmz-role-permissions-dialog__summary { padding: 10px 16px; }
    .mmz-role-permissions-dialog__body { padding: 6px 16px 14px; }
    .mmz-role-permissions-dialog__footer { padding: 12px 16px; }
}

@media (max-width: 420px) {
    .mmz-access-metrics { grid-template-columns: 1fr; }
    .mmz-access-metric { align-items: center; display: grid; gap: 2px 12px; grid-template-columns: 1fr auto; }
    .mmz-access-metric span,
    .mmz-access-metric small { grid-column: 1; }
    .mmz-access-metric strong { grid-column: 2; grid-row: 1 / span 2; margin: 0; }
}

.mmz-admin-state-page {
    max-width: 680px;
    margin: 64px auto;
    padding: 42px;
    border: 1px solid #d9e1df;
    border-top: 5px solid #7a1f36;
    border-radius: 8px;
    background: #fff;
    text-align: center;
    box-shadow: 0 14px 36px rgb(15 63 55 / 10%);
}

.mmz-admin-state-page__icon {
    display: grid;
    width: 56px;
    height: 56px;
    margin: 0 auto 18px;
    place-items: center;
    border-radius: 50%;
    background: #f5e9ed;
    color: #7a1f36;
    font-size: 30px;
    font-weight: 700;
}

.mmz-unavailable-body {
    background: #f2f5f4;
    color: #26342f;
    font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
    margin: 0;
    min-width: 320px;
}

.mmz-unavailable-main {
    align-items: center;
    box-sizing: border-box;
    display: flex;
    justify-content: center;
    min-height: 100vh;
    min-height: 100dvh;
    padding: 32px 20px;
}

.mmz-unavailable-card {
    background: #fff;
    border: 1px solid #d9e1df;
    border-radius: 12px;
    border-top: 5px solid #b38e5d;
    box-shadow: 0 18px 50px rgb(15 63 55 / 12%);
    box-sizing: border-box;
    max-width: 660px;
    padding: 44px 48px 30px;
    text-align: center;
    width: 100%;
}

.mmz-unavailable-icon {
    align-items: center;
    background: #f8f1e7;
    border-radius: 50%;
    color: #75562f;
    display: inline-flex;
    height: 58px;
    justify-content: center;
    margin-bottom: 18px;
    width: 58px;
}

.mmz-unavailable-eyebrow {
    color: #176b5b;
    display: block;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.12em;
    margin-bottom: 14px;
    text-transform: uppercase;
}

.mmz-unavailable-card h1 {
    color: #21312c;
    font-size: clamp(30px, 5vw, 42px);
    font-weight: 650;
    letter-spacing: -0.025em;
    line-height: 1.12;
    margin: 0 auto 18px;
    max-width: 540px;
}

.mmz-unavailable-card > p {
    color: #53615d;
    font-size: 16px;
    line-height: 1.6;
    margin: 0 auto 12px;
    max-width: 540px;
}

.mmz-unavailable-card .mmz-unavailable-help {
    color: #6a7672;
    font-size: 14px;
}

.mmz-unavailable-status {
    background: #eef2f1;
    border-radius: 999px;
    color: #52615d;
    display: inline-flex;
    font-size: 12px;
    font-weight: 650;
    letter-spacing: 0.02em;
    margin-top: 8px;
    padding: 7px 13px;
}

.mmz-unavailable-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: center;
    margin-top: 24px;
}

.mmz-unavailable-actions form {
    margin: 0;
}

.mmz-unavailable-button {
    align-items: center;
    border: 1px solid transparent;
    border-radius: 7px;
    box-sizing: border-box;
    cursor: pointer;
    display: inline-flex;
    font: inherit;
    font-size: 15px;
    font-weight: 600;
    justify-content: center;
    min-height: 44px;
    min-width: 150px;
    padding: 10px 20px;
    text-decoration: none;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-unavailable-button--primary {
    background: #176b5b;
    border-color: #176b5b;
    color: #fff;
}

.mmz-unavailable-button--primary:hover,
.mmz-unavailable-button--primary:focus-visible {
    background: #105346;
    border-color: #105346;
    color: #fff;
}

.mmz-unavailable-button--secondary {
    background: #fff;
    border-color: #9caaa5;
    color: #384943;
}

.mmz-unavailable-button--secondary:hover,
.mmz-unavailable-button--secondary:focus-visible {
    background: #f3f6f5;
    border-color: #71837d;
}

.mmz-unavailable-button:focus-visible {
    box-shadow: 0 0 0 3px rgb(23 107 91 / 20%);
    outline: 0;
}

.mmz-unavailable-card .mmz-unavailable-brand {
    border-top: 1px solid #edf1f0;
    color: #7a8682;
    font-size: 12px;
    margin-top: 28px;
    max-width: none;
    padding-top: 18px;
}

@media (max-width: 575px) {
    .mmz-unavailable-main {
        padding: 18px 14px;
    }

    .mmz-unavailable-card {
        padding: 34px 22px 24px;
    }

    .mmz-unavailable-actions {
        flex-direction: column;
    }

    .mmz-unavailable-actions form,
    .mmz-unavailable-button {
        width: 100%;
    }
}

/* ===== Expediente documental renovado ===== */

.mmz-doc-icon-sprite {
    height: 0;
    overflow: hidden;
    position: absolute;
    width: 0;
}

.mmz-docs-reglas svg,
.mmz-docs-progreso svg,
.mmz-docs-grupo svg,
.mmz-docs-completo svg,
.mmz-docs-actions svg {
    fill: none;
    stroke: currentColor;
    stroke-linecap: round;
    stroke-linejoin: round;
    stroke-width: 1.8;
}

.mmz-docs-encabezado {
    margin-bottom: 18px;
}

.mmz-docs-encabezado .mmz-datos-intro {
    margin-bottom: 12px;
}

.mmz-docs-reglas {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.mmz-docs-reglas span {
    align-items: center;
    background: #f5f6f6;
    border: 1px solid #d9dddf;
    border-radius: 999px;
    color: #4f575b;
    display: inline-flex;
    font-size: 11.5px;
    font-weight: 600;
    gap: 6px;
    padding: 5px 10px;
}

.mmz-docs-reglas svg {
    height: 15px;
    width: 15px;
}

.mmz-docs-progreso--expediente {
    border: 1px solid #dce6e2;
    border-radius: 12px;
    box-shadow: 0 4px 16px rgb(35 91 78 / 6%);
    margin-bottom: 22px;
    padding: 17px 20px 14px;
}

.mmz-docs-progreso--expediente .mmz-docs-progreso__contador {
    align-items: baseline;
    display: flex;
    font-weight: 650;
    gap: 10px;
}

.mmz-docs-progreso--expediente .mmz-docs-progreso__contador strong {
    white-space: nowrap;
}

.mmz-docs-progreso__pasos {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    list-style: none;
    margin: 10px 0 0;
    padding: 0;
    position: relative;
}

.mmz-docs-progreso__pasos::before {
    background: #dce5e2;
    content: "";
    height: 2px;
    left: 10%;
    position: absolute;
    right: 10%;
    top: 50%;
    transform: translateY(-50%);
}

.mmz-docs-progreso__pasos li {
    align-items: center;
    display: flex;
    justify-content: center;
    position: relative;
}

.mmz-docs-progreso__pasos span {
    align-items: center;
    background: #fff;
    border: 2px solid #cbd7d3;
    border-radius: 50%;
    color: #7b8984;
    display: inline-flex;
    font-size: 10px;
    font-weight: 750;
    height: 22px;
    justify-content: center;
    position: relative;
    width: 22px;
    z-index: 1;
}

.mmz-docs-progreso__pasos li.is-completo span {
    background: #235b4e;
    border-color: #235b4e;
    color: #fff;
}

.mmz-docs-grupo {
    background: #fff;
    border: 1px solid #e3e5e5;
    border-radius: 13px;
    box-shadow: 0 5px 18px rgb(28 56 49 / 5%);
    margin-bottom: 18px;
    padding: 20px;
}

.mmz-docs-grupo__header {
    align-items: center;
    border-bottom: 1px solid #edf1f0;
    display: flex;
    margin-bottom: 16px;
    padding-bottom: 14px;
}

.mmz-docs-grupo__header h3 {
    color: #20302c;
    font-size: 18px;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 3px;
}

.mmz-docs-grupo__header p {
    color: #697671;
    font-size: 12.5px;
    line-height: 1.4;
    margin: 0;
}

.mmz-docs-grid {
    display: grid;
    gap: 14px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.mmz-docs-grid__full {
    grid-column: 1 / -1;
}

.mmz-doc-expediente-card {
    background: #fff;
    border: 1px solid #dcdfde;
    border-radius: 10px;
    height: 100%;
    overflow: hidden;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}

.mmz-doc-expediente-card:hover {
    border-color: #a8bbb5;
    box-shadow: 0 6px 18px rgb(35 91 78 / 8%);
}

.mmz-doc-expediente-card.is-cargado {
    border-color: #a8d0c3;
    box-shadow: inset 4px 0 0 #2b7564;
}

.mmz-doc-expediente-card.is-error {
    border-color: #d99797;
    box-shadow: inset 4px 0 0 #a12727;
}

/* La tarjeta que sube ya no se atenúa: bajarle la opacidad la hacía ver
   deshabilitada y apagaba justo la señal que se está esperando. El estado lo
   comunican la fila del archivo y su barra. Al eliminar sí se atenúa, porque
   ahí lo que se muestra es contenido que está por desaparecer. */
.mmz-doc-expediente-card.is-cargando {
    cursor: progress;
}

.mmz-doc-expediente-card.is-eliminando {
    cursor: progress;
}

.mmz-doc-expediente-card__header {
    align-items: flex-start;
    background: #fbfcfc;
    border-bottom: 1px solid #edf1f0;
    display: flex;
    gap: 11px;
    padding: 14px;
}

/* Gris mientras falta, verde cuando ya está: el ícono acompaña al chip de
   estado en vez de teñir de verde toda la lista desde el principio. */
.mmz-doc-expediente-card__icono {
    align-items: center;
    background: #f0f1f1;
    border-radius: 8px;
    color: #5f6b67;
    display: inline-flex;
    flex: 0 0 38px;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.mmz-doc-expediente-card.is-cargado .mmz-doc-expediente-card__icono {
    background: #dcece7;
    color: #17614f;
}

.mmz-doc-expediente-card__icono svg {
    height: 21px;
    width: 21px;
}

.mmz-doc-expediente-card__titulo {
    flex: 1;
    min-width: 0;
}

.mmz-doc-expediente-card__titulo strong {
    color: #22302d;
    display: block;
    font-size: 14px;
    line-height: 1.25;
    margin: 1px 0 3px;
}

.mmz-doc-expediente-card__titulo small {
    color: #74807c;
    display: block;
    font-size: 11.5px;
    line-height: 1.4;
}

.mmz-doc-estado {
    align-items: center;
    border-radius: 999px;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 10.5px;
    font-weight: 700;
    gap: 4px;
    padding: 5px 8px;
    white-space: nowrap;
}

.mmz-doc-estado svg {
    height: 13px;
    width: 13px;
}

/* Gris y no ámbar: "Pendiente" se repite en cada tarjeta y no es accionable,
   así que en ámbar era lo más saturado de la pantalla y le ganaba al botón. */
.mmz-doc-estado--pendiente {
    background: #f1f2f2;
    color: #5f6b67;
}

.mmz-doc-estado--ok {
    background: #e4f3ed;
    color: #17614f;
}

.mmz-doc-estado--error {
    background: #fbe8e8;
    color: #951f1f;
}

.mmz-doc-estado--cargando {
    background: #e8f0ee;
    color: #235b4e;
}

.mmz-doc-estado--eliminando {
    background: #fbeaea;
    color: #951f1f;
}

.mmz-doc-spinner {
    animation: mmz-spin 0.8s linear infinite;
    border: 2px solid rgb(35 91 78 / 22%);
    border-radius: 50%;
    border-top-color: #235b4e;
    height: 12px;
    width: 12px;
}

/* Al eliminar, la rueda gira en rojo: es la misma señal de trabajo en curso,
   pero del color de lo que está pasando. */
.mmz-doc-spinner--peligro {
    border-color: rgb(149 31 31 / 22%);
    border-top-color: #951f1f;
}

.mmz-doc-archivo-eliminando {
    align-items: center;
    background: #fdf3f3;
    border: 1px solid #eccfcf;
    border-radius: 9px;
    display: flex;
    gap: 11px;
    padding: 10px 11px;
}

.mmz-doc-archivo-eliminando__icono {
    align-items: center;
    background: #fff;
    border: 1px solid #eccfcf;
    border-radius: 7px;
    display: inline-flex;
    flex: 0 0 34px;
    height: 38px;
    justify-content: center;
    width: 34px;
}

/* La rueda se repite en la fila, sobre el nombre del archivo, además de la del
   chip: la actividad se ve donde está pasando y no sólo en la esquina. Ambas
   corren con la misma animación, así que giran acompasadas. */
.mmz-doc-archivo-eliminando__icono .mmz-doc-spinner {
    height: 16px;
    width: 16px;
}

.mmz-doc-archivo-eliminando__info {
    flex: 1;
    min-width: 0;
}

.mmz-doc-archivo-eliminando__info strong {
    color: #6b4444;
    display: block;
    font-size: 12.5px;
    overflow: hidden;
    text-decoration: line-through;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-doc-archivo-eliminando__info small {
    color: #8a6363;
    display: block;
    font-size: 10.5px;
    margin-top: 2px;
}

.mmz-doc-expediente-card__body {
    padding: 13px 14px 14px;
}

/* El color aquí no decora, reparte papeles: vino = donde se hace clic, verde =
   lo que ya quedó, gris = el resto. Antes las cuatro cajas anidadas compartían
   el mismo verde-gris y ninguna destacaba, así que no era evidente dónde
   cargar el archivo. La zona de carga es la única superficie tintada de la
   tarjeta y usa el mismo vino que su botón. */
.mmz-doc-carga {
    align-items: center;
    background: #fdf6f7;
    border: 1.5px dashed #b98a99;
    border-radius: 9px;
    cursor: pointer;
    display: flex;
    gap: 11px;
    margin: 0;
    min-height: 72px;
    padding: 11px 12px;
    transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-doc-carga:hover,
.mmz-doc-carga:focus-visible,
.mmz-doc-carga.is-dragging {
    background: #fbedf0;
    border-color: #611232;
    box-shadow: 0 0 0 3px rgb(97 18 50 / 10%);
    outline: 0;
}

.mmz-doc-carga input[type="file"],
.mmz-doc-expediente-card__acciones input[type="file"] {
    height: 1px;
    opacity: 0;
    overflow: hidden;
    position: absolute;
    width: 1px;
}

.mmz-doc-carga__icono {
    align-items: center;
    background: #f6e7eb;
    border-radius: 50%;
    color: #611232;
    display: inline-flex;
    flex: 0 0 34px;
    height: 34px;
    justify-content: center;
    width: 34px;
}

.mmz-doc-carga__icono svg {
    height: 18px;
    width: 18px;
}

.mmz-doc-carga__texto {
    flex: 1;
    min-width: 0;
}

.mmz-doc-carga__texto strong {
    color: #273632;
    display: block;
    font-size: 12.5px;
    line-height: 1.3;
}

.mmz-doc-carga__texto small {
    color: #73807b;
    display: block;
    font-size: 10.5px;
    margin-top: 3px;
}

.mmz-doc-carga__boton,
.mmz-doc-action {
    align-items: center;
    display: inline-flex;
    gap: 5px;
    justify-content: center;
    margin: 0;
}

.mmz-doc-carga__boton svg,
.mmz-doc-action svg {
    height: 15px;
    width: 15px;
}

/* Mientras sube, la fila del archivo ocupa el mismo hueco que antes tuvo la
   zona de carga y que después tendrá la fila verde de "listo": la tarjeta no
   salta y el aspirante ve QUÉ archivo mandó, en vez de seguir leyendo una
   invitación a elegirlo que ya no aplica.
   La fila va en gris y no en vino: el vino queda sólo para "aquí puedes
   actuar", y así la ruta feliz no comparte familia de color con el error ni
   con el borrado. La barra se llena con el verde de "listo", de modo que el
   avance apunta al estado al que va llegando. */
.mmz-doc-subiendo {
    align-items: center;
    background: #f6f7f7;
    border: 1.5px solid #d3d7d6;
    border-radius: 9px;
    display: flex;
    gap: 11px;
    padding: 10px 11px;
}

.mmz-doc-subiendo__icono {
    align-items: center;
    background: #fff;
    border: 1px solid #d3d7d6;
    border-radius: 7px;
    color: #5f6b67;
    display: inline-flex;
    flex: 0 0 34px;
    flex-direction: column;
    gap: 1px;
    height: 38px;
    justify-content: center;
    width: 34px;
}

.mmz-doc-subiendo__icono svg {
    height: 16px;
    width: 16px;
}

.mmz-doc-subiendo__icono small {
    font-size: 8.5px;
    font-weight: 700;
    letter-spacing: 0.02em;
}

.mmz-doc-subiendo__info {
    flex: 1;
    min-width: 0;
}

.mmz-doc-subiendo__titulo {
    align-items: baseline;
    display: flex;
    gap: 8px;
    justify-content: space-between;
}

.mmz-doc-subiendo__titulo strong {
    color: #273632;
    font-size: 12.5px;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-doc-subiendo__porcentaje {
    color: #235b4e;
    flex: 0 0 auto;
    font-size: 11.5px;
    font-weight: 700;
}

.mmz-doc-subiendo__barra {
    background: #e3e7e6;
    border-radius: 999px;
    display: block;
    height: 4px;
    margin: 6px 0 4px;
    overflow: hidden;
}

.mmz-doc-subiendo__fill {
    background: #2b7564;
    display: block;
    height: 100%;
    transition: width 0.18s ease;
    width: 0;
}

.mmz-doc-subiendo__detalle {
    color: #73807b;
    display: block;
    font-size: 10.5px;
}

.mmz-doc-subiendo__cancelar {
    flex: 0 0 auto;
}

.mmz-doc-archivo-listo {
    align-items: center;
    background: #eaf4f0;
    border: 1px solid #cfe5dd;
    border-radius: 9px;
    display: flex;
    gap: 11px;
    padding: 10px 11px;
}

.mmz-doc-archivo-listo__icono {
    align-items: center;
    background: #fff;
    border: 1px solid #cddfd9;
    border-radius: 7px;
    color: #235b4e;
    display: inline-flex;
    flex: 0 0 40px;
    flex-direction: column;
    height: 44px;
    justify-content: center;
    width: 40px;
}

.mmz-doc-archivo-listo__icono svg {
    height: 19px;
    width: 19px;
}

.mmz-doc-archivo-listo__icono small {
    color: #9f2241;
    font-size: 7.5px;
    font-weight: 800;
    letter-spacing: 0.04em;
}

.mmz-doc-archivo-listo__info {
    flex: 1;
    min-width: 0;
}

.mmz-doc-archivo-listo__info strong {
    color: #1e3c35;
    display: block;
    font-size: 12.5px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-doc-archivo-listo__info small {
    color: #70807b;
    display: block;
    font-size: 10.5px;
    margin-top: 3px;
}

.mmz-doc-archivo-listo__verificado {
    align-items: center;
    color: #1d6f5d;
    display: inline-flex;
    font-size: 10px;
    font-weight: 700;
    gap: 4px;
    white-space: nowrap;
}

.mmz-doc-archivo-listo__verificado svg {
    height: 14px;
    width: 14px;
}

.mmz-doc-expediente-card__acciones {
    align-items: center;
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-top: 10px;
}

.mmz-doc-action {
    cursor: pointer;
    font-size: 11px;
    min-height: 32px;
}

.mmz-doc-action--danger {
    color: #9c1c1c;
    margin-left: auto;
    text-decoration: none;
}

.mmz-doc-action--danger:hover,
.mmz-doc-action--danger:focus-visible {
    color: #721717;
    text-decoration: underline;
}

.mmz-doc-error-inline {
    align-items: center;
    background: #fceeee;
    border-radius: 6px;
    color: #8c1f1f;
    display: flex;
    font-size: 11.5px;
    line-height: 1.4;
    margin: 9px 0 0;
    padding: 7px 9px;
}

.mmz-doc-error-inline[hidden] {
    display: none;
}

.mmz-doc-academico__opciones {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 16px;
}

.mmz-doc-academico__opcion {
    align-items: center;
    border-color: #dce2e0;
    border-radius: 8px;
    gap: 10px;
    min-height: 72px;
    padding: 11px 12px;
    position: relative;
}

.mmz-doc-academico__opcion:hover,
.mmz-doc-academico__opcion:has(input:focus-visible) {
    border-color: #7ca398;
    box-shadow: 0 0 0 3px rgb(35 91 78 / 8%);
}

.mmz-doc-academico__opcion.is-selected,
.mmz-doc-academico__opcion:has(input:checked) {
    background: #f4f8f6;
    border-color: #235b4e;
    box-shadow: inset 3px 0 0 #235b4e, 0 1px 4px rgba(35, 91, 78, 0.08);
}

.mmz-doc-academico__opcion:has(input:disabled) {
    cursor: default;
}

.mmz-doc-academico__opcion input {
    height: 1px;
    opacity: 0;
    position: absolute;
    width: 1px;
}

.mmz-doc-academico__opcion-icono {
    align-items: center;
    background: #f1f4f3;
    border-radius: 7px;
    color: #4f6f67;
    display: inline-flex;
    flex: 0 0 34px;
    height: 34px;
    justify-content: center;
    width: 34px;
}

.mmz-doc-academico__opcion.is-selected .mmz-doc-academico__opcion-icono,
.mmz-doc-academico__opcion:has(input:checked) .mmz-doc-academico__opcion-icono {
    background-color: #deebe7;
    color: #235b4e;
}

.mmz-doc-academico__opcion-icono svg {
    height: 19px;
    width: 19px;
}

.mmz-doc-academico__opcion-texto {
    flex: 1;
    min-width: 0;
}

.mmz-doc-academico__opcion-texto strong {
    color: #24342f;
    display: block;
    font-size: 13px;
    line-height: 1.3;
}

.mmz-doc-academico__opcion-texto small {
    color: #68756f;
    display: block;
    font-size: 11px;
    line-height: 1.4;
    margin-top: 2px;
}

.mmz-doc-academico__opcion-check {
    color: #235b4e;
    opacity: 0;
}

.mmz-doc-academico__opcion-check svg {
    height: 19px;
    width: 19px;
}

.mmz-doc-academico__opcion.is-selected .mmz-doc-academico__opcion-check,
.mmz-doc-academico__opcion:has(input:checked) .mmz-doc-academico__opcion-check {
    opacity: 1;
}

.mmz-doc-academico__formato {
    align-items: center;
    background-color: #f8faf9;
    border: 1px solid #dbe4e1;
    border-radius: 8px;
    display: grid;
    gap: 3px 10px;
    grid-template-columns: 36px minmax(0, 1fr) auto;
    margin: 0 0 12px;
    padding: 12px 14px;
}

.mmz-doc-academico__formato[hidden] {
    display: none;
}

.mmz-doc-academico__formato-icono {
    align-items: center;
    background-color: #e8f1ee;
    border-radius: 50%;
    color: #235b4e;
    display: inline-flex;
    grid-row: 1;
    height: 36px;
    justify-content: center;
    width: 36px;
}

.mmz-doc-academico__formato-icono svg {
    height: 19px;
    width: 19px;
}

.mmz-doc-academico__formato-texto {
    min-width: 0;
}

.mmz-doc-academico__formato-texto strong,
.mmz-doc-academico__formato-texto small {
    display: block;
}

.mmz-doc-academico__formato-texto strong {
    color: #264c43;
    font-size: 12.5px;
    line-height: 1.35;
}

.mmz-doc-academico__formato-texto small {
    color: #64716d;
    font-size: 11px;
    line-height: 1.4;
    margin-top: 3px;
}

.mmz-doc-academico__formato-link {
    align-items: center;
    border: 1px solid #7da69b;
    border-radius: 6px;
    color: #155146;
    display: inline-flex;
    font-size: 12px;
    font-weight: 700;
    grid-column: 3;
    grid-row: 1;
    justify-content: center;
    min-height: 42px;
    padding: 8px 12px;
    text-align: center;
    text-decoration: none;
}

.mmz-doc-academico__formato-link:hover,
.mmz-doc-academico__formato-link:focus-visible {
    background-color: #e7f3ef;
    border-color: #235b4e;
    color: #103e35;
    text-decoration: none;
}

.mmz-doc-academico__formato-link:focus-visible {
    box-shadow: 0 0 0 3px rgba(35, 91, 78, 0.16);
    outline: 0;
}

/* Ocupa el mismo hueco donde luego aparece la zona de carga, así que lleva su
   mismo tinte y guiones: el aspirante ve desde antes dónde va a caer la acción
   una vez que elija el documento. */
.mmz-docs-seleccion-vacia {
    align-items: center;
    background: #fdf6f7;
    border: 1.5px dashed #b98a99;
    border-radius: 9px;
    color: #5f6b67;
    display: flex;
    font-size: 12px;
    gap: 9px;
    padding: 12px 14px;
}

.mmz-doc-expediente-card__titulo small:empty {
    display: none;
}

.mmz-docs-seleccion-vacia > svg {
    color: #611232;
    flex: 0 0 19px;
    height: 19px;
    width: 19px;
}

.mmz-docs-seleccion-vacia p {
    margin: 0;
}

.mmz-docs-academico-card .mmz-doc-expediente-card {
    height: auto;
}

.mmz-doc-foto-guia {
    align-items: center;
    background: #fafcfc;
    border-bottom: 1px solid #edf1f0;
    display: flex;
    gap: 16px;
    padding: 13px 15px;
}

.mmz-doc-foto-guia__muestra {
    align-items: center;
    background: #e6efec;
    border: 3px solid #fff;
    border-radius: 50%;
    box-shadow: 0 0 0 1px #b7c9c3;
    color: #54796f;
    display: inline-flex;
    flex: 0 0 58px;
    height: 58px;
    justify-content: center;
    overflow: hidden;
    width: 58px;
}

.mmz-doc-foto-guia__muestra svg {
    height: 39px;
    margin-top: 9px;
    width: 39px;
}

.mmz-doc-foto-guia__lista {
    display: grid;
    flex: 1;
    gap: 6px 16px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    list-style: none;
    margin: 0;
    padding: 0;
}

.mmz-doc-foto-guia__lista li {
    align-items: center;
    color: #52605c;
    display: flex;
    font-size: 11.5px;
    gap: 5px;
}

.mmz-doc-foto-guia__lista svg {
    flex: 0 0 15px;
    height: 15px;
    width: 15px;
}

.mmz-doc-foto-guia__lista .is-ok svg {
    color: #1d6f5d;
}

.mmz-doc-foto-guia__lista .is-no svg {
    color: #9c1c1c;
}

.mmz-doc-foto-cargada {
    align-items: center;
    background: #f6f8f8;
    border: 1px solid #dbe3e0;
    border-radius: 10px;
    display: grid;
    gap: 20px;
    grid-template-columns: 150px minmax(0, 1fr);
    padding: 14px;
}

.mmz-doc-foto-cargada__preview {
    aspect-ratio: 4 / 5;
    background: #fff;
    border: 1px solid #cbd6d2;
    border-radius: 9px;
    cursor: pointer;
    display: block;
    overflow: hidden;
    padding: 0;
    position: relative;
    width: 150px;
}

.mmz-doc-foto-cargada__preview img {
    background: #eef1f0;
    display: block;
    height: 100%;
    object-fit: contain;
    width: 100%;
}

.mmz-doc-foto-cargada__preview > span {
    align-items: center;
    background: rgb(105 28 50 / 90%);
    bottom: 0;
    color: #fff;
    display: flex;
    font-size: 10.5px;
    font-weight: 650;
    gap: 5px;
    justify-content: center;
    left: 0;
    padding: 7px;
    position: absolute;
    right: 0;
}

.mmz-doc-foto-cargada__preview > span svg {
    height: 14px;
    width: 14px;
}

.mmz-doc-foto-cargada__preview:hover,
.mmz-doc-foto-cargada__preview:focus-visible {
    border-color: #691c32;
    box-shadow: 0 0 0 3px rgb(105 28 50 / 12%);
    outline: 0;
}

.mmz-doc-foto-cargada__info {
    min-width: 0;
}

.mmz-doc-foto-cargada__etiqueta {
    align-items: center;
    background: #e4f3ed;
    border-radius: 999px;
    color: #17614f;
    display: inline-flex;
    font-size: 10.5px;
    font-weight: 700;
    gap: 5px;
    margin-bottom: 10px;
    padding: 5px 9px;
}

.mmz-doc-foto-cargada__etiqueta svg {
    height: 14px;
    width: 14px;
}

.mmz-doc-foto-cargada__info > strong {
    color: #263631;
    display: block;
    font-size: 14px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.mmz-doc-foto-cargada__info > small {
    color: #6c7975;
    display: block;
    font-size: 11.5px;
    margin-top: 4px;
}

.mmz-doc-foto-cargada__info > p {
    color: #596762;
    font-size: 11.5px;
    line-height: 1.45;
    margin: 12px 0 0;
    max-width: 470px;
}

.mmz-docs-completo {
    border-radius: 11px;
    box-shadow: 0 4px 14px rgb(35 91 78 / 7%);
}

.mmz-docs-completo__icono svg {
    height: 21px;
    width: 21px;
}

.mmz-docs-actions {
    align-items: center;
    background: rgb(255 255 255 / 94%);
    border: 1px solid #dde5e2;
    border-radius: 11px;
    box-shadow: 0 10px 30px rgb(22 52 44 / 14%);
    display: flex;
    gap: 10px;
    margin-top: 20px;
    padding: 10px 12px;
    position: relative;
    z-index: 20;
}

.mmz-docs-actions__estado {
    color: #687570;
    flex: 1;
    font-size: 11.5px;
    text-align: right;
}

.mmz-docs-actions [data-continuar-btn] {
    align-items: center;
    display: inline-flex;
    gap: 7px;
}

.mmz-docs-actions [data-continuar-btn] svg {
    height: 16px;
    width: 16px;
}

/* Este paso avanza con un enlace, y un <a> no admite `disabled`: nunca entra al
   estilo deshabilitado de gob.mx que el resto de los pasos recibe gratis al
   bloquear su <button>. Se replican aquí esos mismos valores —relleno vino,
   texto blanco y opacidad 0.65— para que "Procesando…" se vea igual en todo el
   registro. El gap se anula porque, sin la flecha, sólo empujaría la rueda. */
.mmz-docs-actions [data-continuar-btn].mmz-btn--cargando {
    background-color: #611232;
    border-color: #611232;
    color: #fff;
    gap: 0;
    opacity: 0.65;
}

.mmz-docs-actions [aria-disabled="true"] {
    cursor: not-allowed;
    opacity: 0.58;
}

@media (max-width: 767px) {
    .mmz-docs-progreso__pasos {
        display: none;
    }

    .mmz-docs-grid,
    .mmz-doc-academico__opciones {
        grid-template-columns: 1fr;
    }

    .mmz-docs-grid__full {
        grid-column: auto;
    }

    .mmz-doc-academico__formato {
        align-items: start;
        grid-template-columns: 36px minmax(0, 1fr);
    }

    .mmz-doc-academico__formato-link {
        grid-column: 2;
        grid-row: 2;
        margin-top: 8px;
        width: 100%;
    }

    .mmz-doc-carga {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .mmz-doc-subiendo {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .mmz-doc-subiendo__cancelar {
        margin-left: 45px;
    }

    .mmz-doc-carga__texto {
        padding-top: 2px;
    }

    .mmz-doc-carga__boton {
        margin-left: 45px;
    }

    .mmz-doc-archivo-listo {
        flex-wrap: wrap;
    }

    .mmz-doc-archivo-listo__verificado {
        margin-left: 51px;
    }

    .mmz-doc-expediente-card__acciones {
        align-items: stretch;
        flex-direction: column;
    }

    .mmz-doc-action--danger {
        margin-left: 0;
    }

    .mmz-doc-foto-guia__lista {
        grid-template-columns: 1fr;
    }

    .mmz-doc-foto-cargada {
        gap: 14px;
        grid-template-columns: 120px minmax(0, 1fr);
    }

    .mmz-doc-foto-cargada__preview {
        width: 120px;
    }

    .mmz-docs-actions {
        flex-wrap: wrap;
    }

    .mmz-docs-actions__estado {
        order: -1;
        text-align: center;
        width: 100%;
    }
}

@media (max-width: 479px) {
    .mmz-docs-reglas {
        align-items: flex-start;
        flex-direction: column;
    }

    .mmz-docs-grupo {
        padding: 14px;
    }

    .mmz-doc-expediente-card__header {
        display: grid;
        grid-template-columns: 38px minmax(0, 1fr);
    }

    .mmz-doc-estado {
        grid-column: 2;
        justify-self: start;
        margin: 3px 0 0;
    }

    .mmz-doc-carga {
        display: grid;
        grid-template-columns: 34px minmax(0, 1fr);
    }

    .mmz-doc-carga__boton {
        grid-column: 1 / -1;
        margin-left: 0;
        width: 100%;
    }

    .mmz-doc-foto-guia {
        align-items: flex-start;
        flex-direction: column;
    }

    .mmz-doc-foto-guia__lista {
        width: 100%;
    }

    .mmz-doc-foto-cargada {
        grid-template-columns: 1fr;
    }

    .mmz-doc-foto-cargada__preview {
        justify-self: center;
        width: 150px;
    }

    .mmz-doc-foto-cargada__info {
        text-align: center;
    }

    .mmz-doc-foto-cargada__info > p {
        margin-left: auto;
        margin-right: auto;
    }

    .mmz-docs-actions .btn {
        flex: 1;
        white-space: nowrap;
    }
}

/* ===== Patrón visual compartido para los pasos del registro ===== */

.mmz-step-header {
    margin-bottom: 20px;
}

.mmz-step-header h2 {
    color: #303030;
    font-size: clamp(32px, 3.2vw, 40px);
    line-height: 1.15;
    margin-bottom: 8px;
}

.mmz-step-header .mmz-step-intro {
    color: #59635f;
    font-size: 17px;
    line-height: 1.55;
    margin: 0;
    max-width: 1080px;
}

.panel.mmz-step-card {
    background: #fff;
    border: 1px solid #e0e6e4;
    border-radius: 13px;
    box-shadow: 0 5px 18px rgb(28 56 49 / 5%);
    margin-bottom: 20px;
    overflow: hidden;
}

.panel.mmz-step-card > .panel-heading {
    background: #fbfcfc;
    border-bottom: 1px solid #edf1f0;
    color: #25312e;
    font-size: 16px;
    line-height: 1.35;
    padding: 15px 18px;
}

.panel.mmz-step-card > .panel-body {
    color: #303b37;
    font-size: 15px;
    line-height: 1.5;
    padding: 20px;
}

.mmz-step-card .mmz-datos-panel__heading,
.mmz-step-card .mmz-planteles-panel__heading,
.mmz-step-card .mmz-responsable-card__heading,
.mmz-step-card .mmz-resumen-card__heading {
    font-size: 16px;
    font-weight: 700;
}

.mmz-step-card .mmz-datos-panel__step,
.mmz-step-card .mmz-planteles-panel__step {
    flex-basis: 28px;
    font-size: 14px;
    height: 28px;
    width: 28px;
}

.mmz-step-card .form-group > label,
.mmz-step-card .mmz-fieldset__legend,
.mmz-step-card .mmz-input-group > label {
    font-size: 15px;
    line-height: 1.4;
}

.mmz-step-card .form-control {
    font-size: 16px;
}

.mmz-step-card .mmz-input-help,
.mmz-step-card .help-block,
.mmz-step-card .text-muted {
    font-size: 13px;
    line-height: 1.45;
}

.mmz-step-card .mmz-datos-help {
    font-size: 14.5px;
    line-height: 1.5;
    padding: 10px 13px;
}

.mmz-step-actions {
    align-items: center;
    background: #fff;
    border: 1px solid #dde5e2;
    border-radius: 11px;
    box-shadow: 0 8px 24px rgb(22 52 44 / 10%);
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    justify-content: flex-end;
    margin-top: 22px;
    padding: 12px 14px;
}

.mmz-step-actions > a.btn:first-of-type {
    margin-right: auto;
}

.mmz-step-actions.mmz-final-actions > a.btn:first-of-type {
    margin-left: auto;
    margin-right: 0;
}

.mmz-step-actions .btn {
    align-items: center;
    display: inline-flex;
    font-size: 15px;
    justify-content: center;
    min-height: 42px;
    min-width: 155px;
    padding: 9px 18px;
}

.mmz-step-actions__estado {
    color: #687570;
    flex: 1;
    font-size: 13px;
    line-height: 1.4;
    text-align: right;
}

.mmz-step-actions .mmz-cp-feedback {
    flex-basis: 100%;
    margin: 0;
}

.mmz-step-actions .mmz-cp-feedback:empty {
    display: none;
}

/* Documentación usa el mismo sistema tipográfico que los demás pasos. */
.mmz-docs-grupo__header h3 {
    font-size: 20px;
}

.mmz-docs-grupo__header p {
    font-size: 14.5px;
}

.mmz-doc-expediente-card__titulo strong {
    font-size: 15.5px;
}

.mmz-doc-expediente-card__titulo small {
    font-size: 13px;
}

.mmz-doc-estado {
    font-size: 12px;
}

.mmz-doc-carga__texto strong,
.mmz-doc-archivo-listo__info strong {
    font-size: 14px;
}

.mmz-doc-carga__texto small,
.mmz-doc-archivo-listo__info small {
    font-size: 12px;
}

.mmz-doc-action {
    font-size: 13px;
}

.mmz-doc-academico__opcion-texto strong {
    font-size: 14px;
}

.mmz-doc-academico__opcion-texto small {
    font-size: 12.5px;
}

.mmz-doc-foto-guia__lista li,
.mmz-doc-foto-cargada__info > small,
.mmz-doc-foto-cargada__info > p {
    font-size: 13px;
}

.mmz-doc-foto-cargada__info > strong {
    font-size: 15px;
}

@media (max-width: 767px) {
    .mmz-step-header h2 {
        font-size: clamp(30px, 9vw, 36px);
    }

    .mmz-step-header .mmz-step-intro {
        font-size: 16px;
    }

    .panel.mmz-step-card > .panel-heading,
    .panel.mmz-step-card > .panel-body {
        padding-left: 16px;
        padding-right: 16px;
    }

    .mmz-step-actions {
        align-items: stretch;
        flex-direction: column;
        padding: 12px;
    }

    .mmz-step-actions > a.btn:first-of-type {
        margin-right: 0;
    }

    .mmz-step-actions.mmz-final-actions > a.btn:first-of-type {
        margin-left: 0;
    }

    .mmz-step-actions.mmz-recuperacion-actions > a.btn:first-of-type {
        margin-left: 0;
    }

    .mmz-step-actions .btn {
        width: 100%;
    }

    .mmz-step-actions .mmz-step-actions__estado {
        order: -1;
        text-align: center;
        width: 100%;
    }
}

/* Estas reglas van al final para que la maqueta carta prevalezca sobre los
   breakpoints móviles que también pueden activarse en el motor de impresión. */
@media print {
    .mmz-final-confirmacion {
        align-items: center;
        flex-direction: row;
        gap: 3.5mm;
        padding: 3.5mm 4.5mm;
    }

    .mmz-final-section-heading {
        align-items: center;
        flex-direction: row;
        gap: 2.7mm;
        padding: 2.5mm 3.8mm;
    }

    .mmz-final-identificadores__grid {
        gap: 3mm;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 2.8mm 3.8mm;
    }

    .mmz-final-identificador__valor,
    .mmz-final-identificador__valor--pendiente {
        font-size: 15pt;
    }

    .mmz-final-pasos {
        break-inside: auto;
    }

    /* La sede alterna es el dato que el aspirante se lleva impreso: no debe
       partirse entre paginas. */
    .mmz-final-sede-alterna {
        break-inside: avoid;
    }

    .mmz-final-pasos__lista {
        gap: 2mm 3.8mm;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        padding: 2.3mm 3.8mm;
    }
}
/* Eleccion de turno. Comparte el lenguaje visual de .mmz-plantel-card (borde
   neutro, seleccion verde, pildora de cupo) porque son las dos decisiones de
   la misma pantalla y no deben verse como componentes distintos. */
/* Sin margen propio: el panel ya separa sus bloques con gap, y sumarle margen
   abria un hueco muerto entre la eleccion y la direccion. */
.mmz-turnos-eleccion {
    min-width: 0;
    margin: 0;
    padding: 0;
    border: 0;
}

/* Aviso de error de un grupo de opciones (plantel o turno). Solo existe en el
   DOM cuando hay algo que avisar, asi que no hay que neutralizarle alto ni
   margenes, y se coloca arriba de la lista, que es donde esta la mirada. */
.mmz-aviso-error {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    margin: 0 0 12px;
    padding: 10px 12px;
    border: 1px solid #f0c9c9;
    border-left: 3px solid #9c1c1c;
    border-radius: 5px;
    background-color: #fdecec;
    color: #7f1d1d;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1.4;
}

.mmz-aviso-error__icono {
    display: inline-flex;
    width: 18px;
    height: 18px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: #9c1c1c;
    color: #fff;
    font-size: 12px;
    font-weight: 700;
}

/* Se marca el grupo, no cada opcion. Con outline en vez de borde o sombra
   interior, el halo no altera la caja y no mueve nada al aparecer. */
.mmz-planteles-fieldset.is-invalid .mmz-planteles-list,
.mmz-turnos-eleccion.is-invalid .mmz-turnos-eleccion__lista {
    border-radius: 7px;
    outline: 2px solid rgb(156 28 28 / 22%);
    outline-offset: 6px;
}

.mmz-turnos-eleccion > legend {
    width: auto;
    padding: 0;
    margin: 0 0 2px;
    border: 0;
    color: #1f2937;
    font-size: 16px;
    font-weight: 700;
    line-height: 1.25;
}

.mmz-turnos-eleccion__ayuda {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 10px;
    margin: 0 0 12px;
    color: #4a4a4a;
    font-size: 13px;
}

/* Con display propio, [hidden] del navegador no basta para ocultarla. */
.mmz-turnos-eleccion__ayuda[hidden] {
    display: none;
}

.mmz-turnos-eleccion__conteo {
    flex: 0 0 auto;
    color: #6b7280;
    font-size: 12px;
    white-space: nowrap;
}

.mmz-turnos-eleccion__lista {
    display: grid;
    gap: 10px;
}

.mmz-turnos-eleccion__nota {
    margin: 8px 0 0;
    color: #6b7280;
    font-size: 12.5px;
}

.mmz-turno-opcion {
    display: block;
    margin: 0;
    padding: 13px 14px 12px;
    border: 1px solid #d6dbdf;
    border-radius: 6px;
    background: #fff;
    cursor: pointer;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-turno-opcion:hover:not(.is-disabled) {
    border-color: #235b4e;
    box-shadow: 0 1px 6px rgba(35, 91, 78, 0.1);
}

.mmz-turno-opcion:focus-within:not(.is-disabled),
.mmz-turno-opcion.is-selected {
    border-color: #235b4e;
    box-shadow: 0 0 0 3px rgba(35, 91, 78, 0.18);
}

.mmz-turno-opcion.is-disabled {
    background: #f7f7f7;
    color: #6b7280;
    cursor: not-allowed;
    opacity: 0.7;
}

.mmz-turno-opcion__encabezado {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 10px;
}

.mmz-turno-opcion__nombre {
    display: flex;
    min-width: 0;
    align-items: baseline;
    gap: 8px;
}

.mmz-turno-opcion__nombre strong {
    color: #1f2937;
    font-size: 15px;
    line-height: 1.3;
}

.mmz-turno-opcion.is-disabled .mmz-turno-opcion__nombre strong {
    color: #6b7280;
}

/* El horario es el dato que decide entre un turno y otro: pesa mas que el
   conteo de lugares. */
.mmz-turno-opcion__horario {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 7px;
    color: #235b4e;
    font-size: 15px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.mmz-turno-opcion.is-disabled .mmz-turno-opcion__horario {
    color: #6b7280;
}

/* Dimensiones explicitas en CSS, no solo en los atributos del SVG: dentro de
   un contenedor flex Safari usa el tamano intrinseco por defecto del elemento
   reemplazado hasta que resuelve el viewBox, y la fila del horario aparece
   alta y despues se encoge. */
.mmz-turno-opcion__reloj {
    width: 15px;
    height: 15px;
    flex: 0 0 auto;
}

.mmz-turno-opcion__horario-pendiente {
    color: #6b7280;
    font-size: 14px;
    font-weight: 500;
}

.mmz-turno-opcion__informacion {
    display: block;
    margin-top: 7px;
    color: #4a4a4a;
    font-size: 13px;
    font-weight: 400;
}

.mmz-turno-opcion__aviso {
    display: block;
    padding: 5px 8px;
    margin-top: 8px;
    border-radius: 4px;
    background-color: #fff4e0;
    color: #a05d00;
    font-size: 12.5px;
    font-weight: 600;
}

.mmz-turno-opcion__cupo {
    flex: 0 0 auto;
    padding: 3px 10px;
    border-radius: 999px;
    background-color: #e6f3ee;
    color: #1d6f5d;
    font-size: 12px;
    font-weight: 600;
    white-space: nowrap;
}

.mmz-turno-opcion__cupo--bajo {
    background-color: #fff4e0;
    color: #a05d00;
}

.mmz-turno-opcion__cupo--agotado {
    background-color: #f5e6e6;
    color: #9c1c1c;
}

/* Plantel con un solo turno: se informa y queda elegido, sin pedir que
   confirmen la unica opcion posible. */
.mmz-turno-unico {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 12px 14px;
    border: 1px solid #e2e8ec;
    border-radius: 6px;
    background-color: #f7f9fa;
}

.mmz-turno-unico__check {
    display: inline-flex;
    width: 20px;
    height: 20px;
    flex: 0 0 auto;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    background-color: #235b4e;
    color: #fff;
    font-size: 12px;
}

.mmz-turno-unico__texto {
    display: flex;
    min-width: 0;
    flex-direction: column;
    gap: 3px;
    color: #4a4a4a;
    font-size: 13px;
}

.mmz-turno-unico__texto strong {
    color: #1f2937;
    font-size: 15px;
}

/* Igual que el horario de las tarjetas, icono incluido. */
.mmz-turno-unico__horario {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: 4px;
    color: #235b4e;
    font-size: 15px;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
}

.mmz-turnos-eleccion__vacio {
    margin: 0;
    color: #7b1e1e;
}

/* Barra de acciones: repite las dos elecciones junto al boton para que el
   aspirante confirme de un vistazo antes de avanzar. */
.mmz-seleccion-resumen {
    display: flex;
    min-width: 0;
    flex-direction: column;
    margin: 0;
    margin-right: auto;
    font-size: 13.5px;
    line-height: 1.35;
}

.mmz-planteles-actions > a.btn:first-of-type {
    margin-right: 0;
}

.mmz-seleccion-resumen__etiqueta {
    color: #6b7280;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.mmz-seleccion-resumen__detalle {
    color: #1f2937;
    font-weight: 600;
}

.mmz-seleccion-resumen--pendiente .mmz-seleccion-resumen__detalle {
    color: #a05d00;
}

/* Al fallar el envio, la barra nombra lo que falta junto al boton que se
   acaba de tocar. */
.mmz-seleccion-resumen--error {
    padding-left: 10px;
    border-left: 3px solid #9c1c1c;
}

.mmz-seleccion-resumen--error .mmz-seleccion-resumen__detalle {
    color: #9c1c1c;
}

@media (max-width: 767px) {
    /* El turno se elige arriba del mapa; la barra sigue al alcance sin
       obligar a recorrer todo el panel para continuar. */
    .mmz-planteles-form .mmz-step-actions {
        position: sticky;
        bottom: 0;
        z-index: 5;
    }

    .mmz-seleccion-resumen {
        margin-right: 0;
    }
}
