/* VenueUI Toast */
.venue-toast {
    position: fixed; top: 20px; left: 50%; transform: translateX(-50%) translateY(-100px);
    padding: 12px 24px; border-radius: 8px; color: #fff; font-size: 14px;
    z-index: 10000; opacity: 0; transition: all 0.3s; max-width: 80vw; box-shadow: 0 4px 12px rgba(0,0,0,0.15);
}
.venue-toast.show { transform: translateX(-50%) translateY(0); opacity: 1; }
.venue-toast.success { background: #34c759; }
.venue-toast.error { background: #fa2c19; }
.venue-toast.warning { background: #ff9500; }
.venue-toast.info { background: #0067d6; }

/* VenueUI Loading */
.venue-loading-overlay {
    position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 10001;
    display: none; align-items: center; justify-content: center;
}
.venue-loading-content { text-align: center; }
.venue-loading-spinner {
    width: 40px; height: 40px; border: 3px solid rgba(255,255,255,0.3);
    border-top-color: #fff; border-radius: 50%;
    animation: venue-spin 0.8s linear infinite; margin: 0 auto 10px;
}
@keyframes venue-spin { to { transform: rotate(360deg); } }
.venue-loading-text { color: #fff; font-size: 14px; }

/* VenueUI Modal */
.venue-modal {
    position: fixed; inset: 0; z-index: 10002; display: none;
}
.venue-modal.active { display: block; }
.venue-modal-overlay {
    position: absolute; inset: 0; background: rgba(0,0,0,0.5);
}
.venue-modal-container {
    position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
    background: #fff; border-radius: 12px; min-width: 360px; max-width: 90vw; overflow: hidden;
}
.venue-modal-header { padding: 16px 20px; border-bottom: 1px solid #e5e5ea; }
.venue-modal-title { margin: 0; font-size: 16px; font-weight: 600; }
.venue-modal-body { padding: 20px; font-size: 14px; color: #333; line-height: 1.6; }
.venue-modal-footer { padding: 12px 20px; border-top: 1px solid #e5e5ea; display: flex; justify-content: flex-end; gap: 8px; }
.venue-btn { padding: 8px 20px; border-radius: 6px; border: none; cursor: pointer; font-size: 14px; }
.venue-btn-primary { background: #0067d6; color: #fff; }
.venue-btn-danger { background: #fa2c19; color: #fff; }
.venue-btn-secondary { background: #f5f5f7; color: #333; }
.venue-btn:hover { opacity: 0.9; }
