214 lines
4.4 KiB
CSS
214 lines
4.4 KiB
CSS
@tailwind base;
|
|
@tailwind components;
|
|
@tailwind utilities;
|
|
|
|
@layer base {
|
|
:root {
|
|
--background: 0 0% 100%;
|
|
--foreground: 222.2 84% 4.9%;
|
|
|
|
--card: 0 0% 100%;
|
|
--card-foreground: 222.2 84% 4.9%;
|
|
|
|
--popover: 0 0% 100%;
|
|
--popover-foreground: 222.2 84% 4.9%;
|
|
|
|
--primary: 222.2 47.4% 11.2%;
|
|
--primary-foreground: 210 40% 98%;
|
|
|
|
--secondary: 210 40% 96.1%;
|
|
--secondary-foreground: 222.2 47.4% 11.2%;
|
|
|
|
--muted: 210 40% 96.1%;
|
|
--muted-foreground: 215.4 16.3% 46.9%;
|
|
|
|
--accent: 210 40% 96.1%;
|
|
--accent-foreground: 222.2 47.4% 11.2%;
|
|
|
|
--destructive: 0 84.2% 60.2%;
|
|
--destructive-foreground: 210 40% 98%;
|
|
|
|
--border: 214.3 31.8% 91.4%;
|
|
--input: 214.3 31.8% 91.4%;
|
|
--ring: 222.2 84% 4.9%;
|
|
|
|
--radius: 0.5rem;
|
|
}
|
|
|
|
.dark {
|
|
--background: 222.2 84% 4.9%;
|
|
--foreground: 210 40% 98%;
|
|
|
|
--card: 222.2 84% 4.9%;
|
|
--card-foreground: 210 40% 98%;
|
|
|
|
--popover: 222.2 84% 4.9%;
|
|
--popover-foreground: 210 40% 98%;
|
|
|
|
--primary: 210 40% 98%;
|
|
--primary-foreground: 222.2 47.4% 11.2%;
|
|
|
|
--secondary: 217.2 32.6% 17.5%;
|
|
--secondary-foreground: 210 40% 98%;
|
|
|
|
--muted: 217.2 32.6% 17.5%;
|
|
--muted-foreground: 215 20.2% 65.1%;
|
|
|
|
--accent: 217.2 32.6% 17.5%;
|
|
--accent-foreground: 210 40% 98%;
|
|
|
|
--destructive: 0 62.8% 30.6%;
|
|
--destructive-foreground: 210 40% 98%;
|
|
|
|
--border: 217.2 32.6% 17.5%;
|
|
--input: 217.2 32.6% 17.5%;
|
|
--ring: 212.7 26.8% 83.9%;
|
|
}
|
|
}
|
|
|
|
@layer base {
|
|
* {
|
|
@apply border-border;
|
|
}
|
|
body {
|
|
@apply bg-background text-foreground min-h-screen antialiased;
|
|
font-feature-settings: "rlig" 1, "calt" 1;
|
|
}
|
|
}
|
|
|
|
/* Custom styles */
|
|
.container {
|
|
@apply mx-auto px-4 sm:px-6 lg:px-8 max-w-7xl;
|
|
}
|
|
|
|
/* Smooth scrolling */
|
|
html {
|
|
scroll-behavior: smooth;
|
|
}
|
|
|
|
/* Focus styles */
|
|
*:focus-visible {
|
|
@apply outline-none ring-2 ring-primary ring-offset-2;
|
|
}
|
|
|
|
/* Selection styles */
|
|
::selection {
|
|
@apply bg-primary/20 text-primary;
|
|
}
|
|
|
|
/* Scrollbar styles */
|
|
::-webkit-scrollbar {
|
|
@apply w-2;
|
|
}
|
|
|
|
::-webkit-scrollbar-track {
|
|
@apply bg-muted;
|
|
}
|
|
|
|
::-webkit-scrollbar-thumb {
|
|
@apply bg-muted-foreground/50 rounded-full hover:bg-muted-foreground/70;
|
|
}
|
|
|
|
/* Typography */
|
|
h1, h2, h3, h4, h5, h6 {
|
|
@apply font-semibold tracking-tight;
|
|
}
|
|
|
|
h1 {
|
|
@apply text-4xl sm:text-5xl md:text-6xl;
|
|
}
|
|
|
|
h2 {
|
|
@apply text-3xl sm:text-4xl md:text-5xl;
|
|
}
|
|
|
|
h3 {
|
|
@apply text-2xl sm:text-3xl md:text-4xl;
|
|
}
|
|
|
|
h4 {
|
|
@apply text-xl sm:text-2xl md:text-3xl;
|
|
}
|
|
|
|
h5 {
|
|
@apply text-lg sm:text-xl md:text-2xl;
|
|
}
|
|
|
|
h6 {
|
|
@apply text-base sm:text-lg md:text-xl;
|
|
}
|
|
|
|
/* Link styles */
|
|
a {
|
|
@apply text-primary hover:text-primary/80 transition-colors;
|
|
}
|
|
|
|
/* Button styles */
|
|
button, .button {
|
|
@apply inline-flex items-center justify-center rounded-md text-sm font-medium transition-colors
|
|
focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2
|
|
disabled:opacity-50 disabled:pointer-events-none ring-offset-background;
|
|
}
|
|
|
|
/* Form styles */
|
|
input, textarea, select {
|
|
@apply rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background
|
|
file:border-0 file:bg-transparent file:text-sm file:font-medium
|
|
placeholder:text-muted-foreground
|
|
focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2
|
|
disabled:cursor-not-allowed disabled:opacity-50;
|
|
}
|
|
|
|
/* Card styles */
|
|
.card {
|
|
@apply rounded-lg border bg-card text-card-foreground shadow-sm;
|
|
}
|
|
|
|
/* Badge styles */
|
|
.badge {
|
|
@apply inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors
|
|
focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2;
|
|
}
|
|
|
|
/* Animation utilities */
|
|
.animate-in {
|
|
animation: animate-in 0.5s ease-out;
|
|
}
|
|
|
|
@keyframes animate-in {
|
|
from {
|
|
opacity: 0;
|
|
transform: translateY(10px);
|
|
}
|
|
to {
|
|
opacity: 1;
|
|
transform: translateY(0);
|
|
}
|
|
}
|
|
|
|
/* Loading spinner */
|
|
.spinner {
|
|
@apply animate-spin rounded-full border-2 border-current border-t-transparent;
|
|
}
|
|
|
|
/* Responsive utilities */
|
|
.responsive-container {
|
|
@apply container mx-auto px-4 sm:px-6 lg:px-8;
|
|
}
|
|
|
|
.responsive-grid {
|
|
@apply grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4 sm:gap-6 lg:gap-8;
|
|
}
|
|
|
|
/* Accessibility */
|
|
.sr-only {
|
|
@apply absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0;
|
|
}
|
|
|
|
/* Print styles */
|
|
@media print {
|
|
.no-print {
|
|
display: none;
|
|
}
|
|
}
|