/* Ajustes visuales aislados para acciones, cierres y estados agregados durante la estabilización. */
.icon-button,
.close-button,
.app-toast [data-toast-close] {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    padding: 0;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface-2);
    color: var(--text);
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
}

.close-button,
.app-toast [data-toast-close] {
    font-size: 22px;
    font-weight: 500;
}

.close-button:hover,
.app-toast [data-toast-close]:hover {
    border-color: var(--danger);
    background: color-mix(in srgb, var(--danger) 18%, var(--surface));
}

.app-toast {
    align-items: center;
}

.app-toast [data-toast-close] {
    width: 32px;
    height: 32px;
    border-radius: 8px;
}

.row-actions-menu:has(.action-details) {
    width: min(340px, calc(100vw - 36px));
}

.row-actions-menu .action-details summary {
    cursor: pointer;
    font-weight: 700;
}

.row-actions-menu .action-details form {
    display: grid;
    gap: 10px;
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--line);
}

.player-unavailable {
    display: grid;
    place-items: center;
    min-height: 100%;
    padding: 28px;
    color: #fff;
    text-align: center;
    background: linear-gradient(145deg, #161b25, #050608);
}

.player-shell iframe {
    width: 100%;
    height: 100%;
    border: 0;
}

.course-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 16px;
}

.course-tag-link {
    text-decoration: none;
    cursor: pointer;
    transition: border-color .16s ease, background .16s ease, transform .16s ease;
}

.course-tag-link:hover,
.course-tag-link:focus-visible {
    background: color-mix(in srgb, var(--brand) 20%, var(--surface-3));
    transform: translateY(-1px);
}

.private-tutor-note {
    border-left: 3px solid var(--warning);
}

.onvo-test-cards {
    width: 100%;
    margin: 8px 0 0;
}

.test-card-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px 18px;
    margin: 10px 0;
}

.test-card-grid code {
    white-space: nowrap;
}

.table td small {
    display: block;
}

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

.diagnostic-list > div,
.diagnostic-check {
    display: grid;
    grid-template-columns: minmax(140px, 1fr) 1fr;
    gap: 14px;
    align-items: center;
    padding: 10px 0;
    border-bottom: 1px solid var(--line);
}

.diagnostic-list dt {
    color: var(--muted);
}

.diagnostic-list dd {
    margin: 0;
    font-weight: 800;
}

.diagnostic-check {
    grid-template-columns: auto 1fr;
}

.diagnostic-check small {
    display: block;
}

/* Reproductor y navegación del curso. */
.lesson-page {
    position: relative;
    grid-template-columns: minmax(0, 1fr) minmax(390px, 430px);
    transition: grid-template-columns .2s ease;
}

.lesson-page.is-course-sidebar-collapsed {
    grid-template-columns: minmax(0, 1fr) 0;
}

.lesson-page .watch {
    min-width: 0;
    padding: 20px 28px 40px 20px;
}

.lesson-page .player-shell {
    width: 100%;
}

.watch-tools {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 10px 0 22px;
    padding: 10px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
    box-shadow: 0 8px 24px color-mix(in srgb, var(--text) 7%, transparent);
}

.video-navigation-controls,
.button-row,
.course-card-actions,
.reply-composer {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
}

.video-tool-button {
    display: grid;
    place-items: center;
    min-width: 68px;
    min-height: 48px;
    padding: 5px 12px;
    border: 1px solid var(--line);
    border-radius: 9px;
    background: var(--surface-2);
    color: var(--text);
    cursor: pointer;
}

.video-tool-button strong { font-size: 15px; }
.video-tool-button small { color: var(--muted); font-size: 10px; }
.video-tool-button:hover { border-color: var(--brand); background: var(--surface-3); }
.speed-control { margin-left: auto; }
.bookmark-button { min-height: 48px; box-shadow: none; }
.lesson-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 18px; margin-bottom: 20px; }
.lesson-heading h1 { margin: 3px 0 0; }

.course-sidebar-toggle {
    position: absolute;
    top: 18px;
    right: 405px;
    z-index: 12;
    width: 38px;
    height: 38px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface);
    color: var(--brand);
    box-shadow: var(--shadow);
    cursor: pointer;
    transition: right .2s ease;
    display: grid;
    place-items: center;
}

.lesson-page.is-course-sidebar-collapsed .course-sidebar-toggle { right: 14px; }
.course-video-sidebar { min-width: 0; padding: 24px; transition: opacity .16s ease, padding .16s ease; }
.course-video-sidebar .lesson-title { min-width: 0; overflow-wrap: anywhere; }
.is-course-sidebar-collapsed .course-video-sidebar { padding-inline: 0; border: 0; opacity: 0; overflow: hidden; pointer-events: none; }

.lesson-activities { margin: 0 0 22px; padding: 0; box-shadow: none; }
.lesson-activities > summary { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 48px 16px 18px; list-style: none; cursor: pointer; }
.lesson-activities > summary::-webkit-details-marker { display: none; }
.lesson-activities > summary > span:first-child { display: grid; gap: 2px; }
.lesson-activities > summary small { color: var(--muted); }
.activity-link-list { display: grid; gap: 8px; padding: 0 14px 14px; }
.activity-link-list > a { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 12px 13px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface-2); color: var(--text); text-decoration: none; }
.activity-link-list > a:hover { border-color: var(--brand); }
.activity-link-list > a > span:first-child { display: grid; min-width: 0; }
.activity-link-list small { color: var(--muted); }
.course-description-block { margin-top: 28px; box-shadow: none; }
.course-activity-summary { position: sticky; top: 88px; box-shadow: none; }
.course-activity-summary h2 { margin-top: 0; }
.assignment-workspace { margin-top: 18px; }
.reply-composer .input { flex: 1 1 260px; }
.course-card-actions { margin-top: 12px; }
.course-card-actions form { margin: 0; }
.learning-row-actions { justify-content: flex-end; }
.learning-row-actions form { margin: 0; }

/* Flechas direccionales envueltas */
.direction-arrow {
    position: relative;
    display: inline-grid;
    place-items: center;
    flex: 0 0 28px;
    width: 28px;
    height: 28px;
    border: 1px solid color-mix(in srgb, var(--brand) 45%, var(--line));
    border-radius: 999px;
    background: color-mix(in srgb, var(--brand) 8%, var(--surface));
    color: var(--brand);
    box-shadow: 0 4px 12px rgba(17, 25, 48, .08);
    transition: transform .18s ease, background .18s ease, border-color .18s ease;
}

.direction-arrow::before {
    content: "";
    width: 7px;
    height: 7px;
    border-top: 2px solid currentColor;
    border-right: 2px solid currentColor;
    transition: transform .18s ease;
}

.direction-arrow.arrow-right::before { transform: rotate(45deg); }
.direction-arrow.arrow-down::before { transform: rotate(135deg); }
.direction-arrow.arrow-left::before { transform: rotate(225deg); }
.direction-arrow.arrow-up::before { transform: rotate(-45deg); }
.sidebar-group[open] .direction-arrow.arrow-down::before,
.profile-menu[open] .direction-arrow.arrow-down::before,
.lesson-activities[open] .direction-arrow.arrow-down::before { transform: rotate(-45deg); }
.settings-card:hover .direction-arrow { transform: translateX(3px); border-color: var(--brand); background: color-mix(in srgb, var(--brand) 14%, var(--surface)); }
.profile-menu-name { max-width: 240px; white-space: normal; line-height: 1.2; }
.welcome-header { max-width: 430px; }
.welcome-header em { white-space: normal; }
.metric-section { margin-bottom: 30px; }
.metric-section > .section-head { margin-bottom: 14px; }
.metric-section h2 { font-size: 22px; }
.settlement-tutor-row { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.settlement-tutor-row > span { display: grid; }
.settlement-tutor-row small { color: var(--muted); }

/* Carrito persistente */
.floating-cart {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 70;
    display: grid;
    grid-template-columns: 30px auto;
    grid-template-rows: auto auto;
    align-items: center;
    column-gap: 9px;
    min-width: 116px;
    min-height: 62px;
    padding: 11px 15px;
    border: 1px solid color-mix(in srgb, var(--brand) 42%, var(--line));
    border-radius: 18px;
    background: var(--surface);
    color: var(--text);
    box-shadow: 0 16px 38px rgba(17, 25, 48, .22);
    text-decoration: none;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.floating-cart:hover,
.floating-cart:focus-visible { transform: translateY(-3px); border-color: var(--brand); box-shadow: 0 20px 44px rgba(17, 25, 48, .28); outline: none; }
.floating-cart.is-active { border-color: var(--brand); box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 18%, transparent), 0 16px 38px rgba(17, 25, 48, .22); }
.floating-cart .app-icon { grid-row: 1 / 3; width: 30px; height: 30px; color: var(--brand); stroke-width: 2; }
.floating-cart-count { grid-column: 2; justify-self: start; display: grid; place-items: center; min-width: 25px; height: 25px; padding: 0 7px; border-radius: 999px; background: var(--brand); color: #fff; font-size: 13px; font-weight: 900; line-height: 1; }
.floating-cart-label { grid-column: 2; color: var(--muted); font-size: 12px; font-weight: 800; }
.back-to-top {
    position: fixed;
    right: 24px;
    bottom: 100px;
    z-index: 69;
    display: flex;
    align-items: center;
    gap: 9px;
    min-height: 46px;
    padding: 8px 14px 8px 8px;
    border: 1px solid var(--line);
    border-radius: 999px;
    background: var(--surface);
    color: var(--text);
    box-shadow: 0 12px 30px rgba(17, 25, 48, .18);
    font: inherit;
    font-size: 12px;
    font-weight: 850;
    cursor: pointer;
}
.back-to-top[hidden] { display: none; }
.back-to-top:hover,
.back-to-top:focus-visible { border-color: var(--brand); transform: translateY(-2px); outline: none; }
.financial-negative { color: var(--danger); }

@media (min-width: 681px) {
    .profile-menu-name { display: inline; }
}

@media (max-width: 680px) {
    .floating-cart { right: 14px; bottom: 14px; min-width: 58px; min-height: 58px; grid-template-columns: 30px; grid-template-rows: 30px; padding: 13px; border-radius: 17px; }
    .floating-cart .app-icon { grid-column: 1; grid-row: 1; }
    .floating-cart-count { position: absolute; top: -7px; right: -5px; min-width: 24px; height: 24px; }
    .floating-cart-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .back-to-top { right: 14px; bottom: 84px; width: 46px; min-height: 46px; padding: 8px; justify-content: center; }
    .back-to-top > span:last-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
    .section-head {
        align-items: flex-start;
        flex-direction: column;
    }

    .row-actions-menu {
        max-width: calc(100vw - 36px);
    }

    .test-card-grid {
        grid-template-columns: 1fr;
    }

    .diagnostic-grid {
        grid-template-columns: 1fr;
    }

    .watch-tools,
    .lesson-heading {
        align-items: stretch;
        flex-direction: column;
    }

    .video-navigation-controls,
    .button-row,
    .course-card-actions {
        display: grid;
        grid-template-columns: 1fr;
        width: 100%;
    }

    .video-navigation-controls { grid-template-columns: 1fr 1fr; }
    .speed-control { margin-left: 0; }
    .bookmark-button,
    .button-row > *,
    .course-card-actions > * > .button,
    .course-card-actions > .button { width: 100%; }
}

@media (max-width: 980px) {
    .lesson-page,
    .lesson-page.is-course-sidebar-collapsed { grid-template-columns: 1fr; }
    .lesson-page .watch { padding: 16px; }
    .course-sidebar-toggle { display: none; }
    .course-video-sidebar,
    .is-course-sidebar-collapsed .course-video-sidebar { padding: 18px; border-top: 1px solid var(--line); opacity: 1; overflow: visible; pointer-events: auto; }
}
.infinite-pagination{margin-top:24px}.infinite-skeleton{display:grid;gap:12px;margin-top:18px}.infinite-skeleton[hidden]{display:none}.infinite-skeleton i{display:block;height:72px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(90deg,var(--surface) 20%,var(--surface-2) 50%,var(--surface) 80%);background-size:220% 100%;animation:infinite-skeleton-shimmer 1.15s linear infinite}@keyframes infinite-skeleton-shimmer{to{background-position:-220% 0}}
.catalog-filters{grid-template-columns:minmax(260px,1fr) minmax(170px,220px) minmax(150px,190px) auto}.dashboard-filters{grid-template-columns:minmax(260px,1fr) minmax(170px,220px) auto}.video-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.video-manage-card{min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);transition:transform .2s ease,border-color .2s ease,box-shadow .2s ease}.video-manage-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 55%,var(--line));box-shadow:var(--shadow)}.video-manage-thumb{position:relative;aspect-ratio:16/9;background:linear-gradient(135deg,var(--surface-3),var(--surface));overflow:hidden}.video-manage-thumb>img,.video-manage-thumb>.generic-thumbnail{width:100%;height:100%;object-fit:cover;border-radius:0}.video-order-badge{position:absolute;top:10px;left:10px;display:grid;place-items:center;min-width:38px;height:30px;padding:0 9px;border-radius:999px;background:#0b1020de;color:#fff;font-weight:850;box-shadow:0 4px 14px #0005}.video-manage-body{display:grid;gap:10px;padding:16px}.video-manage-body h3,.video-manage-body p{margin:0}.video-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto}.video-card-actions .action-menu{margin-left:auto}@media(max-width:980px){.catalog-filters{grid-template-columns:1fr 1fr}.video-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:680px){.catalog-filters,.dashboard-filters,.video-card-grid{grid-template-columns:1fr}.video-card-actions{align-items:stretch}.video-card-actions>.button{flex:1}}

/* Course catalog curriculum: collapsible section titles without disclosure arrows. */
.curriculum-section > .curriculum-section-summary {
    display: block;
    list-style: none;
    cursor: pointer;
    user-select: none;
}
.curriculum-section > .curriculum-section-summary::-webkit-details-marker { display: none; }
.curriculum-section > .curriculum-section-summary::marker { content: ""; }
.curriculum-section > .curriculum-section-summary:focus-visible {
    outline: 2px solid var(--brand);
    outline-offset: -2px;
}
.curriculum-section > .curriculum-section-summary:hover h3 {
    background: color-mix(in srgb, var(--surface-2) 82%, var(--brand) 18%);
}
.curriculum-section-content > p.muted {
    margin: 0;
    padding: 12px 16px;
    border-top: 1px solid var(--line);
}

/* Reproductor de clase: visor más bajo y controles centrados inspirados en la referencia. */
.lesson-page .player-shell {
    aspect-ratio: auto;
    height: clamp(320px, 50vh, 460px);
}
.lesson-page .player-shell video {
    object-fit: contain;
}
.lesson-page .watch-tools {
    display: grid;
    justify-items: center;
    gap: 10px;
    margin: 8px 0 18px;
    padding: 8px 0 12px;
    border: 0;
    background: transparent;
    box-shadow: none;
}
.media-control-bar {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    width: 100%;
    min-height: 58px;
}
.media-control-button,
.media-play-button {
    display: inline-grid;
    place-items: center;
    flex: 0 0 auto;
    border: 0;
    background: transparent;
    color: color-mix(in srgb, var(--text) 68%, var(--muted));
    text-decoration: none;
    cursor: pointer;
    transition: transform .16s ease, color .16s ease, background .16s ease, opacity .16s ease;
}
.media-control-button {
    width: 40px;
    height: 40px;
    border-radius: 50%;
}
.media-control-button .app-icon {
    width: 22px;
    height: 22px;
    stroke-width: 2;
}
.media-control-button:hover,
.media-control-button:focus-visible {
    color: var(--brand);
    background: color-mix(in srgb, var(--brand) 10%, transparent);
    outline: none;
}
.media-control-button:disabled {
    opacity: .28;
    cursor: default;
    pointer-events: none;
}
.media-play-button {
    position: relative;
    width: 54px;
    height: 54px;
    border: 2px solid color-mix(in srgb, var(--text) 72%, transparent);
    border-radius: 50%;
    background: var(--brand);
    color: #fff;
    box-shadow: 0 8px 20px color-mix(in srgb, var(--brand) 28%, transparent);
}
.media-play-button:hover,
.media-play-button:focus-visible {
    transform: scale(1.05);
    filter: brightness(1.05);
    outline: none;
}
.media-play-icon {
    width: 0;
    height: 0;
    margin-left: 3px;
    border-top: 8px solid transparent;
    border-bottom: 8px solid transparent;
    border-left: 12px solid currentColor;
}
.media-pause-icon {
    display: none;
    width: 14px;
    height: 17px;
    border-left: 5px solid currentColor;
    border-right: 5px solid currentColor;
}
.media-play-button.is-playing .media-play-icon { display: none; }
.media-play-button.is-playing .media-pause-icon { display: block; }
.media-volume-control {
    display: flex;
    align-items: center;
    gap: 5px;
}
.media-volume-button.is-muted {
    color: var(--muted);
    opacity: .62;
}
.media-volume-range {
    width: 82px;
    height: 4px;
    accent-color: var(--brand);
    cursor: pointer;
}
.media-secondary-controls {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
}
.media-secondary-controls .speed-control {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-left: 0;
    color: var(--muted);
    font-size: 13px;
}
.media-secondary-controls .speed-control .select {
    width: auto;
    min-width: 78px;
    padding: 8px 28px 8px 10px;
}
.media-secondary-controls .bookmark-button {
    min-height: 38px;
    padding: 8px 12px;
    font-size: 13px;
}

/* Popup global para cargas de archivos. Mantiene el flujo nativo del backend. */
.upload-dialog {
    width: min(570px, calc(100% - 28px));
    max-height: min(760px, calc(100vh - 32px));
    padding: 0;
    border: 0;
    border-radius: 22px;
    background: transparent;
    color: var(--text);
    box-shadow: 0 30px 90px #0008;
}
.upload-dialog::backdrop {
    background: #080b12b8;
    backdrop-filter: blur(6px);
}
.upload-dialog-card {
    display: grid;
    gap: 18px;
    padding: 26px;
    border: 1px solid var(--line);
    border-radius: 22px;
    background: var(--surface);
    box-shadow: var(--shadow);
}
.upload-dialog-heading {
    display: grid;
    grid-template-columns: 54px minmax(0, 1fr);
    align-items: center;
    gap: 16px;
}
.upload-dialog-icon {
    display: grid;
    place-items: center;
    width: 54px;
    height: 54px;
    border-radius: 16px;
    background: color-mix(in srgb, var(--brand) 16%, var(--surface-2));
    color: var(--brand);
}
.upload-dialog-icon svg {
    width: 27px;
    height: 27px;
}
.upload-dialog h2 {
    margin: 4px 0 3px;
    font-size: 24px;
    line-height: 1.2;
}
.upload-dialog p { margin: 0; }
.upload-file-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding-top: 2px;
    color: var(--muted);
    font-size: 13px;
}
.upload-file-summary strong { color: var(--text); }
.upload-file-list {
    display: grid;
    gap: 8px;
    max-height: 190px;
    overflow: auto;
}
.upload-file-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface-2);
}
.upload-file-row > div {
    display: grid;
    min-width: 0;
}
.upload-file-row strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 13px;
}
.upload-file-row small {
    color: var(--muted);
    font-size: 11px;
}
.upload-file-state {
    flex: 0 0 auto;
    padding: 4px 8px;
    border-radius: 999px;
    background: var(--surface-3);
    color: var(--muted);
    font-size: 11px;
    font-weight: 800;
}
.upload-dialog.is-uploading .upload-file-state {
    background: color-mix(in srgb, var(--brand) 14%, var(--surface-3));
    color: var(--brand);
}
.upload-progress-track {
    position: relative;
    height: 8px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--surface-3);
}
.upload-progress-track span {
    position: absolute;
    inset-block: 0;
    left: -38%;
    width: 38%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--brand), var(--brand-2));
}
.upload-dialog.is-uploading .upload-progress-track span {
    animation: upload-progress-motion 1.25s ease-in-out infinite;
}
@keyframes upload-progress-motion {
    0% { transform: translateX(0); }
    100% { transform: translateX(365%); }
}
.upload-status {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--muted);
    font-size: 13px;
}
.upload-status-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: var(--brand-2);
    box-shadow: 0 0 0 0 color-mix(in srgb, var(--brand-2) 30%, transparent);
}
.upload-dialog.is-uploading .upload-status-dot {
    animation: upload-status-pulse 1.5s ease-out infinite;
}
@keyframes upload-status-pulse {
    60% { box-shadow: 0 0 0 8px color-mix(in srgb, var(--brand-2) 0%, transparent); }
    100% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--brand-2) 0%, transparent); }
}

@media (max-width: 980px) {
    .lesson-page .player-shell { height: clamp(280px, 52vw, 420px); }
}

@media (max-width: 680px) {
    .lesson-page .player-shell { height: clamp(220px, 56vw, 320px); }
    .lesson-page .watch-tools { align-items: center; }
    .media-control-bar { gap: 6px; }
    .media-control-button { width: 36px; height: 36px; }
    .media-play-button { width: 50px; height: 50px; }
    .media-volume-range { width: 64px; }
    .media-secondary-controls { width: 100%; }
    .media-secondary-controls .bookmark-button { width: auto; }
    .upload-dialog-card { padding: 20px; gap: 15px; }
    .upload-dialog-heading { grid-template-columns: 46px minmax(0, 1fr); gap: 12px; }
    .upload-dialog-icon { width: 46px; height: 46px; border-radius: 14px; }
    .upload-dialog h2 { font-size: 21px; }
    .upload-file-row { align-items: flex-start; }
}

/* Ajustes solicitados: reproductor un poco más alto y barra de controles completa en una sola línea. */
.lesson-page .player-shell {
    height: clamp(350px, 56vh, 520px);
}
.lesson-page .watch-tools {
    margin: 10px 0 20px;
    padding: 6px 0 10px;
}
.lesson-page .media-control-bar {
    width: min(680px, 100%);
    min-height: 66px;
    gap: 12px;
    padding: 4px 10px;
}
.lesson-page .media-play-button {
    width: 58px;
    height: 58px;
}
.lesson-page .media-skip-button .app-icon {
    width: 24px;
    height: 24px;
}
.lesson-page .media-volume-control {
    gap: 4px;
}
.lesson-page .media-volume-range {
    width: 92px;
}
.media-speed-control {
    display: inline-flex;
    align-items: center;
    height: 40px;
    margin: 0;
}
.media-speed-select {
    min-width: 62px;
    height: 38px;
    padding: 0 24px 0 10px;
    border: 1px solid var(--line);
    border-radius: 10px;
    background: var(--surface-2);
    color: var(--text);
    font-weight: 800;
    outline: none;
    cursor: pointer;
}
.media-speed-select:hover,
.media-speed-select:focus-visible {
    border-color: color-mix(in srgb, var(--brand) 60%, var(--line));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand) 12%, transparent);
}
.media-bookmark-button .app-icon {
    width: 21px;
    height: 21px;
}

/* Biblioteca de videos de gestión: lista horizontal agrupada por sección. */
.video-library-panel {
    overflow: visible;
}
.video-section-list {
    display: grid;
    gap: 20px;
}
.video-section-group {
    position: relative;
    overflow: visible;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: var(--surface-2);
}
.video-section-group > summary::-webkit-details-marker {
    display: none;
}
.video-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding: 13px 15px;
    border-bottom: 0;
    background: color-mix(in srgb, var(--surface-2) 86%, var(--brand) 14%);
    border-radius: 16px;
    cursor: pointer;
    list-style: none;
    user-select: none;
}
.video-section-group[open] > .video-section-heading {
    border-bottom: 1px solid var(--line);
    border-radius: 16px 16px 0 0;
}
.video-section-heading:focus-visible {
    outline: 3px solid color-mix(in srgb, var(--brand) 35%, transparent);
    outline-offset: 2px;
}
.video-section-heading > div {
    display: flex;
    align-items: center;
    gap: 11px;
    min-width: 0;
}
.video-section-heading strong,
.video-section-heading small {
    display: block;
}
.video-section-heading strong {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 15px;
}
.video-section-heading small {
    margin-top: 2px;
    color: var(--muted);
    font-size: 11px;
}
.video-section-content {
    overflow: visible;
}
.video-section-controls {
    display: flex;
    justify-content: flex-end;
    padding: 10px 15px;
    border-bottom: 1px solid var(--line);
    background: var(--surface);
}
.video-section-number {
    display: grid;
    place-items: center;
    flex: 0 0 auto;
    width: 32px;
    height: 32px;
    border-radius: 50%;
    background: var(--brand);
    color: #fff;
    font-weight: 900;
}
@media (max-width: 600px) {
    .video-section-heading {
        align-items: flex-start;
    }
    .video-section-controls,
    .video-section-controls form,
    .video-section-controls .button {
        width: 100%;
    }
}
.video-manage-list {
    display: grid;
}
.video-manage-row {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 190px minmax(0, 1fr) auto;
    align-items: stretch;
    gap: 0;
    min-width: 0;
    overflow: visible;
    border-bottom: 1px solid var(--line);
    background: var(--surface);
}
.video-manage-row:last-child {
    border-bottom: 0;
    border-radius: 0 0 16px 16px;
}
.video-manage-row:has(.row-actions[open]) {
    z-index: 30;
}
.video-manage-row .video-manage-thumb {
    min-height: 108px;
    aspect-ratio: auto;
    border-right: 1px solid var(--line);
    overflow: hidden;
    background: linear-gradient(135deg,var(--surface-3),var(--surface));
}
.video-manage-row .video-manage-thumb > img,
.video-manage-row .video-manage-thumb > .generic-thumbnail {
    width: 100%;
    height: 100%;
    min-height: 108px;
    object-fit: cover;
    border-radius: 0;
}
.video-manage-row .video-hover-preview {
    position: absolute;
    inset: 0;
    z-index: 1;
    opacity: 0;
    transition: opacity .18s ease;
}
.video-manage-row:hover .video-hover-preview {
    opacity: 1;
}
.video-manage-row .video-order-badge {
    z-index: 2;
}
.video-manage-row .video-manage-body {
    align-content: center;
    gap: 9px;
    padding: 14px 16px;
}
.video-manage-statuses {
    display: flex;
    align-items: center;
    gap: 7px;
    flex-wrap: wrap;
}
.video-manage-copy h3,
.video-manage-copy p,
.video-manage-copy small {
    margin: 0;
}
.video-manage-copy h3 {
    font-size: 17px;
    line-height: 1.3;
}
.video-manage-copy p {
    margin-top: 3px;
    font-size: 13px;
}
.video-id-line {
    display: block;
    max-width: 500px;
    margin-top: 4px !important;
    overflow: hidden;
    color: var(--muted);
    text-overflow: ellipsis;
    white-space: nowrap;
    font-size: 11px;
}
.video-manage-row .video-card-actions {
    position: relative;
    align-self: center;
    justify-content: flex-end;
    min-width: 172px;
    margin: 0;
    padding: 14px 15px;
}
.video-manage-row .row-actions {
    position: relative;
    z-index: 40;
}
.video-manage-row .row-actions-menu {
    z-index: 200;
}

/* Bloque compatible con proveedores que entregan HLS, reproducción directa y assets separados. */
.asset-links-panel {
    margin: 12px 0 2px;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: var(--surface);
}
.asset-links-panel > summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 13px 14px;
    list-style: none;
    color: var(--text);
    font-weight: 850;
    cursor: pointer;
}
.asset-links-panel > summary::-webkit-details-marker { display: none; }
.asset-links-panel[open] > summary {
    border-bottom: 1px solid var(--line);
}
.asset-links-panel[open] > summary .direction-arrow {
    transform: rotate(180deg);
}
.asset-links-fields {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 0 16px;
    padding: 2px 14px 12px;
}
.asset-links-fields .field:last-child {
    grid-column: 1 / -1;
}

/* Popup de carga: porcentaje real del request y porcentaje visible por cada archivo incluido. */
.upload-progress-track span {
    left: 0;
    width: 0;
    transform: none;
    transition: width .12s linear;
}
.upload-dialog.is-uploading .upload-progress-track span {
    animation: none;
}
.upload-progress-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: -8px;
    color: var(--muted);
    font-size: 12px;
}
.upload-progress-meta strong {
    color: var(--text);
    font-size: 14px;
}
.upload-file-row {
    align-items: stretch;
}
.upload-file-row > div:first-child {
    align-content: center;
    flex: 1 1 auto;
}
.upload-file-progress-wrap {
    display: grid;
    grid-template-columns: minmax(82px, 120px) 44px;
    align-items: center;
    gap: 8px;
    flex: 0 0 auto;
}
.upload-file-progress {
    height: 6px;
    overflow: hidden;
    border-radius: 999px;
    background: var(--surface-3);
}
.upload-file-progress > span {
    display: block;
    width: 0;
    height: 100%;
    border-radius: inherit;
    background: linear-gradient(90deg, var(--brand), var(--brand-2));
    transition: width .12s linear;
}
.upload-file-percent {
    color: var(--text);
    font-size: 11px;
    font-weight: 900;
    text-align: right;
}
.upload-dialog-actions {
    display: flex;
    justify-content: flex-end;
}
.upload-dialog-actions[hidden] { display: none; }

@media (max-width: 980px) {
    .lesson-page .player-shell { height: clamp(310px, 55vw, 470px); }
    .video-manage-row { grid-template-columns: 160px minmax(0, 1fr) auto; }
    .video-manage-row .video-card-actions { min-width: 142px; }
}

@media (max-width: 760px) {
    .lesson-page .media-control-bar {
        width: 100%;
        gap: 6px;
        padding-inline: 0;
    }
    .lesson-page .media-volume-range { width: 70px; }
    .media-speed-select { min-width: 56px; padding-left: 7px; }
    .video-manage-row {
        grid-template-columns: 118px minmax(0, 1fr);
    }
    .video-manage-row .video-card-actions {
        grid-column: 1 / -1;
        justify-content: flex-start;
        min-width: 0;
        padding: 10px 12px;
        border-top: 1px solid var(--line);
    }
    .video-manage-row .video-card-actions > .button { flex: 0 1 auto; }
    .asset-links-fields { grid-template-columns: 1fr; }
    .asset-links-fields .field:last-child { grid-column: auto; }
}

@media (max-width: 520px) {
    .lesson-page .player-shell { height: clamp(240px, 62vw, 340px); }
    .lesson-page .media-control-bar { flex-wrap: wrap; }
    .video-manage-row { grid-template-columns: 1fr; }
    .video-manage-row .video-manage-thumb { min-height: 165px; border-right: 0; border-bottom: 1px solid var(--line); }
    .upload-file-row { display: grid; }
    .upload-file-progress-wrap { grid-template-columns: minmax(0,1fr) 44px; }
}

/* --------------------------------------------------------------------------
   Video playback hardening and clearer lesson controls
   -------------------------------------------------------------------------- */
.lesson-page .player-shell {
    height: clamp(380px, 58vh, 560px);
}
.lesson-page .player-shell[data-player-provider="bunny"] {
    background: #000;
}
.lesson-page .player-shell[data-player-provider="bunny"] iframe {
    display: block;
}
.lesson-page .watch-tools {
    margin: 12px 0 22px;
    padding: 0;
}
.lesson-page .media-control-bar {
    display: grid;
    grid-template-columns: repeat(6, max-content);
    align-items: end;
    justify-content: center;
    gap: 12px;
    width: fit-content;
    max-width: 100%;
    min-height: 0;
    padding: 12px 16px 10px;
    border: 1px solid var(--line);
    border-radius: 18px;
    background: var(--surface);
    box-shadow: 0 10px 30px color-mix(in srgb, var(--text) 8%, transparent);
}
.media-control-item {
    display: grid;
    justify-items: center;
    align-content: end;
    gap: 6px;
    min-width: 58px;
}
.media-control-item > span {
    color: var(--muted);
    font-size: 10px;
    line-height: 1;
    font-weight: 800;
    letter-spacing: .02em;
    white-space: nowrap;
}
.media-control-button {
    width: 42px;
    height: 42px;
    border: 1px solid var(--line);
    background: var(--surface-2);
    color: var(--text);
    box-shadow: 0 3px 10px color-mix(in srgb, var(--text) 7%, transparent);
}
.media-control-button:hover,
.media-control-button:focus-visible {
    border-color: color-mix(in srgb, var(--brand) 55%, var(--line));
    background: color-mix(in srgb, var(--brand) 10%, var(--surface-2));
    color: var(--brand);
}
.media-control-button .app-icon {
    width: 21px;
    height: 21px;
    stroke-width: 1.9;
}
.media-play-item {
    min-width: 76px;
}
.lesson-page .media-play-button {
    width: 60px;
    height: 60px;
    border: 2px solid color-mix(in srgb, var(--brand) 70%, var(--text));
    box-shadow: 0 9px 24px color-mix(in srgb, var(--brand) 28%, transparent);
}
.media-volume-item {
    min-width: 148px;
}
.lesson-page .media-volume-control {
    min-height: 44px;
    padding: 0 8px 0 0;
    border: 1px solid var(--line);
    border-radius: 13px;
    background: var(--surface-2);
}
.lesson-page .media-volume-control .media-control-button {
    border: 0;
    box-shadow: none;
    background: transparent;
}
.lesson-page .media-volume-range {
    width: 82px;
}
.media-speed-control {
    height: 44px;
}
.media-speed-select {
    height: 44px;
    min-width: 72px;
    border-radius: 13px;
    background: var(--surface-2);
    text-align: center;
}
.external-player-input {
    min-height: 88px;
    resize: vertical;
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
    font-size: 12px;
    line-height: 1.45;
}

@media (max-width: 980px) {
    .lesson-page .player-shell { height: clamp(330px, 56vw, 500px); }
    .lesson-page .media-control-bar {
        grid-template-columns: repeat(3, max-content);
        row-gap: 14px;
    }
}

@media (max-width: 620px) {
    .lesson-page .player-shell { height: clamp(250px, 62vw, 360px); }
    .lesson-page .media-control-bar {
        grid-template-columns: repeat(2, minmax(118px, 1fr));
        width: 100%;
        gap: 14px 8px;
        padding: 12px;
    }
    .media-control-item,
    .media-play-item,
    .media-volume-item { min-width: 0; }
    .lesson-page .media-volume-control { width: 100%; justify-content: center; }
    .lesson-page .media-volume-range { width: min(92px, 40vw); }
}


/* Mejora visual: iconos de salto 10s más claros y legibles. */
.lesson-page .media-skip-button {
    position: relative;
    overflow: hidden;
}
.lesson-page .media-skip-button .app-icon {
    width: 24px;
    height: 24px;
    stroke-width: 2.3;
}
.lesson-page .media-skip-button::after {
    position: absolute;
    left: 50%;
    top: 50%;
    transform: translate(-50%, -10%);
    font-size: 11px;
    line-height: 1;
    font-weight: 900;
    letter-spacing: -.02em;
    color: currentColor;
    pointer-events: none;
}
.lesson-page .media-skip-button[data-video-skip="-10"]::after,
.lesson-page .media-skip-button[data-video-skip="10"]::after {
    content: '10';
}
.lesson-page .media-skip-button[data-video-skip="-10"] .app-icon {
    transform: translateX(-2px);
}
.lesson-page .media-skip-button[data-video-skip="10"] .app-icon {
    transform: translateX(2px);
}

/* --------------------------------------------------------------------------
   Controles de video estilo nativo debajo del visor (referencia PIC1)
   -------------------------------------------------------------------------- */
