/* Aulibre — imagotipo A (máscara + degradé). Rutas relativas a este archivo (css/). */
:root {
    --brand-gap-aulibre: 0;
    --brand-mark-size: 1.56rem;
    --brand-word-size: 1.38rem;
    --brand-lockup-lift: -0.18rem;
    --brand-text-nudge: -0.11em;
    --brand-mark-nudge: calc(-2% + 1px);
    --logo-grad-top: #6aade0;
    --logo-grad-bot: #0a5f8c;
    --logo-word: #0c1520;
    --brand-title-color: #232c38;
}
body[data-theme="dark"],
html[data-theme="dark"],
html[data-theme="dark"] body {
    --logo-grad-top: #7ab0dc;
    --logo-grad-bot: #2f68b8;
    --logo-word: #ffffff;
    --brand-title-color: #f1f5f9;
}
@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]),
    html:not([data-theme="light"]),
    body:not([data-theme="light"]) {
        --logo-grad-top: #7ab0dc;
        --logo-grad-bot: #2f68b8;
        --logo-word: #ffffff;
        --brand-title-color: #f1f5f9;
    }
}

/* --- PALETAS DE IDENTIDAD Y COLOR DE ACENTO (AULIBRE — NATIVO 0MS) --- */
:root[data-combo="azul"], html[data-combo="azul"], body[data-combo="azul"], [data-combo="azul"] { --bg-main: #f8f9fb; --bg-sidebar: #ffffff; --bg-card: #ffffff; --text-main: #0c1520; --text-muted: #64748b; --border: #ebeff3; --accent: #0a5f8c; --accent-contrast: #ffffff; --accent-bg: rgba(10, 95, 140, 0.06); --accent-shadow: rgba(10, 95, 140, 0.10); --logo-grad-top: #6aade0; --logo-grad-bot: #0a5f8c; --logo-word: #0c1520; --aurora-gradient: linear-gradient(90deg, #0a5f8c, #6b9bc8, #0c1520, #0a5f8c); }
:root[data-combo="azul"][data-theme="dark"], html[data-combo="azul"][data-theme="dark"], html[data-theme="dark"] body[data-combo="azul"], html[data-theme="dark"] [data-combo="azul"], body[data-combo="azul"][data-theme="dark"] { --bg-main: #090a0f; --bg-sidebar: #0c0d12; --bg-card: #12141a; --text-main: #f1f5f9; --text-muted: #8b9aab; --border: rgba(255, 255, 255, 0.07); --accent: #6b9bc8; --accent-contrast: #090a0f; --accent-bg: rgba(107, 155, 200, 0.12); --accent-shadow: rgba(107, 155, 200, 0.16); --logo-grad-top: #7ab0dc; --logo-grad-bot: #2f68b8; --logo-word: #ffffff; --aurora-gradient: linear-gradient(90deg, #6b9bc8, #ffffff, #8eb4d4, #6b9bc8); }

:root[data-combo="salvia"], html[data-combo="salvia"], body[data-combo="salvia"], [data-combo="salvia"] { --bg-main: #f7faf8; --bg-sidebar: #ffffff; --bg-card: #ffffff; --text-main: #141f17; --text-muted: #5f6f64; --border: #e8eee9; --accent: #246340; --accent-contrast: #ffffff; --accent-bg: rgba(36, 99, 64, 0.06); --accent-shadow: rgba(36, 99, 64, 0.10); --logo-grad-top: #5fd4a0; --logo-grad-bot: #246340; --logo-word: #141f17; --aurora-gradient: linear-gradient(90deg, #246340, #5fd4a0, #141f17, #246340); }
:root[data-combo="salvia"][data-theme="dark"], html[data-combo="salvia"][data-theme="dark"], html[data-theme="dark"] body[data-combo="salvia"], html[data-theme="dark"] [data-combo="salvia"], body[data-combo="salvia"][data-theme="dark"] { --bg-main: #090a0f; --bg-sidebar: #0c0d12; --bg-card: #12141a; --text-main: #f1f5f9; --text-muted: #8b9aab; --border: rgba(255, 255, 255, 0.07); --accent: #6bb892; --accent-contrast: #090a0f; --accent-bg: rgba(107, 184, 146, 0.12); --accent-shadow: rgba(107, 184, 146, 0.16); --logo-grad-top: #7ec9a0; --logo-grad-bot: #2d8a5c; --logo-word: #ffffff; --aurora-gradient: linear-gradient(90deg, #6bb892, #ffffff, #7ec9a0, #6bb892); }

:root[data-combo="rosa"], html[data-combo="rosa"], body[data-combo="rosa"], [data-combo="rosa"] { --bg-main: #fdfaf9; --bg-sidebar: #ffffff; --bg-card: #ffffff; --text-main: #241411; --text-muted: #72605c; --border: #f0e8e4; --accent: #c45c52; --accent-contrast: #ffffff; --accent-bg: rgba(196, 92, 82, 0.06); --accent-shadow: rgba(196, 92, 82, 0.10); --logo-grad-top: #f0a090; --logo-grad-bot: #c45c52; --logo-word: #241411; --aurora-gradient: linear-gradient(90deg, #c45c52, #f0a090, #241411, #c45c52); }
:root[data-combo="rosa"][data-theme="dark"], html[data-combo="rosa"][data-theme="dark"], html[data-theme="dark"] body[data-combo="rosa"], html[data-theme="dark"] [data-combo="rosa"], body[data-combo="rosa"][data-theme="dark"] { --bg-main: #090a0f; --bg-sidebar: #0c0d12; --bg-card: #12141a; --text-main: #f1f5f9; --text-muted: #8b9aab; --border: rgba(255, 255, 255, 0.07); --accent: #d49288; --accent-contrast: #090a0f; --accent-bg: rgba(212, 146, 136, 0.12); --accent-shadow: rgba(212, 146, 136, 0.16); --logo-grad-top: #e8a89c; --logo-grad-bot: #c4685c; --logo-word: #ffffff; --aurora-gradient: linear-gradient(90deg, #d49288, #ffffff, #e8a89c, #d49288); }

:root[data-combo="violeta"], html[data-combo="violeta"], body[data-combo="violeta"], [data-combo="violeta"], :root[data-combo="amatista"], html[data-combo="amatista"], body[data-combo="amatista"], [data-combo="amatista"] { --bg-main: #f9f8fb; --bg-sidebar: #ffffff; --bg-card: #ffffff; --text-main: #1b0c26; --text-muted: #6a5b77; --border: #ebe6f0; --accent: #6b4fa3; --accent-contrast: #ffffff; --accent-bg: rgba(107, 79, 163, 0.07); --accent-shadow: rgba(107, 79, 163, 0.12); --logo-grad-top: #b794e8; --logo-grad-bot: #6b4fa3; --logo-word: #1b0c26; --aurora-gradient: linear-gradient(90deg, #6b4fa3, #b794e8, #1b0c26, #6b4fa3); }
:root[data-combo="violeta"][data-theme="dark"], html[data-combo="violeta"][data-theme="dark"], html[data-theme="dark"] body[data-combo="violeta"], html[data-theme="dark"] [data-combo="violeta"], body[data-combo="violeta"][data-theme="dark"], :root[data-combo="amatista"][data-theme="dark"], html[data-combo="amatista"][data-theme="dark"], html[data-theme="dark"] body[data-combo="amatista"], html[data-theme="dark"] [data-combo="amatista"], body[data-combo="amatista"][data-theme="dark"] { --bg-main: #090a0f; --bg-sidebar: #0c0d12; --bg-card: #12141a; --text-main: #f1f5f9; --text-muted: #8b9aab; --border: rgba(255, 255, 255, 0.07); --accent: #a08cc9; --accent-contrast: #090a0f; --accent-bg: rgba(160, 140, 201, 0.12); --accent-shadow: rgba(160, 140, 201, 0.16); --logo-grad-top: #bba8dc; --logo-grad-bot: #7a5fb0; --logo-word: #ffffff; --aurora-gradient: linear-gradient(90deg, #a08cc9, #ffffff, #bba8dc, #a08cc9); }

:root[data-combo="oro"], html[data-combo="oro"], body[data-combo="oro"], [data-combo="oro"] { --bg-main: #f9f7f2; --bg-sidebar: #ffffff; --bg-card: #ffffff; --text-main: #1a160c; --text-muted: #6f6854; --border: #efe9df; --accent: #b68f1a; --accent-contrast: #ffffff; --accent-bg: rgba(182, 143, 26, 0.08); --accent-shadow: rgba(182, 143, 26, 0.14); --logo-grad-top: #f3c965; --logo-grad-bot: #b68f1a; --logo-word: #1a160c; --aurora-gradient: linear-gradient(90deg, #b68f1a, #f3c965, #1a160c, #b68f1a); }
:root[data-combo="oro"][data-theme="dark"], html[data-combo="oro"][data-theme="dark"], html[data-theme="dark"] body[data-combo="oro"], html[data-theme="dark"] [data-combo="oro"], body[data-combo="oro"][data-theme="dark"] { --bg-main: #090a0f; --bg-sidebar: #0c0d12; --bg-card: #12141a; --text-main: #f1f5f9; --text-muted: #8b9aab; --border: rgba(255, 255, 255, 0.07); --accent: #d8b868; --accent-contrast: #090a0f; --accent-bg: rgba(216, 184, 104, 0.14); --accent-shadow: rgba(216, 184, 104, 0.18); --logo-grad-top: #fae4a2; --logo-grad-bot: #c9a246; --logo-word: #ffffff; --aurora-gradient: linear-gradient(90deg, #d8b868, #ffffff, #fae4a2, #d8b868); }

:root[data-combo="grafito"], html[data-combo="grafito"], body[data-combo="grafito"], [data-combo="grafito"], :root[data-combo="gris"], html[data-combo="gris"], body[data-combo="gris"], [data-combo="gris"] { --bg-main: #f8f9fa; --bg-sidebar: #ffffff; --bg-card: #ffffff; --text-main: #18181b; --text-muted: #71717a; --border: #e4e4e7; --accent: #484b52; --accent-contrast: #ffffff; --accent-bg: rgba(72, 75, 82, 0.08); --accent-shadow: rgba(72, 75, 82, 0.14); --logo-grad-top: #787c85; --logo-grad-bot: #484b52; --logo-word: #18181b; --aurora-gradient: linear-gradient(90deg, #484b52, #787c85, #18181b, #484b52); }
:root[data-combo="grafito"][data-theme="dark"], html[data-combo="grafito"][data-theme="dark"], html[data-theme="dark"] body[data-combo="grafito"], html[data-theme="dark"] [data-combo="grafito"], body[data-combo="grafito"][data-theme="dark"], :root[data-combo="gris"][data-theme="dark"], html[data-combo="gris"][data-theme="dark"], html[data-theme="dark"] body[data-combo="gris"], html[data-theme="dark"] [data-combo="gris"], body[data-combo="gris"][data-theme="dark"] { --bg-main: #090a0f; --bg-sidebar: #0c0d12; --bg-card: #12141a; --text-main: #f1f5f9; --text-muted: #8b9aab; --border: rgba(255, 255, 255, 0.07); --accent: #e4e4e7; --accent-contrast: #090a0f; --accent-bg: rgba(228, 228, 231, 0.12); --accent-shadow: rgba(228, 228, 231, 0.16); --switch-active-bg: #525866; --switch-active-border: #525866; --logo-grad-top: #ffffff; --logo-grad-bot: #a1a1aa; --logo-word: #ffffff; --aurora-gradient: linear-gradient(90deg, #e4e4e7, #ffffff, #a1a1aa, #e4e4e7); }

:root[data-combo="arena"], html[data-combo="arena"], body[data-combo="arena"], [data-combo="arena"], :root[data-combo="arcilla"], html[data-combo="arcilla"], body[data-combo="arcilla"], [data-combo="arcilla"] { --bg-main: #faf8f5; --bg-sidebar: #ffffff; --bg-card: #ffffff; --text-main: #241f1a; --text-muted: #73685e; --border: #eee7de; --accent: #8c7864; --accent-contrast: #ffffff; --accent-bg: rgba(140, 120, 100, 0.07); --accent-shadow: rgba(140, 120, 100, 0.12); --logo-grad-top: #c2b19e; --logo-grad-bot: #8c7864; --logo-word: #241f1a; --aurora-gradient: linear-gradient(90deg, #8c7864, #c2b19e, #241f1a, #8c7864); }
:root[data-combo="arena"][data-theme="dark"], html[data-combo="arena"][data-theme="dark"], html[data-theme="dark"] body[data-combo="arena"], html[data-theme="dark"] [data-combo="arena"], body[data-combo="arena"][data-theme="dark"], :root[data-combo="arcilla"][data-theme="dark"], html[data-combo="arcilla"][data-theme="dark"], html[data-theme="dark"] body[data-combo="arcilla"], html[data-theme="dark"] [data-combo="arcilla"], body[data-combo="arcilla"][data-theme="dark"] { --bg-main: #090a0f; --bg-sidebar: #0c0d12; --bg-card: #12141a; --text-main: #f1f5f9; --text-muted: #8b9aab; --border: rgba(255, 255, 255, 0.07); --accent: #d6cbbe; --accent-contrast: #090a0f; --accent-bg: rgba(214, 203, 190, 0.12); --accent-shadow: rgba(214, 203, 190, 0.16); --logo-grad-top: #e8e0d5; --logo-grad-bot: #b0a08e; --logo-word: #ffffff; --aurora-gradient: linear-gradient(90deg, #d6cbbe, #ffffff, #e8e0d5, #d6cbbe); }

[data-combo="grafito"][data-theme="dark"] input:checked + .slider,
[data-combo="gris"][data-theme="dark"] input:checked + .slider,
[data-combo="grafito"][data-theme="dark"] input:checked + .toggle-slider,
[data-combo="gris"][data-theme="dark"] input:checked + .toggle-slider,
html[data-theme="dark"] [data-combo="grafito"] input:checked + .slider,
html[data-theme="dark"] [data-combo="gris"] input:checked + .slider,
html[data-theme="dark"] [data-combo="grafito"] input:checked + .toggle-slider,
html[data-theme="dark"] [data-combo="gris"] input:checked + .toggle-slider,
body[data-theme="dark"][data-combo="grafito"] input:checked + .slider,
body[data-theme="dark"][data-combo="gris"] input:checked + .slider,
body[data-theme="dark"][data-combo="grafito"] input:checked + .toggle-slider,
body[data-theme="dark"][data-combo="gris"] input:checked + .toggle-slider,
html[data-combo="grafito"][data-theme="dark"] input:checked + .slider,
html[data-combo="gris"][data-theme="dark"] input:checked + .slider,
html[data-combo="grafito"][data-theme="dark"] input:checked + .toggle-slider,
html[data-combo="gris"][data-theme="dark"] input:checked + .toggle-slider {
    background-color: #525866 !important;
    border-color: #525866 !important;
}

.agenda-day-input:checked + .agenda-day-custom-box svg,
.menu-link-chip input[type="checkbox"]:checked ~ .chip-box svg,
.pending-approval-row.selected .pending-select-dot svg {
    stroke: var(--accent-contrast, var(--bg-main, #ffffff)) !important;
}

.brand-mark {
    width: var(--brand-mark-size);
    height: var(--brand-mark-size);
    flex-shrink: 0;
    display: block;
    background: linear-gradient(180deg, var(--logo-grad-top), var(--logo-grad-bot));
    -webkit-mask: url("../img/brand/aulibre-mark-mask.png") center / contain no-repeat;
    mask: url("../img/brand/aulibre-mark-mask.png") center / contain no-repeat;
}
.brand-mark.is-lg { width: 2.1rem; height: 2.1rem; }
.brand-mark.is-xl { width: 4rem; height: 4rem; }
.academy-logo:not(.has-photo):not(.is-lockup) .brand-mark,
.brand-icon:not(.has-photo):not(.is-lockup) .brand-mark,
.preloader-icon .brand-mark,
.cs-preloader-brand .brand-mark {
    width: 100%;
    height: 100%;
}

/* --- ESTILO GLOBAL DE PRELOADER DE MARCA (Fricción Cero & Modo Noche/Día) --- */
#brandPreloader {
    position: fixed;
    inset: 0;
    width: 100vw;
    max-width: 100vw;
    height: 100dvh;
    min-height: -webkit-fill-available;
    background: var(--bg-main, #ffffff);
    z-index: 99999;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    transition: opacity 0.4s ease;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    overflow: hidden;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) #brandPreloader,
    html:not([data-theme="light"]) #brandPreloader,
    body:not([data-theme="light"]) #brandPreloader {
        background: #090a0f !important;
    }
}

[data-theme="dark"] #brandPreloader,
body[data-theme="dark"] #brandPreloader {
    background: var(--bg-main, #090a0f) !important;
}

.brand-text--platform,
.is-wordmark {
    font-size: var(--brand-word-size);
    font-weight: 500;
    letter-spacing: 0.02em;
    color: var(--logo-word, var(--text-main));
    line-height: 1;
    margin-left: -0.06rem;
    transform: translateY(var(--brand-text-nudge, -0.11em));
}

/* Lockup Aulibre (A + ulibre integrado sin círculo badge) */
.brand-logo:has(.is-lockup),
.brand-lockup-container:has(.is-lockup),
.mobile-brand-box:has(.is-lockup) {
    display: inline-flex !important;
    align-items: flex-end !important;
    gap: var(--brand-gap-aulibre, 0) !important;
}
.brand-icon.is-lockup,
.academy-logo.is-lockup {
    width: var(--brand-mark-size, 1.56rem) !important;
    height: var(--brand-mark-size, 1.56rem) !important;
    background: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    overflow: visible !important;
}
.brand-icon.is-lockup .brand-mark,
.academy-logo.is-lockup .brand-mark {
    width: 100% !important;
    height: 100% !important;
    transform: translateY(var(--brand-mark-nudge, -0.11em)) !important;
}

/* --- ICONOS Y MARCAS DE ESPACIO (Logotipos e Identidad) --- */
.brand-icon.has-custom-brand,
.brand-icon.has-logo:not(.has-photo),
.academy-logo.has-custom-brand {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
}
.brand-icon.has-custom-brand img,
.brand-icon.has-logo:not(.has-photo) img,
.academy-logo.has-custom-brand img {
    object-fit: contain !important;
    border-radius: 0 !important;
    mix-blend-mode: multiply;
}
[data-theme="dark"] .brand-icon.has-custom-brand img,
[data-theme="dark"] .brand-icon.has-logo:not(.has-photo) img,
[data-theme="dark"] .academy-logo.has-custom-brand img,
body[data-theme="dark"] .brand-icon.has-custom-brand img,
body[data-theme="dark"] .brand-icon.has-logo:not(.has-photo) img,
body[data-theme="dark"] .academy-logo.has-custom-brand img {
    mix-blend-mode: screen;
}

.brand-icon.has-photo img,
.academy-logo.has-photo img {
    object-fit: cover !important;
    border-radius: 50% !important;
}

/* --- VARIANTES DE LOGOTIPO SEGÚN MODO CLARO / OSCURO --- */
.brand-logo-img--dark,
.preloader-brand-logo.brand-logo-img--dark {
    display: none !important;
    mix-blend-mode: normal !important;
}
.brand-logo-img--light,
.preloader-brand-logo.brand-logo-img--light {
    display: block !important;
    mix-blend-mode: normal !important;
}

[data-theme="dark"] .brand-logo-img--light,
[data-theme="dark"] .preloader-brand-logo.brand-logo-img--light,
body[data-theme="dark"] .brand-logo-img--light,
body[data-theme="dark"] .preloader-brand-logo.brand-logo-img--light {
    display: none !important;
}
[data-theme="dark"] .brand-logo-img--dark,
[data-theme="dark"] .preloader-brand-logo.brand-logo-img--dark,
body[data-theme="dark"] .brand-logo-img--dark,
body[data-theme="dark"] .preloader-brand-logo.brand-logo-img--dark {
    display: block !important;
    mix-blend-mode: normal !important;
}

[data-theme="light"] .brand-logo-img--light,
[data-theme="light"] .preloader-brand-logo.brand-logo-img--light,
body[data-theme="light"] .brand-logo-img--light,
body[data-theme="light"] .preloader-brand-logo.brand-logo-img--light {
    display: block !important;
    mix-blend-mode: normal !important;
}
[data-theme="light"] .brand-logo-img--dark,
[data-theme="light"] .preloader-brand-logo.brand-logo-img--dark,
body[data-theme="light"] .brand-logo-img--dark,
body[data-theme="light"] .preloader-brand-logo.brand-logo-img--dark {
    display: none !important;
}

@media (prefers-color-scheme: dark) {
    :root:not([data-theme="light"]) .brand-logo-img--light,
    :root:not([data-theme="light"]) .preloader-brand-logo.brand-logo-img--light,
    body:not([data-theme="light"]) .brand-logo-img--light,
    body:not([data-theme="light"]) .preloader-brand-logo.brand-logo-img--light {
        display: none !important;
    }
    :root:not([data-theme="light"]) .brand-logo-img--dark,
    :root:not([data-theme="light"]) .preloader-brand-logo.brand-logo-img--dark,
    body:not([data-theme="light"]) .brand-logo-img--dark,
    body:not([data-theme="light"]) .preloader-brand-logo.brand-logo-img--dark {
        display: block !important;
        mix-blend-mode: normal !important;
    }
}

/* --- SELECTOR DE TEMA PARA IDENTIDAD Y LOGOTIPOS (ADMIN) --- */
.brand-theme-segmented-pills {
    display: inline-flex;
    align-items: center;
    background: color-mix(in srgb, var(--text-muted) 8%, var(--bg-card));
    border: 1px solid color-mix(in srgb, var(--border) 80%, transparent);
    border-radius: 9999px;
    padding: 2px;
    gap: 2px;
}
.brand-theme-segmented-pills .theme-seg-btn {
    border: none;
    background: transparent;
    color: var(--text-muted);
    font-size: 0.72rem;
    font-weight: 500;
    padding: 2px 8px;
    border-radius: 9999px;
    cursor: pointer;
    transition: all 0.15s ease;
    line-height: 1.3;
    display: inline-flex;
    align-items: center;
    gap: 3px;
}
.brand-theme-segmented-pills .theme-seg-btn:hover {
    color: var(--text-main);
}
.brand-theme-segmented-pills .theme-seg-btn.is-active {
    background: var(--bg-card);
    color: var(--text-main);
    box-shadow: 0 1px 3px rgba(0,0,0,0.08);
    font-weight: 600;
}
.theme-seg-dot {
    display: inline-block;
    color: var(--accent);
    font-size: 1rem;
    line-height: 0;
    margin-left: 1px;
}
.logo-uploader-zone.is-dark-zone {
    background: #0f121a !important;
    border: 2px dashed rgba(255, 255, 255, 0.22) !important;
    color: #e2e8f0 !important;
}
.logo-uploader-zone.is-dark-zone:hover {
    border-color: rgba(255, 255, 255, 0.45) !important;
}
.logo-uploader-zone.is-dark-zone span,
.logo-uploader-zone.is-dark-zone p,
.logo-uploader-zone.is-dark-zone label {
    color: #94a3b8 !important;
}
.logo-preview-box.is-dark-preview {
    background: #080a0f !important;
    border-color: rgba(255, 255, 255, 0.14) !important;
    color: var(--accent) !important;
}
.logo-preview-box.is-dark-preview.has-logo {
    background: transparent !important;
    border: none !important;
}
.logo-preview-box.is-dark-preview img,
.is-dark-zone .logo-preview-box img,
#academyLogoDarkPreview img,
#academyFaviconDarkPreview img {
    mix-blend-mode: normal !important;
}

/* Modos de fondo para el visor de encuadre (Crop Modal) */
.crop-viewport-wrap.is-crop-dark {
    background-color: #0b0d13 !important;
    background-image: 
        linear-gradient(45deg, rgba(255, 255, 255, 0.05) 25%, transparent 25%), 
        linear-gradient(-45deg, rgba(255, 255, 255, 0.05) 25%, transparent 25%), 
        linear-gradient(45deg, transparent 75%, rgba(255, 255, 255, 0.05) 75%), 
        linear-gradient(-45deg, transparent 75%, rgba(255, 255, 255, 0.05) 75%) !important;
}
.crop-viewport-wrap.is-crop-light {
    background-color: #e2e8f0 !important;
    background-image: 
        linear-gradient(45deg, #cbd5e1 25%, transparent 25%), 
        linear-gradient(-45deg, #cbd5e1 25%, transparent 25%), 
        linear-gradient(45deg, transparent 75%, #cbd5e1 75%), 
        linear-gradient(-45deg, transparent 75%, #cbd5e1 75%) !important;
}
.crop-image-canvas {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform-origin: center center;
    will-change: transform;
    pointer-events: none;
}

/* --- PRELOADER PERSONALIZADO DE ACADEMIA (Logo Libre Flotante & Pulso Zen) --- */
.preloader-icon.has-custom-brand {
    width: auto !important;
    height: auto !important;
    max-width: 6.5rem !important;
    max-height: 5.5rem !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    overflow: visible !important;
    animation: pulseLogo 1.8s cubic-bezier(0.4, 0, 0.2, 1) infinite !important;
    box-sizing: border-box !important;
}


[data-theme="dark"] .preloader-icon.has-custom-brand,
body[data-theme="dark"] .preloader-icon.has-custom-brand {
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
}

.preloader-icon.has-custom-brand .preloader-brand-logo,
.preloader-icon.has-custom-brand .preloader-brand-img {
    max-width: 5.5rem !important;
    max-height: 4.8rem !important;
    width: auto !important;
    height: auto !important;
    object-fit: contain !important;
    display: block !important;
    margin: auto !important;
    background: transparent !important;
    border: none !important;
    mix-blend-mode: multiply;
}
[data-theme="dark"] .preloader-icon.has-custom-brand .preloader-brand-logo,
[data-theme="dark"] .preloader-icon.has-custom-brand .preloader-brand-img,
body[data-theme="dark"] .preloader-icon.has-custom-brand .preloader-brand-logo,
body[data-theme="dark"] .preloader-icon.has-custom-brand .preloader-brand-img {
    mix-blend-mode: screen;
}


.preloader-icon.is-avatar,
.preloader-icon.has-custom-brand.is-avatar,
.preloader-icon:has(.preloader-brand-avatar) {
    width: 4.5rem !important;
    height: 4.5rem !important;
    max-width: 4.5rem !important;
    max-height: 4.5rem !important;
    border-radius: 50% !important;
    overflow: hidden !important;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12) !important;
}

.preloader-brand-avatar,
.preloader-icon.is-avatar img,
.preloader-icon.has-custom-brand.is-avatar .preloader-brand-avatar,
.preloader-icon:has(.preloader-brand-avatar) img {
    width: 100% !important;
    height: 100% !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: cover !important;
    object-position: center !important;
    border-radius: 50% !important;
    display: block !important;
    margin: 0 !important;
}

/* Pulso zen neutro (Marca blanca activa sin logo ni avatar) */
.preloader-icon.is-zen-neutral {
    width: 3.6rem !important;
    height: 3.6rem !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: transparent !important;
    border: none !important;
}

.preloader-icon.is-zen-neutral .zen-pulse-ring {
    display: inline-block;
    box-sizing: border-box;
    width: 2.8rem;
    height: 2.8rem;
    border-radius: 50%;
    border: 2.5px solid var(--accent, #0a5f8c);
    border-top-color: transparent;
    opacity: 0.85;
    animation: zenRingSpin 1.4s cubic-bezier(0.4, 0, 0.2, 1) infinite, pulseLogo 2s ease-in-out infinite;
}

@keyframes pulseLogo {
    0%, 100% { transform: scale(1); opacity: 1; }
    50% { transform: scale(0.9); opacity: 0.7; }
}

@keyframes zenRingSpin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* ==========================================================
   REPRODUCTOR AULIBRE (PLYR) — UNIFICADO Y PROTEGIDO
   ========================================================== */
:root {
    --plyr-color-main: var(--accent, #0a5f8c);
}
.plyr {
    border-radius: inherit;
    width: 100%;
    height: 100%;
    font-family: inherit;
}
.plyr__video-wrapper,
.plyr__video-embed {
    width: 100%;
    height: 100% !important;
    padding-bottom: 0 !important;
}
.plyr--full-ui .plyr__video-embed > .plyr__video-embed__container,
.plyr__video-embed > .plyr__video-embed__container {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    padding-bottom: 0 !important;
    transform: none !important;
}
.plyr__video-wrapper,
.plyr__video-embed,
.plyr__video-embed iframe,
.plyr__video-embed__container iframe,
.plyr__video-wrapper iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
    pointer-events: none !important;
}
.plyr__controls {
    pointer-events: auto !important;
    z-index: 10 !important;
    gap: 0.35rem !important;
    padding: 0.5rem 0.75rem !important;
}
.plyr__progress {
    flex: 1 1 auto !important;
    min-width: 60px !important;
}
/* Control de volumen emergente vertical sobre el botón */
.plyr__volume {
    position: relative !important;
    align-items: center !important;
    display: inline-flex !important;
}
.plyr__volume input[data-plyr="volume"] {
    position: absolute !important;
    bottom: calc(100% + 10px) !important;
    left: 50% !important;
    width: 86px !important;
    height: 28px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    transform: translateX(-50%) rotate(-90deg) !important;
    transform-origin: center center !important;
    background: rgba(18, 20, 26, 0.94) !important;
    backdrop-filter: blur(8px) !important;
    -webkit-backdrop-filter: blur(8px) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 14px !important;
    box-shadow: 0 6px 18px rgba(0, 0, 0, 0.45) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    visibility: hidden !important;
    transition: opacity 0.2s cubic-bezier(0.2, 0.8, 0.2, 1), visibility 0.2s ease, transform 0.2s cubic-bezier(0.2, 0.8, 0.2, 1) !important;
    z-index: 25 !important;
}
.plyr__volume::after {
    content: '';
    position: absolute;
    bottom: 100%;
    left: 50%;
    transform: translateX(-50%);
    width: 40px;
    height: 115px;
    pointer-events: none;
    z-index: 20;
}
.plyr__volume:hover::after,
.plyr__volume:focus-within::after {
    pointer-events: auto;
}
.plyr__volume:hover input[data-plyr="volume"],
.plyr__volume:focus-within input[data-plyr="volume"] {
    opacity: 1 !important;
    pointer-events: auto !important;
    visibility: visible !important;
    transform: translateX(-50%) translateY(-4px) rotate(-90deg) !important;
}
@media (max-width: 768px), (pointer: coarse) {
    .plyr__volume input[data-plyr="volume"],
    .plyr__volume input[type="range"],
    .plyr__volume::after {
        display: none !important;
    }
    .plyr__volume {
        min-width: auto !important;
        width: auto !important;
    }
}
/* Escudo superior anti-clics externos (YouTube title/avatar, Vimeo 3-dots) */
.plyr::before {
    content: '';
    position: absolute;
    top: 0; left: 0;
    width: 100%;
    height: 25%;
    z-index: 5;
    pointer-events: auto;
}
