/* =====================================================================
   00_TOKENS — FUENTE ÚNICA DE TOKENS DE MARCA
   ETAPA 3 · TANDA 1 (solo CSS, cero cambio funcional).

   Este archivo es la ÚNICA capa que define las custom properties de marca
   del portal. El prefijo "00_" garantiza que carga PRIMERO (orden
   alfabético de Dash), antes que todos los componentes que las consumen.

   Es la UNIÓN COMPLETA de los dos :root que antes estaban duplicados en
   z_theme.css (v1) y zz_design_v2.css (v2). En las variables que existían
   en AMBOS (colisiones), se conserva SIEMPRE el valor de zz_design_v2.css
   (paleta canónica navy + dorado), que es el que ya ganaba en pantalla por
   orden de cascada. Por eso el resultado visual es PIXEL-IDÉNTICO.

   Procedencia de cada token (para auditoría):
     [v2]   = venía de zz_design_v2.css (solo ahí).
     [coli] = estaba en ambos; se usa el valor de v2 (el que hoy gana).
     [v1]   = venía solo de z_theme.css (no estaba en v2).

   NO reintroducir estas variables en z_theme.css ni en zz_design_v2.css:
   sus :root quedaron vacíos a propósito.

   Nota: las variables --ag-* (tema AG Grid) NO viven aquí; están en
   assets/ag-theme-portal.css (clase .ag-theme-portal), porque tienen scope
   de componente, no de :root.
   ===================================================================== */
:root {
    /* --- Superficies / fondo --- */
    --color-bg: #eaeef4;            /* [coli] v1 #f4f6f8 → v2 */
    --color-surface: #ffffff;       /* [coli] v1 = v2 (idéntico) */
    --color-surface-soft: #f4f7fb;  /* [coli] v1 #f8fafc → v2 */
    --color-surface-2: #eef2f8;     /* [v2] */

    /* --- Marca navy --- */
    --color-primary: #16365d;       /* [coli] v1 #1f3a5f → v2 */
    --color-primary-2: #1d4f8a;     /* [coli] v1 #2d4f7c → v2 */
    --color-primary-soft: #e7eef8;  /* [coli] v1 #eaf1f8 → v2 */
    --brand-1: #0c1f38;             /* [v2] */
    --brand-2: #112a49;             /* [v2] */
    --brand-3: #16365d;             /* [v2] */

    /* --- Acento dorado (uso restringido: indicadores, foco, detalles) --- */
    --accent: #c79a3a;              /* [v2] */
    --accent-2: #b07f24;            /* [v2] */
    --accent-soft: #f5ecd4;         /* [v2] */

    /* --- Texto --- */
    --color-text: #15202f;          /* [coli] v1 #1f2937 → v2 */
    --color-text-soft: #50607a;     /* [coli] v1 #6b7280 → v2 */
    --color-text-muted: #8493ab;    /* [coli] v1 #94a3b8 → v2 */
    --color-on-brand: #eaf1fb;      /* [v2] */
    --color-on-brand-soft: #9fb3d0; /* [v2] */

    /* --- Bordes --- */
    --color-border: #dce3ed;        /* [coli] v1 #d9e2ec → v2 */
    --color-border-strong: #c4cedd; /* [coli] v1 #c3cfdb → v2 */
    --color-hairline: #eaeff6;      /* [v2] */

    /* --- Semánticos (datos) --- */
    --color-success: #1a7f4b;       /* [coli] v1 #2e7d57 → v2 */
    --color-success-soft: #e4f4ea;  /* [v2] */
    --color-warning: #b25e09;       /* [coli] v1 #c7921e → v2 */
    --color-warning-soft: #fbeed9;  /* [v2] */
    --color-danger: #b42318;        /* [coli] v1 #b54747 → v2 */
    --color-danger-soft: #fbe7e4;   /* [v2] */
    --color-info: #1849a9;          /* [coli] v1 #3d6ea8 → v2 */
    --color-info-soft: #e6edfa;     /* [v2] */

    /* --- Colores de DATOS (énfasis numérico en tablas/inline; ETAPA 3 · T4).
       Más vivos que los semánticos de componente; conservan los hex que ya
       usaban los inline para que la migración no cambie el aspecto. --- */
    --data-pos: #059669;            /* verde positivo (ganancia/cobrado en datos) */
    --data-neg: #dc2626;            /* rojo negativo (pérdida/vencido en datos) */
    --data-error: #991b1b;          /* rojo profundo (texto de error / badges) */

    /* --- Sombras (tinte navy frío, profundidad por capas) --- */
    --shadow-xs: 0 1px 2px rgba(15, 33, 58, 0.06);                                   /* [coli] v1 rgba(15,23,42,0.05) → v2 */
    --shadow-sm: 0 1px 2px rgba(15, 33, 58, 0.05), 0 2px 8px -2px rgba(15, 33, 58, 0.10); /* [coli] v1 0 2px 8px rgba(15,23,42,0.06) → v2 */
    --shadow-md: 0 10px 26px -10px rgba(15, 33, 58, 0.20);                           /* [coli] v1 0 6px 20px rgba(15,23,42,0.08) → v2 */
    --shadow-lg: 0 26px 54px -18px rgba(12, 28, 52, 0.34);                           /* [v2] */

    /* --- Radios --- */
    --radius-sm: 8px;   /* [coli] v1 = v2 (idéntico) */
    --radius-md: 12px;  /* [coli] v1 = v2 (idéntico) */
    --radius-lg: 16px;  /* [coli] v1 = v2 (idéntico) */
    --radius-xl: 22px;  /* [v2] */

    /* --- Espaciado (solo definido en v1; ningún cambio de valor) --- */
    --space-1: 4px;   /* [v1] */
    --space-2: 8px;   /* [v1] */
    --space-3: 12px;  /* [v1] */
    --space-4: 16px;  /* [v1] */
    --space-5: 20px;  /* [v1] */
    --space-6: 24px;  /* [v1] */
    --space-7: 32px;  /* [v1] */

    /* --- Tipografía --- */
    --font-base: 'IBM Plex Sans', 'Segoe UI', system-ui, -apple-system, Roboto, sans-serif; /* [coli] v1 Inter… → v2 */
    --font-num: 'IBM Plex Mono', ui-monospace, 'SFMono-Regular', Consolas, monospace;       /* [v2] */
    --font-mono: 'IBM Plex Mono', ui-monospace, Consolas, monospace;                        /* [coli] v1 SFMono… → v2 */

    /* --- Movimiento --- */
    --ease: cubic-bezier(0.4, 0, 0.2, 1);        /* [v2] */
    --ease-out: cubic-bezier(0.16, 1, 0.3, 1);   /* [v2] */
    --transition-fast: 0.16s var(--ease);        /* [coli] v1 0.18s ease → v2 */
    --transition: 0.24s var(--ease);             /* [v2] */

    /* --- Layout --- */
    --sidebar-width: 264px;  /* [coli] v1 260px → v2 */
    --header-height: 68px;   /* [coli] v1 72px → v2 */
}