.lesson-page .watch-tools {
    display: block;
    margin: -2px 0 20px;
    padding: 0;
}
.lesson-page .media-control-bar.media-control-bar-cinema {
    position: relative;
    width: 100%;
    display: flex;
    flex-direction: column;
    gap: 12px;
    padding: 12px 16px 14px;
    border: 0;
    border-radius: 0 0 18px 18px;
    background: linear-gradient(180deg, rgba(18, 20, 28, .96), rgba(11, 12, 18, .98));
    color: #fff;
    box-shadow: 0 14px 32px rgba(4, 7, 17, .28);
}
.lesson-page .media-progress-row {
    width: 100%;
    display: flex;
    align-items: center;
}
.lesson-page .media-progress-range,
.lesson-page .media-volume-range {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    accent-color: var(--brand);
}
.lesson-page .media-progress-range {
    height: 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .24);
}
.lesson-page .media-progress-range::-webkit-slider-thumb,
.lesson-page .media-volume-range::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid #fff;
    background: var(--brand);
    cursor: pointer;
}
.lesson-page .media-progress-range::-moz-range-thumb,
.lesson-page .media-volume-range::-moz-range-thumb {
    width: 14px;
    height: 14px;
    border-radius: 50%;
    border: 2px solid #fff;
    background: var(--brand);
    cursor: pointer;
}
.lesson-page .media-progress-range::-webkit-slider-runnable-track {
    height: 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .24);
}
.lesson-page .media-progress-range::-moz-range-track {
    height: 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .24);
}
.lesson-page .media-volume-range {
    width: 96px;
    height: 4px;
    background: transparent;
}
.lesson-page .media-volume-range::-webkit-slider-runnable-track,
.lesson-page .media-volume-range::-moz-range-track {
    height: 4px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .3);
}
.lesson-page .media-action-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    flex-wrap: wrap;
}
.lesson-page .media-action-group {
    display: flex;
    align-items: center;
    gap: 10px;
    min-width: 0;
}
.lesson-page .media-action-group-left {
    flex: 1 1 320px;
}
.lesson-page .media-action-group-right {
    flex: 0 0 auto;
}
.lesson-page .media-time-display {
    flex: 0 0 auto;
    min-width: 100px;
    text-align: center;
    color: rgba(255, 255, 255, .92);
    font-size: 14px;
    font-weight: 700;
    letter-spacing: .01em;
}
.lesson-page .media-control-bar-cinema .media-control-button,
.lesson-page .media-control-bar-cinema .media-play-button {
    width: 38px;
    height: 38px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 10px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    box-shadow: none;
    backdrop-filter: blur(3px);
}
.lesson-page .media-control-bar-cinema .media-control-button:hover,
.lesson-page .media-control-bar-cinema .media-control-button:focus-visible,
.lesson-page .media-control-bar-cinema .media-play-button:hover,
.lesson-page .media-control-bar-cinema .media-play-button:focus-visible {
    background: rgba(255, 255, 255, .16);
    border-color: rgba(255, 255, 255, .2);
    color: #fff;
}
.lesson-page .media-control-bar-cinema .media-play-button {
    border-radius: 12px;
    background: color-mix(in srgb, var(--brand) 75%, rgba(255, 255, 255, .14));
    border-color: color-mix(in srgb, var(--brand) 86%, #fff);
}
.lesson-page .media-control-bar-cinema .media-control-button .app-icon {
    width: 19px;
    height: 19px;
    stroke-width: 2;
}
.lesson-page .media-control-bar-cinema .media-play-icon {
    margin-left: 2px;
    border-top-width: 7px;
    border-bottom-width: 7px;
    border-left-width: 11px;
}
.lesson-page .media-control-bar-cinema .media-pause-icon {
    width: 12px;
    height: 15px;
    border-left-width: 4px;
    border-right-width: 4px;
}
.lesson-page .media-control-bar-cinema .media-skip-button::after {
    color: #fff;
    font-size: 9px;
    font-weight: 900;
    top: 55%;
    transform: translate(-50%, -50%);
}
.lesson-page .media-settings-wrap {
    position: relative;
}
.lesson-page .media-settings-panel {
    position: absolute;
    right: 0;
    bottom: calc(100% + 10px);
    width: min(280px, calc(100vw - 40px));
    padding: 12px;
    border-radius: 14px;
    border: 1px solid rgba(255, 255, 255, .1);
    background: rgba(13, 14, 20, .98);
    box-shadow: 0 16px 40px rgba(0, 0, 0, .45);
    z-index: 25;
}
.lesson-page .media-settings-panel[hidden] {
    display: none;
}
.lesson-page .media-settings-row + .media-settings-row {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid rgba(255, 255, 255, .08);
}
.lesson-page .media-settings-row label {
    display: grid;
    gap: 8px;
}
.lesson-page .media-settings-row span {
    color: rgba(255, 255, 255, .92);
    font-size: 13px;
    font-weight: 700;
}
.lesson-page .media-settings-panel .media-speed-select {
    width: 100%;
    height: 40px;
    min-width: 0;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, .12);
    background: rgba(255, 255, 255, .08);
    color: #fff;
}
.lesson-page .media-settings-action {
    width: 100%;
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 12px;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 10px;
    background: rgba(255, 255, 255, .08);
    color: #fff;
    cursor: pointer;
}
.lesson-page .media-settings-action:hover,
.lesson-page .media-settings-action:focus-visible {
    background: rgba(255, 255, 255, .14);
}
.lesson-page .media-settings-action:disabled {
    opacity: .55;
    cursor: not-allowed;
}
.lesson-page .media-settings-action .app-icon {
    width: 16px;
    height: 16px;
}
@media (max-width: 760px) {
    .lesson-page .media-control-bar.media-control-bar-cinema {
        padding: 12px;
    }
    .lesson-page .media-action-row {
        gap: 10px;
    }
    .lesson-page .media-action-group-left {
        flex-basis: 100%;
        flex-wrap: wrap;
    }
    .lesson-page .media-time-display {
        order: 3;
        width: 100%;
    }
    .lesson-page .media-volume-range {
        width: 84px;
    }
}

/* --------------------------------------------------------------------------
   Corrección definitiva de controles propios: alineación, iconografía natural
   y unión visual limpia con el frame del video.
   -------------------------------------------------------------------------- */
.lesson-page .player-shell.player-shell-with-controls {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    overflow: hidden;
}
.lesson-page .watch-tools {
    margin-top: 0 !important;
}
.lesson-page .media-control-bar.media-control-bar-cinema {
    margin-top: 0;
    border-top-left-radius: 0;
    border-top-right-radius: 0;
    border-bottom-left-radius: 18px;
    border-bottom-right-radius: 18px;
    padding: 12px 18px 14px;
}
.lesson-page .media-action-row {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    gap: 18px;
    min-height: 40px;
}
.lesson-page .media-action-group-left {
    grid-column: 2;
    justify-self: center;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 10px;
    flex: none;
}
.lesson-page .media-action-group-right {
    grid-column: 3;
    justify-self: end;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    flex: none;
}
.lesson-page .media-time-display {
    min-width: 94px;
    margin: 0 4px 0 0;
    font-size: 13px;
    font-weight: 700;
    white-space: nowrap;
}
.lesson-page .media-control-bar-cinema .media-control-button,
.lesson-page .media-control-bar-cinema .media-play-button {
    width: 40px;
    height: 40px;
    border-radius: 10px;
}
.lesson-page .media-control-bar-cinema .media-play-button {
    width: 42px;
    height: 42px;
    border-radius: 12px;
}
.lesson-page .media-control-bar-cinema .media-control-button .app-icon {
    width: 18px;
    height: 18px;
    stroke-width: 2;
}
.lesson-page .media-control-bar-cinema [data-video-settings-toggle] .app-icon {
    width: 17px;
    height: 17px;
}
.lesson-page .media-control-bar-cinema [data-video-fullscreen] .app-icon {
    width: 17px;
    height: 17px;
}
.lesson-page .media-control-bar-cinema .media-volume-range {
    width: 92px;
    margin-right: 2px;
}
.lesson-page .media-control-bar-cinema .media-skip-button {
    position: relative;
}
.lesson-page .media-control-bar-cinema .media-skip-button .app-icon {
    width: 20px;
    height: 20px;
    stroke-width: 2.1;
}
.lesson-page .media-control-bar-cinema .media-skip-button::after {
    font-size: 8px;
    font-weight: 800;
    letter-spacing: -.02em;
    top: 56%;
}
.lesson-page .media-progress-row {
    margin-bottom: 2px;
}
.lesson-page .media-settings-panel {
    right: auto;
    left: 0;
}
@media (max-width: 900px) {
    .lesson-page .media-action-row {
        grid-template-columns: 1fr;
        justify-items: center;
        gap: 12px;
    }
    .lesson-page .media-action-group-right,
    .lesson-page .media-action-group-left,
    .lesson-page .media-time-display {
        grid-column: auto;
        justify-self: center;
    }
    .lesson-page .media-action-group-left {
        flex-wrap: wrap;
    }
    .lesson-page .media-time-display {
        order: 3;
    }
    .lesson-page .media-settings-panel {
        left: 50%;
        right: auto;
        transform: translateX(-50%);
    }
}
@media (max-width: 560px) {
    .lesson-page .media-control-bar.media-control-bar-cinema {
        padding: 12px;
    }
    .lesson-page .media-control-bar-cinema .media-control-button,
    .lesson-page .media-control-bar-cinema .media-play-button {
        width: 38px;
        height: 38px;
    }
    .lesson-page .media-control-bar-cinema .media-play-button {
        width: 40px;
        height: 40px;
    }
    .lesson-page .media-control-bar-cinema .media-volume-range {
        width: 74px;
    }
}

/* Ajuste final: selector de velocidad legible y controles visibles en fullscreen. */
.lesson-page .media-settings-panel .media-speed-select option {
    background: #ffffff;
    color: #111318;
}
.lesson-page .media-settings-panel .media-speed-select:focus {
    outline: 2px solid color-mix(in srgb, var(--brand) 70%, #fff);
    outline-offset: 1px;
}
.lesson-page .player-stage {
    width: 100%;
}
.lesson-page .player-stage:fullscreen,
.lesson-page .player-stage:-webkit-full-screen {
    width: 100vw;
    height: 100vh;
    display: flex;
    flex-direction: column;
    justify-content: center;
    background: #000;
    overflow: hidden;
}
.lesson-page .player-stage:fullscreen .player-shell,
.lesson-page .player-stage:-webkit-full-screen .player-shell {
    flex: 1 1 auto;
    width: 100%;
    height: auto !important;
    min-height: 0;
    max-height: none;
    border-radius: 0 !important;
    background: #000;
}
.lesson-page .player-stage:fullscreen .player-shell video,
.lesson-page .player-stage:fullscreen .player-shell iframe,
.lesson-page .player-stage:-webkit-full-screen .player-shell video,
.lesson-page .player-stage:-webkit-full-screen .player-shell iframe {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
.lesson-page .player-stage:fullscreen .watch-tools,
.lesson-page .player-stage:-webkit-full-screen .watch-tools {
    flex: 0 0 auto;
    width: 100%;
    margin: 0 !important;
}
.lesson-page .player-stage:fullscreen .media-control-bar.media-control-bar-cinema,
.lesson-page .player-stage:-webkit-full-screen .media-control-bar.media-control-bar-cinema {
    width: 100%;
    border-radius: 0;
    box-shadow: none;
    padding-left: 24px;
    padding-right: 24px;
}
.lesson-page .player-stage:fullscreen .media-settings-panel,
.lesson-page .player-stage:-webkit-full-screen .media-settings-panel {
    z-index: 2147483647;
}

/* --------------------------------------------------------------------------
   v3 - Controles agrupados + fullscreen sin espacio muerto
   -------------------------------------------------------------------------- */
.lesson-page .media-action-row {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 44px;
    gap: 0 !important;
}
.lesson-page .media-action-group-center {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto;
    align-items: center !important;
    justify-content: stretch !important;
    gap: 14px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 auto !important;
}
.lesson-page .media-transport-controls,
.lesson-page .media-playback-meta,
.lesson-page .media-utility-controls {
    display: flex;
    align-items: center;
    min-width: 0;
}
.lesson-page .media-transport-controls {
    justify-content: flex-start;
    gap: 8px;
}
.lesson-page .media-playback-meta {
    justify-content: center;
    gap: 10px;
}
.lesson-page .media-utility-controls {
    justify-content: flex-end;
    gap: 8px;
}
.lesson-page .media-control-bar-cinema .media-volume-control {
    display: flex;
    align-items: center;
    gap: 6px;
    min-height: 40px;
    padding: 0 10px 0 0;
    border: 1px solid rgba(255, 255, 255, .12);
    border-radius: 10px;
    background: rgba(255, 255, 255, .06);
}
.lesson-page .media-control-bar-cinema .media-volume-control .media-control-button {
    border: 0;
    background: transparent;
}
.lesson-page .media-utility-controls .media-settings-panel {
    right: 0;
    left: auto;
    transform: none;
}
.lesson-page .media-control-bar-cinema .media-skip-button::after {
    content: none !important;
    display: none !important;
}
.lesson-page .media-control-bar-cinema .media-skip-button .app-icon {
    width: 22px !important;
    height: 22px !important;
    transform: none !important;
}
.lesson-page .media-time-display {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 92px;
    margin: 0 2px !important;
    font-variant-numeric: tabular-nums;
}
.lesson-page .player-shell.player-shell-with-controls {
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
}
.lesson-page .watch-tools {
    margin: 0 0 20px !important;
}
.lesson-page .media-control-bar.media-control-bar-cinema {
    border-top-left-radius: 0 !important;
    border-top-right-radius: 0 !important;
}

/* Fullscreen: el wrapper completo (video + controles) ocupa exactamente el viewport. */
.lesson-page .player-stage:fullscreen,
.lesson-page .player-stage:-webkit-full-screen,
.lesson-page .player-stage.is-player-fullscreen {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100vh !important;
    height: 100dvh !important;
    max-width: none !important;
    max-height: none !important;
    display: grid !important;
    grid-template-rows: minmax(0, 1fr) auto !important;
    align-items: stretch !important;
    justify-items: stretch !important;
    background: #000 !important;
    overflow: hidden !important;
    padding: 0 !important;
    margin: 0 !important;
    z-index: 2147483646;
}
.lesson-page .player-stage:fullscreen .player-shell,
.lesson-page .player-stage:-webkit-full-screen .player-shell,
.lesson-page .player-stage.is-player-fullscreen .player-shell {
    grid-row: 1 !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    aspect-ratio: auto !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: #000 !important;
    overflow: hidden !important;
}
.lesson-page .player-stage:fullscreen .player-shell video,
.lesson-page .player-stage:fullscreen .player-shell iframe,
.lesson-page .player-stage:-webkit-full-screen .player-shell video,
.lesson-page .player-stage:-webkit-full-screen .player-shell iframe,
.lesson-page .player-stage.is-player-fullscreen .player-shell video,
.lesson-page .player-stage.is-player-fullscreen .player-shell iframe {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    max-width: none !important;
    max-height: none !important;
    object-fit: contain !important;
    background: #000 !important;
}
.lesson-page .player-stage:fullscreen .watch-tools,
.lesson-page .player-stage:-webkit-full-screen .watch-tools,
.lesson-page .player-stage.is-player-fullscreen .watch-tools {
    grid-row: 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    align-self: end !important;
    background: #11131a !important;
}
.lesson-page .player-stage:fullscreen .media-control-bar.media-control-bar-cinema,
.lesson-page .player-stage:-webkit-full-screen .media-control-bar.media-control-bar-cinema,
.lesson-page .player-stage.is-player-fullscreen .media-control-bar.media-control-bar-cinema {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 10px 20px 12px !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: linear-gradient(180deg, #171920, #101117) !important;
}
.lesson-page .player-stage:fullscreen .media-action-row,
.lesson-page .player-stage:-webkit-full-screen .media-action-row,
.lesson-page .player-stage.is-player-fullscreen .media-action-row {
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}
.lesson-page .player-stage:fullscreen .media-action-group-center,
.lesson-page .player-stage:-webkit-full-screen .media-action-group-center,
.lesson-page .player-stage.is-player-fullscreen .media-action-group-center {
    margin: 0 auto !important;
}
.lesson-page .player-stage:fullscreen .media-settings-panel,
.lesson-page .player-stage:-webkit-full-screen .media-settings-panel,
.lesson-page .player-stage.is-player-fullscreen .media-settings-panel {
    bottom: calc(100% + 12px) !important;
    top: auto !important;
    z-index: 2147483647 !important;
}
@media (max-width: 760px) {
    .lesson-page .player-shell.player-shell-with-controls {
        width: 100%;
        height: auto;
        min-height: 0;
        aspect-ratio: 16 / 9;
    }
    .lesson-page .media-control-bar.media-control-bar-cinema {
        gap: 10px;
        padding: 10px 12px 12px;
    }
    .lesson-page .media-action-group-center {
        grid-template-columns: minmax(0, 1fr) auto;
        gap: 10px 8px !important;
    }
    .lesson-page .media-transport-controls {
        grid-column: 1 / -1;
        justify-content: center;
        gap: 8px;
    }
    .lesson-page .media-playback-meta {
        grid-column: 1;
        justify-content: flex-start;
        gap: 8px;
    }
    .lesson-page .media-utility-controls {
        grid-column: 2;
        justify-content: flex-end;
        gap: 6px;
    }
    .lesson-page .media-control-bar-cinema .media-volume-control {
        flex: 0 1 auto;
        padding-right: 7px;
    }
    .lesson-page .media-volume-range {
        width: clamp(58px, 18vw, 76px) !important;
    }
    .lesson-page .media-time-display {
        order: initial;
        width: auto;
        min-width: 76px;
        font-size: 12px;
    }
    .lesson-page .media-utility-controls .media-settings-panel {
        width: min(280px, calc(100vw - 24px));
    }
}
@media (max-width: 680px) {
    .lesson-page .watch {
        padding: 12px 12px 32px;
    }
    .lesson-page .watch-tools {
        margin-bottom: 16px !important;
    }
}
@media (max-width: 380px) {
    .lesson-page .media-control-bar.media-control-bar-cinema {
        padding-inline: 9px;
    }
    .lesson-page .media-transport-controls {
        gap: 5px;
    }
    .lesson-page .media-control-bar-cinema .media-control-button {
        width: 34px;
        height: 34px;
    }
    .lesson-page .media-control-bar-cinema .media-play-button {
        width: 38px;
        height: 38px;
    }
    .lesson-page .media-volume-range {
        width: 50px !important;
    }
    .lesson-page .media-time-display {
        min-width: 68px;
        font-size: 11px;
    }
    .lesson-page .media-playback-meta,
    .lesson-page .media-action-group-center {
        gap: 6px !important;
    }
    .lesson-page .media-utility-controls {
        gap: 4px;
    }
}

/* --------------------------------------------------------------------------
   Fullscreen definitivo v4: pantalla completa sobre el documento raíz.
   Evita alturas parciales del wrapper en Firefox y mantiene los controles.
   -------------------------------------------------------------------------- */
html.player-root-fullscreen,
html.player-root-fullscreen body {
    width: 100% !important;
    height: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    background: #000 !important;
}
html.player-root-fullscreen .lesson-page .player-stage.is-player-fullscreen {
    position: fixed !important;
    inset: 0 !important;
    z-index: 2147483646 !important;
    box-sizing: border-box !important;
    width: 100vw !important;
    height: 100vh !important;
    min-width: 100vw !important;
    min-height: 100vh !important;
    max-width: 100vw !important;
    max-height: 100vh !important;
    margin: 0 !important;
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    justify-content: stretch !important;
    gap: 0 !important;
    overflow: hidden !important;
    background: #000 !important;
}
@supports (height: 100dvh) {
    html.player-root-fullscreen .lesson-page .player-stage.is-player-fullscreen {
        height: 100dvh !important;
        min-height: 100dvh !important;
        max-height: 100dvh !important;
    }
}
html.player-root-fullscreen .lesson-page .player-stage.is-player-fullscreen > .player-shell {
    position: relative !important;
    inset: auto !important;
    flex: 1 1 0 !important;
    width: 100% !important;
    height: auto !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    overflow: hidden !important;
    background: #000 !important;
}
html.player-root-fullscreen .lesson-page .player-stage.is-player-fullscreen > .player-shell video,
html.player-root-fullscreen .lesson-page .player-stage.is-player-fullscreen > .player-shell iframe {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    object-fit: contain !important;
    background: #000 !important;
}
html.player-root-fullscreen .lesson-page .player-stage.is-player-fullscreen > .watch-tools {
    position: relative !important;
    inset: auto !important;
    flex: 0 0 auto !important;
    width: 100% !important;
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: #11131a !important;
}
html.player-root-fullscreen .lesson-page .player-stage.is-player-fullscreen .media-control-bar.media-control-bar-cinema {
    width: 100% !important;
    max-width: none !important;
    min-height: 78px !important;
    margin: 0 !important;
    padding: 10px 20px 12px !important;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
    background: linear-gradient(180deg, #171920, #101117) !important;
}
html.player-root-fullscreen .lesson-page .player-stage.is-player-fullscreen .media-action-row {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    min-height: 42px !important;
}
html.player-root-fullscreen .lesson-page .player-stage.is-player-fullscreen .media-action-group-center {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    align-items: center !important;
    justify-content: stretch !important;
    gap: 14px !important;
    width: 100% !important;
    margin: 0 auto !important;
}
html.player-root-fullscreen .lesson-page .player-stage.is-player-fullscreen .media-settings-panel {
    top: auto !important;
    bottom: calc(100% + 10px) !important;
    z-index: 2147483647 !important;
}
@media (max-width: 760px) {
    html.player-root-fullscreen .lesson-page .player-stage.is-player-fullscreen .media-action-group-center {
        grid-template-columns: minmax(0, 1fr) auto !important;
        gap: 10px 8px !important;
    }
}

/* Duración manual/automática de videos */
.video-duration-field .duration-inputs {
    display: grid;
    grid-template-columns: minmax(100px, 150px) auto minmax(100px, 150px);
    align-items: end;
    gap: 10px;
    width: fit-content;
    max-width: 100%;
}
.video-duration-field .duration-inputs > label {
    display: grid;
    gap: 6px;
}
.video-duration-field .duration-inputs > label > span {
    color: var(--muted);
    font-size: 12px;
    font-weight: 700;
}
.video-duration-field .duration-separator {
    padding-bottom: 11px;
    color: var(--muted);
    font-size: 22px;
    font-weight: 800;
}
.course-video-sidebar .lesson-row .lesson-duration {
    margin-left: auto;
    padding-left: 10px;
    color: var(--muted);
    font-size: 12px;
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
@media (max-width: 520px) {
    .video-duration-field .duration-inputs {
        grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
        width: 100%;
    }
}

/* --------------------------------------------------------------------------
   Actividades académicas: estados, resultados, evaluaciones y validaciones
   -------------------------------------------------------------------------- */
.app-toast.warning{border-color:#f4c96b;background:color-mix(in srgb,#f4c96b 16%,var(--surface));}
.activity-container{max-width:980px;}
.activity-page-head{align-items:flex-start;}
.activity-location-line{display:flex;align-items:center;flex-wrap:wrap;gap:8px 12px;margin-top:8px;}
.activity-result-grid{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;margin-bottom:16px;}
.activity-state-card,.activity-score-card{border:1px solid var(--line);border-radius:18px;background:var(--surface);padding:18px;box-shadow:0 8px 24px color-mix(in srgb,var(--text) 5%,transparent);}
.activity-state-card{display:flex;align-items:center;gap:14px;}
.activity-state-card h2,.activity-score-card strong{margin:3px 0 5px;}
.activity-state-icon{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;background:var(--surface-2);font-weight:900;font-size:20px;}
.activity-state-card.is-success .activity-state-icon{background:#d8f7e8;color:#08764a;}
.activity-state-card.is-warning .activity-state-icon{background:#fff0cc;color:#8b5c00;}
.activity-state-card.is-pending .activity-state-icon{background:#eaf0ff;color:#365ea8;}
.activity-score-card{display:grid;align-content:center;text-align:center;}
.activity-score-card strong{font-size:38px;line-height:1;color:var(--brand);}
.activity-score-card small{color:var(--muted);}
.evaluator-feedback{border-left:4px solid var(--brand);margin-bottom:16px;}
.feedback-heading{display:flex;align-items:center;gap:12px;margin-bottom:10px;}
.feedback-heading h2{margin:1px 0 0;}
.feedback-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:50%;background:color-mix(in srgb,var(--brand) 14%,var(--surface));color:var(--brand);font-weight:900;}
.panel-section-title{margin-bottom:14px;}.panel-section-title h2{margin:2px 0 0;}
.current-attachment{display:flex;justify-content:space-between;gap:12px;padding:11px 13px;border-radius:12px;background:var(--surface-2);margin-bottom:12px;}
.compact-panel{margin-bottom:14px;}
.activity-locked-card{display:flex;gap:16px;align-items:flex-start;padding:24px;}
.activity-locked-card h2{margin:2px 0 8px;}
.quiz-result-hero{display:flex;align-items:center;justify-content:space-between;gap:20px;border:1px solid var(--line);border-radius:20px;padding:22px;margin-bottom:16px;background:var(--surface);}
.quiz-result-hero.is-success{background:linear-gradient(135deg,color-mix(in srgb,#43c78b 12%,var(--surface)),var(--surface));border-color:color-mix(in srgb,#43c78b 35%,var(--line));}
.quiz-result-hero.is-warning{background:linear-gradient(135deg,color-mix(in srgb,#f2b94b 12%,var(--surface)),var(--surface));border-color:color-mix(in srgb,#f2b94b 35%,var(--line));}
.quiz-result-hero h2{margin:3px 0;}.quiz-result-score{font-size:48px;line-height:1;color:var(--brand);}
.quiz-review-section{margin-top:24px;}.quiz-answer-review-list{gap:12px;}
.quiz-answer-review{padding:18px;}.quiz-answer-review.is-correct{border-left:4px solid #28a66a;}.quiz-answer-review.is-incorrect{border-left:4px solid #d66767;}
.quiz-answer-review-head{display:grid;grid-template-columns:34px minmax(0,1fr) auto;gap:10px;align-items:start;}.quiz-answer-review-head h3{margin:2px 0 0;font-size:17px;}
.answer-status-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;font-weight:900;background:var(--surface-2);}.is-correct .answer-status-icon{background:#d8f7e8;color:#08764a}.is-incorrect .answer-status-icon{background:#fde4e4;color:#9e3535}
.answer-comparison{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0 0;}.answer-comparison>div{padding:12px;border-radius:12px;background:var(--surface-2);}.answer-comparison small{display:block;color:var(--muted);margin-bottom:4px;}.answer-explanation{margin:12px 0 0;color:var(--muted);}
.activity-footer-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px;}
.quiz-progress-note{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-radius:13px;background:var(--surface-2);margin-bottom:12px;color:var(--muted);}.quiz-progress-note strong{color:var(--text);}
.quiz-question-card{padding:18px;}.quiz-question-card legend{display:flex;align-items:center;gap:10px;padding:0 6px;}.quiz-question-card legend>span{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--brand);color:white;font-size:13px;}
.quiz-options-grid{display:grid;gap:9px;margin-top:8px;}.quiz-option{display:block;cursor:pointer;}.quiz-option input{position:absolute;opacity:0;pointer-events:none;}.quiz-option>span{display:flex;align-items:center;gap:10px;padding:13px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface);transition:.15s ease;}.quiz-option>span i{width:18px;height:18px;border:2px solid var(--muted);border-radius:50%;box-shadow:inset 0 0 0 4px var(--surface);}.quiz-option input:checked+span{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,var(--surface));}.quiz-option input:checked+span i{background:var(--brand);border-color:var(--brand);}.quiz-submit-button{justify-self:start;}

.status-chip{display:inline-flex;align-items:center;justify-content:center;min-height:26px;padding:4px 9px;border-radius:999px;font-size:11px;font-weight:800;white-space:nowrap;border:1px solid var(--line);background:var(--surface-2);color:var(--muted);}.status-chip.is-success{background:#dff7eb;border-color:#bdebd4;color:#08764a}.status-chip.is-warning{background:#fff0cc;border-color:#f1daa1;color:#815500}.status-chip.is-pending{background:#eaf0ff;border-color:#cedafa;color:#345a9c}.status-chip.is-neutral{background:var(--surface-2);color:var(--muted)}
.activity-type-icon{display:grid;place-items:center;flex:0 0 34px;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand);font-size:12px;font-weight:900;}.activity-type-icon.is-quiz{background:color-mix(in srgb,#7b61ff 13%,var(--surface));color:#6546df}.activity-type-icon.is-survey{background:color-mix(in srgb,#f4b940 17%,var(--surface));color:#936600}
.activity-dashboard-groups{display:grid;gap:16px}.activity-course-group{padding:0;overflow:hidden}.activity-course-group-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;background:var(--surface-2);border-bottom:1px solid var(--line)}.activity-course-group-head h2{margin:2px 0 0}.activity-section-group{padding:15px 18px}.activity-section-group+.activity-section-group{border-top:1px solid var(--line)}.activity-section-group-head{display:flex;align-items:center;gap:8px;margin-bottom:9px}.activity-section-dot{width:8px;height:8px;border-radius:50%;background:var(--brand)}.activity-dashboard-list{display:grid;gap:8px}.activity-dashboard-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:12px;padding:11px 12px;border:1px solid var(--line);border-radius:13px;background:var(--surface);text-decoration:none;color:inherit}.activity-dashboard-row:hover{border-color:color-mix(in srgb,var(--brand) 35%,var(--line));background:color-mix(in srgb,var(--brand) 3%,var(--surface))}.activity-dashboard-main{display:flex;align-items:center;gap:10px;min-width:0}.activity-dashboard-main>div{min-width:0}.activity-dashboard-main strong,.activity-dashboard-main small{display:block}.activity-dashboard-main small{margin-top:3px;color:var(--muted)}.activity-dashboard-status{display:flex;align-items:center;justify-content:flex-end;gap:8px}.activity-score-mini{min-width:42px;text-align:right;font-size:14px}
.course-activity-mini-summary{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0}.course-activity-mini-summary span{padding:6px 8px;border-radius:9px;background:var(--surface-2);font-size:11px;color:var(--muted)}.course-activity-mini-summary .has-pending{background:#eaf0ff;color:#345a9c}

.activity-aware-curriculum .curriculum-section-summary{display:flex;justify-content:space-between;align-items:center;gap:12px}.curriculum-section-meta{font-size:12px;color:var(--muted);font-weight:700}.curriculum-lesson-block+.curriculum-lesson-block{border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}.curriculum-activity-row{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:10px;padding:10px 16px 10px 42px;text-decoration:none;color:inherit;background:color-mix(in srgb,var(--surface-2) 65%,var(--surface));border-top:1px dashed var(--line)}.curriculum-activity-row:hover{background:color-mix(in srgb,var(--brand) 5%,var(--surface))}.curriculum-activity-row strong,.curriculum-activity-row small{display:block}.curriculum-activity-row small{color:var(--muted);margin-top:2px}.activity-row-result{display:flex;align-items:center;gap:7px}.section-checkpoint-row{border-top:1px solid var(--line);padding-top:4px}.section-checkpoint-row .curriculum-activity-row{padding-left:16px;border-top:0;margin:8px;border-radius:12px}.course-activity-summary .activity-summary-metrics{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:12px 0}.activity-summary-metrics>div{display:grid;text-align:center;padding:12px;background:var(--surface-2);border-radius:12px}.activity-summary-metrics strong{font-size:24px}.activity-summary-metrics span{font-size:11px;color:var(--muted)}
.course-reviews-summary{margin-top:18px}.course-review-score{display:flex;justify-content:space-between;align-items:center;gap:18px}.course-review-score h2{margin:2px 0 5px}.rating-number{font-size:48px;font-weight:900;color:var(--brand)}.rating-stars-wrap{position:relative;display:inline-block;font-size:28px;line-height:1;letter-spacing:3px;margin:10px 0;color:color-mix(in srgb,var(--muted) 28%,transparent)}.rating-stars-fill{position:absolute;left:0;top:0;overflow:hidden;white-space:nowrap;color:#f0b429}.rating-stars-bg{white-space:nowrap}.course-rating-inline b{color:#a96e00}

.activity-location-panel,.section-checkpoint-panel{margin:14px 0}.activity-location-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.activity-location-head h2{margin:2px 0 0}.section-checkpoint-panel{border-top:3px solid color-mix(in srgb,var(--brand) 65%,var(--line))}

.validation-survey{display:grid;gap:18px}.survey-rating-block{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px;border-radius:14px;background:var(--surface-2)}.star-choice{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px}.star-choice input{position:absolute;opacity:0}.star-choice label{font-size:30px;line-height:1;color:color-mix(in srgb,var(--muted) 30%,transparent);cursor:pointer;transition:.15s}.star-choice label:hover,.star-choice label:hover~label,.star-choice input:checked~label{color:#f0b429;transform:translateY(-1px)}

.activity-admin-groups{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}.activity-admin-column{display:grid;gap:10px}.activity-admin-title{display:flex;align-items:center;justify-content:space-between;padding:10px 2px}.activity-admin-title>div{display:flex;align-items:center;gap:10px}.activity-admin-title strong,.activity-admin-title small{display:block}.activity-admin-title small{color:var(--muted);margin-top:2px}.activity-admin-card{padding:0;overflow:visible}.activity-admin-card>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px;cursor:pointer}.activity-admin-card>summary span:first-child strong,.activity-admin-card>summary span:first-child small{display:block}.activity-admin-card>summary small{margin-top:3px;color:var(--muted)}.activity-admin-card>form{padding:0 16px 16px}.activity-admin-actions{padding:0 16px 16px}.quiz-editor-questions{display:grid;gap:10px;margin:14px 0}.quiz-editor-question{padding:14px}.quiz-option-editor{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.activity-create-grid{margin-top:18px}

.review-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}.review-card{padding:0}.review-card>summary{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 16px}.review-card>summary span:first-child strong,.review-card>summary span:first-child small{display:block}.review-card>summary small{color:var(--muted);margin-top:3px}.review-summary-status{display:flex;align-items:center;gap:8px}.review-detail-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:16px;padding:0 16px 16px}.review-content-block{padding:12px;border-radius:12px;background:var(--surface-2);margin-bottom:10px}.quiz-review-mini{display:grid;gap:6px;padding:0 16px 12px}.quiz-review-mini-row{display:flex;gap:8px;padding:8px;border-radius:10px;background:var(--surface-2)}.quiz-review-mini-row>span{font-weight:900}.quiz-review-mini-row.is-correct>span{color:#08764a}.quiz-review-mini-row.is-incorrect>span{color:#9e3535}.quiz-review-mini-row strong,.quiz-review-mini-row small{display:block}.quiz-review-mini-row small{color:var(--muted);margin-top:2px}.review-card>form{padding:0 16px 16px}

.friendly-error{display:grid;grid-template-columns:auto 1fr;gap:24px;align-items:center;padding:28px}.friendly-error-code{display:grid;place-items:center;width:86px;height:86px;border-radius:24px;background:color-mix(in srgb,var(--brand) 10%,var(--surface-2));color:var(--brand);font-size:24px;font-weight:900}.friendly-error h1{margin:3px 0 8px}

@media(max-width:900px){.activity-result-grid,.activity-admin-groups,.review-dashboard-grid{grid-template-columns:1fr}.review-detail-grid{grid-template-columns:1fr}.activity-dashboard-row{grid-template-columns:minmax(0,1fr) auto}.activity-dashboard-row>.button{grid-column:1/-1;justify-self:start}.curriculum-activity-row{padding-left:16px}.quiz-option-editor{grid-template-columns:1fr}}
@media(max-width:620px){.activity-result-grid{grid-template-columns:1fr}.activity-score-card{text-align:left}.activity-score-card strong{font-size:32px}.quiz-result-hero,.course-review-score,.survey-rating-block{align-items:flex-start;flex-direction:column}.quiz-answer-review-head{grid-template-columns:30px 1fr}.quiz-answer-review-head .badge{grid-column:2}.answer-comparison{grid-template-columns:1fr}.activity-dashboard-row{grid-template-columns:1fr}.activity-dashboard-status{justify-content:flex-start}.activity-dashboard-row>.button{grid-column:auto}.curriculum-activity-row{grid-template-columns:34px 1fr}.activity-row-result{grid-column:2;justify-content:flex-start}.friendly-error{grid-template-columns:1fr}.friendly-error-code{width:64px;height:64px}.rating-number{font-size:38px}}

/* --------------------------------------------------------------------------
   Registro: validación de contraseña clara, accesible y amigable
   -------------------------------------------------------------------------- */
.auth-card-register { width: min(500px, 100%); }
.form-feedback-card {
    display: grid;
    grid-template-columns: auto 1fr;
    gap: 12px;
    align-items: start;
    margin: 18px 0;
    padding: 14px 15px;
    border: 1px solid color-mix(in srgb, var(--warning) 42%, var(--line));
    border-radius: 12px;
    background: color-mix(in srgb, var(--warning) 8%, var(--surface));
    color: var(--text);
}
.form-feedback-card .form-feedback-icon {
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 9px;
    background: color-mix(in srgb, var(--warning) 18%, var(--surface-2));
    color: color-mix(in srgb, var(--warning) 78%, var(--text));
    font-weight: 900;
}
.form-feedback-card strong { display: block; margin-bottom: 2px; }
.form-feedback-card p { margin: 0; color: var(--muted); font-size: 13px; }
.field-feedback {
    display: flex;
    gap: 8px;
    align-items: flex-start;
    margin-top: 7px;
    font-size: 13px;
}
.field-feedback span {
    display: grid;
    place-items: center;
    flex: 0 0 18px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    font-size: 11px;
    font-weight: 900;
}
.field-feedback p { margin: 0; }
.field-feedback.is-error { color: color-mix(in srgb, var(--danger) 76%, var(--text)); }
.field-feedback.is-error span { background: color-mix(in srgb, var(--danger) 13%, var(--surface-2)); }
.input.is-invalid,
.input.is-mismatch {
    border-color: color-mix(in srgb, var(--danger) 58%, var(--line));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--danger) 9%, transparent);
}
.input.is-match {
    border-color: color-mix(in srgb, var(--brand-2) 58%, var(--line));
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--brand-2) 9%, transparent);
}
.password-validator { margin-top: 4px; }
.password-input-wrap { position: relative; }
.password-input-wrap .input { padding-right: 48px; }
.password-visibility-toggle {
    position: absolute;
    top: 50%;
    right: 8px;
    transform: translateY(-50%);
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--muted);
    cursor: pointer;
}
.password-visibility-toggle:hover,
.password-visibility-toggle:focus-visible { background: var(--surface-2); color: var(--text); outline: none; }
.password-eye { width: 19px; height: 19px; }
.password-eye-hide { display: none; }
.password-visibility-toggle.is-visible .password-eye-show { display: none; }
.password-visibility-toggle.is-visible .password-eye-hide { display: block; }
.password-rules {
    margin: -3px 0 17px;
    padding: 13px 14px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: color-mix(in srgb, var(--surface-2) 58%, var(--surface));
}
.password-rules-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 10px;
}
.password-rules-heading strong { font-size: 13px; }
.password-rules-heading > span { color: var(--muted); font-size: 12px; font-weight: 700; }
.password-rules-heading > span.is-valid { color: color-mix(in srgb, var(--brand-2) 75%, var(--text)); }
.password-rule-grid { display: grid; gap: 7px; }
.password-rule {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--muted);
    font-size: 13px;
    transition: color .16s ease;
}
.password-rule-icon {
    display: grid;
    place-items: center;
    width: 19px;
    height: 19px;
    border: 1px solid var(--line);
    border-radius: 50%;
    color: transparent;
    background: var(--surface);
    font-size: 11px;
    font-weight: 900;
    transition: .16s ease;
}
.password-rule.is-pending .password-rule-icon { color: var(--muted); }
.password-rule.is-pending .password-rule-icon::before { content: '•'; }
.password-rule.is-pending .password-rule-icon { font-size: 0; }
.password-rule.is-pending .password-rule-icon::before { font-size: 13px; }
.password-rule.is-valid { color: var(--text); }
.password-rule.is-valid .password-rule-icon {
    border-color: color-mix(in srgb, var(--brand-2) 65%, var(--line));
    background: color-mix(in srgb, var(--brand-2) 13%, var(--surface));
    color: color-mix(in srgb, var(--brand-2) 78%, var(--text));
}
.password-match-status {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-top: 8px;
    color: var(--muted);
    font-size: 13px;
}
.password-match-icon {
    display: grid;
    place-items: center;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    border: 1px solid var(--line);
    font-size: 11px;
    font-weight: 900;
}
.password-match-status.is-valid { color: color-mix(in srgb, var(--brand-2) 78%, var(--text)); }
.password-match-status.is-valid .password-match-icon {
    border-color: color-mix(in srgb, var(--brand-2) 60%, var(--line));
    background: color-mix(in srgb, var(--brand-2) 13%, var(--surface));
}
.password-match-status.is-invalid { color: color-mix(in srgb, var(--danger) 72%, var(--text)); }
.password-match-status.is-invalid .password-match-icon {
    border-color: color-mix(in srgb, var(--danger) 52%, var(--line));
    background: color-mix(in srgb, var(--danger) 10%, var(--surface));
}
.password-validator.needs-attention .password-rules,
.password-validator.needs-attention .password-match-status { animation: register-attention .42s ease; }
.register-submit { margin-top: 4px; min-width: 150px; }
@keyframes register-attention { 35% { transform: translateX(3px); } 70% { transform: translateX(-3px); } }
@media(max-width:560px){
    .password-rules-heading { align-items: flex-start; flex-direction: column; gap: 3px; }
}

/* Pago pendiente: continuar la misma intención desde el carrito. */
.payment-method-card.payment-method-card-pending {
    border-color: color-mix(in srgb, var(--brand) 38%, var(--line));
    background: color-mix(in srgb, var(--brand) 7%, var(--surface-2));
}
.payment-method-card-pending .payment-pending-badge {
    display: inline-flex;
    margin-right: 6px;
    vertical-align: middle;
}
.payment-method-card-pending small {
    overflow-wrap: anywhere;
}
.payment-intent-reference {
    overflow-wrap: anywhere;
}
.tutor-payment-history {
    margin-top: 24px;
}
.tutor-payment-history .table td > small {
    display: block;
    margin-top: 4px;
}

/* Registro de tutor y acuerdos versionados */
.tutor-register-option{display:grid;grid-template-columns:24px 1fr;align-items:start;gap:10px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);cursor:pointer;margin:4px 0 16px}.tutor-register-option>input{position:absolute;opacity:0;pointer-events:none}.tutor-register-check{width:22px;height:22px;border:2px solid var(--line);border-radius:7px;background:var(--surface);display:grid;place-items:center}.tutor-register-option>input:checked+.tutor-register-check{border-color:var(--brand);background:var(--brand)}.tutor-register-option>input:checked+.tutor-register-check:after{content:'✓';color:#fff;font-weight:900}.tutor-register-option>span:last-child{display:grid;gap:4px}.tutor-register-option small{color:var(--muted);line-height:1.45}
.tutor-register-option:has(input:focus-visible){border-color:var(--brand);box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 24%,transparent)}
.tutor-registration-dialog{width:min(610px,calc(100vw - 30px))}.tutor-registration-heading{padding-bottom:16px}.tutor-registration-title-group{display:flex;align-items:center;gap:14px}.tutor-registration-icon{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;border-radius:15px;background:color-mix(in srgb,var(--brand) 14%,var(--surface-2));color:var(--brand)}.tutor-registration-icon .app-icon{width:25px;height:25px}.tutor-registration-title-group h2{margin:3px 0 0}.tutor-registration-copy{margin:0;padding:16px;border:1px solid color-mix(in srgb,var(--brand) 18%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--brand) 6%,var(--surface-2));color:var(--text);line-height:1.65}.tutor-registration-actions .button{display:inline-flex;align-items:center;justify-content:center;gap:8px}.tutor-registration-actions .app-icon{width:18px;height:18px}.tutor-registration-actions .button:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 34%,transparent);outline-offset:3px}
.tutor-agreement-dialog{width:min(760px,calc(100vw - 30px));max-height:calc(100vh - 30px);padding:0;border:0;border-radius:22px;background:transparent}.tutor-agreement-dialog::backdrop{background:rgba(8,12,24,.66);backdrop-filter:blur(4px)}.tutor-agreement-dialog-card{display:grid;gap:18px;padding:26px;border:1px solid var(--line);border-radius:22px;background:var(--surface);box-shadow:0 28px 80px rgba(0,0,0,.32);max-height:calc(100vh - 30px);overflow:auto}.tutor-agreement-heading{display:grid;gap:8px}.tutor-agreement-heading h2{margin:0;font-size:30px}.tutor-agreement-heading p{margin:0;color:var(--muted)}.agreement-badge{display:inline-flex;width:max-content;padding:6px 10px;border-radius:999px;background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand);font-weight:900;font-size:12px}.tutor-agreement-commission{display:grid;grid-template-columns:1fr auto;gap:3px 14px;align-items:center;padding:14px 16px;border-radius:14px;background:color-mix(in srgb,var(--brand) 8%,var(--surface-2));border:1px solid color-mix(in srgb,var(--brand) 22%,var(--line))}.tutor-agreement-commission strong{font-size:26px;color:var(--brand)}.tutor-agreement-commission small{grid-column:1/-1;color:var(--muted)}.tutor-agreement-copy{white-space:normal;line-height:1.7;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);color:var(--text)}.tutor-agreement-confirm{align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:14px}.tutor-agreement-confirm span{display:grid;gap:4px}.tutor-agreement-confirm small{color:var(--muted)}.tutor-agreement-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}.tutor-agreement-page{min-height:55vh}.tutor-agreement-gate{display:grid;gap:15px}.agreement-status-card{display:flex;gap:12px;align-items:flex-start;padding:14px;border-radius:14px;background:var(--surface-2);border:1px solid var(--line)}.agreement-status-card p{margin:4px 0 0;color:var(--muted)}.agreement-status-dot{width:12px;height:12px;margin-top:5px;border-radius:50%;background:var(--brand);box-shadow:0 0 0 6px color-mix(in srgb,var(--brand) 14%,transparent)}
.agreement-admin-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:18px}.metric-card{display:grid;gap:6px}.metric-card>span,.metric-card>small{color:var(--muted)}.metric-card>strong{font-size:28px}.agreement-admin-form{display:grid;gap:16px}.agreement-textarea{min-height:320px;line-height:1.6}.agreement-version-check{align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.agreement-version-check span{display:grid;gap:4px}.agreement-version-check small{color:var(--muted)}
.approval-note{display:block;max-width:260px;margin-top:6px}.course-review-actions{margin-top:8px}.course-review-actions>summary{cursor:pointer;font-weight:800;color:var(--brand)}.course-review-actions>div{display:grid;gap:10px;margin-top:10px;min-width:260px}.course-approval-banner{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;padding:16px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);margin-bottom:18px}.course-approval-banner strong{display:block;font-size:20px;margin:3px 0}.course-approval-banner p{margin:0;color:var(--muted)}.course-approval-banner.is-pending{border-color:color-mix(in srgb,var(--brand) 35%,var(--line))}.course-approval-banner.is-approved{border-color:color-mix(in srgb,#1d9d63 35%,var(--line))}.course-approval-banner.is-changes_requested{border-color:color-mix(in srgb,#d97706 35%,var(--line))}.input-readonly{display:flex;align-items:center;color:var(--muted)}.admin-course-approval-panel{margin-top:18px;min-width:0}.course-admin-review-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;min-width:0}.course-admin-review-grid form,.course-admin-review-grid .field,.course-admin-review-grid .rich-editor,.course-admin-review-grid .rich-menubar,.course-admin-review-grid .rich-toolbar,.course-admin-review-grid .rich-surface{width:100%;min-width:0;max-width:100%}.course-admin-review-grid form{display:grid;gap:10px}.course-admin-review-grid .rich-menubar,.course-admin-review-grid .rich-toolbar{overflow-x:auto;overscroll-behavior-inline:contain}.course-admin-review-grid form>.button{width:100%}
@media(max-width:900px){.agreement-admin-summary{grid-template-columns:1fr 1fr}.course-admin-review-grid{grid-template-columns:1fr}}@media(max-width:600px){.agreement-admin-summary{grid-template-columns:1fr}.tutor-agreement-dialog-card{padding:18px}.tutor-agreement-heading h2{font-size:25px}.tutor-agreement-actions .button{width:100%}.course-approval-banner{display:grid}}
@media(max-width:600px){.tutor-registration-title-group{align-items:flex-start}.tutor-registration-actions{grid-template-columns:1fr}.tutor-registration-actions .button{width:100%}}

/* --------------------------------------------------------------------------
   Invitation administration — table-first management, dialogs and bulk tools
   -------------------------------------------------------------------------- */
.invitation-admin-page .invitation-admin-head{align-items:flex-end;gap:18px}
.invitation-head-actions{display:flex;justify-content:flex-end;gap:10px;flex-wrap:wrap}
.invitation-toolbar{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:16px;padding:16px 18px}
.invitation-toolbar>div:first-child{display:grid;gap:4px}
.invitation-bulk-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.invitation-bulk-actions .button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}
.invitation-table-panel{padding:0;overflow:visible}
.invitation-table-panel .table-scroll{overflow-x:auto;border-radius:inherit}
.invitation-table{width:100%;min-width:1060px;margin:0}
.invitation-table th,.invitation-table td{vertical-align:middle}
.invitation-table td small{display:block;margin-top:4px;line-height:1.35}
.invitation-table tbody tr{position:relative}
.invitation-table tbody tr:hover{background:color-mix(in srgb,var(--brand) 4%,var(--surface))}
.invitation-select-cell{width:44px!important;text-align:center!important}
.invitation-select-cell input{width:17px;height:17px;accent-color:var(--brand);cursor:pointer}
.invitation-code-cell{display:flex;align-items:center;gap:8px;white-space:nowrap}
.invitation-code-cell strong{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;letter-spacing:.035em}
.copy-icon-button{display:grid;place-items:center;width:32px;height:32px;padding:0;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--text);cursor:pointer}
.copy-icon-button:hover,.copy-icon-button:focus-visible{border-color:var(--brand);color:var(--brand);background:color-mix(in srgb,var(--brand) 8%,var(--surface))}
.copy-icon-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.badge.danger{background:color-mix(in srgb,var(--danger) 14%,var(--surface));color:var(--danger)}
.badge.paid{background:color-mix(in srgb,var(--brand-2) 14%,var(--surface));color:var(--text)}
.row-actions-menu>button{display:flex;align-items:center;width:100%;min-height:38px;padding:8px 10px;border:0;border-radius:8px;background:transparent;color:var(--text);font-weight:700;text-decoration:none;text-align:left;cursor:pointer}
.row-actions-menu>button:hover,.row-actions-menu>button:focus-visible{background:var(--surface-2)}
.row-action-note{display:block;padding:8px 10px;color:var(--muted);font-size:12px;line-height:1.35}
.invitation-dialog{width:min(690px,calc(100% - 30px));max-height:min(88vh,820px);padding:0;border:0;border-radius:20px;background:transparent;color:var(--text);box-shadow:0 28px 90px #0009;overflow:visible}
.invitation-dialog::backdrop{background:#080b12b8;backdrop-filter:blur(5px)}
.invitation-dialog-card{display:grid;gap:18px;max-height:min(88vh,820px);overflow:auto;margin:0;padding:24px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}
.invitation-dialog-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}
.invitation-dialog-head h2{margin:4px 0 0;font-size:25px}
.invitation-dialog-head p{margin:7px 0 0}
.invitation-form-grid{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px}
.invitation-lesson-picker{display:grid;gap:7px;max-height:280px;overflow:auto;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.invitation-lesson-picker>strong{position:sticky;top:-12px;z-index:1;margin:8px -12px 2px;padding:10px 12px 7px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.invitation-lesson-picker>strong:first-child{margin-top:-12px}
.invitation-impact-note{display:grid;gap:4px;padding:13px 14px;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--brand) 6%,var(--surface));font-size:13px}
.invitation-impact-note span{color:var(--muted);line-height:1.45}
.invitation-dialog-actions{display:flex;justify-content:flex-end;gap:10px;padding-top:4px}
.invitation-table-panel .infinite-pagination{padding:12px 18px 16px}
.invitation-table-skeleton{display:grid;gap:0;padding:0 18px 16px}
.invitation-table-skeleton[hidden]{display:none}
.invitation-table-skeleton>div{display:grid;grid-template-columns:160px 1fr 130px 1fr 120px;gap:18px;align-items:center;min-height:68px;border-top:1px solid var(--line)}
.invitation-table-skeleton i{display:block;height:12px;border-radius:999px;background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:220% 100%;animation:skeleton 1.1s linear infinite}
.invitation-table-skeleton i:nth-child(2){width:75%}.invitation-table-skeleton i:nth-child(3){width:65%}.invitation-table-skeleton i:nth-child(4){width:82%}.invitation-table-skeleton i:nth-child(5){width:55%}
@media(max-width:900px){
  .invitation-toolbar{align-items:flex-start;flex-direction:column}.invitation-bulk-actions{justify-content:flex-start}
  .invitation-form-grid{grid-template-columns:1fr}
}
@media(max-width:680px){
  .invitation-admin-page .invitation-admin-head{align-items:stretch}.invitation-head-actions{display:grid;grid-template-columns:1fr 1fr}.invitation-head-actions .button{width:100%}
  .invitation-toolbar{padding:14px}.invitation-bulk-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.invitation-bulk-actions .button{width:100%}.invitation-bulk-actions .button:first-child{grid-column:1/-1}
  .invitation-table{min-width:0}.invitation-table-panel .table-scroll{overflow:visible}.invitation-table .invitation-select-cell{display:flex!important;grid-template-columns:92px 1fr;width:auto!important;text-align:left!important}.invitation-code-cell{white-space:normal}
  .invitation-dialog-card{padding:18px}.invitation-dialog-actions{display:grid;grid-template-columns:1fr 1fr}.invitation-dialog-actions .button{width:100%}
  .invitation-table-skeleton>div{grid-template-columns:1fr 1fr}.invitation-table-skeleton i:nth-child(n+3){display:none}
}
.invitation-series-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;max-height:340px;overflow:auto;padding:4px}
.invitation-series-list>div{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:11px;background:var(--surface-2)}
.invitation-series-list code{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:14px;font-weight:900;letter-spacing:.045em;color:var(--text)}
.invitation-series-actions{flex-wrap:wrap}
@media(max-width:680px){.invitation-series-list{grid-template-columns:1fr}.invitation-series-actions{grid-template-columns:1fr}.invitation-series-actions .button{width:100%}}
/* Infinite-scroll sentinel: Laravel links remain available in the DOM for the loader,
   but the invitation table is navigated by scroll rather than visible pagination. */
