/* Aula Virtual: tema claro y componentes compartidos. */
@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500;600;700;800&display=swap');
/* Identidad visual: superficies, controles y estados; sin alterar la distribucion. */
/* La capa theme se registra primero: sus !important preceden a las demás capas.
 * Conservar el orden de capas y media queries al ampliar los componentes. */
@layer theme {
  /* Tipografia unica para todas las tablas y su contenido textual. */
  table, table :is(th, td, caption, strong, b, small, span, a, button, p, div, label, input, select, textarea), table td::before { font-size: 12px !important; }
  /* Densidad de los modulos: una sola escala para separar y rellenar componentes. */
  .main .content { padding: 10px 14px !important; gap: 8px !important; }
  .main .content > :is(.panel, .stats-grid, .alert, .dashboard-grid, .quick-grid) { margin-top: 0 !important; margin-bottom: 0 !important; }
  .main .panel { padding: 8px 10px !important; }
  .main .topbar { height: 62px !important; min-height: 62px !important; padding: 9px 14px !important; gap: 10px !important; overflow: hidden; }
  .main .topbar > div:not(.top-actions) { min-width: 0; }
  .main .topbar :is(h1, p) { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .main .topbar h1 { font-size: 22px !important; margin: 0 0 3px !important; }
  .main .topbar p { margin: 0 !important; }
  .main :is(.panel-head, .module-filter-head) { margin: 0 0 6px !important; padding: 0 !important; gap: 6px !important; }
  .main :is(.stats-grid, .dashboard-grid, .quick-grid) { gap: 8px !important; }
  .main .stats-grid .stat-card { min-height: 72px !important; padding: 8px 10px 12px !important; margin: 0 !important; }
  .main .stats-grid .stat-card strong { font-size: 21px !important; margin-bottom: 2px !important; }
  .main .stats-grid .stat-card > div:not(.stat-icon) > span { margin-bottom: 4px !important; }
  .main .filter-row { gap: 6px !important; margin: 0 0 6px !important; padding: 0 !important; }
  .main :is(.module-search-grid, .search-grid) { gap: 8px !important; margin: 0 !important; }
  .main :is(.form-grid, .detail-grid) { gap: 8px !important; margin-bottom: 8px !important; }
  .main label { gap: 4px !important; }
  .main :is(.btn, .btn-clear-filter, .filter-btn) { min-height: 30px !important; padding: 6px 10px !important; }
  .main :is(input:not([type="checkbox"]):not([type="radio"]), select, .combo-editable-input) { min-height: 32px !important; height: 32px !important; padding-top: 5px !important; padding-bottom: 5px !important; }
  .main .combo-editable { min-height: 32px !important; height: 32px !important; }
  .main .table-card { margin: 0 !important; }
  .main table :is(th, td) { padding-top: 4px !important; padding-bottom: 4px !important; }
  .main table td small { margin-top: 1px !important; }
  .main :is(.mini-actions [data-iconified="1"], .icon-action) { width: 28px !important; min-width: 28px !important; height: 28px !important; min-height: 28px !important; padding: 4px !important; }
  .main .alert { padding: 8px 10px !important; }
  @media (pointer: coarse) {
    .main :is(.mini-actions [data-iconified="1"], .icon-action) { min-width: 32px !important; min-height: 32px !important; }
  }
  /* Tarjetas metricas: composicion compacta compartida por todos los modulos. */
  .stats-grid .stat-card {
    --metric-color: var(--brand-navy);
    --metric-tint: #f5f7fa;
    --metric-line: #cbd5e1;
    position: relative !important;
    display: block !important;
    min-width: 0 !important;
    min-height: 84px !important;
    height: auto !important;
    padding: 12px 12px 14px !important;
    background: var(--metric-tint) !important;
    border: 1px solid var(--metric-line) !important;
    border-left: 4px solid var(--metric-color) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
  }
  .stat-card:has(.stat-icon.cyan) { --metric-color: var(--status-info-text); --metric-tint: var(--brand-sky-soft); --metric-line: var(--status-info-bg); }
  .stat-card:has(.stat-icon.gold) { --metric-color: var(--status-warning-text); --metric-tint: #fffbeb; --metric-line: var(--status-warning-bg); }
  .stat-card:has(.stat-icon.red) { --metric-color: var(--status-danger-text); --metric-tint: #fff5f5; --metric-line: var(--status-danger-bg); }
  .stat-card:has(.stat-icon.green) { --metric-color: var(--status-success-text); --metric-tint: #f0fdf4; --metric-line: var(--status-success-bg); }
  .stats-grid .stat-card::after { content: ""; position: absolute; bottom: 6px; left: 10px; right: 10px; height: 1px; background: var(--metric-line); }
  .stats-grid .stat-card > div:not(.stat-icon) { width: 100% !important; min-width: 0 !important; }
  .stats-grid .stat-card .stat-icon {
    position: absolute !important; top: 9px !important; right: 9px !important;
    width: 24px !important; height: 24px !important; min-width: 24px !important;
    padding: 4px !important; margin: 0 !important;
    background: var(--metric-line) !important; color: var(--metric-color) !important;
    border: 0 !important; border-radius: 6px !important;
  }
  .stats-grid .stat-card .stat-icon svg { width: 16px !important; height: 16px !important; }
  .stats-grid .stat-card > div:not(.stat-icon) > span {
    display: block !important; padding-right: 30px !important; margin: 0 0 6px !important;
    color: #475569 !important; font-size: 10px !important; font-weight: 600 !important;
    text-transform: uppercase !important; letter-spacing: .015em !important; line-height: 1.25 !important;
  }
  .stats-grid .stat-card strong { color: var(--brand-navy) !important; font-size: 22px !important; font-weight: 700 !important; line-height: 1.15 !important; margin: 0 0 3px !important; font-variant-numeric: tabular-nums; }
  .stats-grid .stat-card small { display: block !important; color: var(--muted) !important; font-size: 10px !important; font-weight: 400 !important; line-height: 1.3 !important; margin: 0 !important; }
  .page-simulador_oece .simulator-stats { display: grid !important; grid-template-columns: repeat(5, minmax(170px, 1fr)) !important; gap: 10px !important; overflow-x: auto !important; padding-bottom: 3px !important; }
  .page-simulador_oece .simulator-stats > .stat-card { min-width: 0 !important; margin: 0 !important; grid-column: auto !important; }
  @media (min-width: 921px) {
    #tablaCodigosInscripcion { table-layout: auto !important; width: 100% !important; min-width: 0 !important; }
    #tablaCodigosInscripcion :is(th, td):nth-child(n) { width: 1% !important; min-width: 0 !important; max-width: none !important; white-space: nowrap !important; }
    #tablaCodigosInscripcion :is(th, td):nth-child(2) { width: auto !important; white-space: normal !important; overflow-wrap: anywhere !important; }
    #tablaCodigosInscripcion td:nth-child(2) :is(strong, small) { max-width: none !important; white-space: normal !important; overflow-wrap: anywhere !important; }
    #tablaCodigosInscripcion td:last-child .mini-actions { flex-wrap: nowrap !important; }
  }
  html { color-scheme: light; }
  body { background: var(--page-background) !important; color: #1f2937 !important; font-family: var(--font-sans) !important; }
  body.login-page { background: #0f2342 !important; }
  .login-page .login-card { background: #ffffff !important; border: 1px solid #dbe3ef !important; border-radius: 20px !important; padding: 28px !important; gap: 0 !important; }
  .login-page .login-card-container { max-width: 420px !important; }
  .login-page .login-logo-container { margin: 0 0 26px !important; }
  .login-page .login-logo-circle { width: 64px !important; height: 64px !important; background: var(--brand-sky-soft) !important; color: var(--brand-sky-ink) !important; border: 2px solid var(--brand-sky-ink) !important; box-shadow: 0 0 0 6px var(--brand-sky-soft) !important; }
  .login-page .login-title { margin: 0 0 10px !important; font-size: 23px !important; font-weight: 700 !important; letter-spacing: -.5px !important; }
  .login-page .login-subtitle { margin: 0 0 26px !important; color: var(--muted) !important; font-size: 14px !important; }
  .login-page .input-group { height: 44px !important; margin: 0 0 16px !important; }
  .login-page .input-icon, .login-page .password-toggle { color: var(--brand-sky-ink) !important; }
  .login-page .input-group input { min-width: 0 !important; flex: 1 !important; width: 100% !important; height: 100% !important; outline: none !important; }
  .login-page .btn-login-submit { background: #ffffff !important; color: var(--brand-navy) !important; border: 1px solid var(--brand-gold) !important; height: 40px !important; margin: 14px 0 0 !important; border-radius: 8px !important; letter-spacing: .04em !important; }
  .login-page .btn-login-submit:hover { background: #fdf8e8 !important; }
  .login-page .login-divider { margin: 32px 0 24px !important; border: 0 !important; border-top: 1px solid #e2e8f0 !important; }
  .login-page .login-footer-text { margin: 0 0 12px !important; color: #475569 !important; font-size: 11px !important; }
  .login-page .login-footer-link { margin: 0 0 20px !important; }
  .login-page .login-footer-link a { color: var(--brand-sky-ink) !important; font-weight: 600 !important; }
  .login-page .login-footer-version { color: var(--muted) !important; font-size: 11px !important; }
  .login-page .card-bottom-glow { background: var(--brand-gold) !important; width: 60% !important; height: 2px !important; position: absolute !important; bottom: 0 !important; left: 20% !important; box-shadow: none !important; }
  @media (max-width: 480px) { .login-page .login-card { padding: 26px 22px !important; } }
  button, input, select, textarea, a, p, span, small, label, td, th, div, strong, h1, h2, h3 { font-family: var(--font-sans) !important; }
  .alert { font-weight: 500 !important; font-size: 13px !important; }
  .alert strong { font-weight: 600 !important; }
  @media (min-width: 861px) { .layout { grid-template-columns: 240px minmax(0, 1fr) !important; } }
  .main, .content, .layout { background: transparent !important; }
  .topbar { background: #ffffff !important; border-color: #e2e8f0 !important; backdrop-filter: none !important; }
  .sidebar { backdrop-filter: none !important; background: var(--brand-navy) !important; border-right: 1px solid #193858 !important; color: var(--brand-sky) !important; }
  .sidebar .brand strong, .sidebar .brand span, .sidebar .side-menu a, .sidebar .user-box strong, .sidebar .user-box span { color: #7dd3fc !important; }
  .sidebar .side-menu a:hover, .sidebar .side-menu a.active { background: #193858 !important; color: #bae6fd !important; }
  .sidebar .side-menu a.active { box-shadow: inset 3px 0 var(--brand-gold) !important; }
  .sidebar .side-menu .nav-label { width: auto !important; text-align: left !important; }
  .sidebar .user-box, .sidebar .avatar { background: #193858 !important; color: #7dd3fc !important; }
  .sidebar .logout { display: flex; align-items: center; justify-content: center; gap: 8px; color: #7dd3fc !important; border-color: #294868 !important; }
  .sidebar-collapse { display: none; }
  @media (min-width: 1025px) {
    .sidebar { padding: 16px 12px !important; position: sticky !important; width: auto !important; transform: none !important; }
    .sidebar .brand { margin-top: 32px; }
    .sidebar-collapse { display: grid; place-items: center; position: absolute; top: 12px; right: 14px; width: 28px; height: 28px; background: #193858; border: 1px solid #294868; border-radius: 6px; color: #7dd3fc; font-size: 24px; cursor: pointer; }
    body.sidebar-collapsed .layout { display: grid !important; grid-template-columns: 72px minmax(0, 1fr) !important; }
    body.sidebar-collapsed .sidebar { padding: 16px 10px !important; }
    body.sidebar-collapsed .sidebar .brand { justify-content: center; }
    body.sidebar-collapsed .sidebar .brand-logo { width: 40px; height: 40px; font-size: 12px; }
    body.sidebar-collapsed .sidebar .brand > div:not(.brand-logo), body.sidebar-collapsed .sidebar .nav-label, body.sidebar-collapsed .sidebar .user-box > div:not(.avatar) { display: none !important; }
    body.sidebar-collapsed .sidebar .side-menu a { justify-content: center !important; padding: 7px 0 !important; gap: 0 !important; }
    body.sidebar-collapsed .sidebar .user-box { justify-content: center; padding: 6px !important; }
    body.sidebar-collapsed .sidebar .avatar { width: 32px; height: 32px; flex-shrink: 0; }
    body.sidebar-collapsed .sidebar .logout { padding: 8px !important; }
  }
  .brand strong { color: #1f2937 !important; font-size: 13px !important; }
  .brand-logo { background: var(--brand-navy) !important; color: var(--brand-gold) !important; border: 0 !important; border-radius: 8px !important; }
  .brand span, .topbar p, small, .muted, .readonly-hint { color: var(--muted) !important; }
  .side-menu a { color: #475569 !important; font-weight: 500 !important; border-radius: 6px !important; }
  .side-menu a:hover, .side-menu a.active { background: var(--brand-sky-soft) !important; color: var(--brand-navy) !important; box-shadow: none !important; }
  .side-menu a.active { font-weight: 600 !important; }
  .side-menu a span, .nav-icon { background: transparent !important; border-color: transparent !important; color: inherit !important; box-shadow: none !important; }
  h1, h2, h3, .panel-title, .big-percent { color: var(--brand-navy) !important; }
  .topbar h1 { font-size: 24px !important; font-weight: 600 !important; letter-spacing: -.5px !important; }
  .eyebrow { color: var(--muted) !important; font-weight: 600 !important; font-size: 11px !important; letter-spacing: .04em !important; }
  .panel, .stat-card, .quick-card, .quick-action-card, .modal-card, .login-card, .detail-item, .course-item {
    background: #ffffff !important; border: 1px solid #e2e8f0 !important; border-radius: 8px !important; box-shadow: none !important;
  }
  #modalVerCertificado .modal-card.certificate-modal-card,
  #modalVerCertificado .certificate-preview-modal { background: #102342 !important; border-color: #102342 !important; }
  #modalVerCertificado .modal-head button { background: #1c365d !important; border-color: #4b6384 !important; color: #ffffff !important; }
  /* Conservar hidden frente a los display importantes de los controles compartidos. */
  .certificate-upload-preview[hidden], .certificate-upload-preview [hidden] { display: none !important; }
  .certificate-editor-form, .certificate-editor-form label { margin: 0 !important; }
  .certificate-editor-form label { gap: 3px !important; }
  .certificate-editor-form .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 6px 8px !important; margin: 0 !important; }
  .certificate-editor-form .alert { padding: 6px 8px !important; margin: 0 !important; }
  .certificate-editor :is(.panel-head, .certificate-preview-hint, .certificate-preview-name) { margin: 0 !important; }
  .certificate-editor .panel-head > a { min-width: 0 !important; min-height: 30px !important; padding: 5px 8px !important; }
  @media (min-width: 1100px) {
    .certificate-editor:not(:has(.certificate-upload-preview:not([hidden]))) .form-grid { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
  }
  .panel-head h2, .module-filter-head h2 { font-weight: 600 !important; }
  .user-box, .avatar { background: #f1f5f9 !important; color: #475569 !important; }
  .logout { background: transparent !important; color: var(--muted) !important; border: 1px solid #e2e8f0 !important; }
  .stat-card strong { color: #1f2937 !important; }
  .stat-icon, .panel-icon, .quick-card-icon { background: var(--brand-sky-soft) !important; color: var(--brand-sky-ink) !important; border-color: transparent !important; }
  .table-card, .table-fit { background: #ffffff !important; border-color: #e2e8f0 !important; border-radius: 8px !important; }
  table thead, table thead tr, table th { background: var(--card2) !important; color: var(--soft) !important; }
  table th { font-weight: 600 !important; letter-spacing: .025em !important; border-bottom: 1px solid #e2e8f0 !important; }
  table tbody tr, table td { background: #ffffff !important; color: #334155 !important; border-color: #e2e8f0 !important; }
  table tbody tr:hover, table tbody tr:hover td { background: #f8fafc !important; }
  table td strong { color: #1f2937 !important; font-weight: 500 !important; }
  table td small { color: var(--muted) !important; font-weight: 400 !important; }
  table td::before { color: var(--muted) !important; }
  input:where(:not([type="checkbox"]):not([type="radio"])), select, textarea, .combo-editable-input {
    background: var(--input) !important; color: var(--text) !important; border: 1px solid var(--control-border) !important; border-radius: 6px !important; box-shadow: none !important;
  }
  input::placeholder, textarea::placeholder { color: var(--muted) !important; opacity: 1 !important; }
  :is(input, select, textarea, .combo-editable-input):focus { border-color: var(--brand-sky-ink) !important; outline: 2px solid var(--brand-sky-ink) !important; outline-offset: 2px !important; }
  input[type="checkbox"], input[type="radio"] { accent-color: var(--brand-sky-ink); }
  .login-page .input-group { border: 1px solid var(--control-border) !important; border-radius: 6px !important; }
  .login-page .input-group input { border: 0 !important; background: transparent !important; }
  .login-page .input-group:focus-within { border-color: var(--brand-sky-ink) !important; outline: 2px solid var(--brand-sky-ink) !important; outline-offset: 2px; }
  label { color: #475569 !important; font-weight: 500 !important; }
  .combo-editable-list, .combo-editable-option { background: #ffffff !important; color: #334155 !important; border-color: #e2e8f0 !important; }
  .combo-editable-option:hover { background: var(--brand-sky-soft) !important; }
  .btn, .btn-gold, .btn-login-submit, .registration-submit {
    background: var(--button-primary-bg) !important; color: var(--button-primary-text) !important; border: 1px solid var(--brand-navy) !important; border-radius: 6px !important;
    font-weight: 600 !important; box-shadow: none !important; text-shadow: none !important; transform: none !important;
  }
  .btn:hover, .btn-gold:hover, .btn-login-submit:hover, .registration-submit:hover { background: var(--button-primary-hover) !important; border-color: var(--brand-navy) !important; }
  .btn-clear-filter, .btn-secondary, .filter-btn, .panel-actions a, .link-action {
    background: #ffffff !important; color: #475569 !important; border: 1px solid #cbd5e1 !important; border-radius: 6px !important; box-shadow: none !important;
  }
  .btn-clear-filter:hover, .btn-secondary:hover, .filter-btn:hover { background: #f8fafc !important; color: var(--brand-navy) !important; }
  .filter-btn.active { background: var(--brand-sky-soft) !important; color: var(--brand-navy) !important; border-color: var(--brand-sky-ink) !important; }
  .btn-danger { background: var(--button-danger-bg) !important; border-color: var(--button-danger-bg) !important; color: var(--button-danger-text) !important; }
  .btn-danger:hover { background: var(--button-danger-hover) !important; border-color: var(--button-danger-hover) !important; }
  .mini-actions a, .mini-actions button, .icon-action, .mini-btn, .modal-head button {
    background: transparent !important; color: var(--muted) !important; border: 1px solid #e2e8f0 !important; border-radius: 6px !important; box-shadow: none !important;
  }
  .mini-actions a:hover, .mini-actions button:hover, .icon-action:hover { background: var(--brand-sky-soft) !important; color: var(--brand-sky-ink) !important; }
  /* Colores semanticos compartidos para las acciones de todos los modulos. */
  :is(.mini-actions, .oece-access-actions) :is(.action-view, .action-success, .success) { --action-ink: var(--button-success-bg); --action-surface: #f0fdf4; --action-border: var(--status-success-border); --action-hover: var(--status-success-bg); }
  .mini-actions .action-edit { --action-ink: #1c5ee2; --action-surface: #eff3f8; --action-border: #cbd5e1; --action-hover: #e2e8f0; }
  :is(.mini-actions, .oece-access-actions) :is(.action-danger, .danger) { --action-ink: #cc2020; --action-surface: #fef2f2; --action-border: var(--status-danger-border); --action-hover: var(--status-danger-bg); }
  .mini-actions .action-copy { --action-ink: var(--brand-sky-ink); --action-surface: var(--brand-sky-soft); --action-border: var(--status-info-border); --action-hover: var(--status-info-bg); }
  :is(.mini-actions, .oece-access-actions) :is(.action-warning, .gold) { --action-ink: #a84b08; --action-surface: #fffbeb; --action-border: var(--status-warning-border); --action-hover: var(--status-warning-bg); }
  :is(.mini-actions a, .mini-actions button, .icon-action):is(.action-view, .action-success, .success, .action-edit, .action-danger, .danger, .action-copy, .action-warning, .gold) {
    color: var(--action-ink, var(--brand-navy)) !important; background: var(--action-surface, #f8fafc) !important; border-color: var(--action-border, #cbd5e1) !important;
  }
  :is(.mini-actions a, .mini-actions button, .icon-action):is(.action-view, .action-success, .success, .action-edit, .action-danger, .danger, .action-copy, .action-warning, .gold):hover {
    color: var(--action-ink, var(--brand-navy)) !important; background: var(--action-hover, #e2e8f0) !important; border-color: var(--action-ink, var(--brand-navy)) !important;
  }
  /* Etiquetas compartidas: color segun estado o familia, nunca por tabla. */
  .chip, .status, .module-filter-count { --label-bg: var(--status-info-bg); --label-text: var(--status-info-text); --label-border: var(--status-info-border); background: var(--label-bg) !important; color: var(--label-text) !important; border: 1px solid var(--label-border) !important; box-shadow: none !important; }
  body :is(.chip, .status) {
    font-size: var(--color-label-font-size) !important;
    font-weight: 500 !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
    min-height: var(--color-label-min-height) !important;
    padding: var(--color-label-padding-y) var(--color-label-padding-x) !important;
  }
  body.page-certificados #tablaCertificados td[data-label="Nombres y apellidos"] strong { font-weight: 400 !important; }
  .chip:is(.gold, .fisico), .status:is(.pendiente,.pendiente-validacion,.pendiente_validacion,.pendiente_generar,.pendiente-generar,.estado-pendiente-generar,.estado-pendiente-escaneado,.sin-activar,.sin_activar), .alert-warning { --label-bg: var(--status-warning-bg); --label-text: var(--status-warning-text); --label-border: var(--status-warning-border); }
  .chip.neutral { --label-bg: var(--status-neutral-bg); --label-text: var(--status-neutral-text); --label-border: var(--status-neutral-border); }
  .status:is(.activo,.activa,.pagado,.culminado,.registrado,.estado-registrado,.finalizado,.aprobado,.visible), .alert-success { --label-bg: var(--status-success-bg); --label-text: var(--status-success-text); --label-border: var(--status-success-border); }
  .status:is(.inactivo,.inactiva,.retirado,.anulado,.desaprobado,.oculto,.oculta), .alert-danger { --label-bg: var(--status-danger-bg); --label-text: var(--status-danger-text); --label-border: var(--status-danger-border); }
  .alert-info { --label-bg: var(--status-info-bg); --label-text: var(--status-info-text); --label-border: var(--status-info-border); }
  .alert:is(.alert-success, .alert-warning, .alert-danger, .alert-info) { background: var(--label-bg) !important; color: var(--label-text) !important; border: 1px solid var(--label-border) !important; }
  .alert :is(strong, small, .muted) { color: inherit !important; }
  .progress, .performance-bar, .exam-pager-track { background: #e2e8f0 !important; }
  .progress span, .performance-bar span, .exam-pager-track span { background: var(--brand-sky-ink) !important; }
  .value-progress { --progress-fill: var(--brand-sky-ink) !important; }
  .modal { background: rgba(15,23,42,.4) !important; }
  :is(a, button, [tabindex]):focus-visible { outline: 2px solid var(--brand-sky-ink) !important; outline-offset: 3px !important; }
  .sidebar :is(a, button):focus-visible { outline-color: var(--brand-sky) !important; }
}

:root {
  --color-label-font-size: 11px;
  --color-label-min-height: 20px;
  --color-label-padding-y: 1px;
  --color-label-padding-x: 6px;
  --brand-navy: #0f2342;
  --brand-sky: #38bdf8;
  --brand-sky-ink: #036985;
  --brand-sky-soft: #f0f9ff;
  --brand-gold: #d4af37;
  --brand-gold-hover: #c29b28;
  /* Fondo único para las áreas de trabajo de todos los módulos. */
  --page-background: #eef3f9;
  --registration-page-background: #0b1f3a;
  --bg: var(--page-background);
  --bg2: var(--page-background);
  --card: #ffffff;
  --card2: #f8fafc;
  --text: #1f2937;
  --muted: #526176;
  --soft: #475569;
  --border: #e2e8f0;
  --control-border: #7a889b;
  --status-warning-bg: #fff0b3;
  --status-warning-text: #744400;
  --status-warning-border: #a66b16;
  --status-info-bg: #e9f2ff;
  --status-info-text: #1e3a5f;
  --status-info-border: #5c7fa6;
  --status-success-bg: #dcfce7;
  --status-success-text: #166534;
  --status-success-border: #3f8559;
  --status-danger-bg: #fee2e2;
  --status-danger-text: #991b1b;
  --status-danger-border: #bb5757;
  --status-neutral-bg: #f1f5f9;
  --status-neutral-text: #334155;
  --status-neutral-border: #7a889b;
  --input: #ffffff;
  --shadow: none;
  --azul-profundo: #f8fafc;
  --azul-oscuro: #ffffff;
  --azul-card: #ffffff;
  --azul-suave: var(--brand-sky-soft);
  --dorado: var(--brand-gold);
  --dorado-claro: var(--status-warning-text);
  --celeste: var(--brand-sky);
  --celeste-claro: var(--brand-sky-ink);
  --rojo: var(--status-danger-text);
  --verde: #15803d;
  --radius: 8px;
  --font-sans: "Roboto", Arial, Helvetica, sans-serif !important;
  --font-title: "Roboto", Arial, Helvetica, sans-serif !important;
  --button-secondary-bg: #ffffff;
  --button-secondary-hover: #f1f5f9;
  --button-secondary-text: #334155;
  --button-info-bg: var(--brand-sky-ink);
  --button-info-hover: var(--brand-navy);
  --button-info-text: #ffffff;
  --button-success-bg: #15803d;
  --button-success-hover: #166534;
  --button-danger-bg: #b91c1c;
  --button-danger-hover: #991b1b;
  --button-danger-text: #ffffff;
  --button-border: #e2e8f0;
  --button-action-view-bg: #f8fafc;
  --button-action-view-hover: var(--brand-sky-soft);
  --button-action-edit-bg: #f8fafc;
  --button-action-edit-hover: var(--brand-sky-soft);
  --button-action-warning-bg: #fffbeb;
  --button-action-warning-hover: #fef3c7;
  --button-primary-bg: var(--brand-gold);
  --button-primary-hover: var(--brand-gold-hover);
  --button-primary-text: var(--brand-navy);
}
a { color: inherit; text-decoration: none; }
.layout { display: grid; grid-template-columns: 292px 1fr; min-height: 100vh; }
.brand { display: flex; align-items: center; gap: 12px; }
.brand-logo {
  width: 50px;
  height: 50px;
  display: grid;
  place-items: center;
  font-weight: 900;
  box-shadow: none;
}
.brand strong { display: block; text-transform: uppercase; }
.brand span { display: block; font-size: 12px; }
.side-menu a span { width: 24px; text-align: center; }

.user-box { display: flex; gap: 12px; align-items: center; padding: 12px; border-radius: 8px; }
.avatar {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  font-weight: 900;
}
.user-box strong { display: block; color: white; font-size: 13px; }
.user-box span { display: block; color: var(--text); font-size: 11px; }
.logout { text-align: center; padding: 11px; border-radius: 8px; font-weight: 900; }
.main { min-width: 0; }
.topbar {
  position: sticky;
  top: 0;
  z-index: 10;
  min-height: 88px;
  padding: 18px 28px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
}
.top-actions { display: flex; align-items: center; gap: 10px; }
.mini-btn {
  padding: 12px 16px;
  cursor: pointer;
  font-weight: 900;
  transition: .25s ease;
  align-items: center;
  justify-content: center;
  gap: 8px;
}
.btn {
  padding: 12px 16px;
  cursor: pointer;
  transition: .25s ease;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.btn-gold:hover { transform: translateY(-2px); }
.mini-btn { display: none; }

.big-percent { font-size: 40px; }
.alert-row strong, .alert-row small { display: block; }
.alert-row small { margin-top: 3px; }
.payment-alert-row { display: grid; grid-template-columns: 12px minmax(0, 1fr) auto; align-items: center; }
.payment-alert-row .dot { align-self: start; }
.dot { width: 12px; height: 12px; border-radius: 50%; margin-top: 5px; flex: 0 0 auto; }
.dot.red { background: var(--rojo); }
.dot.gold { background: var(--dorado); }
.dot.cyan { background: var(--celeste); }
.course-badge {
  width: 48px;
  height: 48px;
  display: grid;
  place-items: center;
  border-radius: 8px;
  background: var(--status-info-bg);
  color: var(--status-info-text);
  font-size: 12px;
}
.course-item strong, .course-item small { display: block; }
.progress { height: 7px; margin-top: 9px; border-radius: 999px; overflow: hidden; }
.progress span { display: block; height: 100%; border-radius: 999px; }
.status, .chip { display: inline-flex; align-items: center; justify-content: center; border-radius: 999px; }
.status.becado, .status.virtual, .status.mixTa { background: var(--card); color: var(--celeste-claro); }

.table-card.compact table { font-size: 13px; }
table { width: 100%; border-collapse: collapse; }
th {
  text-align: left;
  background: var(--card);
  color: white;
  padding: 13px 12px;
  text-transform: uppercase;
  letter-spacing: .07em;
}
th:first-child { border-radius: 14px 0 0 14px; }
th:last-child { border-radius: 0 14px 14px 0; }
td { padding: 13px 12px; border-bottom: 1px solid var(--border); vertical-align: middle; color: var(--soft); }
td strong { display: block; color: var(--text); }
td small { display: block; color: var(--muted); margin-top: 3px; }
.actions-col { text-align: center; }
.mini-actions a { place-items: center; }

.quick-grid.mini { grid-template-columns: repeat(3, 1fr); margin-top: 22px; }
.quick-card:hover { transform: translateY(-4px); border-color: var(--border); }
.quick-card strong, .quick-card small { display: block; }
label { display: grid; gap: 7px; margin-bottom: 15px; }
textarea { min-height: 110px; resize: vertical; }
input:focus, select:focus, textarea:focus { box-shadow: none; }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); }
.full { width: 100%; }
.modal {
  position: fixed;
  inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 18px;
  z-index: 50;
}
.modal-card { width: min(720px, 100%); padding: 24px; }
.modal-head { margin-bottom: 18px; }
.modal-head button { width: 38px; height: 38px; cursor: pointer; font-size: 22px; }
.login-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--card);
  font-family: 'Roboto', sans-serif;
  padding: 20px;
}
.login-card-container { width: 100%; max-width: 420px; margin: auto; }
.login-logo-container { margin-bottom: 12px; display: flex; justify-content: center; }
.login-logo-circle {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: 2px solid var(--border);
  background: var(--card);
  box-shadow: none;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--text);
}
.cube-icon { width: 28px; height: 28px; }
.login-title {
  color: var(--text);
  font-size: 24px;
  font-weight: 700;
  letter-spacing: 0.05em;
  margin: 0 0 4px 0;
  text-align: center;
}
.login-subtitle { color: var(--text); font-size: 12px; margin: 0 0 18px 0; text-align: center; line-height: 1.4; }
.input-group {
  display: flex;
  align-items: center;
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 8px;
  margin-bottom: 12px;
  transition: all 0.3s ease;
  position: relative;
}
.input-group:focus-within { border-color: var(--border); box-shadow: none; }
.input-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  margin-left: 14px;
  color: var(--text);
  width: 18px;
  height: 18px;
}
.input-icon svg { width: 18px; height: 18px; }
.input-group input {
  border: none !important;
  background: transparent !important;
  color: var(--text) !important;
  padding: 11px 12px 11px 10px !important;
  font-size: 14px !important;
  width: 100% !important;
  outline: none !important;
  box-shadow: none !important;
}
.input-group input::placeholder { color: var(--muted); }
.password-toggle {
  background: transparent; border: 0; padding: 0; font: inherit;
  margin-right: 14px;
  cursor: pointer;
  color: var(--text);
  display: flex;
  align-items: center;
  transition: opacity 0.2s;
}
.password-toggle:hover { opacity: 0.8; }
.password-toggle svg { width: 18px; height: 18px; }
.btn-login-submit {
  width: 100%;
  padding: 11px;
  font-size: 14px;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: all 0.3s ease;
  margin-top: 4px;
  margin-bottom: 4px;
}
.btn-login-submit:hover { box-shadow: none; }
.login-divider { border: none; border-top: 1px solid var(--border); margin: 16px 0 12px 0; }
.login-footer-text { color: var(--text); font-size: 11px; margin-bottom: 4px; }
.login-footer-text .highlight { color: var(--text); font-weight: 500; }
.login-footer-link { margin-bottom: 12px; }
.login-footer-link a { color: var(--text); font-size: 11px; text-decoration: none; transition: color 0.3s; }
.login-footer-link a:hover { color: var(--text); }
.login-footer-version { color: var(--text); font-size: 10px; letter-spacing: 0.05em; }
.card-bottom-glow {
  position: absolute;
  bottom: 0;
  left: 20%;
  right: 20%;
  height: 3px;
  background: var(--card);
  box-shadow: none;
  border-radius: 10px 10px 0 0;
}
.registration-result { background: #dcfce7 !important; border-color: #86efac !important; color: #166534 !important; margin-bottom: 16px; padding: 18px 20px; }
label small { color: var(--muted); font-weight: 700; }
.compact-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.filter-row { display: flex; flex-wrap: wrap; }
.filter-btn { padding: 10px 14px; font-weight: 900; cursor: pointer; }

.search-grid { grid-template-columns: repeat(4, 1fr); }
.table-fit { overflow: visible; }
.table-fit .actions-col { width: 170px; }
.detail-box { background: var(--card2); border: 1px solid var(--border); border-radius: 8px; padding: 16px; margin-bottom: 18px; }
.public-page { min-height: 100vh; padding: 28px; }
.public-shell { width: min(1180px, 100%); margin: auto; display: grid; gap: 22px; }
.certificate-preview {
  width: min(840px, 100%);
  margin: 14px auto;
  border: 1px solid var(--border);
  border-radius: 8px;
  overflow: hidden;
  background: var(--card2);
}
.certificate-preview img, .certificate-preview iframe { width: 100%; min-height: 560px; display: block; border: 0; object-fit: contain; }
.certificate-preview-upload img { min-height: 0; height: auto; max-height: 72vh; }
.certificate-preview-upload iframe { min-height: 320px; height: 72vh; }
.certificate-upload-preview .certificate-preview-name { overflow-wrap: anywhere; }
.certificate-editor { display: grid; grid-template-columns: minmax(0, 1fr); align-items: start; gap: 8px; }
.certificate-editor-form { display: grid; gap: 8px; }
.certificate-editor-form small { overflow-wrap: anywhere; }
.certificate-editor-wide { grid-column: 1 / -1; }
.certificate-editor .certificate-upload-preview { display: grid; gap: 6px; }
.certificate-editor .certificate-preview-upload { width: 100%; margin: 0; }
.certificate-editor .certificate-preview-upload :is(img, iframe) { max-height: calc(100dvh - 200px); }
@media (min-width: 1100px) {
  .certificate-editor:has(.certificate-upload-preview:not([hidden])) { grid-template-columns: minmax(300px, 360px) minmax(0, 1fr); }
  .certificate-editor:not(:has(.certificate-upload-preview:not([hidden]))) .certificate-editor-wide { grid-column: auto; }
}

.table-card table { max-width: 100%; }
.table-card th { hyphens: auto; }
.table-card .chip, .table-card .status { max-width: 100%; white-space: normal; text-align: center; }
.table-card .mini-actions a { min-width: auto; height: 26px; padding: 0 7px; font-size: 10px; border-radius: 8px; }
.table-card table.cursos-table th:nth-child(1), .table-card table.cursos-table td:nth-child(1) { width: 90px; }
.table-card table.cursos-table th:nth-child(2), .table-card table.cursos-table td:nth-child(2) { width: 28%; }
.table-card table.cursos-table th:nth-child(3), .table-card table.cursos-table td:nth-child(3) { width: 145px; }
.table-card table.cursos-table th:nth-child(4), .table-card table.cursos-table td:nth-child(4) { width: 105px; }
.table-card table.cursos-table th:nth-child(5), .table-card table.cursos-table td:nth-child(5) { width: 85px; }
.table-card table.cursos-table th:nth-child(6), .table-card table.cursos-table td:nth-child(6) { width: 75px; }
.table-card table.cursos-table th:nth-child(7), .table-card table.cursos-table td:nth-child(7) { width: 90px; }
.table-card table.cursos-table th:nth-child(8), .table-card table.cursos-table td:nth-child(8), .table-card table.estado-table th:nth-child(1), .table-card table.estado-table td:nth-child(1) { width: 110px; }
.table-card table.estado-table th:nth-child(2), .table-card table.estado-table td:nth-child(2) { width: 105px; }
.table-card table.estado-table th:nth-child(3), .table-card table.estado-table td:nth-child(3) { width: 95px; }
.table-card table.estado-table th:nth-child(4), .table-card table.estado-table td:nth-child(4) { width: 20%; }
.table-card table.estado-table th:nth-child(5), .table-card table.estado-table td:nth-child(5) { width: 26%; }
.table-card table.estado-table th:nth-child(6), .table-card table.estado-table td:nth-child(6) { width: 105px; }
.table-card table.estado-table th:nth-child(7), .table-card table.estado-table td:nth-child(7) { width: 155px; }
.table-card table.cursos-table { table-layout: auto !important; }
.table-card table.cursos-table th, .table-card table.cursos-table td { word-break: normal !important; overflow-wrap: break-word !important; hyphens: none !important; }
.table-card table.cursos-table td:nth-child(2) strong { font-size: 14px; line-height: 1.15; }
.table-card table.cursos-table td:nth-child(2) small { display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; line-height: 1.25; }
.table-card th, table th { background: var(--card) !important; color: var(--text) !important; border-color: var(--border) !important; }
.module-search-grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.module-search-grid input, .module-search-grid select { min-width: 0; }
.btn-clear-filter { padding: 11px 14px; cursor: pointer; }
.btn-clear-filter:hover { border-color: var(--celeste); }
.modal-card-wide { width: min(900px, 100%); }
.panel-head .mini-actions .btn { height: 30px; padding: 0 12px; font-size: 11px; border-radius: 8px; box-shadow: none; }
.alert { padding: 12px 14px; border-radius: 8px; margin-bottom: 16px; line-height: 1.45; }
.alert-danger::before { content: 'Aviso: '; font-weight: 900; }
.readonly-hint { font-size: 12px; font-weight: 700; }
.panel-head .mini-actions form { display: inline-flex; margin: 0; }
.estado-table .status { text-align: center; }
.top-actions .btn-gold { white-space: nowrap; min-height: 44px; }
.content > .module-filter-panel:first-child, .content > .panel:first-child { margin-top: 0; }
#tablaBalotario td small { display: block; margin-bottom: 3px; }
#tablaBalotario td:nth-child(2) strong { line-height: 1.25; }
.quick-actions-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.quick-action-card { display: grid; gap: 8px; color: var(--text); text-decoration: none; transition: transform .2s ease, border-color .2s ease, background .2s ease; }
.quick-action-card:hover { transform: translateY(-2px); border-color: var(--celeste); }
.quick-action-card.primary { border-color: var(--border); background: var(--card); }
.quick-action-card.danger-card { border-color: var(--border); background: #fef2f2; }
.quick-action-card.danger-card span { background: #fef2f2; color: #b91c1c; }
.quick-action-card span {
  width: 38px;
  height: 38px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px;
  background: var(--card);
  color: var(--celeste-claro);
  font-weight: 900;
}
.quick-action-card.primary span { background: var(--card); color: var(--dorado-claro); }
.quick-action-card strong { font-size: 15px; }
.quick-action-card small { color: var(--muted); line-height: 1.35; }

/* Acciones rápidas de Evaluaciones: icono destacado y composición compacta. */
body.page-evaluaciones .quick-actions-panel { padding: 10px !important; }
body.page-evaluaciones .quick-actions-panel .panel-head { margin-bottom: 8px !important; }
body.page-evaluaciones .quick-actions-grid { gap: 10px !important; }
body.page-evaluaciones .quick-action-card {
  display: grid !important;
  grid-template-columns: 46px minmax(0, 1fr) !important;
  grid-template-rows: auto auto !important;
  column-gap: 10px !important;
  row-gap: 2px !important;
  align-items: center !important;
  min-height: 70px !important;
  padding: 10px 12px !important;
}
body.page-evaluaciones .quick-action-card > span {
  grid-row: 1 / 3 !important;
  width: 46px !important;
  height: 46px !important;
  margin: 0 !important;
  border-radius: 10px !important;
  display: grid !important;
  place-items: center !important;
  font-size: 22px !important;
  line-height: 1 !important;
}
body.page-evaluaciones .quick-action-card.danger-card > span { font-size: 13px !important; font-weight: 900 !important; }
body.page-evaluaciones .quick-action-card > strong { grid-column: 2 !important; align-self: end !important; font-size: 13px !important; line-height: 1.15 !important; }
body.page-evaluaciones .quick-action-card > small { grid-column: 2 !important; align-self: start !important; font-size: 11px !important; line-height: 1.2 !important; }
.combo-editable { position: relative; width: 100%; display: block; }
.select-original-hidden {
  position: absolute !important;
  opacity: 0 !important;
  pointer-events: none !important;
  width: 1px !important;
  height: 1px !important;
  left: 0 !important;
  bottom: 0 !important;
}
.combo-editable::after {
  content: '⌄';
  position: absolute;
  right: 14px;
  top: 12px;
  color: var(--muted);
  pointer-events: none;
  font-size: 16px;
  font-weight: 900;
}
.combo-editable-input:focus { border-color: var(--celeste); box-shadow: none; }
.combo-editable-list {
  position: absolute;
  z-index: 9999;
  left: 0;
  right: 0;
  top: calc(100% + 6px);
  max-height: 260px;
  overflow-y: auto;
  border: 1px solid var(--border);
  border-radius: 8px;
  box-shadow: none;
  padding: 6px;
}
.password-config-info {
  display: grid;
  gap: 4px;
  padding: 14px;
  border-radius: 8px;
  background: var(--card);
  border: 1px solid var(--border);
  margin-bottom: 12px;
}
.password-config-info strong { color: var(--celeste-claro); font-size: 12px; text-transform: uppercase; letter-spacing: .06em; }
.password-config-info span { color: var(--text); font-weight: 900; }
.login-card {
  padding: 24px 28px 20px 28px;
  position: relative;
  overflow: hidden;
  text-align: center;
  display: grid;
  gap: 16px;
  align-content: start;
}
h1, h2, h3, h4, .topbar h1, .panel-head h2 { text-shadow: none !important; filter: none !important; }
.detail-item strong { font-weight: 700 !important; text-shadow: none !important; filter: none !important; }
strong, b, .brand strong, .user-box strong, .course-item strong, .stat-card strong, .table-card td strong, .responsive-table td strong, .login-card h2, .modal-head h2 {
  text-shadow: none !important;
  filter: none !important;
}
p, small, span, label, input, select, textarea, a, td, th { text-shadow: none; }
table th, .responsive-table th, .estado-table th { text-shadow: none !important; }
.btn, .mini-actions a, button { letter-spacing: 0.01em; text-shadow: none !important; }
.detail-item span { font-weight: 700 !important; text-shadow: none !important; }
.stat-card span { letter-spacing: 0.035em; text-shadow: none !important; }
.course-badge, .module-filter-count, .sidebar-footer span { font-weight: 700 !important; letter-spacing: 0.035em; text-shadow: none !important; }
.eyebrow, .chip, .status { text-shadow: none !important; }
.card, .panel, .stat-card, .course-item, .login-card, .modal-card { backface-visibility: hidden; transform: translateZ(0); }
.login-card p { line-height: 1.62; }
td strong, .course-item strong { line-height: 1.32; }
.table-card table, .table-fit table, .estado-table { table-layout: fixed !important; }
.responsive-table th { padding: 11px 10px !important; text-align: left; white-space: normal !important; word-break: normal; overflow-wrap: anywhere; }
.table-card td, .responsive-table td, .estado-table td { padding: 11px 10px !important; text-align: left; }
.table-card th, .table-fit th, .table-fit td, .estado-table th {
  padding: 11px 10px !important;
  vertical-align: middle !important;
  text-align: left;
  white-space: normal !important;
  word-break: normal;
  overflow-wrap: anywhere;
}
.table-fit td small { display: block; margin-top: 3px; line-height: 1.25; }
.mini-actions {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 6px !important;
  white-space: nowrap;
  flex-wrap: nowrap !important;
  width: auto !important;
  max-width: none !important;
  overflow: visible !important;
  box-sizing: border-box !important;
}
.mini-actions a, .mini-actions button { white-space: nowrap !important; }
.actions-col, td.actions-col { width: 150px !important; }
.responsive-table th:nth-child(1), .responsive-table td:nth-child(1), .estado-table th:nth-child(1), .estado-table td:nth-child(1) { width: 12%; }
.responsive-table th:nth-child(2), .responsive-table td:nth-child(2), .estado-table th:nth-child(2), .estado-table td:nth-child(2) { width: 13%; }
#tablaCursos th:nth-child(1), #tablaCursos td:nth-child(1) { width: 95px !important; }
#tablaCursos th:nth-child(2), #tablaCursos td:nth-child(2) { width: 28% !important; }
#tablaCursos th:last-child, #tablaCursos td:last-child { width: 150px !important; }
#tablaEstudiantes th:nth-child(1), #tablaEstudiantes td:nth-child(1), #tablaDocentes th:nth-child(1), #tablaDocentes td:nth-child(1) { width: 95px !important; }
#tablaEstudiantes th:nth-child(2), #tablaEstudiantes td:nth-child(2), #tablaDocentes th:nth-child(2), #tablaDocentes td:nth-child(2) { width: 210px !important; }
#tablaEstudiantes th:last-child, #tablaEstudiantes td:last-child, #tablaDocentes th:last-child, #tablaDocentes td:last-child { width: 145px !important; }
.login-card h2 { font-family: var(--font-title) !important; font-size: 20px !important; line-height: 1.18 !important; }
.panel-head h2, .panel h2, .module-filter-head h3, .modal-head h2 { font-family: var(--font-title) !important; }
.eyebrow { text-transform: uppercase; line-height: 1.1 !important; }
td strong, .course-item strong, .user-box strong, .brand strong { font-weight: 600 !important; letter-spacing: 0 !important; }
strong, b, .stat-card strong { letter-spacing: 0 !important; }
.table-fit th, table th { font-size: 10.5px !important; line-height: 1.15 !important; font-weight: 700 !important; letter-spacing: 0.055em !important; text-transform: uppercase !important; }
.table-card th, .responsive-table th, .estado-table th { line-height: 1.15 !important; font-weight: 700 !important; letter-spacing: 0.055em !important; text-transform: uppercase !important; }
.table-fit td, table td { font-size: 13px !important; line-height: 1.35 !important; font-weight: 400 !important; }
.table-card td, .responsive-table td, .estado-table td { font-weight: 400 !important; }
.table-fit td strong { font-size: 13px !important; font-weight: 600 !important; line-height: 1.28 !important; }
.table-card td strong, .responsive-table td strong { font-size: 13px !important; font-weight: 600 !important; }
.mini-actions a, .mini-actions button { font-size: 12.5px !important; }
.btn-gold, .btn-clear-filter { font-size: 12.5px !important; font-weight: 700 !important; line-height: 1.15 !important; }
.btn, button { line-height: 1.15 !important; }
.module-search-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.table-card.no-scroll { overflow: hidden !important; }
.dashboard-simple-table { min-width: 0 !important; table-layout: auto !important; }
.table-card.no-scroll table { min-width: 0 !important; table-layout: auto !important; width: 100% !important; }
.dashboard-simple-table th { white-space: normal !important; }
.dashboard-simple-table th:last-child, .dashboard-simple-table td:last-child { width: 100px; }
.performance-course { min-width: 0; display: grid; gap: 3px; }
.performance-code {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: fit-content;
  min-width: 72px;
  padding: 5px 10px;
  font-size: 11px;
  font-weight: 700;
  line-height: 1.1;
  color: var(--text);
  background: var(--card);
  border: 1px solid var(--border);
  border-radius: 999px;
}
.performance-bar-wrap { width: 100%; }
.performance-bar span { display: block; height: 100%; border-radius: 999px; }
*::before, *::after { box-sizing: border-box; }
img, video, iframe, canvas, svg { max-width: 100%; height: auto; }
.table-fit, .topbar, .top-actions, main { min-width: 0; }
.performance-code, .stat-card strong, .stat-card small, .alert-row strong, .alert-row small, .panel h2, .panel p { overflow-wrap: break-word; word-break: normal; white-space: normal; }
.table-card td strong, .table-card td small, .course-item strong, .course-item small, .quick-card strong, .quick-card small { white-space: normal; }

.detail-item strong { color: var(--text); }
.table-card.table-fit { overflow-x: visible !important; }
.responsive-table { table-layout: auto !important; }
.responsive-table th { vertical-align: top !important; }
.responsive-table td strong, .responsive-table td small { white-space: normal !important; }
.form-grid, .module-search-grid, .form-grid > *, .module-search-grid > *, .modal-head > div { min-width: 0 !important; }
.table-card .mini-actions { display: flex; flex-wrap: wrap !important; justify-content: center; gap: 6px !important; }
.table-card .mini-actions a, .table-card .mini-actions button { white-space: nowrap !important; }
.detail-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 12px !important;
  min-width: 0 !important;
  width: 100% !important;
  max-width: 100% !important;
}
.detail-item, .detail-item.detail-item-wide, .detail-grid > .detail-item[style*="grid-column"] {
  display: grid !important;
  grid-template-columns: 150px minmax(0, 1fr) !important;
  grid-column: 1 / -1 !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  align-items: start !important;
  gap: 12px !important;
  padding: 13px 14px !important;
  overflow: hidden !important;
}
.detail-item span {
  display: block !important;
  color: var(--muted);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .06em;
  margin-bottom: 6px;
  margin: 0 !important;
  min-width: 0 !important;
  line-height: 1.25 !important;
  width: 150px !important;
  max-width: 150px !important;
  white-space: normal !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}
.detail-item strong, .detail-item small {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
  line-height: 1.4 !important;
  text-align: left !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  hyphens: none !important;
}
.detail-item .chip, .detail-item .status { width: fit-content !important; max-width: 100% !important; white-space: nowrap !important; }
.detail-item .mini-actions {
  justify-content: flex-start !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  display: flex !important;
  width: 100% !important;
  max-width: 100% !important;
}
.panel-head h2 { white-space: normal !important; }
.dashboard-grid { display: grid; grid-template-columns: 1.3fr .7fr; }
.stats-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); }
.stat-card { display: flex; gap: 16px; align-items: center; }
.stat-card .stat-icon { width: 46px !important; height: 46px !important; flex: 0 0 46px !important; }
.performance-list { display: grid; gap: 10px !important; margin-top: 10px; }
.performance-row {
  display: grid;
  grid-template-columns: minmax(220px, 2.2fr) minmax(220px, 5fr) 60px;
  gap: 14px;
  align-items: center;
  padding: 10px 12px !important;
  border: 1px solid var(--border);
  border-radius: 8px !important;
  background: var(--card);
}
.performance-name { font-size: 12.5px !important; line-height: 1.3; font-weight: 600; color: var(--text); white-space: normal; }
.performance-value { font-size: 16px !important; font-weight: 700; text-align: right; color: var(--text); }
.performance-bar {
  position: relative;
  width: 100%;
  height: 12px !important;
  border-radius: 999px;
  overflow: hidden;
  border: 1px solid var(--border);
}
.chart-legend-note {
  margin-top: 10px !important;
  font-size: 11.5px !important;
  color: var(--text) !important;
  line-height: 1.35 !important;
  text-align: left !important;
  position: static !important;
}
.course-list { display: grid; gap: 10px !important; }
.course-item { display: grid; grid-template-columns: 50px 1fr auto; align-items: center; gap: 14px; padding: 12px !important; }
.alert-list { display: grid; gap: 10px !important; }
.alert-row {
  display: flex;
  align-items: start;
  gap: 12px;
  padding: 12px !important;
  border-radius: 8px !important;
  background: var(--card2);
  border: 1px solid var(--border);
}
.dashboard-simple-table td, .dashboard-simple-table th { padding: 9px 8px !important; }
.quick-grid { display: grid; grid-template-columns: repeat(4, 1fr); }
.quick-card span {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 8px;
  background: var(--card);
  color: var(--celeste-claro);
  font-size: 22px !important;
  margin-bottom: 14px;
}
.quick-card small { color: var(--muted); margin-top: 4px; }
.icon-svg { width: 24px; height: 24px; display: block; flex: 0 0 24px; }
.panel-icon { position: relative; display: inline-flex !important; }
.stat-icon, .quick-card-icon {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--border);
  box-shadow: none;
}
.stat-icon {
  width: 52px !important;
  height: 52px !important;
  place-items: center;
  border-radius: 8px !important;
  font-size: 24px;
  font-weight: 900;
}
.stat-icon .icon-svg { width: 26px; height: 26px; }
.panel-icon {
  width: 46px !important;
  height: 46px !important;
  border-radius: 8px !important;
  align-items: center;
  justify-content: center;
  font-size: 22px;
  border: 1px solid var(--border);
  box-shadow: none;
}
.panel-icon .icon-svg, .quick-card-icon .icon-svg { width: 23px; height: 23px; }
.stat-icon.blue, .panel-icon-blue, .quick-card:nth-child(1) .quick-card-icon { background: var(--card); color: var(--text); }
.stat-icon.gold, .panel-icon-gold, .quick-card:nth-child(2) .quick-card-icon { background: var(--card); color: var(--text); }
.stat-icon.cyan, .quick-card:nth-child(3) .quick-card-icon { background: var(--card); color: var(--text); }
.stat-icon.red, .panel-icon-red, .quick-card:nth-child(4) .quick-card-icon { background: var(--card); color: var(--text); }
.panel-icon-green { background: var(--card); color: var(--text); }
.quick-card { transition: .25s ease; align-items: flex-start; }
.quick-card-icon { width: 46px; height: 46px; border-radius: 8px; margin-bottom: 10px; }
.quick-card strong { margin-top: 2px; }
.side-menu a:hover .nav-icon, .side-menu a.active .nav-icon { color: var(--text); background: var(--card); border-color: var(--border); box-shadow: none; }

.nav-icon {
  width: 27px !important;
  height: 27px !important;
  min-width: 27px !important;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 8px !important;
  border: 1px solid var(--border);
  flex: 0 0 30px;
  flex-basis: 27px !important;
}
.nav-icon svg { width: 16.5px !important; height: 16.5px !important; display: block; stroke: currentColor; }
.sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 22px;
  display: flex;
  flex-direction: column;
  gap: 16px !important;
  z-index: 20;
}
.sidebar-footer { margin-top: auto; display: grid; gap: 9px !important; }
.modal.show { display: flex !important; opacity: 1 !important; visibility: visible !important; pointer-events: auto !important; }
[data-open-modal], [data-close-modal] { cursor: pointer; }
.password-drop-form {
  display: none;
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--card);
}
.password-drop-form:target, .password-drop-form.password-drop-form-visible { display: block; }
.password-drop-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; margin-bottom: 14px; }
.password-drop-head h3 { margin: 4px 0 0; font-size: 18px; line-height: 1.2; }
.password-close {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: 999px;
  border: 1px solid var(--border);
  color: var(--celeste-claro);
  text-decoration: none;
  font-weight: 800;
  font-size: 12px;
}
.password-inline-form { display: grid; gap: 14px; }
.password-inline-form .form-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.password-inline-form .btn { width: fit-content; min-width: 220px; }
#formCambiarPassword { scroll-margin-top: 22px; }
#tablaConfiguracion { width: 100% !important; table-layout: fixed !important; min-width: 0 !important; }
#tablaConfiguracion th:nth-child(1), #tablaConfiguracion td:nth-child(1) { width: 28% !important; }
#tablaConfiguracion th:nth-child(2), #tablaConfiguracion td:nth-child(2) { width: 56% !important; }
#tablaConfiguracion th:nth-child(3), #tablaConfiguracion td:nth-child(3) { width: 16% !important; }
#tablaConfiguracion td, #tablaConfiguracion th { white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important; }
.table-card .mini-actions:not(.no-iconify), .responsive-table td .mini-actions:not(.no-iconify), .detail-item .mini-actions:not(.no-iconify), td[data-label="Acciones"] .mini-actions:not(.no-iconify), td .mini-actions.row-actions:not(.no-iconify) {
  display: inline-flex !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  gap: 6px !important;
}
.table-card .mini-actions:not(.no-iconify) a:not(.btn), .table-card .mini-actions:not(.no-iconify) button:not(.btn), .responsive-table td .mini-actions:not(.no-iconify) a:not(.btn), .responsive-table td .mini-actions:not(.no-iconify) button:not(.btn), .detail-item .mini-actions:not(.no-iconify) a:not(.btn), .detail-item .mini-actions:not(.no-iconify) button:not(.btn), td[data-label="Acciones"] .mini-actions:not(.no-iconify) a:not(.btn), td[data-label="Acciones"] .mini-actions:not(.no-iconify) button:not(.btn), td .mini-actions.row-actions:not(.no-iconify) a:not(.btn), td .mini-actions.row-actions:not(.no-iconify) button:not(.btn) {
  position: relative !important;
  width: 33px !important;
  min-width: 33px !important;
  height: 33px !important;
  min-height: 33px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border-radius: 8px !important;
  border: 1px solid var(--border) !important;
  background: var(--card) !important;
  color: var(--celeste-claro) !important;
  text-decoration: none !important;
  box-shadow: none !important;
  overflow: visible !important;
  transition: transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease !important;
  font-size: 0 !important;
  line-height: 0 !important;
}
.table-card .mini-actions:not(.no-iconify) a:not(.btn):hover, .table-card .mini-actions:not(.no-iconify) button:not(.btn):hover, .responsive-table td .mini-actions:not(.no-iconify) a:not(.btn):hover, .responsive-table td .mini-actions:not(.no-iconify) button:not(.btn):hover, .detail-item .mini-actions:not(.no-iconify) a:not(.btn):hover, .detail-item .mini-actions:not(.no-iconify) button:not(.btn):hover, td[data-label="Acciones"] .mini-actions:not(.no-iconify) a:not(.btn):hover, td[data-label="Acciones"] .mini-actions:not(.no-iconify) button:not(.btn):hover, td .mini-actions.row-actions:not(.no-iconify) a:not(.btn):hover, td .mini-actions.row-actions:not(.no-iconify) button:not(.btn):hover {
  transform: translateY(-1px);
  background: var(--brand-sky-soft) !important;
  border-color: var(--border) !important;
  box-shadow: none !important;
  color: var(--muted) !important;
}
.table-card .mini-actions:not(.no-iconify) a.action-danger, .table-card .mini-actions:not(.no-iconify) button.action-danger, .responsive-table td .mini-actions:not(.no-iconify) a.action-danger, .responsive-table td .mini-actions:not(.no-iconify) button.action-danger, .detail-item .mini-actions:not(.no-iconify) a.action-danger, .detail-item .mini-actions:not(.no-iconify) button.action-danger, td[data-label="Acciones"] .mini-actions:not(.no-iconify) a.action-danger, td[data-label="Acciones"] .mini-actions:not(.no-iconify) button.action-danger {
  color: #b91c1c !important;
  border-color: var(--border) !important;
}
.table-card .mini-actions:not(.no-iconify) a.action-danger:hover, .table-card .mini-actions:not(.no-iconify) button.action-danger:hover, .responsive-table td .mini-actions:not(.no-iconify) a.action-danger:hover, .responsive-table td .mini-actions:not(.no-iconify) button.action-danger:hover, .detail-item .mini-actions:not(.no-iconify) a.action-danger:hover, .detail-item .mini-actions:not(.no-iconify) button.action-danger:hover, td[data-label="Acciones"] .mini-actions:not(.no-iconify) a.action-danger:hover, td[data-label="Acciones"] .mini-actions:not(.no-iconify) button.action-danger:hover {
  background: #fef2f2 !important;
  border-color: var(--border) !important;
  color: #b91c1c !important;
}
.table-card .mini-actions:not(.no-iconify) a.action-warning, .table-card .mini-actions:not(.no-iconify) button.action-warning, .responsive-table td .mini-actions:not(.no-iconify) a.action-warning, .responsive-table td .mini-actions:not(.no-iconify) button.action-warning, .detail-item .mini-actions:not(.no-iconify) a.action-warning, .detail-item .mini-actions:not(.no-iconify) button.action-warning, td[data-label="Acciones"] .mini-actions:not(.no-iconify) a.action-warning, td[data-label="Acciones"] .mini-actions:not(.no-iconify) button.action-warning {
  color: #92400e !important;
  border-color: var(--border) !important;
}
.table-card .mini-actions:not(.no-iconify) a.action-success, .table-card .mini-actions:not(.no-iconify) button.action-success, .responsive-table td .mini-actions:not(.no-iconify) a.action-success, .responsive-table td .mini-actions:not(.no-iconify) button.action-success, .detail-item .mini-actions:not(.no-iconify) a.action-success, .detail-item .mini-actions:not(.no-iconify) button.action-success, td[data-label="Acciones"] .mini-actions:not(.no-iconify) a.action-success, td[data-label="Acciones"] .mini-actions:not(.no-iconify) button.action-success {
  color: #166534 !important;
  border-color: var(--border) !important;
}
.table-card .mini-actions:not(.no-iconify) .action-icon, .responsive-table td .mini-actions:not(.no-iconify) .action-icon, .detail-item .mini-actions:not(.no-iconify) .action-icon, td[data-label="Acciones"] .mini-actions:not(.no-iconify) .action-icon {
  width: 16px;
  height: 16px;
  display: block;
  stroke: currentColor;
}
.table-card .mini-actions:not(.no-iconify) a[data-tooltip]::after, .table-card .mini-actions:not(.no-iconify) button[data-tooltip]::after, .responsive-table td .mini-actions:not(.no-iconify) a[data-tooltip]::after, .responsive-table td .mini-actions:not(.no-iconify) button[data-tooltip]::after, .detail-item .mini-actions:not(.no-iconify) a[data-tooltip]::after, .detail-item .mini-actions:not(.no-iconify) button[data-tooltip]::after, td[data-label="Acciones"] .mini-actions:not(.no-iconify) a[data-tooltip]::after, td[data-label="Acciones"] .mini-actions:not(.no-iconify) button[data-tooltip]::after {
  content: attr(data-tooltip);
  position: absolute;
  left: 50%;
  bottom: calc(100% + 8px);
  transform: translateX(-50%) translateY(4px);
  padding: 6px 9px;
  border-radius: 8px;
  background: var(--card);
  color: var(--muted);
  border: 1px solid var(--border);
  font-size: 11px !important;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .02em;
  white-space: nowrap;
  box-shadow: none;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 50;
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}
.table-card .mini-actions:not(.no-iconify) a[data-tooltip]::before, .table-card .mini-actions:not(.no-iconify) button[data-tooltip]::before, .responsive-table td .mini-actions:not(.no-iconify) a[data-tooltip]::before, .responsive-table td .mini-actions:not(.no-iconify) button[data-tooltip]::before, .detail-item .mini-actions:not(.no-iconify) a[data-tooltip]::before, .detail-item .mini-actions:not(.no-iconify) button[data-tooltip]::before, td[data-label="Acciones"] .mini-actions:not(.no-iconify) a[data-tooltip]::before, td[data-label="Acciones"] .mini-actions:not(.no-iconify) button[data-tooltip]::before {
  content: "";
  position: absolute;
  left: 50%;
  bottom: calc(100% + 4px);
  transform: translateX(-50%) translateY(4px);
  width: 8px;
  height: 8px;
  background: var(--card);
  border-right: 1px solid var(--border);
  border-bottom: 1px solid var(--border);
  rotate: 45deg;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  z-index: 49;
  transition: opacity .16s ease, transform .16s ease, visibility .16s ease;
}
.table-card .mini-actions:not(.no-iconify) a[data-tooltip]:hover::after, .table-card .mini-actions:not(.no-iconify) a[data-tooltip]:hover::before, .table-card .mini-actions:not(.no-iconify) button[data-tooltip]:hover::after, .table-card .mini-actions:not(.no-iconify) button[data-tooltip]:hover::before, .responsive-table td .mini-actions:not(.no-iconify) a[data-tooltip]:hover::after, .responsive-table td .mini-actions:not(.no-iconify) a[data-tooltip]:hover::before, .responsive-table td .mini-actions:not(.no-iconify) button[data-tooltip]:hover::after, .responsive-table td .mini-actions:not(.no-iconify) button[data-tooltip]:hover::before, .detail-item .mini-actions:not(.no-iconify) a[data-tooltip]:hover::after, .detail-item .mini-actions:not(.no-iconify) a[data-tooltip]:hover::before, .detail-item .mini-actions:not(.no-iconify) button[data-tooltip]:hover::after, .detail-item .mini-actions:not(.no-iconify) button[data-tooltip]:hover::before, td[data-label="Acciones"] .mini-actions:not(.no-iconify) a[data-tooltip]:hover::after, td[data-label="Acciones"] .mini-actions:not(.no-iconify) a[data-tooltip]:hover::before, td[data-label="Acciones"] .mini-actions:not(.no-iconify) button[data-tooltip]:hover::after, td[data-label="Acciones"] .mini-actions:not(.no-iconify) button[data-tooltip]:hover::before {
  opacity: 1;
  visibility: visible;
  transform: translateX(-50%) translateY(0);
}
.module-filter-panel h3 { line-height: 1.18 !important; font-weight: 700 !important; letter-spacing: -0.01em !important; margin-top: 2px !important; margin-bottom: 0 !important; }
.panel-head h2, .module-filter-head h3 { margin-top: 2px !important; margin-bottom: 0 !important; }
.panel h2 { line-height: 1.18 !important; margin-top: 2px !important; margin-bottom: 0 !important; }
.module-filter-panel .eyebrow { font-size: 15px !important; line-height: 1.1 !important; letter-spacing: .08em !important; }
.panel .eyebrow, .panel-head .eyebrow { font-size: 15px !important; letter-spacing: .08em !important; }
.table-card tbody td span:not(.chip):not(.status), .table-card tbody td a:not(.btn), .responsive-table tbody td span:not(.chip):not(.status), .responsive-table tbody td a:not(.btn), .dashboard-simple-table tbody td small, .estado-table tbody td small {
  font-weight: 400 !important;
}
.table-fit { width: 100% !important; overflow-x: auto; max-width: 100% !important; }
.table-card { overflow-x: auto; }
.table-card table, .table-fit table, .responsive-table, .estado-table, .dashboard-simple-table { width: 100% !important; border-collapse: collapse !important; border-spacing: 0 !important; }
.estado-table td small, .dashboard-simple-table td small { display: block !important; margin-top: 3px !important; line-height: 1.3 !important; opacity: 1 !important; }
.table-card td small, .responsive-table td small { margin-top: 3px !important; opacity: 1 !important; }
td[data-label="Acciones"] .mini-actions { justify-content: center !important; }
input, select, textarea, a, p, span, small, label, td, th, div, strong, b, h1, h2, h3, h4, h5, h6 { font-family: var(--font-sans) !important; }
body { margin: 0; min-height: 100vh; font-weight: 400 !important; letter-spacing: 0 !important; font-feature-settings: "cv02", "cv03", "cv04", "cv11"; }
.panel-head h2, .module-filter-head h3, .modal-head h2 { font-weight: 600 !important; }
h1, h2, h3, h4, .panel h2, .login-card h2 { font-weight: 600 !important; letter-spacing: -0.015em !important; }
strong, b { font-weight: 600 !important; }
.table-card tbody td, .table-card tbody td strong, .table-card tbody td small, .responsive-table tbody td, .responsive-table tbody td strong, .responsive-table tbody td small, .dashboard-simple-table tbody td, .dashboard-simple-table tbody td strong, .estado-table tbody td, .estado-table tbody td strong {
  font-weight: 400 !important;
}
.table-card thead th, .responsive-table thead th, .dashboard-simple-table thead th, .estado-table thead th { font-weight: 700 !important; }
.chip, .status { font-family: var(--font-sans) !important; }
.btn, button, .mini-actions a, .mini-actions button, .link-action { font-family: var(--font-sans) !important; font-weight: 600 !important; }
input, select, textarea {
  width: 100%;
  border: 1px solid var(--border);
  background: var(--input);
  color: var(--text);
  border-radius: 8px;
  padding: 13px 14px;
  outline: none;
  transition: .2s ease;
  font-weight: 400 !important;
  line-height: 1.3 !important;
  max-width: 100%;
}
input::placeholder, textarea::placeholder { font-weight: 400 !important; font-size: 12.5px !important; font-family: var(--font-sans) !important; }
p, span, small, label, input, select, textarea, a, td, th { font-size: 13.5px !important; }
.topbar h1 { margin: 0 0 4px !important; font-family: var(--font-title) !important; line-height: 1.15 !important; }
.topbar p { margin: 3px 0 0; font-size: 13px !important; line-height: 1.35 !important; font-weight: 400 !important; }
.panel h2, .panel-head h2, .module-filter-head h3, .module-filter-panel h3, .modal-head h2 { font-size: 18px !important; }
.table-card th, .responsive-table th, .estado-table th, .dashboard-simple-table th { font-size: 11px !important; }
.side-menu a {
  display: flex;
  align-items: center;
  gap: 10px !important;
  padding: 5px 11px !important;
  font-size: 14px !important;
  transition: 0.25s ease;
  letter-spacing: 0;
  text-shadow: none !important;
  line-height: 1.15 !important;
  min-height: 42px !important;
  font-family: var(--font-sans) !important;
}
.btn, button, .link-action { font-size: 11px !important; }
.chip, .status { white-space: nowrap !important; }
.stat-card span { color: var(--muted); font-size: 12px !important; font-weight: 600 !important; }
.stat-card strong { display: block; font-size: 25px !important; line-height: 1.1; margin: 3px 0; font-weight: 700 !important; }
.stat-card small { color: var(--muted); font-size: 12px !important; }
.course-item strong, .alert-row strong, .quick-card strong { font-size: 13.5px !important; }
.course-item small, .alert-row small, .quick-card small { font-size: 12px !important; }
th.actions-col, td[data-label="Acciones"], .table-card td:last-child, .table-card th:last-child, .responsive-table td:last-child, .responsive-table th:last-child, .estado-table td:last-child, .estado-table th:last-child {
  width: 176px !important;
  min-width: 176px !important;
  max-width: 176px !important;
  text-align: center !important;
  white-space: nowrap !important;
  overflow: visible !important;
  vertical-align: middle !important;
  box-sizing: border-box !important;
}
.mini-actions a, .mini-actions button {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  min-height: 30px !important;
  max-width: 30px !important;
  max-height: 30px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex: 0 0 30px !important;
  line-height: 1 !important;
  box-sizing: border-box !important;
}
.mini-actions a i, .mini-actions button i, .mini-actions a svg, .mini-actions button svg { width: 14px !important; height: 14px !important; font-size: 14px !important; flex: 0 0 auto !important; }
.table-card td:last-child, .responsive-table td:last-child, .estado-table td:last-child { padding-right: 10px !important; padding-left: 10px !important; }
.table-card th, .table-card td, .responsive-table th, .responsive-table td, .estado-table th, .estado-table td, .dashboard-simple-table th, .dashboard-simple-table td {
  padding-left: 8px !important;
  padding-right: 8px !important;
}
.table-card td, .responsive-table td, .estado-table td, .dashboard-simple-table td {
  vertical-align: middle !important;
  line-height: 1.25 !important;
  white-space: normal !important;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none !important;
  font-size: 13.5px !important;
}
.estado-certificados-stats {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  justify-content: stretch !important;
  align-items: stretch !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: 100% !important;
  margin-bottom: 14px !important;
}
.estado-certificados-stats .stat-card {
  width: 100% !important;
  min-height: 74px !important;
  padding: 12px 14px !important;
  border-radius: 8px !important;
  gap: 12px !important;
  align-items: center !important;
}
.estado-certificados-stats .stat-icon { width: 42px !important; height: 42px !important; min-width: 42px !important; flex: 0 0 42px !important; border-radius: 8px !important; }
.estado-certificados-stats .stat-icon .icon-svg, .estado-certificados-stats .stat-icon svg { width: 21px !important; height: 21px !important; display: block !important; }
.estado-certificados-stats .stat-card span { font-size: 11px !important; line-height: 1.15 !important; }
.estado-certificados-stats .stat-card strong { font-size: 23px !important; line-height: 1.2 !important; }
.estado-certificados-stats .stat-card small { font-size: 11px !important; line-height: 1.2 !important; }
.estado-certificados-stats .stat-icon.blue { background: var(--card) !important; color: var(--text) !important; }
.estado-certificados-stats .stat-icon.gold { background: var(--card) !important; color: var(--text) !important; }
.estado-certificados-stats .stat-icon.cyan { background: var(--card) !important; color: var(--text) !important; }
.alert + .panel, .panel + .alert, .detail-box + .panel, .table-card + .panel, .form-grid + .panel { margin-top: 18px !important; }
.module-filter-panel, .table-card, .detail-grid, .course-list, .alert-list { margin-bottom: 14px; }
.panel .table-card:last-child, .panel .detail-grid:last-child, .panel .form-grid:last-child, .panel .quick-grid:last-child, .panel .course-list:last-child, .panel .alert-list:last-child, .panel .filter-row:last-child, .panel .search-grid:last-child {
  margin-bottom: 0 !important;
}
form + .panel, .panel form + .alert, .panel .alert + form, .module-search-grid + .btn, .module-search-grid + .btn-clear-filter, .detail-grid + .panel, .panel-head + .detail-grid, .panel-head + .table-card, .panel-head + form {
  margin-top: 12px !important;
}
section.panel { margin-bottom: 0 !important; }
section.module-filter-panel + section.panel, section.panel + section.module-filter-panel, .dashboard-grid + section.panel, .estado-certificados-stats + section.panel, .estado-certificados-stats + .panel {
  margin-top: 18px !important;
}
.combo-editable.combo-curso { position: relative !important; width: 100% !important; display: block !important; z-index: 20 !important; }
.combo-editable.combo-curso.open { z-index: 999999 !important; }
.combo-editable-input {
  width: 100% !important;
  min-height: 42px !important;
  padding: 9px 40px 9px 13px !important;
  outline: none !important;
  font-weight: 400 !important;
  font-family: inherit !important;
  height: 42px !important;
}
.combo-editable.combo-curso::after {
  content: "" !important;
  position: absolute !important;
  right: 16px !important;
  top: 50% !important;
  width: 8px !important;
  height: 8px !important;
  border-right: 2px solid currentColor !important;
  border-bottom: 2px solid currentColor !important;
  transform: translateY(-65%) rotate(45deg) !important;
  color: var(--muted) !important;
  pointer-events: none !important;
  font-size: 0 !important;
  background: transparent !important;
}
.combo-editable.combo-curso.open::after { transform: translateY(-35%) rotate(225deg) !important; }
.combo-editable-list.combo-editable-floating, .combo-editable-floating {
  position: fixed !important;
  z-index: 2147483000 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  background: var(--card) !important;
  box-shadow: none !important;
  padding: 6px !important;
  box-sizing: border-box !important;
}
.combo-editable-item {
  width: 100% !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--text) !important;
  text-align: left !important;
  padding: 9px 11px !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  font-weight: 400 !important;
  line-height: 1.25 !important;
  font-family: inherit !important;
  white-space: normal !important;
}
.combo-editable-item:hover, .combo-editable-item.active { background: var(--brand-sky-soft) !important; }
.combo-editable-item.selected { background: var(--card) !important; color: var(--dorado-claro) !important; }
.combo-editable-empty { padding: 12px !important; color: var(--muted) !important; font-weight: 600 !important; text-align: center !important; }
.modal-card, .form-grid, .module-search-grid, label { overflow: visible !important; }
select:not(.select-original-hidden) { appearance: auto !important; -webkit-appearance: auto !important; -moz-appearance: auto !important; }
.status.estado-pendiente-generar, .estado-pendiente-generar { background: #fffbeb !important; color: #92400e !important; border-color: var(--border) !important; }
.status.estado-pendiente-escaneado, .estado-pendiente-escaneado { background: #fffbeb !important; color: #92400e !important; border-color: var(--border) !important; }
.status.estado-registrado, .estado-registrado { background: var(--card) !important; color: var(--text) !important; border-color: var(--border) !important; }
#tablaCertificados td:nth-child(1) .status { min-width: 0 !important; width: fit-content !important; justify-content: center !important; text-align: center !important; white-space: nowrap !important; }
.certificados-unificado-table td { vertical-align: middle !important; }
#tablaCertificados td[data-label="Acciones"] .mini-actions { justify-content: flex-end !important; overflow: visible !important; }
/* Tabla administrativa de certificados: nueve columnas y desbordamiento controlado. */
@media (min-width: 769px) {
  body.page-certificados .table-card:has(#tablaCertificados) { overflow-x: auto !important; }
  body.page-certificados #tablaCertificados { width: 100% !important; min-width: 1320px !important; table-layout: fixed !important; }
  body.page-certificados #tablaCertificados :is(th, td):nth-child(1) { width: 105px !important; }
  body.page-certificados #tablaCertificados :is(th, td):nth-child(2) { width: 92px !important; }
  body.page-certificados #tablaCertificados :is(th, td):nth-child(3) { width: 92px !important; }
  body.page-certificados #tablaCertificados :is(th, td):nth-child(4) { width: 92px !important; }
  body.page-certificados #tablaCertificados :is(th, td):nth-child(5) { width: 90px !important; white-space: nowrap !important; }
  body.page-certificados #tablaCertificados :is(th, td):nth-child(6) { width: 220px !important; }
  body.page-certificados #tablaCertificados :is(th, td):nth-child(7) { width: auto !important; min-width: 300px !important; white-space: normal !important; overflow-wrap: break-word !important; }
  body.page-certificados #tablaCertificados :is(th, td):nth-child(8) { width: 108px !important; white-space: nowrap !important; }
  body.page-certificados #tablaCertificados :is(th, td):nth-child(9) { width: 170px !important; }
}
.certificate-modal-card { width: min(1040px, calc(100vw - 28px)) !important; max-height: calc(100vh - 34px) !important; padding: 14px !important; border-radius: 8px !important; }
.certificate-modal-card .modal-head { margin-bottom: 8px !important; }
.certificate-modal-card .modal-head button {
  width: 28px !important;
  height: 28px !important;
  border-radius: 8px !important;
  font-size: 16px !important;
  line-height: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 0 2px 0 !important;
}
.certificate-preview-modal {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: auto !important;
  max-height: 72vh !important;
  aspect-ratio: 1.414 / 1 !important;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  border: none !important;
  box-shadow: none !important;
  border-radius: 6px !important;
}
.certificate-preview-modal iframe { width: 100% !important; height: 100% !important; border: 0 !important; border-radius: 6px !important; background: transparent !important; }
.certificate-preview-modal img { width: 100% !important; height: 100% !important; object-fit: contain !important; border-radius: 6px !important; background: transparent !important; }
.modal-head h2 { max-width: 100% !important; overflow-wrap: break-word !important; word-break: normal !important; }
.panel-head > .btn, .panel-head > .btn-gold, .panel-head > .link-action, .panel-head > a, .panel-head > button, .module-filter-head > .btn, .module-filter-head > .btn-gold, .module-filter-head > .link-action, .module-filter-head > a, .module-filter-head > button {
  flex: 0 0 auto !important;
  min-height: 38px !important;
  height: auto !important;
  min-width: 132px !important;
  max-width: 100% !important;
  padding: 9px 14px !important;
  border-radius: 8px !important;
  font-size: 12.5px !important;
  line-height: 1.15 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  text-align: center !important;
  white-space: normal !important;
  position: static !important;
  margin-left: auto !important;
}
.panel-head .mini-actions, .panel-head .top-actions, .panel-head .panel-actions, .module-filter-head .mini-actions, .module-filter-head .top-actions, .module-filter-head .panel-actions {
  flex: 0 0 auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  max-width: 100% !important;
  margin-left: auto !important;
  overflow: visible !important;
}
.panel-head .mini-actions a, .panel-head .mini-actions button, .module-filter-head .mini-actions a, .module-filter-head .mini-actions button {
  width: auto !important;
  min-width: 120px !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 38px !important;
  padding: 9px 14px !important;
  border-radius: 8px !important;
  font-size: 12.5px !important;
  line-height: 1.15 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: normal !important;
  overflow: visible !important;
}
.panel-head .mini-actions a::before, .panel-head .mini-actions a::after, .panel-head .mini-actions button::before, .panel-head .mini-actions button::after, .module-filter-head .mini-actions a::before, .module-filter-head .mini-actions a::after, .module-filter-head .mini-actions button::before, .module-filter-head .mini-actions button::after {
  display: none !important;
  content: none !important;
}
.panel-head .mini-actions .action-icon, .module-filter-head .mini-actions .action-icon { width: 15px !important; height: 15px !important; margin-right: 6px !important; }
.panel-head + .mini-actions, .panel-head + .top-actions, .panel-head + .panel-actions {
  margin-top: 10px !important;
  margin-bottom: 12px !important;
  display: flex !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  overflow: visible !important;
}
.panel-head + .mini-actions a, .panel-head + .mini-actions button, .panel-head + .top-actions a, .panel-head + .top-actions button, .panel-head + .panel-actions a, .panel-head + .panel-actions button {
  width: auto !important;
  min-width: 120px !important;
  height: auto !important;
  min-height: 38px !important;
  padding: 9px 14px !important;
  font-size: 12.5px !important;
  line-height: 1.15 !important;
  border-radius: 8px !important;
  white-space: normal !important;
}
.exam-form { display: grid; gap: 14px; }
.question-card { border: 1px solid var(--border); background: var(--card2); border-radius: 8px; }
.question-title { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 12px; }
.question-title strong { line-height: 1.4; }
.answer-grid { display: grid; gap: 9px; }
.answer-option {
  display: grid;
  grid-template-columns: auto auto minmax(0, 1fr);
  align-items: start;
  gap: 9px;
  padding: 11px 12px;
  border: 1px solid var(--border);
  border-radius: 8px;
  background: var(--card);
  cursor: pointer;
}
.answer-option:hover { border-color: var(--border); }
.answer-option input { margin-top: 2px; }
.answer-option span { color: var(--celeste-claro); font-weight: 700; }
.answer-option strong { font-weight: 500 !important; line-height: 1.35; }
.mini-actions a.primary-action { color: var(--dorado-claro) !important; }
.eval-overview { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
.eval-metric {
  border: 1px solid var(--border);
  background: var(--card);
  border-radius: 8px;
  padding: 12px;
  display: grid;
  gap: 4px;
}
.eval-metric span { color: var(--muted); font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; }
.eval-metric strong { font-size: 24px; line-height: 1; color: var(--celeste-claro); }
/* Métricas de Evaluaciones: estados compactos con color e indicador visual. */
body.page-evaluaciones .eval-overview { gap: 10px !important; margin-bottom: 10px !important; }
body.page-evaluaciones .eval-metric {
  --eval-accent: #173b68;
  --eval-soft: #f5f8fc;
  --eval-line: #cbd5e1;
  position: relative !important;
  min-height: 78px !important;
  padding: 9px 12px !important;
  display: grid !important;
  grid-template-rows: auto 1fr auto !important;
  gap: 2px !important;
  overflow: hidden !important;
  border: 1px solid var(--eval-line) !important;
  border-left: 4px solid var(--eval-accent) !important;
  border-radius: 8px !important;
}
body.page-evaluaciones .eval-metric:nth-child(2) { --eval-accent: #0284c7; --eval-soft: #f0f9ff; --eval-line: #bae6fd; }
body.page-evaluaciones .eval-metric:nth-child(3) { --eval-accent: #b8860b; --eval-soft: #fffbeb; --eval-line: #fde68a; }
body.page-evaluaciones .eval-metric:nth-child(4) { --eval-accent: #dc2626; --eval-soft: #fff5f5; --eval-line: #fecaca; }
body.page-evaluaciones .eval-metric:nth-child(5) { --eval-accent: #9a7b11; --eval-soft: #fffbea; --eval-line: #fde68a; }
body.page-evaluaciones .eval-metric::after {
  position: absolute;
  top: 10px;
  right: 10px;
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  border-radius: 7px;
  background: var(--eval-line);
  color: var(--eval-accent);
  font-size: 15px;
  font-weight: 900;
  line-height: 1;
  content: '≡';
}
body.page-evaluaciones .eval-metric:nth-child(2)::after { content: '?'; }
body.page-evaluaciones .eval-metric:nth-child(3)::after { content: '✓'; }
body.page-evaluaciones .eval-metric:nth-child(4)::after { content: '×'; }
body.page-evaluaciones .eval-metric:nth-child(5)::after { content: '▤'; }
body.page-evaluaciones .eval-metric span { color: #27496d !important; font-size: 10px !important; line-height: 1.1 !important; letter-spacing: .03em !important; }
body.page-evaluaciones .eval-metric strong { color: #102a4d !important; font-size: 22px !important; line-height: 1 !important; }
body.page-evaluaciones .eval-metric small {
  display: block;
  padding-top: 4px;
  border-top: 1px solid var(--eval-line);
  color: #52708f !important;
  font-size: 10px !important;
  line-height: 1.1 !important;
}
.eval-nav { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.eval-nav a {
  min-height: 34px;
  padding: 8px 12px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--card2);
  color: var(--text);
  font-size: 12px;
  font-weight: 700;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.eval-nav a:hover { border-color: var(--border); color: var(--celeste-claro); }
.import-detail-panel { border-color: var(--border) !important; }
.import-detail-list { display: grid; gap: 7px; }
.import-detail-list div {
  padding: 9px 10px;
  border-radius: 8px;
  border: 1px solid var(--border);
  background: var(--card);
  color: var(--text);
  font-size: 12px;
  line-height: 1.35;
}
.panel, .stat-card, .table-card, .quick-card, .course-item, .alert-row, .performance-row, .responsive-table td, .responsive-table td > *, .table-card td, .table-card td > * { min-width: 0 !important; }
.panel-head, .module-filter-head { margin-bottom: 12px !important; }
.panel-head > div, .module-filter-head > div, .panel-title-wrap > div { min-width: 0 !important; }
.panel-head h2, .module-filter-head h3, .topbar h1, .course-item strong, .course-item small, .quick-card strong, .quick-card small, .performance-name, .table-card td strong, .responsive-table td strong, .table-card td small, .responsive-table td small {
  max-width: 100% !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  hyphens: none !important;
}
.table-card td strong, .responsive-table td strong { display: block !important; line-height: 1.22 !important; }
.table-card td small, .responsive-table td small { display: block !important; line-height: 1.25 !important; }
.table-card table.cursos-table td:nth-child(2) { min-width: 0 !important; }
.table-card table.cursos-table td:nth-child(2) strong, .table-card table.cursos-table td:nth-child(2) small {
  max-width: 100% !important;
  min-width: 0 !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
}
* { box-sizing: border-box; text-shadow: none !important; -webkit-text-stroke: 0 !important; filter: none !important; }
.oece-access-actions {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 5px !important;
  min-width: 0 !important;
  width: fit-content !important;
  white-space: nowrap !important;
}
.oece-plan-form { display: contents !important; align-items: center !important; gap: 0 !important; }
.oece-access-actions form { margin: 0 !important; padding: 0 !important; width: auto !important; min-width: 0 !important; display: contents !important; }
.oece-access-actions .icon-action { width: 34px !important; height: 34px !important; min-width: 34px !important; padding: 0 !important; border-radius: 8px !important; }
.oece-access-actions .icon-action .icon-svg { width: 17px !important; height: 17px !important; }
.exam-timer { justify-self: end !important; color: var(--dorado-claro) !important; white-space: nowrap !important; }
body {
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: auto;
  font-synthesis-weight: none;
  font-size: 14.5px !important;
  line-height: 1.45;
  overflow-x: hidden;
}
html {
  font-family: var(--font-sans) !important;
  text-rendering: geometricPrecision;
  -webkit-font-smoothing: subpixel-antialiased;
  -moz-osx-font-smoothing: auto;
  font-synthesis-weight: none;
  font-size: 14.5px !important;
  line-height: 1.45;
  letter-spacing: 0;
  overflow-x: hidden;
}
.content, .panel *, .responsive-table, .responsive-table *, .module-filter-panel, .module-filter-panel * { min-width: 0; }
.content { padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.panel, section.panel, .stat-card, .quick-card, .quick-action-card, .question-card, .import-detail-panel {
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 16px !important;
  margin: 0 !important;
  overflow: visible !important;
}
.panel.wide, section.panel.wide { min-height: 0 !important; }
.panel + .panel, .panel + .stats-grid, .stats-grid + .panel, .stats-grid + .dashboard-grid, .dashboard-grid + .dashboard-grid, .dashboard-grid + .panel, .panel + .dashboard-grid, .module-filter-panel + .panel, .panel + .module-filter-panel, section.panel:not(:first-of-type) {
  margin-top: 0px !important;
}
.module-filter-head {
  justify-content: space-between !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
}
.panel-head, .modal-head {
  display: flex !important;
  align-items: flex-start !important;
  justify-content: space-between !important;
  gap: 10px !important;
  flex-wrap: wrap !important;
  width: 100% !important;
  min-width: 0 !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  margin: 0 0 12px !important;
  padding: 0 !important;
}
.panel-head > div:first-child, .module-filter-head > div:first-child, .modal-head > div:first-child, .panel-title-wrap { flex: 1 1 auto !important; min-width: 0 !important; max-width: 100% !important; }
.panel-title-wrap { display: flex !important; align-items: flex-start !important; gap: 10px !important; }
.panel-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 10px; }
.student-role-label { color: var(--celeste-claro) !important; font-weight: 800 !important; text-transform: none !important; letter-spacing: 0 !important; }
.module-filter-count, .panel-head .chip.cyan { background: var(--card) !important; border: 1px solid var(--border) !important; color: var(--text) !important; }
.table-card table th, .table-card table td, .table-card table td strong, .table-card table td small, .table-card table td span:not(.chip):not(.status), .responsive-table th, .responsive-table td, .responsive-table td strong, .responsive-table td small, .responsive-table td span:not(.chip):not(.status), .dashboard-simple-table th, .dashboard-simple-table td, .dashboard-simple-table td strong, .dashboard-simple-table td small, .course-item strong, .course-item small, .alert-row strong, .alert-row small {
  color: var(--muted) !important;
}
.panel-head h3, .module-filter-head h2 { margin: 0 !important; line-height: 1.18 !important; letter-spacing: 0 !important; overflow-wrap: anywhere; word-break: normal; }
.panel-head h2, .module-filter-head h3, .modal-head h2 { margin: 0 !important; line-height: 1.18 !important; letter-spacing: 0 !important; }
.panel-head .eyebrow, .module-filter-head .eyebrow, .panel .eyebrow { display: block; margin: 0 0 3px !important; line-height: 1.1 !important; }
.detail-item-flow { display: block !important; }
.detail-item-flow > span { display: block; margin-bottom: 10px; }
.syllabus-module-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 12px; width: 100%; }
.syllabus-module { border: 1px solid var(--border); border-radius: 8px; background: var(--card); padding: 12px; }
.syllabus-module h3 { margin: 0 0 8px; font-size: 14px; line-height: 1.2; letter-spacing: 0; }
.syllabus-module ul { margin: 0; padding-left: 18px; }
.syllabus-module li, .syllabus-module p { color: var(--soft); font-size: 13px; line-height: 1.45; }
.panel-icon, .stat-icon, .quick-card-icon { flex: 0 0 auto; }
.stats-grid, .dashboard-grid, .quick-grid, .quick-actions-panel, .form-grid, .filter-row, .search-grid { gap: 14px !important; margin-bottom: 0 !important; }
.module-filter-panel, section.module-filter-panel { display: block !important; padding: 14px !important; }
.module-filter-head { display: grid !important; align-items: start !important; grid-template-columns: minmax(0, 1fr) auto !important; }
.module-filter-count {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  padding: 7px 12px;
  font-size: 12px;
  align-self: start !important;
  justify-self: end !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  white-space: nowrap !important;
}
.module-search-grid, .module-search-grid.three {
  display: grid !important;
  gap: 10px !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.certificate-search-grid { grid-template-columns: minmax(86px, 100px) minmax(150px, 190px) minmax(118px, 145px) minmax(210px, 1fr) minmax(72px, 86px) minmax(140px, 160px) !important; align-items: center !important; }
.certificate-search-grid input, .certificate-search-grid select { width: 100% !important; }
.courses-card-list td[data-label="Acciones"] .courses-actions-vertical, .courses-card-list td:nth-child(8) .courses-actions-vertical {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: start !important;
  justify-content: start !important;
  justify-items: start !important;
  gap: 7px !important;
  width: max-content !important;
  min-width: 0 !important;
  max-width: 100% !important;
}
.courses-card-list .courses-actions-vertical, .courses-card-list .courses-actions-vertical.row-actions { justify-items: start !important; }
.inline-admin-form { display: grid; gap: 8px; min-width: min(100%, 260px); }
.inline-admin-form input[type="text"] { min-width: 0; width: 100%; }
.answer-option.answer-correct { border-color: var(--border) !important; background: var(--card) !important; }
.answer-option:has(input[type="radio"]:checked), .answer-option.answer-selected { border-color: var(--border) !important; background: var(--card) !important; }
.answer-option.answer-wrong { border-color: var(--border) !important; background: var(--card) !important; }
.oece-paged-exam { gap: 14px !important; }
.exam-pager-head {
  align-items: center !important;
  gap: 8px !important;
  display: grid !important;
  padding: 12px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  background: var(--card2) !important;
}
.exam-pager-head strong { color: var(--text) !important; font-size: 14px !important; font-weight: 700 !important; line-height: 1.1 !important; }
.exam-pager-track { height: 8px !important; overflow: hidden !important; border-radius: 999px !important; }
.exam-pager-track span { display: block !important; height: 100% !important; border-radius: inherit !important; transition: width .2s ease !important; }
.exam-question-page[hidden] { display: none !important; }
.exam-question-page { min-height: 360px !important; }
.exam-pager-actions { display: grid !important; grid-template-columns: minmax(120px, auto) minmax(120px, auto) minmax(160px, auto) !important; justify-content: end !important; gap: 10px !important; }
.exam-pager-actions [hidden] { display: none !important; }
.simulator-access-panel { border-color: var(--border) !important; }
body.page-estudiante_dashboard .stats-grid { order: 1 !important; }
body.page-estudiante_dashboard .student-courses-panel { order: 2 !important; }
body.page-estudiante_dashboard .simulator-access-panel { order: 3 !important; }
.simulator-student-intro { margin: 0 0 14px !important; color: var(--text) !important; font-size: 14px !important; line-height: 1.2 !important; }
.oece-plan-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 12px !important; margin: 0 0 14px !important; }
.oece-plan-card {
  display: grid !important;
  gap: 8px !important;
  padding: 14px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  background: var(--card) !important;
  min-width: 0 !important;
}
.oece-plan-card.featured { border-color: var(--border) !important; background: var(--card) !important; }
.oece-plan-badge {
  width: fit-content !important;
  max-width: 100% !important;
  padding: 4px 8px !important;
  border-radius: 999px !important;
  color: var(--status-info-text) !important;
  background: var(--status-info-bg) !important;
  border: 1px solid var(--status-info-border) !important;
  font-size: var(--color-label-font-size) !important;
  font-weight: 800 !important;
  line-height: 1 !important;
}
.oece-plan-card.featured .oece-plan-badge { color: var(--status-warning-text) !important; background: var(--status-warning-bg) !important; border-color: var(--status-warning-border) !important; }
.oece-plan-card strong { font-size: 15px !important; line-height: 1.1 !important; }
.oece-plan-price { color: var(--dorado-claro) !important; font-size: 24px !important; line-height: 1 !important; font-weight: 900 !important; }
.oece-plan-card small { color: var(--muted) !important; font-size: 12px !important; line-height: 1.35 !important; }
.oece-plan-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 34px !important;
  margin-top: 4px !important;
  padding: 0 12px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  line-height: 1 !important;
  text-align: center !important;
}
body.page-estudiante_simulador_oece_planes .content { background: var(--bg) !important; }
.oece-pricing-panel { background: var(--card) !important; border: 1px solid var(--border) !important; box-shadow: none !important; padding: 14px !important; }
.oece-pricing-panel .panel-head { margin-bottom: 12px !important; }
.oece-pricing-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 12px !important; align-items: stretch !important; }
.oece-pricing-card {
  min-height: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 9px !important;
  padding: 18px 14px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  background: color-mix(in srgb, var(--card) 92%, var(--celeste-claro) 8%) !important;
  color: var(--text) !important;
  box-shadow: none !important;
  font-family: inherit !important;
}
.oece-pricing-card.recommended { border-color: var(--border) !important; background: color-mix(in srgb, var(--card) 88%, var(--dorado-claro) 12%) !important; }
.oece-pricing-label {
  width: fit-content !important;
  max-width: 100% !important;
  padding: 5px 10px !important;
  border: 1px solid var(--border) !important;
  border-radius: 999px !important;
  color: var(--text) !important;
  background: color-mix(in srgb, var(--card) 78%, var(--celeste-claro) 22%) !important;
  font-size: 10.5px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
}
.oece-pricing-card.recommended .oece-pricing-label { color: var(--dorado-claro) !important; border-color: var(--border) !important; background: var(--card) !important; }
.oece-pricing-card h3 {
  margin: 2px 0 0 !important;
  color: var(--text) !important;
  font-size: 17px !important;
  font-weight: 800 !important;
  line-height: 1.1 !important;
  letter-spacing: 0 !important;
}
.oece-pricing-card p {
  margin: 0 !important;
  color: var(--muted) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.35 !important;
  letter-spacing: 0 !important;
}
.oece-pricing-divider { height: 1px !important; margin: 4px 0 !important; background: var(--border) !important; }
.oece-pricing-old { color: var(--muted) !important; font-size: 12px !important; letter-spacing: 0 !important; }
.oece-pricing-dash { color: var(--muted) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: 0 !important; }
.oece-pricing-old { text-decoration: line-through !important; font-weight: 800 !important; }
.oece-pricing-price { display: flex !important; align-items: baseline !important; gap: 6px !important; color: var(--text) !important; }
.oece-pricing-price span { font-size: 17px !important; font-weight: 800 !important; }
.oece-pricing-price strong { color: var(--text) !important; font-size: 32px !important; font-weight: 800 !important; line-height: .98 !important; letter-spacing: 0 !important; }
.oece-pricing-price small, .oece-pricing-foot { color: var(--muted) !important; font-size: 12px !important; font-weight: 600 !important; letter-spacing: 0 !important; }
.oece-pricing-button {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 38px !important;
  margin-top: 2px !important;
  padding: 0 14px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  color: var(--text) !important;
  background: color-mix(in srgb, var(--card) 84%, var(--celeste-claro) 16%) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  letter-spacing: 0 !important;
  text-align: center !important;
}
.oece-pricing-button.gold { color: var(--dorado-claro) !important; border-color: var(--border) !important; background: var(--card) !important; }
.oece-pricing-button.muted { color: var(--text) !important; }
.oece-pricing-foot { display: block !important; text-align: center !important; }
.oece-pricing-list {
  display: grid !important;
  gap: 8px !important;
  margin: 6px 0 0 !important;
  padding: 12px 0 0 !important;
  border-top: 1px solid var(--border) !important;
  list-style: none !important;
}
.oece-pricing-list li {
  position: relative !important;
  padding-left: 20px !important;
  color: var(--text) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  line-height: 1.28 !important;
  letter-spacing: 0 !important;
}
.oece-pricing-list li::before {
  content: "✓" !important;
  position: absolute !important;
  left: 0 !important;
  top: 0 !important;
  color: var(--dorado-claro) !important;
  font-weight: 800 !important;
}
.simulator-stats { grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 10px !important; }
.simulator-stats .stat-card { display: grid !important; grid-template-columns: 42px minmax(0, 1fr) !important; align-items: center !important; gap: 10px !important; padding: 12px !important; }
.simulator-stats .stat-icon { width: 42px !important; height: 42px !important; border-radius: 8px !important; }
.simulator-stats .stat-card strong { font-size: 24px !important; line-height: 1 !important; }
.simulator-stats .stat-card span, .simulator-stats .stat-card small { white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
body.page-simulador_oece .inline-admin-form { min-width: 0 !important; }
body.page-simulador_oece .inline-admin-form .mini-actions { justify-content: flex-start !important; }
body.page-simulador_oece .icon-action {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  padding: 0 !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--card2) !important;
  color: var(--text) !important;
  cursor: pointer !important;
}
body.page-simulador_oece .icon-action .icon-svg { width: 17px !important; height: 17px !important; }
body.page-simulador_oece .icon-action.plan-action { width: auto !important; max-width: none !important; min-width: 0 !important; padding: 0 10px !important; gap: 6px !important; }
body.page-simulador_oece .icon-action.plan-action span { display: inline !important; white-space: nowrap !important; font-size: 11px !important; font-weight: 800 !important; line-height: 1 !important; }
body.page-simulador_oece .icon-action.success { color: #166534 !important; }
body.page-simulador_oece .icon-action.gold { color: var(--dorado-claro) !important; }
body.page-simulador_oece .icon-action.danger { color: #b91c1c !important; }
body.page-evaluaciones, body.page-certificados { background: var(--card) !important; }
body.page-evaluaciones .layout, body.page-certificados .layout, body.page-evaluaciones main, body.page-certificados main, body.page-evaluaciones .content, body.page-certificados .content {
  background: var(--bg) !important;
}
body.page-evaluaciones .topbar, body.page-certificados .topbar { background: var(--card) !important; }
body.page-evaluaciones .panel, body.page-evaluaciones section.panel, body.page-evaluaciones .module-filter-panel, body.page-evaluaciones .quick-action-card, body.page-evaluaciones .eval-metric, body.page-certificados .panel, body.page-certificados section.panel, body.page-certificados .module-filter-panel, body.page-certificados .stat-card {
  background: var(--card) !important;
  border-color: var(--border) !important;
  box-shadow: none !important;
}
body.page-evaluaciones .table-card, body.page-certificados .table-card { background: var(--card2) !important; border-color: var(--border) !important; }
body.page-evaluaciones .responsive-table, body.page-certificados .responsive-table, body.page-evaluaciones .responsive-table tbody, body.page-certificados .responsive-table tbody { background: transparent !important; }
body.page-certificados .estado-certificados-stats .stat-card { display: grid !important; grid-template-columns: 42px minmax(0, 1fr) !important; align-items: center !important; }
body.page-certificados .estado-certificados-stats .stat-card > div:not(.stat-icon) { display: grid !important; grid-template-columns: 1fr !important; gap: 3px !important; min-width: 0 !important; }
body.page-certificados .estado-certificados-stats .stat-card span, body.page-certificados .estado-certificados-stats .stat-card strong, body.page-certificados .estado-certificados-stats .stat-card small {
  display: block !important;
  min-width: 0 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
body.page-certificados .filter-row { gap: 10px !important; margin-bottom: 14px !important; }
body.page-certificados .search-grid { margin-top: 2px !important; gap: 12px !important; }
body.page-certificados .filter-btn { min-height: 38px !important; padding: 8px 12px !important; }
.certificate-generate-form { display: grid !important; gap: 14px !important; }
.modal-hint { margin: 0 !important; color: var(--muted) !important; line-height: 1.45 !important; }
.certificate-pending-list { display: grid !important; gap: 9px !important; max-height: min(52vh, 460px) !important; overflow: auto !important; padding-right: 4px !important; }
.certificate-pending-option {
  display: grid !important;
  grid-template-columns: auto auto minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: center !important;
  padding: 11px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  background: var(--card) !important;
  cursor: pointer !important;
}
.certificate-pending-option input { width: 18px !important; height: 18px !important; }
.certificate-pending-option div { display: grid !important; gap: 3px !important; min-width: 0 !important; }
.certificate-pending-option strong, .certificate-pending-option small { min-width: 0 !important; overflow-wrap: anywhere !important; }
.certificate-pending-option small { color: var(--muted) !important; line-height: 1.25 !important; }
.registration-shell { width: min(1120px, 100%) !important; }
.registration-layout { display: flex !important; flex-wrap: wrap !important; gap: 16px !important; align-items: stretch !important; width: 100% !important; }
.registration-form.panel {
  width: 100% !important;
  max-width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: clamp(18px, 2.2vw, 26px) !important;
  overflow: visible !important;
}
.registration-form { display: flex !important; flex-direction: column !important; gap: 14px !important; }
.registration-form-heading { display: grid !important; gap: 4px !important; }
.registration-form-heading h3 { margin: 0 !important; font-size: 22px !important; line-height: 1.2 !important; letter-spacing: 0 !important; }
.registration-code-field { display: grid !important; gap: 8px !important; }
.registration-form-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 13px !important; }
.registration-form-grid label, .registration-code-field { min-width: 0 !important; }
.registration-form-grid label:nth-child(5) { grid-column: 1 / -1 !important; }
.registration-form .alert { margin: 0 !important; }
.registration-form input, .registration-form select { min-height: 46px !important; }
.registration-code-row { display: grid !important; grid-template-columns: minmax(160px, 0.72fr) minmax(220px, 1fr) !important; gap: 13px !important; align-items: end !important; }
.registration-cert-field { min-width: 0 !important; }
.registration-course-card {
  display: grid !important;
  gap: 5px !important;
  padding: 12px 14px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  background: var(--card) !important;
}
.registration-course-card span { color: var(--muted) !important; font-size: 11px !important; font-weight: 800 !important; letter-spacing: 0.04em !important; text-transform: uppercase !important; }
.registration-course-card strong { color: var(--text) !important; line-height: 1.35 !important; overflow-wrap: anywhere !important; }
.registration-submit { min-height: 46px !important; margin-top: 2px !important; }
.registration-note { margin: -4px 0 0 !important; color: var(--muted) !important; font-size: 12px !important; line-height: 1.45 !important; text-align: center !important; }
.whatsapp-support-link {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 10px !important;
  min-height: 44px !important;
  padding: 10px 13px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  background: var(--card) !important;
  color: var(--text) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  text-decoration: none !important;
}
.whatsapp-support-link strong { flex: 0 0 auto !important; color: var(--text) !important; }
.temario-textarea { min-height: 260px !important; font-family: Consolas, "Courier New", monospace !important; line-height: 1.45 !important; white-space: pre-wrap !important; }
.courses-list-panel { width: 100% !important; max-width: 100% !important; overflow-x: clip !important; overflow-y: visible !important; }
.courses-card-list {
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  container-type: inline-size;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  overflow-x: clip !important;
  overflow-y: visible !important;
}
.courses-card-list table.cursos-table, .courses-card-list table.cursos-table.responsive-table {
  display: block !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  inline-size: 100% !important;
  max-inline-size: 100% !important;
  table-layout: auto !important;
  border-collapse: separate !important;
}
.courses-card-list table.cursos-table thead, .courses-card-list table.cursos-table.responsive-table thead { display: none !important; }
.courses-card-list table.cursos-table tbody, .courses-card-list table.cursos-table.responsive-table tbody {
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 12px !important;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0 !important;
  inline-size: 100% !important;
  max-inline-size: 100% !important;
}
.courses-card-list table.cursos-table tr, .courses-card-list table.cursos-table.responsive-table tr {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)) !important;
  gap: 0 16px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  inline-size: min(100%, 100cqw) !important;
  max-inline-size: 100cqw !important;
  padding: 12px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  background: var(--card2) !important;
  box-shadow: none !important;
}
.courses-card-list table.cursos-table td, .courses-card-list table.cursos-table.responsive-table td, .courses-card-list table.cursos-table td:nth-child(n), .courses-card-list table.cursos-table.responsive-table td:nth-child(n) {
  position: static !important;
  display: grid !important;
  grid-template-columns: clamp(86px, 32%, 132px) minmax(0, 1fr) !important;
  align-items: start !important;
  gap: 8px !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  height: auto !important;
  padding: 9px 0 !important;
  border-bottom: 1px solid var(--border) !important;
  text-align: left !important;
  white-space: normal !important;
  overflow: visible !important;
  line-height: 1.25 !important;
}
.courses-card-list table.cursos-table td:nth-child(2), .courses-card-list table.cursos-table.responsive-table td:nth-child(2) { grid-column: 1 / -1 !important; }
.courses-card-list table.cursos-table td:last-child, .courses-card-list table.cursos-table.responsive-table td:last-child { border-bottom: 0 !important; }
.courses-card-list table.cursos-table td::before, .courses-card-list table.cursos-table.responsive-table td::before {
  content: attr(data-label) !important;
  position: static !important;
  display: block !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  background: transparent !important;
  border: 0 !important;
  color: var(--muted) !important;
  font-size: 10px !important;
  font-weight: 900 !important;
  line-height: 1.15 !important;
  letter-spacing: .045em !important;
  text-transform: uppercase !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  transform: none !important;
}
.courses-card-list table.cursos-table td > *, .courses-card-list table.cursos-table.responsive-table td > *, .courses-card-list table.cursos-table td strong, .courses-card-list table.cursos-table td small {
  grid-column: auto !important;
  width: 100% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  white-space: normal !important;
  overflow-wrap: break-word !important;
  word-break: normal !important;
}
.courses-card-list table.cursos-table td strong { display: block !important; font-size: 14px !important; line-height: 1.22 !important; }
.courses-card-list table.cursos-table td small { display: block !important; margin-top: 5px !important; font-size: 12px !important; line-height: 1.28 !important; }
.courses-card-list table.cursos-table .chip, .courses-card-list table.cursos-table .status {
  display: inline-flex !important;
  width: auto !important;
  min-width: 0 !important;
  inline-size: fit-content !important;
  max-width: 100% !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: normal !important;
}
.courses-card-list table.cursos-table .mini-actions { justify-content: flex-start !important; flex-wrap: wrap !important; gap: 8px !important; }
.courses-card-list .courses-actions-vertical, .courses-card-list .courses-actions-vertical.row-actions {
  display: inline-flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 7px !important;
  width: max-content !important;
  min-width: 0 !important;
  max-width: 100% !important;
  justify-content: start !important;
  align-items: start !important;
}
.courses-card-list .courses-actions-vertical > a, .courses-card-list .courses-actions-vertical > button, .courses-card-list .courses-actions-vertical.row-actions > a, .courses-card-list .courses-actions-vertical.row-actions > button {
  display: inline-flex !important;
  grid-column: 1 !important;
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  padding: 0 !important;
}
table.responsive-table tr[hidden], table.responsive-table tr[data-row][hidden], .courses-card-list table.cursos-table tr[hidden], .courses-card-list table.cursos-table tr[data-row][hidden] { display: none !important; }
body.page-dashboard .quick-grid .quick-card {
  position: relative !important;
  display: grid !important;
  grid-template-columns: 42px minmax(0, 1fr) 28px !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 12px 14px !important;
  min-height: 0 !important;
}
body.page-dashboard .quick-grid .quick-card::after { content: none !important; display: none !important; }
body.page-dashboard .quick-grid .quick-card-icon { grid-column: 1 !important; grid-row: 1 !important; width: 42px !important; height: 42px !important; margin: 0 !important; }
body.page-dashboard .quick-grid .quick-card strong {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: block !important;
  margin: 0 !important;
  font-size: 14px !important;
  line-height: 1.1 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
body.page-dashboard .quick-grid .quick-card small { display: none !important; }
body.page-dashboard .quick-grid .quick-card-next {
  grid-column: 3 !important;
  grid-row: 1 !important;
  display: inline-grid !important;
  place-items: center !important;
  justify-self: end !important;
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  margin: 0 !important;
  border-radius: 8px !important;
  color: var(--celeste-claro) !important;
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
}
body.page-dashboard .quick-grid .quick-card-next .icon-svg { width: 16px !important; height: 16px !important; }
body.page-simulador_oece .oece-access-actions {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 5px !important;
  width: fit-content !important;
  min-width: 0 !important;
}
body.page-simulador_oece .oece-access-actions form, body.page-simulador_oece .oece-access-actions .inline-admin-form, body.page-simulador_oece .oece-access-actions .oece-plan-form {
  display: contents !important;
  width: auto !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
body.page-simulador_oece .oece-access-actions .icon-action, body.page-simulador_oece .oece-access-actions .icon-action.plan-action {
  width: 34px !important;
  height: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  padding: 0 !important;
  border-radius: 8px !important;
  justify-content: center !important;
}
body.page-simulador_oece .oece-access-actions .icon-action span, body.page-simulador_oece .oece-access-actions .icon-action.plan-action span { display: none !important; }
.sidebar, .side-menu { scrollbar-width: none !important; -ms-overflow-style: none !important; }
.sidebar::-webkit-scrollbar, .side-menu::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none !important; }
.side-menu { display: grid; gap: 2px !important; align-content: start; overflow-y: auto; padding-right: 0 !important; }
body.page-estudiante_simulador_oece .panel:has(.detail-grid) { padding: 12px !important; }
body.page-estudiante_simulador_oece .panel:has(.detail-grid) .panel-head { margin-bottom: 8px !important; }
body.page-estudiante_simulador_oece .panel:has(.detail-grid) .panel-head h2 { font-size: 18px !important; line-height: 1.1 !important; }
body.page-estudiante_simulador_oece .panel:has(.detail-grid) .panel-head .eyebrow { font-size: 11px !important; line-height: 1 !important; }
body.page-estudiante_simulador_oece .detail-grid {
  grid-template-columns: none !important;
  gap: 6px !important;
  display: flex !important;
  flex-wrap: nowrap !important;
  align-items: stretch !important;
  overflow-x: auto !important;
  padding-bottom: 1px !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
body.page-estudiante_simulador_oece .detail-grid::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none !important; }
body.page-estudiante_simulador_oece .detail-grid > .detail-item {
  grid-column: auto !important;
  width: auto !important;
  max-width: none !important;
  display: grid !important;
  grid-template-columns: 1fr !important;
  gap: 3px !important;
  align-content: center !important;
  min-height: 0 !important;
  padding: 8px 10px !important;
  flex: 0 0 auto !important;
  min-width: 96px !important;
  border-radius: 8px !important;
}
body.page-estudiante_simulador_oece .detail-grid > .detail-item span, body.page-estudiante_simulador_oece .detail-grid > .detail-item strong {
  width: auto !important;
  max-width: none !important;
  white-space: nowrap !important;
}
body.page-estudiante_simulador_oece .detail-grid > .detail-item span { font-size: 9px !important; line-height: 1 !important; letter-spacing: .02em !important; margin: 0 !important; }
body.page-estudiante_simulador_oece .detail-grid > .detail-item strong { font-size: 13px !important; line-height: 1.05 !important; }
.table-card, .table-card.table-fit {
  width: 100% !important;
  max-width: 100% !important;
  overflow: visible;
  min-height: 0 !important;
  margin: 0 !important;
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
.table-card::-webkit-scrollbar, .table-card.table-fit::-webkit-scrollbar { width: 0 !important; height: 0 !important; display: none !important; }
body.page-dashboard .performance-row { grid-template-columns: minmax(230px, 1.9fr) minmax(120px, 0.85fr) minmax(38px, auto) !important; }
body.page-dashboard .performance-bar-wrap, body.page-dashboard .performance-bar { min-width: 0 !important; max-width: 100% !important; }
body.page-dashboard .performance-bar-wrap { width: min(100%, 180px) !important; justify-self: end !important; }
body.page-dashboard .performance-bar span { max-width: 100% !important; }
.invitation-whatsapp-panel { padding: 12px 14px !important; margin-bottom: 12px !important; }
.invitation-whatsapp-panel .panel-head { margin-bottom: 10px !important; padding-bottom: 0 !important; }
.invitation-whatsapp-panel .panel-head .eyebrow { font-size: 11px !important; line-height: 1 !important; }
.invitation-whatsapp-panel .panel-head h2 { margin-top: 3px !important; font-size: 15px !important; line-height: 1.1 !important; }
.invitation-whatsapp-panel .form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px 14px !important; margin-bottom: 10px !important; }
.invitation-whatsapp-panel label { gap: 6px !important; font-size: 12px !important; line-height: 1.15 !important; }
.invitation-whatsapp-panel input, .invitation-whatsapp-panel select { min-height: 36px !important; height: 36px !important; padding: 7px 12px !important; border-radius: 8px !important; font-size: 12px !important; }
.invitation-whatsapp-panel #whatsappAlumno, .invitation-whatsapp-panel .combo-editable, .invitation-whatsapp-panel .combo-editable-input {
  min-height: 36px !important;
  height: 36px !important;
  max-height: 36px !important;
}
.invitation-whatsapp-panel .combo-editable-input { padding: 7px 34px 7px 12px !important; border-radius: 8px !important; font-size: 12px !important; line-height: 1.15 !important; }
.invitation-whatsapp-panel .combo-editable.combo-curso::after { top: 50% !important; right: 12px !important; }
.invitation-whatsapp-panel .btn.full { min-height: 38px !important; height: 38px !important; padding: 8px 14px !important; border-radius: 8px !important; font-size: 12px !important; }
.invitation-filter-panel { padding: 10px 12px !important; margin-bottom: 12px !important; }
.invitation-filter-panel .module-filter-head { margin-bottom: 8px !important; align-items: center !important; }
.invitation-filter-panel .module-filter-count { min-height: 26px !important; padding: 4px 9px !important; font-size: 11px !important; }
.invitation-filter-panel .module-search-grid {
  grid-template-columns: minmax(150px, 1.1fr) minmax(190px, 1.5fr) minmax(120px, .85fr) minmax(140px, .95fr) auto !important;
  align-items: center !important;
  gap: 8px !important;
}
.invitation-filter-panel .module-search-grid input, .invitation-filter-panel .module-search-grid select, .invitation-filter-panel .btn-clear-filter {
  min-height: 34px !important;
  height: 34px !important;
  padding: 6px 10px !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
}
.invitation-filter-panel .btn-clear-filter { white-space: nowrap !important; }
body:not(.login-page):not(.public-page) .main label { gap: 5px !important; margin-bottom: 8px !important; font-size: 12px !important; line-height: 1.15 !important; }
body:not(.login-page):not(.public-page) .main input:not([type="checkbox"]):not([type="radio"]), body:not(.login-page):not(.public-page) .main select:not(.select-original-hidden), body:not(.login-page):not(.public-page) .main .combo-editable, body:not(.login-page):not(.public-page) .main .combo-editable-input {
  min-height: 34px !important;
  height: 34px !important;
  max-height: 34px !important;
  padding: 6px 10px !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
}
body:not(.login-page):not(.public-page) .main .combo-editable-input { padding-right: 32px !important; }
body:not(.login-page):not(.public-page) .main .combo-editable.combo-curso::after { top: 50% !important; right: 11px !important; }
body:not(.login-page):not(.public-page) .main textarea { min-height: 78px !important; padding: 8px 10px !important; border-radius: 8px !important; font-size: 12px !important; line-height: 1.3 !important; }
body:not(.login-page):not(.public-page) .main .temario-textarea { min-height: 170px !important; }
body:not(.login-page):not(.public-page) .main .form-grid, body:not(.login-page):not(.public-page) .main .module-search-grid, body:not(.login-page):not(.public-page) .main .module-search-grid.three, body:not(.login-page):not(.public-page) .main .search-grid, body:not(.login-page):not(.public-page) .main .filter-row {
  gap: 8px 10px !important;
}
body:not(.login-page):not(.public-page) .main .module-filter-panel, body:not(.login-page):not(.public-page) .main section.module-filter-panel { padding: 10px 12px !important; margin-bottom: 12px !important; }
body:not(.login-page):not(.public-page) .main .module-filter-head { margin-bottom: 8px !important; align-items: center !important; }
body:not(.login-page):not(.public-page) .main .module-filter-count { min-height: 26px !important; padding: 4px 9px !important; font-size: 11px !important; }
body:not(.login-page):not(.public-page) .main .btn-clear-filter, body:not(.login-page):not(.public-page) .main .form-grid .btn, body:not(.login-page):not(.public-page) .main .btn.full {
  min-height: 34px !important;
  height: 34px !important;
  padding: 6px 12px !important;
  border-radius: 8px !important;
  font-size: 12px !important;
  line-height: 1.15 !important;
}
body:not(.login-page):not(.public-page) .main input[type="checkbox"], body:not(.login-page):not(.public-page) .main input[type="radio"] { width: 16px !important; height: 16px !important; min-width: 16px !important; }
.registration-page .registration-form .combo-editable-input { padding-right: 32px !important; }
.registration-page .registration-form .combo-editable.combo-curso::after { top: 50% !important; right: 11px !important; }
.registration-page .registration-course-card { margin: 8px 0 !important; }
.registration-page .registration-note { margin: 4px 0 0 !important; font-size: 12px !important; color: var(--muted) !important; text-align: center !important; }
body.registration-page {
  --page-background: var(--registration-page-background);
  min-height: 100vh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 24px 16px !important;
}

.registration-page .registration-shell { width: min(640px, 100%) !important; max-width: 640px !important; }
.registration-page .registration-layout { display: flex !important; flex-wrap: wrap !important; align-items: stretch !important; width: 100% !important; gap: 0 !important; }
.registration-page .registration-intro.panel { flex: 1 1 320px !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
.registration-page .registration-form.panel { flex: 1 1 400px !important; width: 100% !important; max-width: 100% !important; box-sizing: border-box !important; }
.registration-page .registration-intro.panel {
  position: relative !important;
  overflow: hidden !important;
  background: var(--card) !important;
  display: flex !important;
  flex-direction: column !important;
  justify-content: space-between !important;
}
.registration-page .registration-intro.panel::before { content: "" !important; position: absolute !important; inset: 0 auto 0 0 !important; width: 4px !important; background: var(--card) !important; }
.registration-page .registration-intro-header { position: relative !important; z-index: 1 !important; }
.registration-page .registration-brand-row { display: flex !important; align-items: center !important; gap: 10px !important; margin-bottom: 8px !important; }
.registration-page .registration-intro h2 {
  margin: 0 0 10px !important;
  color: var(--text) !important;
  font-size: 22px !important;
  font-weight: 800 !important;
  line-height: 1.25 !important;
  letter-spacing: -0.01em !important;
}
.registration-page .registration-intro p { color: var(--soft) !important; font-size: 14px !important; line-height: 1.55 !important; margin: 0 !important; }
.registration-page .registration-step-list { display: grid !important; gap: 10px !important; margin: 18px 0 !important; }
.registration-page .registration-step {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 10px 14px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  background: var(--card) !important;
  transition: border-color 0.2s ease, background 0.2s ease !important;
}
.registration-page .registration-step:hover { border-color: var(--border) !important; background: var(--brand-sky-soft) !important; }
.registration-page .registration-step span {
  display: inline-grid !important;
  place-items: center !important;
  width: 34px !important;
  height: 34px !important;
  flex: 0 0 34px !important;
  border-radius: 8px !important;
  background: var(--card) !important;
  color: var(--text) !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  border: 1px solid var(--border) !important;
}
.registration-page .registration-step strong { display: block !important; color: var(--text) !important; font-size: 13px !important; line-height: 1.25 !important; font-weight: 700 !important; }
.registration-page .registration-step small { display: block !important; color: var(--muted) !important; font-size: 11.5px !important; line-height: 1.35 !important; }
.registration-page .registration-info-list { display: grid !important; gap: 8px !important; margin-top: auto !important; }
.registration-page .registration-info-item {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 8px 12px !important;
  border-radius: 8px !important;
  background: var(--card) !important;
  border: 1px solid var(--border) !important;
  font-size: 12.5px !important;
}
.registration-page .registration-info-item span { color: var(--muted) !important; font-size: 11px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.03em !important; }
.registration-page .registration-info-item strong { color: var(--text) !important; font-weight: 700 !important; text-align: right !important; }
.registration-page .registration-form.panel {
  background: var(--card) !important;
  display: flex !important;
  flex-direction: column !important;
  flex-basis: auto !important;
  padding: 22px !important;
  gap: 11px !important;
}
.registration-page .registration-form-heading { margin-bottom: 2px !important; padding-bottom: 10px !important; border-bottom: 1px solid var(--border) !important; }
.registration-page .registration-form-heading h1 { margin: 0 0 4px !important; color: var(--text) !important; font-size: 28px !important; line-height: 1.2 !important; }
.registration-page .registration-form-heading h2 { margin: 0 0 4px !important; color: var(--text) !important; font-size: 20px !important; font-weight: 800 !important; }
.registration-page .registration-form-heading p { margin: 0 !important; color: var(--soft) !important; font-size: 13.5px !important; line-height: 1.45 !important; }
.registration-page .registration-code-row, .registration-page .registration-form-grid { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 12px !important; }
.registration-page .registration-form-grid label.grid-full { grid-column: 1 / -1 !important; }
.registration-page .registration-form label, .registration-page .registration-code-row label {
  display: flex !important;
  flex-direction: column !important;
  gap: 5px !important;
  margin-bottom: 0 !important;
  font-size: 11px !important;
  color: var(--soft) !important;
  font-weight: 700 !important;
  letter-spacing: 0.03em !important;
  text-transform: uppercase !important;
}
.registration-page .registration-form input:not([type="checkbox"]):not([type="radio"]), .registration-page .registration-form select:not(.select-original-hidden), .registration-page .registration-form .combo-editable, .registration-page .registration-form .combo-editable-input {
  min-height: 38px !important;
  height: 38px !important;
  max-height: 38px !important;
  padding: 8px 12px !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  background: var(--input) !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  transition: border-color 0.2s ease, box-shadow 0.2s ease !important;
}
.registration-page .registration-form input:focus, .registration-page .registration-form select:focus, .registration-page .registration-form .combo-editable-input:focus {
  border-color: var(--border) !important;
  box-shadow: none !important;
  outline: none !important;
}
.registration-page .registration-course-card {
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  padding: 10px 14px !important;
  border: 1px solid var(--border) !important;
  border-radius: 8px !important;
  background: var(--card) !important;
}
.registration-page .registration-course-card span { color: var(--muted) !important; font-size: 10.5px !important; font-weight: 700 !important; text-transform: uppercase !important; letter-spacing: 0.04em !important; }
.registration-page .registration-course-card strong { color: var(--text) !important; font-size: 13.5px !important; font-weight: 700 !important; line-height: 1.3 !important; }
.registration-verification {
  width: min(460px, calc(100% - 24px));
  max-height: calc(100dvh - 24px);
  padding: 0;
  border: 0;
  border-radius: var(--radius);
  color: var(--text);
  background: var(--card);
  overflow-y: auto;
}
.registration-verification::backdrop { background: rgba(15, 23, 42, .55); }
.registration-verification-heading, .registration-verification-actions { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.registration-verification-heading h2 { margin: 0; font-size: 20px; }
.registration-verification p { line-height: 1.5; }
.registration-verification-actions { flex-wrap: wrap; margin-top: 18px; }
.registration-verification #registrationCode { width: 100%; margin-top: 8px; text-transform: uppercase; }
.registration-page .registration-form #registrationCode:focus-visible { outline: 2px solid var(--text) !important; outline-offset: 2px; }
.registration-page .registration-submit {
  min-height: 40px !important;
  height: 40px !important;
  padding: 8px 16px !important;
  border-radius: 8px !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  margin-top: 4px !important;
  cursor: pointer !important;
  transition: transform 0.15s ease, background 0.15s ease, box-shadow 0.15s ease !important;
}
.registration-page .registration-submit:hover { transform: translateY(-1px) !important; box-shadow: none !important; }
.registration-page .registration-submit { background-image: none !important; border: 1px solid var(--border) !important; box-shadow: none !important; }
body:not(.login-page) a.btn, body:not(.login-page) .form-grid .btn, body:not(.login-page) .btn.full, body:not(.login-page) .btn-clear-filter, body:not(.login-page) .module-search-grid button, body:not(.login-page) .search-grid button, body:not(.login-page) .filter-btn.active, body:not(.login-page) .filter-btn:hover, body:not(.login-page) .panel-head > .btn, body:not(.login-page) .panel-head > .btn-gold, body:not(.login-page) .panel-head > button, body:not(.login-page) .module-filter-head > .btn, body:not(.login-page) .module-filter-head > .btn-gold, body:not(.login-page) .module-filter-head > button, body:not(.login-page) .panel-head .mini-actions .btn, body:not(.login-page) .panel-head .mini-actions button.btn, body:not(.login-page) .module-filter-head .mini-actions .btn, body:not(.login-page) .module-filter-head .mini-actions button.btn {
  background: var(--brand-sky-soft) !important;
  background-image: none !important;
  border: 1px solid var(--border) !important;
  color: var(--text) !important;
  box-shadow: none !important;
}
.registration-page .registration-submit:hover { background-image: none !important; border-color: var(--border) !important; color: var(--text) !important; }
body:not(.login-page) .btn:hover, body:not(.login-page) .btn-gold:hover, body:not(.login-page) button.btn:hover, body:not(.login-page) a.btn:hover, body:not(.login-page) .form-grid .btn:hover, body:not(.login-page) .btn.full:hover, body:not(.login-page) .btn-clear-filter:hover, body:not(.login-page) .module-search-grid button:hover, body:not(.login-page) .search-grid button:hover, body:not(.login-page) .panel-head > .btn:hover, body:not(.login-page) .panel-head > .btn-gold:hover, body:not(.login-page) .panel-head > button:hover, body:not(.login-page) .module-filter-head > .btn:hover, body:not(.login-page) .module-filter-head > .btn-gold:hover, body:not(.login-page) .module-filter-head > button:hover {
  background: var(--brand-sky-soft) !important;
  background-image: none !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}
body:not(.login-page) .btn-danger, body:not(.login-page) button.btn-danger, body:not(.login-page) a.btn-danger, body:not(.login-page) .btn.danger, body:not(.login-page) button.danger {
  background: #fef2f2 !important;
  background-image: none !important;
  border-color: var(--border) !important;
  color: #b91c1c !important;
  box-shadow: none !important;
}
body:not(.login-page) .btn-danger:hover, body:not(.login-page) button.btn-danger:hover, body:not(.login-page) a.btn-danger:hover, body:not(.login-page) .btn.danger:hover, body:not(.login-page) button.danger:hover {
  background: #fef2f2 !important;
  background-image: none !important;
  border-color: var(--border) !important;
  color: #b91c1c !important;
}
.matricula-course-value { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.matricula-course-value strong { display: inline; min-width: 0; }
.evaluacion-course-value { display: inline-flex; align-items: center; gap: 6px; min-width: 0; }
.evaluacion-course-value strong { display: inline; min-width: 0; }
@media (max-width: 1100px) {
  .responsive-table td { width: 100%; }
  .responsive-table, .responsive-table tbody, .responsive-table tr { display: block; width: 100%; }
  .responsive-table thead { display: none; }
  .responsive-table tr { margin-bottom: 0.75rem; border: 1px solid var(--border); border-radius: 8px; padding: 0.5rem; }
  .responsive-table td { display: flex; justify-content: space-between; align-items: center; border-bottom: 1px dashed var(--border); }
  .responsive-table td:last-child { border-bottom: none; }
  .responsive-table td[data-label]::before { content: attr(data-label); font-weight: 600; font-size: 0.82rem; opacity: 1; margin-right: 1rem; }
  .stats-grid { grid-template-columns: repeat(2, 1fr); }
  .dashboard-grid { grid-template-columns: 1fr; }
  .quick-grid { grid-template-columns: repeat(2, 1fr); }
  .compact-stats { grid-template-columns: 1fr; }
  .search-grid { grid-template-columns: repeat(2, 1fr); }
  .module-search-grid.three, .quick-actions-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 860px) {
  .top-actions .btn-gold { display: none; }
  .table-card { overflow-x: auto; }
  table { min-width: 780px; }
  .search-grid { grid-template-columns: 1fr; }
  
  .topbar { display: grid !important; grid-template-columns: minmax(0, 1fr) auto auto !important; justify-content: stretch !important; padding: 14px 12px !important; min-height: 0 !important; }
  .topbar > .mini-btn { grid-column: 3 !important; grid-row: 1 !important; justify-self: end !important; }
  .topbar > div:not(.top-actions) { grid-column: 1 !important; grid-row: 1 !important; min-width: 0 !important; padding-right: 4px !important; }
  .topbar .top-actions { grid-column: 2 !important; grid-row: 1 !important; width: auto !important; justify-self: end !important; }
  .topbar .mini-btn { width: 42px !important; height: 42px !important; min-width: 42px !important; padding: 0 !important; border-radius: 8px !important; }
  .topbar h1, .topbar p { max-width: 100% !important; }
}
@media (max-width: 1280px) {
  .content { padding: 22px; }

  .table-card table.cursos-table td:nth-child(2) { width: 24%; }
  .table-card table.cursos-table td:nth-child(3) { width: 130px; }
  .table-card table.cursos-table td:nth-child(8) { width: 95px; }
}
@media (max-width: 1360px) {
  .table-card.table-fit { overflow: visible !important; }
  .table-card tr {
    display: block !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    background: var(--card2);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 14px;
    box-shadow: none;
  }
  .table-card thead { display: none !important; }
  .table-card tbody { display: grid !important; gap: 14px; }
  .table-card td {
    display: grid !important;
    grid-template-columns: 170px 1fr;
    align-items: start;
    gap: 12px;
    border-bottom: 1px solid var(--border);
    white-space: normal !important;
  }
  .table-card td:last-child { border-bottom: 0; }
  .table-card td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 11px;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .06em;
  }
  .table-card td small { max-width: 100% !important; }
  .table-card table.cursos-table td:nth-child(2) small { display: block; -webkit-line-clamp: unset; overflow: visible; max-width: 100% !important; }
  .table-card .status { width: fit-content; max-width: 100%; white-space: normal; justify-content: flex-start; text-align: left; }
  .table-card .mini-actions { justify-content: flex-start; }
  .table-card .mini-actions a { height: 30px; padding: 0 10px; font-size: 11px; }
}
@media (max-width: 620px) {
  .module-filter-head { flex-direction: column; }
  .module-search-grid.three, .quick-actions-grid { grid-template-columns: 1fr; }
  .registration-form.panel { padding: 15px !important; border-radius: 8px !important; }
  .registration-form-grid { grid-template-columns: 1fr !important; }
  .whatsapp-support-link { align-items: stretch !important; flex-direction: column !important; }
}
@media (max-width: 720px) {
  .login-card { gap: 14px; }
}
@media (min-width: 761px) {
  .estado-table { min-width: 900px; }
}
@media (max-width: 760px) {
  .estado-table { table-layout: auto !important; min-width: 0 !important; }
  .estado-table td { width: 100% !important; }
  .mini-actions button { padding: 8px 10px !important; font-size: 12px !important; }
  .module-filter-head h3 { font-size: 18px !important; }
  .panel { padding: 16px !important; }
}
@media (max-width: 1024px) {
  .content, .login-card { padding: 16px !important; }
  .topbar { gap: 12px !important; align-items: flex-start !important; flex-wrap: wrap !important; }
  .topbar .top-actions { width: 100%; justify-content: flex-start !important; flex-wrap: wrap !important; gap: 10px !important; }
  .form-grid { grid-template-columns: 1fr !important; }
  .table-card td {
    display: grid !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    grid-template-columns: 120px minmax(0, 1fr) !important;
    gap: 10px !important;
    align-items: start !important;
    padding: 9px 2px !important;
    border-bottom: 1px solid var(--border) !important;
  }
  .table-card thead { display: none !important; }
  .table-card tbody { display: grid !important; gap: 12px !important; }
  .table-card tr { padding: 14px !important; border-radius: 8px !important; }
  .table-card td:last-child { border-bottom: 0 !important; }
  .table-card td::before {
    content: attr(data-label) !important;
    display: block !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    font-weight: 700 !important;
    color: var(--muted) !important;
    text-transform: uppercase !important;
    letter-spacing: .05em !important;
    margin: 0 !important;
  }
  .table-card td div { min-width: 0 !important; max-width: 100% !important; }
  .table-card td small { margin-top: 4px !important; }
  .table-card .status { width: fit-content !important; max-width: 100% !important; white-space: normal !important; justify-content: flex-start !important; text-align: left !important; }
  .mini-actions { flex-wrap: wrap !important; gap: 6px !important; }
  .detail-item { padding: 12px !important; }
  .detail-item strong { font-size: 14px !important; line-height: 1.35 !important; }
  .detail-grid > .detail-item[style*="grid-column"] {
    grid-column: auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: flex-start !important;
    grid-template-columns: none !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 6px !important;
    padding: 14px 14px !important;
    overflow: hidden !important;
  }
  .performance-row { grid-template-columns: 1fr !important; gap: 10px !important; align-items: start !important; }
  .performance-value { text-align: left !important; }
  .detail-grid { grid-template-columns: 1fr !important; gap: 12px !important; }
  .detail-item .mini-actions {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 8px !important;
    justify-content: flex-start !important;
  }
  .detail-item span {
    display: block !important;
    margin: 0 0 4px 0 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    line-height: 1.2 !important;
  }
  .detail-item small {
    display: block !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    word-break: break-word !important;
    hyphens: auto !important;
    line-height: 1.4 !important;
    text-align: left !important;
  }
  .detail-item .status { width: fit-content !important; }
  :is(#tablaCursos,#tablaEstudiantes,#tablaDocentes,#tablaMatriculas,#tablaClases,#tablaEvaluaciones,#tablaAsignaciones,#tablaCertificados,#tablaReportes,#tablaConfiguracion,#tablaCodigosInscripcion) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: auto !important;
  }
  :is(#tablaCursos,#tablaEstudiantes,#tablaDocentes,#tablaMatriculas,#tablaClases,#tablaEvaluaciones,#tablaAsignaciones,#tablaCertificados,#tablaReportes,#tablaConfiguracion,#tablaCodigosInscripcion) td:nth-child(n) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }
  .table-card.table-fit { overflow: visible !important; width: 100% !important; max-width: 100% !important; }
  .responsive-table thead { display: none !important; }
  .responsive-table td {
    display: block !important;
    position: relative !important;
    padding: 9px 0 9px 128px !important;
    border-bottom: 1px solid var(--border) !important;
    white-space: normal !important;
    overflow: visible !important;
  }
  .responsive-table tbody { width: 100% !important; display: grid !important; gap: 12px !important; }
  .responsive-table tr { width: 100% !important; max-width: 100% !important; padding: 12px !important; border-radius: 8px !important; overflow: hidden !important; }
  .responsive-table td:last-child { border-bottom: 0 !important; }
  .responsive-table td::before {
    content: attr(data-label) !important;
    position: absolute !important;
    top: 9px !important;
    left: 0 !important;
    width: 112px !important;
    max-width: 112px !important;
    font-size: 11px !important;
    font-weight: 800 !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
    line-height: 1.2 !important;
    color: var(--celeste-claro) !important;
    white-space: normal !important;
  }
  .responsive-table td div {
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
    hyphens: none !important;
  }
  .responsive-table td .status { width: fit-content !important; max-width: 100% !important; white-space: normal !important; }
  .responsive-table td .mini-actions { display: flex !important; flex-wrap: wrap !important; gap: 7px !important; justify-content: flex-start !important; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .dashboard-grid { grid-template-columns: 1fr !important; }
  .quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body .content { padding: 5px !important; }
  body .quick-card { padding: 12px !important; border-radius: 8px !important; min-height: 0 !important; }
  body .module-filter-head { margin-bottom: 9px !important; gap: 8px !important; }
  body .module-filter-head h3 { font-size: 15.5px !important; line-height: 1.16 !important; margin: 0 !important; letter-spacing: 0 !important; }
  body .table-card.table-fit { padding: 0 !important; overflow: visible !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
  body .table-card tbody { gap: 8px !important; }
  body .table-card tr { padding: 9px !important; border-radius: 8px !important; }
  body .table-card td {
    display: grid !important;
    grid-template-columns: minmax(78px, 30%) minmax(0, 1fr) !important;
    gap: 7px !important;
    padding: 7px 1px !important;
    align-items: start !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
  }
  body .table-card td::before {
    min-width: 0 !important;
    max-width: 100% !important;
    font-size: 9.5px !important;
    line-height: 1.15 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }
  body .table-card td div { min-width: 0 !important; max-width: 100% !important; overflow-wrap: anywhere !important; word-break: normal !important; white-space: normal !important; }
  body .responsive-table td strong { display: block !important; font-size: 13px !important; line-height: 1.18 !important; }
  body .responsive-table td small { display: block !important; font-size: 11px !important; line-height: 1.2 !important; margin-top: 2px !important; }
  body .cursos-table td:nth-child(2) { display: grid !important; grid-template-columns: minmax(78px, 30%) minmax(0, 1fr) !important; align-items: start !important; min-width: 0 !important; }
  body .cursos-table td:nth-child(2) strong { overflow-wrap: anywhere !important; word-break: normal !important; white-space: normal !important; line-height: 1.16 !important; }
  body .cursos-table td:nth-child(2) small { overflow-wrap: anywhere !important; white-space: normal !important; line-height: 1.2 !important; max-height: none !important; }
  body .stats-grid { gap: 10px !important; margin-bottom: 10px !important; }
  body .dashboard-grid { grid-template-columns: 1fr !important; }
  body section.panel:not(:first-of-type) { margin-top: 2px !important; }
  body .responsive-table tr { position: relative !important; }
  body .responsive-table td {
    position: static !important;
    display: grid !important;
    grid-template-columns: minmax(88px, 30%) minmax(0, 1fr) !important;
    grid-auto-rows: auto !important;
    align-items: start !important;
    gap: 6px 8px !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 8px 2px !important;
    padding-left: 2px !important;
    overflow: visible !important;
  }
  body .responsive-table td::before {
    content: attr(data-label) !important;
    position: static !important;
    inset: auto !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    color: var(--muted) !important;
    font-size: 9.5px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    z-index: auto !important;
  }
  body .responsive-table td > :not(form) { grid-column: 2 !important; min-width: 0 !important; max-width: 100% !important; }
  body .responsive-table td .mini-actions { grid-column: 2 !important; }
  body .responsive-table td[data-label="Acciones"] .mini-actions { justify-content: flex-start !important; }
  body .responsive-table td[data-label="Acciones"] { width: 100% !important; min-width: 0 !important; max-width: 100% !important; text-align: left !important; white-space: normal !important; }

  .side-menu a { min-height: 40px !important; padding: 8px 10px !important; }
  .password-inline-form .form-grid { grid-template-columns: 1fr !important; }
  .password-inline-form .btn { width: 100%; min-width: 0; }
  .password-drop-head { flex-direction: column; }
  .eval-overview { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  body.page-certificados { min-height: 0 !important; height: auto !important; padding: 0 !important; margin: 0 !important; overflow-x: hidden !important; }
  body.page-certificados .layout {
    display: block !important;
    grid-template-columns: none !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 0 !important;
    margin: 0 !important;
  }
  body.page-certificados .main {
    display: block !important;
    min-height: 0 !important;
    height: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    transform: none !important;
  }
  body.page-certificados .topbar {
    position: sticky !important;
    top: 0 !important;
    margin: 0 !important;
    transform: none !important;
    align-self: start !important;
    min-height: 0 !important;
    height: auto !important;
    padding: 8px 10px !important;
    z-index: 1200 !important;
  }
  body.page-certificados .content { margin: 0 !important; padding-top: 8px !important; transform: none !important; }
  .layout { display: block !important; grid-template-columns: none !important; min-height: 100vh !important; }
  .sidebar {
    position: fixed !important;
    inset: 0 auto 0 0 !important;
    width: min(292px, 86vw) !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    transform: translateX(-105%) !important;
    transition: transform .25s ease !important;
    z-index: 2000 !important;
    overflow-y: auto !important;
  }
  .sidebar.open { transform: translateX(0) !important; }
  .main { display: block !important; width: 100% !important; min-width: 0 !important; margin: 0 !important; }
  .mini-btn { display: inline-flex !important; }
}
@media (max-width: 680px) {
  .login-card { padding: 14px !important; }
  .topbar h1 { line-height: 1.15 !important; }
  .module-filter-head h3 { font-size: 18px !important; line-height: 1.15 !important; }
  .table-card td::before { margin-bottom: 2px !important; }
  .mini-actions button { padding: 7px 9px !important; font-size: 11px !important; }
  .table-card td small { font-size: 13px !important; }
  .performance-code { min-width: 64px !important; }
  .stat-card { padding: 14px !important; }
  .panel-head .btn-gold { width: auto !important; max-width: 100% !important; }
}
@media (max-width: 900px) {
  .detail-item { grid-template-columns: 128px minmax(0, 1fr) !important; }
  .detail-grid > .detail-item[style*="grid-column"] { grid-template-columns: 1fr !important; gap: 6px !important; padding: 12px !important; }
  .detail-item span { width: 100% !important; max-width: 100% !important; margin-bottom: 2px !important; }
  .detail-item small { width: 100% !important; max-width: 100% !important; font-size: 14px !important; line-height: 1.38 !important; }
  .detail-item .status { white-space: normal !important; }
  .modal-head { flex-direction: column !important; align-items: stretch !important; gap: 10px !important; }
  .module-filter-head > button { margin-left: 0 !important; width: fit-content !important; min-width: 140px !important; align-self: flex-start !important; }
  .module-filter-head .panel-actions { margin-left: 0 !important; justify-content: flex-start !important; width: 100% !important; }
  .dashboard-grid { gap: 12px !important; margin-bottom: 12px !important; grid-template-columns: 1fr !important; }
  .eyebrow { line-height: 1.1 !important; }
  .module-filter-panel { padding: 12px !important; }
  .form-grid { gap: 9px !important; }
  .table-card tbody { display: grid; gap: 10px !important; }
  .table-card tr { background: var(--card2); border: 1px solid var(--border); border-radius: 8px !important; padding: 10px !important; box-shadow: none !important; }
  .table-card td {
    display: grid;
    grid-template-columns: minmax(86px, 33%) minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 8px !important;
    border-bottom: 1px solid var(--border);
    padding: 8px 2px !important;
    line-height: 1.28 !important;
  }
  .table-card td::before {
    content: attr(data-label);
    color: var(--muted);
    font-size: 10px !important;
    font-weight: 900;
    text-transform: uppercase;
    letter-spacing: .045em !important;
    line-height: 1.2 !important;
    min-width: 0 !important;
    overflow-wrap: anywhere !important;
  }
  .responsive-table .status { max-width: 100% !important; white-space: normal !important; text-align: left !important; justify-content: flex-start !important; }
  .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .alert-list { gap: 9px !important; }
  .course-item { grid-template-columns: 42px minmax(0, 1fr) !important; align-items: start !important; gap: 9px !important; padding: 10px !important; }
  .course-item .status { grid-column: 2 !important; justify-self: start !important; margin-top: 2px !important; }
  .course-badge { width: 40px !important; height: 40px !important; border-radius: 8px !important; font-size: 10px !important; }
  .performance-row { grid-template-columns: minmax(0, 1fr) auto !important; gap: 8px !important; padding: 10px !important; border-radius: 8px !important; }
  .performance-bar-wrap { grid-column: 1 / -1 !important; width: 100% !important; }
  .quick-grid { gap: 10px !important; }
  .quick-card { padding: 12px !important; min-height: 0 !important; }
  .registration-layout { grid-template-columns: 1fr !important; }
}
@media (max-width: 920px) {
  .module-search-grid, .form-grid { grid-template-columns: 1fr !important; }
  .modal-card.modal-card-wide { width: min(94vw, 760px) !important; max-width: 94vw !important; }
  .content { gap: 10px !important; padding: 12px !important; }
  .import-detail-panel { border-radius: 8px !important; }
  section.panel:not(:first-of-type) { margin-top: 10px !important; }
  .table-card.table-fit { padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; overflow: visible !important; }
  .responsive-table td {
    display: grid !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    position: static !important;
    grid-template-columns: 1fr !important;
    gap: 3px !important;
    padding: 7px 1px !important;
    border-bottom: 1px solid var(--border) !important;
    text-align: left !important;
    white-space: normal !important;
    overflow: visible !important;
  }
  .responsive-table thead { display: none !important; }
  .responsive-table tbody { display: grid !important; gap: 8px !important; }
  .responsive-table tr { padding: 9px !important; border: 1px solid var(--border) !important; border-radius: 8px !important; background: var(--card2) !important; box-shadow: none !important; }
  .responsive-table td:last-child { border-bottom: 0 !important; }
  .responsive-table td::before {
    content: attr(data-label) !important;
    position: static !important;
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
    color: var(--muted) !important;
    font-size: 9.5px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
    text-align: left !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    transform: none !important;
  }
  .table-card td small { display: block !important; max-width: 100% !important; white-space: normal !important; overflow-wrap: anywhere !important; word-break: normal !important; }
  .responsive-table .mini-actions { justify-content: flex-start !important; flex-wrap: wrap !important; gap: 5px !important; }
}
@media (max-width: 768px) {
  .detail-item { padding: 12px !important; }
  .detail-item span { font-size: 11px !important; }
  .detail-item strong { font-size: 14px !important; }
  .stat-icon { width: 48px !important; height: 48px !important; }
  .quick-card-icon { width: 42px !important; height: 42px !important; }
  .quick-card-icon .icon-svg { width: 21px; height: 21px; }
  td[data-label="Acciones"] .mini-actions:not(.no-iconify) button:not(.btn) { width: 31px !important; min-width: 31px !important; height: 31px !important; min-height: 31px !important; border-radius: 8px !important; }
  td[data-label="Acciones"] .mini-actions:not(.no-iconify) .action-icon { width: 15px; height: 15px; }
  .module-filter-panel h3 { font-size: 17px !important; line-height: 1.18 !important; }
  .responsive-table { min-width: 0 !important; table-layout: auto !important; }
  .responsive-table thead { display: none !important; }
  .responsive-table td {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    position: relative !important;
    padding: 9px 0 9px 112px !important;
    border-bottom: 1px solid var(--border) !important;
    padding-right: 0 !important;
  }
  .responsive-table tbody { display: grid !important; gap: 12px !important; }
  .responsive-table tr { padding: 12px !important; border-radius: 8px !important; overflow: hidden !important; }
  .responsive-table td:last-child { border-bottom: 0 !important; }
  .responsive-table td::before {
    content: attr(data-label) !important;
    position: absolute !important;
    left: 0 !important;
    top: 9px !important;
    width: 96px !important;
    font-size: 10.5px !important;
    line-height: 1.2 !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .055em !important;
    color: var(--celeste-claro) !important;
    white-space: normal !important;
  }
  td[data-label="Acciones"] .mini-actions { justify-content: flex-start !important; }
  body { font-size: 14px !important; }
  
  .estado-table td { font-size: 13px !important; }
  .estado-table td:last-child { width: 100% !important; min-width: 0 !important; max-width: 100% !important; text-align: left !important; overflow: visible !important; }
  .mini-actions { justify-content: flex-start !important; gap: 6px !important; overflow: visible !important; display: flex !important; width: auto !important; }
  .mini-actions button {
    width: 30px !important;
    height: 30px !important;
    min-width: 30px !important;
    min-height: 30px !important;
    max-width: 30px !important;
    max-height: 30px !important;
    flex: 0 0 30px !important;
  }
  .estado-certificados-stats { grid-template-columns: 1fr !important; gap: 10px !important; }
  .estado-certificados-stats .stat-card { min-height: 68px !important; padding: 11px 12px !important; }
  .estado-certificados-stats + .panel { margin-top: 1px !important; }
  .alert-list { margin-bottom: 10px; }
  .question-card { border-radius: 8px; }
  .question-title { gap: 8px; }
  .answer-option { grid-template-columns: auto minmax(0, 1fr); gap: 7px 8px; padding: 10px; }
  .answer-option input { grid-row: 1 / span 2; }
  .oece-plan-form { width: auto !important; }
  .exam-pager-head { grid-template-columns: 1fr !important; }
  .exam-timer { justify-self: start !important; }
}
@media (max-width: 520px) {
  .responsive-table td { padding-left: 108px !important; }
  .responsive-table td::before { width: 96px !important; max-width: 96px !important; font-size: 10px !important; }
  .module-filter-head .mini-actions button { width: 100% !important; min-width: 0 !important; }
  .exam-question-page { min-height: 300px !important; }
  body.page-estudiante_simulador_oece .detail-grid > .detail-item { min-height: 68px !important; padding: 10px !important; }
  .exam-pager-actions { grid-template-columns: 1fr 1fr !important; gap: 8px !important; }
  .exam-pager-actions [data-submit-exam] { grid-column: 1 / -1 !important; }
  .oece-pricing-panel .panel-head { margin-bottom: 8px !important; }
  .oece-pricing-panel { padding: 10px !important; }
  .oece-pricing-card { padding: 12px !important; border-radius: 8px !important; gap: 7px !important; }
  .oece-pricing-card h3 { font-size: 16px !important; }
  .oece-pricing-list li { font-size: 11.5px !important; }
  .oece-pricing-price strong { font-size: 28px !important; }
  .oece-pricing-button { min-height: 34px !important; font-size: 12px !important; }
  .oece-pricing-list { gap: 6px !important; padding-top: 8px !important; }
  .simulator-student-intro { font-size: 12.5px !important; line-height: 1.35 !important; margin-bottom: 10px !important; }
  .oece-plan-grid { grid-template-columns: minmax(0, 1fr) !important; margin-bottom: 10px !important; }
  .oece-plan-card { grid-template-columns: minmax(0, 1fr) !important; align-items: center !important; gap: 5px 8px !important; padding: 10px !important; border-radius: 8px !important; }
  .oece-plan-card small { grid-column: 1 / -1 !important; }
  .oece-plan-card strong { font-size: 13px !important; }
  .oece-plan-price { justify-self: start !important; font-size: 18px !important; }
}
@media (min-width: 769px) {
  #tablaCursos td:nth-child(1) { width: 9% !important; }
  #tablaCursos td:nth-child(3) { width: 13% !important; }
  #tablaCursos td:nth-child(4), #tablaCursos td:nth-child(5) { width: 9% !important; }
  #tablaCursos td:nth-child(6) { width: 7% !important; }
  #tablaCursos td:nth-child(7) { width: 8% !important; }
  body .table-card.table-fit {
    overflow-x: auto !important;
    overflow-y: visible !important;
    background: var(--card) !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    padding: 0 !important;
  }
  body .table-card table.cursos-table {
    display: table !important;
    width: 100% !important;
    min-width: 760px !important;
    max-width: none !important;
    table-layout: auto !important;
    border-collapse: collapse !important;
  }
  body .responsive-table thead { display: table-header-group !important; }
  body .responsive-table tbody { display: table-row-group !important; }
  body .responsive-table tr {
    display: table-row !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: transparent !important;
  }
  body .responsive-table td {
    display: table-cell !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    padding: 10px 9px !important;
    border-bottom: 1px solid var(--border) !important;
    vertical-align: middle !important;
    white-space: normal !important;
    overflow: visible !important;
    text-align: left !important;
    line-height: 1.28 !important;
  }
  body .responsive-table th { display: table-cell !important; white-space: nowrap !important; font-size: 11px !important; line-height: 1.1 !important; }
  body .responsive-table td::before { content: none !important; display: none !important; }
  body .responsive-table td .mini-actions { grid-column: auto !important; }
  body .table-card table.cursos-table td:nth-child(1) { width: 86px !important; }
  body .table-card table.cursos-table td:nth-child(2) { width: auto !important; min-width: 260px !important; }
  body .table-card table.cursos-table td:nth-child(3) { width: 130px !important; }
  body .table-card table.cursos-table td:nth-child(4) { width: 100px !important; }
  body .table-card table.cursos-table td:nth-child(5) { width: 90px !important; }
  body .table-card table.cursos-table td:nth-child(6) { width: 75px !important; }
  body .table-card table.cursos-table td:nth-child(7) { width: 90px !important; }
  body .responsive-table td:last-child { width: 120px !important; min-width: 120px !important; max-width: 140px !important; text-align: center !important; white-space: nowrap !important; }
  body .responsive-table td strong, body .responsive-table td small { display: block !important; white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important; }
  body .cursos-table td[data-label="Curso"] strong { font-size: 13px !important; line-height: 1.22 !important; }
  body .cursos-table td[data-label="Curso"] small { font-size: 11px !important; line-height: 1.22 !important; max-width: 100% !important; }
  body .responsive-table .status { white-space: nowrap !important; width: fit-content !important; }
  body .responsive-table .mini-actions { justify-content: center !important; flex-wrap: nowrap !important; }
  .dashboard-simple-table { table-layout: auto !important; width: 100% !important; }
  .dashboard-simple-table td:not(:last-child) { width: auto !important; min-width: 0 !important; max-width: none !important; }
  .dashboard-simple-table td { white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important; }
  .dashboard-simple-table th { letter-spacing: 0 !important; }
  .estado-table th:last-child { width: 168px !important; min-width: 168px !important; max-width: 168px !important; }
  .table-card td:nth-last-child(2) { min-width: 92px !important; }
  .topbar { position: sticky !important; top: 0 !important; z-index: 1200 !important; box-shadow: none !important; }
  #tablaCodigosInscripcion { table-layout: fixed !important; min-width: 0 !important; width: 100% !important; }
  #tablaCodigosInscripcion td:nth-child(1) { width: 15% !important; }
  #tablaCodigosInscripcion td:nth-child(2) { width: 46% !important; }
  #tablaCodigosInscripcion td:nth-child(3) { width: 12% !important; }
  #tablaCodigosInscripcion td:nth-child(4) { width: 10% !important; }
  #tablaCodigosInscripcion td:nth-child(5) { width: 17% !important; }
  #tablaCodigosInscripcion td:nth-child(5) .mini-actions { justify-content: flex-start !important; gap: 6px !important; flex-wrap: nowrap !important; }
  #tablaCodigosInscripcion td:nth-child(n+6) { display: none !important; width: 0 !important; }
}
@media (min-width: 769px) and (max-width: 1280px) {
  .responsive-table td div { white-space: normal !important; word-break: normal !important; overflow-wrap: break-word !important; hyphens: none !important; }
  #tablaCursos { min-width: 980px !important; table-layout: fixed !important; }
  #tablaCursos td:nth-child(2) { width: 40% !important; }
  #tablaCursos td:nth-child(8) { width: 12% !important; }
  #tablaCursos td:nth-child(2) small {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    word-break: normal !important;
    overflow-wrap: break-word !important;
    line-height: 1.3 !important;
  }
  #tablaAsignaciones th:nth-child(2) { width: 32% !important; }
  .mini-actions { flex-wrap: wrap !important; gap: 5px !important; }
  .table-card.table-fit { overflow-x: auto !important; }
  .responsive-table { display: table !important; width: 100% !important; min-width: 980px !important; table-layout: fixed !important; border-collapse: collapse !important; }
  .responsive-table thead { display: table-header-group !important; }
  .responsive-table tbody { display: table-row-group !important; }
  .responsive-table tr {
    display: table-row !important;
    width: auto !important;
    padding: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    border-left: 0 !important;
    border-right: 0 !important;
  }
  .responsive-table td {
    display: table-cell !important;
    position: static !important;
    padding: 10px 8px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    white-space: normal !important;
    vertical-align: middle !important;
    border-bottom: 1px solid var(--border) !important;
  }
  .responsive-table td::before { content: none !important; display: none !important; }
  #tablaCodigosInscripcion td:nth-child(2) { width: 40% !important; }
  #tablaAsignaciones td:nth-child(1) { width: 28% !important; }
  .mini-actions button {
    width: 29px !important;
    height: 29px !important;
    min-width: 29px !important;
    min-height: 29px !important;
    max-width: 29px !important;
    max-height: 29px !important;
    flex: 0 0 29px !important;
  }
  .dashboard-simple-table td { padding-left: 7px !important; padding-right: 7px !important; }
  .estado-table th:last-child { width: 160px !important; min-width: 160px !important; max-width: 160px !important; }
}
@media (max-width: 640px) {
  .quick-grid { grid-template-columns: 1fr !important; }
  body .cursos-table td:nth-child(2) { grid-template-columns: 1fr !important; gap: 3px !important; }
  body .table-card td::before { margin-bottom: 0 !important; }
  body .responsive-table td { grid-template-columns: 1fr !important; gap: 3px !important; }
  body .responsive-table td::before, body .responsive-table td .mini-actions { grid-column: 1 !important; }
  .certificate-modal-card { width: calc(100vw - 18px) !important; max-height: calc(100vh - 18px) !important; padding: 10px !important; border-radius: 8px !important; }
  .certificate-preview-modal { height: auto !important; min-height: auto !important; }
  .eval-overview { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .eval-metric { padding: 10px; }
  .eval-metric strong { font-size: 21px; }
  .eval-nav a { flex: 1 1 calc(50% - 8px); }
  body.page-dashboard .topbar { grid-template-columns: minmax(0, 1fr) 38px !important; gap: 6px !important; padding: 8px 10px !important; min-height: 0 !important; }
  body.page-dashboard .topbar > div:not(.top-actions) { grid-column: 1 !important; align-self: center !important; padding-right: 0 !important; }
  body.page-dashboard .topbar .top-actions:empty { display: none !important; }
  body.page-dashboard .topbar > .mini-btn { grid-column: 2 !important; width: 38px !important; height: 38px !important; min-width: 38px !important; border-radius: 8px !important; }
  body.page-dashboard .topbar h1 { font-size: 18px !important; line-height: 1.1 !important; margin: 0 0 2px !important; }
  body.page-dashboard .topbar p { font-size: 11px !important; line-height: 1.2 !important; margin: 0 !important; }
  body.page-dashboard .stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; margin: 0 !important; }
  body.page-dashboard .stats-grid .stat-card {
    display: grid !important;
    grid-template-columns: 34px minmax(0, 1fr) !important;
    gap: 8px !important;
    min-height: 0 !important;
    padding: 10px !important;
    border-radius: 8px !important;
  }
  body.page-dashboard .stats-grid .stat-icon { width: 34px !important; height: 34px !important; min-width: 34px !important; border-radius: 8px !important; }
  body.page-dashboard .stats-grid .stat-card > div:not(.stat-icon) {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    grid-template-areas: "label value" "hint hint" !important;
    gap: 1px 6px !important;
    align-items: center !important;
  }
  body.page-dashboard .stats-grid .stat-card span {
    grid-area: label !important;
    font-size: 10.5px !important;
    line-height: 1.05 !important;
    margin: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  body.page-dashboard .stats-grid .stat-card strong { grid-area: value !important; justify-self: end !important; font-size: 21px !important; line-height: 1 !important; margin: 0 !important; }
  body.page-dashboard .stats-grid .stat-card small {
    grid-area: hint !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    margin: 0 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  body.page-dashboard .dashboard-grid, body.page-dashboard:has(.stats-grid) .dashboard-grid { grid-template-columns: 1fr !important; gap: 10px !important; margin: 0 !important; }
  body.page-dashboard .panel, body.page-dashboard section.panel, body.page-dashboard:has(.stats-grid) .panel { padding: 11px !important; border-radius: 8px !important; }
  body.page-dashboard .panel-head, body.page-dashboard:has(.stats-grid) .panel.wide .panel-head {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto !important;
    align-items: center !important;
    gap: 8px !important;
    margin-bottom: 9px !important;
  }
  body.page-dashboard .panel-title-wrap { display: grid !important; grid-template-columns: 34px minmax(0, 1fr) !important; align-items: center !important; gap: 8px !important; }
  body.page-dashboard .panel-icon { width: 34px !important; height: 34px !important; border-radius: 8px !important; }
  body.page-dashboard .panel-head .eyebrow { font-size: 10px !important; line-height: 1 !important; margin: 0 0 2px !important; }
  body.page-dashboard .panel-head h2 { font-size: 14px !important; line-height: 1.1 !important; margin: 0 !important; }
  body.page-dashboard .panel-metric { justify-items: end !important; gap: 0 !important; }
  body.page-dashboard .panel-metric span { font-size: 9px !important; line-height: 1 !important; }
  body.page-dashboard .big-percent { font-size: 21px !important; line-height: 1 !important; }
  body.page-dashboard .performance-list { gap: 7px !important; }
  body.page-dashboard .performance-row, body.page-dashboard:has(.stats-grid) .performance-row {
    grid-template-columns: minmax(120px, 1.6fr) minmax(64px, .75fr) 32px !important;
    align-items: center !important;
    gap: 7px !important;
    padding: 8px !important;
    border-radius: 8px !important;
  }
  body.page-dashboard .performance-course { display: grid !important; gap: 2px !important; min-width: 0 !important; }
  body.page-dashboard .performance-code {
    width: fit-content !important;
    min-width: 0 !important;
    padding: 2px 6px !important;
    font-size: 9.5px !important;
    line-height: 1.1 !important;
    border-radius: 7px !important;
  }
  body.page-dashboard .performance-name { font-size: 10.5px !important; line-height: 1.15 !important; max-height: 24px !important; overflow: hidden !important; }
  body.page-dashboard .performance-bar-wrap, body.page-dashboard:has(.stats-grid) .performance-bar-wrap { grid-column: auto !important; width: min(100%, 92px) !important; justify-self: end !important; }
  body.page-dashboard .performance-bar { height: 9px !important; border-radius: 999px !important; }
  body.page-dashboard .performance-value, body.page-dashboard:has(.stats-grid) .performance-value { justify-self: end !important; text-align: right !important; font-size: 14px !important; line-height: 1 !important; }
  body.page-dashboard .chart-legend-note { margin-top: 7px !important; font-size: 10.5px !important; line-height: 1.25 !important; }
  body.page-dashboard .alert-list { gap: 7px !important; }
  body.page-dashboard .alert-row { grid-template-columns: 10px minmax(0, 1fr) !important; gap: 8px !important; padding: 8px !important; border-radius: 8px !important; }
  body.page-dashboard .payment-alert-row { grid-template-columns: 10px minmax(0, 1fr) auto !important; }
  body.page-dashboard .alert-row strong { font-size: 12px !important; line-height: 1.15 !important; }
  body.page-dashboard .alert-row small { font-size: 10.5px !important; line-height: 1.15 !important; }
  body.page-dashboard .dashboard-simple-table { min-width: 0 !important; }
  body.page-dashboard .dashboard-simple-table th, body.page-dashboard .dashboard-simple-table td { padding: 7px 6px !important; font-size: 10.5px !important; line-height: 1.2 !important; }
  body.page-dashboard .dashboard-simple-table th:nth-child(1), body.page-dashboard .dashboard-simple-table td:nth-child(1) { width: 38% !important; }
  body.page-dashboard .dashboard-simple-table th:nth-child(2), body.page-dashboard .dashboard-simple-table td:nth-child(2) { width: 42% !important; }
  body.page-dashboard .dashboard-simple-table th:nth-child(3), body.page-dashboard .dashboard-simple-table td:nth-child(3) { text-align: right !important; }
  body.page-dashboard .dashboard-enrollments-panel .table-card { padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; }
  body.page-dashboard .dashboard-enrollments-table tbody { display: grid !important; gap: 8px !important; width: 100% !important; }
  body.page-dashboard .dashboard-enrollments-table thead { display: none !important; }
  body.page-dashboard .dashboard-enrollments-table tr {
    position: relative !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 6px !important;
    width: 100% !important;
    padding: 9px 74px 9px 10px !important;
  }
  body.page-dashboard .dashboard-enrollments-table td {
    display: block !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0 !important;
    border: 0 !important;
    font-size: 11px !important;
    line-height: 1.15 !important;
    text-align: left !important;
    overflow-wrap: anywhere !important;
  }
  body.page-dashboard .dashboard-enrollments-table td::before {
    content: attr(data-label) !important;
    display: block !important;
    width: max-content !important;
    max-width: 100% !important;
    margin-bottom: 2px !important;
    color: var(--muted) !important;
    font-size: 8.5px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    letter-spacing: .025em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }
  body.page-dashboard .dashboard-enrollments-table td:nth-child(2) { width: auto !important; }
  body.page-dashboard .dashboard-enrollments-table td:nth-child(3) {
    position: absolute !important;
    top: 50% !important;
    right: 10px !important;
    width: auto !important;
    min-width: 48px !important;
    transform: translateY(-50%) !important;
    display: grid !important;
    justify-items: end !important;
    text-align: right !important;
    overflow-wrap: normal !important;
  }
  body.page-dashboard .dashboard-enrollments-table td:nth-child(3)::before { margin-bottom: 5px !important; text-align: right !important; }
  body.page-dashboard .dashboard-enrollments-table td:nth-child(3) .chip { min-width: 0 !important; justify-content: center !important; white-space: nowrap !important; }
  body.page-dashboard .quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 7px !important; }
  body.page-dashboard .quick-grid .quick-card { grid-template-columns: 34px minmax(0, 1fr) 26px !important; gap: 7px !important; min-height: 0 !important; padding: 8px 9px !important; border-radius: 8px !important; }
  body.page-dashboard .quick-grid .quick-card-icon { width: 34px !important; height: 34px !important; border-radius: 8px !important; }
  body.page-dashboard .quick-grid .quick-card strong { font-size: 12px !important; line-height: 1.05 !important; }
  body.page-dashboard .quick-grid .quick-card-next { width: 26px !important; height: 26px !important; min-width: 26px !important; border-radius: 8px !important; }
  body.page-dashboard .quick-grid .quick-card-next .icon-svg { width: 15px !important; height: 15px !important; }
}
@media (min-width: 769px) and (max-width: 1120px) {
  body .table-card table.cursos-table { min-width: 920px !important; }
}
@media (max-height: 760px) {
  .side-menu { gap: 2px !important; }
  .side-menu a { min-height: 35px !important; padding: 5px 10px !important; font-size: 13px !important; }
  .nav-icon { width: 25px !important; height: 25px !important; min-width: 25px !important; flex-basis: 25px !important; }
  .nav-icon svg { width: 15.5px !important; height: 15.5px !important; }
}
@media (min-width: 1281px) {
  .table-card.table-fit, .table-card.table-fit > table { width: 100% !important; }
  .responsive-table { table-layout: fixed !important; }
  #tablaCursos td:nth-child(8) { width: 9% !important; }
  #tablaDocentes td:nth-child(1) { width: 11% !important; }
  #tablaDocentes td:nth-child(2), #tablaDocentes td:nth-child(3) { width: 25% !important; }
  #tablaDocentes td:nth-child(4) { width: 14% !important; }
  #tablaDocentes td:nth-child(5) { width: 10% !important; }
  #tablaDocentes td:nth-child(6) { width: 15% !important; }
  #tablaMatriculas td:nth-child(1) { width: 25% !important; }
  #tablaMatriculas td:nth-child(2) { width: 27% !important; }
  #tablaMatriculas td:nth-child(3) { width: 11% !important; }
  #tablaMatriculas td:nth-child(4), #tablaMatriculas td:nth-child(5) { width: 10% !important; }
  #tablaMatriculas td:nth-child(6) { width: 9% !important; }
  #tablaMatriculas td:nth-child(7) { width: 8% !important; }
  #tablaClases td:nth-child(1) { width: 26% !important; }
  #tablaClases td:nth-child(2) { width: 34% !important; }
  #tablaClases td:nth-child(3) { width: 10% !important; }
  #tablaClases td:nth-child(4) { width: 8% !important; }
  #tablaClases td:nth-child(5) { width: 10% !important; }
  #tablaClases td:nth-child(6) { width: 12% !important; }
  #tablaEvaluaciones td:nth-child(1) { width: 26% !important; }
  #tablaEvaluaciones td:nth-child(2) { width: 25% !important; }
  #tablaEvaluaciones td:nth-child(3) { width: 11% !important; }
  #tablaEvaluaciones td:nth-child(4), #tablaEvaluaciones td:nth-child(5) { width: 10% !important; }
  #tablaEvaluaciones td:nth-child(6) { width: 8% !important; }
  #tablaEvaluaciones td:nth-child(7) { width: 10% !important; }
  #tablaAsignaciones td:nth-child(1) { width: 22% !important; }
  #tablaAsignaciones td:nth-child(2) { width: 24% !important; }
  #tablaAsignaciones td:nth-child(3) { width: 22% !important; }
  #tablaAsignaciones td:nth-child(4), #tablaAsignaciones td:nth-child(5), #tablaAsignaciones td:nth-child(6), #tablaAsignaciones td:nth-child(7) { width: 8% !important; }
  #tablaReportes td:nth-child(1) { width: 22% !important; }
  #tablaReportes td:nth-child(2), #tablaReportes td:nth-child(3) { width: 12% !important; }
  #tablaReportes td:nth-child(4) { width: 34% !important; }
  #tablaReportes td:nth-child(5) { width: 8% !important; }
  #tablaReportes td:nth-child(6) { width: 12% !important; }
  #tablaCodigosInscripcion td:nth-child(1) { width: 14% !important; }
  #tablaCodigosInscripcion td:nth-child(2) { width: 34% !important; }
  #tablaCodigosInscripcion td:nth-child(3) { width: 10% !important; }
  #tablaCodigosInscripcion td:nth-child(4) { width: 20% !important; }
  #tablaCodigosInscripcion td:nth-child(5) { width: 10% !important; }
  #tablaCodigosInscripcion td:nth-child(6), #tablaCodigosInscripcion td:nth-child(7) { width: 6% !important; }
}
@media (min-width: 769px) and (max-width: 1100px) {
  .estado-certificados-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}
@media (max-width: 560px) {
  .topbar { padding: 14px 12px !important; gap: 10px !important; }
  .topbar h1 { line-height: 1.15 !important; }
  .topbar p { font-size: 11.5px !important; line-height: 1.25 !important; }
  .panel-title-wrap { gap: 8px !important; align-items: flex-start !important; }
  .table-card tbody { gap: 8px !important; }
  .table-card tr { padding: 9px !important; }
  .table-card td { grid-template-columns: 1fr !important; gap: 3px !important; display: grid !important; padding: 7px 1px !important; }
  .table-card td::before { margin-bottom: 0 !important; }
  .table-card table.cursos-table td:nth-child(2) strong { font-size: 13px !important; line-height: 1.18 !important; }
  .table-card table.cursos-table td:nth-child(2) small { font-size: 11px !important; line-height: 1.22 !important; }
  td[data-label="Acciones"] .mini-actions { gap: 5px !important; }
  td[data-label="Acciones"] .mini-actions button { width: 30px !important; height: 30px !important; min-width: 30px !important; min-height: 30px !important; padding: 0 !important; }
  .quick-grid { grid-template-columns: 1fr !important; }
  .courses-card-list table.cursos-table.responsive-table tr { padding: 10px !important; }
  .courses-card-list table.cursos-table.responsive-table td:nth-child(n) { grid-template-columns: 1fr !important; gap: 4px !important; padding: 8px 0 !important; }
  .invitation-filter-panel .module-search-grid { gap: 6px !important; }
  body.page-certificados .stats-grid.estado-certificados-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; }
  body.page-certificados .estado-certificados-stats .stat-card {
    display: grid !important;
    grid-template-columns: 32px minmax(0, 1fr) !important;
    align-items: center !important;
    min-width: 0 !important;
    min-height: 72px !important;
    padding: 9px !important;
    gap: 7px !important;
    border-radius: 8px !important;
  }
  body.page-certificados .estado-certificados-stats .stat-icon { width: 32px !important; height: 32px !important; min-width: 32px !important; flex-basis: 32px !important; border-radius: 8px !important; }
  body.page-certificados .estado-certificados-stats .stat-icon svg { width: 16px !important; height: 16px !important; }
  body.page-certificados .estado-certificados-stats .stat-card > div:not(.stat-icon) { min-width: 0 !important; gap: 1px !important; }
  body.page-certificados .estado-certificados-stats .stat-card span { font-size: 10px !important; line-height: 1.05 !important; }
  body.page-certificados .estado-certificados-stats .stat-card strong { font-size: 18px !important; line-height: 1 !important; }
  body.page-certificados .estado-certificados-stats .stat-card small { font-size: 9px !important; line-height: 1.1 !important; }
  body.page-certificados #tablaCertificados tbody { display: grid !important; gap: 8px !important; width: 100% !important; min-width: 0 !important; }
  body.page-certificados #tablaCertificados thead { display: none !important; }
  /* En móvil cada registro se presenta como tarjeta; la descripción y las acciones ocupan toda la fila. */
  body.page-certificados #tablaCertificados tr[data-row] {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 10px !important;
    padding: 10px !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    background: var(--card) !important;
    box-shadow: none !important;
  }
  body.page-certificados #tablaCertificados td {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 6px !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 6px 0 !important;
    border-bottom: 1px solid var(--border) !important;
    font-size: 11px !important;
    line-height: 1.18 !important;
    overflow-wrap: anywhere !important;
  }
  body.page-certificados #tablaCertificados td::before {
    content: attr(data-label) !important;
    color: var(--text) !important;
    font-size: 9px !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
  body.page-certificados #tablaCertificados td:nth-child(7) { grid-column: 1 / -1 !important; align-items: start !important; }
  body.page-certificados #tablaCertificados td:nth-child(9) { grid-column: 1 / -1 !important; border-bottom: 0 !important; padding-bottom: 0 !important; }
  body.page-certificados #tablaCertificados td strong { font-size: 11px !important; line-height: 1.18 !important; }
  body.page-certificados #tablaCertificados .status { width: fit-content !important; max-width: 100% !important; white-space: nowrap !important; }
  body.page-certificados #tablaCertificados td[data-label="Acciones"] .mini-actions { justify-content: flex-start !important; gap: 6px !important; flex-wrap: nowrap !important; }
  body.page-certificados #tablaCertificados td:nth-child(6) strong { display: block !important; white-space: normal !important; overflow-wrap: anywhere !important; }
  body.page-certificados .filter-row { display: flex !important; flex-wrap: wrap !important; gap: 6px !important; margin-bottom: 8px !important; overflow: visible !important; }
  body.page-certificados .filter-row .filter-btn {
    flex: 1 1 calc(50% - 6px) !important;
    min-width: 0 !important;
    min-height: 32px !important;
    padding: 6px 8px !important;
    border-radius: 8px !important;
    font-size: 11px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }
  body.page-certificados .search-grid.certificate-search-grid { display: grid !important; grid-template-columns: 1fr !important; gap: 7px !important; width: 100% !important; margin-top: 0 !important; }
  body.page-certificados .certificate-search-grid > * { width: 100% !important; min-width: 0 !important; max-width: 100% !important; }
  body.page-certificados .certificate-search-grid #buscarModalidad { display: none !important; }
  body.page-certificados .certificate-search-grid #buscarCodigoCurso {
    display: block !important;
    min-height: 34px !important;
    height: 34px !important;
    padding: 6px 10px !important;
    border-radius: 8px !important;
    font-size: 12px !important;
    line-height: 1.15 !important;
  }
  body.page-matriculas .stats-grid.compact-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; margin-bottom: 10px !important; }
  body.page-matriculas .stats-grid.compact-stats .stat-card {
    display: grid !important;
    grid-template-columns: 32px minmax(0, 1fr) !important;
    align-items: center !important;
    min-width: 0 !important;
    min-height: 72px !important;
    padding: 9px !important;
    gap: 7px !important;
    border-radius: 8px !important;
  }
  body.page-matriculas .stats-grid.compact-stats .stat-icon { width: 32px !important; height: 32px !important; min-width: 32px !important; flex-basis: 32px !important; border-radius: 8px !important; }
  body.page-matriculas .stats-grid.compact-stats .stat-icon svg { width: 16px !important; height: 16px !important; }
  body.page-matriculas .stats-grid.compact-stats .stat-card > div:not(.stat-icon) { display: grid !important; min-width: 0 !important; gap: 1px !important; }
  body.page-matriculas .stats-grid.compact-stats .stat-card span {
    font-size: 10px !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
  }
  body.page-matriculas .stats-grid.compact-stats .stat-card strong { font-size: 18px !important; line-height: 1 !important; }
  body.page-matriculas .stats-grid.compact-stats .stat-card small { font-size: 9px !important; line-height: 1.1 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
  body.page-matriculas #tablaMatriculas tbody { display: grid !important; gap: 8px !important; width: 100% !important; min-width: 0 !important; }
  body.page-matriculas #tablaMatriculas thead { display: none !important; }
  body.page-matriculas #tablaMatriculas tr[data-row] {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 10px !important;
    padding: 10px !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    background: var(--card) !important;
    box-shadow: none !important;
  }
  body.page-matriculas #tablaMatriculas td {
    width: auto !important;
    min-width: 0 !important;
    padding: 5px 0 !important;
    border-bottom: 1px solid var(--border) !important;
    font-size: 11px !important;
    line-height: 1.18 !important;
    overflow-wrap: anywhere !important;
  }
  body.page-matriculas #tablaMatriculas td::before {
    content: attr(data-label) !important;
    color: var(--text) !important;
    font-size: 9px !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }
  body.page-matriculas #tablaMatriculas tr[data-row] > td:nth-child(8) {
    display: grid !important;
    grid-column: 1 / -1 !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 8px !important;
  }
  body.page-matriculas #tablaMatriculas tr[data-row] > td:nth-child(2) { min-width: 0 !important; }
  body.page-matriculas #tablaMatriculas tr[data-row] > td:nth-child(1) > small { grid-column: 2 !important; margin: 0 !important; font-size: 10px !important; line-height: 1.1 !important; }
  body.page-matriculas #tablaMatriculas tr[data-row] > td:nth-child(2)::before { content: "Curso" !important; }
  body.page-matriculas #tablaMatriculas tr[data-row] > td:nth-child(2) > .matricula-course-value {
    grid-column: 2 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    max-width: 100% !important;
  }
  body.page-matriculas #tablaMatriculas tr[data-row] > td:nth-child(2) > .matricula-course-value strong {
    display: block !important;
    min-width: 0 !important;
    font-size: 11px !important;
    line-height: 1.18 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
  body.page-matriculas #tablaMatriculas tr[data-row] > td:nth-child(7) {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    min-height: 28px !important;
    line-height: 1 !important;
  }
  body.page-matriculas #tablaMatriculas tr[data-row] > td:nth-child(7)::before { flex: 0 0 auto !important; display: inline-flex !important; align-items: center !important; width: auto !important; margin: 0 !important; }
  body.page-matriculas #tablaMatriculas .status {
    flex: 0 1 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    width: fit-content !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    grid-column: auto !important;
    margin: 0 !important;
  }
  body.page-matriculas #tablaMatriculas td[data-label="Acciones"] {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 8px !important;
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  body.page-matriculas #tablaMatriculas td[data-label="Acciones"]::before { grid-column: 1 !important; margin: 0 !important; align-self: center !important; }
  body.page-matriculas #tablaMatriculas td[data-label="Acciones"] .mini-actions { grid-column: 2 !important; justify-content: flex-start !important; gap: 6px !important; flex-wrap: nowrap !important; }
  body.page-evaluaciones #tablaEvaluaciones tbody { display: grid !important; gap: 8px !important; width: 100% !important; min-width: 0 !important; }
  body.page-evaluaciones #tablaEvaluaciones thead { display: none !important; }
  body.page-evaluaciones #tablaEvaluaciones tr[data-row] {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 10px !important;
    padding: 10px !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    background: var(--card) !important;
    box-shadow: none !important;
  }
  body.page-evaluaciones #tablaEvaluaciones td {
    width: auto !important;
    min-width: 0 !important;
    padding: 5px 0 !important;
    border-bottom: 1px solid var(--border) !important;
    font-size: 11px !important;
    line-height: 1.18 !important;
    overflow-wrap: anywhere !important;
  }
  body.page-evaluaciones #tablaEvaluaciones td::before {
    content: attr(data-label) !important;
    color: var(--text) !important;
    font-size: 9px !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }
  body.page-evaluaciones #tablaEvaluaciones tr[data-row] > td:nth-child(7) {
    display: grid !important;
    grid-column: 1 / -1 !important;
    grid-template-columns: 74px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 8px !important;
  }
  body.page-evaluaciones #tablaEvaluaciones tr[data-row] > td:nth-child(1) > small { grid-column: 2 !important; margin: 0 !important; min-width: 0 !important; font-size: 10px !important; line-height: 1.15 !important; }
  body.page-evaluaciones #tablaEvaluaciones tr[data-row] > td:nth-child(2) > .evaluacion-course-value {
    grid-column: 2 !important;
    display: flex !important;
    align-items: center !important;
    gap: 6px !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }
  body.page-evaluaciones #tablaEvaluaciones tr[data-row] > td:nth-child(2) > .evaluacion-course-value strong {
    display: block !important;
    min-width: 0 !important;
    font-size: 11px !important;
    line-height: 1.18 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
  body.page-evaluaciones #tablaEvaluaciones tr[data-row] > td:nth-child(6) {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    min-height: 28px !important;
    line-height: 1 !important;
  }
  body.page-evaluaciones #tablaEvaluaciones tr[data-row] > td:nth-child(6)::before {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    margin: 0 !important;
  }
  body.page-evaluaciones #tablaEvaluaciones .status {
    flex: 0 1 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    width: fit-content !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    grid-column: auto !important;
    margin: 0 !important;
  }
  body.page-evaluaciones #tablaEvaluaciones td[data-label="Acciones"] {
    display: grid !important;
    grid-template-columns: 74px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 8px !important;
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  body.page-evaluaciones #tablaEvaluaciones td[data-label="Acciones"]::before { grid-column: 1 !important; margin: 0 !important; align-self: center !important; }
  body.page-evaluaciones #tablaEvaluaciones td[data-label="Acciones"] .mini-actions { grid-column: 2 !important; justify-content: flex-start !important; gap: 6px !important; flex-wrap: nowrap !important; }
  body.page-simulador_oece .simulator-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 8px !important; margin-bottom: 10px !important; }
  body.page-simulador_oece .simulator-stats .stat-card {
    display: grid !important;
    grid-template-columns: 32px minmax(0, 1fr) !important;
    align-items: center !important;
    min-width: 0 !important;
    min-height: 72px !important;
    padding: 9px !important;
    gap: 7px !important;
    border-radius: 8px !important;
  }
  body.page-simulador_oece .simulator-stats .stat-card:nth-child(5) { grid-column: 1 / -1 !important; }
  body.page-simulador_oece .simulator-stats .stat-icon { width: 32px !important; height: 32px !important; min-width: 32px !important; flex-basis: 32px !important; border-radius: 8px !important; }
  body.page-simulador_oece .simulator-stats .stat-icon svg { width: 16px !important; height: 16px !important; }
  body.page-simulador_oece .simulator-stats .stat-card > div:not(.stat-icon) { display: grid !important; min-width: 0 !important; gap: 1px !important; }
  body.page-simulador_oece .simulator-stats .stat-card span { font-size: 10px !important; line-height: 1.05 !important; }
  body.page-simulador_oece .simulator-stats .stat-card strong { font-size: 18px !important; line-height: 1 !important; }
  body.page-simulador_oece .simulator-stats .stat-card small { font-size: 9px !important; line-height: 1.1 !important; }
  body.page-simulador_oece #tablaSimuladorOece tbody { display: grid !important; gap: 8px !important; width: 100% !important; min-width: 0 !important; }
  body.page-simulador_oece #tablaSimuladorOece thead { display: none !important; }
  body.page-simulador_oece #tablaSimuladorOece tr[data-row] {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 10px !important;
    padding: 10px !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    background: var(--card) !important;
    box-shadow: none !important;
  }
  body.page-simulador_oece #tablaSimuladorOece td {
    width: auto !important;
    min-width: 0 !important;
    padding: 5px 0 !important;
    border-bottom: 1px solid var(--border) !important;
    font-size: 11px !important;
    line-height: 1.18 !important;
    overflow-wrap: anywhere !important;
  }
  body.page-simulador_oece #tablaSimuladorOece td::before {
    content: attr(data-label) !important;
    color: var(--text) !important;
    font-size: 9px !important;
    line-height: 1.05 !important;
    font-weight: 900 !important;
    letter-spacing: 0.02em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
  }
  body.page-simulador_oece #tablaSimuladorOece tr[data-row] > td:nth-child(5) {
    display: grid !important;
    grid-column: 1 / -1 !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 8px !important;
  }
  body.page-simulador_oece #tablaSimuladorOece tr[data-row] > td:nth-child(1) > small { grid-column: 2 !important; margin: 0 !important; min-width: 0 !important; font-size: 10px !important; line-height: 1.1 !important; }
  body.page-simulador_oece #tablaSimuladorOece tr[data-row] > td:nth-child(2) { align-items: center !important; }
  body.page-simulador_oece #tablaSimuladorOece tr[data-row] > td:nth-child(4) {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 6px !important;
    min-height: 28px !important;
    line-height: 1 !important;
    flex-wrap: wrap !important;
  }
  body.page-simulador_oece #tablaSimuladorOece tr[data-row] > td:nth-child(4)::before {
    flex: 0 0 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    width: auto !important;
    margin: 0 !important;
  }
  body.page-simulador_oece #tablaSimuladorOece tr[data-row] > td:nth-child(4) small { margin: 0 !important; line-height: 1.1 !important; }
  body.page-simulador_oece #tablaSimuladorOece .status {
    flex: 0 1 auto !important;
    display: inline-flex !important;
    align-items: center !important;
    width: fit-content !important;
    max-width: 100% !important;
    white-space: nowrap !important;
    grid-column: auto !important;
    margin: 0 !important;
  }
  body.page-simulador_oece #tablaSimuladorOece td[data-label="Acciones"] {
    display: grid !important;
    grid-template-columns: 72px minmax(0, 1fr) !important;
    align-items: center !important;
    gap: 8px !important;
    border-bottom: 0 !important;
    padding-bottom: 0 !important;
  }
  body.page-simulador_oece #tablaSimuladorOece td[data-label="Acciones"]::before { grid-column: 1 !important; margin: 0 !important; align-self: center !important; }
  body.page-simulador_oece #tablaSimuladorOece td[data-label="Acciones"] .oece-access-actions { grid-column: 2 !important; justify-content: flex-start !important; gap: 6px !important; flex-wrap: nowrap !important; }
}
@media (min-width: 921px) {
  .table-card.table-fit { overflow-x: auto !important; overflow-y: visible !important; padding: 0 !important; background: var(--card) !important; border: 1px solid var(--border) !important; }
  table.responsive-table {
    display: table !important;
    width: 100% !important;
    min-width: 900px !important;
    max-width: none !important;
    table-layout: auto !important;
    border-collapse: collapse !important;
  }
  .responsive-table thead { display: table-header-group !important; }
  .responsive-table tbody { display: table-row-group !important; }
  .responsive-table tr {
    display: table-row !important;
    width: auto !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .responsive-table td {
    display: table-cell !important;
    position: static !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    padding: 10px 9px !important;
    border-bottom: 1px solid var(--border) !important;
    vertical-align: middle !important;
    text-align: left !important;
    white-space: normal !important;
    overflow: visible !important;
    line-height: 1.28 !important;
  }
  .responsive-table th { white-space: nowrap !important; font-size: 11px !important; line-height: 1.1 !important; }
  .responsive-table td::before { content: none !important; display: none !important; }
  .cursos-table { min-width: 940px !important; }
  .cursos-table td:nth-child(2) { min-width: 310px !important; }
  .cursos-table td:nth-child(2) small { display: block !important; white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important; }
  .responsive-table .mini-actions { justify-content: center !important; flex-wrap: nowrap !important; }
}
@media (max-width: 700px) {
  .table-card table.cursos-table td::before { width: 100% !important; }
  .table-card table.cursos-table td:nth-child(2) { width: 100% !important; min-width: 0 !important; max-width: 100% !important; }
  .invitation-whatsapp-panel .form-grid, body:not(.login-page):not(.public-page) .main .module-search-grid.three { grid-template-columns: 1fr !important; }
}
@media (max-width: 1080px) {
  .registration-page { display: flex !important; flex-direction: column !important; align-items: center !important; padding: 12px 10px 28px !important; min-height: 100vh !important; }
  .registration-page .registration-shell { margin: 0 auto !important; gap: 12px !important; }
  .registration-page .registration-layout { display: flex !important; flex-direction: column !important; width: 100% !important; grid-template-columns: 1fr !important; }
  .registration-page .registration-intro.panel {
    display: flex !important;
    flex-direction: column !important;
    gap: 14px !important;
    padding: 18px 16px !important;
    border-radius: 8px !important;
    background: var(--card) !important;
    box-shadow: none !important;
  }
  .registration-page .registration-intro-header { display: flex !important; flex-direction: column !important; gap: 4px !important; }
  .registration-page .registration-brand-row { margin-bottom: 2px !important; }
  .registration-page .registration-brand-row .eyebrow { font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.05em !important; }
  .registration-page .registration-intro h2 { margin: 2px 0 6px !important; font-size: 20px !important; font-weight: 800 !important; color: var(--text) !important; line-height: 1.25 !important; }
  .registration-page .registration-intro p { font-size: 13px !important; line-height: 1.45 !important; color: var(--text) !important; margin: 0 !important; display: block !important; }
  .registration-page .registration-step-list { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 8px !important; margin: 4px 0 0 !important; }
  .registration-page .registration-step {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    padding: 8px 6px !important;
    border-radius: 8px !important;
    background: var(--card) !important;
    border: 1px solid var(--border) !important;
    gap: 4px !important;
  }
  .registration-page .registration-step span { font-size: 12px !important; font-weight: 800 !important; color: var(--text) !important; }
  .registration-page .registration-step strong { font-size: 11px !important; font-weight: 600 !important; color: var(--text) !important; line-height: 1.2 !important; }
  .registration-page .registration-step small { display: none !important; }
  .registration-page .registration-info-list { display: block !important; width: 100% !important; margin-top: 2px !important; grid-template-columns: 1fr !important; }
  .registration-page .registration-info-item {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    width: 100% !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    background: var(--card) !important;
    border: 1px solid var(--border) !important;
    box-sizing: border-box !important;
  }
  .registration-page .registration-info-item span { font-size: 11px !important; font-weight: 700 !important; color: var(--text) !important; letter-spacing: 0.04em !important; text-transform: uppercase !important; }
  .registration-page .registration-info-item strong { font-size: 13px !important; font-weight: 700 !important; color: var(--text) !important; text-align: right !important; justify-self: auto !important; }
  .registration-page .registration-form.panel {
    display: flex !important;
    flex-direction: column !important;
    border-radius: 8px !important;
    box-shadow: none !important;
    background: var(--card) !important;
    border: 1px solid var(--border) !important;
  }
  .registration-page .registration-form-heading { display: flex !important; flex-direction: column !important; gap: 4px !important; margin-bottom: 2px !important; padding-bottom: 0 !important; }
  .registration-page .registration-form-heading .eyebrow { font-size: 11px !important; font-weight: 700 !important; letter-spacing: 0.05em !important; color: var(--text) !important; }
  .registration-page .registration-form-heading p { display: block !important; font-size: 12px !important; line-height: 1.4 !important; color: var(--text) !important; margin: 0 !important; }
  .registration-page .registration-code-row { display: flex !important; flex-direction: column !important; gap: 12px !important; width: 100% !important; grid-template-columns: 1fr !important; }
  .registration-page .registration-code-field, .registration-page .registration-cert-field {
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--text) !important;
    width: 100% !important;
  }
  .registration-page .registration-form-grid { display: flex !important; flex-direction: column !important; gap: 12px !important; width: 100% !important; grid-template-columns: 1fr !important; }
  .registration-page .registration-form-grid label {
    display: flex !important;
    flex-direction: column !important;
    gap: 5px !important;
    font-size: 12px !important;
    font-weight: 600 !important;
    color: var(--muted) !important;
    width: 100% !important;
    grid-column: 1 / -1 !important;
  }
  .registration-page .registration-form input, .registration-page .registration-form select {
    width: 100% !important;
    height: 46px !important;
    min-height: 46px !important;
    padding: 0 14px !important;
    font-size: 14px !important;
    border-radius: 8px !important;
    border: 1px solid var(--border) !important;
    background: var(--card) !important;
    color: var(--text) !important;
    box-sizing: border-box !important;
  }
  .registration-page .registration-course-card {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    background: var(--card) !important;
    border: 1px solid var(--border) !important;
  }
  .registration-page .registration-course-card span { font-size: 10px !important; font-weight: 800 !important; color: var(--text) !important; text-transform: uppercase !important; }
  .registration-page .registration-course-card strong { font-size: 13px !important; color: var(--text) !important; line-height: 1.35 !important; }
  .registration-page .registration-submit {
    width: 100% !important;
    height: 48px !important;
    min-height: 48px !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    border-radius: 8px !important;
    margin-top: 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  .registration-page .registration-note { display: block !important; font-size: 11px !important; color: var(--text) !important; text-align: center !important; margin: 2px 0 0 !important; }
  .registration-page .whatsapp-support-link {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    gap: 3px !important;
    padding: 10px 14px !important;
    border-radius: 8px !important;
    background: var(--card) !important;
    border: 1px solid var(--border) !important;
    color: var(--text) !important;
    text-decoration: none !important;
    min-height: 42px !important;
  }
  .registration-page .whatsapp-support-link span { font-size: 11px !important; color: var(--text) !important; }
  .registration-page .whatsapp-support-link strong { font-size: 13px !important; color: var(--text) !important; }
}
@media (max-width: 1180px) {
  .table-card:has(table.cursos-table) { padding: 0 !important; background: transparent !important; border: 0 !important; box-shadow: none !important; overflow: visible !important; }
  body table.cursos-table { table-layout: auto !important; }
  .table-card table.cursos-table { display: block !important; width: 100% !important; min-width: 0 !important; max-width: 100% !important; }
  .table-card table.cursos-table thead { display: none !important; }
  .table-card table.cursos-table tbody { display: grid !important; width: 100% !important; gap: 10px !important; }
  .table-card table.cursos-table tr {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    padding: 10px !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    background: var(--card2) !important;
    box-shadow: none !important;
  }
  .table-card table.cursos-table td {
    display: grid !important;
    grid-template-columns: clamp(96px, 20%, 150px) minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 8px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 8px 2px !important;
    border-bottom: 1px solid var(--border) !important;
    white-space: normal !important;
    overflow: visible !important;
  }
  body table.cursos-table td:nth-child(8) { width: 100% !important; min-width: 0 !important; max-width: 100% !important; white-space: normal !important; }
  .table-card table.cursos-table td:last-child { border-bottom: 0 !important; }
  .table-card table.cursos-table td::before {
    content: attr(data-label) !important;
    display: block !important;
    color: var(--muted) !important;
    font-size: 9.5px !important;
    font-weight: 900 !important;
    line-height: 1.15 !important;
    letter-spacing: .045em !important;
    text-transform: uppercase !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
  }
  .table-card table.cursos-table td > * {
    grid-column: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }
  .table-card table.cursos-table td:nth-child(2) small {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow-wrap: break-word !important;
    word-break: normal !important;
  }
  .table-card table.cursos-table td:nth-child(6) { white-space: normal !important; word-break: normal !important; overflow-wrap: break-word !important; }
  .courses-card-list table.cursos-table.responsive-table td:nth-child(8) .mini-actions {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 7px !important;
    width: max-content !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .courses-card-list table.cursos-table.responsive-table td:nth-child(8) .mini-actions button {
    display: inline-flex !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 !important;
  }
  .courses-card-list table.cursos-table.responsive-table td:nth-child(7) { grid-column: 1 / -1 !important; }
  .courses-card-list table.cursos-table.responsive-table td[data-label="Acciones"] { align-items: start !important; grid-template-columns: minmax(82px, 112px) max-content !important; }
  .courses-card-list table.cursos-table.responsive-table td[data-label="Estado"] .status { width: auto !important; min-width: 0 !important; max-width: max-content !important; inline-size: fit-content !important; }
}
@media (max-width: 980px) {
  .simulator-stats { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  body.page-estudiante_simulador_oece .detail-grid { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; }
  .oece-pricing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 10px !important; }
  .oece-pricing-card { min-height: 0 !important; }
  .oece-plan-grid { gap: 9px !important; }
  .invitation-filter-panel .module-search-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .invitation-filter-panel .btn-clear-filter { width: 100% !important; }
}
@media (min-width: 701px) and (max-width: 1180px) {
  .courses-card-list table.cursos-table.responsive-table tbody { width: 100% !important; max-width: 100% !important; min-width: 0 !important; overflow-x: clip !important; overflow-y: visible !important; }
  .courses-card-list table.cursos-table.responsive-table tr {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 0 18px !important;
    box-sizing: border-box !important;
    inline-size: min(100%, 100cqw) !important;
    max-inline-size: 100cqw !important;
  }
  .courses-card-list table.cursos-table.responsive-table td:nth-child(n) {
    grid-template-columns: minmax(82px, 112px) minmax(0, 1fr) !important;
    gap: 10px !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
  }
  .courses-card-list table.cursos-table.responsive-table td::before { white-space: nowrap !important; overflow-wrap: normal !important; word-break: normal !important; }
  .courses-card-list table.cursos-table.responsive-table td:nth-child(8) { grid-column: 1 / -1 !important; align-items: start !important; grid-template-columns: minmax(82px, 112px) max-content !important; }
  .courses-card-list table.cursos-table.responsive-table td:nth-child(2) { grid-template-columns: minmax(82px, 112px) minmax(0, 1fr) !important; }
  .courses-card-list table.cursos-table.responsive-table td:nth-child(2) small { max-width: 100% !important; }
  .courses-card-list table.cursos-table.responsive-table td:nth-child(6) { white-space: nowrap !important; }
  .courses-card-list table.cursos-table.responsive-table td:nth-child(7) .status, .courses-card-list table.cursos-table.responsive-table td:nth-child(3) .chip {
    width: auto !important;
    min-width: 0 !important;
    max-width: max-content !important;
    inline-size: fit-content !important;
    block-size: auto !important;
  }
  .courses-card-list table.cursos-table.responsive-table .mini-actions {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 7px !important;
    width: max-content !important;
    min-width: 0 !important;
    max-width: 100% !important;
    justify-self: start !important;
  }
  .courses-card-list table.cursos-table.responsive-table .mini-actions button {
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 !important;
  }
}
@media (min-width: 1181px) {
  .courses-list-panel { overflow: visible !important; }
  .courses-card-list.table-fit {
    width: 100% !important;
    max-width: 100% !important;
    padding: 0 !important;
    border: 1px solid var(--border) !important;
    border-radius: 8px !important;
    background: var(--card) !important;
    box-shadow: none !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
  }
  .courses-card-list table.cursos-table.responsive-table {
    display: table !important;
    width: 100% !important;
    min-width: 1080px !important;
    max-width: none !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
    border-spacing: 0 !important;
  }
  .courses-card-list table.cursos-table.responsive-table thead { display: table-header-group !important; }
  .courses-card-list table.cursos-table.responsive-table tbody { display: table-row-group !important; width: auto !important; }
  .courses-card-list table.cursos-table.responsive-table tr {
    display: table-row !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
  }
  .courses-card-list table.cursos-table.responsive-table td:nth-child(n) {
    display: table-cell !important;
    position: static !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;
    padding: 10px 9px !important;
    border-bottom: 1px solid var(--border) !important;
    vertical-align: middle !important;
    text-align: left !important;
    white-space: normal !important;
    overflow: visible !important;
    line-height: 1.28 !important;
  }
  .courses-card-list table.cursos-table td { padding-left: 8px !important; padding-right: 8px !important; }
  .courses-card-list table.cursos-table.responsive-table th { white-space: nowrap !important; font-size: 11px !important; line-height: 1.1 !important; }
  .courses-card-list table.cursos-table.responsive-table td::before { content: none !important; display: none !important; }
  .courses-card-list table.cursos-table td:nth-child(1) { width: 86px !important; }
  .courses-card-list table.cursos-table td:nth-child(2) { width: auto !important; min-width: 0 !important; }
  .courses-card-list table.cursos-table td:nth-child(3) { width: 130px !important; }
  .courses-card-list table.cursos-table td:nth-child(4) { width: 98px !important; }
  .courses-card-list table.cursos-table td:nth-child(5) { width: 100px !important; }
  .courses-card-list table.cursos-table td:nth-child(6) { width: 82px !important; }
  .courses-card-list table.cursos-table td:nth-child(7) { width: 96px !important; }
  .courses-card-list table.cursos-table td:nth-child(8) { width: 132px !important; text-align: center !important; }
  .courses-card-list table.cursos-table.responsive-table td > * { grid-column: auto !important; width: auto !important; min-width: 0 !important; max-width: 100% !important; }
  .courses-card-list table.cursos-table td:nth-child(2) small { display: block !important; width: 100% !important; white-space: normal !important; overflow-wrap: break-word !important; word-break: normal !important; }
  .courses-card-list table.cursos-table .mini-actions { justify-content: center !important; flex-wrap: nowrap !important; }
  #tablaCursos td:nth-child(1) { width: 7% !important; min-width: 72px !important; max-width: 86px !important; text-align: left !important; padding-right: 6px !important; }
  #tablaCursos td:nth-child(2) { width: 44% !important; padding-left: 4px !important; }
  #tablaCursos td:nth-child(3) { width: 14% !important; }
  #tablaCursos td:nth-child(4) { width: 10% !important; }
  #tablaCursos td:nth-child(5) { width: 7% !important; }
  #tablaCursos td:nth-child(6) { width: 9% !important; }
  #tablaCursos td:nth-child(7) { width: 11% !important; }
  #tablaCursos td:nth-child(1) .chip { justify-content: flex-start !important; min-width: 0 !important; }
}
@media (max-width: 380px) {
  body.page-dashboard .quick-grid { grid-template-columns: 1fr !important; }
  body.page-dashboard .quick-grid .quick-card { grid-template-columns: 32px minmax(0, 1fr) 24px !important; }
}
@media (min-width: 769px) {
  body.page-dashboard .stats-grid { gap: 12px !important; margin-bottom: 14px; }
  body.page-dashboard .stats-grid .stat-card { min-height: 88px; padding: 13px 14px !important; gap: 12px; }
  body.page-dashboard .stats-grid .stat-icon { width: 40px !important; height: 40px !important; min-width: 40px !important; flex-basis: 40px !important; border-radius: 8px; }
  body.page-dashboard .stats-grid .stat-card span { font-size: 11px; line-height: 1.1; }
  body.page-dashboard .stats-grid .stat-card strong { display: block; margin: 3px 0 2px; font-size: 25px; line-height: 1; }
  body.page-dashboard .stats-grid .stat-card small { display: block; font-size: 10.5px; line-height: 1.15; }
  body.page-dashboard .dashboard-grid { gap: 14px !important; margin-bottom: 14px; }
  body.page-dashboard .panel { padding: 15px !important; border-radius: 8px; }
  body.page-dashboard .panel-head { align-items: center !important; gap: 10px !important; margin-bottom: 11px !important; }
  body.page-dashboard .panel-title-wrap { gap: 10px; }
  body.page-dashboard .panel-icon { width: 38px !important; height: 38px !important; min-width: 38px !important; border-radius: 8px; }
  body.page-dashboard .panel-head .eyebrow { margin-bottom: 2px; font-size: 10px; line-height: 1; }
  body.page-dashboard .panel-head h2 { margin-top: 0; font-size: 17px !important; line-height: 1.15 !important; }
  body.page-dashboard .panel-metric span { font-size: 10px; }
  body.page-dashboard .big-percent { font-size: 28px; line-height: 1; }
  body.page-dashboard .performance-list, body.page-dashboard .alert-list { gap: 7px !important; }
  body.page-dashboard .performance-list { margin-top: 4px; }
  body.page-dashboard .performance-row { gap: 10px; padding: 8px 10px !important; border-radius: 8px !important; }
  body.page-dashboard .performance-code { min-width: 0; padding: 3px 7px; font-size: 10px; }
  body.page-dashboard .performance-name, body.page-dashboard .alert-row strong { font-size: 11.5px !important; line-height: 1.2; }
  body.page-dashboard .performance-bar { height: 8px !important; }
  body.page-dashboard .performance-value { font-size: 14px !important; }
  body.page-dashboard .chart-legend-note { margin-top: 7px !important; font-size: 10px !important; }
  body.page-dashboard .alert-row { gap: 9px; padding: 9px 10px !important; border-radius: 8px !important; }
  body.page-dashboard .alert-row small { margin-top: 2px; font-size: 10px; line-height: 1.2; }
  body.page-dashboard .dot { width: 9px; height: 9px; margin-top: 3px; }
  body.page-dashboard .dashboard-simple-table th, body.page-dashboard .dashboard-simple-table td { padding: 7px 8px !important; font-size: 11px; line-height: 1.2; }
  body.page-dashboard .quick-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 9px !important; }
  body.page-dashboard .quick-grid .quick-card { padding: 8px 9px !important; border-radius: 8px; }
  body.page-dashboard .quick-grid .quick-card-icon { min-width: 34px; border-radius: 8px; }

  body.page-estudiante_dashboard .stats-grid { gap: 10px !important; margin-bottom: 0; }
  body.page-estudiante_dashboard .stats-grid .stat-card { min-height: 78px; padding: 11px 12px !important; gap: 10px; }
  body.page-estudiante_dashboard .stats-grid .stat-icon {
    width: 36px !important;
    height: 36px !important;
    min-width: 36px !important;
    flex-basis: 36px !important;
    border-radius: 8px;
    font-size: 16px !important;
  }
  body.page-estudiante_dashboard .stats-grid .stat-card span { font-size: 10.5px; }
  body.page-estudiante_dashboard .stats-grid .stat-card strong { display: block; margin: 2px 0; font-size: 23px; line-height: 1; }
  body.page-estudiante_dashboard .stats-grid .stat-card small { display: block; font-size: 10px; line-height: 1.1; }
  body.page-estudiante_dashboard .panel { padding: 14px !important; border-radius: 8px; }
  body.page-estudiante_dashboard .panel-head { align-items: center !important; margin-bottom: 9px !important; }
  body.page-estudiante_dashboard .panel-head h2 { margin: 2px 0 0; font-size: 17px !important; line-height: 1.1 !important; }
  body.page-estudiante_dashboard .simulator-access-panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 18px; }
  body.page-estudiante_dashboard .simulator-access-panel .panel-head { grid-column: 1 / -1; width: 100%; }
  body.page-estudiante_dashboard .simulator-student-intro { margin: 0; max-width: 44ch; font-size: 12px; line-height: 1.35; }
  body.page-estudiante_dashboard .oece-plan-grid { grid-template-columns: repeat(3, minmax(130px, 1fr)); gap: 8px; margin: 0; }
  body.page-estudiante_dashboard .oece-plan-card { min-height: 0; padding: 10px !important; border-radius: 8px; gap: 5px; }
  body.page-estudiante_dashboard .oece-plan-card strong { font-size: 13px; }
  body.page-estudiante_dashboard .oece-plan-card small { font-size: 10px; line-height: 1.2; }
  body.page-estudiante_dashboard .oece-plan-price { font-size: 20px; line-height: 1; }
  body.page-estudiante_dashboard .oece-plan-badge { padding: 3px 6px; }
  body.page-estudiante_dashboard .oece-plan-button { min-height: 30px; padding: 6px 8px; font-size: 10px; }
  body.page-estudiante_dashboard .simulator-access-panel > .alert { display: none; }
  body.page-estudiante_dashboard .course-list { gap: 7px !important; }
  body.page-estudiante_dashboard .course-item { grid-template-columns: 38px minmax(0, 1fr) auto; gap: 10px; padding: 9px 10px !important; border-radius: 8px !important; }
  body.page-estudiante_dashboard .course-badge { width: 38px; height: 38px; border-radius: 8px; font-size: 10px; }
  body.page-estudiante_dashboard .course-item strong { font-size: 12px !important; }
  body.page-estudiante_dashboard .course-item small { font-size: 10px !important; }
  body.page-estudiante_dashboard .course-item .progress { margin-top: 5px; height: 6px; }
}
@media (min-width: 769px) and (max-width: 1100px) {
  body.page-estudiante_dashboard .simulator-access-panel { grid-template-columns: 1fr; }
  body.page-estudiante_dashboard .simulator-student-intro { max-width: none; }
  body.page-estudiante_dashboard .oece-plan-grid { margin-top: 10px; }
}
.btn-danger, .mini-actions a.danger, .mini-actions .action-danger { background: var(--button-danger-bg) !important; color: var(--button-danger-text) !important; border-color: transparent !important; }
.btn-danger:hover, .mini-actions a.danger:hover, .mini-actions .action-danger:hover { background: var(--button-danger-hover) !important; }
.mini-btn, .btn-clear-filter, .filter-btn, .mini-actions a, .mini-actions button { border-color: var(--button-border) !important; }
.mini-btn:hover, .btn-clear-filter:hover, .filter-btn:hover, .mini-actions a:hover, .mini-actions button:hover { background: var(--button-secondary-hover) !important; }

.oece-plan-button { background: var(--button-info-bg) !important; color: var(--button-info-text) !important; border-color: transparent !important; }
.oece-plan-button:hover { background: var(--button-info-hover) !important; }
.oece-plan-card.featured .oece-plan-button, .oece-plan-card:last-child .oece-plan-button {
  background: var(--button-primary-bg) !important;
  color: var(--button-primary-text) !important;
  border-color: transparent !important;
}

.mini-actions .action-view { background: var(--button-action-view-bg) !important; color: var(--button-info-text) !important; border-color: transparent !important; }
.mini-actions .action-view:hover { background: var(--button-action-view-hover) !important; }
.mini-actions .action-edit, .mini-actions .action-warning { background: var(--button-action-warning-bg) !important; color: #92400e !important; border-color: transparent !important; }
.mini-actions .action-edit:hover, .mini-actions .action-warning:hover { background: var(--button-action-warning-hover) !important; }
.mini-actions .action-success { background: var(--button-success-bg) !important; color: #166534 !important; border-color: transparent !important; }
.mini-actions .action-success:hover { background: var(--button-success-hover) !important; }
@media (min-width: 701px) and (max-width: 1180px) {
  .courses-card-list.table-fit { overflow: visible !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; gap: 0 14px !important; padding: 12px 14px !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(n) { grid-template-columns: 1fr !important; align-content: start !important; gap: 4px !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td::before {
    width: auto !important;
    margin: 0 !important;
    color: var(--text) !important;
    font-size: 10px !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(1), .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(2) { grid-column: 1 / -1 !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(1) { display: flex !important; align-items: center !important; gap: 10px !important; padding-top: 0 !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(1)::before { flex: 0 0 72px !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(2) { padding-top: 9px !important; padding-bottom: 11px !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(2) strong { font-size: 14px !important; line-height: 1.25 !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(2) small { max-width: 100% !important; font-size: 11px !important; line-height: 1.28 !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(6) { grid-column: 1 / 2 !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(7) { grid-column: 2 / 4 !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(8) {
    grid-column: 1 / -1 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding-bottom: 0 !important;
    border-bottom: 0 !important;
  }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(8)::before { flex: 0 0 auto !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(8) .mini-actions {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    width: auto !important;
  }
}
@layer invitation-layout {
  .invitation-whatsapp-panel .invitation-whatsapp-row {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: flex-end !important;
    gap: 12px !important;
    margin-bottom: 0 !important;
    overflow-x: auto !important;
    padding-bottom: 3px !important;
  }
  .invitation-whatsapp-row > label { flex: 1 1 0 !important; min-width: 210px !important; margin: 0 !important; }
  .invitation-whatsapp-row > #btnInvitarWhatsapp {
    flex: 0 0 auto !important;
    width: auto !important;
    height: 36px !important;
    min-height: 36px !important;
    margin: 0 !important;
    padding: 7px 14px !important;
    white-space: nowrap !important;
    font-size: 12px !important;
  }
}
@layer filter-layout {
  .module-search-grid, .search-grid {
    display: flex !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 10px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    padding-bottom: 3px !important;
  }
  .module-search-grid > *, .search-grid > * { flex: 1 1 0 !important; width: auto !important; min-width: 120px !important; margin-top: 0 !important; margin-bottom: 0 !important; }
  .module-search-grid > button, .search-grid > button { flex: 0 0 auto !important; min-width: 132px !important; white-space: nowrap !important; }
}
@media (min-width: 921px) {
  body.page-simulador_oece #tablaSimuladorOece { width: 100% !important; table-layout: fixed !important; }
  body.page-simulador_oece #tablaSimuladorOece :is(th, td):nth-child(1) { width: 30% !important; }
  body.page-simulador_oece #tablaSimuladorOece :is(th, td):nth-child(2) { width: 27% !important; }
  body.page-simulador_oece #tablaSimuladorOece :is(th, td):nth-child(3) { width: 13% !important; }
  body.page-simulador_oece #tablaSimuladorOece :is(th, td):nth-child(4) { width: 14% !important; }
  body.page-simulador_oece #tablaSimuladorOece :is(th, td):nth-child(5) { width: 16% !important; }
  body.page-simulador_oece #tablaSimuladorOece td:nth-child(1) strong { white-space: normal !important; overflow-wrap: break-word !important; }
  body.page-simulador_oece #tablaSimuladorOece td:nth-child(1) small { white-space: nowrap !important; }
  body.page-simulador_oece #tablaSimuladorOece td:nth-child(2) { overflow-wrap: anywhere !important; }
  body.page-simulador_oece #tablaSimuladorOece .oece-access-actions { flex-wrap: wrap !important; gap: 4px !important; }
}
@media (max-width: 920px) {
  body.page-matriculas #tablaMatriculas tbody tr[data-row] > td { display: block !important; }
  body.page-matriculas #tablaMatriculas tbody tr[data-row] > td::before { display: block !important; position: static !important; width: auto !important; margin-bottom: 4px !important; }
  body.page-matriculas #tablaMatriculas tbody tr[data-row] > td .matricula-course-value { display: block !important; }
}
@media (min-width: 921px) {
  body.page-matriculas #tablaMatriculas { table-layout: fixed !important; width: 100% !important; }
  body.page-matriculas #tablaMatriculas :is(th, td):nth-child(1) { width: 20% !important; }
  body.page-matriculas #tablaMatriculas :is(th, td):nth-child(2) { width: 24% !important; }
  body.page-matriculas #tablaMatriculas :is(th, td):nth-child(3) { width: 10% !important; white-space: nowrap !important; }
  body.page-matriculas #tablaMatriculas :is(th, td):nth-child(4) { width: 6% !important; }
  body.page-matriculas #tablaMatriculas :is(th, td):nth-child(5) { width: 10% !important; }
  body.page-matriculas #tablaMatriculas :is(th, td):nth-child(6), body.page-matriculas #tablaMatriculas :is(th, td):nth-child(7) { width: 9% !important; }
  body.page-matriculas #tablaMatriculas :is(th, td):nth-child(8) { width: 12% !important; }
  body.page-matriculas #tablaMatriculas td strong { white-space: normal !important; overflow-wrap: break-word !important; }
  body.page-matriculas #tablaMatriculas .status { max-width: 100% !important; white-space: normal !important; overflow-wrap: anywhere !important; }
  body.page-matriculas #tablaMatriculas .mini-actions { gap: 4px !important; flex-wrap: wrap !important; max-width: 100% !important; }
}
@layer table-density {
  @media (min-width: 921px) {
    #tablaMatriculas th, #tablaMatriculas td { padding-left: 6px !important; padding-right: 6px !important; }
  }
  table th, table td { padding-top: 6px !important; padding-bottom: 6px !important; }
  table td small { margin-top: 2px !important; }
  @media (min-width: 1181px) {
    table th, table td { padding-left: 8px !important; padding-right: 8px !important; }
  }
}
@media (min-width: 701px) and (max-width: 1180px) {
  .courses-card-list.table-fit { overflow-x: auto !important; overflow-y: visible !important; padding: 0 !important; border-radius: 8px !important; }
  .courses-card-list table.cursos-table.responsive-table { display: table !important; }
  .courses-card-list table.cursos-table.responsive-table { width: 100% !important; min-width: 1000px !important; table-layout: fixed !important; border-collapse: collapse !important; }
  .courses-card-list table.cursos-table.responsive-table thead { display: table-header-group !important; }
  .courses-card-list table.cursos-table.responsive-table tbody { display: table-row-group !important; }
  .courses-card-list table.cursos-table.responsive-table tr[data-row] { display: table-row !important; background: transparent !important; border: 0 !important; border-radius: 0 !important; }
  .courses-card-list table.cursos-table.responsive-table th, .courses-card-list table.cursos-table.responsive-table tr[data-row] td:nth-child(n) {
    display: table-cell !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    padding: 11px 9px !important;
    vertical-align: middle !important;
    border-bottom: 1px solid var(--border) !important;
  }
  .courses-card-list table.cursos-table.responsive-table td::before { content: none !important; display: none !important; }
  .courses-card-list table.cursos-table th:nth-child(1), .courses-card-list table.cursos-table td:nth-child(1) { width: 9% !important; }
  .courses-card-list table.cursos-table th:nth-child(2), .courses-card-list table.cursos-table td:nth-child(2) { width: 34% !important; }
  .courses-card-list table.cursos-table th:nth-child(3), .courses-card-list table.cursos-table td:nth-child(3) { width: 15% !important; }
  .courses-card-list table.cursos-table th:nth-child(4), .courses-card-list table.cursos-table td:nth-child(4) { width: 11% !important; }
  .courses-card-list table.cursos-table th:nth-child(5), .courses-card-list table.cursos-table td:nth-child(5) { width: 8% !important; }
  .courses-card-list table.cursos-table th:nth-child(6), .courses-card-list table.cursos-table td:nth-child(6) { width: 10% !important; }
  .courses-card-list table.cursos-table th:nth-child(7), .courses-card-list table.cursos-table td:nth-child(7) { width: 13% !important; text-align: center !important; }
  .courses-card-list table.cursos-table td:nth-child(2) small { display: block !important; white-space: normal !important; overflow-wrap: break-word !important; }
  .courses-card-list table.cursos-table td:nth-child(7) .mini-actions {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    justify-content: center !important;
    gap: 6px !important;
  }
}
@media (min-width: 701px) {
  body.page-cursos .courses-list-panel { min-width: 0 !important; }
  body.page-cursos .courses-card-list { overflow-x: auto !important; overflow-y: visible !important; padding: 0 !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table.responsive-table {
    display: table !important;
    width: 100% !important;
    min-width: 0 !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
  }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table.responsive-table thead { display: table-header-group !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table.responsive-table tbody { display: table-row-group !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table.responsive-table tr[data-row] { display: table-row !important; background: transparent !important; border: 0 !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table.responsive-table th, body.page-cursos .courses-card-list table#tablaCursos.cursos-table.responsive-table tr[data-row] td {
    display: table-cell !important;
    width: auto !important;
    min-width: 0 !important;
    padding: 11px 9px !important;
    vertical-align: middle !important;
    border-bottom: 1px solid var(--border) !important;
  }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table.responsive-table td::before { content: none !important; display: none !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table th:nth-child(1), body.page-cursos .courses-card-list table#tablaCursos.cursos-table td:nth-child(1) { width: 9% !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table th:nth-child(2), body.page-cursos .courses-card-list table#tablaCursos.cursos-table td:nth-child(2) { width: 34% !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table th:nth-child(3), body.page-cursos .courses-card-list table#tablaCursos.cursos-table td:nth-child(3) { width: 15% !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table th:nth-child(4), body.page-cursos .courses-card-list table#tablaCursos.cursos-table td:nth-child(4) { width: 11% !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table th:nth-child(5), body.page-cursos .courses-card-list table#tablaCursos.cursos-table td:nth-child(5) { width: 8% !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table th:nth-child(6), body.page-cursos .courses-card-list table#tablaCursos.cursos-table td:nth-child(6) { width: 10% !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table th:nth-child(7), body.page-cursos .courses-card-list table#tablaCursos.cursos-table td:nth-child(7) {
    width: 13% !important;
    text-align: center !important;
  }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table td:nth-child(2) small { display: block !important; white-space: normal !important; overflow-wrap: break-word !important; }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table td:nth-child(7) .mini-actions {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    gap: 6px !important;
  }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table.responsive-table thead tr {
    display: table-row !important;
    width: auto !important;
    max-width: none !important;
    padding: 0 !important;
    background: transparent !important;
    border: 0 !important;
  }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table.responsive-table thead th {
    display: table-cell !important;
    position: static !important;
    height: auto !important;
    white-space: nowrap !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    padding: 12px 9px !important;
  }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table.responsive-table tbody tr[data-row] {
    display: table-row !important;
    width: auto !important;
    max-width: none !important;
    height: auto !important;
    padding: 0 !important;
    position: static !important;
  }
  body.page-cursos .courses-card-list table#tablaCursos.cursos-table.responsive-table tbody tr[data-row] td {
    display: table-cell !important;
    position: static !important;
    height: auto !important;
    white-space: normal !important;
    overflow: hidden !important;
    text-overflow: clip !important;
  }
  body.page-cursos #tablaCursos td .chip, body.page-cursos #tablaCursos td .status { min-width: 0 !important; max-width: 100% !important; white-space: normal !important; overflow-wrap: anywhere !important; }
  body.page-cursos #tablaCursos td:nth-child(2) strong { white-space: normal !important; overflow-wrap: anywhere !important; }
}
.inline-checkbox-label { display: flex; align-items: center; gap: 8px; margin: 0; }
input.auto-width-checkbox { width: auto; }
.inline-action-form { display: inline; }
.modal-head.modal-head-end { justify-content: flex-end; }
#iframeVerCertificado, #imgVerCertificado { display: block; }
@layer ui-visibility {
  .is-filtered-out, #iframeVerCertificado[hidden], #imgVerCertificado[hidden] { display: none !important; }
}
@layer course-action-presentation {
  .mini-actions.courses-actions-vertical {
    display: inline-flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    gap: 7px !important;
    width: max-content !important;
    max-width: 100% !important;
  }
  .mini-actions.courses-actions-vertical > :is(a, button) {
    display: inline-flex !important;
    width: 34px !important;
    min-width: 34px !important;
    max-width: 34px !important;
    height: 34px !important;
    min-height: 34px !important;
    padding: 0 !important;
  }
}
.value-progress {
  appearance: none;
  -webkit-appearance: none;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: inherit;
  background: transparent;
  --progress-fill: linear-gradient(90deg, var(--celeste), var(--dorado));
}
.performance-bar .value-progress { --progress-fill: #16a34a; }
.exam-pager-track .value-progress { --progress-fill: linear-gradient(90deg, var(--celeste-claro), var(--dorado-claro)); }
.value-progress::-webkit-progress-bar { background: transparent; border-radius: inherit; }
.value-progress::-webkit-progress-value { background: var(--progress-fill); border-radius: inherit; transition: width .2s ease; }
.value-progress::-moz-progress-bar { background: var(--progress-fill); border-radius: inherit; }

/* Registro público: ajustes móviles conservados después de las reglas generales. */

@media (max-width: 620px) {
  .registration-page { padding: 16px 12px !important; }
  .registration-page .registration-form-heading h1 { font-size: 16px !important; line-height: 1.25 !important; }
  .registration-page .registration-form.panel { padding: 18px !important; }
}

