/* Ergänzende Styles zur Inventarverwaltung FFW Ralingen */

body { padding-bottom: 3rem; }

.navbar-brand { font-weight: 600; }

/* Wartungskalender */
.calendar td {
    width: 14.28%;
    position: relative;
}
.calendar td a {
    font-size: .72rem;
    line-height: 1.1;
}
.calendar td a:hover {
    filter: brightness(.92);
}

/* Detailansicht */
dl.row dt { font-weight: 600; }

/* Druck: Navigation ausblenden */
@media print {
    .navbar, .btn, form { display: none !important; }
}

/* ===================================================================
   Plattform-Navigation: Sidebar + horizontale Unterleiste
   =================================================================== */
.ffw-shell {
    display: flex;
    min-height: calc(100vh - 56px); /* abzüglich obere Navbar */
    align-items: stretch;
}

/* Linke Seitenleiste (Desktop) */
.ffw-sidebar,
.ffw-offcanvas .offcanvas-body {
    width: 240px;
    background: #ffffff;
    border-right: 1px solid #dee2e6;
    padding: .75rem .5rem;
    gap: .25rem;
}
.ffw-sidebar {
    flex: 0 0 240px;
    /* Klebrig am oberen Rand: bleibt beim Scrollen stehen und ist nur
       bildschirmhoch, damit der "Abmelden"-Eintrag am unteren Rand immer
       sichtbar bleibt – auch auf langen Seiten (Mitglieder, Übungsplan). */
    position: sticky;
    top: 56px;                       /* Höhe der oberen Navbar */
    height: calc(100vh - 56px);
    overflow-y: auto;
    align-self: flex-start;
}

.ffw-side-link {
    display: flex;
    align-items: center;
    gap: .6rem;
    padding: .6rem .85rem;
    border-radius: .5rem;
    color: #333;
    text-decoration: none;
    font-weight: 500;
    transition: background .12s ease, color .12s ease;
}
.ffw-side-link:hover { background: #f4f4f4; color: #b30000; }
.ffw-side-link.active { background: #b30000; color: #fff; }
.ffw-side-icon { font-size: 1.15rem; line-height: 1; }

/* Hauptspalte */
.ffw-main {
    flex: 1 1 auto;
    min-width: 0; /* erlaubt horizontales Scrollen der Subnav/Tabellen */
    display: flex;
    flex-direction: column;
}

/* Horizontale Unterleiste */
.ffw-subnav {
    background: #fff;
    border-bottom: 1px solid #dee2e6;
    padding: .5rem .75rem;
}
.ffw-subnav .nav { gap: .25rem; }
.ffw-subnav .nav-link {
    color: #555;
    padding: .35rem .8rem;
    white-space: nowrap;
    border-radius: 2rem;
}
.ffw-subnav .nav-link:hover { background: #f0f0f0; color: #b30000; }
.ffw-subnav .nav-link.active { background: #b30000; color: #fff; }

/* Teilnahme-Matrix / Statusfarben */
.status-anwesend     { background: #d1e7dd; color: #0f5132; }
.status-entschuldigt { background: #fff3cd; color: #664d03; }
.status-fehlt        { background: #f8d7da; color: #842029; }
.matrix-tabelle td, .matrix-tabelle th { text-align: center; vertical-align: middle; }
.matrix-tabelle .name-spalte { text-align: left; white-space: nowrap; position: sticky; left: 0; background: #fff; }

/* Merkmal-Badges */
.merkmal-badge { display: inline-block; margin: .1rem; padding: .3rem .55rem;
    border-radius: .4rem; background: #eef1f4; font-size: .82rem; }
.merkmal-badge .jahr { font-weight: 600; color: #b30000; }

/* Abmelden-Eintrag am unteren Ende der Seitennavigation */
.ffw-side-logout {
    border-top: 1px solid #e3e3e3;
    margin-top: auto;
    color: #b30000;
}
.ffw-side-logout:hover {
    background: #f8d7da;
    color: #842029;
}