.invitation-table-panel .infinite-pagination{height:2px;min-height:2px;margin:0;padding:0;overflow:hidden;opacity:0;pointer-events:none}
.invitation-table-panel .infinite-pagination nav{visibility:hidden}
.invitation-transfer-note{display:flex;align-items:flex-start;gap:12px;margin:-4px 0 16px;padding:11px 14px;border-left:3px solid var(--brand);border-radius:0 10px 10px 0;background:color-mix(in srgb,var(--brand) 6%,var(--surface));font-size:12px;line-height:1.5}.invitation-transfer-note strong{white-space:nowrap}.invitation-transfer-note span{color:var(--muted)}
@media(max-width:680px){.invitation-transfer-note{display:grid;gap:4px}.invitation-transfer-note strong{white-space:normal}}
.legacy-code-note{color:var(--warning,#9a6500)!important;font-weight:700}

/* --------------------------------------------------------------------------
   Progreso del estudiante agrupado por curso y secciones
   -------------------------------------------------------------------------- */
.student-progress-courses{display:grid;gap:16px}.student-progress-course{padding:0;overflow:hidden}.student-progress-course>summary{list-style:none}.student-progress-course>summary::-webkit-details-marker{display:none}.student-progress-course-summary{display:grid;grid-template-columns:minmax(0,1fr) minmax(180px,320px);align-items:center;gap:22px;padding:18px 22px;cursor:pointer;background:var(--surface);user-select:none}.student-progress-course-summary:hover{background:color-mix(in srgb,var(--brand) 3%,var(--surface))}.student-progress-course-title h2{margin:2px 0 3px}.student-progress-course-title small{color:var(--muted)}.student-progress-course-total{display:grid;grid-template-columns:auto minmax(120px,1fr);align-items:center;gap:12px}.student-progress-course-total>strong{min-width:52px;text-align:right;font-size:15px}.student-progress-course-total .progress{margin:0}.student-progress-course-body{border-top:1px solid var(--line);background:var(--surface)}.student-progress-section+.student-progress-section{border-top:1px solid var(--line)}.student-progress-section{padding:16px 22px}.student-progress-section-head{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:10px}.student-progress-section-head h3{margin:2px 0 0;font-size:17px}.student-progress-lessons{display:grid;gap:8px}.student-progress-lesson{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;padding:11px 13px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:inherit;text-decoration:none}.student-progress-lesson:hover{border-color:color-mix(in srgb,var(--brand) 38%,var(--line));background:color-mix(in srgb,var(--brand) 4%,var(--surface-2))}.student-progress-lesson-main{display:grid;gap:7px}.student-progress-lesson-main .progress{margin:0;height:7px}.student-progress-percent{min-width:48px;text-align:right;font-weight:850;font-size:13px}.student-progress-course:not([open]) .student-progress-course-summary{border-radius:inherit}.student-progress-course:not([open]) .student-progress-course-total .progress{opacity:.82}

/* --------------------------------------------------------------------------
   Flujo de liquidación: calcular -> generar -> tutor confirma -> admin cierra
   -------------------------------------------------------------------------- */
.settlement-admin-grid{align-items:stretch}.settlement-panel-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:16px}.settlement-panel-title h2{margin:2px 0 0}.settlement-calculation-panel{display:flex;flex-direction:column}.settlement-calculation-context{display:grid;gap:3px;padding:10px 12px;margin-bottom:12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}.settlement-calculation-context span{color:var(--muted);font-size:13px}.settlement-calculation-list{display:grid;gap:0;margin:0}.settlement-calculation-list>div{display:flex;justify-content:space-between;gap:18px;padding:9px 0;border-bottom:1px solid var(--line)}.settlement-calculation-list dt{color:var(--muted)}.settlement-calculation-list dd{margin:0;font-weight:750;text-align:right}.settlement-calculation-list .total{margin-top:4px;padding-top:13px;border-bottom:0;font-size:18px;font-weight:900}.settlement-calculation-list .total dt{color:var(--text)}.settlement-calculation-meta{display:flex;justify-content:flex-end;margin:4px 0 12px;color:var(--muted);font-size:12px}.settlement-calculation-empty{min-height:310px;display:grid;place-items:center;align-content:center;text-align:center;gap:8px;padding:26px}.settlement-calculation-empty p{max-width:420px;margin:0}.settlement-calculation-icon{display:grid;place-items:center;width:52px;height:52px;border-radius:16px;background:color-mix(in srgb,var(--brand) 12%,var(--surface-2));color:var(--brand);font-size:23px;font-weight:900}.settlement-flow-note{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.settlement-flow-note span{padding:6px 8px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);font-size:11px;font-weight:750;color:var(--muted)}.friendly-inline-notice{display:grid;gap:3px;padding:11px 12px;margin-top:12px;border-radius:12px;border:1px solid var(--line);background:var(--surface-2)}.friendly-inline-notice span{color:var(--muted);font-size:13px}.friendly-inline-notice.is-warning{background:#fff8e6;border-color:#f0ddb1}.table-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:12px}.table-panel-heading h2{margin:0 0 3px}.table-panel-heading p{margin:0}

@media(max-width:820px){.student-progress-course-summary{grid-template-columns:1fr;gap:12px}.student-progress-course-total{grid-template-columns:auto 1fr}.student-progress-course-total>strong{text-align:left}.student-progress-section{padding:14px}.settlement-calculation-list>div{gap:10px}.settlement-flow-note{display:grid;grid-template-columns:1fr 1fr}}
@media(max-width:560px){.student-progress-course-summary{padding:15px}.student-progress-section-head{align-items:flex-start}.student-progress-lesson{grid-template-columns:1fr}.student-progress-percent{text-align:left}.settlement-flow-note{grid-template-columns:1fr}.settlement-calculation-list>div{display:grid;gap:3px}.settlement-calculation-list dd{text-align:left}}

/* --------------------------------------------------------------------------
   Administración de usuarios: estados, acuerdos y bloqueos financieros
   -------------------------------------------------------------------------- */
.status-chip.is-danger{background:#ffe4e8;border-color:#ffc6cf;color:#a51f3c}
.user-admin-heading{align-items:flex-start}
.user-create-menu{position:relative;z-index:20}
.user-create-menu>summary{list-style:none;cursor:pointer}
.user-create-menu>summary::-webkit-details-marker{display:none}
.user-create-popover{position:absolute;right:0;top:calc(100% + 10px);width:min(620px,calc(100vw - 48px));padding:20px;box-shadow:0 24px 60px color-mix(in srgb,var(--text) 18%,transparent);z-index:25}
.user-admin-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin:0 0 18px}
.user-admin-metrics .metric-card{padding:18px}
.user-admin-metrics .metric-card-alert{border-color:#ffc6cf;background:color-mix(in srgb,#ffe4e8 42%,var(--surface))}
.user-admin-filters{display:grid;grid-template-columns:minmax(240px,1.5fr) minmax(150px,.55fr) minmax(190px,.7fr) auto;align-items:end;gap:12px;margin-bottom:18px;padding:16px}
.user-admin-filters .field{margin:0}
.user-filter-actions{display:flex;gap:8px;align-items:center;padding-bottom:1px}
.user-admin-table .table-panel-heading{padding:0 0 14px}
.user-admin-table table td{vertical-align:middle}
.user-identity-cell{display:flex;align-items:center;gap:11px;min-width:220px}
.user-identity-cell>div{display:grid;gap:2px}
.user-identity-cell small{display:block}
.user-admin-avatar{display:grid;place-items:center;width:40px;height:40px;flex:0 0 40px;border-radius:13px;background:color-mix(in srgb,var(--brand) 13%,var(--surface-2));color:var(--brand);font-weight:900}
.user-role-form{display:grid;grid-template-columns:minmax(120px,1fr) auto;gap:7px;align-items:center;min-width:210px}
.user-role-form .select{min-width:0}
.user-status-stack,.user-agreement-state,.user-financial-state{display:grid;justify-items:start;gap:6px;min-width:140px}
.user-agreement-state small,.user-financial-state small{display:block;color:var(--muted);font-size:11px;line-height:1.35}
.user-financial-state strong{font-size:13px}
.user-financial-state.is-held strong{color:#a51f3c}
.user-row-held{background:color-mix(in srgb,#ffe4e8 28%,var(--surface))}
.empty-table-state{display:grid;justify-items:center;gap:5px;padding:28px 12px;text-align:center;color:var(--muted)}
.empty-table-state strong{color:var(--text)}
@media(max-width:1000px){.user-admin-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.user-admin-filters{grid-template-columns:1fr 1fr}.user-filter-search{grid-column:1/-1}.user-filter-actions{justify-content:flex-end}}
@media(max-width:620px){.user-admin-heading{display:grid;gap:14px}.user-create-menu,.user-create-menu>summary{width:100%}.user-create-popover{position:fixed;left:12px;right:12px;top:82px;width:auto;max-height:calc(100vh - 100px);overflow:auto}.user-admin-metrics{grid-template-columns:1fr 1fr;gap:10px}.user-admin-filters{grid-template-columns:1fr}.user-filter-search{grid-column:auto}.user-filter-actions{justify-content:stretch}.user-filter-actions .button{flex:1}}

/* --------------------------------------------------------------------------
   Invitaciones: menú contextual anclado y flujo de acceso más claro
   -------------------------------------------------------------------------- */
.row-actions-menu.row-actions-menu-fixed{
    position:fixed!important;
    right:auto!important;
    bottom:auto!important;
    z-index:10050!important;
    max-height:min(420px,calc(100vh - 24px));
    overflow-y:auto;
}
.invitation-table td:last-child,
.access-admin-table td:last-child{overflow:visible}
.invitation-choice-backdrop{
    min-height:calc(100vh - 78px);
    display:grid;
    place-items:center;
    padding:40px 18px;
    background:linear-gradient(180deg,var(--surface-2),var(--surface));
}
.invitation-choice-card{
    width:min(620px,100%);
    padding:30px;
    border:1px solid var(--line);
    border-radius:20px;
    background:var(--surface);
    box-shadow:var(--shadow);
}
.invitation-choice-card h1{margin:8px 0 10px}
.invitation-choice-icon{
    display:grid;place-items:center;width:52px;height:52px;margin-bottom:18px;
    border-radius:16px;background:color-mix(in srgb,var(--brand-2) 16%,var(--surface-2));
    color:var(--brand-2);font-size:26px;font-weight:900
}
.invitation-choice-summary{display:flex;justify-content:space-between;gap:14px;margin:18px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.invitation-choice-options{display:grid;gap:12px;margin-top:22px}
.invitation-choice-options form{margin:0}
.invitation-choice-option{
    width:100%;display:grid;grid-template-columns:44px 1fr;align-items:center;gap:14px;
    padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2);
    color:var(--text);text-align:left;cursor:pointer;transition:border-color .18s ease,transform .18s ease,background .18s ease
}
.invitation-choice-option:hover,.invitation-choice-option:focus-visible{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 7%,var(--surface-2));transform:translateY(-1px)}
.invitation-choice-option>span:last-child{display:grid;gap:4px}
.invitation-choice-option small{color:var(--muted);font-weight:500;line-height:1.45}
.invitation-choice-option-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:var(--surface);border:1px solid var(--line);font-size:20px;font-weight:900;color:var(--brand)}
.invitation-choice-cancel{display:inline-block;margin-top:20px}

/* --------------------------------------------------------------------------
   Configuración de accesos por curso
   -------------------------------------------------------------------------- */
.course-access-head{align-items:flex-end}
.access-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:18px}
.access-summary-card{display:grid;gap:5px;padding:18px;box-shadow:none}
.access-summary-card>span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.access-summary-card>strong{font-size:28px;line-height:1}
.access-summary-card>small{color:var(--muted)}
.access-pending-panel{margin-bottom:18px}
.access-pending-grid{display:grid;gap:10px}
.access-pending-card{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:12px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
.access-pending-main{display:grid;gap:4px;min-width:0}
.access-pending-main>span{color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.access-user-avatar{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--brand) 13%,var(--surface));color:var(--brand);font-weight:900}
.access-table-panel{overflow:visible}
.access-table-panel .table-scroll{overflow-x:auto;overflow-y:visible}
.course-user-invite-dialog{width:min(760px,calc(100vw - 28px))}
.course-user-invite-card{width:100%;max-width:none}
.course-user-searchbox{position:relative}
.course-user-searchbox [data-course-user-search-spinner]{position:absolute;right:12px;top:50%;transform:translateY(-50%);font-size:12px;color:var(--muted);background:var(--surface);padding-left:8px}
.course-user-search-results{display:grid;gap:7px;max-height:260px;overflow-y:auto;margin-top:8px}
.course-user-search-help{padding:12px;border:1px dashed var(--line);border-radius:11px;color:var(--muted);font-size:13px;background:var(--surface-2)}
.course-user-search-help.is-error{color:var(--danger)}
.course-user-result{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);color:var(--text);text-align:left;cursor:pointer}
.course-user-result:hover,.course-user-result:focus-visible{border-color:var(--brand);background:color-mix(in srgb,var(--brand) 6%,var(--surface))}
.course-user-result>span:nth-child(2){display:grid;gap:2px;min-width:0}
.course-user-result small{color:var(--muted);overflow:hidden;text-overflow:ellipsis}
.course-user-selected{display:grid;grid-template-columns:40px minmax(0,1fr) auto;align-items:center;gap:10px;margin-top:9px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--brand-2) 35%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--brand-2) 7%,var(--surface))}
.course-user-selected>div:nth-child(2){display:grid;gap:2px;min-width:0}
.course-user-selected span{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis}
.course-user-selected button{border:0;background:transparent;color:var(--brand);font-weight:800;cursor:pointer}
.access-email-note{display:grid;gap:3px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);margin-top:8px}
.access-email-note span{color:var(--muted);font-size:13px;line-height:1.45}
.access-edit-panel{display:grid;gap:16px}

/* --------------------------------------------------------------------------
   Popup de bienvenida después de aceptar una invitación
   -------------------------------------------------------------------------- */
.access-welcome-dialog{border:0;padding:0;background:transparent;width:min(540px,calc(100vw - 28px));max-width:none}
.access-welcome-dialog::backdrop{background:rgba(8,12,24,.58);backdrop-filter:blur(4px)}
.access-welcome-card{display:grid;gap:12px;padding:28px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:0 24px 70px rgba(0,0,0,.24)}
.access-welcome-card h2{margin:0;font-size:28px}
.access-welcome-card p{margin:0;color:var(--muted);line-height:1.6}
.access-welcome-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:17px;background:color-mix(in srgb,var(--brand-2) 15%,var(--surface-2));color:var(--brand-2);font-size:27px;font-weight:900}
.access-welcome-details{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:5px}
.access-welcome-details>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.access-welcome-details span{color:var(--muted);font-size:12px}
.access-welcome-actions{display:flex;justify-content:flex-end;margin-top:6px}
@media(max-width:760px){
  .access-summary-grid{grid-template-columns:1fr}
  .access-pending-card{grid-template-columns:40px 1fr}.access-pending-card>form{grid-column:1/-1}.access-pending-card>form .button{width:100%}
  .invitation-choice-card{padding:22px}
  .access-welcome-details{grid-template-columns:1fr}
}
.auth-invitation-notice{display:grid;gap:5px;margin:14px 0 18px;padding:12px 14px;border:1px solid color-mix(in srgb,var(--brand-2) 35%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--brand-2) 7%,var(--surface));font-size:13px}.auth-invitation-notice span{color:var(--muted);line-height:1.45}


/* Student practices/evaluations: same native collapse behavior as Progress */
.student-activity-course>summary{list-style:none}
.student-activity-course>summary::-webkit-details-marker{display:none}
.student-activity-course-summary{cursor:pointer;user-select:none}
.student-activity-course-summary:hover{background:color-mix(in srgb,var(--brand) 3%,var(--surface-2))}
.student-activity-course-summary small{display:block;margin-top:3px;color:var(--muted)}
.student-activity-course-body{background:var(--surface)}
.student-activity-course:not([open]) .activity-course-group-head{border-bottom-color:transparent;border-radius:inherit}
@media(max-width:680px){.student-activity-course-summary{align-items:flex-start}.student-activity-course-summary>.button{flex:0 0 auto}}


/* --------------------------------------------------------------------------
   Payment intent checkout windows
   -------------------------------------------------------------------------- */
