@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@300;400;500;700;900&display=swap');

* { font-family: 'Noto Sans KR', sans-serif; }
.gradient-bg { background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); }
.card-hover { transition: transform 0.2s, box-shadow 0.2s; }
.card-hover:hover { transform: translateY(-4px); box-shadow: 0 20px 40px rgba(0,0,0,0.15); }
.badge-vip { background: linear-gradient(135deg, #f6d365, #fda085); }

/* Chat Bubbles */
.chat-bubble-ai { background: #f0f4ff; border-radius: 18px 18px 18px 4px; }
.chat-bubble-user { background: linear-gradient(135deg, #667eea, #764ba2); border-radius: 18px 18px 4px 18px; color: white; }
.ai-typing::after { content: '●●●'; animation: typing 1.2s infinite; }
@keyframes typing { 0%,100% { opacity: 0.2; } 50% { opacity: 1; } }

/* Seat Base Styles (used in map) */
.seat-available { background: #d1fae5; border: 2px solid #6ee7b7; cursor: pointer; }
.seat-booked { background: #f3f4f6; border: 2px solid #d1d5db; cursor: not-allowed; color: #9ca3af; }
.seat-selected { background: linear-gradient(135deg, #667eea, #764ba2); border: 2px solid #4f46e5; color: white; }
.seat-available:hover { background: #a7f3d0; transform: scale(1.1); }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: #f1f1f1; }
::-webkit-scrollbar-thumb { background: #c4b5fd; border-radius: 3px; }

/* Floating animation */
.floating-btn { animation: float 3s ease-in-out infinite; }
@keyframes float { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-8px); } }