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

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

main.page {
    flex: 1 0 auto;
}

.mmz-container {
    padding-bottom: 48px;
}

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

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

@media (min-width: 768px) {
    .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-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.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__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-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 {
    background-color: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 6px;
    color: #1f2937;
    font-size: 13px;
    margin: 0;
    padding: 10px 12px;
}

.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-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 {
    display: block;
    font-size: 12px;
    margin-top: 6px;
    min-height: 16px;
}

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

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

.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;
}

.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-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-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;
}

/* ===== 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 {
    display: none;
}

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

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

.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;
}

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

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

.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 {
    border-color: #9c1c1c;
}

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

/* ===== 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;
}

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

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

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

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

.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-hero {
    align-items: center;
    background: linear-gradient(135deg, #235b4e 0%, #1d6f5d 100%);
    border-radius: 10px;
    color: #fff;
    display: flex;
    gap: 18px;
    margin-bottom: 18px;
    padding: 18px 22px;
}

.mmz-resumen-hero__avatar {
    align-items: center;
    background-color: rgba(255, 255, 255, 0.18);
    border-radius: 50%;
    color: #fff;
    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-hero__info {
    flex: 1;
    min-width: 0;
}

.mmz-resumen-hero__info h3 {
    color: #fff;
    font-size: 22px;
    margin: 0 0 6px;
}

.mmz-resumen-hero__info p {
    color: rgba(255, 255, 255, 0.92);
    display: flex;
    flex-wrap: wrap;
    font-size: 13px;
    gap: 8px;
    margin: 0;
}

.mmz-resumen-hero__chip {
    background-color: rgba(255, 255, 255, 0.16);
    border-radius: 999px;
    padding: 4px 12px;
    white-space: nowrap;
}

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

.mmz-resumen-card__heading {
    align-items: center;
    display: flex;
    font-weight: 600;
    gap: 10px;
    justify-content: space-between;
}

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

.mmz-resumen-card__editar {
    color: #235b4e;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
}

.mmz-resumen-card__editar:hover {
    text-decoration: underline;
}

.mmz-resumen-card__body {
    padding: 14px 18px;
}

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

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

.mmz-resumen-dl--cols {
    grid-template-columns: 1fr 1fr;
}

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

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

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

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

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

.mmz-resumen-direccion {
    color: #1f2937;
    font-size: 16px;
    line-height: 1.5;
    margin: 0;
}

.mmz-resumen-responsables {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.mmz-resumen-responsable {
    background-color: #fbfcfd;
    border: 1px solid #e5e7eb;
    border-left: 4px solid #235b4e;
    border-radius: 6px;
    padding: 12px 14px;
}

.mmz-resumen-responsable__cabecera {
    align-items: center;
    display: flex;
    gap: 10px;
    justify-content: space-between;
    margin-bottom: 4px;
}

.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-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: 8px;
    display: flex;
    gap: 14px;
    margin: 16px 0;
    padding: 14px 18px;
}

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

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

.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: #1d6f5d;
}

.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-hero {
    align-items: center;
    background: linear-gradient(135deg, #1d6f5d 0%, #235b4e 60%, #155146 100%);
    border-radius: 12px;
    color: #fff;
    display: flex;
    gap: 22px;
    margin: 8px 0 22px;
    padding: 28px 30px;
}

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

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

.mmz-final-hero__texto h2 {
    color: #fff;
    font-size: 26px;
    margin: 0 0 8px;
}

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

.mmz-final-folio {
    background-color: #fff;
    border: 1px solid #e1e6ea;
    border-left: 6px solid #235b4e;
    border-radius: 8px;
    margin-bottom: 22px;
    padding: 18px 22px;
    text-align: center;
}

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

.mmz-final-folio__valor {
    color: #155146;
    font-family: 'Menlo', 'Consolas', monospace;
    font-size: 28px;
    font-weight: 700;
    letter-spacing: 0.08em;
    margin: 6px 0 8px;
}

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

.mmz-final-detalle {
    margin-bottom: 22px;
}

.mmz-final-pasos {
    background-color: #fbfcfd;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    margin-bottom: 22px;
    padding: 20px 24px;
}

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

.mmz-final-pasos__lista {
    counter-reset: paso;
    display: flex;
    flex-direction: column;
    gap: 12px;
    list-style: none;
    margin: 0;
    padding: 0;
}

.mmz-final-pasos__lista li {
    align-items: flex-start;
    display: flex;
    gap: 14px;
}

.mmz-final-pasos__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-final-pasos__lista li > div {
    flex: 1;
    min-width: 0;
}

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

.mmz-final-pasos__lista li small {
    color: #4a4a4a;
    display: block;
    font-size: 13px;
    line-height: 1.4;
    margin-top: 2px;
}

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

/* ===== 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 {
    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-counter {
    color: #6b7280;
    display: block;
    font-size: 12px;
    margin-top: 6px;
    text-align: right;
}

.mmz-curp-input.is-completo + .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: flex-start;
    cursor: pointer;
    display: flex;
    font-weight: normal;
    gap: 10px;
    line-height: 1.35;
    margin: 0;
}

.mmz-curp-terminos__check {
    flex: 0 0 auto;
    margin-top: 3px;
}

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

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

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

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

.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;
}

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

/* ===== Vista REGISTRO ENCONTRADO ===== */

