/* /Layout/MainLayout.razor.rz.scp.css */
/* Seite: Sidebar (mit schwarzem Kopf) links, Inhalt rechts über die volle Höhe. */
.page[b-v2z57mppud] {
    display: flex;
    flex-direction: row;
    min-height: 100vh;
}

/* ---------- Sidebar (240px) mit schwarzem Kopfbereich ---------- */
.sidebar[b-v2z57mppud] {
    flex: 0 0 240px;
    width: 240px;
    height: 100vh;
    position: sticky;
    top: 0;
    align-self: flex-start;
    display: flex;
    flex-direction: column;
    background-color: #fff;
    border-right: 1px solid var(--tri-border);   /* vertikale Trennlinie über die volle Höhe */
}

/* Heller Kopf – nur über der Sidebar (Hamburger + Logo mit schwarzem Text) */
.sidebar-header[b-v2z57mppud] {
    position: relative;   /* Referenz für das absolut zentrierte Marken-Logo */
    flex: 0 0 64px;
    display: flex;
    align-items: center;
    gap: 0.3rem;
    padding: 0 0.75rem;   /* linker Abstand = .sidebar-nav, damit der Hamburger zu den Menü-Icons fluchtet */
    background-color: #fff;
    color: var(--tri-ink);
}

/* Durchgehende grüne 2px-Linie unten – bündig mit dem Kopfband rechts (.wfd-head / Standard-Seitenkopf).
   Als ::after 1px über den rechten Sidebar-Rand hinaus (right:-1px), damit die vertikale graue Linie die
   grüne Kopf-Linie NICHT mit einem Bruch kreuzt (grün liegt an der Kreuzung oben). Branding: Signature-Farbe. */
.sidebar-header[b-v2z57mppud]::after {
    content: "";
    position: absolute;
    left: 0;
    right: -1px;
    bottom: 0;
    height: 2px;
    background-color: var(--wl-signature, var(--tri-green));
}

/* Bereich unter dem Kopf. Bewusst overflow:visible, damit das Benutzer-Popup (im Fuß) NICHT abgeschnitten
   wird – v. a. bei eingeklappter Sidebar (64px). Das Scrollen übernimmt die innere .sidebar-nav. */
.sidebar-body[b-v2z57mppud] {
    flex: 1;
    min-height: 0;
    overflow: visible;
}

.topbar-toggle[b-v2z57mppud] {
    background: none;
    border: none;
    color: var(--tri-green);
    font-size: 1.35rem;
    line-height: 1;
    padding: 0.25rem 0.75rem;   /* = .nav-link, damit das Icon-Kästchen zu den Menü-Icons fluchtet */
    border-radius: 6px;
    flex-shrink: 0;
}

/* Hamburger-Glyph wie ein Menü-Icon zentrieren (gleiche 1.25rem-Box wie .nav-icon). */
.topbar-toggle .bi[b-v2z57mppud] {
    display: inline-block;
    width: 1.25rem;
    text-align: center;
}

.topbar-toggle:hover[b-v2z57mppud] {
    background-color: rgba(0, 0, 0, 0.05);
    color: var(--tri-green-hover);
}

/* Marke füllt den Platz RECHTS vom Hamburger und zentriert das Logo darin → das Logo sitzt mittig im freien
   (schwarzen) Bereich neben dem Hamburger, nicht am linken Rand. */
.topbar-brand[b-v2z57mppud] {
    flex: 1 1 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    min-width: 0;
    color: var(--tri-ink);
    text-decoration: none;
    border: none;
    background: none;
    padding: 0;
    cursor: pointer;
}

/* Marken-Logo im Sidebar-Kopf: seitenverhältnistreu, max. 29 px hoch (30 % kleiner als zuvor). */
.brand-logo[b-v2z57mppud] {
    max-height: 29px;
    max-width: 100%;
    width: auto;
    height: auto;
    display: block;
}

