Spaces:
Sleeping
Sleeping
| @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap'); | |
| @tailwind base; | |
| @tailwind components; | |
| @tailwind utilities; | |
| @layer base { | |
| :root { | |
| /* Government Professional Theme - Deep Teal & Blue */ | |
| --background: 210 25% 98%; | |
| --foreground: 215 28% 17%; | |
| --card: 0 0% 100%; | |
| --card-foreground: 215 28% 17%; | |
| --popover: 0 0% 100%; | |
| --popover-foreground: 215 28% 17%; | |
| /* Deep Teal Primary */ | |
| --primary: 187 70% 32%; | |
| --primary-foreground: 0 0% 100%; | |
| /* Light Slate Secondary */ | |
| --secondary: 210 20% 96%; | |
| --secondary-foreground: 215 28% 17%; | |
| --muted: 210 20% 94%; | |
| --muted-foreground: 215 16% 47%; | |
| /* Warm Accent */ | |
| --accent: 38 92% 50%; | |
| --accent-foreground: 0 0% 100%; | |
| --destructive: 0 84% 60%; | |
| --destructive-foreground: 0 0% 100%; | |
| --border: 214 20% 90%; | |
| --input: 214 20% 90%; | |
| --ring: 187 70% 32%; | |
| --radius: 0.625rem; | |
| /* Sidebar - Darker Professional */ | |
| --sidebar-background: 215 28% 17%; | |
| --sidebar-foreground: 210 20% 92%; | |
| --sidebar-primary: 187 70% 50%; | |
| --sidebar-primary-foreground: 0 0% 100%; | |
| --sidebar-accent: 215 25% 22%; | |
| --sidebar-accent-foreground: 210 20% 92%; | |
| --sidebar-border: 215 25% 25%; | |
| --sidebar-ring: 187 70% 50%; | |
| /* Custom Colors */ | |
| --success: 160 60% 40%; | |
| --success-foreground: 0 0% 100%; | |
| --warning: 38 92% 50%; | |
| --warning-foreground: 0 0% 100%; | |
| --info: 200 80% 50%; | |
| --info-foreground: 0 0% 100%; | |
| /* Status Colors */ | |
| --status-pending: 38 92% 50%; | |
| --status-approved: 160 60% 40%; | |
| --status-rejected: 0 84% 60%; | |
| --status-in-progress: 200 80% 50%; | |
| --status-completed: 160 60% 40%; | |
| /* Gradients */ | |
| --gradient-primary: linear-gradient(135deg, hsl(187 70% 32%), hsl(200 70% 35%)); | |
| --gradient-accent: linear-gradient(135deg, hsl(38 92% 50%), hsl(25 95% 55%)); | |
| --gradient-success: linear-gradient(135deg, hsl(160 60% 40%), hsl(170 60% 45%)); | |
| --gradient-sidebar: linear-gradient(180deg, hsl(215 28% 17%), hsl(215 28% 12%)); | |
| /* Shadows */ | |
| --shadow-sm: 0 1px 2px 0 hsl(215 28% 17% / 0.05); | |
| --shadow-md: 0 4px 6px -1px hsl(215 28% 17% / 0.1), 0 2px 4px -2px hsl(215 28% 17% / 0.1); | |
| --shadow-lg: 0 10px 15px -3px hsl(215 28% 17% / 0.1), 0 4px 6px -4px hsl(215 28% 17% / 0.1); | |
| --shadow-glow: 0 0 20px hsl(187 70% 32% / 0.3); | |
| } | |
| .dark { | |
| --background: 215 28% 10%; | |
| --foreground: 210 20% 92%; | |
| --card: 215 28% 14%; | |
| --card-foreground: 210 20% 92%; | |
| --popover: 215 28% 14%; | |
| --popover-foreground: 210 20% 92%; | |
| --primary: 187 70% 50%; | |
| --primary-foreground: 215 28% 10%; | |
| --secondary: 215 25% 20%; | |
| --secondary-foreground: 210 20% 92%; | |
| --muted: 215 25% 18%; | |
| --muted-foreground: 215 16% 60%; | |
| --accent: 38 92% 55%; | |
| --accent-foreground: 215 28% 10%; | |
| --destructive: 0 70% 50%; | |
| --destructive-foreground: 0 0% 100%; | |
| --border: 215 25% 22%; | |
| --input: 215 25% 22%; | |
| --ring: 187 70% 50%; | |
| --sidebar-background: 215 28% 8%; | |
| --sidebar-foreground: 210 20% 85%; | |
| --sidebar-primary: 187 70% 55%; | |
| --sidebar-primary-foreground: 215 28% 8%; | |
| --sidebar-accent: 215 28% 14%; | |
| --sidebar-accent-foreground: 210 20% 85%; | |
| --sidebar-border: 215 25% 15%; | |
| --sidebar-ring: 187 70% 55%; | |
| } | |
| } | |
| @layer base { | |
| * { | |
| @apply border-border; | |
| } | |
| body { | |
| @apply bg-background text-foreground font-sans antialiased; | |
| font-family: 'Inter', system-ui, sans-serif; | |
| } | |
| h1, h2, h3, h4, h5, h6 { | |
| font-family: 'Plus Jakarta Sans', system-ui, sans-serif; | |
| } | |
| } | |
| @layer components { | |
| .glass-card { | |
| @apply bg-card/80 backdrop-blur-md border border-border/50 shadow-lg; | |
| } | |
| .stat-card { | |
| @apply relative overflow-hidden rounded-xl bg-card p-6 shadow-md transition-all duration-300 hover:shadow-lg hover:-translate-y-0.5; | |
| } | |
| .stat-card::before { | |
| content: ''; | |
| @apply absolute top-0 left-0 w-1 h-full bg-gradient-to-b from-primary to-primary/60; | |
| } | |
| .status-badge { | |
| @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium; | |
| } | |
| .status-pending { | |
| @apply bg-amber-100 text-amber-800; | |
| } | |
| .status-approved { | |
| @apply bg-emerald-100 text-emerald-800; | |
| } | |
| .status-rejected { | |
| @apply bg-red-100 text-red-800; | |
| } | |
| .status-in-progress { | |
| @apply bg-blue-100 text-blue-800; | |
| } | |
| .workflow-step { | |
| @apply flex items-center gap-3 p-4 rounded-lg transition-all duration-200; | |
| } | |
| .workflow-step-active { | |
| @apply bg-primary/10 border-l-4 border-primary; | |
| } | |
| .workflow-step-completed { | |
| @apply bg-emerald-50 border-l-4 border-emerald-500; | |
| } | |
| .sidebar-nav-item { | |
| @apply flex items-center gap-3 px-3 py-2.5 rounded-lg text-sidebar-foreground/80 transition-all duration-200 hover:bg-sidebar-accent hover:text-sidebar-foreground; | |
| } | |
| .sidebar-nav-item-active { | |
| @apply bg-sidebar-primary/20 text-sidebar-primary font-medium; | |
| } | |
| .table-row-hover { | |
| @apply hover:bg-muted/50 transition-colors duration-150; | |
| } | |
| .input-focus { | |
| @apply focus:ring-2 focus:ring-primary/20 focus:border-primary transition-all duration-200; | |
| } | |
| .btn-primary-gradient { | |
| background: var(--gradient-primary); | |
| @apply text-primary-foreground shadow-md hover:shadow-lg transition-all duration-200; | |
| } | |
| .card-hover { | |
| @apply transition-all duration-300 hover:shadow-lg hover:-translate-y-0.5; | |
| } | |
| .animate-fade-in { | |
| animation: fadeIn 0.3s ease-out forwards; | |
| } | |
| .animate-slide-up { | |
| animation: slideUp 0.4s ease-out forwards; | |
| } | |
| .animate-scale-in { | |
| animation: scaleIn 0.3s ease-out forwards; | |
| } | |
| } | |
| @keyframes fadeIn { | |
| from { | |
| opacity: 0; | |
| } | |
| to { | |
| opacity: 1; | |
| } | |
| } | |
| @keyframes slideUp { | |
| from { | |
| opacity: 0; | |
| transform: translateY(20px); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: translateY(0); | |
| } | |
| } | |
| @keyframes scaleIn { | |
| from { | |
| opacity: 0; | |
| transform: scale(0.95); | |
| } | |
| to { | |
| opacity: 1; | |
| transform: scale(1); | |
| } | |
| } | |
| @keyframes pulse-glow { | |
| 0%, 100% { | |
| box-shadow: 0 0 5px hsl(187 70% 32% / 0.3); | |
| } | |
| 50% { | |
| box-shadow: 0 0 20px hsl(187 70% 32% / 0.5); | |
| } | |
| } | |
| .animate-pulse-glow { | |
| animation: pulse-glow 2s ease-in-out infinite; | |
| } | |
| /* Scrollbar styling */ | |
| ::-webkit-scrollbar { | |
| width: 8px; | |
| height: 8px; | |
| } | |
| ::-webkit-scrollbar-track { | |
| @apply bg-muted/30 rounded-full; | |
| } | |
| ::-webkit-scrollbar-thumb { | |
| @apply bg-muted-foreground/20 rounded-full hover:bg-muted-foreground/30; | |
| } | |