/* aj2028: light, dark, or follow the device (html[data-theme]). */
:root {

    color-scheme: light;
    --primary: #7f3f98;
    --secondary: #2e235e;
    --accent: #f7b237;
    --primary-fg: #f2eef6;
    --body-fg: #2e235e;
    --body-bg: #ffffff;
    --body-quiet-color: #655775;
    --body-medium-color: #514268;
    --body-loud-color: #2e235e;
    --header-color: #f2eef6;
    --header-branding-color: #f7b237;
    --header-bg: #2e235e;
    --header-link-color: #f2eef6;
    --breadcrumbs-fg: #f2eef6;
    --breadcrumbs-link-fg: #ffffff;
    --breadcrumbs-bg: #7f3f98;
    --link-fg: #7f3f98;
    --link-hover-color: #2e235e;
    --link-selected-fg: #2e235e;
    --hairline-color: #e2d9eb;
    --border-color: #877299;
    --error-fg: #b51d30;
    --message-success-bg: #b7e3ee;
    --message-warning-bg: #fbe5bd;
    --message-error-bg: #fce0e4;
    --darkened-bg: #f2eef6;
    --selected-bg: #b7e3ee;
    --selected-row: #fbe5bd;
    --button-fg: #ffffff;
    --button-bg: #7f3f98;
    --button-hover-bg: #2e235e;
    --default-button-bg: #2e235e;
    --default-button-hover-bg: #7f3f98;
    --close-button-bg: #655775;
    --close-button-hover-bg: #2e235e;
    --delete-button-bg: #b51d30;
    --delete-button-hover-bg: #921728;
    --object-tools-fg: #ffffff;
    --object-tools-bg: #7f3f98;
    --object-tools-hover-bg: #2e235e;
    --theme-focus: #7f3f98;
    --theme-message-fg: #2e235e;
    --theme-error-accent: #ed2f41;

}
/* Dark values apply to "auto" on a dark device, and to an explicit dark choice.
 * Django's theme.js sets html[data-theme] to auto, light or dark. */
@media (prefers-color-scheme: dark) {
:root:not([data-theme="light"]) {

    color-scheme: dark;
    --primary: #7f3f98;
    --secondary: #2e235e;
    --accent: #f7b237;
    --primary-fg: #f2eef6;
    --body-fg: #f2eef6;
    --body-bg: #1c1538;
    --body-quiet-color: #c4b8d3;
    --body-medium-color: #ddd3e7;
    --body-loud-color: #ffffff;
    --header-color: #f2eef6;
    --header-branding-color: #f7b237;
    --header-bg: #2e235e;
    --header-link-color: #f2eef6;
    --breadcrumbs-fg: #f2eef6;
    --breadcrumbs-link-fg: #ffffff;
    --breadcrumbs-bg: #7f3f98;
    --link-fg: #3cc4d3;
    --link-hover-color: #b7e3ee;
    --link-selected-fg: #b7e3ee;
    --hairline-color: #45365d;
    --border-color: #92819f;
    --error-fg: #ff8794;
    --message-success-bg: #b7e3ee;
    --message-warning-bg: #f7b237;
    --message-error-bg: #fce0e4;
    --darkened-bg: #2e235e;
    --selected-bg: #45365d;
    --selected-row: #493652;
    --button-fg: #ffffff;
    --button-bg: #7f3f98;
    --button-hover-bg: #643078;
    --default-button-bg: #7f3f98;
    --default-button-hover-bg: #643078;
    --close-button-bg: #655775;
    --close-button-hover-bg: #514268;
    --delete-button-bg: #b51d30;
    --delete-button-hover-bg: #921728;
    --object-tools-fg: #ffffff;
    --object-tools-bg: #7f3f98;
    --object-tools-hover-bg: #643078;
    --theme-focus: #3cc4d3;
    --theme-message-fg: #2e235e;
    --theme-error-accent: #ed2f41;

}
}
html[data-theme="dark"] {

    color-scheme: dark;
    --primary: #7f3f98;
    --secondary: #2e235e;
    --accent: #f7b237;
    --primary-fg: #f2eef6;
    --body-fg: #f2eef6;
    --body-bg: #1c1538;
    --body-quiet-color: #c4b8d3;
    --body-medium-color: #ddd3e7;
    --body-loud-color: #ffffff;
    --header-color: #f2eef6;
    --header-branding-color: #f7b237;
    --header-bg: #2e235e;
    --header-link-color: #f2eef6;
    --breadcrumbs-fg: #f2eef6;
    --breadcrumbs-link-fg: #ffffff;
    --breadcrumbs-bg: #7f3f98;
    --link-fg: #3cc4d3;
    --link-hover-color: #b7e3ee;
    --link-selected-fg: #b7e3ee;
    --hairline-color: #45365d;
    --border-color: #92819f;
    --error-fg: #ff8794;
    --message-success-bg: #b7e3ee;
    --message-warning-bg: #f7b237;
    --message-error-bg: #fce0e4;
    --darkened-bg: #2e235e;
    --selected-bg: #45365d;
    --selected-row: #493652;
    --button-fg: #ffffff;
    --button-bg: #7f3f98;
    --button-hover-bg: #643078;
    --default-button-bg: #7f3f98;
    --default-button-hover-bg: #643078;
    --close-button-bg: #655775;
    --close-button-hover-bg: #514268;
    --delete-button-bg: #b51d30;
    --delete-button-hover-bg: #921728;
    --object-tools-fg: #ffffff;
    --object-tools-bg: #7f3f98;
    --object-tools-hover-bg: #643078;
    --theme-focus: #3cc4d3;
    --theme-message-fg: #2e235e;
    --theme-error-accent: #ed2f41;

}
#header {
    border-bottom: 3px solid #ec008c;
}

