/* Form roles share geometry; native controls keep their keyboard behaviour. */
body.flat-blue {
  --field-surface: #fff;
  --field-hover: #f7f9fb;
  --field-ink: #15293e;
  --field-muted: #47617a;
  --field-border: #7894ae;
  --field-hover-border: #47617a;
  --field-focus: #2074ef;
  --field-error: #a92a32;
  --field-inactive: #edf4fb;
}
body.flat-blue :is(.dossier-wrap, .agd-console) {
  --field-surface: #1d354e;
  --field-hover: #24415d;
  --field-ink: #e3edf7;
  --field-muted: #b7cce0;
  --field-border: #7894ae;
  --field-hover-border: #a9c0d4;
  --field-focus: #b7d7fa;
  --field-error: #ffb4ab;
  --field-inactive: #24415d;
  color-scheme: dark;
}

/* Explicit field families exclude hidden inputs, traps and button inputs. */
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-input, .db-field input, .agd-inputrow input, .cs-jump-control select):where(:not([type="hidden"]):not([hidden])) {
  box-sizing: border-box;
  min-width: 0;
  max-width: 100%;
  min-height: 52px;
  padding: 12px 16px;
  border: 1px solid var(--field-border) !important;
  border-radius: 10px !important;
  background-color: var(--field-surface) !important;
  color: var(--field-ink) !important;
  caret-color: var(--field-ink);
  font-family: Geist, system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 400 !important;
  line-height: 1.5 !important;
  letter-spacing: 0 !important;
  text-transform: none;
  transition: background-color 160ms ease-out, border-color 160ms ease-out !important;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-input, .db-field input, .agd-inputrow input, .cs-jump-control select)::placeholder {
  color: var(--field-muted) !important;
  opacity: 1;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-input, .db-field input, .agd-inputrow input, .cs-jump-control select):where(:hover:not(:disabled):not([readonly])) {
  background-color: var(--field-hover) !important;
  border-color: var(--field-hover-border) !important;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-input, .db-field input, .agd-inputrow input, .cs-jump-control select):focus-visible {
  outline: 3px solid var(--field-focus) !important;
  outline-offset: 3px !important;
  border-color: var(--field-focus) !important;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-input, .db-field input, .agd-inputrow input, .cs-jump-control select):is([aria-invalid="true"], :user-invalid) {
  border-color: var(--field-error) !important;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-input, .db-field input, .agd-inputrow input, .cs-jump-control select):disabled,
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-input, .db-field input, .agd-inputrow input)[readonly] {
  background-color: var(--field-inactive) !important;
  border-color: var(--field-border) !important;
  color: var(--field-muted) !important;
  opacity: 1;
  cursor: default;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-input, .db-field input, .agd-inputrow input, .cs-jump-control select):disabled { cursor: not-allowed; }
html body.flat-blue.flat-blue.flat-blue.flat-blue textarea.field-input {
  min-height: 144px;
  resize: vertical;
}