.payment-countdown{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin:16px 0;
    padding:13px 15px;
    border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));
    border-radius:13px;
    background:color-mix(in srgb,var(--brand) 6%,var(--surface-2));
}
.payment-countdown span{
    color:var(--muted);
    font-size:13px;
    font-weight:700;
}
.video-duration-status{display:block;margin-top:7px;color:var(--muted);font-size:12px;font-weight:700}.video-duration-status[data-state="success"]{color:var(--success,#18794e)}.video-duration-status[data-state="pending"]{color:var(--warning,#9a6700)}
.payment-countdown-text small{
    display:block;
    margin-top:2px;
    color:var(--muted);
    font-size:10px;
    font-weight:650;
    letter-spacing:.02em;
}
.payment-countdown strong{
    color:var(--text);
    font-size:22px;
    font-variant-numeric:tabular-nums;
    letter-spacing:.04em;
}
.payment-countdown.is-compact{
    display:inline-flex;
    justify-content:flex-start;
    gap:7px;
    margin:5px 0 0;
    padding:5px 8px;
    border-radius:9px;
}
.payment-countdown.is-compact span{font-size:11px}
.payment-countdown.is-compact .payment-countdown-text small{font-size:9px}
.payment-countdown.is-compact strong{font-size:12px}
.payment-countdown.is-expired{
    border-color:color-mix(in srgb,var(--danger) 38%,var(--line));
    background:color-mix(in srgb,var(--danger) 8%,var(--surface-2));
}
.payment-countdown.is-expired strong{color:var(--danger)}
.payment-timeout-help{
    margin:12px 0 18px;
    padding:11px 13px;
    border-left:3px solid var(--brand);
    background:var(--surface-2);
    color:var(--muted);
    font-size:13px;
    line-height:1.5;
}
.payment-expired-notice{
    display:grid;
    gap:7px;
    margin:16px 0;
    padding:16px;
    border:1px solid color-mix(in srgb,var(--danger) 28%,var(--line));
    border-radius:14px;
    background:color-mix(in srgb,var(--danger) 6%,var(--surface-2));
}
.payment-expired-notice strong{color:var(--text)}
.payment-expired-notice p{margin:0;color:var(--muted);line-height:1.55}
.payment-expired-label{
    display:block;
    margin-top:5px;
    color:var(--danger);
    font-size:12px;
    font-weight:800;
}
.payment-status-expired{
    background:color-mix(in srgb,var(--danger) 13%,var(--surface-2));
    color:var(--danger);
}
.payment-result-card{width:min(560px,100%)}
.payment-method-card .payment-countdown.is-compact{grid-column:auto}
.payment-live-actions{display:contents}
.payment-state-expired{border-color:color-mix(in srgb,var(--danger) 34%,var(--line));background:color-mix(in srgb,var(--danger) 5%,var(--surface))}

/* Auditoría administrativa: detalle técnico legible sin desbordes. */
.audit-filters{display:grid;grid-template-columns:minmax(220px,1.4fr) repeat(4,minmax(140px,.7fr));gap:12px;align-items:end;margin-bottom:16px}
.audit-filters>.inline{grid-column:1/-1}.audit-table-panel td small{display:block;margin-top:4px;color:var(--muted);overflow-wrap:anywhere}
.audit-detail{display:grid;gap:16px}.audit-detail>.section-head{margin-bottom:0}.audit-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.audit-summary>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.audit-summary span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}.audit-summary strong{overflow-wrap:anywhere}.audit-error-message{margin:8px 0 0;overflow-wrap:anywhere}.audit-block{padding:0;overflow:hidden}.audit-block summary{padding:15px 17px;cursor:pointer;font-weight:850}.audit-block pre{max-height:520px;margin:0;padding:16px;overflow:auto;border-top:1px solid var(--line);background:var(--surface-2);color:var(--text);font:12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}.audit-exception-meta{display:grid;gap:8px;margin:0;padding:0 17px 15px}.audit-exception-meta>div{display:grid;grid-template-columns:80px minmax(0,1fr);gap:10px}.audit-exception-meta dt{color:var(--muted);font-weight:800}.audit-exception-meta dd{margin:0;overflow-wrap:anywhere}
@media(max-width:900px){.audit-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.audit-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:620px){.audit-filters,.audit-summary{grid-template-columns:1fr}.audit-filters>.inline{grid-column:auto}}
@media(max-width:620px){
    .payment-countdown:not(.is-compact){align-items:flex-start;flex-direction:column}
}


/* Bunny Stream: use platform controls whenever HLS/direct media is available.
   These external buttons are shown only if playback falls back to Bunny's iframe. */
.lesson-page .bunny-external-navigation {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    margin: 12px 0 22px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 14px;
    background: var(--surface);
}
.lesson-page .bunny-external-navigation[hidden],
.lesson-page .watch-tools[hidden] { display: none !important; }
.lesson-page .bunny-external-navigation > .muted {
    font-size: 12px;
    text-align: center;
}
@media (max-width: 560px) {
    .lesson-page .bunny-external-navigation { justify-content: space-between; gap: 8px; }
    .lesson-page .bunny-external-navigation > .muted { display: none; }
}

/* --------------------------------------------------------------------------
   Visual refresh: management tables, creation dialogs and course detail
   -------------------------------------------------------------------------- */
.text-button{
    display:inline-flex;align-items:center;gap:6px;padding:7px 0;border:0;background:transparent;
    color:var(--brand);font:inherit;font-weight:850;cursor:pointer;text-decoration:none
}
.text-button:hover,.text-button:focus-visible{text-decoration:underline;outline:none}
.status-pill{
    display:inline-flex;align-items:center;gap:7px;width:max-content;max-width:100%;padding:6px 9px;
    border:1px solid var(--line);border-radius:999px;background:var(--surface-2);color:var(--text);
    font-size:11px;font-weight:850;line-height:1.1;white-space:nowrap
}
.status-pill>span{width:7px;height:7px;border-radius:50%;background:var(--muted);flex:0 0 7px}
.status-pill.is-success{background:#e1f7ed;border-color:#bfead7;color:#096a49}.status-pill.is-success>span{background:#10a66f}
.status-pill.is-pending{background:#edf2ff;border-color:#d7e1ff;color:#36568f}.status-pill.is-pending>span{background:#6688d8}
.status-pill.is-warning{background:#fff6dd;border-color:#f1dfae;color:#8a6207}.status-pill.is-warning>span{background:#e2a722}
.status-pill.is-danger{background:#ffeaee;border-color:#ffc7d1;color:#a13048}.status-pill.is-danger>span{background:#e04f70}
html:not([data-theme=light]) .status-pill.is-success{background:#123d31;border-color:#205948;color:#a9efd6}
html:not([data-theme=light]) .status-pill.is-pending{background:#172846;border-color:#2d4166;color:#bfd1ff}
html:not([data-theme=light]) .status-pill.is-warning{background:#443516;border-color:#654f22;color:#ffe7a4}
html:not([data-theme=light]) .status-pill.is-danger{background:#471c28;border-color:#6d2b3a;color:#ffc4d0}

/* Shared professional dialogs for create/add flows. */
.platform-modal{
    width:min(660px,calc(100vw - 30px));max-width:none;max-height:min(90vh,900px);padding:0;border:0;
    border-radius:22px;background:transparent;color:var(--text);overflow:visible
}
.platform-modal.platform-modal-wide{width:min(880px,calc(100vw - 30px))}
.platform-modal::backdrop{background:rgba(7,10,18,.64);backdrop-filter:blur(5px)}
.platform-modal-card{
    display:grid;gap:16px;max-height:min(90vh,900px);overflow:auto;padding:24px;border:1px solid var(--line);
    border-radius:22px;background:var(--surface);box-shadow:0 28px 90px rgba(0,0,0,.32)
}
.platform-modal-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding-bottom:13px;border-bottom:1px solid var(--line)}
.platform-modal-head h2{margin:3px 0 0;font-size:26px;letter-spacing:-.02em}.platform-modal-head p{margin:6px 0 0;max-width:620px}
.platform-modal-actions{display:flex;justify-content:flex-end;align-items:center;gap:10px;padding-top:14px;border-top:1px solid var(--line)}
.platform-modal-card>.field:first-of-type{margin-top:2px}
.platform-modal-card .quiz-editor-question{background:var(--surface-2)}
.quiz-create-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:8px 0 2px}

/* Course management list. */
.manage-courses-heading{align-items:flex-end}
.manage-course-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:18px}
.manage-course-summary>div{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.manage-course-summary span{color:var(--muted);font-size:12px;font-weight:750}.manage-course-summary strong{grid-row:1/3;grid-column:2;font-size:25px;line-height:1}.manage-course-summary small{color:var(--muted);font-size:10px}
.manage-course-table-panel{padding:0;overflow:visible}.manage-course-table-heading{padding:20px 20px 8px;margin:0}.manage-course-table-panel .table-scroll{overflow-x:auto;overflow-y:visible;padding:0 10px 10px}
.manage-course-table{min-width:1040px}.manage-course-table th{padding-top:11px;padding-bottom:11px}.manage-course-table td{vertical-align:middle;padding:14px 10px}
.manage-course-row{transition:background .16s ease}.manage-course-row:hover{background:color-mix(in srgb,var(--brand) 3.5%,var(--surface))}
.manage-course-main-cell{min-width:310px}.manage-course-identity{display:grid;grid-template-columns:82px minmax(0,1fr);align-items:center;gap:13px}
.manage-course-thumb{display:block;width:82px;aspect-ratio:16/10;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface-2)}
.manage-course-thumb img{width:100%;height:100%;object-fit:cover}.manage-course-thumb>div{display:grid;place-items:center;width:100%;height:100%;color:var(--brand)}.manage-course-thumb .app-icon{width:26px;height:26px}
.manage-course-copy{display:grid;gap:2px;min-width:0}.manage-course-title{font-weight:900;text-decoration:none;line-height:1.3}.manage-course-title:hover{color:var(--brand)}.manage-course-copy>span,.manage-course-copy>small{color:var(--muted);font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manage-course-access{display:grid;gap:2px}.manage-course-access small{color:var(--muted);font-size:11px}.manage-course-note{display:block;max-width:220px;margin-top:6px;color:var(--muted);font-size:11px;line-height:1.35}
.manage-course-review-button{margin-top:4px;font-size:11px}.manage-course-content-count{display:grid;gap:1px;min-width:66px}.manage-course-content-count strong{font-size:18px}.manage-course-content-count span,.manage-course-content-count small{color:var(--muted);font-size:11px}
.manage-course-actions-head{text-align:right!important}.manage-course-actions-cell{white-space:nowrap;text-align:right}.manage-course-action-wrap{display:flex;align-items:center;justify-content:flex-end;gap:7px}
.manage-course-actions-cell .row-actions{flex:0 0 auto}.manage-course-actions-cell .row-actions-menu{z-index:250}
.course-review-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.course-review-summary>div{display:grid;gap:4px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.course-review-summary span{color:var(--muted);font-size:11px}.course-review-modal-actions{display:grid;gap:14px}.course-review-change-form{padding-top:14px;border-top:1px solid var(--line)}

/* Course editor actions and builders. */
.course-editor-heading{align-items:flex-end}.course-editor-heading>div:first-child{display:grid;gap:4px}.editor-back-link{display:inline-flex;align-items:center;gap:7px;width:max-content;margin-bottom:8px;color:var(--muted);font-size:12px;font-weight:800;text-decoration:none}.editor-back-link:hover{color:var(--brand)}
.course-editor-heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.course-builder-panel{display:grid;gap:18px}.course-builder-head{align-items:flex-end;margin-bottom:0}.course-builder-head h2{margin:2px 0 0}.course-builder-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.course-builder-empty{padding:34px 20px;border:1px dashed var(--line);border-radius:14px;background:var(--surface-2)}
.activity-admin-title>.button{margin-left:auto}.activity-admin-title{gap:12px}.video-library-panel>.section-head{margin-bottom:18px}

/* Professional public course page inspired by mature course marketplaces. */
.course-detail-page{position:relative;isolation:isolate;min-height:100vh;padding-bottom:28px}.course-detail-hero-band{position:absolute;z-index:-1;inset:0 0 auto;height:510px;background:radial-gradient(circle at 12% 10%,rgba(125,92,255,.23),transparent 30%),radial-gradient(circle at 76% 20%,rgba(41,212,168,.12),transparent 24%),linear-gradient(120deg,#111321,#1c1b31 58%,#101923)}
.course-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:42px;align-items:start}.course-detail-main{min-width:0}.course-detail-hero-copy{min-height:510px;padding:32px 0 36px;color:#f7f8ff;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.course-breadcrumb{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-bottom:17px;font-size:12px;font-weight:750;color:#bfc8dc}.course-breadcrumb a{color:#d5d9ff;text-decoration:none}.course-breadcrumb a:hover{text-decoration:underline}.course-detail-badges{display:flex;gap:7px;flex-wrap:wrap}.course-detail-badges .badge:not(.free):not(.paid){background:#ffffff17;color:#eef1ff;border:1px solid #ffffff22}.course-level-badge{background:#ffffff12!important;color:#fff!important}
.course-detail-hero-copy h1{max-width:860px;margin:13px 0 12px;font-size:clamp(34px,4.7vw,55px);line-height:1.04;letter-spacing:-.04em}.course-detail-summary{max-width:800px;margin:0 0 17px;color:#c9d0df;font-size:18px;line-height:1.55}.course-detail-social-proof{display:flex;align-items:center;gap:14px;flex-wrap:wrap;color:#d6dbea;font-size:13px}.course-detail-rating{display:flex;align-items:center;gap:6px}.course-detail-rating>span{color:#f6c858;letter-spacing:.08em}.course-detail-rating>a{color:#c6bbff}.course-detail-rating.is-empty{color:#d6dbea}.course-detail-meta-line{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin-top:12px;color:#aeb8cb;font-size:12px}.course-detail-meta-line strong{color:#fff}
.course-detail-content{display:grid;gap:26px;padding:34px 0 20px}.course-content-section{display:grid;gap:14px}.course-content-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.course-content-section-head h2{margin:2px 0 0;font-size:27px;letter-spacing:-.025em}.course-content-section-head p{margin:5px 0 0}.course-includes-panel{padding:23px;box-shadow:none}.course-includes-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:18px}.course-includes-grid>div{display:grid;grid-template-columns:34px auto;grid-template-rows:auto auto;align-items:center;gap:1px 10px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.course-include-icon{grid-row:1/3;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand);font-weight:900}.course-includes-grid strong{font-size:15px}.course-includes-grid span:last-child{color:var(--muted);font-size:10px}
.course-curriculum-head{align-items:flex-end}.course-detail-curriculum{gap:8px}.course-detail-curriculum .module{border-radius:10px;box-shadow:none}.course-detail-curriculum .curriculum-section-summary{display:grid;grid-template-columns:24px minmax(0,1fr) auto;gap:10px;padding:14px 16px;background:var(--surface-2);cursor:pointer;list-style:none}.course-detail-curriculum .curriculum-section-summary::-webkit-details-marker{display:none}.curriculum-chevron{display:grid;place-items:center;width:22px;height:22px;transition:transform .18s ease;font-weight:900}.curriculum-section[open] .curriculum-chevron{transform:rotate(180deg)}.curriculum-section-title{display:grid;gap:2px}.curriculum-section-title strong{font-size:15px}.curriculum-section-title small{color:var(--muted);font-size:11px}.course-detail-curriculum .curriculum-section-meta{align-self:center;white-space:nowrap}.course-detail-curriculum .lesson-row{min-height:46px}.lesson-row-icon{width:22px;text-align:center;color:var(--muted);font-size:12px}.lesson-row.is-locked{color:var(--muted)}
.course-detail-description{margin-top:0;padding:24px;box-shadow:none}.course-description-copy{line-height:1.75}.course-description-copy>*:first-child{margin-top:0}.course-description-copy>*:last-child{margin-bottom:0}.course-instructor-panel{box-shadow:none}.course-instructor-profile{display:grid;grid-template-columns:88px minmax(0,1fr);gap:18px;align-items:start;margin-top:15px}.course-instructor-avatar{display:grid;place-items:center;width:88px;height:88px;border-radius:50%;background:linear-gradient(135deg,var(--brand),#a65cff);color:#fff;font-size:32px;font-weight:900}.course-instructor-profile p{margin:7px 0 12px;line-height:1.65}.course-instructor-stats{display:flex;gap:8px;flex-wrap:wrap}.course-instructor-stats span{padding:6px 8px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:11px}.course-detail-reviews{box-shadow:none;margin:0}
.course-instructor-avatar{overflow:hidden;text-decoration:none;transition:transform .18s ease,box-shadow .18s ease}.course-instructor-avatar:hover,.course-instructor-avatar:focus-visible{transform:translateY(-2px);box-shadow:0 10px 28px color-mix(in srgb,var(--brand) 30%,transparent);outline:2px solid var(--brand);outline-offset:3px}.course-instructor-avatar img{width:100%;height:100%;object-fit:cover}.course-instructor-name{text-decoration:none}.course-instructor-name:hover,.course-instructor-name:focus-visible{color:var(--brand)}.course-instructor-link{display:inline-flex;margin-top:12px}
.course-detail-sidebar{position:relative;min-width:0;padding-top:32px}.course-detail-purchase{position:static;top:auto;padding:0;overflow:hidden;border-radius:16px;box-shadow:0 20px 60px rgba(4,7,14,.28)}.course-purchase-media{position:relative;aspect-ratio:16/9;background:#0c0f17;overflow:hidden}.course-purchase-media>img{width:100%;height:100%;object-fit:cover}.course-purchase-media>.generic-thumbnail{height:100%}.course-purchase-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 45%,rgba(0,0,0,.6))}.course-preview-play{position:absolute;z-index:2;inset:0;display:grid;place-items:center;align-content:center;gap:8px;padding:0;border:0;background:transparent;color:#fff;font:inherit;text-decoration:none;text-shadow:0 2px 10px #000;cursor:pointer;appearance:none}.course-preview-play>span{display:grid;place-items:center;width:52px;height:52px;padding-left:4px;border-radius:50%;background:#fff;color:#161925;box-shadow:0 8px 28px rgba(0,0,0,.28);text-shadow:none}.course-preview-play strong{font-size:12px}.course-purchase-body{padding:20px}.course-purchase-body .price{margin:5px 0 3px;font-size:29px}.course-purchase-subtext{margin:0 0 12px;color:var(--muted);font-size:12px}.course-purchase-actions{display:grid;gap:8px;margin:13px 0}.course-purchase-actions form,.course-purchase-actions .button{width:100%;margin:0}.course-purchase-includes{display:grid;gap:8px;padding-top:15px;margin-top:13px;border-top:1px solid var(--line);font-size:12px}.course-purchase-includes>strong{margin-bottom:2px}.course-purchase-includes>span{display:flex;gap:8px;color:var(--muted)}.course-purchase-includes b{color:var(--brand-2)}.course-payment-methods{display:grid;gap:7px;padding-top:14px;margin-top:14px;border-top:1px solid var(--line)}.course-payment-methods small{color:var(--muted)}.course-payment-methods>div{display:flex;gap:5px;flex-wrap:wrap}.course-detail-activity-card{position:static;margin-top:16px;box-shadow:none}

@media(max-width:1120px){
    .manage-course-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
    .course-detail-layout{grid-template-columns:minmax(0,1fr) 320px;gap:28px}
    .course-includes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
    .course-detail-hero-band{height:540px}.course-detail-layout{grid-template-columns:1fr}.course-detail-hero-copy{min-height:540px;padding-right:0}.course-detail-sidebar{padding-top:0;order:0}.course-detail-purchase{position:relative;top:auto;margin-top:-72px}.course-detail-activity-card{margin-bottom:8px}.course-detail-main{display:contents}.course-detail-hero-copy{grid-row:1}.course-detail-sidebar{grid-row:2}.course-detail-content{grid-row:3}.course-content-section-head{align-items:flex-start}.manage-course-action-wrap{justify-content:flex-start}
}
@media(max-width:680px){
    .platform-modal-card{padding:18px}.platform-modal-actions{display:grid;grid-template-columns:1fr 1fr}.platform-modal-actions .button{width:100%}.platform-modal.platform-modal-wide{width:min(calc(100% - 18px),880px)}
    .manage-course-summary{grid-template-columns:1fr 1fr}.manage-course-table{min-width:0}.manage-course-table thead{display:none}.manage-course-table tbody{display:grid;gap:12px}.manage-course-table tr.manage-course-row{display:grid;grid-template-columns:1fr 1fr;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.manage-course-table tr.manage-course-row td{display:block;padding:7px 0;border:0}.manage-course-main-cell{grid-column:1/-1;min-width:0}.manage-course-identity{grid-template-columns:74px 1fr}.manage-course-thumb{width:74px}.manage-course-approval-cell{grid-column:1/-1}.manage-course-actions-cell{grid-column:1/-1;display:block!important;padding-top:10px!important;border-top:1px solid var(--line)!important}.manage-course-action-wrap{justify-content:flex-start}.manage-course-table-panel .table-scroll{overflow:visible}.course-review-summary{grid-template-columns:1fr}.course-editor-heading-actions{justify-content:flex-start}.course-builder-head{align-items:flex-start}.course-builder-actions{justify-content:flex-start}.activity-admin-title{align-items:center}.activity-admin-title>.button{margin-left:auto}
    .course-detail-hero-band{height:580px}.course-detail-hero-copy{min-height:580px;padding-top:24px}.course-detail-hero-copy h1{font-size:36px}.course-detail-summary{font-size:16px}.course-detail-social-proof,.course-detail-meta-line{gap:9px 13px}.course-detail-purchase{margin-top:-54px}.course-includes-grid{grid-template-columns:1fr 1fr}.course-detail-curriculum .curriculum-section-summary{grid-template-columns:22px 1fr}.course-detail-curriculum .curriculum-section-meta{grid-column:2;font-size:10px}.course-instructor-profile{grid-template-columns:64px 1fr}.course-instructor-avatar{width:64px;height:64px;font-size:24px}
}
@media(max-width:460px){
    .manage-course-summary{grid-template-columns:1fr}.course-includes-grid{grid-template-columns:1fr}.course-detail-hero-band{height:615px}.course-detail-hero-copy{min-height:615px}.course-detail-badges{gap:5px}.course-content-section-head{display:grid}.course-curriculum-head .text-button{justify-self:start}.platform-modal-actions{grid-template-columns:1fr}
}

/* --------------------------------------------------------------------------
   Ajustes visuales QA 2026-08-20: currículo, home y carrito en header
   -------------------------------------------------------------------------- */
/* El currículo se contrae al pulsar el título; no necesita una flecha extra. */
.course-detail-curriculum .curriculum-section-summary{grid-template-columns:minmax(0,1fr) auto}
.course-detail-curriculum .curriculum-chevron{display:none!important}
.lesson-lock-icon{display:grid;place-items:center;color:var(--muted)}
.lesson-lock-icon .app-icon{width:15px;height:15px;stroke-width:2}

/* Evita que el componente de métricas con barra de Configuración convierta
   los títulos de tarjetas administrativas en una barra gris. */
.agreement-admin-summary .metric-card>span,
.user-admin-metrics .metric-card>span{height:auto;overflow:visible;border-radius:0;background:transparent;color:var(--muted);font-size:12px;font-weight:800;letter-spacing:.02em}
.agreement-admin-summary .metric-card,
.user-admin-metrics .metric-card{align-content:start;min-height:132px}

/* Biblioteca destacada estilo shelf: una tarjeta principal y vistas parciales
   de la anterior/siguiente, como una biblioteca multimedia. */
.featured-course-library{position:relative;overflow:hidden;padding:42px 0 20px;background:radial-gradient(circle at 13% 12%,color-mix(in srgb,var(--brand) 19%,transparent),transparent 34%),radial-gradient(circle at 84% 20%,color-mix(in srgb,var(--brand-2) 14%,transparent),transparent 30%),linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 72%,var(--bg)),var(--bg))}
.featured-library-viewport{width:100%;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.featured-library-viewport::-webkit-scrollbar{display:none}
.featured-library-track{display:flex;gap:22px;width:max-content;padding:4px max(22px,calc((100vw - 1240px)/2)) 20px}
.featured-library-card{flex:0 0 min(1080px,calc(100vw - 170px));min-height:360px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);overflow:hidden;scroll-snap-align:center;border:1px solid color-mix(in srgb,var(--line) 84%,transparent);border-radius:28px;background:color-mix(in srgb,var(--surface) 94%,transparent);box-shadow:0 24px 70px rgba(18,26,48,.14)}
.featured-library-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:42px 46px;min-width:0}
.featured-library-badges{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.featured-library-badges .eyebrow{margin-right:3px}
.featured-library-copy h1{max-width:660px;margin:14px 0 12px;font-size:clamp(36px,4.4vw,58px);line-height:1.02;letter-spacing:-.045em}
.featured-library-copy>p{max-width:650px;margin:0 0 16px;color:var(--muted);font-size:16px;line-height:1.6}
.featured-library-meta{display:flex;align-items:center;gap:13px;flex-wrap:wrap;margin-bottom:20px;color:var(--muted);font-size:12px}.featured-library-meta strong{color:var(--text);font-size:14px}
.featured-library-cover{position:relative;display:grid;place-items:center;min-height:100%;overflow:hidden;background:linear-gradient(135deg,var(--surface-2),var(--surface-3));text-decoration:none}
.featured-library-cover:after{content:"";position:absolute;inset:0;box-shadow:inset 1px 0 color-mix(in srgb,var(--line) 75%,transparent);pointer-events:none}
.featured-library-cover img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}.featured-library-card:hover .featured-library-cover img{transform:scale(1.025)}
.featured-library-fallback{display:grid;place-items:center;align-content:center;gap:8px;width:100%;height:100%;min-height:360px;background:radial-gradient(circle at 50% 38%,color-mix(in srgb,var(--brand) 22%,transparent),transparent 30%),linear-gradient(145deg,var(--surface-2),var(--surface));color:var(--brand)}
.featured-library-fallback span{font-size:78px;font-weight:950;letter-spacing:-.08em}.featured-library-fallback small{color:var(--muted);font-size:11px;font-weight:850;letter-spacing:.16em}
.featured-library-controls{display:flex;align-items:center;justify-content:center;gap:14px;min-height:46px;margin-top:2px}
.featured-library-controls>button{display:grid;place-items:center;width:38px;height:38px;padding:0;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);font-size:24px;line-height:1;cursor:pointer;box-shadow:0 8px 22px rgba(18,26,48,.08)}
.featured-library-controls>button:hover,.featured-library-controls>button:focus-visible{border-color:var(--brand);outline:none}
.featured-library-dots{display:flex;align-items:center;gap:7px}.featured-library-dots button{width:7px;height:7px;padding:0;border:0;border-radius:99px;background:color-mix(in srgb,var(--muted) 38%,transparent);cursor:pointer;transition:width .16s ease,background .16s ease}.featured-library-dots button[aria-current="true"]{width:22px;background:var(--brand)}

/* Carrito integrado al topbar: siempre visible, sin botón flotante sobre el curso. */
.header-cart{position:relative;display:inline-flex;align-items:center;gap:7px;height:38px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:var(--surface-2);color:var(--text);text-decoration:none;font-size:12px;font-weight:800;transition:border-color .16s ease,background .16s ease}
.header-cart:hover,.header-cart:focus-visible,.header-cart.is-active{border-color:color-mix(in srgb,var(--brand) 65%,var(--line));background:color-mix(in srgb,var(--brand) 7%,var(--surface-2));outline:none}
.header-cart .app-icon{width:18px;height:18px;color:var(--brand)}
.header-cart-count{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:999px;background:var(--brand);color:#fff;font-size:10px;line-height:1}
.header-cart-label{white-space:nowrap}
.back-to-top{bottom:24px}

@media(max-width:900px){
  .featured-library-card{flex-basis:calc(100vw - 76px);grid-template-columns:minmax(0,1fr) minmax(280px,.8fr)}
  .featured-library-copy{padding:34px}.featured-library-copy h1{font-size:clamp(32px,5vw,46px)}
}
@media(max-width:680px){
  .featured-course-library{padding-top:24px}.featured-library-track{gap:12px;padding-left:17px;padding-right:17px}.featured-library-card{flex-basis:calc(100vw - 34px);grid-template-columns:1fr;min-height:0;border-radius:20px}.featured-library-copy{order:2;padding:24px}.featured-library-copy h1{font-size:34px}.featured-library-cover{order:1;min-height:220px;aspect-ratio:16/9}.featured-library-fallback{min-height:220px}.featured-library-controls{margin-top:0}.featured-library-dots{max-width:55vw;overflow:hidden}
  .header-cart{width:38px;padding:0;justify-content:center}.header-cart-label{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.header-cart-count{position:absolute;right:-6px;top:-6px;min-width:18px;height:18px;font-size:9px}
}

/* --------------------------------------------------------------------------
   Ajuste QA 2026-08-20 · Carrusel home tipo cover-flow + pagos sin paginación
   numérica visible. Mantiene el enlace rel=next para scroll infinito.
   -------------------------------------------------------------------------- */
.featured-course-library{
    padding:34px 0 16px;
    background:
        radial-gradient(circle at 18% 20%,color-mix(in srgb,var(--brand) 15%,transparent),transparent 28%),
        radial-gradient(circle at 82% 18%,color-mix(in srgb,var(--brand-2) 13%,transparent),transparent 30%),
        linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 68%,var(--bg)),var(--bg));
}
.featured-library-stage{
    position:relative;
    width:100%;
    min-height:430px;
    display:grid;
    align-items:center;
}
.featured-library-viewport{
    position:relative;
    width:100%;
    height:410px;
    overflow:hidden;
    outline:none;
    touch-action:pan-y;
}
.featured-library-viewport:focus-visible{box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--brand) 48%,transparent)}
.featured-library-track{
    position:relative;
    width:100%;
    height:100%;
    padding:0;
}
.featured-library-card{
    --carousel-offset:0;
    position:absolute;
    left:50%;
    top:50%;
    width:clamp(270px,23vw,390px);
    height:clamp(300px,25vw,370px);
    min-height:0;
    display:block;
    overflow:hidden;
    border:1px solid color-mix(in srgb,var(--line) 86%,transparent);
    border-radius:22px;
    background:var(--surface);
    box-shadow:0 18px 48px rgba(18,26,48,.15);
    transform:
        translate(-50%,-50%)
        translateX(calc(var(--carousel-offset) * clamp(205px,22vw,330px)))
        scale(.72);
    transform-origin:center;
    opacity:.82;
    transition:transform .38s cubic-bezier(.2,.75,.25,1),opacity .32s ease,filter .32s ease,box-shadow .32s ease;
    will-change:transform;
}
.featured-library-card[data-carousel-position="-1"],
.featured-library-card[data-carousel-position="1"]{
    transform:
        translate(-50%,-50%)
        translateX(calc(var(--carousel-offset) * clamp(205px,22vw,330px)))
        scale(.88);
    opacity:.94;
}
.featured-library-card[data-carousel-position="0"]{
    transform:translate(-50%,-50%) scale(1.07);
    opacity:1;
    box-shadow:0 28px 70px rgba(18,26,48,.22);
}
.featured-library-card[data-carousel-position="far"]{
    opacity:0;
    pointer-events:none;
    transform:
        translate(-50%,-50%)
        translateX(calc(var(--carousel-offset) * clamp(205px,22vw,330px)))
        scale(.58);
}
.featured-library-card-link{position:relative;display:block;width:100%;height:100%;overflow:hidden;text-decoration:none;color:#fff}
.featured-library-media{position:absolute;inset:0;background:linear-gradient(145deg,#34305e,#172031)}
.featured-library-media img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease,filter .35s ease}
.featured-library-card:hover .featured-library-media img{transform:scale(1.035)}
.featured-library-fallback{min-height:0;height:100%;background:radial-gradient(circle at 50% 36%,color-mix(in srgb,var(--brand) 35%,transparent),transparent 32%),linear-gradient(145deg,#26213f,#141a29);color:#fff}
.featured-library-fallback span{font-size:70px;color:color-mix(in srgb,var(--brand) 78%,#fff)}
.featured-library-fallback small{color:#d7dbea}
.featured-library-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,11,18,.04) 18%,rgba(8,11,18,.38) 54%,rgba(8,11,18,.92) 100%)}
.featured-library-content{position:absolute;left:0;right:0;bottom:0;display:grid;gap:8px;padding:24px 24px 22px;text-shadow:0 2px 15px rgba(0,0,0,.35)}
.featured-library-content h2{margin:0;font-size:clamp(22px,2.1vw,31px);line-height:1.04;letter-spacing:-.035em;color:#fff}
.featured-library-content>p{margin:0;color:#eef2ff;font-size:12px;line-height:1.45;opacity:.9;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.featured-library-badges{display:flex;gap:7px}.featured-library-badges .badge{background:rgba(255,255,255,.9);color:#161b2b;box-shadow:none;text-shadow:none}
.featured-library-badges .badge.free{background:#c9f5df;color:#10583d}.featured-library-badges .badge.paid{background:#fff0bd;color:#5e4810}
.featured-library-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0;color:#e3e9f5;font-size:11px}
.featured-library-meta strong{color:#fff;font-size:13px}
.featured-library-cta{display:inline-flex;align-items:center;gap:6px;width:max-content;margin-top:2px;padding:7px 10px;border:1px solid rgba(255,255,255,.28);border-radius:9px;background:rgba(255,255,255,.13);font-size:11px;font-weight:850;color:#fff;backdrop-filter:blur(8px)}
.featured-library-card:not([data-carousel-active]) .featured-library-content>p,
.featured-library-card:not([data-carousel-active]) .featured-library-meta,
.featured-library-card:not([data-carousel-active]) .featured-library-cta{opacity:0;max-height:0;margin:0;padding-top:0;padding-bottom:0;overflow:hidden}
.featured-library-card:not([data-carousel-active]) .featured-library-content{padding:19px}
.featured-library-card:not([data-carousel-active]) .featured-library-content h2{font-size:20px}
.featured-library-nav{position:absolute;z-index:30;top:50%;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid color-mix(in srgb,var(--line) 88%,transparent);border-radius:50%;background:color-mix(in srgb,var(--surface) 94%,transparent);color:var(--text);font-size:26px;line-height:1;cursor:pointer;box-shadow:0 10px 30px rgba(18,26,48,.14);transform:translateY(-50%);backdrop-filter:blur(12px)}
.featured-library-nav:hover,.featured-library-nav:focus-visible{border-color:var(--brand);color:var(--brand);outline:none}
.featured-library-nav-prev{left:max(18px,calc((100vw - 1320px)/2))}.featured-library-nav-next{right:max(18px,calc((100vw - 1320px)/2))}
.featured-library-controls{min-height:26px;margin-top:-3px}.featured-library-dots{gap:6px}.featured-library-dots button{width:6px;height:6px}.featured-library-dots button[aria-current="true"]{width:19px}

/* En pagos se usa scroll infinito; ocultamos la paginación numérica de Laravel
   pero conservamos un sentinel real para el IntersectionObserver. */
.infinite-pagination-scroll{position:relative;display:grid;place-items:center;min-height:20px;margin:14px 0 2px;padding:0}
.infinite-scroll-hint{color:var(--muted);font-size:11px;line-height:1.2;opacity:.72}
[data-infinite-scroll="mis-pagos"] .infinite-skeleton,
[data-infinite-scroll="pagos-tutor"] .infinite-skeleton,
[data-infinite-scroll="pagos-admin"] .infinite-skeleton{margin:10px 14px 16px}
[data-infinite-scroll="mis-pagos"] .infinite-skeleton i,
[data-infinite-scroll="pagos-tutor"] .infinite-skeleton i,
[data-infinite-scroll="pagos-admin"] .infinite-skeleton i{height:48px;border-radius:10px}

@media(max-width:1050px){
    .featured-library-stage{min-height:390px}.featured-library-viewport{height:370px}
    .featured-library-card{width:clamp(245px,30vw,335px);height:320px;transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(170px,27vw,255px))) scale(.7)}
    .featured-library-card[data-carousel-position="-1"],.featured-library-card[data-carousel-position="1"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(170px,27vw,255px))) scale(.86)}
    .featured-library-card[data-carousel-position="0"]{transform:translate(-50%,-50%) scale(1.05)}
    .featured-library-card[data-carousel-position="far"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(170px,27vw,255px))) scale(.55)}
}
@media(max-width:680px){
    .featured-course-library{padding:20px 0 12px}.featured-library-stage{min-height:340px}.featured-library-viewport{height:325px}
    .featured-library-card{width:min(72vw,300px);height:288px;border-radius:18px;transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * 62vw)) scale(.72)}
    .featured-library-card[data-carousel-position="-1"],.featured-library-card[data-carousel-position="1"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * 62vw)) scale(.82);opacity:.76}
    .featured-library-card[data-carousel-position="0"]{transform:translate(-50%,-50%) scale(1);opacity:1}
    .featured-library-card[data-carousel-position="-2"],.featured-library-card[data-carousel-position="2"],.featured-library-card[data-carousel-position="far"]{opacity:0;pointer-events:none}
    .featured-library-content{padding:20px}.featured-library-content h2{font-size:24px}.featured-library-content>p{font-size:11px}
    .featured-library-nav{width:34px;height:34px;font-size:22px}.featured-library-nav-prev{left:10px}.featured-library-nav-next{right:10px}
}

/* =========================================================
   Revisiones académicas — navegación jerárquica
   Curso > estudiante > segmento/video > actividad
   ========================================================= */
.review-page-head{align-items:center}.review-page-total{display:flex;align-items:baseline;gap:8px;padding:10px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.review-page-total strong{font-size:24px;line-height:1}.review-page-total span{color:var(--muted);font-size:12px;font-weight:750}
.review-filter-bar{display:grid;grid-template-columns:minmax(220px,1.2fr) minmax(240px,1.2fr) minmax(190px,.8fr) auto;gap:14px;align-items:end;margin-bottom:22px;padding:18px}
.review-filter-bar .field{margin:0}.review-filter-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.review-course-group,.review-student-group,.review-segment-group,.review-activity-card{overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.review-course-group{margin:0 0 18px;border-radius:18px;box-shadow:0 12px 35px color-mix(in srgb,var(--text) 6%,transparent)}
.review-course-summary,.review-student-summary,.review-segment-summary,.review-activity-card>summary{list-style:none;cursor:pointer;user-select:none}
.review-course-summary::-webkit-details-marker,.review-student-summary::-webkit-details-marker,.review-segment-summary::-webkit-details-marker,.review-activity-card>summary::-webkit-details-marker{display:none}
.review-course-summary::marker,.review-student-summary::marker,.review-segment-summary::marker,.review-activity-card>summary::marker{content:""}
.review-course-summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:18px 20px;background:linear-gradient(135deg,color-mix(in srgb,var(--brand) 8%,var(--surface)),var(--surface))}
.review-course-group[open]>.review-course-summary{border-bottom:1px solid var(--line)}
.review-summary-main{display:flex;align-items:center;gap:12px;min-width:0}.review-summary-main>div{display:grid;gap:2px;min-width:0}.review-summary-main strong{font-size:16px}.review-summary-main small{color:var(--muted)}
.review-summary-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--brand) 14%,var(--surface));color:var(--brand)}
.review-summary-icon svg{width:20px;height:20px}.review-summary-counts{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.review-summary-counts>span{display:inline-flex;align-items:center;gap:5px;padding:7px 10px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:12px;white-space:nowrap}.review-summary-counts b{color:var(--text)}
.review-summary-counts.compact>span{padding:5px 8px}
.review-course-content{display:grid;gap:12px;padding:14px}
.review-student-group{border-radius:14px;background:var(--surface-2)}.review-student-group[open]{background:var(--surface)}
.review-student-summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 15px}.review-student-group[open]>.review-student-summary{border-bottom:1px solid var(--line)}
.review-student-avatar{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(135deg,var(--brand),color-mix(in srgb,var(--brand) 60%,#fff));color:#fff;font-size:13px;font-weight:900}
.review-student-content{display:grid;gap:10px;padding:12px}
.review-segment-group{border-radius:12px;background:var(--surface)}.review-segment-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 14px}.review-segment-group[open]>.review-segment-summary{border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--brand) 4%,var(--surface))}
.review-segment-summary>div{display:grid;gap:2px}.review-segment-summary strong{font-size:14px}.review-segment-summary small{color:var(--muted);font-size:12px}.review-segment-label{color:var(--brand);font-size:10px;font-weight:850;letter-spacing:.1em;text-transform:uppercase}
.review-activity-list{display:grid;gap:9px;padding:10px}.review-activity-card{border-radius:11px;background:var(--surface-2)}.review-activity-card[open]{background:var(--surface)}
.review-activity-card>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:12px}.review-activity-card[open]>summary{border-bottom:1px solid var(--line)}
.review-activity-heading{display:flex;align-items:center;gap:10px;min-width:0}.review-activity-heading>div{display:grid;gap:2px}.review-activity-heading small{color:var(--muted);font-size:11px}
.review-activity-body{display:grid;grid-template-columns:minmax(0,.8fr) minmax(320px,1.2fr);gap:18px;padding:14px}.quiz-review-card .review-activity-body{grid-template-columns:1fr}.review-activity-body form{min-width:0}
.review-evidence-panel{display:grid;gap:10px;align-content:start}.review-evidence-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}.review-evidence-heading>strong{font-size:12px;color:var(--muted)}.review-evidence-item{display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);min-width:0}.review-evidence-item p{margin:0;white-space:pre-wrap;overflow-wrap:anywhere}.review-evidence-item>small{color:var(--muted)}.review-evidence-file{display:flex;align-items:center;gap:10px;min-width:0;color:var(--text);text-decoration:none}.review-evidence-file:hover strong{text-decoration:underline}.review-evidence-file .app-icon{width:22px;height:22px;flex:0 0 auto;color:var(--brand)}.review-evidence-file>span{display:grid;gap:2px;min-width:0}.review-evidence-file strong,.review-evidence-file small{overflow-wrap:anywhere}.review-evidence-file small{color:var(--muted)}.review-evidence-warning{display:grid;gap:3px;padding:11px 12px;border:1px solid color-mix(in srgb,#b26a00 36%,var(--line));border-radius:12px;background:color-mix(in srgb,#f59e0b 10%,var(--surface));color:var(--text)}.review-evidence-warning span{font-size:12px;color:var(--muted)}.quiz-response-summary{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:11px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.quiz-response-summary strong{margin-left:auto}.quiz-response-summary small{width:100%;color:var(--muted)}.quiz-response-summary.is-incomplete{border-color:color-mix(in srgb,#b26a00 36%,var(--line));background:color-mix(in srgb,#f59e0b 10%,var(--surface))}
.review-empty-state{display:flex;align-items:center;gap:14px}.review-empty-state h2,.review-empty-state p{margin:0}.review-empty-state .activity-type-icon{flex:0 0 auto}
.review-course-summary:focus-visible,.review-student-summary:focus-visible,.review-segment-summary:focus-visible,.review-activity-card>summary:focus-visible{outline:2px solid var(--brand);outline-offset:-2px}
.review-course-summary:after,.review-student-summary:after,.review-segment-summary:after,.review-activity-card>summary:after{content:"+";display:grid;place-items:center;flex:0 0 auto;width:24px;height:24px;border-radius:50%;border:1px solid var(--line);color:var(--brand);font-weight:900;margin-left:4px}
.review-course-group[open]>.review-course-summary:after,.review-student-group[open]>.review-student-summary:after,.review-segment-group[open]>.review-segment-summary:after,.review-activity-card[open]>summary:after{content:"−"}
.review-course-summary>.review-summary-counts,.review-student-summary>.review-summary-counts,.review-segment-summary>.badge,.review-activity-card>summary>.review-summary-status{margin-left:auto}

/* Todas las colecciones paginadas se presentan como carga incremental.
   Nunca se muestran los controles Previous/Next de Laravel. */
.infinite-pagination{overflow:hidden}.infinite-pagination nav{display:none!important}.infinite-pagination-scroll{min-height:24px;margin:12px 0 0}.infinite-scroll-hint{display:inline-flex;align-items:center;gap:6px}.infinite-scroll-hint:not(.is-complete):before{content:"";width:5px;height:5px;border-radius:50%;background:var(--brand);box-shadow:9px 0 0 color-mix(in srgb,var(--brand) 65%,transparent),18px 0 0 color-mix(in srgb,var(--brand) 35%,transparent);margin-right:18px}.infinite-scroll-hint.is-complete{opacity:.48}
.table-panel .infinite-skeleton,.panel[data-infinite-scroll] .infinite-skeleton{margin:10px 12px 14px}.table-panel .infinite-skeleton i,.panel[data-infinite-scroll] .infinite-skeleton i{height:54px;border-radius:10px}

@media(max-width:980px){
    .review-filter-bar{grid-template-columns:1fr 1fr}.review-filter-actions{justify-content:flex-start}
    .review-activity-body{grid-template-columns:1fr}
}
@media(max-width:680px){
    .review-filter-bar{grid-template-columns:1fr}.review-filter-actions{display:grid;grid-template-columns:1fr 1fr}.review-filter-actions .button{width:100%}
    .review-course-summary,.review-student-summary,.review-segment-summary,.review-activity-card>summary{align-items:flex-start;flex-wrap:wrap}.review-summary-counts{width:100%;justify-content:flex-start}.review-course-summary>.review-summary-counts,.review-student-summary>.review-summary-counts,.review-segment-summary>.badge,.review-activity-card>summary>.review-summary-status{margin-left:52px}.review-course-summary:after,.review-student-summary:after,.review-segment-summary:after,.review-activity-card>summary:after{position:absolute;right:14px}.review-course-summary,.review-student-summary,.review-segment-summary,.review-activity-card>summary{position:relative;padding-right:48px}
}

/* ========================================================================
   QA polish 2026-08-21 · coverflow, review inbox, analytics, participants
   ======================================================================== */

/* Home cover-flow: clearer depth, breathing room and reliable click targets. */
.featured-library-stage{perspective:1500px;perspective-origin:50% 44%;min-height:470px}
.featured-library-viewport{height:448px;overflow:visible;padding-inline:72px}
.featured-library-track{transform-style:preserve-3d}
.featured-library-card{
    width:clamp(260px,22vw,372px);
    height:clamp(315px,25vw,382px);
    cursor:pointer;
    pointer-events:auto;
    transform:
        translate(-50%,-50%)
        translateX(calc(var(--carousel-offset) * clamp(285px,27vw,405px)))
        translateY(calc(var(--carousel-depth) * 13px))
        translateZ(calc(var(--carousel-depth) * -44px))
        scale(.70);
    opacity:.68;
    filter:saturate(.78) brightness(.76);
    box-shadow:
        0 18px 34px rgba(18,26,48,.16),
        0 42px 0 -30px rgba(18,26,48,.18),
        0 54px 42px -38px rgba(18,26,48,.32);
    transition:transform .4s cubic-bezier(.2,.76,.24,1),opacity .32s ease,filter .32s ease,box-shadow .32s ease;
}
.featured-library-card[data-carousel-position="-2"],
.featured-library-card[data-carousel-position="2"]{
    transform:
        translate(-50%,-50%)
        translateX(calc(var(--carousel-offset) * clamp(285px,27vw,405px)))
        translateY(28px)
        translateZ(-88px)
        scale(.66);
    opacity:.55;
    filter:saturate(.66) brightness(.68);
}
.featured-library-card[data-carousel-position="-1"],
.featured-library-card[data-carousel-position="1"]{
    transform:
        translate(-50%,-50%)
        translateX(calc(var(--carousel-offset) * clamp(285px,27vw,405px)))
        translateY(15px)
        translateZ(-38px)
        scale(.84);
    opacity:.84;
    filter:saturate(.9) brightness(.84);
    box-shadow:0 22px 42px rgba(18,26,48,.19),0 46px 36px -36px rgba(18,26,48,.34);
}
.featured-library-card[data-carousel-position="0"]{
    transform:translate(-50%,-50%) translateY(-4px) translateZ(40px) scale(1.06);
    opacity:1;
    filter:none;
    box-shadow:0 34px 78px rgba(18,26,48,.28),0 58px 45px -42px rgba(18,26,48,.42);
}
.featured-library-card[data-carousel-position="far"]{pointer-events:none;opacity:0}
.featured-library-card-link{cursor:pointer}
.featured-library-card-link:focus-visible{outline:3px solid color-mix(in srgb,var(--brand) 72%,white);outline-offset:-5px;border-radius:20px}
.featured-library-card[data-carousel-position="0"] .featured-library-overlay{background:linear-gradient(180deg,rgba(8,11,18,.02) 10%,rgba(8,11,18,.26) 48%,rgba(8,11,18,.92) 100%)}
.featured-library-card:not([data-carousel-active]) .featured-library-overlay{background:linear-gradient(180deg,rgba(8,11,18,.10),rgba(8,11,18,.62) 100%)}
.featured-library-nav{top:46%}

/* Academic review inbox */
.review-page-total.has-pending{border-color:color-mix(in srgb,var(--warning,#d89a00) 45%,var(--line));background:color-mix(in srgb,#f5b700 8%,var(--surface))}
.review-inbox-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:16px}
.review-inbox-card{display:grid;gap:5px;padding:17px 18px;text-decoration:none;color:var(--text);min-height:116px;align-content:center}
.review-inbox-card>span{color:var(--muted);font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.055em}
.review-inbox-card>strong{font-size:30px;line-height:1;letter-spacing:-.04em}
.review-inbox-card>small{color:var(--muted);line-height:1.35}
.review-inbox-card.is-pending{border-color:color-mix(in srgb,#f0ad21 48%,var(--line));background:linear-gradient(145deg,color-mix(in srgb,#f0ad21 9%,var(--surface)),var(--surface));box-shadow:0 14px 32px rgba(18,26,48,.07)}
.review-inbox-card.is-pending:hover{transform:translateY(-1px);border-color:color-mix(in srgb,#f0ad21 70%,var(--line))}
.review-filter-bar{grid-template-columns:minmax(190px,1.15fr) minmax(210px,1.15fr) minmax(160px,.75fr) minmax(170px,.8fr) auto}
.review-pending-count{color:#7a5100!important;background:color-mix(in srgb,#f0ad21 18%,var(--surface))!important;border-color:color-mix(in srgb,#f0ad21 40%,var(--line))!important}

/* Analytics / platform metrics */
.metrics-dashboard-page{max-width:1320px}
.metrics-page-head{align-items:center}
.metrics-filter-bar{display:grid;grid-template-columns:150px minmax(160px,1fr) minmax(210px,1.2fr) minmax(170px,1fr) 110px auto;gap:12px;align-items:end;margin-bottom:14px;padding:18px}
.metrics-filter-bar .field{margin:0}
.metrics-filter-actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}
.metrics-period-strip{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;margin-bottom:28px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:var(--line)}
.metrics-period-strip>div{display:grid;gap:3px;padding:13px 16px;background:var(--surface)}
.metrics-period-strip span{font-size:11px;color:var(--muted);font-weight:750}
.metrics-period-strip strong{font-size:15px}
.metrics-dashboard-section{margin:26px 0}
.financial-metric-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.financial-metric-card{position:relative;display:grid;grid-template-columns:auto 1fr;grid-template-areas:"icon label" "icon value" "icon hint";column-gap:13px;align-items:center;min-height:146px;padding:20px;overflow:hidden}
.financial-metric-card:after{content:"";position:absolute;inset:auto -28px -45px auto;width:130px;height:130px;border-radius:50%;background:color-mix(in srgb,var(--brand) 8%,transparent);pointer-events:none}
.financial-metric-card .metric-icon{grid-area:icon;display:grid;place-items:center;width:42px;height:42px;border-radius:13px;background:var(--surface-2);color:var(--brand)}
.financial-metric-card .metric-icon .app-icon{width:21px;height:21px}
.financial-metric-card>span{grid-area:label;color:var(--muted);font-size:12px;font-weight:800}
.financial-metric-card>strong{grid-area:value;font-size:27px;line-height:1.05;letter-spacing:-.04em}
.financial-metric-card>small{grid-area:hint;color:var(--muted);line-height:1.35}
.financial-metric-card.is-success{border-color:color-mix(in srgb,#1aa56f 34%,var(--line))}.financial-metric-card.is-success .metric-icon{background:color-mix(in srgb,#1aa56f 13%,var(--surface));color:#147653}
.financial-metric-card.is-warning{border-color:color-mix(in srgb,#f0ad21 34%,var(--line))}.financial-metric-card.is-warning .metric-icon{background:color-mix(in srgb,#f0ad21 13%,var(--surface));color:#8a5b00}
.financial-metric-card.is-danger{border-color:color-mix(in srgb,var(--danger) 28%,var(--line))}.financial-metric-card.is-danger .metric-icon{background:color-mix(in srgb,var(--danger) 10%,var(--surface));color:var(--danger)}
.metrics-dashboard-two-col{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);gap:16px;margin:24px 0}
.metrics-chart-panel{min-width:0}
.daily-revenue-chart{height:220px;display:flex;align-items:flex-end;gap:4px;padding:20px 2px 2px;border-top:1px solid var(--line);overflow-x:auto;scrollbar-width:thin}
.daily-revenue-bar{flex:1 0 18px;min-width:18px;height:185px;display:grid;grid-template-rows:1fr auto;align-items:end;gap:5px}
.daily-revenue-bar i{display:block;min-height:3px;border-radius:5px 5px 2px 2px;background:linear-gradient(180deg,var(--brand),color-mix(in srgb,var(--brand-2) 75%,var(--brand)));transition:height .22s ease}
.daily-revenue-bar span{text-align:center;color:var(--muted);font-size:9px}
.payment-state-list{display:grid;gap:14px}
.payment-state-row{display:grid;gap:8px}
.payment-state-row>div{display:flex;justify-content:space-between;gap:10px;align-items:baseline}.payment-state-row small{color:var(--muted)}
.payment-state-row>span{height:7px;border-radius:99px;background:var(--surface-2);overflow:hidden}.payment-state-row>span i{display:block;height:100%;border-radius:inherit;background:var(--brand)}
.settlement-metric-grid,.operation-metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.settlement-metric-card,.operation-metric-card{display:grid;gap:7px;padding:18px}.settlement-metric-card>span,.operation-metric-card>span{font-size:12px;color:var(--muted);font-weight:800}.settlement-metric-card>strong,.operation-metric-card>strong{font-size:23px;letter-spacing:-.035em}.settlement-metric-card>small,.operation-metric-card>small{color:var(--muted)}
.metrics-ranking-list,.metrics-payment-list{display:grid;gap:0}
.metrics-ranking-row,.metrics-payment-row{display:grid;align-items:center;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}
.metrics-ranking-row{grid-template-columns:auto 1fr auto}.metrics-ranking-row:last-child,.metrics-payment-row:last-child{border-bottom:0}
.metrics-ranking-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:color-mix(in srgb,var(--brand) 12%,var(--surface-2));color:var(--brand);font-weight:900}
.metrics-ranking-row>div,.metrics-payment-row>div{display:grid;gap:2px}.metrics-ranking-row>div:last-child{text-align:right}.metrics-ranking-row small,.metrics-payment-row small{color:var(--muted)}
.metrics-payment-row{grid-template-columns:1fr auto}.metrics-payment-row>div:last-child{justify-items:end}.metrics-payment-row b{font-size:13px}

/* Participants */
.participant-table-panel{padding:0;overflow:hidden}.participant-table{margin:0}.participant-table td{vertical-align:middle}
.participant-cell{display:flex;align-items:center;gap:10px}.participant-cell>div{display:grid;gap:2px}.participant-cell small{color:var(--muted)}
.participant-avatar,.review-student-avatar{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:color-mix(in srgb,var(--brand) 12%,var(--surface-2));color:var(--brand);font-weight:900;flex:0 0 auto}
.participant-profile-page{max-width:1240px}.participant-profile-head{align-items:center}
.participant-overview-grid{display:grid;grid-template-columns:minmax(320px,.9fr) minmax(0,1.4fr);gap:16px;margin-bottom:16px}
.participant-identity-card{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start}.participant-profile-avatar{display:grid;place-items:center;width:64px;height:64px;border-radius:20px;background:linear-gradient(145deg,var(--brand),color-mix(in srgb,var(--brand-2) 70%,var(--brand)));color:#fff;font-size:26px;font-weight:950;box-shadow:0 12px 28px color-mix(in srgb,var(--brand) 22%,transparent)}
.participant-identity-card h2{margin:4px 0 6px}.participant-identity-card p{margin:0;color:var(--muted)}
.participant-access-meta{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:4px}.participant-access-meta>span{display:grid;gap:3px;padding:10px;border-radius:12px;background:var(--surface-2)}.participant-access-meta small{color:var(--muted)}
.participant-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.participant-stat{display:grid;gap:6px;align-content:center;min-height:126px}.participant-stat>span{color:var(--muted);font-size:12px;font-weight:800}.participant-stat>strong{font-size:30px;letter-spacing:-.045em}.participant-stat>small{color:var(--muted)}
.participant-progress-panel{margin-bottom:16px}.participant-section-list{display:grid;gap:9px}.participant-section{border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}.participant-section>summary{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:14px 16px;cursor:pointer;list-style:none}.participant-section>summary::-webkit-details-marker{display:none}.participant-section>summary>div{display:grid;gap:2px}.participant-section>summary small{color:var(--muted)}.participant-section>summary>span{font-weight:900;color:var(--brand)}
.participant-lesson-list{border-top:1px solid var(--line)}.participant-lesson-row{display:grid;grid-template-columns:1fr minmax(180px,280px);gap:20px;align-items:center;padding:12px 16px;border-bottom:1px solid var(--line)}.participant-lesson-row:last-child{border-bottom:0}.participant-lesson-row>div:first-child{display:grid;gap:2px}.participant-lesson-row small{color:var(--muted)}
.participant-mini-progress{display:grid;grid-template-columns:1fr 42px;gap:9px;align-items:center}.participant-mini-progress>span{height:7px;background:var(--surface-2);border-radius:99px;overflow:hidden}.participant-mini-progress i{display:block;height:100%;background:linear-gradient(90deg,var(--brand),var(--brand-2));border-radius:inherit}.participant-mini-progress b{text-align:right;font-size:12px}
.participant-learning-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-bottom:16px}.participant-activity-list,.participant-comment-list{display:grid;gap:0}.participant-activity-row{display:grid;grid-template-columns:1fr auto;gap:14px;padding:14px 0;border-bottom:1px solid var(--line)}.participant-activity-row:last-child{border-bottom:0}.participant-activity-row>div:first-child{display:grid;gap:3px}.participant-activity-row small{color:var(--muted)}.participant-activity-row p{margin:5px 0 0;color:var(--muted);font-size:12px}.participant-activity-result{display:grid;justify-items:end;align-content:center;gap:6px}.participant-activity-result b{font-size:15px}
.participant-comment-list>article{display:grid;gap:5px;padding:13px 0;border-bottom:1px solid var(--line)}.participant-comment-list>article:last-child{border-bottom:0}.participant-comment-list p{margin:0;color:var(--muted)}.participant-comment-list small{color:var(--muted)}.participant-comment-replies{display:grid;gap:7px;margin-top:6px;padding-left:12px;border-left:2px solid color-mix(in srgb,var(--brand) 28%,var(--line))}.participant-comment-replies>div{display:grid;gap:2px;font-size:12px}.participant-comment-replies span{color:var(--muted)}

/* Course editor navigation now follows the common heading-action placement. */
.course-editor-heading{align-items:center}.course-editor-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;flex-wrap:wrap}.course-editor-heading-actions .button{white-space:nowrap}
#editar-video .platform-modal-card{max-height:min(90vh,900px);overflow:auto}

@media(max-width:1100px){
    .review-inbox-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.review-filter-bar{grid-template-columns:repeat(2,minmax(0,1fr))}.review-filter-actions{grid-column:1/-1}
    .metrics-filter-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.metrics-filter-actions{grid-column:1/-1}
    .financial-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settlement-metric-grid,.operation-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
    .participant-overview-grid{grid-template-columns:1fr}.participant-stat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
    .featured-library-viewport{padding-inline:44px}.featured-library-card{width:clamp(245px,29vw,330px);transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(220px,30vw,310px))) translateY(calc(var(--carousel-depth) * 12px)) scale(.7)}
    .featured-library-card[data-carousel-position="-1"],.featured-library-card[data-carousel-position="1"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(220px,30vw,310px))) translateY(14px) scale(.83)}
    .featured-library-card[data-carousel-position="-2"],.featured-library-card[data-carousel-position="2"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(220px,30vw,310px))) translateY(26px) scale(.64)}
}
@media(max-width:760px){
    .featured-library-stage{min-height:365px}.featured-library-viewport{height:345px;padding-inline:0;overflow:hidden}.featured-library-card{width:min(70vw,290px);height:300px}.featured-library-card[data-carousel-position="-1"],.featured-library-card[data-carousel-position="1"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * 66vw)) translateY(13px) scale(.78);opacity:.67}.featured-library-card[data-carousel-position="0"]{transform:translate(-50%,-50%) translateY(-2px) scale(1)}.featured-library-card[data-carousel-position="-2"],.featured-library-card[data-carousel-position="2"]{opacity:0;pointer-events:none}.featured-library-nav{top:48%}
    .review-inbox-metrics,.review-filter-bar,.financial-metric-grid,.metrics-dashboard-two-col,.settlement-metric-grid,.operation-metric-grid,.participant-learning-grid,.participant-stat-grid{grid-template-columns:1fr}.review-filter-actions,.metrics-filter-actions{grid-column:auto;justify-content:stretch}.review-filter-actions .button,.metrics-filter-actions .button{flex:1}
    .metrics-filter-bar{grid-template-columns:1fr 1fr}.metrics-filter-actions{grid-column:1/-1}.metrics-period-strip{grid-template-columns:1fr 1fr}.metrics-dashboard-two-col{display:grid}.daily-revenue-chart{height:190px}
    .participant-access-meta{grid-template-columns:1fr 1fr}.participant-lesson-row{grid-template-columns:1fr}.participant-mini-progress{max-width:none}.participant-activity-row{grid-template-columns:1fr}.participant-activity-result{justify-items:start}
    .course-editor-heading{align-items:flex-start}.course-editor-heading-actions{justify-content:flex-start;width:100%}
}

/* Final cover-flow polish: a soft "shelf" shadow makes the depth legible and
   every visible card remains an intentional, generous click target. */
.featured-library-stage::after{
    content:"";
    position:absolute;
    z-index:0;
    left:50%;
    bottom:38px;
    width:min(1120px,82vw);
    height:92px;
    transform:translateX(-50%);
    border-radius:50%;
    background:radial-gradient(ellipse at center,rgba(16,24,43,.24) 0%,rgba(16,24,43,.10) 38%,transparent 72%);
    filter:blur(12px);
    pointer-events:none;
}
.featured-library-viewport,.featured-library-nav,.featured-library-controls{position:relative;z-index:2}
.featured-library-card{isolation:isolate}
.featured-library-card-link{position:absolute;inset:0;z-index:4;display:block;width:auto;height:auto;-webkit-user-drag:none;user-select:none}
.featured-library-card[data-carousel-position="-1"],
.featured-library-card[data-carousel-position="1"]{box-shadow:0 24px 48px rgba(18,26,48,.20),0 58px 44px -43px rgba(18,26,48,.46)}
.featured-library-card[data-carousel-position="-2"],
.featured-library-card[data-carousel-position="2"]{box-shadow:0 20px 38px rgba(18,26,48,.17),0 50px 38px -42px rgba(18,26,48,.38)}
.featured-library-card[data-carousel-position="0"]{box-shadow:0 34px 82px rgba(18,26,48,.30),0 66px 52px -45px rgba(18,26,48,.50)}
@media(min-width:1101px){
    .featured-library-card{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(310px,29vw,435px))) translateY(calc(var(--carousel-depth) * 15px)) translateZ(calc(var(--carousel-depth) * -48px)) scale(.68)}
    .featured-library-card[data-carousel-position="-1"],.featured-library-card[data-carousel-position="1"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(310px,29vw,435px))) translateY(17px) translateZ(-42px) scale(.82)}
    .featured-library-card[data-carousel-position="-2"],.featured-library-card[data-carousel-position="2"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(310px,29vw,435px))) translateY(31px) translateZ(-94px) scale(.62)}
}

