/* ===== Base ===== */
html,
body {
    background: #0b0d10;
    color: #e6e6e6;
    font-size: 16px;
}

a {
    text-decoration: none;
}

.btn {
    padding: 10px;
    /* color: #fff; */
    font-weight: 600;
}

.me-2 {
    margin: 9px;
}

.btn:hover {
    opacity: .92;
}

/* ===== Navbar controls ===== */
.navbar .form-select,
.navbar .form-control {
    min-width: 220px;
}

/* ===== Table ===== */
.table {
    border-color: #2a2f36;
}

.table thead th {
    border-bottom-width: 2px;
}

.table tbody tr:hover {
    background: #1a1e24;
}

/* File link buttons inside table cells should fill the cell */
.doc-btn {
    display: inline-block;
    width: 100%;
    background-color: #2b2f36 !important;
    /* dark but not flat grey */
    color: #e6e6e6 !important;
    border: none;
    border-radius: 7px;
    padding-left: 5px;
}

.doc-btn:hover {
    background-color: #3a3f46 !important;
}

.os-slides {
    width: 100%;
}

/* ===== File-type badges ===== */
.badge {
    font-weight: 600;
    letter-spacing: .02em;
}

.badge[class*="ext-"] {
    background: #2b2f36;
    color: #b6b8bd;
}

.badge.ext-PDF {
    background: #dc3545;
    color: #fff;
}

.badge.ext-PPT,
.badge.ext-PPTX {
    background: #ffc107;
    color: #212529;
    opacity: 0.7;
}

.badge.ext-DOC,
.badge.ext-DOCX {
    background: #0d6efd;
    color: #fff;
    opacity: 0.7;
}

.badge.ext-XLS,
.badge.ext-XLSX {
    background: #198754;
    color: #fff;
}

.badge.ext-ZIP,
.badge.ext-RAR,
.badge.ext-7Z {
    background: #6c757d;
    color: #fff;
}

.badge.ext-PHP,
.badge.ext-CPP,
.badge.ext-CS,
.badge.ext-HTML {
    background: #31363f;
}

.badge.ext-PY,
.badge.ext-JS,
.badge.ext-SQL {
    background: rgba(25, 135, 84, 0.5);
}

.badge.ext-PNG,
.badge.ext-JPG,
.badge.ext-GIF {
    background: rgb(15 208 247);
    color: #0b0d10;
    opacity: 0.8;
}


/* ===== “Go to Top” FAB ===== */
.go-to-top-btn {
    display: none;
    position: fixed;
    right: 18px;
    bottom: 18px;
    width: 48px;
    height: 48px;
    border: none;
    border-radius: 50%;
    background: #5865f2;
    color: #fff;
    box-shadow: 0 8px 20px rgba(0, 0, 0, .35);
    align-items: center;
    justify-content: center;
    font-size: 1.2rem;
    z-index: 1040;
    cursor: pointer;
}

.go-to-top-btn:hover {
    transform: translateY(-2px);
}

/* ===== Legacy table (non-Bootstrap) support — safe to keep ===== */
table {
    width: 100%;
    border-collapse: collapse;
    margin-top: 20px;
}

table,
th,
td {
    border: 1px solid #2a2f36;
}

th,
td {
    padding: 10px;
    text-align: center;
}

/* ===== Mobile tweaks ===== */
@media (max-width: 768px) {

    .navbar .form-select,
    .navbar .form-control {
        min-width: 160px;
    }

    .doc-btn {
        max-width: 100% !important;
    }
}