body {
    padding-top: 50px;
    padding: 50px;
    min-height: 100vh;
}

.starter-template {
    padding: 40px 15px;
    text-align: center;
}

.clear-alert {
    background: transparent;
    border: 0;
}

.btn-outline-primary {
    --bs-btn-color: var(--sb-primary);
    --bs-btn-border-color: var(--sb-primary);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--sb-primary);
    --bs-btn-hover-border-color: var(--sb-primary);
    --bs-btn-focus-shadow-rgb: 13, 110, 253;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--sb-primary);
    --bs-btn-active-border-color: var(--sb-primary);
    --bs-btn-active-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
    --bs-btn-disabled-color: var(--sb-primary);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--sb-primary);
    --bs-gradient: none;
}

.hidden {
    display: none;
}

.rating {
    display: none;
}
.rating ~ label.star::before {
    content: "\f005";
    font-family: "Font Awesome 7 Free";
    color: var(--sb-secondary);
}
.rating:checked ~ label.star::before {
    font-weight: 900;
    color: var(--sb-primary);
}
.rating:checked + label.star::before {
    color: var(--sb-secondary);
}

textarea {
    font-family: monospace;
}

/* Syntax Highlighting stuff */

pre {
    background: var(--bg-color-dark) !important;
    padding: 10px;
    border: 1px solid #333 !important;
}

table {
    margin-bottom: 1em;
    /* width: 100%; */
}

td {
    padding-right: 10px;
}

.no-bullet > ul {
    list-style-type: none;
}

img {
    max-width: 100%;
}

.navbar-brand img {
    height: 4rem;
    max-width: max-content;
}

#countdown {
    background-color: var(--bg-color);
    color: var(--sb-secondary);
    border-radius: 0.5rem;
    font-weight: bold;
    min-width: 10rem;
    text-align: center;
}

.icon {
    width: 2.5rem;
    height: 2.5rem;
}

.list-group {
    --bs-list-group-color: var(--bs-body-color);
    --bs-list-group-bg: var(--bg-color);
    --bs-list-group-border-color: var(--bg-color-dark);
}

#chart {
    height: 50vh;
    width: 100%;
}

table.table {
    --bs-table-hover-bg: var(--bg-color-dark);
}

th {
    white-space: nowrap;
}

td {
    vertical-align: middle;
}

[data-href] {
    cursor: pointer;
}

.chall-inactive {
    /*opacity: 0.5;*/
    background-image: repeating-linear-gradient(
        -45deg,
        var(--bg-color),
        var(--bg-color) 10px,
        var(--bg-color-dark) 10px,
        var(--bg-color-dark) 20px
    );
}

td.datetime {
    font-size: 0.9rem;
    white-space: nowrap;
}

.bold {
    font-weight: bold;
}

section.scoreboard .container {
    width: 100%;
    max-width: inherit;
}

section.scoreboard table {
    /*width: inherit;*/
    margin: 0 auto;
}

section.scoreboard td {
    --bs-table-bg: transparent;
    border: 1px solid var(--bg-color-dark);
}

section.scoreboard tr td:first-child {
    max-width: 8rem;
    text-overflow: ellipsis;
    overflow: hidden;
    white-space: nowrap;
}

th.challenge-team,
th.challenge-score {
    min-width: 4rem;
}

th.challenge-name {
    position: relative;
    height: 5rem;
    /*min-width: 50px;
    max-width: 50px;*/
    font-size: 0.9rem;
}

/*td.challenge-solved:nth-child(2n),
th.challenge-name:nth-child(2n) div {
    background-color: var(--bg-color-dark);
}*/

th.challenge-name div {
    z-index: -1;
    border: 1px solid var(--bg-color-dark);
    border-left-width: 0;
}

th.challenge-name div,
th.challenge-name a {
    position: absolute;
    bottom: 0;
    left: 0;
    /*height: 42px;
    width: 14rem;*/
    transform: rotate(-25deg);
    transform-origin: top left;
    translate: -30px 26px;
}

th.challenge-name a {
    display: inline-block;
    z-index: 10;
    text-align: left;
    padding: 0.5rem 0.5rem 0.5rem 2rem;
    text-decoration: none;
}

td i.fa {
    font-size: 1.5rem;
}

section.challenge .header {
    display: flex;
    justify-content: space-between;
    margin-bottom: 1.5rem;
}

section.challenge .briefing {
    padding-top: 2rem;
    padding-bottom: 1rem;
}