/* ========================================================================
   QA polish 2026-08-21 · carousel crisp + participant drill-down
   ======================================================================== */

/* Cover-flow closer to the requested reference: cards stay crisp, overlap
   slightly instead of flying apart, and depth is suggested with scale/shadow
   rather than translateZ/filter rasterization (which blurred text/images). */
.featured-library-stage{perspective:none;min-height:438px}
.featured-library-viewport{height:420px;padding-inline:38px;overflow:hidden}
.featured-library-track{transform-style:flat}
.featured-library-card,
.featured-library-card[data-carousel-position="-2"],
.featured-library-card[data-carousel-position="2"],
.featured-library-card[data-carousel-position="-1"],
.featured-library-card[data-carousel-position="1"],
.featured-library-card[data-carousel-position="0"]{
    filter:none;
    backface-visibility:hidden;
    -webkit-font-smoothing:antialiased;
}
.featured-library-card{
    width:clamp(265px,21vw,360px);
    height:clamp(310px,24vw,370px);
    transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(230px,22vw,300px))) translateY(calc(var(--carousel-depth) * 12px)) scale(.70);
    opacity:.78;
    box-shadow:0 18px 36px rgba(18,26,48,.16),0 42px 36px -34px rgba(18,26,48,.34);
}
.featured-library-card[data-carousel-position="-2"],
.featured-library-card[data-carousel-position="2"]{
    transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(230px,22vw,300px))) translateY(26px) scale(.64);
    opacity:.66;
    box-shadow:0 16px 30px rgba(18,26,48,.13),0 38px 30px -32px rgba(18,26,48,.30);
}
.featured-library-card[data-carousel-position="-1"],
.featured-library-card[data-carousel-position="1"]{
    transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(230px,22vw,300px))) translateY(13px) scale(.84);
    opacity:.91;
    box-shadow:0 22px 44px rgba(18,26,48,.18),0 48px 38px -35px rgba(18,26,48,.38);
}
.featured-library-card[data-carousel-position="0"]{
    transform:translate(-50%,-50%) translateY(-3px) scale(1.035);
    opacity:1;
    box-shadow:0 28px 64px rgba(18,26,48,.25),0 56px 42px -39px rgba(18,26,48,.44);
}
.featured-library-card:not([data-carousel-active]) .featured-library-overlay{background:linear-gradient(180deg,rgba(8,11,18,.04),rgba(8,11,18,.52) 100%)}
.featured-library-media img{image-rendering:auto;filter:none}
.featured-library-stage::after{bottom:32px;width:min(960px,76vw);height:72px;filter:blur(9px);opacity:.72}
@media(min-width:1101px){
    .featured-library-card{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(230px,22vw,300px))) translateY(calc(var(--carousel-depth) * 12px)) scale(.70)}
    .featured-library-card[data-carousel-position="-1"],.featured-library-card[data-carousel-position="1"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(230px,22vw,300px))) translateY(13px) scale(.84)}
    .featured-library-card[data-carousel-position="-2"],.featured-library-card[data-carousel-position="2"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(230px,22vw,300px))) translateY(26px) scale(.64)}
}
@media(max-width:1100px){
    .featured-library-viewport{padding-inline:24px}
    .featured-library-card{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(185px,27vw,245px))) translateY(calc(var(--carousel-depth) * 10px)) scale(.70)}
    .featured-library-card[data-carousel-position="-1"],.featured-library-card[data-carousel-position="1"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(185px,27vw,245px))) translateY(12px) scale(.82)}
    .featured-library-card[data-carousel-position="-2"],.featured-library-card[data-carousel-position="2"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * clamp(185px,27vw,245px))) translateY(22px) scale(.62)}
}
@media(max-width:760px){
    .featured-library-stage{min-height:355px}.featured-library-viewport{height:335px;padding-inline:0}
    .featured-library-card{width:min(72vw,292px);height:296px}
    .featured-library-card[data-carousel-position="-1"],.featured-library-card[data-carousel-position="1"]{transform:translate(-50%,-50%) translateX(calc(var(--carousel-offset) * 62vw)) translateY(10px) scale(.80);opacity:.82}
    .featured-library-card[data-carousel-position="0"]{transform:translate(-50%,-50%) translateY(-2px) scale(1);opacity:1}
}

/* Participant profile: payment context + click-to-expand records. */
.participant-access-meta{grid-template-columns:repeat(4,minmax(0,1fr))}
.participant-payment-card{grid-column:1/-1;overflow:hidden;border:1px solid color-mix(in srgb,var(--brand) 18%,var(--line));border-radius:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 5%,var(--surface)),var(--surface));box-shadow:0 10px 26px color-mix(in srgb,var(--text) 5%,transparent)}
.participant-payment-card-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;padding:14px 16px;border-bottom:1px solid color-mix(in srgb,var(--line) 82%,transparent)}
.participant-payment-icon{display:grid;place-items:center;width:40px;height:40px;border-radius:12px;background:color-mix(in srgb,var(--brand) 11%,var(--surface-2));color:var(--brand)}
.participant-payment-icon svg{width:21px;height:21px}
.participant-payment-title{display:grid;gap:2px;min-width:0}.participant-payment-title small{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.08em;color:var(--brand)}.participant-payment-title strong{font-size:14px}.participant-payment-title span{font-size:11px;color:var(--muted)}
.participant-payment-card-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:0;padding:0 16px}
.participant-payment-card-grid>div{display:grid;gap:5px;align-content:center;min-width:0;padding:13px 14px 14px 0}.participant-payment-card-grid>.participant-payment-method{padding-left:16px;border-left:1px solid color-mix(in srgb,var(--line) 78%,transparent)}.participant-payment-reference-row{grid-column:1/-1!important;padding:12px 0 14px!important;border-top:1px solid color-mix(in srgb,var(--line) 78%,transparent)!important;border-left:0!important}
.participant-payment-card-grid small{font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.participant-payment-card-grid strong{font-size:12px;line-height:1.35;min-width:0}
.participant-payment-card-grid .participant-payment-amount strong{font-size:18px;letter-spacing:-.025em;color:var(--text)}
.participant-payment-reference{display:block;max-width:100%;overflow-wrap:anywhere;word-break:break-word;white-space:normal;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;font-size:10px!important;line-height:1.45;color:var(--text);background:var(--surface-2);border:1px solid color-mix(in srgb,var(--line) 82%,transparent);border-radius:9px;padding:8px 10px}
.participant-payment-empty{padding:13px 16px}.participant-payment-empty p{margin:0;color:var(--muted);font-size:12px;line-height:1.5}
.participant-openable{display:block;overflow:hidden}
.participant-activity-row.participant-openable{padding:0}
.participant-openable>summary{list-style:none;cursor:pointer;user-select:none;position:relative}
.participant-openable>summary::-webkit-details-marker{display:none}.participant-openable>summary::marker{content:""}
.participant-activity-row.participant-openable>summary{display:grid;grid-template-columns:1fr auto;gap:14px;padding:14px 34px 14px 0;align-items:center}
.participant-openable>summary:after{content:"+";position:absolute;right:5px;top:50%;transform:translateY(-50%);display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--surface-2);color:var(--muted);font-weight:900;line-height:1}
.participant-openable[open]>summary:after{content:"−";color:var(--brand)}
.participant-openable-body{display:grid;gap:12px;padding:13px 0 15px;border-top:1px dashed color-mix(in srgb,var(--line) 85%,transparent)}
.participant-openable-body>.button{width:max-content}
.participant-detail-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:0}
.participant-detail-list>div{display:grid;gap:3px;padding:10px 11px;border-radius:10px;background:var(--surface-2)}
.participant-detail-list dt{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.participant-detail-list dd{margin:0;font-size:12px;line-height:1.4}
.participant-comment-item{border-bottom:1px solid var(--line)}.participant-comment-item:last-child{border-bottom:0}
.participant-comment-item>summary{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:13px 32px 13px 0}.participant-comment-item>summary>div{display:grid;gap:4px}.participant-comment-item>summary p{margin:0;color:var(--muted)}.participant-comment-item>summary small{color:var(--muted)}
.participant-comment-item .participant-openable-body{padding-right:6px}.participant-comment-item .participant-openable-body>p{color:var(--text)}
.discussion-item:target{outline:2px solid color-mix(in srgb,var(--brand) 58%,transparent);outline-offset:4px;border-radius:12px}
.review-activity-card:target{scroll-margin-top:110px;border-color:color-mix(in srgb,var(--brand) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 10%,transparent)}
@media(max-width:760px){
    .participant-payment-card-head{grid-template-columns:auto 1fr}.participant-payment-card-head .status-chip{grid-column:2;justify-self:start}.participant-payment-card-grid{grid-template-columns:1fr;padding:0 14px}.participant-payment-card-grid>div{padding:11px 0}.participant-payment-card-grid>.participant-payment-method{padding-left:0;border-left:0;border-top:1px solid color-mix(in srgb,var(--line) 78%,transparent)}.participant-payment-reference-row{grid-column:1!important;padding:11px 0 13px!important}
    .participant-detail-list{grid-template-columns:1fr}
    .participant-activity-row.participant-openable>summary{grid-template-columns:1fr}.participant-activity-row.participant-openable>summary .participant-activity-result{justify-items:start}
}

/* QA fix 2026-08-21: coverflow navigation must remain visible and actionable. */
.featured-course-library .featured-library-stage{position:relative}
.featured-course-library .featured-library-viewport{position:relative;z-index:2}
.featured-course-library .featured-library-controls{position:relative;z-index:4}
.featured-course-library .featured-library-nav{
    position:absolute;
    z-index:70;
    top:48%;
    display:grid;
    place-items:center;
    width:46px;
    height:46px;
    margin:0;
    padding:0;
    border:1px solid color-mix(in srgb,var(--line) 76%,transparent);
    border-radius:999px;
    background:color-mix(in srgb,var(--surface) 96%,transparent);
    color:var(--text);
    box-shadow:0 14px 34px rgba(18,26,48,.16);
    transform:translateY(-50%);
    cursor:pointer;
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}
.featured-course-library .featured-library-nav svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.featured-course-library .featured-library-nav:hover,.featured-course-library .featured-library-nav:focus-visible{color:var(--brand);border-color:color-mix(in srgb,var(--brand) 54%,var(--line));box-shadow:0 16px 40px color-mix(in srgb,var(--brand) 18%,rgba(18,26,48,.16));outline:none}
.featured-course-library .featured-library-nav-prev{left:clamp(18px,5.5vw,92px)}
.featured-course-library .featured-library-nav-next{right:clamp(18px,5.5vw,92px)}
@media(max-width:760px){
    .featured-course-library .featured-library-nav{width:40px;height:40px;top:48%}
    .featured-course-library .featured-library-nav-prev{left:10px}
    .featured-course-library .featured-library-nav-next{right:10px}
}


/* ========================================================================== */
/* Development login profiles                                                 */
/* ========================================================================== */
.dev-login-panel{margin:0 0 20px;padding:16px;border:1px solid color-mix(in srgb,var(--brand) 32%,var(--line));border-radius:16px;background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 8%,var(--surface)),var(--surface));box-shadow:0 16px 38px color-mix(in srgb,var(--brand) 8%,transparent)}
.dev-login-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}.dev-login-head>div{display:grid;gap:2px}.dev-login-head strong{font-size:14px}.dev-login-head small{color:var(--muted)}
.dev-mode-pill{display:inline-flex;align-items:center;justify-content:center;min-width:44px;padding:4px 8px;border-radius:999px;background:color-mix(in srgb,var(--brand) 14%,var(--surface-2));color:var(--brand);font-size:10px;font-weight:900;letter-spacing:.1em}
.dev-login-profile{margin-top:10px;padding:11px 12px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line);display:grid;gap:3px}.dev-login-profile strong{font-size:13px}.dev-login-profile span,.dev-login-profile small{color:var(--muted);font-size:12px}.dev-login-profile[hidden]{display:none}

