/* Appearance themes share one semantic palette. Anonymous Partner pages retain
   their program branding; only their accessibility panel adopts these colors. */
:root {
    --ssm-action-bg: var(--ssm-brand-500);
    --ssm-action-hover: var(--ssm-brand-600);
    --ssm-action-fg: #FFFFFF;
    --ssm-focus: #3D5A2A;
    --ssm-surface-raised: var(--ssm-surface);
    --ssm-checkmark-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23FFFFFF' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3E%3C/svg%3E");
    --ssm-checkmark-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath fill='none' stroke='%23142014' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3E%3C/svg%3E");
    --ssm-checkmark-image: var(--ssm-checkmark-light);
}

body.precision-authenticated,
#ssm-accessibility-panel {
    color-scheme: light;
}

html[data-ssm-theme="dark"] :is(body.precision-authenticated, #ssm-accessibility-panel) {
    color-scheme: dark;
    --ssm-canvas: #141914;
    --ssm-canvas-deep: #101510;
    --ssm-surface: #1E261F;
    --ssm-surface-raised: #283329;
    --ssm-border: #3A473C;
    --ssm-border-strong: #6F8071;
    --ssm-tint-50: #283329;
    --ssm-tint-100: #334431;
    --ssm-tint-200: #4B6141;
    --ssm-brand-50: #283329;
    --ssm-brand-100: #334431;
    --ssm-brand-200: #6F8E5B;
    --ssm-brand-300: #99BA7F;
    --ssm-brand-400: #A9C890;
    --ssm-brand-500: #A9C890;
    --ssm-brand-600: #BDD8A8;
    --ssm-brand-700: #D2E7C1;
    --ssm-forest-950: #F1F5EC;
    --ssm-forest-900: #E2EADA;
    --ssm-forest-800: #C5D9B8;
    --ssm-forest-700: #A9C890;
    --ssm-moss-600: #B5C894;
    --ssm-moss-500: #A9C890;
    --ssm-sage-200: #4B6141;
    --ssm-sage-100: #283329;
    --ssm-aspen-500: #E0BD75;
    --ssm-aspen-100: #382F1C;
    --ssm-ink-900: #F1F5EC;
    --ssm-ink-800: #E2EADA;
    --ssm-ink-700: #CBD5C4;
    --ssm-ink-500: #AAB7A5;
    --ssm-ink-400: #91A08A;
    --ssm-ink-300: #6F8071;
    --ssm-ink-200: #3A473C;
    --ssm-ink-100: #283329;
    --ssm-text: #F1F5EC;
    --ssm-text-muted: #CBD5C4;
    --ssm-text-soft: #AAB7A5;
    --ssm-success: #A3D4B0;
    --ssm-success-bg: #233D2C;
    --ssm-success-border: #507E60;
    --ssm-danger: #FFC2B9;
    --ssm-danger-ink: #FFC2B9;
    --ssm-danger-bg: #472924;
    --ssm-danger-border: #936054;
    --ssm-warning: #EFCD88;
    --ssm-warning-bg: #42371E;
    --ssm-warning-border: #8D794A;
    --ssm-action-bg: #A9C890;
    --ssm-action-hover: #BDD8A8;
    --ssm-action-fg: #142014;
    --ssm-checkmark-image: var(--ssm-checkmark-dark);
    --ssm-focus: #D8EBAA;
    --ssm-shadow-card: 0 1px 3px rgb(0 0 0 / 20%), 0 8px 24px rgb(0 0 0 / 10%);
    --ssm-shadow-soft: 0 6px 20px rgb(0 0 0 / 20%);
    --ssm-shadow-pop: 0 12px 36px rgb(0 0 0 / 32%);
    --ssm-sidebar-bg: #192119;
    --ssm-sidebar-muted: #CBD5C4;
    --ssm-sidebar-active: #334431;
}

