@tailwind base; @tailwind components; @tailwind utilities; body { font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Open Sans", "Helvetica Neue", sans-serif; } @layer utilities { @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } .animate-fade-in { animation: fadeIn 0.6s ease-out forwards; } .animate-fade-in-delay { animation: fadeIn 0.6s ease-out 0.2s forwards; opacity: 0; } @keyframes slide-up { from { opacity: 0; transform: translateY(1rem); } to { opacity: 1; transform: translateY(0); } } .animate-slide-up { animation: slide-up 0.3s ease-out; } } .custom-modal .ant-modal-content { padding: 24px; border-radius: 16px; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08); } .custom-modal .ant-modal-header { margin-bottom: 0; padding: 0; } .custom-modal .ant-modal-body { padding: 0; } .custom-modal .ant-modal-close { top: 20px; right: 20px; } .custom-modal .ant-btn { height: 40px; border-radius: 8px; } .custom-tooltip-simple .ant-tooltip-inner { padding: 0; border-radius: 8px; min-width: 120px; border: 1px solid rgba(0, 0, 0, 0.04); } .custom-tooltip-simple .ant-tooltip-arrow { display: none; } .update-modal .ant-modal-content { padding: 24px; border-radius: 16px; box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08); } .update-modal .ant-modal-footer { margin-top: 24px; border-top: none; padding: 0; } .update-modal .ant-modal-footer .ant-btn { height: 38px; padding: 0 24px; border-radius: 8px; font-weight: 500; } .update-modal .ant-modal-footer .ant-btn-primary { background: rgb(59 130 246); border-color: rgb(59 130 246); box-shadow: 0 2px 4px rgba(59, 130, 246, 0.1); } .update-modal .ant-modal-footer .ant-btn-primary:hover { background: rgb(37 99 235); border-color: rgb(37 99 235); } .update-modal .ant-modal-footer .ant-btn-default { border-color: #e5e7eb; color: #6b7280; } .update-modal .ant-modal-footer .ant-btn-default:hover { border-color: #d1d5db; color: #4b5563; background: #f9fafb; } @layer base { :root { --background: 0 0% 100%; --foreground: 240 10% 3.9%; --card: 0 0% 100%; --card-foreground: 240 10% 3.9%; --popover: 0 0% 100%; --popover-foreground: 240 10% 3.9%; --primary: 240 5.9% 10%; --primary-foreground: 0 0% 98%; --secondary: 240 4.8% 95.9%; --secondary-foreground: 240 5.9% 10%; --muted: 240 4.8% 95.9%; --muted-foreground: 240 3.8% 46.1%; --accent: 240 4.8% 95.9%; --accent-foreground: 240 5.9% 10%; --destructive: 0 84.2% 60.2%; --destructive-foreground: 0 0% 98%; --border: 240 5.9% 90%; --input: 240 5.9% 90%; --ring: 240 10% 3.9%; --chart-1: 12 76% 61%; --chart-2: 173 58% 39%; --chart-3: 197 37% 24%; --chart-4: 43 74% 66%; --chart-5: 27 87% 67%; --radius: 0.5rem; --sidebar-background: 0 0% 98%; --sidebar-foreground: 240 5.3% 26.1%; --sidebar-primary: 240 5.9% 10%; --sidebar-primary-foreground: 0 0% 98%; --sidebar-accent: 240 4.8% 95.9%; --sidebar-accent-foreground: 240 5.9% 10%; --sidebar-border: 220 13% 91%; --sidebar-ring: 217.2 91.2% 59.8%; } .dark { --background: 240 10% 3.9%; --foreground: 0 0% 98%; --card: 240 10% 3.9%; --card-foreground: 0 0% 98%; --popover: 240 10% 3.9%; --popover-foreground: 0 0% 98%; --primary: 0 0% 98%; --primary-foreground: 240 5.9% 10%; --secondary: 240 3.7% 15.9%; --secondary-foreground: 0 0% 98%; --muted: 240 3.7% 15.9%; --muted-foreground: 240 5% 64.9%; --accent: 240 3.7% 15.9%; --accent-foreground: 0 0% 98%; --destructive: 0 62.8% 30.6%; --destructive-foreground: 0 0% 98%; --border: 240 3.7% 15.9%; --input: 240 3.7% 15.9%; --ring: 240 4.9% 83.9%; --chart-1: 220 70% 50%; --chart-2: 160 60% 45%; --chart-3: 30 80% 55%; --chart-4: 280 65% 60%; --chart-5: 340 75% 55%; --sidebar-background: 240 5.9% 10%; --sidebar-foreground: 240 4.8% 95.9%; --sidebar-primary: 224.3 76.3% 48%; --sidebar-primary-foreground: 0 0% 100%; --sidebar-accent: 240 3.7% 15.9%; --sidebar-accent-foreground: 240 4.8% 95.9%; --sidebar-border: 240 3.7% 15.9%; --sidebar-ring: 217.2 91.2% 59.8%; } } @layer base { * { border-color: hsl(var(--border)); } body { background-color: hsl(var(--background)); color: hsl(var(--foreground)); } } .bg-dot-pattern { background-image: radial-gradient( circle at center, hsl(var(--foreground) / 0.1) 1px, transparent 1px ); background-size: 24px 24px; } .bg-dot-pattern-dark { background-image: radial-gradient( circle at center, hsl(var(--foreground) / 0.2) 1px, transparent 1px ); background-size: 24px 24px; } @media (max-width: 640px) { .toaster-group { --viewport-padding: 16px; right: var(--viewport-padding); left: var(--viewport-padding); width: calc(100% - var(--viewport-padding) * 2); } .toast { --viewport-padding: 16px; width: 100%; border-radius: 12px; margin-left: 0; margin-right: 0; } } .custom-date-picker { border-radius: 0.5rem; box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1); border: 1px solid hsl(var(--border)); background-color: hsl(var(--background)); } .custom-date-picker .ant-picker-panel { background-color: hsl(var(--background)); } .custom-date-picker .ant-picker-cell-in-view.ant-picker-cell-selected .ant-picker-cell-inner { background-color: hsl(var(--primary)); color: hsl(var(--primary-foreground)); } .custom-date-picker .ant-picker-cell-in-view.ant-picker-cell-today .ant-picker-cell-inner::before { border-color: hsl(var(--primary)); } .custom-date-picker .ant-picker-time-panel-column > li.ant-picker-time-panel-cell-selected .ant-picker-time-panel-cell-inner { background-color: hsl(var(--primary) / 0.1); color: hsl(var(--primary)); } .custom-date-picker .ant-picker-ranges { border-top: 1px solid hsl(var(--border)); }