/* ========================================================================== */
/* Timeline frame preview                                                      */
/* ========================================================================== */
.lesson-page .media-progress-shell{position:relative;width:100%;min-width:0}
.lesson-page .media-progress-shell>.media-progress-range{width:100%;display:block}
.lesson-page .media-seek-preview{position:absolute;left:50%;bottom:24px;transform:translateX(-50%);width:190px;border:2px solid rgba(255,255,255,.94);border-radius:11px;overflow:hidden;background:#07080d;box-shadow:0 15px 42px rgba(0,0,0,.62);z-index:14;pointer-events:none;isolation:isolate}
.lesson-page .media-seek-preview[hidden]{display:none}
.lesson-page .media-seek-preview video{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;background:#000}
.lesson-page .media-seek-preview span{display:block;padding:4px 8px;background:rgba(4,5,9,.92);color:#fff;text-align:center;font-size:12px;font-weight:850;font-variant-numeric:tabular-nums;line-height:1.25}
@media(max-width:680px){.lesson-page .media-seek-preview{width:150px;bottom:22px}}

/* ========================================================================== */
/* Professional platform footer                                               */
/* ========================================================================== */
.platform-footer{display:block!important;padding:0!important;margin-top:52px!important;border-top:0!important;color:var(--text)!important;background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 94%,var(--brand) 6%),var(--surface));border:1px solid var(--line)!important;border-radius:22px 22px 0 0;overflow:hidden;box-shadow:0 -12px 40px rgba(22,32,51,.05)}
.platform-footer-main{display:grid;grid-template-columns:minmax(220px,.65fr) minmax(0,1.35fr);gap:28px;padding:30px 30px 24px}
.platform-footer-brand{display:grid;align-content:start;justify-items:start;gap:10px}.platform-footer-brand p{margin:0;max-width:360px;color:var(--muted);font-size:13px}.platform-footer-logo{display:inline-flex;align-items:center;gap:10px;text-decoration:none}.platform-footer-logo>span:last-child{display:grid;line-height:1.05}.platform-footer-logo strong{font-size:15px;letter-spacing:.02em}.platform-footer-logo small{margin-top:4px;color:var(--brand-2);font-size:9px;font-weight:900;letter-spacing:.16em;text-transform:uppercase}
.platform-footer-domain{display:inline-flex;margin-top:3px;color:var(--brand);font-size:13px;font-weight:850;text-decoration:none}.platform-footer-domain:hover{text-decoration:underline}
.platform-footer-trust{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.footer-trust-card{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:11px;min-width:0;padding:14px;border:1px solid var(--line);border-radius:15px;background:color-mix(in srgb,var(--surface-2) 68%,var(--surface));box-shadow:0 9px 24px rgba(20,30,48,.04)}
.footer-trust-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:color-mix(in srgb,var(--brand) 12%,var(--surface));color:var(--brand);flex:0 0 auto}.footer-trust-icon svg{width:18px;height:18px}.footer-trust-card>div{display:grid;gap:2px;min-width:0}.footer-trust-card>div>span{color:var(--muted);font-size:10px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.footer-trust-card>div>strong{font-size:13px;line-height:1.25}.footer-trust-card small{margin-top:3px;color:var(--muted);font-size:10px;line-height:1.4}
.payment-brand-row{display:flex;align-items:center;gap:7px;margin-top:7px;min-height:21px}.payment-brand{display:inline-flex;align-items:center;justify-content:center;height:21px;padding:0 7px;border-radius:6px;background:#fff;border:1px solid rgba(24,32,51,.12);font-style:normal;box-shadow:0 3px 8px rgba(14,22,37,.07)}.payment-brand.visa{color:#172b85;font-size:10px;font-weight:950;font-style:italic;letter-spacing:.02em}.payment-brand.mastercard{position:relative;min-width:60px;gap:0;padding:0 5px 0 28px;color:#222;font-size:7px;font-weight:800;overflow:hidden}.payment-brand.mastercard i{position:absolute;left:6px;width:14px;height:14px;border-radius:50%;background:#eb001b}.payment-brand.mastercard i:nth-child(2){left:14px;background:#f79e1b;opacity:.92}.payment-brand.mastercard span{position:relative;z-index:1}
.platform-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 30px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 55%,var(--surface));color:var(--muted);font-size:11px}.platform-footer-bottom>div{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.platform-footer-bottom a{color:var(--text);font-weight:750;text-decoration:none}.platform-footer-bottom a:hover{color:var(--brand)}
@media(max-width:980px){.platform-footer-main{grid-template-columns:1fr}.platform-footer-trust{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:760px){.platform-footer{border-radius:18px 18px 0 0}.platform-footer-main{padding:24px 18px 18px}.platform-footer-trust{grid-template-columns:1fr}.platform-footer-bottom{padding:14px 18px;display:grid;gap:8px}}

/* Registro: verificación de correo por OTP. */
.registration-email-verification{display:grid;gap:10px;margin:14px 0 18px;padding:16px;border:1px solid var(--line);border-radius:16px;background:color-mix(in srgb,var(--surface-2) 48%,var(--surface));transition:border-color .2s ease,box-shadow .2s ease}.registration-email-verification.is-verified{border-color:color-mix(in srgb,var(--brand-2) 55%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand-2) 9%,transparent)}.registration-email-verification>.field{margin:0}.registration-email-row,.registration-token-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:center}.registration-email-send{min-width:164px;white-space:nowrap;font-variant-numeric:tabular-nums}.registration-email-send:disabled{opacity:.62;cursor:not-allowed}.registration-email-status{display:flex;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface)}.registration-email-status.success{border-color:color-mix(in srgb,var(--brand-2) 50%,var(--line));background:color-mix(in srgb,var(--brand-2) 7%,var(--surface))}.registration-email-status.error{border-color:color-mix(in srgb,var(--danger) 55%,var(--line));background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.registration-email-status-icon{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--surface-3);font-weight:900;flex:0 0 auto}.registration-email-status.success .registration-email-status-icon{background:color-mix(in srgb,var(--brand-2) 18%,var(--surface));color:var(--brand-2)}.registration-email-status.error .registration-email-status-icon{background:color-mix(in srgb,var(--danger) 16%,var(--surface));color:var(--danger)}.registration-email-status>div{display:grid;gap:2px}.registration-email-status strong{font-size:13px}.registration-email-status small{color:var(--muted);font-size:11px;line-height:1.45}.registration-token-box{display:grid;gap:8px;padding-top:3px}.registration-token-field{margin:0}.registration-token-row input{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:18px;font-weight:850;letter-spacing:.18em;text-align:center}.registration-token-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--muted);font-size:11px}.registration-email-change{justify-self:start;padding:2px 0;font-size:12px}.register-submit:disabled{opacity:.48;cursor:not-allowed;filter:saturate(.5)}

/* Footer global: full-bleed en páginas públicas, estudiante y administración. */
.platform-footer{width:100%!important;max-width:none!important;margin:52px 0 0!important;border-left:0!important;border-right:0!important;border-bottom:0!important;border-radius:0!important;position:relative;z-index:16}.has-dashboard>.platform-footer{width:100%!important;margin-left:0!important}.platform-footer-main,.platform-footer-bottom{padding-left:max(30px,calc((100vw - 1440px)/2 + 30px));padding-right:max(30px,calc((100vw - 1440px)/2 + 30px))}.has-dashboard>.platform-footer .platform-footer-main{padding-left:max(278px,calc((100vw - 1440px)/2 + 278px))}.has-dashboard>.platform-footer .platform-footer-bottom{padding-left:max(278px,calc((100vw - 1440px)/2 + 278px))}
@media(max-width:760px){.registration-email-row,.registration-token-row{grid-template-columns:1fr}.registration-email-send,.registration-token-row .button{width:100%}.platform-footer-main,.platform-footer-bottom,.has-dashboard>.platform-footer .platform-footer-main,.has-dashboard>.platform-footer .platform-footer-bottom{padding-left:18px;padding-right:18px}}
@media(min-width:761px) and (max-width:1120px){.has-dashboard>.platform-footer .platform-footer-main{grid-template-columns:1fr}.has-dashboard>.platform-footer .platform-footer-trust{grid-template-columns:1fr}}

/* ========================================================================== */
/* Course media flow, async thumbnails and short section descriptions          */
/* ========================================================================== */
.thumbnail-inline-preview{aspect-ratio:16/9;overflow:hidden;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.thumbnail-inline-preview>img,.thumbnail-inline-preview>.generic-thumbnail{width:100%;height:100%;object-fit:cover;border-radius:0}
.video-form-flow{align-items:start}.video-form-step{display:flex;align-items:center;gap:11px;margin:4px 0 0;padding:11px 13px;border:1px solid var(--line);border-radius:13px;background:color-mix(in srgb,var(--surface-2) 70%,var(--surface))}.video-form-step>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border-radius:50%;background:color-mix(in srgb,var(--brand) 13%,var(--surface));color:var(--brand);font-weight:900}.video-form-step>div{display:grid;gap:2px}.video-form-step strong{font-size:13px}.video-form-step small{color:var(--muted);font-size:11px}.video-source-panel{display:grid;gap:12px;padding:14px;border:1px solid color-mix(in srgb,var(--brand) 20%,var(--line));border-radius:14px;background:linear-gradient(145deg,color-mix(in srgb,var(--brand) 4%,var(--surface)),var(--surface))}.video-source-panel[hidden]{display:none}.video-source-panel-head{display:grid;gap:3px}.video-source-panel-head strong{font-size:14px}.video-source-panel-head small,.video-source-current{color:var(--muted);font-size:11px}.video-source-panel .asset-links-panel{margin:0}.section-description-input{min-height:74px;max-height:96px;resize:vertical}.course-detail-curriculum .curriculum-section-title small{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.35;max-width:760px}.thumbnail-preview[data-thumbnail-preview]>img{transition:opacity .18s ease}.thumbnail-preview[data-thumbnail-preview].is-refreshing>img{opacity:.55}
@media(max-width:680px){.video-form-step{align-items:flex-start}.video-source-panel{padding:12px}}

/* ========================================================================== */
/* Footer legal/configurable + legal document pages                           */
/* ========================================================================== */
.platform-footer-main{grid-template-columns:minmax(210px,.55fr) minmax(180px,.48fr) minmax(0,1.45fr);align-items:start}
.platform-footer-links{display:grid;align-content:start;gap:8px;padding:2px 0}.footer-column-title{margin-bottom:3px;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.09em;text-transform:uppercase}.platform-footer-links a{width:max-content;max-width:100%;color:var(--text);font-size:12px;font-weight:760;text-decoration:none}.platform-footer-links a:hover{color:var(--brand);text-decoration:underline}.platform-footer-links small{margin-top:3px;color:var(--muted);font-size:11px}
.platform-footer-trust{grid-template-columns:repeat(3,minmax(0,1fr))}
.legal-container{max-width:1180px}.legal-hero{max-width:900px;margin-bottom:26px}.legal-hero h1{margin:8px 0 8px;font-size:clamp(32px,5vw,52px);line-height:1.08}.legal-hero>p{margin:0;color:var(--muted);font-size:17px;line-height:1.65}.legal-updated{display:inline-flex;align-items:center;gap:9px;margin-top:16px;padding:8px 11px;border:1px solid var(--line);border-radius:99px;background:var(--surface-2);font-size:11px}.legal-updated span{color:var(--muted)}
.legal-layout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:20px;align-items:start}.legal-index{position:sticky;top:88px;display:grid;gap:7px;box-shadow:none}.legal-index>strong{margin-bottom:4px}.legal-index>a{padding:9px 10px;border-radius:9px;color:var(--text);font-size:12px;font-weight:760;text-decoration:none}.legal-index>a:hover,.legal-index>a.is-active{background:var(--surface-3);color:var(--brand)}.legal-index>small{margin-top:10px;padding-top:12px;border-top:1px solid var(--line);color:var(--muted);line-height:1.5}.legal-index>small a{color:var(--brand)}
.legal-document{padding:clamp(22px,4vw,42px);box-shadow:none}.legal-document h2{margin:30px 0 10px;font-size:21px;scroll-margin-top:90px}.legal-document h2:first-child{margin-top:0}.legal-document p,.legal-document li{color:color-mix(in srgb,var(--text) 88%,var(--muted));line-height:1.8}.legal-document p{margin:0 0 14px}.legal-document ul{display:grid;gap:8px;padding-left:22px;margin:8px 0 18px}.legal-note{margin-top:30px;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--muted);font-size:11px;line-height:1.5}
.legal-admin-footer{margin-bottom:20px}.legal-admin-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.legal-admin-card{display:flex;flex-direction:column;align-items:flex-start;gap:9px}.legal-admin-card h2{margin:0;font-size:20px}.legal-admin-card p{margin:0;line-height:1.5}.legal-admin-card .button-row{margin-top:auto;padding-top:8px}.legal-admin-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:4px;color:var(--muted);font-size:11px}.legal-subtitle-textarea{min-height:90px}.legal-content-textarea{min-height:560px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.65}.legal-document-summary{grid-template-columns:repeat(2,minmax(0,1fr));max-width:820px}.legal-date-strong{font-size:18px!important;line-height:1.25}
@media(max-width:1120px){.platform-footer-main{grid-template-columns:minmax(200px,.65fr) minmax(160px,.5fr) minmax(0,1fr)}.platform-footer-trust{grid-template-columns:1fr}.legal-admin-grid{grid-template-columns:1fr 1fr}}
@media(max-width:820px){.platform-footer-main{grid-template-columns:1fr}.platform-footer-links{padding:4px 0 8px}.legal-layout{grid-template-columns:1fr}.legal-index{position:static;display:flex;align-items:center;gap:6px;overflow:auto}.legal-index>strong,.legal-index>small{display:none}.legal-index>a{white-space:nowrap}.legal-admin-grid,.legal-document-summary{grid-template-columns:1fr}}

/* ========================================================================== */
.player-activity-shell{min-height:min(70vh,680px);padding:clamp(22px,4vw,48px);border:1px solid var(--line);border-radius:16px;background:var(--surface);overflow:auto;box-shadow:var(--shadow)}.player-activity-head{display:flex;align-items:flex-start;gap:16px;margin-bottom:24px}.player-activity-head .activity-type-icon{flex:0 0 46px;width:46px;height:46px}.player-activity-head h2{margin:3px 0;font-size:clamp(24px,3vw,34px)}.player-activity-head p{margin:0}.player-activity-instructions{padding:18px;margin-bottom:20px;border-radius:12px;background:var(--surface-2)}.course-video-sidebar .lesson-row .lesson-title{display:grid;gap:2px}.course-video-sidebar .lesson-row .lesson-title small{font-size:10px;color:var(--muted);font-weight:500}.course-video-sidebar .lesson-row.is-current{background:color-mix(in srgb,var(--brand) 12%,var(--surface));border-left:3px solid var(--brand)}@media(max-width:760px){.player-activity-shell{min-height:0;padding:18px}.player-activity-head{gap:11px}.player-activity-head .activity-type-icon{width:38px;height:38px;flex-basis:38px}}

.settlement-payout-panel{margin:1rem 0}.settlement-payout-details{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin:0}.settlement-payout-details>div{min-width:0;padding:.85rem 1rem;border:1px solid var(--line);border-radius:.85rem;background:var(--surface-2)}.settlement-payout-details dt{color:var(--muted);font-size:.75rem;font-weight:800;text-transform:uppercase}.settlement-payout-details dd{margin:.3rem 0 0;overflow-wrap:anywhere;font-weight:800}@media(max-width:900px){.settlement-payout-details{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:560px){.settlement-payout-details{grid-template-columns:1fr}}

/* IVA configurable y desglose de cobro                                       */
/* ========================================================================== */
.tax-method-config{display:grid;gap:12px;margin-top:4px;padding:16px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface-2) 58%,var(--surface))}.tax-method-config .section-head{margin-bottom:0}.tax-method-config h2{margin:2px 0 0;font-size:18px}.tax-method-config .field{margin:0}.tax-rate-input{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center}.tax-rate-input>span{font-weight:900;color:var(--muted)}
.tutor-tax-method-grid{align-items:stretch}.tax-method-card{display:grid!important;grid-template-columns:1fr!important;align-content:start;gap:12px}.tax-method-main{display:grid;grid-template-columns:auto auto minmax(0,1fr);align-items:center;gap:10px;cursor:pointer}.tax-method-options{display:grid;gap:8px;padding-top:10px;border-top:1px solid var(--line)}.tax-method-options .select:disabled,.tax-method-config .select:disabled{opacity:.55;cursor:not-allowed}
.payment-tax-breakdown{display:grid;gap:5px;margin:11px 0 0;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--surface-2) 62%,var(--surface));font-size:12px}.payment-tax-breakdown>div{display:flex;justify-content:space-between;gap:15px}.payment-tax-breakdown dt{color:var(--muted)}.payment-tax-breakdown dd{margin:0;text-align:right;font-weight:760}.payment-tax-breakdown .payment-tax-total{padding-top:7px;margin-top:2px;border-top:1px solid var(--line);font-size:13px}.payment-tax-breakdown .payment-tax-total dt,.payment-tax-breakdown .payment-tax-total dd{color:var(--text);font-weight:900}.payment-tax-detail{margin:14px 0 18px}.payment-tax-detail .payment-tax-total{border-top:1px solid var(--line);padding-top:10px;margin-top:4px}.payment-tax-detail .payment-tax-total dd{font-size:18px;font-weight:900}
@media(max-width:680px){.tax-method-config .section-head{align-items:flex-start}.payment-tax-breakdown>div{gap:10px}.tax-method-main{grid-template-columns:auto auto minmax(0,1fr)}}

/* --------------------------------------------------------------------------
   Payment detail refresh: invoice/ticket presentation
   -------------------------------------------------------------------------- */
.payment-result-wrap{width:min(1120px,100%)}
.payment-invoice-card{width:min(980px,100%);padding:28px}
.payment-result-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,320px);gap:18px;align-items:stretch;margin-bottom:20px}
.payment-result-hero-copy{display:grid;gap:8px}.payment-result-hero-copy h1{margin:0;font-size:44px;line-height:1.05;letter-spacing:-.03em}.payment-result-hero-copy p{margin:0;max-width:62ch}
.payment-result-hero-summary{display:grid;gap:6px;align-content:start;justify-items:end;padding:18px 20px;border:1px solid var(--line);border-radius:18px;background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 94%,white),var(--surface))}
.payment-result-hero-summary small,.payment-result-hero-summary span:last-child{color:var(--muted)}.payment-result-hero-summary strong{font-size:34px;line-height:1;text-align:right}
.payment-result-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(290px,.72fr);gap:18px;align-items:start}
.payment-result-main{display:grid;gap:16px}.payment-result-side{display:grid;gap:16px}
.payment-info-box{padding:0;overflow:hidden;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.payment-info-box-head{padding:18px 20px 12px;margin:0;border-bottom:1px solid var(--line)}.payment-info-box-head h2{margin:0;font-size:24px;letter-spacing:-.02em}.payment-info-box-head p{margin:4px 0 0}
.payment-fact-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px 20px 20px}.payment-fact-grid-two{grid-template-columns:repeat(2,minmax(0,1fr))}
.payment-fact-card,.payment-timeline-item{display:grid;gap:4px;padding:16px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2);min-width:0}
.payment-fact-card span,.payment-timeline-item span,.payment-summary-mini-grid span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.06em}
.payment-fact-card strong,.payment-timeline-item strong{font-size:16px;line-height:1.35;word-break:break-word}.payment-fact-card small,.payment-timeline-item small{color:var(--muted);line-height:1.45}
.payment-fact-card-span-2{grid-column:1/-1}
.payment-timeline-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:18px 20px 20px}
.payment-note-box{padding:18px 20px 20px;color:var(--text);line-height:1.7;white-space:pre-line}
.payment-message-card{display:grid;gap:7px;padding:16px 18px;border-radius:16px;border:1px solid var(--line);background:var(--surface-2)}.payment-message-card strong{font-size:16px}.payment-message-card p{margin:0;color:var(--muted);line-height:1.6}
.payment-message-card.success{background:#e7f8ee;border-color:#c7ead4;color:#0d6648}.payment-message-card.info{background:#edf3ff;border-color:#d7e4ff;color:#32548f}.payment-message-card.warning{background:#fff7e2;border-color:#efdfb1;color:#8c6509}.payment-message-card.danger{background:#ffedf1;border-color:#f6cdd6;color:#9f324a}
html:not([data-theme=light]) .payment-message-card.success{background:#113e30;border-color:#205748;color:#bbf0da}
html:not([data-theme=light]) .payment-message-card.info{background:#162846;border-color:#2a4067;color:#cad8ff}
html:not([data-theme=light]) .payment-message-card.warning{background:#453717;border-color:#6e5720;color:#ffe39d}
html:not([data-theme=light]) .payment-message-card.danger{background:#481d28;border-color:#6e2a3a;color:#ffc1ce}
.payment-result-retry-form{margin-top:-2px}
.payment-receipt-box{position:sticky;top:96px}
.payment-receipt{display:grid;gap:14px;padding:20px;border-top:0;background:repeating-linear-gradient(180deg,var(--surface) 0,var(--surface) 31px,color-mix(in srgb,var(--line) 72%,transparent) 31px,color-mix(in srgb,var(--line) 72%,transparent) 32px);border-bottom:1px dashed var(--line)}
.payment-receipt-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-bottom:6px;border-bottom:1px dashed var(--line)}.payment-receipt-head span{font-size:12px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.payment-receipt-head strong{font-size:14px}
.payment-receipt-rows{display:grid;gap:10px}.payment-receipt-row,.payment-receipt-total{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:end}.payment-receipt-row span,.payment-receipt-total span{color:var(--muted);font-size:13px;line-height:1.45}.payment-receipt-row strong,.payment-receipt-total strong{text-align:right;font-variant-numeric:tabular-nums}
.payment-receipt-total{padding-top:14px;border-top:1px dashed var(--line)}.payment-receipt-total span{font-weight:900;color:var(--text);text-transform:uppercase;letter-spacing:.06em}.payment-receipt-total strong{font-size:34px;line-height:1;color:var(--text)}
.payment-summary-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px 20px 20px}.payment-summary-mini-grid>div{display:grid;gap:4px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.payment-summary-mini-grid strong{font-size:14px;line-height:1.35}
.payment-result-actions{margin-top:18px;justify-content:flex-end}
@media(max-width:980px){.payment-invoice-card{width:min(900px,100%)}.payment-result-hero{grid-template-columns:1fr}.payment-result-layout{grid-template-columns:1fr}.payment-receipt-box{position:static;top:auto}}
@media(max-width:680px){.payment-invoice-card{padding:20px}.payment-result-hero-copy h1{font-size:34px}.payment-fact-grid,.payment-timeline-grid,.payment-summary-mini-grid{grid-template-columns:1fr}.payment-fact-card-span-2{grid-column:auto}.payment-receipt-row,.payment-receipt-total{grid-template-columns:1fr}.payment-receipt-row strong,.payment-receipt-total strong{text-align:left}.payment-result-hero-summary{justify-items:start}.payment-result-actions{justify-content:stretch}.payment-result-actions>.button{flex:1}}

/* Payment receipt alignment and responsive refinements */
.payment-receipt-box .payment-info-box-head{padding-bottom:10px;text-align:center}
.payment-receipt-box .payment-info-box-head>div{display:grid;gap:4px;justify-items:center}
.payment-receipt-box .payment-info-box-head p{max-width:32ch}
.payment-receipt{width:min(100%,360px);margin:0 auto;border:1px solid var(--line);border-radius:16px;background:linear-gradient(180deg,var(--surface) 0%,color-mix(in srgb,var(--surface-2) 55%,white) 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.35)}
.payment-receipt-head{justify-content:center;gap:12px;text-align:center}.payment-receipt-head strong{min-width:52px;text-align:center}
.payment-receipt-rows,.payment-receipt-total{width:100%}
.payment-receipt-row{grid-template-columns:minmax(0,1fr) auto;align-items:center}.payment-receipt-row span{padding-right:12px}.payment-receipt-row strong{min-width:112px;display:block;text-align:right}
.payment-receipt-total{align-items:center}.payment-receipt-total strong{min-width:140px;text-align:right}
.payment-summary-mini-grid{width:min(100%,360px);margin:0 auto}.payment-receipt-actions{display:grid;gap:8px;justify-items:center;padding:0 20px 20px}.payment-receipt-actions .button{min-width:190px}.payment-receipt-actions small{text-align:center;max-width:28ch}
@media(max-width:980px){.payment-result-side{order:-1}.payment-receipt-box{position:static;top:auto}.payment-receipt,.payment-summary-mini-grid{width:min(100%,420px)}}
@media(max-width:680px){.payment-result-wrap{width:100%}.payment-invoice-card{width:100%;padding:16px;border-radius:18px}.payment-result-hero{gap:14px;margin-bottom:16px}.payment-result-hero-copy h1{font-size:30px}.payment-result-hero-copy p{font-size:14px}.payment-info-box-head{padding:16px}.payment-fact-grid,.payment-timeline-grid{padding:14px}.payment-fact-card,.payment-timeline-item{padding:14px}.payment-receipt{width:100%}.payment-summary-mini-grid{width:100%;padding:14px}.payment-receipt-actions{padding:0 14px 14px}.payment-result-actions{gap:10px;flex-direction:column}.payment-result-actions>.button{width:100%}.payment-receipt-row strong,.payment-receipt-total strong{min-width:0}.payment-receipt-total strong{font-size:28px}}

/* --------------------------------------------------------------------------
   IVA consistency + professional settlement workspace
   -------------------------------------------------------------------------- */
.tax-method-card{display:grid;gap:14px;align-content:start}.tax-method-admin-default,.tax-method-effective{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}.tax-method-admin-default span,.tax-method-effective span{color:var(--muted);font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.tax-method-admin-default strong,.tax-method-effective strong{text-align:right;font-size:13px}.tax-method-effective{border-color:color-mix(in srgb,var(--brand) 26%,var(--line));background:color-mix(in srgb,var(--brand) 5%,var(--surface-2))}.tax-method-options{display:grid;grid-template-columns:1fr 1fr;gap:10px}.tax-method-options .field{margin:0}.tax-method-options label{font-size:11px}.tutor-tax-method-grid{align-items:stretch}

.settlement-workspace{display:grid;gap:20px}.settlement-page-head{align-items:flex-end}.settlement-page-head h1{letter-spacing:-.035em}.settlement-projection-panel,.settlement-history-panel,.settlement-tutor-summary,.settlement-transactions-panel{display:grid;gap:16px}.settlement-projection-head{align-items:flex-end;margin:0}.settlement-projection-filters{display:grid;grid-template-columns:minmax(150px,1.2fr) 100px 110px auto;gap:8px;align-items:end}.settlement-projection-range{display:flex;align-items:center;width:max-content;max-width:100%;padding:7px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted);font-size:12px;font-weight:750}
.settlement-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}.settlement-kpi-grid-wide{grid-template-columns:repeat(6,minmax(0,1fr))}.settlement-kpi{display:grid;gap:5px;min-width:0;padding:15px 16px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)}.settlement-kpi>span{color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.settlement-kpi>strong{font-size:22px;line-height:1.1;letter-spacing:-.03em;overflow-wrap:anywhere}.settlement-kpi>small{color:var(--muted);font-size:11px;line-height:1.4}.settlement-kpi.is-accent{background:color-mix(in srgb,var(--brand) 7%,var(--surface-2));border-color:color-mix(in srgb,var(--brand) 30%,var(--line))}
.settlement-admin-builder{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(420px,1.2fr);gap:18px;align-items:stretch}.settlement-builder-form{display:grid;gap:14px;align-content:start}.settlement-calculation-panel-pro{min-width:0}.settlement-ledger-list .tax-line{background:color-mix(in srgb,var(--brand) 3%,transparent)}.settlement-ledger-list .subtotal{font-weight:850;border-bottom:2px solid var(--line)}.settlement-preview-transactions{display:grid;gap:8px;margin-top:12px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.settlement-preview-transactions>div{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:7px;border-top:1px solid var(--line)}.settlement-preview-transactions>div>span{display:grid;gap:2px}.settlement-preview-transactions small{color:var(--muted)}
.settlement-history-filters{display:grid;grid-template-columns:minmax(150px,1.2fr) minmax(130px,.9fr) 100px 145px 145px auto;gap:10px;align-items:end;padding:14px;border:1px solid var(--line);border-radius:15px;background:var(--surface-2)}.settlement-history-filters .field{margin:0}.settlement-filter-actions{display:flex;gap:8px;align-items:center}.settlement-history-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.settlement-record-list{min-width:0}.settlement-record-items{display:grid;gap:12px}.settlement-record-card{display:grid;gap:14px;padding:17px;border:1px solid var(--line);border-radius:16px;background:var(--surface);transition:border-color .16s ease,box-shadow .16s ease}.settlement-record-card:hover{border-color:color-mix(in srgb,var(--brand) 28%,var(--line));box-shadow:0 10px 28px rgba(17,24,39,.05)}.settlement-record-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.settlement-record-head h3{margin:3px 0 2px;font-size:19px}.settlement-record-head p{margin:0;color:var(--muted);font-size:12px}.settlement-record-financials{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}.settlement-record-financials>div{display:grid;gap:3px;padding:10px 11px;border-radius:12px;background:var(--surface-2);border:1px solid var(--line)}.settlement-record-financials span{font-size:10px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.settlement-record-financials strong{font-size:14px}.settlement-record-financials .is-total{background:color-mix(in srgb,var(--brand) 6%,var(--surface-2));border-color:color-mix(in srgb,var(--brand) 25%,var(--line))}.settlement-record-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:2px}.settlement-record-footer small{color:var(--muted)}.settlement-record-card-compact{padding:14px}.settlement-record-financials-compact{grid-template-columns:1fr 1fr}
.settlement-detail-grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);gap:18px;align-items:start}.settlement-ledger-panel,.settlement-tracking-panel,.settlement-tutor-action-panel{display:grid;gap:14px}.settlement-tracking-list{display:grid;gap:0}.settlement-tracking-list>div{display:grid;grid-template-columns:34px 1fr;gap:10px;position:relative;padding:8px 0 16px}.settlement-tracking-list>div:not(:last-child)::after{content:'';position:absolute;left:16px;top:38px;bottom:0;width:2px;background:var(--line)}.settlement-tracking-list>div>span{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:var(--surface-2);border:1px solid var(--line);font-weight:900;color:var(--muted);z-index:1}.settlement-tracking-list>div.is-complete>span{background:color-mix(in srgb,var(--brand) 12%,var(--surface));border-color:color-mix(in srgb,var(--brand) 34%,var(--line));color:var(--brand)}.settlement-tracking-list>div>div{display:grid;gap:2px;padding-top:3px}.settlement-tracking-list small{color:var(--muted)}.settlement-action-form{display:grid;gap:12px;padding-top:14px;border-top:1px solid var(--line)}.settlement-action-summary{display:grid;gap:4px;padding:13px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}.settlement-action-summary span,.settlement-action-summary small{color:var(--muted)}
.settlement-transaction-table{min-width:1180px}.settlement-transaction-table td{vertical-align:top}.settlement-transaction-table td small{display:block;margin-top:4px;color:var(--muted);max-width:220px;overflow-wrap:anywhere}.settlement-transactions-panel .table-scroll{overflow-x:auto;border:1px solid var(--line);border-radius:14px}.settlement-transactions-panel .table{margin:0}
.settlement-tutor-filter{display:flex;align-items:end;gap:10px;flex-wrap:wrap;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}.settlement-tutor-filter>div{display:grid;gap:4px;min-width:140px}.settlement-tutor-filter label{font-size:11px;color:var(--muted);font-weight:800}.settlement-tutor-breakdown{border-top:1px solid var(--line);padding-top:12px}.settlement-tutor-breakdown>summary{cursor:pointer;font-weight:850;color:var(--brand);padding:4px 0}.settlement-tutor-breakdown[open]>summary{margin-bottom:8px}.settlement-tutor-layout{display:grid;grid-template-columns:minmax(280px,.72fr) minmax(0,1.28fr);gap:18px;align-items:start}.settlement-payout-profile{display:grid;gap:12px}.settlement-tutor-history{display:grid;gap:12px}.settlement-sale-list{display:grid;gap:10px}.settlement-sale-card{display:grid;gap:11px;padding:14px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}.settlement-sale-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.settlement-sale-head>div{display:grid;gap:3px}.settlement-sale-head small{color:var(--muted)}.settlement-sale-values{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.settlement-sale-values>div{display:grid;gap:3px;padding:9px;border:1px solid var(--line);border-radius:10px;background:var(--surface)}.settlement-sale-values span{font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:800}.settlement-sale-values strong{font-size:13px}

@media(max-width:1180px){.settlement-kpi-grid-wide{grid-template-columns:repeat(3,minmax(0,1fr))}.settlement-history-filters{grid-template-columns:repeat(3,minmax(0,1fr))}.settlement-filter-actions{grid-column:1/-1;justify-content:flex-end}.settlement-record-financials{grid-template-columns:repeat(3,minmax(0,1fr))}.settlement-record-financials .is-total{grid-column:auto}.settlement-admin-builder{grid-template-columns:1fr}.settlement-projection-filters{grid-template-columns:1fr 90px 100px auto}}
@media(max-width:900px){.settlement-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settlement-kpi-grid-wide{grid-template-columns:repeat(2,minmax(0,1fr))}.settlement-detail-grid,.settlement-tutor-layout{grid-template-columns:1fr}.settlement-payout-profile{order:2}.settlement-tutor-history{order:1}.tax-method-options{grid-template-columns:1fr}.settlement-sale-values{grid-template-columns:repeat(2,minmax(0,1fr))}.settlement-projection-head{align-items:flex-start;display:grid}.settlement-projection-filters{width:100%;grid-template-columns:1fr 90px 100px auto}}
@media(max-width:680px){.settlement-workspace{gap:14px}.settlement-page-head{align-items:flex-start}.settlement-page-head>.inline{width:100%;justify-content:space-between;flex-wrap:wrap}.settlement-projection-filters,.settlement-history-filters{grid-template-columns:1fr}.settlement-projection-filters .button{width:100%}.settlement-filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr}.settlement-filter-actions .button{width:100%}.settlement-kpi-grid,.settlement-kpi-grid-wide,.settlement-history-kpis{grid-template-columns:1fr 1fr}.settlement-kpi{padding:13px}.settlement-kpi>strong{font-size:19px}.settlement-record-head{display:grid}.settlement-record-head .status-chip{justify-self:start}.settlement-record-financials,.settlement-record-financials-compact{grid-template-columns:1fr 1fr}.settlement-record-footer{align-items:flex-start;display:grid}.settlement-record-footer .button{width:100%}.settlement-sale-head{display:grid}.settlement-sale-head>strong{font-size:18px}.settlement-tutor-filter{display:grid;grid-template-columns:1fr 1fr}.settlement-tutor-filter>div{min-width:0}.settlement-tutor-filter .button{grid-column:1/-1;width:100%}.settlement-calculation-list>div{display:grid!important;grid-template-columns:1fr auto!important;gap:8px!important}.settlement-calculation-list dd{text-align:right!important}.tax-method-admin-default,.tax-method-effective{align-items:flex-start;display:grid}.tax-method-admin-default strong,.tax-method-effective strong{text-align:left}}
@media(max-width:460px){.settlement-kpi-grid,.settlement-kpi-grid-wide,.settlement-history-kpis{grid-template-columns:1fr}.settlement-record-financials,.settlement-record-financials-compact,.settlement-sale-values{grid-template-columns:1fr}.settlement-tutor-filter{grid-template-columns:1fr}.settlement-tutor-filter .button{grid-column:auto}.settlement-filter-actions{grid-template-columns:1fr}.settlement-calculation-list>div{grid-template-columns:1fr!important}.settlement-calculation-list dd{text-align:left!important}.settlement-projection-range{width:100%;border-radius:12px;line-height:1.4}.settlement-record-card{padding:14px}.settlement-sale-card{padding:12px}}

/* --------------------------------------------------------------------------
   UI refinement: payment detail full-width + compact settlement tables
   -------------------------------------------------------------------------- */
.payment-result-wrap{display:block;place-items:unset;min-height:auto;padding:22px 18px}
.payment-invoice-card{width:min(1240px,100%);margin:0 auto;padding:26px}
.payment-result-layout{grid-template-columns:minmax(0,1.7fr) minmax(310px,.85fr);align-items:start}
.payment-result-main,.payment-result-side{min-width:0}
.payment-result-hero{grid-template-columns:minmax(0,1.5fr) minmax(280px,.75fr)}
.payment-receipt-box .payment-info-box-head p{max-width:36ch}
.payment-receipt,.payment-summary-mini-grid{width:min(100%,380px)}
@media(max-width:1200px){.payment-invoice-card{width:min(1160px,100%)}}
@media(max-width:980px){.payment-result-wrap{padding:18px 14px}.payment-invoice-card{width:100%;padding:20px}.payment-result-layout,.payment-result-hero{grid-template-columns:1fr}.payment-result-side{order:0}.payment-receipt,.payment-summary-mini-grid{width:min(100%,460px)}}

.settlement-ledger-grouped{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.settlement-ledger-grouped.compact{grid-template-columns:1fr 1fr}
.settlement-ledger-group{padding:14px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2);min-width:0}
.settlement-ledger-group header{display:grid;gap:3px;margin-bottom:10px}.settlement-ledger-group h3{margin:0;font-size:16px}.settlement-ledger-group header small{color:var(--muted)}
.settlement-ledger-group.is-positive{background:color-mix(in srgb,var(--brand-2) 5%,var(--surface-2))}.settlement-ledger-group.is-negative{background:color-mix(in srgb,var(--brand) 3%,var(--surface-2))}
.settlement-calculation-list.compact>div{padding:8px 0}.settlement-final-row{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:14px;padding:16px 18px;border-radius:16px;border:1px solid var(--line);background:var(--surface-2)}.settlement-final-row span{font-weight:800}.settlement-final-row strong{font-size:26px;letter-spacing:-.03em;text-align:right}

.settlement-progress-card{display:grid;gap:14px;padding:15px;border:1px solid var(--line);border-radius:16px;background:var(--surface-2)}
.settlement-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.settlement-progress-head strong{font-size:15px}.settlement-progress-head small{color:var(--muted);font-weight:700}
.settlement-progress-bar{height:10px;border-radius:999px;background:var(--surface-3);overflow:hidden}.settlement-progress-bar span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--brand),var(--brand-2))}
.settlement-tracking-list.enhanced{display:grid;gap:8px}.settlement-tracking-list.enhanced>div{display:grid;grid-template-columns:40px 1fr;gap:12px;align-items:flex-start;padding:8px 0;position:relative}.settlement-tracking-list.enhanced>div:not(:last-child)::after{content:"";position:absolute;left:19px;top:42px;bottom:-8px;width:2px;background:var(--line)}
.settlement-tracking-list.enhanced>div>span{display:grid;place-items:center;width:40px;height:40px;border-radius:999px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));background:var(--surface);color:var(--brand);font-weight:900;position:relative;z-index:1}
.settlement-tracking-list.enhanced>div strong{display:block;margin-bottom:3px}.settlement-tracking-list.enhanced>div small{display:block;color:var(--muted);line-height:1.45}.settlement-tracking-list.enhanced>div.is-complete>span{background:color-mix(in srgb,var(--brand) 16%,var(--surface));border-color:color-mix(in srgb,var(--brand) 50%,var(--line))}.settlement-tracking-list.enhanced>div.is-active>span{box-shadow:0 0 0 5px color-mix(in srgb,var(--brand) 16%,transparent)}

