.printable-header,
.printable-header-space {
    height: 90px;
    top: 0;
    background-color: #ffffff;
}

.printable-footer,
.printable-footer-space {
    height: 60px;
    bottom: 0;
    background-color: #ffffff;
}

.printable-header,
.printable-footer {
    position: fixed;
    width: 100%;
    z-index: 1000;
}

.printable-footer-info {
    text-align: center;
}

.printable-header .branding_border {
    max-height: calc(var(--branding-border-height) - 2px);
}

.printable-footer .branding_border {
    max-height: calc((var(--branding-border-height) - 2px) / 2);
}

.printable-footer .attribute_list-book {
    padding: 0;
}

.printable-footer .attribute_list-row {
    display: flex;
    margin: 0;
    gap: 30px;
    justify-content: space-around;
}

.printable-footer .attribute_list-item {
    padding: 5px 0;
    width: auto;
    gap: 0px;
    flex-direction: column;
    border: none;
    justify-content: start;
    line-height: 18px;
}

.printable {
    break-before: page;
}

.printable-avoid-break {
    break-inside: avoid;
}

.printable-wrapper {
    margin-bottom: 20px;
}

.printable-wrapper:last-child {
    border-bottom: none;
}

.printable-title.printable-title-first {
    margin: 0;
}

.printable-title {
    display: flex;
    align-items: center;
    margin: 20px 0;
}

.printable-title h1 {
    font-size: 25px;
}

.printable-title h2 {
    font-weight: 500;
    padding-bottom: 20px;
}

.printable-title span {
    margin-left: 10px;
}

.printable-title p {
    display: contents;
    font-family: Courier, sans-serif;
}

.printable-explanation,
.printable-testcase {
    border-bottom: 1px solid var(--color-light-gray-2);
    padding-bottom: 10px;
}

.printable-explanation h2 {
    padding: 20px 0;
}

.printable-explanation h3 {
    padding: 10px 0 0;
}

.printable-explanation p {
    margin-top: 5px;
    line-height: 1.6;
    white-space: pre-wrap;
    word-break: break-word;
}

.printable-testcase h2 {
    font-size: var(--font-base);
    padding-bottom: 10px;
}

.printable-testcase span {
    font-size: var(--font-xsmall);
    font-weight: 500;
}

.printable-testcase p {
    display: contents;
    font-family: monospace, serif;
    font-variant-ligatures: none;
    font-size: var(--font-xsmall);
}

.printable .attribute_list-container {
    display: flex;
    border-top: 1px solid var(--color-light-gray-2);
    border-bottom: 1px solid var(--color-light-gray-2);
    margin-bottom: 20px;
}

.printable-separator {
    border-bottom: 1px solid var(--color-light-gray-2);
    margin-bottom: 18px;
}

.printable .attribute_list-wrapper {
    flex-grow: 1;
}

.personality-scale {
    display: flex;
}

.personality-scale-halves {
    flex: 1;
    padding: 0 20px 10px 0;
}

.mini-personality-scale-wrapper {
    display: flex;
    gap: 20px;
    break-inside: avoid;
    margin-bottom: 20px;
}

.mini-personality-scale-wrapper:last-child {
    margin-bottom: 0;
}

.mini-personality-scale {
    flex: 1;
}

.printable-scores {
    display: flex;
    justify-content: space-between;
    padding: 0 10px;
    font-weight: bold;
}

.printable-scores p {
    margin: 3px 0;
}

.printable .attribute_list-book {
    padding: 0;
    margin: 20px 0;
}

.printable .attribute_list-row {
    display: flex;
}

.printable .attribute_list-item {
    flex-direction: column;
    border: none;
    padding: 5px 30px 5px 0;
    gap: 8px;
}

.printable .attribute_list-item .info_label {
    font-size: var(--font-xsmall);
    color: var(--color-gray);
    text-transform: uppercase;
}

.printable .report_grid-skill {
    justify-content: space-around;
    border-top: 1px solid var(--color-light-gray-2);
    border-bottom: 1px solid var(--color-light-gray-2);
    margin: 0;
    padding: 0;
}

.printable .table2 > thead > tr {
    background: transparent;
    color: #000;
}

.printable .table2 > tbody > tr {
    background-color: transparent !important;
}

.printable .table2 tr > td {
    padding: 8px 0;
    min-width: 80px;
}

.printable .table2 tr:first-child > td {
    padding-top: 15px;
}

.printable .table2 > thead > tr > th {
    border-bottom: 1px solid var(--color-light-gray-2);
    border-top: 1px solid var(--color-light-gray-2);
    padding: 15px 0;
}

.printable .difficulty_number {
    display: inline-flex;
    flex-direction: column;
    text-transform: uppercase;
    min-width: 60px;
    height: fit-content;
    text-align: center;
    font-weight: 400;
    font-size: var(--font-xxsmall);
}

