/* ==================================================================
   CANTERA DIGITAL — EXPERIENCIA VISUAL V2
   Capa encapsulada bajo body.cd-design-v2. DISENO_V2=false restaura
   la vista anterior sin tocar lógica, rutas ni permisos.
   ================================================================== */

:root {
    --cd-green-950: #0d3022;
    --cd-green-900: #123d2b;
    --cd-green-800: #185139;
    --cd-green-700: #216c49;
    --cd-green-600: #2d8a59;
    --cd-green-500: #39a96b;
    --cd-green-100: #dff4e8;
    --cd-green-50: #f0faf4;
    --cd-ink: #17231d;
    --cd-ink-soft: #435149;
    --cd-muted: #718078;
    --cd-bg: #f3f6f4;
    --cd-surface: #ffffff;
    --cd-surface-soft: #f8faf8;
    --cd-line: #dfe8e2;
    --cd-line-strong: #ccd9d1;
    --cd-danger: #c23d35;
    --cd-danger-soft: #fdefed;
    --cd-warning-soft: #fff5e5;
    --cd-radius-sm: 10px;
    --cd-radius: 14px;
    --cd-radius-lg: 20px;
    --cd-radius-xl: 26px;
    --cd-shadow-sm: 0 1px 2px rgba(13, 48, 34, .04), 0 5px 16px rgba(13, 48, 34, .035);
    --cd-shadow: 0 12px 35px rgba(13, 48, 34, .075);
    --cd-shadow-lg: 0 24px 60px rgba(8, 34, 24, .18);
    --cd-ease: 180ms cubic-bezier(.2, .8, .2, 1);
    --cd-sidebar-width: 282px;
    --verde-oscuro: var(--cd-green-900);
    --verde-medio: var(--cd-green-600);
    --verde-claro: var(--cd-green-500);
    --verde-suave: var(--cd-green-50);
    --gris-claro: var(--cd-bg);
    --gris-borde: var(--cd-line);
    --gris-texto: var(--cd-muted);
    --negro-suave: var(--cd-ink);
    --blanco: var(--cd-surface);
    --rojo: var(--cd-danger);
    --radius: var(--cd-radius-sm);
    --radius-lg: var(--cd-radius);
    --shadow-sm: var(--cd-shadow-sm);
    --shadow: var(--cd-shadow);
    --shadow-lg: var(--cd-shadow-lg);
    --transition: all var(--cd-ease);
}

body.cd-design-v2 {
    background: radial-gradient(circle at 75% -10%, rgba(57, 169, 107, .10), transparent 31rem), var(--cd-bg);
    color: var(--cd-ink);
    font-family: Inter, "Segoe UI Variable", "Segoe UI", system-ui, -apple-system, sans-serif;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

body.cd-design-v2 ::selection { background: var(--cd-green-100); color: var(--cd-green-950); }
body.cd-design-v2 :focus-visible { outline: 3px solid rgba(45, 138, 89, .24); outline-offset: 2px; }

/* App shell */
body.cd-design-v2 .cd-layout { min-height: 100dvh; }
body.cd-design-v2.cd-menu-open { overflow: hidden; }

body.cd-design-v2 .cd-sidebar {
    top: 14px;
    bottom: 14px;
    left: 14px;
    width: var(--cd-sidebar-width);
    height: auto;
    min-height: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 255, 255, .08);
    border-radius: var(--cd-radius-xl);
    background: radial-gradient(circle at 15% 0%, rgba(83, 200, 129, .20), transparent 17rem), linear-gradient(180deg, var(--cd-green-900), var(--cd-green-950));
    box-shadow: 0 22px 55px rgba(8, 36, 25, .20);
}

body.cd-design-v2 .cd-sidebar::after {
    content: "";
    position: absolute;
    inset: auto -70px -100px auto;
    width: 220px;
    height: 220px;
    border: 1px solid rgba(255, 255, 255, .07);
    border-radius: 50%;
    pointer-events: none;
}

body.cd-design-v2 .cd-sidebar__logo {
    position: relative;
    z-index: 1;
    min-height: 88px;
    padding: 20px 20px 18px;
    gap: 12px;
    border-bottom-color: rgba(255, 255, 255, .10);
}

body.cd-design-v2 .cd-logo-icon,
body.cd-design-v2 .cd-sidebar-logo-img {
    width: 44px;
    height: 44px;
    border-radius: 13px;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .14);
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .10);
}

