/**
 * pando-tokens.css — Sistema de Tokens de Diseño Canónico para PandoWorkshop
 * Fuente única de verdad para tokens visuales (--pw-*).
 * En F0 los tokens derivan de los tokens legados --v2-* para garantizar 100% fidelidad visual.
 */

/* === Variables heredadas de las 5 hojas antiguas (generado por scripts/extract-legacy-vars.py) ===
   Solo variables que el estándar usa, en el orden de carga original. Permiten desconectar las hojas
   sin perder los 9 presets. No editar a mano: regenerar con el script. */

/* --- de pandonymus-themes.css --- */
html[data-theme-engine="panda"][data-panda-theme="cyberpunk"],
html[data-theme-engine="panda"][data-panda-theme="cyberpunk"] body,
html[data-theme-engine="panda"][data-panda-theme="cyberpunk"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="cyberpunk"] .theme-v2,
html[data-theme-engine="panda"]:not([data-panda-theme]),
html[data-theme-engine="panda"]:not([data-panda-theme]) body,
html[data-theme-engine="panda"]:not([data-panda-theme]).theme-v2,
html[data-theme-engine="panda"]:not([data-panda-theme]) .theme-v2 {
    --v2-bg-root: #060913;
    --v2-bg-panel: #090e1a;
    --v2-bg-card: rgba(14, 22, 38, 0.88);
    --v2-bg-card-raised: rgba(19, 30, 52, 0.94);
    --v2-bg-input: rgba(13, 20, 36, 0.85);
    --v2-bg-input-focus: rgba(16, 26, 48, 0.98);
    --v2-sidebar-bg: linear-gradient(180deg, #0d1527 0%, #090e1c 50%, #060913 100%);
    --v2-sidebar-border: rgba(56, 189, 248, 0.22);
    --v2-cyan: #06b6d4;
    --v2-cyan-bright: #38bdf8;
    --v2-cyan-glow: rgba(6, 182, 212, 0.4);
    --v2-emerald: #10b981;
    --v2-emerald-bright: #34d399;
    --v2-emerald-glow: rgba(16, 185, 129, 0.4);
    --v2-violet: #8b5cf6;
    --v2-violet-bright: #c084fc;
    --v2-border: rgba(255, 255, 255, 0.1);
    --v2-border-strong: rgba(56, 189, 248, 0.28);
    --v2-border-active: rgba(6, 182, 212, 0.65);
    --v2-badge-bg: rgba(6, 182, 212, 0.15);
    --v2-cta-bg: linear-gradient(135deg, #0891b2 0%, #0d9488 60%, #059669 100%);
    --v2-cta-border: rgba(56, 189, 248, 0.6);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(6, 182, 212, 0.22) 0%, rgba(16, 185, 129, 0.1) 100%);
    --v2-sidebar-active-border: rgba(56, 189, 248, 0.45);
    --v2-sidebar-active-glow: rgba(6, 182, 212, 0.25);
    --v2-shadow-card: 0 12px 32px -4px rgba(0, 0, 0, 0.65), 0 0 1px 1px rgba(255, 255, 255, 0.06);
    --v2-shadow-glow-cyan: 0 0 25px rgba(6, 182, 212, 0.25);
    --primary-500: 16, 185, 129;
}
html[data-theme-engine="panda"][data-panda-theme="titanium"],
html[data-theme-engine="panda"][data-panda-theme="titanium"] body,
html[data-theme-engine="panda"][data-panda-theme="titanium"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="titanium"] .theme-v2 {
    --v2-bg-root: #0f1013;
    --v2-bg-panel: #131519;
    --v2-bg-card: rgba(23, 25, 31, 0.9);
    --v2-bg-card-raised: rgba(30, 33, 41, 0.95);
    --v2-bg-input: rgba(18, 20, 25, 0.85);
    --v2-bg-input-focus: rgba(24, 27, 34, 0.98);
    --v2-sidebar-bg: linear-gradient(180deg, #1b1d24 0%, #14161c 50%, #0f1013 100%);
    --v2-sidebar-border: rgba(245, 158, 11, 0.24);
    --v2-cyan: #f59e0b;
    --v2-cyan-bright: #fbbf24;
    --v2-cyan-glow: rgba(245, 158, 11, 0.45);
    --v2-emerald: #d97706;
    --v2-emerald-bright: #f59e0b;
    --v2-emerald-glow: rgba(217, 119, 6, 0.4);
    --v2-violet: #ea580c;
    --v2-violet-bright: #fb923c;
    --v2-border: rgba(255, 255, 255, 0.08);
    --v2-border-strong: rgba(245, 158, 11, 0.3);
    --v2-border-active: rgba(251, 191, 36, 0.75);
    --v2-badge-bg: rgba(245, 158, 11, 0.16);
    --v2-cta-bg: linear-gradient(135deg, #d97706 0%, #b45309 60%, #92400e 100%);
    --v2-cta-border: rgba(251, 191, 36, 0.6);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(245, 158, 11, 0.25) 0%, rgba(217, 119, 6, 0.12) 100%);
    --v2-sidebar-active-border: rgba(251, 191, 36, 0.5);
    --v2-sidebar-active-glow: rgba(245, 158, 11, 0.28);
    --v2-shadow-card: 0 12px 32px -4px rgba(0, 0, 0, 0.75), 0 0 1px 1px rgba(245, 158, 11, 0.1);
    --v2-shadow-glow-cyan: 0 0 25px rgba(245, 158, 11, 0.28);
    --primary-500: 245, 158, 11;
}
html[data-theme-engine="panda"][data-panda-theme="emerald"],
html[data-theme-engine="panda"][data-panda-theme="emerald"] body,
html[data-theme-engine="panda"][data-panda-theme="emerald"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="emerald"] .theme-v2 {
    --v2-bg-root: #040c08;
    --v2-bg-panel: #07140e;
    --v2-bg-card: rgba(10, 25, 18, 0.9);
    --v2-bg-card-raised: rgba(14, 34, 24, 0.95);
    --v2-bg-input: rgba(8, 20, 14, 0.85);
    --v2-bg-input-focus: rgba(12, 28, 20, 0.98);
    --v2-sidebar-bg: linear-gradient(180deg, #0c2016 0%, #07150e 50%, #040c08 100%);
    --v2-sidebar-border: rgba(16, 185, 129, 0.25);
    --v2-cyan: #10b981;
    --v2-cyan-bright: #34d399;
    --v2-cyan-glow: rgba(16, 185, 129, 0.45);
    --v2-emerald: #059669;
    --v2-emerald-bright: #10b981;
    --v2-emerald-glow: rgba(5, 150, 105, 0.4);
    --v2-violet: #06b6d4;
    --v2-violet-bright: #38bdf8;
    --v2-border: rgba(255, 255, 255, 0.08);
    --v2-border-strong: rgba(16, 185, 129, 0.3);
    --v2-border-active: rgba(52, 211, 153, 0.75);
    --v2-badge-bg: rgba(16, 185, 129, 0.16);
    --v2-cta-bg: linear-gradient(135deg, #059669 0%, #10b981 60%, #06b6d4 100%);
    --v2-cta-border: rgba(52, 211, 153, 0.6);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(16, 185, 129, 0.25) 0%, rgba(5, 150, 105, 0.12) 100%);
    --v2-sidebar-active-border: rgba(52, 211, 153, 0.5);
    --v2-sidebar-active-glow: rgba(16, 185, 129, 0.3);
    --v2-shadow-card: 0 12px 32px -4px rgba(0, 0, 0, 0.75), 0 0 1px 1px rgba(16, 185, 129, 0.1);
    --v2-shadow-glow-cyan: 0 0 25px rgba(16, 185, 129, 0.3);
    --primary-500: 16, 185, 129;
}
html[data-theme-engine="panda"][data-panda-theme="crimson"],
html[data-theme-engine="panda"][data-panda-theme="crimson"] body,
html[data-theme-engine="panda"][data-panda-theme="crimson"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="crimson"] .theme-v2 {
    --v2-bg-root: #0c0b0e;
    --v2-bg-panel: #111015;
    --v2-bg-card: rgba(22, 20, 27, 0.9);
    --v2-bg-card-raised: rgba(29, 26, 36, 0.95);
    --v2-bg-input: rgba(16, 14, 20, 0.85);
    --v2-bg-input-focus: rgba(24, 21, 30, 0.98);
    --v2-sidebar-bg: linear-gradient(180deg, #1b1722 0%, #120f17 50%, #0c0b0e 100%);
    --v2-sidebar-border: rgba(239, 68, 68, 0.25);
    --v2-cyan: #ef4444;
    --v2-cyan-bright: #f87171;
    --v2-cyan-glow: rgba(239, 68, 68, 0.45);
    --v2-emerald: #dc2626;
    --v2-emerald-bright: #ef4444;
    --v2-emerald-glow: rgba(220, 38, 38, 0.4);
    --v2-violet: #f43f5e;
    --v2-violet-bright: #fb7185;
    --v2-border: rgba(255, 255, 255, 0.08);
    --v2-border-strong: rgba(239, 68, 68, 0.3);
    --v2-border-active: rgba(248, 113, 113, 0.75);
    --v2-badge-bg: rgba(239, 68, 68, 0.16);
    --v2-cta-bg: linear-gradient(135deg, #dc2626 0%, #e11d48 60%, #be123c 100%);
    --v2-cta-border: rgba(248, 113, 113, 0.6);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(239, 68, 68, 0.25) 0%, rgba(220, 38, 38, 0.12) 100%);
    --v2-sidebar-active-border: rgba(248, 113, 113, 0.5);
    --v2-sidebar-active-glow: rgba(239, 68, 68, 0.3);
    --v2-shadow-card: 0 12px 32px -4px rgba(0, 0, 0, 0.75), 0 0 1px 1px rgba(239, 68, 68, 0.1);
    --v2-shadow-glow-cyan: 0 0 25px rgba(239, 68, 68, 0.3);
    --primary-500: 239, 68, 68;
}
html[data-theme-engine="panda"][data-panda-theme="nordic"],
html[data-theme-engine="panda"][data-panda-theme="nordic"] body,
html[data-theme-engine="panda"][data-panda-theme="nordic"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="nordic"] .theme-v2 {
    --v2-bg-root: #09101d;
    --v2-bg-panel: #0d1728;
    --v2-bg-card: rgba(17, 28, 47, 0.9);
    --v2-bg-card-raised: rgba(23, 38, 63, 0.95);
    --v2-bg-input: rgba(13, 23, 39, 0.85);
    --v2-bg-input-focus: rgba(19, 33, 55, 0.98);
    --v2-sidebar-bg: linear-gradient(180deg, #132238 0%, #0d1829 50%, #09101d 100%);
    --v2-sidebar-border: rgba(56, 189, 248, 0.22);
    --v2-cyan: #38bdf8;
    --v2-cyan-bright: #7dd3fc;
    --v2-cyan-glow: rgba(56, 189, 248, 0.4);
    --v2-emerald: #0284c7;
    --v2-emerald-bright: #38bdf8;
    --v2-emerald-glow: rgba(2, 132, 199, 0.35);
    --v2-violet: #818cf8;
    --v2-violet-bright: #a5b4fc;
    --v2-border: rgba(255, 255, 255, 0.08);
    --v2-border-strong: rgba(56, 189, 248, 0.3);
    --v2-border-active: rgba(125, 211, 252, 0.75);
    --v2-badge-bg: rgba(56, 189, 248, 0.16);
    --v2-cta-bg: linear-gradient(135deg, #0284c7 0%, #0369a1 60%, #1e40af 100%);
    --v2-cta-border: rgba(125, 211, 252, 0.6);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(56, 189, 248, 0.25) 0%, rgba(2, 132, 199, 0.12) 100%);
    --v2-sidebar-active-border: rgba(125, 211, 252, 0.5);
    --v2-sidebar-active-glow: rgba(56, 189, 248, 0.28);
    --v2-shadow-card: 0 12px 32px -4px rgba(0, 0, 0, 0.7), 0 0 1px 1px rgba(56, 189, 248, 0.08);
    --v2-shadow-glow-cyan: 0 0 25px rgba(56, 189, 248, 0.25);
    --primary-500: 56, 189, 248;
}
html[data-theme-engine="panda"][data-panda-theme="midnight"],
html[data-theme-engine="panda"][data-panda-theme="midnight"] body,
html[data-theme-engine="panda"][data-panda-theme="midnight"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="midnight"] .theme-v2 {
    --v2-bg-root: #0b0615;
    --v2-bg-panel: #100a1e;
    --v2-bg-card: rgba(22, 14, 39, 0.9);
    --v2-bg-card-raised: rgba(30, 20, 52, 0.95);
    --v2-bg-input: rgba(16, 10, 28, 0.85);
    --v2-bg-input-focus: rgba(24, 15, 42, 0.98);
    --v2-sidebar-bg: linear-gradient(180deg, #1b0f31 0%, #120921 50%, #0b0615 100%);
    --v2-sidebar-border: rgba(168, 85, 247, 0.25);
    --v2-cyan: #a855f7;
    --v2-cyan-bright: #c084fc;
    --v2-cyan-glow: rgba(168, 85, 247, 0.45);
    --v2-emerald: #7c3aed;
    --v2-emerald-bright: #a855f7;
    --v2-emerald-glow: rgba(124, 58, 237, 0.4);
    --v2-violet: #ec4899;
    --v2-violet-bright: #f472b6;
    --v2-border: rgba(255, 255, 255, 0.08);
    --v2-border-strong: rgba(168, 85, 247, 0.3);
    --v2-border-active: rgba(192, 132, 252, 0.75);
    --v2-badge-bg: rgba(168, 85, 247, 0.18);
    --v2-cta-bg: linear-gradient(135deg, #9333ea 0%, #7c3aed 60%, #c026d3 100%);
    --v2-cta-border: rgba(192, 132, 252, 0.6);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(168, 85, 247, 0.25) 0%, rgba(124, 58, 237, 0.12) 100%);
    --v2-sidebar-active-border: rgba(192, 132, 252, 0.5);
    --v2-sidebar-active-glow: rgba(168, 85, 247, 0.3);
    --v2-shadow-card: 0 12px 32px -4px rgba(0, 0, 0, 0.75), 0 0 1px 1px rgba(168, 85, 247, 0.1);
    --v2-shadow-glow-cyan: 0 0 25px rgba(168, 85, 247, 0.3);
    --primary-500: 168, 85, 247;
}
html[data-theme-engine="panda"][data-panda-theme="amber"],
html[data-theme-engine="panda"][data-panda-theme="amber"] body,
html[data-theme-engine="panda"][data-panda-theme="amber"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="amber"] .theme-v2 {
    --v2-bg-root: #060606;
    --v2-bg-panel: #0c0b08;
    --v2-bg-card: rgba(20, 18, 14, 0.92);
    --v2-bg-card-raised: rgba(28, 24, 18, 0.96);
    --v2-bg-input: rgba(14, 12, 9, 0.88);
    --v2-bg-input-focus: rgba(22, 19, 14, 0.98);
    --v2-sidebar-bg: linear-gradient(180deg, #17140e 0%, #0e0c08 50%, #060606 100%);
    --v2-sidebar-border: rgba(255, 176, 0, 0.25);
    --v2-cyan: #ffb000;
    --v2-cyan-bright: #ffc233;
    --v2-cyan-glow: rgba(255, 176, 0, 0.45);
    --v2-emerald: #cc8c00;
    --v2-emerald-bright: #ffb000;
    --v2-emerald-glow: rgba(204, 140, 0, 0.4);
    --v2-violet: #f59e0b;
    --v2-violet-bright: #fbbf24;
    --v2-border: rgba(255, 255, 255, 0.08);
    --v2-border-strong: rgba(255, 176, 0, 0.3);
    --v2-border-active: rgba(255, 194, 51, 0.75);
    --v2-badge-bg: rgba(255, 176, 0, 0.16);
    --v2-cta-bg: linear-gradient(135deg, #cc8c00 0%, #b37b00 60%, #996900 100%);
    --v2-cta-border: rgba(255, 194, 51, 0.6);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(255, 176, 0, 0.25) 0%, rgba(204, 140, 0, 0.12) 100%);
    --v2-sidebar-active-border: rgba(255, 194, 51, 0.5);
    --v2-sidebar-active-glow: rgba(255, 176, 0, 0.3);
    --v2-shadow-card: 0 12px 32px -4px rgba(0, 0, 0, 0.8), 0 0 1px 1px rgba(255, 176, 0, 0.1);
    --v2-shadow-glow-cyan: 0 0 25px rgba(255, 176, 0, 0.32);
    --primary-500: 255, 176, 0;
}
html[data-theme-engine="panda"][data-panda-theme="monochrome"],
html[data-theme-engine="panda"][data-panda-theme="monochrome"] body,
html[data-theme-engine="panda"][data-panda-theme="monochrome"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="monochrome"] .theme-v2 {
    --v2-bg-root: #09090b;
    --v2-bg-panel: #111114;
    --v2-bg-card: rgba(21, 21, 25, 0.92);
    --v2-bg-card-raised: rgba(28, 28, 34, 0.96);
    --v2-bg-input: rgba(16, 16, 19, 0.88);
    --v2-bg-input-focus: rgba(24, 24, 29, 0.98);
    --v2-sidebar-bg: linear-gradient(180deg, #18181c 0%, #111114 50%, #09090b 100%);
    --v2-sidebar-border: rgba(255, 255, 255, 0.16);
    --v2-cyan: #e4e4e7;
    --v2-cyan-bright: #ffffff;
    --v2-cyan-glow: rgba(255, 255, 255, 0.3);
    --v2-emerald: #a1a1aa;
    --v2-emerald-bright: #d4d4d8;
    --v2-emerald-glow: rgba(161, 161, 170, 0.25);
    --v2-violet: #71717a;
    --v2-violet-bright: #a1a1aa;
    --v2-border: rgba(255, 255, 255, 0.1);
    --v2-border-strong: rgba(255, 255, 255, 0.22);
    --v2-border-active: rgba(255, 255, 255, 0.75);
    --v2-badge-bg: rgba(255, 255, 255, 0.14);
    --v2-cta-bg: linear-gradient(135deg, #3f3f46 0%, #27272a 60%, #18181b 100%);
    --v2-cta-border: rgba(255, 255, 255, 0.5);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(255, 255, 255, 0.16) 0%, rgba(161, 161, 170, 0.08) 100%);
    --v2-sidebar-active-border: rgba(255, 255, 255, 0.4);
    --v2-sidebar-active-glow: rgba(255, 255, 255, 0.2);
    --v2-shadow-card: 0 12px 32px -4px rgba(0, 0, 0, 0.75), 0 0 1px 1px rgba(255, 255, 255, 0.08);
    --v2-shadow-glow-cyan: 0 0 25px rgba(255, 255, 255, 0.18);
    --primary-500: 228, 228, 231;
}
html[data-theme-engine="panda"][data-panda-theme="cupertino"],
html[data-theme-engine="panda"][data-panda-theme="cupertino"] body,
html[data-theme-engine="panda"][data-panda-theme="cupertino"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="cupertino"] .theme-v2 {
    --v2-bg-root: #12151c;
    --v2-bg-panel: #171a23;
    --v2-bg-card: rgba(26, 31, 43, 0.92);
    --v2-bg-card-raised: rgba(33, 40, 56, 0.95);
    --v2-bg-input: rgba(20, 24, 33, 0.88);
    --v2-bg-input-focus: rgba(28, 34, 48, 0.98);
    --v2-sidebar-bg: linear-gradient(180deg, #1f2533 0%, #161a24 50%, #12151c 100%);
    --v2-sidebar-border: rgba(59, 130, 246, 0.25);
    --v2-cyan: #2563eb;
    --v2-cyan-bright: #60a5fa;
    --v2-cyan-glow: rgba(37, 99, 235, 0.45);
    --v2-emerald: #1d4ed8;
    --v2-emerald-bright: #3b82f6;
    --v2-emerald-glow: rgba(29, 78, 216, 0.4);
    --v2-violet: #6366f1;
    --v2-violet-bright: #818cf8;
    --v2-border: rgba(255, 255, 255, 0.09);
    --v2-border-strong: rgba(59, 130, 246, 0.3);
    --v2-border-active: rgba(96, 165, 250, 0.75);
    --v2-badge-bg: rgba(37, 99, 235, 0.16);
    --v2-cta-bg: linear-gradient(135deg, #1d4ed8 0%, #2563eb 60%, #0284c7 100%);
    --v2-cta-border: rgba(96, 165, 250, 0.6);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(37, 99, 235, 0.25) 0%, rgba(29, 78, 216, 0.12) 100%);
    --v2-sidebar-active-border: rgba(96, 165, 250, 0.5);
    --v2-sidebar-active-glow: rgba(37, 99, 235, 0.3);
    --v2-shadow-card: 0 12px 32px -4px rgba(0, 0, 0, 0.7), 0 0 1px 1px rgba(59, 130, 246, 0.08);
    --v2-shadow-glow-cyan: 0 0 25px rgba(37, 99, 235, 0.3);
    --primary-500: 59, 130, 246;
}
html[data-theme-engine="panda"] .pos-root {
    --pos-accent: var(--v2-cyan-bright);
    --pos-accent-dark: var(--v2-cyan);
    --pos-surface: var(--v2-bg-card);
    --pos-surface-2: var(--v2-bg-card-raised);
    --pos-border: var(--v2-border-strong);
    --pos-text: var(--pw-text-main);
    --pos-text-2: var(--pw-text-muted);
    --pos-text-3: var(--pw-text-dim);
}

/* --- de panda-pro-v4.css --- */
html[data-is-panda="true"] {
    --v2-primary-rgb: var(--primary-500, 6, 182, 212);
    --v2-primary: rgb(var(--primary-500, 6, 182, 212));
}

/* --- de pandonymus-theme.css --- */
:root {
    --font-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --font-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}

/* --- de pandonymus-theme-v2.css --- */
.theme-v2 {
    --v2-font-sans: 'Inter', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --v2-bg-root: #060913;
    --v2-bg-panel: #090e1a;
    --v2-bg-card: rgba(14, 22, 38, 0.85);
    --v2-bg-card-raised: rgba(19, 30, 52, 0.9);
    --v2-bg-input: rgba(13, 20, 36, 0.8);
    --v2-bg-input-focus: rgba(16, 26, 48, 0.98);
    --v2-sidebar-bg: linear-gradient(180deg, #0d1527 0%, #090e1c 50%, #060913 100%);
    --v2-sidebar-border: rgba(56, 189, 248, 0.2);
    --v2-emerald: #10b981;
    --v2-emerald-bright: #34d399;
    --v2-emerald-glow: rgba(16, 185, 129, 0.4);
    --v2-cyan: #06b6d4;
    --v2-cyan-bright: #38bdf8;
    --v2-cyan-glow: rgba(6, 182, 212, 0.4);
    --v2-violet: #8b5cf6;
    --v2-violet-bright: #c084fc;
    --v2-text-main: #f8fafc;
    --v2-text-sub: #cbd5e1;
    --v2-text-muted: #94a3b8;
    --v2-text-dim: #64748b;
    --v2-border: rgba(255, 255, 255, 0.1);
    --v2-border-strong: rgba(56, 189, 248, 0.28);
    --v2-border-active: rgba(6, 182, 212, 0.65);
    --v2-shadow-card: 0 12px 32px -4px rgba(0, 0, 0, 0.65), 0 0 1px 1px rgba(255, 255, 255, 0.06);
    --v2-shadow-glow-cyan: 0 0 25px rgba(6, 182, 212, 0.25);
}
:root {
    --fm-radius: 0.5rem;
}

/* === Fin de variables heredadas === */


:root,
html.theme-v2 {
    /* Superficie */
    --pw-bg-root: var(--v2-bg-root, #060913);
    --pw-bg-panel: var(--v2-bg-panel, #090e1a);
    --pw-bg-card: var(--v2-bg-card, rgba(14, 22, 38, 0.85));
    --pw-bg-card-raised: var(--v2-bg-card-raised, rgba(19, 30, 52, 0.9));
    --pw-bg-input: var(--v2-bg-input, rgba(13, 20, 36, 0.8));
    --pw-bg-input-focus: var(--v2-bg-input-focus, rgba(16, 26, 48, 0.98));
    --pw-sidebar-bg: var(--v2-sidebar-bg, linear-gradient(180deg, #0d1527 0%, #090e1c 50%, #060913 100%));
    --pw-bg-backdrop: rgba(0, 0, 0, 0.75);

    /* Texto */
    --pw-text-main: var(--v2-text-main, #f8fafc);
    --pw-text-sub: var(--v2-text-sub, #cbd5e1);
    --pw-text-muted: var(--v2-text-muted, #94a3b8);
    /* Texto tenue: se acerca al texto principal para no bajar de 4.5:1 sobre las tarjetas. */
    --pw-text-dim: color-mix(in srgb, var(--v2-text-dim, #64748b) 72%, var(--v2-text-main, #f8fafc));
    /* Texto de insignias de peligro: el rojo puro sobre su tinte no llega a 4.5:1. */
    --pw-danger-fg: color-mix(in srgb, var(--pw-danger) 62%, var(--pw-text-main));

    /* Bordes */
    --pw-border: var(--v2-border, rgba(255, 255, 255, 0.1));
    --pw-border-strong: var(--v2-border-strong, rgba(255, 255, 255, 0.16));
    --pw-border-active: var(--v2-border-active, rgba(56, 189, 248, 0.5));

    /* Acentos y Marca */
    --pw-accent: var(--v2-cyan, #06b6d4);
    --pw-accent-bright: var(--v2-cyan-bright, #38bdf8);
    --pw-accent-glow: var(--v2-cyan-glow, rgba(6, 182, 212, 0.4));
    /* Relleno sólido de estados seleccionados (fichas, paginación): igual al acento
       salvo en los presets donde el acento puro no da 4.5:1 con su texto. */
    --pw-accent-solid: var(--pw-accent);
    /* Alias para hojas legadas que piden un resplandor primario que ningún preset define. */
    --v2-primary-glow: var(--pw-accent-glow);
    --pw-accent-2: var(--v2-emerald, #10b981);
    --pw-accent-2-bright: var(--v2-emerald-bright, #34d399);
    --pw-accent-3: var(--v2-violet, #8b5cf6);
    --pw-accent-3-bright: var(--v2-violet-bright, #a78bfa);
    --pw-cta-bg: var(--v2-cta-bg, linear-gradient(135deg, #0891b2 0%, #0d9488 60%, #059669 100%));
    --pw-cta-border: var(--v2-cta-border, rgba(56, 189, 248, 0.6));
    --pw-badge-bg: var(--v2-badge-bg, rgba(6, 182, 212, 0.15));
    --pw-sidebar-border: var(--v2-sidebar-border, rgba(56, 189, 248, 0.2));
    --pw-sidebar-active-bg: var(--v2-sidebar-active-bg, linear-gradient(90deg, rgba(6, 182, 212, 0.22) 0%, rgba(16, 185, 129, 0.1) 100%));
    --pw-sidebar-active-border: var(--v2-sidebar-active-border, rgba(56, 189, 248, 0.45));
    --pw-sidebar-active-glow: var(--v2-sidebar-active-glow, rgba(6, 182, 212, 0.25));
    --pw-brand-whatsapp: #25D366;

    /* Semántica (Éxito, Alerta, Peligro, Información, Neutro) */
    --pw-success: #10b981;
    --pw-success-bg: rgba(16, 185, 129, 0.15);
    --pw-success-border: rgba(16, 185, 129, 0.35);
    --pw-success-glow: 0 0 12px rgba(16, 185, 129, 0.4);
    --pw-warning: #f59e0b;
    --pw-warning-bg: rgba(245, 158, 11, 0.15);
    --pw-warning-border: rgba(245, 158, 11, 0.35);
    --pw-warning-glow: 0 0 12px rgba(245, 158, 11, 0.4);
    --pw-danger: #ef4444;
    --pw-danger-bg: rgba(239, 68, 68, 0.15);
    --pw-danger-border: rgba(239, 68, 68, 0.35);
    --pw-danger-glow: 0 0 12px rgba(239, 68, 68, 0.4);
    --pw-info: #60a5fa;
    --pw-info-bg: rgba(96, 165, 250, 0.15);
    --pw-info-border: rgba(96, 165, 250, 0.35);
    --pw-info-glow: 0 0 12px rgba(96, 165, 250, 0.4);
    --pw-violet: var(--v2-violet, #a78bfa);
    --pw-neutral: #94a3b8;
    --pw-neutral-bg: rgba(148, 163, 184, 0.15);
    --pw-neutral-border: rgba(148, 163, 184, 0.35);

    /* Espaciado y Densidad (ANEXO E·A) */
    --pw-space-1: 4px;
    --pw-space-2: 8px;
    --pw-space-3: 12px;
    --pw-space-4: 16px;
    --pw-space-5: 20px;
    --pw-space-6: 24px;
    --pw-space-8: 32px;
    --pw-space-10: 40px;
    --pw-space-12: 48px;
    --pw-page-max-w: 1600px;
    --pw-card-padding: 1.25rem;
    --pw-header-h: 4rem;
    --pw-sidebar-w: 17.5rem;

    /* Radios Armonizados (ANEXO E·A) */
    --pw-radius-xs: 0.25rem;
    --pw-radius-sm: 0.5rem;
    --pw-radius: 0.75rem;
    --pw-radius-lg: 1rem;
    --pw-radius-xl: 1.25rem;
    --pw-radius-2xl: 1.5rem;
    --pw-radius-full: 9999px;

    /* Tipografía */
    --pw-font-sans: 'Outfit', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --pw-font-display: 'Outfit', system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
    --pw-font-mono: 'JetBrains Mono', 'Fira Code', monospace;
    --pw-text-xs: 12px;
    --pw-text-sm: 13.5px;
    --pw-text-base: 14px;
    --pw-text-md: 16px;
    --pw-text-lg: 18px;
    --pw-text-xl: 22px;
    --pw-text-2xl: 28px;

    /* Sombras y Efectos */
    --pw-shadow-card: var(--v2-shadow-card, 0 12px 32px -4px rgba(0, 0, 0, 0.65), 0 0 1px 1px rgba(255, 255, 255, 0.06));
    --pw-shadow-pop: 0 20px 48px -6px rgba(0, 0, 0, 0.85), 0 0 25px color-mix(in srgb, var(--pw-accent) 14%, transparent);
    --pw-shadow-inset: inset 0 2px 8px rgba(0, 0, 0, 0.6), 0 2px 6px rgba(0, 0, 0, 0.25);
    --pw-glow-accent: var(--v2-shadow-glow-cyan, 0 0 25px rgba(6, 182, 212, 0.25));
    --pw-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
    --pw-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
    --pw-t-fast: 150ms var(--pw-ease-out);
    --pw-t-base: 220ms var(--pw-ease-out);
    --pw-t-smooth: 300ms var(--pw-ease-out);
    --pw-ease-spring: cubic-bezier(0.34, 1.4, 0.64, 1);
    --pw-dur-enter: 460ms;
    --pw-stagger: 70ms;

    /* Interacción y Capas (Z-Index) */
    --pw-focus: 0 0 0 2px var(--pw-accent-bright);
    --pw-tap: 44px;
    --pw-z-dropdown: 30;
    --pw-z-sticky: 35;
    --pw-z-modal: 40;
    --pw-z-toast: 50;
    --pw-z-spotlight: 60;

    /* Alias Módulo: POS / Punto de Venta (F2.4) */
    --pos-accent: var(--pw-accent);
    --pos-accent-dark: var(--pw-accent-hover);
    --pos-surface: var(--pw-bg-card);
    --pos-surface-2: var(--pw-bg-card-raised);
    --pos-border: var(--pw-border);
    --pos-text: var(--pw-text-main);
    --pos-text-2: var(--pw-text-muted);
    --pos-text-3: var(--pw-text-dim);
    --pos-danger: var(--pw-danger);
    --pos-warn: var(--pw-warning);
    --pos-radius: var(--pw-radius-lg);
    --pos-shadow: var(--pw-shadow-card);
    --pos-shadow-lg: var(--pw-shadow-pop);

    /* Ticket Térmico / Impresión (Corte Flash - F2.6) */
    --pw-ticket-bg: #ffffff;
    --pw-ticket-text: #000000;
    --pw-ticket-border: #666666;
    --pw-ticket-muted: #444444;
    --pw-ticket-dim: #777777;
    --pw-ticket-shadow: rgba(0, 0, 0, 0.3);

    /* Colores base absolutos (F2.7) */
    --pw-white: #ffffff;
}

/* ---------------------------------------------------------------------------
   10. PANDO V5 MODERN (Lanzamiento F2.8b)
   Estética: Nueva generación, violeta eléctrico y cian hiper-nítido.
   ------------------------------------------------------------------------- */
html[data-theme-engine="panda"][data-panda-theme="pando_v5"],
html[data-theme-engine="panda"][data-panda-theme="pando_v5"] body,
html[data-theme-engine="panda"][data-panda-theme="pando_v5"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="pando_v5"] .theme-v2 {
    --v2-bg-root: #0b0f19;
    --v2-bg-panel: #0e1422;
    --v2-bg-card: rgba(17, 24, 39, 0.9);
    --v2-bg-card-raised: rgba(24, 32, 51, 0.95);
    --v2-bg-input: rgba(15, 23, 42, 0.85);
    --v2-bg-input-focus: rgba(30, 41, 59, 0.98);

    --v2-sidebar-bg: linear-gradient(180deg, #111827 0%, #0d1321 50%, #0b0f19 100%);
    --v2-sidebar-border: rgba(99, 102, 241, 0.25);

    --v2-cyan: #6366f1;
    --v2-cyan-bright: #818cf8;
    --v2-cyan-glow: rgba(99, 102, 241, 0.4);

    --v2-emerald: #10b981;
    --v2-emerald-bright: #34d399;
    --v2-emerald-glow: rgba(16, 185, 129, 0.4);

    --v2-violet: #a855f7;
    --v2-violet-bright: #c084fc;
    --v2-violet-glow: rgba(168, 85, 247, 0.4);

    --v2-border: rgba(255, 255, 255, 0.1);
    --v2-border-strong: rgba(255, 255, 255, 0.12);
    --v2-border-active: rgba(129, 140, 248, 0.5);

    --v2-text-main: #f8fafc;
    --v2-text-sub: #e2e8f0;
    --v2-text-muted: #94a3b8;
    --v2-text-dim: #64748b;

    --v2-badge-bg: rgba(99, 102, 241, 0.15);
    --v2-sidebar-active-bg: rgba(99, 102, 241, 0.25);
    --v2-sidebar-active-border: rgba(99, 102, 241, 0.5);

    --v2-chart-grid: rgba(255, 255, 255, 0.06);
    --v2-chart-tick: #94a3b8;

    --pw-primary: #6366f1;
    --pw-accent: #6366f1;
    --pw-accent-hover: #4f46e5;
    --pw-accent-bright: #818cf8;
    --pw-accent-dim: rgba(99, 102, 241, 0.15);
    --pw-accent-muted: rgba(99, 102, 241, 0.25);
}

/* ==========================================================================
   FASE M1: EL SISTEMA DE COLOR DE VERDAD (RAÍZ Y ROLES FIJOS)
   ========================================================================== */

/* 1. Roles FIJOS independientes del preset (el preset JAMÁS recolorea dinero ni estados) */
:root,
html[data-theme-engine="panda"],
html[data-theme-engine="panda"] body,
html[data-theme-engine="panda"].theme-v2,
html[data-theme-engine="panda"] .theme-v2,
html[data-theme-engine="panda"][data-panda-theme] .theme-v2 {
    /* Semántica fija */
    --pw-success: #10b981;
    --pw-success-bg: rgba(16, 185, 129, 0.15);
    --pw-success-border: rgba(16, 185, 129, 0.35);
    --pw-success-glow: 0 0 12px rgba(16, 185, 129, 0.4);

    --pw-warning: #f59e0b;
    --pw-warning-bg: rgba(245, 158, 11, 0.15);
    --pw-warning-border: rgba(245, 158, 11, 0.35);
    --pw-warning-glow: 0 0 12px rgba(245, 158, 11, 0.4);

    --pw-danger: #ef4444;
    --pw-danger-bg: rgba(239, 68, 68, 0.15);
    --pw-danger-border: rgba(239, 68, 68, 0.35);
    --pw-danger-glow: 0 0 12px rgba(239, 68, 68, 0.4);

    /* Relleno sólido de un aviso que tiene que verse (píldora de licencia por vencer) y su texto, con 4.5:1 o más:
       ámbar con texto oscuro (blanco sobre #f59e0b no llega a 2.2:1); rojo un tono más hondo con texto blanco.
       Los presets claros los cambian abajo («Fin temas claros»). */
    --pw-warning-solid: var(--pw-warning);
    --pw-on-warning: #1c1405;
    --pw-danger-solid: #dc2626;
    --pw-on-danger: #ffffff;

    --pw-info: #60a5fa;
    --pw-info-bg: rgba(96, 165, 250, 0.15);
    --pw-info-border: rgba(96, 165, 250, 0.35);
    --pw-info-glow: 0 0 12px rgba(96, 165, 250, 0.4);

    --pw-neutral: #94a3b8;
    --pw-neutral-bg: rgba(148, 163, 184, 0.12);
    --pw-neutral-border: rgba(148, 163, 184, 0.25);

    /* Cifras de dinero fijas: positivo verde, deuda rojo, cero gris */
    --pw-money-pos: #10b981;
    --pw-money-neg: #ef4444;
    --pw-money-zero: #94a3b8;

    /* Emerald legado forzado a verde real en todo preset */
    --v2-emerald: #10b981;
    --v2-emerald-bright: #34d399;
    --v2-emerald-glow: rgba(16, 185, 129, 0.35);

    /* 2. Inputs: borde en reposo SIEMPRE neutro */
    --pw-border-input: rgba(255, 255, 255, 0.12);
    --pw-border-input-hover: rgba(255, 255, 255, 0.25);
    --v2-border-strong: rgba(255, 255, 255, 0.12);
    --v2-border: rgba(255, 255, 255, 0.08);

    /* 5. Metadato mono en gris alto contraste */
    --pw-mono-meta: #cbd5e1;
    --pw-mono-dim: #94a3b8;

    /* 6. Zebra neutra por elevación */
    --pw-zebra-odd: rgba(255, 255, 255, 0.02);
    --pw-zebra-hover: rgba(255, 255, 255, 0.045);
    --v2-badge-bg: rgba(255, 255, 255, 0.04);
}

/* Saneo explícito para Crimson (donde border-strong y emerald fueron secuestrados) */
html[data-theme-engine="panda"][data-panda-theme="crimson"] .theme-v2,
html[data-theme-engine="panda"][data-panda-theme="crimson"] body,
html[data-theme-engine="panda"][data-panda-theme="crimson"] {
    --v2-border-strong: rgba(255, 255, 255, 0.12);
    --v2-border: rgba(255, 255, 255, 0.08);
    --v2-badge-bg: rgba(255, 255, 255, 0.04);
    --v2-emerald: #10b981;
    --v2-emerald-bright: #34d399;
    --v2-emerald-glow: rgba(16, 185, 129, 0.35);
}

/* ═══ Alias de tokens usados por las vistas y no definidos (M3) ═══
   Las vistas referenciaban estos nombres sin que existieran: un var()
   indefinido invalida la propiedad, y los bordes caían a currentColor
   (contornos blancos) y los fondos a transparente. Cada alias apunta a un
   token real, así que también sigue al preset activo. */
:root, html.theme-v2 {
    --pw-border-subtle: var(--pw-border);
    --pw-border-focus: var(--pw-accent-bright);
    --pw-bg-surface: var(--pw-bg-card);
    --pw-bg-surface-2: var(--pw-bg-card-raised);
    --pw-bg-surface-3: var(--pw-bg-input-focus);
    --pw-bg-surface-raised: var(--pw-bg-card-raised);
    --pw-bg-hover: rgba(255, 255, 255, 0.05);
    --pw-bg-overlay: var(--pw-bg-backdrop);
    --pw-surface-card-hover: rgba(255, 255, 255, 0.05);
    --pw-surface-card-subtle: rgba(255, 255, 255, 0.03);
    --pw-radius-md: var(--pw-radius);
    --pw-accent-subtle: color-mix(in srgb, var(--pw-accent) 14%, transparent);
    --pw-accent-contrast: #ffffff;
    --pw-text-on-accent: #ffffff;
    --pw-danger-subtle: var(--pw-danger-bg);
    --pw-success-subtle: var(--pw-success-bg);
    --pw-warning-subtle: var(--pw-warning-bg);
    --pw-t-normal: var(--pw-t-base);
    --pw-action-default-color: var(--pw-text-muted);
    --pw-action-hover-bg: rgba(255, 255, 255, 0.06);
    --pw-action-hover-border: var(--pw-border-strong);
}

/* Contraste por preset (M7). En los presets de acento claro el texto sobre el
   acento sólido va oscuro; los degradados de botón principal de cyberpunk,
   emerald y amber bajan un tono para que el texto blanco llegue a 4.5:1, y el de
   monochrome sube para no confundirse con los botones secundarios. */
html[data-theme-engine="panda"][data-panda-theme="cyberpunk"],
html[data-theme-engine="panda"][data-panda-theme="cyberpunk"] body,
html[data-theme-engine="panda"][data-panda-theme="cyberpunk"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="cyberpunk"] .theme-v2 {
    --pw-text-on-accent: #111114;
    --pw-accent-contrast: #111114;
    --v2-cta-bg: linear-gradient(135deg, #0e7490 0%, #0f766e 60%, #047857 100%);
}
html[data-theme-engine="panda"][data-panda-theme="titanium"],
html[data-theme-engine="panda"][data-panda-theme="titanium"] body,
html[data-theme-engine="panda"][data-panda-theme="titanium"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="titanium"] .theme-v2 {
    --pw-text-on-accent: #111114;
    --pw-accent-contrast: #111114;
}
html[data-theme-engine="panda"][data-panda-theme="emerald"],
html[data-theme-engine="panda"][data-panda-theme="emerald"] body,
html[data-theme-engine="panda"][data-panda-theme="emerald"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="emerald"] .theme-v2 {
    --pw-text-on-accent: #111114;
    --pw-accent-contrast: #111114;
    --v2-cta-bg: linear-gradient(135deg, #047857 0%, #065f46 60%, #0e7490 100%);
}
html[data-theme-engine="panda"][data-panda-theme="nordic"],
html[data-theme-engine="panda"][data-panda-theme="nordic"] body,
html[data-theme-engine="panda"][data-panda-theme="nordic"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="nordic"] .theme-v2 {
    --pw-text-on-accent: #111114;
    --pw-accent-contrast: #111114;
}
html[data-theme-engine="panda"][data-panda-theme="amber"],
html[data-theme-engine="panda"][data-panda-theme="amber"] body,
html[data-theme-engine="panda"][data-panda-theme="amber"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="amber"] .theme-v2 {
    --pw-text-on-accent: #111114;
    --pw-accent-contrast: #111114;
    --v2-cta-bg: linear-gradient(135deg, #b45309 0%, #a16207 60%, #92400e 100%);
}
html[data-theme-engine="panda"][data-panda-theme="monochrome"],
html[data-theme-engine="panda"][data-panda-theme="monochrome"] body,
html[data-theme-engine="panda"][data-panda-theme="monochrome"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="monochrome"] .theme-v2 {
    --pw-text-on-accent: #111114;
    --pw-accent-contrast: #111114;
    --v2-cta-bg: linear-gradient(135deg, #71717a 0%, #52525b 60%, #3f3f46 100%);
}

/* Segunda pasada de contraste (verificación M7): relleno sólido más profundo en
   crimson y midnight (texto blanco ≥4.5:1) y extremos de degradado de botón
   principal que no llegaban a 4.5:1 en titanium, nordic y cupertino. */
html[data-theme-engine="panda"][data-panda-theme="crimson"],
html[data-theme-engine="panda"][data-panda-theme="crimson"] body,
html[data-theme-engine="panda"][data-panda-theme="crimson"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="crimson"] .theme-v2 {
    --pw-accent-solid: #dc2626;
}
html[data-theme-engine="panda"][data-panda-theme="midnight"],
html[data-theme-engine="panda"][data-panda-theme="midnight"] body,
html[data-theme-engine="panda"][data-panda-theme="midnight"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="midnight"] .theme-v2 {
    --pw-accent-solid: #9333ea;
}
html[data-theme-engine="panda"][data-panda-theme="titanium"],
html[data-theme-engine="panda"][data-panda-theme="titanium"] body,
html[data-theme-engine="panda"][data-panda-theme="titanium"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="titanium"] .theme-v2 {
    --v2-cta-bg: linear-gradient(135deg, #b45309 0%, #9a3412 60%, #7c2d12 100%);
}
html[data-theme-engine="panda"][data-panda-theme="nordic"],
html[data-theme-engine="panda"][data-panda-theme="nordic"] body,
html[data-theme-engine="panda"][data-panda-theme="nordic"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="nordic"] .theme-v2 {
    --v2-cta-bg: linear-gradient(135deg, #0369a1 0%, #0369a1 60%, #1e40af 100%);
}
html[data-theme-engine="panda"][data-panda-theme="cupertino"],
html[data-theme-engine="panda"][data-panda-theme="cupertino"] body,
html[data-theme-engine="panda"][data-panda-theme="cupertino"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="cupertino"] .theme-v2 {
    --v2-cta-bg: linear-gradient(135deg, #1d4ed8 0%, #2563eb 60%, #0369a1 100%);
}

/* === Temas claros y semiclaros v5.0 (generado por scripts/gen-light-themes.py) === */
html[data-theme-engine="panda"][data-panda-theme="porcelana"],
html[data-theme-engine="panda"][data-panda-theme="porcelana"] body,
html[data-theme-engine="panda"][data-panda-theme="porcelana"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="porcelana"] .theme-v2 {
    color-scheme: light;
    --v2-bg-root: #eef1f5;
    --v2-bg-panel: #f6f8fb;
    --v2-bg-card: #ffffff;
    --v2-bg-card-raised: #f8fafc;
    --v2-bg-input: #ffffff;
    --v2-bg-input-focus: #ffffff;
    --v2-sidebar-bg: linear-gradient(180deg, #f6f8fb 0%, #eef1f5 100%);
    --v2-sidebar-border: rgba(15, 23, 42, 0.10);
    --v2-cyan: #1d4ed8;
    --v2-cyan-bright: #1e40af;
    --v2-cyan-glow: rgba(29, 78, 216, 0.22);
    --v2-emerald: #0f766e;
    --v2-emerald-bright: #0f766e;
    --v2-emerald-glow: rgba(15, 118, 110, 0.25);
    --v2-violet: #6d28d9;
    --v2-violet-bright: #6d28d9;
    --v2-border: rgba(15, 23, 42, 0.12);
    --v2-border-strong: rgba(15, 23, 42, 0.2);
    --v2-border-active: rgba(29, 78, 216, 0.6);
    --v2-badge-bg: rgba(29, 78, 216, 0.1);
    --v2-cta-bg: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);
    --v2-cta-border: rgba(29, 78, 216, 0.7);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(29, 78, 216, 0.14) 0%, rgba(29, 78, 216, 0.05) 100%);
    --v2-sidebar-active-border: rgba(29, 78, 216, 0.45);
    --v2-sidebar-active-glow: rgba(29, 78, 216, 0.18);
    --v2-shadow-card: 0 1px 2px rgba(15, 23, 42, 0.06), 0 10px 28px -10px rgba(15, 23, 42, 0.18);
    --v2-shadow-glow-cyan: 0 0 0 3px rgba(29, 78, 216, 0.16);
    --v2-text-main: #0f172a;
    --v2-text-sub: #334155;
    --v2-text-muted: #475569;
    --v2-text-dim: #56606f;
    --v2-chart-grid: rgba(15, 23, 42, 0.08);
    --primary-500: 29, 78, 216;
    --pw-text-on-accent: #ffffff;
    --pw-accent-solid: #1d4ed8;
    --pw-bg-hover: rgba(15, 23, 42, 0.05);
    --pw-surface-card-hover: rgba(15, 23, 42, 0.05);
    --pw-surface-card-subtle: rgba(15, 23, 42, 0.03);
    --pw-zebra-odd: rgba(15, 23, 42, 0.02);
    --pw-zebra-hover: rgba(15, 23, 42, 0.045);
    --pw-border-input: rgba(15, 23, 42, 0.20);
    --pw-border-input-hover: rgba(15, 23, 42, 0.32);
    --pw-action-hover-bg: rgba(15, 23, 42, 0.06);
    --pw-bg-backdrop: rgba(15, 23, 42, 0.45);
    --pw-shadow-pop: 0 20px 48px -12px rgba(15, 23, 42, 0.28);
    --pw-shadow-inset: inset 0 1px 2px rgba(15, 23, 42, 0.08);
    --pw-success: #047857;
    --pw-success-bg: rgba(4, 120, 87, 0.10);
    --pw-success-border: rgba(4, 120, 87, 0.30);
    --pw-success-glow: none;
    --pw-warning: #b45309;
    --pw-warning-bg: rgba(180, 83, 9, 0.10);
    --pw-warning-border: rgba(180, 83, 9, 0.30);
    --pw-warning-glow: none;
    --pw-danger: #b91c1c;
    --pw-danger-bg: rgba(185, 28, 28, 0.08);
    --pw-danger-border: rgba(185, 28, 28, 0.28);
    --pw-danger-glow: none;
    --pw-info: #1d4ed8;
    --pw-info-bg: rgba(29, 78, 216, 0.08);
    --pw-info-border: rgba(29, 78, 216, 0.28);
    --pw-info-glow: none;
    --pw-danger-fg: #b91c1c;
    --pw-neutral: #475569;
    --pw-neutral-bg: rgba(71, 85, 105, 0.10);
    --pw-neutral-border: rgba(71, 85, 105, 0.28);
}
html[data-theme-engine="panda"][data-panda-theme="lino"],
html[data-theme-engine="panda"][data-panda-theme="lino"] body,
html[data-theme-engine="panda"][data-panda-theme="lino"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="lino"] .theme-v2 {
    color-scheme: light;
    --v2-bg-root: #ecebe6;
    --v2-bg-panel: #f5f4f0;
    --v2-bg-card: #fdfcfa;
    --v2-bg-card-raised: #f8f7f3;
    --v2-bg-input: #ffffff;
    --v2-bg-input-focus: #ffffff;
    --v2-sidebar-bg: linear-gradient(180deg, #f5f4f0 0%, #ecebe6 100%);
    --v2-sidebar-border: rgba(15, 23, 42, 0.10);
    --v2-cyan: #166534;
    --v2-cyan-bright: #14532d;
    --v2-cyan-glow: rgba(22, 101, 52, 0.22);
    --v2-emerald: #b45309;
    --v2-emerald-bright: #b45309;
    --v2-emerald-glow: rgba(180, 83, 9, 0.25);
    --v2-violet: #0f766e;
    --v2-violet-bright: #0f766e;
    --v2-border: rgba(15, 23, 42, 0.12);
    --v2-border-strong: rgba(15, 23, 42, 0.2);
    --v2-border-active: rgba(22, 101, 52, 0.6);
    --v2-badge-bg: rgba(22, 101, 52, 0.1);
    --v2-cta-bg: linear-gradient(135deg, #166534 0%, #14532d 100%);
    --v2-cta-border: rgba(22, 101, 52, 0.7);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(22, 101, 52, 0.14) 0%, rgba(22, 101, 52, 0.05) 100%);
    --v2-sidebar-active-border: rgba(22, 101, 52, 0.45);
    --v2-sidebar-active-glow: rgba(22, 101, 52, 0.18);
    --v2-shadow-card: 0 1px 2px rgba(15, 23, 42, 0.06), 0 10px 28px -10px rgba(15, 23, 42, 0.18);
    --v2-shadow-glow-cyan: 0 0 0 3px rgba(22, 101, 52, 0.16);
    --v2-text-main: #1c1917;
    --v2-text-sub: #3f3a36;
    --v2-text-muted: #57534e;
    --v2-text-dim: #635d58;
    --v2-chart-grid: rgba(15, 23, 42, 0.08);
    --primary-500: 22, 101, 52;
    --pw-text-on-accent: #ffffff;
    --pw-accent-solid: #166534;
    --pw-bg-hover: rgba(15, 23, 42, 0.05);
    --pw-surface-card-hover: rgba(15, 23, 42, 0.05);
    --pw-surface-card-subtle: rgba(15, 23, 42, 0.03);
    --pw-zebra-odd: rgba(15, 23, 42, 0.02);
    --pw-zebra-hover: rgba(15, 23, 42, 0.045);
    --pw-border-input: rgba(15, 23, 42, 0.20);
    --pw-border-input-hover: rgba(15, 23, 42, 0.32);
    --pw-action-hover-bg: rgba(15, 23, 42, 0.06);
    --pw-bg-backdrop: rgba(15, 23, 42, 0.45);
    --pw-shadow-pop: 0 20px 48px -12px rgba(15, 23, 42, 0.28);
    --pw-shadow-inset: inset 0 1px 2px rgba(15, 23, 42, 0.08);
    --pw-success: #047857;
    --pw-success-bg: rgba(4, 120, 87, 0.10);
    --pw-success-border: rgba(4, 120, 87, 0.30);
    --pw-success-glow: none;
    --pw-warning: #b45309;
    --pw-warning-bg: rgba(180, 83, 9, 0.10);
    --pw-warning-border: rgba(180, 83, 9, 0.30);
    --pw-warning-glow: none;
    --pw-danger: #b91c1c;
    --pw-danger-bg: rgba(185, 28, 28, 0.08);
    --pw-danger-border: rgba(185, 28, 28, 0.28);
    --pw-danger-glow: none;
    --pw-info: #1d4ed8;
    --pw-info-bg: rgba(29, 78, 216, 0.08);
    --pw-info-border: rgba(29, 78, 216, 0.28);
    --pw-info-glow: none;
    --pw-danger-fg: #b91c1c;
    --pw-neutral: #475569;
    --pw-neutral-bg: rgba(71, 85, 105, 0.10);
    --pw-neutral-border: rgba(71, 85, 105, 0.28);
}
html[data-theme-engine="panda"][data-panda-theme="aurora"],
html[data-theme-engine="panda"][data-panda-theme="aurora"] body,
html[data-theme-engine="panda"][data-panda-theme="aurora"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="aurora"] .theme-v2 {
    color-scheme: light;
    --v2-bg-root: #f1eff9;
    --v2-bg-panel: #f8f7fd;
    --v2-bg-card: #ffffff;
    --v2-bg-card-raised: #faf9ff;
    --v2-bg-input: #ffffff;
    --v2-bg-input-focus: #ffffff;
    --v2-sidebar-bg: linear-gradient(180deg, #f8f7fd 0%, #f1eff9 100%);
    --v2-sidebar-border: rgba(15, 23, 42, 0.10);
    --v2-cyan: #6d28d9;
    --v2-cyan-bright: #5b21b6;
    --v2-cyan-glow: rgba(109, 40, 217, 0.22);
    --v2-emerald: #db2777;
    --v2-emerald-bright: #db2777;
    --v2-emerald-glow: rgba(219, 39, 119, 0.25);
    --v2-violet: #2563eb;
    --v2-violet-bright: #2563eb;
    --v2-border: rgba(15, 23, 42, 0.12);
    --v2-border-strong: rgba(15, 23, 42, 0.2);
    --v2-border-active: rgba(109, 40, 217, 0.6);
    --v2-badge-bg: rgba(109, 40, 217, 0.1);
    --v2-cta-bg: linear-gradient(135deg, #6d28d9 0%, #5b21b6 100%);
    --v2-cta-border: rgba(109, 40, 217, 0.7);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(109, 40, 217, 0.14) 0%, rgba(109, 40, 217, 0.05) 100%);
    --v2-sidebar-active-border: rgba(109, 40, 217, 0.45);
    --v2-sidebar-active-glow: rgba(109, 40, 217, 0.18);
    --v2-shadow-card: 0 1px 2px rgba(15, 23, 42, 0.06), 0 10px 28px -10px rgba(15, 23, 42, 0.18);
    --v2-shadow-glow-cyan: 0 0 0 3px rgba(109, 40, 217, 0.16);
    --v2-text-main: #1e1b2e;
    --v2-text-sub: #3b3654;
    --v2-text-muted: #524c6b;
    --v2-text-dim: #5d5776;
    --v2-chart-grid: rgba(15, 23, 42, 0.08);
    --primary-500: 109, 40, 217;
    --pw-text-on-accent: #ffffff;
    --pw-accent-solid: #6d28d9;
    --pw-bg-hover: rgba(15, 23, 42, 0.05);
    --pw-surface-card-hover: rgba(15, 23, 42, 0.05);
    --pw-surface-card-subtle: rgba(15, 23, 42, 0.03);
    --pw-zebra-odd: rgba(15, 23, 42, 0.02);
    --pw-zebra-hover: rgba(15, 23, 42, 0.045);
    --pw-border-input: rgba(15, 23, 42, 0.20);
    --pw-border-input-hover: rgba(15, 23, 42, 0.32);
    --pw-action-hover-bg: rgba(15, 23, 42, 0.06);
    --pw-bg-backdrop: rgba(15, 23, 42, 0.45);
    --pw-shadow-pop: 0 20px 48px -12px rgba(15, 23, 42, 0.28);
    --pw-shadow-inset: inset 0 1px 2px rgba(15, 23, 42, 0.08);
    --pw-success: #047857;
    --pw-success-bg: rgba(4, 120, 87, 0.10);
    --pw-success-border: rgba(4, 120, 87, 0.30);
    --pw-success-glow: none;
    --pw-warning: #b45309;
    --pw-warning-bg: rgba(180, 83, 9, 0.10);
    --pw-warning-border: rgba(180, 83, 9, 0.30);
    --pw-warning-glow: none;
    --pw-danger: #b91c1c;
    --pw-danger-bg: rgba(185, 28, 28, 0.08);
    --pw-danger-border: rgba(185, 28, 28, 0.28);
    --pw-danger-glow: none;
    --pw-info: #1d4ed8;
    --pw-info-bg: rgba(29, 78, 216, 0.08);
    --pw-info-border: rgba(29, 78, 216, 0.28);
    --pw-info-glow: none;
    --pw-danger-fg: #b91c1c;
    --pw-neutral: #475569;
    --pw-neutral-bg: rgba(71, 85, 105, 0.10);
    --pw-neutral-border: rgba(71, 85, 105, 0.28);
}
html[data-theme-engine="panda"][data-panda-theme="niebla"],
html[data-theme-engine="panda"][data-panda-theme="niebla"] body,
html[data-theme-engine="panda"][data-panda-theme="niebla"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="niebla"] .theme-v2 {
    color-scheme: light;
    --v2-bg-root: #cfd5dd;
    --v2-bg-panel: #dce1e7;
    --v2-bg-card: #e9edf1;
    --v2-bg-card-raised: #f1f4f7;
    --v2-bg-input: #f7f9fb;
    --v2-bg-input-focus: #f7f9fb;
    --v2-sidebar-bg: linear-gradient(180deg, #dce1e7 0%, #cfd5dd 100%);
    --v2-sidebar-border: rgba(15, 23, 42, 0.10);
    --v2-cyan: #be185d;
    --v2-cyan-bright: #9d174d;
    --v2-cyan-glow: rgba(190, 24, 93, 0.22);
    --v2-emerald: #0369a1;
    --v2-emerald-bright: #0369a1;
    --v2-emerald-glow: rgba(3, 105, 161, 0.25);
    --v2-violet: #7c3aed;
    --v2-violet-bright: #7c3aed;
    --v2-border: rgba(15, 23, 42, 0.12);
    --v2-border-strong: rgba(15, 23, 42, 0.2);
    --v2-border-active: rgba(190, 24, 93, 0.6);
    --v2-badge-bg: rgba(190, 24, 93, 0.1);
    --v2-cta-bg: linear-gradient(135deg, #be185d 0%, #9d174d 100%);
    --v2-cta-border: rgba(190, 24, 93, 0.7);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(190, 24, 93, 0.14) 0%, rgba(190, 24, 93, 0.05) 100%);
    --v2-sidebar-active-border: rgba(190, 24, 93, 0.45);
    --v2-sidebar-active-glow: rgba(190, 24, 93, 0.18);
    --v2-shadow-card: 0 1px 2px rgba(15, 23, 42, 0.06), 0 10px 28px -10px rgba(15, 23, 42, 0.18);
    --v2-shadow-glow-cyan: 0 0 0 3px rgba(190, 24, 93, 0.16);
    --v2-text-main: #111827;
    --v2-text-sub: #1f2937;
    --v2-text-muted: #374151;
    --v2-text-dim: #454f5e;
    --v2-chart-grid: rgba(15, 23, 42, 0.08);
    --primary-500: 190, 24, 93;
    --pw-text-on-accent: #ffffff;
    --pw-accent-solid: #be185d;
    --pw-bg-hover: rgba(15, 23, 42, 0.05);
    --pw-surface-card-hover: rgba(15, 23, 42, 0.05);
    --pw-surface-card-subtle: rgba(15, 23, 42, 0.03);
    --pw-zebra-odd: rgba(15, 23, 42, 0.02);
    --pw-zebra-hover: rgba(15, 23, 42, 0.045);
    --pw-border-input: rgba(15, 23, 42, 0.20);
    --pw-border-input-hover: rgba(15, 23, 42, 0.32);
    --pw-action-hover-bg: rgba(15, 23, 42, 0.06);
    --pw-bg-backdrop: rgba(15, 23, 42, 0.45);
    --pw-shadow-pop: 0 20px 48px -12px rgba(15, 23, 42, 0.28);
    --pw-shadow-inset: inset 0 1px 2px rgba(15, 23, 42, 0.08);
    --pw-success: #047857;
    --pw-success-bg: rgba(4, 120, 87, 0.10);
    --pw-success-border: rgba(4, 120, 87, 0.30);
    --pw-success-glow: none;
    --pw-warning: #b45309;
    --pw-warning-bg: rgba(180, 83, 9, 0.10);
    --pw-warning-border: rgba(180, 83, 9, 0.30);
    --pw-warning-glow: none;
    --pw-danger: #b91c1c;
    --pw-danger-bg: rgba(185, 28, 28, 0.08);
    --pw-danger-border: rgba(185, 28, 28, 0.28);
    --pw-danger-glow: none;
    --pw-info: #1d4ed8;
    --pw-info-bg: rgba(29, 78, 216, 0.08);
    --pw-info-border: rgba(29, 78, 216, 0.28);
    --pw-info-glow: none;
    --pw-danger-fg: #b91c1c;
    --pw-neutral: #475569;
    --pw-neutral-bg: rgba(71, 85, 105, 0.10);
    --pw-neutral-border: rgba(71, 85, 105, 0.28);
}
html[data-theme-engine="panda"][data-panda-theme="grafito"],
html[data-theme-engine="panda"][data-panda-theme="grafito"] body,
html[data-theme-engine="panda"][data-panda-theme="grafito"].theme-v2,
html[data-theme-engine="panda"][data-panda-theme="grafito"] .theme-v2 {
    color-scheme: dark;
    --v2-bg-root: #22272e;
    --v2-bg-panel: #272d35;
    --v2-bg-card: #2d333b;
    --v2-bg-card-raised: #353c45;
    --v2-bg-input: #262c34;
    --v2-bg-input-focus: #353c45;
    --v2-sidebar-bg: linear-gradient(180deg, #272d35 0%, #22272e 100%);
    --v2-sidebar-border: rgba(255, 255, 255, 0.10);
    --v2-cyan: #ea580c;
    --v2-cyan-bright: #fb923c;
    --v2-cyan-glow: rgba(234, 88, 12, 0.4);
    --v2-emerald: #22c55e;
    --v2-emerald-bright: #22c55e;
    --v2-emerald-glow: rgba(34, 197, 94, 0.25);
    --v2-violet: #a78bfa;
    --v2-violet-bright: #a78bfa;
    --v2-border: rgba(255, 255, 255, 0.1);
    --v2-border-strong: rgba(255, 255, 255, 0.16);
    --v2-border-active: rgba(234, 88, 12, 0.6);
    --v2-badge-bg: rgba(234, 88, 12, 0.16);
    --v2-cta-bg: linear-gradient(135deg, #ea580c 0%, #ea580c 100%);
    --v2-cta-border: rgba(234, 88, 12, 0.7);
    --v2-sidebar-active-bg: linear-gradient(90deg, rgba(234, 88, 12, 0.14) 0%, rgba(234, 88, 12, 0.05) 100%);
    --v2-sidebar-active-border: rgba(234, 88, 12, 0.45);
    --v2-sidebar-active-glow: rgba(234, 88, 12, 0.18);
    --v2-shadow-card: 0 12px 32px -4px rgba(0, 0, 0, 0.55);
    --v2-shadow-glow-cyan: 0 0 22px rgba(234, 88, 12, 0.3);
    --v2-text-main: #e6edf3;
    --v2-text-sub: #c9d1d9;
    --v2-text-muted: #a8b2bd;
    --v2-text-dim: #98a2ad;
    --v2-chart-grid: rgba(255, 255, 255, 0.08);
    --primary-500: 234, 88, 12;
    --pw-text-on-accent: #ffffff;
    --pw-accent-solid: #ea580c;
}
/* === Fin temas claros v5.0 === */

/* Avisos de relleno sólido en los presets claros: el ámbar y el rojo de estos presets son oscuros, así que el
   texto encima va blanco (blanco sobre #b45309 = 5.0:1; sobre #b91c1c = 6.5:1). */
html[data-theme-engine="panda"][data-panda-theme="porcelana"],
html[data-theme-engine="panda"][data-panda-theme="porcelana"] body,
html[data-theme-engine="panda"][data-panda-theme="porcelana"] .theme-v2,
html[data-theme-engine="panda"][data-panda-theme="lino"],
html[data-theme-engine="panda"][data-panda-theme="lino"] body,
html[data-theme-engine="panda"][data-panda-theme="lino"] .theme-v2,
html[data-theme-engine="panda"][data-panda-theme="aurora"],
html[data-theme-engine="panda"][data-panda-theme="aurora"] body,
html[data-theme-engine="panda"][data-panda-theme="aurora"] .theme-v2,
html[data-theme-engine="panda"][data-panda-theme="niebla"],
html[data-theme-engine="panda"][data-panda-theme="niebla"] body,
html[data-theme-engine="panda"][data-panda-theme="niebla"] .theme-v2 {
    --pw-on-warning: #ffffff;
    --pw-danger-solid: var(--pw-danger);
}
