:root {
  --brand-blue-900: #003866;
  --brand-blue-800: #003e7e;
  --brand-blue-600: #085e9b;
  --brand-blue-500: #0073c8;
  --brand-white: #fff;
  --brand-gray-50: #f4f6f8;
  --brand-gray-900: #212529;
  --brand-gray-800: #333;
  --brand-gray-600: #6c757d;
  --brand-gray-300: #ced4da;
  --brand-danger: #dc3545;
  --brand-danger-hover: #c82333;
  --brand-radius: 0.375rem;
  --brand-shadow-rest: 0 4px 6px rgb(0 0 0 / 10%);
  --brand-shadow-active: 0 2px 4px rgb(0 0 0 / 20%);
  --brand-focus: 0 0 0 3px rgb(0 115 200 / 30%);
  --bs-primary: var(--brand-blue-900);
  --bs-primary-rgb: 0, 56, 102;
  --bs-body-color: var(--brand-gray-900);
  --bs-body-bg: var(--brand-gray-50);
  --bs-link-color: var(--brand-blue-900);
  --bs-link-hover-color: var(--brand-blue-500);
  --bs-border-color: var(--brand-gray-300);
  --bs-border-radius: var(--brand-radius);
  --bs-secondary-color: var(--brand-gray-600);
  --bs-form-invalid-color: var(--brand-danger);
  --bs-form-invalid-border-color: var(--brand-danger);
}

[data-bs-theme="dark"] {
  color-scheme: dark;
  --brand-blue-900: #eef1f4;
  --brand-blue-800: #66b3e6;
  --brand-blue-600: #3399dc;
  --brand-blue-500: #66b3e6;
  --brand-white: #17222f;
  --brand-gray-50: #0b1622;
  --brand-gray-900: #eef1f4;
  --brand-gray-800: #d3dae0;
  --brand-gray-600: #a9b4bf;
  --brand-gray-300: #5c7285;
  --brand-danger: #ff6b6b;
  --brand-danger-hover: #ff8181;
  --brand-focus: 0 0 0 3px rgb(102 179 230 / 40%);
  --bs-primary: #0073c8;
  --bs-primary-rgb: 0, 115, 200;
  --bs-body-color: var(--brand-gray-900);
  --bs-body-color-rgb: 238, 241, 244;
  --bs-body-bg: var(--brand-gray-50);
  --bs-body-bg-rgb: 11, 22, 34;
  --bs-link-color: var(--brand-blue-800);
  --bs-link-hover-color: var(--brand-blue-500);
  --bs-border-color: var(--brand-gray-300);
  --bs-border-color-translucent: rgb(255 255 255 / 15%);
  --bs-secondary-color: var(--brand-gray-600);
  --bs-secondary-bg: #202d3a;
  --bs-tertiary-bg: var(--brand-white);
  --bs-emphasis-color: var(--brand-gray-900);
  --bs-light: var(--brand-white);
  --bs-light-rgb: 23, 34, 47;
  --bs-dark: var(--brand-gray-900);
  --bs-dark-rgb: 238, 241, 244;
}

