/* Trainify sobre la estructura común MWZSystem.Ui (tema «trainify»). Transición: el contenido de las páginas sigue usando
   Tabler 1.7.1 (MIT, ver THIRD_PARTY_NOTICES.md), con la letra, el tamaño base de 18 px y el color del tema común. */
:root,
[data-bs-theme=light] {
  --tblr-font-sans-serif: var(--mwz-font);
  --tblr-body-font-family: var(--mwz-font);
  --tblr-primary: var(--mwz-primary);
  --tblr-primary-rgb: var(--mwz-primary-rgb);
  --tblr-link-color: var(--mwz-primary);
  --tblr-link-color-rgb: var(--mwz-primary-rgb);
  --tblr-body-font-size: 1rem;
  --tblr-body-line-height: 1.55;
  --tblr-font-size-h1: 1.875rem;
  --tblr-font-size-h2: 1.5rem;
  --tblr-font-size-h3: 1.25rem;
  --tblr-font-size-h4: 1.0625rem;
  --tblr-font-size-h5: 1rem;
  --tblr-font-size-h6: var(--mwz-small);
  --tblr-line-height-h1: 2.35rem;
  --tblr-line-height-h2: 2rem;
  --tblr-line-height-h3: 1.75rem;
  --tblr-line-height-h4: 1.5rem;
  --trainify-accent: #f59f00;
}

body { font-size: var(--tblr-body-font-size); }

/* Marca */
.trainify-logo { display: inline-flex; align-items: center; gap: .5rem; font-size: 1.5rem; font-weight: 800; letter-spacing: -.04em; color: inherit; text-decoration: none; line-height: 1; }
.trainify-logo:hover { text-decoration: none; color: inherit; }
.trainify-logo .trainify-mark { width: 2rem; height: 2rem; flex: none; }
.trainify-logo .dot { color: var(--trainify-accent); }
.trainify-logo-lg { font-size: 2.25rem; }
.trainify-logo-lg .trainify-mark { width: 3rem; height: 3rem; }

/* Versión de la aplicación en el acceso. */
.app-version { font-weight: 600; letter-spacing: .02em; }
.nav-link .ti { font-size: 1.375rem; }
/* Iconos de Tabler en el menú de la estructura común. */
.mwz-menu .ti { font-size: 1.3rem; }

/* Encabezado y contenido */
.page-pretitle { font-size: var(--mwz-small); letter-spacing: .06em; }
.page-title { font-size: var(--tblr-font-size-h1); line-height: var(--tblr-line-height-h1); }
.page-subtitle { color: var(--tblr-secondary); font-size: 1rem; margin-top: .25rem; max-width: 60rem; }
.card-title { font-size: 1.125rem; }
.card-subtitle { font-size: .9375rem; }
.subheader { font-size: var(--mwz-small); }
.text-secondary, .text-muted { --tblr-text-opacity: 1; }
.form-label { font-size: .9375rem; }
.form-hint { font-size: var(--mwz-small); }
.form-control, .form-select { font-size: 1rem; padding-block: .55rem; }
.btn { --tblr-btn-font-size: .9375rem; --tblr-btn-padding-y: .55rem; min-height: 2.625rem; }
.btn-sm { --tblr-btn-font-size: var(--mwz-small); min-height: 2.125rem; }
.btn-lg { --tblr-btn-font-size: 1.0625rem; min-height: 3.125rem; }
.badge { font-size: var(--mwz-small); font-weight: 600; }
.table { font-size: .9375rem; }
.table thead th { font-size: var(--mwz-small); letter-spacing: .05em; }
.table td, .table th { padding-block: .75rem; }
.alert { font-size: .9375rem; }
/* Icono propio donde antes iba una ilustración */
.tr-icono { display: block; font-size: 4.5rem; line-height: 1; color: var(--tblr-primary); opacity: .55; }
.tr-icono-grande { font-size: 7rem; }
.empty-title { font-size: 1.25rem; }

/* Iconos automáticos de botones del paquete compartido */
.ui-icon { display: inline-block; flex: none; width: 1.25em; height: 1.25em; vertical-align: -.2em; pointer-events: none; }
.has-ui-icon > .ui-icon { margin-inline-end: .45em; }
.btn .ui-icon { margin-inline-start: -.15em; }

