diff --git a/AppImage/app/globals.css b/AppImage/app/globals.css index cdcaa59..7e0954e 100644 --- a/AppImage/app/globals.css +++ b/AppImage/app/globals.css @@ -1,94 +1,146 @@ -/* ==== Tailwind v3 directives ==== */ @tailwind base; @tailwind components; @tailwind utilities; -/* ==== Design tokens (OKLCH) ==== */ +/* ===================== */ +/* Light Mode (default) */ +/* ===================== */ :root { - --background: oklch(1 0 0); - --foreground: oklch(0.145 0 0); + --background: oklch(1 0 0); /* blanco */ + --foreground: oklch(0.145 0 0); /* casi negro */ + --card: oklch(1 0 0); - --card-foreground: oklch(0.145 0 0); - --popover: oklch(1 0 0); - --popover-foreground: oklch(0.145 0 0); - --primary: oklch(0.205 0 0); - --primary-foreground: oklch(0.985 0 0); + --card-foreground: var(--foreground); + + --popover: var(--card); + --popover-foreground: var(--foreground); + + --primary: oklch(0.205 0 0); /* gris oscuro */ + --primary-foreground: oklch(0.985 0 0); /* blanco */ + --secondary: oklch(0.97 0 0); - --secondary-foreground: oklch(0.205 0 0); + --secondary-foreground: var(--primary); + --muted: oklch(0.97 0 0); - --muted-foreground: oklch(0.556 0 0); + --muted-foreground: oklch(0.556 0 0); /* gris medio */ + --accent: oklch(0.97 0 0); - --accent-foreground: oklch(0.205 0 0); + --accent-foreground: var(--primary); + --destructive: oklch(0.577 0.245 27.325); - --destructive-foreground: oklch(0.577 0.245 27.325); + --destructive-foreground: oklch(0.145 0 0); + --border: oklch(0.922 0 0); - --input: oklch(0.922 0 0); + --input: var(--border); --ring: oklch(0.708 0 0); + --chart-1: oklch(0.646 0.222 41.116); --chart-2: oklch(0.6 0.118 184.704); --chart-3: oklch(0.398 0.07 227.392); --chart-4: oklch(0.828 0.189 84.429); --chart-5: oklch(0.769 0.188 70.08); + --radius: 0.625rem; + --sidebar: oklch(0.985 0 0); - --sidebar-foreground: oklch(0.145 0 0); - --sidebar-primary: oklch(0.205 0 0); + --sidebar-foreground: var(--foreground); + --sidebar-primary: var(--primary); --sidebar-primary-foreground: oklch(0.985 0 0); --sidebar-accent: oklch(0.97 0 0); - --sidebar-accent-foreground: oklch(0.205 0 0); - --sidebar-border: oklch(0.922 0 0); - --sidebar-ring: oklch(0.708 0 0); + --sidebar-accent-foreground: var(--primary); + --sidebar-border: var(--border); + --sidebar-ring: var(--ring); } +/* ===================== */ +/* Dark Mode (gris) */ +/* ===================== */ .dark { - --background: oklch(0.145 0 0); - --foreground: oklch(0.985 0 0); - --card: oklch(0.145 0 0); - --card-foreground: oklch(0.985 0 0); - --popover: oklch(0.145 0 0); - --popover-foreground: oklch(0.985 0 0); - --primary: oklch(0.985 0 0); - --primary-foreground: oklch(0.205 0 0); - --secondary: oklch(0.269 0 0); - --secondary-foreground: oklch(0.985 0 0); - --muted: oklch(0.269 0 0); - --muted-foreground: oklch(0.708 0 0); - --accent: oklch(0.269 0 0); - --accent-foreground: oklch(0.985 0 0); - --destructive: oklch(0.396 0.141 25.723); - --destructive-foreground: oklch(0.637 0.237 25.331); - --border: oklch(0.269 0 0); - --input: oklch(0.269 0 0); - --ring: oklch(0.439 0 0); - --chart-1: oklch(0.488 0.243 264.376); - --chart-2: oklch(0.696 0.17 162.48); - --chart-3: oklch(0.769 0.188 70.08); - --chart-4: oklch(0.627 0.265 303.9); - --chart-5: oklch(0.645 0.246 16.439); - --sidebar: oklch(0.205 0 0); - --sidebar-foreground: oklch(0.985 0 0); - --sidebar-primary: oklch(0.488 0.243 264.376); - --sidebar-primary-foreground: oklch(0.985 0 0); - --sidebar-accent: oklch(0.269 0 0); - --sidebar-accent-foreground: oklch(0.985 0 0); - --sidebar-border: oklch(0.269 0 0); - --sidebar-ring: oklch(0.439 0 0); + --background: oklch(0.22 0 0); /* gris oscuro */ + --foreground: oklch(0.97 0 0); /* blanco/gris claro */ + + --card: oklch(0.24 0 0); + --card-foreground: var(--foreground); + + --popover: var(--card); + --popover-foreground: var(--foreground); + + --primary: oklch(0.83 0 0); /* casi blanco */ + --primary-foreground: var(--background); + + --secondary: oklch(0.28 0 0); + --secondary-foreground: oklch(0.92 0 0); + + --muted: oklch(0.26 0 0); + --muted-foreground: oklch(0.72 0 0); + + --accent: oklch(0.28 0 0); + --accent-foreground: var(--primary); + + --destructive: oklch(0.53 0.25 27); + --destructive-foreground: oklch(0.9 0 0); + + --border: oklch(0.34 0 0); + --input: var(--border); + --ring: oklch(0.55 0 0); + + --chart-1: oklch(0.60 0.20 255); + --chart-2: oklch(0.70 0.16 165); + --chart-3: oklch(0.76 0.19 70); + --chart-4: oklch(0.63 0.25 305); + --chart-5: oklch(0.66 0.24 20); + + --sidebar: oklch(0.24 0 0); + --sidebar-foreground: var(--foreground); + --sidebar-primary: var(--chart-1); + --sidebar-primary-foreground: var(--foreground); + --sidebar-accent: oklch(0.28 0 0); + --sidebar-accent-foreground: var(--foreground); + --sidebar-border: var(--border); + --sidebar-ring: var(--ring); } -/* ==== Base (v3): sin @theme inline ni outline-* ==== */ +/* ===================== */ +/* Base layer */ +/* ===================== */ @layer base { - /* borde sutil por defecto */ - * { @apply border-border; } + * { + @apply border-border; + } - /* foco accesible y suave en elementos interactivos */ + body { + @apply bg-background text-foreground; + } + + /* Foco accesible */ :is(button,[role="button"],a,input,select,textarea,[tabindex]:not([tabindex="-1"])):focus { @apply outline-none; } :is(button,[role="button"],a,input,select,textarea,[tabindex]:not([tabindex="-1"])):focus-visible { - @apply ring-2; /* grosor del ring */ - --tw-ring-color: var(--ring); /* color desde tu token */ - --tw-ring-opacity: 0.5; /* equivalente a /50 */ + @apply ring-2; + --tw-ring-color: var(--ring); + --tw-ring-opacity: 0.5; /* equivalente al /50 */ + } +} + +/* ===================== */ +/* Ajustes para Charts */ +/* ===================== */ +@layer components { + /* Recharts axis */ + .recharts-cartesian-axis-tick tspan { + fill: var(--muted-foreground); + } + .recharts-cartesian-axis-line, + .recharts-cartesian-grid line { + stroke: var(--border); } - body { @apply bg-background text-foreground; } + /* Chart.js axis */ + .chartjs-render-monitor text { + fill: var(--muted-foreground); + } + .chartjs-render-monitor line { + stroke: var(--border); + } }