/* =====================================================================
   TEMAS PADELVISION (B-087 paso 1) — se activan solo con data-theme en <html>
   (lo pone assets/00_tema.js, con ?tema=<id>). Sin el atributo no aplica
   nada de lo que sigue: el :root de arriba es el default y no cambia.

   Fuente de los valores: traspasos/anexos/padelvision_tokens.md
   (sistema «PadelVision Back Office», tokens.json v1). Mismos nombres de
   variable que el :root; :root[data-theme] le gana en cualquier orden.

   La fuente solo se descarga cuando un elemento la usa: con el tema actual
   nadie pide el woff2.
   ===================================================================== */
@font-face {
    font-family: "Plus Jakarta Sans";
    src: url("fonts/PlusJakartaSans-var.woff2") format("woff2");
    font-weight: 200 800;
    font-style: normal;
    font-display: swap;
}


:root[data-theme="menta"] {
    /* --- Superficies / fondo --- */
    --color-bg: #ebf3ee;  /* bg-app */
    --color-surface: #ffffff;  /* surface */
    --color-surface-soft: #f1f6f3;  /* surface-sunken */
    --color-surface-2: #f1f6f3;  /* surface-sunken */
    /* --- Marca --- */
    --color-primary: #1a7448;  /* brand-ink */
    --color-primary-2: #1a7448;  /* brand-ink */
    --color-primary-soft: #d3efdf;  /* brand-soft */
    --brand-1: #1d4a45;  /* deep */
    --brand-2: #1d4a45;  /* deep */
    --brand-3: #1d4a45;  /* deep */
    /* --- Acento --- */
    --accent: #62cc93;  /* brand */
    --accent-2: #1a7448;  /* brand-ink */
    --accent-soft: #d3efdf;  /* brand-soft */
    /* --- Texto --- */
    --color-text: #17261e;  /* ink */
    --color-text-soft: #526158;  /* ink-muted */
    --color-text-muted: #526158;  /* ink-muted */
    --color-on-brand: #0c2a1b;  /* on-brand */
    --color-on-brand-soft: #526158;  /* ink-muted */
    /* --- Bordes --- */
    --color-border: #dce6e0;  /* line */
    --color-border-strong: #74897b;  /* line-strong */
    --color-hairline: #dce6e0;  /* line */
    /* --- Semánticos --- */
    --color-success: #0a7770;  /* success */
    --color-success-soft: #d6f0ec;  /* success-soft */
    --color-warning: #855000;  /* warning */
    --color-warning-soft: #fbebc8;  /* warning-soft */
    --color-danger: #b3261e;  /* danger */
    --color-danger-soft: #faddda;  /* danger-soft */
    --color-info: #2058a6;  /* info */
    --color-info-soft: #dce8f8;  /* info-soft */
    /* --- Datos --- */
    --data-pos: #0a7770;  /* success */
    --data-neg: #b3261e;  /* danger */
    --data-error: #b3261e;  /* danger */
    /* --- Solo del tema (los usan ag-theme-portal.css, zz_design_v2.css y zz_tema_padelvision.css) --- */
    --grid-header-bg: #f1f6f3;  /* surface-sunken */
    --grid-header-ink: #17261e;  /* ink */
    --grid-odd-row: #ffffff;  /* surface */
    --grid-selected-row: #d3efdf;  /* brand-soft */
    --focus-ring: #1b5fbf;  /* focus */
    --pv-on-brand: #0c2a1b;  /* on-brand */
    --pv-on-brand-soft: #115238;  /* on-brand-soft */
    --pv-on-deep: #ffffff;  /* on-deep */
    --pv-on-deep-muted: #b9d4ce;  /* on-deep-muted */
    /* --- Sombras (PV tiene 2 niveles; el portal, 4) --- */
    --shadow-xs: 0 1px 2px rgba(23, 38, 30, 0.06), 0 8px 24px rgba(23, 38, 30, 0.06);
    --shadow-sm: 0 1px 2px rgba(23, 38, 30, 0.06), 0 8px 24px rgba(23, 38, 30, 0.06);
    --shadow-md: 0 4px 8px rgba(23, 38, 30, 0.08), 0 16px 40px rgba(23, 38, 30, 0.14);
    --shadow-lg: 0 4px 8px rgba(23, 38, 30, 0.08), 0 16px 40px rgba(23, 38, 30, 0.14);
    /* --- Radios (sm y md son iguales a los del :root) --- */
    --radius-lg: 20px;
    --radius-xl: 28px;
    /* --- Tipografía --- */
    --font-base: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    --font-num: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

:root[data-theme="menta-noche"] {
    /* --- Superficies / fondo --- */
    --color-bg: #0e1713;  /* bg-app */
    --color-surface: #16231d;  /* surface */
    --color-surface-soft: #1d2d26;  /* surface-sunken */
    --color-surface-2: #1d2d26;  /* surface-sunken */
    /* --- Marca --- */
    --color-primary: #7fe0af;  /* brand-ink */
    --color-primary-2: #7fe0af;  /* brand-ink */
    --color-primary-soft: #1f4a38;  /* brand-soft */
    --brand-1: #245a52;  /* deep */
    --brand-2: #245a52;  /* deep */
    --brand-3: #245a52;  /* deep */
    /* --- Acento --- */
    --accent: #6dd8a3;  /* brand */
    --accent-2: #7fe0af;  /* brand-ink */
    --accent-soft: #1f4a38;  /* brand-soft */
    /* --- Texto --- */
    --color-text: #eaf4ee;  /* ink */
    --color-text-soft: #a5baae;  /* ink-muted */
    --color-text-muted: #a5baae;  /* ink-muted */
    --color-on-brand: #062a1a;  /* on-brand */
    --color-on-brand-soft: #a5baae;  /* ink-muted */
    /* --- Bordes --- */
    --color-border: #263a31;  /* line */
    --color-border-strong: #73917f;  /* line-strong */
    --color-hairline: #263a31;  /* line */
    /* --- Semánticos --- */
    --color-success: #4fd1c5;  /* success */
    --color-success-soft: #123a37;  /* success-soft */
    --color-warning: #f2b84b;  /* warning */
    --color-warning-soft: #3f3112;  /* warning-soft */
    --color-danger: #ff8a80;  /* danger */
    --color-danger-soft: #471e1c;  /* danger-soft */
    --color-info: #7db1f5;  /* info */
    --color-info-soft: #1b3150;  /* info-soft */
    /* --- Datos --- */
    --data-pos: #4fd1c5;  /* success */
    --data-neg: #ff8a80;  /* danger */
    --data-error: #ff8a80;  /* danger */
    /* --- Solo del tema (los usan ag-theme-portal.css, zz_design_v2.css y zz_tema_padelvision.css) --- */
    --grid-header-bg: #1d2d26;  /* surface-sunken */
    --grid-header-ink: #eaf4ee;  /* ink */
    --grid-odd-row: #16231d;  /* surface */
    --grid-selected-row: #1f4a38;  /* brand-soft */
    --focus-ring: #8cb8ff;  /* focus */
    --pv-on-brand: #062a1a;  /* on-brand */
    --pv-on-brand-soft: #c2eed8;  /* on-brand-soft */
    --pv-on-deep: #ffffff;  /* on-deep */
    --pv-on-deep-muted: #c2ddd6;  /* on-deep-muted */
    /* --- Sombras (PV tiene 2 niveles; el portal, 4) --- */
    --shadow-xs: 0 0 0 1px rgba(255, 255, 255, 0.04), 0 8px 24px rgba(0, 0, 0, 0.35);
    --shadow-sm: 0 0 0 1px rgba(255, 255, 255, 0.04), 0 8px 24px rgba(0, 0, 0, 0.35);
    --shadow-md: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 16px 40px rgba(0, 0, 0, 0.5);
    --shadow-lg: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 16px 40px rgba(0, 0, 0, 0.5);
    /* --- Radios (sm y md son iguales a los del :root) --- */
    --radius-lg: 20px;
    --radius-xl: 28px;
    /* --- Tipografía --- */
    --font-base: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    --font-num: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

:root[data-theme="cancha"] {
    /* --- Superficies / fondo --- */
    --color-bg: #e9f0f8;  /* bg-app */
    --color-surface: #ffffff;  /* surface */
    --color-surface-soft: #f0f5fa;  /* surface-sunken */
    --color-surface-2: #f0f5fa;  /* surface-sunken */
    /* --- Marca --- */
    --color-primary: #1f5ea6;  /* brand-ink */
    --color-primary-2: #1f5ea6;  /* brand-ink */
    --color-primary-soft: #d5e5f7;  /* brand-soft */
    --brand-1: #14335c;  /* deep */
    --brand-2: #14335c;  /* deep */
    --brand-3: #14335c;  /* deep */
    /* --- Acento --- */
    --accent: #2e6fb7;  /* brand */
    --accent-2: #1f5ea6;  /* brand-ink */
    --accent-soft: #d5e5f7;  /* brand-soft */
    /* --- Texto --- */
    --color-text: #14233a;  /* ink */
    --color-text-soft: #4f6078;  /* ink-muted */
    --color-text-muted: #4f6078;  /* ink-muted */
    --color-on-brand: #ffffff;  /* on-brand */
    --color-on-brand-soft: #4f6078;  /* ink-muted */
    /* --- Bordes --- */
    --color-border: #d8e2ee;  /* line */
    --color-border-strong: #6b809a;  /* line-strong */
    --color-hairline: #d8e2ee;  /* line */
    /* --- Semánticos --- */
    --color-success: #0a7770;  /* success */
    --color-success-soft: #d6f0ec;  /* success-soft */
    --color-warning: #855000;  /* warning */
    --color-warning-soft: #fbebc8;  /* warning-soft */
    --color-danger: #b3261e;  /* danger */
    --color-danger-soft: #faddda;  /* danger-soft */
    --color-info: #3e4fa3;  /* info */
    --color-info-soft: #e0e4f6;  /* info-soft */
    /* --- Datos --- */
    --data-pos: #0a7770;  /* success */
    --data-neg: #b3261e;  /* danger */
    --data-error: #b3261e;  /* danger */
    /* --- Solo del tema (los usan ag-theme-portal.css, zz_design_v2.css y zz_tema_padelvision.css) --- */
    --grid-header-bg: #f0f5fa;  /* surface-sunken */
    --grid-header-ink: #14233a;  /* ink */
    --grid-odd-row: #ffffff;  /* surface */
    --grid-selected-row: #d5e5f7;  /* brand-soft */
    --focus-ring: #b45309;  /* focus */
    --pv-on-brand: #ffffff;  /* on-brand */
    --pv-on-brand-soft: #163f72;  /* on-brand-soft */
    --pv-on-deep: #ffffff;  /* on-deep */
    --pv-on-deep-muted: #bccde3;  /* on-deep-muted */
    /* --- Sombras (PV tiene 2 niveles; el portal, 4) --- */
    --shadow-xs: 0 1px 2px rgba(20, 35, 58, 0.06), 0 8px 24px rgba(20, 35, 58, 0.06);
    --shadow-sm: 0 1px 2px rgba(20, 35, 58, 0.06), 0 8px 24px rgba(20, 35, 58, 0.06);
    --shadow-md: 0 4px 8px rgba(20, 35, 58, 0.08), 0 16px 40px rgba(20, 35, 58, 0.14);
    --shadow-lg: 0 4px 8px rgba(20, 35, 58, 0.08), 0 16px 40px rgba(20, 35, 58, 0.14);
    /* --- Radios (sm y md son iguales a los del :root) --- */
    --radius-lg: 20px;
    --radius-xl: 28px;
    /* --- Tipografía --- */
    --font-base: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    --font-num: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

:root[data-theme="noche-lima"] {
    /* --- Superficies / fondo --- */
    --color-bg: #0b0d0f;  /* bg-app */
    --color-surface: #15191c;  /* surface */
    --color-surface-soft: #1d2226;  /* surface-sunken */
    --color-surface-2: #1d2226;  /* surface-sunken */
    /* --- Marca --- */
    --color-primary: #c6f135;  /* brand-ink */
    --color-primary-2: #c6f135;  /* brand-ink */
    --color-primary-soft: #2b3612;  /* brand-soft */
    --brand-1: #1a2b2e;  /* deep */
    --brand-2: #1a2b2e;  /* deep */
    --brand-3: #1a2b2e;  /* deep */
    /* --- Acento --- */
    --accent: #c6f135;  /* brand */
    --accent-2: #c6f135;  /* brand-ink */
    --accent-soft: #2b3612;  /* brand-soft */
    /* --- Texto --- */
    --color-text: #f2f5f6;  /* ink */
    --color-text-soft: #9aa7af;  /* ink-muted */
    --color-text-muted: #9aa7af;  /* ink-muted */
    --color-on-brand: #131a05;  /* on-brand */
    --color-on-brand-soft: #9aa7af;  /* ink-muted */
    /* --- Bordes --- */
    --color-border: #262d32;  /* line */
    --color-border-strong: #6c7882;  /* line-strong */
    --color-hairline: #262d32;  /* line */
    /* --- Semánticos --- */
    --color-success: #34d3c0;  /* success */
    --color-success-soft: #0f3631;  /* success-soft */
    --color-warning: #ffc857;  /* warning */
    --color-warning-soft: #3a2e0e;  /* warning-soft */
    --color-danger: #ff7a70;  /* danger */
    --color-danger-soft: #45201d;  /* danger-soft */
    --color-info: #63b3ff;  /* info */
    --color-info-soft: #14304d;  /* info-soft */
    /* --- Datos --- */
    --data-pos: #34d3c0;  /* success */
    --data-neg: #ff7a70;  /* danger */
    --data-error: #ff7a70;  /* danger */
    /* --- Solo del tema (los usan ag-theme-portal.css, zz_design_v2.css y zz_tema_padelvision.css) --- */
    --grid-header-bg: #1d2226;  /* surface-sunken */
    --grid-header-ink: #f2f5f6;  /* ink */
    --grid-odd-row: #15191c;  /* surface */
    --grid-selected-row: #2b3612;  /* brand-soft */
    --focus-ring: #7dbbff;  /* focus */
    --pv-on-brand: #131a05;  /* on-brand */
    --pv-on-brand-soft: #ddf58a;  /* on-brand-soft */
    --pv-on-deep: #f2f5f6;  /* on-deep */
    --pv-on-deep-muted: #a6b8bc;  /* on-deep-muted */
    /* --- Sombras (PV tiene 2 niveles; el portal, 4) --- */
    --shadow-xs: 0 0 0 1px rgba(255, 255, 255, 0.04), 0 8px 24px rgba(0, 0, 0, 0.35);
    --shadow-sm: 0 0 0 1px rgba(255, 255, 255, 0.04), 0 8px 24px rgba(0, 0, 0, 0.35);
    --shadow-md: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 16px 40px rgba(0, 0, 0, 0.5);
    --shadow-lg: 0 0 0 1px rgba(255, 255, 255, 0.06), 0 16px 40px rgba(0, 0, 0, 0.5);
    /* --- Radios (sm y md son iguales a los del :root) --- */
    --radius-lg: 20px;
    --radius-xl: 28px;
    /* --- Tipografía --- */
    --font-base: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    --font-num: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}

:root[data-theme="arcilla"] {
    /* --- Superficies / fondo --- */
    --color-bg: #f5eee7;  /* bg-app */
    --color-surface: #fffdfa;  /* surface */
    --color-surface-soft: #f8f1ea;  /* surface-sunken */
    --color-surface-2: #f8f1ea;  /* surface-sunken */
    /* --- Marca --- */
    --color-primary: #a8420f;  /* brand-ink */
    --color-primary-2: #a8420f;  /* brand-ink */
    --color-primary-soft: #f8dccb;  /* brand-soft */
    --brand-1: #4a2a1c;  /* deep */
    --brand-2: #4a2a1c;  /* deep */
    --brand-3: #4a2a1c;  /* deep */
    /* --- Acento --- */
    --accent: #e2703a;  /* brand */
    --accent-2: #a8420f;  /* brand-ink */
    --accent-soft: #f8dccb;  /* brand-soft */
    /* --- Texto --- */
    --color-text: #2a1d16;  /* ink */
    --color-text-soft: #6a574c;  /* ink-muted */
    --color-text-muted: #6a574c;  /* ink-muted */
    --color-on-brand: #2a1206;  /* on-brand */
    --color-on-brand-soft: #6a574c;  /* ink-muted */
    /* --- Bordes --- */
    --color-border: #e6dace;  /* line */
    --color-border-strong: #82695a;  /* line-strong */
    --color-hairline: #e6dace;  /* line */
    /* --- Semánticos --- */
    --color-success: #0a7770;  /* success */
    --color-success-soft: #d6f0ec;  /* success-soft */
    --color-warning: #6f5600;  /* warning */
    --color-warning-soft: #f6ebc0;  /* warning-soft */
    --color-danger: #a8123a;  /* danger */
    --color-danger-soft: #f9dce3;  /* danger-soft */
    --color-info: #2058a6;  /* info */
    --color-info-soft: #dce8f8;  /* info-soft */
    /* --- Datos --- */
    --data-pos: #0a7770;  /* success */
    --data-neg: #a8123a;  /* danger */
    --data-error: #a8123a;  /* danger */
    /* --- Solo del tema (los usan ag-theme-portal.css, zz_design_v2.css y zz_tema_padelvision.css) --- */
    --grid-header-bg: #f8f1ea;  /* surface-sunken */
    --grid-header-ink: #2a1d16;  /* ink */
    --grid-odd-row: #fffdfa;  /* surface */
    --grid-selected-row: #f8dccb;  /* brand-soft */
    --focus-ring: #1b5fbf;  /* focus */
    --pv-on-brand: #2a1206;  /* on-brand */
    --pv-on-brand-soft: #7a2d0c;  /* on-brand-soft */
    --pv-on-deep: #fff8f2;  /* on-deep */
    --pv-on-deep-muted: #dcc5b8;  /* on-deep-muted */
    /* --- Sombras (PV tiene 2 niveles; el portal, 4) --- */
    --shadow-xs: 0 1px 2px rgba(42, 29, 22, 0.06), 0 8px 24px rgba(42, 29, 22, 0.06);
    --shadow-sm: 0 1px 2px rgba(42, 29, 22, 0.06), 0 8px 24px rgba(42, 29, 22, 0.06);
    --shadow-md: 0 4px 8px rgba(42, 29, 22, 0.08), 0 16px 40px rgba(42, 29, 22, 0.14);
    --shadow-lg: 0 4px 8px rgba(42, 29, 22, 0.08), 0 16px 40px rgba(42, 29, 22, 0.14);
    /* --- Radios (sm y md son iguales a los del :root) --- */
    --radius-lg: 20px;
    --radius-xl: 28px;
    /* --- Tipografía --- */
    --font-base: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
    --font-num: "Plus Jakarta Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
}
