body { display: flex; min-height: 100vh; min-width: 100vw; margin: 0; font-family: sans-serif; line-height: 1.5; } :root { --color-primary: 94, 12, 151; --color-hightlight-1: 255, 212, 186; --color-hightlight-2: 208, 44, 167; --color-contrast: white; } main { flex-grow: 1; display: flex; padding: 1rem; flex-direction: column; } h1 { margin-top: 0; margin-bottom: 1rem; } a { color: rgb(var(--color-primary)); text-decoration: none; position: relative; padding-bottom: .3em; } a::after { content: ""; display: block; width: 100%; border-bottom: 2px solid rgb(var(--color-primary)); position: absolute; bottom: .1em; transition: .2s; } a:hover::after { bottom: .3em; } p.feedback { padding: .35rem; margin: 0; } p.feedback.error { background: #fddede; color: #710000; } select, input { border: 1px solid rgb(var(--color-primary));; border-radius: 0; background: var(--color-contrast); } select, button, input { padding: .35rem .35rem; font-size: 1rem; } button, input[type="submit"] { background: rgb(var(--color-primary)); color: var(--color-contrast); border-left: 5px solid rgb(var(--color-hightlight-1)); border-top: 5px solid rgb(var(--color-hightlight-1)); border-right: 5px solid rgb(var(--color-hightlight-2)); border-bottom: 5px solid rgb(var(--color-hightlight-2)); } button:hover:not([disabled]), input[type="submit"]:hover:not([disabled]) { background: rgba(var(--color-primary), .8); } button:active:not([disabled]) , input[type="submit"]:active:not([disabled]) { border-left: 5px solid var(--color-hightlight-2); border-top: 5px solid var(--color-hightlight-2); border-right: 5px solid rgb(var(--color-hightlight-1)); border-bottom: 5px solid rgb(var(--color-hightlight-1)); } button[disabled], input[type="submit"][disabled] { background: rgba(var(--color-primary), .75); border-left-color: rgba(var(--color-hightlight-1), .75); border-top-color: rgba(var(--color-hightlight-1), .75); border-right-color: rgba(var(--color-hightlight-2), .75); border-bottom-color: rgba(var(--color-hightlight-2), .75); cursor: not-allowed; } form input[type="submit"] { margin-top: 2rem; } form label { margin-top: .75em; } form { display: flex; flex-direction: column; width: fit-content; } nav.main { background: rgb(var(--color-primary)); min-width: 25ch; display: flex; flex: 0; padding: 1rem; border-right: 5px solid rgb(var(--color-hightlight-2)); } nav.main a { color: var(--color-contrast); } nav.main a::after { border-bottom: 2px solid var(--color-contrast); } nav.main a img { filter: invert(100%); width: 1.4em; margin-bottom: -.3em; } nav.main ul { list-style: none; padding: 0; margin: 0; } nav.main ul li { margin-top: .35rem; } nav.main ul ul { margin-left: 1rem; }