/* Container */
.calendar-scroll-container {
    overflow-x: auto;
    background: #fff;
    padding: 15px;
    border: 1px solid #ccd0d4;
    box-shadow: 0 1px 1px rgba(0,0,0,.04);
}

.bike-calendar-table {
    border-collapse: collapse;
    width: auto;
    table-layout: fixed;
}

/* Header */
.date-header, .bike-column-header {
    width: 150px;
    min-width: 150px;
    min-height: 80px;
    background: #f8f9fa;
    border: 1px solid #ddd;
    padding: 10px;
    text-align: center;
    font-size: 1.2rem;
}

.bike-name-cell {
    min-width: 300px;
    font-size: 0.9rem;
    background: #fff;
    border: 1px solid #ddd;
    padding: 10px;
    font-weight: bold;
    position: sticky;
    left: 0;
    z-index: 5;
}

/* ZELLEN - Die Farben erzwingen */
.bike-calendar-table td.booking-cell {
    width: 150px !important;
    height: 100px !important;
    text-align: center;
    vertical-align: middle;
    border: 1px solid #ddd !important;
    font-size: 0.9rem;
    padding: 5px;
}

.bike-calendar-table td.booking-cell.belegt {
    background-color: #ef5350 !important;
    color: #ffffff !important;
    cursor: pointer;
}

.bike-calendar-table td.booking-cell.frei {
    background-color: #c8e6c9 !important;
    color: #2e7d32 !important;
}

/* Modal */
.modal-overlay {
    display: none;
    position: fixed;
    z-index: 100000;
    left: 0; top: 0;
    width: 100%; height: 100%;
    background: rgba(0,0,0,0.7);
    justify-content: center;
    align-items: center;
}

.modal-content {
    background: #fff;
    padding: 30px;
    width: 450px;
    border-radius: 8px;
    position: relative;
    box-shadow: 0 10px 25px rgba(0,0,0,0.5);
}

.modal-close {
    position: absolute;
    right: 15px; top: 10px;
    font-size: 28px;
    cursor: pointer;
}

.modal-actions {
    margin-top: 20px;
    display: flex;
    justify-content: space-between;
}

.bike-stock {
    font-size: 0.9em;
    font-weight: normal;
    padding: 2px 6px;
    border-radius: 4px;
    margin-left: 5px;
}

.stock-ok {
    background: #e3f2fd;
    color: #1976d2;
    border: 1px solid #bbdefb;
}

.stock-empty {
    background: #ffebee;
    color: #c62828;
    border: 1px solid #ffcdd2;
}

/* Gelb für Räder, die teilweise vermietet sind, aber noch Bestand haben */
.booking-cell.teilbelegt {
    background-color: #fff176 !important; /* Sanftes Gelb */
    color: #5d4037 !important;
    cursor: pointer;
}

.stock-info {
    font-weight: 800;
    font-size: 1.2em;
}

/* Wenn gar nichts mehr da ist (Rot) */
.booking-cell.belegt {
    background-color: #ef5350 !important;
    color: #fff !important;
}

/* 1. Bild-Container anpassen */
.bike-thumb {
    width: 100px !important;       /* Feste Breite */
    height: auto !important;         /* Feste Höhe für ein quadratisches Format */
    object-fit: contain; /* WICHTIG: Das Bild wird komplett skaliert, ohne etwas abzuschneiden */
    background-color: #f9f9f9; /* Hintergrund für freigestellte Bilder */
    display: block;
    margin: 0 auto;     /* Zentrierung im Flex-Container */
}

/* 2. Flexbox für die Namens-Spalte */
.bike-info-flex {
    display: flex;
    align-items: center; /* Vertikal zentriert */
    gap: 15px;
    padding: 8px;
    min-width: 280px;    /* Verhindert, dass der Text die Spalte zu stark staucht */
}

#btn-export-csv {
    display: inline-block !important;
    visibility: visible !important;
    margin-right: 20px !important;
    z-index: 9999 !important;
}