/* One chevron: background fallback or the progressive native picker icon. */
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(select.field-input, .cs-jump-control select) {
  padding-right: 48px !important;
  background-position: right 16px center;
  background-size: 18px 18px;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(select.field-input, .cs-jump-control select) option {
  background: #fff;
  color: #15293e;
  font: 400 16px/1.5 Geist, system-ui, sans-serif;
}
@supports (appearance: base-select) {
  html body.flat-blue.flat-blue.flat-blue.flat-blue :is(select.field-input, .cs-jump-control select) {
    padding-right: 16px !important;
    background-image: none !important;
    column-gap: 16px;
  }
  html body.flat-blue.flat-blue.flat-blue.flat-blue :is(select.field-input, .cs-jump-control select)::picker(select) {
    font: 400 16px/1.5 Geist, system-ui, sans-serif;
    border: 1px solid #c6d9ea;
    border-radius: 12px;
    padding: 8px;
  }
  html body.flat-blue.flat-blue.flat-blue.flat-blue :is(select.field-input, .cs-jump-control select) option {
    padding: 12px 16px;
    min-height: 44px;
  }
  html body.flat-blue.flat-blue.flat-blue.flat-blue :is(select.field-input, .cs-jump-control select) option:is(:hover, :focus-visible, :checked) { background: #eaf3fa; }
}

html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field, .db-field) { gap: 8px; }
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-label, .db-field label, .agd-lbl, .cs-jump-control > span) {
  font-family: Geist, system-ui, sans-serif !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  line-height: 1.4 !important;
  letter-spacing: 0 !important;
  text-transform: none !important;
  color: var(--field-ink) !important;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-hint, .field-help, .field-error, .db-field-error, :where(#contact-error, #lead-error)) {
  font-family: Geist, system-ui, sans-serif !important;
  font-size: 14px !important;
  font-weight: 400;
  line-height: 1.5 !important;
  letter-spacing: 0;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-hint, .field-help) { color: var(--field-muted) !important; }
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.field-error, .db-field-error, :where(#contact-error, #lead-error)) { color: var(--field-error) !important; }
html body.flat-blue.flat-blue.flat-blue.flat-blue :is(.db-form, :where(#contact-form, #lead-form, #report-form)) { gap: 24px; }
html body.flat-blue.flat-blue.flat-blue.flat-blue .cs-jump-control { gap: 8px; align-items: flex-start; flex-direction: column; }
html body.flat-blue.flat-blue.flat-blue.flat-blue .agd-inputrow { border: 0; padding-bottom: 0; }

html body.flat-blue.flat-blue.flat-blue.flat-blue .agd-lbl { margin-bottom: 8px; }
html body.flat-blue.flat-blue.flat-blue.flat-blue .db-field:has(> .db-field-error:not(.hidden):not([hidden])) input { border-color: var(--field-error) !important; }

/* Native choice controls: real checked state, generous label targets. */
html body.flat-blue.flat-blue.flat-blue.flat-blue input:is([type="radio"], [type="checkbox"]) {
  appearance: auto;
  width: 20px;
  height: 20px;
  min-width: 20px;
  min-height: 20px;
  margin: 2px 0 0;
  padding: 0;
  flex-shrink: 0;
  accent-color: #15293e !important;
  cursor: pointer;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue input:is([type="radio"], [type="checkbox"]):focus-visible {
  outline: 3px solid var(--field-focus) !important;
  outline-offset: 3px;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue input:is([type="radio"], [type="checkbox"]):disabled { cursor: not-allowed; opacity: .6; }
html body.flat-blue.flat-blue.flat-blue.flat-blue label:has(> input:is([type="radio"], [type="checkbox"])) {
  display: flex;
  align-items: flex-start;
  min-height: 44px;
  gap: 12px;
  font: 400 16px/1.5 Geist, system-ui, sans-serif;
  color: var(--field-ink);
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :where(#questions-container) label {
  padding: 16px;
  border: 1px solid var(--field-border) !important;
  border-radius: 12px;
  background: var(--field-surface) !important;
  transition: background-color 160ms ease-out, border-color 160ms ease-out !important;
}
html body.flat-blue.flat-blue.flat-blue.flat-blue :where(#questions-container) label:where(:hover:not(:has(input:disabled))) { border-color: var(--field-hover-border) !important; background: var(--field-hover) !important; }
html body.flat-blue.flat-blue.flat-blue.flat-blue :where(#questions-container) label:has(input:checked) { background: #eaf3fa !important; border-color: #15293e !important; }
html body.flat-blue.flat-blue.flat-blue.flat-blue :where(#questions-container) label:has(input:disabled) { cursor: not-allowed; }
html body.flat-blue.flat-blue.flat-blue.flat-blue :where(#questions-container) label > span {
  min-width: 0;
  font-size: 16px !important;
  line-height: 1.5 !important;
  color: #15293e !important;
}
@media (prefers-reduced-motion: reduce) {
  html body.flat-blue.flat-blue.flat-blue.flat-blue.flat-blue :is(input, textarea, select, :where(#questions-container) label) { transition: none !important; }
}

/* A native 300px verification widget must fit without scaling or clipping. */
@media (max-width: 399px) {
  html body.flat-blue.flat-blue.flat-blue.flat-blue div:has(> form:is(#lead-form, #report-form)) {
    box-sizing: border-box;
    width: 100vw;
    max-width: none;
    margin-left: calc(50% - 50vw);
    margin-right: 0;
    padding-inline: 10px !important;
    border-inline: 0 !important;
    border-radius: 0 !important;
  }
}