/* Tarjetas de cursos */
.course-card { transition: box-shadow .15s, transform .15s; }
.course-card:hover { box-shadow: var(--tblr-shadow-card-hover, 0 .5rem 1.5rem rgba(0, 0, 0, .08)); }
.course-card .card-title { font-size: 1.25rem; line-height: 1.4; }
.course-icon { display: inline-grid; place-items: center; width: 3.25rem; height: 3.25rem; border-radius: var(--tblr-border-radius-lg); font-size: 1.75rem; }
.metric-value { font-size: 2.25rem; font-weight: 700; line-height: 1.1; }

/* Matriz de capacitación */
.matrix-table th, .matrix-table td { vertical-align: middle; }
/* Matriz como la del sistema anterior: encabezado de niveles fijo, filas alternadas y columnas de nivel del mismo ancho. */
.matrix-scroll { max-height: 75vh; }
.matrix-table thead th { position: sticky; top: 0; z-index: 2; background: var(--tblr-primary-lt); color: var(--tblr-body-color); font-size: var(--mwz-small); letter-spacing: .02em; }
.matrix-table thead th.matrix-level { text-align: center; width: 9.5rem; min-width: 8.5rem; }
.matrix-table tbody tr.matrix-row:nth-of-type(4n+1) > td { background: var(--tblr-bg-surface-secondary); }
.matrix-table td.matrix-cell { text-align: center; padding-top: .55rem; padding-bottom: .55rem; }
.matrix-table td.matrix-course { min-width: 16rem; font-weight: 600; }
.matrix-toggle .ti { transition: transform .15s ease; }
.matrix-toggle[aria-expanded="true"] .ti { transform: rotate(180deg); }
.matrix-badge { display: inline-flex; align-items: center; gap: .3rem; font-size: var(--mwz-small); font-weight: 600; padding: .35em .6em; border-radius: var(--tblr-border-radius); white-space: nowrap; text-transform: uppercase; letter-spacing: .02em; }
.matrix-badge .ti { font-size: .9rem; }
.matrix-cell .matrix-meta { display: block; font-size: var(--mwz-small); color: var(--tblr-secondary); margin-top: .2rem; }
.matrix-cell form { display: inline; }
.matrix-cell .btn { margin-top: .35rem; }
.matrix-detail > td { background: var(--tblr-bg-surface); border-top: 0; }
.matrix-levels { display: grid; grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr)); gap: .75rem; padding: .25rem 0 .5rem 2.5rem; }
.matrix-level-card { border: 1px solid var(--tblr-border-color); border-radius: var(--tblr-border-radius); padding: .6rem .75rem; background: var(--tblr-bg-surface-secondary); }
@media (max-width: 575.98px) { .matrix-levels { padding-left: 0; } }
.matrix-empty { color: var(--tblr-gray-300); }
.status-legend .matrix-badge { min-width: 8.5rem; justify-content: center; }

/* Gráfica circular sin dependencias */

