
button,
.button,
a.button,
input[type="submit"],
input[type="reset"],
input[type="button"] {
  border: 1px solid var(--accent);
  background-color: var(--accent);
  color: var(--accent-text);
  padding: 0.5rem 0.9rem;
  text-decoration: none;
  line-height: normal;
}

table {
  border-collapse: collapse;
  margin: 1.5rem 0;
  width: 100%;
}

th {
  background-color: var(--accent-bg);
  font-weight: var(--heavy-font-weight);
  border-bottom: var(--standard-border-weight) solid var(--accent-light);
}

a {
  color: var(--text);
  text-decoration: none;
}

a:hover,
a:active {
  color: var(--accent-hover);
  text-decoration: underline;
}

.button[aria-disabled="true"],
input:disabled,
textarea:disabled,
select:disabled,
button[disabled] {
  cursor: not-allowed;
  background-color: var(--disabled);
  border-color: var(--disabled);
  color: var(--text-button);
}

input[type="range"] {
  padding: 0;
}

button:enabled:hover,
.button:not([aria-disabled="true"]):hover,
input[type="submit"]:enabled:hover,
input[type="reset"]:enabled:hover,
input[type="button"]:enabled:hover {
  background-color: var(--accent-hover);
  border-color: var(--accent-hover);
  cursor: pointer;
}

.button:focus-visible,
button:focus-visible:where(:enabled),
input:enabled:focus-visible:where([type="submit"], [type="reset"], [type="button"]) {
  outline: 2px solid var(--accent);
  outline-offset: 1px;
}
textarea,
select,
input {
  font-size: inherit;
  font-family: inherit;
  padding: 0.5rem;
  margin-bottom: 0.5rem;
  border-radius: var(--standard-border-radius);
  box-shadow: none;
  max-width: 100%;
  display: inline-block;
  color: var(--text);
  background-color: var(--bg);
  border: 1px solid var(--border);
}
figure > table {
  width: max-content;
  margin: 0;
}

button,
.button {
  font-size: inherit;
  font-family: inherit;
  padding: 0.5rem 3rem;
  box-shadow: none;
  max-width: 100%;
  display: inline-block;
}
label {
  display: block;
}


textarea:not([cols]) {
  width: 100%;
}

details {
  padding: 0.7rem 1rem;
}

summary {
  cursor: pointer;
  font-weight: var(--heavy-font-weight);
  padding: 0.7rem 1rem;
  margin: -0.7rem -1rem;
  word-break: break-all;
}

details[open] > summary + * {
  margin-top: 0;
}

details[open] > summary {
  margin-bottom: 0.5rem;
}

details[open] > :last-child {
  margin-bottom: 0;
}
fieldset,
dialog {
  border: 1px solid var(--border);
  padding: 1rem;
  border-radius: var(--standard-border-radius);
  margin-bottom: 1rem;
}


/* Add arrow to drop-down */
select:not([multiple]) {
  background-image: linear-gradient(45deg, transparent 49%, var(--text) 51%),
    linear-gradient(135deg, var(--text) 51%, transparent 49%);
  background-position: calc(100% - 15px), calc(100% - 10px);
  background-size: 5px 5px, 5px 5px;
  background-repeat: no-repeat;
  padding-inline-end: 25px;
}

*[dir="rtl"] select:not([multiple]) {
  background-position: 10px, 15px;
}

/* Checkbox and radio button style */
input[type="checkbox"],
input[type="radio"] {
  vertical-align: middle;
  position: relative;
  width: min-content;
}

input[type="checkbox"] + label,
input[type="radio"] + label {
  display: inline-block;
}

input[type="radio"] {
  border-radius: 100%;
}

input[type="checkbox"]:checked,
input[type="radio"]:checked {
  background-color: var(--accent);
}

input[type="checkbox"]:checked::after {
  content: " ";
  width: 0.18em;
  height: 0.32em;
  border-radius: 0;
  position: absolute;
  top: 0.05em;
  left: 0.17em;
  background-color: transparent;
  border-right: solid var(--bg) 0.08em;
  border-bottom: solid var(--bg) 0.08em;
  font-size: 1.8em;
  transform: rotate(45deg);
}

input[type="radio"]:checked::after {
  content: " ";
  width: 0.25em;
  height: 0.25em;
  border-radius: 100%;
  position: absolute;
  top: 0.125em;
  background-color: var(--bg);
  left: 0.125em;
  font-size: 32px;
}

/* Set a height for color input */
input[type="color"] {
  height: 2.5rem;
  padding: 0.2rem;
}

/* Do not show border around file selector button */
input[type="file"] {
  border: 0;
}
progress {
  width: 100%;
}

progress:indeterminate {
  background-color: var(--accent-bg);
}

progress::-webkit-progress-bar,
progress::-moz-progress-bar {
  border-radius: var(--standard-border-radius);
  background-color: var(--accent-bg);
}

progress::-webkit-progress-value,
progress::-moz-progress-bar {
  background-color: var(--accent);
  transition: width 0.3s;
}

dialog {
  background-color: var(--accent-bg-light);
  max-width: 40rem;
  margin: auto;
  place-items: center;
}

dialog::backdrop {
  background-color: var(--bg);
  opacity: 0.8;
}
details[data-src] pre {
  font-size: 0.75em;
  line-height: 1.2em;
  max-height: 300px;
  min-height: 0;
  white-space: pre-wrap; padding: 0.5em;
  text-align: left;
  margin: 0;
}

details[data-src][open] {
  min-height: 0;
}