html[data-ssm-theme="contrast"] :is(body.precision-authenticated, #ssm-accessibility-panel) {
    color-scheme: light;
    --ssm-canvas: #FFFFFF;
    --ssm-canvas-deep: #F0F0F0;
    --ssm-surface: #FFFFFF;
    --ssm-surface-raised: #FFFFFF;
    --ssm-border: #585858;
    --ssm-border-strong: #1A1A1A;
    --ssm-tint-50: #F0F0F0;
    --ssm-tint-100: #E4E4E4;
    --ssm-tint-200: #C9C9C9;
    --ssm-brand-50: #F0F0F0;
    --ssm-brand-100: #E4E4E4;
    --ssm-brand-200: #B5C9A1;
    --ssm-brand-300: #3D5A2A;
    --ssm-brand-400: #1F431A;
    --ssm-brand-500: #173B12;
    --ssm-brand-600: #102F0D;
    --ssm-brand-700: #0B2209;
    --ssm-forest-950: #000000;
    --ssm-forest-900: #111111;
    --ssm-forest-800: #173B12;
    --ssm-forest-700: #173B12;
    --ssm-moss-600: #173B12;
    --ssm-moss-500: #173B12;
    --ssm-sage-200: #C9C9C9;
    --ssm-sage-100: #F0F0F0;
    --ssm-aspen-500: #684100;
    --ssm-aspen-100: #FFF1C9;
    --ssm-ink-900: #000000;
    --ssm-ink-800: #111111;
    --ssm-ink-700: #222222;
    --ssm-ink-500: #333333;
    --ssm-ink-400: #585858;
    --ssm-ink-300: #767676;
    --ssm-ink-200: #585858;
    --ssm-ink-100: #E4E4E4;
    --ssm-text: #000000;
    --ssm-text-muted: #222222;
    --ssm-text-soft: #333333;
    --ssm-success: #123F25;
    --ssm-success-bg: #E4F3E9;
    --ssm-success-border: #123F25;
    --ssm-danger: #7B1F13;
    --ssm-danger-ink: #7B1F13;
    --ssm-danger-bg: #FFF0EC;
    --ssm-danger-border: #7B1F13;
    --ssm-warning: #553B00;
    --ssm-warning-bg: #FFF1C9;
    --ssm-warning-border: #553B00;
    --ssm-action-bg: #173B12;
    --ssm-action-hover: #0B2209;
    --ssm-action-fg: #FFFFFF;
    --ssm-focus: #000000;
    --ssm-shadow-card: none;
    --ssm-shadow-soft: none;
    --ssm-shadow-pop: none;
    --ssm-sidebar-bg: #000000;
    --ssm-sidebar-muted: #FFFFFF;
    --ssm-sidebar-active: #173B12;
}

/* Custom properties defined on :root are resolved there; redeclare dependent
   tokens in the themed scope so tables and vendor controls inherit its palette. */
html[data-ssm-theme] :is(body.precision-authenticated, #ssm-accessibility-panel) {
    --ssm-step-bg: var(--ssm-surface);
    --ssm-tbl-header: var(--ssm-tint-50);
    --ssm-tbl-header-text: var(--ssm-ink-700);
    --ssm-tbl-row-border: var(--ssm-border);
    --ssm-tbl-ink: var(--ssm-ink-900);
    --ssm-tbl-ink-soft: var(--ssm-ink-700);
    --ssm-tbl-money: var(--ssm-ink-900);
    --ssm-tbl-due: var(--ssm-warning);
    --ssm-tbl-audience: var(--ssm-brand-600);
    --ssm-tbl-surface: var(--ssm-surface);
    --ssm-auth-table-surface: var(--ssm-surface);
    --ssm-auth-table-surface-alt: var(--ssm-tint-50);
    --ssm-auth-table-hover: var(--ssm-tint-50);
    --ssm-auth-table-border: var(--ssm-border);
    --ssm-auth-table-border-strong: var(--ssm-border-strong);
    --ssm-auth-control-surface: var(--ssm-surface);
    --ssm-auth-control-surface-hover: var(--ssm-surface-raised);
    --ssm-auth-status-success-cell: var(--ssm-success-bg);
    --ssm-auth-status-success-cell-hover: var(--ssm-success-bg);
    --ssm-auth-status-success-border: var(--ssm-success-border);
    --ssm-auth-status-danger-cell: var(--ssm-danger-bg);
    --ssm-auth-status-danger-cell-hover: var(--ssm-danger-bg);
    --ssm-auth-status-danger-border: var(--ssm-danger-border);
    --ssm-auth-status-warning-cell: var(--ssm-warning-bg);
    --ssm-auth-status-warning-cell-hover: var(--ssm-warning-bg);
    --ssm-auth-status-warning-border: var(--ssm-warning-border);
    --ssm-auth-status-primary-cell: var(--ssm-action-bg);
    --ssm-auth-status-primary-cell-hover: var(--ssm-action-hover);
    --ssm-auth-status-primary-border: var(--ssm-action-bg);
    --ssm-auth-status-secondary-cell: var(--ssm-action-bg);
    --ssm-auth-status-secondary-cell-hover: var(--ssm-action-hover);
    --ssm-auth-status-secondary-border: var(--ssm-action-bg);
    --ssm-auth-status-text: var(--ssm-ink-900);
    --bs-body-bg: var(--ssm-canvas);
    --bs-body-color: var(--ssm-ink-900);
    --bs-border-color: var(--ssm-border);
    --bs-secondary-color: var(--ssm-ink-500);
    --bs-tertiary-bg: var(--ssm-tint-50);
    --bs-emphasis-color: var(--ssm-ink-900);
    --bs-form-invalid-color: var(--ssm-danger);
    --bs-form-invalid-border-color: var(--ssm-danger);
    --bs-form-valid-color: var(--ssm-success);
    --bs-form-valid-border-color: var(--ssm-success);
    --color-surface: var(--ssm-surface);
    --color-ink-900: var(--ssm-ink-900);
    --color-ink-700: var(--ssm-ink-700);
    --color-ink-200: var(--ssm-border);
    --color-brand-500: var(--ssm-brand-500);
    --color-tint-50: var(--ssm-tint-50);
}