/* Recorrido del curso */
.learning-frame { width: 100%; height: 72vh; border: 1px solid var(--tblr-border-color); border-radius: var(--tblr-border-radius-lg); background: #fff; }
video.course-video { width: 100%; max-height: 72vh; background: #0b1622; border-radius: var(--tblr-border-radius-lg); }
.question-card + .question-card { margin-top: 1rem; }
.question-card .question-text { font-size: 1.125rem; font-weight: 600; }
.form-selectgroup-boxes .form-selectgroup-label { font-size: 1rem; text-align: start; }
.answer-image, .option-image { max-width: 240px; max-height: 150px; border-radius: var(--tblr-border-radius); }
.path-box { font-family: var(--tblr-font-monospace); font-size: .95rem; }
.steps .step-item { font-size: .9375rem; }

/* Listas con casillas */
.checkbox-list { max-height: 18rem; overflow: auto; border: 1px solid var(--tblr-border-color); border-radius: var(--tblr-border-radius); padding: .5rem .75rem; }

/* Acceso */

@media (max-width: 991.98px) {
  .page-title { font-size: 1.5rem; line-height: 2rem; }
}

@media print {
  .mwz-topbar, .mwz-sidebar, .mwz-footer, .btn, form { display: none !important; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation: none !important; }
}

/* Acceso: bloque de ayuda separado del formulario, con aire y sin la línea del separador encima del texto. */
.login-help { padding: 1.25rem 1.5rem; background: var(--tblr-bg-surface-secondary); border-top: 1px solid var(--tblr-border-color); line-height: 1.5; }
.login-help .avatar .ti { font-size: 1.125rem; }

/* Formularios compactos: el ancho del campo sigue al dato (la aplicación anterior usaba cuatro campos por fila). */
input[type=date].form-control { max-width: 11rem; }
input[type=number].form-control { max-width: 9rem; }
.input-group > input[type=number].form-control, .input-group > input[type=date].form-control { flex: 0 1 9rem; }
.field-xs { max-width: 6rem; }
.field-sm { max-width: 10rem; }
.field-md { max-width: 16rem; }
.field-lg { max-width: 26rem; }
.form-compact .form-label { margin-bottom: .25rem; }
.form-compact .form-hint { margin-top: .25rem; }
.validation-summary-valid { display: none; }

/* Felicitación al acreditar un curso: trofeo animado y confeti (celebration.js). Con "reducir movimiento" se muestra fija. */
.celebration { overflow: hidden; isolation: isolate; }
.celebration::before, .celebration::after { content: ""; position: absolute; z-index: -1; background: var(--tblr-primary-lt); pointer-events: none; }
.celebration::before { width: 30rem; height: 24rem; left: -13rem; bottom: -13rem; border-radius: 42% 58% 63% 37% / 41% 44% 56% 59%; }
.celebration::after { width: 22rem; height: 20rem; right: -10rem; top: 1.5rem; border-radius: 58% 42% 38% 62% / 52% 38% 62% 48%; }
.celebration-kicker { display: inline-flex; align-items: center; gap: .4rem; padding: .35rem .9rem; border-radius: var(--tblr-border-radius-pill); background: var(--tblr-green-lt); color: var(--tblr-green); font-size: var(--mwz-small); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.celebration-kicker .ti { font-size: 1.125rem; }
.celebration-title { font-size: 2.25rem; line-height: 1.2; font-weight: 800; letter-spacing: -.02em; margin: .9rem 0 .5rem; }
.celebration-lead { font-size: 1.125rem; color: var(--tblr-secondary); max-width: 38rem; margin: 0 auto; }
.celebration-trophy { display: block; width: min(100%, 26rem); height: auto; aspect-ratio: 36 / 25; margin: .5rem auto 0; overflow: visible; }
.celebration-trophy .trophy, .celebration-trophy .trophy-shadow, .celebration-trophy .sparkle, .celebration-trophy .bit { transform-box: fill-box; transform-origin: center; }
.celebration-trophy .trophy { transform-origin: 50% 100%; animation: trophy-pop .9s cubic-bezier(.34, 1.56, .64, 1) .2s both, trophy-float 3s ease-in-out 1.2s infinite alternate; }
.celebration-trophy .trophy-shadow { animation: trophy-shadow 3s ease-in-out 1.2s infinite alternate; }
.celebration-trophy .trophy-shine { animation: trophy-shine 4s ease-in-out 1.3s infinite; }
.celebration-trophy .sparkle { animation: trophy-sparkle 2.4s ease-in-out infinite; }
.celebration-trophy .sparkles > g:nth-child(2) .sparkle { animation-delay: .6s; }
.celebration-trophy .sparkles > g:nth-child(3) .sparkle { animation-delay: 1.2s; }
.celebration-trophy .sparkles > g:nth-child(4) .sparkle { animation-delay: 1.8s; }
.celebration-trophy .bit { animation: celebration-bit-in .5s cubic-bezier(.34, 1.56, .64, 1) .55s both, celebration-bit-float 3.2s ease-in-out 1.1s infinite alternate; }
.celebration-trophy .bits > g:nth-child(even) .bit { animation-delay: .7s, 1.3s; animation-duration: .5s, 2.6s; }
.celebration-trophy .bits > g:nth-child(3n) .bit { animation-direction: normal, alternate-reverse; }
.celebration-kicker, .celebration-title, .celebration-lead, .celebration .celebration-scores, .celebration .celebration-actions { animation: celebration-rise .6s cubic-bezier(.2, .8, .2, 1) both; }
.celebration-title { animation-delay: .1s; }
.celebration-lead { animation-delay: .2s; }
.celebration .celebration-scores { animation-delay: .9s; }
.celebration .celebration-actions { animation-delay: 1.05s; }
.confetti-canvas { position: fixed; inset: 0; width: 100%; height: 100%; pointer-events: none; z-index: 1090; }
@keyframes celebration-rise { from { opacity: 0; transform: translateY(.75rem); } }
@keyframes trophy-pop { from { opacity: 0; transform: translateY(24px) scale(.3); } 60% { opacity: 1; } }
@keyframes trophy-float { to { transform: translateY(-7px); } }
@keyframes trophy-shadow { to { transform: scaleX(.85); opacity: .65; } }
@keyframes trophy-shine { from { transform: translateX(-20px); } 45%, to { transform: translateX(230px); } }
@keyframes trophy-sparkle { 0%, 100% { opacity: .2; transform: scale(.4); } 50% { opacity: 1; transform: scale(1) rotate(45deg); } }
@keyframes celebration-bit-in { from { opacity: 0; transform: scale(0) rotate(-120deg); } }
@keyframes celebration-bit-float { to { transform: translateY(-6px) rotate(16deg); } }
@media (max-width: 575.98px) {
  .celebration-title { font-size: 1.75rem; }
  .celebration::before { left: -19rem; }
  .celebration::after { right: -15rem; }
}

/* Listas con buscador (Select2, tema "trainify"): la caja conserva las clases del select (form-select) y la lista sigue a Tabler. */
.select2-container--trainify .select2-selection--single { height: auto; }
.select2-container--trainify .select2-selection--single .select2-selection__rendered { padding: 0; color: inherit; }
.select2-container--trainify .select2-selection__arrow { display: none; }
.select2-container--trainify.select2-container--open .select2-selection { border-color: var(--tblr-control-focus-border-color); outline: var(--tblr-focus-ring, var(--tblr-focus-ring-width) solid var(--tblr-focus-ring-color)); outline-offset: -1px; }
.select2-container--trainify.select2-container--disabled .select2-selection { background-color: var(--tblr-bg-surface-secondary); color: var(--tblr-secondary); cursor: not-allowed; }
.select2-container--trainify .select2-dropdown, .select2-container--trainify.select2-container--open .select2-dropdown--below, .select2-container--trainify.select2-container--open .select2-dropdown--above { background: var(--tblr-bg-surface); border: var(--tblr-border-width) solid var(--tblr-border-color); border-radius: var(--tblr-border-radius); box-shadow: var(--tblr-shadow-dropdown); overflow: hidden; }
.select2-container--trainify .select2-dropdown--below { margin-top: .25rem; }
.select2-container--trainify .select2-dropdown--above { margin-top: -.25rem; }
.select2-container--trainify .select2-search--dropdown { padding: .5rem; }
.select2-container--trainify .select2-search--dropdown .select2-search__field { padding: .45rem .75rem; font-size: 1rem; color: var(--tblr-body-color); background: var(--tblr-bg-forms); border: var(--tblr-border-width) solid var(--tblr-border-color); border-radius: var(--tblr-border-radius); outline: 0; }
.select2-container--trainify .select2-search--dropdown .select2-search__field:focus { border-color: color-mix(in oklab, var(--tblr-white) 50%, var(--tblr-primary)); box-shadow: 0 0 0 .2rem var(--tblr-primary-lt); }
.select2-container--trainify .select2-results > .select2-results__options { max-height: 18rem; overflow-y: auto; }
.select2-container--trainify .select2-results__option { padding: .5rem .75rem; font-size: .9375rem; }
.select2-container--trainify .select2-results__option--selected { background: var(--tblr-primary-lt); font-weight: 600; }
.select2-container--trainify .select2-results__option--highlighted { background: var(--tblr-primary); color: var(--tblr-primary-fg); }
.select2-container--trainify .select2-results__option--disabled, .select2-container--trainify .select2-results__message { color: var(--tblr-secondary); }
.input-group > .select2-container { flex: 1 1 auto; width: 1% !important; min-width: 0; margin-left: 0 !important; }
.input-group > .select2-container:not(:last-child) .select2-selection { border-top-right-radius: 0; border-bottom-right-radius: 0; }

/* Editor de exámenes (Cursos → Examen del nivel): tipos en mosaico y filas de opciones que cambian según el tipo. */
.exam-types { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .75rem; }
.exam-type { display: flex; flex-direction: column; align-items: flex-start; gap: .125rem; padding: .875rem 1rem; border: var(--tblr-border-width) solid var(--tblr-border-color); border-radius: var(--tblr-border-radius-lg); background: var(--tblr-bg-surface); color: inherit; text-align: left; transition: border-color .15s, box-shadow .15s; }
.exam-type:hover, .exam-type:focus-visible { border-color: var(--tblr-primary); box-shadow: 0 0 0 .2rem var(--tblr-primary-lt); outline: 0; }
.exam-type .ti { font-size: 1.75rem; color: var(--tblr-primary); margin-bottom: .25rem; }
.exam-type-name { font-weight: 600; }
.exam-type-hint { font-size: var(--mwz-small); color: var(--tblr-secondary); line-height: 1.3; }
.exam-kind-switch { display: flex; flex-wrap: wrap; gap: .5rem; }
.exam-kind-switch .btn-check:checked + .btn, .tf-choice .btn-check:checked + .btn { background: var(--tblr-primary-lt); border-color: var(--tblr-primary); color: var(--tblr-primary); font-weight: 600; }
.question-editor { border-color: var(--tblr-primary); box-shadow: 0 0 0 .2rem var(--tblr-primary-lt); scroll-margin-top: 1rem; }
.option-list { display: flex; flex-direction: column; gap: .5rem; }
.option-row { display: flex; align-items: center; gap: .5rem; padding: .5rem; border: var(--tblr-border-width) solid var(--tblr-border-color); border-radius: var(--tblr-border-radius); background: var(--tblr-bg-surface); }
.option-row.dragging { opacity: .45; }
.option-main { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: .5rem; }
.option-match { flex: 1 1 38%; min-width: 0; }
.option-thumb { max-height: 3rem; max-width: 6rem; border-radius: var(--tblr-border-radius); object-fit: contain; border: var(--tblr-border-width) solid var(--tblr-border-color); }
.option-tools { display: flex; gap: .125rem; flex-shrink: 0; }
.option-drag { cursor: grab; color: var(--tblr-secondary); font-size: 1.25rem; touch-action: none; }
.option-position { font-weight: 600; min-width: 1.5rem; text-align: right; }
.option-correct { margin: 0; cursor: pointer; }
.option-correct input { width: 1.4rem; height: 1.4rem; cursor: pointer; }
.option-arrow { color: var(--tblr-secondary); }
[data-kind] .option-drag, [data-kind] .option-position, [data-kind] [data-up], [data-kind] [data-down], [data-kind] .option-arrow, [data-kind] .option-match, [data-kind] .option-correct { display: none; }
[data-kind="Ordering"] .option-drag, [data-kind="Ordering"] .option-position, [data-kind="Ordering"] [data-up], [data-kind="Ordering"] [data-down], [data-kind="Matching"] .option-arrow, [data-kind="SingleChoice"] .option-correct, [data-kind="MultipleChoice"] .option-correct { display: inline-flex; }
[data-kind="Matching"] .option-match { display: block; }
.tf-choice { display: flex; flex-wrap: wrap; gap: .75rem; }
.tf-choice .btn { min-width: 11rem; }
.exam-question { scroll-margin-top: 1rem; }
.exam-question:target { background: var(--tblr-primary-lt); }
.exam-question-actions { display: flex; gap: .25rem; flex-shrink: 0; align-items: flex-start; }
.exam-answers { list-style: none; padding: 0; margin: .5rem 0 0; }
.exam-answers li { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem; margin-bottom: .2rem; }
.exam-answers.ordered { list-style: decimal; padding-left: 1.25rem; }
.exam-answers.ordered li { display: list-item; }
.exam-help li + li { margin-top: .5rem; }
@media (max-width: 1199.98px) { .exam-types { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 575.98px) {
  .exam-types { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .option-row { flex-wrap: wrap; }
  .option-main { flex: 1 1 10rem; }
  [data-kind="Matching"] .option-arrow { display: none; }
  .option-tools { order: 2; margin-left: auto; }
  .option-match { order: 3; flex-basis: 100%; }
  .exam-question .d-flex.gap-3 { flex-wrap: wrap; }
  .exam-question-actions { width: 100%; justify-content: flex-end; }
  .tf-choice .btn { flex: 1 1 0; min-width: 0; }
}

/* Calendario de capacitación (FullCalendar 6): estilos adaptados del calendario de MedicApp a los colores de Tabler. */
.cal-session { --cal-color: var(--tblr-blue); }
.cal-due { --cal-color: var(--tblr-orange); }
.cal-overdue { --cal-color: var(--tblr-red); }
.cal-expires { --cal-color: var(--tblr-yellow); --cal-text: #3b2f00; }
.cal-cancelled { --cal-color: var(--tblr-gray-400); }
.cal-legend { display: flex; flex-wrap: wrap; gap: .5rem 1.25rem; color: var(--tblr-secondary); }
.cal-legend span { display: inline-flex; align-items: center; gap: .4rem; }
.cal-dot { display: inline-block; width: .7rem; height: .7rem; border-radius: 50%; background: var(--cal-color); }
.training-calendar { --fc-border-color: var(--tblr-border-color); --fc-today-bg-color: var(--tblr-primary-lt); --fc-page-bg-color: var(--tblr-bg-surface); --fc-neutral-bg-color: var(--tblr-bg-surface-secondary); --fc-list-event-hover-bg-color: var(--tblr-bg-surface-secondary); font-size: .9375rem; }
.training-calendar .fc-toolbar { flex-wrap: wrap; gap: .75rem; }
.training-calendar .fc-toolbar-title { font-size: 1.25rem; font-weight: 600; }
.training-calendar .fc-toolbar-title::first-letter { text-transform: uppercase; }
.training-calendar .fc-button-primary { background: var(--tblr-bg-surface); border-color: var(--tblr-border-color); color: var(--tblr-body-color); box-shadow: none !important; text-transform: capitalize; min-height: 2.25rem; }
.training-calendar .fc-button-primary:not(:disabled):hover, .training-calendar .fc-button-primary:not(:disabled).fc-button-active { background: var(--tblr-primary); border-color: var(--tblr-primary); color: var(--tblr-primary-fg); }
.training-calendar .fc-prev-button, .training-calendar .fc-next-button { font-size: 1.25rem; line-height: 1; min-width: 2.5rem; }
.training-calendar .fc-col-header-cell-cushion { padding: .6rem .25rem; font-size: var(--mwz-small); font-weight: 600; color: var(--tblr-secondary); text-transform: uppercase; }
.training-calendar .fc-daygrid-day-number { padding: .35rem .55rem; color: var(--tblr-body-color); }
.training-calendar .fc-day-today .fc-daygrid-day-number { margin: .2rem; padding: .15rem .5rem; border-radius: 50%; background: var(--tblr-primary); color: var(--tblr-primary-fg); }
.training-calendar .fc-scrollgrid { border-radius: var(--tblr-border-radius-lg); overflow: hidden; }
.training-calendar .fc-daygrid-event.cal-event { background: var(--cal-color); border-color: var(--cal-color); padding: 1px 4px; border-radius: 4px; cursor: pointer; }
.training-calendar .fc-daygrid-event.cal-event .fc-event-main, .training-calendar .fc-daygrid-event.cal-event .fc-event-title { color: var(--cal-text, #fff); }
.training-calendar .cal-event .fc-list-event-dot { border-color: var(--cal-color); }
.training-calendar .fc-list-event { cursor: pointer; }
.training-calendar .cal-cancelled .fc-event-title, .training-calendar .cal-cancelled .fc-list-event-title { text-decoration: line-through; }
.training-calendar .fc-event:focus-visible { outline: 3px solid var(--tblr-primary); outline-offset: 2px; }
.training-calendar .fc-daygrid-more-link { color: var(--tblr-primary); }
.training-calendar .fc-list-day-cushion { background: var(--tblr-bg-surface-secondary); }
@media (max-width: 575.98px) {
  .training-calendar .fc-toolbar { justify-content: center; }
  .training-calendar .fc-toolbar-chunk:nth-child(2) { order: -1; width: 100%; text-align: center; }
  .training-calendar .fc-toolbar-title { font-size: 1.1rem; }
}

/* Pasos del curso: en pantallas chicas solo los números, y debajo el nombre completo del paso actual. */
.learning-step-current { display: none; }
@media (max-width: 767.98px) {
  .learning-steps .step-label { display: none; }
  .learning-steps { margin-bottom: .5rem !important; }
  .learning-step-current { display: block; }
}

/* Clave de respuestas: el examen ya contestado. Las respuestas correctas resaltan en verde y nada se puede cambiar. */
.answer-key-exam .question-card { box-shadow: none; }
.answer-key-exam .form-selectgroup-input:disabled + .form-selectgroup-label { cursor: default; opacity: 1; }
.answer-key-exam .answer-key-correct .form-selectgroup-input:checked + .form-selectgroup-label { border-color: var(--tblr-green); background: var(--tblr-green-lt); color: var(--tblr-body-color); }
.answer-key-exam .answer-key-correct .form-selectgroup-input:checked + .form-selectgroup-label .form-selectgroup-check { background-color: var(--tblr-green); border-color: var(--tblr-green); }
.answer-key-exam .form-select.answer-key-select:disabled { background-color: var(--tblr-green-lt); color: var(--tblr-body-color); opacity: 1; font-weight: 600; }

/* Mínimo común de 16 px: textos chicos de Tabler y el aviso de ambiente de la librería compartida. */
.small, small, .datagrid-title, .form-selectgroup-label, .subheader, .page-pretitle, .form-hint, .badge, .dropdown-header { font-size: var(--mwz-small); }
.platform-environment, .platform-environment * { font-size: var(--mwz-small) !important; }
/* Acceso en teléfono: la fila con ilustración no debe ensanchar la página. */
.trainify-auth .mwz-main { overflow-x: hidden; }
.toast { --tblr-toast-font-size: var(--mwz-small); font-size: var(--mwz-small); }

/* Inicio personal con las piezas comunes */
.home-welcome h1 { font-size: 1.9rem; margin-bottom: .35rem; }
.home-eyebrow { color: var(--mwz-primary); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; font-size: var(--mwz-small); margin-bottom: .25rem; }
.home-list { list-style: none; padding: 0; margin: 0 0 .75rem; display: grid; gap: .75rem; }
.home-list li { display: flex; align-items: flex-start; gap: .6rem; padding-bottom: .75rem; border-bottom: 1px solid var(--bs-border-color); }
.home-list li > i { flex: none; margin-top: .2rem; }
.home-list li > span { min-width: 0; overflow-wrap: anywhere; font-weight: 600; }
.home-list-detail { display: block; font-weight: 400; color: var(--bs-secondary-color); font-size: var(--mwz-small); }
.home-status { font-size: 1.15rem; }

/* Medidas fijas sin estilos en línea; con !important para pesar lo mismo que el estilo en línea que sustituyen */
.tr-maxh-11 { max-height: 11rem !important; }
.tr-maxh-30 { max-height: 30rem !important; }
.tr-maxw-7 { max-width: 7rem !important; }
.tr-maxw-28 { max-width: 28rem !important; }
.tr-maxw-32 { max-width: 32rem !important; }
.tr-minw-15 { min-width: 15rem !important; }
.tr-minw-16 { min-width: 16rem !important; }