/* EIGENES Logo (Branding aktiv): darf den Kopfbereich ausfüllen. Das triagen-Logo ist ein schmaler
   Schriftzug und sitzt bei 29 px richtig; ein Firmenlogo ist meist quadratischer oder trägt einen
   Zusatz („Innovation, Knowledge & Achievement") und wirkt in derselben Höhe verloren. Die Höhe des
   Kopfbereichs gibt die Grenze vor - nach oben deckelt sie das Layout, nicht die Bilddatei. */
.brand-logo-custom[b-v2z57mppud] {
    max-height: 46px;
    max-width: 100%;
    object-fit: contain;
}

/* ---------- Inhaltsbereich: volle Höhe, beginnt ganz oben ---------- */
.content-area[b-v2z57mppud] {
    flex: 1;
    min-width: 0;
    min-height: 100vh;
    background-color: var(--tri-surface);
}

/* Schwebender Menü-Knopf nur auf schmalen Bildschirmen */
.mobile-menu-toggle[b-v2z57mppud] {
    display: none;
}

/* Collapsed (Desktop): schmale Leiste – nur Icons; Logo im Kopf ausblenden */
@media (min-width: 769px) {
    .sidebar-collapsed .sidebar[b-v2z57mppud] {
        flex-basis: 64px;
        width: 64px;
    }

    .sidebar-collapsed .sidebar-header[b-v2z57mppud] {
        justify-content: center;
        padding: 0;
    }

    .sidebar-collapsed .sidebar-header .topbar-brand[b-v2z57mppud] {
        display: none;
    }

    /* Beschriftungen/Abschnittstitel ausblenden; Icon-Wrapper (mit Zähler) bleibt sichtbar */
    .sidebar-collapsed .sidebar[b-v2z57mppud]  .nav-link span:not(.nav-badge):not(.nav-icon-wrap),
    .sidebar-collapsed .sidebar[b-v2z57mppud]  .nav-section,
    .sidebar-collapsed .sidebar[b-v2z57mppud]  .user-card-text,
    .sidebar-collapsed .sidebar[b-v2z57mppud]  .user-card-caret {
        display: none;
    }

    .sidebar-collapsed .sidebar[b-v2z57mppud]  .user-card {
        justify-content: center;
        padding-left: 0;
        padding-right: 0;
        gap: 0;
    }

    .sidebar-collapsed .sidebar[b-v2z57mppud]  .sidebar-nav {
        padding-left: 0.4rem;
        padding-right: 0.4rem;
    }

    .sidebar-collapsed .sidebar[b-v2z57mppud]  .nav-link {
        justify-content: center;
        gap: 0;
        padding-left: 0;
        padding-right: 0;
    }

    /* Benutzer-Popup bei eingeklappter Sidebar (64px) als Flyout nach rechts statt auf 64px gestaucht. */
    .sidebar-collapsed .sidebar[b-v2z57mppud]  .user-menu {
        left: 0;
        right: auto;
        min-width: 230px;
    }
}

/* Mobil: Sidebar als Overlay, schwebender Menü-Knopf zum Ein-/Ausblenden */
@media (max-width: 768px) {
    .sidebar[b-v2z57mppud] {
        position: fixed;
        z-index: 1020;
        margin-left: -240px;
        transition: margin-left 0.2s ease-in-out;
    }

    .page:not(.sidebar-collapsed) .sidebar[b-v2z57mppud] {
        margin-left: 0;
        box-shadow: 0 0 25px rgba(0, 0, 0, 0.25);
    }

    .mobile-menu-toggle[b-v2z57mppud] {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        position: fixed;
        top: 0.6rem;
        left: 0.6rem;
        z-index: 1019;
        width: 42px;
        height: 42px;
        border: none;
        border-radius: 8px;
        background-color: var(--tri-ink);
        color: #fff;
        font-size: 1.3rem;
        box-shadow: 0 2px 8px rgba(0, 0, 0, 0.25);
    }
}
/* /Layout/NavMenu.razor.rz.scp.css */
.sidebar-inner[b-vpfe4ewi9b] {
    display: flex;
    flex-direction: column;
    height: 100%;
}