ul.messagelist li {
    color: var(--theme-message-fg);
}

ul.messagelist li a {
    color: #2e235e;
    text-decoration: underline;
}

ul.messagelist li.success {
    border-inline-start: 4px solid #3cc4d3;
}

ul.messagelist li.warning {
    border-inline-start: 4px solid #f7b237;
}

ul.messagelist li.error {
    border-inline-start: 4px solid var(--theme-error-accent);
}

.errornote {
    border-color: var(--theme-error-accent);
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
    outline: 2px solid var(--theme-focus);
    outline-offset: 3px;
}

#header a:focus-visible,
#header button:focus-visible {
    outline-color: #f7b237;
}

/* Explicit states prevent generic link colours leaking into toolbar buttons.
 * White on purple is 6.85:1, including Simple History's History link. */
.object-tools a:link,
.object-tools a:visited,
.object-tools a:hover,
.object-tools a:focus,
.object-tools a:active {
    color: var(--object-tools-fg);
    font-size: 0.8125rem;
    font-weight: 600;
    text-transform: none;
    letter-spacing: normal;
}

/* Native paginator uses white text on the link hover colour, which is pale
 * cyan in dark mode. Use the button pair instead. */
.paginator a:hover,
.paginator a:focus {
    color: var(--button-fg);
    background: var(--button-hover-bg);
}

/* Native calendar tables have a hard-coded white surface. */
.calendar table {
    background: var(--body-bg);
}

.calendar caption,
.calendarbox h2 {
    color: #2e235e;
}

#nav-sidebar #nav-filter.no-results {
    color: var(--theme-message-fg);
}

blockquote {
    color: var(--body-quiet-color);
    border-color: var(--border-color);
}

code strong {
    color: var(--body-loud-color);
}

a.deletelink:link,
a.deletelink:visited,
a.deletelink:hover,
a.deletelink:focus {
    color: var(--error-fg);
}

/* Preserve the white label on filled delete controls. */
.submit-row a.deletelink:link,
.submit-row a.deletelink:visited,
.submit-row a.deletelink:hover,
.submit-row a.deletelink:focus {
    color: var(--button-fg);
}

/* Rings need contrast against the surrounding surface, not just the text. */
.breadcrumbs a:focus-visible,
.module h2 a:focus-visible,
.module caption a:focus-visible {
    outline-color: #f7b237;
}

#content p a:not(.button),
.help a,
.readonly a {
    text-decoration: underline;
    text-underline-offset: 0.15em;
}
