:root {
    --pure-white: #ffffff;
    --white: #f0f0f0;
    --light-light-grey: #cccccc;
    --light-gray: #999999;
    --mid-gray: #444444;
    --mid-plus-gray: #28292a;
    --dark-gray: #202020;
    --lime-green: #c3f7d6;
    --orange: #ea8705;
    --almost-black: #000000;
}

* {
    color: var(--almost-black);
}

/* -- General Aspect -- */
html, body {
    height: 100%;
    font-size: 18px;
}

.mais {
    font-variant: small-caps;
}

.hidden {
    display: none;
}

.card-footer span {
    font-style: italic;
    font-size: 0.9rem;
}

/* --- Light Theme --- */
[data-bs-theme="light"] body {
    background-color: var(--white);
}

[data-bs-theme="light"] nav {
    background-color: var(--pure-white);
}

[data-bs-theme="light"] .card-footer *{
    color: var(--almost-black);
}
/* ------ */

/* --- Dark Theme --- */
[data-bs-theme="dark"] body {
    background-color: var(--mid-plus-gray);
}

[data-bs-theme="dark"] nav {
    background-color: var(--dark-gray);
}

[data-bs-theme="dark"] .card-footer *{
    color: var(--pure-white);
}
/* ------ */
/* ---- */

/* -- DarkMode -- */
.dark-mode {
    background-color: var(--mid-gray);
}

.dark-mode nav {
    background-color: var(--dark-gray);
}

.dark-mode * {
    color: var(--light-gray);
}

.dark-mode .nav-link:hover {
    color: var(--white);
}

.dark-mode .navbar-brand {
    color: var(--white);
}

.dark-mode .navbar-toggler-icon {
    color: var(--white);
}

.dark-mode .card button, .dark-mode .card .badge {
    color: var(--almost-black);
}

.dark-mode .card-body p {
    color: var(--pure-white);
}

.dark-mode .card-body {
    background-color: var(--dark-gray);
}

.dark-mode .card {
    border-color: #2d2d2d;
}

.dark-mode .card-footer {
    background-color: var(--mid-plus-gray);
}

.dark-mode .card-header h2 {
    color: var(--pure-white);
}

.dark-mode .card-footer p, .dark-mode .card-footer .month {
    color: var(--pure-white) !important;
}

.dark-mode .card-footer span {
    color: var(--pure-white);
}

.dark-mode .card-body .table {
    --bs-table-bg: var(--dark-gray);
    --bs-table-color: var(--pure-white);
    --bs-table-hover-color: rgba(255, 255, 255, 0.8);
}

.dark-mode .desc-course {
    color: var(--light-gray);
}

.dark-mode .navbar-toggler-icon {
    --bs-navbar-toggler-icon-bg: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
/* ---- */

/* -- Components -- */
.block {
    padding-top: 2em;
    padding-bottom: 2.5em;
}

.footerPush {
    width:100%;
    bottom: 0;
    position: absolute;
}

.sFooter {
    padding-top: 2em;
    padding-bottom: 1em;
    background-color: var(--dark-gray);
    text-align: center;
    line-height: 80%;
}

.sFooter h6, a, button {
    text-decoration: none;
    color: var(--white);
    font-variant: small-caps;
}

.btn-orange {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--orange);
    --bs-btn-border-color: var(--orange);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--orange);
    --bs-btn-hover-border-color: var(--orange);
    --bs-btn-focus-shadow-rgb: 225, 83, 97;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--orange);
    --bs-btn-active-border-color: var(--orange);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--orange);
    --bs-btn-disabled-border-color: var(--orange);
}

.btn-orange:hover {
    transform: scale(1.1);
    transition-duration: 0.3s;
    transition-timing-function: linear;
}

.table-responsive::-webkit-scrollbar {
    display: none;
}

.table-responsive {
    scrollbar-width: none;
    -ms-overflow-style: none;
}
/* ---- */

/* -- Colors -- */
.bg-light-gray {
    background-color: var(--light-gray);
}

.bg-dark-gray {
    background-color: var(--dark-gray) !important;
    border-color: var(--dark-gray) !important;
    color: var(--white);
}

.bg-white {
    background-color: var(--white);
}
/* ---- */

/* -- Resize Option -- */
@media (min-width: 992px) {
    [data-bs-theme="light"] .border-desktop {
        border: 1px solid #dee2e6;
        border-radius: 0.25rem;
        padding: 0.375rem 0.75rem;
        margin-left: 0.5rem;
    }

    [data-bs-theme="dark"] .border-desktop {
        border: 1px solid var(--almost-black);
        border-radius: 0.25rem;
        padding: 0.375rem 0.75rem;
        margin-left: 0.5rem;
    }
}
/* ---- */