/* Eigene Anpassungen - wird bei Updates nicht überschrieben */

@import url("../assets/fonts/nunito/v32/nunito.css");

#reservationParticipation {
    display: none;
}

.reservationDescription {
    display: none;
}

.reservationTitle {
    display: none;
}

/* Vereinfachtes Buchungsformular: nur Zeit + Lehrperson/Fach/Zimmer nötig */
.repeat-div,
#btnAddResources,
.accessoriesDiv,
.reservationReminders,
.reservationAttachments,
#availableCredits,
#showChangeUsers,
#changeUsers {
    display: none;
}

/* ── duerro.ch Design-Theme ──────────────────────────────────
   Werte aus design-tokens.md (analysiert von duerro.ch).
   Überschreibt die Theme-Variablen unabhängig vom gewählten
   css.theme-Wert und passt Eckenradius/Button-Stil global an. */
:root {
    --bs-border-radius-sm: 0.25rem; /* 4px */
    --bs-border-radius: 0.5rem;     /* 8px */
    --bs-border-radius-lg: 0.75rem; /* 12px */
    --bs-border-radius-xl: 1.25rem; /* 20px */

    /* Nur noch 4 Zustände im Wochenplan */
    --reservable: #ffffff;                 /* Noch reservierbar */
    --pasttime: #ECEFF3;                   /* Vergangen */
    --unreservable: #E7EEF7;               /* Nicht reservierbar (Sperrzeiten) */
    --reserved: #EEE8FF;                   /* Zusätzliche Buchungen */
    --reservedMine: #EEE8FF;               /* Zusätzliche Buchungen */
    --reservedParticipating: #EEE8FF;      /* Zusätzliche Buchungen */
    --reservedPending: #EEE8FF;            /* Zusätzliche Buchungen */
    --hiliteReservation: #3B7DE6;           /* Hover/Auswahl auf buchbaren Stunden (duerro-Blau statt Standard-Grün) */

    /* Aus design-tokens.md übernommen: Schatten- und Textfarb-Skala */
    --shadow-sm: 0 1px 3px rgba(12, 28, 52, .08);
    --color-text-muted: #4A6080;
    --color-lines-soft: #dde1e6;
}

[data-bs-theme] {
    --primary: #3B7DE6;
    --primary-hover: #2A6DD8;
    --primary-disabled: color-mix(in oklab, #3B7DE6 40%, white);
    --text-color-btn: #ffffff;
}

body {
    font-family: "Nunito", "system-ui", "sans-serif";
    background-color: #F8FAFC;
}

h1, h2, h3, h4, h5, h6 {
    font-family: "Nunito", "system-ui", "sans-serif";
}

.navbar-brand {
    gap: 0.5rem;
}

img.logo {
    max-height: 120px;
}

.login-logo {
    width: 35%;
}

.logo-text {
    height: 67px;
    width: auto;
    margin-left: 0;
}

@media only screen and (max-width: 768px) {
    .logo-text {
        height: 72px;
    }
}

.btn {
    font-weight: 600;
}

.btn-primary:hover,
.btn-primary:focus {
    box-shadow: 0 4px 16px rgba(59, 125, 230, 0.4);
}

/* Navigation wird nicht mehr benötigt – nur noch das Benutzermenü (Burger-Icon rechts).
   Achtung: #navHelpDropdown ist NICHT das alte Hilfe-Menü, sondern das Admin-Zahnrad-Menü
   (Sperrzeiten, Servereinstellungen etc.) – darf nicht ausgeblendet werden. */
.navbar-nav.me-auto,
#navScheduleDropdown {
    display: none;
}

/* Rechte Nav-Liste bleibt rechtsbündig, auch wenn die linke Navigation weg ist */
.navbar-nav.navbar-right {
    margin-left: auto;
}

/* Da die linke Navigation komplett ausgeblendet ist, bleibt in der Navbar nur
   noch das eigene Benutzermenü (Burger-Icon) übrig. Der zusätzliche
   Bootstrap-Hamburger (der auf Mobile sonst ein "Menü im Menü" ergibt) wird
   entfernt; das Benutzermenü ist dadurch auf allen Bildschirmgrössen direkt
   rechts sichtbar. */
.navbar .navbar-toggler {
    display: none;
}

#librebooking-navigation.navbar-collapse {
    display: flex !important;
    flex-basis: auto;
}

.navbar > .container-fluid {
    flex-wrap: nowrap;
}

/* Benutzermenü-Icon grösser, ohne Aufklapp-Pfeil */
#navUserMenuDropdown .bi-list {
    font-size: 1.6rem;
}

#navUserMenuDropdown .dropdown-toggle::after {
    display: none;
}