/* Nur die Nav scrollt; der Fuß (mit dem Benutzer-Popup) bleibt außerhalb des überlaufenden Bereichs,
   damit das Popup nicht abgeschnitten wird. */
.sidebar-nav[b-vpfe4ewi9b] {
    flex: 1;
    min-height: 0;
    overflow-y: auto;
    padding: 0.5rem 0.75rem;
}

.nav-section[b-vpfe4ewi9b] {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--tri-faint);
    padding: 0.4rem 0.75rem 0.15rem;
}
.nav-section-toggle[b-vpfe4ewi9b] {
    display: flex; align-items: center; justify-content: space-between;
    width: 100%; border: none; background: transparent; cursor: pointer; text-align: left;
}
.nav-section-toggle:hover[b-vpfe4ewi9b] { color: var(--tri-muted-2); }
.nav-section-toggle > i[b-vpfe4ewi9b] { font-size: 0.7rem; }

/* Shared link look (NavLink, button, a) – gilt für Navigation UND Fußbereich */
.sidebar-inner[b-vpfe4ewi9b]  .nav-link,
.sidebar-inner .nav-link[b-vpfe4ewi9b] {
    display: flex;
    align-items: center;
    width: 100%;
    gap: 0.65rem;
    padding: 0.28rem 0.75rem;
    margin-bottom: 0.01rem;
    border: none;
    background: none;
    text-align: left;
    color: var(--tri-muted-2);
    font-size: 0.92rem;
    font-weight: 400;
    border-radius: 8px;
    text-decoration: none;
    transition: background-color 0.12s ease-in-out, color 0.12s ease-in-out;
}

.sidebar-inner[b-vpfe4ewi9b]  .nav-link:hover,
.sidebar-inner .nav-link:hover[b-vpfe4ewi9b] {
    background-color: var(--tri-green-bg);
    color: var(--tri-green);
}

.sidebar-inner[b-vpfe4ewi9b]  .nav-link.active {
    background-color: var(--tri-green-bg-active);
    color: var(--tri-green);
    font-weight: 600;
}

.nav-icon[b-vpfe4ewi9b] {
    font-size: 1.05rem;
    width: 1.25rem;
    text-align: center;
}

