/* ==========================
   Root / Variables
========================== */
:root {
    --sb-bg: #0f1115;
    --sb-fg: #d4d8df;
    --sb-border: #252b37;
    --sb-hover: #17d68f;
    --sb-active: #17d68f;
    --sb-active-sub: #1d2129;
    --sb-pill: #eef0f3;

    --sb-w: 260px;
    --sb-w-collapsed: 70px;
}

/* ==========================
   Main Content
========================== */
.main-content {
    margin-left: var(--sb-w);
    transition: margin-left .25s ease;
    flex: 1 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
}

/* ==========================
   Sidebar Base
========================== */
.sidebar {
    position: fixed;
    top: 0;
    left: 0;
    width: var(--sb-w);
    min-width: var(--sb-w);
    height: 100vh;
    background: var(--sb-bg);
    color: var(--sb-fg);
    display: flex;
    flex-direction: column;
    overflow-y: auto;
    overflow-x: hidden;
    box-shadow: inset -1px 0 0 #1a1d23;
    transition: width .25s ease, transform .25s ease;
}

/* Mobile hidden (slide left) */
.sidebar.mobile-hidden {
    transform: translateX(-100%);
}

/* Mobile open */
.sidebar.open {
    transform: translateX(0);
}

/* ==========================
   Collapsed Sidebar
========================== */
.sidebar.iconbar {
    width: var(--sb-w-collapsed);
    min-width: var(--sb-w-collapsed);
}

.sidebar.iconbar .link-text,
.sidebar.iconbar .brand-wordmark,
.sidebar.iconbar .dropdown-toggle::before {
    display: none;
}

.sidebar.iconbar .brand-glyph {
    display: block;
}

.sidebar.iconbar .nav-link {
    justify-content: center;
    padding: 10px;
}

/* ==========================
   Branding
========================== */
.sidebar-brand {
    padding: 18px 16px 8px;
}

.brand-wordmark {
    max-width: 150px;
}

.brand-glyph {
    display: none;
    width: 32px;
}

/* ==========================
   Navigation
========================== */
.sidebar > .nav,
.sidebar-nav {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
}

/* Links */
.sidebar .nav-link {
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: 10px 18px;
    margin: 2px 8px;
    text-decoration: none;
    color: var(--sb-fg);
    border-radius: 10px;
    transition: background .15s, color .15s;
}

.sidebar .nav-link:hover {
    background: var(--sb-hover);
    color: #fff;
}

.sidebar .nav-link.active {
    background: var(--sb-active);
    color: #fff;
}

/* Sub-links */
.sublink {
    display: flex;
    justify-content: space-between;
    padding: 8px 18px 8px 48px !important;
    font-size: 0.9rem;
    color: #c7ccd3;
}

.sublink:hover {
    background: #1d2129;
    color: #fff;
}

/* Caret rechts */
.nav-link.dropdown-toggle {
    position: relative;
    padding-right: 35px !important; /* Platz rechts */
}

.nav-link.dropdown-toggle::before {
    content: "";
    position: absolute;
    right: 18px; /* Pfeil rechts */
    top: 50%;
    transform: translateY(-50%) rotate(-45deg);
    width: 8px;
    height: 8px;
    border-right: 2px solid #8a8f98;
    border-bottom: 2px solid #8a8f98;
    opacity: .7;
    transition: transform .15s, opacity .15s;
}

.nav-link.dropdown-toggle[aria-expanded="true"]::before {
    transform: translateY(-50%) rotate(45deg);
    opacity: 1;
}

/* Bootstrap-Dropdown-Pfeil vollständig ausblenden */
.nav-link.dropdown-toggle::after {
    display: none !important;
}

/* Falls Bootstrap ein zusätzliches caret-Element generiert */
.nav-link.dropdown-toggle .caret,
.nav-link.dropdown-toggle .dropdown-toggle::after {
    display: none !important;
}
button.nav-link.dropdown-toggle > span.caret,
button.nav-link.dropdown-toggle > svg,
button.nav-link.dropdown-toggle > i.caret {
    display: none !important;
}

/* ==========================
   Dropdown Caret
========================== */
.dropdown-toggle {
    position: relative;
    cursor: pointer;
}

.dropdown-toggle::before {
    content: "";
    width: 8px;
    height: 8px;
    border-right: 2px solid #8a8f98;
    border-bottom: 2px solid #8a8f98;
    transform: rotate(-45deg);
    opacity: .7;
    transition: transform .15s, opacity .15s;
}

.dropdown-toggle[aria-expanded="true"]::before {
    transform: rotate(45deg);
    opacity: 1;
}

/* ==========================
   HR Divider
========================== */
.sidebar-sep,
.hrnav {
    border: none;
    border-top: 1px solid var(--sb-border);
    width: 90%;
    margin: 10px auto;
}

/* ==========================
   Badges
========================== */
.badge-pill {
    background: #1f232b;
    color: #d9dde3;
    padding: 2px 10px;
    border-radius: 999px;
    font-size: 0.75rem;
    font-weight: 600;
}

.badge-pill.plus {
    background: transparent;
    color: #aeb5bf;
    font-size: 1rem;
}

/* ==========================
   Support Badge
========================== */
.status-online {
    display: inline-flex;
    align-items: center;
    background: #28c76f;
    color: #fff;
    font-size: 0.70rem;
    padding: 2px 9px;
    border-radius: 10px;
    margin-left: auto;
}

.status-offline {
    display: inline-flex;
    align-items: center;
    background: #dc3545;
    color: #fff;
    font-size: 0.70rem;
    padding: 2px 9px;
    border-radius: 10px;
    margin-left: auto;
}

/* ==========================
   Mobile / Tablet Responsive
========================== */
@media (max-width: 1199px) {

    .main-content {
        margin-left: 0 !important;
    }

    .sidebar {
        transform: translateX(-100%);
    }

    .sidebar.open {
        transform: translateX(0);
    }

    #burgerBtn {
        display: flex !important;
    }
}