.ssm-theme-control {
    flex-shrink: 0;
    min-width: 0;
    font-family: var(--ssm-font-sans);
}

.ssm-theme-control__label {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0;
    color: var(--ssm-ink-700);
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

.ssm-theme-control__select {
    min-width: 108px;
    min-height: 40px;
    max-width: 100%;
    padding: 8px 10px;
    border: 1px solid var(--ssm-border-strong);
    border-radius: var(--ssm-radius-ctrl);
    background: var(--ssm-surface);
    color: var(--ssm-ink-900);
    font: inherit;
    font-size: 13px;
    cursor: pointer;
}

.ssm-theme-control__select:focus-visible {
    outline: 3px solid var(--ssm-focus);
    outline-offset: 3px;
}

.precision-authenticated .precision-header__avatar {
    background: var(--ssm-action-bg);
    color: var(--ssm-action-fg);
}

#ssm-accessibility-panel .ssm-theme-control {
    padding-bottom: 16px;
    border-bottom: 1px solid var(--ssm-border);
}

/* These components previously contained literal white fills. Theme overrides
   use explicit component selectors rather than tinting media or Partner pages. */
html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(
    .card, .panel, fieldset, .modal-content, .dropdown-menu, .popover,
    .ssm-overview-context, .ssm-overview-metric, .ssm-overview-actions,
    .ssm-analytics-card, .ssm-step, .ssm-detail-stat, .ssm-awards-rail,
    .ssm-awards-summary, .ssm-awards-filter, .ssm-table-frame, .ssm-report-hero,
    .ssm-report-table-card, .ssm-year-links a, .ssm-overview-action,
    .ssm-workspace-action, .ssm-edit-year-action, .ssm-section-panel,
    .ssm-report-action-group .btn, .ssm-report-process-actions .btn,
    .ssm-panel .panel-body, .ssm-program-card .card-header, .ssm-col-legend span,
    .note-editor.note-frame, .note-toolbar, .note-editable, .note-statusbar,
    .select2-dropdown, .select2-selection, .ssm-mode-option.is-active
) {
    border-color: var(--ssm-border);
    background: var(--ssm-surface);
    color: var(--ssm-ink-900);
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(
    .precision-brand-header, .precision-footer, .ssm-workflow-page,
    .ssm-overview-strip, .ssm-detail-hero, .ssm-workspace-hero
) {
    border-color: var(--ssm-border);
    background: var(--ssm-canvas);
    color: var(--ssm-ink-900);
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(
    .ssm-step-head, .ssm-toggle, .ssm-mode-switcher, .ssm-nav-ic,
    .ssm-overview-icon, .ssm-section-divider--compact .ssm-tag,
    .ssm-step-num, .ssm-step-pill, .ssm-nav-count, .modal-footer
) {
    background: var(--ssm-tint-50);
    border-color: var(--ssm-border);
    color: var(--ssm-ink-700);
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(
    .ssm-step-head h3, .ssm-workspace-hero h1, .ssm-workspace-subtitle,
    .ssm-overview-title, .ssm-overview-value, .ssm-analytics-card h3,
    .select2-selection__rendered, .dropdown-item, .popover-header, .popover-body
) {
    color: var(--ssm-ink-900);
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(
    .ssm-overview-note, .ssm-overview-copy, .ssm-workspace-eyebrow,
    .ssm-overview-denominator, .breadcrumb-item.active, .form-text, .text-muted
) {
    color: var(--ssm-ink-500) !important;
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(
    .form-control, .form-select, .input-group-text,
    .dataTables_filter input, .dt-search input, .ssm-col-due input[type="date"],
    .ssm-col-pdue input[type="date"]
) {
    border-color: var(--ssm-border-strong);
    background-color: var(--ssm-surface);
    color: var(--ssm-ink-900);
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(input, textarea)::placeholder {
    color: var(--ssm-ink-500);
    opacity: 1;
}

/* Control state rules are separate from date-field selectors so a checked or
   mixed state always wins the cascade. SVG strokes match the action foreground. */
html[data-ssm-theme] .precision-authenticated .form-check-input {
    border-color: var(--ssm-ink-500);
    background-color: var(--ssm-surface);
    color: var(--ssm-ink-900);
}

html[data-ssm-theme] .precision-authenticated .form-check-input:checked {
    background-color: var(--ssm-action-bg);
    border-color: var(--ssm-action-bg);
}

html[data-ssm-theme] .precision-authenticated .form-check-input[type="checkbox"]:checked {
    background-image: var(--ssm-checkmark-image);
}

html[data-ssm-theme] .precision-authenticated .form-check-input[type="radio"]:checked {
    background-image: radial-gradient(circle at center, var(--ssm-action-fg) 0 28%, transparent 31%);
}

html[data-ssm-theme] .precision-authenticated .form-check-input[type="checkbox"]:indeterminate {
    background-color: var(--ssm-action-bg);
    border-color: var(--ssm-action-bg);
    background-image: linear-gradient(var(--ssm-action-fg), var(--ssm-action-fg));
    background-position: center;
    background-size: 60% 20%;
    background-repeat: no-repeat;
}

html[data-ssm-theme] .precision-authenticated .form-switch .form-check-input {
    --ssm-switch-thumb-radius: 0.3em;
    background-image: radial-gradient(circle at calc(var(--ssm-switch-thumb-radius) + 3px) 50%, var(--ssm-ink-700) 0 var(--ssm-switch-thumb-radius), transparent calc(var(--ssm-switch-thumb-radius) + 1px));
    background-position: center;
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

html[data-ssm-theme] .precision-authenticated .form-switch .form-check-input:checked {
    background-image: radial-gradient(circle at calc(100% - var(--ssm-switch-thumb-radius) - 3px) 50%, var(--ssm-action-fg) 0 var(--ssm-switch-thumb-radius), transparent calc(var(--ssm-switch-thumb-radius) + 1px));
}

html[data-ssm-theme] .precision-authenticated .ssm-workflow-page .ssm-toggle .form-check-input {
    --ssm-switch-thumb-radius: 11px;
    border: 1px solid var(--ssm-ink-500);
    background-color: var(--ssm-surface);
}

html[data-ssm-theme] .precision-authenticated .ssm-workflow-page .ssm-toggle .form-check-input[type="checkbox"]:is(:checked, :indeterminate) {
    background-color: var(--ssm-action-bg);
    border-color: var(--ssm-action-bg);
}

html[data-ssm-theme="dark"] .precision-authenticated :is(.btn-close, .form-check-input:checked) {
    filter: none;
}
html[data-ssm-theme="dark"] :is(.precision-authenticated, #ssm-accessibility-panel) .btn-close {
    filter: invert(1);
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(
    .btn-primary, .btn-info, .btn-dark, .btn-secondary,
    .btn.bg-primary, .btn.bg-info, .btn.bg-dark, .btn.bg-black,
    .ssm-workspace-edit-action .ssm-edit-year-action,
    .ssm-panel .panel-heading, .ssm-workflow-page .panel.panel-inverse .panel-heading,
    .dtsb-logic, .page-item.active .page-link
) {
    border-color: var(--ssm-action-bg) !important;
    background: var(--ssm-action-bg) !important;
    color: var(--ssm-action-fg) !important;
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(
    .btn-primary, .btn-info, .btn-dark, .btn-secondary,
    .ssm-workspace-edit-action .ssm-edit-year-action
):hover {
    background: var(--ssm-action-hover) !important;
    border-color: var(--ssm-action-hover) !important;
    color: var(--ssm-action-fg) !important;
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) #ssm-accessibility-panel .ssm-accessibility-panel__download {
    background: var(--ssm-action-bg);
    border-color: var(--ssm-action-bg);
    color: var(--ssm-action-fg);
}
html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) #ssm-accessibility-panel .ssm-accessibility-panel__download:hover {
    background: var(--ssm-action-hover);
    border-color: var(--ssm-action-hover);
}
html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated .ssm-skip-link {
    background: var(--ssm-action-bg);
    color: var(--ssm-action-fg);
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(
    .table td.bg-primary, .table th.bg-primary, .table td.bg-info, .table th.bg-info,
    .table td.bg-secondary, .table th.bg-secondary, .table td.bg-dark, .table th.bg-dark,
    .table td.bg-black, .table th.bg-black, .table tbody tr.bg-primary > *,
    .table tbody tr.bg-info > *, .table tbody tr.bg-secondary > *,
    .table tbody tr.bg-dark > *, .table tbody tr.bg-black > *,
    .table .ssm-table-group-cell, .table tbody tr.ssm-table-group-row > *
) {
    background: var(--ssm-action-bg) !important;
    border-color: var(--ssm-action-bg) !important;
    color: var(--ssm-action-fg) !important;
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated .table tbody tr.ssm-table-group-row--l2 > * {
    background: var(--ssm-tint-100) !important;
    border-color: var(--ssm-border-strong) !important;
    color: var(--ssm-ink-900) !important;
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(.bg-white, .bg-light) {
    background: var(--ssm-surface) !important;
    color: var(--ssm-ink-900);
}
html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(.bg-dark, .bg-black):not(.btn):not(td):not(th) {
    background: var(--ssm-surface-raised) !important;
    color: var(--ssm-ink-900) !important;
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(.ssm-status--done, .alert-success) {
    background: var(--ssm-success-bg);
    border-color: var(--ssm-success-border);
    color: var(--ssm-success);
}
html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(.ssm-status--todo, .alert-danger, .precision-env-badge) {
    background: var(--ssm-danger-bg);
    border-color: var(--ssm-danger-border);
    color: var(--ssm-danger);
}
html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(.ssm-overview-note--ready) {
    color: var(--ssm-success) !important;
}
html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(.ssm-overview-note--pending, .ssm-col-due) {
    color: var(--ssm-warning) !important;
}
html[data-ssm-theme="dark"] .precision-authenticated .ssm-col-pdue { color: #AACDEB; }

/* Legacy awards and accordion fills need the same foreground/background pair. */
.precision-authenticated .ssm-awards-rail .bg-warning {
    background: var(--ssm-warning-bg) !important;
    border-color: var(--ssm-warning-border);
    color: var(--ssm-warning);
}
.precision-authenticated .ssm-program-card .card-body {
    background: var(--ssm-surface);
    color: var(--ssm-ink-900);
}
.precision-authenticated .accordion {
    --bs-accordion-bg: var(--ssm-surface);
    --bs-accordion-color: var(--ssm-ink-900);
    --bs-accordion-border-color: var(--ssm-border);
    --bs-accordion-btn-color: var(--ssm-ink-900);
    --bs-accordion-btn-bg: var(--ssm-surface);
    --bs-accordion-active-color: var(--ssm-ink-900);
    --bs-accordion-active-bg: var(--ssm-tint-50);
}
.precision-authenticated .accordion-button::after {
    width: 0.625rem;
    height: 0.625rem;
    margin-right: 0.25rem;
    background-image: none !important;
    border-right: 2px solid currentColor;
    border-bottom: 2px solid currentColor;
    transform: rotate(45deg);
}
.precision-authenticated .accordion-button:not(.collapsed)::after {
    transform: rotate(225deg);
}
.precision-authenticated .ssm-workflow-page .ssm-steps-grid--compact .ssm-req .ssm-req-icon {
    background: transparent;
    color: inherit;
}
.precision-authenticated .ssm-workflow-page .ssm-steps-grid--compact .ssm-req .ssm-req-icon :is(i, svg) {
    color: inherit;
}

/* Generated rubric rules and validation feedback inherit the workspace palette. */
.precision-authenticated .query-builder :is(.rule-container, .rule-placeholder, .rules-group-container) {
    min-width: 0;
    border-color: var(--ssm-border-strong);
    background: var(--ssm-surface);
    color: var(--ssm-ink-900);
}
.precision-authenticated .query-builder .rules-group-container { background: var(--ssm-tint-50); }
html[data-ssm-theme] .precision-authenticated .query-builder .rules-group-header .group-conditions .btn {
    border-color: var(--ssm-ink-500) !important;
    background: var(--ssm-surface) !important;
    color: var(--ssm-ink-700) !important;
}
html[data-ssm-theme] .precision-authenticated .query-builder .rules-group-header .group-conditions .btn.active {
    border-color: var(--ssm-action-bg) !important;
    background: var(--ssm-action-bg) !important;
    color: var(--ssm-action-fg) !important;
}
.precision-authenticated .query-builder .group-conditions .btn.active::after {
    content: "\2713" / "";
    margin-left: 0.35em;
}
.precision-authenticated .query-builder .group-conditions .btn:focus-within {
    outline: 3px solid var(--ssm-focus);
    outline-offset: 3px;
}
.precision-authenticated .query-builder :is(.rule-filter-container, .rule-operator-container, .rule-value-container) { max-width: 100%; }
.precision-authenticated .query-builder .rule-value-container { border-color: var(--ssm-border-strong); }
.precision-authenticated .query-builder :is(input, select) {
    max-width: 100%;
    border-color: var(--ssm-ink-500);
    background-color: var(--ssm-surface);
    color: var(--ssm-ink-900);
    accent-color: var(--ssm-action-bg);
}
.precision-authenticated .query-builder .rules-list > *::before,
.precision-authenticated .query-builder .rules-list > *::after { border-color: var(--ssm-border-strong); }
.precision-authenticated .query-builder .has-error {
    border-color: var(--ssm-danger);
    background: var(--ssm-danger-bg);
}
.precision-authenticated .query-builder .error-container { color: var(--ssm-danger); }
.precision-authenticated .query-builder p.filter-description {
    border-color: var(--ssm-border-strong);
    background: var(--ssm-tint-50);
    color: var(--ssm-ink-700);
}
.precision-authenticated .query-builder .error-container + .tooltip .tooltip-inner {
    border: 1px solid var(--ssm-danger);
    background: var(--ssm-danger-bg);
    color: var(--ssm-danger) !important;
}

.precision-authenticated :is(.text-danger, .invalid-feedback, .field-validation-error, .validation-summary-errors) { color: var(--ssm-danger) !important; }
.precision-authenticated :is(.text-success, .valid-feedback) { color: var(--ssm-success) !important; }
.precision-authenticated .invalid-tooltip {
    border: 1px solid var(--ssm-danger);
    background: var(--ssm-danger-bg);
    color: var(--ssm-danger);
}
.precision-authenticated .valid-tooltip {
    border: 1px solid var(--ssm-success);
    background: var(--ssm-success-bg);
    color: var(--ssm-success);
}
.precision-authenticated .ssm-lookup-error .field-validation-error {
    border-color: var(--ssm-danger);
    background: var(--ssm-danger-bg);
}
html[data-ssm-theme] body.precision-authenticated :is(input.form-control, textarea.form-control, select.form-control, select.form-select):is(.is-invalid, .input-validation-error),
html[data-ssm-theme] body.precision-authenticated .was-validated :is(input.form-control, textarea.form-control, select.form-control, select.form-select):invalid {
    border-color: var(--ssm-danger);
}
html[data-ssm-theme] body.precision-authenticated :is(input.form-control, textarea.form-control, select.form-control, select.form-select).is-valid,
html[data-ssm-theme] body.precision-authenticated .was-validated :is(input.form-control, textarea.form-control, select.form-control, select.form-select):valid {
    border-color: var(--ssm-success);
}

.precision-authenticated .ssm-client-colors {
    background: var(--ssm-tint-50) !important;
    border-color: var(--ssm-border) !important;
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated .award-note-row td {
    background: var(--ssm-tint-50);
}
/* The client grid has ID-specific fills in home.css. Match that specificity
   while preserving logos and client artwork on their original light plate. */
html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated #client-grid :is(.card, .program-list, .year-list a) {
    background: var(--ssm-surface);
    border-color: var(--ssm-border);
}
html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated #client-grid :is(.year-list a, .program-title):hover,
html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated #client-grid :is(.year-list a, .program-title):focus-visible {
    background: var(--ssm-tint-50);
    color: var(--ssm-ink-900);
}
html[data-ssm-theme="dark"] .precision-authenticated :is(.precision-brand__mark, #client-grid .card-img) {
    background: #FFFFFF;
}
html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) .precision-authenticated :is(.ssm-nav-row, .dropdown-item):hover {
    background: var(--ssm-tint-50);
    color: var(--ssm-ink-900);
}

html:is([data-ssm-theme="dark"], [data-ssm-theme="contrast"]) :is(.precision-authenticated, #ssm-accessibility-panel) :focus-visible {
    outline: 3px solid var(--ssm-focus);
    outline-offset: 3px;
}

html[data-ssm-theme="contrast"] .precision-authenticated :is(.card, .panel, .ssm-step, .ssm-overview-metric, .ssm-analytics-card, .ssm-report-table-card, .ssm-section-panel, .dataTables_wrapper, .dt-container) {
    border-width: 2px;
    box-shadow: none;
}
html[data-ssm-theme="contrast"] .precision-authenticated .precision-brand-header {
    backdrop-filter: none;
    border-bottom-width: 2px;
}
html[data-ssm-theme="contrast"] .precision-authenticated .precision-workspace a:not(.btn):not(.ssm-nav-row):not(.ssm-workspace-action) {
    text-decoration: underline;
    text-underline-offset: 3px;
}

@media (max-width: 767.98px) {
    .precision-header__right .ssm-theme-control__label {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }
    .precision-header__right .ssm-theme-control__select {
        min-width: 96px;
        padding-inline: 8px;
        font-size: 12px;
    }
}
@media (pointer: coarse) {
    .ssm-theme-control__select { min-height: 44px; }
}

/* The operating system keeps authority in forced-colors mode. */
@media (forced-colors: active) {
    .precision-authenticated .ssm-awards-rail .bg-warning {
        background: Canvas !important;
        color: CanvasText;
        border-color: CanvasText;
    }
    html[data-ssm-theme] .precision-authenticated .form-check-input {
        appearance: auto;
        background-image: none !important;
    }
    .ssm-theme-control__select {
        border: 1px solid ButtonText;
        background: Field;
        color: FieldText;
    }
    .ssm-theme-control__select:focus-visible { outline-color: Highlight; }
}

@media print {
    .ssm-theme-control { display: none; }
    html[data-ssm-theme] :is(body.precision-authenticated, #ssm-accessibility-panel) {
        color-scheme: light;
        --ssm-canvas: #FFFFFF;
        --ssm-canvas-deep: #FFFFFF;
        --ssm-surface: #FFFFFF;
        --ssm-surface-raised: #F0F4EC;
        --ssm-border: #C9D2BF;
        --ssm-border-strong: #646B5A;
        --ssm-tint-50: #F0F4EC;
        --ssm-tint-100: #DDE8D2;
        --ssm-tint-200: #C2D4B2;
        --ssm-brand-300: #5B7F42;
        --ssm-brand-400: #3D5A2A;
        --ssm-brand-500: #3D5A2A;
        --ssm-brand-600: #2E461F;
        --ssm-brand-700: #1F3014;
        --ssm-forest-950: #1F2418;
        --ssm-forest-900: #2F3F29;
        --ssm-forest-800: #314132;
        --ssm-forest-700: #3F5136;
        --ssm-moss-600: #3D5A2A;
        --ssm-moss-500: #3D5A2A;
        --ssm-sage-100: #F0F4EC;
        --ssm-sage-200: #C9D2BF;
        --ssm-ink-900: #1F2418;
        --ssm-ink-800: #2D3324;
        --ssm-ink-700: #4A5040;
        --ssm-ink-500: #646B5A;
        --ssm-ink-200: #C9D2BF;
        --ssm-text: #1F2418;
        --ssm-text-muted: #4A5040;
        --ssm-text-soft: #646B5A;
        --ssm-success: #2F6F4B;
        --ssm-success-bg: #E4F0E8;
        --ssm-success-border: #2F6F4B;
        --ssm-danger: #B13B2E;
        --ssm-danger-bg: #F9E9E5;
        --ssm-danger-border: #B13B2E;
        --ssm-warning: #725016;
        --ssm-warning-bg: #FBF1DC;
        --ssm-warning-border: #725016;
        --ssm-action-bg: #3D5A2A;
        --ssm-action-hover: #2E461F;
        --ssm-action-fg: #FFFFFF;
        --ssm-checkmark-image: var(--ssm-checkmark-light);
        --ssm-shadow-card: none;
        --ssm-shadow-soft: none;
    }
}