.settlement-table-wrap{padding:0;overflow:auto}.settlement-history-table{min-width:980px}.settlement-history-table th,.settlement-history-table td{padding:12px 10px;vertical-align:top}.settlement-history-table td strong{display:block;font-size:15px;line-height:1.35}.settlement-history-table td small{display:block;color:var(--muted);line-height:1.45}.settlement-history-table td .status-chip{margin-top:7px;width:max-content}.settlement-history-table .button.small{white-space:nowrap}
.settlement-sales-table{min-width:860px}.settlement-sales-table td strong{font-size:15px}.settlement-sales-table td small{display:block;color:var(--muted)}

@media(max-width:900px){.settlement-ledger-grouped,.settlement-ledger-grouped.compact{grid-template-columns:1fr}.settlement-final-row strong{font-size:22px}.settlement-history-table{min-width:0}.settlement-history-table thead{display:none}.settlement-history-table,.settlement-history-table tbody,.settlement-history-table tr,.settlement-history-table td{display:block;width:100%}.settlement-history-table tr{border-bottom:1px solid var(--line);padding:12px}.settlement-history-table td{border:0;padding:6px 0}.settlement-history-table td::before{content:attr(data-label);display:block;margin-bottom:4px;color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;letter-spacing:.06em}.settlement-history-table td:last-child{padding-top:10px}.settlement-history-table td:last-child::before{display:none}}
@media(max-width:680px){.settlement-final-row{display:grid;gap:6px}.settlement-final-row strong{text-align:left}.settlement-progress-head{display:grid;justify-content:start}.settlement-kpi-grid-wide{grid-template-columns:1fr}.settlement-sales-table td:last-child::before{display:block}}

/* --------------------------------------------------------------------------
   Workspace utilization hotfix
   -------------------------------------------------------------------------- */
.dashboard-section>.container.settlement-workspace{
    width:calc(100% - 28px);
    max-width:none;
    margin-left:14px;
    margin-right:14px;
}

