/*
 * ============================================================================
 * kts-ticket.css - KTS Ticket Styling
 * ============================================================================
 *
 * Beschreibung: CSS für Ticket-Buchungssystem Integration
 * Version: 2026.03.12.134903
 * Autor: KI Assistant für WDSB-Webdesign
 *
 * ============================================================================
 */

 wdsb-kts-seating-legend{
  display: none;
 }
 
:root{
 --kts-seat-free: #68B42D;
 --kts-seat-selected: #007BFF; 
 --kts-seat-reserved: #f8c828;
 --kts-seat-booked: #C11C0B;  
 --kts-seat-restrained: #800080;
}
 /* Event-Übersicht: iFrame lädt Event-Liste aus wdsb_kts */
.kts-ticket-overview {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px;
}

.kts-ticket-event-list-iframe {
  width: 100%;
  min-height: 800px;
  border: none;
  display: block;
}

.kts-ticket-header {
  text-align: center;
  margin-bottom: 50px;
}

.kts-ticket-header h1 {
  font-size: 36px;
  color: #333;
  margin-bottom: 10px;
}

.kts-ticket-header p {
  font-size: 18px;
  color: #666;
}

.kts-ticket-event-list {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 30px;
  margin-top: 30px;
}

.kts-ticket-event-card {
  background: white;
  padding: 30px;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  text-align: center;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.kts-ticket-event-card:hover {
  box-shadow: 0 4px 16px rgba(0,0,0,0.15);
}

.kts-ticket-event-card h3 {
  font-size: 24px;
  color: #333;
  margin-bottom: 20px;
}

.kts-ticket-btn {
  display: inline-block;
  padding: 12px 30px;
  background: #667eea;
  color: white;
  text-decoration: none;
  border-radius: 6px;
  font-weight: 600;
  transition: background 0.3s ease;
}

.kts-ticket-btn:hover {
  background: #5568d3;
  color: white;
  text-decoration: none;
}

/* Event-Sitzplan Seite */
.kts-ticket-page {
  width: 100%;
  margin: 0;
  padding: 0;
}

.kts-ticket-page-header {
  padding: 30px 20px;
  text-align: center;
  margin-bottom: 20px;
}

.kts-ticket-page-header .page-title {
  font-size: 32px;
  color: #333;
  margin-bottom: 10px;
}

.kts-ticket-subtitle {
  font-size: 16px;
  color: #666;
  margin: 0;
}

.kts-ticket-seating-wrapper {
  width: 100%;
  padding: 0;
  margin: 0;
  --kts-seating-iframe-height: 100vh;
}

.kts-ticket-iframe {
  width: 100%;
  height: var(--kts-seating-iframe-height, 100vh);
  border: none;
  display: block;
  overflow: hidden;
}

/* Verhindere doppelte Scrollbars */
.kts-ticket-seating-wrapper {
  overflow: hidden;
}

body.kts-ticket-active {
  overflow-x: hidden;
}

/* Fehler-Anzeige */
.kts-ticket-error {
  max-width: 600px;
  margin: 100px auto;
  padding: 40px;
  text-align: center;
  background: white;
  border-radius: 12px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}

.kts-ticket-error-box {
  max-width: 560px;
  margin: 2rem auto;
  padding: 1.5rem;
  border-radius: 4px;
}

.kts-ticket-error-box.kts-ticket-error-box--warning {
  border: 1px solid #ccc;
  background: #fff3cd;
}

.kts-ticket-error-box.kts-ticket-error-box--error {
  border: 1px solid #c00;
  background: #f8d7da;
}

.kts-ticket-error h2 {
  color: #d32f2f;
  margin-bottom: 15px;
}

.kts-ticket-error p {
  color: #666;
  line-height: 1.6;
}

/* Event-Liste Wrapper-Seite (/ticket/events): Ladehinweis + iframe */
.kts-ticket-events-wrapper-page {
  margin: 0;
  min-height: 100vh;
  background: #68b42d;
}

.kts-ticket-events-loading {
  padding: 1rem 1.5rem;
  background: #fff;
  border-bottom: 1px solid #e0e0e0;
  font-size: 1rem;
  color: #333;
}

.kts-ticket-events-loading.kts-ticket-events-loading--hidden {
  display: none;
}

.kts-ticket-events-load-error {
  display: none;
  padding: 1.5rem;
  margin: 1rem;
  background: #fff3cd;
  border: 1px solid #ffc107;
  border-radius: 4px;
  color: #68b42d;
}

.kts-ticket-events-load-error.kts-ticket-events-load-error--visible {
  display: block;
}

.kts-ticket-events-wrapper-iframe {
  width: 100%;
  height: 100vh;
  border: none;
  display: block;
  background: #40B200;
}

/* Versteckte Formulare (Admin, Sitzplan) */
.kts-ticket-admin-form-hidden,
.kts-ticket-form-hidden {
  display: none;
}

.kts-ticket-iframe.kts-admin-iframe {
  width: 100%;
  min-height: 100vh;
  border: none;
  background: #fff;
}

.kts-admin-iframe.kts-admin-iframe--loading {
  display: none;
}

.kts-admin-iframe.kts-admin-iframe--ready {
  display: block;
}

.kts-ticket-admin-footer {
  margin: 8px;
  font-size: 11px;
  color: #999;
}

/* Admin-Backend: Seite, Wrapper, Loading */
.kts-ticket-admin-page {
  background: #f5f5f5;
}

.kts-ticket-admin-wrapper {
  position: relative;
  min-height: 100vh;
}

.kts-admin-loading {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  background: #fff;
  z-index: 100;
}

.kts-admin-loading.kts-admin-loading--hidden {
  display: none;
}

.kts-loading-spinner {
  width: 50px;
  height: 50px;
  border: 4px solid #f3f3f3;
  border-top: 4px solid #667eea;
  border-radius: 50%;
  animation: kts-spin 1s linear infinite;
  margin-bottom: 20px;
}

@keyframes kts-spin {
  to {
    transform: rotate(360deg);
  }
}

/* Responsive */
@media (max-width: 768px) {
  .kts-ticket-header h1 {
    font-size: 28px;
  }
  
  .kts-ticket-event-list {
    grid-template-columns: 1fr;
  }
  
  .kts-ticket-iframe {
    min-height: 700px;
  }
}

.kts-ticket-event-header {
	margin: 5em;
}
.kts-seating-legend {
	padding: var(--wdsb-kts-spacing-md);
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	display: flex;
	gap: var(--wdsb-kts-spacing-lg);
	flex-wrap: wrap;
	justify-content: center;
	align-items: center;
	width: 580px;
	margin: 20px auto 0;
	padding: 20px;
	background-color: #fff;
	border-radius: 4px;
}
.kts-legend-box {
	width: 24px;
	height: 24px;
	border-radius: 50%;
	border: 2px solid;
  margin: 0 10px;
}
.kts-status-selected {
	background: var(--kts-seat-selected);
	border-color: #0056b3;
}
.kts-status-free {
	background: var(--kts-seat-free);
	border-color: #1e7e34;
}
.kts-status-reserved {
	background: var(--kts-seat-reserved);
	border-color: #e0a800;
}
.kts-status-booked {
	background: var(--kts-seat-booked);
	border-color: #bd2130;
}
.kts-legend-item {
	display: flex;
	align-items: center;
	gap: var(--wdsb-kts-spacing-sm);
	font-size: 0.9rem;
}
.kts-pagr-title{
  text-transform: uppercase;
}
.kts-legend-item {
	font-size: 1.5rem;
}
.kts-ticket-events-header {
	padding: 20px;
}