@tailwind base; @tailwind components; @tailwind utilities; @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap'); :root { --foreground-rgb: 0, 0, 0; --background-start-rgb: 214, 219, 220; --background-end-rgb: 255, 255, 255; } @media (prefers-color-scheme: dark) { :root { --foreground-rgb: 255, 255, 255; --background-start-rgb: 0, 0, 0; --background-end-rgb: 0, 0, 0; } } * { box-sizing: border-box; padding: 0; margin: 0; } html, body { max-width: 100vw; overflow-x: hidden; font-family: 'Inter', sans-serif; } body { color: rgb(var(--foreground-rgb)); background: linear-gradient( to bottom, transparent, rgb(var(--background-end-rgb)) ) rgb(var(--background-start-rgb)); } a { color: inherit; text-decoration: none; } /* 커스텀 스크롤바 */ ::-webkit-scrollbar { width: 8px; } ::-webkit-scrollbar-track { background: #f1f1f1; } ::-webkit-scrollbar-thumb { background: #c1c1c1; border-radius: 4px; } ::-webkit-scrollbar-thumb:hover { background: #a8a8a8; } /* 애니메이션 */ @keyframes fadeIn { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } } .fade-in { animation: fadeIn 0.5s ease-out; } @keyframes pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.5; } } .pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } /* 테이블 스타일 */ .table-container { overflow-x: auto; border-radius: 8px; border: 1px solid #e5e7eb; } .table-container table { width: 100%; border-collapse: collapse; } .table-container th, .table-container td { padding: 12px 16px; text-align: left; border-bottom: 1px solid #e5e7eb; } .table-container th { background-color: #f9fafb; font-weight: 600; color: #374151; } .table-container tr:hover { background-color: #f9fafb; } /* 카드 효과 */ .card { @apply bg-white rounded-lg shadow-sm border border-gray-200 p-6; transition: all 0.2s ease-in-out; } .card:hover { @apply shadow-md; transform: translateY(-2px); } /* 상태 배지 */ .badge { @apply inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium; } .badge-success { @apply bg-green-100 text-green-800; } .badge-danger { @apply bg-red-100 text-red-800; } .badge-warning { @apply bg-yellow-100 text-yellow-800; } .badge-info { @apply bg-blue-100 text-blue-800; } /* 로딩 스피너 */ .spinner { border: 2px solid #f3f3f3; border-top: 2px solid #3498db; border-radius: 50%; width: 20px; height: 20px; animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Input field text visibility fix */ input[type="text"], input[type="date"], input[type="email"], input[type="password"], input[type="number"], select, textarea { color: #1f2937 !important; /* Force dark gray text */ background-color: #ffffff !important; /* Force white background */ } input[type="text"]:focus, input[type="date"]:focus, input[type="email"]:focus, input[type="password"]:focus, input[type="number"]:focus, select:focus, textarea:focus { color: #1f2937 !important; background-color: #ffffff !important; } input::placeholder { color: #6b7280 !important; /* Force gray placeholder text */ opacity: 1 !important; }