* {
box-sizing: border-box;
}
html,
body {
margin: 0;
padding: 0;
}
body {
background: var(--color-page);
background-image: var(--page-background);
color: var(--color-text);
font-family: var(--font-body);
line-height: var(--line-height-body);
}
@supports (padding-top: env(safe-area-inset-top)) {
body {
background:
linear-gradient(to bottom, var(--color-brand-header) env(safe-area-inset-top, 0px), transparent 0),
var(--page-background),
var(--color-page);
}
}
a {
color: var(--color-link);
text-decoration: none;
text-decoration-thickness: var(--text-decoration-hairline);
text-underline-offset: var(--text-underline-offset);
}
a:hover,
a:active {
color: var(--color-link-hover);
text-decoration: underline;
}
p,
li {
font-size: var(--font-size-small);
}
img {
max-width: 100%;
}
button,
input,
textarea,
select {
font: inherit;
}
button,
:where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="button"]):not([type="reset"]):not([type="submit"]):not([type="image"])),
:where(textarea),
:where(select) {
border-radius: var(--radius-subtle);
}
:where(input:not([type="hidden"]):not([type="checkbox"]):not([type="radio"]):not([type="file"]):not([type="button"]):not([type="reset"]):not([type="submit"]):not([type="image"])),
:where(textarea),
:where(select) {
background: var(--color-field);
border: var(--border-thin) solid var(--color-field-border);
border-color: var(--color-field-border-dark) var(--color-field-border-light) var(--color-field-border-light) var(--color-field-border-dark);
box-shadow: var(--shadow-field);
max-width: 100%;
min-height: var(--control-min-height);
padding: var(--control-pad-y) var(--control-pad-x);
}
input[type="file"] {
max-width: 100%;
}
input:disabled,
input[readonly],
textarea:disabled,
select:disabled {
background: var(--color-field-disabled);
color: var(--color-text-muted);
}
button,
input[type="button"],
input[type="reset"],
input[type="submit"],
.button {
--button-bg: var(--color-button-primary-bg);
--button-text: var(--color-button-primary-text);
--button-border-light: var(--color-button-primary-border-light);
--button-border-dark: var(--color-button-primary-border-dark);
--button-hover-bg: var(--color-button-primary-hover-bg);
--button-hover-text: var(--color-button-primary-hover-text);
align-items: center;
background: var(--button-bg);
border: var(--border-thin) solid var(--button-border-dark);
border-color: var(--button-border-light) var(--button-border-dark) var(--button-border-dark) var(--button-border-light);
border-radius: var(--radius-subtle);
box-shadow: var(--shadow-button);
color: var(--button-text);
cursor: pointer;
display: inline-flex;
justify-content: center;
min-height: var(--control-min-height);
padding: var(--control-pad-y) var(--control-pad-x);
text-align: center;
text-decoration: none;
}
button:hover,
input[type="button"]:hover,
input[type="reset"]:hover,
input[type="submit"]:hover,
.button:hover {
background: var(--button-hover-bg);
color: var(--button-hover-text);
text-decoration: none;
}
button:active,
input[type="button"]:active,
input[type="reset"]:active,
input[type="submit"]:active,
.button:active {
box-shadow: var(--shadow-pressed);
transform: translate(var(--button-active-shift), var(--button-active-shift));
}
.button--secondary {
--button-bg: var(--color-button-secondary-bg);
--button-text: var(--color-button-secondary-text);
--button-border-light: var(--color-button-secondary-border-light);
--button-border-dark: var(--color-button-secondary-border-dark);
--button-hover-bg: var(--color-button-secondary-hover-bg);
--button-hover-text: var(--color-button-secondary-hover-text);
}
.button--danger {
--button-bg: var(--color-button-danger-bg);
--button-text: var(--color-button-danger-text);
--button-border-light: var(--color-button-danger-border-light);
--button-border-dark: var(--color-button-danger-border-dark);
--button-hover-bg: var(--color-button-danger-hover-bg);
--button-hover-text: var(--color-button-danger-hover-text);
}
.button--selected {
--button-bg: var(--color-button-primary-bg);
--button-text: var(--color-button-primary-text);
--button-border-light: var(--color-button-primary-border-light);
--button-border-dark: var(--color-button-primary-border-dark);
--button-hover-bg: var(--color-button-primary-hover-bg);
--button-hover-text: var(--color-button-primary-hover-text);
}
button:disabled,
input[type="button"]:disabled,
input[type="reset"]:disabled,
input[type="submit"]:disabled {
cursor: not-allowed;
opacity: var(--disabled-opacity);
transform: none;
}
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
a:focus-visible,
summary:focus-visible {
outline: var(--focus-outline-width) solid var(--color-focus);
outline-offset: var(--focus-offset);
}
a:focus-visible,
summary:focus-visible {
background: var(--color-link-focus-bg);
}
textarea {
min-width: 0;
width: 100%;
max-width: 100%;
resize: vertical;
}
.text-editor {
min-height: 18rem;
resize: vertical;
white-space: pre-wrap;
}
.text-editor--short {
min-height: 7rem;
}
.text-block {
max-width: 100%;
overflow: auto;
white-space: break-spaces;
}
table {
max-width: 100%;
}
audio {
max-width: 100%;
width: var(--audio-width);
}
.flush-heading {
margin: 0;
}
.inline-form {
display: inline;
}
.icon {
display: inline-flex;
flex: 0 0 auto;
margin: 0;
vertical-align: var(--icon-offset-y);
}
:where(a, button, span, summary):has(> .icon) {
align-items: center;
display: inline-flex;
gap: var(--icon-label-gap);
}
.icon svg {
display: block;
height: var(--icon-size);
stroke: currentColor;
width: var(--icon-size);
}
.count {
color: var(--count-color, var(--color-link));
}
a:hover .count,
a:active .count {
color: inherit;
}