:root {
    --dc-color-primary: #6EC1E4;
    --dc-color-primary-rgb: 110 193 228;
    --dc-color-secondary: #54595F;
    --dc-color-secondary-rgb: 84 89 95;
    --dc-color-text: #7A7A7A;
    --dc-color-text-rgb: 122 122 122;
    --dc-color-accent: #61CE70;
    --dc-color-accent-rgb: 97 206 112;
    --dc-color-dark-grey: #353B39;
    --dc-color-dark-grey-rgb: 53 59 57;
    --dc-color-light-grey: #EDEDED;
    --dc-color-light-grey-rgb: 237 237 237;
    --dc-color-white: #FBFBFB;
    --dc-color-white-rgb: 251 251 251;
    --dc-color-peach: #EAC086;
    --dc-color-peach-rgb: 234 192 134;
    --dc-color-danger: #C4372D;
    --dc-color-danger-rgb: 196 55 45;
    --dc-font-primary: 'Roboto', sans-serif;
    --dc-font-secondary: 'Roboto', sans-serif;
    --dc-font-text: 'Roboto', sans-serif;
    --dc-font-accent: 'Roboto', sans-serif;
    --dc-font-fallback: sans-serif;
    --dc-font-weight-primary: 600;
    --dc-font-weight-secondary: 400;
    --dc-font-weight-text: 400;
    --dc-font-weight-accent: 500;
    --dc-font-letter-spacing: -3px;
    --dc-font-display: var(--dc-font-primary);
    --dc-font-body: var(--dc-font-text);
    --dc-font-ui: var(--dc-font-secondary);
    --dc-font-button: var(--dc-font-accent);
    --dc-font-weight-display: var(--dc-font-weight-primary);
    --dc-font-weight-body: var(--dc-font-weight-text);
    --dc-font-weight-ui: var(--dc-font-weight-secondary);
    --dc-font-weight-button: var(--dc-font-weight-accent);
    --dc-color-page-background: var(--dc-color-white);
    --dc-color-surface: var(--dc-color-white);
    --dc-color-surface-muted: var(--dc-color-light-grey);
    --dc-color-surface-strong: var(--dc-color-dark-grey);
    --dc-color-border: var(--dc-color-light-grey);
    --dc-color-heading: var(--dc-color-dark-grey);
    --dc-color-body: var(--dc-color-text);
    --dc-color-body-strong: var(--dc-color-secondary);
    --dc-color-link: var(--dc-color-primary);
    --dc-color-link-hover: var(--dc-color-peach);
    --dc-color-focus-ring: rgb(var(--dc-color-primary-rgb) / 0.32);
    --dc-color-shadow-soft: rgb(var(--dc-color-dark-grey-rgb) / 0.08);
    --dc-color-shadow-strong: rgb(var(--dc-color-dark-grey-rgb) / 0.18);
    --bs-body-bg: var(--dc-color-page-background);
    --bs-body-color: var(--dc-color-body);
    --bs-border-color: var(--dc-color-border);
    --bs-secondary-color: var(--dc-color-body-strong);
}

html,
body {
    font-family: var(--dc-font-body);
    font-weight: var(--dc-font-weight-body);
    color: var(--dc-color-body);
    background-color: var(--dc-color-page-background);
    overflow-x: clip;
}

body {
    margin: 0;
}

h1,
h2,
h3,
h4,
h5,
h6 {
    color: var(--dc-color-heading);
    font-family: var(--dc-font-display);
    font-weight: var(--dc-font-weight-display);
}

h1,
h2 {
    letter-spacing: var(--dc-font-letter-spacing);
}

.navbar-brand,
.nav-link {
    color: var(--dc-color-body-strong);
    font-family: var(--dc-font-ui);
    font-weight: var(--dc-font-weight-ui);
}

.btn,
button {
    font-family: var(--dc-font-button);
    font-weight: var(--dc-font-weight-button);
}

input,
select,
textarea,
label,
p,
li {
    font-family: var(--dc-font-body);
    font-weight: var(--dc-font-weight-body);
}

a,
.btn-link {
    color: var(--dc-color-link);
}

a:hover,
.btn-link:hover {
    color: var(--dc-color-link-hover);
}

.btn-primary {
    color: var(--dc-color-dark-grey);
    background-color: var(--dc-color-primary);
    border-color: var(--dc-color-primary);
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    color: var(--dc-color-dark-grey);
    background-color: var(--dc-color-peach);
    border-color: var(--dc-color-peach);
}

.btn:focus,
.btn:active:focus,
.btn-link.nav-link:focus,
.form-control:focus,
.form-check-input:focus {
    box-shadow: 0 0 0 0.1rem rgb(var(--dc-color-white-rgb) / 1), 0 0 0 0.25rem var(--dc-color-focus-ring);
}

.content {
    padding-top: 1.1rem;
}

#blazor-error-ui {
    background: rgb(var(--dc-color-peach-rgb) / 0.28);
    color: var(--dc-color-dark-grey);
    bottom: 0;
    box-shadow: 0 -1px 2px var(--dc-color-shadow-strong);
    display: none;
    left: 0;
    padding: 0.6rem 1.25rem 0.7rem 1.25rem;
    position: fixed;
    width: 100%;
    z-index: 1000;
}

#blazor-error-ui .dismiss {
    cursor: pointer;
    position: absolute;
    right: 0.75rem;
    top: 0.5rem;
}

h1:focus {
    outline: none;
}

.valid.modified:not([type=checkbox]) {
    outline: 1px solid var(--dc-color-accent);
}

.invalid {
    outline: 1px solid var(--dc-color-danger);
}

.validation-message {
    color: var(--dc-color-danger);
}

.blazor-error-boundary {
    background: linear-gradient(
        135deg,
        rgb(var(--dc-color-danger-rgb) / 0.96),
        rgb(var(--dc-color-dark-grey-rgb) / 0.96));
    padding: 1rem 1rem 1rem 3.7rem;
    color: var(--dc-color-white);
}

.blazor-error-boundary::after {
    content: "An error has occurred.";
}

.darker-border-checkbox.form-check-input {
    border-color: var(--dc-color-secondary);
}

.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
    text-align: start;
}
