body { background: #f4f6f8; }
.navbar .nav-link { color: rgba(255,255,255,.85); }
.navbar .nav-link:hover { color: #fff; }
.card { border: 0; }
.calendar-wrapper { background: #fff; border: 1px solid #dee2e6; border-radius: .5rem; }
.calendar-table { min-width: 1250px; }
.calendar-table thead th { background: #f8f9fa; text-align: center; min-width: 150px; }
.calendar-table .room-column { min-width: 125px; position: sticky; left: 0; z-index: 2; background: #fff; }
.calendar-table thead .room-column { z-index: 3; background: #f8f9fa; }
.calendar-cell { height: 155px; vertical-align: top !important; background: #fff; }
.calendar-entry { border-left: 5px solid; border-radius: .35rem; padding: .45rem .55rem; margin-bottom: .45rem; font-size: .85rem; }
.allocation-entry { background: #f8fafc; border-left-color: #2563eb; }
.block-entry { background: #fee2e2; border-left-color: #dc2626; }
.color-dot { display: inline-block; width: 1rem; height: 1rem; border-radius: 50%; }
.login-wrapper { min-height: calc(100vh - 3rem); display: grid; place-items: center; }
.login-card { width: min(100%, 430px); }
.holiday-header { background: #fff1f2 !important; }
.holiday-cell { background: #fff8f8; }
.holiday-badge { max-width: 145px; white-space: normal; margin-top: .35rem; }
.holiday-notice { border-left: 4px solid #dc3545; padding: .35rem .5rem; background: rgba(220, 53, 69, .08); font-size: .8rem; }

/* Planungsfreie Wochenenden */
.weekend-header {
    background: #e9ecef !important;
    color: #6c757d;
}
.weekend-cell {
    background-color: #f1f3f5;
    background-image: repeating-linear-gradient(
        -45deg,
        transparent,
        transparent 10px,
        rgba(108, 117, 125, .035) 10px,
        rgba(108, 117, 125, .035) 20px
    );
    color: #6c757d;
}
.weekend-notice {
    font-size: .8rem;
    font-weight: 600;
    color: #6c757d;
}

/* Konflikte */
.conflict-cell {
    box-shadow: inset 0 0 0 2px rgba(220, 38, 38, .28);
}
.allocation-conflict {
    background: #fff1f2;
    border-top: 1px solid #fecdd3;
    border-right: 1px solid #fecdd3;
    border-bottom: 1px solid #fecdd3;
}
.conflict-message {
    margin-top: .35rem;
    color: #b91c1c;
    font-size: .76rem;
    font-weight: 600;
}

/* Feiertage behalten gegenüber der Wochenendmarkierung Vorrang. */
.weekend-header.holiday-header {
    background: #fff1f2 !important;
    color: inherit;
}
.weekend-cell.holiday-cell {
    background: #fff8f8;
    background-image: none;
    color: inherit;
}

/* Einmalige Kontingente */
.single-allocation-entry {
    background: #f0fdf4;
}
.source-badge {
    font-size: .65rem;
    font-weight: 600;
}