/* Public tutor profile and reusable instructor identity. */
.profile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.tutor-profile-editor{grid-column:1/-1}.tutor-profile-editor-head{display:grid;grid-template-columns:82px minmax(0,1fr);gap:16px;align-items:center}.tutor-profile-editor-head h2{margin:0 0 4px}.tutor-profile-editor-head p{margin:0}.tutor-profile-editor-avatar,.tutor-feed-avatar{display:grid;place-items:center;overflow:hidden;border-radius:50%;object-fit:cover;background:linear-gradient(135deg,var(--brand),#a65cff);color:#fff;font-weight:900}.tutor-profile-editor-avatar{width:82px;height:82px;font-size:30px}.tutor-profile-editor-actions{margin-top:18px}
.tutor-feed-page{min-height:70vh}.tutor-feed-hero{display:grid;grid-template-columns:150px minmax(0,1fr);gap:28px;align-items:center;padding:34px}.tutor-feed-avatar{width:150px;height:150px;font-size:54px;box-shadow:0 16px 42px color-mix(in srgb,var(--brand) 18%,transparent)}.tutor-feed-copy h1{margin:5px 0 8px;font-size:clamp(32px,5vw,48px);line-height:1.05}.tutor-feed-copy p{max-width:760px;margin:16px 0 0;color:var(--muted);font-size:16px;line-height:1.7;white-space:pre-line}.tutor-feed-stats{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}.tutor-feed-stats span{padding:8px 11px;border-radius:999px;background:var(--surface-2);color:var(--muted);font-size:12px}.tutor-feed-stats strong{color:var(--text)}.tutor-feed-heading{margin-top:42px}.course-card-tutor{display:inline-flex;align-items:center;min-width:0;gap:7px;color:var(--muted);text-decoration:none}.course-card-tutor img,.course-card-tutor>span{display:grid;place-items:center;flex:0 0 auto;width:25px;height:25px;border-radius:50%;object-fit:cover;background:linear-gradient(135deg,var(--brand),#a65cff);color:#fff;font-size:10px;font-weight:900}.course-card-tutor strong{max-width:155px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.course-card-tutor:hover strong,.course-card-tutor:focus-visible strong{color:var(--brand)}
@media(max-width:760px){.profile-grid{grid-template-columns:1fr}.tutor-feed-hero{grid-template-columns:92px minmax(0,1fr);gap:18px;padding:22px}.tutor-feed-avatar{width:92px;height:92px;font-size:34px}.tutor-feed-copy p,.tutor-feed-stats{grid-column:1/-1}.tutor-feed-copy h1{font-size:30px}}
@media(max-width:460px){.tutor-profile-editor-head{grid-template-columns:64px minmax(0,1fr)}.tutor-profile-editor-avatar{width:64px;height:64px}.tutor-feed-hero{grid-template-columns:1fr;text-align:center}.tutor-feed-avatar{margin-inline:auto}.tutor-feed-copy p{grid-column:auto;text-align:left}.tutor-feed-stats{justify-content:center}.tutor-profile-editor-actions .button{width:100%}.course-card .meta{align-items:center}}
.settlement-tutor-layout{
    grid-template-columns:minmax(280px,330px) minmax(0,1fr);
}
.settlement-tutor-history,.settlement-history-panel,.settlement-transactions-panel{
    min-width:0;
}
.payment-result-wrap{
    width:100%;
    max-width:none;
    padding:18px 16px 24px;
}
.payment-invoice-card{
    width:calc(100% - 4px);
    max-width:none;
    margin:0 2px;
}
.payment-result-layout{
    grid-template-columns:minmax(0,1fr) minmax(320px,360px);
}
.payment-result-hero{
    grid-template-columns:minmax(0,1fr) minmax(320px,360px);
}
.payment-result-side{
    width:100%;
}
.payment-receipt,.payment-summary-mini-grid{
    width:100%;
    max-width:none;
}
@media(max-width:1180px){
    .settlement-tutor-layout{grid-template-columns:minmax(260px,310px) minmax(0,1fr)}
}
@media(max-width:980px){
    .dashboard-section>.container.settlement-workspace{width:calc(100% - 20px);margin-left:10px;margin-right:10px}
    .settlement-tutor-layout,.payment-result-layout,.payment-result-hero{grid-template-columns:1fr}
    .payment-invoice-card{width:100%;margin:0}
}
@media(max-width:680px){
    .dashboard-section>.container.settlement-workspace{width:calc(100% - 16px);margin-left:8px;margin-right:8px}
    .payment-result-wrap{padding:10px 8px 18px}
    .payment-invoice-card{padding:14px}
}

/* Densidad del panel, filtros interactivos y navegación retraíble. */
.has-dashboard{font-size:14px}
.dashboard-section{padding-top:30px}
.dashboard-section>.container{width:min(1380px,calc(100% - 32px))}
.dashboard-sidebar{transition:width .2s ease,padding .2s ease;overflow:visible}
.dashboard-sidebar nav{height:100%;overflow:auto}
.dashboard-sidebar-toggle{position:absolute;top:12px;right:-15px;z-index:3;display:grid;place-items:center;width:30px;height:30px;border:1px solid var(--line);border-radius:50%;background:var(--surface);color:var(--text);box-shadow:0 6px 18px rgba(18,28,44,.15);cursor:pointer}
.dashboard-sidebar-toggle .direction-arrow{font-size:12px}
.dashboard-sidebar-collapsed .dashboard-sidebar{width:76px;padding-inline:10px}
.dashboard-sidebar-collapsed .dashboard-main{margin-left:76px}
.dashboard-sidebar-collapsed .has-dashboard>.platform-footer{margin-left:0}
.dashboard-sidebar-collapsed .sidebar-group{border-color:transparent;background:transparent}
.dashboard-sidebar-collapsed .sidebar-group>summary{display:none}
.dashboard-sidebar-collapsed .sidebar-group-links{display:grid;padding:0;gap:7px}
.dashboard-sidebar-collapsed .sidebar-group-links>a{justify-content:center;min-height:44px;padding:9px}
.dashboard-sidebar-collapsed .sidebar-group-links>a>b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.dashboard-sidebar-collapsed .sidebar-group-links>a>span{width:24px}
.dashboard-sidebar-collapsed .sidebar-group-links>a.active{box-shadow:inset 3px 0 var(--brand)}
.manage-course-summary>a{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:15px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);color:inherit;text-decoration:none;transition:border-color .18s ease,transform .18s ease,box-shadow .18s ease}
.manage-course-summary>a:hover,.manage-course-summary>a:focus-visible{transform:translateY(-2px);border-color:color-mix(in srgb,var(--brand) 55%,var(--line));box-shadow:0 10px 26px rgba(22,32,51,.08);outline:none}
.manage-course-summary>a.is-active{border-color:var(--brand);box-shadow:inset 0 0 0 1px var(--brand),0 10px 26px color-mix(in srgb,var(--brand) 12%,transparent)}
.manage-course-summary>a>span{font-weight:800}.manage-course-summary>a>strong{grid-row:1/3;grid-column:2;font-size:25px;line-height:1}.manage-course-summary>a>small{color:var(--muted)}
.active-table-filter{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:14px 0;padding:10px 12px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));border-radius:11px;background:color-mix(in srgb,var(--brand) 7%,var(--surface))}
.platform-footer-main{grid-template-columns:minmax(220px,.8fr) minmax(220px,.7fr) minmax(260px,.75fr);align-items:start;max-width:1180px;margin:0 auto;text-align:left}
.platform-footer-trust{display:block}.payment-brand-row{gap:9px}.payment-brand-logo{display:block;width:72px;height:24px;filter:drop-shadow(0 3px 6px rgba(14,22,37,.1))}
.platform-footer-bottom{justify-content:center;text-align:center}
.has-dashboard>.platform-footer .platform-footer-main,.has-dashboard>.platform-footer .platform-footer-bottom{padding-left:max(30px,calc((100vw - 1180px)/2 + 30px));padding-right:max(30px,calc((100vw - 1180px)/2 + 30px))}
.next-lesson-countdown{position:absolute;inset:0;z-index:8;display:grid;place-content:center;gap:7px;text-align:center;color:#fff;background:rgba(5,8,15,.82);backdrop-filter:blur(7px)}
.next-lesson-countdown span{font-size:12px;font-weight:850;letter-spacing:.14em;text-transform:uppercase;color:#bdb2ff}.next-lesson-countdown strong{font-size:clamp(24px,4vw,38px)}.next-lesson-countdown small{color:#d4daea}
.learning-course-overview{display:grid;gap:9px;min-width:0;flex:1}.learning-course-stats{display:flex;flex-wrap:wrap;gap:8px}.learning-course-stats>span{padding:6px 9px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--muted);font-size:12px}.learning-course-stats strong{color:var(--text)}
.settlement-table-filter{display:grid;grid-template-columns:auto minmax(220px,360px);align-items:center;justify-content:end;gap:10px;margin:0 0 12px}.settlement-table-filter label{font-weight:750}.settlement-transaction-table tfoot,.settlement-sales-table tfoot{background:var(--surface-2)}.settlement-transaction-table tfoot th,.settlement-sales-table tfoot th{color:var(--text);font-size:13px}
.production-reset-wrap{min-height:100vh;display:grid;place-items:center;padding:28px 16px;background:radial-gradient(circle at 20% 0,color-mix(in srgb,var(--brand) 18%,transparent),transparent 38%),var(--bg)}.production-reset-card{width:min(760px,100%);display:grid;gap:22px}.production-reset-card h1{margin:6px 0 8px;font-size:clamp(28px,5vw,44px);line-height:1.08}.production-reset-confirm{display:grid;gap:7px;padding:14px;border:1px solid color-mix(in srgb,var(--danger) 50%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--danger) 7%,var(--surface))}.production-reset-complete{text-align:center;display:grid;justify-items:center;gap:10px}.production-reset-complete>span{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:color-mix(in srgb,var(--brand-2) 18%,var(--surface));color:var(--brand-2);font-size:30px;font-weight:900}
@media(max-width:980px){.platform-footer-main{grid-template-columns:1fr 1fr}.platform-footer-trust{grid-column:1/-1}.footer-trust-card{max-width:420px}.dashboard-sidebar-collapsed .dashboard-main{margin-left:76px}}
@media(max-width:760px){.has-dashboard{font-size:15px}.dashboard-sidebar-toggle{display:none}.dashboard-sidebar-collapsed .dashboard-main{margin-left:0}.platform-footer-main{grid-template-columns:1fr;text-align:center}.platform-footer-brand{justify-items:center}.platform-footer-links{align-items:center}.platform-footer-trust{grid-column:auto}.footer-trust-card{margin-inline:auto;text-align:left}.active-table-filter{align-items:flex-start}}

/* Cierre responsive general: densidad natural al 100% de zoom y contexto útil. */
.dashboard-main,.dashboard-section,.dashboard-section>.container,.panel,.module,.form-grid>*{min-width:0}
.dashboard-section :is(p,small,strong,a,td,th,label){overflow-wrap:anywhere}
.section-head,.table-panel-heading{gap:12px;flex-wrap:wrap}
.section-head>.badge,.table-panel-heading>.badge,.activity-admin-title small{display:block;padding:0;border:0;background:transparent;color:var(--muted);font-size:11px;font-weight:750;box-shadow:none}
.activity-availability-warning{margin-top:5px!important;color:var(--warning,#a66a00)!important;font-weight:850}
.notice-inline.warning{border-color:color-mix(in srgb,var(--warning,#b77900) 38%,var(--line));background:color-mix(in srgb,var(--warning,#b77900) 8%,var(--surface));color:var(--text)}
.button-row,.inline,.activity-admin-actions{flex-wrap:wrap}
.platform-modal-card{width:100%;max-width:100%;min-width:0;max-height:calc(100dvh - 30px);overflow:auto}
.platform-modal-wide .platform-modal-card{width:100%;max-width:100%}
.platform-modal-card>*{min-width:0;max-width:100%}
.platform-modal-card .field,.platform-modal-card .rich-editor,.platform-modal-card .rich-menubar,.platform-modal-card .rich-toolbar,.platform-modal-card .rich-surface{min-width:0;max-width:100%}
.platform-modal-card .rich-menubar,.platform-modal-card .rich-toolbar{width:100%;overflow-x:auto;overscroll-behavior-inline:contain}
.platform-modal-card .platform-modal-actions{min-width:0;max-width:100%;flex-wrap:wrap}
#add-course-section{width:min(920px,calc(100vw - 30px))}
#add-course-section .rich-surface{min-height:190px}

@media(max-width:1100px){
    .dashboard-section{padding-top:24px}
    .dashboard-section>.container{width:min(100% - 24px,1380px)}
    .manage-course-summary{grid-template-columns:repeat(2,minmax(0,1fr))}
    .activity-admin-groups{grid-template-columns:1fr}
}
@media(max-width:760px){
    .dashboard-section{padding-top:18px}
    .dashboard-section>.container{width:calc(100% - 20px)}
    .section-head,.table-panel-heading{display:grid;align-items:start}
    .section-head>.inline,.table-panel-heading>.inline{width:100%;justify-content:flex-start}
    .section-head .button,.table-panel-heading .button{max-width:100%}
    .manage-course-summary{grid-template-columns:1fr}
    .manage-course-summary>a{padding:13px 14px}
    .form-grid,.legal-document-summary{grid-template-columns:1fr}
    .form-grid>.full{grid-column:auto}
    .platform-modal{padding:8px}
    .platform-modal-card,.platform-modal-wide .platform-modal-card{width:100%;max-width:100%;max-height:calc(100dvh - 16px)}
    .activity-admin-title{align-items:flex-start;gap:10px;flex-wrap:wrap}
    .activity-admin-title>.button{width:100%}
    .activity-admin-card>summary{align-items:flex-start;gap:8px}
    .settlement-table-filter{grid-template-columns:1fr;justify-content:stretch}
    .settlement-table-filter .input{width:100%}
    .learning-course-stats{display:grid;grid-template-columns:1fr 1fr;width:100%}
    .learning-course-stats>span{min-width:0}
    .has-dashboard>.platform-footer .platform-footer-main,.has-dashboard>.platform-footer .platform-footer-bottom{padding-left:16px;padding-right:16px}
}
@media(max-width:420px){
    .dashboard-section>.container{width:calc(100% - 14px)}
    .learning-course-stats{grid-template-columns:1fr}
    .button-row>.button,.stage-next>.button{width:100%}
    .platform-footer-main,.platform-footer-bottom{padding-inline:12px}
}

/* Revisión visual 2026-08-24: navegación, footer, avisos y tablas financieras. */
.dashboard-sidebar nav{height:auto;align-content:start;grid-auto-rows:max-content;overflow-y:auto}
.dashboard-sidebar-toggle{top:10px;right:8px;width:34px;height:34px;border-radius:9px;color:var(--brand)}
.dashboard-sidebar-toggle .sidebar-toggle-chevron{display:block;width:9px;height:9px;border-left:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg);transition:transform .18s ease}
.dashboard-sidebar-toggle.is-collapsed .sidebar-toggle-chevron{transform:rotate(225deg)}
.dashboard-sidebar-toggle .direction-arrow{display:none}
.dashboard-sidebar-collapsed .dashboard-sidebar{overflow:visible}
.dashboard-sidebar-collapsed .dashboard-sidebar nav{overflow:visible;gap:4px}
.dashboard-sidebar-collapsed .sidebar-group{margin:0}
.dashboard-sidebar-collapsed .sidebar-group-links{gap:3px;padding:0}
.dashboard-sidebar-collapsed .sidebar-group-links>a{min-height:40px;padding:8px}
.dashboard-sidebar:not(:has(+ .dashboard-main)) .sidebar-group-links>a[data-tooltip]::after{display:none}
.dashboard-sidebar:not(.unused) .sidebar-group-links>a[data-tooltip]::before{display:none!important}
.dashboard-sidebar:not(.unused) .sidebar-group-links>a[data-tooltip]::after{display:none}
.dashboard-sidebar-collapsed .sidebar-group-links>a[data-tooltip]::after{display:block!important;left:calc(100% + 10px);top:50%;transform:translate(0,-50%);border:0;border-radius:7px;text-align:left}
.dashboard-sidebar-collapsed .sidebar-group-links>a[data-tooltip]:hover::after,.dashboard-sidebar-collapsed .sidebar-group-links>a[data-tooltip]:focus-visible::after{transform:translate(0,-50%)}
[data-tooltip]::before{display:none!important}

.player-shell{position:relative;overflow:hidden}
.next-lesson-countdown{border-radius:inherit}
.next-lesson-countdown button{justify-self:center;margin-top:7px;padding:8px 16px;border:1px solid #ffffff70;border-radius:9px;background:#ffffff12;color:#fff;font:inherit;font-size:12px;font-weight:850;cursor:pointer}
.next-lesson-countdown button:hover,.next-lesson-countdown button:focus-visible{background:#fff;color:#121827;outline:none}
.autoplay-continuation-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:10px;margin-top:8px}.autoplay-continuation-actions button{margin-top:0}.autoplay-continuation-actions [data-autoplay-stop]{background:#111827b8;color:#fff}.autoplay-continuation-prompt small{max-width:360px;font-size:14px}

.toast-stack{top:82px;width:min(430px,calc(100vw - 28px))}
.app-toast{align-items:center;min-height:58px;padding:13px 14px;border-radius:14px;font-weight:750;line-height:1.45}
.app-toast.success{border-color:#15805e;background:#e8f8f1;color:#075b43}
.app-toast.warning{border-color:#d49a24;background:#fff7df;color:#704b00}
.app-toast.error{border-color:#ba3b54;background:#ffedf1;color:#812338}
.app-toast>span{min-width:0;overflow-wrap:anywhere}
.app-toast [data-toast-close]{border-color:currentColor;background:transparent;color:inherit;opacity:.8}
.friendly-inline-notice{color:var(--text)}
.friendly-inline-notice.is-warning{border-color:#d49a24;background:#fff7df;color:#704b00}
.friendly-inline-notice.is-warning span{color:#704b00}
html:not([data-theme=light]) .app-toast.success{border-color:#28765f;background:#123d31;color:#c9f7e7}
html:not([data-theme=light]) .app-toast.warning{border-color:#8f6b25;background:#3f3217;color:#ffe7a8}
html:not([data-theme=light]) .app-toast.error{border-color:#81374a;background:#401d27;color:#ffcbd6}
html:not([data-theme=light]) .friendly-inline-notice.is-warning{border-color:#8f6b25;background:#3f3217;color:#ffe7a8}
html:not([data-theme=light]) .friendly-inline-notice.is-warning span{color:#ffe7a8}

.platform-footer{margin-top:40px!important;border:0!important;border-radius:0!important;background:#101017!important;color:#fff!important;box-shadow:none!important;overflow:visible}
.platform-footer-main{display:flex;align-items:center;justify-content:space-between;gap:32px;width:min(1180px,calc(100% - 40px));max-width:none;margin:0 auto;padding:30px 0!important;text-align:left}
.platform-footer-brand{max-width:360px}
.platform-footer-brand p{color:#f1f1f5}
.platform-footer-logo strong,.platform-footer-logo small{color:#fff}
.platform-footer-domain{color:#fff}
.platform-footer-domain:hover{color:#fff}
.platform-footer-payments{display:grid;justify-items:end;gap:8px}
.platform-footer-payments>span{color:#fff;font-size:10px;font-weight:850;letter-spacing:.08em;text-transform:uppercase}
.payment-brand-row{display:flex;align-items:center;gap:7px}
.payment-brand-logo{display:block;width:54px;height:24px;filter:none}
.platform-footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:24px;width:min(1180px,calc(100% - 40px));margin:0 auto;padding:17px 0!important;border-top:1px solid rgba(255,255,255,.18);background:transparent;color:#fff;text-align:left}
.platform-footer-bottom>span{font-size:11px}
.platform-footer-legal{display:flex;align-items:center;justify-content:flex-end;gap:22px;flex-wrap:wrap}
.platform-footer-legal a{color:#fff;font-size:11px;font-weight:800;text-decoration:none}
.platform-footer-legal a:hover{text-decoration:underline}
.has-dashboard>.platform-footer .platform-footer-main,.has-dashboard>.platform-footer .platform-footer-bottom{padding-left:0!important;padding-right:0!important}

.table{width:100%;table-layout:auto}
.table th,.table td{white-space:normal!important;overflow-wrap:break-word;word-break:normal;line-height:1.42}
.table th{vertical-align:bottom}
.table td strong,.table td small{white-space:normal;overflow-wrap:anywhere}
.settlement-transaction-table{min-width:1320px}
.settlement-transaction-table th:nth-child(1),.settlement-transaction-table td:nth-child(1){min-width:145px}
.settlement-transaction-table th:nth-child(2),.settlement-transaction-table td:nth-child(2){min-width:180px}
.settlement-transaction-table th:nth-child(3),.settlement-transaction-table td:nth-child(3){min-width:190px}
.settlement-transaction-table th:nth-child(n+4),.settlement-transaction-table td:nth-child(n+4){min-width:128px}
.settlement-history-table th,.settlement-history-table td{min-width:125px}
.settlement-history-table th:nth-child(2),.settlement-history-table td:nth-child(2),.settlement-history-table th:nth-child(3),.settlement-history-table td:nth-child(3){min-width:165px}
.column-help{display:inline-flex;align-items:center;gap:5px;cursor:help}
.column-help>i{display:inline-grid;place-items:center;width:16px;height:16px;border:1px solid var(--line);border-radius:50%;color:var(--muted);font-size:10px;font-style:normal}
.column-help[data-tooltip]::after{font-weight:650;text-transform:none;letter-spacing:0;white-space:normal;min-width:210px}
.table-count{margin:5px 0 0;color:var(--muted);font-size:12px;font-weight:750}
.settlement-table-wrap tfoot{background:transparent}
.settlement-table-wrap tfoot tr{border-top:2px solid color-mix(in srgb,var(--brand) 35%,var(--line));background:color-mix(in srgb,var(--brand) 5%,var(--surface-2))}
.settlement-table-wrap tfoot th,.settlement-table-wrap tfoot td{padding-top:14px;padding-bottom:14px;font-size:12px}
.settlement-ledger-grouped>.is-positive{order:0}
.settlement-ledger-grouped>.is-negative{order:1}

@media(max-width:760px){
    .platform-footer-main{display:grid;justify-items:start;width:calc(100% - 32px);padding:26px 0!important;text-align:left}
    .platform-footer-brand{justify-items:start}
    .platform-footer-payments{justify-items:start}
    .platform-footer-bottom{display:grid;justify-items:start;width:calc(100% - 32px);padding:16px 0!important}
    .platform-footer-legal{justify-content:flex-start;gap:12px 18px}
    .toast-stack{top:74px;right:10px;width:calc(100vw - 20px)}
}
@media(max-width:680px){
    .settlement-table-wrap,.settlement-transactions-panel>.table-scroll{overflow:visible}
    .settlement-transaction-table,.settlement-history-table{min-width:0}
    .settlement-table-wrap tfoot,.settlement-transactions-panel tfoot{display:block;margin-top:12px}
    .settlement-table-wrap tfoot tr,.settlement-transactions-panel tfoot tr{display:grid;grid-template-columns:1fr;padding:14px;border:1px solid color-mix(in srgb,var(--brand) 35%,var(--line));border-radius:13px}
    .settlement-table-wrap tfoot th,.settlement-table-wrap tfoot td,.settlement-transactions-panel tfoot th,.settlement-transactions-panel tfoot td{display:none}
    .settlement-table-wrap tfoot th:first-child,.settlement-table-wrap tfoot td:last-child,.settlement-transactions-panel tfoot th:first-child,.settlement-transactions-panel tfoot td:last-child{display:grid;grid-template-columns:1fr;padding:5px;border:0}
    .settlement-table-wrap tfoot td:last-child,.settlement-transactions-panel tfoot td:last-child{font-size:18px}
}
@media(hover:none){
    .dashboard-sidebar-collapsed .sidebar-group-links>a[data-tooltip]::after{position:fixed;left:50%;right:auto;top:auto;bottom:18px;transform:translate(-50%,8px);max-width:calc(100vw - 28px)}
    .dashboard-sidebar-collapsed .sidebar-group-links>a[data-tooltip].tooltip-visible::after,.dashboard-sidebar-collapsed .sidebar-group-links>a[data-tooltip]:focus-visible::after{transform:translate(-50%,0)}
}

/* Operaciones y pagos del tutor: tabla financiera limpia y adaptable. */
.tutor-operations-panel{padding:0;overflow:hidden}
.tutor-operations-heading{margin:0;padding:24px 26px 20px;border-bottom:1px solid var(--line)}
.tutor-operations-heading h2{margin-bottom:5px}
.tutor-operations-total{display:grid;justify-items:end;gap:1px;min-width:145px;padding:10px 14px;border:1px solid color-mix(in srgb,var(--brand) 28%,var(--line));border-radius:12px;background:color-mix(in srgb,var(--brand) 6%,var(--surface-2))}
.tutor-operations-total strong{font-size:24px;line-height:1;color:var(--text)}
.tutor-operations-total span{color:var(--muted);font-size:11px;font-weight:750}
.payment-operation-filters{display:grid;grid-template-columns:minmax(190px,1.25fr) minmax(175px,1fr) minmax(175px,1fr) minmax(135px,.8fr) 145px 145px auto;gap:10px;align-items:end;padding:16px 20px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.payment-operation-filters .field{display:grid;gap:7px;min-width:0;margin:0}
.payment-operation-filters .field label{font-size:10px;font-weight:850;letter-spacing:.045em;color:var(--text)}
.payment-operation-filters .input,.payment-operation-filters .select{width:100%;min-width:0}
.payment-operation-filter-actions{display:flex;gap:8px;align-items:center;min-width:max-content}
.payment-operation-filter-actions .button{white-space:nowrap}
.tutor-operations-table-panel{border:0;border-radius:0;background:transparent;box-shadow:none}
.tutor-operations-table-panel>.table-scroll{margin:0;overflow:auto}
.tutor-operations-table{min-width:1280px;margin:0}
.tutor-operations-table thead{background:var(--surface-2)}
.tutor-operations-table th{padding:12px 14px;border-bottom:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:850;letter-spacing:.075em;text-transform:uppercase}
.tutor-operations-table td{padding:18px 14px;border-bottom:1px solid var(--line);vertical-align:top}
.tutor-operations-table tbody tr{transition:background .16s ease}
.tutor-operations-table tbody tr:hover{background:color-mix(in srgb,var(--brand) 3%,var(--surface))}
.tutor-operations-table th:nth-child(1),.tutor-operations-table td:nth-child(1){min-width:205px}
.tutor-operations-table th:nth-child(2),.tutor-operations-table td:nth-child(2){min-width:185px}
.tutor-operations-table th:nth-child(3),.tutor-operations-table td:nth-child(3){min-width:170px}
.tutor-operations-table th:nth-child(4),.tutor-operations-table td:nth-child(4){min-width:210px}
.tutor-operations-table th:nth-child(5),.tutor-operations-table td:nth-child(5){min-width:165px}
.tutor-operations-table th:nth-child(6),.tutor-operations-table td:nth-child(6){min-width:180px}
.tutor-operations-table th:nth-child(7),.tutor-operations-table td:nth-child(7){width:68px;min-width:68px;text-align:right}
.tutor-operation-person{display:flex;align-items:center;gap:10px;min-width:0}
.tutor-operation-person>div{display:grid;min-width:0;gap:2px}
.tutor-operation-person strong{font-size:13px}
.tutor-operation-person small{color:var(--muted);font-size:11px}
.tutor-operation-course{display:inline-flex;max-width:100%;margin-top:10px;padding:5px 8px;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--text);font-size:11px;font-weight:750;line-height:1.35}
.tutor-operation-stack{display:grid;gap:3px}
.tutor-operation-stack>strong{font-size:13px}
.tutor-operation-stack>small{color:var(--muted);font-size:11px}
.tutor-operation-stack .payment-intent-reference{display:grid;gap:2px;margin-top:7px;padding-top:7px;border-top:1px dashed var(--line);font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:10px;overflow-wrap:anywhere}
.tutor-operation-stack .payment-intent-reference span{font-family:inherit;font-weight:800;color:var(--text)}
.tutor-operation-amount{display:grid;gap:2px;margin-bottom:9px}
.tutor-operation-amount strong{font-size:17px;line-height:1.15;color:var(--text)}
.tutor-operation-amount span{color:var(--muted);font-size:10px;font-weight:750;text-transform:uppercase;letter-spacing:.05em}
.tutor-operation-breakdown{display:grid;gap:0;margin:0}
.tutor-operation-breakdown>div{display:flex;align-items:flex-start;justify-content:space-between;gap:9px;padding:5px 0;border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
.tutor-operation-breakdown dt{color:var(--muted);font-size:10px;line-height:1.35}
.tutor-operation-breakdown dd{margin:0;color:var(--text);font-size:10px;font-weight:800;text-align:right;white-space:nowrap}
.tutor-operation-fees>div:first-child{border-top:0;padding-top:0}
.tutor-operation-placeholder{display:block;padding:10px;border:1px dashed var(--line);border-radius:9px;color:var(--muted);font-size:11px;line-height:1.45}
.tutor-operation-timeline{display:grid;gap:8px;margin:0;padding:0;list-style:none}
.tutor-operation-timeline li{position:relative;display:grid;gap:1px;padding-left:13px}
.tutor-operation-timeline li::before{content:"";position:absolute;left:0;top:5px;width:6px;height:6px;border-radius:50%;background:var(--brand)}
.tutor-operation-timeline li:not(:last-child)::after{content:"";position:absolute;left:2.5px;top:12px;bottom:-7px;width:1px;background:var(--line)}
.tutor-operation-timeline span{font-size:10px;font-weight:800;color:var(--text)}
.tutor-operation-timeline time{color:var(--muted);font-size:10px;white-space:nowrap}
.tutor-operation-status{display:grid;justify-items:start;gap:8px}
.tutor-operation-status small{color:var(--muted);font-size:10px;line-height:1.45}
.tutor-operation-actions .action-menu{margin-left:auto}
.tutor-operations-table-panel>.infinite-pagination{padding:14px 20px}

@media(max-width:1260px){
    .payment-operation-filters{grid-template-columns:repeat(3,minmax(0,1fr))}
    .payment-operation-filter-actions{grid-column:1/-1;justify-content:flex-start}
}
@media(max-width:760px){
    .payment-operation-filters{grid-template-columns:1fr;padding:15px 16px}
    .payment-operation-filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr;min-width:0}
    .payment-operation-filter-actions .button{width:100%;min-width:0}
    .tutor-operations-heading{padding:20px 16px}
    .tutor-operations-total{justify-items:start;width:100%}
    .tutor-operations-table-panel>.table-scroll{overflow:visible}
    .tutor-operations-table{display:block;min-width:0;padding:12px;background:var(--surface-2)}
    .tutor-operations-table thead{display:none}
    .tutor-operations-table tbody{display:grid;gap:12px}
    .tutor-operations-table tbody tr{display:grid;border:1px solid var(--line);border-radius:14px;background:var(--surface);box-shadow:0 7px 20px color-mix(in srgb,var(--text) 6%,transparent);overflow:visible}
    .tutor-operations-table tbody tr:hover{background:var(--surface)}
    .tutor-operations-table td,.tutor-operations-table td:nth-child(n){display:grid;grid-template-columns:minmax(105px,.34fr) minmax(0,1fr);gap:10px;width:auto;min-width:0;padding:13px 14px;border:0;border-bottom:1px solid var(--line);text-align:left}
    .tutor-operations-table td:last-child{border-bottom:0}
    .tutor-operations-table td::before{content:attr(data-label);grid-column:1;color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.07em;text-transform:uppercase}
    .tutor-operations-table td>*{grid-column:2;min-width:0}
    .tutor-operation-course{justify-self:start}
    .tutor-operation-actions .action-menu{margin-left:0}
    .tutor-operations-table .empty-state{grid-column:1/-1}
}
@media(max-width:440px){
    .tutor-operations-table{padding:8px}
    .tutor-operations-table td,.tutor-operations-table td:nth-child(n){grid-template-columns:1fr;gap:6px;padding:12px}
    .tutor-operations-table td::before,.tutor-operations-table td>*{grid-column:1}
}

/* Filtros de participantes: distribución propia, sin columnas heredadas. */
.participant-filters{display:grid;grid-template-columns:minmax(260px,1.45fr) minmax(210px,1fr) minmax(210px,.85fr) auto;align-items:end;gap:14px;margin:0 0 16px;padding:18px 20px}
.participant-filters .field{display:grid;gap:7px;min-width:0;margin:0}
.participant-filters .field label{font-size:11px;font-weight:850;color:var(--text)}
.participant-filters .select{width:100%;min-width:0}
.participant-filter-actions{display:flex;align-items:center;justify-content:flex-end;gap:9px;min-width:max-content}
.participant-filter-actions .button{min-width:92px;white-space:nowrap}
.participant-table-heading{margin:0;padding:17px 20px 14px;border-bottom:1px solid var(--line)}
.participant-table-heading h2{margin:0 0 4px}
.participant-table-heading p{margin:0}

@media(max-width:1080px){
    .participant-filters{grid-template-columns:repeat(2,minmax(0,1fr))}
    .participant-filter-actions{grid-column:1/-1;justify-content:flex-start}
}
@media(max-width:680px){
    .participant-filters{grid-template-columns:1fr;padding:15px}
    .participant-filter-actions{grid-column:auto;display:grid;grid-template-columns:1fr 1fr;min-width:0}
    .participant-filter-actions .button{width:100%;min-width:0}
    .participant-filter-actions .button:only-child{grid-column:1/-1}
    .participant-table-heading{padding:15px}
}

/* Ajustes generales de marca y representación global del logotipo. */
.logo-mark,.payment-icon{background:linear-gradient(135deg,var(--brand),var(--site-accent,var(--brand-2)))}
.site-brand-logo{display:block;flex:0 0 auto;width:auto;max-width:150px;height:38px;object-fit:contain}
.platform-footer-logo .site-brand-logo{max-width:170px;height:42px}

/* Header y footer compartidos: distribución final, profesional y responsive. */
.topbar{height:76px;padding:0 24px;box-shadow:0 1px 0 color-mix(in srgb,var(--line) 78%,transparent),0 8px 30px rgba(15,23,42,.035)}
.topbar-shell{display:grid;grid-template-columns:minmax(600px,1fr) minmax(320px,460px) auto;align-items:center;gap:30px;width:min(1600px,100%);height:100%;margin:0 auto}
.topbar-primary{display:flex;align-items:center;gap:32px;min-width:0}
.topbar .logo{flex:0 0 auto;min-width:0}
.topbar .logo .site-brand-logo{max-width:180px;height:42px}
.topbar .nav{align-items:center;gap:5px;min-width:0}
.topbar .nav a{position:relative;padding:10px 12px;border-radius:9px;font-size:13px;font-weight:750;white-space:nowrap;transition:color .16s ease,background .16s ease}
.topbar .nav a:hover,.topbar .nav a:focus-visible,.topbar .nav a.is-active{color:var(--text);background:color-mix(in srgb,var(--brand) 7%,var(--surface-2));outline:none}
.topbar .nav a.is-active::after{content:"";position:absolute;left:11px;right:11px;bottom:4px;height:2px;border-radius:999px;background:var(--brand)}
.welcome-header{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:20px;min-width:0;max-width:none;margin:0;padding-left:24px;border-left:1px solid var(--line)}
.welcome-header-identity{display:grid;gap:3px;min-width:0;line-height:1.1}
.welcome-header-identity>span{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;color:var(--muted)}
.welcome-header-identity>span strong{color:var(--text)}
.welcome-header-identity>small{width:max-content;padding:3px 7px;border-radius:999px;background:color-mix(in srgb,var(--brand) 10%,var(--surface-2));color:var(--brand);font-size:9px;font-weight:900;letter-spacing:.04em}
.welcome-header .header-progress{display:grid!important;grid-template-columns:1fr!important;gap:7px!important;min-width:0;margin:0!important;padding:8px 10px;border-radius:10px;color:var(--muted);text-decoration:none;transition:background .16s ease}
.welcome-header .header-progress:hover,.welcome-header .header-progress:focus-visible{background:var(--surface-2);outline:none}
.header-progress-copy{display:flex;align-items:center;justify-content:space-between;gap:16px;min-width:0;font-size:11px}
.header-progress-copy em{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap!important;font-style:normal}
.header-progress-copy strong{flex:0 0 auto;color:var(--text);font-size:10px}
.welcome-header .progress{width:100%;height:5px}
.topbar .account{gap:10px;margin:0}
.topbar .profile-menu>summary{min-height:40px;border-radius:11px}
.topbar .profile-menu-name{max-width:145px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.platform-footer{margin-top:56px!important;background:linear-gradient(135deg,#0d1019 0%,#12131d 55%,#17131d 100%)!important}
.platform-footer-main{display:grid;grid-template-columns:minmax(280px,1.35fr) minmax(150px,.65fr) minmax(240px,.8fr);align-items:start;gap:clamp(32px,6vw,84px);width:min(1180px,calc(100% - 40px));padding:46px 0 38px!important}
.platform-footer-brand{max-width:420px;gap:12px}
.platform-footer-brand p{max-width:410px;color:#c9cbd4;line-height:1.65}
.platform-footer-domain{padding-bottom:2px;border-bottom:1px solid rgba(255,255,255,.35)}
.platform-footer-navigation,.platform-footer-payments{display:grid;align-content:start;justify-items:start;gap:10px;min-width:0}
.platform-footer-title{margin-bottom:5px;color:#9296a5!important;font-size:10px!important;font-weight:900!important;letter-spacing:.11em!important;text-transform:uppercase}
.platform-footer-navigation a{position:relative;width:max-content;max-width:100%;color:#f7f7fa;text-decoration:none;font-size:12px;font-weight:750}
.platform-footer-navigation a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:1px;background:var(--brand);transition:right .18s ease}
.platform-footer-navigation a:hover::after,.platform-footer-navigation a:focus-visible::after{right:0}
.platform-footer-navigation a:focus-visible{outline:2px solid var(--brand);outline-offset:4px;border-radius:2px}
.platform-footer-payments{justify-items:start}
.platform-footer-payments small{max-width:260px;color:#aeb1bd;font-size:11px;line-height:1.55}
.payment-brand-row{gap:10px;margin:0;min-height:28px}
.payment-brand-logo{width:62px;height:28px;border:1px solid rgba(255,255,255,.09);border-radius:5px;box-shadow:0 7px 20px rgba(0,0,0,.16)}
.platform-footer-bottom{width:min(1180px,calc(100% - 40px));padding:18px 0 22px!important;border-top-color:rgba(255,255,255,.12);color:#aeb1bd}
.platform-footer-bottom>span{font-size:11px;line-height:1.5}
.platform-footer-legal{gap:10px 24px}
.platform-footer-legal a{color:#d9dae1;font-size:11px;font-weight:700}
.platform-footer-legal a:hover,.platform-footer-legal a:focus-visible{color:#fff;text-decoration:none;outline:none}

@media(max-width:1100px){
    .topbar-shell{grid-template-columns:minmax(0,1fr) auto;gap:16px}
    .welcome-header{display:none}
    .platform-footer-main{grid-template-columns:minmax(260px,1.2fr) minmax(150px,.6fr) minmax(220px,.8fr);gap:36px}
}
@media(max-width:1380px) and (min-width:1101px){
    .topbar{padding-inline:18px}
    .topbar-shell{grid-template-columns:minmax(0,1fr) minmax(230px,300px) auto;gap:16px}
    .topbar-primary{gap:16px}
    .topbar .nav{gap:1px}
    .topbar .nav a{padding-inline:8px}
    .welcome-header{grid-template-columns:minmax(0,1fr);padding-left:14px}
    .welcome-header-identity{display:none}
    .topbar .profile-menu-name{max-width:100px}
}
@media(max-width:820px){
    .topbar-primary{gap:12px}
    .topbar .nav a{padding-inline:8px}
    .topbar .profile-menu-name{display:none}
    .platform-footer-main{grid-template-columns:minmax(240px,1fr) minmax(150px,.7fr);gap:34px}
    .platform-footer-payments{grid-column:1/-1}
    .platform-footer-bottom{align-items:flex-start}
}
@media(max-width:680px){
    .topbar{height:64px;min-height:64px;padding:0 12px;flex-wrap:nowrap}
    .topbar-shell{display:flex;gap:8px}
    .topbar-primary{flex:1 1 auto;min-width:0}
    .topbar .logo>span:last-child{display:none}
    .topbar .logo .site-brand-logo{max-width:92px;height:34px}
    .topbar .nav{flex:1 1 auto;width:auto;order:initial;overflow-x:auto;scrollbar-width:none}
    .topbar .nav::-webkit-scrollbar{display:none}
    .topbar .nav a{padding:8px 7px;font-size:12px}
    .topbar .account{flex:0 0 auto}
    .topbar .header-cart,.topbar .icon-button{width:36px;height:36px}
    .topbar .profile-menu>summary{min-height:36px;padding:2px}
    .topbar .profile-menu>summary .direction-arrow{display:none}
    .topbar .profile-avatar{width:30px;height:30px}
    .platform-footer-main{grid-template-columns:1fr;gap:28px;width:calc(100% - 32px);padding:36px 0 30px!important}
    .platform-footer-brand,.platform-footer-brand p{max-width:100%}
    .platform-footer-payments{grid-column:auto}
    .platform-footer-bottom{display:grid;justify-items:start;gap:14px;width:calc(100% - 32px);padding:18px 0 24px!important}
    .platform-footer-legal{justify-content:flex-start;gap:12px 18px}
}
.site-settings-workspace{max-width:1180px}
.site-settings-form{display:grid;gap:20px}
.site-settings-panel{padding:0;overflow:hidden}
.site-settings-panel-heading{padding:20px 22px 16px;border-bottom:1px solid var(--line);background:var(--surface-2)}
.site-settings-panel-heading h2{margin:3px 0 4px;font-size:23px}
.site-settings-panel-heading p{margin:0}
.site-settings-panel>.form-grid,.site-settings-panel>.site-color-grid{padding:8px 22px 22px}
.site-brand-assets{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding:22px}
.site-brand-asset{display:grid;align-content:start;gap:12px;min-width:0;padding:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.site-brand-asset.is-social{grid-column:1/-1}
.site-brand-asset .field{margin:0}
.site-brand-asset-preview{display:grid;place-items:center;min-height:112px;border:1px dashed var(--line);border-radius:11px;background:var(--surface);overflow:hidden}
.site-brand-asset-preview img{display:block;width:100%;height:100%;max-height:180px;object-fit:contain}
.site-brand-asset-preview.is-logo>span{display:grid;place-items:center;min-width:58px;height:58px;padding:0 12px;border-radius:13px;background:linear-gradient(135deg,var(--brand),var(--site-accent,var(--brand-2)));color:#fff;font-weight:900}
.site-brand-asset-preview.is-favicon{min-height:112px}
.site-brand-asset-preview.is-favicon img{width:64px;height:64px}
.site-brand-asset-preview.is-favicon>span{display:grid;place-items:center;width:54px;height:54px;border-radius:12px;background:var(--brand);color:#fff;font-weight:900}
.site-brand-asset-preview.is-social{aspect-ratio:1200/630;max-height:none}
.site-brand-asset-preview.is-social img{max-height:none;object-fit:cover}
.site-brand-asset-preview.is-social>div{display:grid;gap:5px;justify-items:center;color:var(--muted)}
.site-brand-asset-preview.is-social strong{color:var(--text);font-size:18px}
.site-color-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.site-color-field{display:grid;gap:9px;padding:15px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);font-weight:800}
.site-color-control{display:flex;align-items:center;gap:12px}
.site-color-control input{width:56px;height:42px;padding:3px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer}
.site-color-control output{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;color:var(--muted);text-transform:uppercase}
.site-settings-actions{position:sticky;bottom:14px;z-index:5;display:flex;justify-content:flex-end;padding:12px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 92%,transparent);box-shadow:var(--shadow);backdrop-filter:blur(12px)}
@media(max-width:760px){
    .site-brand-logo{max-width:118px;height:34px}
    .site-brand-assets,.site-color-grid{grid-template-columns:1fr}
    .site-brand-asset.is-social{grid-column:auto}
    .site-settings-panel>.form-grid,.site-settings-panel>.site-color-grid,.site-brand-assets{padding:15px}
    .site-settings-panel-heading{padding:17px 15px 14px}
    .site-settings-actions .button{width:100%}
}

/* Tooltips de encabezados: se mantienen dentro del área visible. */
.column-help[data-tooltip]{position:relative;display:inline-flex;align-items:center;gap:4px}
.column-help[data-tooltip]::after{width:max-content;max-width:250px;white-space:normal;overflow-wrap:break-word;line-height:1.35;text-align:left}
.table th:first-child .column-help[data-tooltip]::after{left:0;right:auto;transform:translateY(7px)}
.table th:last-child .column-help[data-tooltip]::after{left:auto;right:0;transform:translateY(7px)}
.table th:first-child .column-help[data-tooltip]:hover::after,.table th:first-child .column-help[data-tooltip]:focus::after,.table th:last-child .column-help[data-tooltip]:hover::after,.table th:last-child .column-help[data-tooltip]:focus::after{transform:translateY(0)}

/* Invitaciones: formulario y tabla con jerarquía clara y respuesta móvil real. */
.invitation-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}
.invitation-bulk-actions{display:flex;gap:8px;flex-wrap:wrap}
.invitation-transfer-note{display:grid;grid-template-columns:minmax(150px,.3fr) minmax(0,1fr);gap:14px;align-items:start;padding:16px 18px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.invitation-transfer-note span{line-height:1.55}
.invitation-table{min-width:1160px;table-layout:auto}
.invitation-table th,.invitation-table td{vertical-align:top}
.invitation-table td{overflow-wrap:anywhere}
.invitation-table td[data-label="Estado"],.invitation-table td[data-label="Usuario / último uso"]{min-width:170px}
.invitation-table td[data-label="Acciones"]{width:76px}
.invitation-dialog-card{width:min(760px,calc(100vw - 28px));max-height:min(88vh,900px);overflow:auto}
.invitation-form-grid{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
.invitation-dialog-actions{position:sticky;bottom:0;padding-top:12px;background:var(--surface)}
@media(max-width:820px){
    .invitation-transfer-note{grid-template-columns:1fr}
    .invitation-form-grid{grid-template-columns:1fr}
    .invitation-bulk-actions{width:100%}
    .invitation-bulk-actions .button{flex:1 1 140px}
    .invitation-table-panel .table-scroll{overflow:visible}
    .invitation-table{display:block;min-width:0;padding:10px;background:var(--surface-2)}
    .invitation-table thead{display:none}
    .invitation-table tbody{display:grid;gap:12px}
    .invitation-table tbody tr{display:grid;border:1px solid var(--line);border-radius:14px;background:var(--surface);overflow:hidden}
    .invitation-table td,.invitation-table td[data-label]{display:grid;grid-template-columns:minmax(105px,.35fr) minmax(0,1fr);gap:8px;width:auto;min-width:0;padding:12px 14px;border:0;border-bottom:1px solid var(--line)}
    .invitation-table td:last-child{border-bottom:0}
    .invitation-table td::before{content:attr(data-label);color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.06em;text-transform:uppercase}
    .invitation-table td>*{grid-column:2}
    .invitation-select-cell{display:none!important}
}
@media(max-width:480px){
    .invitation-table td,.invitation-table td[data-label]{grid-template-columns:1fr}
    .invitation-table td>*{grid-column:1}
}

/* Detalle del curso: metadata identificable y destacada. */
.course-detail-meta-line{gap:9px;margin-top:17px}
.course-detail-meta-item{display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:6px 10px;border:1px solid rgba(255,255,255,.14);border-radius:9px;background:rgba(255,255,255,.065);color:#bfc7d8;line-height:1.25;backdrop-filter:blur(5px)}
.course-detail-meta-item>span{font-size:10px;font-weight:750;letter-spacing:.025em}
.course-detail-meta-item>strong{color:#fff;font-size:11px;font-weight:850}
.course-detail-meta-item.is-highlighted{border-color:color-mix(in srgb,var(--brand) 52%,rgba(255,255,255,.18));background:color-mix(in srgb,var(--brand) 16%,rgba(255,255,255,.055));box-shadow:inset 0 1px rgba(255,255,255,.06)}
@media(max-width:520px){
    .course-detail-meta-line{display:grid;grid-template-columns:1fr 1fr;width:100%}
    .course-detail-meta-item{justify-content:flex-start;min-width:0}
    .course-detail-meta-item:first-child{grid-column:1/-1}
}

/* Navegación móvil global y cierre responsive del sistema. */
.mobile-menu-toggle,.dashboard-sidebar-mobile-heading,.dashboard-sidebar-mobile-account,.mobile-site-navigation{display:none}
.mobile-navigation-backdrop[hidden]{display:none!important}

@media(max-width:900px){
    html,body{max-width:100%;overflow-x:clip}
    body.mobile-navigation-open{overflow:hidden;touch-action:none}
    .topbar,.has-dashboard .topbar{position:sticky!important;inset:auto!important;top:0!important;z-index:130;height:64px;min-height:64px;padding:0 14px}
    .has-dashboard .dashboard-main{padding-top:0!important}
    .dashboard-section{padding-top:14px!important}
    .topbar-shell{display:flex;width:100%;gap:10px}
    .topbar-primary{flex:1 1 auto;min-width:0}
    .topbar .nav,.topbar .account,.welcome-header{display:none!important}
    .topbar .logo{max-width:calc(100vw - 86px)}
    .topbar .logo>span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .topbar .logo .site-brand-logo{max-width:min(180px,calc(100vw - 100px));height:38px}
    .mobile-menu-toggle{display:grid;flex:0 0 44px;align-content:center;justify-items:center;gap:5px;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--surface-2);color:var(--text);box-shadow:0 5px 16px color-mix(in srgb,var(--text) 9%,transparent);cursor:pointer}
    .mobile-menu-toggle>span{display:block;width:21px;height:2px;border-radius:999px;background:currentColor;transition:transform .18s ease,opacity .18s ease}
    .mobile-menu-toggle.is-open>span:nth-child(1){transform:translateY(7px) rotate(45deg)}
    .mobile-menu-toggle.is-open>span:nth-child(2){opacity:0}
    .mobile-menu-toggle.is-open>span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
    .mobile-navigation-backdrop{position:fixed;inset:0;z-index:138;display:block;border:0;background:rgba(7,12,22,.58);backdrop-filter:blur(3px);cursor:pointer}
    .mobile-site-navigation,.dashboard-sidebar{position:fixed!important;inset:0 0 0 auto!important;z-index:140!important;display:flex!important;flex-direction:column;width:min(390px,calc(100vw - 28px))!important;height:100dvh!important;max-height:100dvh!important;margin:0!important;padding:0!important;border:0!important;border-left:1px solid var(--line)!important;border-radius:0!important;background:var(--surface)!important;color:var(--text)!important;box-shadow:-22px 0 55px rgba(7,12,22,.24)!important;overflow:hidden!important;transform:translateX(104%);visibility:hidden;transition:transform .22s ease,visibility .22s ease}
    .mobile-site-navigation.is-open,.dashboard-sidebar.is-open{transform:translateX(0);visibility:visible}
    .mobile-navigation-heading,.dashboard-sidebar-mobile-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:76px;padding:15px 16px;border-bottom:1px solid var(--line);background:var(--surface-2)}
    .mobile-navigation-heading>div,.dashboard-sidebar-mobile-heading>div{display:grid;gap:3px}
    .mobile-navigation-heading strong,.dashboard-sidebar-mobile-heading strong{font-size:18px}
    .mobile-navigation-heading>button,.dashboard-sidebar-mobile-heading>button{display:grid;place-items:center;width:42px;height:42px;padding:0;border:1px solid var(--line);border-radius:11px;background:var(--surface);color:var(--text);font-size:27px;line-height:1;cursor:pointer}
    .mobile-navigation-links{display:grid;align-content:start;gap:6px;min-height:0;padding:14px;overflow:auto}
    .mobile-navigation-links>a,.mobile-navigation-account>a,.mobile-navigation-account>button,.mobile-navigation-account form>button,.dashboard-sidebar-mobile-account>a,.dashboard-sidebar-mobile-account>button,.dashboard-sidebar-mobile-account form>button{display:flex;align-items:center;gap:11px;width:100%;min-height:46px;padding:10px 12px;border:0;border-radius:11px;background:transparent;color:var(--text);font:inherit;font-weight:800;text-align:left;text-decoration:none;cursor:pointer}
    .mobile-navigation-links>a:hover,.mobile-navigation-links>a:focus-visible,.mobile-navigation-links>a.active,.mobile-navigation-account :is(a,button):hover,.mobile-navigation-account :is(a,button):focus-visible,.dashboard-sidebar-mobile-account :is(a,button):hover,.dashboard-sidebar-mobile-account :is(a,button):focus-visible{background:color-mix(in srgb,var(--brand) 10%,var(--surface-2));color:var(--text);outline:none}
    .mobile-navigation-links>a.active{box-shadow:inset 3px 0 var(--brand)}
    .mobile-navigation-links .app-icon,.mobile-navigation-account .app-icon,.dashboard-sidebar-mobile-account .app-icon{flex:0 0 auto;width:20px;height:20px;color:var(--brand)}
    .mobile-navigation-account,.dashboard-sidebar-mobile-account{display:grid;gap:4px;margin-top:auto;padding:14px;border-top:1px solid var(--line);background:var(--surface-2)}
    .mobile-navigation-account form,.dashboard-sidebar-mobile-account form{margin:0}
    .mobile-navigation-account>.button{justify-content:center;color:#fff}
    .mobile-navigation-user{display:flex;align-items:center;gap:11px;min-width:0;padding:5px 8px 12px}
    .mobile-navigation-user>span:last-child{display:grid;min-width:0;gap:2px}
    .mobile-navigation-user strong,.mobile-navigation-user small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
    .mobile-navigation-user small{color:var(--muted)}

    .dashboard-sidebar>.dashboard-sidebar-toggle{display:none!important}
    .dashboard-sidebar>nav{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;align-content:stretch!important;align-items:stretch!important;justify-content:flex-start!important;gap:10px!important;width:100%!important;height:auto!important;min-height:0!important;padding:14px!important;overflow-x:hidden!important;overflow-y:auto!important}
    .dashboard-sidebar .sidebar-group{display:block!important;flex:0 0 auto!important;width:100%!important;min-width:0!important;margin:0!important;border:1px solid var(--line)!important;border-radius:12px!important;background:var(--surface-2)!important}
    .dashboard-sidebar .sidebar-group>summary{display:flex!important;align-items:center!important;justify-content:space-between!important;width:100%!important;min-height:44px!important;padding:10px 12px!important;cursor:pointer!important;pointer-events:auto!important;user-select:none!important}
    .dashboard-sidebar .sidebar-group>summary .direction-arrow{position:relative!important;display:block!important;flex:0 0 16px!important;width:16px!important;height:16px!important;min-width:16px!important;min-height:16px!important;margin-left:10px!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important;color:var(--brand)!important;transform:none!important}
    .dashboard-sidebar .sidebar-group>summary .direction-arrow::before{position:absolute!important;left:3px!important;top:2px!important;display:block!important;width:7px!important;height:7px!important;border:0!important;border-right:2px solid currentColor!important;border-bottom:2px solid currentColor!important;background:transparent!important;transform:rotate(45deg)!important;transition:transform .18s ease,top .18s ease!important}
    .dashboard-sidebar .sidebar-group[open]>summary .direction-arrow::before{top:6px!important;transform:rotate(225deg)!important}
    .dashboard-sidebar .sidebar-group-links{display:flex!important;flex-direction:column!important;align-items:stretch!important;gap:4px!important;width:100%!important;padding:0 7px 8px!important}
    .dashboard-sidebar .sidebar-group:not([open]) .sidebar-group-links{display:none!important}
    .dashboard-sidebar .sidebar-group-links>a{display:flex!important;grid-column:1!important;justify-content:flex-start!important;width:100%!important;min-width:0!important;min-height:44px!important;padding:9px 10px!important}
    .dashboard-sidebar .sidebar-group-links>a>b{position:static!important;width:auto!important;height:auto!important;overflow:visible!important;clip:auto!important}
    .dashboard-sidebar .sidebar-group-links>a[data-tooltip]::after{display:none!important}
    .dashboard-sidebar-collapsed .dashboard-main,.dashboard-main{width:100%!important;margin-left:0!important}
    .has-dashboard>.platform-footer{margin-left:0!important}

    main,.dashboard-main,.dashboard-section,.dashboard-section>.container,.container,.panel,.module,.section,.card{min-width:0;max-width:100%}
    .dashboard-section>.container,.container{width:min(100% - 24px,1380px)}
    img,video,iframe,canvas,svg{max-width:100%}
    img{height:auto}
    :is(.form-grid,.filters,.payment-operation-filters,.participant-filters,.settings-grid,.site-brand-assets,.site-color-grid,.checkout-grid,.profile-grid,.admin-grid,.settlement-grid){grid-template-columns:minmax(0,1fr)!important}
    :is(.form-grid,.filters,.payment-operation-filters,.participant-filters)>*{min-width:0!important;max-width:100%!important;grid-column:auto!important}
    :is(input,select,textarea,.input,.select){max-width:100%;min-width:0}
    .button-row,.inline,.actions,.section-head,.table-panel-heading{max-width:100%;flex-wrap:wrap}
    .app-dialog-card,.upload-dialog-card,.access-welcome-card,.tutor-agreement-dialog-card{width:calc(100vw - 24px)!important;max-width:calc(100vw - 24px)!important;max-height:calc(100dvh - 24px)!important;overflow:auto}
    .toast-stack{left:12px;right:12px;top:76px;width:auto;max-width:none}
    .back-to-top{right:12px;bottom:12px;max-width:calc(100vw - 24px)}
    [data-tooltip]::after{max-width:min(260px,calc(100vw - 32px))!important;white-space:normal!important;overflow-wrap:anywhere}
}

@media(max-width:760px){
    .dashboard-section :is(.metrics,.stats,.cards,.card-grid,.summary-grid,.manage-course-summary,.video-card-grid,.learning-grid,.settlement-summary-grid,.payment-summary-grid,.activity-admin-groups,.participant-filter-grid){display:grid!important;grid-template-columns:minmax(0,1fr)!important;align-items:stretch!important;width:100%!important}
    .dashboard-section :is(.metrics,.stats,.cards,.card-grid,.summary-grid,.manage-course-summary,.video-card-grid,.learning-grid,.settlement-summary-grid,.payment-summary-grid,.activity-admin-groups,.participant-filter-grid)>*{width:100%!important;min-width:0!important;max-width:100%!important;margin-inline:0!important}
    .dashboard-section :is(.section-head,.table-panel-heading,.invitation-toolbar){grid-template-columns:minmax(0,1fr)!important;justify-items:stretch!important;text-align:left}
    .dashboard-section :is(.section-head,.table-panel-heading,.invitation-toolbar)>.button,.dashboard-section :is(.section-head,.table-panel-heading,.invitation-toolbar)>.inline{width:100%!important}
    .dashboard-section form.filters .button,.dashboard-section .filter-toggle{width:100%!important;justify-content:center}
    .table-scroll{overflow:visible!important}
    table.table,table.data-table{display:block;width:100%!important;min-width:0!important;border:0!important;background:transparent!important}
    table.table thead,table.data-table thead{display:none!important}
    table.table tbody,table.data-table tbody{display:grid!important;gap:12px!important;width:100%!important}
    table.table tbody tr,table.data-table tbody tr{display:grid!important;width:100%!important;border:1px solid var(--line)!important;border-radius:14px!important;background:var(--surface)!important;box-shadow:0 5px 18px color-mix(in srgb,var(--text) 5%,transparent)!important;overflow:hidden!important}
    table.table tbody td,table.data-table tbody td{display:grid!important;grid-template-columns:minmax(105px,34%) minmax(0,1fr)!important;align-items:start!important;gap:9px!important;width:100%!important;min-width:0!important;height:auto!important;padding:11px 13px!important;border:0!important;border-bottom:1px solid var(--line)!important;white-space:normal!important;overflow-wrap:anywhere!important;text-align:left!important}
    table.table tbody td:last-child,table.data-table tbody td:last-child{border-bottom:0!important}
    table.table tbody td::before,table.data-table tbody td::before{content:attr(data-label);grid-column:1;color:var(--muted);font-size:9px;font-weight:900;letter-spacing:.055em;line-height:1.35;text-transform:uppercase}
    table.table tbody td>*,table.data-table tbody td>*{min-width:0;max-width:100%;grid-column:2}
    table.table tbody td[colspan],table.data-table tbody td[colspan]{display:block!important;text-align:center!important}
    table.table tbody td[colspan]::before,table.data-table tbody td[colspan]::before{display:none}
    table.table tfoot,table.data-table tfoot{display:block;width:100%;margin-top:12px}
    table.table tfoot tr,table.data-table tfoot tr{display:grid;width:100%;padding:12px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
    table.table tfoot :is(th,td),table.data-table tfoot :is(th,td){display:block;width:100%;padding:5px;border:0;white-space:normal;text-align:left}
    .platform-footer-main,.platform-footer-bottom{width:calc(100% - 28px)!important;padding-left:0!important;padding-right:0!important}
    .platform-footer-main{display:grid!important;grid-template-columns:1fr!important;justify-items:start!important;text-align:left!important}
    .platform-footer-navigation,.platform-footer-payments{justify-items:start!important;text-align:left!important}
    .platform-footer-bottom{justify-items:start!important;text-align:left!important}
}

@media(max-width:480px){
    .dashboard-section{padding-top:10px!important}
    .mobile-site-navigation,.dashboard-sidebar{width:100vw!important;max-width:100vw!important}
    .topbar .logo>span:last-child{display:none}
    .topbar .logo .site-brand-logo{max-width:160px}
    .dashboard-section>.container,.container{width:calc(100% - 16px)}
    table.table tbody td,table.data-table tbody td{grid-template-columns:1fr!important}
    table.table tbody td>*,table.data-table tbody td>*{grid-column:1}
    .button-row>.button,.actions>.button{flex:1 1 100%;width:100%}
}

/* Portada disponible aunque todavía no existan cursos publicados. */
.catalog-empty-state{grid-column:1/-1;display:grid;justify-items:center;gap:10px;width:min(620px,100%);margin:8px auto;padding:34px 24px;border:1px dashed color-mix(in srgb,var(--brand) 38%,var(--line));border-radius:18px;background:color-mix(in srgb,var(--brand) 4%,var(--surface));text-align:center}
.catalog-empty-state h3,.catalog-empty-state p{margin:0}
.catalog-empty-state p{max-width:520px;color:var(--muted);line-height:1.6}
.catalog-empty-icon{display:grid;place-items:center;width:54px;height:54px;border-radius:15px;background:color-mix(in srgb,var(--brand) 12%,var(--surface-2));color:var(--brand)}
.catalog-empty-icon .app-icon{width:25px;height:25px}
@media(max-width:680px){.catalog-empty-state{padding:26px 16px;border-radius:14px}.catalog-empty-state .button{width:100%}}
/* Editor enriquecido global: barra completa, tema adaptable y controles responsivos. */
.rich-editor{width:100%;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface);color:var(--text);transition:border-color .16s,box-shadow .16s}
.rich-editor:focus-within{border-color:color-mix(in srgb,var(--brand) 58%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--brand) 13%,transparent)}
.rich-menubar{display:flex;align-items:center;gap:2px;min-height:42px;padding:4px 12px;border-bottom:1px solid var(--line);background:var(--surface)}
.rich-menubar button,.rich-toolbar button{display:inline-grid;place-items:center;border:0;border-radius:6px;background:transparent;color:var(--text);font:inherit;cursor:pointer}
.rich-menubar button{min-height:30px;padding:4px 8px;font-size:13px}
.rich-menubar button:hover,.rich-menubar button:focus-visible,.rich-toolbar button:hover,.rich-toolbar button:focus-visible{background:var(--surface-3);outline:none}
.rich-toolbar{display:flex;align-items:center;gap:3px;min-height:48px;padding:6px 12px;border-bottom:1px solid var(--line);background:var(--surface-2);overflow-x:auto;flex-wrap:nowrap;scrollbar-width:thin}
.rich-toolbar button{flex:0 0 32px;width:32px;height:32px;padding:6px}
.rich-toolbar button svg{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rich-toolbar .rich-text-button{font-size:18px;line-height:1}
.rich-toolbar-divider{flex:0 0 1px;width:1px;height:24px;margin:0 3px;background:var(--line)}
.rich-format-select{flex:0 0 132px;height:34px;padding:0 30px 0 9px;border:1px solid transparent;border-radius:6px;background-color:var(--surface);color:var(--text);font:inherit;font-size:13px;cursor:pointer}
.rich-format-select:hover,.rich-format-select:focus{border-color:var(--line);outline:none}
.rich-surface{min-height:170px;padding:14px 16px;overflow:auto;background:var(--surface);color:var(--text);line-height:1.55;outline:none;overflow-wrap:anywhere}
.rich-surface:empty::before{content:'Escribí aquí…';color:var(--muted);pointer-events:none}
.rich-surface[aria-invalid="true"]{box-shadow:inset 0 -2px 0 var(--danger)}
.rich-surface h2,.rich-surface h3,.rich-surface p,.rich-surface blockquote{margin:.35em 0 .65em}
.rich-surface ul,.rich-surface ol{padding-left:1.6rem}
.rich-surface blockquote{padding-left:12px;border-left:3px solid var(--brand);color:var(--muted)}
.rich-surface a{color:var(--brand)}
.rich-surface img{max-width:100%;height:auto}
.rich-surface table{width:100%;border-collapse:collapse}.rich-surface td,.rich-surface th{min-width:48px;padding:7px;border:1px solid var(--line)}
@media(max-width:680px){.rich-menubar{padding:4px 6px;overflow-x:auto}.rich-menubar button{padding:4px 7px}.rich-toolbar{padding:6px}.rich-surface{min-height:145px;padding:12px}}

/* Resumen y descripción del curso expandibles sin desbordar la portada. */
.course-description-expandable{position:relative;width:100%;min-width:0}
.course-description-expandable [data-expandable-copy]{max-height:var(--course-collapsed-height);overflow:hidden;transition:max-height .24s ease}
.course-description-expandable.is-expanded [data-expandable-copy]{max-height:none;overflow:visible}
.course-description-expandable.is-collapsed.has-overflow [data-expandable-copy]{mask-image:linear-gradient(to bottom,#000 68%,transparent 100%);-webkit-mask-image:linear-gradient(to bottom,#000 68%,transparent 100%)}
.course-expand-toggle{display:inline-flex;align-items:center;gap:5px;margin-top:9px;padding:5px 0;border:0;background:transparent;color:var(--brand);font:inherit;font-size:13px;font-weight:850;cursor:pointer}
.course-expand-toggle[hidden]{display:none}.course-expand-toggle:hover,.course-expand-toggle:focus-visible{text-decoration:underline;outline:none}
.course-detail-hero-copy{height:auto;overflow:visible}.course-detail-hero-copy h1{overflow-wrap:anywhere}
@media(max-width:680px){.course-description-expandable{--course-collapsed-height:170px!important}}

/* Más altura para cada etapa del editor del curso. */
.course-steps>.course-tab{min-height:79px}
@media(max-width:760px){.course-steps>.course-tab{min-height:73px}}

/* Popup de portada: imágenes administrables y galería adaptable. */
.platform-modal-media{display:flex;gap:10px;width:100%;padding:2px 0 8px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin}
.platform-modal-media img{display:block;flex:0 0 min(100%,520px);width:min(100%,520px);aspect-ratio:16/7;border:1px solid var(--line);border-radius:13px;background:var(--surface-2);object-fit:cover;scroll-snap-align:start}
.welcome-popup-admin-images{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.welcome-popup-admin-image{display:grid;gap:9px;min-width:0;padding:10px;border:1px solid var(--line);border-radius:13px;background:var(--surface-2)}
.welcome-popup-admin-image>img{display:block;width:100%;aspect-ratio:16/8;border-radius:9px;background:var(--surface);object-fit:cover}
.welcome-popup-admin-image .check{font-size:12px;font-weight:750}
@media(max-width:680px){.platform-modal-media img{flex-basis:100%;width:100%;aspect-ratio:16/9}.welcome-popup-admin-images{grid-template-columns:1fr}}