.mmz-existente-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-existente-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-existente-hero__texto h2 {
    color: #fff;
    font-size: 22px;
    margin: 0 0 6px;
}

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

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

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

.mmz-existente-progreso {
    background-color: #f7f9fa;
    border: 1px solid #e1e6ea;
    border-radius: 8px;
    margin-top: 16px;
    padding: 12px 14px;
}

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

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

.mmz-existente-progreso__paso {
    color: #6b7280;
}

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

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

.mmz-existente-opciones {
    display: grid;
    gap: 14px;
    grid-template-columns: 1fr 1fr;
}

.mmz-existente-opcion {
    align-items: center;
    background-color: #fff;
    border: 1px solid #d6dbdf;
    border-radius: 8px;
    display: flex;
    gap: 16px;
    margin: 0;
    padding: 16px 18px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-existente-opcion:hover {
    box-shadow: 0 1px 6px rgba(35, 91, 78, 0.08);
}

.mmz-existente-opcion--primaria {
    border-color: #b9d8cc;
    background-color: #fbfcfd;
}

.mmz-existente-opcion--primaria:hover {
    border-color: #1d6f5d;
}

.mmz-existente-opcion--secundaria:hover {
    border-color: #a05d00;
}

.mmz-existente-opcion__contenido {
    flex: 1;
    min-width: 0;
}

.mmz-existente-opcion__contenido strong {
    color: #1f2937;
    display: block;
    font-size: 15px;
    line-height: 1.3;
}

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

.mmz-existente-opcion__contenido .form-control {
    margin-top: 12px;
}

.mmz-existente-opcion__btn {
    flex: 0 0 auto;
    white-space: nowrap;
}

.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;
}

@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__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;
}

body.mmz-modal-bloqueo {
    overflow: hidden;
}

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

    .mmz-modal__footer {
        flex-direction: column-reverse;
    }

    .mmz-modal__footer .btn {
        width: 100%;
    }
}

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

.mmz-responsable-card__heading > span:nth-child(2) {
    flex: 1;
}

.mmz-responsable-card__close {
    background: transparent;
    border: 1px solid #d6dbdf;
    border-radius: 4px;
    color: #9c1c1c;
    cursor: pointer;
    font-size: 18px;
    height: 28px;
    line-height: 1;
    padding: 0;
    transition: background-color 0.15s ease, border-color 0.15s ease;
    width: 28px;
}

.mmz-responsable-card__close:hover {
    background-color: #fbeaea;
    border-color: #9c1c1c;
}

.mmz-responsable-section {
    border-top: 1px solid #eceff1;
    margin-top: 14px;
    padding-top: 14px;
}

.mmz-responsable-section:first-child {
    border-top: none;
    margin-top: 0;
    padding-top: 0;
}

.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-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;
    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;
}

.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;
    padding: 10px 15px;
}

.mmz-admin-brand {
    align-items: center;
    color: #fff;
    display: flex;
    gap: 12px;
    text-decoration: none;
}

