@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800;900&display=swap");
@import url("platform-theme.css");

:root {
    --sc-primary: var(--theme-primary, #0f766e);
    --sc-primary-dark: var(--theme-primary-deep, #134e4a);
    --sc-accent: var(--theme-secondary, #f97316);
    --sc-bg: var(--theme-background, #f4f7fb);
    --sc-card: var(--theme-surface-container-lowest, #ffffff);
    --sc-text: var(--theme-on-surface, #0f172a);
    --sc-muted: var(--theme-on-surface-variant, #64748b);
    --sc-border: var(--theme-outline-variant, #e2e8f0);
    --sc-font-family: var(--theme-font-family, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
    --sc-headline-xl-size: var(--theme-headline-xl-size, 36px);
    --sc-headline-xl-line: var(--theme-headline-xl-line, 44px);
    --sc-headline-xl-weight: var(--theme-headline-xl-weight, 700);
    --sc-headline-xl-letter: var(--theme-headline-xl-letter, -0.02em);
    --sc-headline-lg-size: var(--theme-headline-lg-size, 24px);
    --sc-headline-lg-line: var(--theme-headline-lg-line, 32px);
    --sc-headline-lg-weight: var(--theme-headline-lg-weight, 600);
    --sc-headline-lg-letter: var(--theme-headline-lg-letter, -0.01em);
    --sc-headline-md-size: var(--theme-headline-md-size, 18px);
    --sc-headline-md-line: var(--theme-headline-md-line, 24px);
    --sc-headline-md-weight: var(--theme-headline-md-weight, 600);
    --sc-body-lg-size: var(--theme-body-lg-size, 16px);
    --sc-body-lg-line: var(--theme-body-lg-line, 24px);
    --sc-body-md-size: var(--theme-body-md-size, 14px);
    --sc-body-md-line: var(--theme-body-md-line, 20px);
    --sc-label-md-size: var(--theme-label-md-size, 13px);
    --sc-label-md-line: var(--theme-label-md-line, 18px);
    --sc-label-md-letter: var(--theme-label-md-letter, .05em);
    --sc-caption-size: var(--theme-caption-size, 12px);
    --sc-caption-line: var(--theme-caption-line, 16px);
}

* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: var(--sc-font-family);
    font-size: var(--sc-body-md-size);
    line-height: var(--sc-body-md-line);
    background: var(--sc-bg);
    color: var(--sc-text);
}

.auth-page {
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    background: radial-gradient(circle at top left, rgba(20,184,166,.30), transparent 32%), linear-gradient(135deg, #0f172a, #134e4a 55%, #0f766e);
}
.auth-hero { color: #fff; padding: 70px; display:flex; flex-direction:column; justify-content:center; }
.auth-hero h1 { font-size: clamp(2.2rem, 5vw, 4.8rem); font-weight: 900; line-height: .95; margin-bottom: 22px; }
.auth-hero p { font-size: 1.15rem; max-width: 640px; color: rgba(255,255,255,.82); }
.auth-card-wrap { display:flex; align-items:center; justify-content:center; padding: 32px; }
.auth-card { width: min(470px, 100%); background: rgba(255,255,255,.94); border-radius: 28px; padding: 34px; box-shadow: 0 30px 70px rgba(15,23,42,.35); backdrop-filter: blur(12px); }
.brand-pill { display:inline-flex; align-items:center; gap:10px; padding:8px 14px; border-radius:999px; background:rgba(255,255,255,.12); color:#fff; font-weight:700; margin-bottom:28px; }

.app-shell { display: flex; min-height: 100vh; }
.sidebar { width: 280px; background: #0f172a; color: #e2e8f0; padding: 24px; position: fixed; top: 0; bottom: 0; left: 0; overflow-y: auto; }
.sidebar .brand { display:flex; align-items:center; gap:12px; font-size:1.2rem; font-weight:900; color:#fff; margin-bottom:28px; }
.sidebar .brand-icon { width:42px; height:42px; display:grid; place-items:center; border-radius:14px; background:linear-gradient(135deg, var(--sc-primary), var(--sc-accent)); }
.sidebar a { display:flex; align-items:center; gap:11px; padding:12px 14px; color:#cbd5e1; text-decoration:none; border-radius:14px; margin-bottom:7px; transition:.18s; }
.sidebar a:hover, .sidebar a.active { color:#fff; background:rgba(255,255,255,.10); transform:translateX(2px); }
.sidebar-footer { margin-top: 32px; font-size: .82rem; color: #94a3b8; }
.main { margin-left: 280px; flex:1; min-width:0; }
.topbar { height:76px; display:flex; align-items:center; justify-content:space-between; padding:0 28px; background:rgba(255,255,255,.88); border-bottom:1px solid var(--sc-border); position:sticky; top:0; z-index:10; backdrop-filter: blur(10px); }
.content { padding: 28px; }
.page-title h1 { font-size: var(--sc-headline-xl-size); line-height: var(--sc-headline-xl-line); font-weight: var(--sc-headline-xl-weight); letter-spacing: var(--sc-headline-xl-letter); margin: 0; }
.page-title p { margin: 6px 0 0; color: var(--sc-muted); font-size: var(--sc-body-lg-size); line-height: var(--sc-body-lg-line); }

.cardx { background:var(--sc-card); border:1px solid var(--sc-border); border-radius:24px; box-shadow:0 16px 40px rgba(15,23,42,.06); }
.cardx-header { padding:22px 24px; border-bottom:1px solid var(--sc-border); display:flex; align-items:center; justify-content:space-between; gap:16px; font-size: var(--sc-headline-md-size); line-height: var(--sc-headline-md-line); font-weight: var(--sc-headline-md-weight); }
.cardx-body { padding:24px; }
.metric-grid { display:grid; grid-template-columns:repeat(4, minmax(0, 1fr)); gap:18px; }
.metric-card { padding:22px; border-radius:24px; background:linear-gradient(135deg, #fff, #f8fafc); border:1px solid var(--sc-border); box-shadow:0 16px 36px rgba(15,23,42,.06); }
.metric-card .label { color:var(--sc-muted); font-weight:700; font-size:.84rem; text-transform:uppercase; letter-spacing:.04em; }
.metric-card .value { font-size:2rem; font-weight:900; margin-top:8px; }
.metric-card .icon { width:44px; height:44px; display:grid; place-items:center; border-radius:16px; background:#ecfeff; color:var(--sc-primary); margin-bottom:14px; }

.btn-sc { background:linear-gradient(135deg, var(--sc-primary), #14b8a6); color:#fff; border:0; border-radius:14px; padding:10px 16px; font-size: var(--sc-label-md-size); line-height: var(--sc-label-md-line); font-weight:800; }
.btn-sc:hover { color:#fff; filter:brightness(.96); }
.btn-ghost { background:#f8fafc; border:1px solid var(--sc-border); color:#0f172a; border-radius:14px; padding:10px 16px; font-size: var(--sc-label-md-size); line-height: var(--sc-label-md-line); font-weight:800; }
.form-control, .form-select { border-radius:14px; border-color:#dbe3ef; padding:11px 13px; }
.form-label { font-weight:800; color:#334155; font-size: var(--sc-label-md-size); line-height: var(--sc-label-md-line); letter-spacing: var(--sc-label-md-letter); }
.table { vertical-align: middle; }
.table thead th { color:#64748b; text-transform:uppercase; font-size:var(--sc-label-md-size); line-height:var(--sc-label-md-line); letter-spacing:var(--sc-label-md-letter); font-weight: 600; }
.badge-soft { background:#ecfeff; color:#0f766e; border:1px solid #99f6e4; border-radius:999px; padding:7px 10px; font-weight:800; }
.alert { border-radius:18px; }
.grid-2 { display:grid; grid-template-columns: 1fr 1fr; gap:18px; }
.grid-3 { display:grid; grid-template-columns: repeat(3, 1fr); gap:18px; }
.section-tabs { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:18px; }
.section-tabs button { border:1px solid var(--sc-border); background:#fff; border-radius:999px; padding:9px 14px; font-weight:800; color:#334155; }
.section-tabs button.active { background:#0f172a; color:#fff; }
.admin-section { display:none; }
.admin-section.active { display:block; }


/* v1_8_20 - Tipografía dinámica basada en el sistema visual seleccionado */
.role-shell .role-hero h1,
.role-shell .page-title h1 {
    font-size: var(--sc-headline-xl-size);
    line-height: var(--sc-headline-xl-line);
    font-weight: var(--sc-headline-xl-weight);
    letter-spacing: var(--sc-headline-xl-letter);
}
.role-shell .role-hero p,
.role-shell .page-title p {
    font-size: var(--sc-body-lg-size);
    line-height: var(--sc-body-lg-line);
}
.role-shell .role-menu a,
.role-shell .sidebar a,
.role-shell .form-control,
.role-shell .form-select,
.role-shell .table td,
.role-shell .cardx-body {
    font-size: var(--sc-body-md-size);
    line-height: var(--sc-body-md-line);
}
.role-shell .cardx-header strong,
.role-shell .cardx h3,
.role-shell .cardx h4 {
    font-size: var(--sc-headline-md-size);
    line-height: var(--sc-headline-md-line);
    font-weight: var(--sc-headline-md-weight);
}
.role-shell .badge-soft,
.role-shell .btn,
.role-shell .role-primary-action,
.role-shell .role-secondary-action {
    font-size: var(--sc-label-md-size);
    line-height: var(--sc-label-md-line);
}
.role-shell small,
.role-shell .small,
.role-shell .text-muted.small,
.role-shell .role-brand span,
.role-shell .role-brand small {
    font-size: var(--sc-caption-size);
    line-height: var(--sc-caption-line);
}

@media (max-width: 980px) {
    .auth-page { grid-template-columns: 1fr; }
    .auth-hero { padding: 36px 28px; }
    .sidebar { position: fixed; transform: translateX(-105%); transition: .22s ease; z-index: 30; }
    .sidebar.open { transform: translateX(0); }
    .main { margin-left: 0; }
    .metric-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .grid-2, .grid-3 { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .metric-grid { grid-template-columns: 1fr; }
    .content { padding: 18px; }
    .topbar { padding: 0 16px; }
}

.performance-hero {
    border-radius: 28px;
    padding: 28px;
    color: #fff;
    background: radial-gradient(circle at top right, rgba(249,115,22,.55), transparent 28%), linear-gradient(135deg, #0f172a, #0f766e);
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 22px;
    box-shadow: 0 24px 60px rgba(15,23,42,.18);
}
.performance-hero h2 { font-weight: 950; margin: 12px 0 6px; font-size: clamp(1.7rem, 3vw, 2.7rem); }
.performance-hero p { margin: 0; color: rgba(255,255,255,.85); }
.skill-row, .objective-item {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
    padding: 12px 0;
    border-bottom: 1px solid var(--sc-border);
}
.skill-row:last-child, .objective-item:last-child { border-bottom: 0; }
.skill-row strong { font-size: 1.05rem; color: var(--sc-primary); }
.objective-item p { margin: 4px 0 0; color: var(--sc-muted); }
.report-card {
    border: 1px solid var(--sc-border);
    border-radius: 22px;
    padding: 20px;
    margin-bottom: 16px;
    background: linear-gradient(135deg, #fff, #f8fafc);
}
.report-card h5 { font-weight: 900; margin-bottom: 4px; }
.report-content {
    white-space: pre-wrap;
    background: #0f172a;
    color: #e2e8f0;
    border-radius: 18px;
    padding: 18px;
    margin-top: 12px;
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.55;
}
details summary { cursor: pointer; font-weight: 800; color: var(--sc-primary); }
@media (max-width: 980px) {
    .performance-hero { align-items: flex-start; flex-direction: column; }
}

/* v1_1_1 - regla visual de informes: la generación queda restringida al entrenador */
.performance-rule-box {
    max-width: 520px;
    padding: 14px 16px;
    border-radius: 18px;
    background: rgba(255, 255, 255, 0.16);
    color: #fff;
    backdrop-filter: blur(10px);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
}
.performance-rule-box a {
    white-space: nowrap;
}

/* v1_1_2 - Dashboard premium del asociado inspirado en diseño dark sport */
.member-dashboard-page {
    --member-bg: #0b1220;
    --member-bg-2: #0f172a;
    --member-panel: rgba(22, 31, 49, .82);
    --member-panel-solid: #131d2f;
    --member-border: rgba(148, 163, 184, .20);
    --member-text: #f8fafc;
    --member-muted: #aeb8c8;
    --member-orange: #ff6b35;
    --member-orange-2: #ff9f1c;
    --member-blue: #38bdf8;
    --member-green: #22c55e;
    --member-emerald: #10b981;
    background:
        radial-gradient(circle at 20% 5%, rgba(59, 130, 246, .16), transparent 25%),
        radial-gradient(circle at 100% 0%, rgba(249, 115, 22, .12), transparent 22%),
        linear-gradient(135deg, #07101f 0%, #0b1220 48%, #101827 100%);
    color: var(--member-text);
}
.member-dashboard-page .app-shell { background: transparent; }
.member-dashboard-page .member-main { background: transparent; }
.member-dashboard-page .member-pro-shell { min-height: 100vh; }
.member-dashboard-page .member-sidebar {
    background: linear-gradient(180deg, rgba(17, 24, 39, .96), rgba(20, 29, 45, .96));
    border-right: 1px solid rgba(148, 163, 184, .15);
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    box-shadow: 28px 0 60px rgba(0, 0, 0, .22);
}
.member-brand {
    display: flex;
    align-items: center;
    gap: 12px;
    color: #fff;
    margin-bottom: 34px;
}
.member-brand-mark {
    width: 54px;
    height: 54px;
    border-radius: 20px;
    display: grid;
    place-items: center;
    color: #182033;
    background: linear-gradient(135deg, var(--member-orange), var(--member-orange-2));
    box-shadow: 0 16px 30px rgba(249, 115, 22, .28);
    font-size: 1.75rem;
    transform: rotate(-12deg);
}
.member-brand strong { display: block; font-size: 1.25rem; line-height: 1; font-weight: 950; }
.member-brand span { display: block; color: #cbd5e1; font-size: 1.05rem; line-height: 1.05; font-weight: 800; }
.member-menu a {
    color: #d5dceb;
    border-radius: 14px;
    padding: 13px 14px;
    margin-bottom: 9px;
    font-weight: 650;
    gap: 12px;
}
.member-menu a i { font-size: 1.08rem; color: #b8c1d5; }
.member-menu a:hover,
.member-menu a.active {
    background: rgba(255, 255, 255, .11);
    color: #fff;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .06);
}
.member-menu a.active i { color: var(--member-orange); }
.member-status-card {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px;
    border-radius: 18px;
    background: linear-gradient(135deg, rgba(255,255,255,.12), rgba(255,255,255,.06));
    border: 1px solid rgba(255,255,255,.10);
    box-shadow: 0 18px 40px rgba(0,0,0,.24);
}
.member-status-card .status-icon {
    width: 42px;
    height: 42px;
    border-radius: 16px;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, var(--member-orange), var(--member-orange-2));
    color: #162033;
    font-size: 1.35rem;
}
.member-status-card small { display: block; color: #d1d8e7; }
.member-status-card span {
    display: inline-flex;
    margin-top: 3px;
    padding: 4px 9px;
    border-radius: 999px;
    background: rgba(34,197,94,.88);
    color: #fff;
    font-size: .72rem;
    font-weight: 900;
}
.member-topbar {
    min-height: 74px;
    padding: 18px 34px 0;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.member-top-actions { display: flex; align-items: center; gap: 13px; }
.member-icon-btn {
    width: 38px;
    height: 38px;
    border: 0;
    border-radius: 50%;
    display: grid;
    place-items: center;
    color: #e5e7eb;
    background: transparent;
    position: relative;
    text-decoration: none;
}
.member-icon-btn span {
    position: absolute;
    top: 7px;
    right: 8px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--member-orange);
    box-shadow: 0 0 0 3px rgba(249,115,22,.18);
}
.member-avatar {
    width: 42px;
    height: 42px;
    border-radius: 50%;
    display: grid;
    place-items: center;
    background: linear-gradient(135deg, #f8fafc, #94a3b8);
    color: #0f172a;
    font-weight: 950;
    border: 2px solid rgba(255,255,255,.18);
}
.member-mobile-toggle {
    background: rgba(255,255,255,.10);
    color: #fff;
    border: 1px solid rgba(255,255,255,.12);
}
.member-content { padding: 18px 34px 34px; }
.member-hero-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto 220px;
    align-items: center;
    gap: 24px;
    margin-bottom: 24px;
}
.member-eyebrow {
    color: var(--member-muted);
    font-weight: 800;
    margin: 0 0 6px;
    letter-spacing: .04em;
    text-transform: uppercase;
    font-size: .75rem;
}
.member-hero-row h1 {
    margin: 0;
    color: #fff;
    font-size: clamp(2.3rem, 4vw, 3.2rem);
    line-height: .95;
    font-weight: 950;
    letter-spacing: -.06em;
}
.member-action-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 54px;
    padding: 0 24px;
    border-radius: 14px;
    color: #fff;
    text-decoration: none;
    font-weight: 900;
    background: linear-gradient(135deg, var(--member-orange), var(--member-orange-2));
    box-shadow: 0 18px 36px rgba(249,115,22,.25);
}
.member-action-btn:hover { color: #fff; filter: brightness(1.05); }
.member-plan-card {
    min-height: 76px;
    border-radius: 18px;
    padding: 16px 18px;
    background: linear-gradient(135deg, rgba(255,255,255,.10), rgba(255,255,255,.04));
    border: 1px solid var(--member-border);
    box-shadow: 0 18px 44px rgba(0,0,0,.20);
}
.member-plan-card small { display:block; color: #cbd5e1; font-weight: 700; }
.member-plan-card strong { display:block; color:#fff; font-size: 1.35rem; font-weight: 950; }
.member-kpi-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 18px;
    margin-bottom: 24px;
}
.member-kpi {
    min-height: 116px;
    position: relative;
    overflow: hidden;
    border-radius: 20px;
    padding: 20px;
    background: var(--member-panel);
    border: 1px solid var(--member-border);
    box-shadow: 0 20px 42px rgba(0,0,0,.20);
}
.member-kpi::after {
    content: "";
    position: absolute;
    right: -22px;
    bottom: -32px;
    width: 150px;
    height: 96px;
    opacity: .88;
    border-radius: 58% 42% 0 0;
    filter: blur(.2px);
}
.member-kpi.orange::after { background: linear-gradient(135deg, rgba(255,107,53,.10), rgba(255,159,28,.92)); }
.member-kpi.blue::after { background: linear-gradient(135deg, rgba(56,189,248,.10), rgba(59,130,246,.94)); }
.member-kpi.green::after { background: linear-gradient(135deg, rgba(34,197,94,.10), rgba(16,185,129,.94)); }
.member-kpi.emerald::after { background: linear-gradient(135deg, rgba(16,185,129,.08), rgba(34,197,94,.92)); }
.member-kpi small { position:relative; z-index:1; display:block; color:#cbd5e1; font-weight:750; margin-bottom:18px; }
.member-kpi strong { position:relative; z-index:1; display:block; color:#fff; font-size:1.5rem; font-weight:950; }
.member-dashboard-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    gap: 24px;
}
.member-card {
    background: linear-gradient(145deg, rgba(22,31,49,.92), rgba(17,24,39,.82));
    border: 1px solid var(--member-border);
    border-radius: 22px;
    box-shadow: 0 24px 54px rgba(0,0,0,.22);
    color: var(--member-text);
    overflow: hidden;
}
.member-card h2 { margin:0 0 18px; font-size:1.12rem; font-weight:950; letter-spacing:-.02em; }
.member-card-gradient-title {
    padding: 22px 24px;
    background: linear-gradient(135deg, #ff5538, #ff9f1c);
    color: #fff;
    font-size: 1.35rem;
    font-weight: 950;
}
.member-next-body {
    padding: 26px 24px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px 32px;
}
.member-next-body small { display: block; color: #b7c0d3; margin-bottom: 4px; }
.member-next-body strong { display: block; color: #fff; font-size: 1.22rem; font-weight: 950; }
.member-payment-state { grid-column: 1 / -1; }
.member-payment-state span {
    display: inline-flex;
    align-items: center;
    border-radius: 999px;
    padding: 6px 12px;
    background: rgba(34,197,94,.75);
    color: #fff;
    font-weight: 900;
    font-size: .80rem;
}
.member-wide-btn {
    grid-column: 1 / -1;
    min-height: 50px;
    border-radius: 13px;
    display: grid;
    place-items: center;
    color: #fff;
    text-decoration: none;
    font-weight: 950;
    background: linear-gradient(135deg, #ff5538, #ff9f1c);
    box-shadow: 0 16px 30px rgba(249,115,22,.18);
}
.member-wide-btn:hover { color:#fff; filter:brightness(1.04); }
.member-card-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    padding: 24px 24px 6px;
}
.member-card-head span { display:block; color:#fff; font-weight:900; font-size:1.1rem; }
.member-card-head strong { display:block; text-align:center; margin-top:16px; color:#fff; font-size:1.05rem; }
.member-card-head a { color:#cbd5e1; text-decoration:none; font-weight:800; font-size:.85rem; }
.member-chart-wrap { height: 292px; padding: 2px 24px 18px; }
.member-score-line {
    padding: 0 24px 22px;
    display:flex;
    justify-content:space-between;
    color:#cbd5e1;
    font-weight:800;
}
.member-score-line strong { color:#fff; }
.member-observation-card,
.member-report-card { padding: 24px; min-height: 238px; }
.member-observation-card blockquote {
    margin: 0 0 18px;
    color: #e5e7eb;
    line-height: 1.55;
    font-size: .95rem;
}
.member-observation-card blockquote footer { color: #8ea0b9; margin-top: 8px; font-size: .82rem; }
.member-muted { color: var(--member-muted); margin: 0; }
.member-report-row {
    display:flex;
    align-items:center;
    gap:13px;
    padding: 13px 0;
    text-decoration:none;
    color:#e5e7eb;
    border-bottom: 1px solid rgba(148,163,184,.16);
}
.member-report-row:last-child { border-bottom: 0; }
.member-report-row i {
    width: 36px;
    height: 36px;
    display:grid;
    place-items:center;
    border-radius: 10px;
    color: #fff;
    background: linear-gradient(135deg, #ef4444, #f97316);
}
.member-report-row strong { display:block; color:#fff; font-size:.95rem; }
.member-report-row small { display:block; color:#95a4ba; margin-top:2px; }
.member-empty-report {
    min-height: 120px;
    display:grid;
    place-items:center;
    text-align:center;
    color:#94a3b8;
    gap:8px;
}
.member-empty-report i { color:#ef4444; font-size:2.1rem; }
.member-week-card { grid-column: 1 / -1; padding: 22px; }
.member-week-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.member-week-head h2 { margin:0; }
.member-week-head button {
    width:36px;
    height:36px;
    border-radius:11px;
    border:1px solid rgba(148,163,184,.22);
    background: rgba(255,255,255,.04);
    color:#dbe4f3;
    margin-left:8px;
}
.member-week-grid {
    display:grid;
    grid-template-columns: 64px repeat(7, minmax(92px, 1fr));
    border:1px solid rgba(148,163,184,.22);
    border-radius:16px;
    overflow:hidden;
    min-width: 760px;
}
.member-week-card { overflow-x:auto; }
.member-week-grid > div {
    min-height: 42px;
    padding: 9px;
    border-right:1px solid rgba(148,163,184,.18);
    border-bottom:1px solid rgba(148,163,184,.18);
    color:#cbd5e1;
    font-size:.80rem;
}
.member-week-grid > div:nth-child(8n) { border-right: 0; }
.member-hour { color:#9caabd !important; text-align:right; }
.member-week-cell { min-height: 66px !important; position:relative; }
.member-week-event {
    background: rgba(34,197,94,.55);
    border:1px solid rgba(34,197,94,.30);
    color:#ecfdf5;
    border-radius:7px;
    padding:6px 7px;
    font-size:.75rem;
    line-height:1.15;
}
.member-week-event strong,
.member-week-event span { display:block; }
@media (max-width: 1180px) {
    .member-hero-row { grid-template-columns: 1fr; align-items: stretch; }
    .member-action-btn { width: 100%; }
    .member-plan-card { width: 100%; }
    .member-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .member-dashboard-grid { grid-template-columns: 1fr; }
}
@media (max-width: 980px) {
    .member-dashboard-page .member-sidebar { transform: translateX(-105%); }
    .member-dashboard-page .member-sidebar.open { transform: translateX(0); }
    .member-topbar { padding: 14px 18px 0; }
    .member-content { padding: 18px; }
}
@media (max-width: 620px) {
    .member-kpi-grid { grid-template-columns: 1fr; }
    .member-next-body { grid-template-columns: 1fr; }
    .member-chart-wrap { height: 250px; }
}

/* v1_1_5 - Identidad visual clara del portal asociado inspirada en dashboard premium adjunto */
.member-dashboard-page.member-light-dashboard {
    --ml-primary: #0f2f8f;
    --ml-primary-2: #1d4ed8;
    --ml-navy: #050b4f;
    --ml-red: #f43f5e;
    --ml-coral: #ff5c70;
    --ml-green: #22c55e;
    --ml-blue-soft: #eef4ff;
    --ml-page: #f4f8fb;
    --ml-text: #0b1220;
    --ml-muted: #667085;
    --ml-border: #e6edf6;
    background: var(--ml-page);
    color: var(--ml-text);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.member-light-dashboard .app-shell,
.member-light-dashboard .member-pro-shell,
.member-light-dashboard .member-main {
    background: transparent;
}
.member-light-sidebar {
    background: #ffffff !important;
    color: var(--ml-text) !important;
    border-right: 1px solid var(--ml-border) !important;
    box-shadow: 18px 0 38px rgba(15, 23, 42, .06) !important;
    padding: 26px 18px 22px !important;
}
.member-light-brand {
    align-items: flex-start !important;
    color: var(--ml-text) !important;
    margin-bottom: 30px !important;
}
.member-light-brand .member-paddle-mark {
    position: relative;
    width: 44px;
    height: 44px;
    min-width: 44px;
    border-radius: 50%;
    color: #f43f5e;
    background: #fff !important;
    border: 2px solid #0b1220;
    box-shadow: none !important;
    transform: rotate(-28deg) !important;
    font-size: 1.1rem;
}
.member-light-brand .member-paddle-mark::after {
    content: "";
    position: absolute;
    width: 9px;
    height: 24px;
    background: #0b1220;
    border-radius: 999px;
    bottom: -16px;
    right: 2px;
    transform: rotate(38deg);
}
.member-light-brand strong,
.member-light-brand span {
    color: #0b1220 !important;
    line-height: .98 !important;
    font-weight: 950 !important;
}
.member-light-brand strong { font-size: 1.23rem !important; }
.member-light-brand span { font-size: 1.08rem !important; }
.member-version {
    display: block !important;
    color: #64748b !important;
    font-size: .72rem !important;
    font-weight: 800 !important;
    margin-top: 8px;
    letter-spacing: .02em;
}
.member-light-menu a {
    color: #101828 !important;
    background: transparent !important;
    border-radius: 8px !important;
    padding: 13px 12px !important;
    margin-bottom: 8px !important;
    font-size: .98rem;
    font-weight: 750 !important;
    box-shadow: none !important;
    transform: none !important;
}
.member-light-menu a i {
    color: #475467 !important;
    font-size: 1.05rem;
}
.member-light-menu a:hover,
.member-light-menu a.active {
    background: linear-gradient(90deg, #eaf1ff, #f6f9ff) !important;
    color: var(--ml-primary) !important;
    box-shadow: inset 4px 0 0 var(--ml-primary-2) !important;
}
.member-light-menu a:hover i,
.member-light-menu a.active i { color: var(--ml-primary-2) !important; }
.member-light-status {
    border-top: 1px solid var(--ml-border);
    padding: 18px 2px 0;
    color: #0b1220;
}
.member-light-status small,
.member-light-status span {
    display: block;
    color: #344054;
    font-size: .82rem;
}
.member-light-status strong {
    display: block;
    color: #16a34a;
    font-weight: 900;
    margin: 2px 0 2px;
}
.member-light-main {
    min-height: 100vh;
    background: #f4f8fb !important;
}
.member-light-hero {
    position: relative;
    min-height: 275px;
    padding: 42px 34px 90px;
    background:
        radial-gradient(circle at 92% 0%, rgba(244, 63, 94, .96) 0 18%, transparent 42%),
        radial-gradient(circle at 75% 30%, rgba(255, 255, 255, .14), transparent 20%),
        linear-gradient(135deg, #0754f8 0%, #1235c8 40%, #4420a8 70%, #ed2f54 118%);
    color: #fff;
    overflow: visible;
}
.member-light-hero.compact { min-height: 230px; padding-bottom: 72px; }
.member-light-hero .member-mobile-toggle {
    position: absolute;
    top: 16px;
    left: 18px;
    background: #fff;
    color: var(--ml-primary);
    border-radius: 12px;
}
.member-hero-content h1 {
    margin: 0 0 24px;
    font-size: clamp(2rem, 4vw, 2.55rem);
    font-weight: 950;
    letter-spacing: -.04em;
}
.member-hero-content p {
    max-width: 680px;
    color: rgba(255,255,255,.82);
    margin: -12px 0 0;
    font-size: 1.02rem;
}
.member-reserve-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 330px;
    min-height: 58px;
    padding: 14px 28px;
    border-radius: 999px;
    background: #fff;
    color: #173f9f;
    text-decoration: none;
    font-weight: 950;
    font-size: 1.08rem;
    box-shadow: 0 20px 38px rgba(0,0,0,.22);
}
.member-reserve-pill:hover { color: #0f2f8f; transform: translateY(-1px); }
.member-plan-floating {
    position: absolute;
    right: 34px;
    top: 76px;
    width: 235px;
    min-height: 96px;
    padding: 16px 48px 14px 18px;
    border-radius: 14px;
    background: rgba(255,255,255,.92);
    color: #0b1220;
    text-decoration: none;
    box-shadow: 0 20px 45px rgba(15,23,42,.24);
}
.member-plan-floating.static { position: absolute; }
.member-plan-floating small,
.member-plan-floating span { display:block; color:#111827; font-size:.86rem; line-height:1.1; }
.member-plan-floating strong { display:block; color:#0b1220; font-size:1.22rem; line-height:1.1; font-weight:950; }
.member-plan-floating i { position:absolute; right:16px; top:37px; color:#0f2f8f; font-size:1.2rem; }
.member-light-content {
    position: relative;
    margin-top: -58px;
    padding: 0 34px 34px !important;
}
.member-light-kpis {
    display:grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 22px;
    margin-bottom: 26px;
}
.member-light-kpi {
    position: relative;
    min-height: 128px;
    padding: 20px 18px 16px;
    border-radius: 12px;
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(226,232,240,.75);
    box-shadow: 0 18px 35px rgba(15,23,42,.13);
}
.member-light-kpi .kpi-icon {
    width: 42px;
    height: 42px;
    display:grid;
    place-items:center;
    border-radius: 50%;
    margin-bottom: 14px;
    font-size: 1.25rem;
}
.kpi-icon.blue { background:#e8f0ff; color:#1d4ed8; }
.kpi-icon.coral { background:#ffecef; color:#e11d48; }
.kpi-icon.green { background:#dcfce7; color:#16a34a; }
.kpi-icon.red { background:#fff0ec; color:#dc2626; }
.member-light-kpi small { display:block; color:#111827; font-size:.9rem; margin-bottom:4px; }
.member-light-kpi strong { display:block; color:#050816; font-size:1.25rem; line-height:1.2; font-weight:950; }
.kpi-badge {
    position:absolute;
    top:18px;
    right:18px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:48px;
    height:25px;
    border-radius:999px;
    background:#22c55e;
    color:#fff;
    font-weight:950;
    font-size:.78rem;
}
.member-next-light-card,
.member-light-card {
    background:#fff;
    border:1px solid rgba(226,232,240,.95);
    border-radius:12px;
    box-shadow:0 18px 35px rgba(15,23,42,.12);
    overflow:hidden;
}
.member-next-light-card { margin-bottom:28px; }
.member-next-title {
    padding:20px 22px;
    background:#030852;
    color:#fff;
    font-size:1.25rem;
    font-weight:950;
}
.member-next-light-body {
    display:grid;
    grid-template-columns: minmax(260px, 1.05fr) minmax(260px, .95fr);
    gap: 28px;
    padding:24px 22px 22px;
}
.member-venue-visual {
    position:relative;
    min-height:210px;
    border-radius:10px;
    overflow:hidden;
    background:
        linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,0) 45%),
        linear-gradient(90deg, rgba(1, 24, 74, .58), rgba(1, 24, 74, 0) 45%),
        linear-gradient(180deg, #9fc6df 0 34%, #244a68 34% 38%, #bd333b 38% 100%);
    box-shadow: inset 0 0 0 1px rgba(15,23,42,.08);
}
.member-venue-visual::before {
    content:"Club Kikko\A Tenis de Mesa";
    white-space: pre;
    position:absolute;
    left:20px;
    top:24px;
    color:#fff;
    font-weight:900;
    font-size:.8rem;
    line-height:1.05;
}
.member-venue-visual::after {
    content:"";
    position:absolute;
    width:235px;
    height:105px;
    left:50%;
    top:57%;
    transform:translate(-50%,-50%) perspective(340px) rotateX(58deg);
    background:#1b5d8f;
    border:8px solid rgba(255,255,255,.85);
    border-radius:6px;
    box-shadow:0 24px 35px rgba(0,0,0,.28);
}
.member-venue-visual .table-line {
    position:absolute;
    z-index:2;
    width:235px;
    height:2px;
    left:50%;
    top:57%;
    transform:translateX(-50%);
    background:rgba(255,255,255,.85);
}
.member-venue-visual .table-net {
    position:absolute;
    z-index:3;
    width:10px;
    height:106px;
    left:50%;
    top:36%;
    transform:translateX(-50%) rotate(90deg);
    border-radius:999px;
    background:rgba(255,255,255,.75);
}
.member-venue-visual .table-paddle {
    position:absolute;
    z-index:5;
    width:18px;
    height:18px;
    border-radius:50%;
    right:30%;
    bottom:26%;
    background:#ef4444;
    box-shadow: 12px 12px 0 -6px #111827;
}
.member-next-info h2 {
    font-size:1.05rem;
    margin:0 0 12px;
    color:#0b1220;
    font-weight:500;
}
.member-next-info h2 strong { font-weight:950; }
.trainer-mini { display:flex; align-items:center; gap:10px; margin-bottom:18px; }
.trainer-mini span {
    width:38px;
    height:38px;
    display:grid;
    place-items:center;
    border-radius:50%;
    background:linear-gradient(135deg,#ffe4e6,#fca5a5);
    color:#9f1239;
    font-weight:950;
}
.trainer-mini strong { color:#0b1220; font-weight:900; }
.next-details-grid { display:grid; grid-template-columns: repeat(3,1fr); gap:16px; margin-bottom:18px; }
.next-details-grid small { display:block; color:#475467; font-size:.84rem; }
.next-details-grid strong { display:block; color:#0b1220; font-size:1.05rem; font-weight:950; }
.paid-pill {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:26px;
    padding:4px 11px;
    border-radius:999px;
    background:#22c55e;
    color:#fff !important;
    font-size:.78rem;
    font-weight:950;
}
.member-blue-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    min-height:44px;
    padding:10px 18px;
    border:0;
    border-radius:8px;
    background:linear-gradient(180deg,#1d5df0,#1147d9);
    color:#fff;
    text-decoration:none;
    font-weight:950;
    box-shadow:0 10px 20px rgba(29,78,216,.26);
}
.member-blue-btn:hover { color:#fff; filter:brightness(.98); transform:translateY(-1px); }
.member-blue-btn:disabled { opacity:.55; cursor:not-allowed; transform:none; }
.member-outline-btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:42px;
    padding:9px 16px;
    border-radius:9px;
    background:#fff;
    border:1px solid #c8d6ee;
    color:#1d4ed8;
    text-decoration:none;
    font-weight:900;
}
.member-light-grid-two { display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:28px; margin-bottom:28px; }
.member-light-grid-three { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:22px; margin-bottom:28px; }
.member-light-card { padding:20px 22px; }
.member-light-card h2,
.member-section-head h2 {
    margin:0 0 14px;
    color:#0b1220;
    font-size:1.18rem;
    line-height:1.1;
    font-weight:950;
}
.member-section-head {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    margin-bottom:18px;
}
.member-section-head p { margin:4px 0 0; color:#667085; }
.member-section-card { margin-bottom:28px; }
.member-chart-light-wrap { height:300px; }
.member-light-muted { color:#475467; line-height:1.55; }
.member-light-quote { margin:0 0 18px; color:#111827; font-size:1.02rem; line-height:1.55; }
.member-light-quote footer { color:#667085; font-size:.85rem; margin-top:8px; }
.member-doc-row {
    display:flex;
    align-items:center;
    gap:14px;
    padding:13px 0;
    color:#0b1220;
    text-decoration:none;
    border-bottom:1px solid #eef2f7;
    font-weight:700;
}
.member-doc-row:last-child { border-bottom:0; }
.member-doc-row i {
    width:42px;
    height:42px;
    display:grid;
    place-items:center;
    border-radius:9px;
    background:#eaf1ff;
    color:#1d4ed8;
    font-size:1.25rem;
}
.mini-week-light {
    display:grid;
    grid-template-columns: 58px repeat(5,1fr);
    min-width: 360px;
    overflow: hidden;
    color:#0b1220;
}
.mini-week-light > div {
    min-height:36px;
    border-right:1px solid #e6edf6;
    border-bottom:1px solid #e6edf6;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:.82rem;
}
.mini-week-light .mini-hour { justify-content:flex-start; color:#475467; font-weight:800; }
.mini-cell { position:relative; background:#fff; }
.mini-event {
    width:76%;
    min-height:30px;
    border-radius:7px;
    display:flex;
    align-items:center;
    justify-content:center;
    color:#fff;
    font-size:.78rem;
    font-weight:950;
    background:linear-gradient(135deg,#1d4ed8,#f43f5e);
    box-shadow:0 10px 18px rgba(29,78,216,.18);
}
.member-version-floating {
    color:#344054;
    font-size:.78rem;
    text-align:right;
    padding: 0 4px 2px;
}
.member-inner-page .member-light-content { margin-top: -40px; }
.member-alert { border-radius:12px; box-shadow:0 12px 28px rgba(15,23,42,.08); }
.member-soft-badge {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:6px;
    min-height:28px;
    padding:4px 11px;
    border-radius:999px;
    background:#eef4ff;
    color:#1d4ed8;
    font-size:.8rem;
    font-weight:950;
}
.turno-card-grid { display:grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap:18px; }
.turno-light-card {
    display:flex;
    flex-direction:column;
    gap:14px;
    padding:18px;
    border-radius:14px;
    background:#fff;
    border:1px solid #e6edf6;
    box-shadow:0 12px 24px rgba(15,23,42,.08);
}
.turno-date { display:flex; align-items:center; gap:10px; color:#0b1220; }
.turno-date i { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:#eaf1ff; color:#1d4ed8; }
.turno-date strong { font-weight:950; }
.turno-date span { color:#667085; font-weight:800; }
.turno-info h3 { font-size:1.05rem; font-weight:950; margin:0 0 8px; color:#0b1220; }
.turno-info p { margin:4px 0; color:#475467; font-weight:700; }
.turno-footer { display:flex; align-items:center; justify-content:space-between; gap:12px; }
.turno-footer strong { color:#0b1220; font-size:1.08rem; }
.member-responsive-table { overflow-x:auto; }
.member-responsive-table .table thead th { color:#667085; font-size:.75rem; letter-spacing:.04em; border-bottom-color:#e6edf6; }
.member-responsive-table .table td { color:#101828; border-bottom-color:#eef2f7; }
.member-responsive-table small { color:#667085; }
.payment-summary-card,
.profile-mini-card {
    display:flex;
    align-items:center;
    gap:14px;
    padding:16px;
    border-radius:14px;
    background:#f8fbff;
    border:1px solid #e6edf6;
    margin-bottom:14px;
}
.payment-summary-card i,
.profile-avatar {
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border-radius:14px;
    background:#eaf1ff;
    color:#1d4ed8;
    font-size:1.35rem;
    font-weight:950;
}
.payment-summary-card small,
.payment-summary-card span,
.profile-mini-card span,
.profile-mini-card small { display:block; color:#667085; }
.payment-summary-card strong,
.profile-mini-card strong { display:block; color:#0b1220; font-weight:950; }
.member-empty-state {
    display:grid;
    place-items:center;
    text-align:center;
    gap:8px;
    min-height:160px;
    color:#667085;
}
.member-empty-state i { font-size:2rem; color:#1d4ed8; }
.member-empty-state strong { display:block; color:#0b1220; font-size:1.05rem; }
.performance-kpis { margin-top: 0; }
.skill-row-light,
.objective-light-item {
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:14px;
    padding:12px 0;
    border-bottom:1px solid #eef2f7;
}
.skill-row-light:last-child,
.objective-light-item:last-child { border-bottom:0; }
.skill-row-light span,
.objective-light-item p { color:#475467; margin:4px 0 0; }
.skill-row-light strong,
.objective-light-item strong { color:#0b1220; font-weight:950; }
.report-light-card {
    padding:18px 0;
    border-bottom:1px solid #eef2f7;
}
.report-light-card:last-child { border-bottom:0; }
.report-light-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.report-light-head h3 { margin:0 0 4px; color:#0b1220; font-size:1.06rem; font-weight:950; }
.report-light-head p { margin:0; color:#667085; }
.report-light-card details summary { color:#1d4ed8; font-weight:950; cursor:pointer; }
.report-content-light {
    white-space:pre-wrap;
    margin-top:12px;
    padding:16px;
    border-radius:14px;
    background:#f8fbff;
    border:1px solid #e6edf6;
    color:#111827;
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height:1.65;
    text-align:justify;
    text-justify:inter-word;
    hyphens:auto;
    overflow-wrap:break-word;
}
.report-content-light p,
.report-content-light li,
.report-content-light .report-note {
    text-align:justify;
    text-justify:inter-word;
    hyphens:auto;
}
/* Ajuste visual general para páginas administrativas/entrenador que usan cardx: adopta la misma línea clara sin cambiar su estructura. */
.cardx {
    border-radius: 14px;
    border-color: #e6edf6;
    box-shadow: 0 16px 32px rgba(15,23,42,.08);
}
.cardx-header { background:#fff; border-bottom-color:#eef2f7; }
.btn-sc { background:linear-gradient(180deg,#1d5df0,#1147d9); border-radius:9px; }
.btn-ghost { border-radius:9px; background:#fff; border-color:#d9e4f5; }
@media (max-width: 1180px) {
    .member-light-kpis { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .member-next-light-body,
    .member-light-grid-two,
    .member-light-grid-three { grid-template-columns: 1fr; }
    .turno-card-grid { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .member-plan-floating { position:relative; right:auto; top:auto; margin-top:22px; display:block; }
    .member-light-hero { padding-bottom:90px; }
}
@media (max-width: 980px) {
    .member-dashboard-page .member-light-sidebar { transform: translateX(-105%); z-index:40; }
    .member-dashboard-page .member-light-sidebar.open { transform: translateX(0); }
    .member-light-main { margin-left:0 !important; }
    .member-light-hero { padding:72px 20px 82px; }
    .member-light-content { padding:0 18px 24px !important; }
    .member-reserve-pill { min-width:0; width:100%; }
}
@media (max-width: 680px) {
    .member-light-kpis,
    .turno-card-grid { grid-template-columns: 1fr; }
    .next-details-grid { grid-template-columns:1fr; }
    .member-next-light-body { padding:18px; gap:18px; }
    .member-venue-visual { min-height:170px; }
    .member-light-card { padding:18px; }
    .mini-week-light { min-width:330px; }
}

/* v1_1_5 - Alineación visual general para pantallas internas no asociadas */
body:not(.member-dashboard-page) .app-shell .sidebar {
    background:#ffffff;
    color:#101828;
    border-right:1px solid #e6edf6;
    box-shadow:18px 0 38px rgba(15,23,42,.06);
}
body:not(.member-dashboard-page) .sidebar .brand {
    color:#0b1220;
    line-height:1.05;
}
body:not(.member-dashboard-page) .sidebar .brand small {
    color:#64748b;
    font-weight:800;
}
body:not(.member-dashboard-page) .sidebar .brand-icon {
    background:#fff;
    color:#f43f5e;
    border:2px solid #0b1220;
    border-radius:50%;
    box-shadow:none;
}
body:not(.member-dashboard-page) .sidebar a {
    color:#101828;
    border-radius:8px;
    font-weight:750;
}
body:not(.member-dashboard-page) .sidebar a i { color:#475467; }
body:not(.member-dashboard-page) .sidebar a:hover,
body:not(.member-dashboard-page) .sidebar a.active {
    background:linear-gradient(90deg,#eaf1ff,#f6f9ff);
    color:#0f2f8f;
    box-shadow:inset 4px 0 0 #1d4ed8;
    transform:none;
}
body:not(.member-dashboard-page) .sidebar-footer { color:#64748b; }
body:not(.member-dashboard-page) .main { background:#f4f8fb; }
body:not(.member-dashboard-page) .topbar {
    min-height:112px;
    height:auto;
    padding:24px 28px;
    align-items:center;
    color:#fff;
    border-bottom:0;
    background:
        radial-gradient(circle at 92% 0%, rgba(244,63,94,.92) 0 16%, transparent 40%),
        linear-gradient(135deg,#0754f8 0%,#1235c8 48%,#4420a8 78%,#ed2f54 120%);
    box-shadow:0 18px 35px rgba(15,23,42,.12);
}
body:not(.member-dashboard-page) .topbar .page-title h1,
body:not(.member-dashboard-page) .topbar .page-title p { color:#fff; }
body:not(.member-dashboard-page) .topbar .badge-soft {
    background:rgba(255,255,255,.92);
    color:#0f2f8f;
    border:0;
}
body:not(.member-dashboard-page) .content { background:#f4f8fb; }

/* v1_2_9 - Pulido visual global para vistas administrador/entrenador */
:root {
    --sc-primary: #087fc4;
    --sc-primary-dark: #071b35;
    --sc-accent: #ff8a18;
    --sc-bg: #f4f8fb;
    --sc-card: #ffffff;
    --sc-text: #101828;
    --sc-muted: #667085;
    --sc-border: #e3eaf3;
}
.sidebar {
    background:
        radial-gradient(circle at 30% 0%, rgba(0, 162, 232, .18), transparent 30%),
        linear-gradient(180deg, #09213e 0%, #071b35 52%, #05162b 100%);
    box-shadow: 22px 0 50px rgba(7, 27, 53, .22);
}
.sidebar .brand-icon { background: linear-gradient(135deg, #087fc4, #ff8a18); }
.sidebar a { border-radius: 10px; font-weight: 750; }
.sidebar a:hover, .sidebar a.active { background: rgba(255,255,255,.14); transform: translateX(2px); }
.topbar {
    background: rgba(255,255,255,.88);
    backdrop-filter: blur(12px);
    box-shadow: 0 8px 24px rgba(16,24,40,.04);
}
.cardx, .metric-card {
    border-color: var(--sc-border);
    border-radius: 18px;
    box-shadow: 0 12px 32px rgba(16,24,40,.08);
}
.btn-sc {
    background: linear-gradient(135deg, #087fc4, #00a2e8);
    border-radius: 10px;
    box-shadow: 0 10px 24px rgba(8,127,196,.24);
}
.badge-soft {
    background:#e0f4ff;
    color:#075985;
    border-color:#bae6fd;
}
.section-tabs button.active { background: #071b35; }

/* v1_3_2 - soporte de logo configurable y menú colapsable */
.sidebar,
.main {
    transition: transform .22s ease, margin-left .22s ease, width .22s ease;
}
body.sidebar-collapsed .sidebar {
    transform: translateX(-105%);
}
body.sidebar-collapsed .main {
    margin-left: 0 !important;
}
body.menu-open::after {
    content: "";
    position: fixed;
    inset: 0;
    z-index: 25;
    background: rgba(15, 23, 42, .42);
    backdrop-filter: blur(2px);
}
body.menu-open .sidebar { z-index: 40; }
.admin-brand-logo {
    overflow: hidden;
    background: rgba(255,255,255,.10) !important;
    border: 1px solid rgba(255,255,255,.14);
}
.admin-brand-logo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: contain;
    border-radius: inherit;
    padding: 3px;
    background: #ffffff;
}
.admin-logo-preview .preview-logo {
    width: 74px;
    height: 74px;
    border-radius: 20px;
}
.auth-brand-pill img {
    width: 32px;
    height: 32px;
    object-fit: contain;
    border-radius: 10px;
    background: #ffffff;
    padding: 3px;
}
.btn[data-menu-toggle],
.member-mobile-toggle,
.btn-ghost[data-menu-toggle] {
    display: inline-grid !important;
    place-items: center;
    width: 44px;
    height: 44px;
    padding: 0 !important;
    flex: 0 0 auto;
}
@media (max-width: 980px) {
    body.sidebar-collapsed .sidebar { transform: translateX(-105%); }
    body.sidebar-collapsed .main { margin-left: 0 !important; }
}

/* v1_3_6 - Unificación visual para administrador y entrenador con el estilo del dashboard del socio */
body.role-shell {
    --role-sidebar-w: 250px;
    background:
        radial-gradient(circle at 82% 4%, rgba(14, 165, 233, .16), transparent 26%),
        linear-gradient(180deg, #f7fbff 0%, #eef6fb 100%);
    color: #0b1220;
}
body.role-shell .app-shell { min-height: 100vh; }
body.role-shell .sidebar.role-sidebar {
    width: var(--role-sidebar-w);
    padding: 24px 14px 18px;
    background:
        radial-gradient(circle at 42% 0%, rgba(0, 162, 232, .24), transparent 34%),
        linear-gradient(180deg, #08375c 0%, #071d38 45%, #05162b 100%) !important;
    color: #eaf6ff !important;
    box-shadow: 24px 0 54px rgba(7, 27, 53, .18);
    border-right: 0 !important;
    z-index: 35;
}
body.role-shell .brand.role-brand {
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:flex-start;
    gap: 10px;
    text-align:center;
    margin: 0 0 26px;
    color:#fff !important;
}
body.role-shell .role-brand-logo {
    width: 104px !important;
    height: 104px !important;
    border-radius: 30px !important;
    display:grid;
    place-items:center;
    background: rgba(255,255,255,.06) !important;
    border: 1px solid rgba(255,255,255,.14) !important;
    box-shadow: none !important;
    overflow:hidden;
}
body.role-shell .role-brand-logo img {
    width:100%;
    height:100%;
    object-fit:contain;
    padding:4px;
    background:transparent;
    border-radius:24px;
}
body.role-shell .role-brand-logo i { font-size: 3rem; color:#ff4f55; }
body.role-shell .role-brand-copy strong {
    display:block;
    color:#fff;
    font-weight:950;
    line-height:1.02;
    font-size:1.18rem;
}
body.role-shell .role-brand-copy small {
    display:block;
    color:#c9d9ea !important;
    font-weight:800;
    margin-top:2px;
}
body.role-shell .role-brand-copy span {
    display:block;
    color:#cbd5e1;
    font-size:.78rem;
    font-weight:900;
    margin-top:7px;
}
body.role-shell .role-menu { display:flex; flex-direction:column; gap:7px; }
body.role-shell .role-menu a,
body.role-shell .sidebar a {
    min-height: 43px;
    display:flex;
    align-items:center;
    gap: 12px;
    padding: 11px 13px;
    margin: 0;
    color:#dbeafe !important;
    border-radius: 12px;
    text-decoration:none;
    font-weight:850;
    font-size:.94rem;
    letter-spacing:-.01em;
    border:1px solid transparent;
    box-shadow:none;
}
body.role-shell .role-menu a i,
body.role-shell .sidebar a i { color:#c6dbf3 !important; width:18px; text-align:center; }
body.role-shell .role-menu a:hover,
body.role-shell .role-menu a.active,
body.role-shell .sidebar a:hover,
body.role-shell .sidebar a.active {
    color:#fff !important;
    background: rgba(255,255,255,.13) !important;
    border-color: rgba(255,255,255,.08);
    transform:none !important;
    box-shadow:none !important;
}
body.role-shell .role-status-card {
    margin-top: 28px;
    padding: 13px 14px;
    display:flex;
    gap:10px;
    align-items:center;
    border:1px solid rgba(52, 211, 153, .42);
    background: rgba(16, 185, 129, .13);
    color:#dbfff2;
    border-radius:14px;
}
body.role-shell .role-status-card i { color:#4ade80; font-size:1.05rem; }
body.role-shell .role-status-card strong { display:block; font-size:.82rem; font-weight:950; }
body.role-shell .role-status-card span { display:block; max-width:175px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#bad4e8; font-size:.74rem; font-weight:700; }
body.role-shell .main.role-main {
    margin-left: var(--role-sidebar-w) !important;
    min-height:100vh;
    background:
        radial-gradient(circle at 88% 10%, rgba(14, 165, 233, .14), transparent 24%),
        linear-gradient(180deg, #f8fbff 0%, #eef6fb 100%) !important;
}
body.role-shell .role-topbar {
    height: 64px;
    position: sticky;
    top: 0;
    z-index: 20;
    display:flex;
    align-items:center;
    gap:14px;
    padding: 0 28px;
    background: rgba(255,255,255,.92);
    border-bottom:1px solid #dbe8f4;
    backdrop-filter: blur(14px);
    box-shadow: 0 8px 24px rgba(16, 24, 40, .04);
}
body.role-shell .role-top-spacer { flex:1; }
body.role-shell .role-menu-toggle,
body.role-shell .btn[data-menu-toggle] {
    display:inline-grid !important;
    place-items:center;
    width:44px;
    height:44px;
    padding:0 !important;
    border:1px solid #cfe0ef;
    background:#f8fbff;
    color:#52667d;
    border-radius:12px;
    box-shadow:0 7px 18px rgba(15, 23, 42, .04);
}
body.role-shell .role-icon-action {
    position:relative;
    display:grid;
    place-items:center;
    width:34px;
    height:34px;
    color:#334155;
    text-decoration:none;
    border-radius:50%;
}
body.role-shell .role-icon-action:hover { background:#edf6ff; color:#075985; }
body.role-shell .role-icon-action.has-dot::after {
    content:"";
    position:absolute;
    top:5px;
    right:6px;
    width:7px;
    height:7px;
    border-radius:50%;
    background:#ff4153;
    border:2px solid #fff;
}
body.role-shell .role-avatar {
    display:grid;
    place-items:center;
    width:42px;
    height:42px;
    border-radius:50%;
    background:#eafff9;
    color:#0f2e73;
    text-decoration:none;
    font-weight:950;
    box-shadow:0 8px 22px rgba(15,23,42,.08);
}
body.role-shell .role-hero {
    display:grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-items:center;
    gap:20px;
    padding: 28px 30px 18px;
    background: linear-gradient(90deg, rgba(255,255,255,.0), rgba(224,244,255,.70));
}
body.role-shell .role-hero h1 {
    margin:0;
    color:#061228;
    font-size: clamp(2rem, 3.2vw, 3.25rem);
    line-height:.95;
    letter-spacing:-.05em;
    font-weight: 950;
}
body.role-shell .role-hero p {
    margin:10px 0 0;
    color:#243852;
    font-weight:650;
}
body.role-shell .role-hero-actions { display:flex; flex-wrap:wrap; gap:14px; justify-content:flex-end; }
body.role-shell .role-primary-action,
body.role-shell .role-secondary-action {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:46px;
    padding: 12px 20px;
    border-radius:10px;
    text-decoration:none;
    font-weight:950;
    white-space:nowrap;
}
body.role-shell .role-primary-action {
    color:#fff;
    background: linear-gradient(135deg, #087fc4 0%, #00a2e8 100%);
    box-shadow:0 14px 30px rgba(8, 127, 196, .24);
}
body.role-shell .role-secondary-action {
    color:#0f2e73;
    background:#fff;
    border:1px solid #d4e4f3;
    box-shadow:0 10px 24px rgba(16,24,40,.06);
}
body.role-shell .role-content {
    padding: 18px 30px 34px;
    background: transparent !important;
}
body.role-shell .role-card,
body.role-shell .cardx,
body.role-shell .metric-card {
    border:1px solid #dce8f4;
    border-radius:18px;
    background:#fff;
    box-shadow:0 12px 30px rgba(16,24,40,.08);
}
body.role-shell .metric-card {
    min-height:118px;
    padding:20px;
    position:relative;
    overflow:hidden;
}
body.role-shell .metric-card::after {
    content:"";
    position:absolute;
    right:-16px;
    bottom:-22px;
    width:78px;
    height:78px;
    border-radius:50%;
    background:#eaf7ff;
}
body.role-shell .metric-card .icon {
    width:40px;
    height:40px;
    border-radius:12px;
    background:#eaf7ff;
    color:#087fc4;
}
body.role-shell .metric-card .label {
    margin-top:8px;
    color:#0b1220;
    font-size:.78rem;
    font-weight:950;
    text-transform:none;
    letter-spacing:0;
}
body.role-shell .metric-card .value {
    font-size:1.65rem;
    color:#0b1220;
    line-height:1;
}
body.role-shell .cardx-header {
    padding:18px 20px;
    border-bottom:0;
}
body.role-shell .cardx-header strong { font-size:1.05rem; font-weight:950; color:#0b1220; }
body.role-shell .cardx-body { padding: 0 20px 20px; }
body.role-shell .role-table thead th,
body.role-shell .table thead th {
    color:#667085;
    background:#f8fbff;
    text-transform:none;
    letter-spacing:0;
    font-size:.82rem;
    font-weight:950;
    border-bottom:1px solid #e5edf6;
}
body.role-shell .role-table td,
body.role-shell .table td { color:#23364d; font-weight:650; }
body.role-shell .section-tabs {
    padding:8px;
    background:#fff;
    border:1px solid #dce8f4;
    border-radius:18px;
    box-shadow:0 12px 28px rgba(16,24,40,.06);
}
body.role-shell .section-tabs button {
    border:0;
    background:transparent;
    color:#52667d;
    border-radius:13px;
    padding:10px 14px;
    font-weight:950;
}
body.role-shell .section-tabs button:hover { background:#edf6ff; color:#075985; }
body.role-shell .section-tabs button.active { background:#071d38 !important; color:#fff !important; }
body.role-shell .role-section-nav {
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    margin-bottom:18px;
}
body.role-shell .role-section-nav a {
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:10px 14px;
    border-radius:999px;
    color:#075985;
    background:#e0f4ff;
    border:1px solid #bae6fd;
    text-decoration:none;
    font-weight:950;
}
body.role-shell .role-alert {
    border:1px solid #bae6fd;
    border-radius:16px;
    background:#eff9ff;
    color:#19476a;
}
body.sidebar-collapsed.role-shell .sidebar.role-sidebar { transform: translateX(-105%) !important; }
body.sidebar-collapsed.role-shell .main.role-main { margin-left:0 !important; }
@media (max-width: 1180px) {
    body.role-shell .role-hero { grid-template-columns:1fr; }
    body.role-shell .role-hero-actions { justify-content:flex-start; }
}
@media (max-width: 980px) {
    body.role-shell .sidebar.role-sidebar { transform: translateX(-105%); }
    body.role-shell .sidebar.role-sidebar.open { transform: translateX(0) !important; }
    body.role-shell .main.role-main { margin-left:0 !important; }
    body.role-shell .role-topbar { padding:0 16px; }
    body.role-shell .role-hero { padding:22px 18px 12px; }
    body.role-shell .role-content { padding:16px 18px 26px; }
}
@media (max-width: 640px) {
    body.role-shell .role-hero h1 { font-size:2rem; }
    body.role-shell .role-primary-action,
    body.role-shell .role-secondary-action { width:100%; }
    body.role-shell .role-metric-grid { grid-template-columns:1fr !important; }
}

/* v1_3_7 - CRUD administrativo consistente */
body.role-shell .admin-crud-table {
    min-width: 860px;
}
body.role-shell .admin-crud-table th:last-child,
body.role-shell .admin-crud-table td:last-child {
    width: 220px;
}
body.role-shell .table-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    align-items: center;
}
body.role-shell .table-actions form {
    margin: 0;
}
body.role-shell .admin-form-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
    margin-top: 18px;
}
body.role-shell .admin-form-editing {
    position: relative;
}
body.role-shell .admin-form-editing::before {
    content: "Modo edición";
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 10px;
    margin-bottom: 12px;
    border-radius: 999px;
    background: #e0f2fe;
    color: #075985;
    font-size: .78rem;
    font-weight: 950;
    border: 1px solid #bae6fd;
}
body.role-shell .btn-danger-soft {
    border: 1px solid #fecaca;
    background: #fff1f2;
    color: #b42318;
    border-radius: 12px;
    font-weight: 900;
}
body.role-shell .btn-danger-soft:hover {
    background: #fee2e2;
    color: #991b1b;
}
body.role-shell .btn-ghost {
    border: 1px solid #d6e4f2;
    background: #fff;
    color: #075985;
    border-radius: 12px;
    font-weight: 900;
}
body.role-shell .btn-ghost:hover {
    background: #eff8ff;
    color: #064b75;
}
body.role-shell .grid-2.align-items-start,
body.role-shell .grid-3.align-items-start {
    align-items: start;
}
@media (max-width: 980px) {
    body.role-shell .admin-crud-table {
        min-width: 760px;
    }
    body.role-shell .table-actions {
        min-width: 190px;
    }
}

/* v1_3_8 - Formularios administrativos arriba y tablas abajo */
body.role-shell .admin-section > .grid-2.align-items-start,
body.role-shell .admin-section > .grid-3.align-items-start {
    grid-template-columns: 1fr !important;
    align-items: stretch !important;
    gap: 22px !important;
}

body.role-shell .admin-section > .grid-2.align-items-start > .cardx,
body.role-shell .admin-section > .grid-3.align-items-start > .cardx {
    width: 100%;
}

body.role-shell .admin-section > .grid-2.align-items-start > .cardx:first-child,
body.role-shell .admin-section > .grid-3.align-items-start > .cardx:first-child {
    margin-bottom: 0;
}

body.role-shell .admin-section > .grid-2.align-items-start > .cardx:last-child .cardx-body.table-responsive,
body.role-shell .admin-section > .grid-3.align-items-start > .cardx:last-child .cardx-body.table-responsive {
    padding-top: 8px;
}

body.role-shell .admin-section .admin-crud-table {
    width: 100%;
}

@media (min-width: 1200px) {
    body.role-shell .admin-section > .grid-2.align-items-start form .grid-2,
    body.role-shell .admin-section > .grid-3.align-items-start form .grid-2 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

/* v1_3_9 - Login basado únicamente en Identidad App configurada en BD */
.auth-page.auth-page-identity-only {
    background:
        radial-gradient(circle at 18% 12%, rgba(20, 184, 166, .22), transparent 30%),
        radial-gradient(circle at 86% 4%, rgba(14, 165, 233, .16), transparent 26%),
        linear-gradient(135deg, #061d2b 0%, #0f3c3d 48%, #0f766e 100%);
}
.auth-hero-identity-only {
    padding: clamp(34px, 6vw, 74px);
    align-items: center;
    text-align: center;
}
.auth-identity-card {
    width: min(560px, 100%);
    min-height: 420px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 26px;
    padding: clamp(28px, 5vw, 54px);
    border-radius: 34px;
    background: rgba(255, 255, 255, .08);
    border: 1px solid rgba(255, 255, 255, .16);
    box-shadow: 0 35px 90px rgba(2, 6, 23, .22);
    backdrop-filter: blur(14px);
}
.auth-identity-logo {
    width: min(230px, 60vw);
    height: min(230px, 60vw);
    max-width: 230px;
    max-height: 230px;
    display: block;
    object-fit: contain;
    border-radius: 34px;
    padding: 14px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 28px 65px rgba(2, 6, 23, .24);
}
.auth-identity-logo-fallback {
    display: grid;
    place-items: center;
    font-size: 5.2rem;
    color: #0f766e;
}
.auth-identity-card h1 {
    max-width: 100%;
    margin: 0;
    color: #fff;
    font-size: clamp(2.1rem, 5vw, 4rem);
    line-height: 1;
    font-weight: 950;
    letter-spacing: -.055em;
    text-wrap: balance;
    text-shadow: 0 16px 34px rgba(2, 6, 23, .20);
}
@media (max-width: 980px) {
    .auth-identity-card { min-height: auto; }
    .auth-hero-identity-only { padding-bottom: 18px; }
}

/* v1_4_0 - Módulo de asistencia del entrenador */
body.role-shell .attendance-session-list {
    display: grid;
    gap: 18px;
}
body.role-shell .attendance-session-card {
    border: 1px solid #dce8f4;
    border-radius: 18px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    box-shadow: 0 12px 28px rgba(16,24,40,.06);
    padding: 18px;
}
body.role-shell .attendance-session-head {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 18px;
    align-items: start;
    margin-bottom: 16px;
}
body.role-shell .attendance-session-head h3 {
    margin: 6px 0 6px;
    color: #071d38;
    font-size: 1.2rem;
    line-height: 1.15;
    font-weight: 950;
}
body.role-shell .attendance-session-head p {
    margin: 0;
    color: #49637e;
    font-weight: 700;
}
body.role-shell .attendance-code {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 10px;
    border-radius: 999px;
    background: #e0f4ff;
    color: #075985;
    border: 1px solid #bae6fd;
    font-weight: 950;
    font-size: .78rem;
}
body.role-shell .attendance-session-stats {
    display: flex;
    flex-direction: column;
    gap: 8px;
    align-items: flex-end;
    color: #0f2e73;
    font-weight: 850;
}
body.role-shell .attendance-details-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}
body.role-shell .attendance-details-grid > div {
    padding: 12px;
    border-radius: 14px;
    background: #fff;
    border: 1px solid #e4edf7;
}
body.role-shell .attendance-details-grid small {
    display: block;
    color: #667085;
    font-size: .75rem;
    font-weight: 850;
    margin-bottom: 4px;
}
body.role-shell .attendance-details-grid strong {
    color: #0b1220;
    font-weight: 950;
}
body.role-shell .attendance-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 12px 14px;
    border: 1px solid #e4edf7;
    border-radius: 14px;
    background: #f8fbff;
    margin-bottom: 14px;
    color: #49637e;
    font-weight: 750;
}
body.role-shell .attendance-toolbar-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
body.role-shell .attendance-table {
    min-width: 980px;
}
body.role-shell .attendance-options {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    min-width: 360px;
}
body.role-shell .attendance-option {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border: 1px solid #d9e6f4;
    background: #fff;
    color: #31445c;
    border-radius: 999px;
    padding: 8px 11px;
    font-weight: 950;
    cursor: pointer;
    transition: .18s ease;
    user-select: none;
}
body.role-shell .attendance-option input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
body.role-shell .attendance-option:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(16,24,40,.08);
}
body.role-shell .attendance-option:has(input:checked) {
    color: #fff;
    border-color: transparent;
}
body.role-shell .attendance-present:has(input:checked) { background: linear-gradient(135deg, #16a34a 0%, #22c55e 100%); }
body.role-shell .attendance-late:has(input:checked) { background: linear-gradient(135deg, #f59e0b 0%, #fb923c 100%); }
body.role-shell .attendance-absent:has(input:checked) { background: linear-gradient(135deg, #ef4444 0%, #fb7185 100%); }
body.role-shell .attendance-pending:has(input:checked) { background: linear-gradient(135deg, #64748b 0%, #94a3b8 100%); }
body.role-shell .empty-state-mini {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 6px;
    min-height: 150px;
    padding: 20px;
    border: 1px dashed #bfd5ea;
    border-radius: 16px;
    background: #f8fbff;
    color: #49637e;
    text-align: center;
}
body.role-shell .empty-state-mini i {
    width: 44px;
    height: 44px;
    display: inline-grid;
    place-items: center;
    border-radius: 14px;
    background: #e0f4ff;
    color: #087fc4;
    font-size: 1.35rem;
}
body.role-shell .empty-state-mini strong {
    color: #0b1220;
    font-weight: 950;
}
body.role-shell .empty-state-mini.compact {
    min-height: 105px;
}
@media (max-width: 1180px) {
    body.role-shell .attendance-details-grid { grid-template-columns: repeat(3, minmax(0,1fr)); }
}
@media (max-width: 760px) {
    body.role-shell .attendance-session-head { grid-template-columns: 1fr; }
    body.role-shell .attendance-session-stats { align-items: flex-start; }
    body.role-shell .attendance-details-grid { grid-template-columns: 1fr; }
    body.role-shell .attendance-toolbar { align-items: flex-start; flex-direction: column; }
}

/* v1_4_4 - Agenda independiente del entrenador con calendario mensual */
body.role-shell .trainer-quick-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
}
body.role-shell .trainer-quick-card {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 150px;
    padding: 20px;
    border: 1px solid #dce8f4;
    border-radius: 20px;
    background: linear-gradient(180deg, #ffffff 0%, #f8fbff 100%);
    color: #071d38;
    text-decoration: none;
    box-shadow: 0 14px 32px rgba(16, 24, 40, .06);
    transition: .18s ease;
}
body.role-shell .trainer-quick-card:hover {
    transform: translateY(-2px);
    box-shadow: 0 20px 44px rgba(16, 24, 40, .10);
    border-color: #b7dcf8;
}
body.role-shell .trainer-quick-card i {
    width: 44px;
    height: 44px;
    display: inline-grid;
    place-items: center;
    border-radius: 14px;
    background: #e0f4ff;
    color: #087fc4;
    font-size: 1.28rem;
}
body.role-shell .trainer-quick-card strong {
    font-size: 1.05rem;
    font-weight: 950;
}
body.role-shell .trainer-quick-card span {
    color: #52677e;
    line-height: 1.35;
    font-weight: 650;
}
body.role-shell .trainer-calendar-header {
    align-items: center;
    gap: 16px;
}
body.role-shell .trainer-calendar-header small {
    display: block;
    margin-top: 2px;
    color: #667085;
    font-weight: 650;
}
body.role-shell .trainer-calendar-controls {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}
body.role-shell .trainer-month-form {
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
body.role-shell .trainer-month-form .form-control {
    width: 170px;
    min-height: 42px;
}
body.role-shell .trainer-calendar-title {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 10px 14px;
    margin-bottom: 14px;
    border-radius: 999px;
    background: #e0f4ff;
    color: #075985;
    border: 1px solid #bae6fd;
    font-weight: 950;
}
body.role-shell .trainer-calendar-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
}
body.role-shell .trainer-calendar-days {
    border: 1px solid #dce8f4;
    border-bottom: 0;
    border-radius: 18px 18px 0 0;
    overflow: hidden;
    background: #f8fbff;
}
body.role-shell .trainer-calendar-days > div {
    min-height: 42px;
    display: grid;
    place-items: center;
    border-right: 1px solid #e6eef7;
    color: #52677e;
    font-weight: 950;
}
body.role-shell .trainer-calendar-days > div:last-child {
    border-right: 0;
}
body.role-shell .trainer-calendar-month {
    border-left: 1px solid #dce8f4;
    border-top: 1px solid #dce8f4;
    border-radius: 0 0 18px 18px;
    overflow: hidden;
}
body.role-shell .trainer-calendar-cell {
    min-height: 150px;
    padding: 10px;
    background: #fff;
    border-right: 1px solid #e6eef7;
    border-bottom: 1px solid #e6eef7;
}
body.role-shell .trainer-calendar-cell:nth-child(7n) {
    border-right: 0;
}
body.role-shell .trainer-calendar-cell.is-outside {
    background: #f7fafc;
    color: #94a3b8;
}
body.role-shell .trainer-calendar-cell.is-today {
    box-shadow: inset 0 0 0 2px rgba(14, 165, 233, .22);
    background: linear-gradient(180deg, #f0f9ff 0%, #ffffff 100%);
}
body.role-shell .trainer-calendar-date {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    margin-bottom: 8px;
    color: #071d38;
    font-weight: 950;
}
body.role-shell .trainer-calendar-date em {
    font-style: normal;
    font-size: .68rem;
    color: #075985;
    background: #dff5ff;
    border: 1px solid #bfeaff;
    padding: 2px 7px;
    border-radius: 999px;
}
body.role-shell .trainer-calendar-events {
    display: grid;
    gap: 7px;
}
body.role-shell .trainer-calendar-event {
    display: grid;
    gap: 2px;
    padding: 8px 9px;
    border-radius: 12px;
    background: linear-gradient(135deg, #0b79c9 0%, #12a8d7 100%);
    color: #fff;
    text-decoration: none;
    box-shadow: 0 10px 22px rgba(14, 165, 233, .20);
    transition: .18s ease;
}
body.role-shell .trainer-calendar-event:hover {
    transform: translateY(-1px);
    color: #fff;
    box-shadow: 0 14px 30px rgba(14, 165, 233, .28);
}
body.role-shell .trainer-calendar-event strong {
    font-size: .82rem;
    font-weight: 950;
}
body.role-shell .trainer-calendar-event span {
    font-size: .78rem;
    font-weight: 850;
    line-height: 1.1;
}
body.role-shell .trainer-calendar-event small {
    font-size: .70rem;
    opacity: .92;
    line-height: 1.1;
}
body.role-shell .trainer-agenda-table {
    min-width: 1120px;
}
@media (max-width: 1280px) {
    body.role-shell .trainer-quick-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.role-shell .trainer-calendar-controls { justify-content: flex-start; width: 100%; }
}
@media (max-width: 900px) {
    body.role-shell .trainer-calendar-grid { min-width: 980px; }
    body.role-shell .trainer-agenda-panel .cardx-body { overflow-x: auto; }
    body.role-shell .trainer-calendar-header { align-items: flex-start; flex-direction: column; }
}
@media (max-width: 680px) {
    body.role-shell .trainer-quick-grid { grid-template-columns: 1fr; }
    body.role-shell .trainer-calendar-controls,
    body.role-shell .trainer-month-form { align-items: stretch; flex-direction: column; width: 100%; }
    body.role-shell .trainer-month-form .form-control,
    body.role-shell .trainer-calendar-controls .btn,
    body.role-shell .trainer-month-form .btn { width: 100%; }
}


/* v1_4_6 - Ajuste de vista desempeño dentro del contexto entrenador.
   Evita que la navegación secundaria se monte sobre el título del hero. */
body.trainer-performance-page .role-hero {
    position: relative;
    z-index: 1;
    align-items: flex-start;
    padding-bottom: 26px;
    border-bottom: 1px solid #dce8f4;
}
body.trainer-performance-page .role-hero h1 {
    margin-bottom: 8px;
}
body.trainer-performance-page .role-hero p {
    max-width: 920px;
}
body.trainer-performance-page .role-hero-actions {
    padding-top: 4px;
}
body.trainer-performance-page .trainer-performance-content {
    position: relative;
    z-index: 0;
    margin-top: 0 !important;
    padding: 22px 30px 34px !important;
    background: transparent !important;
}
body.trainer-performance-page .role-section-nav {
    position: static !important;
    z-index: auto;
    margin: 0 0 22px 0;
    padding: 0;
    clear: both;
}
body.trainer-performance-page .member-section-card:first-of-type {
    margin-top: 0;
}
@media (max-width: 1180px) {
    body.trainer-performance-page .role-hero-actions {
        justify-content: flex-start;
    }
}
@media (max-width: 980px) {
    body.trainer-performance-page .trainer-performance-content {
        padding: 18px 18px 28px !important;
    }
}

/* v1_5_2 Administración de pagos y checkout */
.section-tab-link { border: 0; border-radius: 999px; padding: 10px 16px; font-weight: 900; color: #075a8c; background: #e8f7ff; text-decoration: none; display: inline-flex; align-items: center; gap: 8px; border: 1px solid #bfe7fb; }
.section-tab-link:hover { color: #023d65; background: #dff4ff; }
.admin-payments-page .admin-two-stack { display: block; }
.admin-payments-card { border-radius: 24px; overflow: hidden; }
.empty-state-pro { min-height: 180px; display: grid; place-items: center; text-align: center; gap: 8px; color: #61708a; padding: 30px; }
.empty-state-pro i { width: 58px; height: 58px; border-radius: 20px; display: grid; place-items: center; background: #e7f7ff; color: #0699d3; font-size: 1.6rem; }
.empty-state-pro strong { display: block; color: #071833; font-size: 1.1rem; }
.payment-approval-list { display: grid; gap: 18px; }
.payment-approval-card { background: #fff; border: 1px solid #dceaf6; border-radius: 24px; padding: 20px; box-shadow: 0 18px 42px rgba(15, 46, 115, .06); }
.payment-approval-head { display: flex; justify-content: space-between; gap: 16px; align-items: flex-start; margin-bottom: 16px; }
.payment-code { display: inline-flex; background: #e4f7ff; color: #046ca4; border: 1px solid #b8e5ff; border-radius: 999px; padding: 4px 10px; font-size: .75rem; font-weight: 900; margin-bottom: 8px; }
.payment-approval-head h3 { margin: 0; color: #071833; font-size: 1.1rem; font-weight: 950; }
.payment-approval-head p { margin: 2px 0 0; color: #63728d; }
.payment-approval-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.payment-approval-grid > div { background: #f7fbff; border: 1px solid #dceaf6; border-radius: 18px; padding: 14px; }
.payment-approval-grid small { display: block; color: #63728d; font-weight: 800; text-transform: uppercase; font-size: .72rem; letter-spacing: .03em; }
.payment-approval-grid strong { display: block; color: #071833; font-weight: 950; margin: 4px 0; }
.payment-approval-grid span { color: #63728d; font-size: .88rem; }
.payment-approval-actions { display: flex; justify-content: flex-end; margin-top: 16px; }
.yape-admin-fields { transition: .2s ease; }
@media (max-width: 980px) { .payment-approval-grid { grid-template-columns: 1fr; } .payment-approval-head { flex-direction: column; } }

/* v1_7_2 - Socios: autogeneración, filtros, exportación y vista móvil profesional */
body.role-shell .admin-list-header {
    display: flex;
    justify-content: space-between;
    gap: 16px;
    align-items: flex-start;
}
body.role-shell .admin-list-header small {
    display: block;
    margin-top: 3px;
    color: #64748b;
    font-weight: 700;
}
body.role-shell .admin-list-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
}
body.role-shell .admin-filter-panel {
    display: grid;
    grid-template-columns: minmax(260px, 1.5fr) minmax(180px, .75fr) minmax(150px, .55fr) auto;
    gap: 14px;
    align-items: end;
    padding: 16px;
    margin-bottom: 16px;
    border: 1px solid #dbeafe;
    border-radius: 20px;
    background: linear-gradient(135deg, #f8fbff 0%, #eef9ff 100%);
}
body.role-shell .admin-filter-panel .input-group-text {
    border-color: #d6e4f2;
    background: #ffffff;
    color: #075985;
    font-weight: 900;
}
body.role-shell .admin-filter-actions {
    display: flex;
    align-items: end;
    justify-content: flex-end;
}
body.role-shell .admin-socios-table .mobile-muted {
    display: none;
}
body.role-shell .admin-socios-list-card .btn-sc {
    white-space: nowrap;
}
body.role-shell input[data-auto-code="true"] {
    background: #f8fbff;
    font-weight: 900;
    color: #075985;
    letter-spacing: .03em;
}
@media (max-width: 1100px) {
    body.role-shell .admin-filter-panel {
        grid-template-columns: 1fr 1fr;
    }
    body.role-shell .admin-filter-actions {
        justify-content: flex-start;
    }
}
@media (max-width: 760px) {
    body.role-shell .admin-list-header {
        flex-direction: column;
        align-items: stretch;
    }
    body.role-shell .admin-list-actions {
        justify-content: flex-start;
    }
    body.role-shell .admin-list-actions .btn,
    body.role-shell .admin-filter-actions .btn {
        width: 100%;
    }
    body.role-shell .admin-filter-panel {
        grid-template-columns: 1fr;
        padding: 14px;
        border-radius: 18px;
    }
    body.role-shell .socios-table-wrapper.table-responsive {
        overflow: visible;
    }
    body.role-shell .admin-socios-table.responsive-card-table {
        min-width: 0 !important;
        width: 100%;
        border-collapse: separate;
        border-spacing: 0 14px;
    }
    body.role-shell .admin-socios-table.responsive-card-table thead {
        display: none;
    }
    body.role-shell .admin-socios-table.responsive-card-table tbody,
    body.role-shell .admin-socios-table.responsive-card-table tr,
    body.role-shell .admin-socios-table.responsive-card-table td {
        display: block;
        width: 100%;
    }
    body.role-shell .admin-socios-table.responsive-card-table tr {
        background: #fff;
        border: 1px solid #dbeafe;
        border-radius: 22px;
        padding: 14px;
        box-shadow: 0 18px 36px rgba(15, 46, 115, .08);
        margin-bottom: 14px;
    }
    body.role-shell .admin-socios-table.responsive-card-table td {
        border: 0;
        padding: 9px 0;
        display: flex;
        justify-content: space-between;
        gap: 14px;
        align-items: flex-start;
        text-align: right;
        color: #0f172a;
    }
    body.role-shell .admin-socios-table.responsive-card-table td::before {
        content: attr(data-label);
        flex: 0 0 42%;
        text-align: left;
        color: #64748b;
        font-size: .78rem;
        text-transform: uppercase;
        letter-spacing: .05em;
        font-weight: 950;
    }
    body.role-shell .admin-socios-table.responsive-card-table td[data-label="Socio"] {
        display: block;
        text-align: left;
        padding-top: 2px;
    }
    body.role-shell .admin-socios-table.responsive-card-table td[data-label="Socio"]::before {
        display: block;
        margin-bottom: 4px;
    }
    body.role-shell .admin-socios-table .mobile-muted {
        display: block;
        margin-top: 3px;
        color: #64748b;
        font-size: .88rem;
        font-weight: 700;
    }
    body.role-shell .admin-socios-table.responsive-card-table td.table-actions {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        text-align: left;
        border-top: 1px solid #e2e8f0;
        margin-top: 8px;
        padding-top: 14px;
    }
    body.role-shell .admin-socios-table.responsive-card-table td.table-actions::before {
        display: none;
    }
    body.role-shell .admin-socios-table.responsive-card-table td.table-actions .btn,
    body.role-shell .admin-socios-table.responsive-card-table td.table-actions form,
    body.role-shell .admin-socios-table.responsive-card-table td.table-actions form .btn {
        width: 100%;
    }
}

/* v1_7_3 - Administración: autogeneración, filtros, exportación y tablas móviles para catálogos */
body.role-shell .admin-stack {
    display: flex;
    flex-direction: column;
    gap: 22px;
}
body.role-shell .admin-list-card .btn-sc {
    white-space: nowrap;
}
body.role-shell .admin-filter-panel-simple {
    grid-template-columns: minmax(260px, 1fr) auto;
}
body.role-shell .admin-responsive-table .mobile-muted {
    display: none;
}
body.role-shell .admin-responsive-wrapper.table-responsive {
    border-radius: 18px;
}
body.role-shell .admin-responsive-table td strong {
    color: #0f172a;
}
body.role-shell .admin-responsive-table .table-actions {
    min-width: 220px;
}
@media (max-width: 760px) {
    body.role-shell .admin-filter-panel-simple {
        grid-template-columns: 1fr;
    }
    body.role-shell .admin-responsive-wrapper.table-responsive {
        overflow: visible;
    }
    body.role-shell .admin-responsive-table {
        min-width: 0 !important;
        width: 100%;
        border-collapse: separate;
        border-spacing: 0 14px;
    }
    body.role-shell .admin-responsive-table thead {
        display: none;
    }
    body.role-shell .admin-responsive-table tbody,
    body.role-shell .admin-responsive-table tr,
    body.role-shell .admin-responsive-table td {
        display: block;
        width: 100%;
    }
    body.role-shell .admin-responsive-table tr {
        background: #fff;
        border: 1px solid #dbeafe;
        border-radius: 22px;
        padding: 14px;
        box-shadow: 0 18px 36px rgba(15, 46, 115, .08);
        margin-bottom: 14px;
    }
    body.role-shell .admin-responsive-table td {
        border: 0;
        padding: 9px 0;
        display: flex;
        justify-content: space-between;
        gap: 14px;
        align-items: flex-start;
        text-align: right;
        color: #0f172a;
    }
    body.role-shell .admin-responsive-table td::before {
        content: attr(data-label);
        flex: 0 0 42%;
        text-align: left;
        color: #64748b;
        font-size: .78rem;
        text-transform: uppercase;
        letter-spacing: .05em;
        font-weight: 950;
    }
    body.role-shell .admin-responsive-table td[data-label="Sede"],
    body.role-shell .admin-responsive-table td[data-label="Entrenador"],
    body.role-shell .admin-responsive-table td[data-label="Turno"],
    body.role-shell .admin-responsive-table td[data-label="Skill"],
    body.role-shell .admin-responsive-table td[data-label="Plan"] {
        display: block;
        text-align: left;
        padding-top: 2px;
    }
    body.role-shell .admin-responsive-table td[data-label="Sede"]::before,
    body.role-shell .admin-responsive-table td[data-label="Entrenador"]::before,
    body.role-shell .admin-responsive-table td[data-label="Turno"]::before,
    body.role-shell .admin-responsive-table td[data-label="Skill"]::before,
    body.role-shell .admin-responsive-table td[data-label="Plan"]::before {
        display: block;
        margin-bottom: 4px;
    }
    body.role-shell .admin-responsive-table .mobile-muted {
        display: block;
        margin-top: 3px;
        color: #64748b;
        font-size: .88rem;
        font-weight: 700;
    }
    body.role-shell .admin-responsive-table td.table-actions {
        display: flex;
        flex-direction: column;
        align-items: stretch;
        text-align: left;
        border-top: 1px solid #e2e8f0;
        margin-top: 8px;
        padding-top: 14px;
    }
    body.role-shell .admin-responsive-table td.table-actions::before {
        display: none;
    }
    body.role-shell .admin-responsive-table td.table-actions .btn,
    body.role-shell .admin-responsive-table td.table-actions form,
    body.role-shell .admin-responsive-table td.table-actions form .btn {
        width: 100%;
    }
}

/* v1_8_5 - Login personalizado por cuenta SaaS */
.tenant-auth-page {
    --sc-primary: var(--tenant-primary, #0F2E73);
}
.tenant-auth-page .btn-sc {
    background: linear-gradient(135deg, var(--tenant-primary, #0F2E73), var(--tenant-secondary, #14B8A6));
}
.tenant-auth-page .auth-hero-identity-only,
.tenant-auth-hero {
    background-size: cover;
    background-position: center;
}
.tenant-auth-identity-card p {
    color: rgba(255, 255, 255, .84);
    max-width: 520px;
    margin: -10px 0 0;
    font-weight: 650;
}
.tenant-login-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 12px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .14);
    color: #fff;
    font-weight: 850;
    font-size: .86rem;
    border: 1px solid rgba(255, 255, 255, .18);
}
.tenant-login-preview {
    min-height: 440px;
    border-radius: 28px;
    padding: 28px;
    background-size: cover;
    background-position: center;
    display: grid;
    place-items: center;
    overflow: hidden;
    border: 1px solid rgba(15, 23, 42, .08);
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .10);
}
.tenant-login-preview-card {
    width: min(360px, 100%);
    border-radius: 28px;
    background: rgba(255, 255, 255, .92);
    box-shadow: 0 26px 70px rgba(2, 6, 23, .22);
    padding: 28px;
    text-align: center;
    backdrop-filter: blur(12px);
}
.tenant-login-preview-card img,
.tenant-login-preview-logo-text {
    width: 120px;
    height: 120px;
    border-radius: 24px;
    object-fit: contain;
    display: grid;
    place-items: center;
    margin: 0 auto 18px;
    background: #fff;
    box-shadow: 0 12px 28px rgba(2, 6, 23, .14);
    padding: 10px;
}
.tenant-login-preview-logo-text {
    color: var(--tenant-primary, #0F2E73);
    font-weight: 950;
    font-size: 2.1rem;
}
.tenant-login-preview-card h2 {
    color: #0f172a;
    font-weight: 950;
    line-height: 1;
    margin: 0 0 10px;
}
.tenant-login-preview-card p {
    color: #64748b;
    margin-bottom: 18px;
    font-weight: 650;
}
.tenant-login-preview-form {
    display: grid;
    gap: 10px;
}
.tenant-login-preview-form span {
    height: 42px;
    border-radius: 14px;
    background: #eef2f7;
}
.tenant-login-preview-form button {
    height: 42px;
    border: 0;
    border-radius: 14px;
    color: #fff;
    font-weight: 900;
    background: linear-gradient(135deg, var(--tenant-primary, #0F2E73), var(--tenant-secondary, #14B8A6));
}
@media (max-width: 980px) {
    .tenant-login-preview { min-height: 360px; padding: 18px; }
}

/* v1_8_7 - Botones Google para login/registro de socios */
.auth-separator {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 1rem 0;
    color: #64748b;
    font-size: .85rem;
    font-weight: 700;
}
.auth-separator::before,
.auth-separator::after {
    content: "";
    height: 1px;
    flex: 1;
    background: rgba(100,116,139,.25);
}
.auth-separator span {
    background: #fff;
    padding: 0 .25rem;
}
.google-button-wrap {
    width: 100%;
    max-width: 400px;
    min-width: 0;
    min-height: 44px;
    margin: 0 auto .75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    overflow: visible;
}
.google-button-wrap > div {
    flex: 0 1 auto;
    max-width: 100%;
}
.google-button-wrap iframe {
    display: block;
    border: 0;
}
.google-button-wrap[aria-busy="true"]::before {
    content: "Cargando acceso con Google…";
    width: 100%;
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 18px;
    border: 1px solid #c9d2df;
    border-radius: 999px;
    background: #fff;
    color: #5d6471;
    font-size: .9rem;
    font-weight: 600;
    text-align: center;
}
.google-button-wrap[aria-busy="false"]::before {
    display: none;
}
.google-button-wrap.google-button-wrap-unavailable::before {
    content: "No se pudo cargar el acceso con Google";
    display: flex;
}


/* v1_8_20 - Apariencia dinámica de plataforma desde Super Admin */
body {
    font-family: var(--theme-font-family, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
}
.btn-sc {
    background: linear-gradient(135deg, var(--theme-action, var(--sc-primary)), var(--theme-secondary, #14b8a6));
    border-radius: var(--theme-radius-md, .75rem);
}
.btn-ghost,
.form-control,
.form-select {
    border-color: var(--theme-outline, #dbe3ef);
    border-radius: var(--theme-radius-md, .75rem);
}
.form-control:focus,
.form-select:focus {
    border-color: var(--theme-action, #0066ff);
    box-shadow: 0 0 0 .22rem color-mix(in srgb, var(--theme-action, #0066ff) 18%, transparent);
}
.badge-soft {
    background: color-mix(in srgb, var(--theme-success, #10b981) 12%, #ffffff);
    color: color-mix(in srgb, var(--theme-success, #10b981) 72%, #0f172a);
    border-color: color-mix(in srgb, var(--theme-success, #10b981) 28%, #ffffff);
}
.badge-soft.muted {
    background: var(--theme-surface-container-low, #f8fafc);
    color: var(--theme-on-surface-variant, #64748b);
    border-color: var(--theme-outline-variant, #e2e8f0);
}
body.role-shell {
    --role-sidebar-w: var(--theme-sidebar-width, 250px);
    background: var(--theme-background, #f7f9fb) !important;
    color: var(--theme-on-surface, #191c1e) !important;
}
body.role-shell .main.role-main {
    background:
        radial-gradient(circle at 88% 10%, color-mix(in srgb, var(--theme-action, #0066ff) 10%, transparent), transparent 24%),
        linear-gradient(180deg, var(--theme-surface, #f7f9fb) 0%, var(--theme-surface-container-highest, #e0e3e5) 100%) !important;
}
body.role-shell .sidebar.role-sidebar {
    background:
        radial-gradient(circle at 42% 0%, color-mix(in srgb, var(--theme-action, #0066ff) 30%, transparent), transparent 34%),
        linear-gradient(180deg, var(--theme-primary-container, #1a2b4b) 0%, var(--theme-primary, #031635) 100%) !important;
    color: var(--theme-on-primary, #ffffff) !important;
    box-shadow: 24px 0 54px rgba(26, 43, 75, .16);
}
body.role-shell .role-menu a:hover,
body.role-shell .role-menu a.active,
body.role-shell .sidebar a:hover,
body.role-shell .sidebar a.active {
    background: color-mix(in srgb, var(--theme-action, #0066ff) 22%, transparent) !important;
    box-shadow: inset 4px 0 0 var(--theme-action, #0066ff) !important;
}
body.role-shell .role-topbar {
    background: color-mix(in srgb, var(--theme-surface-container-lowest, #fff) 92%, transparent) !important;
    border-bottom-color: var(--theme-outline-variant, #e2e8f0) !important;
}
body.role-shell .role-avatar {
    background: color-mix(in srgb, var(--theme-action, #0066ff) 10%, #ffffff) !important;
    color: var(--theme-primary, #031635) !important;
}
body.role-shell .role-hero {
    background: linear-gradient(90deg, transparent, color-mix(in srgb, var(--theme-action, #0066ff) 8%, transparent)) !important;
}
body.role-shell .role-hero h1,
body.role-shell .cardx-header strong,
body.role-shell .metric-card .label,
body.role-shell .metric-card .value {
    color: var(--theme-on-surface, #191c1e) !important;
}
body.role-shell .role-hero p,
body.role-shell .table td {
    color: var(--theme-on-surface-variant, #44474e) !important;
}
body.role-shell .role-primary-action {
    background: var(--theme-action, #0066ff) !important;
    color: var(--theme-on-secondary, #ffffff) !important;
    border-radius: var(--theme-radius-md, .75rem) !important;
    box-shadow: 0 14px 30px color-mix(in srgb, var(--theme-action, #0066ff) 24%, transparent) !important;
}
body.role-shell .role-secondary-action {
    background: var(--theme-surface-container-lowest, #ffffff) !important;
    color: var(--theme-primary-container, #1a2b4b) !important;
    border-color: var(--theme-outline-variant, #e2e8f0) !important;
    border-radius: var(--theme-radius-md, .75rem) !important;
}
body.role-shell .role-card,
body.role-shell .cardx,
body.role-shell .metric-card {
    background: var(--theme-surface-container-lowest, #ffffff) !important;
    border-color: var(--theme-outline-variant, #e2e8f0) !important;
    border-radius: var(--theme-radius-lg, 1rem) !important;
    box-shadow: var(--theme-card-shadow, 0 12px 30px rgba(16,24,40,.08)) !important;
}
body.role-shell .metric-card .icon,
body.role-shell .metric-card::after {
    background: color-mix(in srgb, var(--theme-action, #0066ff) 10%, #ffffff) !important;
    color: var(--theme-action, #0066ff) !important;
}
body.role-shell .role-table thead th,
body.role-shell .table thead th {
    background: var(--theme-surface-container-low, #f8fafc) !important;
    color: var(--theme-on-surface-variant, #64748b) !important;
    border-bottom-color: var(--theme-outline-variant, #e2e8f0) !important;
}
.appearance-theme-list { display:grid; gap:16px; }
.appearance-theme-card {
    display:grid;
    grid-template-columns: 150px minmax(0,1fr);
    gap:18px;
    padding:16px;
    border:1px solid var(--theme-outline-variant, #e2e8f0);
    border-radius: var(--theme-radius-lg, 1rem);
    background: var(--theme-surface-container-lowest, #fff);
    box-shadow: var(--theme-card-shadow, 0 12px 30px rgba(16,24,40,.08));
}
.appearance-theme-card.selected { border-color: color-mix(in srgb, var(--theme-action, #0066ff) 42%, var(--theme-outline-variant, #e2e8f0)); }
.appearance-theme-copy h3 { margin:0; font-size:1.1rem; font-weight:950; color:var(--theme-on-surface, #191c1e); }
.appearance-theme-copy p { margin:.5rem 0 0; color:var(--theme-on-surface-variant, #64748b); font-size:.92rem; }
.appearance-theme-preview {
    min-height:110px;
    border-radius: var(--theme-radius-lg, 1rem);
    position:relative;
    overflow:hidden;
    background: linear-gradient(135deg, #08375c, #071d38);
}
.appearance-theme-preview.pro { background: linear-gradient(135deg, #031635, #1a2b4b 58%, #0266ff); }
.appearance-theme-preview.classic { background: linear-gradient(135deg, #08375c, #087fc4 58%, #14b8a6); }
.appearance-theme-preview span { position:absolute; display:block; background:#fff; border-radius:999px; opacity:.86; }
.appearance-theme-preview span:nth-child(1) { left:15px; top:18px; width:34px; height:34px; }
.appearance-theme-preview span:nth-child(2) { left:15px; right:18px; bottom:18px; height:14px; opacity:.55; }
.appearance-theme-preview span:nth-child(3) { right:18px; top:22px; width:52px; height:22px; opacity:.72; }
.appearance-preview-shell {
    display:grid;
    grid-template-columns: 86px 1fr;
    overflow:hidden;
    min-height:390px;
    border:1px solid var(--theme-outline-variant, #e2e8f0);
    border-radius: var(--theme-radius-xl, 1.5rem);
    background: var(--theme-background, #f7f9fb);
    box-shadow: var(--theme-card-shadow, 0 12px 30px rgba(16,24,40,.08));
}
.appearance-preview-sidebar { padding:18px 13px; background:linear-gradient(180deg, var(--theme-primary-container, #1a2b4b), var(--theme-primary, #031635)); }
.appearance-preview-logo { width:48px; height:48px; display:grid; place-items:center; border-radius:16px; margin:0 auto 26px; background:rgba(255,255,255,.1); color:#fff; font-weight:950; font-size:.82rem; }
.appearance-preview-menu { height:34px; border-radius:12px; margin-bottom:10px; background:rgba(255,255,255,.1); }
.appearance-preview-menu.active { background:var(--theme-action, #0066ff); }
.appearance-preview-main { padding:18px; }
.appearance-preview-top { height:36px; border-radius:12px; background:var(--theme-surface-container-lowest, #fff); border:1px solid var(--theme-outline-variant, #e2e8f0); margin-bottom:18px; }
.appearance-preview-hero { min-height:96px; border-radius:var(--theme-radius-lg, 1rem); padding:18px; background:linear-gradient(90deg, var(--theme-surface-container-lowest, #fff), color-mix(in srgb, var(--theme-action, #0066ff) 10%, #fff)); border:1px solid var(--theme-outline-variant, #e2e8f0); }
.appearance-preview-hero strong { display:block; color:var(--theme-on-surface, #191c1e); }
.appearance-preview-hero span { display:block; width:70%; height:12px; background:var(--theme-surface-container, #eceef0); border-radius:999px; margin-top:14px; }
.appearance-preview-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:16px 0; }
.appearance-preview-grid div { height:74px; border-radius:var(--theme-radius-lg, 1rem); background:var(--theme-surface-container-lowest, #fff); border:1px solid var(--theme-outline-variant, #e2e8f0); }
.appearance-preview-table { display:grid; gap:8px; padding:14px; border-radius:var(--theme-radius-lg, 1rem); background:var(--theme-surface-container-lowest, #fff); border:1px solid var(--theme-outline-variant, #e2e8f0); }
.appearance-preview-table span { height:12px; border-radius:999px; background:var(--theme-surface-container, #eceef0); }
@media (max-width: 760px) {
    .appearance-theme-card { grid-template-columns:1fr; }
    .appearance-preview-shell { grid-template-columns:62px 1fr; }
    .appearance-preview-grid { grid-template-columns:1fr; }
}

/* v1_8_21 - Impacto integral del sistema de estilos y apariencias */
:root {
    --sc-primary: var(--theme-primary, #0f766e);
    --sc-primary-dark: var(--theme-primary-deep, #134e4a);
    --sc-primary-container: var(--theme-primary-container, #08375c);
    --sc-action: var(--theme-action, #087fc4);
    --sc-accent: var(--theme-secondary, #14b8a6);
    --sc-bg: var(--theme-background, #f4f7fb);
    --sc-surface: var(--theme-surface, #f4f7fb);
    --sc-card: var(--theme-surface-container-lowest, #ffffff);
    --sc-card-soft: var(--theme-surface-container-low, #f8fafc);
    --sc-card-high: var(--theme-surface-container-high, #f8fbff);
    --sc-text: var(--theme-on-surface, #0f172a);
    --sc-muted: var(--theme-on-surface-variant, #64748b);
    --sc-border: var(--theme-outline-variant, #e2e8f0);
    --sc-border-strong: var(--theme-outline, #dbe3ef);
    --sc-success: var(--theme-success, #10b981);
    --sc-warning: var(--theme-warning, #f59e0b);
    --sc-error: var(--theme-error, #ef4444);
    --sc-card-shadow: var(--theme-card-shadow, 0 12px 30px rgba(16,24,40,.08));
    --sc-modal-shadow: var(--theme-modal-shadow, 0 10px 30px rgba(16,24,40,.18));
    --sc-radius-sm: var(--theme-radius-sm, .25rem);
    --sc-radius: var(--theme-radius, .5rem);
    --sc-radius-md: var(--theme-radius-md, .75rem);
    --sc-radius-lg: var(--theme-radius-lg, 1rem);
    --sc-radius-xl: var(--theme-radius-xl, 1.5rem);
    --sc-radius-full: var(--theme-radius-full, 9999px);
    --sc-sidebar-width: var(--theme-sidebar-width, 280px);
    --sc-container-max: var(--theme-container-max, 1440px);
    --sc-margin-desktop: var(--theme-margin-desktop, 32px);
    --sc-margin-mobile: var(--theme-margin-mobile, 16px);
}
html, body { font-family: var(--sc-font-family) !important; color: var(--sc-text); }
body:not(.member-dashboard-page) { background: var(--sc-bg) !important; }
a { color: var(--sc-action); }
a:hover { color: color-mix(in srgb, var(--sc-action) 82%, var(--sc-primary)); }
.app-shell { background: var(--sc-bg); color: var(--sc-text); }
.sidebar, .role-sidebar { width: var(--sc-sidebar-width); background: var(--sc-primary-dark); }
.main, .role-main { margin-left: var(--sc-sidebar-width); }
.topbar, .role-topbar { background: color-mix(in srgb, var(--sc-card) 92%, transparent); border-bottom-color: var(--sc-border); }
.content, .role-content { max-width: var(--sc-container-max); }
.cardx, .role-card, .metric-card, .report-card, .objective-item-card, .trainer-card, .member-card {
    background: var(--sc-card);
    color: var(--sc-text);
    border-color: var(--sc-border);
    border-radius: var(--sc-radius-xl);
    box-shadow: var(--sc-card-shadow);
}
.cardx-header, .role-card-header { border-bottom-color: var(--sc-border); }
.metric-card { background: linear-gradient(135deg, var(--sc-card), var(--sc-card-soft)); }
.metric-card .icon { background: color-mix(in srgb, var(--sc-accent) 13%, var(--sc-card)); color: var(--sc-primary); border-radius: var(--sc-radius-lg); }
.metric-card .value { color: var(--sc-primary); font-size: var(--sc-headline-xl-size); line-height: var(--sc-headline-xl-line); font-weight: var(--sc-headline-xl-weight); }
.metric-card .label, .table thead th, .form-label { color: var(--sc-muted); }
.role-hero, .performance-hero { border-radius: var(--sc-radius-xl); box-shadow: var(--sc-card-shadow); }
.role-hero h1, .page-title h1, .performance-hero h2 { color: var(--sc-primary); }
.role-hero p, .page-title p, .text-muted { color: var(--sc-muted) !important; }
.sidebar a, .role-menu a { border-radius: var(--sc-radius-lg); }
.sidebar a:hover, .sidebar a.active, .role-menu a:hover, .role-menu a.active { background: color-mix(in srgb, var(--sc-accent) 18%, transparent); color: #fff; }
.brand-icon, .role-brand-logo, .admin-brand-logo { border-radius: var(--sc-radius-xl); background: linear-gradient(135deg, var(--sc-accent), var(--sc-action)); }
.btn-sc, .role-primary-action, .btn-primary { background: var(--sc-action) !important; border-color: var(--sc-action) !important; color: var(--theme-on-secondary, #fff) !important; border-radius: var(--sc-radius-lg); }
.btn-ghost, .role-secondary-action, .btn-outline-secondary { border-color: var(--sc-border) !important; background: var(--sc-card) !important; color: var(--sc-text) !important; border-radius: var(--sc-radius-lg); }
.form-control, .form-select, textarea.form-control { border-color: var(--sc-border); border-radius: var(--sc-radius-lg); color: var(--sc-text); background: var(--sc-card); }
.form-control:focus, .form-select:focus { border-color: var(--sc-action); box-shadow: 0 0 0 .2rem color-mix(in srgb, var(--sc-action) 18%, transparent); }
.table { --bs-table-bg: var(--sc-card); --bs-table-color: var(--sc-text); --bs-table-border-color: var(--sc-border); --bs-table-hover-bg: color-mix(in srgb, var(--sc-action) 6%, var(--sc-card)); }
.table thead th { background: var(--sc-card-soft) !important; font-size: var(--sc-label-md-size); line-height: var(--sc-label-md-line); letter-spacing: var(--sc-label-md-letter); }
.badge-soft, .tenant-login-badge { border-radius: var(--sc-radius-full); }
.alert, .modal-content, .dropdown-menu { border-radius: var(--sc-radius-xl); border-color: var(--sc-border); box-shadow: var(--sc-modal-shadow); }
.role-icon-action, .role-avatar { border-radius: var(--sc-radius-full); background: var(--sc-card-soft); color: var(--sc-primary); }
.role-status-card { border-radius: var(--sc-radius-xl); background: color-mix(in srgb, var(--sc-success) 12%, transparent); border-color: color-mix(in srgb, var(--sc-success) 30%, transparent); }
.auth-card, .tenant-auth-card { border-radius: var(--sc-radius-xl); box-shadow: var(--sc-modal-shadow); background: var(--sc-card); color: var(--sc-text); }
.auth-identity-card { border-radius: var(--sc-radius-xl); }
.member-dashboard-page .member-sidebar { background: var(--sc-primary-dark); }
.member-dashboard-page .member-card, .member-dashboard-page .member-panel, .member-dashboard-page .member-stat-card { border-radius: var(--sc-radius-xl); font-family: var(--sc-font-family); }
.checkout-shell, .purchase-shell, .profile-shell { font-family: var(--sc-font-family); }
.appearance-editor-form .admin-section { padding-top: 6px; }
.appearance-option-group-title { font-weight: 900; color: var(--sc-primary); margin: 0 0 14px; }
.appearance-field-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; }
.appearance-field-grid label, .appearance-type-card label { display: grid; gap: 6px; font-size: var(--sc-label-md-size); line-height: var(--sc-label-md-line); color: var(--sc-muted); font-weight: 800; }
.appearance-field-grid input[type="color"] { width: 100%; min-height: 48px; padding: 4px; border: 1px solid var(--sc-border); border-radius: var(--sc-radius-lg); background: var(--sc-card); }
.appearance-field-grid.text-fields input { min-height: 42px; }
.appearance-type-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.appearance-type-card { border: 1px solid var(--sc-border); background: var(--sc-card-soft); border-radius: var(--sc-radius-xl); padding: 16px; }
.appearance-type-card strong { display: block; color: var(--sc-primary); margin-bottom: 12px; }
.appearance-tabs button { cursor: pointer; }
.appearance-theme-list { display: grid; gap: 16px; }
.appearance-theme-card { display: grid; grid-template-columns: 120px 1fr; gap: 16px; padding: 16px; border: 1px solid var(--sc-border); border-radius: var(--sc-radius-xl); background: var(--sc-card); }
.appearance-theme-card.selected { border-color: color-mix(in srgb, var(--sc-action) 48%, var(--sc-border)); box-shadow: 0 0 0 4px color-mix(in srgb, var(--sc-action) 10%, transparent); }
.appearance-theme-preview { border-radius: var(--sc-radius-lg); min-height: 92px; padding: 10px; background: linear-gradient(135deg,#0f172a,#0f766e); display: grid; gap: 8px; }
.appearance-theme-preview.pro { background: linear-gradient(135deg,#031635,#0066ff); }
.appearance-theme-preview span { display:block; border-radius: var(--sc-radius-full); background: rgba(255,255,255,.75); }
.appearance-theme-preview span:nth-child(1) { width: 70%; }
.appearance-theme-preview span:nth-child(2) { width: 90%; }
.appearance-theme-preview span:nth-child(3) { width: 50%; }
.appearance-theme-copy h3 { margin: 0; color: var(--sc-primary); }
.appearance-theme-copy p { margin: 8px 0 0; color: var(--sc-muted); }
.appearance-preview-shell { display: grid; grid-template-columns: 110px 1fr; min-height: 300px; border: 1px solid var(--sc-border); border-radius: var(--sc-radius-xl); overflow: hidden; background: var(--sc-bg); }
.appearance-preview-sidebar { background: var(--sc-primary-dark); padding: 16px; display:grid; align-content:start; gap: 12px; }
.appearance-preview-logo { width: 52px; height: 52px; border-radius: var(--sc-radius-xl); display:grid; place-items:center; background: var(--sc-action); color: #fff; font-weight: 900; }
.appearance-preview-menu { height: 14px; border-radius: var(--sc-radius-full); background: rgba(255,255,255,.22); }
.appearance-preview-menu.active { background: var(--sc-action); }
.appearance-preview-main { padding: 16px; display:grid; gap: 14px; }
.appearance-preview-top { height: 30px; border-radius: var(--sc-radius-full); background: var(--sc-card); border: 1px solid var(--sc-border); }
.appearance-preview-hero { padding: 18px; border-radius: var(--sc-radius-xl); background: var(--sc-card); border: 1px solid var(--sc-border); box-shadow: var(--sc-card-shadow); }
.appearance-preview-hero strong { display:block; color: var(--sc-primary); font-size: var(--sc-headline-md-size); }
.appearance-preview-hero span { display:block; width:70%; height:10px; border-radius: var(--sc-radius-full); background: var(--sc-card-soft); margin-top:10px; }
.appearance-preview-grid { display:grid; grid-template-columns: repeat(3,1fr); gap: 12px; }
.appearance-preview-grid div { height: 56px; border-radius: var(--sc-radius-lg); background: var(--sc-card); border: 1px solid var(--sc-border); box-shadow: var(--sc-card-shadow); }
.appearance-preview-table { display:grid; gap: 8px; }
.appearance-preview-table span { height: 14px; border-radius: var(--sc-radius-full); background: var(--sc-card-soft); }
@media (max-width: 980px) {
    .main, .role-main { margin-left: 0; }
    .sidebar, .role-sidebar { width: min(var(--sc-sidebar-width), 88vw); }
    .content, .role-content { padding: var(--sc-margin-mobile) !important; }
    .appearance-field-grid, .appearance-type-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .appearance-theme-card { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .appearance-field-grid, .appearance-type-grid { grid-template-columns: 1fr; }
    .appearance-preview-shell { grid-template-columns: 1fr; }
    .appearance-preview-sidebar { grid-template-columns: repeat(4,1fr); align-items:center; }
}


/* v1_8_22 - DeporManager Pro Exacto desde referencia HTML
   Mapea el sistema Tailwind de la referencia a las clases reales JSP/Bootstrap de la aplicación. */
:root{
    --dmp-surface: var(--theme-surface, #f7f9fb);
    --dmp-surface-lowest: var(--theme-surface-container-lowest, #ffffff);
    --dmp-surface-low: var(--theme-surface-container-low, #f2f4f6);
    --dmp-surface-container: var(--theme-surface-container, #eceef0);
    --dmp-surface-high: var(--theme-surface-container-high, #e6e8ea);
    --dmp-surface-highest: var(--theme-surface-container-highest, #e0e3e5);
    --dmp-text: var(--theme-on-surface, #191c1e);
    --dmp-muted: var(--theme-on-surface-variant, #44474e);
    --dmp-outline: var(--theme-outline, #75777f);
    --dmp-outline-variant: var(--theme-outline-variant, #c5c6cf);
    --dmp-primary: var(--theme-primary, #031635);
    --dmp-primary-container: var(--theme-primary-container, #1a2b4b);
    --dmp-on-primary: var(--theme-on-primary, #ffffff);
    --dmp-on-primary-muted: var(--theme-on-primary-container, #8293b8);
    --dmp-secondary: var(--theme-secondary, #0050cc);
    --dmp-action: var(--theme-action, #0266ff);
    --dmp-success: var(--theme-success, #10b981);
    --dmp-warning: var(--theme-warning, #f59e0b);
    --dmp-error: var(--theme-error, #ba1a1a);
    --dmp-font: var(--theme-font-family, Inter, system-ui, -apple-system, BlinkMacSystemFont, Segoe UI, sans-serif);
    --dmp-sidebar-width: var(--theme-sidebar-width, 280px);
    --dmp-container-max: var(--theme-container-max, 1440px);
    --dmp-margin-desktop: var(--theme-margin-desktop, 32px);
    --dmp-margin-mobile: var(--theme-margin-mobile, 16px);
    --dmp-radius-sm: var(--theme-radius-sm, .25rem);
    --dmp-radius-md: var(--theme-radius-md, .5rem);
    --dmp-radius-lg: var(--theme-radius-lg, .75rem);
    --dmp-radius-xl: var(--theme-radius-xl, 1rem);
    --dmp-radius-full: var(--theme-radius-full, 9999px);
    --dmp-shadow-soft: var(--theme-card-shadow, 0 4px 12px rgba(26,43,75,.05));
    --dmp-shadow-hover: var(--theme-card-shadow-hover, 0 16px 40px rgba(26,43,75,.12));
    --dmp-shadow-modal: var(--theme-modal-shadow, 0 10px 30px rgba(26,43,75,.12));
}
html, body{
    font-family: var(--dmp-font) !important;
    font-size: var(--theme-body-md-size, 14px) !important;
    line-height: var(--theme-body-md-line, 20px) !important;
    color: var(--dmp-text) !important;
    background: var(--dmp-surface) !important;
    letter-spacing: 0 !important;
}
body:not(.member-dashboard-page), body.role-shell, body.auth-page{background:var(--dmp-surface)!important;color:var(--dmp-text)!important;}
body.auth-page{background:radial-gradient(circle at 82% 8%, rgba(2,102,255,.08), transparent 28%), var(--dmp-surface)!important;}
body.auth-page .auth-hero{background:linear-gradient(180deg,var(--dmp-primary-container),var(--dmp-primary))!important;color:#fff!important;}
body.auth-page .brand-pill{background:rgba(255,255,255,.10)!important;border-radius:var(--dmp-radius-full)!important;color:#fff!important;}
body.auth-page .auth-card,.auth-card,.tenant-auth-card{background:rgba(255,255,255,.96)!important;border:1px solid rgba(197,198,207,.65)!important;border-radius:var(--dmp-radius-xl)!important;box-shadow:var(--dmp-shadow-modal)!important;backdrop-filter:blur(8px)!important;}
.app-shell, body.role-shell .app-shell{background:var(--dmp-surface)!important;color:var(--dmp-text)!important;min-height:100vh!important;}
.sidebar, aside.sidebar, .role-sidebar, body.role-shell .sidebar.role-sidebar{
    width:var(--dmp-sidebar-width)!important;
    min-width:var(--dmp-sidebar-width)!important;
    background:var(--dmp-primary)!important;
    color:var(--dmp-on-primary)!important;
    border-right:1px solid rgba(197,198,207,.22)!important;
    box-shadow:0 4px 12px rgba(26,43,75,.05)!important;
    padding:24px 16px!important;
}
.main, .role-main, body.role-shell .main.role-main{margin-left:var(--dmp-sidebar-width)!important;background:var(--dmp-surface)!important;color:var(--dmp-text)!important;min-height:100vh!important;}
.topbar, .role-topbar, body.role-shell .role-topbar{
    height:64px!important;
    padding:0 var(--dmp-margin-desktop)!important;
    background:rgba(255,255,255,.94)!important;
    border-bottom:1px solid rgba(197,198,207,.55)!important;
    box-shadow:0 1px 2px rgba(26,43,75,.04)!important;
    backdrop-filter:blur(8px)!important;
}
.content, .role-content, body.role-shell .role-content{padding:var(--dmp-margin-desktop)!important;max-width:var(--dmp-container-max)!important;margin:0 auto!important;width:100%!important;}
.brand, .role-brand, body.role-shell .brand.role-brand{gap:12px!important;margin-bottom:40px!important;color:#fff!important;align-items:center!important;}
.brand-icon, .role-brand-logo, .admin-brand-logo, body.role-shell .role-brand-logo{
    width:40px!important;height:40px!important;min-width:40px!important;border-radius:var(--dmp-radius-lg)!important;
    background:var(--theme-secondary-container,#0266ff)!important;color:var(--theme-on-secondary-container,#f9f7ff)!important;
    box-shadow:none!important;transform:none!important;display:grid!important;place-items:center!important;
}
.role-brand-logo img,.admin-brand-logo img{max-width:28px!important;max-height:28px!important;border-radius:var(--dmp-radius-md)!important;object-fit:contain!important;}
.role-brand-copy strong,.sidebar .brand strong{font-size:var(--theme-headline-md-size,18px)!important;line-height:var(--theme-headline-md-line,24px)!important;font-weight:700!important;color:#fff!important;letter-spacing:0!important;}
.role-brand-copy small,.role-brand-copy span,.sidebar-footer,.member-version{font-size:var(--theme-caption-size,12px)!important;line-height:var(--theme-caption-line,16px)!important;font-weight:400!important;color:rgba(130,147,184,.8)!important;}
.sidebar a, .role-menu a, body.role-shell .role-menu a, body.role-shell .sidebar a{
    min-height:44px!important;
    display:flex!important;align-items:center!important;gap:16px!important;
    padding:12px 16px!important;margin-bottom:4px!important;
    border-radius:var(--dmp-radius-md)!important;
    color:rgba(216,226,255,.72)!important;text-decoration:none!important;
    font-size:var(--theme-body-md-size,14px)!important;line-height:var(--theme-body-md-line,20px)!important;font-weight:500!important;
    background:transparent!important;box-shadow:none!important;transform:none!important;transition:background .18s ease,color .18s ease!important;
}
.sidebar a i,.role-menu a i,.sidebar a .bi,.role-menu a .bi{width:22px!important;color:rgba(216,226,255,.68)!important;font-size:18px!important;text-align:center!important;}
.sidebar a:hover,.sidebar a.active,.role-menu a:hover,.role-menu a.active,body.role-shell .role-menu a:hover,body.role-shell .role-menu a.active,body.role-shell .sidebar a:hover,body.role-shell .sidebar a.active{
    color:var(--theme-on-secondary-container,#f9f7ff)!important;background:rgba(224,227,229,.10)!important;box-shadow:inset 4px 0 0 var(--theme-secondary-container,#0266ff)!important;transform:none!important;
}
.sidebar a:hover i,.sidebar a.active i,.role-menu a:hover i,.role-menu a.active i{color:var(--theme-on-secondary-container,#f9f7ff)!important;}
.role-status-card, body.role-shell .role-status-card{background:rgba(224,227,229,.06)!important;border:1px solid rgba(197,198,207,.30)!important;border-radius:var(--dmp-radius-lg)!important;color:#fff!important;box-shadow:none!important;}
.role-status-card strong{color:#fff!important;font-size:var(--theme-label-md-size,13px)!important;line-height:var(--theme-label-md-line,18px)!important;font-weight:600!important;}
.role-status-card span{color:rgba(130,147,184,.72)!important;font-size:var(--theme-caption-size,12px)!important;line-height:var(--theme-caption-line,16px)!important;}
.role-hero, body.role-shell .role-hero, .page-title{
    display:flex!important;align-items:flex-end!important;justify-content:space-between!important;gap:24px!important;
    padding:0 0 32px!important;margin:0!important;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;
}
.role-hero h1,.page-title h1,h1,.auth-hero h1,.auth-identity-card h1{
    font-family:var(--dmp-font)!important;font-size:var(--theme-headline-xl-size,36px)!important;line-height:var(--theme-headline-xl-line,44px)!important;
    font-weight:var(--theme-headline-xl-weight,700)!important;letter-spacing:var(--theme-headline-xl-letter,-.02em)!important;color:var(--dmp-primary)!important;margin:0!important;
}
.auth-hero h1{color:#fff!important;}
h2{font-size:var(--theme-headline-lg-size,24px)!important;line-height:var(--theme-headline-lg-line,32px)!important;font-weight:var(--theme-headline-lg-weight,600)!important;letter-spacing:var(--theme-headline-lg-letter,-.01em)!important;color:var(--dmp-primary)!important;}
h3,h4,h5,.cardx-header,.cardx-header strong,.role-card h3,.role-card h4,.member-section-head h2{font-size:var(--theme-headline-md-size,18px)!important;line-height:var(--theme-headline-md-line,24px)!important;font-weight:var(--theme-headline-md-weight,600)!important;color:var(--dmp-primary)!important;letter-spacing:0!important;}
p,.cardx-body,.table td,.form-control,.form-select,.dropdown-menu,.list-group-item,.role-table td{font-size:var(--theme-body-md-size,14px)!important;line-height:var(--theme-body-md-line,20px)!important;color:var(--dmp-text)!important;}
.role-hero p,.page-title p,.lead,.auth-hero p{font-size:var(--theme-body-lg-size,16px)!important;line-height:var(--theme-body-lg-line,24px)!important;font-weight:var(--theme-body-lg-weight,400)!important;color:var(--dmp-muted)!important;margin:6px 0 0!important;}
.auth-hero p{color:rgba(255,255,255,.82)!important;}
small,.small,.text-muted.small,.caption,.cardx small{font-size:var(--theme-caption-size,12px)!important;line-height:var(--theme-caption-line,16px)!important;font-weight:var(--theme-caption-weight,400)!important;}
.text-muted,.text-secondary,.role-hero p,.page-title p{color:var(--dmp-muted)!important;}
.cardx,.role-card,.metric-card,.report-card,.objective-item-card,.trainer-card,.member-light-card,.member-section-card,.appearance-theme-card,.appearance-preview-shell,.admin-list-card{
    background:var(--dmp-surface-lowest)!important;border:1px solid rgba(197,198,207,.55)!important;border-radius:var(--dmp-radius-xl)!important;color:var(--dmp-text)!important;
    box-shadow:var(--dmp-shadow-soft)!important;overflow:hidden!important;
}
.cardx:hover,.metric-card:hover,.role-card:hover,.member-light-card:hover{box-shadow:var(--dmp-shadow-hover)!important;transform:translateY(-1px);transition:box-shadow .22s ease, transform .22s ease!important;}
.cardx-header,.role-card-header{padding:24px!important;border-bottom:1px solid rgba(197,198,207,.35)!important;background:var(--dmp-surface-lowest)!important;display:flex!important;align-items:center!important;justify-content:space-between!important;gap:16px!important;}
.cardx-body{padding:24px!important;background:var(--dmp-surface-lowest)!important;}
.metric-grid,.role-metric-grid{gap:24px!important;}
.metric-card{padding:24px!important;display:flex!important;flex-direction:column!important;}
.metric-card .icon,.kpi-icon{width:48px!important;height:48px!important;border-radius:var(--dmp-radius-lg)!important;background:var(--dmp-primary-container)!important;color:var(--theme-primary-fixed-dim,#b6c6ef)!important;display:grid!important;place-items:center!important;margin-bottom:16px!important;}
.metric-card .label,.kpi-label{font-size:var(--theme-label-md-size,13px)!important;line-height:var(--theme-label-md-line,18px)!important;font-weight:var(--theme-label-md-weight,500)!important;letter-spacing:var(--theme-label-md-letter,.05em)!important;color:var(--dmp-muted)!important;text-transform:uppercase!important;}
.metric-card .value,.kpi-value{font-size:var(--theme-headline-xl-size,36px)!important;line-height:var(--theme-headline-xl-line,44px)!important;font-weight:var(--theme-headline-xl-weight,700)!important;color:var(--dmp-primary)!important;letter-spacing:var(--theme-headline-xl-letter,-.02em)!important;margin-top:4px!important;}
.btn,.btn-sc,.role-primary-action,.member-primary-action,.member-blue-btn,.btn-primary{
    font-size:var(--theme-label-md-size,13px)!important;line-height:var(--theme-label-md-line,18px)!important;font-weight:var(--theme-label-md-weight,500)!important;letter-spacing:var(--theme-label-md-letter,.05em)!important;
    border-radius:var(--dmp-radius-lg)!important;padding:10px 16px!important;min-height:40px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:8px!important;
}
.btn-sc,.role-primary-action,.member-primary-action,.member-blue-btn,.btn-primary{background:var(--dmp-secondary)!important;border-color:var(--dmp-secondary)!important;color:#fff!important;box-shadow:0 10px 24px rgba(0,80,204,.18)!important;}
.btn-sc:hover,.role-primary-action:hover,.member-primary-action:hover,.member-blue-btn:hover,.btn-primary:hover{background:var(--dmp-action)!important;border-color:var(--dmp-action)!important;color:#fff!important;filter:none!important;transform:translateY(-1px)!important;}
.btn-ghost,.role-secondary-action,.member-outline-btn,.btn-outline-secondary,.btn-light,.btn-secondary{background:var(--dmp-surface-lowest)!important;border:1px solid rgba(197,198,207,.75)!important;color:var(--dmp-text)!important;box-shadow:none!important;}
.btn-ghost:hover,.role-secondary-action:hover,.member-outline-btn:hover,.btn-outline-secondary:hover{background:var(--dmp-surface-high)!important;color:var(--dmp-primary)!important;border-color:var(--dmp-outline-variant)!important;}
.role-icon-action,.member-icon-action,.role-avatar{width:40px!important;height:40px!important;border-radius:var(--dmp-radius-full)!important;background:transparent!important;color:var(--dmp-muted)!important;display:grid!important;place-items:center!important;text-decoration:none!important;}
.role-icon-action:hover,.member-icon-action:hover,.role-avatar:hover{background:var(--dmp-surface-high)!important;color:var(--dmp-secondary)!important;}
.form-label,.table thead th,.role-table thead th{font-size:var(--theme-label-md-size,13px)!important;line-height:var(--theme-label-md-line,18px)!important;font-weight:var(--theme-label-md-weight,500)!important;letter-spacing:var(--theme-label-md-letter,.05em)!important;color:var(--dmp-muted)!important;text-transform:uppercase!important;}
.form-control,.form-select,textarea.form-control,.input-group-text{background:var(--dmp-surface-lowest)!important;border:1px solid rgba(197,198,207,.85)!important;border-radius:var(--dmp-radius-md)!important;color:var(--dmp-text)!important;padding:10px 14px!important;min-height:42px!important;box-shadow:none!important;}
.input-group-text{background:var(--dmp-surface-low)!important;color:var(--dmp-muted)!important;}
.form-control:focus,.form-select:focus,textarea.form-control:focus{border-color:var(--dmp-action)!important;box-shadow:0 0 0 .2rem rgba(2,102,255,.18)!important;}
.table-responsive{border-radius:var(--dmp-radius-xl)!important;}
.table{--bs-table-bg:var(--dmp-surface-lowest)!important;--bs-table-color:var(--dmp-text)!important;--bs-table-border-color:rgba(197,198,207,.35)!important;--bs-table-hover-bg:rgba(2,102,255,.05)!important;margin-bottom:0!important;border-collapse:collapse!important;vertical-align:middle!important;}
.table thead th,.role-table thead th{background:var(--dmp-surface-low)!important;padding:16px 24px!important;border-bottom:1px solid rgba(197,198,207,.35)!important;}
.table td,.table th,.role-table td,.role-table th{padding:16px 24px!important;border-color:rgba(197,198,207,.25)!important;vertical-align:middle!important;}
.table tbody tr:hover{background:rgba(2,102,255,.05)!important;}
.badge-soft,.badge,.member-soft-badge,.tenant-login-badge{display:inline-flex!important;align-items:center!important;gap:6px!important;border-radius:var(--dmp-radius-full)!important;padding:4px 10px!important;font-size:12px!important;line-height:16px!important;font-weight:500!important;background:rgba(16,185,129,.10)!important;color:#005236!important;border:1px solid rgba(16,185,129,.24)!important;}
.badge-soft.muted,.badge.bg-secondary{background:var(--dmp-surface-low)!important;color:var(--dmp-muted)!important;border:1px solid rgba(197,198,207,.50)!important;}
.alert{border-radius:var(--dmp-radius-xl)!important;border:1px solid rgba(197,198,207,.55)!important;box-shadow:var(--dmp-shadow-soft)!important;font-size:var(--theme-body-md-size,14px)!important;line-height:var(--theme-body-md-line,20px)!important;}
.alert-success{background:rgba(16,185,129,.10)!important;color:#005236!important;border-color:rgba(16,185,129,.28)!important;}
.alert-warning{background:rgba(245,158,11,.12)!important;color:#8a4b00!important;border-color:rgba(245,158,11,.30)!important;}
.alert-danger{background:rgba(186,26,26,.10)!important;color:#93000a!important;border-color:rgba(186,26,26,.28)!important;}
.modal-content,.dropdown-menu{background:var(--dmp-surface-lowest)!important;border:1px solid rgba(197,198,207,.70)!important;border-radius:var(--dmp-radius-xl)!important;box-shadow:var(--dmp-shadow-modal)!important;color:var(--dmp-text)!important;}
.section-tabs button,.role-section-nav a{font-size:var(--theme-label-md-size,13px)!important;line-height:var(--theme-label-md-line,18px)!important;font-weight:500!important;letter-spacing:.03em!important;border-radius:var(--dmp-radius-full)!important;border:1px solid rgba(197,198,207,.70)!important;background:var(--dmp-surface-lowest)!important;color:var(--dmp-muted)!important;}
.section-tabs button.active,.role-section-nav a.active{background:var(--dmp-primary)!important;color:#fff!important;border-color:var(--dmp-primary)!important;}
.performance-hero{background:var(--dmp-surface-lowest)!important;border:1px solid rgba(197,198,207,.55)!important;color:var(--dmp-text)!important;border-radius:var(--dmp-radius-xl)!important;box-shadow:var(--dmp-shadow-soft)!important;}
.performance-hero h2{color:var(--dmp-primary)!important;}
.performance-hero p{color:var(--dmp-muted)!important;}
.report-content{background:var(--dmp-primary)!important;color:#eff1f3!important;border-radius:var(--dmp-radius-xl)!important;font-family:var(--dmp-font)!important;}
.appearance-theme-preview.pro,.appearance-theme-preview.exact{background:linear-gradient(135deg,#031635,#1a2b4b 58%,#0266ff)!important;}
.appearance-theme-card.selected{border-color:rgba(2,102,255,.55)!important;box-shadow:0 0 0 4px rgba(2,102,255,.10), var(--dmp-shadow-soft)!important;}
.appearance-preview-sidebar{background:var(--dmp-primary)!important;}
.appearance-preview-logo{background:var(--theme-secondary-container,#0266ff)!important;border-radius:var(--dmp-radius-lg)!important;}
.appearance-preview-menu.active{background:var(--theme-secondary-container,#0266ff)!important;}
.appearance-preview-hero,.appearance-preview-grid div,.appearance-preview-table,.appearance-preview-top{background:var(--dmp-surface-lowest)!important;border:1px solid rgba(197,198,207,.55)!important;border-radius:var(--dmp-radius-xl)!important;box-shadow:var(--dmp-shadow-soft)!important;}
@media (max-width: 980px){
    .sidebar,.role-sidebar,body.role-shell .sidebar.role-sidebar{transform:translateX(-105%);width:min(var(--dmp-sidebar-width),88vw)!important;min-width:min(var(--dmp-sidebar-width),88vw)!important;}
    .sidebar.open,.role-sidebar.open,body.role-shell .sidebar.role-sidebar.open{transform:translateX(0)!important;}
    .main,.role-main,body.role-shell .main.role-main{margin-left:0!important;}
    .topbar,.role-topbar,body.role-shell .role-topbar{padding:0 var(--dmp-margin-mobile)!important;}
    .content,.role-content,body.role-shell .role-content{padding:var(--dmp-margin-mobile)!important;}
    .role-hero,.page-title{display:block!important;padding-bottom:24px!important;}
    .role-hero h1,.page-title h1,h1{font-size:var(--theme-headline-lg-mobile-size,20px)!important;line-height:var(--theme-headline-lg-mobile-line,28px)!important;}
    .role-hero-actions{justify-content:flex-start!important;margin-top:16px!important;}
}


/* v1_8_23 - Login tenant: logo de identidad más grande
   Asegura que el logo del bloque principal de login no quede reducido por reglas heredadas
   del branding/sidebar ni por estilos genéricos de imagen. */
body.auth-page .auth-identity-card .auth-identity-logo,
body.auth-page .tenant-auth-identity-card .auth-identity-logo,
body.auth-page .auth-hero .auth-identity-logo,
body.tenant-auth-page .auth-identity-logo,
body.auth-page .auth-identity-card > img,
body.auth-page .tenant-auth-identity-card > img {
    width: clamp(96px, 13vw, 132px) !important;
    height: clamp(96px, 13vw, 132px) !important;
    min-width: 96px !important;
    min-height: 96px !important;
    max-width: 132px !important;
    max-height: 132px !important;
    object-fit: contain !important;
    padding: 12px !important;
    border-radius: 20px !important;
    background: var(--theme-secondary-container, #0266ff) !important;
    box-shadow: 0 14px 32px rgba(2, 6, 23, .22) !important;
    display: block !important;
}
body.auth-page .auth-identity-logo.auth-identity-logo-fallback,
body.auth-page .auth-identity-logo-fallback {
    display: grid !important;
    place-items: center !important;
    font-size: 3.25rem !important;
    color: var(--theme-on-secondary-container, #f9f7ff) !important;
}
body.auth-page .brand-pill img,
body.auth-page .auth-brand-pill img {
    width: 56px !important;
    height: 56px !important;
    max-width: 56px !important;
    max-height: 56px !important;
    object-fit: contain !important;
}
@media (max-width: 560px) {
    body.auth-page .auth-identity-card .auth-identity-logo,
    body.auth-page .tenant-auth-identity-card .auth-identity-logo,
    body.auth-page .auth-hero .auth-identity-logo,
    body.tenant-auth-page .auth-identity-logo,
    body.auth-page .auth-identity-card > img,
    body.auth-page .tenant-auth-identity-card > img {
        width: 92px !important;
        height: 92px !important;
        min-width: 92px !important;
        min-height: 92px !important;
        max-width: 92px !important;
        max-height: 92px !important;
        padding: 10px !important;
        border-radius: 18px !important;
    }
}

/* v1_8_24 - Layout administrativo full width con márgenes consistentes
   El tema DeporManager Pro Exacto usa todo el canvas disponible después del sidebar.
   Además, los títulos de pantalla recuperan margen horizontal para no quedar pegados al borde. */
body.role-shell .main.role-main,
.main.role-main {
    width: calc(100% - var(--dmp-sidebar-width, 280px)) !important;
    max-width: none !important;
}

body.role-shell .role-hero,
.role-hero,
.page-title {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 24px var(--dmp-margin-desktop, 32px) 22px var(--dmp-margin-desktop, 32px) !important;
}

body.role-shell .role-content,
body.role-shell .content.role-content,
.content.role-content,
.role-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 var(--dmp-margin-desktop, 32px) var(--dmp-margin-desktop, 32px) var(--dmp-margin-desktop, 32px) !important;
}

body.role-shell .admin-section,
body.role-shell .admin-section.active,
body.role-shell .admin-stack,
body.role-shell .admin-form-card,
body.role-shell .admin-list-card,
body.role-shell .cardx,
body.role-shell .role-card,
body.role-shell .table-responsive,
body.role-shell .admin-responsive-wrapper {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

body.role-shell .admin-stack {
    align-items: stretch !important;
}

body.role-shell .admin-stack > .cardx,
body.role-shell .admin-section > .cardx,
body.role-shell .admin-section > .admin-stack > .cardx,
body.role-shell .admin-section > .grid-2 > .cardx,
body.role-shell .admin-section > .grid-3 > .cardx {
    flex: 1 1 auto !important;
    width: 100% !important;
    max-width: none !important;
}

body.role-shell .admin-crud-table,
body.role-shell .admin-responsive-table,
body.role-shell .table {
    width: 100% !important;
}

body.role-shell .role-hero h1,
body.role-shell .page-title h1,
body.role-shell .role-hero p,
body.role-shell .page-title p {
    max-width: 980px !important;
}

body.sidebar-collapsed.role-shell .main.role-main,
body.sidebar-collapsed .main.role-main {
    width: 100% !important;
}

@media (max-width: 980px) {
    body.role-shell .main.role-main,
    .main.role-main {
        width: 100% !important;
        margin-left: 0 !important;
    }
    body.role-shell .role-hero,
    .role-hero,
    .page-title {
        padding: 20px var(--dmp-margin-mobile, 16px) 18px var(--dmp-margin-mobile, 16px) !important;
    }
    body.role-shell .role-content,
    body.role-shell .content.role-content,
    .content.role-content,
    .role-content {
        padding: 0 var(--dmp-margin-mobile, 16px) 24px var(--dmp-margin-mobile, 16px) !important;
    }
}

/* v1_8_25 - Aplicación global del estilo DeporManager Pro Exacto
   Este bloque normaliza TODAS las vistas que cargan app.css: superadmin, admin,
   entrenador, deportista, auth, checkout, reportes y pantallas de error. */
:root {
    --dmp-exact-background: var(--theme-background, #f7f9fb);
    --dmp-exact-surface: var(--theme-surface, #f7f9fb);
    --dmp-exact-surface-lowest: var(--theme-surface-container-lowest, #ffffff);
    --dmp-exact-surface-low: var(--theme-surface-container-low, #f2f4f6);
    --dmp-exact-surface-container: var(--theme-surface-container, #eceef0);
    --dmp-exact-surface-high: var(--theme-surface-container-high, #e6e8ea);
    --dmp-exact-surface-highest: var(--theme-surface-container-highest, #e0e3e5);
    --dmp-exact-text: var(--theme-on-surface, #191c1e);
    --dmp-exact-muted: var(--theme-on-surface-variant, #44474e);
    --dmp-exact-primary: var(--theme-primary, #031635);
    --dmp-exact-primary-container: var(--theme-primary-container, #1a2b4b);
    --dmp-exact-primary-muted: var(--theme-on-primary-container, #8293b8);
    --dmp-exact-secondary: var(--theme-secondary, #0050cc);
    --dmp-exact-action: var(--theme-secondary-container, #0266ff);
    --dmp-exact-border: var(--theme-outline-variant, #c5c6cf);
    --dmp-exact-outline: var(--theme-outline, #75777f);
    --dmp-exact-success: var(--theme-success, #10b981);
    --dmp-exact-warning: var(--theme-warning, #f59e0b);
    --dmp-exact-error: var(--theme-error, #ba1a1a);
    --dmp-exact-font: var(--theme-font-family, Inter, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif);
    --dmp-exact-sidebar-width: var(--theme-sidebar-width, 280px);
    --dmp-exact-container-max: var(--theme-container-max, 1440px);
    --dmp-exact-margin-desktop: var(--theme-margin-desktop, 32px);
    --dmp-exact-margin-mobile: var(--theme-margin-mobile, 16px);
    --dmp-exact-gutter: var(--theme-gutter, 24px);
    --dmp-exact-radius-sm: var(--theme-radius-sm, .25rem);
    --dmp-exact-radius-md: var(--theme-radius-md, .5rem);
    --dmp-exact-radius-lg: var(--theme-radius-lg, .75rem);
    --dmp-exact-radius-xl: var(--theme-radius-xl, 1rem);
    --dmp-exact-radius-full: var(--theme-radius-full, 9999px);
    --dmp-exact-shadow-soft: var(--theme-card-shadow, 0 4px 12px rgba(26, 43, 75, .05));
    --dmp-exact-shadow-hover: var(--theme-card-shadow-hover, 0 16px 40px rgba(26, 43, 75, .12));
    --dmp-exact-shadow-modal: var(--theme-modal-shadow, 0 10px 30px rgba(26, 43, 75, .12));
}

html, body {
    font-family: var(--dmp-exact-font) !important;
    font-size: var(--theme-body-md-size, 14px) !important;
    line-height: var(--theme-body-md-line, 20px) !important;
    background: var(--dmp-exact-background) !important;
    color: var(--dmp-exact-text) !important;
}

body:not(.auth-page),
body.role-shell,
body.member-dashboard-page,
body.checkout-page-v171,
body.trainer-performance-page {
    min-height: 100vh !important;
    background: var(--dmp-exact-background) !important;
    color: var(--dmp-exact-text) !important;
}

.app-shell,
.member-pro-shell,
.member-dashboard-page .app-shell,
.role-shell .app-shell {
    background: var(--dmp-exact-background) !important;
    color: var(--dmp-exact-text) !important;
}

/* Shell, sidebar y topbar unificados */
.sidebar,
.role-sidebar,
aside.role-sidebar,
.member-light-sidebar,
aside.member-light-sidebar,
.member-sidebar,
aside.member-sidebar {
    width: var(--dmp-exact-sidebar-width) !important;
    min-width: var(--dmp-exact-sidebar-width) !important;
    max-width: var(--dmp-exact-sidebar-width) !important;
    background: var(--dmp-exact-primary) !important;
    color: var(--theme-on-secondary-container, #f9f7ff) !important;
    border-right: 1px solid rgba(197, 198, 207, .22) !important;
    box-shadow: 12px 0 30px rgba(3, 22, 53, .12) !important;
    padding: var(--dmp-exact-gutter) 16px !important;
}

.main,
.role-main,
.member-light-main,
.member-main,
.member-dashboard-content {
    background: var(--dmp-exact-background) !important;
    color: var(--dmp-exact-text) !important;
}

.role-main,
.main.role-main,
.member-light-main,
.member-main {
    margin-left: var(--dmp-exact-sidebar-width) !important;
    width: calc(100% - var(--dmp-exact-sidebar-width)) !important;
    max-width: none !important;
}

.topbar,
.role-topbar,
.member-topbar,
.member-light-topbar,
header.role-topbar,
header.topbar {
    min-height: 64px !important;
    height: 64px !important;
    background: var(--dmp-exact-surface-lowest) !important;
    border-bottom: 1px solid rgba(197, 198, 207, .45) !important;
    box-shadow: 0 1px 2px rgba(26, 43, 75, .05) !important;
    color: var(--dmp-exact-text) !important;
    padding: 0 var(--dmp-exact-margin-desktop) !important;
}

.content,
.role-content,
.member-light-content,
.member-dashboard-content,
.member-dashboard-page .member-light-content {
    width: 100% !important;
    max-width: var(--dmp-exact-container-max) !important;
    margin: 0 auto !important;
    padding: var(--dmp-exact-margin-desktop) !important;
    background: transparent !important;
    color: var(--dmp-exact-text) !important;
}

body.role-shell .role-content,
body.role-shell .content.role-content {
    max-width: none !important;
    padding: 0 var(--dmp-exact-margin-desktop) var(--dmp-exact-margin-desktop) !important;
}

/* Encabezados y tipografía real sobre etiquetas y clases existentes */
h1,
.h1,
.role-hero h1,
.page-title h1,
.member-page-intro h1,
.member-dashboard-intro h1,
.member-light-content h1,
.auth-card h1,
.auth-identity-card h1,
.tenant-auth-card h1,
.error-page h1 {
    font-family: var(--dmp-exact-font) !important;
    font-size: var(--theme-headline-xl-size, 36px) !important;
    line-height: var(--theme-headline-xl-line, 44px) !important;
    font-weight: var(--theme-headline-xl-weight, 700) !important;
    letter-spacing: var(--theme-headline-xl-letter, -.02em) !important;
    color: var(--dmp-exact-primary) !important;
    margin: 0 !important;
}

h2,
.h2,
.member-section-head h2,
.member-section-card h2,
.cardx h2,
.role-card h2 {
    font-family: var(--dmp-exact-font) !important;
    font-size: var(--theme-headline-lg-size, 24px) !important;
    line-height: var(--theme-headline-lg-line, 32px) !important;
    font-weight: var(--theme-headline-lg-weight, 600) !important;
    letter-spacing: var(--theme-headline-lg-letter, -.01em) !important;
    color: var(--dmp-exact-primary) !important;
}

h3,
h4,
h5,
.h3,
.h4,
.h5,
.cardx-header,
.cardx-header strong,
.role-card h3,
.role-card h4,
.metric-card h3,
.member-light-card h3,
.member-light-card h4,
.member-section-card h3,
.member-section-card h4,
.member-plan-card h3,
.checkout-page-card h3,
.payment-summary-card h3 {
    font-family: var(--dmp-exact-font) !important;
    font-size: var(--theme-headline-md-size, 18px) !important;
    line-height: var(--theme-headline-md-line, 24px) !important;
    font-weight: var(--theme-headline-md-weight, 600) !important;
    color: var(--dmp-exact-primary) !important;
    letter-spacing: 0 !important;
}

p,
li,
span,
label,
.form-control,
.form-select,
.table td,
.role-table td,
.member-responsive-table td,
.member-reservation-table td,
.member-doc-row,
.member-next-data,
.cardx-body,
.role-card,
.member-light-card,
.member-section-card {
    font-family: var(--dmp-exact-font) !important;
    font-size: var(--theme-body-md-size, 14px) !important;
    line-height: var(--theme-body-md-line, 20px) !important;
}

.role-hero p,
.page-title p,
.member-page-intro p,
.member-dashboard-intro p,
.member-light-muted,
.lead,
.auth-card .lead,
.auth-identity-card p,
.tenant-auth-card p {
    font-size: var(--theme-body-lg-size, 16px) !important;
    line-height: var(--theme-body-lg-line, 24px) !important;
    font-weight: var(--theme-body-lg-weight, 400) !important;
    color: var(--dmp-exact-muted) !important;
}

small,
.small,
.caption,
.text-muted.small,
.member-version,
.member-soft-badge,
.badge,
.badge-soft {
    font-size: var(--theme-caption-size, 12px) !important;
    line-height: var(--theme-caption-line, 16px) !important;
}

/* Headers de página con margen consistente */
.role-hero,
.page-title,
.member-page-intro,
.member-dashboard-intro,
.member-section-head {
    background: transparent !important;
    border: 0 !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    padding: 24px var(--dmp-exact-margin-desktop) 22px !important;
    margin: 0 !important;
    color: var(--dmp-exact-text) !important;
}

body.role-shell .role-hero,
body.role-shell .page-title {
    padding: 24px var(--dmp-exact-margin-desktop) 22px !important;
}

/* Marcas del sidebar, logo y menús */
.role-brand,
.sidebar .brand,
.member-light-brand,
.member-brand,
.member-sidebar .member-brand {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    color: var(--theme-on-secondary-container, #f9f7ff) !important;
    margin-bottom: 32px !important;
}

.member-light-brand,
.member-brand {
    flex-direction: row !important;
    text-align: left !important;
    justify-content: flex-start !important;
}

.role-brand-logo,
.sidebar .brand-icon,
.member-brand-mark,
.member-paddle-mark,
.member-brand-logo-frame,
.member-light-brand .member-paddle-mark {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    border-radius: var(--dmp-exact-radius-lg) !important;
    background: var(--dmp-exact-action) !important;
    color: #fff !important;
    box-shadow: none !important;
    transform: none !important;
    display: grid !important;
    place-items: center !important;
    overflow: hidden !important;
}

.member-light-brand .member-paddle-mark::before,
.member-light-brand .member-paddle-mark::after {
    display: none !important;
    content: none !important;
}

.role-brand strong,
.role-brand h1,
.member-light-brand strong,
.member-brand strong,
.sidebar .brand {
    color: var(--theme-on-secondary-container, #f9f7ff) !important;
    font-size: var(--theme-headline-md-size, 18px) !important;
    line-height: var(--theme-headline-md-line, 24px) !important;
    font-weight: 700 !important;
    letter-spacing: 0 !important;
}

.role-brand span,
.role-brand small,
.member-light-brand span,
.member-version,
.sidebar-footer {
    color: rgba(130, 147, 184, .72) !important;
    font-size: var(--theme-caption-size, 12px) !important;
    line-height: var(--theme-caption-line, 16px) !important;
    font-weight: 400 !important;
}

.role-menu,
.member-light-menu,
.member-menu,
.sidebar nav {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}

.sidebar a,
.role-menu a,
.member-light-menu a,
.member-menu a,
.member-logout-link {
    position: relative !important;
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    width: 100% !important;
    padding: 12px 16px !important;
    border-radius: var(--dmp-exact-radius-md) !important;
    color: rgba(216, 226, 255, .72) !important;
    background: transparent !important;
    text-decoration: none !important;
    box-shadow: none !important;
    font-size: var(--theme-body-md-size, 14px) !important;
    line-height: var(--theme-body-md-line, 20px) !important;
    font-weight: 500 !important;
    transition: background .18s ease, color .18s ease !important;
}

.sidebar a i,
.role-menu a i,
.member-light-menu a i,
.member-menu a i,
.sidebar a .bi,
.role-menu a .bi,
.member-light-menu a .bi,
.member-menu a .bi {
    width: 22px !important;
    min-width: 22px !important;
    color: rgba(216, 226, 255, .68) !important;
    font-size: 18px !important;
    text-align: center !important;
}

.sidebar a:hover,
.sidebar a.active,
.role-menu a:hover,
.role-menu a.active,
.member-light-menu a:hover,
.member-light-menu a.active,
.member-menu a:hover,
.member-menu a.active,
.member-logout-link:hover {
    color: var(--theme-on-secondary-container, #f9f7ff) !important;
    background: rgba(224, 227, 229, .10) !important;
    box-shadow: inset 4px 0 0 var(--dmp-exact-action) !important;
    transform: none !important;
}

/* Cards, paneles y módulos */
.cardx,
.card,
.role-card,
.metric-card,
.admin-list-card,
.admin-form-card,
.member-light-card,
.member-section-card,
.member-next-light-card,
.member-mini-agenda-card,
.member-plan-card,
.checkout-page-card,
.checkout-confirm-card,
.payment-summary-card,
.payment-method-card,
.payment-approval-card,
.profile-page-card,
.profile-mini-card,
.performance-chart-card,
.performance-radar-card,
.report-light-card,
.plan-buy-card,
.purchase-free-card,
.member-purchase-quick-action,
.member-reservations-quick-action,
.available-slot-card,
.available-slot-card-suggested,
.attendance-session-card,
.trainer-quick-card,
.trainer-card,
.report-card,
.appearance-theme-card,
.tenant-login-preview-card {
    background: var(--dmp-exact-surface-lowest) !important;
    border: 1px solid rgba(197, 198, 207, .55) !important;
    border-radius: var(--dmp-exact-radius-xl) !important;
    box-shadow: var(--dmp-exact-shadow-soft) !important;
    color: var(--dmp-exact-text) !important;
    overflow: hidden !important;
}

.cardx:hover,
.role-card:hover,
.metric-card:hover,
.member-light-card:hover,
.member-section-card:hover,
.available-slot-card:hover,
.trainer-quick-card:hover {
    box-shadow: var(--dmp-exact-shadow-hover) !important;
    transform: translateY(-1px) !important;
    transition: box-shadow .22s ease, transform .22s ease !important;
}

.cardx-header,
.role-card-header,
.admin-list-header,
.member-section-head,
.member-suggestion-head,
.card-header {
    padding: 24px !important;
    border-bottom: 1px solid rgba(197, 198, 207, .35) !important;
    background: var(--dmp-exact-surface-lowest) !important;
    color: var(--dmp-exact-primary) !important;
}

.cardx-body,
.card-body,
.member-section-card > :not(.member-section-head),
.member-light-card,
.role-card-body {
    background: var(--dmp-exact-surface-lowest) !important;
    color: var(--dmp-exact-text) !important;
}

.cardx-body,
.card-body {
    padding: 24px !important;
}

/* KPI y tarjetas destacadas */
.metric-grid,
.role-metric-grid,
.member-light-kpis,
.member-light-grid-three,
.member-light-grid-two,
.member-dashboard-grid-main {
    gap: 24px !important;
}

.metric-card .icon,
.kpi-icon,
.member-light-kpi .member-kpi-icon,
.purchase-card-icon {
    width: 48px !important;
    height: 48px !important;
    border-radius: var(--dmp-exact-radius-lg) !important;
    background: var(--dmp-exact-primary-container) !important;
    color: var(--theme-primary-fixed-dim, #b6c6ef) !important;
    display: grid !important;
    place-items: center !important;
}

.metric-card .label,
.kpi-label,
.member-light-kpi .member-kpi-label,
.member-suggestion-kicker {
    font-size: var(--theme-label-md-size, 13px) !important;
    line-height: var(--theme-label-md-line, 18px) !important;
    font-weight: var(--theme-label-md-weight, 500) !important;
    letter-spacing: var(--theme-label-md-letter, .05em) !important;
    color: var(--dmp-exact-muted) !important;
    text-transform: uppercase !important;
}

.metric-card .value,
.kpi-value,
.member-light-kpi .member-kpi-value {
    font-size: var(--theme-headline-xl-size, 36px) !important;
    line-height: var(--theme-headline-xl-line, 44px) !important;
    font-weight: var(--theme-headline-xl-weight, 700) !important;
    color: var(--dmp-exact-primary) !important;
    letter-spacing: var(--theme-headline-xl-letter, -.02em) !important;
}

/* Formularios */
.form-label,
label.form-label,
.table thead th,
.role-table thead th,
.member-responsive-table thead th,
.member-reservation-table thead th,
.member-reservations-desktop-table thead th,
.purchase-history-table thead th {
    font-size: var(--theme-label-md-size, 13px) !important;
    line-height: var(--theme-label-md-line, 18px) !important;
    font-weight: var(--theme-label-md-weight, 500) !important;
    letter-spacing: var(--theme-label-md-letter, .05em) !important;
    color: var(--dmp-exact-muted) !important;
    text-transform: uppercase !important;
}

.form-control,
.form-select,
textarea.form-control,
.input-group-text,
.form-check-input {
    background: var(--dmp-exact-surface-lowest) !important;
    border: 1px solid rgba(197, 198, 207, .85) !important;
    border-radius: var(--dmp-exact-radius-md) !important;
    color: var(--dmp-exact-text) !important;
    box-shadow: none !important;
}

.form-control,
.form-select,
textarea.form-control,
.input-group-text {
    min-height: 42px !important;
    padding: 10px 14px !important;
}

.form-control:focus,
.form-select:focus,
textarea.form-control:focus,
.form-check-input:focus {
    border-color: var(--dmp-exact-action) !important;
    box-shadow: 0 0 0 .2rem rgba(2, 102, 255, .18) !important;
}

/* Botones y acciones */
.btn,
.btn-sc,
.role-primary-action,
.member-primary-action,
.member-blue-btn,
.member-gradient-btn,
.btn-primary,
.btn-outline-primary,
.role-secondary-action,
.member-secondary-action,
.member-outline-btn,
.btn-ghost,
.btn-secondary,
.btn-light,
.btn-outline-secondary {
    border-radius: var(--dmp-exact-radius-lg) !important;
    min-height: 40px !important;
    padding: 10px 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    font-size: var(--theme-label-md-size, 13px) !important;
    line-height: var(--theme-label-md-line, 18px) !important;
    font-weight: var(--theme-label-md-weight, 500) !important;
    letter-spacing: var(--theme-label-md-letter, .05em) !important;
    text-decoration: none !important;
}

.btn-sc,
.role-primary-action,
.member-primary-action,
.member-blue-btn,
.member-gradient-btn,
.btn-primary,
.btn-outline-primary:hover {
    background: var(--dmp-exact-action) !important;
    border-color: var(--dmp-exact-action) !important;
    color: #fff !important;
    box-shadow: 0 10px 24px rgba(0, 80, 204, .18) !important;
}

.btn-sc:hover,
.role-primary-action:hover,
.member-primary-action:hover,
.member-blue-btn:hover,
.member-gradient-btn:hover,
.btn-primary:hover {
    background: var(--dmp-exact-secondary) !important;
    border-color: var(--dmp-exact-secondary) !important;
    color: #fff !important;
    transform: translateY(-1px) !important;
}

.btn-ghost,
.role-secondary-action,
.member-secondary-action,
.member-outline-btn,
.btn-secondary,
.btn-light,
.btn-outline-secondary,
.btn-outline-primary {
    background: var(--dmp-exact-surface-lowest) !important;
    border: 1px solid rgba(197, 198, 207, .75) !important;
    color: var(--dmp-exact-text) !important;
    box-shadow: none !important;
}

.btn-ghost:hover,
.role-secondary-action:hover,
.member-secondary-action:hover,
.member-outline-btn:hover,
.btn-secondary:hover,
.btn-light:hover,
.btn-outline-secondary:hover {
    background: var(--dmp-exact-surface-high) !important;
    color: var(--dmp-exact-primary) !important;
}

.role-icon-action,
.member-icon-action,
.btn-icon,
.role-avatar,
.member-avatar {
    width: 40px !important;
    height: 40px !important;
    border-radius: var(--dmp-exact-radius-full) !important;
    background: var(--dmp-exact-surface-low) !important;
    color: var(--dmp-exact-muted) !important;
    display: grid !important;
    place-items: center !important;
}

/* Tablas profesionales */
.table-responsive,
.member-responsive-table,
.member-reservation-table,
.member-reservations-desktop-table,
.purchase-history-table,
.admin-responsive-wrapper {
    border-radius: var(--dmp-exact-radius-xl) !important;
    background: var(--dmp-exact-surface-lowest) !important;
    border: 1px solid rgba(197, 198, 207, .35) !important;
    overflow: auto !important;
}

.table,
.role-table,
.member-responsive-table table,
.member-reservation-table,
.member-reservations-desktop-table,
.purchase-history-table,
.attendance-table,
.trainer-agenda-table,
.admin-crud-table {
    width: 100% !important;
    margin-bottom: 0 !important;
    border-collapse: collapse !important;
    vertical-align: middle !important;
    --bs-table-bg: var(--dmp-exact-surface-lowest) !important;
    --bs-table-color: var(--dmp-exact-text) !important;
    --bs-table-border-color: rgba(197, 198, 207, .25) !important;
    --bs-table-hover-bg: rgba(2, 102, 255, .05) !important;
}

.table thead th,
.role-table thead th,
.member-responsive-table thead th,
.member-reservation-table thead th,
.member-reservations-desktop-table thead th,
.purchase-history-table thead th,
.attendance-table thead th,
.trainer-agenda-table thead th,
.admin-crud-table thead th {
    background: var(--dmp-exact-surface-low) !important;
    padding: 16px 24px !important;
    border-bottom: 1px solid rgba(197, 198, 207, .35) !important;
    color: var(--dmp-exact-muted) !important;
}

.table td,
.table th,
.role-table td,
.role-table th,
.member-responsive-table td,
.member-responsive-table th,
.member-reservation-table td,
.member-reservation-table th,
.member-reservations-desktop-table td,
.member-reservations-desktop-table th,
.purchase-history-table td,
.purchase-history-table th,
.attendance-table td,
.trainer-agenda-table td,
.admin-crud-table td,
.admin-crud-table th {
    padding: 16px 24px !important;
    border-color: rgba(197, 198, 207, .25) !important;
    vertical-align: middle !important;
    color: var(--dmp-exact-text) !important;
}

.table tbody tr:hover,
.role-table tbody tr:hover,
.member-responsive-table tbody tr:hover,
.member-reservation-table tbody tr:hover,
.member-reservations-desktop-table tbody tr:hover,
.purchase-history-table tbody tr:hover,
.admin-crud-table tbody tr:hover {
    background: rgba(2, 102, 255, .05) !important;
}

/* Badges, alertas, estados */
.badge,
.badge-soft,
.member-soft-badge,
.tenant-login-badge,
.member-light-status,
.role-status-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
    border-radius: var(--dmp-exact-radius-full) !important;
    padding: 4px 10px !important;
    font-size: 12px !important;
    line-height: 16px !important;
    font-weight: 500 !important;
    background: rgba(16, 185, 129, .10) !important;
    color: #005236 !important;
    border: 1px solid rgba(16, 185, 129, .24) !important;
}

.badge.bg-warning,
.badge-soft.warning,
.member-soft-badge.warning,
.member-light-status.warning {
    background: rgba(245, 158, 11, .12) !important;
    color: #8a4b00 !important;
    border-color: rgba(245, 158, 11, .30) !important;
}

.badge.bg-danger,
.badge-soft.danger,
.member-soft-badge.danger,
.member-light-status.danger {
    background: rgba(186, 26, 26, .10) !important;
    color: #93000a !important;
    border-color: rgba(186, 26, 26, .28) !important;
}

.badge.bg-secondary,
.badge-soft.muted,
.member-soft-badge.muted {
    background: var(--dmp-exact-surface-low) !important;
    color: var(--dmp-exact-muted) !important;
    border-color: rgba(197, 198, 207, .50) !important;
}

.alert,
.member-alert,
.role-alert {
    border-radius: var(--dmp-exact-radius-xl) !important;
    border: 1px solid rgba(197, 198, 207, .55) !important;
    box-shadow: var(--dmp-exact-shadow-soft) !important;
    font-size: var(--theme-body-md-size, 14px) !important;
    line-height: var(--theme-body-md-line, 20px) !important;
}

.alert-success { background: rgba(16, 185, 129, .10) !important; color: #005236 !important; border-color: rgba(16, 185, 129, .28) !important; }
.alert-warning { background: rgba(245, 158, 11, .12) !important; color: #8a4b00 !important; border-color: rgba(245, 158, 11, .30) !important; }
.alert-danger { background: rgba(186, 26, 26, .10) !important; color: #93000a !important; border-color: rgba(186, 26, 26, .28) !important; }

/* Modales, dropdowns y navegación secundaria */
.modal-content,
.dropdown-menu,
.popover {
    background: var(--dmp-exact-surface-lowest) !important;
    border: 1px solid rgba(197, 198, 207, .70) !important;
    border-radius: var(--dmp-exact-radius-xl) !important;
    box-shadow: var(--dmp-exact-shadow-modal) !important;
    color: var(--dmp-exact-text) !important;
}

.modal-backdrop.show { opacity: .5 !important; background: var(--dmp-exact-primary) !important; }

.section-tabs button,
.role-section-nav a,
.member-turn-filter a,
.nav-pills .nav-link,
.nav-tabs .nav-link {
    font-size: var(--theme-label-md-size, 13px) !important;
    line-height: var(--theme-label-md-line, 18px) !important;
    font-weight: 500 !important;
    letter-spacing: .03em !important;
    border-radius: var(--dmp-exact-radius-full) !important;
    border: 1px solid rgba(197, 198, 207, .70) !important;
    background: var(--dmp-exact-surface-lowest) !important;
    color: var(--dmp-exact-muted) !important;
}

.section-tabs button.active,
.role-section-nav a.active,
.member-turn-filter a.active,
.nav-pills .nav-link.active,
.nav-tabs .nav-link.active {
    background: var(--dmp-exact-primary) !important;
    color: #fff !important;
    border-color: var(--dmp-exact-primary) !important;
}

/* Auth/login/register: conserva identidad tenant, pero aplica el sistema visual */
.auth-page {
    background: var(--dmp-exact-background) !important;
    color: var(--dmp-exact-text) !important;
}
.auth-page:not(.auth-page-identity-only) {
    background: radial-gradient(circle at 0% 0%, rgba(2, 102, 255, .12), transparent 30%), var(--dmp-exact-background) !important;
}
.auth-hero,
.tenant-auth-hero {
    background: var(--dmp-exact-primary) !important;
    color: #fff !important;
}
.auth-hero h1,
.tenant-auth-hero h1 { color: #fff !important; }
.auth-hero p,
.tenant-auth-hero p { color: rgba(239, 241, 243, .82) !important; }
.auth-card,
.tenant-auth-card,
.auth-identity-card,
.tenant-auth-identity-card {
    background: var(--dmp-exact-surface-lowest) !important;
    border: 1px solid rgba(197, 198, 207, .55) !important;
    border-radius: var(--dmp-exact-radius-xl) !important;
    box-shadow: var(--dmp-exact-shadow-modal) !important;
    color: var(--dmp-exact-text) !important;
}
.auth-brand-pill,
.brand-pill {
    background: rgba(2, 102, 255, .12) !important;
    color: var(--dmp-exact-primary) !important;
    border: 1px solid rgba(2, 102, 255, .18) !important;
    border-radius: var(--dmp-exact-radius-full) !important;
}
body.auth-page .auth-identity-card .auth-identity-logo,
body.auth-page .tenant-auth-identity-card .auth-identity-logo,
body.auth-page .auth-hero .auth-identity-logo,
body.tenant-auth-page .auth-identity-logo,
body.auth-page .auth-identity-card > img,
body.auth-page .tenant-auth-identity-card > img {
    width: clamp(96px, 13vw, 132px) !important;
    height: clamp(96px, 13vw, 132px) !important;
    object-fit: contain !important;
    border-radius: 20px !important;
    background: var(--dmp-exact-action) !important;
}

/* Gráficos, reportes y bloques especiales */
.performance-hero,
.member-dashboard-intro,
.member-suggestion-panel,
.member-dark-chart-card,
.member-pro-chart-card,
.member-chart-light-wrap,
.member-light-quote,
.report-content {
    background: var(--dmp-exact-surface-lowest) !important;
    border: 1px solid rgba(197, 198, 207, .55) !important;
    border-radius: var(--dmp-exact-radius-xl) !important;
    box-shadow: var(--dmp-exact-shadow-soft) !important;
    color: var(--dmp-exact-text) !important;
}
.performance-hero h2,
.member-dashboard-intro h1,
.member-suggestion-panel h2,
.member-dark-chart-card h3 { color: var(--dmp-exact-primary) !important; }
.performance-hero p,
.member-dashboard-intro p,
.member-suggestion-panel p { color: var(--dmp-exact-muted) !important; }
.report-content { font-family: var(--dmp-exact-font) !important; white-space: pre-wrap !important; }

/* Elimina rastros visuales anteriores que no pertenecen al nuevo estilo */
.member-gradient-btn,
.member-dashboard-page .member-gradient-btn,
.performance-hero,
.auth-page:not(.auth-page-identity-only),
.member-dashboard-page.member-shell-v2,
body.member-dashboard-page.member-shell-v2 {
    background-image: none !important;
}
.member-dashboard-page.member-shell-v2 {
    background: var(--dmp-exact-background) !important;
}

@media (max-width: 980px) {
    .sidebar,
    .role-sidebar,
    aside.role-sidebar,
    .member-light-sidebar,
    aside.member-light-sidebar,
    .member-sidebar,
    aside.member-sidebar {
        transform: translateX(-105%) !important;
        width: min(var(--dmp-exact-sidebar-width), 88vw) !important;
        min-width: min(var(--dmp-exact-sidebar-width), 88vw) !important;
        max-width: min(var(--dmp-exact-sidebar-width), 88vw) !important;
        z-index: 50 !important;
    }
    .sidebar.open,
    .role-sidebar.open,
    .member-light-sidebar.open,
    .member-sidebar.open {
        transform: translateX(0) !important;
    }
    .main,
    .role-main,
    .main.role-main,
    .member-light-main,
    .member-main {
        margin-left: 0 !important;
        width: 100% !important;
    }
    .topbar,
    .role-topbar,
    .member-topbar,
    .member-light-topbar {
        padding: 0 var(--dmp-exact-margin-mobile) !important;
    }
    .content,
    .role-content,
    .member-light-content,
    .member-dashboard-content {
        padding: var(--dmp-exact-margin-mobile) !important;
        max-width: none !important;
    }
    .role-hero,
    .page-title,
    .member-page-intro,
    .member-dashboard-intro,
    .member-section-head {
        padding: 20px var(--dmp-exact-margin-mobile) 18px !important;
    }
    h1,
    .h1,
    .role-hero h1,
    .page-title h1,
    .member-page-intro h1,
    .member-dashboard-intro h1,
    .auth-card h1,
    .auth-identity-card h1 {
        font-size: var(--theme-headline-lg-mobile-size, 20px) !important;
        line-height: var(--theme-headline-lg-mobile-line, 28px) !important;
        font-weight: var(--theme-headline-lg-mobile-weight, 600) !important;
    }
}

/* v1_8_26 · Menús consistentes por rol
   Todas las vistas consumen el mismo set de navegación por interfaz desde includes JSP,
   y estas reglas aseguran que el comportamiento visual del menú se mantenga estable. */
.role-menu-consistent,
.member-menu-consistent {
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
}
.role-menu-consistent a,
.member-menu-consistent a {
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    white-space: normal !important;
    line-height: var(--theme-body-md-line, 20px) !important;
}
.role-menu-consistent a i,
.member-menu-consistent a i {
    width: 20px !important;
    min-width: 20px !important;
    text-align: center !important;
    font-size: 16px !important;
}
.role-menu-consistent a.active,
.member-menu-consistent a.active {
    font-weight: 700 !important;
}
.role-menu-consistent .role-menu-logout,
.member-menu-consistent .member-logout-link {
    margin-top: 8px !important;
    border-top: 1px solid rgba(197, 198, 207, .22) !important;
    padding-top: 14px !important;
}
@media (max-width: 980px) {
    .role-menu-consistent a,
    .member-menu-consistent a {
        min-height: 46px !important;
    }
}

/* v1_8_31 - Logo estable en menús laterales
   Evita que las reglas del logo grande de login afecten el branding del sidebar.
   Aplica a Super Admin, Administrador y Entrenador. */
body:not(.auth-page):not(.tenant-auth-page) .sidebar .brand.role-brand,
body.role-shell .sidebar .brand.role-brand {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    min-width: 0 !important;
}
body:not(.auth-page):not(.tenant-auth-page) .sidebar .brand-icon,
body:not(.auth-page):not(.tenant-auth-page) .sidebar .role-brand-logo,
body.role-shell .sidebar .brand-icon.admin-brand-logo,
body.role-shell .sidebar .role-brand-logo,
body.role-shell .admin-brand-logo {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    max-width: 48px !important;
    min-height: 48px !important;
    max-height: 48px !important;
    flex: 0 0 48px !important;
    display: grid !important;
    place-items: center !important;
    padding: 7px !important;
    overflow: hidden !important;
    border-radius: 14px !important;
    background: var(--theme-secondary-container, #0266ff) !important;
    box-shadow: none !important;
    transform: none !important;
}
body:not(.auth-page):not(.tenant-auth-page) .sidebar .brand-icon img,
body:not(.auth-page):not(.tenant-auth-page) .sidebar .role-brand-logo img,
body.role-shell .sidebar .brand-icon.admin-brand-logo img,
body.role-shell .sidebar .role-brand-logo img,
body.role-shell .admin-brand-logo img {
    display: block !important;
    width: 34px !important;
    height: 34px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 34px !important;
    max-height: 34px !important;
    object-fit: contain !important;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 8px !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}
body.role-shell .role-brand-copy,
body.role-shell .sidebar .brand .role-brand-copy {
    min-width: 0 !important;
    max-width: calc(100% - 60px) !important;
    overflow: hidden !important;
}
body.role-shell .role-brand-copy strong,
body.role-shell .role-brand-copy small,
body.role-shell .role-brand-copy span {
    overflow-wrap: anywhere !important;
    word-break: normal !important;
}

/* v1_8_32 - Branding vertical y centrado en menús laterales
   El logo queda sobre el nombre del club, ocupa mejor el ancho del sidebar
   y mantiene márgenes laterales simétricos. Aplica a Super Admin, Admin y Entrenador. */
body:not(.auth-page):not(.tenant-auth-page) .sidebar .brand.role-brand,
body.role-shell .sidebar .brand.role-brand {
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 12px !important;
    width: 100% !important;
    min-width: 0 !important;
    margin: 0 auto 32px !important;
    padding: 0 8px !important;
    text-align: center !important;
}
body:not(.auth-page):not(.tenant-auth-page) .sidebar .brand-icon,
body:not(.auth-page):not(.tenant-auth-page) .sidebar .role-brand-logo,
body.role-shell .sidebar .brand-icon.admin-brand-logo,
body.role-shell .sidebar .role-brand-logo,
body.role-shell .admin-brand-logo {
    width: min(168px, calc(100% - 32px)) !important;
    height: auto !important;
    aspect-ratio: 1 / 1 !important;
    min-width: 0 !important;
    max-width: 168px !important;
    min-height: 0 !important;
    max-height: none !important;
    flex: 0 0 auto !important;
    display: grid !important;
    place-items: center !important;
    margin: 0 auto !important;
    padding: 18px !important;
    overflow: hidden !important;
    border-radius: 28px !important;
    background: var(--theme-secondary-container, #0266ff) !important;
    box-shadow: 0 16px 34px rgba(0, 80, 204, .20) !important;
    transform: none !important;
}
body:not(.auth-page):not(.tenant-auth-page) .sidebar .brand-icon img,
body:not(.auth-page):not(.tenant-auth-page) .sidebar .role-brand-logo img,
body.role-shell .sidebar .brand-icon.admin-brand-logo img,
body.role-shell .sidebar .role-brand-logo img,
body.role-shell .admin-brand-logo img {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-width: 100% !important;
    max-height: 100% !important;
    object-fit: contain !important;
    object-position: center !important;
    padding: 0 !important;
    margin: 0 auto !important;
    border-radius: 16px !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
}
body.role-shell .role-brand-copy,
body.role-shell .sidebar .brand .role-brand-copy {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
    text-align: center !important;
}
body.role-shell .role-brand-copy strong,
body.role-shell .role-brand-copy small,
body.role-shell .role-brand-copy span {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: center !important;
    overflow-wrap: normal !important;
    word-break: normal !important;
    hyphens: none !important;
}
body.role-shell .role-brand-copy strong {
    color: #ffffff !important;
    font-size: var(--theme-headline-md-size, 18px) !important;
    line-height: var(--theme-headline-md-line, 24px) !important;
    font-weight: 800 !important;
    letter-spacing: -0.01em !important;
}
body.role-shell .role-brand-copy small,
body.role-shell .role-brand-copy span {
    color: rgba(182, 198, 239, .78) !important;
    font-size: var(--theme-caption-size, 12px) !important;
    line-height: var(--theme-caption-line, 16px) !important;
    font-weight: 500 !important;
    margin-top: 4px !important;
}
@media (max-width: 768px) {
    body:not(.auth-page):not(.tenant-auth-page) .sidebar .brand-icon,
    body:not(.auth-page):not(.tenant-auth-page) .sidebar .role-brand-logo,
    body.role-shell .sidebar .brand-icon.admin-brand-logo,
    body.role-shell .sidebar .role-brand-logo,
    body.role-shell .admin-brand-logo {
        width: min(136px, calc(100% - 40px)) !important;
        max-width: 136px !important;
        padding: 15px !important;
        border-radius: 24px !important;
    }
}


/* v1_8_33 - Optimización de pantallas de login para móviles */
@media (max-width: 768px) {
    body.auth-page {
        display: flex !important;
        flex-direction: column !important;
        min-height: 100svh !important;
        background:
            radial-gradient(circle at 14% 10%, rgba(38, 99, 255, .16), transparent 30%),
            radial-gradient(circle at 88% 0%, rgba(0, 80, 204, .18), transparent 28%),
            linear-gradient(180deg, #061533 0%, #071a42 38%, #f7f9fb 38%, #f7f9fb 100%) !important;
    }
    body.auth-page .auth-hero,
    body.auth-page .auth-hero-identity-only,
    body.auth-page .tenant-auth-hero {
        padding: 22px 16px 10px !important;
        min-height: auto !important;
        display: block !important;
    }
    body.auth-page .auth-identity-card,
    body.auth-page .tenant-auth-identity-card {
        width: 100% !important;
        min-height: 0 !important;
        gap: 14px !important;
        padding: 24px 20px 22px !important;
        border-radius: 28px !important;
        background: linear-gradient(180deg, rgba(255,255,255,.09) 0%, rgba(255,255,255,.06) 100%) !important;
        border: 1px solid rgba(255,255,255,.14) !important;
        box-shadow: 0 20px 44px rgba(2, 6, 23, .22) !important;
        backdrop-filter: blur(10px) !important;
    }
    body.auth-page .auth-identity-card h1,
    body.auth-page .tenant-auth-identity-card h1 {
        margin: 0 !important;
        font-size: clamp(1.9rem, 9vw, 2.75rem) !important;
        line-height: 1.08 !important;
        letter-spacing: -0.03em !important;
        color: #ffffff !important;
        text-align: center !important;
        text-shadow: none !important;
    }
    body.auth-page .auth-identity-card p,
    body.auth-page .tenant-auth-identity-card p {
        margin: 0 !important;
        max-width: 100% !important;
        font-size: 1rem !important;
        line-height: 1.55 !important;
        font-weight: 500 !important;
        color: rgba(239, 241, 243, .78) !important;
        text-align: center !important;
    }
    body.auth-page .tenant-login-badge {
        font-size: .78rem !important;
        padding: 7px 11px !important;
        margin-top: 2px !important;
    }
    body.auth-page .auth-identity-logo,
    body.auth-page .tenant-auth-identity-card .auth-identity-logo,
    body.auth-page .auth-identity-card > img,
    body.auth-page .tenant-auth-identity-card > img {
        width: 96px !important;
        height: 96px !important;
        min-width: 96px !important;
        min-height: 96px !important;
        max-width: 96px !important;
        max-height: 96px !important;
        padding: 10px !important;
        border-radius: 24px !important;
        background: var(--theme-secondary-container, #0266ff) !important;
        box-shadow: 0 16px 30px rgba(0, 80, 204, .18) !important;
    }
    body.auth-page .auth-card-wrap {
        width: 100% !important;
        padding: 0 16px 24px !important;
        margin-top: -6px !important;
        align-items: stretch !important;
    }
    body.auth-page .auth-card,
    body.auth-page .tenant-auth-card {
        width: 100% !important;
        max-width: none !important;
        padding: 26px 22px !important;
        border-radius: 28px !important;
        box-shadow: 0 18px 40px rgba(15, 23, 42, .12) !important;
    }
    body.auth-page .auth-card h2,
    body.auth-page .tenant-auth-card h2 {
        margin-bottom: 8px !important;
        font-size: clamp(1.9rem, 8vw, 2.7rem) !important;
        line-height: 1.08 !important;
        font-weight: 800 !important;
        color: var(--theme-primary, #031635) !important;
    }
    body.auth-page .auth-card .text-muted,
    body.auth-page .tenant-auth-card .text-muted {
        font-size: 1rem !important;
        line-height: 1.55 !important;
        margin-bottom: 22px !important;
        color: var(--theme-on-surface-variant, #44474e) !important;
    }
    body.auth-page .auth-card .form-label,
    body.auth-page .tenant-auth-card .form-label {
        font-size: .95rem !important;
        margin-bottom: 8px !important;
    }
    body.auth-page .auth-card .form-control,
    body.auth-page .tenant-auth-card .form-control,
    body.auth-page .auth-card .form-select,
    body.auth-page .tenant-auth-card .form-select {
        min-height: 58px !important;
        padding: 16px 18px !important;
        border-radius: 18px !important;
        font-size: 1rem !important;
        line-height: 1.4 !important;
    }
    body.auth-page .auth-card .btn,
    body.auth-page .tenant-auth-card .btn,
    body.auth-page .auth-card .btn-sc,
    body.auth-page .tenant-auth-card .btn-sc {
        min-height: 54px !important;
        border-radius: 18px !important;
        font-size: 1rem !important;
        font-weight: 700 !important;
    }
    body.auth-page .auth-card .d-flex.justify-content-between.small,
    body.auth-page .tenant-auth-card .d-flex.justify-content-between.small {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 12px !important;
    }
    body.auth-page .auth-card .small.text-muted,
    body.auth-page .tenant-auth-card .small.text-muted {
        line-height: 1.55 !important;
    }
    body.auth-page .google-button-wrap {
        width: 100% !important;
        max-width: 400px !important;
        min-width: 0 !important;
    }
    body.auth-page .auth-separator {
        margin: 18px 0 !important;
    }
}

@media (max-width: 420px) {
    body.auth-page .auth-hero,
    body.auth-page .auth-hero-identity-only,
    body.auth-page .tenant-auth-hero {
        padding: 18px 12px 8px !important;
    }
    body.auth-page .auth-identity-card,
    body.auth-page .tenant-auth-identity-card {
        padding: 20px 16px 18px !important;
        border-radius: 24px !important;
    }
    body.auth-page .auth-card-wrap {
        padding: 0 12px 20px !important;
    }
    body.auth-page .auth-card,
    body.auth-page .tenant-auth-card {
        padding: 22px 18px !important;
        border-radius: 24px !important;
    }
    body.auth-page .auth-identity-logo,
    body.auth-page .tenant-auth-identity-card .auth-identity-logo,
    body.auth-page .auth-identity-card > img,
    body.auth-page .tenant-auth-identity-card > img {
        width: 88px !important;
        height: 88px !important;
        min-width: 88px !important;
        min-height: 88px !important;
        max-width: 88px !important;
        max-height: 88px !important;
    }
    body.auth-page .auth-card h2,
    body.auth-page .tenant-auth-card h2 {
        font-size: 1.75rem !important;
    }
}


/* v1_8_34 - Selector visual de días de frecuencia para turnos */
.admin-weekday-field {
    min-width: 0;
}
.weekday-check-grid {
    display: grid;
    grid-template-columns: repeat(7, minmax(64px, 1fr));
    gap: 10px;
    width: 100%;
}
.weekday-check {
    position: relative;
    display: block;
    cursor: pointer;
    user-select: none;
    margin: 0;
}
.weekday-check input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.weekday-check span {
    min-height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--theme-outline-variant, #c5c6cf);
    border-radius: var(--theme-radius-md, .75rem);
    background: var(--theme-surface-container-lowest, #ffffff);
    color: var(--theme-on-surface-variant, #44474e);
    font-size: var(--theme-label-md-size, 13px);
    line-height: var(--theme-label-md-line, 18px);
    font-weight: 700;
    letter-spacing: .02em;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.weekday-check:hover span {
    border-color: var(--theme-secondary, #0050cc);
    color: var(--theme-secondary, #0050cc);
    background: color-mix(in srgb, var(--theme-secondary-container, #0266ff) 7%, #ffffff);
}
.weekday-check input:checked + span {
    border-color: var(--theme-secondary-container, #0266ff);
    background: var(--theme-secondary-container, #0266ff);
    color: var(--theme-on-secondary-container, #f9f7ff);
    box-shadow: 0 10px 24px rgba(0, 80, 204, .18);
}
.weekday-check input:focus-visible + span {
    outline: 3px solid rgba(2, 102, 255, .20);
    outline-offset: 2px;
}
.weekday-check input:checked + span::before {
    content: "✓";
    margin-right: 6px;
    font-weight: 900;
}
@media (max-width: 900px) {
    .weekday-check-grid {
        grid-template-columns: repeat(4, minmax(64px, 1fr));
    }
}
@media (max-width: 480px) {
    .weekday-check-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 8px;
    }
    .weekday-check span {
        min-height: 48px;
    }
}


/* v1_8_41 - UX móvil mejorada para tablas administrativas */
@media (max-width: 760px) {
    body.role-shell .admin-responsive-wrapper.table-responsive {
        overflow: visible !important;
        padding: 0 !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
    }
    body.role-shell .admin-responsive-table {
        min-width: 0 !important;
        width: 100% !important;
        border-collapse: separate !important;
        border-spacing: 0 16px !important;
    }
    body.role-shell .admin-responsive-table tr {
        background: #ffffff !important;
        border: 1px solid rgba(197, 198, 207, .75) !important;
        border-radius: 24px !important;
        padding: 16px !important;
        box-shadow: 0 12px 28px rgba(3, 22, 53, .08) !important;
        overflow: hidden !important;
    }
    body.role-shell .admin-responsive-table td {
        display: block !important;
        width: 100% !important;
        border: 0 !important;
        border-bottom: 1px solid #eef2f7 !important;
        padding: 11px 0 !important;
        text-align: left !important;
        color: #191c1e !important;
        word-break: normal !important;
        overflow-wrap: anywhere !important;
    }
    body.role-shell .admin-responsive-table td:last-child {
        border-bottom: 0 !important;
        padding-bottom: 0 !important;
    }
    body.role-shell .admin-responsive-table td::before {
        display: block !important;
        content: attr(data-label) !important;
        margin: 0 0 6px 0 !important;
        color: #667085 !important;
        font-size: .76rem !important;
        line-height: 1.2 !important;
        text-transform: uppercase !important;
        letter-spacing: .06em !important;
        font-weight: 800 !important;
        text-align: left !important;
        width: 100% !important;
    }
    body.role-shell .admin-responsive-table td > strong,
    body.role-shell .admin-responsive-table td .fw-bold,
    body.role-shell .admin-responsive-table td .text-dark,
    body.role-shell .admin-responsive-table td b {
        display: block !important;
        color: #101828 !important;
        font-size: 1.02rem !important;
        line-height: 1.35 !important;
        font-weight: 700 !important;
        overflow-wrap: anywhere !important;
    }
    body.role-shell .admin-responsive-table td[data-label="Código"] {
        padding-top: 2px !important;
    }
    body.role-shell .admin-responsive-table td[data-label="Código"] > strong,
    body.role-shell .admin-responsive-table td[data-label="Código"] .fw-bold {
        font-size: 1.15rem !important;
        line-height: 1.25 !important;
        letter-spacing: -.02em !important;
        word-break: break-word !important;
    }
    body.role-shell .admin-responsive-table td[data-label="Turno"],
    body.role-shell .admin-responsive-table td[data-label="Sede"],
    body.role-shell .admin-responsive-table td[data-label="Entrenador"],
    body.role-shell .admin-responsive-table td[data-label="Skill"],
    body.role-shell .admin-responsive-table td[data-label="Plan"] {
        padding-top: 4px !important;
    }
    body.role-shell .admin-responsive-table td[data-label="Turno"] > strong,
    body.role-shell .admin-responsive-table td[data-label="Sede"] > strong,
    body.role-shell .admin-responsive-table td[data-label="Entrenador"] > strong,
    body.role-shell .admin-responsive-table td[data-label="Skill"] > strong,
    body.role-shell .admin-responsive-table td[data-label="Plan"] > strong {
        font-size: 1.42rem !important;
        line-height: 1.18 !important;
        font-weight: 800 !important;
        letter-spacing: -.02em !important;
        margin-bottom: 4px !important;
    }
    body.role-shell .admin-responsive-table .mobile-muted {
        display: block !important;
        margin-top: 4px !important;
        color: #667085 !important;
        font-size: .93rem !important;
        line-height: 1.45 !important;
        font-weight: 500 !important;
    }
    body.role-shell .admin-responsive-table td.table-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        margin-top: 4px !important;
        padding-top: 14px !important;
        border-top: 1px solid #eef2f7 !important;
        border-bottom: 0 !important;
    }
    body.role-shell .admin-responsive-table td.table-actions::before {
        grid-column: 1 / -1 !important;
        margin-bottom: 2px !important;
    }
    body.role-shell .admin-responsive-table td.table-actions .btn,
    body.role-shell .admin-responsive-table td.table-actions form,
    body.role-shell .admin-responsive-table td.table-actions form .btn {
        width: 100% !important;
        margin: 0 !important;
    }
    body.role-shell .admin-responsive-table td.table-actions form {
        display: block !important;
    }
}

@media (max-width: 420px) {
    body.role-shell .admin-responsive-table tr {
        padding: 14px !important;
        border-radius: 22px !important;
    }
    body.role-shell .admin-responsive-table td[data-label="Turno"] > strong,
    body.role-shell .admin-responsive-table td[data-label="Sede"] > strong,
    body.role-shell .admin-responsive-table td[data-label="Entrenador"] > strong,
    body.role-shell .admin-responsive-table td[data-label="Skill"] > strong,
    body.role-shell .admin-responsive-table td[data-label="Plan"] > strong {
        font-size: 1.3rem !important;
    }
    body.role-shell .admin-responsive-table td.table-actions {
        grid-template-columns: 1fr !important;
    }
}


/* v1_8_44 - Mejora visual del login en versión web */
@media (min-width: 992px) {
    body.auth-page.auth-page-identity-only,
    body.auth-page.tenant-auth-page {
        min-height: 100vh !important;
        display: grid !important;
        grid-template-columns: minmax(560px, 1.08fr) minmax(460px, 0.92fr) !important;
        background: linear-gradient(90deg, #081b3a 0%, #0a2147 56%, #f7f9fb 56%, #f7f9fb 100%) !important;
    }
    body.auth-page .auth-hero,
    body.auth-page .auth-hero-identity-only,
    body.auth-page .tenant-auth-hero {
        min-height: 100vh !important;
        padding: 44px 52px !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        position: relative !important;
        overflow: hidden !important;
        background:
            radial-gradient(circle at 18% 14%, rgba(2, 102, 255, .26), transparent 26%),
            radial-gradient(circle at 78% 0%, rgba(130, 147, 184, .18), transparent 30%),
            linear-gradient(180deg, #081b3a 0%, #0a2147 100%) !important;
    }
    body.auth-page .auth-hero::before,
    body.auth-page .tenant-auth-hero::before {
        content: "";
        position: absolute;
        inset: 30px 34px;
        border-radius: 38px;
        border: 1px solid rgba(255,255,255,.10);
        background: linear-gradient(180deg, rgba(255,255,255,.04), rgba(255,255,255,.01));
        pointer-events: none;
    }
    body.auth-page .auth-identity-card,
    body.auth-page .tenant-auth-identity-card {
        position: relative !important;
        z-index: 1 !important;
        width: min(640px, 100%) !important;
        min-height: 520px !important;
        padding: 56px 52px !important;
        gap: 22px !important;
        text-align: center !important;
        border-radius: 34px !important;
        background: linear-gradient(180deg, rgba(255,255,255,.10) 0%, rgba(255,255,255,.06) 100%) !important;
        border: 1px solid rgba(255,255,255,.15) !important;
        box-shadow: 0 28px 68px rgba(2, 6, 23, .26) !important;
        backdrop-filter: blur(12px) !important;
        color: #ffffff !important;
    }
    body.auth-page .auth-identity-card .auth-identity-logo,
    body.auth-page .tenant-auth-identity-card .auth-identity-logo,
    body.auth-page .auth-identity-card > img,
    body.auth-page .tenant-auth-identity-card > img {
        width: 132px !important;
        height: 132px !important;
        min-width: 132px !important;
        min-height: 132px !important;
        max-width: 132px !important;
        max-height: 132px !important;
        padding: 12px !important;
        border-radius: 30px !important;
        background: linear-gradient(180deg, #1e6cff 0%, #2159dc 100%) !important;
        box-shadow: 0 18px 46px rgba(2, 102, 255, .28), inset 0 1px 0 rgba(255,255,255,.14) !important;
    }
    body.auth-page .auth-identity-card h1,
    body.auth-page .tenant-auth-identity-card h1 {
        color: #ffffff !important;
        font-size: clamp(3rem, 3.7vw, 4.5rem) !important;
        line-height: 1.02 !important;
        letter-spacing: -.035em !important;
        font-weight: 800 !important;
        max-width: 520px !important;
        text-wrap: balance !important;
        margin: 6px auto 0 !important;
        text-shadow: 0 10px 24px rgba(2, 6, 23, .18) !important;
    }
    body.auth-page .auth-identity-card p,
    body.auth-page .tenant-auth-identity-card p {
        max-width: 440px !important;
        margin: 0 auto !important;
        color: rgba(239, 241, 243, .82) !important;
        font-size: 1.12rem !important;
        line-height: 1.62 !important;
        font-weight: 500 !important;
    }
    body.auth-page .tenant-login-badge {
        display: inline-flex !important;
        align-items: center !important;
        gap: 8px !important;
        margin-top: 4px !important;
        padding: 10px 14px !important;
        background: rgba(255,255,255,.10) !important;
        color: #d8e2ff !important;
        border: 1px solid rgba(255,255,255,.18) !important;
        border-radius: 9999px !important;
        font-weight: 700 !important;
        letter-spacing: .01em !important;
    }
    body.auth-page .auth-card-wrap {
        min-height: 100vh !important;
        padding: 44px 48px !important;
        background:
            radial-gradient(circle at 100% 0%, rgba(182, 198, 239, .28), transparent 18%),
            linear-gradient(180deg, #f9fbfd 0%, #f3f6fa 100%) !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
    body.auth-page .auth-card,
    body.auth-page .tenant-auth-card {
        width: min(520px, 100%) !important;
        padding: 42px 38px !important;
        border-radius: 30px !important;
        background: rgba(255,255,255,.96) !important;
        border: 1px solid rgba(197, 198, 207, .7) !important;
        box-shadow: 0 24px 60px rgba(15, 23, 42, .10) !important;
    }
    body.auth-page .auth-card h2,
    body.auth-page .tenant-auth-card h2 {
        color: #031635 !important;
        font-size: 2.35rem !important;
        line-height: 1.08 !important;
        letter-spacing: -.03em !important;
        font-weight: 800 !important;
        margin-bottom: 10px !important;
    }
    body.auth-page .auth-card .text-muted,
    body.auth-page .tenant-auth-card .text-muted {
        color: #5d6471 !important;
        font-size: 1.04rem !important;
        line-height: 1.6 !important;
        margin-bottom: 26px !important;
    }
    body.auth-page .auth-card .form-label,
    body.auth-page .tenant-auth-card .form-label {
        color: #4b5565 !important;
        font-size: .9rem !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        letter-spacing: .06em !important;
        margin-bottom: 8px !important;
    }
    body.auth-page .auth-card .form-control,
    body.auth-page .tenant-auth-card .form-control,
    body.auth-page .auth-card .form-select,
    body.auth-page .tenant-auth-card .form-select {
        min-height: 56px !important;
        padding: 14px 18px !important;
        border-radius: 16px !important;
        border: 1px solid #c9d2df !important;
        background: #f4f7fb !important;
        color: #191c1e !important;
        font-size: 1rem !important;
        box-shadow: inset 0 1px 1px rgba(255,255,255,.65) !important;
    }
    body.auth-page .auth-card .form-control:focus,
    body.auth-page .tenant-auth-card .form-control:focus,
    body.auth-page .auth-card .form-select:focus,
    body.auth-page .tenant-auth-card .form-select:focus {
        border-color: #0266ff !important;
        background: #ffffff !important;
        box-shadow: 0 0 0 4px rgba(2, 102, 255, .14) !important;
    }
    body.auth-page .auth-card .btn,
    body.auth-page .tenant-auth-card .btn,
    body.auth-page .auth-card .btn-sc,
    body.auth-page .tenant-auth-card .btn-sc {
        min-height: 54px !important;
        border-radius: 16px !important;
        font-size: 1rem !important;
        font-weight: 800 !important;
        box-shadow: 0 12px 28px rgba(2, 102, 255, .20) !important;
    }
    body.auth-page .auth-card .btn-sc:hover,
    body.auth-page .tenant-auth-card .btn-sc:hover {
        transform: translateY(-1px) !important;
    }
    body.auth-page .auth-separator {
        margin: 22px 0 18px !important;
    }
    body.auth-page .auth-separator span {
        background: rgba(255,255,255,.96) !important;
        color: #667085 !important;
        font-weight: 700 !important;
    }
    body.auth-page .google-button-wrap {
        width: 100% !important;
        max-width: 400px !important;
        min-width: 0 !important;
        display: flex !important;
        justify-content: center !important;
        margin: 0 auto 12px !important;
    }
    body.auth-page .auth-card .d-flex.justify-content-between.small,
    body.auth-page .tenant-auth-card .d-flex.justify-content-between.small {
        margin-top: 16px !important;
        padding-top: 14px !important;
        border-top: 1px solid #e6e8ea !important;
        align-items: center !important;
        gap: 18px !important;
    }
    body.auth-page .auth-card .d-flex.justify-content-between.small a,
    body.auth-page .tenant-auth-card .d-flex.justify-content-between.small a {
        color: #0266ff !important;
        font-weight: 600 !important;
        text-decoration: none !important;
    }
    body.auth-page .auth-card .d-flex.justify-content-between.small a:hover,
    body.auth-page .tenant-auth-card .d-flex.justify-content-between.small a:hover {
        text-decoration: underline !important;
    }
    body.auth-page .auth-card .alert,
    body.auth-page .tenant-auth-card .alert {
        border-radius: 16px !important;
        padding: 14px 16px !important;
    }
}


/* v1_8_106 · Encabezados responsive globales
   Aplica a Super Admin, Administrador y Entrenador. 
   Evita que el texto del hero quede en media columna y coloca acciones debajo en móvil. */
@media (max-width: 860px) {
    body.role-shell .role-hero,
    body.role-saas .role-hero,
    body.role-admin .role-hero,
    body.role-trainer .role-hero {
        display: grid !important;
        grid-template-columns: 1fr !important;
        align-items: start !important;
        gap: 14px !important;
        width: 100% !important;
        padding: 22px 18px 14px !important;
    }

    body.role-shell .role-hero > div:first-child,
    body.role-saas .role-hero > div:first-child,
    body.role-admin .role-hero > div:first-child,
    body.role-trainer .role-hero > div:first-child {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        grid-column: 1 / -1 !important;
    }

    body.role-shell .role-hero h1,
    body.role-saas .role-hero h1,
    body.role-admin .role-hero h1,
    body.role-trainer .role-hero h1 {
        width: 100% !important;
        max-width: 100% !important;
        font-size: clamp(1.72rem, 8.5vw, 2.45rem) !important;
        line-height: 1.05 !important;
        overflow-wrap: anywhere !important;
    }

    body.role-shell .role-hero p,
    body.role-saas .role-hero p,
    body.role-admin .role-hero p,
    body.role-trainer .role-hero p {
        display: block !important;
        width: 100% !important;
        max-width: 100% !important;
        white-space: normal !important;
        overflow-wrap: anywhere !important;
        line-height: 1.45 !important;
        margin-bottom: 0 !important;
    }

    body.role-shell .role-hero .role-hero-actions,
    body.role-saas .role-hero .role-hero-actions,
    body.role-admin .role-hero .role-hero-actions,
    body.role-trainer .role-hero .role-hero-actions {
        width: 100% !important;
        max-width: 100% !important;
        min-width: 0 !important;
        grid-column: 1 / -1 !important;
        justify-content: stretch !important;
        justify-self: stretch !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
        margin-left: 0 !important;
        text-align: left !important;
    }

    body.role-shell .role-hero .role-primary-action,
    body.role-shell .role-hero .role-secondary-action,
    body.role-shell .role-hero .btn,
    body.role-saas .role-hero .role-primary-action,
    body.role-saas .role-hero .role-secondary-action,
    body.role-saas .role-hero .btn,
    body.role-admin .role-hero .role-primary-action,
    body.role-admin .role-hero .role-secondary-action,
    body.role-admin .role-hero .btn,
    body.role-trainer .role-hero .role-primary-action,
    body.role-trainer .role-hero .role-secondary-action,
    body.role-trainer .role-hero .btn {
        width: 100% !important;
        max-width: 100% !important;
        min-height: 46px !important;
        justify-content: center !important;
        white-space: normal !important;
        text-align: center !important;
    }

    body.role-shell .role-content,
    body.role-saas .role-content,
    body.role-admin .role-content,
    body.role-trainer .role-content {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    body.role-shell .cardx-header,
    body.role-shell .admin-list-header,
    body.role-shell .member-section-head {
        align-items: flex-start !important;
        flex-direction: column !important;
        gap: 10px !important;
    }

    body.role-shell .admin-list-actions,
    body.role-shell .cardx-header .admin-list-actions {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 10px !important;
    }

    body.role-shell .admin-list-actions .btn,
    body.role-shell .admin-list-actions a.btn {
        width: 100% !important;
        justify-content: center !important;
    }
}

/* v1_8_106 · Ajuste adicional para pantallas muy angostas */
@media (max-width: 430px) {
    body.role-shell .role-hero,
    body.role-saas .role-hero,
    body.role-admin .role-hero,
    body.role-trainer .role-hero {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    body.role-shell .role-content,
    body.role-saas .role-content,
    body.role-admin .role-content,
    body.role-trainer .role-content {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
}

/* v1_8_108 - Tablas responsive globales para Super Admin, Administrador, Entrenador y Deportista */
body.role-shell .dmp-responsive-table-wrapper,
body.member-dashboard-page .dmp-responsive-table-wrapper,
body.checkout-page-v171 .dmp-responsive-table-wrapper {
    width: 100%;
    max-width: 100%;
    -webkit-overflow-scrolling: touch;
}

body.role-shell .dmp-global-responsive-table,
body.member-dashboard-page .dmp-global-responsive-table,
body.checkout-page-v171 .dmp-global-responsive-table {
    width: 100%;
    border-collapse: separate !important;
    border-spacing: 0 !important;
}

body.role-shell .dmp-global-responsive-table thead th,
body.member-dashboard-page .dmp-global-responsive-table thead th,
body.checkout-page-v171 .dmp-global-responsive-table thead th {
    white-space: nowrap;
    vertical-align: middle !important;
}

body.role-shell .dmp-global-responsive-table td,
body.member-dashboard-page .dmp-global-responsive-table td,
body.checkout-page-v171 .dmp-global-responsive-table td {
    vertical-align: middle !important;
    overflow-wrap: anywhere;
}

body.role-shell .dmp-global-responsive-table .btn,
body.member-dashboard-page .dmp-global-responsive-table .btn,
body.checkout-page-v171 .dmp-global-responsive-table .btn {
    white-space: nowrap;
}

@media (min-width: 761px) {
    body.role-shell .dmp-responsive-table-wrapper.table-responsive,
    body.member-dashboard-page .dmp-responsive-table-wrapper.table-responsive,
    body.checkout-page-v171 .dmp-responsive-table-wrapper.table-responsive,
    body.role-shell .dmp-responsive-table-wrapper.member-responsive-table,
    body.member-dashboard-page .dmp-responsive-table-wrapper.member-responsive-table,
    body.checkout-page-v171 .dmp-responsive-table-wrapper.member-responsive-table {
        overflow-x: auto;
        border-radius: 20px;
    }

    body.role-shell .dmp-global-responsive-table,
    body.member-dashboard-page .dmp-global-responsive-table,
    body.checkout-page-v171 .dmp-global-responsive-table {
        min-width: 760px;
    }
}

@media (max-width: 760px) {
    body.role-shell .dmp-responsive-table-wrapper,
    body.member-dashboard-page .dmp-responsive-table-wrapper,
    body.checkout-page-v171 .dmp-responsive-table-wrapper,
    body.role-shell .dmp-responsive-table-wrapper.table-responsive,
    body.member-dashboard-page .dmp-responsive-table-wrapper.table-responsive,
    body.checkout-page-v171 .dmp-responsive-table-wrapper.table-responsive,
    body.role-shell .dmp-responsive-table-wrapper.member-responsive-table,
    body.member-dashboard-page .dmp-responsive-table-wrapper.member-responsive-table,
    body.checkout-page-v171 .dmp-responsive-table-wrapper.member-responsive-table {
        overflow: visible !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        background: transparent !important;
        border: 0 !important;
        box-shadow: none !important;
    }

    body.role-shell .dmp-global-responsive-table,
    body.member-dashboard-page .dmp-global-responsive-table,
    body.checkout-page-v171 .dmp-global-responsive-table {
        min-width: 0 !important;
        width: 100% !important;
        border-collapse: separate !important;
        border-spacing: 0 14px !important;
        background: transparent !important;
    }

    body.role-shell .dmp-global-responsive-table thead,
    body.member-dashboard-page .dmp-global-responsive-table thead,
    body.checkout-page-v171 .dmp-global-responsive-table thead {
        display: none !important;
    }

    body.role-shell .dmp-global-responsive-table tbody,
    body.role-shell .dmp-global-responsive-table tr,
    body.role-shell .dmp-global-responsive-table td,
    body.member-dashboard-page .dmp-global-responsive-table tbody,
    body.member-dashboard-page .dmp-global-responsive-table tr,
    body.member-dashboard-page .dmp-global-responsive-table td,
    body.checkout-page-v171 .dmp-global-responsive-table tbody,
    body.checkout-page-v171 .dmp-global-responsive-table tr,
    body.checkout-page-v171 .dmp-global-responsive-table td {
        display: block !important;
        width: 100% !important;
    }

    body.role-shell .dmp-global-responsive-table tr,
    body.member-dashboard-page .dmp-global-responsive-table tr,
    body.checkout-page-v171 .dmp-global-responsive-table tr {
        margin: 0 0 14px !important;
        padding: 15px !important;
        background: #ffffff !important;
        border: 1px solid rgba(197, 198, 207, .72) !important;
        border-radius: 22px !important;
        box-shadow: 0 14px 30px rgba(3, 22, 53, .08) !important;
        overflow: hidden !important;
    }

    body.role-shell .dmp-global-responsive-table td,
    body.member-dashboard-page .dmp-global-responsive-table td,
    body.checkout-page-v171 .dmp-global-responsive-table td {
        position: relative;
        min-height: 34px;
        margin: 0 !important;
        padding: 10px 0 !important;
        border: 0 !important;
        border-bottom: 1px solid #eef2f7 !important;
        background: transparent !important;
        color: #191c1e !important;
        text-align: left !important;
        line-height: 1.4 !important;
        overflow-wrap: anywhere !important;
        word-break: normal !important;
    }

    body.role-shell .dmp-global-responsive-table td:last-child,
    body.member-dashboard-page .dmp-global-responsive-table td:last-child,
    body.checkout-page-v171 .dmp-global-responsive-table td:last-child {
        border-bottom: 0 !important;
    }

    body.role-shell .dmp-global-responsive-table td::before,
    body.member-dashboard-page .dmp-global-responsive-table td::before,
    body.checkout-page-v171 .dmp-global-responsive-table td::before {
        display: block !important;
        content: attr(data-label) !important;
        margin: 0 0 5px !important;
        color: #667085 !important;
        font-size: .74rem !important;
        line-height: 1.2 !important;
        text-transform: uppercase !important;
        letter-spacing: .06em !important;
        font-weight: 850 !important;
        text-align: left !important;
    }

    body.role-shell .dmp-global-responsive-table td.dmp-primary-cell,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-primary-cell,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-primary-cell {
        padding-top: 2px !important;
    }

    body.role-shell .dmp-global-responsive-table td.dmp-primary-cell > strong,
    body.role-shell .dmp-global-responsive-table td.dmp-primary-cell .fw-bold,
    body.role-shell .dmp-global-responsive-table td.dmp-primary-cell b,
    body.role-shell .dmp-global-responsive-table td.dmp-primary-cell .socio-person-name,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-primary-cell > strong,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-primary-cell .fw-bold,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-primary-cell b,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-primary-cell > strong,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-primary-cell .fw-bold,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-primary-cell b {
        display: block !important;
        color: #101828 !important;
        font-size: 1.08rem !important;
        line-height: 1.28 !important;
        font-weight: 850 !important;
        letter-spacing: -.015em !important;
    }

    body.role-shell .dmp-global-responsive-table .mobile-muted,
    body.member-dashboard-page .dmp-global-responsive-table .mobile-muted,
    body.checkout-page-v171 .dmp-global-responsive-table .mobile-muted {
        display: block !important;
        margin-top: 4px !important;
        color: #667085 !important;
        font-size: .92rem !important;
        line-height: 1.42 !important;
        font-weight: 500 !important;
    }

    body.role-shell .dmp-global-responsive-table td.dmp-empty-cell,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-empty-cell,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-empty-cell {
        padding: 16px 8px !important;
        text-align: center !important;
        color: #667085 !important;
    }

    body.role-shell .dmp-global-responsive-table td.dmp-empty-cell::before,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-empty-cell::before,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-empty-cell::before {
        display: none !important;
        content: none !important;
    }

    body.role-shell .dmp-global-responsive-table td.dmp-table-actions-cell,
    body.role-shell .dmp-global-responsive-table td.table-actions,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-table-actions-cell,
    body.member-dashboard-page .dmp-global-responsive-table td.table-actions,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-table-actions-cell,
    body.checkout-page-v171 .dmp-global-responsive-table td.table-actions {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 10px !important;
        align-items: stretch !important;
        margin-top: 5px !important;
        padding-top: 14px !important;
        border-top: 1px solid #eef2f7 !important;
        border-bottom: 0 !important;
    }

    body.role-shell .dmp-global-responsive-table td.dmp-table-actions-cell::before,
    body.role-shell .dmp-global-responsive-table td.table-actions::before,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-table-actions-cell::before,
    body.member-dashboard-page .dmp-global-responsive-table td.table-actions::before,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-table-actions-cell::before,
    body.checkout-page-v171 .dmp-global-responsive-table td.table-actions::before {
        grid-column: 1 / -1 !important;
        margin-bottom: 0 !important;
    }

    body.role-shell .dmp-global-responsive-table td.dmp-table-actions-cell .btn,
    body.role-shell .dmp-global-responsive-table td.table-actions .btn,
    body.role-shell .dmp-global-responsive-table td.dmp-table-actions-cell form,
    body.role-shell .dmp-global-responsive-table td.table-actions form,
    body.role-shell .dmp-global-responsive-table td.dmp-table-actions-cell form .btn,
    body.role-shell .dmp-global-responsive-table td.table-actions form .btn,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-table-actions-cell .btn,
    body.member-dashboard-page .dmp-global-responsive-table td.table-actions .btn,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-table-actions-cell form,
    body.member-dashboard-page .dmp-global-responsive-table td.table-actions form,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-table-actions-cell form .btn,
    body.member-dashboard-page .dmp-global-responsive-table td.table-actions form .btn,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-table-actions-cell .btn,
    body.checkout-page-v171 .dmp-global-responsive-table td.table-actions .btn,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-table-actions-cell form,
    body.checkout-page-v171 .dmp-global-responsive-table td.table-actions form,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-table-actions-cell form .btn,
    body.checkout-page-v171 .dmp-global-responsive-table td.table-actions form .btn {
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        white-space: normal !important;
    }

    body.role-shell .dmp-global-responsive-table td.dmp-table-actions-cell form,
    body.role-shell .dmp-global-responsive-table td.table-actions form,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-table-actions-cell form,
    body.member-dashboard-page .dmp-global-responsive-table td.table-actions form,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-table-actions-cell form,
    body.checkout-page-v171 .dmp-global-responsive-table td.table-actions form {
        display: block !important;
    }
}

@media (max-width: 420px) {
    body.role-shell .dmp-global-responsive-table tr,
    body.member-dashboard-page .dmp-global-responsive-table tr,
    body.checkout-page-v171 .dmp-global-responsive-table tr {
        padding: 13px !important;
        border-radius: 20px !important;
    }

    body.role-shell .dmp-global-responsive-table td.dmp-table-actions-cell,
    body.role-shell .dmp-global-responsive-table td.table-actions,
    body.member-dashboard-page .dmp-global-responsive-table td.dmp-table-actions-cell,
    body.member-dashboard-page .dmp-global-responsive-table td.table-actions,
    body.checkout-page-v171 .dmp-global-responsive-table td.dmp-table-actions-cell,
    body.checkout-page-v171 .dmp-global-responsive-table td.table-actions {
        grid-template-columns: 1fr !important;
    }
}

/* v1_8_109 · Formularios principales plegables con botón superior global */
.dmp-registration-panel {
    margin-bottom: 18px;
    border: 1px solid rgba(2,102,255,.16);
    box-shadow: 0 18px 44px rgba(3,22,53,.07);
}
.dmp-registration-panel.is-hidden {
    display: none !important;
}
.dmp-registration-panel.is-visible {
    display: block !important;
}
.dmp-form-top-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    flex-wrap: wrap;
    gap: 10px;
}
.dmp-auto-form-toggle {
    cursor: pointer;
    border: 1px solid rgba(2,102,255,.28) !important;
    gap: 8px;
}
.dmp-auto-form-toggle i {
    margin-right: 2px;
}
.dmp-auto-form-toggle.is-active {
    background: #ffffff !important;
    color: #0f2e73 !important;
    border-color: rgba(15,46,115,.22) !important;
    box-shadow: 0 10px 26px rgba(15,46,115,.10) !important;
}
.member-dashboard-intro .member-form-top-actions,
.member-page-intro .member-form-top-actions {
    margin-top: 14px;
    width: 100%;
}
.member-dashboard-intro .dmp-auto-form-toggle.member-blue-btn,
.member-page-intro .dmp-auto-form-toggle.member-blue-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 16px;
    border-radius: 999px;
    text-decoration: none;
}
@media (max-width: 760px) {
    body.role-shell .role-hero {
        display: grid !important;
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }
    body.role-shell .role-hero .role-hero-actions,
    body.role-shell .role-hero .dmp-form-top-actions,
    body.member-dashboard-page .member-dashboard-intro .dmp-form-top-actions,
    body.member-dashboard-page .member-page-intro .dmp-form-top-actions {
        width: 100% !important;
        display: grid !important;
        grid-template-columns: 1fr !important;
        justify-content: stretch !important;
    }
    body.role-shell .role-hero .dmp-auto-form-toggle,
    body.member-dashboard-page .dmp-auto-form-toggle.member-blue-btn {
        width: 100% !important;
        min-height: 46px !important;
        justify-content: center !important;
        white-space: normal !important;
        text-align: center !important;
    }
}


/* v1_8_218 · Invitaciones a turnos de Selección */
.selection-invitation-card{max-width:620px}.selection-invitation-icon{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:22px;background:linear-gradient(145deg,var(--tenant-primary,#0F2E73),var(--tenant-secondary,#14B8A6));color:#fff;font-size:1.8rem;box-shadow:0 14px 32px rgba(15,46,115,.18)}.selection-invitation-icon.is-error{background:#fee2e2;color:#b91c1c;box-shadow:none}.selection-invitation-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:20px 0}.selection-invitation-summary>div{display:flex;align-items:center;gap:10px;padding:12px 14px;border:1px solid #e6ebf3;border-radius:14px;background:#f8fafc;min-width:0}.selection-invitation-summary i{color:var(--tenant-primary,#0F2E73);font-size:1.15rem}.selection-invitation-summary span{min-width:0}.selection-invitation-summary small{display:block;color:#64748b;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em}.selection-invitation-summary strong{display:block;color:#172033;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.selection-invitation-email{grid-column:1/-1}@media(max-width:575.98px){.selection-invitation-summary{grid-template-columns:1fr}.selection-invitation-email{grid-column:auto}}

/* v1_8_218 · Gestión de turnos Selección por entrenador */
.trainer-turn-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.trainer-turn-card{border:1px solid #e3e9f2;border-radius:18px;padding:18px;background:#fff;box-shadow:0 8px 24px rgba(15,46,115,.05)}.trainer-turn-card.is-selection{border-color:rgba(20,184,166,.4);background:linear-gradient(180deg,#fff 0%,#f5fffd 100%)}.trainer-turn-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.trainer-turn-card-head h3{font-size:1.05rem;margin:.35rem 0 0;color:#172033}.trainer-turn-code{font-size:.72rem;font-weight:800;letter-spacing:.06em;color:#526076}.trainer-turn-access{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;font-size:.72rem;font-weight:800;white-space:nowrap}.trainer-turn-access.is-selection{background:#ccfbf1;color:#0f766e}.trainer-turn-access.is-open{background:#dbeafe;color:#1d4ed8}.trainer-turn-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 14px;margin:16px 0;color:#526076;font-size:.82rem}.trainer-turn-meta span{display:flex;gap:7px;align-items:center;min-width:0}.trainer-turn-meta i{color:#2563eb}.trainer-turn-capacity{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:12px;background:#f8fafc;border-radius:14px}.trainer-turn-capacity div{min-width:0}.trainer-turn-capacity small{display:block;color:#64748b;font-size:.67rem;text-transform:uppercase;letter-spacing:.04em}.trainer-turn-capacity strong{display:block;color:#172033;font-size:.9rem;overflow:hidden;text-overflow:ellipsis}.trainer-turn-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap;margin-top:16px}.trainer-invitation-status{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:.7rem;font-weight:800}.trainer-invitation-status.is-accepted{background:#dcfce7;color:#166534}.trainer-invitation-status.is-pending{background:#fef3c7;color:#92400e}.trainer-invitation-status.is-closed{background:#f1f5f9;color:#475569}.selection-invite-modal{position:fixed;inset:0;z-index:1100;background:rgba(15,23,42,.55);display:grid;place-items:center;padding:20px}.selection-invite-modal[hidden]{display:none}.selection-invite-dialog{width:min(520px,100%);background:#fff;border-radius:22px;padding:24px;box-shadow:0 30px 80px rgba(15,23,42,.28);position:relative}.selection-invite-close{position:absolute;right:16px;top:14px;border:0;background:#f1f5f9;width:34px;height:34px;border-radius:50%;color:#334155}.selection-invite-heading{display:flex;align-items:center;gap:13px;margin-bottom:18px;padding-right:35px}.selection-invite-heading>span{display:grid;place-items:center;width:48px;height:48px;border-radius:16px;background:#ccfbf1;color:#0f766e;font-size:1.25rem}.selection-invite-heading h2{font-size:1.2rem;margin:0}.selection-invite-heading p{margin:3px 0 0;color:#64748b}.selection-invite-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:22px}@media(max-width:991.98px){.trainer-turn-grid{grid-template-columns:1fr}}@media(max-width:575.98px){.trainer-turn-meta,.trainer-turn-capacity{grid-template-columns:1fr}.trainer-turn-card-head{flex-direction:column}.trainer-turn-actions{justify-content:stretch}.trainer-turn-actions .btn{flex:1}}


/* v1_8_279 - Arquitectura de información del menú Superadmin */
.role-menu-saas {
    padding-bottom: 8px !important;
}
.role-menu-saas .role-menu-section {
    margin: 18px 12px 6px !important;
    padding: 0 !important;
    color: rgba(216, 226, 255, .46) !important;
    font-size: 10px !important;
    line-height: 14px !important;
    font-weight: 800 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
    user-select: none;
}
.role-menu-saas .role-menu-section:first-child {
    margin-top: 0 !important;
}
.role-menu-saas .role-menu-section-account {
    margin-top: 20px !important;
    padding-top: 14px !important;
    border-top: 1px solid rgba(197, 198, 207, .18) !important;
}
.role-menu-saas a {
    min-width: 0 !important;
}
.role-menu-saas a > span:not(.role-menu-badge) {
    min-width: 0;
    overflow-wrap: anywhere;
}
.role-menu-saas .role-menu-badge {
    margin-left: auto;
    flex: 0 0 auto;
    padding: 2px 6px;
    border: 1px solid rgba(251, 191, 36, .32);
    border-radius: 999px;
    background: rgba(245, 158, 11, .12);
    color: #fde68a;
    font-size: 9px;
    line-height: 13px;
    font-weight: 800;
    letter-spacing: .02em;
    white-space: nowrap;
}
.role-menu-saas .role-menu-technical:not(.active) {
    color: rgba(253, 230, 138, .82) !important;
}
.role-menu-saas .role-menu-technical:not(.active) i {
    color: rgba(251, 191, 36, .78) !important;
}
.role-menu-saas .role-menu-logout {
    margin-top: 0 !important;
    border-top: 0 !important;
    padding-top: 12px !important;
}
@media (max-width: 980px) {
    .role-menu-saas .role-menu-section {
        margin-top: 16px !important;
    }
}

/* v1_8_280 - Menú Superadmin jerárquico y desplegable */
.role-menu-saas {
    gap: 6px !important;
}
.role-menu-saas .role-menu-group {
    min-width: 0;
}
.role-menu-saas .role-menu-parent {
    width: 100%;
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: transparent;
    color: rgba(226, 232, 255, .82);
    font: inherit;
    font-size: .88rem;
    line-height: 1.25;
    font-weight: 850;
    text-align: left;
    cursor: pointer;
    box-shadow: none;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.role-menu-saas .role-menu-parent > i:first-child {
    width: 20px;
    min-width: 20px;
    color: rgba(216, 226, 255, .72);
    font-size: 16px;
    text-align: center;
}
.role-menu-saas .role-menu-parent > span {
    min-width: 0;
    flex: 1 1 auto;
    overflow-wrap: anywhere;
}
.role-menu-saas .role-menu-parent:hover,
.role-menu-saas .role-menu-parent:focus-visible,
.role-menu-saas .role-menu-group.is-open > .role-menu-parent {
    background: rgba(255,255,255,.10);
    border-color: rgba(255,255,255,.08);
    color: #fff;
    outline: none;
}
.role-menu-saas .role-menu-parent:focus-visible {
    box-shadow: 0 0 0 3px rgba(125, 211, 252, .25);
}
.role-menu-saas .role-menu-chevron {
    width: 18px;
    min-width: 18px;
    margin-left: auto;
    color: rgba(216, 226, 255, .56);
    font-size: 12px;
    text-align: center;
    transition: transform .2s ease;
}
.role-menu-saas .role-menu-group.is-open > .role-menu-parent .role-menu-chevron {
    transform: rotate(180deg);
}
.role-menu-saas .role-menu-children {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin: 4px 0 8px 22px;
    padding: 2px 0 2px 10px;
    border-left: 1px solid rgba(197, 198, 207, .20);
}
.role-menu-saas .role-menu-children[hidden] {
    display: none !important;
}
.role-menu-saas .role-menu-children a {
    min-height: 40px !important;
    padding: 9px 10px !important;
    border-radius: 10px !important;
    color: rgba(219, 234, 254, .78) !important;
    font-size: .86rem !important;
    font-weight: 760 !important;
}
.role-menu-saas .role-menu-children a:hover,
.role-menu-saas .role-menu-children a.active {
    color: #fff !important;
}
.role-menu-saas .role-menu-children a.active {
    background: rgba(255,255,255,.14) !important;
    border-color: rgba(255,255,255,.09) !important;
}
.role-menu-saas .role-menu-group-account {
    margin-top: 8px;
    padding-top: 10px;
    border-top: 1px solid rgba(197, 198, 207, .18);
}
.role-menu-saas .role-menu-logout {
    margin-top: 0 !important;
    padding-top: 9px !important;
    border-top: 0 !important;
}
@media (max-width: 980px) {
    .role-menu-saas .role-menu-parent {
        min-height: 46px;
        padding: 11px 12px;
    }
    .role-menu-saas .role-menu-children {
        margin-left: 20px;
    }
    .role-menu-saas .role-menu-children a {
        min-height: 44px !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .role-menu-saas .role-menu-chevron,
    .role-menu-saas .role-menu-parent {
        transition: none !important;
    }
}

/* v1_8_282 - Menú Administrador jerárquico, desplegable y responsive */
.role-menu-admin {
    gap: 6px !important;
    padding-bottom: 8px !important;
}
.role-menu-admin .role-menu-group {
    min-width: 0;
}
.role-menu-admin .role-menu-parent {
    width: 100%;
    min-height: 44px;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 10px 12px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: transparent;
    color: rgba(226, 232, 255, .82);
    font: inherit;
    font-size: .88rem;
    line-height: 1.25;
    font-weight: 850;
    text-align: left;
    cursor: pointer;
    box-shadow: none;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease;
}
.role-menu-admin .role-menu-parent > i:first-child {
    width: 20px;
    min-width: 20px;
    color: rgba(216, 226, 255, .72);
    font-size: 16px;
    text-align: center;
}
.role-menu-admin .role-menu-parent > span {
    min-width: 0;
    flex: 1 1 auto;
    overflow-wrap: anywhere;
}
.role-menu-admin .role-menu-parent:hover,
.role-menu-admin .role-menu-parent:focus-visible,
.role-menu-admin .role-menu-group.is-open > .role-menu-parent {
    background: rgba(255,255,255,.10);
    border-color: rgba(255,255,255,.08);
    color: #fff;
    outline: none;
}
.role-menu-admin .role-menu-parent:focus-visible {
    box-shadow: 0 0 0 3px rgba(125, 211, 252, .25);
}
.role-menu-admin .role-menu-chevron {
    width: 18px;
    min-width: 18px;
    margin-left: auto;
    color: rgba(216, 226, 255, .56);
    font-size: 12px;
    text-align: center;
    transition: transform .2s ease;
}
.role-menu-admin .role-menu-group.is-open > .role-menu-parent .role-menu-chevron {
    transform: rotate(180deg);
}
.role-menu-admin .role-menu-children {
    display: flex;
    flex-direction: column;
    gap: 3px;
    margin: 4px 0 8px 22px;
    padding: 2px 0 2px 10px;
    border-left: 1px solid rgba(197, 198, 207, .20);
}
.role-menu-admin .role-menu-children[hidden] {
    display: none !important;
}
.role-menu-admin .role-menu-children a {
    min-width: 0 !important;
    min-height: 40px !important;
    padding: 9px 10px !important;
    border-radius: 10px !important;
    color: rgba(219, 234, 254, .78) !important;
    font-size: .86rem !important;
    font-weight: 760 !important;
}
.role-menu-admin .role-menu-children a > span {
    min-width: 0;
    overflow-wrap: anywhere;
}
.role-menu-admin .role-menu-children a:hover,
.role-menu-admin .role-menu-children a.active {
    color: #fff !important;
}
.role-menu-admin .role-menu-children a.active {
    background: rgba(255,255,255,.14) !important;
    border-color: rgba(255,255,255,.09) !important;
}
.role-menu-admin .role-menu-group-account {
    margin-top: 8px;
    padding-top: 10px;
    border-top: 1px solid rgba(197, 198, 207, .18);
}
.role-menu-admin .role-menu-logout {
    margin-top: 0 !important;
    padding-top: 9px !important;
    border-top: 0 !important;
}
@media (max-width: 980px) {
    .role-menu-admin .role-menu-parent {
        min-height: 46px;
        padding: 11px 12px;
    }
    .role-menu-admin .role-menu-children {
        margin-left: 20px;
    }
    .role-menu-admin .role-menu-children a {
        min-height: 44px !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .role-menu-admin .role-menu-chevron,
    .role-menu-admin .role-menu-parent {
        transition: none !important;
    }
}

/* v1_8_286 - Dashboard y Cerrar sesión como acciones directas de primer nivel */
.role-menu-saas > .role-menu-direct,
.role-menu-admin > .role-menu-direct {
    position: relative;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 44px !important;
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    margin: 0 !important;
    padding: 10px 12px !important;
    border: 1px solid transparent !important;
    border-radius: 12px !important;
    background: transparent !important;
    color: rgba(226, 232, 255, .82) !important;
    box-shadow: none !important;
    font-size: .88rem !important;
    line-height: 1.25 !important;
    font-weight: 850 !important;
    text-decoration: none !important;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease !important;
}
.role-menu-saas > .role-menu-direct > i,
.role-menu-admin > .role-menu-direct > i {
    width: 20px !important;
    min-width: 20px !important;
    color: rgba(216, 226, 255, .72) !important;
    font-size: 16px !important;
    text-align: center !important;
}
.role-menu-saas > .role-menu-direct > span,
.role-menu-admin > .role-menu-direct > span {
    min-width: 0 !important;
    color: inherit !important;
    overflow-wrap: anywhere !important;
}
.role-menu-saas > .role-menu-direct:hover,
.role-menu-saas > .role-menu-direct:focus-visible,
.role-menu-saas > .role-menu-direct.active,
.role-menu-admin > .role-menu-direct:hover,
.role-menu-admin > .role-menu-direct:focus-visible,
.role-menu-admin > .role-menu-direct.active {
    background: rgba(255, 255, 255, .10) !important;
    border-color: rgba(255, 255, 255, .08) !important;
    color: #fff !important;
    outline: none !important;
}
.role-menu-saas > .role-menu-direct:hover > i,
.role-menu-saas > .role-menu-direct:focus-visible > i,
.role-menu-saas > .role-menu-direct.active > i,
.role-menu-admin > .role-menu-direct:hover > i,
.role-menu-admin > .role-menu-direct:focus-visible > i,
.role-menu-admin > .role-menu-direct.active > i {
    color: #fff !important;
}
.role-menu-saas > .role-menu-direct:focus-visible,
.role-menu-admin > .role-menu-direct:focus-visible {
    box-shadow: 0 0 0 3px rgba(125, 211, 252, .25) !important;
}
.role-menu-saas > .role-menu-logout,
.role-menu-admin > .role-menu-logout {
    margin-top: 14px !important;
    padding-top: 10px !important;
    border-top-color: transparent !important;
}
.role-menu-saas > .role-menu-logout::before,
.role-menu-admin > .role-menu-logout::before {
    content: "";
    position: absolute;
    top: -8px;
    left: 0;
    right: 0;
    height: 1px;
    background: rgba(197, 198, 207, .18);
    pointer-events: none;
}
@media (max-width: 980px) {
    .role-menu-saas > .role-menu-direct,
    .role-menu-admin > .role-menu-direct {
        min-height: 46px !important;
        padding: 11px 12px !important;
    }
}
@media (prefers-reduced-motion: reduce) {
    .role-menu-saas > .role-menu-direct,
    .role-menu-admin > .role-menu-direct {
        transition: none !important;
    }
}

/* v1_8_305 · Tamaño tipográfico uniforme de etiquetas dentro de todas las tablas. */
html body[class] table :is(
    .badge,
    .badge-soft,
    .member-soft-badge,
    .profile-code,
    .attendance-code,
    .logs-code,
    .trainer-code,
    .payment-code,
    .payment-history-code,
    .turno-code,
    .trainer-turn-code,
    .reservation-code,
    .reservation-mobile-code,
    .moment-code-badge,
    .socio-code-pill,
    .profile-chip,
    .payment-state-chip,
    .attendance-status-chip,
    .attendance-source-pill,
    .selection-payment-status,
    .session-status,
    .turno-inscrito-status,
    .reprogram-status,
    .trainer-invitation-status,
    .paid-pill,
    .pending-pill,
    .recipient-pill,
    .purchase-code-chip,
    .provider-state-badge,
    .socio-level-badge,
    .socio-session-badge,
    .socio-status-badge,
    .performance-chip,
    .performance-context-chip,
    .performance-score-pill,
    .performance-section-pill,
    .skill-suggest-order-chip,
    .source-badge,
    .report-sport-badge,
    .moment-state-badge,
    .code,
    code,
    [class$="-badge"]:not(.bi),
    [class*="-badge "]:not(.bi),
    [class$="-chip"],
    [class*="-chip "],
    [class$="-pill"],
    [class*="-pill "],
    [class$="-status"]:not(input):not(select):not(button):not(textarea),
    [class*="-status "]:not(input):not(select):not(button):not(textarea)
) {
    font-size: 12.5px !important;
}


/* v1_8_309 - Optimización de ancho útil en móvil para tarjetas y secciones
   Reduce el margen lateral del layout en pantallas pequeñas para que las
   tarjetas ocupen casi todo el ancho disponible sin romper la jerarquía visual. */
@media (max-width: 980px){
    .topbar,.role-topbar,body.role-shell .role-topbar{padding:0 12px!important;}
    .content,.role-content,body.role-shell .role-content{padding:12px!important;max-width:none!important;}
    .role-hero,body.role-shell .role-hero,.page-title{padding:0 12px 24px!important;}
    .role-hero-actions,body.role-shell .role-hero-actions{width:100%!important;}
    .role-hero-actions > *,body.role-shell .role-hero-actions > *{flex:1 1 100%!important;width:100%!important;}
}
@media (max-width: 560px){
    .topbar,.role-topbar,body.role-shell .role-topbar{padding:0 10px!important;}
    .content,.role-content,body.role-shell .role-content{padding:10px!important;}
    .role-hero,body.role-shell .role-hero,.page-title{padding:0 10px 20px!important;}
}

/* v1_8_320 · Contrato geométrico único para etiquetas de ESTADO.
   Referencia visual: etiquetas compactas del Control de asistencia/Ficha 360°.
   IMPORTANTE: no define background/color/border-color; cada estado conserva
   su semántica cromática actual (éxito, espera, error, información, neutro). */
html body[class] :is(
    .dmp-state-label,
    .profile-chip,
    .payment-state-chip,
    .attendance-status-chip,
    .member-attendance-status,
    .selection-payment-status,
    .session-status,
    .turno-inscrito-status,
    .reprogram-status,
    .trainer-invitation-status,
    .paid-pill,
    .pending-pill,
    .danger-pill,
    .neutral-pill,
    .provider-state-badge,
    .socio-status-badge,
    .moment-state-badge,
    .payment-method-status,
    .profile-tutor-access-status,
    .admin-access-state,
    .reservation-mobile-status,
    .member-next-chip-state,
    .member-next-chip-payment,
    .smtp-provider-pill,
    .member-soft-badge.badge-draft,
    .member-soft-badge.badge-final
) {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 20px !important;
    max-width: 100% !important;
    padding: 2px 7px !important;
    border-radius: 5px !important;
    border-width: 1px !important;
    border-style: solid !important;
    box-shadow: none !important;
    font-size: 12.5px !important;
    line-height: 1.15 !important;
    font-weight: 750 !important;
    letter-spacing: .015em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
}
html body[class] :is(
    .dmp-state-label,
    .profile-chip,
    .payment-state-chip,
    .attendance-status-chip,
    .member-attendance-status,
    .selection-payment-status,
    .session-status,
    .turno-inscrito-status,
    .reprogram-status,
    .trainer-invitation-status,
    .paid-pill,
    .pending-pill,
    .danger-pill,
    .neutral-pill,
    .provider-state-badge,
    .socio-status-badge,
    .moment-state-badge,
    .payment-method-status,
    .profile-tutor-access-status,
    .admin-access-state,
    .reservation-mobile-status,
    .member-next-chip-state,
    .member-next-chip-payment,
    .smtp-provider-pill,
    .member-soft-badge.badge-draft,
    .member-soft-badge.badge-final
) > i {
    font-size: .68rem !important;
    line-height: 1 !important;
}

/* v1_8_321 · Contrato final de etiquetas de ESTADO fuera de tablas.
   Refuerza especificidad frente a reglas históricas con !important.
   No redefine background/color/border-color para conservar la semántica cromática. */
html body:is(#dmp-state-boost-a, body):is(#dmp-state-boost-b, body) :is(
    .dmp-state-label,
    .member-light-status,
    .role-status-badge,
    .profile-chip,
    .payment-state-chip,
    .attendance-status-chip,
    .member-attendance-status,
    .selection-payment-status,
    .session-status,
    .turno-inscrito-status,
    .reprogram-status,
    .trainer-invitation-status,
    .paid-pill,
    .pending-pill,
    .danger-pill,
    .neutral-pill,
    .provider-state-badge,
    .socio-status-badge,
    .moment-state-badge,
    .payment-method-status,
    .profile-tutor-access-status,
    .admin-access-state,
    .reservation-mobile-status,
    .member-next-chip-state,
    .member-next-chip-payment,
    .smtp-provider-pill,
    .turno-state-label,
    .performance-attendance-tag,
    .smtp-test-state,
    .member-soft-badge.badge-draft,
    .member-soft-badge.badge-final,
    .badge.bg-success,
    .badge.bg-warning,
    .badge.bg-danger,
    .badge.bg-info,
    .badge.bg-secondary,
    .badge.text-bg-success,
    .badge.text-bg-warning,
    .badge.text-bg-danger,
    .badge.text-bg-info,
    .badge.text-bg-secondary,
    .badge.text-bg-primary,
    .badge[class*="bg-success-subtle"],
    .badge[class*="bg-warning-subtle"],
    .badge[class*="bg-danger-subtle"],
    .badge[class*="bg-info-subtle"],
    .badge-soft.warning,
    .badge-soft.danger,
    .badge-soft.success,
    .member-soft-badge.warning,
    .member-soft-badge.danger,
    .member-soft-badge.success
) {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 4px !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: 20px !important;
    max-width: 100% !important;
    padding: 2px 7px !important;
    border-radius: 5px !important;
    border-width: 1px !important;
    border-style: solid !important;
    box-shadow: none !important;
    font-size: 12.5px !important;
    line-height: 1.15 !important;
    font-weight: 750 !important;
    letter-spacing: .015em !important;
    text-transform: uppercase !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
}

/* v1_8_329 · Contrato global de aprovechamiento horizontal en móvil.
   Referencia: Administrador > Ficha 360° del deportista (v1_8_310).
   Aplica a Superadmin, Administrador y Entrenador sin alterar escritorio.
   - Cabecera/hero de página: 8 px por lado (6 px <= 560 px).
   - Contenido principal: 6 px por lado (4 px <= 560 px).
   Se mantienen los paddings internos de cards, formularios y controles. */
@media (max-width: 760px) {
    html body.role-shell .role-hero,
    html body.role-shell .page-title {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    html body.role-shell .content.role-content,
    html body.role-shell .role-content {
        padding-left: 6px !important;
        padding-right: 6px !important;
        max-width: none !important;
        width: 100% !important;
    }
}

@media (max-width: 560px) {
    html body.role-shell .role-hero,
    html body.role-shell .page-title {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    html body.role-shell .content.role-content,
    html body.role-shell .role-content {
        padding-left: 4px !important;
        padding-right: 4px !important;
    }
}


/* v1_8_333 · Contrato global de render inmediato.
   Cualquier elemento heredado con ui-reveal debe ser visible desde el primer frame.
   Evita que Superadmin, Administrador, Entrenador, Deportista o pantallas públicas
   dependan de un evento de scroll para mostrar contenido. */
html body .ui-reveal,
html body .ui-reveal.is-visible {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
}

/* v1_8_335 - Turnos: checkbox explícito para conformidad del entrenador */
body.role-shell .admin-turno-checkbox {
    grid-column: 1 / -1;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin: 2px 0 0;
    padding: 12px 14px;
    border: 1px solid rgba(197, 198, 207, .72);
    border-radius: 14px;
    background: var(--dmp-exact-surface-lowest, #fff);
}
body.role-shell .admin-turno-checkbox .form-check-input {
    float: none !important;
    flex: 0 0 18px;
    width: 18px !important;
    height: 18px !important;
    min-height: 18px !important;
    margin: 2px 0 0 !important;
    padding: 0 !important;
    border-radius: 4px !important;
    cursor: pointer;
}
body.role-shell .admin-turno-checkbox .form-check-label {
    margin: 0 !important;
    cursor: pointer;
    line-height: 1.35;
}
body.role-shell .admin-turno-checkbox .form-check-label strong {
    display: block;
    color: var(--dmp-exact-text, #1f2937);
}

/* v1_8_336 - Turnos: checkbox de conformidad robusto y visible.
   El control anterior heredaba `background: ... !important` de .form-check-input,
   lo que ocultaba visualmente el estado :checked de Bootstrap. */
body.role-shell .admin-turno-checkbox {
    position: relative;
    grid-column: 1 / -1;
    display: grid !important;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: start;
    column-gap: 12px;
    row-gap: 0;
    margin: 2px 0 0;
    padding: 13px 14px;
    border: 1px solid rgba(197, 198, 207, .82);
    border-radius: 14px;
    background: var(--dmp-exact-surface-lowest, #fff);
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
    -webkit-tap-highlight-color: transparent;
}
body.role-shell .admin-turno-checkbox-input {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    pointer-events: none;
}
body.role-shell .admin-turno-checkbox-box {
    position: relative;
    display: block;
    width: 24px;
    height: 24px;
    margin-top: 1px;
    border: 2px solid #7c8798;
    border-radius: 6px;
    background: #fff;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.75);
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease, transform .08s ease;
}
body.role-shell .admin-turno-checkbox-box::after {
    content: "";
    position: absolute;
    left: 7px;
    top: 3px;
    width: 7px;
    height: 13px;
    border: solid #fff;
    border-width: 0 3px 3px 0;
    transform: rotate(45deg) scale(.65);
    transform-origin: center;
    opacity: 0;
    transition: opacity .12s ease, transform .12s ease;
}
body.role-shell .admin-turno-checkbox-input:checked + .admin-turno-checkbox-box,
body.role-shell .admin-turno-checkbox.is-checked .admin-turno-checkbox-box {
    border-color: var(--dmp-exact-action, #0266ff);
    background: var(--dmp-exact-action, #0266ff);
    box-shadow: 0 0 0 3px rgba(2, 102, 255, .12);
}
body.role-shell .admin-turno-checkbox-input:checked + .admin-turno-checkbox-box::after,
body.role-shell .admin-turno-checkbox.is-checked .admin-turno-checkbox-box::after {
    opacity: 1;
    transform: rotate(45deg) scale(1);
}
body.role-shell .admin-turno-checkbox-input:focus-visible + .admin-turno-checkbox-box {
    outline: 3px solid rgba(2, 102, 255, .23);
    outline-offset: 2px;
}
body.role-shell .admin-turno-checkbox.is-checked {
    border-color: rgba(2, 102, 255, .48);
    background: rgba(2, 102, 255, .045);
}
body.role-shell .admin-turno-checkbox-copy {
    display: grid;
    gap: 3px;
    min-width: 0;
    line-height: 1.35;
}
body.role-shell .admin-turno-checkbox-copy strong {
    color: var(--dmp-exact-text, #1f2937);
    font-weight: 800;
}
body.role-shell .admin-turno-checkbox-copy small {
    color: var(--dmp-exact-muted, #64748b);
    font-size: 12.5px;
    line-height: 1.45;
}
body.role-shell .admin-turno-checkbox:active .admin-turno-checkbox-box {
    transform: scale(.95);
}
@media (max-width: 560px) {
    body.role-shell .admin-turno-checkbox {
        grid-template-columns: 24px minmax(0, 1fr);
        padding: 12px;
        column-gap: 10px;
    }
}

/* v1_8_355 · Editor del fondo global del login en Super Admin > Estilo y apariencia */
.appearance-login-background-grid {
    display: grid;
    grid-template-columns: minmax(0, .9fr) minmax(360px, 1.1fr);
    gap: 28px;
    align-items: start;
}
.appearance-login-background-label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
    color: var(--theme-on-surface, #191c1e);
    font-size: .88rem;
    font-weight: 800;
}
.appearance-login-background-preview {
    min-height: 330px;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    overflow: hidden;
}
.appearance-login-background-preview .tenant-login-preview-card {
    width: min(100%, 310px);
}
@media (max-width: 991.98px) {
    .appearance-login-background-grid { grid-template-columns: 1fr; }
}
@media (max-width: 575.98px) {
    .appearance-login-background-preview { min-height: 390px; padding: 16px; }
}

/* v1_8_358 · Configuración asistida y puesta en marcha */
.assisted-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
    color: var(--theme-primary, #0f2e73);
    font-size: .78rem;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.assisted-setup-hero,
.setup-wizard-hero {
    background:
        radial-gradient(circle at 88% 14%, rgba(20,184,166,.18), transparent 25%),
        linear-gradient(135deg, rgba(255,255,255,.98), rgba(238,247,255,.96));
}
.assisted-control-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
}
.assisted-control-grid > div {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr);
    gap: 4px 12px;
    padding: 16px;
    border: 1px solid rgba(15,46,115,.1);
    border-radius: 18px;
    background: #f8fbff;
}
.assisted-control-grid i {
    grid-row: 1 / span 2;
    display: grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 13px;
    color: #0f2e73;
    background: rgba(15,46,115,.08);
    font-size: 1.15rem;
}
.assisted-control-grid strong { color: #172033; font-size: .92rem; }
.assisted-control-grid span { color: #64748b; font-size: .78rem; line-height: 1.45; }
.assisted-account-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}
.assisted-account-card {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 20px;
    border: 1px solid rgba(15,46,115,.12);
    border-radius: 22px;
    background: linear-gradient(180deg, #fff, #fbfdff);
    box-shadow: 0 14px 34px rgba(15,46,115,.07);
}
.assisted-account-card:hover { border-color: rgba(15,46,115,.28); transform: translateY(-1px); }
.assisted-account-head { display: grid; grid-template-columns: 48px minmax(0,1fr) auto; gap: 12px; align-items: center; }
.assisted-account-head strong { display: block; color: #172033; font-size: 1rem; }
.assisted-account-head span:not(.assisted-progress-label) { display: block; margin-top: 3px; color: #64748b; font-size: .78rem; }
.assisted-account-icon { display:grid; place-items:center; width:48px; height:48px; border-radius:16px; color:#fff; background:linear-gradient(135deg,#0f2e73,#1f6feb); font-size:1.15rem; box-shadow:0 10px 22px rgba(15,46,115,.2); }
.assisted-progress-label { color:#0f2e73; font-weight:900; font-size:1rem; }
.assisted-progress,
.setup-main-progress { height: 10px; border-radius: 999px; background: #e8eef7; overflow: hidden; }
.assisted-progress .progress-bar,
.setup-main-progress .progress-bar { border-radius:999px; background:linear-gradient(90deg,#0f2e73,#14b8a6); }
.assisted-status-pills { display:flex; flex-wrap:wrap; gap:8px; }
.assisted-status-pills span { display:inline-flex; align-items:center; gap:5px; padding:7px 9px; border-radius:999px; font-size:.72rem; font-weight:800; }
.assisted-status-pills .is-ready { color:#067647; background:#ecfdf3; border:1px solid #abefc6; }
.assisted-status-pills .is-pending { color:#b54708; background:#fffaeb; border:1px solid #fedf89; }
.assisted-status-pills .is-disabled { color:#667085; background:#f2f4f7; border:1px solid #e4e7ec; }
.assisted-modal-content { border:0; border-radius:24px; overflow:hidden; box-shadow:0 26px 70px rgba(15,23,42,.22); }
.assisted-modal-content .modal-header { padding:22px 24px 14px; border:0; }
.assisted-modal-content .modal-body { padding:10px 24px 22px; }
.assisted-modal-content .modal-footer { padding:16px 24px 22px; border-top:1px solid #eef2f6; }

.assisted-session-banner {
    position: fixed;
    z-index: 1090;
    top: 0;
    left: 0;
    right: 0;
    min-height: 62px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 10px 22px;
    color: #fff;
    background: linear-gradient(100deg,#071a45,#0f2e73 58%,#0b766e);
    box-shadow: 0 12px 28px rgba(2,16,48,.22);
}
.assisted-session-banner-main,
.assisted-session-actions { display:flex; align-items:center; gap:12px; }
.assisted-session-banner-main > div { display:grid; gap:1px; }
.assisted-session-banner-main strong { font-size:.9rem; }
.assisted-session-banner-main span { color:rgba(255,255,255,.78); font-size:.75rem; }
.assisted-session-pulse { width:11px; height:11px; border-radius:50%; background:#5eead4; box-shadow:0 0 0 0 rgba(94,234,212,.65); animation:assistedPulse 1.8s infinite; }
@keyframes assistedPulse { 70% { box-shadow:0 0 0 10px rgba(94,234,212,0); } 100% { box-shadow:0 0 0 0 rgba(94,234,212,0); } }
body.assisted-session-active .role-sidebar { top:62px; height:calc(100vh - 62px); }
body.assisted-session-active .role-main { padding-top:62px; }

.setup-wizard-hero { display:flex; align-items:center; justify-content:space-between; gap:24px; }
.setup-score { min-width:170px; display:grid; gap:2px; justify-items:end; }
.setup-score strong { color:#0f2e73; font-size:2.15rem; line-height:1; }
.setup-score span { color:#64748b; font-size:.78rem; font-weight:700; }
.setup-step-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.setup-step-card { position:relative; display:grid; grid-template-columns:40px 52px minmax(0,1fr); gap:14px; align-items:start; padding:20px; border:1px solid #e5ebf3; border-radius:22px; background:#fff; box-shadow:0 10px 28px rgba(15,46,115,.055); }
.setup-step-card.is-complete { border-color:#b7e4ca; background:linear-gradient(180deg,#fff,#f7fdf9); }
.setup-step-card.is-disabled { opacity:.78; background:#f8fafc; }
.setup-step-number { display:grid; place-items:center; width:34px; height:34px; border-radius:11px; color:#0f2e73; background:#edf3ff; font-weight:900; font-size:.78rem; }
.setup-step-icon { display:grid; place-items:center; width:52px; height:52px; border-radius:17px; color:#fff; background:linear-gradient(135deg,#0f2e73,#2563eb); font-size:1.25rem; }
.setup-step-card.is-complete .setup-step-icon { background:linear-gradient(135deg,#067647,#12b76a); }
.setup-step-card.is-disabled .setup-step-icon { background:#98a2b3; }
.setup-step-copy { min-width:0; }
.setup-step-title { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.setup-step-title strong { color:#172033; font-size:1rem; }
.setup-step-title span { white-space:nowrap; color:#b54708; font-size:.72rem; font-weight:900; }
.setup-step-card.is-complete .setup-step-title span { color:#067647; }
.setup-step-card.is-disabled .setup-step-title span { color:#667085; }
.setup-step-copy p { margin:7px 0 14px; color:#64748b; font-size:.82rem; line-height:1.55; }
.setup-step-copy .btn { min-height:38px; border-radius:12px; font-size:.78rem; font-weight:800; }
.setup-disabled-note { display:inline-flex; align-items:center; gap:7px; color:#667085; font-size:.76rem; font-weight:700; }
.setup-final-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.setup-final-grid span { display:flex; align-items:center; gap:9px; padding:13px 14px; border-radius:14px; color:#344054; background:#f8fafc; font-size:.8rem; font-weight:750; }
.setup-final-grid i { color:#0f2e73; }

@media (max-width: 1199.98px) {
    .assisted-control-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .setup-step-grid { grid-template-columns:1fr; }
}
@media (max-width: 991.98px) {
    .assisted-account-grid { grid-template-columns:1fr; }
    .setup-final-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    body.assisted-session-active .role-sidebar { top:0; height:100vh; padding-top:76px; }
}
@media (max-width: 767.98px) {
    .assisted-session-banner { min-height:86px; align-items:flex-start; padding:10px 12px; }
    .assisted-session-banner-main { min-width:0; }
    .assisted-session-banner-main > div { min-width:0; }
    .assisted-session-banner-main span { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; max-width:46vw; }
    .assisted-session-actions { gap:7px; }
    .assisted-session-actions .btn { padding:7px 9px; font-size:0; }
    .assisted-session-actions .btn i { font-size:.92rem; margin:0; }
    body.assisted-session-active .role-main { padding-top:86px; }
    body.assisted-session-active .role-sidebar { padding-top:92px; }
    .setup-wizard-hero { align-items:flex-start; }
    .setup-score { min-width:100px; }
    .setup-score span { text-align:right; }
}
@media (max-width: 575.98px) {
    .assisted-control-grid { grid-template-columns:1fr; }
    .assisted-account-card { padding:16px; border-radius:18px; }
    .assisted-account-head { grid-template-columns:44px minmax(0,1fr); }
    .assisted-progress-label { grid-column:2; }
    .setup-wizard-hero { display:grid; }
    .setup-score { justify-items:start; }
    .setup-score span { text-align:left; }
    .setup-step-card { grid-template-columns:34px minmax(0,1fr); padding:16px; gap:11px; }
    .setup-step-icon { display:none; }
    .setup-step-title { display:grid; gap:5px; }
    .setup-final-grid { grid-template-columns:1fr; }
}

.assisted-account-warning{display:flex;gap:.5rem;align-items:flex-start;margin:.75rem 0;padding:.65rem .75rem;border-radius:.75rem;background:#fff7ed;color:#9a3412;font-size:.82rem;line-height:1.35}
.assisted-account-warning i{margin-top:.08rem;flex:0 0 auto}
.assisted-authorization-check{padding:.85rem 1rem;border:1px solid #c7d7fe;border-radius:.9rem;background:#f4f7ff}
.assisted-authorization-check .form-check{display:grid;grid-template-columns:1.1rem minmax(0,1fr);gap:.65rem;margin:0;padding:0}
.assisted-authorization-check .form-check-input{float:none;margin:.2rem 0 0;width:1.05rem;height:1.05rem}
.assisted-authorization-check .form-check-label{display:grid;gap:.2rem;color:#24324a;line-height:1.35}
.assisted-authorization-check .form-check-label small{color:#667085;font-size:.76rem}

/* v1_8_358 · Menú reducido durante la configuración asistida */
.role-menu-assisted .role-menu-assisted-label {
    display: flex;
    align-items: center;
    gap: 9px;
    margin: 2px 8px 10px;
    padding: 10px 12px;
    border: 1px solid rgba(94, 234, 212, .22);
    border-radius: 13px;
    color: rgba(255,255,255,.88);
    background: rgba(94, 234, 212, .08);
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .04em;
    text-transform: uppercase;
}
.role-menu-assisted .role-menu-disabled {
    display: flex;
    align-items: center;
    gap: 10px;
    min-height: 42px;
    margin: 2px 0;
    padding: 9px 12px;
    border-radius: 10px;
    color: rgba(255,255,255,.48);
    font-size: .79rem;
    font-weight: 700;
    cursor: not-allowed;
}
.role-menu-assisted .role-menu-disabled i { opacity: .75; }

/* v1_8_387 · Selector explícito de activación Izipay por comercio */
.izipay-tenant-status{display:inline-flex;align-items:center;gap:.42rem;padding:.48rem .72rem;border-radius:999px;font-size:.72rem;font-weight:900;letter-spacing:.035em}
.izipay-tenant-status.is-active{color:#067647;background:#ecfdf3;border:1px solid #abefc6}
.izipay-tenant-status.is-inactive{color:#9a3412;background:#fff7ed;border:1px solid #fed7aa}
.izipay-activation-fieldset{margin:0;padding:0;border:0}
.izipay-activation-fieldset legend{margin:0 0 .75rem;color:#344054;font-size:.86rem;font-weight:800}
.izipay-state-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.izipay-state-option{position:relative;display:block;margin:0;cursor:pointer}
.izipay-state-option input{position:absolute;inline-size:1px;block-size:1px;opacity:0;pointer-events:none}
.izipay-state-card{display:grid;grid-template-columns:48px minmax(0,1fr) 28px;align-items:center;gap:13px;min-height:100px;padding:17px 18px;border:2px solid #d0d5dd;border-radius:18px;background:#fff;box-shadow:0 7px 20px rgba(15,23,42,.045);transition:border-color .18s ease,background .18s ease,box-shadow .18s ease,transform .18s ease}
.izipay-state-option:hover .izipay-state-card{transform:translateY(-1px);box-shadow:0 10px 24px rgba(15,23,42,.08)}
.izipay-state-icon{display:grid;place-items:center;width:48px;height:48px;border-radius:15px;font-size:1.65rem}
.izipay-state-copy{display:grid;gap:4px;min-width:0}
.izipay-state-copy strong{font-size:.9rem;letter-spacing:.035em}
.izipay-state-copy small{color:#667085;font-size:.78rem;line-height:1.4}
.izipay-state-check{display:grid;place-items:center;width:27px;height:27px;border:2px solid #d0d5dd;border-radius:50%;color:transparent;background:#fff;font-size:.84rem}
.izipay-state-on .izipay-state-icon{color:#067647;background:#ecfdf3}
.izipay-state-off .izipay-state-icon{color:#c2410c;background:#fff7ed}
.izipay-state-option input:focus-visible + .izipay-state-card{outline:3px solid rgba(37,99,235,.25);outline-offset:3px}
.izipay-state-on input:checked + .izipay-state-card{border-color:#12b76a;background:linear-gradient(180deg,#fff,#f0fdf4);box-shadow:0 11px 28px rgba(18,183,106,.14)}
.izipay-state-off input:checked + .izipay-state-card{border-color:#f97316;background:linear-gradient(180deg,#fff,#fff7ed);box-shadow:0 11px 28px rgba(249,115,22,.13)}
.izipay-state-option input:checked + .izipay-state-card .izipay-state-check{color:#fff;border-color:transparent}
.izipay-state-on input:checked + .izipay-state-card .izipay-state-check{background:#12b76a}
.izipay-state-off input:checked + .izipay-state-card .izipay-state-check{background:#f97316}
.izipay-activation-fieldset:disabled .izipay-state-option{cursor:not-allowed}
.izipay-activation-fieldset:disabled .izipay-state-card{opacity:.58;transform:none;box-shadow:none}
.izipay-selection-preview{display:inline-flex;align-items:center;gap:.55rem;margin-top:14px;padding:.62rem .78rem;border-radius:12px;font-size:.8rem;font-weight:700}
.izipay-selection-preview.is-active{color:#067647;background:#ecfdf3}
.izipay-selection-preview.is-inactive{color:#9a3412;background:#fff7ed}
@media (max-width:767.98px){.izipay-state-options{grid-template-columns:1fr}.izipay-state-card{min-height:92px}}

/* v1_8_405 - Planes Deportivos: formulario visual, opciones y selecciones robustas */
body.sports-plans-admin-page .sp-information-banner {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 16px;
    border: 1px solid rgba(2, 102, 255, .22);
    border-radius: 16px;
    background: rgba(2, 102, 255, .055);
    color: var(--dmp-exact-text, #1f2937);
}
body.sports-plans-admin-page .sp-information-banner > i {
    color: var(--dmp-exact-action, #0266ff);
    font-size: 1.25rem;
    line-height: 1.2;
}
body.sports-plans-admin-page .sp-information-banner div { display: grid; gap: 2px; }
body.sports-plans-admin-page .sp-information-banner span { color: var(--dmp-exact-muted, #64748b); font-size: .9rem; }
body.sports-plans-admin-page .sp-form-card { border-color: rgba(2,102,255,.2); box-shadow: 0 18px 44px rgba(3,22,53,.07); }
body.sports-plans-admin-page .sp-form-header > div { display: grid; gap: 3px; }
body.sports-plans-admin-page .sp-form-header small { color: var(--dmp-exact-muted, #64748b); font-weight: 500; }
body.sports-plans-admin-page .sp-section-heading { margin: 4px 0 14px; padding-bottom: 10px; border-bottom: 1px solid rgba(197,198,207,.55); }
body.sports-plans-admin-page .sp-section-heading > div { display: flex; align-items: flex-start; gap: 10px; }
body.sports-plans-admin-page .sp-step { display: grid; place-items: center; flex: 0 0 30px; width: 30px; height: 30px; border-radius: 10px; background: var(--dmp-exact-action, #0266ff); color: #fff; font-size: .85rem; font-weight: 800; }
body.sports-plans-admin-page .sp-section-heading h2 { margin: 0; color: var(--dmp-exact-text, #1f2937); font-size: 1rem; font-weight: 800; }
body.sports-plans-admin-page .sp-section-heading p { margin: 2px 0 0; color: var(--dmp-exact-muted, #64748b); font-size: .84rem; }
body.sports-plans-admin-page .sp-field-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
body.sports-plans-admin-page .sp-choice-grid { display: grid; gap: 10px; }
body.sports-plans-admin-page .sp-choice-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.sports-plans-admin-page .sp-choice-grid-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
body.sports-plans-admin-page .sp-choice-card {
    position: relative;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    align-items: start;
    gap: 11px;
    min-width: 0;
    margin: 0;
    padding: 13px 14px;
    border: 1px solid rgba(148,163,184,.72);
    border-radius: 14px;
    background: var(--dmp-exact-surface-lowest, #fff);
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease, transform .08s ease;
    -webkit-tap-highlight-color: transparent;
}
body.sports-plans-admin-page .sp-choice-card:hover { border-color: rgba(2,102,255,.55); background: rgba(2,102,255,.025); }
body.sports-plans-admin-page .sp-choice-card.is-checked { border-color: rgba(2,102,255,.62); background: rgba(2,102,255,.065); box-shadow: 0 0 0 3px rgba(2,102,255,.09); }
body.sports-plans-admin-page .sp-choice-card.is-disabled { opacity: .56; cursor: not-allowed; background: #f8fafc; }
body.sports-plans-admin-page .sp-choice-card:active:not(.is-disabled) { transform: translateY(1px); }
body.sports-plans-admin-page .sp-choice-input {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
body.sports-plans-admin-page .sp-choice-box {
    position: relative;
    display: block;
    width: 24px;
    height: 24px;
    margin-top: 1px;
    border: 2px solid #7c8798;
    border-radius: 7px;
    background: #fff;
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
body.sports-plans-admin-page .sp-choice-box i { position: absolute; inset: 0; display: grid; place-items: center; color: #fff; font-size: .92rem; opacity: 0; }
body.sports-plans-admin-page .sp-choice-radio .sp-choice-box { border-radius: 50%; }
body.sports-plans-admin-page .sp-choice-input:checked + .sp-choice-box,
body.sports-plans-admin-page .sp-choice-card.is-checked .sp-choice-box { border-color: var(--dmp-exact-action, #0266ff); background: var(--dmp-exact-action, #0266ff); box-shadow: 0 0 0 3px rgba(2,102,255,.12); }
body.sports-plans-admin-page .sp-choice-radio .sp-choice-input:checked + .sp-choice-box,
body.sports-plans-admin-page .sp-choice-radio.is-checked .sp-choice-box { box-shadow: inset 0 0 0 5px #fff, 0 0 0 3px rgba(2,102,255,.12); }
body.sports-plans-admin-page .sp-choice-input:checked + .sp-choice-box i,
body.sports-plans-admin-page .sp-choice-card.is-checked .sp-choice-box i { opacity: 1; }
body.sports-plans-admin-page .sp-choice-input:focus-visible + .sp-choice-box { outline: 3px solid rgba(2,102,255,.23); outline-offset: 2px; }
body.sports-plans-admin-page .sp-choice-copy { display: grid; gap: 3px; min-width: 0; line-height: 1.32; text-transform: none; letter-spacing: normal; }
body.sports-plans-admin-page .sp-choice-copy strong { color: var(--dmp-exact-text, #1f2937); font-size: .9rem; font-weight: 800; overflow-wrap: anywhere; }
body.sports-plans-admin-page .sp-choice-copy small { color: var(--dmp-exact-muted, #64748b); font-size: .78rem; line-height: 1.4; overflow-wrap: anywhere; }
body.sports-plans-admin-page .sp-choice-compact { padding: 10px 11px; grid-template-columns: 22px minmax(0, 1fr); gap: 9px; border-radius: 12px; }
body.sports-plans-admin-page .sp-choice-compact .sp-choice-box { width: 22px; height: 22px; border-radius: 6px; }
body.sports-plans-admin-page .sp-selection-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
body.sports-plans-admin-page .sp-selection-panel { min-width: 0; overflow: hidden; border: 1px solid rgba(197,198,207,.78); border-radius: 16px; background: #fff; }
body.sports-plans-admin-page .sp-selection-panel-wide { grid-column: 1 / -1; }
body.sports-plans-admin-page .sp-selection-panel > header { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 13px 14px; border-bottom: 1px solid rgba(197,198,207,.55); background: #f8fafc; }
body.sports-plans-admin-page .sp-selection-panel > header > div { display: grid; gap: 2px; min-width: 0; }
body.sports-plans-admin-page .sp-selection-panel > header strong { color: var(--dmp-exact-text, #1f2937); }
body.sports-plans-admin-page .sp-selection-panel > header small { color: var(--dmp-exact-muted, #64748b); font-size: .76rem; line-height: 1.35; }
body.sports-plans-admin-page .sp-selection-count { flex: 0 0 auto; padding: 4px 8px; border-radius: 999px; background: #e8f1ff; color: #075dc7; font-size: .72rem; font-weight: 800; white-space: nowrap; }
body.sports-plans-admin-page .sp-selection-list { display: grid; gap: 8px; max-height: 270px; overflow: auto; padding: 10px; }
body.sports-plans-admin-page .sp-selection-list-turns { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.sports-plans-admin-page .sp-empty { padding: 12px; color: var(--dmp-exact-muted, #64748b); font-size: .86rem; }
body.sports-plans-admin-page .sp-option-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
body.sports-plans-admin-page .sp-option-card { min-width: 0; overflow: hidden; border: 1px solid rgba(197,198,207,.78); border-radius: 16px; background: #f8fafc; opacity: .72; transition: opacity .15s ease, border-color .15s ease, box-shadow .15s ease, background-color .15s ease; }
body.sports-plans-admin-page .sp-option-card.is-enabled { opacity: 1; border-color: rgba(2,102,255,.32); background: #fff; box-shadow: 0 12px 28px rgba(3,22,53,.055); }
body.sports-plans-admin-page .sp-option-card-head { padding: 10px; border-bottom: 1px solid rgba(197,198,207,.55); background: #f8fafc; }
body.sports-plans-admin-page .sp-option-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; padding: 14px; }
body.sports-plans-admin-page .sp-option-name { grid-column: 1 / -1; }
body.sports-plans-admin-page .sp-option-unlimited-wrap { grid-column: 1 / -1; }
body.sports-plans-admin-page .sp-option-card:not(.is-enabled) .sp-option-fields { filter: grayscale(.25); }
body.sports-plans-admin-page .sp-form-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 10px; padding-top: 4px; }
body.sports-plans-admin-page fieldset:disabled .sp-choice-card { cursor: not-allowed; }
@media (max-width: 1100px) {
    body.sports-plans-admin-page .sp-field-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.sports-plans-admin-page .sp-choice-grid-3 { grid-template-columns: 1fr; }
    body.sports-plans-admin-page .sp-selection-list-turns { grid-template-columns: 1fr; }
}
@media (max-width: 760px) {
    body.sports-plans-admin-page .sp-choice-grid-2,
    body.sports-plans-admin-page .sp-selection-grid,
    body.sports-plans-admin-page .sp-option-grid,
    body.sports-plans-admin-page .sp-field-grid { grid-template-columns: 1fr; }
    body.sports-plans-admin-page .sp-selection-panel-wide { grid-column: auto; }
    body.sports-plans-admin-page .sp-option-fields { grid-template-columns: 1fr; padding: 12px; }
    body.sports-plans-admin-page .sp-option-name,
    body.sports-plans-admin-page .sp-option-unlimited-wrap { grid-column: auto; }
    body.sports-plans-admin-page .sp-selection-panel > header { flex-direction: column; }
    body.sports-plans-admin-page .sp-form-actions .btn { width: 100%; }
}

/* v1_8_406 - Turnos: canales de contratación con selección visible y accesible.
   Ambos controles son checkbox porque representan canales independientes:
   directo, planes, ambos o ninguno. Se evita .form-check-input para que los
   estilos globales no oculten el estado marcado. */
body.admin-turnos-page .turno-channel-field {
    min-width: 0;
}
body.admin-turnos-page .turno-channel-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 10px;
}
body.admin-turnos-page .turno-channel-intro {
    color: var(--dmp-exact-muted, #64748b);
    font-size: .82rem;
    line-height: 1.4;
}
body.admin-turnos-page .turno-channel-result {
    flex: 0 0 auto;
    max-width: 100%;
    padding: 5px 10px;
    border-radius: 999px;
    background: #e8f1ff;
    color: #075dc7;
    font-size: .74rem;
    font-weight: 800;
    line-height: 1.25;
    text-align: center;
}
body.admin-turnos-page .turno-channel-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
}
body.admin-turnos-page .turno-channel-card {
    position: relative;
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr) auto;
    align-items: start;
    gap: 11px;
    min-width: 0;
    margin: 0;
    padding: 14px;
    border: 1px solid rgba(197, 198, 207, .82);
    border-radius: 15px;
    background: var(--dmp-exact-surface-lowest, #fff);
    cursor: pointer;
    transition: border-color .15s ease, background-color .15s ease, box-shadow .15s ease, transform .08s ease;
    -webkit-tap-highlight-color: transparent;
}
body.admin-turnos-page .turno-channel-card:hover:not(.is-disabled) {
    border-color: rgba(2, 102, 255, .52);
    background: rgba(2, 102, 255, .025);
}
body.admin-turnos-page .turno-channel-card:active:not(.is-disabled) {
    transform: translateY(1px);
}
body.admin-turnos-page .turno-channel-card.is-checked {
    border-color: rgba(2, 102, 255, .68);
    background: rgba(2, 102, 255, .065);
    box-shadow: 0 0 0 3px rgba(2, 102, 255, .09);
}
body.admin-turnos-page .turno-channel-card.is-disabled {
    opacity: .58;
    cursor: not-allowed;
    background: #f8fafc;
}
body.admin-turnos-page .turno-channel-input {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    min-height: 1px !important;
    margin: 0 !important;
    padding: 0 !important;
    opacity: 0 !important;
    pointer-events: none !important;
}
body.admin-turnos-page .turno-channel-box {
    position: relative;
    display: block;
    width: 24px;
    height: 24px;
    margin-top: 1px;
    border: 2px solid #7c8798;
    border-radius: 7px;
    background: #fff;
    transition: background-color .15s ease, border-color .15s ease, box-shadow .15s ease;
}
body.admin-turnos-page .turno-channel-box i {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #fff;
    font-size: .92rem;
    opacity: 0;
}
body.admin-turnos-page .turno-channel-input:checked + .turno-channel-box,
body.admin-turnos-page .turno-channel-card.is-checked .turno-channel-box {
    border-color: var(--dmp-exact-action, #0266ff);
    background: var(--dmp-exact-action, #0266ff);
    box-shadow: 0 0 0 3px rgba(2, 102, 255, .12);
}
body.admin-turnos-page .turno-channel-input:checked + .turno-channel-box i,
body.admin-turnos-page .turno-channel-card.is-checked .turno-channel-box i {
    opacity: 1;
}
body.admin-turnos-page .turno-channel-input:focus-visible + .turno-channel-box {
    outline: 3px solid rgba(2, 102, 255, .24);
    outline-offset: 2px;
}
body.admin-turnos-page .turno-channel-copy {
    display: grid;
    gap: 4px;
    min-width: 0;
    line-height: 1.32;
    text-transform: none;
    letter-spacing: normal;
}
body.admin-turnos-page .turno-channel-copy strong {
    color: var(--dmp-exact-text, #1f2937);
    font-size: .91rem;
    font-weight: 800;
}
body.admin-turnos-page .turno-channel-copy small {
    color: var(--dmp-exact-muted, #64748b);
    font-size: .78rem;
    line-height: 1.42;
}
body.admin-turnos-page .turno-channel-state {
    align-self: start;
    padding: 4px 8px;
    border-radius: 999px;
    background: #eef2f7;
    color: #64748b;
    font-size: .68rem;
    font-weight: 800;
    white-space: nowrap;
}
body.admin-turnos-page .turno-channel-card.is-checked .turno-channel-state {
    background: #dceaff;
    color: #075dc7;
}
body.admin-turnos-page .turno-channel-summary {
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 11px;
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid rgba(197, 198, 207, .74);
    border-radius: 14px;
    background: #f8fafc;
}
body.admin-turnos-page .turno-channel-summary > i {
    display: grid;
    place-items: center;
    width: 34px;
    height: 34px;
    border-radius: 10px;
    background: #e8f1ff;
    color: #075dc7;
    font-size: 1rem;
}
body.admin-turnos-page .turno-channel-summary > div {
    display: grid;
    gap: 2px;
    min-width: 0;
}
body.admin-turnos-page .turno-channel-summary strong {
    color: var(--dmp-exact-text, #1f2937);
    font-size: .86rem;
}
body.admin-turnos-page .turno-channel-summary span {
    color: var(--dmp-exact-muted, #64748b);
    font-size: .76rem;
    line-height: 1.4;
}
body.admin-turnos-page .turno-channel-summary.is-plans > i {
    background: #efe8ff;
    color: #6d28d9;
}
body.admin-turnos-page .turno-channel-summary.is-mixed > i {
    background: #e6f7ef;
    color: #087a4b;
}
body.admin-turnos-page .turno-channel-summary.is-hidden {
    border-color: rgba(217, 119, 6, .34);
    background: #fff9ed;
}
body.admin-turnos-page .turno-channel-summary.is-hidden > i {
    background: #ffedd5;
    color: #b45309;
}
@media (max-width: 820px) {
    body.admin-turnos-page .turno-channel-heading {
        flex-direction: column;
    }
    body.admin-turnos-page .turno-channel-result {
        align-self: flex-start;
    }
    body.admin-turnos-page .turno-channel-grid {
        grid-template-columns: 1fr;
    }
}
@media (max-width: 480px) {
    body.admin-turnos-page .turno-channel-card {
        grid-template-columns: 24px minmax(0, 1fr);
    }
    body.admin-turnos-page .turno-channel-state {
        grid-column: 2;
        justify-self: start;
    }
}

/* v1_8_414 - Formularios de niveles y Planes Deportivos sin acciones redundantes */
body.sports-plans-admin-page .sp-form-card { display: none; }
body.sports-plans-admin-page .sp-form-card.is-visible { display: block; }
body.sports-plans-admin-page #sportsPlanFormCard { scroll-margin-top: 18px; }

/* v1_8_432 - Planes Deportivos: edición consistente, loader seguro y experiencia móvil */
body.sports-plans-admin-page .role-content,
body.sports-plans-admin-page .sp-form-card,
body.sports-plans-admin-page .sp-form-card .cardx-body,
body.sports-plans-admin-page [data-sports-plan-form],
body.sports-plans-admin-page [data-sports-plan-form] fieldset,
body.sports-plans-admin-page .sp-selection-grid,
body.sports-plans-admin-page .sp-selection-panel,
body.sports-plans-admin-page .sp-selection-list,
body.sports-plans-admin-page .sp-option-grid,
body.sports-plans-admin-page .sp-option-card,
body.sports-plans-admin-page .sp-table-wrapper {
    min-width: 0;
    max-width: 100%;
}
body.sports-plans-admin-page .sp-selection-list {
    overflow-x: hidden;
}
body.sports-plans-admin-page .sp-selection-panel > header,
body.sports-plans-admin-page .cardx-header {
    min-width: 0;
    flex-wrap: wrap;
}
body.sports-plans-admin-page .sp-selection-count,
body.sports-plans-admin-page .badge-soft {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
}
body.sports-plans-admin-page .sp-table-wrapper {
    width: 100%;
}
body.sports-plans-admin-page .sp-plans-table .table-actions {
    white-space: normal;
}
body.sports-plans-admin-page .sp-plans-table .table-actions form {
    display: inline-block;
    margin-left: 6px;
}
body.sports-plans-admin-page .sp-empty-table-row td::before {
    display: none !important;
}

@media (max-width: 760px) {
    body.sports-plans-admin-page .role-hero {
        align-items: stretch;
    }
    body.sports-plans-admin-page .role-hero-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        width: 100%;
        gap: 10px;
    }
    body.sports-plans-admin-page .role-hero-actions > a,
    body.sports-plans-admin-page .role-hero-actions > button {
        width: 100%;
        min-width: 0;
        justify-content: center;
        text-align: center;
        white-space: normal;
    }
    body.sports-plans-admin-page .sp-information-banner {
        align-items: flex-start;
        padding: 13px 14px;
    }
    body.sports-plans-admin-page .sp-form-card .cardx-header,
    body.sports-plans-admin-page .sp-form-card .cardx-body,
    body.sports-plans-admin-page .cardx > .cardx-header,
    body.sports-plans-admin-page .cardx > .cardx-body {
        padding-left: 14px;
        padding-right: 14px;
    }
    body.sports-plans-admin-page .grid-2,
    body.sports-plans-admin-page .sp-choice-grid-2,
    body.sports-plans-admin-page .sp-choice-grid-3,
    body.sports-plans-admin-page .sp-selection-grid,
    body.sports-plans-admin-page .sp-selection-list-turns,
    body.sports-plans-admin-page .sp-option-grid,
    body.sports-plans-admin-page .sp-field-grid,
    body.sports-plans-admin-page .sp-option-fields {
        grid-template-columns: minmax(0, 1fr) !important;
    }
    body.sports-plans-admin-page .sp-choice-card,
    body.sports-plans-admin-page .sp-option-card,
    body.sports-plans-admin-page .sp-selection-panel {
        width: 100%;
        min-width: 0;
    }
    body.sports-plans-admin-page .sp-choice-card {
        padding: 12px;
    }
    body.sports-plans-admin-page .sp-choice-copy strong,
    body.sports-plans-admin-page .sp-choice-copy small,
    body.sports-plans-admin-page .sp-section-heading h2,
    body.sports-plans-admin-page .sp-section-heading p,
    body.sports-plans-admin-page .sp-form-header strong,
    body.sports-plans-admin-page .sp-form-header small {
        overflow-wrap: anywhere;
        word-break: normal;
    }
    body.sports-plans-admin-page .sp-selection-panel > header {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 8px;
        padding: 12px;
    }
    body.sports-plans-admin-page .sp-selection-count {
        justify-self: start;
    }
    body.sports-plans-admin-page .sp-selection-list {
        max-height: none;
        padding: 9px;
    }
    body.sports-plans-admin-page .sp-form-actions {
        display: grid;
        grid-template-columns: minmax(0, 1fr);
        gap: 10px;
    }
    body.sports-plans-admin-page .sp-form-actions .btn {
        width: 100%;
        min-height: 46px;
        justify-content: center;
        white-space: normal;
    }
    body.sports-plans-admin-page .sp-plans-table .table-actions {
        grid-template-columns: minmax(0, 1fr) !important;
    }
    body.sports-plans-admin-page .sp-plans-table .table-actions form {
        display: block;
        margin-left: 0;
    }
    body.sports-plans-admin-page .sp-empty-table-row {
        padding: 0 !important;
        border: 0 !important;
        box-shadow: none !important;
        background: transparent !important;
    }
    body.sports-plans-admin-page .sp-empty-table-row td {
        padding: 14px !important;
        border: 1px dashed rgba(148, 163, 184, .65) !important;
        border-radius: 16px;
        background: #f8fafc;
    }
}

@media (max-width: 430px) {
    body.sports-plans-admin-page .sp-information-banner {
        display: grid;
        grid-template-columns: 30px minmax(0, 1fr);
        gap: 9px;
        border-radius: 14px;
    }
    body.sports-plans-admin-page .sp-form-card,
    body.sports-plans-admin-page .sp-selection-panel,
    body.sports-plans-admin-page .sp-option-card {
        border-radius: 16px;
    }
    body.sports-plans-admin-page .sp-section-heading > div {
        gap: 8px;
    }
    body.sports-plans-admin-page .sp-step {
        flex-basis: 28px;
        width: 28px;
        height: 28px;
        border-radius: 9px;
    }
    body.sports-plans-admin-page .sp-choice-card {
        grid-template-columns: 22px minmax(0, 1fr);
        gap: 9px;
        padding: 11px;
        border-radius: 12px;
    }
    body.sports-plans-admin-page .sp-option-fields {
        padding: 11px;
        gap: 10px;
    }
}

/* v1_8_434 · revisión de solicitudes de nivel para Planes Deportivos */
.sports-plan-level-review-form {display:grid;gap:7px;min-width:220px;max-width:300px;}
.sports-plan-level-review-form .btn {justify-content:center;}
@media (max-width:720px){
    .sports-plan-level-review-form {min-width:0;max-width:none;width:100%;}
    .sports-plan-level-review-card .table-responsive {overflow:visible;}
    .sports-plan-level-review-card .responsive-card-table tbody tr {display:block;padding:14px;border:1px solid #e2e8f0;border-radius:14px;margin:10px;background:#fff;}
    .sports-plan-level-review-card .responsive-card-table tbody td {display:grid;grid-template-columns:minmax(90px,32%) minmax(0,1fr);gap:10px;border:0;padding:7px 0;white-space:normal;}
    .sports-plan-level-review-card .responsive-card-table tbody td::before {content:attr(data-label);font-weight:700;color:#475569;}
    .sports-plan-level-review-card .responsive-card-table thead {display:none;}
}
