body { background-color: #f1f5f9; }
.fade-in { animation: fadeIn 0.35s cubic-bezier(0.4, 0, 0.2, 1); }
.slide-up { animation: slideUp 0.35s cubic-bezier(0.4, 0, 0.2, 1); }
@keyframes fadeIn { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: translateY(0); } }
@keyframes slideUp { from { transform: translateY(15px); opacity: 0; } to { transform: translateY(0); opacity: 1; } }
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #cbd5e1; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #94a3b8; }
.kanban-column { min-width: 285px; max-width: 285px; transition: all 0.2s; }
.kanban-card { cursor: grab; transition: transform 0.1s, box-shadow 0.2s; }
.kanban-card:active { cursor: grabbing; transform: rotate(1.5deg); box-shadow: 0 12px 24px -4px rgba(0,0,0,0.12); }
tr { transition: background-color 0.15s ease; }
table { border-spacing: 0; width: 100%; }
th { text-transform: uppercase; letter-spacing: 0.06em; font-size: 0.7rem; color: #64748b; font-weight: 700; padding: 0.875rem 1rem; border-bottom: 1px solid #e2e8f0; }
td { padding: 0.875rem 1rem; border-bottom: 1px solid #f1f5f9; vertical-align: middle; }
.stat-card { position: relative; overflow: hidden; }
.stat-card::after { content: ''; position: absolute; bottom: 0; left: 0; width: 100%; height: 3px; border-radius: 0 0 16px 16px; }
.glass { background: rgba(255,255,255,0.85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); }
