:root {
    --general-bg: #ffffff;
    --general-bg-muted: #f7f7f7;
    --general-border: #dcdcdc;

    --text-primary: #111111;
    --text-muted: #555555;

    --brand-green: #007b10;
    --brand-green-hover: #009914;
    --brand-green-active: #005f0c;

    --hover-bg-neutral: #f0f0f0;
}

[data-bs-theme="dark"] {

    --brand-green: #00a817;
    --brand-green-hover: #00c81c;
    --brand-green-active: #008f13;

    --bs-body-bg: #0e0e0e;
    --bs-body-bg-rgb: 14, 14, 14;

    --general-bg: #070707;
    --general-bg-muted: #1f1d1d;
    --general-border: #2a2a2a;

    --bs-btn-active-bg: var(--brand-green-active-dark);
    --bs-btn-hover-bg: var(--brand-green-hover-dark);

    --text-primary: #f5f5f5;
    --text-muted: #b5b5b5;

    --hover-bg-neutral: #222222;

    .navbar-toggler-icon {
        background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%2300a817' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
    }
}

.btn-primary {
    --bs-btn-bg: var(--brand-green);
    --bs-btn-color: white;
    --bs-btn-border-color: var(--brand-green);

    --bs-btn-hover-bg: var(--brand-green-hover);
    --bs-btn-hover-color: var(--hover-bg-neutral);
    --bs-btn-hover-border: var(--brand-green-hover);

    --bs-btn-active-bg: var(--brand-green-active);
    --bs-btn-active-color: var(--hover-bg-neutral);
    --bs-btn-hover-border: var(--brand-green-active);

    --bs-btn-box-shadow: none;
    --bs-btn-focus-shadow: none;
    --bs-btn-active-shadow: none;

    --bs-btn-hover-border-color: transparent;
    --bs-btn-focus-shadow-rgb: transparent;
    --bs-btn-active-border-color: transparent;
    --bs-btn-disabled-color: var(--text-muted);
    --bs-btn-disabled-bg: grey;
    --bs-btn-disabled-border-color: grey;

    font-weight: 500;
}

.btn-secondary {
    --bs-btn-bg: transparent;
    --bs-btn-color: var(--brand-green);
    --bs-btn-border-color: var(--brand-green);

    --bs-btn-hover-bg: var(--brand-green-hover);
    --bs-btn-hover-color: white;
    --bs-btn-hover-border: white;

    --bs-btn-active-bg: var(--hover-bg-neutral);
    --bs-btn-active-color: var(--brand-green-active);
    --bs-btn-active-border: var(--brand-green-active);

    --bs-btn-box-shadow: none;
    --bs-btn-focus-shadow: none;
    --bs-btn-active-shadow: none;

    --bs-btn-hover-border-color: transparent;
    --bs-btn-focus-shadow-rgb: transparent;
    --bs-btn-active-border-color: transparent;
    --bs-btn-disabled-color: var(--text-muted);
    --bs-btn-disabled-bg: grey;
    --bs-btn-disabled-border-color: grey;

    font-weight: 500;
}

a {
    color: var(--brand-green);
    text-decoration: none;
}

a:hover {
    color: var(--brand-green-hover);
}

.badge-custom {
    background-color: var(--brand-green);
    color: white
}

#profile-sidebar {
    width: 9rem;
    flex-shrink: 0;
}

#profile-main-body {
    flex: 1;
    min-width: 0;
}

.profile-stats {
    color: var(--brand-green);
    font-weight: 500;
}

.nav-link {
    --bs-nav-link-color: var(--text-primary);
    --bs-nav-link-hover-color: var(--brand-green-hover);
    --bs-nav-link-active-color: var(--brand-green-hover);
    font-weight: 500;
}

.extra-link {
    --bs-nav-link-color: var(--text-primary);
    --bs-nav-link-hover-color: var(--brand-green-hover);
    --bs-nav-link-active-color: var(--brand-green-hover);
    font-weight: 500;
}

.footer-nav, .footer-text {
    color: var(--text-muted);
}

.footer-nav:hover {
    color: var(--brand-green-hover);
}

