@import "tailwindcss"; @import "shadcn/tailwind.css"; :root { --radius: 0.625rem; /* 기본 색상 - guideline.html 기반 HEX */ --background: #ffffff; --foreground: #0f172a; --card: #ffffff; --card-foreground: #0f172a; --popover: #ffffff; --popover-foreground: #0f172a; --primary: #2563eb; --primary-foreground: #ffffff; --secondary: #f1f5f9; --secondary-foreground: #0f172a; --muted: #f1f5f9; --muted-foreground: #64748b; --accent: #f1f5f9; --accent-foreground: #0f172a; --destructive: #ef4444; --border: #e5e7eb; --input: #e5e7eb; --ring: #2563eb; /* 차트 색상 */ --chart-1: #2563eb; --chart-2: #22c55e; --chart-3: #9333ea; --chart-4: #f59e0b; --chart-5: #ef4444; /* 사이드바 - 다크 사이드바 */ --sidebar: #111827; --sidebar-foreground: #ffffff; --sidebar-primary: #2563eb; --sidebar-primary-foreground: #ffffff; --sidebar-accent: rgba(255, 255, 255, 0.1); --sidebar-accent-foreground: #ffffff; --sidebar-border: rgba(255, 255, 255, 0.1); --sidebar-ring: #2563eb; /* SPMS 전용 색상 */ --spms-success: #22c55e; --spms-success-foreground: #ffffff; --spms-warning: #f59e0b; --spms-warning-foreground: #ffffff; --spms-surface: #f8f9fc; } @theme inline { --radius-sm: calc(var(--radius) - 4px); --radius-md: calc(var(--radius) - 2px); --radius-lg: var(--radius); --radius-xl: calc(var(--radius) + 4px); --radius-2xl: calc(var(--radius) + 8px); --radius-3xl: calc(var(--radius) + 12px); --radius-4xl: calc(var(--radius) + 16px); --color-background: var(--background); --color-foreground: var(--foreground); --color-card: var(--card); --color-card-foreground: var(--card-foreground); --color-popover: var(--popover); --color-popover-foreground: var(--popover-foreground); --color-primary: var(--primary); --color-primary-foreground: var(--primary-foreground); --color-secondary: var(--secondary); --color-secondary-foreground: var(--secondary-foreground); --color-muted: var(--muted); --color-muted-foreground: var(--muted-foreground); --color-accent: var(--accent); --color-accent-foreground: var(--accent-foreground); --color-destructive: var(--destructive); --color-border: var(--border); --color-input: var(--input); --color-ring: var(--ring); --color-chart-1: var(--chart-1); --color-chart-2: var(--chart-2); --color-chart-3: var(--chart-3); --color-chart-4: var(--chart-4); --color-chart-5: var(--chart-5); --color-sidebar: var(--sidebar); --color-sidebar-foreground: var(--sidebar-foreground); --color-sidebar-primary: var(--sidebar-primary); --color-sidebar-primary-foreground: var(--sidebar-primary-foreground); --color-sidebar-accent: var(--sidebar-accent); --color-sidebar-accent-foreground: var(--sidebar-accent-foreground); --color-sidebar-border: var(--sidebar-border); --color-sidebar-ring: var(--sidebar-ring); /* SPMS 전용 유틸리티 색상 */ --color-spms-success: var(--spms-success); --color-spms-success-foreground: var(--spms-success-foreground); --color-spms-warning: var(--spms-warning); --color-spms-warning-foreground: var(--spms-warning-foreground); --color-spms-surface: var(--spms-surface); /* Noto Sans KR 폰트 매핑 */ --font-sans: "Noto Sans KR", system-ui, -apple-system, sans-serif; } @layer base { * { @apply border-border outline-ring/50; } body { @apply bg-background text-foreground font-sans; } } /* fadeIn 애니메이션 */ @keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } } /* shake 애니메이션 (1회) */ @keyframes shake { 0%, 100% { transform: translateX(0); } 20%, 60% { transform: translateX(-6px); } 40%, 80% { transform: translateX(6px); } } .animate-shake { animation: shake 0.4s ease; }