/* Roter Zähler direkt am Glocken-Icon (oben rechts) */
.nav-icon-wrap[b-vpfe4ewi9b] {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.nav-badge[b-vpfe4ewi9b] {
    position: absolute;
    top: -7px;
    right: -9px;
    background-color: #dc3545;
    color: #fff;
    font-size: 0.62rem;
    font-weight: 600;
    line-height: 1.05rem;
    height: 1.05rem;
    min-width: 1.05rem;
    padding: 0 0.25rem;
    border-radius: 999px;
    text-align: center;
}

.nav-chevron[b-vpfe4ewi9b] {
    margin-left: auto;
    font-size: 0.8rem;
    transition: transform 0.18s ease-in-out;
}

.nav-group-toggle.collapsed .nav-chevron[b-vpfe4ewi9b] {
    transform: rotate(-90deg);
}

.nav-group[b-vpfe4ewi9b] {
    overflow: hidden;
    max-height: 0;
    transition: max-height 0.2s ease-in-out;
}

    .nav-group.show[b-vpfe4ewi9b] {
        max-height: 500px;
    }

.sidebar-nav[b-vpfe4ewi9b]  .nav-sub {
    padding-left: 2.6rem;
    font-size: 0.88rem;
}

/* Fußbereich: Einstellungen/Abmelden + Benutzerkarte */
.sidebar-foot[b-vpfe4ewi9b] {
    margin-top: auto;
    padding: 0.5rem 0.75rem 0.75rem;
    border-top: 1px solid var(--tri-border);
}

.user-card[b-vpfe4ewi9b] {
    position: relative;   /* Anker für den Rollen-Badge oben rechts */
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    margin-top: 0.35rem;
    /* Linker Innenabstand kleiner als bei den Menüpunkten, damit die Avatar-Mitte auf der Icon-Spalte sitzt (#106831);
       die Karte selbst bleibt volle Breite, die Hover-Fläche also bündig zu den Menüpunkten. */
    padding: 0.5rem 0.75rem 0.5rem 0.19rem;
    border: none;
    background: none;
    border-radius: 8px;
    text-align: left;
    cursor: pointer;
}

.user-card-role[b-vpfe4ewi9b] {
    position: absolute;
    top: -0.35rem;
    right: 0.45rem;
    z-index: 3;
    font-size: 0.6rem;
    font-weight: 600;
    padding: 0.1rem 0.35rem;
}

.user-card-caret[b-vpfe4ewi9b] {
    margin-left: auto;
    color: var(--tri-faint);
    font-size: 0.95rem;
    flex-shrink: 0;
}

/* Benutzer-Menü (Popup über der Benutzerkarte) */
.user-menu-wrap[b-vpfe4ewi9b] {
    position: relative;
}

.user-menu-backdrop[b-vpfe4ewi9b] {
    position: fixed;
    inset: 0;
    z-index: 1040;
}

.user-menu[b-vpfe4ewi9b] {
    position: absolute;
    bottom: calc(100% + 0.4rem);
    left: 0;
    right: 0;
    z-index: 1050;
    background: #fff;
    border: 1px solid #e5e7eb;
    border-radius: 0.6rem;
    box-shadow: 0 10px 28px rgba(0, 0, 0, 0.14);
    padding: 0.35rem;
}

.user-menu-item[b-vpfe4ewi9b] {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    width: 100%;
    padding: 0.5rem 0.65rem;
    border: none;
    background: none;
    text-align: left;
    border-radius: 0.45rem;
    font-size: 0.9rem;
    color: #2b2f36;
}

.user-menu-item:hover[b-vpfe4ewi9b] {
    background-color: #f1f3f5;
}

.user-menu-item.text-danger:hover[b-vpfe4ewi9b] {
    background-color: #fdecee;
}

.user-menu-item .bi[b-vpfe4ewi9b] {
    width: 1.15rem;
    text-align: center;
    color: #6b7280;
}

.user-menu-item.text-danger .bi[b-vpfe4ewi9b] {
    color: inherit;
}

.user-menu-divider[b-vpfe4ewi9b] {
    height: 1px;
    background: #eceef0;
    margin: 0.3rem 0.25rem;
}

.user-card:hover[b-vpfe4ewi9b] {
    background-color: #f1f3f5;
}

.user-card-text[b-vpfe4ewi9b] {
    min-width: 0;
    line-height: 1.15;
}

.user-card-name[b-vpfe4ewi9b] {
    display: flex;
    align-items: flex-start;
    gap: 0.3rem;
}

.user-card-name-text[b-vpfe4ewi9b] {
    /* Name fett, in hellerem Grau. */
    font-weight: 700;
    font-size: 0.92rem;
    color: var(--tri-faint);
    line-height: 1.2;
    /* Bis zu zwei Zeilen (z. B. Vor- und Nachname) statt Abschneiden */
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.user-card-mail[b-vpfe4ewi9b] {
    display: block;
    font-size: 0.72rem;
    color: #8a9099;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

/* Footer (alt) */
.sidebar-footer[b-vpfe4ewi9b] {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    padding: 0.85rem 1rem;
    border-top: 1px solid var(--tri-border);
    background-color: #fbfbfc;
}

    .sidebar-footer .bi-person-circle[b-vpfe4ewi9b] {
        font-size: 1.75rem;
        color: var(--tri-faint);
    }

.sidebar-footer-text small[b-vpfe4ewi9b] {
    display: block;
    line-height: 1;
    font-size: 0.7rem;
}

.sidebar-footer-text .fw-semibold[b-vpfe4ewi9b] {
    font-size: 0.9rem;
}
