.empty-state { text-align:center; padding:40px 20px; color: rgb(var(--color-gray-500)); }
.modal { position: fixed; left:0; top:0; right:0; bottom:0; background: rgba(0,0,0,0.5); display:flex; align-items:center; justify-content:center; z-index:50; padding: var(--space-4); }
.modal-content, .modal-card { background:white; border-radius: var(--radius-lg); padding: var(--space-6); width:100%; max-width:480px; max-height:90vh; overflow-y:auto; box-shadow: var(--shadow-lg); }

.notification-container { position: fixed; top:20px; right:20px; z-index:1000; max-width:400px; }
.notification { margin-bottom:10px; animation: slideInRight 0.3s ease-out; }
@keyframes slideInRight { from { transform: translateX(100%); opacity:0;} to { transform: translateX(0); opacity:1;} }

.card-fade-in { animation: cardFadeIn 0.3s ease-out; }
@keyframes cardFadeIn { from { opacity:0; transform:translateY(10px);} to { opacity:1; transform:translateY(0);} }

.line-clamp-2 { display: -webkit-box; -webkit-line-clamp:2; -webkit-box-orient: vertical; overflow:hidden; }
