* { --active: rgb(43, 43, 48); --active-inner: #f3f3f3; --focus: 2px rgba(39, 94, 254, .3); --border: #a3a3a3; --border-hover: #f3f3f3; --background: rgb(255, 255, 255); --background-secondary: rgb(230, 230, 230); --disabled: rgb(43, 43, 48); --disabled-inner: #rgb(43, 43, 48); --text: #000; } @media (prefers-color-scheme: dark) { * { --active: rgb(43, 43, 48); --active-inner: #f3f3f3; --focus: 2px rgba(39, 94, 254, .3); --border: #f3f3f3; --border-hover: #f3f3f3; --background: rgb(31, 32, 39); --background-secondary: rgb(43, 43, 48); --disabled: rgb(43, 43, 48); --disabled-inner: #rgb(43, 43, 48); --text: #f3f3f3; } } html, body { padding: 0; margin: 0; background-color: var(--background); color: var(--text); font-family: 'Gill Sans', 'Gill Sans MT', Calibri, 'Trebuchet MS', sans-serif; font-size: 16px; } .turbolinks-progress-bar { height: 5px; background-color: rgb(52, 52, 175); } a, a:hover, a:active, a:visited { color: var(--text); } body { padding-top: 60px; } header { position: fixed; top: 0; left: 0; height: 50px; width: 100%; border-bottom: 1px solid var(--border); display: flex; flex-direction: row; justify-content: space-between; background-color: var(--background); } hr { width: auto; border-top: 0; border-bottom: 1px solid var(--border); margin: 16px 8px; } h1 { margin: 16px 8px; padding-bottom: 8px; border-bottom: 1px solid var(--border); } #header-logo { display: block; padding: 16px; text-decoration: none; font-family: 'Courier New', Courier, monospace; cursor: pointer; } .header-menu { list-style: none; display: flex; flex-direction: row; } .header-menu .header-menu--item { transition: background 0.3s, border-color 0.3s, box-shadow 0.2s; display: inline-block; padding: 16px; text-decoration: none; } .header-menu .header-menu--item:hover { background-color: var(--background-secondary); } .layout-center { display: flex; flex-direction: row; justify-content: space-around; } form { display: flex; flex-direction: column; /* max-width: 50vh; */ width: 600px; border: 1px solid var(--border); border-radius: 8px; padding: 16px; } form .required { font-size: 14px; font-style: italic; color: rgb(255, 100, 100); align-self: flex-end; } form .optional { font-size: 14px; font-style: italic; align-self: flex-end; } form label { display: flex; flex-direction: row; justify-content: space-between; align-items: center; } .form-row { display: flex; flex-direction: row; align-items: center; } input, textarea, button { background-color: var(--background-secondary); color: var(--text); border: 1px solid var(--border); padding: 8px; margin: 8px; border-radius: 4px; } textarea { resize: vertical; } label { padding: 8px; } input:active, textarea:active, button:active { background-color: rgb(33, 33, 38); } @supports (-webkit-appearance: none) or (-moz-appearance: none) { input[type=checkbox], input[type=radio] { -webkit-appearance: none; -moz-appearance: none; height: 21px; outline: none; display: inline-block; vertical-align: top; position: relative; margin: 0 8px 0 0; cursor: pointer; border: 1px solid var(--bc, var(--border)); background: var(--b, var(--background-secondary)); transition: background 0.3s, border-color 0.3s, box-shadow 0.2s; } input[type=checkbox]:after, input[type=radio]:after { content: ""; display: block; left: 0; top: 0; position: absolute; transition: transform var(--d-t, 0.3s) var(--d-t-e, ease), opacity var(--d-o, 0.2s); } input[type=checkbox]:checked, input[type=radio]:checked { --b: var(--active); --bc: var(--active); --d-o: .3s; --d-t: .6s; --d-t-e: cubic-bezier(.2, .85, .32, 1.2); } input[type=checkbox]:disabled, input[type=radio]:disabled { --b: var(--disabled); cursor: not-allowed; opacity: 0.9; } input[type=checkbox]:disabled:checked, input[type=radio]:disabled:checked { --b: var(--disabled-inner); --bc: var(--border); } input[type=checkbox]:disabled+label, input[type=radio]:disabled+label { cursor: not-allowed; } input[type=checkbox]:hover:not(:checked):not(:disabled), input[type=radio]:hover:not(:checked):not(:disabled) { --bc: var(--border-hover); } input[type=checkbox]:focus, input[type=radio]:focus { box-shadow: 0 0 0 var(--focus); } input[type=checkbox]:not(.switch), input[type=radio]:not(.switch) { width: 21px; } input[type=checkbox]:not(.switch):after, input[type=radio]:not(.switch):after { opacity: var(--o, 0); } input[type=checkbox]:not(.switch):checked, input[type=radio]:not(.switch):checked { --o: 1; } input[type=checkbox]+label, input[type=radio]+label { font-size: 14px; line-height: 21px; display: inline-block; vertical-align: top; cursor: pointer; margin-left: 4px; } input[type=checkbox]:not(.switch) { border-radius: 7px; } input[type=checkbox]:not(.switch):after { width: 5px; height: 9px; border: 2px solid var(--active-inner); border-top: 0; border-left: 0; left: 7px; top: 4px; transform: rotate(var(--r, 20deg)); } input[type=checkbox]:not(.switch):checked { --r: 43deg; } input[type=checkbox].switch { width: 38px; border-radius: 11px; } input[type=checkbox].switch:after { left: 2px; top: 2px; border-radius: 50%; width: 15px; height: 15px; background: var(--ab, var(--border)); transform: translateX(var(--x, 0)); } input[type=checkbox].switch:checked { --ab: var(--active-inner); --x: 17px; } input[type=checkbox].switch:disabled:not(:checked):after { opacity: 0.6; } input[type=radio] { border-radius: 50%; } input[type=radio]:after { width: 19px; height: 19px; border-radius: 50%; background: var(--active-inner); opacity: 0; transform: scale(var(--s, 0.7)); } input[type=radio]:checked { --s: .5; } }