HN-like selfhosted forums
:root { /* Fonts */ --font: sans-serif; --font-display: serif;}*,*::before,*::after { box-sizing: border-box;}html { padding: 0; margin: 0;}body { position: relative; margin: auto; padding: 1em; background-color: var(--bg); max-width: 60%; font-family: var(--font); color: var(--text);}@media (max-width: 767px) { body { max-width: 100%; }}@media (max-width: 480px) {}footer { color: var(--text-subtle); width: 100%; text-align: center;}form { & > * { margin: 0; } &:focus-within { *:invalid { border-color: var(--error); } *:valid:not([type="submit"]) { border-color: var(--success); } }}input,textarea,button,select { border-left: 0; border-right: 0; border-top: 0; border-bottom: 1px solid var(--border); background-color: var(--surface); color: var(--text); padding: 12px; border-radius: 0; font: var(--font); &:disabled { background-color: var(--surface-sunken); border-color: var(--border); color: var(--text-muted); } &:focus, &:active { outline: none; }}.form-error { color: var(--error);}.auth-form { display: flex; flex-direction: column; margin-top: 1em; width: 100%; gap: 1rem; & > * { width: 100%; } & > button:hover { background-color: var(--surface-raised); cursor: pointer; } & > .details-parent { display: grid; grid-template-columns: max-content 1fr; gap: 1rem 0; label { padding: 0.4rem 1rem; border-right: solid 1px var(--border); font-size: 1.5rem; color: var(--text-muted); margin: 0; background-color: var(--surface-sunken); border-bottom: 1px solid var(--border); } }}.auth-page { background-color: var(--bg); width: 100%; & h2 { font-weight: 400; font-family: var(--font); } & .alt-callout { font-size: 1rem; margin-top: 1.4rem; & > a { color: var(--text); &:active { color: var(--primary); } } }}.subtle-link { color: var(--text-subtle); &:visited { color: var(--text-muted); }}