|
|
|
body {
|
|
|
|
display: flex;
|
|
|
|
flex-direction: column;
|
|
|
|
background-color: white;
|
|
|
|
color: black;
|
|
|
|
margin: 0;
|
|
|
|
min-height: 100vh;
|
|
|
|
}
|
|
|
|
|
|
|
|
.content, main {
|
|
|
|
display: block;
|
|
|
|
margin: 0 auto;
|
|
|
|
padding: 0 1em;
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
.content_limited, main {
|
|
|
|
max-width: 1000px;
|
|
|
|
}
|
|
|
|
|
|
|
|
header {
|
|
|
|
padding: 10px 0px;
|
|
|
|
}
|
|
|
|
|
|
|
|
header.flavor-test {
|
|
|
|
background-color: #33cc33;
|
|
|
|
}
|
|
|
|
|
|
|
|
header.flavor-devel {
|
|
|
|
background-color: #cc77cc;
|
|
|
|
}
|
|
|
|
|
|
|
|
main {
|
|
|
|
padding: 1em;
|
|
|
|
}
|
|
|
|
|
|
|
|
header .content {
|
|
|
|
display: flex;
|
|
|
|
}
|
|
|
|
|
|
|
|
header img { height: 60px; }
|
|
|
|
|
|
|
|
header h1 { margin: auto 20px 0px; color: #222; }
|
|
|
|
|
|
|
|
.nav-wrapper-sticky {
|
|
|
|
position: sticky;
|
|
|
|
}
|
|
|
|
#nav-wrapper {
|
|
|
|
top: 0;
|
|
|
|
background-color: #222;
|
|
|
|
border: 1px #222 solid;
|
|
|
|
z-index: 10;
|
|
|
|
}
|
|
|
|
|
|
|
|
footer {
|
|
|
|
margin-top: auto;
|
|
|
|
}
|
|
|
|
|
|
|
|
.error {
|
|
|
|
color: red;
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
|
|
|
|
.okay {
|
|
|
|
color: green;
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
|
|
|
|
.hint {
|
|
|
|
color: #737373;
|
|
|
|
}
|
|
|
|
|
|
|
|
span.unknown {
|
|
|
|
font-weight: bold;
|
|
|
|
color: red;
|
|
|
|
}
|
|
|
|
|
|
|
|
table.data {
|
|
|
|
border-collapse: collapse;
|
|
|
|
margin-top: 2ex;
|
|
|
|
margin-bottom: 2ex;
|
|
|
|
}
|
|
|
|
|
|
|
|
table.data.full {
|
|
|
|
width: 100%;
|
|
|
|
}
|
|
|
|
|
|
|
|
table.data tbody tr:hover {
|
|
|
|
background-color: #ddd;
|
|
|
|
}
|
|
|
|
|
|
|
|
table.data tr td, table.data tr th {
|
|
|
|
border: 1px solid #222;
|
|
|
|
padding: 0.1ex 0.5ex;
|
|
|
|
}
|
|
|
|
|
|
|
|
table.data.center th, table.data.center td {
|
|
|
|
text-align: center;
|
|
|
|
}
|
|
|
|
|
|
|
|
table.data thead, table.data tfoot {
|
|
|
|
background-color: #aaa;
|
|
|
|
}
|
|
|
|
table.data thead a, table.data tfoot a {
|
|
|
|
color: rgb(0, 22, 121);
|
|
|
|
}
|
|
|
|
|
|
|
|
table.data thead th {
|
|
|
|
padding: 0.4ex 0.5ex;
|
|
|
|
}
|
|
|
|
|
|
|
|
table.data td.sol {
|
|
|
|
background-color: lightgreen;
|
|
|
|
}
|
|
|
|
table.data td.sol a {
|
|
|
|
color: black;
|
|
|
|
}
|
|
|
|
table.data td.sol-warn {
|
|
|
|
background-color: #ffaaaa;
|
|
|
|
}
|
|
|
|
|
|
|
|
table tr.bonus--1{
|
|
|
|
color: red;
|
|
|
|
}
|
|
|
|
table tr.bonus-0{
|
|
|
|
font-weight: bold;
|
|
|
|
}
|
|
|
|
table tr.bonus-1{
|
|
|
|
color: blue;
|
|
|
|
}
|
|
|
|
nav#main-menu {
|
|
|
|
display: flex;
|
|
|
|
flex-wrap: wrap;
|
|
|
|
}
|
|
|
|
|
|
|
|
nav#main-menu a, nav#main-menu input[type=submit] {
|
|
|
|
background: none;
|
|
|
|
border: none;
|
|
|
|
margin: 0px;
|
|
|
|
color: white;
|
|
|
|
font-size: 1em;
|
|
|
|
text-align: center;
|
|
|
|
padding: 14px 16px;
|
|
|
|
text-decoration: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Only the first item with .right class does the margin trick */
|
|
|
|
nav#main-menu > .right { margin-left: auto; }
|
|
|
|
nav#main-menu > .right ~ .right { margin-left: 0px; }
|
|
|
|
|
|
|
|
nav#main-menu a:hover:not(.active), nav#main-menu input[type=submit]:hover {
|
|
|
|
cursor: pointer;
|
|
|
|
background-color: #555;
|
|
|
|
color: white;
|
|
|
|
}
|
|
|
|
|
|
|
|
nav#main-menu a.active {
|
|
|
|
background-color: #ddd;
|
|
|
|
color: black;
|
|
|
|
}
|
|
|
|
|
|
|
|
.form-group.required .control-label:after {
|
|
|
|
content:"*";
|
|
|
|
color:red;
|
|
|
|
}
|
|
|
|
|
|
|
|
.form-frame {
|
|
|
|
padding: 10px;
|
|
|
|
border: 1px #ddd solid;
|
|
|
|
border-radius: 4px 4px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.checked_toggle input.toggle:checked ~ .checked_hide {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
.checked_toggle input.toggle:not(:checked) ~ .checked_show {
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Tabs - source: https://codepen.io/MPDoctor/pen/mpJdYe */
|
|
|
|
.tabbed {
|
|
|
|
margin: 15px 0px;
|
|
|
|
}
|
|
|
|
|
|
|
|
.tabbed [type="radio"] {
|
|
|
|
/* hiding the inputs */
|
|
|
|
display: none;
|
|
|
|
}
|
|
|
|
|
|
|
|
.tabs {
|
|
|
|
display: flex;
|
|
|
|
align-items: stretch;
|
|
|
|
list-style: none;
|
|
|
|
padding: 0;
|
|
|
|
margin-bottom: 0px;
|
|
|
|
border-bottom: 1px solid #ddd;
|
|
|
|
}
|
|
|
|
.tab > label {
|
|
|
|
display: block;
|
|
|
|
margin-bottom: -1px;
|
|
|
|
padding: 12px 15px;
|
|
|
|
border: 1px solid #ddd;
|
|
|
|
background: #eee;
|
|
|
|
color: #666;
|
|
|
|
font-size: 16px;
|
|
|
|
cursor: pointer;
|
|
|
|
transition: all 0.3s;
|
|
|
|
}
|
|
|
|
.tab:hover label {
|
|
|
|
border-top-color: #333;
|
|
|
|
color: #333;
|
|
|
|
}
|
|
|
|
|
|
|
|
.tab-content {
|
|
|
|
display: none;
|
|
|
|
margin: 0px;
|
|
|
|
padding: 10px;
|
|
|
|
border: 1px solid #ddd;
|
|
|
|
border-top: 0px;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* As we cannot replace the numbers with variables or calls to element properties, the number of this selector parts is our tab count limit */
|
|
|
|
.tabbed [type="radio"]:nth-of-type(1):checked ~ .tabs .tab:nth-of-type(1) label,
|
|
|
|
.tabbed [type="radio"]:nth-of-type(2):checked ~ .tabs .tab:nth-of-type(2) label,
|
|
|
|
.tabbed [type="radio"]:nth-of-type(3):checked ~ .tabs .tab:nth-of-type(3) label,
|
|
|
|
.tabbed [type="radio"]:nth-of-type(4):checked ~ .tabs .tab:nth-of-type(4) label,
|
|
|
|
.tabbed [type="radio"]:nth-of-type(5):checked ~ .tabs .tab:nth-of-type(5) label {
|
|
|
|
border-bottom-color: #fff;
|
|
|
|
border-top-color: #999;
|
|
|
|
background: #fff;
|
|
|
|
color: #222;
|
|
|
|
}
|
|
|
|
|
|
|
|
.tabbed [type="radio"]:nth-of-type(1):checked ~ .tab-content:nth-of-type(1),
|
|
|
|
.tabbed [type="radio"]:nth-of-type(2):checked ~ .tab-content:nth-of-type(2),
|
|
|
|
.tabbed [type="radio"]:nth-of-type(3):checked ~ .tab-content:nth-of-type(3),
|
|
|
|
.tabbed [type="radio"]:nth-of-type(4):checked ~ .tab-content:nth-of-type(4) {
|
|
|
|
display: block;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Icons */
|
|
|
|
|
|
|
|
@font-face {
|
|
|
|
font-family: 'icomoon';
|
|
|
|
src: url('fonts/icomoon.ttf?azc5ov') format('truetype'),
|
|
|
|
url('fonts/icomoon.woff?azc5ov') format('woff');
|
|
|
|
font-weight: normal;
|
|
|
|
font-style: normal;
|
|
|
|
font-display: block;
|
|
|
|
}
|
|
|
|
|
|
|
|
.icon {
|
|
|
|
/* Use !important to prevent issues with browser extensions that change fonts */
|
|
|
|
font-family: 'icomoon' !important;
|
|
|
|
font-style: normal;
|
|
|
|
font-weight: normal;
|
|
|
|
font-variant: normal;
|
|
|
|
text-transform: none;
|
|
|
|
line-height: 1;
|
|
|
|
|
|
|
|
/* Better font rendering */
|
|
|
|
-webkit-font-smoothing: antialiased;
|
|
|
|
-moz-osx-font-smoothing: grayscale;
|
|
|
|
}
|
|
|
|
|
|
|
|
/* Collapsible */
|
|
|
|
|
|
|
|
.collapsible {
|
|
|
|
position: relative;
|
|
|
|
}
|
|
|
|
.collapsible input[type="checkbox"].toggle {
|
|
|
|
position: absolute;
|
|
|
|
top: 0;
|
|
|
|
left: 0;
|
|
|
|
opacity: 0;
|
|
|
|
}
|
|
|
|
.collapsible label.toggle {
|
|
|
|
cursor: pointer;
|
|
|
|
margin-left: 15px;
|
|
|
|
}
|
|
|
|
.collapsible label.toggle::before {
|
|
|
|
position: absolute;
|
|
|
|
content: "";
|
|
|
|
width: 0;
|
|
|
|
height: 0;
|
|
|
|
left: 0px;
|
|
|
|
border-left: 8px solid black;
|
|
|
|
border-top: 8px solid transparent;
|
|
|
|
border-bottom: 8px solid transparent;
|
|
|
|
transition: 0.5s ease;
|
|
|
|
}
|
|
|
|
.collapsible input[type="checkbox"].toggle:checked ~ label.toggle::before {
|
|
|
|
transform: rotate(90deg);
|
|
|
|
}
|
|
|
|
.collapsible .collapsible-inner {
|
|
|
|
max-height: 0;
|
|
|
|
overflow-y: hidden;
|
|
|
|
transition: 0.5s ease;
|
|
|
|
}
|
|
|
|
.collapsible input[type="checkbox"].toggle:checked ~ .collapsible-inner {
|
|
|
|
max-height: 100vh;
|
|
|
|
}
|