Files
ACVE/app/globals.css
2026-03-15 13:52:11 +00:00

266 lines
5.5 KiB
CSS
Executable File

@tailwind base;
@tailwind components;
@tailwind utilities;
:root {
/* ACVE core variables */
--acve-brand: #98143f;
--acve-brand-strong: #7c1033;
--acve-brand-soft: #f7e8eb;
--acve-ink: #2f2931;
--acve-muted: #655e66;
--acve-line: #d8cec2;
--acve-panel: #fffaf3;
--acve-panel-strong: #fffdf9;
--acve-shell-bg: linear-gradient(180deg, #faf4ea 0%, #f4ebde 100%);
--acve-body-bg: radial-gradient(circle at top right, #fff8ef 0%, #f8efe3 52%, #f2e7d9 100%);
--acve-heading-font: "Palatino Linotype", "Book Antiqua", "Times New Roman", serif;
--acve-body-font: "Segoe UI", "Trebuchet MS", "Verdana", sans-serif;
--acve-space-1: 4px;
--acve-space-2: 8px;
--acve-space-3: 12px;
--acve-space-4: 16px;
--acve-space-5: 24px;
--acve-space-6: 32px;
--acve-space-7: 48px;
/* SHADCN mapping */
--background: 36 45% 95%;
--foreground: 330 10% 18%;
--primary: 341 77% 34%;
--primary-foreground: 0 0% 100%;
--card: 34 55% 98%;
--card-foreground: 330 10% 18%;
--border: 32 26% 80%;
--input: 32 26% 80%;
--ring: 341 77% 34%;
--secondary: 28 37% 90%;
--secondary-foreground: 330 10% 20%;
--muted: 30 28% 90%;
--muted-foreground: 329 8% 41%;
--accent: 345 53% 94%;
--accent-foreground: 339 51% 24%;
--destructive: 0 84.2% 60.2%;
--destructive-foreground: 210 40% 98%;
--popover: 34 55% 98%;
--popover-foreground: 330 10% 18%;
--radius: 0.95rem;
}
.dark {
--acve-brand: #bf4069;
--acve-brand-strong: #c95a7f;
--acve-brand-soft: #3c1f2d;
--acve-ink: #ede6e0;
--acve-muted: #b5aeb6;
--acve-line: #353847;
--acve-panel: #171c27;
--acve-panel-strong: #1b2130;
--acve-shell-bg: linear-gradient(180deg, #121621 0%, #0f1420 100%);
--acve-body-bg: radial-gradient(circle at top right, #1f2433 0%, #151a26 54%, #0f131e 100%);
--background: 222 30% 11%;
--foreground: 30 25% 92%;
--primary: 338 53% 51%;
--primary-foreground: 0 0% 100%;
--card: 224 26% 15%;
--card-foreground: 30 25% 92%;
--border: 225 17% 27%;
--input: 225 17% 27%;
--ring: 338 53% 51%;
--secondary: 224 20% 20%;
--secondary-foreground: 30 25% 92%;
--muted: 224 20% 19%;
--muted-foreground: 225 14% 71%;
--accent: 336 27% 24%;
--accent-foreground: 30 25% 92%;
--destructive: 0 63% 38%;
--destructive-foreground: 0 0% 100%;
--popover: 224 26% 15%;
--popover-foreground: 30 25% 92%;
}
@layer base {
* {
@apply border-border;
}
}
html,
body {
margin: 0;
min-height: 100%;
background: var(--acve-body-bg);
color: hsl(var(--foreground));
font-family: var(--acve-body-font);
font-size: 16px;
line-height: 1.45;
text-rendering: geometricPrecision;
transition:
background-color 0.2s ease,
color 0.2s ease;
}
a {
color: inherit;
text-decoration: none;
}
a,
button,
input,
select,
textarea,
[role="button"] {
outline-color: transparent;
}
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[role="button"]:focus-visible {
outline: 2px solid hsl(var(--ring));
outline-offset: 2px;
}
h1,
h2,
h3,
h4 {
font-family: var(--acve-heading-font);
}
::selection {
background: #f1d9e1;
color: #3f1020;
}
.dark ::selection {
background: #5d2e41;
color: #fff6fa;
}
.acve-shell {
background: var(--acve-shell-bg);
}
.acve-panel {
border: 1px solid var(--acve-line);
background: var(--acve-panel);
border-radius: 16px;
}
.acve-heading {
color: var(--acve-brand);
font-family: var(--acve-heading-font);
letter-spacing: 0.01em;
line-height: 1.1;
}
.acve-pill {
display: inline-flex;
align-items: center;
border: 1px solid var(--acve-line);
border-radius: 9999px;
background: var(--acve-panel-strong);
color: var(--acve-muted);
padding: 8px 14px;
font-size: 0.95rem;
}
.acve-button-primary {
background: var(--acve-brand);
color: #ffffff;
border-radius: 12px;
border: 1px solid var(--acve-brand);
min-height: 44px;
}
.acve-button-secondary {
border: 1px solid var(--acve-brand);
color: var(--acve-brand);
background: var(--acve-panel-strong);
border-radius: 12px;
min-height: 44px;
}
.acve-page {
display: flex;
flex-direction: column;
gap: var(--acve-space-5);
}
.acve-section-tight {
padding: var(--acve-space-4);
}
.acve-section-base {
padding: var(--acve-space-5);
}
.acve-scrollbar-none {
-ms-overflow-style: none;
scrollbar-width: none;
}
.acve-scrollbar-none::-webkit-scrollbar {
display: none;
width: 0;
height: 0;
}
@media (min-width: 768px) {
.acve-page {
gap: var(--acve-space-6);
}
}
/* Dark-mode compatibility layer for legacy light-only utility classes */
.dark .bg-white,
.dark .bg-white\/70,
.dark .bg-white\/80,
.dark .bg-white\/90,
.dark .bg-\[\#faf8f8\],
.dark .bg-\[\#f6f6f8\] {
background-color: hsl(var(--card)) !important;
}
.dark .bg-slate-50,
.dark .bg-slate-50\/40,
.dark .bg-slate-50\/50,
.dark .bg-slate-50\/80,
.dark .bg-slate-100,
.dark .bg-slate-200 {
background-color: hsl(var(--muted)) !important;
}
.dark .border-slate-100,
.dark .border-slate-200,
.dark .border-slate-300,
.dark .border-slate-400,
.dark .border-gray-200 {
border-color: hsl(var(--border)) !important;
}
.dark .text-black,
.dark .text-slate-900,
.dark .text-slate-800,
.dark .text-slate-700 {
color: hsl(var(--foreground)) !important;
}
.dark .text-slate-600,
.dark .text-slate-500,
.dark .text-slate-400 {
color: hsl(var(--muted-foreground)) !important;
}
.dark [class*="text-[#1"],
.dark [class*="text-[#2"],
.dark [class*="text-[#3"],
.dark [class*="text-[#0"] {
color: hsl(var(--foreground)) !important;
}