/* Sprachauswahl als eigenes Untermenü im Benutzermenü */
.submenu-caret {
    font-size: 0.75rem;
    transition: transform .15s ease;
}

.dropdown-item[aria-expanded="true"] .submenu-caret {
    transform: rotate(180deg);
}

.dropdown-submenu-item {
    padding-left: 2.25rem;
    font-size: 0.95rem;
}

/* Minimalistischer Ansichts-Umschalter (Standard/Tall/Wide/Woche) statt PNG-Icons mit Schatten */
.schedule-style-group {
    display: inline-flex;
    background-color: var(--color-lines-soft, #edf1f7);
    border-radius: 999px;
    padding: 3px;
    gap: 2px;
}

.schedule-style-group .schedule-style {
    width: 34px;
    height: 30px;
    border-radius: 999px;
    color: var(--color-text-muted, #4A6080);
    font-size: 1rem;
    transition: background-color .15s ease, color .15s ease;
    position: relative;
    top: -2px;
}

.schedule-style-group .schedule-style:hover {
    background-color: rgba(59, 125, 230, 0.12);
    color: var(--primary);
}

.schedule-style-group .schedule-style.active {
    background-color: var(--primary);
    color: #fff;
    /* Altes Unterstrich-Design (border-bottom/padding) für aktive Icons zurücksetzen */
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}

/* Termin-Kacheln im Wochenplan: rundere, ruhigere Kalender-Optik */
table.reservations td {
    border-color: var(--color-lines-soft);
}

/* Fluid Typography: Tabellentext (Kopfzeile, Datum, Zeilenbeschriftung) skaliert
   stufenlos mit der Bildschirmbreite statt eine feste Grösse zu haben */
table.reservations {
    font-size: clamp(0.7rem, 0.5rem + 1vw, 0.85rem);
}

.event,
.buffer {
    border-radius: var(--bs-border-radius-sm);
    border-color: var(--color-lines-soft);
    box-shadow: var(--shadow-sm);
    padding: 4px 8px;
    overflow-wrap: break-word;
    font-size: clamp(0.75rem, 0.6rem + 1vw, 0.95rem);
    line-height: 1.3;
}

.condensed-event {
    border-radius: var(--bs-border-radius-sm);
    overflow-wrap: break-word;
    font-size: clamp(0.75rem, 0.6rem + 1vw, 0.95rem);
}

.event-meta {
    display: block;
    font-size: 0.85em;
    color: var(--color-text-muted);
    font-weight: 400;
}

/* Textkontrast an die neuen Statusfarben angepasst (3 Gruppen, je eigene Textfarbe).
   !important nötig, da schedule.css für einzelne Kombinationen (z.B. .reserved.mine.hilite)
   Selektoren mit höherer Spezifität verwendet, und die Legende-Kacheln (div.legend) ebenfalls
   höhere Spezifität als ein einfacher .reserved/.unreservable-Selektor haben. */
.reserved,
.reserved.mine,
.reserved.mine.hilite,
.reserved.participating,
.reserved.participating.hilite,
.reserved.pending,
.reserved.pending.hilite,
.legend.reserved {
    color: #6242A6 !important;
}

.unreservable,
.buffer,
.restricted,
.legend.unreservable {
    color: #425B78 !important;
}

.past,
.pasttime,
.legend.pasttime {
    color: #6B7280 !important;
}

/* Sperrzeiten-Look (gestreift) durch einfarbiges Blau ersetzen */
.restricted {
    background: var(--unreservable);
}

/* Vergangene Buchungen erhalten denselben Grauton wie „Vergangen“ */
.past {
    background-color: var(--pasttime);
}

/* Nur die Tagesüberschrift (Datum) im Duerro-Blau, nicht die einzelnen Lektionen */
table.reservations td.resdate {
    background-color: var(--primary);
    color: var(--label-text-on-dark);
}

table.reservations tr.today td.resdate,
table.reservations td.today {
    background-color: var(--primary-hover);
    color: var(--label-text-on-dark);
}

/* Legenden-Dropdown (Text + Icons) etwas grösser, ebenfalls fluid */
#legend_toggle {
    font-size: clamp(0.9rem, 0.75rem + 0.8vw, 1.05rem);
}

#legend_toggle .bi {
    font-size: clamp(1.05rem, 0.85rem + 0.8vw, 1.2rem);
}

/* Lektionsspalte in der "Tall"-Ansicht schmaler, aber mit etwas Luft, damit mehr
   Platz für die einzelnen Zivi-Spalten bleibt, ohne zugequetscht zu wirken */
table.reservations.reservations-tall td.reslabel {
    width: 1%;
    min-width: 110px;
    white-space: nowrap;
    padding: 0 10px;
}