.printable .printable-test-header {
    float: right;
    width: min-content;
}

.printable .printable-test-header .description {
    font-size: var(--font-xsmall);
    margin-top: 5px;
    line-height: 16px;
}

.printable .printable-test-content {
    line-height: 23px;
}

.printable .printable-test-content p {
    margin: 0 0 20px;
}

.printable-test-content .problembody {
    overflow: auto;
}

.printable .status-testcase {
    border-bottom: 1px solid var(--color-light-gray-2);
    padding-bottom: 20px;
}

.printable .compiler-spacer {
    height: 28mm;
}

.separator {
    margin-top: 40px;
    margin-bottom: 30px;
    border-top: 1px solid var(--color-light-gray-2);
}

.printable-list li {
    font-weight: 300;
    line-height: normal;
}

.print-report {
    font-size: var(--font-small);
}

.printable-report-icons-wrapper {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-bottom: 20px;
}

.printable-report-icons-wrapper .header_item_margin {
    padding: 0;
}

.printable-report-icons-wrapper .logo-container {
    flex: none;
}

.printable-report-icons-wrapper .logo-container img {
    max-width: 150px;
    width: 150px;
}

.printable-report-icons-wrapper .logo-container:last-child {
    max-height: calc(var(--header-height) - 15px);
}

.printable-report-icons-wrapper .logo-container:last-child .logo {
    object-position: right;
    max-width: inherit;
}

.printable-report-icons-wrapper .header_item_overview {
    display: flex;
    flex-direction: column;
    font-size: var(--font-xsmall);
    border-left: 1px solid var(--color-light-gray-2);
    margin-left: 20px;
    padding-left: 20px;
}

.status-page {
    display: inline-block;
    margin-left: auto;
    margin-right: auto;
    text-align: center;
}

.status-page img {
    max-width: 75vw;
    margin-top: 15px;
    margin-bottom: 10px;
}

.testcase {
    margin-top: 0;
    column-gap: 9px;
}

.testcase-popup {
    margin-top: 10px;
}

.testcase-row {
    margin-bottom: 25px;
	flex-wrap: wrap;
}

.testcase i {
    margin-right: 0;
}

.test_admin-attribute_list {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    row-gap: 20px;
}

.test_admin-attribute_list .info_label {
    margin-bottom: 4px;
}

#modal-test_admin label {
    margin-bottom: 8px;
}

.indented-checkbox {
    margin-left: 20px;
}

.last-updated-info {
    text-align: right;
    color: var(--color-gray);
}

.open-landing-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(400px, 1fr));
    grid-gap: 25px 15px;
    justify-content: space-between;
}

.toplist-name {
    display: flex;
    justify-content: space-between;
}

.toplist-icons {
    height: 1em; /* To not increase the height of the <tr> */
    display: flex;
    align-items: center;
}

.problem-with-difficulty {
    display: flex;
    justify-content: space-between;
    align-items: center;
}


.checkbox-filter {
    display: flex;
    align-items: center;
    gap: 10px;
}

.checkbox-filter .checkbox-filter-boxes {
    display: flex;
    border: 1px solid var(--divider-color-3);
    border-radius: 2px;
}

.checkbox-filter .checkbox-filter-boxes .filter-label {
    font-size: var(--font-xsmall);
    margin-left: 5px;
    display: flex;
    align-items: center;
    gap: 3px;
}

.checkbox-filter .checkbox-filter-boxes .filter-item {
    height: 100%;
    display: flex;
    align-items: center;
    padding: 5px;
    padding-right: 7px;
    font-weight: 500;
}

.checkbox-filter .checkbox-filter-boxes .filter-item:not(:last-child) {
    border-right: 1px solid var(--divider-color-3);
}

.filter-solved {
    background-color: var(--color-success-pale);
}

.filter-partial-score {
    background-color: var(--color-warning-pale);
}

.filter-tried {
    background-color: var(--color-error-pale);
}

.filter-untried {
    background-color: var(--divider-color-1);
}

.glyphicon-kattis {
    color: var(--color-kattis);
}

.glyphicon-other {
    color: var(--link-color);
}

.contest-list-name {
    display: flex;
    align-items: center;
    gap: 5px;
}

.course-offering-problem-status {
    display: flex;
    align-items: center;
}

.course-offering-problem-status .status-icon {
    margin-right: 6px;
}

.status-icon.problem-solved {
    background-color: #39a137;
}

.status-icon.problem-attempted {
    background-color: #ff411a;
}

.scrollable-container {
    max-height: 100%;
    overflow-y: auto;
}

.no-wrap {
    flex-wrap: nowrap;
    white-space: nowrap;
}

#launcher-frame {
    display: none;
}