body { background: var(--brand-gray-50); color: var(--brand-gray-900); }
.survey-shell { max-width: 960px; }
.site-header { background: var(--bs-primary); }
.site-header-inner { align-items: center; display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); min-height: 4rem; }
.site-header-brand { color: #fff; font-size: 1.125rem; font-weight: 700; grid-column: 2; justify-self: center; text-decoration: none; white-space: nowrap; }
.site-header-brand:hover { color: #fff; text-decoration: underline; }
.site-header .header-controls { grid-column: 3; justify-self: end; margin-left: 0; }
.site-header .theme-switcher .theme-switcher-toggle, .site-header .auth-controls .btn-outline-secondary { --bs-btn-color: #fff; --bs-btn-border-color: #fff; --bs-btn-hover-color: #003e7e; --bs-btn-hover-bg: #fff; --bs-btn-hover-border-color: #fff; --bs-btn-active-color: #003866; --bs-btn-active-bg: #dceefa; --bs-btn-active-border-color: #dceefa; }
.site-header .site-header-brand:focus-visible, .site-header .btn:focus-visible { box-shadow: 0 0 0 3px #fff; outline: 2px solid #fff; outline-offset: 2px; }
.header-controls { min-height: 2rem; }
.auth-controls[hidden], [data-authenticated][hidden], [data-logout][hidden] { display: none; }
[data-survey-form][hidden], [data-survey-section][hidden] { display: none !important; }
.eyebrow { color: var(--brand-blue-600); font-size: 0.8rem; }
.page-title { color: var(--brand-blue-900); font-size: 2rem; font-weight: 700; }
.progress-tracker { color: var(--brand-blue-900); font-size: 0.875rem; white-space: nowrap; }
.survey-section.card { background-color: var(--brand-white); border-color: var(--brand-gray-300); }
.question { border: 0; border-bottom: 1px solid var(--brand-gray-300); margin: 0; padding: 0 0 1.25rem; }
.question + .question { margin-top: 1.25rem; }
.question:last-of-type { border-bottom: 0; }
.question legend { float: none; font-size: 1rem; font-weight: 700; margin: 0 0 0 1.75rem; padding: 0 0 0.25rem; width: auto; }
.question-answers { margin-left: 1.75rem; }
.question-answers > .form-control:not(.other-text) { width: calc(100% - 1.75rem); }
.question-select { max-width: 100%; width: min(100%, 28rem); }
.searchable-select { max-width: 100%; position: relative; width: min(100%, 28rem); }
.searchable-select .question-select { max-width: 100%; width: 100%; }
.searchable-select-options { background: var(--brand-white); border: 1px solid var(--brand-gray-300); border-radius: var(--brand-radius); box-shadow: var(--brand-shadow-rest); display: grid; left: 0; max-height: 16rem; overflow-y: auto; padding: 0.25rem; position: absolute; right: 0; top: calc(100% + 0.25rem); z-index: 30; }
.searchable-select-options[hidden] { display: none; }
.searchable-select-option { background: transparent; border: 0; border-radius: 0.25rem; color: var(--brand-gray-900); padding: 0.5rem 0.75rem; text-align: left; width: 100%; }
.searchable-select-option:hover, .searchable-select-option[aria-selected="true"] { background: var(--brand-blue-900); color: var(--brand-white); }
.searchable-select-empty { color: var(--brand-gray-600); padding: 0.5rem 0.75rem; }
.option { align-items: flex-start; margin: 0.5rem 0; }
.option-list-frame-scroll { margin-right: 1.75rem; }
.option-list-scroll { border: 1px solid var(--brand-gray-300); border-radius: var(--brand-radius); max-height: 16rem; overflow-y: auto; overscroll-behavior: contain; padding: 0.5rem 0.75rem 0.5rem 0.375rem; }
.other-text { margin: 0.25rem 0 0.75rem; max-width: 28rem; width: min(100%, 28rem); }
.other-text:disabled { background: var(--brand-gray-50); color: var(--brand-gray-600); cursor: not-allowed; }
.likert-scale { align-items: center; display: grid; gap: 0.875rem; grid-template-columns: minmax(110px, 1fr) minmax(240px, 2fr) minmax(110px, 1fr); margin-right: 1.75rem; }
.likert-endpoint { color: var(--brand-gray-600); font-size: 0.8rem; font-weight: 700; line-height: 1.2; }
.likert-endpoint-end { text-align: right; }
.likert-options { display: flex; justify-content: space-between; }
.likert-options label { cursor: pointer; display: grid; place-items: center; }
.likert-options input { height: 1px; opacity: 0; position: absolute; width: 1px; }
.likert-options span { align-items: center; border: 2px solid var(--brand-blue-600); border-radius: 50%; color: var(--brand-blue-800); display: flex; font-weight: 700; height: 34px; justify-content: center; width: 34px; }
.likert-options input:checked + span { background: var(--brand-blue-600); color: var(--brand-white); }
.likert-options input:focus-visible + span { box-shadow: var(--brand-focus); outline: 2px solid var(--brand-blue-500); outline-offset: 3px; }
.likert-group { border-top: 1px solid var(--brand-gray-300); margin-right: 1.75rem; }
.likert-group-header, .likert-group-row { display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr) minmax(240px, 1fr); }
.likert-group-header { color: var(--brand-gray-600); font-size: 0.75rem; font-weight: 700; padding: 0.625rem 0 0.375rem; }
.likert-group-header div { display: flex; justify-content: space-between; }
.likert-group-row { align-items: center; border-top: 1px solid var(--brand-gray-300); padding: 0.75rem 0; }
.likert-group-statement { font-size: 0.95rem; }
.short-text-group-row { align-items: center; display: grid; gap: 1.25rem; grid-template-columns: minmax(0, 1fr) minmax(240px, 1fr); padding: 0.75rem 1.75rem 0.75rem 0; position: relative; }
.short-text-group-row::after, .short-text-group-row:first-child::before { background: var(--brand-gray-300); content: ""; height: 1px; left: 0; position: absolute; right: 1.75rem; }
.short-text-group-row::before { top: 0; }
.short-text-group-row::after { bottom: 0; }
.form-control, .form-select { background-color: var(--brand-white); min-height: 2.75rem; }
.form-control:focus, .form-select:focus { background-color: var(--brand-white); border-color: var(--brand-blue-500); box-shadow: var(--brand-focus); outline: 2px solid var(--brand-blue-500); outline-offset: 2px; }
.btn-primary { --bs-btn-color: var(--brand-white); --bs-btn-bg: var(--brand-blue-900); --bs-btn-border-color: var(--brand-blue-900); --bs-btn-hover-color: var(--brand-white); --bs-btn-hover-bg: var(--brand-blue-500); --bs-btn-hover-border-color: var(--brand-blue-500); --bs-btn-active-color: var(--brand-white); --bs-btn-active-bg: var(--brand-blue-800); --bs-btn-active-border-color: var(--brand-blue-800); --bs-btn-disabled-color: var(--brand-white); --bs-btn-disabled-bg: var(--brand-blue-900); --bs-btn-disabled-border-color: var(--brand-blue-900); box-shadow: var(--brand-shadow-rest); }
.btn-primary:active { box-shadow: var(--brand-shadow-active); }
.btn-outline-secondary { --bs-btn-color: var(--brand-blue-800); --bs-btn-border-color: var(--brand-blue-800); --bs-btn-hover-color: var(--brand-white); --bs-btn-hover-bg: var(--brand-blue-800); --bs-btn-hover-border-color: var(--brand-blue-800); --bs-btn-active-color: var(--brand-white); --bs-btn-active-bg: var(--brand-blue-900); --bs-btn-active-border-color: var(--brand-blue-900); }
.btn:focus-visible, a:focus-visible { box-shadow: var(--brand-focus); outline: 2px solid var(--brand-blue-500); outline-offset: 2px; }
textarea { min-height: 100px; resize: vertical; }
.actions { margin-top: 1.5rem; }
.question-error, .form-status { color: var(--brand-danger); font-weight: 600; }
.form-status { text-align: right; }
.theme-switcher { position: relative; }
.theme-switcher-toggle { align-items: center; display: inline-flex; gap: 0.5rem; }
.theme-switcher-toggle::after { border-bottom: 1px solid currentColor; border-right: 1px solid currentColor; content: ""; display: inline-block; height: 0.4rem; margin-bottom: 0.2rem; transform: rotate(45deg); width: 0.4rem; }
.theme-switcher-toggle[aria-expanded="true"]::after { margin-bottom: 0; transform: rotate(225deg); }
.theme-options { background: var(--brand-white); border: 1px solid var(--brand-gray-300); border-radius: var(--brand-radius); box-shadow: var(--brand-shadow-rest); display: grid; gap: 0.25rem; min-width: 9rem; padding: 0.375rem; position: absolute; right: 0; top: calc(100% + 0.5rem); z-index: 20; }
.theme-options[hidden] { display: none; }
.theme-options button { text-align: left; }
.theme-options button[aria-current="true"] { background: var(--brand-blue-900); border-color: var(--brand-blue-900); color: var(--brand-white); }
[data-bs-theme="dark"] .progress-tracker { background-color: var(--brand-white) !important; color: var(--brand-gray-900) !important; }
[data-bs-theme="dark"] .btn-primary { --bs-btn-color: #fff; --bs-btn-bg: #0073c8; --bs-btn-border-color: #0073c8; --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #085e9b; --bs-btn-hover-border-color: #085e9b; --bs-btn-active-color: #fff; --bs-btn-active-bg: #003e7e; --bs-btn-active-border-color: #003e7e; --bs-btn-disabled-color: #fff; --bs-btn-disabled-bg: #0073c8; --bs-btn-disabled-border-color: #0073c8; }
[data-bs-theme="dark"] .btn-outline-secondary { --bs-btn-color: #66b3e6; --bs-btn-border-color: #66b3e6; --bs-btn-hover-color: #0b1622; --bs-btn-hover-bg: #66b3e6; --bs-btn-hover-border-color: #66b3e6; --bs-btn-active-color: #0b1622; --bs-btn-active-bg: #66b3e6; --bs-btn-active-border-color: #66b3e6; }
[data-bs-theme="dark"] .theme-options button[aria-current="true"] { background: #0073c8; border-color: #0073c8; color: #fff; }
[data-bs-theme="dark"] .form-check-input { --bs-form-check-bg: var(--brand-white); }
[data-bs-theme="dark"] .short-text-group-row .form-control { background-color: #202d3a; border-color: #66b3e6; color: var(--brand-gray-900); }
[data-bs-theme="dark"] .other-text:disabled { background-color: #343b43; border-color: var(--brand-gray-300); color: var(--brand-gray-600); }
[data-bs-theme="dark"] .other-text:disabled::placeholder { color: var(--brand-gray-600); opacity: 1; }
[data-bs-theme="dark"] .likert-options input:checked + span { background: #0073c8; color: #fff; }
dialog { border: 1px solid var(--brand-gray-300); border-radius: var(--brand-radius); max-width: min(680px, calc(100vw - 32px)); padding: 1.5rem; }
dialog::backdrop { background: rgb(29 39 48 / 45%); }
pre { overflow: auto; white-space: pre-wrap; }

@media (max-width: 640px) {
  .site-header-inner { grid-template-columns: 1fr auto; grid-template-rows: auto auto; padding-bottom: 0.5rem; padding-top: 0.5rem; }
  .site-header-brand { grid-column: 1 / -1; grid-row: 1; }
  .site-header .header-controls { grid-column: 2; grid-row: 2; }
  .short-text-group-row, .likert-group-row { gap: 0.5rem; grid-template-columns: 1fr; }
  .likert-group-header { grid-template-columns: 1fr; }
  .likert-group-header > span { display: none; }
  .likert-scale { grid-template-columns: 1fr; }
  .likert-options { grid-row: 2; }
  .likert-endpoint-end { grid-row: 3; text-align: right; }
}