.footer-nav:active {
    color: var(--brand-green-hover);
}

.form-control,
.form-select {
    max-width: 350px;
}

.puzzle-container {
    min-height: 250px;
    margin-top: 25px;
}

#pano, #guess-map {
    height: 250px;
}

.narrow-container {
    max-width: 480px;
}

.attribution-text {
    color: var(--text-muted);
    font-weight: 250;
    font-size: small;
}

#score-panel{
    --bs-table-bg: transparent !important;
}

#score-panel th {
    width: 1%;
    white-space: nowrap;
    padding-right: 2rem;
    font-weight: 500;
}

#score-panel td, #score-panel th {
    padding-top: 0.25rem;
    padding-bottom: 0.25rem;
}

.score-heading {
    font-weight: 500;
    font-size: 1.1rem;
    margin-top: 0.5rem;
}

.score-value {
    font-weight: 300;
    font-size: 1.05rem;
    margin-top: 0.25rem;
}

#get-streak-saves {
    border: 0.5px solid var(--color-border-tertiary); 
    border-radius: 8px;
    background: var(--general-bg-muted);
    color: var(--bs-secondary-color);
    font-size: 0.95rem;
    line-height: 1.6;
    padding: 1.25rem 1.5rem;
}

#user-id-highlight {
    color: var(--brand-green-hover);
    font-size: 1rem;
    font-weight: 550;
}

.trophy-icon {
    width: 64px;
    height: 64px;
    object-fit: contain;
    align-items: center;
}

.trophy-text {
    font-size: small;
    font-weight: 500;
    color: var(--text-muted);
}

.btn-lb-primary {
    --bs-btn-color: var(--brand-green);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--brand-green);

    --bs-btn-hover-color: var(--bs-white);
    --bs-btn-hover-bg: var(--brand-green-hover);
    --bs-btn-hover-border-color: var(--brand-green-hover);

    --bs-btn-active-color: white;
    --bs-btn-active-bg: var(--brand-green-active);
    --bs-btn-active-border-color: var(--brand-green-active);

    --bs-btn-box-shadow: none;
    --bs-btn-focus-shadow: none;
    --bs-btn-active-shadow: none;

    --bs-btn-disabled-color: var(--text-muted);
    --bs-btn-disabled-bg: grey;
    --bs-btn-disabled-border-color: grey;

    --bs-btn-font-weight: 500;
}

#teamTabs {
    z-index: 1;
}

.dropdown-item.active {
    background-color: var(--brand-green);
    color: white;
}

.navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='%23007b10' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

.bi {
    vertical-align: -0.225em;
    fill: currentColor;
}

.btn-bd-primary {
    --bs-btn-font-weight: 600;
    --bs-btn-color: white;
    --bs-btn-bg: var(--brand-green);
    --bs-btn-border-color: var(--brand-green);

    --bs-btn-hover-color: white;
    --bs-btn-hover-bg: var(--brand-green-hover);
    --bs-btn-hover-border-color: var(--brand-green-hover);

    --bs-btn-focus-shadow-rgb: 0, 168, 23;

    --bs-btn-active-color: var(--hover-bg-neutral);
    --bs-btn-active-bg: var(--brand-green-active);
    --bs-btn-active-border-color: var(--brand-green-active);
}

.bd-mode-toggle {
    z-index: 1500;
}

.bd-mode-toggle .bi {
    width: 1em;
    height: 1em;
}

.bd-mode-toggle .dropdown-menu .active .bi {
    display: block !important;
}

.dropdown-menu {
    --bs-dropdown-link-active-bg: var(--brand-green-hover);
}

#mobileNav {
    --bs-offcanvas-width: 220px;
}

.form-control:focus,
.form-select:focus {
    border-color: var(--brand-green);
    box-shadow: 0 0 0 0.25rem rgba(0, 168, 23, 0.25);
}

.info-box {
    border-color: var(--general-border);
    background-color: var(--general-bg-muted);
    color: var(--text-muted);
    font-size: 0.95rem;
    line-height: 1.5;
    padding: 1.25rem 1.5rem;
}
