:root {
    --anchor: #584800;
    --anchor-hover: #8a7000;

    --box-primary-color: #ccb800;
    --box-secondary-color: #8b6600;

    --button-submit-background: linear-gradient(0deg, #ccb800, #ffe600);
    --button-submit-background-hover: linear-gradient(180deg, #ccb800, #ffe600);
    --button-submit-border: #8b6600;
    --button-submit-color: #302300;

    --button-regular-background: #cacaca;
    --button-regular-background-hover: #aaaaaa;
    --button-regular-border: #676767;
}

* {
    margin: 0;
    padding: 0;
}

body {
    width: 100%;
    min-height: 100vh;
    display: flex;
    flex-direction: column;
    align-items: center;

    font-family: Arial, Helvetica, sans-serif;
}

main {
    display: flex;
    flex-direction: column;
    width: 60%;
}

header {
    margin: 32px 0;
    display: flex;
    flex-direction: row;
    justify-content: space-between;
}

table th {
    text-align: left;
    vertical-align: top;
    padding: 8px;
}

a {
    color: var(--anchor);
}

a.bold {
    font-weight: bold;
}

a:hover {
    color: var(--anchor-hover);
    cursor: pointer;
}

input[type=text],
input[type=password] {
    padding: 4px;
    border: 1px solid var(--box-primary-color);
}

button {
    padding: 2px 6px;
    background: var(--button-regular-background);
    border: 1px solid var(--button-regular-border);
    border-radius: 2px;
}

button:hover {
    background: var(--button-regular-background-hover);
    cursor: pointer;
}

button.fancy {
    padding: 4px 32px;
    font-size: 24px;
    background: var(--button-submit-background);
    color: var(--button-submit-color);
    border: 1px solid var(--button-submit-border);
    border-radius: 4px;
    text-shadow: 0 1px 0 var(--button-submit-border);
}

button.fancy:hover {
    background: var(--button-submit-background-hover);
    text-shadow: 0 -1px 0 var(--button-submit-border);
    cursor: pointer;
}

.box {
    padding: 8px;
    border: 1px solid var(--box-primary-color);
}

.box:has(.content) {
    padding: 0;
}

.box>.tab {
    display: flex;
    flex-direction: row;
    background: var(--box-primary-color);
    color: var(--box-secondary-color);
    padding: 4px;
    text-transform: uppercase;
    font-size: 10px;
}

.box>.content {
    padding: 16px;
}

.alert {
    padding: 4px;
    border: 2px solid #909090;
    background: #cacaca;
}

.alert.red {
    border-color: maroon;
    background: #ff6868;
}

.column {
    display: flex;
    flex-direction: column;
}

.row {
    display: flex;
    flex-direction: row;
}

.align-bottom {
    align-items: end;
}

.align-center {
    align-items: center;
}

.justify-center {
    justify-content: center;
}

.gap-8 {
    gap: 8px;
}

.gap-16 {
    gap: 16px;
}