/* ──────────────────────────────────────────────────────────────────────────
   PatchManagement — Custom Styles
   Bootstrap 5 dark theme base
   ─────────────────────────────────────────────────────────────────────────*/

/* Sidebar */
#sidebar {
    min-height: 100vh;
    width: 240px;
    min-width: 240px;
    background: #0d1117;
    border-right: 1px solid rgba(255,255,255,.08);
    transition: width .2s ease, min-width .2s ease;
}

#sidebar.collapsed {
    width: 60px;
    min-width: 60px;
    overflow: hidden;
}

#sidebar.collapsed .nav-link span,
#sidebar.collapsed .fs-6,
#sidebar.collapsed small,
#sidebar.collapsed .dropdown > a strong {
    display: none !important;
}

#sidebar .nav-link {
    border-radius: 6px;
    padding: .45rem .75rem;
    font-size: .9rem;
    transition: background .15s;
}

#sidebar .nav-link:hover {
    background: rgba(255,255,255,.07);
}

#sidebar .nav-link.active {
    background: rgba(13, 110, 253, .25);
    color: #6ea8fe !important;
}

/* Page content */
#page-content-wrapper {
    min-height: 100vh;
    overflow-x: hidden;
}

/* Stat cards */
.card.text-bg-primary,
.card.text-bg-success,
.card.text-bg-danger,
.card.text-bg-warning,
.card.text-bg-info,
.card.text-bg-secondary {
    border: none;
}

/* Tables */
.table-hover tbody tr:hover {
    background: rgba(255,255,255,.04);
}

/* Code blocks */
pre {
    font-size: .82rem;
    max-height: 300px;
    overflow-y: auto;
}

/* Badge sizing */
.badge {
    font-weight: 500;
}

/* Changelog rendered content */
#changelog-content h1 { font-size: 1.6rem; }
#changelog-content h2 { font-size: 1.3rem; color: #6ea8fe; }
#changelog-content h3 { font-size: 1.1rem; color: #adb5bd; }
#changelog-content code { background: rgba(255,255,255,.1); padding: 1px 5px; border-radius: 4px; font-size: .85em; }

/* Responsive */
@media (max-width: 768px) {
    #sidebar {
        position: fixed;
        z-index: 1040;
        transform: translateX(-100%);
        transition: transform .2s ease;
    }
    #sidebar.mobile-open {
        transform: translateX(0);
    }
    #page-content-wrapper {
        margin-left: 0 !important;
    }
}

/* Spinner for async actions */
.htmx-indicator {
    display: none;
}
.htmx-request .htmx-indicator {
    display: inline-block;
}

/* Status dot */
.status-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    margin-right: 4px;
}
.status-dot.active   { background: #198754; }
.status-dot.inactive { background: #ffc107; }
.status-dot.error    { background: #dc3545; }
