:root {
    --hover-color: rgb(10, 88, 202);
    --hover-bg-color: rgb(233, 236, 239);
    --hover-border-color: rgb(222, 226, 230);
    --focus-box-shadow-color: rgba(13, 110, 253, 0.25);
    --progress-bar-bg: #f0f0f0;
    --progress-bar-color: #4caf50;
    --progress-bar-dark-bg: #333333;
    --progress-bar-dark-color: #81c784;
    --link-color: #0d6efd;
    --link-hover-color: #fff;
    --link-hover-bg: #0d6efd;
    --link-hover-border: #0d6efd;
    --badge-bg: red;
    --badge-color: white;
}

html {
    height: 100%;
    visibility: hidden;
}

body {
    margin: 0;
    min-height: 100%;
    display: grid;
    grid-template-rows: auto 1fr auto;
    font-family: "Roboto", Helvetica, Arial, sans-serif !important;
}

#content-block {
    height: 100%;
    overflow: hidden;
}

.main {
    margin: 0 0.5%;
    height: 100%;
}

.form-inline .form-group {
    display: inline-block;
    margin-bottom: 0;
    vertical-align: middle;
}

form input[type='submit']:hover, .nav-link:hover, button:hover {
    color: var(--hover-color) !important;
    background-color: var(--hover-bg-color) !important;
    border-color: var(--hover-border-color) !important;
}

form input[type='submit']:focus, .nav-link:focus, button:focus {
    color: var(--hover-color) !important;
    background-color: var(--hover-bg-color) !important;
    box-shadow: 0 0 0 0.25rem var(--focus-box-shadow-color) !important;
}


.narrow-column {
    width: 50px;
}

.display-flex {
    display: flex;
}

#time-now {
    display: flex;
    align-items: center;
    padding: 0.375rem 0.75rem;
    font-weight: 500;
    color: var(--link-color);
    text-decoration: none;
    border-radius: 0.25rem;
    transition: color 0.15s ease-in-out, background-color 0.15s ease-in-out, border-color 0.15s ease-in-out;
}

#time-now:hover {
    color: var(--link-hover-color);
    background-color: var(--link-hover-bg);
    border-color: var(--link-hover-border);
}

.server-time {
    font-size: 1rem;
    font-weight: 500;
}

.badge {
    position: absolute;
    top: 0;
    right: 0;
    padding: 0.01em 0.02em;
    border-radius: 0.25rem;
    background-color: var(--badge-bg);
    color: var(--badge-color);
    font-size: 25%;
    transform: translate(40%, -40%);
    pointer-events: none;
}

header {
    height: auto;
    min-height: 80px;
    position: relative;
    width: 100%;
    box-sizing: border-box;
    padding: 0 10px;
}

.nav-item {
    position: relative;
    display: inline-block;
    padding-right: 1.5em;
}

.nav-dropdown-item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-right: 1.5em;
    padding-left: 1em;
    min-width: 10em;
}

.nav-dropdown-item .badge {
    font-size: 50%;
    transform: none;
}

a.nav-link.active, li:has(ul>li>a.active).dropdown > a {
    color: var(--link-hover-color);
    background-color: var(--link-hover-bg);
}

#loading-spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
}

.dropdown-menu {
    max-height: 800px;
    overflow-y: auto;
}

.dropdown-item {
    display: flex;
    align-items: center;
    padding: 8px 12px;
    cursor: pointer;
}

.dropdown-item input[type="checkbox"] {
    width: 20px;
    height: 20px;
    cursor: pointer;
    vertical-align: middle;
}