.mmz-admin-brand:hover,
.mmz-admin-brand:focus {
    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 {
    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 {
    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;
}

/* ----- 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;
}

/* ----- 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__valor {
    color: #0f3f37;
    font-size: 30px;
    font-weight: 700;
    line-height: 1.1;
}

.mmz-admin-kpi__detalle {
    color: #6b7280;
    font-size: 12px;
}

.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--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;
}

/* ----- 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;
}

.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;
}

.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 + .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: 76px minmax(220px, 1fr) 124px 86px;
    padding: 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: 480px) {
    .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 {
        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__row {
    display: grid;
    gap: 12px;
    grid-template-columns: 2fr 1fr auto;
}

.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;
}

/* ----- 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--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;
}

/* ----- Pasos del aspirante ----- */

.mmz-admin-pasos {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.mmz-admin-paso__heading {
    align-items: center;
    display: flex;
    gap: 10px;
    margin-bottom: 8px;
}

.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__heading h4 {
    color: #0f3f37;
    font-size: 15px;
    font-weight: 600;
    margin: 0;
}

.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;
}

/* ----- 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 { gap: 12px; min-height: 56px; padding: 8px 12px; }
    .mmz-admin-mainnav { margin-left: 0; order: 3; width: 100%; overflow-x: auto; }
    .mmz-admin-mainnav__link { flex-shrink: 0; }
    .mmz-admin-user__info { display: none; }
    .mmz-admin-responsable__grid { grid-template-columns: repeat(2, minmax(0, 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-admin-filter-card__row { grid-template-columns: 1fr; }
    .mmz-admin-filter-card__field--action .btn { min-width: 0; width: 100%; }

    .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;
        flex-direction: column;
        gap: 8px;
    }
    .mmz-dt-search > label {
        align-items: stretch;
        flex-direction: column;
        gap: 4px;
        width: 100%;
    }
    .mmz-dt-search input,
    .mmz-dt-search input[type="search"] {
        margin-left: 0;
        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;
    }

    /* 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-cupo-input {
    max-width: 120px;
    min-width: 88px;
    width: 100%;
}

.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 {
    table-layout: fixed;
    min-width: 980px;
}

.mmz-planteles-table .mmz-col-activo {
    width: 74px;
}

.mmz-planteles-table .mmz-col-plantel {
    width: 34%;
}

.mmz-planteles-table .mmz-col-cct {
    width: 120px;
}

.mmz-planteles-table .mmz-col-ubicacion {
    width: 20%;
}

.mmz-planteles-table .mmz-col-cupo {
    width: 150px;
}

.mmz-planteles-table .mmz-col-acciones {
    width: 96px;
}

.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;
}

.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__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 {
    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;
}

/* Variante DataTables — empareja el input de búsqueda con el filtro */

.mmz-dt-search {
    align-items: center;
    display: flex !important;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 12px;
    padding: 0 4px;
}

.mmz-dt-search > label {
    align-items: center;
    color: #4a5b56;
    display: inline-flex;
    font-size: 11.5px;
    font-weight: 600;
    gap: 8px;
    letter-spacing: 0.04em;
    margin: 0;
    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: 36px;
    margin-left: 8px;
    min-width: 260px;
    padding: 0 12px;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.mmz-dt-search input:focus,
.mmz-dt-search input[type="search"]:focus {
    border-color: #1d6f5d;
    box-shadow: 0 0 0 2px rgba(29, 111, 93, 0.18);
    outline: none;
}

/* 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;
    display: grid;
    gap: 10px 12px;
    grid-template-columns: minmax(0, 1fr) auto;
    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 {
    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%;
}

.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;
    gap: 5px;
    max-width: 120px;
    min-width: 88px;
}

.mmz-cupo-meta {
    display: grid;
    font-size: 11.5px;
    gap: 1px;
    line-height: 1.25;
}

.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;
}

.mmz-dt-toggle input {
    cursor: pointer;
    height: 20px;
    margin: 0;
    width: 20px;
}

.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;
}

@media (min-width: 992px) {
    .mmz-plantel-aside {
        position: sticky;
        top: 160px;
        max-height: calc(100vh - 36px);
        overflow-y: auto;
    }
}

.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-import-panel {
    margin-bottom: 28px;
    margin-top: 0;
}

.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 + .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-login {
    align-items: center;
    display: flex;
    flex-direction: column;
    margin: 28px auto 40px;
    max-width: 460px;
    padding: 0 12px;
}

.mmz-admin-login__card {
    background-color: #fff;
    border: 1px solid #d8e0dc;
    border-radius: 12px;
    box-shadow: 0 12px 32px rgba(21, 81, 70, 0.10);
    overflow: hidden;
    width: 100%;
}

.mmz-admin-login__header {
    background: linear-gradient(135deg, #155146 0%, #1d6f5d 100%);
    color: #fff;
    padding: 28px 28px 26px;
    text-align: center;
}

.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: 14px;
    display: inline-flex;
    height: 64px;
    justify-content: center;
    margin-bottom: 12px;
    width: 64px;
}

.mmz-admin-login__titulo {
    color: #fff;
    font-size: 22px;
    font-weight: 700;
    line-height: 1.2;
    margin: 0 0 6px;
}

.mmz-admin-login__subtitulo {
    color: rgba(255, 255, 255, 0.88);
    font-size: 13.5px;
    line-height: 1.4;
    margin: 0;
}

.mmz-admin-login__body {
    padding: 26px 28px 28px;
}

.mmz-admin-login__instruccion {
    color: #3c4a46;
    font-size: 14px;
    line-height: 1.45;
    margin: 0 0 18px;
    text-align: center;
}

.mmz-admin-login__boton {
    border-radius: 8px;
    font-size: 15px;
    min-height: 52px;
}

.mmz-admin-login__nota {
    border-top: 1px solid #ebeeed;
    color: #6b7280;
    font-size: 12.5px;
    line-height: 1.45;
    margin: 22px 0 0;
    padding-top: 14px;
    text-align: center;
}

.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-admin-login__pie {
    color: #6b7280;
    font-size: 12px;
    margin: 16px 0 0;
    text-align: center;
}

.mmz-google-button {
    align-items: center;
    background: #fff;
    border: 1px solid #dadce0;
    border-radius: 6px;
    color: #4a4a4a;
    display: inline-flex;
    font-size: 20px;
    font-weight: 700;
    gap: 12px;
    justify-content: center;
    min-height: 56px;
    padding: 0 24px;
    text-decoration: none;
    width: 100%;
}

.mmz-google-button:hover,
.mmz-google-button:focus {
    background: #f8f9fa;
    border-color: #c9cdd2;
    color: #333;
    text-decoration: none;
}

.mmz-google-logo {
    flex: 0 0 auto;
    height: 22px;
    width: 22px;
}

@media (max-width: 767px) {
    .mmz-top-action {
        padding-top: 0;
        text-align: left;
    }

    .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-docs-progreso__cabecera {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }

    .mmz-doc-card__header {
        flex-wrap: wrap;
    }

    .mmz-doc-card__estado {
        margin-left: 44px;
    }

    .mmz-resumen-hero {
        align-items: flex-start;
        flex-direction: column;
    }

    .mmz-resumen-dl--cols {
        grid-template-columns: 1fr;
    }

    .mmz-resumen-responsable__cabecera {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .mmz-final-hero {
        align-items: flex-start;
        flex-direction: column;
        gap: 16px;
        padding: 22px 20px;
    }

    .mmz-final-hero__icono {
        flex-basis: 56px;
        height: 56px;
        width: 56px;
    }

    .mmz-final-folio__valor {
        font-size: 22px;
    }

    .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-existente-hero {
        align-items: flex-start;
        flex-direction: column;
        gap: 14px;
        padding: 20px;
    }

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

    .mmz-existente-opcion {
        flex-direction: column;
        align-items: stretch;
        gap: 12px;
    }

    .mmz-existente-progreso__cabecera {
        align-items: flex-start;
        flex-direction: column;
        gap: 4px;
    }

    .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;
    }
}

/* ----- 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;
}

.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: 12.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: 12px;
    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: 13px;
}

/* ----- Indicador de acceso con punto ----- */

.mmz-admin-acceso {
    align-items: center;
    display: inline-flex;
    font-size: 12.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: #8a8f8d;
}

.mmz-admin-acceso--off .mmz-admin-acceso__dot {
    background-color: #b4bbb9;
    box-shadow: 0 0 0 3px rgba(180, 187, 185, 0.18);
}

/* ----- 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: 12.5px;
    margin: 6px 0 0;
}

.mmz-field-label {
    color: #2d3b38;
    display: block;
    font-size: 14px;
    font-weight: 700;
    margin-bottom: 8px;
}

.mmz-field-reveal {
    border-left: 2px solid #cfe0d9;
    margin-top: 12px;
    padding-left: 14px;
}

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