body.cd-design-v2 .cd-logo-text {
    max-width: 172px;
    font-size: 15px;
    font-weight: 750;
    letter-spacing: -.15px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

body.cd-design-v2 .cd-logo-sub {
    margin-top: 3px;
    color: rgba(255, 255, 255, .55);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .09em;
    text-transform: uppercase;
}

body.cd-design-v2 .cd-sidebar__nav {
    position: relative;
    z-index: 1;
    padding: 15px 12px 18px;
    gap: 4px;
    scrollbar-width: thin;
    scrollbar-color: rgba(255, 255, 255, .18) transparent;
}

body.cd-design-v2 .cd-nav-item {
    min-height: 44px;
    padding: 10px 12px;
    gap: 11px;
    border: 1px solid transparent;
    border-left: 1px solid transparent;
    border-radius: 12px;
    color: rgba(255, 255, 255, .66);
    font-size: 13.5px;
    font-weight: 570;
    transition: color var(--cd-ease), background var(--cd-ease), border-color var(--cd-ease), transform var(--cd-ease);
}

body.cd-design-v2 .cd-nav-item:hover {
    color: #fff;
    background: rgba(255, 255, 255, .075);
    border-color: rgba(255, 255, 255, .07);
    transform: translateX(2px);
}

body.cd-design-v2 .cd-nav-item.active {
    color: #fff;
    background: rgba(70, 186, 116, .22);
    border-color: rgba(121, 219, 160, .22);
    box-shadow: inset 3px 0 0 #61d493;
    font-weight: 700;
}

body.cd-design-v2 .cd-nav-icon { width: 23px; opacity: .94; }
body.cd-design-v2 .cd-nav-grupo__chevron { opacity: .52; }
body.cd-design-v2 .cd-nav-grupo__items { margin: 3px 0 7px 18px; padding: 3px 0 3px 9px; border-left: 1px solid rgba(255, 255, 255, .11); }
body.cd-design-v2 .cd-nav-subitem { min-height: 38px; padding: 8px 10px; font-size: 12.8px; }
body.cd-design-v2 .cd-nav-subitem::before { display: none; }
body.cd-design-v2 .cd-nav-badge { background: #e85b55; box-shadow: 0 0 0 4px rgba(232, 91, 85, .13); }

body.cd-design-v2 .cd-sidebar__footer {
    position: relative;
    z-index: 1;
    padding: 14px 16px 16px;
    gap: 9px;
    border-top-color: rgba(255, 255, 255, .10);
    background: rgba(3, 24, 16, .15);
    backdrop-filter: blur(8px);
}

body.cd-design-v2 .cd-user-avatar {
    width: 38px;
    height: 38px;
    background: linear-gradient(145deg, #52c983, #2d935d);
    border: 2px solid rgba(255, 255, 255, .18);
    box-shadow: 0 5px 15px rgba(0, 0, 0, .15);
}

body.cd-design-v2 .cd-user-name { max-width: 178px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.cd-design-v2 .cd-user-role { color: rgba(255, 255, 255, .48); }
body.cd-design-v2 .cd-soporte-link,
body.cd-design-v2 .cd-mi-cuenta,
body.cd-design-v2 .cd-logout { min-height: 34px; border-radius: 10px; }

body.cd-design-v2 .cd-content { min-width: 0; margin-left: calc(var(--cd-sidebar-width) + 28px); background: transparent; }

body.cd-design-v2 .cd-topbar {
    display: flex;
    position: sticky;
    top: 0;
    z-index: 80;
    min-height: 74px;
    padding: 10px 34px;
    flex-direction: row;
    justify-content: space-between;
    gap: 18px;
    background: rgba(243, 246, 244, .84);
    border: none;
    border-bottom: 1px solid rgba(204, 217, 209, .72);
    box-shadow: none;
    backdrop-filter: blur(18px) saturate(140%);
    -webkit-backdrop-filter: blur(18px) saturate(140%);
    text-align: left;
}

body.cd-design-v2 .cd-topbar__brand,
body.cd-design-v2 .cd-topbar__actions,
body.cd-design-v2 .cd-topbar-user,
body.cd-design-v2 .cd-topbar-action { display: flex; align-items: center; }
body.cd-design-v2 .cd-mobile-only-action { display: none; }
body.cd-design-v2 .cd-topbar__brand { min-width: 0; gap: 11px; }
body.cd-design-v2 .cd-topbar__brand > div { min-width: 0; }

body.cd-design-v2 .cd-topbar__logo {
    width: 40px;
    height: 40px;
    padding: 3px;
    border: 1px solid var(--cd-line);
    border-radius: 12px;
    background: #fff;
    object-fit: contain;
    box-shadow: var(--cd-shadow-sm);
}

body.cd-design-v2 .cd-topbar .cd-logo-icon {
    color: var(--cd-green-800);
    background: var(--cd-green-50);
    border-color: var(--cd-green-100);
    box-shadow: var(--cd-shadow-sm);
}

body.cd-design-v2 .cd-topbar__eyebrow { display: block; margin-bottom: 2px; color: var(--cd-muted); font-size: 10px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
body.cd-design-v2 .cd-topbar__nombre { display: block; max-width: 390px; color: var(--cd-ink); font-size: 15px; font-weight: 750; letter-spacing: -.15px; }
body.cd-design-v2 .cd-topbar__actions { flex-shrink: 0; gap: 9px; }

body.cd-design-v2 .cd-topbar-action {
    position: relative;
    min-height: 40px;
    padding: 0 13px;
    justify-content: center;
    gap: 7px;
    color: var(--cd-ink-soft);
    background: rgba(255, 255, 255, .76);
    border: 1px solid var(--cd-line);
    border-radius: 12px;
    font-size: 12.5px;
    font-weight: 700;
    transition: var(--cd-ease);
}

body.cd-design-v2 .cd-topbar-action:hover { color: var(--cd-green-800); background: #fff; border-color: var(--cd-line-strong); transform: translateY(-1px); box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2 .cd-topbar-action__badge { position: absolute; top: -5px; right: -5px; min-width: 18px; height: 18px; padding: 0 5px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: #df534e; border: 2px solid var(--cd-bg); border-radius: 10px; font-size: 9px; font-weight: 800; }

body.cd-design-v2 .cd-topbar-user {
    min-height: 44px;
    padding: 4px 5px 4px 11px;
    gap: 10px;
    color: var(--cd-ink);
    background: #fff;
    border: 1px solid var(--cd-line);
    border-radius: 14px;
    box-shadow: var(--cd-shadow-sm);
}

body.cd-design-v2 .cd-topbar-user__text { min-width: 0; text-align: right; }
body.cd-design-v2 .cd-topbar-user__name,
body.cd-design-v2 .cd-topbar-user__role { display: block; max-width: 150px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
body.cd-design-v2 .cd-topbar-user__name { font-size: 12px; font-weight: 750; }
body.cd-design-v2 .cd-topbar-user__role { color: var(--cd-muted); font-size: 9.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
body.cd-design-v2 .cd-topbar-user .cd-user-avatar { width: 34px; height: 34px; border: none; font-size: 12px; }
body.cd-design-v2 .cd-content__inner { width: 100%; max-width: 1460px; margin: 0 auto; padding: 30px 36px 84px; }

/* Common UI */
body.cd-design-v2 .cd-page-header {
    position: relative;
    margin-bottom: 24px;
    padding: 22px 24px;
    overflow: hidden;
    background: linear-gradient(110deg, rgba(255, 255, 255, .98), rgba(246, 251, 248, .94));
    border: 1px solid var(--cd-line);
    border-radius: var(--cd-radius-lg);
    box-shadow: var(--cd-shadow-sm);
}

body.cd-design-v2 .cd-page-header::after { content: ""; position: absolute; top: -58px; right: -38px; width: 160px; height: 160px; border: 28px solid rgba(57, 169, 107, .055); border-radius: 50%; pointer-events: none; }
body.cd-design-v2 .cd-page-header__top { position: relative; z-index: 1; }
body.cd-design-v2 .cd-page-header h1 { margin: 0 0 5px; color: var(--cd-ink); font-size: clamp(24px, 2vw, 31px); font-weight: 790; letter-spacing: -.035em; line-height: 1.12; }
body.cd-design-v2 .cd-page-header p { max-width: 760px; color: var(--cd-muted); font-size: 13.5px; line-height: 1.5; }

body.cd-design-v2 .cd-stats-grid { grid-template-columns: repeat(auto-fit, minmax(175px, 1fr)); gap: 12px; margin-bottom: 24px; padding: 0; background: transparent; border: none; border-radius: 0; overflow: visible; }
body.cd-design-v2 .cd-stat-card { min-width: 0; min-height: 128px; padding: 18px; gap: 8px; background: rgba(255, 255, 255, .94); border: 1px solid var(--cd-line); border-radius: var(--cd-radius); box-shadow: var(--cd-shadow-sm); transition: transform var(--cd-ease), box-shadow var(--cd-ease), border-color var(--cd-ease); }
body.cd-design-v2 a.cd-stat-card:hover { background: #fff; border-color: #c8dbcf; transform: translateY(-3px); box-shadow: var(--cd-shadow); }

body.cd-design-v2 .cd-stat-icon { width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; color: var(--cd-green-700); background: var(--cd-green-50); border: 1px solid var(--cd-green-100); border-radius: 11px; opacity: 1; order: 0; }
body.cd-design-v2 .cd-stat-icon svg { width: 18px; height: 18px; }
body.cd-design-v2 .cd-stat-number { min-width: 0; color: var(--cd-ink); font-size: clamp(21px, 2vw, 28px); font-weight: 790; letter-spacing: -.035em; overflow-wrap: anywhere; order: 1; }
body.cd-design-v2 .cd-stat-label { color: var(--cd-muted); font-size: 10.5px; font-weight: 750; letter-spacing: .075em; line-height: 1.35; order: 2; }

body.cd-design-v2 .cd-card,
body.cd-design-v2 .cd-table-wrap { background: rgba(255, 255, 255, .96); border: 1px solid var(--cd-line); border-radius: var(--cd-radius-lg); box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2 .cd-card { padding: 22px; }
body.cd-design-v2 .cd-card__title,
body.cd-design-v2 .cd-form-section-title { color: var(--cd-ink); font-weight: 760; letter-spacing: -.015em; }

body.cd-design-v2 .cd-btn,
body.cd-design-v2 .cd-btn-primary,
body.cd-design-v2 .cd-btn-secondary { min-height: 42px; padding: 10px 16px; gap: 7px; border-radius: 11px; font-weight: 700; letter-spacing: -.01em; transition: transform var(--cd-ease), box-shadow var(--cd-ease), background var(--cd-ease), border-color var(--cd-ease); }
body.cd-design-v2 .cd-btn:active { transform: scale(.975); }
body.cd-design-v2 .cd-btn--primary,
body.cd-design-v2 .cd-btn-primary { color: #fff; background: var(--cd-green-700); box-shadow: 0 7px 16px rgba(24, 81, 57, .16); }
body.cd-design-v2 .cd-btn--primary:hover,
body.cd-design-v2 .cd-btn-primary:hover { color: #fff; background: var(--cd-green-800); box-shadow: 0 10px 22px rgba(24, 81, 57, .22); transform: translateY(-1px); }
body.cd-design-v2 .cd-btn--secondary,
body.cd-design-v2 .cd-btn-secondary,
body.cd-design-v2 .cd-btn--ghost { color: var(--cd-ink-soft); background: #fff; border: 1px solid var(--cd-line-strong); }
body.cd-design-v2 .cd-btn--secondary:hover,
body.cd-design-v2 .cd-btn-secondary:hover,
body.cd-design-v2 .cd-btn--ghost:hover { color: var(--cd-green-800); background: var(--cd-green-50); border-color: #bcd4c5; }
body.cd-design-v2 .cd-btn--danger { color: var(--cd-danger); background: #fff; border-color: #efc7c3; }
body.cd-design-v2 .cd-btn--danger:hover { color: #9f2e29; background: var(--cd-danger-soft); border-color: #e1aaa5; }
body.cd-design-v2 .cd-btn--sm { min-height: 34px; padding: 7px 11px; border-radius: 9px; font-size: 11.5px; }

body.cd-design-v2 input,
body.cd-design-v2 select,
body.cd-design-v2 textarea,
body.cd-design-v2 .cd-input,
body.cd-design-v2 .cd-select,
body.cd-design-v2 .cd-textarea,
body.cd-design-v2 .cd-drawer-input { min-height: 44px; color: var(--cd-ink); background: #fff; border: 1px solid var(--cd-line-strong); border-radius: 11px; transition: border-color var(--cd-ease), box-shadow var(--cd-ease), background var(--cd-ease); }
body.cd-design-v2 textarea,
body.cd-design-v2 .cd-textarea { min-height: 100px; }
body.cd-design-v2 input:hover,
body.cd-design-v2 select:hover,
body.cd-design-v2 textarea:hover { border-color: #b7cbbf; }
body.cd-design-v2 input:focus,
body.cd-design-v2 select:focus,
body.cd-design-v2 textarea:focus { background: #fff; border-color: var(--cd-green-600); box-shadow: 0 0 0 4px rgba(45, 138, 89, .12); outline: none; }
body.cd-design-v2 .cd-form-group label,
body.cd-design-v2 .cd-label,
body.cd-design-v2 .cd-drawer-label { color: var(--cd-ink-soft); font-size: 11.5px; font-weight: 760; letter-spacing: .025em; }
body.cd-design-v2 .cd-help,
body.cd-design-v2 .cd-optional { color: var(--cd-muted); }

body.cd-design-v2 .cd-alert { padding: 14px 16px; border-left-width: 4px; border-radius: 12px; box-shadow: none; }
body.cd-design-v2 .cd-alert--success { color: var(--cd-green-800); background: var(--cd-green-50); border-color: #bce3cb; }
body.cd-design-v2 .cd-alert--error { color: #9f2e29; background: var(--cd-danger-soft); border-color: #edc1bd; }
body.cd-design-v2 .cd-alert--warning { color: #85500f; background: var(--cd-warning-soft); border-color: #efd39d; }
body.cd-design-v2 .cd-badge { padding: 5px 10px; border-radius: 999px; font-size: 10.5px; font-weight: 780; }

body.cd-design-v2 .cd-table-wrap { overflow: auto; }
body.cd-design-v2 .cd-table thead th { padding: 13px 15px; color: var(--cd-muted); background: var(--cd-surface-soft); border-bottom: 1px solid var(--cd-line); font-size: 10px; font-weight: 800; letter-spacing: .075em; }
body.cd-design-v2 .cd-table tbody td { padding: 14px 15px; border-bottom-color: #edf1ee; }
body.cd-design-v2 .cd-table tbody tr:hover { background: #f7fbf8; }
body.cd-design-v2 .cd-modal,
body.cd-design-v2 .cd-drawer { border: 1px solid var(--cd-line); border-radius: var(--cd-radius-lg); box-shadow: var(--cd-shadow-lg); }
body.cd-design-v2 .cd-mobile-nav { display: none; }

/* Dashboard — lectura por bloques y acciones principales */
body.cd-design-v2.cd-section-dashboard .cd-dashboard-actions { display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
body.cd-design-v2.cd-section-dashboard .cd-content__inner > p[style*="text-transform:uppercase"] {
    margin: 7px 0 10px !important;
    color: var(--cd-green-700) !important;
    font-size: 10px !important;
    font-weight: 850 !important;
    letter-spacing: .105em !important;
}
body.cd-design-v2.cd-section-dashboard .cd-dash-grid { gap: 16px; margin-bottom: 20px; }
body.cd-design-v2.cd-section-dashboard .cd-dash-grid .cd-card { overflow: hidden; }
body.cd-design-v2.cd-section-dashboard .cd-dash-grid .cd-card h3 {
    color: var(--cd-ink) !important;
    font-weight: 760 !important;
    letter-spacing: -.015em;
}
body.cd-design-v2.cd-section-dashboard .cd-content__inner > h2 {
    margin: 29px 0 14px !important;
    color: var(--cd-ink);
    font-size: 18px !important;
    font-weight: 780;
    letter-spacing: -.02em;
}
body.cd-design-v2.cd-section-dashboard canvas { max-width: 100%; }

/* Estados del dashboard: informativos y amables; el rojo queda reservado
   para errores reales y acciones destructivas fuera de estas métricas. */
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card {
    position: relative;
    overflow: hidden;
    text-decoration: none;
    background: linear-gradient(155deg, #fff, #f9fcfa);
}
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card::after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 44px;
    height: 44px;
    border-radius: 0 0 0 44px;
    background: rgba(45, 138, 89, .055);
    pointer-events: none;
}
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card--attention {
    background: linear-gradient(155deg, #fff, #fffbf3);
    border-color: #ead9b8;
}
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card--attention::after { background: rgba(190, 137, 65, .10); }
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card--attention .cd-stat-icon {
    color: #895c20;
    background: #fff4df;
    border-color: #efddba;
}
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card--attention .cd-stat-number { color: #6f4b1d; }
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card--attention .cd-stat-label { color: #746655; }
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card--positive {
    background: linear-gradient(155deg, #fff, #f3fbf6);
    border-color: #cbe5d5;
}
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card--positive .cd-stat-icon {
    color: var(--cd-green-700);
    background: #e8f6ee;
    border-color: #c9e8d5;
}
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card--positive .cd-stat-number { color: var(--cd-green-800); }
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card--info {
    background: linear-gradient(155deg, #fff, #f5f9f7);
    border-color: #d9e5de;
}
body.cd-design-v2.cd-section-dashboard a.cd-dash-status-card--attention:hover { background: #fffdf8; border-color: #d9bd88; }
body.cd-design-v2.cd-section-dashboard a.cd-dash-status-card--positive:hover { background: #f8fdf9; border-color: #aed8be; }
body.cd-design-v2.cd-section-dashboard a.cd-dash-status-card--info:hover { background: #fbfdfc; border-color: #c5d8cc; }
body.cd-design-v2.cd-section-dashboard .cd-dash-status-card__text { font-size: 16px; letter-spacing: -.015em; }
body.cd-design-v2.cd-section-dashboard .cd-dash-trend-icon {
    width: 46px;
    height: 46px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border-radius: 12px;
}
body.cd-design-v2.cd-section-dashboard .cd-dash-trend-icon--up { color: var(--cd-green-800); background: var(--cd-green-50); }
body.cd-design-v2.cd-section-dashboard .cd-dash-trend-icon--down { color: #895c20; background: #fff4df; }
body.cd-design-v2.cd-section-dashboard .cd-dash-trend-value { font-size: 23px; font-weight: 800; line-height: 1.1; }
body.cd-design-v2.cd-section-dashboard .cd-dash-trend-value--up { color: var(--cd-ink); }
body.cd-design-v2.cd-section-dashboard .cd-dash-trend-value--down { color: #6f4b1d; }
body.cd-design-v2.cd-section-dashboard .cd-dash-amount-attention { color: #7a5423; font-size: 14px; }
body.cd-design-v2.cd-section-dashboard .cd-dash-note {
    margin-top: 12px;
    padding: 9px 12px;
    border-radius: 9px;
    font-size: 12px;
    line-height: 1.4;
}
body.cd-design-v2.cd-section-dashboard .cd-dash-note--neutral {
    color: var(--cd-ink-soft);
    background: var(--cd-surface-soft);
    border: 1px solid var(--cd-line);
}

/* Caja — jerarquía principal: Resumen / Cuotas / Caja general */
body.cd-design-v2.cd-section-caja .cd-caja-contextos {
    margin: -9px 0 18px;
    padding: 6px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 6px;
    background: rgba(255, 255, 255, .92);
    border: 1px solid var(--cd-line);
    border-radius: 17px;
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2.cd-section-caja .cd-caja-contexto {
    min-width: 0;
    min-height: 60px;
    padding: 9px 13px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    color: var(--cd-muted);
    background: transparent;
    border: 1px solid transparent;
    border-radius: 12px;
    transition: var(--cd-ease);
}
body.cd-design-v2.cd-section-caja .cd-caja-contexto > svg { flex: 0 0 auto; }
body.cd-design-v2.cd-section-caja .cd-caja-contexto span { min-width: 0; }
body.cd-design-v2.cd-section-caja .cd-caja-contexto strong,
body.cd-design-v2.cd-section-caja .cd-caja-contexto small { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
body.cd-design-v2.cd-section-caja .cd-caja-contexto strong { color: var(--cd-ink-soft); font-size: 12.5px; font-weight: 760; }
body.cd-design-v2.cd-section-caja .cd-caja-contexto small { margin-top: 2px; color: var(--cd-muted); font-size: 9.5px; }
body.cd-design-v2.cd-section-caja .cd-caja-contexto:hover { color: var(--cd-green-700); background: var(--cd-green-50); }
body.cd-design-v2.cd-section-caja .cd-caja-contexto.active {
    color: #fff;
    background: linear-gradient(135deg, var(--cd-green-700), var(--cd-green-900));
    border-color: rgba(13, 48, 34, .1);
    box-shadow: 0 8px 20px rgba(24, 81, 57, .18);
}
body.cd-design-v2.cd-section-caja .cd-caja-contexto.active strong,
body.cd-design-v2.cd-section-caja .cd-caja-contexto.active small { color: #fff; }
body.cd-design-v2.cd-section-caja .cd-caja-contexto.active small { opacity: .66; }

body.cd-design-v2.cd-section-caja .cd-caja-tabs {
    position: sticky;
    top: 82px;
    z-index: 65;
    margin-bottom: 20px;
    padding: 7px;
    flex-wrap: nowrap;
    gap: 6px;
    overflow-x: auto;
    background: rgba(243, 246, 244, .92);
    border: 1px solid var(--cd-line);
    border-radius: 15px;
    box-shadow: var(--cd-shadow-sm);
    backdrop-filter: blur(15px);
    -webkit-backdrop-filter: blur(15px);
    scrollbar-width: thin;
}
body.cd-design-v2.cd-section-caja .cd-caja-tabs .cd-btn {
    flex: 0 0 auto;
    min-width: 0;
    min-height: 38px;
    padding: 8px 13px;
    border: 0;
    border-radius: 10px;
    white-space: nowrap;
}
body.cd-design-v2.cd-section-caja .cd-caja-tabs .cd-btn--secondary { color: var(--cd-ink-soft); background: transparent; }
body.cd-design-v2.cd-section-caja .cd-caja-tabs .cd-btn--primary { background: #fff; color: var(--cd-green-800); box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2.cd-section-caja #caja-kpis-grid .cd-card { min-height: 102px; padding: 17px 18px !important; border-left: 0 !important; }
body.cd-design-v2.cd-section-caja #caja-kpis-grid .cd-card p:last-child { overflow-wrap: anywhere; letter-spacing: -.025em; }
body.cd-design-v2.cd-section-caja .cd-caja-mov-tipo { padding: 4px !important; background: var(--cd-bg) !important; border: 1px solid var(--cd-line); border-radius: 12px !important; }
body.cd-design-v2.cd-section-caja .cd-caja-mov-tipo button { min-height: 38px; border-radius: 9px !important; }
body.cd-design-v2.cd-section-caja .cd-caja-mov-item { padding: 14px 16px; border-radius: 15px; }
body.cd-design-v2.cd-section-caja .cd-caja-mov-item__icon { width: 38px; height: 38px; flex-basis: 38px; border-radius: 11px; }
body.cd-design-v2.cd-section-caja .cd-caja-mov-item__acciones .cd-btn { min-height: 31px; }

/* Navegación contextual de gestión deportiva y equipo */
body.cd-design-v2 .cd-section-context-wrap {
    width: 100%;
    max-width: 1460px;
    margin: 0 auto;
    padding: 18px 36px 0;
}
body.cd-design-v2 .cd-section-context {
    padding: 6px;
    display: flex;
    gap: 5px;
    overflow-x: auto;
    background: rgba(255, 255, 255, .88);
    border: 1px solid var(--cd-line);
    border-radius: 15px;
    box-shadow: var(--cd-shadow-sm);
    scrollbar-width: thin;
}
body.cd-design-v2 .cd-section-context__item {
    min-height: 40px;
    padding: 8px 13px;
    display: inline-flex;
    flex: 1 0 auto;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: var(--cd-muted);
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 11.5px;
    font-weight: 720;
    white-space: nowrap;
    transition: var(--cd-ease);
}
body.cd-design-v2 .cd-section-context__item:hover { color: var(--cd-green-800); background: var(--cd-green-50); }
body.cd-design-v2 .cd-section-context__item.active {
    color: #fff;
    background: linear-gradient(135deg, var(--cd-green-700), var(--cd-green-900));
    box-shadow: 0 7px 17px rgba(24, 81, 57, .17);
}

/* Secciones de personas, plantel y estructura deportiva */
body.cd-design-v2:is(.cd-section-jugadores, .cd-section-divisiones, .cd-section-asistencias, .cd-section-citaciones, .cd-section-socios, .cd-section-lesiones, .cd-section-profesores, .cd-section-salud, .cd-section-colaboradores, .cd-section-equipo, .cd-section-personal) .cd-content__inner {
    padding-top: 18px;
}
body.cd-design-v2:is(.cd-section-jugadores, .cd-section-divisiones, .cd-section-asistencias, .cd-section-citaciones, .cd-section-socios, .cd-section-lesiones, .cd-section-profesores, .cd-section-salud, .cd-section-colaboradores, .cd-section-equipo) .cd-page-header {
    margin-bottom: 17px;
}
body.cd-design-v2:is(.cd-section-jugadores, .cd-section-divisiones, .cd-section-profesores, .cd-section-salud, .cd-section-colaboradores, .cd-section-equipo) .cd-page-header__top > div:last-child {
    padding-right: 0 !important;
    flex-direction: row !important;
    align-self: auto !important;
    align-items: center !important;
    flex-wrap: wrap;
}
body.cd-design-v2:is(.cd-section-jugadores, .cd-section-divisiones, .cd-section-asistencias, .cd-section-citaciones, .cd-section-socios, .cd-section-lesiones, .cd-section-profesores, .cd-section-salud, .cd-section-colaboradores, .cd-section-equipo) .cd-filters,
body.cd-design-v2.cd-section-personal .cd-personal-filtros {
    margin-bottom: 17px !important;
    padding: 12px 14px;
    gap: 9px;
    background: rgba(255, 255, 255, .94);
    border: 1px solid var(--cd-line);
    border-radius: 14px;
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2 .cd-filters form { min-width: 0; display: flex; align-items: center; flex-wrap: wrap; gap: 9px; }
body.cd-design-v2:is(.cd-section-jugadores, .cd-section-divisiones, .cd-section-asistencias, .cd-section-citaciones, .cd-section-socios, .cd-section-lesiones, .cd-section-profesores, .cd-section-salud, .cd-section-colaboradores, .cd-section-equipo, .cd-section-personal) .cd-input-busqueda {
    min-height: 40px;
    border-color: #bed6c7 !important;
    border-radius: 10px;
}
body.cd-design-v2:is(.cd-section-jugadores, .cd-section-divisiones, .cd-section-profesores, .cd-section-salud, .cd-section-colaboradores, .cd-section-equipo) .cd-content__inner > .cd-card:not([style*="max-width"]) {
    border-radius: 15px;
}
body.cd-design-v2:is(.cd-section-jugadores, .cd-section-divisiones, .cd-section-asistencias, .cd-section-citaciones, .cd-section-socios, .cd-section-profesores, .cd-section-salud, .cd-section-colaboradores, .cd-section-equipo) .cd-table__actions {
    min-width: 0;
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
}
body.cd-design-v2:is(.cd-section-jugadores, .cd-section-divisiones, .cd-section-profesores, .cd-section-salud, .cd-section-colaboradores, .cd-section-equipo) .cd-table__actions form { margin: 0; }
body.cd-design-v2:is(.cd-section-jugadores, .cd-section-divisiones, .cd-section-profesores, .cd-section-salud, .cd-section-colaboradores, .cd-section-equipo) .cd-table__actions .cd-btn { white-space: nowrap; }
body.cd-design-v2 .cd-empty,
body.cd-design-v2 .cd-personal-empty {
    padding: 54px 22px;
    background: rgba(255, 255, 255, .78);
    border: 1px dashed var(--cd-line-strong);
    border-radius: 18px;
}

/* Contactos / Personal */
body.cd-design-v2.cd-section-personal .cd-personal-wrap { max-width: none; }
body.cd-design-v2.cd-section-personal .cd-personal-header {
    margin-bottom: 17px;
    padding: 21px 23px;
    background: linear-gradient(110deg, rgba(255, 255, 255, .98), rgba(246, 251, 248, .94));
    border: 1px solid var(--cd-line);
    border-radius: var(--cd-radius-lg);
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2.cd-section-personal .cd-personal-header h1 { color: var(--cd-ink); font-size: clamp(24px, 2vw, 31px); letter-spacing: -.035em; }
body.cd-design-v2.cd-section-personal .cd-personal-header__actions { width: auto !important; }
body.cd-design-v2.cd-section-personal .cd-personal-header__actions .cd-btn { flex: 0 1 auto !important; }
body.cd-design-v2.cd-section-personal .cd-personal-grid { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 13px; }
body.cd-design-v2.cd-section-personal .cd-persona-card { border-color: var(--cd-line); border-radius: 16px; box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2.cd-section-personal .cd-persona-card:hover { border-color: #c6d9cc; box-shadow: var(--cd-shadow); }
body.cd-design-v2.cd-section-personal .cd-persona-card__header { padding: 16px; background: linear-gradient(120deg, #fff, var(--cd-green-50)); border-bottom-color: var(--cd-line); }
body.cd-design-v2.cd-section-personal .cd-persona-avatar { width: 44px; height: 44px; border-radius: 13px; background: linear-gradient(145deg, var(--cd-green-600), var(--cd-green-900)); box-shadow: 0 7px 15px rgba(24, 81, 57, .17); }
body.cd-design-v2.cd-section-personal .cd-persona-info strong { color: var(--cd-ink); font-weight: 740; }
body.cd-design-v2.cd-section-personal .cd-persona-card__footer { background: var(--cd-surface-soft); border-top-color: var(--cd-line); }
body.cd-design-v2.cd-section-personal .cd-btn-accion { min-height: 31px; border-radius: 9px; font-weight: 680; }
body.cd-design-v2.cd-section-personal .cd-vista-btn { min-height: 40px; border-color: var(--cd-line-strong); }
body.cd-design-v2.cd-section-personal .cd-vista-btn.active { background: var(--cd-green-800); border-color: var(--cd-green-800); }
body.cd-design-v2.cd-section-personal .cd-personal-tabla-wrap { border-color: var(--cd-line); border-radius: 16px; box-shadow: var(--cd-shadow-sm); }

/* Asistencias, Socios, Citaciones y Lesiones */
body.cd-design-v2.cd-section-asistencias .cd-asistencia-card { margin-bottom: 17px; border-color: var(--cd-line); border-radius: 18px; box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2.cd-section-asistencias .cd-asistencia-card__header { padding: 17px 19px; background: linear-gradient(115deg, var(--cd-green-50), #fff); border-bottom-color: var(--cd-line); }
body.cd-design-v2.cd-section-asistencias .cd-asistencia-card__header h3 { color: var(--cd-ink); font-weight: 770; letter-spacing: -.015em; }
body.cd-design-v2.cd-section-asistencias .cd-asistencia-stats { gap: 6px; }
body.cd-design-v2.cd-section-asistencias .cd-asis-badge { padding: 5px 9px; border-radius: 9px; font-size: 10.5px; }
body.cd-design-v2.cd-section-socios .cd-socios-tabs {
    width: fit-content;
    max-width: 100%;
    padding: 5px;
    gap: 5px !important;
    background: #fff;
    border: 1px solid var(--cd-line);
    border-radius: 13px;
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2.cd-section-socios .cd-socios-tabs .cd-btn { min-height: 38px; border: 0; border-radius: 9px; }
body.cd-design-v2.cd-section-socios .cd-socios-tabs .cd-btn--secondary { color: var(--cd-ink-soft); background: transparent; }
body.cd-design-v2.cd-section-lesiones .cd-lesiones-lista { gap: 10px !important; }
body.cd-design-v2.cd-section-lesiones .cd-lesion-card { border-left-width: 4px !important; border-left-color: #d9773f !important; background: linear-gradient(110deg, #fff, #fffbf7); }
body.cd-design-v2.cd-section-citaciones .cd-calendario { padding: 14px; background: #fff; border: 1px solid var(--cd-line); border-radius: 18px; box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2.cd-section-citaciones .cd-calendario__celda { border-color: var(--cd-line) !important; border-radius: 12px !important; }
body.cd-design-v2.cd-section-citaciones .cd-calendario__celda--hoy { border-color: var(--cd-green-600) !important; background: var(--cd-green-50) !important; }
body.cd-design-v2.cd-section-citaciones .cd-calendario__evento { border-radius: 8px !important; }

/* Finanzas, operaciones y herramientas */
body.cd-design-v2:is(.cd-section-cuentas-corrientes, .cd-section-sueldos, .cd-section-precios, .cd-section-inventario, .cd-section-tienda, .cd-section-fotos, .cd-section-novedades, .cd-section-certificados, .cd-section-convenios, .cd-section-reportes, .cd-section-comunicaciones, .cd-section-notificaciones, .cd-section-auditoria, .cd-section-emails-enviados) .cd-content__inner {
    padding-top: 18px;
}
body.cd-design-v2:is(.cd-section-cuentas-corrientes, .cd-section-sueldos, .cd-section-precios, .cd-section-tienda, .cd-section-fotos, .cd-section-novedades, .cd-section-certificados, .cd-section-comunicaciones, .cd-section-auditoria, .cd-section-emails-enviados) .cd-page-header {
    margin-bottom: 17px;
}
body.cd-design-v2:is(.cd-section-cuentas-corrientes, .cd-section-sueldos, .cd-section-precios, .cd-section-tienda, .cd-section-fotos, .cd-section-novedades, .cd-section-certificados, .cd-section-comunicaciones, .cd-section-auditoria, .cd-section-emails-enviados) .cd-filters {
    margin-bottom: 17px !important;
    padding: 12px 14px;
    background: rgba(255, 255, 255, .94);
    border: 1px solid var(--cd-line);
    border-radius: 14px;
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2:is(.cd-section-cuentas-corrientes, .cd-section-sueldos, .cd-section-precios, .cd-section-tienda, .cd-section-fotos, .cd-section-novedades, .cd-section-certificados, .cd-section-comunicaciones, .cd-section-auditoria, .cd-section-emails-enviados) .cd-table__actions {
    min-width: 0;
    display: flex;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 6px;
}
body.cd-design-v2:is(.cd-section-cuentas-corrientes, .cd-section-sueldos, .cd-section-precios, .cd-section-tienda, .cd-section-fotos, .cd-section-novedades, .cd-section-certificados, .cd-section-comunicaciones, .cd-section-auditoria, .cd-section-emails-enviados) .cd-table__actions form { margin: 0; }

/* Solapas internas compactas */
body.cd-design-v2 .cd-service-tabs,
body.cd-design-v2 .cd-cc-tabs {
    width: fit-content;
    max-width: 100%;
    padding: 5px;
    gap: 5px !important;
    background: #fff;
    border: 1px solid var(--cd-line);
    border-radius: 13px;
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2 .cd-service-tabs .cd-btn,
body.cd-design-v2 .cd-cc-tabs .cd-btn { min-height: 37px; border: 0; border-radius: 9px; }
body.cd-design-v2 .cd-service-tabs .cd-btn--secondary,
body.cd-design-v2 .cd-cc-tabs .cd-btn--secondary { color: var(--cd-ink-soft); background: transparent; }

/* Cuentas corrientes y sueldos */
body.cd-design-v2.cd-section-cuentas-corrientes .cd-card,
body.cd-design-v2.cd-section-sueldos .cd-card { border-radius: 17px; }
body.cd-design-v2.cd-section-cuentas-corrientes .resumen-item {
    padding: 17px;
    background: linear-gradient(120deg, #fff, var(--cd-green-50));
    border-color: var(--cd-line);
    border-radius: 13px;
}
body.cd-design-v2.cd-section-cuentas-corrientes .resumen-val { color: var(--cd-green-800); font-size: 21px; letter-spacing: -.025em; }
body.cd-design-v2.cd-section-cuentas-corrientes .resumen-label { color: var(--cd-muted); font-weight: 700; letter-spacing: .045em; text-transform: uppercase; }
body.cd-design-v2:is(.cd-section-cuentas-corrientes, .cd-section-sueldos) .cd-card > form:not([id^="form-exportar"]) { min-width: 0; }

/* Inventario */
body.cd-design-v2.cd-section-inventario .cd-inv-wrap { max-width: none; }
body.cd-design-v2.cd-section-inventario .cd-personal-header,
body.cd-design-v2.cd-section-convenios .cd-personal-header {
    margin-bottom: 17px;
    padding: 21px 23px;
    background: linear-gradient(110deg, rgba(255, 255, 255, .98), rgba(246, 251, 248, .94));
    border: 1px solid var(--cd-line);
    border-radius: var(--cd-radius-lg);
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2:is(.cd-section-inventario, .cd-section-convenios) .cd-personal-header h1 { color: var(--cd-ink); font-size: clamp(24px, 2vw, 31px); letter-spacing: -.035em; }
body.cd-design-v2.cd-section-inventario .cd-inv-stats,
body.cd-design-v2.cd-section-convenios .cd-conv-stats { gap: 11px; }
body.cd-design-v2.cd-section-convenios .cd-personal-filtros {
    margin-bottom: 17px;
    padding: 12px 14px;
    background: rgba(255, 255, 255, .94);
    border-color: var(--cd-line);
    border-radius: 14px;
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2.cd-section-inventario .cd-inv-stat,
body.cd-design-v2.cd-section-convenios .cd-conv-stat { min-width: 0; padding: 16px; border-color: var(--cd-line); border-radius: 14px; box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2.cd-section-inventario .cd-inv-cat-card { padding: 16px; border-color: var(--cd-line); border-radius: 15px; box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2.cd-section-inventario .cd-inv-cat-card__icono { border-radius: 11px; }
body.cd-design-v2.cd-section-inventario .cd-inv-producto { border-color: var(--cd-line); border-radius: 16px; box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2.cd-section-inventario .cd-inv-producto__fila { background: linear-gradient(110deg, #fff, var(--cd-surface-soft)); }

/* Reportes */
body.cd-design-v2:is(.cd-section-reportes, .cd-section-notificaciones) .cd-section-header {
    margin-bottom: 17px;
    padding: 21px 23px;
    background: linear-gradient(110deg, rgba(255, 255, 255, .98), rgba(246, 251, 248, .94));
    border: 1px solid var(--cd-line);
    border-radius: var(--cd-radius-lg);
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2:is(.cd-section-reportes, .cd-section-notificaciones) .cd-section-header h1,
body.cd-design-v2:is(.cd-section-reportes, .cd-section-notificaciones) .cd-section-header h2 { color: var(--cd-ink); font-size: clamp(24px, 2vw, 31px); letter-spacing: -.035em; }
body.cd-design-v2.cd-section-reportes .cd-report-tabs {
    position: sticky;
    top: 82px;
    z-index: 65;
    padding: 7px;
    flex-wrap: nowrap;
    gap: 5px;
    overflow-x: auto;
    background: rgba(243, 246, 244, .93);
    border: 1px solid var(--cd-line);
    border-radius: 15px;
    box-shadow: var(--cd-shadow-sm);
    backdrop-filter: blur(15px);
    scrollbar-width: thin;
}
body.cd-design-v2.cd-section-reportes .cd-report-tab { flex: 0 0 auto; min-height: 39px; padding: 9px 13px; border: 0; border-radius: 10px; white-space: nowrap; }
body.cd-design-v2.cd-section-reportes .cd-report-tab.active { color: var(--cd-green-800); background: #fff; box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2.cd-section-reportes .cd-filtros-card { padding: 18px; border-color: var(--cd-line); border-radius: 17px; box-shadow: var(--cd-shadow-sm); }

/* Reportes — análisis operativo y alertas */
body.cd-design-v2.cd-section-reportes .cd-analysis { display: grid; gap: 20px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-filter-actions { display: grid; gap: 8px; min-width: 210px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-filter-actions .cd-btn-primary,
body.cd-design-v2.cd-section-reportes .cd-analysis-filter-actions .cd-btn-secondary { width: 100%; justify-content: center; }
body.cd-design-v2.cd-section-reportes .cd-analysis-intro {
    display: flex; align-items: center; justify-content: space-between; gap: 18px;
    padding: 22px 24px; color: #fff; border-radius: 20px;
    background: linear-gradient(125deg, #153f2e 0%, #216844 62%, #2d7a4f 100%);
    box-shadow: 0 16px 34px rgba(20, 74, 50, .18); overflow: hidden;
}
body.cd-design-v2.cd-section-reportes .cd-analysis-intro h3 { margin: 3px 0 5px; color: #fff; font-size: 22px; letter-spacing: -.025em; }
body.cd-design-v2.cd-section-reportes .cd-analysis-intro p { margin: 0; color: rgba(255,255,255,.78); font-size: 12.5px; line-height: 1.5; }
body.cd-design-v2.cd-section-reportes .cd-analysis-eyebrow { color: #6f7d76; font-size: 10.5px; font-weight: 800; letter-spacing: .7px; text-transform: uppercase; }
body.cd-design-v2.cd-section-reportes .cd-analysis-intro .cd-analysis-eyebrow { color: rgba(255,255,255,.62); }
body.cd-design-v2.cd-section-reportes .cd-analysis-badge { flex: 0 0 auto; padding: 9px 13px; color: #174b34; background: #fff; border-radius: 999px; font-size: 11.5px; font-weight: 800; box-shadow: 0 8px 22px rgba(0,0,0,.13); }
body.cd-design-v2.cd-section-reportes .cd-analysis-kpis { display: grid; grid-template-columns: repeat(6, minmax(0,1fr)); gap: 10px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-kpi { min-width: 0; padding: 16px; background: #fff; border: 1px solid var(--cd-line); border-radius: 15px; box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2.cd-section-reportes .cd-analysis-kpi > span { display: block; color: var(--cd-muted); font-size: 10.5px; font-weight: 800; letter-spacing: .35px; text-transform: uppercase; }
body.cd-design-v2.cd-section-reportes .cd-analysis-kpi > strong { display: block; margin: 6px 0 3px; color: var(--cd-ink); font-size: 22px; letter-spacing: -.03em; overflow-wrap: anywhere; }
body.cd-design-v2.cd-section-reportes .cd-analysis-kpi > small { display: block; color: #7a8580; font-size: 10.5px; line-height: 1.35; }
body.cd-design-v2.cd-section-reportes .cd-analysis-note { display: flex; align-items: flex-start; gap: 6px; margin: -10px 2px 0; color: var(--cd-muted); font-size: 10.5px; line-height: 1.45; }
body.cd-design-v2.cd-section-reportes .cd-analysis-note .cd-icon { flex: 0 0 auto; margin-top: 1px; }
body.cd-design-v2.cd-section-reportes .positive { color: #167047 !important; }
body.cd-design-v2.cd-section-reportes .warning { color: #a15c09 !important; }
body.cd-design-v2.cd-section-reportes .danger { color: #b42318 !important; }
body.cd-design-v2.cd-section-reportes .neutral { color: #6b756f !important; }
body.cd-design-v2.cd-section-reportes .cd-analysis-section { padding: 20px; background: #fff; border: 1px solid var(--cd-line); border-radius: 19px; box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2.cd-section-reportes .cd-analysis-section__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 14px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-section__head h3 { margin: 3px 0 0; color: var(--cd-ink); font-size: 18px; letter-spacing: -.02em; }
body.cd-design-v2.cd-section-reportes .cd-analysis-section__head p { max-width: 480px; margin: 0; color: var(--cd-muted); font-size: 11.5px; text-align: right; }
body.cd-design-v2.cd-section-reportes .cd-analysis-alerts { display: grid; gap: 8px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-alert { display: flex; align-items: center; gap: 12px; padding: 13px 14px; border: 1px solid; border-radius: 14px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-alert--critica { color: #9f2e29; background: #fff7f6; border-color: #efcbc7; }
body.cd-design-v2.cd-section-reportes .cd-analysis-alert--atencion { color: #8a520d; background: #fffaf0; border-color: #edd5aa; }
body.cd-design-v2.cd-section-reportes .cd-analysis-alert--info { color: #285d78; background: #f4faff; border-color: #c7dfea; }
body.cd-design-v2.cd-section-reportes .cd-analysis-alert__icon { flex: 0 0 34px; width: 34px; height: 34px; display: grid; place-items: center; color: currentColor; background: rgba(255,255,255,.8); border-radius: 10px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-alert__body { flex: 1 1 auto; min-width: 0; }
body.cd-design-v2.cd-section-reportes .cd-analysis-alert__body > span { display: block; margin-bottom: 2px; font-size: 9.5px; font-weight: 850; letter-spacing: .55px; text-transform: uppercase; opacity: .72; }
body.cd-design-v2.cd-section-reportes .cd-analysis-alert__body > strong { display: block; color: currentColor; font-size: 13.5px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-alert__body p { margin: 2px 0 0; color: #66716c; font-size: 11.5px; line-height: 1.4; }
body.cd-design-v2.cd-section-reportes .cd-analysis-alert__link { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 3px; color: currentColor; font-size: 11px; font-weight: 800; text-decoration: none; }
body.cd-design-v2.cd-section-reportes .cd-analysis-empty { display: flex; align-items: center; gap: 10px; padding: 15px; color: #66716c; background: var(--cd-surface-soft); border-radius: 13px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-empty--positive { color: #17603f; background: #f1faf5; }
body.cd-design-v2.cd-section-reportes .cd-analysis-empty strong,
body.cd-design-v2.cd-section-reportes .cd-analysis-empty span { display: block; }
body.cd-design-v2.cd-section-reportes .cd-analysis-empty span { margin-top: 2px; color: #718078; font-size: 11.5px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-divisions { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-division { padding: 15px; background: linear-gradient(120deg,#fff,var(--cd-surface-soft)); border: 1px solid var(--cd-line); border-radius: 14px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-division__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; padding-bottom: 11px; border-bottom: 1px solid var(--cd-line); }
body.cd-design-v2.cd-section-reportes .cd-analysis-division__head strong,
body.cd-design-v2.cd-section-reportes .cd-analysis-division__head span { display: block; }
body.cd-design-v2.cd-section-reportes .cd-analysis-division__head > div > strong { color: var(--cd-ink); font-size: 14px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-division__head > div > span { margin-top: 2px; color: var(--cd-muted); font-size: 10.5px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-net { flex: 0 0 auto; padding: 5px 8px; background: #fff; border: 1px solid var(--cd-line); border-radius: 999px; font-size: 10.5px; font-weight: 800; }
body.cd-design-v2.cd-section-reportes .cd-analysis-division__metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 11px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-division__metrics span { display: block; color: #7b8580; font-size: 9.5px; font-weight: 700; }
body.cd-design-v2.cd-section-reportes .cd-analysis-division__metrics strong { display: block; margin-top: 3px; color: var(--cd-ink-soft); font-size: 12.5px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-sites { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-site { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; padding: 15px; background: var(--cd-surface-soft); border: 1px solid var(--cd-line); border-radius: 14px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-site > strong,
body.cd-design-v2.cd-section-reportes .cd-analysis-site > span { grid-column: 1/-1; }
body.cd-design-v2.cd-section-reportes .cd-analysis-site > strong { color: var(--cd-ink); font-size: 14px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-site > span { margin-top: -8px; color: var(--cd-muted); font-size: 10.5px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-site b,
body.cd-design-v2.cd-section-reportes .cd-analysis-site small { display: block; }
body.cd-design-v2.cd-section-reportes .cd-analysis-site b { color: var(--cd-ink-soft); font-size: 14px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-site small { margin-top: 2px; color: var(--cd-muted); font-size: 9.5px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-inventory-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 9px; margin-bottom: 12px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-inventory-kpis > div { padding: 13px; text-align: center; background: var(--cd-surface-soft); border: 1px solid var(--cd-line); border-radius: 12px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-inventory-kpis strong,
body.cd-design-v2.cd-section-reportes .cd-analysis-inventory-kpis span { display: block; }
body.cd-design-v2.cd-section-reportes .cd-analysis-inventory-kpis strong { color: var(--cd-ink); font-size: 20px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-inventory-kpis span { margin-top: 2px; color: var(--cd-muted); font-size: 10.5px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-imbalances { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-imbalances article { padding: 13px 14px; background: #fffaf0; border: 1px solid #edd5aa; border-radius: 13px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-imbalances article > strong { display: block; margin-bottom: 5px; color: #81500f; font-size: 13px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-imbalances p { margin: 2px 0; color: #66716c; font-size: 11.5px; }
body.cd-design-v2.cd-section-reportes .cd-analysis-imbalances p span { color: var(--cd-ink-soft); font-weight: 750; }

@media (max-width: 1100px) {
    body.cd-design-v2.cd-section-reportes .cd-analysis-kpis { grid-template-columns: repeat(3,minmax(0,1fr)); }
    body.cd-design-v2.cd-section-reportes .cd-analysis-sites { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

@media (max-width: 700px) {
    body.cd-design-v2.cd-section-reportes .cd-analysis-filter-actions { width: 100%; min-width: 0; }
    body.cd-design-v2.cd-section-reportes .cd-analysis { gap: 14px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-intro { align-items: flex-start; flex-direction: column; padding: 18px; border-radius: 17px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-intro h3 { font-size: 19px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-badge { padding: 7px 11px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 8px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-kpi { padding: 13px; border-radius: 13px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-kpi > strong { font-size: 19px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-section { padding: 14px; border-radius: 16px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-section__head { align-items: flex-start; flex-direction: column; gap: 6px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-section__head p { text-align: left; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-section__head .cd-btn { width: 100%; justify-content: center; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-alert { align-items: flex-start; flex-wrap: wrap; padding: 12px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-alert__icon { flex-basis: 31px; width: 31px; height: 31px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-alert__body { flex-basis: calc(100% - 45px); }
    body.cd-design-v2.cd-section-reportes .cd-analysis-alert__link { width: 100%; justify-content: flex-end; padding-top: 5px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-divisions,
    body.cd-design-v2.cd-section-reportes .cd-analysis-sites,
    body.cd-design-v2.cd-section-reportes .cd-analysis-imbalances { grid-template-columns: 1fr; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-division { padding: 13px; }
    body.cd-design-v2.cd-section-reportes .cd-analysis-division__metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
    body.cd-design-v2.cd-section-reportes .cd-analysis-inventory-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
}

/* Notificaciones */
body.cd-design-v2.cd-section-notificaciones .cd-notif-wrap { max-width: none; }
body.cd-design-v2.cd-section-notificaciones .cd-notif-layout { gap: 16px; }
body.cd-design-v2.cd-section-notificaciones .cd-notif-layout .cd-card { border-radius: 17px; }
body.cd-design-v2.cd-section-notificaciones .cd-segmented { padding: 4px; background: var(--cd-bg); border: 1px solid var(--cd-line); border-radius: 12px; }
body.cd-design-v2.cd-section-notificaciones .cd-seg-btn { min-height: 38px; border-radius: 9px; }
body.cd-design-v2.cd-section-notificaciones .cd-seg-btn.active { background: #fff; color: var(--cd-green-800); box-shadow: var(--cd-shadow-sm); }
body.cd-design-v2.cd-section-notificaciones .cd-btn-enviar { min-height: 44px; background: var(--cd-green-700); border-radius: 11px; box-shadow: 0 8px 18px rgba(24, 81, 57, .18); }

/* Novedades: tarjetas administrativas claras y adaptadas a móvil. */
body.cd-design-v2.cd-section-novedades .cd-nov-section { margin-bottom: 24px; }
body.cd-design-v2.cd-section-novedades .cd-nov-section__title {
    margin: 0 0 8px;
    color: #7a8580;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .45px;
    line-height: 1.35;
    text-transform: uppercase;
}
body.cd-design-v2.cd-section-novedades .cd-nov-section__title span { font-weight: 650; }
body.cd-design-v2.cd-section-novedades .cd-nov-info-card {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 10px;
    padding: 15px 18px;
    border-width: 1.5px;
}
body.cd-design-v2.cd-section-novedades .cd-nov-info-card__content { min-width: 0; }
body.cd-design-v2.cd-section-novedades .cd-nov-info-card__content strong { display: flex; align-items: center; gap: 6px; }
body.cd-design-v2.cd-section-novedades .cd-nov-info-card .cd-btn { flex: 0 0 auto; }
body.cd-design-v2.cd-section-novedades .cd-nov-card {
    margin-bottom: 14px;
    padding: 18px;
    border-width: 1.5px;
    overflow: hidden;
}
body.cd-design-v2.cd-section-novedades .cd-nov-card__layout {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 18px;
}
body.cd-design-v2.cd-section-novedades .cd-nov-card__main { flex: 1 1 auto; min-width: 0; }
body.cd-design-v2.cd-section-novedades .cd-nov-card__header {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 5px;
}
body.cd-design-v2.cd-section-novedades .cd-nov-card h3 {
    margin: 0;
    color: var(--cd-ink);
    font-size: 17px;
    line-height: 1.25;
    overflow-wrap: anywhere;
}
body.cd-design-v2.cd-section-novedades .cd-nov-request-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin-top: 11px;
    color: #66716c;
    font-size: 12px;
    line-height: 1.4;
}
body.cd-design-v2.cd-section-novedades .cd-nov-request-meta span { display: inline-flex; align-items: center; gap: 5px; }
body.cd-design-v2.cd-section-novedades .cd-nov-reason {
    margin-top: 11px;
    padding: 10px 12px;
    border: 1px solid rgba(31, 46, 39, .09);
    border-radius: 11px;
    background: rgba(255, 255, 255, .72);
}
body.cd-design-v2.cd-section-novedades .cd-nov-reason > span {
    display: block;
    margin-bottom: 3px;
    color: #7a8580;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: .45px;
    text-transform: uppercase;
}
body.cd-design-v2.cd-section-novedades .cd-nov-reason p { margin: 0; color: var(--cd-ink-soft); font-size: 13.5px; line-height: 1.45; overflow-wrap: anywhere; }
body.cd-design-v2.cd-section-novedades .cd-nov-card__note { margin: 8px 0 0; }
body.cd-design-v2.cd-section-novedades .cd-nov-card__links { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 11px; }
body.cd-design-v2.cd-section-novedades .cd-nov-card__side {
    display: flex;
    flex: 0 1 310px;
    flex-direction: column;
    gap: 10px;
    min-width: 250px;
}
body.cd-design-v2.cd-section-novedades .cd-nov-state-form { display: grid; gap: 6px; }
body.cd-design-v2.cd-section-novedades .cd-nov-state-form__label {
    font-size: 10.5px;
    font-weight: 800;
    letter-spacing: .4px;
    text-transform: uppercase;
}
body.cd-design-v2.cd-section-novedades .cd-nov-state-form__select {
    appearance: none;
    -webkit-appearance: none;
    width: 100%;
    min-height: 44px;
    padding: 10px 42px 10px 14px;
    border-width: 1px;
    border-radius: 12px;
    background-color: rgba(255, 255, 255, .92);
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2345524c' stroke-width='2.25' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m7 10 5 5 5-5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 13px center;
    background-size: 17px;
    box-shadow: inset 4px 0 0 currentColor, 0 5px 14px rgba(31, 46, 39, .07);
    cursor: pointer;
    font-family: inherit;
    font-size: 13px;
    font-weight: 750;
    line-height: 1.25;
    outline: none;
    transition: border-color var(--cd-ease), box-shadow var(--cd-ease), background-color var(--cd-ease), transform var(--cd-ease);
}
body.cd-design-v2.cd-section-novedades .cd-nov-state-form__select:hover {
    background-color: #fff;
    box-shadow: inset 4px 0 0 currentColor, 0 8px 18px rgba(31, 46, 39, .1);
}
body.cd-design-v2.cd-section-novedades .cd-nov-state-form__select:focus {
    background-color: #fff;
    border-color: currentColor !important;
    box-shadow: inset 4px 0 0 currentColor, 0 0 0 3px rgba(27, 94, 62, .11), 0 8px 18px rgba(31, 46, 39, .09);
}
body.cd-design-v2.cd-section-novedades .cd-nov-resolution-actions,
body.cd-design-v2.cd-section-novedades .cd-nov-card__actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
body.cd-design-v2.cd-section-novedades .cd-nov-list-heading { margin: 0 0 10px; }

@media (max-width: 680px) {
    body.cd-design-v2.cd-section-novedades .cd-page-header { padding: 17px; }
    body.cd-design-v2.cd-section-novedades .cd-nov-section { margin-bottom: 20px; }
    body.cd-design-v2.cd-section-novedades .cd-nov-section__title { margin-bottom: 7px; font-size: 10.5px; }
    body.cd-design-v2.cd-section-novedades .cd-nov-info-card {
        align-items: stretch;
        flex-direction: column;
        gap: 11px;
        padding: 14px !important;
        border-radius: 15px;
    }
    body.cd-design-v2.cd-section-novedades .cd-nov-info-card .cd-btn { width: 100%; justify-content: center; }
    body.cd-design-v2.cd-section-novedades .cd-nov-card { padding: 14px !important; border-radius: 15px; }
    body.cd-design-v2.cd-section-novedades .cd-nov-card__layout { display: block; }
    body.cd-design-v2.cd-section-novedades .cd-nov-card h3 { width: 100%; font-size: 16px; }
    body.cd-design-v2.cd-section-novedades .cd-nov-card__header .cd-badge { max-width: 100%; white-space: normal; text-align: center; }
    body.cd-design-v2.cd-section-novedades .cd-nov-request-meta { display: grid; gap: 6px; margin-top: 10px; }
    body.cd-design-v2.cd-section-novedades .cd-nov-request-meta span { align-items: flex-start; }
    body.cd-design-v2.cd-section-novedades .cd-nov-reason { margin-top: 10px; padding: 9px 10px; }
    body.cd-design-v2.cd-section-novedades .cd-nov-card__links { display: grid; grid-template-columns: 1fr 1fr; }
    body.cd-design-v2.cd-section-novedades .cd-nov-card__links .cd-btn { justify-content: center; min-width: 0; white-space: normal; text-align: center; line-height: 1.25; }
    body.cd-design-v2.cd-section-novedades .cd-nov-card__side {
        width: auto;
        min-width: 0;
        margin: 14px -14px -14px;
        padding: 13px 14px 14px;
        border-top: 1px solid rgba(31, 46, 39, .1);
        background: rgba(255, 255, 255, .58);
    }
    body.cd-design-v2.cd-section-novedades .cd-nov-state-form__select {
        min-height: 48px;
        padding: 11px 43px 11px 15px;
        border-radius: 13px;
        background-position: right 14px center;
        font-size: 14px;
    }
    body.cd-design-v2.cd-section-novedades .cd-nov-resolution-actions,
    body.cd-design-v2.cd-section-novedades .cd-nov-card__actions { display: grid; grid-template-columns: 1fr; width: 100%; }
    body.cd-design-v2.cd-section-novedades .cd-nov-resolution-actions .cd-btn,
    body.cd-design-v2.cd-section-novedades .cd-nov-card__actions .cd-btn { width: 100%; min-height: 42px; justify-content: center; white-space: normal; text-align: center; }
    body.cd-design-v2.cd-section-novedades .cd-modal-overlay { padding: 12px; align-items: flex-end; }
    body.cd-design-v2.cd-section-novedades .cd-modal { width: 100%; max-height: calc(100dvh - 24px); border-radius: 18px 18px 12px 12px; }
    body.cd-design-v2.cd-section-novedades .cd-modal-footer { display: grid; grid-template-columns: 1fr; gap: 8px; }
    body.cd-design-v2.cd-section-novedades .cd-modal-footer .cd-btn { width: 100%; justify-content: center; }
}

@media (max-width: 390px) {
    body.cd-design-v2.cd-section-novedades .cd-nov-card__links { grid-template-columns: 1fr; }
}
body.cd-design-v2.cd-section-notificaciones .cd-phone-mock { border-color: var(--cd-line-strong); border-radius: 22px; box-shadow: var(--cd-shadow); }

@media (max-width: 1120px) and (min-width: 861px) {
    :root { --cd-sidebar-width: 250px; }
    body.cd-design-v2 .cd-sidebar { left: 10px; top: 10px; bottom: 10px; }
    body.cd-design-v2 .cd-content { margin-left: calc(var(--cd-sidebar-width) + 20px); }
    body.cd-design-v2 .cd-content__inner { padding: 26px 24px 72px; }
    body.cd-design-v2 .cd-topbar { padding-inline: 24px; }
    body.cd-design-v2 .cd-section-context-wrap { padding: 14px 24px 0; }
}

@media (max-width: 860px) {
    body.cd-design-v2 { background: radial-gradient(circle at 90% -5%, rgba(57, 169, 107, .11), transparent 20rem), var(--cd-bg); }
    body.cd-design-v2 .cd-sidebar { top: 10px; bottom: 10px; left: 10px; width: min(86vw, 320px); border-radius: 22px; transform: translateX(calc(-100% - 24px)); z-index: 260; }
    body.cd-design-v2 .cd-sidebar.open { transform: translateX(0); box-shadow: var(--cd-shadow-lg); }
    body.cd-design-v2 .cd-overlay { position: fixed; inset: 0; z-index: 250; background: rgba(9, 30, 21, .46); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); }
    body.cd-design-v2 .cd-content { width: 100%; margin-left: 0; }
    body.cd-design-v2 .cd-topbar {
        position: fixed;
        top: 6px;
        right: 6px;
        left: 6px;
        width: auto !important;
        max-width: none;
        box-sizing: border-box;
        z-index: 220;
        min-height: 58px;
        padding: 6px 7px 6px 54px;
        gap: 6px;
        color: #fff;
        background: linear-gradient(135deg, rgba(24, 81, 57, .99), rgba(13, 48, 34, .99));
        border: 1px solid rgba(130, 224, 168, .18);
        border-radius: 18px;
        box-shadow: 0 12px 30px rgba(8, 34, 24, .24), inset 0 1px 0 rgba(255, 255, 255, .09);
    }
    body.cd-design-v2 .cd-topbar__brand { flex: 1 1 auto; gap: 8px; overflow: hidden; }
    body.cd-design-v2 .cd-topbar__actions { gap: 3px; }
    body.cd-design-v2 .cd-topbar__logo { width: 36px; height: 36px; border-radius: 10px; }
    body.cd-design-v2 .cd-topbar .cd-logo-icon { width: 36px; height: 36px; color: #fff; background: rgba(255, 255, 255, .12); border-color: rgba(255, 255, 255, .16); box-shadow: none; }
    body.cd-design-v2 .cd-topbar__eyebrow { display: none; }
    body.cd-design-v2 .cd-topbar__nombre { max-width: 29vw; color: #fff; font-size: 13px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    body.cd-design-v2 .cd-topbar-action { width: 36px; min-height: 36px; padding: 0; color: rgba(255, 255, 255, .84); background: rgba(255, 255, 255, .08); border-color: rgba(255, 255, 255, .11); border-radius: 10px; }
    body.cd-design-v2 .cd-topbar-action:hover { color: #fff; background: rgba(255, 255, 255, .14); border-color: rgba(255, 255, 255, .18); box-shadow: none; transform: none; }
    body.cd-design-v2 .cd-topbar-action__badge { top: -4px; right: -4px; border-color: var(--cd-green-900); }
    body.cd-design-v2 .cd-topbar-action__label,
    body.cd-design-v2 .cd-topbar-user__text { display: none; }
    body.cd-design-v2 .cd-topbar-user,
    body.cd-design-v2 .cd-desktop-topbar-action { display: none; }
    body.cd-design-v2 .cd-mobile-only-action { display: flex; }
    body.cd-design-v2 .cd-hamburger {
        position: fixed;
        top: 15px;
        left: 14px;
        z-index: 221;
        width: 40px;
        height: 40px;
        display: flex;
        align-items: center;
        justify-content: center;
        color: #fff !important;
        background: rgba(255, 255, 255, .10);
        border: 1px solid rgba(255, 255, 255, .14);
        border-radius: 11px;
        box-shadow: none;
        transform: none;
        touch-action: manipulation;
    }
    body.cd-design-v2 .cd-hamburger svg { stroke: #fff !important; }
    body.cd-design-v2 .cd-content__inner { padding: 80px 14px calc(32px + env(safe-area-inset-bottom)); }
    body.cd-design-v2 .cd-page-header { margin-bottom: 16px; padding: 18px; border-radius: 17px; }
    body.cd-design-v2 .cd-page-header h1 { font-size: 23px; }
    body.cd-design-v2 .cd-page-header p { font-size: 12.5px; }
    body.cd-design-v2 .cd-page-header__top { gap: 14px; }
    body.cd-design-v2 .cd-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-bottom: 18px; }
    body.cd-design-v2 .cd-stat-card { min-height: 116px; padding: 14px; border-radius: 14px; }
    body.cd-design-v2 .cd-stat-icon { width: 32px; height: 32px; border-radius: 10px; }
    body.cd-design-v2 .cd-stat-number { font-size: clamp(19px, 6vw, 24px); }
    body.cd-design-v2 .cd-stat-label { font-size: 9.5px; overflow-wrap: anywhere; }
    body.cd-design-v2 .cd-card { padding: 17px; border-radius: 17px; }
    body.cd-design-v2 .cd-table-wrap { background: transparent; border: none; box-shadow: none; overflow: visible; }
    body.cd-design-v2 .cd-table tbody tr { margin-bottom: 11px; padding: 14px; background: #fff; border: 1px solid var(--cd-line); border-radius: 15px; box-shadow: var(--cd-shadow-sm); }
    body.cd-design-v2 .cd-table td { grid-template-columns: minmax(76px, 32%) minmax(0, 1fr); gap: 10px; padding: 7px 0; }
    body.cd-design-v2 .cd-table td::before { color: var(--cd-muted); font-size: 9.5px; }
    body.cd-design-v2 .cd-modal-overlay,
    body.cd-design-v2 .cd-drawer-overlay { align-items: flex-end; padding: 0; }
    body.cd-design-v2 .cd-modal,
    body.cd-design-v2 .cd-drawer { width: 100%; max-width: none; max-height: 91dvh; margin: 0; border-radius: 22px 22px 0 0; border-bottom: none; }

    body.cd-design-v2 .cd-mobile-nav {
        position: fixed;
        right: 6px;
        top: 64px;
        bottom: auto;
        left: 6px;
        z-index: 219;
        min-height: 58px;
        padding: 5px 7px 6px;
        display: grid;
        grid-template-columns: repeat(var(--cd-mobile-count, 5), minmax(0, 1fr));
        align-items: center;
        gap: 3px;
        background: linear-gradient(135deg, rgba(24, 81, 57, .99), rgba(13, 48, 34, .99));
        border: 1px solid rgba(130, 224, 168, .18);
        border-top-color: rgba(255, 255, 255, .08);
        border-radius: 0 0 18px 18px;
        box-shadow: 0 12px 30px rgba(8, 34, 24, .24), inset 0 1px 0 rgba(255, 255, 255, .09);
        backdrop-filter: blur(18px) saturate(150%);
        -webkit-backdrop-filter: blur(18px) saturate(150%);
    }

    body.cd-design-v2 .cd-mobile-nav__item { position: relative; min-width: 0; min-height: 46px; padding: 4px 2px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; color: rgba(255, 255, 255, .68); background: transparent; border: 0; border-radius: 11px; font: inherit; font-size: 9px; font-weight: 750; line-height: 1; cursor: pointer; transition: var(--cd-ease); }
    body.cd-design-v2 .cd-mobile-nav__item svg { width: 20px; height: 20px; }
    body.cd-design-v2 .cd-mobile-nav__item:hover { color: #fff; background: rgba(255, 255, 255, .07); }
    body.cd-design-v2 .cd-mobile-nav__item.active { color: #fff; background: rgba(92, 214, 143, .22); box-shadow: inset 0 0 0 1px rgba(140, 235, 179, .14); }
    body.cd-design-v2 .cd-mobile-nav__item.active::after { content: ""; position: absolute; top: 2px; width: 17px; height: 3px; background: #70dda0; border-radius: 0 0 4px 4px; box-shadow: 0 0 10px rgba(112, 221, 160, .55); }
    body.cd-design-v2 .cd-mobile-nav__badge { position: absolute; top: 2px; left: calc(50% + 6px); min-width: 16px; height: 16px; padding: 0 4px; display: inline-flex; align-items: center; justify-content: center; color: #fff; background: #df534e; border: 2px solid var(--cd-green-900); border-radius: 9px; font-size: 8px; font-weight: 800; }

    /* Rendimiento móvil: las barras fijas opacas no necesitan recalcular un
       desenfoque de toda la página cada vez que se desplaza o se toca el menú. */
    body.cd-design-v2 .cd-topbar,
    body.cd-design-v2 .cd-mobile-nav,
    body.cd-design-v2 .cd-overlay,
    body.cd-design-v2.cd-portal-page .cd-portal-tabs {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
    body.cd-design-v2 .cd-mobile-nav,
    body.cd-design-v2.cd-portal-page .cd-portal-tabs {
        contain: layout paint;
        isolation: isolate;
    }
    body.cd-design-v2 .cd-mobile-nav__item,
    body.cd-design-v2.cd-portal-page .cd-portal-tab,
    body.cd-design-v2 [data-cd-open-menu] {
        touch-action: manipulation;
    }

    body.cd-design-v2.cd-section-dashboard .cd-dashboard-actions { width: 100%; }
    body.cd-design-v2.cd-section-dashboard .cd-dashboard-actions .cd-btn { flex: 1 1 0; }
    body.cd-design-v2.cd-section-caja .cd-caja-contextos {
        margin-top: -5px;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        overflow: visible;
    }
    body.cd-design-v2.cd-section-caja .cd-caja-contexto { min-width: 0; min-height: 58px; padding: 8px; }
    body.cd-design-v2.cd-section-caja .cd-caja-contexto span { min-width: 0; }
    body.cd-design-v2.cd-section-caja .cd-caja-contexto strong,
    body.cd-design-v2.cd-section-caja .cd-caja-contexto small { white-space: normal; overflow-wrap: anywhere; }
    body.cd-design-v2.cd-section-caja .cd-caja-tabs {
        position: relative;
        top: auto;
        margin-inline: -4px;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
        overflow: visible;
    }
    body.cd-design-v2.cd-section-caja .cd-caja-tabs .cd-btn { width: 100%; min-height: 48px; padding: 8px; white-space: normal; line-height: 1.25; }
    body.cd-design-v2.cd-section-caja .cd-caja-mov-item { padding: 14px; }
    body.cd-design-v2.cd-section-caja .cd-caja-mov-item__contenido { flex-basis: calc(100% - 50px); }
    body.cd-design-v2.cd-section-caja .cd-caja-mov-item__resumen { align-items: flex-start; }
    body.cd-design-v2.cd-section-caja .cd-caja-mov-item__acciones { max-width: 62%; }
    body.cd-design-v2 .cd-section-context-wrap { margin-top: 64px; padding: 14px 14px 0; }
    body.cd-design-v2 .cd-section-context-wrap + .cd-content__inner { padding-top: 18px; }
    body.cd-design-v2 .cd-section-context {
        padding: 5px;
        display: grid;
        grid-template-columns: repeat(3, minmax(0, 1fr));
        align-items: stretch;
        overflow: visible;
    }
    body.cd-design-v2 .cd-section-context__item {
        min-width: 0;
        min-height: 56px;
        padding: 8px 5px;
        flex-direction: column;
        gap: 5px;
        white-space: normal;
        line-height: 1.18;
        text-align: center;
        overflow-wrap: anywhere;
    }
    body.cd-design-v2:is(.cd-section-jugadores, .cd-section-divisiones, .cd-section-profesores, .cd-section-salud, .cd-section-colaboradores, .cd-section-equipo) .cd-page-header__top > div:last-child { width: 100%; }
    body.cd-design-v2:is(.cd-section-jugadores, .cd-section-divisiones, .cd-section-profesores, .cd-section-salud, .cd-section-colaboradores, .cd-section-equipo) .cd-page-header__top > div:last-child .cd-btn { flex: 1 1 auto; }
    body.cd-design-v2 .cd-filters form { width: 100%; }
    body.cd-design-v2 .cd-filters form > select,
    body.cd-design-v2 .cd-filters form > input { flex: 1 1 145px; max-width: none !important; }
    body.cd-design-v2.cd-section-personal .cd-personal-header__actions { width: 100% !important; }
    body.cd-design-v2.cd-section-personal .cd-personal-header__actions .cd-btn { flex: 1 1 0 !important; }
    body.cd-design-v2.cd-section-personal .cd-personal-filtros { align-items: stretch; }
    body.cd-design-v2.cd-section-personal .cd-personal-filtros > * { max-width: none; }
    body.cd-design-v2.cd-section-socios .cd-socios-tabs { width: 100%; }
    body.cd-design-v2.cd-section-socios .cd-socios-tabs .cd-btn { flex: 1 1 0; }
    body.cd-design-v2.cd-section-asistencias .cd-asistencia-card__header { padding: 15px; }
    body.cd-design-v2.cd-section-citaciones .cd-calendario { padding: 9px; border-radius: 15px; }
    body.cd-design-v2 .cd-service-tabs,
    body.cd-design-v2 .cd-cc-tabs { width: 100%; }
    body.cd-design-v2 .cd-service-tabs .cd-btn,
    body.cd-design-v2 .cd-cc-tabs .cd-btn { flex: 1 1 0; }
    body.cd-design-v2:is(.cd-section-inventario, .cd-section-convenios) .cd-personal-header__actions { width: 100%; }
    body.cd-design-v2:is(.cd-section-inventario, .cd-section-convenios) .cd-personal-header__actions .cd-btn { flex: 1 1 auto; }
    body.cd-design-v2.cd-section-inventario .cd-personal-header__actions {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
        gap: 8px;
    }
    body.cd-design-v2.cd-section-inventario .cd-personal-header__actions .cd-btn {
        width: 100%;
        min-width: 0;
        min-height: 66px;
        padding: 9px 7px;
        flex-direction: column;
        justify-content: center;
        gap: 6px;
        white-space: normal;
        line-height: 1.18;
        text-align: center;
        overflow-wrap: anywhere;
        border-radius: 13px;
        font-size: 12px;
        font-weight: 600;
    }
    body.cd-design-v2.cd-section-inventario .cd-personal-header__actions .cd-btn svg {
        width: 19px;
        height: 19px;
        flex: 0 0 auto;
    }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-topbar { right: 12px; width: auto !important; }
    body.cd-design-v2.cd-section-reportes .cd-report-tabs {
        position: relative;
        top: auto;
        margin-inline: -4px;
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        align-items: stretch;
        overflow: visible;
    }
    body.cd-design-v2.cd-section-reportes .cd-report-tab { min-width: 0; white-space: normal; text-align: center; justify-content: center; line-height: 1.25; }
    body.cd-design-v2.cd-section-notificaciones .cd-notif-layout { grid-template-columns: 1fr; }
    body.cd-design-v2:is(.cd-section-cuentas-corrientes, .cd-section-sueldos) .cd-card > form:not([id^="form-exportar"]) > .cd-form-group { flex: 1 1 100% !important; min-width: 0 !important; }
    body.cd-design-v2:is(.cd-section-cuentas-corrientes, .cd-section-sueldos) .cd-card > form:not([id^="form-exportar"]) > .cd-btn { width: 100%; justify-content: center; }
}

@media (max-width: 380px) {
    body.cd-design-v2 .cd-content__inner { padding-inline: 11px; }
    body.cd-design-v2 .cd-topbar { right: 4px; left: 4px; padding-left: 51px; }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-topbar { right: 9px; }
    body.cd-design-v2 .cd-hamburger { left: 11px; }
    body.cd-design-v2 .cd-mobile-nav { right: 4px; top: 64px; bottom: auto; left: 4px; }
    body.cd-design-v2 .cd-topbar__nombre { max-width: 25vw; font-size: 12px; }
    body.cd-design-v2 .cd-topbar-action { width: 34px; min-height: 34px; }
    body.cd-design-v2 .cd-mobile-nav__item { font-size: 8.3px; }
    body.cd-design-v2 .cd-section-context { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.cd-design-v2.cd-section-caja .cd-caja-contextos { grid-template-columns: 1fr; }
    body.cd-design-v2.cd-section-caja .cd-caja-contexto { min-height: 52px; }
}

@media (prefers-reduced-motion: reduce) {
    body.cd-design-v2 *, body.cd-design-v2 *::before, body.cd-design-v2 *::after {
        scroll-behavior: auto !important;
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
}

/* ==================================================================
   PAQUETE 05 — SUPERADMIN, EQUIPOS DE TRABAJO Y FAMILIAS
   ================================================================== */

/* Administración global */
body.cd-design-v2.cd-admin-page .cd-content__inner {
    width: min(100%, 1480px);
    margin-inline: auto;
}

body.cd-design-v2.cd-admin-page .cd-admin-context-wrap {
    width: min(100%, 1480px);
    margin-inline: auto;
}

body.cd-design-v2.cd-admin-page .cd-page-header {
    position: relative;
    overflow: hidden;
    padding: 24px 26px;
    border: 1px solid rgba(33, 108, 73, .12);
    border-radius: var(--cd-radius-lg);
    background: linear-gradient(135deg, #fff 0%, #f4fbf7 100%);
    box-shadow: var(--cd-shadow-sm);
}

body.cd-design-v2.cd-admin-page .cd-page-header::after {
    content: "";
    position: absolute;
    width: 150px;
    height: 150px;
    right: -70px;
    top: -90px;
    border: 26px solid rgba(57, 169, 107, .07);
    border-radius: 50%;
    pointer-events: none;
}

body.cd-design-v2.cd-admin-page .cd-stats-grid {
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 14px;
}

body.cd-design-v2.cd-admin-page .cd-stat-card {
    min-height: 112px;
    border: 1px solid var(--cd-line);
    border-radius: 18px;
    background: linear-gradient(155deg, #fff, #f9fcfa);
    box-shadow: var(--cd-shadow-sm);
    transition: transform var(--cd-ease), box-shadow var(--cd-ease), border-color var(--cd-ease);
}

body.cd-design-v2.cd-admin-page .cd-stat-card:hover {
    transform: translateY(-2px);
    border-color: rgba(45, 138, 89, .24);
    box-shadow: var(--cd-shadow);
}

body.cd-design-v2.cd-admin-page .cd-stat-icon {
    width: 44px;
    height: 44px;
    border-radius: 14px;
    background: var(--cd-green-50);
    color: var(--cd-green-700);
}

body.cd-design-v2.cd-admin-page .cd-card,
body.cd-design-v2.cd-admin-page .cd-table-wrap,
body.cd-design-v2.cd-admin-page .cd-table-responsive {
    border-color: var(--cd-line);
    border-radius: 18px;
    box-shadow: var(--cd-shadow-sm);
}

body.cd-design-v2.cd-admin-page .cd-table-wrap,
body.cd-design-v2.cd-admin-page .cd-table-responsive {
    overflow-x: auto;
    overscroll-behavior-inline: contain;
}

body.cd-design-v2.cd-admin-page .cd-table { min-width: 720px; }
body.cd-design-v2.cd-admin-section-notificaciones .cd-notif-layout { align-items: start; }
body.cd-design-v2.cd-admin-section-notificaciones .cd-phone-mock { position: sticky; top: 104px; }

/* Profesor, Salud y Colaboradores */
body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-content__inner {
    width: min(100%, 1320px);
    margin-inline: auto;
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-prof-inicio-nuevo {
    width: min(100%, 980px);
    max-width: none;
    gap: 15px;
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-bienvenida-card {
    position: relative;
    overflow: hidden;
    padding: 24px;
    border: 1px solid rgba(85, 205, 133, .16);
    border-radius: 22px;
    background: radial-gradient(circle at 92% 5%, rgba(105, 221, 151, .24), transparent 14rem), linear-gradient(135deg, var(--cd-green-900), var(--cd-green-800));
    color: #fff;
    box-shadow: 0 18px 38px rgba(13, 48, 34, .16);
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-bienvenida-avatar {
    width: 54px;
    height: 54px;
    border: 1px solid rgba(255, 255, 255, .24);
    background: rgba(255, 255, 255, .14);
    color: #fff;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .18);
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-bienvenida-texto h2,
body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-bienvenida-texto p { color: inherit; }

body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-inicio-grid,
body.cd-design-v2.cd-role-profesor .cd-home-cards {
    gap: 14px;
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-role-quick-header {
    min-height: 58px;
    padding: 11px 15px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    border: 1px solid rgba(45, 138, 89, .17);
    border-radius: 16px;
    color: var(--cd-green-800);
    background: linear-gradient(135deg, var(--cd-green-50), #fff);
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-role-quick-header span {
    display: block;
    margin-bottom: 1px;
    color: var(--cd-muted);
    font-size: 9.5px;
    font-weight: 800;
    letter-spacing: .09em;
    text-transform: uppercase;
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-role-quick-header h3 {
    margin: 0;
    color: var(--cd-green-900);
    font-size: 15px;
    font-weight: 800;
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-inicio-card,
body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-home-card,
body.cd-design-v2.cd-role-profesor .cd-turno-card {
    border: 1px solid var(--cd-line);
    border-radius: 18px;
    background: linear-gradient(155deg, #fff, #f9fcfa);
    box-shadow: var(--cd-shadow-sm);
    transition: transform var(--cd-ease), box-shadow var(--cd-ease), border-color var(--cd-ease);
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-inicio-card:hover,
body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-home-card:hover {
    transform: translateY(-2px);
    border-color: rgba(45, 138, 89, .25);
    box-shadow: var(--cd-shadow);
}

body.cd-design-v2.cd-role-profesor .cd-turno-card {
    padding: 10px;
    gap: 9px;
}

body.cd-design-v2.cd-role-profesor .cd-turno-btn { min-height: 50px; border-radius: 12px; }

body.cd-design-v2.cd-role-profesor .cd-home-cards {
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 11px;
}

body.cd-design-v2.cd-role-colaborador .cd-colab-home-cards {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 11px;
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-home-card {
    min-height: 142px;
    padding: 15px;
    justify-content: flex-start;
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-home-card__icon {
    width: 43px;
    height: 43px;
    border-radius: 12px;
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-home-card strong { margin-top: 7px; line-height: 1.2; }
body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-home-card__sub { line-height: 1.3; }

body.cd-design-v2:is(.cd-role-salud, .cd-role-colaborador) .cd-inicio-factura-cta {
    min-height: 82px;
    margin-top: 0;
    padding: 14px 16px;
    border-radius: 17px;
    box-shadow: var(--cd-shadow-sm);
}

body.cd-design-v2.cd-role-salud .cd-inicio-seccion {
    padding: 16px;
    border: 1px solid var(--cd-line);
    border-radius: 18px;
    background: #fff;
    box-shadow: var(--cd-shadow-sm);
}

body.cd-design-v2.cd-role-salud .cd-inicio-seccion h3 {
    margin: 0 0 10px;
    padding: 0;
    background: transparent;
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-card,
body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-section-header {
    border-color: var(--cd-line);
    border-radius: 18px;
    box-shadow: var(--cd-shadow-sm);
}

/* Profesor — iconografía y pantallas internas con el mismo lenguaje visual
   de la portada. Los modificadores de colores antiguos se conservan en el
   HTML por compatibilidad, pero en V2 convergen en la identidad verde. */
body.cd-design-v2.cd-role-profesor .cd-home-card__icon:not(.cd-home-card__icon--ambar) {
    color: var(--cd-green-800);
    background: linear-gradient(145deg, #f2faf6, #e4f3eb);
    border: 1px solid #cce5d7;
    box-shadow: inset 0 1px 0 rgba(255, 255, 255, .8);
}
body.cd-design-v2.cd-role-profesor .cd-home-card__icon svg { width: 22px; height: 22px; }

body.cd-design-v2.cd-role-profesor .cd-inicio-item {
    min-height: 68px;
    padding: 12px 14px;
    gap: 12px;
    border-color: var(--cd-line);
    border-radius: 15px;
    box-shadow: 0 5px 14px rgba(13, 48, 34, .045);
}
body.cd-design-v2.cd-role-profesor .cd-inicio-item__icon {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 40px;
    color: var(--cd-green-800);
    background: #edf7f1;
    border: 1px solid #d2e8dc;
    border-radius: 12px;
}
body.cd-design-v2.cd-role-profesor .cd-inicio-item__icon svg { width: 19px; height: 19px; }
body.cd-design-v2.cd-role-profesor .cd-inicio-item__info strong { color: var(--cd-ink); font-weight: 750; }
body.cd-design-v2.cd-role-profesor .cd-inicio-item__info span { color: var(--cd-muted); }

body.cd-design-v2.cd-role-profesor .cd-section-header {
    padding: 18px 20px;
    background: linear-gradient(145deg, #fbfefc, #edf7f1);
    border-color: #cfe5d9;
}
body.cd-design-v2.cd-role-profesor .cd-section-header h1,
body.cd-design-v2.cd-role-profesor .cd-section-header h2 {
    display: flex;
    align-items: center;
    gap: 9px;
    color: var(--cd-green-950);
}
body.cd-design-v2.cd-role-profesor .cd-section-header h1 svg,
body.cd-design-v2.cd-role-profesor .cd-section-header h2 svg,
body.cd-design-v2.cd-role-profesor .cd-form-section-title > svg { color: var(--cd-green-700); }
body.cd-design-v2.cd-role-profesor .cd-section-header p { color: #62766b; }

body.cd-design-v2.cd-role-profesor .cd-inv-seccion-titulo__icono,
body.cd-design-v2.cd-role-profesor .cd-inv-recuento-icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    color: var(--cd-green-800) !important;
    background: rgba(255, 255, 255, .76);
    border: 1px solid #c9e3d5;
    border-radius: 12px;
    font-size: 0 !important;
}
body.cd-design-v2.cd-role-profesor .cd-inv-seccion-titulo__icono svg,
body.cd-design-v2.cd-role-profesor .cd-inv-recuento-icon svg { width: 21px; height: 21px; }

body.cd-design-v2.cd-role-profesor .cd-personal-empty > span,
body.cd-design-v2.cd-role-profesor .cd-empty > span {
    color: var(--cd-green-700);
}

body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-table-wrap,
body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-table-responsive {
    max-width: 100%;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    border-radius: 14px;
}

body.cd-design-v2 .cd-mobile-nav__item--disabled {
    opacity: .42;
    pointer-events: none;
}

/* Portal de familias */
body.cd-design-v2.cd-portal-page {
    --cd-green-950: #071d30;
    --cd-green-900: #0b263e;
    --cd-green-800: #123f63;
    --cd-green-700: #1d4e7a;
    --cd-green-600: #2b6ca3;
    --cd-green-500: #4d8fc5;
    --cd-green-100: #dceaf5;
    --cd-green-50: #eef5fb;
    --cd-ink: #17293a;
    --cd-ink-soft: #40566a;
    --cd-muted: #6c7f90;
    --cd-bg: #f3f7fb;
    --cd-surface-soft: #f7fafd;
    --cd-line: #dbe5ee;
    --cd-line-strong: #c7d6e3;
    --cd-shadow-sm: 0 1px 2px rgba(7, 29, 48, .04), 0 5px 16px rgba(7, 29, 48, .045);
    --cd-shadow: 0 12px 35px rgba(7, 29, 48, .08);
    --cd-shadow-lg: 0 24px 60px rgba(7, 29, 48, .18);
    min-height: 100dvh;
    padding-bottom: env(safe-area-inset-bottom);
    background: radial-gradient(circle at 50% -8rem, rgba(43, 108, 163, .12), transparent 30rem), #f3f7fb;
}

body.cd-design-v2.cd-portal-page > div[style*="max-width:760px"] {
    width: min(calc(100% - 24px), 1040px) !important;
    max-width: none !important;
    padding-bottom: 90px !important;
}

body.cd-design-v2.cd-portal-page .cd-portal-shell {
    width: min(calc(100% - 28px), 980px) !important;
    max-width: 980px !important;
}

body.cd-design-v2.cd-portal-page .cd-portal-shell > .cd-portal-familybar {
    margin: 16px 0 0 !important;
    border-radius: 22px !important;
}

body.cd-design-v2.cd-portal-page .cd-portal-main { padding: 0 2px; }

body.cd-design-v2.cd-portal-page .cd-portal-notice {
    width: calc(100% - 4px);
    margin: 0 2px 24px;
    padding: 16px 18px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    color: #9b2c2c;
    background: #fff;
    border: 1px solid #9fc1dc;
    border-radius: 16px;
    box-shadow: 0 8px 22px rgba(7, 29, 48, .07);
    text-align: center;
}
body.cd-design-v2.cd-portal-page .cd-portal-notice__icon {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #a42f2f;
    background: #edf5fb;
    border: 1px solid #c7dceb;
    border-radius: 50%;
}
body.cd-design-v2.cd-portal-page .cd-portal-notice__copy strong {
    display: block;
    color: #8e2525;
    font-size: 14px;
    font-weight: 850;
}
body.cd-design-v2.cd-portal-page .cd-portal-notice__copy span {
    display: block;
    margin-top: 3px;
    color: #a13a3a;
    font-size: 12.5px;
    line-height: 1.45;
}
body.cd-design-v2.cd-portal-page .cd-portal-notice__action {
    min-height: 36px;
    padding: 8px 14px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff !important;
    background: linear-gradient(135deg, #173f63, #0b263e);
    border-radius: 10px;
    font-size: 11.5px;
    font-weight: 800;
    text-decoration: none;
}

body.cd-design-v2.cd-portal-page > div[style*="max-width:760px"] > div:first-child {
    margin-top: 18px !important;
    border: 1px solid var(--cd-line);
    border-radius: 24px !important;
    box-shadow: 0 12px 30px rgba(7, 29, 48, .09);
}

body.cd-design-v2.cd-portal-page .cd-portal-familybar {
    margin: 12px 12px 0;
    padding: 17px 18px 16px;
    border: 1px solid rgba(151, 194, 229, .22) !important;
    border-radius: 20px;
    color: #fff;
    background: radial-gradient(circle at 92% 0%, rgba(111, 172, 221, .22), transparent 15rem), linear-gradient(135deg, var(--cd-green-800), var(--cd-green-950));
    box-shadow: 0 16px 36px rgba(7, 29, 48, .22) !important;
}
body.cd-design-v2.cd-portal-page .cd-portal-familybar__top {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}
body.cd-design-v2.cd-portal-page .cd-portal-familybar__brand {
    min-width: 0;
    display: flex;
    align-items: center;
    gap: 10px;
}
body.cd-design-v2.cd-portal-page .cd-portal-familybar__club {
    min-width: 0;
    color: #fff;
    font-size: 13.5px;
    font-weight: 750;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
body.cd-design-v2.cd-portal-page .cd-portal-familybar__actions { display: flex; align-items: center; gap: 7px; flex-shrink: 0; }
body.cd-design-v2.cd-portal-page .cd-portal-familybar__actions a {
    position: relative;
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #fff !important;
    text-decoration: none;
    background: rgba(255, 255, 255, .11);
    border: 1px solid rgba(255, 255, 255, .15);
    border-radius: 10px;
}
body.cd-design-v2.cd-portal-page .cd-portal-familybar__actions a:hover { background: rgba(255, 255, 255, .18); }
body.cd-design-v2.cd-portal-page .cd-portal-familybar__eyebrow { margin: 0 0 2px; color: rgba(255, 255, 255, .65); font-size: 11px; }
body.cd-design-v2.cd-portal-page .cd-portal-familybar__name { margin: 0 0 13px; color: #fff; font-size: 17px; font-weight: 750; }
body.cd-design-v2.cd-portal-page .cd-portal-family-switcher { display: flex; gap: 8px; overflow-x: auto; padding-bottom: 2px; }
body.cd-design-v2.cd-portal-page .cd-portal-family-chip {
    flex-shrink: 0;
    padding: 7px 11px;
    display: flex;
    align-items: center;
    gap: 7px;
    color: rgba(255, 255, 255, .82);
    background: rgba(255, 255, 255, .09);
    border: 1px solid rgba(255, 255, 255, .13);
    border-radius: 11px;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
}
body.cd-design-v2.cd-portal-page .cd-portal-family-chip.is-active { color: #fff; background: rgba(255, 255, 255, .18); border-color: rgba(255, 255, 255, .30); }
body.cd-design-v2.cd-portal-page .cd-portal-family-chip--add { border-style: dashed; border-color: rgba(255, 255, 255, .27); }
body.cd-design-v2.cd-portal-page .cd-portal-family-chip__avatar {
    width: 22px;
    height: 22px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--cd-green-900);
    background: #dceaf5;
    border-radius: 50%;
    font-size: 9px;
    font-weight: 800;
}

body.cd-design-v2.cd-portal-page .cd-page-header {
    border-radius: 20px !important;
    box-shadow: var(--cd-shadow-sm);
}

body.cd-design-v2.cd-portal-page .cd-portal-player-card {
    margin: 16px 0 !important;
    padding: 20px 22px !important;
    border: 1px solid var(--cd-line) !important;
    border-radius: 18px !important;
    background: linear-gradient(145deg, #fff, #f1f6fa) !important;
}
body.cd-design-v2.cd-portal-page .cd-portal-player-card::after { border-color: rgba(43, 108, 163, .07); }
body.cd-design-v2.cd-portal-page .cd-portal-player-card h1 { margin: 0; color: var(--cd-ink) !important; }
body.cd-design-v2.cd-portal-page .cd-portal-player-card p { margin: 2px 0 0; color: var(--cd-muted) !important; }
body.cd-design-v2.cd-portal-page .cd-portal-player-card img[style*="width:64px"] { border-color: #c5d9e8 !important; }
body.cd-design-v2.cd-portal-page .cd-portal-player-card__avatar {
    width: 64px;
    height: 64px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: var(--cd-green-800);
    background: var(--cd-green-50);
    border: 1px solid var(--cd-green-100);
    border-radius: 50%;
}
body.cd-design-v2.cd-portal-page .cd-portal-player-chip {
    min-height: 32px;
    padding: 6px 11px;
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: var(--cd-green-800);
    background: #fff;
    border: 1px solid #c7d9e8;
    border-radius: 999px;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

body.cd-design-v2.cd-portal-page .cd-portal-account-status {
    width: calc(100% - 4px);
    margin: 0 2px 16px;
    padding: 15px 17px;
    display: flex;
    align-items: center;
    gap: 13px;
    border-radius: 14px;
    text-align: left;
}
body.cd-design-v2.cd-portal-page button.cd-portal-account-status { font: inherit; cursor: pointer; }
body.cd-design-v2.cd-portal-page .cd-portal-account-status--ok { color: var(--cd-green-800); background: #f4faf6; border: 1px solid #c9e3d3; }
body.cd-design-v2.cd-portal-page .cd-portal-account-status--attention { color: #795321; background: #fffbf3; border: 1px solid #ead8b6; }
body.cd-design-v2.cd-portal-page .cd-portal-account-status__icon {
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: inherit;
    background: rgba(255, 255, 255, .82);
    border: 1px solid currentColor;
    border-radius: 12px;
}
body.cd-design-v2.cd-portal-page .cd-portal-account-status__title { margin: 0; color: inherit; font-size: 15px; font-weight: 800; }
body.cd-design-v2.cd-portal-page .cd-portal-account-status__text { margin: 2px 0 0; color: inherit; opacity: .78; font-size: 13px; }

body.cd-design-v2.cd-portal-page .cd-portal-quick-heading {
    margin: 22px 2px 11px;
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
}
body.cd-design-v2.cd-portal-page .cd-portal-quick-heading span {
    display: block;
    color: var(--cd-ink);
    font-size: 15px;
    font-weight: 850;
    letter-spacing: -.01em;
}
body.cd-design-v2.cd-portal-page .cd-portal-quick-heading small {
    display: block;
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 11.5px;
}
body.cd-design-v2.cd-portal-page .cd-portal-quick-grid {
    margin-bottom: 22px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
}
body.cd-design-v2.cd-portal-page .cd-portal-quick-card {
    min-width: 0;
    min-height: 82px;
    padding: 13px 12px;
    display: grid;
    grid-template-columns: 40px minmax(0, 1fr) 16px;
    align-items: center;
    gap: 10px;
    color: inherit;
    background: #fff;
    border: 1px solid var(--cd-line);
    border-radius: 16px;
    box-shadow: 0 8px 20px rgba(7, 29, 48, .06);
    text-align: left;
    text-decoration: none;
    font: inherit;
    cursor: pointer;
    transition: transform .16s ease, border-color .16s ease, box-shadow .16s ease;
}
body.cd-design-v2.cd-portal-page .cd-portal-quick-card:hover {
    transform: translateY(-2px);
    border-color: #aec9df;
    box-shadow: 0 12px 26px rgba(7, 29, 48, .10);
}
body.cd-design-v2.cd-portal-page .cd-portal-quick-card__icon {
    width: 40px;
    height: 40px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--cd-green-800);
    background: var(--cd-green-50);
    border: 1px solid var(--cd-green-100);
    border-radius: 12px;
}
body.cd-design-v2.cd-portal-page .cd-portal-quick-card__copy { min-width: 0; }
body.cd-design-v2.cd-portal-page .cd-portal-quick-card__copy strong {
    display: block;
    overflow: hidden;
    color: var(--cd-ink);
    font-size: 13.5px;
    font-weight: 800;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.cd-design-v2.cd-portal-page .cd-portal-quick-card__copy small {
    display: block;
    margin-top: 2px;
    overflow: hidden;
    color: var(--cd-muted);
    font-size: 11px;
    line-height: 1.25;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.cd-design-v2.cd-portal-page .cd-portal-quick-card__arrow { color: #91a39a; }
body.cd-design-v2.cd-portal-page .cd-portal-quick-card--attention {
    border-color: #e6cda6;
    background: linear-gradient(145deg, #fff, #fffaf2);
}
body.cd-design-v2.cd-portal-page .cd-portal-quick-card--attention .cd-portal-quick-card__icon {
    color: #8a5a20;
    background: #fff5e6;
    border-color: #edd7b5;
}

body.cd-design-v2.cd-portal-page .cd-portal-account-header {
    min-height: 82px;
    margin-bottom: 18px;
    padding: 17px 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    color: var(--cd-ink);
    background: linear-gradient(145deg, #fff, #f1f6fa);
    border: 1px solid var(--cd-line);
    border-radius: 18px;
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2.cd-portal-page .cd-portal-account-header h1 { margin: 0; display: flex; align-items: center; gap: 8px; color: var(--cd-ink); font-size: 20px; font-weight: 800; }
body.cd-design-v2.cd-portal-page .cd-portal-account-header p { margin: 3px 0 0; color: var(--cd-muted); font-size: 12px; }
body.cd-design-v2.cd-portal-page .cd-portal-account-back {
    min-height: 38px;
    padding: 8px 11px;
    display: inline-flex;
    align-items: center;
    gap: 6px;
    flex: 0 0 auto;
    color: var(--cd-green-800);
    background: #fff;
    border: 1px solid #c7d9e8;
    border-radius: 10px;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
}

body.cd-design-v2.cd-role-profesor .cd-turno-required {
    width: 100%;
    margin: 0 0 16px;
    padding: 14px 15px;
    display: flex;
    align-items: center;
    gap: 12px;
    color: #725020;
    background: linear-gradient(145deg, #fff, #fff9ed);
    border: 1px solid #ead5ad;
    border-radius: 15px;
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2.cd-role-profesor .cd-turno-required__icon {
    width: 42px;
    height: 42px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 42px;
    color: #895c20;
    background: #fff3dc;
    border: 1px solid #edd6a9;
    border-radius: 12px;
}
body.cd-design-v2.cd-role-profesor .cd-turno-required strong { display: block; color: #5f431e; font-size: 14px; font-weight: 800; }
body.cd-design-v2.cd-role-profesor .cd-turno-required span:not(.cd-turno-required__icon) { display: block; margin-top: 2px; color: #806d52; font-size: 12px; line-height: 1.4; }

body.cd-design-v2.cd-portal-page .cd-portal-tabs {
    position: sticky;
    z-index: 20;
    top: 10px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 5px;
    padding: 6px;
    border: 1px solid rgba(127, 177, 218, .22);
    border-radius: 17px;
    background: radial-gradient(circle at 15% 0%, rgba(91, 155, 213, .22), transparent 12rem), linear-gradient(135deg, rgba(18, 63, 99, .98), rgba(7, 29, 48, .98));
    box-shadow: 0 15px 36px rgba(7, 29, 48, .28), inset 0 1px 0 rgba(255, 255, 255, .08);
    backdrop-filter: blur(16px) saturate(150%);
    -webkit-backdrop-filter: blur(16px) saturate(150%);
}

body.cd-design-v2.cd-portal-page .cd-portal-tabs--header {
    width: calc(100% - 36px);
    margin: -9px auto 16px;
    top: 8px;
    border-color: rgba(127, 177, 218, .30);
    border-top-left-radius: 10px;
    border-top-right-radius: 10px;
}

body.cd-design-v2.cd-portal-page .cd-portal-tab {
    position: relative;
    min-width: 0;
    min-height: 42px;
    padding: 9px 10px;
    border: 0;
    border-radius: 12px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    color: rgba(255, 255, 255, .70);
    background: transparent;
    font-weight: 750;
    transition: var(--cd-ease);
}

body.cd-design-v2.cd-portal-page .cd-portal-tab.active {
    color: #fff;
    background: rgba(91, 155, 213, .26);
    box-shadow: inset 0 0 0 1px rgba(151, 194, 229, .20), 0 5px 14px rgba(7, 29, 48, .18);
}

body.cd-design-v2.cd-portal-page .cd-portal-tab:hover { color: #fff; background: rgba(255, 255, 255, .08); }
body.cd-design-v2.cd-portal-page .cd-portal-tab.active:hover { background: rgba(91, 155, 213, .32); }
body.cd-design-v2.cd-portal-page .cd-portal-tab svg { flex: 0 0 auto; }
body.cd-design-v2.cd-portal-page .cd-portal-tab__badge {
    position: absolute;
    top: 3px;
    right: 3px;
    min-width: 19px;
    height: 19px;
    padding: 0 5px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #0b263e;
    background: #9ec7e7;
    border: 2px solid rgba(7, 29, 48, .72);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 850;
    line-height: 1;
}
body.cd-design-v2.cd-portal-page .cd-portal-tab__badge--attention {
    color: #6d4311;
    background: #ffd785;
}

body.cd-design-v2.cd-portal-page .cd-portal-tab-content {
    margin-top: 14px;
    padding: 14px;
    overflow: hidden;
    border: 1px solid var(--cd-line);
    border-radius: 20px;
    background: #f7fafd;
    box-shadow: var(--cd-shadow-sm);
}
body.cd-design-v2.cd-portal-page .cd-portal-tab-content .cd-portal-account-status {
    width: 100%;
    margin: 14px 0 16px;
}

body.cd-design-v2.cd-portal-page .cd-profile-accordion {
    margin-top: 10px;
    overflow: hidden;
    border: 1px solid #b9cfdf;
    border-radius: 15px;
    background: #fff;
    box-shadow: 0 5px 16px rgba(7, 29, 48, .07), inset 0 1px 0 rgba(255, 255, 255, .9);
    scroll-margin-top: 82px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
body.cd-design-v2.cd-portal-page .cd-profile-accordion.is-open {
    overflow: visible;
    border-color: #7fa6c5;
    box-shadow: 0 10px 25px rgba(7, 29, 48, .11);
}
body.cd-design-v2.cd-portal-page #portal-domicilio-autocomplete-wrap {
    position: relative;
    z-index: 8;
    scroll-margin-top: 112px;
}
body.cd-design-v2.cd-portal-page .cd-profile-accordion__trigger {
    width: 100%;
    min-height: 68px;
    padding: 12px 14px;
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto 22px;
    align-items: center;
    gap: 11px;
    color: var(--cd-ink);
    background: linear-gradient(135deg, #ffffff, #f1f6fa);
    border: 0;
    font: inherit;
    text-align: left;
    cursor: pointer;
    transition: background .2s ease;
}
body.cd-design-v2.cd-portal-page .cd-profile-accordion__trigger:hover { background: linear-gradient(135deg, #f7fafd, #e8f1f8); }
body.cd-design-v2.cd-portal-page .cd-profile-accordion.is-open .cd-profile-accordion__trigger {
    box-shadow: inset 4px 0 0 var(--cd-green-700);
    background: linear-gradient(135deg, #eaf3fa, #f9fbfd);
    border-bottom: 1px solid #cbdce9;
}
body.cd-design-v2.cd-portal-page .cd-profile-accordion__icon {
    width: 38px;
    height: 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--cd-green-800);
    background: #e5f0f8;
    border: 1px solid #c1d7e7;
    border-radius: 11px;
}
body.cd-design-v2.cd-portal-page .cd-profile-accordion__copy { min-width: 0; }
body.cd-design-v2.cd-portal-page .cd-profile-accordion__copy strong {
    display: block;
    font-size: 13.5px;
    font-weight: 800;
}
body.cd-design-v2.cd-portal-page .cd-profile-accordion__copy small {
    display: block;
    margin-top: 2px;
    overflow: hidden;
    color: var(--cd-muted);
    font-size: 11.5px;
    text-overflow: ellipsis;
    white-space: nowrap;
}
body.cd-design-v2.cd-portal-page .cd-profile-accordion__status {
    padding: 5px 8px;
    border-radius: 999px;
    font-size: 10.5px;
    font-weight: 800;
    white-space: nowrap;
}
body.cd-design-v2.cd-portal-page .cd-profile-accordion__status--attention {
    color: #7a511a;
    background: #fff4dc;
    border: 1px solid #ead4a7;
}
body.cd-design-v2.cd-portal-page .cd-profile-accordion__chevron {
    display: inline-flex;
    color: var(--cd-green-700);
    transition: transform .2s ease;
}
body.cd-design-v2.cd-portal-page .cd-profile-accordion.is-open .cd-profile-accordion__chevron { transform: rotate(180deg); }
body.cd-design-v2.cd-portal-page .cd-profile-accordion__content { padding: 10px; background: #f7fafd; }
body.cd-design-v2.cd-portal-page .cd-profile-accordion__content > .cd-card {
    margin: 0 !important;
    border: 0 !important;
    box-shadow: none !important;
}
body.cd-design-v2 .cd-swal-cantera {
    width: min(92vw, 390px) !important;
    padding: 24px 22px 20px !important;
    border: 1px solid #c8ddd0 !important;
    border-radius: 22px !important;
    background: linear-gradient(155deg, #fff, #f3f9f5) !important;
    box-shadow: 0 24px 70px rgba(13, 48, 34, .22) !important;
}
body.cd-design-v2 .cd-swal-cantera .swal2-image { margin: 0 auto 12px !important; border-radius: 17px; box-shadow: 0 8px 20px rgba(24, 81, 57, .14); }
body.cd-design-v2 .cd-swal-cantera .swal2-title { padding: 0 !important; color: var(--cd-green-900) !important; font-size: 21px !important; font-weight: 850 !important; }
body.cd-design-v2 .cd-swal-cantera .swal2-html-container { margin: 8px 0 0 !important; color: var(--cd-muted) !important; font-size: 13.5px !important; line-height: 1.5 !important; }
body.cd-design-v2 .cd-swal-cantera .swal2-actions { margin-top: 19px !important; }
body.cd-design-v2 .cd-swal-cantera .swal2-confirm { min-width: 130px; min-height: 42px; border: 0 !important; border-radius: 11px !important; font-weight: 800 !important; box-shadow: 0 8px 18px rgba(24, 81, 57, .18) !important; }

body.cd-design-v2.cd-portal-page .cd-swal-cantera {
    border-color: #c6d9e8 !important;
    background: linear-gradient(155deg, #fff, #f1f6fa) !important;
    box-shadow: 0 24px 70px rgba(7, 29, 48, .24) !important;
}
body.cd-design-v2.cd-portal-page .cd-swal-cantera .swal2-title { color: #0b263e !important; }
body.cd-design-v2.cd-portal-page .cd-swal-cantera .swal2-confirm { box-shadow: 0 8px 18px rgba(18, 63, 99, .22) !important; }

body.cd-design-v2.cd-portal-page .cd-portal-section-banner {
    min-height: 62px;
    padding: 12px 15px;
    display: flex;
    align-items: center;
    gap: 12px;
    border: 1px solid #d3e1ec;
    border-radius: 15px;
    color: var(--cd-green-900);
    background: linear-gradient(135deg, #fff, #eef5fa);
    box-shadow: none;
}

body.cd-design-v2.cd-portal-page .cd-portal-section-banner__icon {
    width: 38px;
    height: 38px;
    flex: 0 0 38px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #c7dce9;
    border-radius: 12px;
    background: #fff;
}

body.cd-design-v2.cd-portal-page .cd-portal-section-banner strong {
    display: block;
    font-size: 14px;
    font-weight: 800;
    letter-spacing: -.01em;
}

body.cd-design-v2.cd-portal-page .cd-portal-section-banner small {
    display: block;
    margin-top: 2px;
    color: var(--cd-muted);
    font-size: 11.5px;
    line-height: 1.25;
}

body.cd-design-v2.cd-portal-page .cd-portal-tab-content > .cd-card:first-of-type { margin-top: 14px !important; }

body.cd-design-v2.cd-portal-page .cd-portal-tab-content > .cd-card,
body.cd-design-v2.cd-portal-page .cd-card {
    border-color: var(--cd-line);
    border-radius: 18px;
    box-shadow: var(--cd-shadow-sm);
}

body.cd-design-v2.cd-portal-page .cd-form-grid { gap: 14px; }
body.cd-design-v2.cd-portal-page input,
body.cd-design-v2.cd-portal-page select,
body.cd-design-v2.cd-portal-page textarea { max-width: 100%; }

body.cd-design-v2.cd-portal-action-tienda > div[style*="max-width:640px"],
body.cd-design-v2.cd-portal-action-fotos > div[style*="max-width:640px"],
body.cd-design-v2.cd-portal-action-mi-cuenta > div[style*="max-width:520px"] {
    width: min(calc(100% - 24px), 920px) !important;
    max-width: none !important;
}

@media (max-width: 900px) {
    body.cd-design-v2.cd-admin-page .cd-admin-context-wrap { padding-top: 14px; }
    body.cd-design-v2.cd-admin-page .cd-page-header { padding: 20px; }
    body.cd-design-v2.cd-admin-page .cd-table { min-width: 660px; }
    body.cd-design-v2.cd-admin-section-notificaciones .cd-phone-mock { position: static; }

    body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-content__inner {
        padding-bottom: 104px;
    }

    body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-bienvenida-card { padding: 20px; }
}

@media (max-width: 620px) {
    body.cd-design-v2.cd-admin-page .cd-content__inner { padding-inline: 12px; }
    body.cd-design-v2.cd-admin-page .cd-page-header { padding: 17px; border-radius: 17px; }
    body.cd-design-v2.cd-admin-page .cd-page-header__top,
    body.cd-design-v2.cd-admin-page .cd-header-actions { align-items: stretch; }
    body.cd-design-v2.cd-admin-page .cd-page-header__top > *,
    body.cd-design-v2.cd-admin-page .cd-header-actions > * { width: 100%; }
    body.cd-design-v2.cd-admin-page .cd-page-header .cd-btn { justify-content: center; }
    body.cd-design-v2.cd-admin-page .cd-stats-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    body.cd-design-v2.cd-admin-page .cd-stat-card { min-height: 102px; padding: 14px; }

    body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-content__inner { padding-inline: 12px; }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-prof-inicio-nuevo { gap: 13px; }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-bienvenida-card {
        min-height: 102px;
        margin-inline: 0;
        padding: 17px 18px;
        flex-direction: row;
        flex-wrap: nowrap;
        align-items: center;
        text-align: left;
        border-radius: 18px;
    }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-bienvenida-avatar {
        width: 48px;
        height: 48px;
        flex: 0 0 48px;
        font-size: 19px;
    }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-bienvenida-texto { text-align: left; }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-bienvenida-texto h2 { font-size: 17px; }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-bienvenida-texto p { font-size: 12px; }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-salud, .cd-role-colaborador) .cd-inicio-grid { grid-template-columns: 1fr; gap: 10px; padding-inline: 0; }
    body.cd-design-v2.cd-role-profesor .cd-home-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    body.cd-design-v2.cd-role-colaborador .cd-colab-home-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-home-card { min-height: 128px; padding: 13px; }
    body.cd-design-v2.cd-role-profesor .cd-turno-card { margin-inline: 0; }
    body.cd-design-v2:is(.cd-role-salud, .cd-role-colaborador) .cd-inicio-factura-cta { min-height: 78px; padding: 12px 13px; gap: 11px; }
    body.cd-design-v2:is(.cd-role-salud, .cd-role-colaborador) .cd-inicio-factura-cta__info strong { font-size: 13.5px; }
    body.cd-design-v2:is(.cd-role-salud, .cd-role-colaborador) .cd-inicio-factura-cta__info span { font-size: 11.5px; line-height: 1.35; }

    body.cd-design-v2.cd-portal-page > div[style*="max-width:760px"] { width: 100% !important; }
    body.cd-design-v2.cd-portal-page .cd-portal-shell { width: 100% !important; }
    body.cd-design-v2.cd-portal-page .cd-portal-shell > .cd-portal-familybar { margin: 8px 8px 0 !important; }
    body.cd-design-v2.cd-portal-page .cd-portal-main { padding: 0 8px; }
    body.cd-design-v2.cd-portal-page > div[style*="max-width:760px"] > div:first-child { margin: 8px 8px 0 !important; border-radius: 20px !important; }
    body.cd-design-v2.cd-portal-page .cd-page-header { padding: 18px 16px !important; }
    body.cd-design-v2.cd-portal-page .cd-page-header__top > div { gap: 11px !important; }
    body.cd-design-v2.cd-portal-page .cd-page-header img[style*="width:64px"],
    body.cd-design-v2.cd-portal-page .cd-page-header div[style*="width:64px"] { width: 52px !important; height: 52px !important; }
    body.cd-design-v2.cd-portal-page .cd-page-header h1 { font-size: 19px !important; }
    body.cd-design-v2.cd-portal-page .cd-portal-tabs {
        top: 7px;
        width: calc(100% - 16px);
        margin-inline: auto;
        overflow-x: auto;
    }
    body.cd-design-v2.cd-portal-page .cd-portal-tab { min-height: 43px; padding-inline: 5px; gap: 4px; font-size: 11px; }
    body.cd-design-v2.cd-portal-page .cd-portal-tab svg { width: 15px; height: 15px; }
    body.cd-design-v2.cd-portal-page .cd-form-grid { grid-template-columns: 1fr; }
    body.cd-design-v2.cd-portal-page .cd-card { padding: 16px; }
    body.cd-design-v2.cd-portal-page .cd-form-actions .cd-btn { width: 100%; justify-content: center; }
    body.cd-design-v2.cd-portal-page .cd-portal-tab-content { padding: 9px; border-radius: 17px; }
    body.cd-design-v2.cd-portal-page .cd-portal-section-banner { min-height: 58px; padding: 10px 12px; border-radius: 13px; }
    body.cd-design-v2.cd-portal-page .cd-portal-section-banner__icon { width: 35px; height: 35px; flex-basis: 35px; }
    body.cd-design-v2.cd-portal-page .cd-portal-account-status,
    body.cd-design-v2.cd-portal-page .cd-portal-quick-heading,
    body.cd-design-v2.cd-portal-page .cd-portal-quick-grid { width: calc(100% - 16px); margin-left: auto; margin-right: auto; }
    body.cd-design-v2.cd-portal-page .cd-portal-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
    body.cd-design-v2.cd-portal-page .cd-portal-quick-card {
        min-height: 104px;
        padding: 12px;
        grid-template-columns: 38px minmax(0, 1fr);
        align-content: center;
    }
    body.cd-design-v2.cd-portal-page .cd-portal-quick-card__icon { width: 38px; height: 38px; }
    body.cd-design-v2.cd-portal-page .cd-portal-quick-card__arrow { display: none; }
    body.cd-design-v2.cd-portal-page .cd-portal-quick-card__copy strong { font-size: 13px; }
    body.cd-design-v2.cd-portal-page .cd-portal-quick-card__copy small { white-space: normal; }
}

@media (max-width: 390px) {
    body.cd-design-v2.cd-admin-page .cd-stats-grid { grid-template-columns: 1fr; }
    body.cd-design-v2.cd-portal-page .cd-portal-tab { flex-direction: column; gap: 3px; min-height: 49px; font-size: 9.5px; }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-home-card { min-height: 120px; padding: 11px; }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-home-card__icon { width: 38px; height: 38px; }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-home-card strong { font-size: 12.5px; }
    body.cd-design-v2:is(.cd-role-profesor, .cd-role-colaborador) .cd-home-card__sub { font-size: 10.5px; }
}

@media (max-width: 860px) {
    body.cd-design-v2.cd-portal-page .cd-portal-tabs {
        backdrop-filter: none;
        -webkit-backdrop-filter: none;
    }
}

/* Confirmación de salida — modal propio, consistente y sin dependencias. */
body.cd-design-v2 .cd-logout-confirm-overlay {
    z-index: 10000;
    align-items: center;
    padding: 16px;
}

body.cd-design-v2 .cd-logout-confirm {
    width: min(100%, 360px);
    max-width: 360px;
    max-height: none;
    margin: auto;
    padding: 26px 22px 22px;
    align-items: center;
    overflow: visible;
    border: 1px solid rgba(45, 138, 89, .16);
    border-radius: 22px;
    text-align: center;
}

body.cd-design-v2 .cd-logout-confirm__icon {
    width: 54px;
    height: 54px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--cd-green-800);
    background: var(--cd-green-50);
    border: 1px solid var(--cd-green-100);
    border-radius: 17px;
}

body.cd-design-v2 .cd-logout-confirm__icon svg { width: 25px; height: 25px; }
body.cd-design-v2 .cd-logout-confirm h3 { margin: 15px 0 6px; color: var(--cd-ink); font-size: 20px; }
body.cd-design-v2 .cd-logout-confirm p { margin: 0; color: var(--cd-muted); font-size: 13px; line-height: 1.5; }

body.cd-design-v2 .cd-logout-confirm__actions {
    width: 100%;
    margin-top: 21px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 9px;
}

body.cd-design-v2 .cd-logout-confirm__actions button {
    min-height: 44px;
    padding: 10px 14px;
    border-radius: 12px;
    font: inherit;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}

body.cd-design-v2 .cd-logout-confirm__cancel { color: var(--cd-ink-soft); background: #f2f5f3; border: 1px solid var(--cd-line); }
body.cd-design-v2 .cd-logout-confirm__confirm { color: #fff; background: var(--cd-green-800); border: 1px solid var(--cd-green-800); }
body.cd-design-v2 .cd-logout-confirm__confirm:hover { background: var(--cd-green-900); }

/* ==================================================================
   TARJETAS PREMIUM — panel de Staff / Administración
   La identidad azul del Portal de Familias conserva su capa propia.
   ================================================================== */
body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) .cd-card {
    border-color: #d5e2da;
    background: linear-gradient(145deg, rgba(255,255,255,.99) 0%, rgba(248,251,249,.98) 100%);
    box-shadow: 0 1px 2px rgba(13,48,34,.045), 0 10px 28px rgba(13,48,34,.055);
}

body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) .cd-card__title {
    padding-left: 11px;
    border-left: 3px solid var(--cd-green-600);
    color: var(--cd-green-950);
    font-weight: 790;
    line-height: 1.3;
}

body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) .cd-filters {
    border-color: #d5e2da;
    background: linear-gradient(135deg, #fff 0%, #f7fbf8 100%);
    box-shadow: 0 7px 22px rgba(13,48,34,.045);
}

body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) :is(
    .cd-persona-card,
    .cd-asistencia-card,
    .cd-conv-card,
    .cd-inv-cat-card,
    .cd-inv-recuento-card
) {
    border-color: #d5e2da;
    background: linear-gradient(145deg, #fff 0%, #f9fcfa 100%);
    box-shadow: 0 1px 2px rgba(13,48,34,.035), 0 8px 23px rgba(13,48,34,.045);
}

@media (max-width: 768px) {
    body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) .cd-card {
        border-color: #cfddd4;
        box-shadow: 0 1px 2px rgba(13,48,34,.04), 0 8px 22px rgba(13,48,34,.06);
    }

    body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) .cd-card__title {
        margin-bottom: 13px;
        padding-left: 10px;
        font-size: 16px;
    }

    body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) .cd-table tbody tr {
        position: relative;
        overflow: hidden;
        background: linear-gradient(145deg, #fff 0%, #f8fbf9 100%);
        border-color: #cfddd4;
        box-shadow: 0 1px 2px rgba(13,48,34,.035), 0 8px 22px rgba(13,48,34,.055);
    }

    body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) .cd-table tbody tr::before {
        content: "";
        position: absolute;
        top: 0;
        right: 0;
        left: 0;
        height: 3px;
        background: linear-gradient(90deg, var(--cd-green-700), var(--cd-green-500));
        opacity: .72;
    }

    body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) .cd-table td {
        border-bottom: 1px solid rgba(207,221,212,.62);
    }

    body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) .cd-table td:last-child {
        padding-bottom: 2px;
        border-bottom: 0;
    }

    body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) .cd-table td::before {
        color: #65766d;
        font-weight: 800;
        letter-spacing: .055em;
    }

    body.cd-design-v2:not(.cd-portal-page):not(.cd-login-page):not(.cd-account-page) :is(
        .cd-persona-card,
        .cd-asistencia-card,
        .cd-conv-card,
        .cd-inv-cat-card,
        .cd-inv-recuento-card
    ) {
        border-color: #cfddd4;
        box-shadow: 0 7px 20px rgba(13,48,34,.055);
    }
}
