.theke-grill-plan-wrap{max-width:1200px;margin:0 auto}
.theke-grill-plan-toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;margin:10px 0 8px;flex-wrap:wrap}
.theke-grill-plan-title{font-size:28px;font-weight:800}
.theke-grill-plan-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap}

/* Theme-sicher: Buttons immer lesbar */
.theke-grill-plan-wrap .theke-btn{
  border:1px solid #bbb !important;
  background:#fff !important;
  color:#111827 !important;
  padding:10px 14px;
  border-radius:12px;
  cursor:pointer;
  font-weight:700;
  line-height:1;
}
.theke-grill-plan-wrap .theke-btn:hover{background:#f6f6f6 !important}
.theke-grill-plan-wrap .theke-btn-primary{
  border-color:#1d4ed8 !important;
  background:#1d4ed8 !important;
  color:#fff !important;
}

.theke-status{font-size:13px;opacity:.8}
.theke-grill-plan-hint{font-size:16px;opacity:.85;margin:6px 0 14px}
.theke-print-note{margin-top:10px;font-size:13px;opacity:.75}

/* KEIN horizontaler Scroll: fixed table, keine min-width */
.theke-table{
  width:100%;
  table-layout:fixed;
  border-collapse:collapse;
  border:1px solid #e5e5e5;
  border-radius:6px;
  overflow:hidden;
}
/* Text in allen normalen Tabellenzellen zentrieren */
.theke-table th,
.theke-table td {
  padding: 6px 4px; /* Etwas mehr Padding für bessere Lesbarkeit */
  border: 1px solid #ddd;
  vertical-align: middle; /* Vertikal mittig */
  text-align: center;     /* Horizontal mittig */
  overflow-wrap: anywhere;
  word-break: break-word;
}

.theke-table .sep-right{
  border-right:2px solid #000 !important;
}

.theke-table .sep-left{
  border-left:2px solid #000 !important;
}

/* Zentrierung und Textgewichtung für die zweistuple Kopfzeile */
.theke-table thead th {
  background: #fafafa;
  font-weight: 800;
  text-align: center; /* Zentriert die Haupt- und Unterüberschriften */
  vertical-align: middle;
}

/* Inputs im reinen Anzeigemodus wie Text aussehen lassen */
.theke-input[readonly] {
  border: none !important;
  background: transparent !important;
  padding: 10px 4px;
  cursor: default;
  outline: none;
}

/* Optional: Wenn das Feld leer ist, im Anzeigemodus den Placeholder ausblenden */
.theke-input[readonly]::placeholder {
  color: transparent;
}

/* ==========================================================================
   DESKTOP STYLES (Gilt nur für große Bildschirme ab 901px)
   ========================================================================== */
@media (min-width: 901px) {
  /* Spaltenbreiten */
  .theke-table th:nth-child(1),
  .theke-table td:nth-child(1) {
    width: 140px;
  }

  .theke-table th:nth-child(2),
  .theke-table td:nth-child(2) {
    width: 120px;
  }

  /* Uhrzeit-Zentrierung NUR auf Desktop */
  .theke-table td.theke-time {
    text-align: center !important;
    vertical-align: middle !important;
    display: table-cell !important;
  }
}

/* ==========================================================================
   ALLGEMEINE STYLES & MOBIL
   ========================================================================== */
.theke-date {
  font-weight: 800;
  font-size: 15px;
  vertical-align: middle;
}

.theke-date-comp {
  display: block;
  font-weight: 500;
  font-size: 12px;
  opacity: 0.85;
  margin-top: 4px;
  line-height: 1.2;
}

.theke-time {
  white-space: nowrap;
  font-weight: 600;
  font-size: 13px;
  opacity: 0.85;
}

/* Text innerhalb der Eingabefelder zentrieren und IMMER klein halten */
.theke-input {
  width: 100%;
  min-width: 0;
  box-sizing: border-box;
  padding: 8px 4px;       /* Etwas kompakteres Padding für kleine Schrift */
  border: 1px solid #cbd5e1;
  border-radius: 5px;
  background: #fff;
  font-size: 10px !important; /* <--- Hier die feste kleine Größe für den Bearbeitungsmodus */
  line-height: 1.2;
  text-align: center;     
}

/* Platzhalter-Text (...) ebenfalls zentrieren */
.theke-input::placeholder {
  text-align: center;
}

/* Für den Nichtbearbeitungsmodus (reiner Text in der Tabellenzelle) */
.theke-table tbody td {
  font-size: 10px !important; /* <--- Hier dieselbe feste kleine Größe für die Anzeige */
  line-height: 1.2;
}

.theke-name-cell{
  font-size:16px;
  line-height:1.2;
}

/* Tag-Farben (abwechselnd) */
.theke-day-even td{background:#eff6ff;}
.theke-day-odd td{background:#fff7ed;}

/* Wettbewerb als Zwischenzeile */
.theke-comp-row td{
  color:#111827 !important;
  font-weight:900;
  border-bottom:1px solid rgba(0,0,0,.10);
  padding-top:12px;
}

/* Mobile: Kartenlayout, damit niemals gescrollt werden muss */
@media (max-width: 900px){
  .theke-table, .theke-table thead, .theke-table tbody, .theke-table th, .theke-table td, .theke-table tr{display:block}
  .theke-table thead{display:none}
  .theke-table tr{border-bottom:1px solid #e5e5e5}
  .theke-table td{
    width:100% !important;
    border-bottom:none;
    display:flex;
    gap:3px;
    align-items:center;
  }
  .theke-table td::before{
    content: attr(data-label);
    font-weight:800;
    min-width:90px;
    opacity:.8;
  }
  .theke-comp-row td{display:block}
  .theke-comp-row td::before{content:''}
}

/* ==========================================================================
   DRUCK STYLES (Saubere Breitenverteilung über Prozentangaben)
   ========================================================================== */
@media print {
  /* Druck: Farben wirklich übernehmen */
  * {
    -webkit-print-color-adjust: exact !important;
    print-color-adjust: exact !important;
  }

  .theke-grill-plan-actions,
  .theke-grill-plan-hint,
  .theke-print-note {
    display: none !important;
  }

  /* Echte Tabelle im Druck erzwingen */
  .theke-table {
    display: table !important;
    table-layout: fixed !important; /* Fixed erzwingt exakt unsere %-Vorgaben */
    width: 100% !important;
    border: 1px solid #000 !important;
    border-collapse: collapse !important;
  }
  
  .theke-table thead { display: table-header-group !important; }
  .theke-table tbody { display: table-row-group !important; }
  .theke-table tr { display: table-row !important; }
  
  .theke-table th,
  .theke-table td {
    display: table-cell !important;
    border: 1px solid #000 !important;
    padding: 6px 4px !important;
    vertical-align: middle !important;
  }

  /* === PROZENTUALE SPALTENBREITEN FÜR DEN DRUCK === */
  /* 1. Spalte: Datum & Wettbewerb (erhält ordentlich Platz) */
  .theke-table th:nth-child(1),
  .theke-table td:nth-child(1) {
    width: 18% !important;
  }
  
  /* 2. Spalte: Uhrzeit (groß genug für "17:00 – 19:00") */
  .theke-table th:nth-child(2),
  .theke-table td:nth-child(2) {
    width: 14% !important;
    white-space: nowrap !important;
  }

  /* Die restlichen 7 Namensspalten teilen sich die übrigen 68% (je ca. 9.7%) */
  .theke-table thead tr:nth-child(2) th,
  .theke-table tbody tr td:nth-of-type(n+3) {
    width: 9.7% !important;
  }

  /* Wettbewerb Layout im Druck */
  .theke-comp-row td {
    color: #111827 !important;
    font-weight: 900 !important;
  }
	
  /* Karten-Labels aus der Mobil-Ansicht im Druck komplett unterdrücken */
  .theke-table td::before {
    content: none !important;
    display: none !important;
  }

  /* Inputs im Druck wie reinen Text aussehen lassen */
  .theke-input {
    border: none !important;
    background: transparent !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
    font-size: 10px !important;
    color: #111 !important;
  }
	
  .theke-print-text {
    font-size: 10px !important; 
    color: #111 !important;
  }
}