/* Gigi Music School 1.75 - Stundenplan */
.sp-leiste { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin-bottom: 10px; }
.sp-leiste select { max-width: 260px; }
.sp-nav { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.sp-woche { font-weight: 600; margin-left: 6px; white-space: nowrap; }
.sp-inhalt { max-height: 66vh; overflow: auto; position: relative; }
.sp-raster { display: grid; grid-auto-rows: auto; min-width: 560px; }
.sp-kopf { position: sticky; top: 0; z-index: 3; background: #1e293b; padding: 6px 6px; font-size: 13px; border-bottom: 1px solid #334155; text-align: center; line-height: 1.25; }
.sp-kopf.heute { color: #93c5fd; }
.sp-kopf.frei { color: #fca5a5; }
.sp-kopf.frei.ferien { color: #fcd34d; }
.sp-frei { display: block; font-size: 11px; font-weight: 600; }
.sp-ecke { left: 0; z-index: 4; }
.sp-achse { position: relative; height: var(--sp-h); border-right: 1px solid #334155; }
.sp-achse span { position: absolute; right: 6px; transform: translateY(-50%); font-size: 11px; color: #94a3b8; }
.sp-achse span:first-child { transform: none; }
.sp-spalte { position: relative; height: var(--sp-h); border-right: 1px solid rgba(51,65,85,.6); }
.sp-spalte.heute { background: rgba(37,99,235,.07); }
.sp-spalte.frei { background: repeating-linear-gradient(135deg, rgba(248,113,113,.08) 0 8px, transparent 8px 16px); }
.sp-spalte.frei.ferien { background: repeating-linear-gradient(135deg, rgba(251,191,36,.09) 0 8px, transparent 8px 16px); }
.sp-linie { position: absolute; left: 0; right: 0; border-top: 1px solid rgba(51,65,85,.55); }
.sp-termin { position: absolute; z-index: 1; overflow: hidden; text-align: left; border: 0; border-left: 4px solid var(--sp-farbe); border-radius: 6px;
  background: color-mix(in srgb, var(--sp-farbe) 26%, #0f172a); color: #f1f5f9; padding: 2px 6px; font-size: 12px; line-height: 1.25; cursor: pointer; }
.sp-termin:hover { filter: brightness(1.15); z-index: 2; }
.sp-termin span { display: block; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sp-zeit { font-weight: 700; font-size: 11px; opacity: .9; }
.sp-was { font-weight: 600; }
.sp-wer, .sp-raum { opacity: .8; font-size: 11px; }
.sp-termin.entfaellt { opacity: .5; text-decoration: line-through; }
.sp-leer { margin-top: 8px; }
.sp-warn { color: #fbbf24; font-size: 13px; margin-top: 8px; }
.sp-form-huelle { position: fixed; inset: 0; z-index: 10050; background: rgba(2,6,23,.6); display: flex; align-items: center; justify-content: center; padding: 16px; }
.sp-form { background: #1e293b; border: 1px solid #334155; border-radius: 14px; padding: 18px 20px; width: min(560px, 100%); max-height: 92vh; overflow: auto; display: flex; flex-direction: column; gap: 8px; }
.sp-form h3 { margin: 0 0 4px; }
.sp-form label { display: flex; flex-direction: column; gap: 3px; font-size: 13px; color: #cbd5e1; flex: 1; }
.sp-form .meta { margin: -4px 0 0; font-size: 12px; }
.sp-zeile { display: flex; gap: 10px; flex-wrap: wrap; }
.sp-zeile label { min-width: 120px; }
.sp-knoepfe { display: flex; gap: 8px; margin-top: 6px; }
.sp-meldung { font-size: 13px; color: #fcd34d; }
.sp-meldung ul { margin: 4px 0 0 18px; padding: 0; }
.sp-ferienbox { border: 1px solid #334155; border-radius: 12px; padding: 12px 14px; margin-bottom: 12px; background: rgba(15,23,42,.4); }
.sp-fb-kopf { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; margin-bottom: 8px; }
.sp-fb-kopf label { display: flex; gap: 6px; align-items: center; font-weight: 600; white-space: nowrap; }
.sp-fb-spalten { display: grid; grid-template-columns: minmax(220px, 1fr) minmax(300px, 1.6fr); gap: 16px; }
.sp-fb-spalten h4 { margin: 4px 0 6px; }
.sp-fb-tab td { font-size: 13px; padding: 4px 6px; }
.sp-fb-neu { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; margin-top: 10px; }
.sp-fb-neu label { display: flex; flex-direction: column; font-size: 12px; gap: 2px; }
.sp-heute { border: 1px solid #334155; border-radius: 12px; padding: 10px 14px; margin-bottom: 12px; background: rgba(37,99,235,.08); }
.sp-heute ul { margin: 6px 0 0 18px; padding: 0; }
.sp-heute li.entfaellt { text-decoration: line-through; opacity: .6; }
.sp-heute-frei { color: #fcd34d; margin-top: 4px; }
.sp-lehrer-inhalt { max-width: 1100px !important; width: 96vw; }
@media (max-width: 720px) { .sp-fb-spalten { grid-template-columns: 1fr; } }
body.day-mode .sp-kopf { background: #f1f5f9; }
body.day-mode .sp-termin { background: color-mix(in srgb, var(--sp-farbe) 18%, #fff); color: #0f172a; }
body.day-mode .sp-form { background: #fff; border-color: #cbd5e1; }
body.day-mode .sp-form label { color: #334155; }
body.day-mode .sp-ferienbox { background: #f8fafc; border-color: #cbd5e1; }
@media print { .sp-form-huelle { display: none !important; } }
/* Cockpit breiter, solange der Stundenplan offen ist */
#schuleLehrerModal .ck-modal:has(#spSeite.an) { max-width: 1320px !important; width: 97vw; }
