/* Socrates Ashby job board upload, October 22 mobile filter amendment. Canonical palette: docs/brand/DESIGN.md.
 * Documented hooks: https://www.ashbyhq.com/job_board_example_css/full-job-board.css
 * This file belongs INSIDE the Ashby iframe, via the brand's CSS upload.
 * HTTPS fonts match Ashby's current font-src policy; system fallbacks stay available.
 */
@import url("https://fonts.googleapis.com/css2?family=Manrope:wght@600&family=Space+Grotesk:wght@400;500&display=swap");

:root {
  color-scheme: dark;
  color: #FCFDFD;
  font-family: "Space Grotesk", system-ui, sans-serif;
  line-height: 1.5;
  --colorAppBackground: #15181B;
  /* Native primary also fills application buttons. Keep native brand settings
   * unchanged and scope the dark mobile filter panel below. */
  --colorNeutral100: #F6F7F8;
  --colorNeutral600: #8E99A4;
  --colorNeutral700: #B4BDC6;
  --colorPrimary900: #EAECEE;
  --colorPrimary600: #FCFDFD;
  --widthMaxContent: 1440px;
  --widthMaxJobBoard: 1440px;
  --widthMaxSubscriptionPreferences: 600px;
  --borderRadiusContainer: 12px;
  --borderRadiusControl: 8px;
  --borderRadiusButton: 8px;
  --fontFamily: "Space Grotesk", system-ui, sans-serif;
}
.ashby-job-board-heading, .ashby-department-heading, .ashby-department-heading-level,
.ashby-job-posting-heading, .ashby-job-posting-brief-title,
.ashby-application-form-section-header-title {
  color: #FCFDFD; font-family: "Manrope", system-ui, sans-serif; font-weight: 600; line-height: 1.2;
}
.ashby-job-board-filter:focus-visible,
.ashby-job-posting-brief:focus-visible,
.ashby-job-board-back-to-all-jobs-button:focus-visible,
.ashby-job-board-reset-filters-label:focus-visible,
.ashby-job-posting-right-pane-application-tab:focus-visible,
.ashby-job-posting-right-pane-overview-tab:focus-visible,
.ashby-application-form-submit-button:focus-visible,
.ashby-application-form-autofill-uploader:focus-visible,
.ashby-application-form-input-text:focus-visible,
.ashby-application-form-input-textarea:focus-visible,
.ashby-application-form-input-date:focus-visible,
.ashby-application-form-input-dropdown-select:focus-visible,
.ashby-application-form-input-autocomplete:focus-visible,
.ashby-application-form-input-file-dropzone-upload:focus-visible,
.ashby-application-form-input-checkbox-group-option:focus-visible,
.ashby-application-form-input-radio-group-option:focus-visible,
.ashby-application-form-input-yesno-option:focus-visible {
  outline: 2px solid #FCFDFD; outline-offset: 3px;
}
.ashby-job-board-heading-count, .ashby-job-board-filters-label,
.ashby-job-posting-brief-details, .ashby-application-form-question-description,
.ashby-application-form-section-header-description,
.ashby-application-form-texting-consent-description,
.ashby-application-form-input-file-dropzone-instructions { color: #B4BDC6; }
/* The hook is the inner card, not its link. Every inner card is first-child;
 * list + link + card outranks the provider's container:not(highlighted):first-child
 * top-border removal. Reset its negative first-child margin at the same time. */
html:root .ashby-job-posting-brief-list > a {
  display: block;
  text-decoration: none;
}
html:root .ashby-job-posting-brief-list > a:focus-visible { outline: none; }
html:root .ashby-job-posting-brief-list > a > div.ashby-job-posting-brief {
  margin: 0 0 24px; padding: 24px;
  border: 1px solid #343B42; border-radius: 12px;
  background: #202428; color: #FCFDFD;
  box-sizing: border-box;
  transition: opacity 200ms cubic-bezier(0.2, 0, 0, 1);
}
html:root .ashby-job-posting-brief-list > a:focus-visible > div.ashby-job-posting-brief {
  outline: 2px solid #FCFDFD; outline-offset: 3px;
}
.ashby-job-posting-brief-title { font-size: 20px; }
.ashby-job-posting-header, .ashby-job-posting-left-pane,
.ashby-job-posting-right-pane, .ashby-job-posting-description-container,
.ashby-application-form-container, .ashby-application-form-section-container,
.ashby-survey-form-container { background: #15181B; color: #FCFDFD; }
.ashby-job-posting-description { color: #B4BDC6; line-height: 1.6; overflow-wrap: anywhere; }
.ashby-application-form-question-title { color: #FCFDFD; }
.ashby-job-board-filter,
.ashby-application-form-input-text, .ashby-application-form-input-textarea,
.ashby-application-form-input-date, .ashby-application-form-input-dropdown,
.ashby-application-form-input-dropdown-select, .ashby-application-form-input-autocomplete,
.ashby-application-form-input-file-dropzone {
  font: inherit; min-height: 44px; background: #202428; color: #FCFDFD;
  border: 1px solid #8C98A3; border-radius: 8px;
}
.ashby-application-form-input-text::placeholder,
.ashby-application-form-input-textarea::placeholder { color: #8E99A4; opacity: 1; }
.ashby-application-form-input-checkbox-group-option-checkbox,
.ashby-application-form-input-radio-group-option-radio { accent-color: #FCFDFD; }
.ashby-application-form-input-autocomplete-popup,
.ashby-application-form-input-date-popup,
.ashby-application-form-autofill-input-base-layer,
.ashby-application-form-autofill-input-drag-layer,
.ashby-application-form-autofill-input-pending-layer,
.ashby-application-form-input-education-entry {
  background: #2A2F34; color: #FCFDFD; border: 1px solid #343B42;
}
.ashby-application-form-input-autocomplete-popup-result[aria-selected="true"],
.ashby-application-form-input-autocomplete-popup-result:hover,
.ashby-application-form-input-yesno-option[aria-pressed="true"],
.ashby-application-form-input-checkbox-group-option[data-checked="true"],
.ashby-application-form-input-radio-group-option[data-checked="true"] {
  background: #282D32; color: #FCFDFD;
}
.ashby-application-form-submit-button,
.ashby-application-form-input-file-dropzone-upload,
.ashby-application-form-autofill-uploader {
  min-height: 44px; background: #FCFDFD; color: #202428;
  border: 1px solid #FCFDFD; border-radius: 8px; font-weight: 500;
}
.ashby-application-form-submit-button:hover,
.ashby-application-form-input-file-dropzone-upload:hover,
.ashby-application-form-autofill-uploader:hover { background: #EAECEE; color: #202428; }
.ashby-job-board-back-to-all-jobs-button,
.ashby-job-board-reset-filters-label,
.ashby-job-posting-right-pane-application-tab,
.ashby-job-posting-right-pane-overview-tab {
  color: #FCFDFD; background: transparent; min-height: 44px;
}
.ashby-job-posting-right-pane-tab-slider { background: #FCFDFD; }
.ashby-application-form-failure-container,
.ashby-application-form-autofill-input-form-alert[data-highlight="negative"] {
  background: #202428; color: #EF7676; border: 1px solid #EF7676;
}
.ashby-application-form-success-container,
.ashby-application-form-autofill-input-form-alert[data-highlight="positive"] {
  background: #202428; color: #4ADE80; border: 1px solid #4ADE80;
}
.ashby-application-form-blocked-application-container,
.ashby-application-blocking-disclosure { background: #202428; color: #B4BDC6; }
.ashby-job-board-filter:disabled,
.ashby-application-form-submit-button:disabled,
.ashby-application-form-input-text:disabled,
.ashby-application-form-input-textarea:disabled,
.ashby-application-form-input-date:disabled,
.ashby-application-form-input-dropdown-select:disabled,
.ashby-application-form-input-autocomplete:disabled,
.ashby-application-form-input-dropdown[data-disabled="true"],
.ashby-application-form-input-checkbox-group-option[data-disabled="true"],
.ashby-application-form-input-radio-group-option[data-disabled="true"],
.ashby-application-form-input-yesno[data-disabled="true"] { opacity: .65; cursor: not-allowed; }
/* Ashby gives active selects two internal classes. Root + native select + the
 * documented hook outrank that rule without depending on generated class names
 * or changing the primary token shared by application-button fills. */
:root select.ashby-job-board-filter {
  /* Ashby's select wrapper has line-height: 0. The earlier font: inherit
   * copied that zero into the select, clipping its native iOS text. */
  line-height: 1.5;
  background: #202428;
  color: #FCFDFD;
  border-color: #8C98A3;
  box-shadow: none;
  color-scheme: dark;
  /* WebKit can paint the disabled selected placeholder independently of color. */
  -webkit-text-fill-color: #FCFDFD;
  opacity: 1;
}
:root select.ashby-job-board-filter option { background: #202428; color: #FCFDFD; }
:root select.ashby-job-board-filter option:disabled {
  color: #FCFDFD; -webkit-text-fill-color: #FCFDFD; opacity: 1;
}
:root select.ashby-job-board-filter:focus-visible {
  outline: 2px solid #FCFDFD;
  outline-offset: 3px;
}
/* The select's active chevron is a sibling, so it cannot inherit select color. */
:root select.ashby-job-board-filter + div svg { fill: #B4BDC6; }

/* Ashby documents no branding-footer hook. Scope to its observed accessible
 * branding label, leaving job links, apply buttons, and candidate links alone.
 * The provider otherwise changes both text and SVG to the dark primary on hover. */
:root a[aria-label="Learn more about Ashby"],
:root a[aria-label="Learn more about Ashby"]:visited,
:root a[aria-label="Learn more about Ashby"]:hover,
:root a[aria-label="Learn more about Ashby"]:focus,
:root a[aria-label="Learn more about Ashby"]:active {
  color: #B4BDC6;
  text-decoration: none;
}
:root a[aria-label="Learn more about Ashby"] svg,
:root a[aria-label="Learn more about Ashby"]:hover svg { fill: currentColor; }
:root a[aria-label="Learn more about Ashby"] {
  transition: opacity 200ms cubic-bezier(0.2, 0, 0, 1);
}
:root a[aria-label="Learn more about Ashby"]:focus-visible {
  outline: 2px solid #FCFDFD;
  outline-offset: 3px;
  border-radius: 8px;
}
@media (hover: hover) {
  :root a[aria-label="Learn more about Ashby"]:hover { opacity: .8; }
}
@media (prefers-reduced-motion: reduce) {
  :root a[aria-label="Learn more about Ashby"] { transition: none; }
}
/* The documented autofill root is the padded outer surface; styling only
 * its base layer leaves a white band and the inner provider content resets ink. */
:root .ashby-application-form-autofill-pane { background: #15181B; color: #FCFDFD; }
:root .ashby-application-form-autofill-input-root {
  background: #2A2F34;
  color: #FCFDFD;
  border: 1px solid #343B42;
}
:root .ashby-application-form-autofill-input-root::after { border-color: #FCFDFD; }
:root .ashby-application-form-autofill-input-base-layer {
  background: transparent;
  border: 0;
  color: #FCFDFD;
}
:root .ashby-application-form-autofill-input-title { color: #FCFDFD; }
:root .ashby-application-form-autofill-input-description { color: #B4BDC6; }
:root .ashby-application-form-autofill-input-icon { fill: #B4BDC6; }
/* The current provider renders its Upload file button without a dedicated
 * hook. Limit the fallback to buttons inside the documented autofill base. */
:root .ashby-application-form-autofill-input-base-layer button {
  min-height: 44px;
  background: #FCFDFD;
  color: #202428;
  border: 1px solid #FCFDFD;
  border-radius: 8px;
  font-family: inherit;
  font-weight: 500;
}
:root .ashby-application-form-autofill-input-base-layer button:hover,
:root .ashby-application-form-autofill-input-base-layer button:active {
  background: #EAECEE;
  color: #202428;
  border-color: #EAECEE;
}
:root .ashby-application-form-autofill-input-base-layer button:focus-visible {
  outline: 2px solid #FCFDFD;
  outline-offset: 3px;
}
:root .ashby-application-form-autofill-input-base-layer button:disabled {
  opacity: .65;
  cursor: not-allowed;
}
:root .ashby-application-form-autofill-input-drag-layer,
:root .ashby-application-form-autofill-input-pending-layer {
  background: #2A2F34;
  color: #FCFDFD;
  border-color: #343B42;
}
:root .ashby-application-form-autofill-input-drag-layer svg,
:root .ashby-application-form-autofill-input-pending-layer svg { fill: #B4BDC6; }
/* Back-to-board text was light but its provider SVG retained the dark primary. */
:root button.ashby-job-board-back-to-all-jobs-button,
:root button.ashby-job-board-back-to-all-jobs-button:hover,
:root button.ashby-job-board-back-to-all-jobs-button:focus,
:root button.ashby-job-board-back-to-all-jobs-button:active { color: #FCFDFD; }
:root button.ashby-job-board-back-to-all-jobs-button svg,
:root button.ashby-job-board-back-to-all-jobs-button path,
:root button.ashby-job-board-back-to-all-jobs-button:hover svg,
:root button.ashby-job-board-back-to-all-jobs-button:hover path,
:root button.ashby-job-board-back-to-all-jobs-button:focus svg,
:root button.ashby-job-board-back-to-all-jobs-button:focus path,
:root button.ashby-job-board-back-to-all-jobs-button:active svg,
:root button.ashby-job-board-back-to-all-jobs-button:active path { fill: currentColor; }
/* One padded segmented control on desktop and mobile. Override native anchor
 * widths/margins/bottom borders; the decorative moving underline is redundant
 * with the selected fill. ARIA state and keyboard behavior remain provider-owned. */
:root .ashby-job-posting-right-pane [role="tablist"] {
  display: flex;
  align-items: stretch;
  gap: 8px;
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 8px;
  border: 0;
  border-radius: 12px;
  background: #202428;
  box-shadow: none;
}
:root .ashby-job-posting-right-pane a[role="tab"],
:root .ashby-job-posting-right-pane a[role="tab"]:hover,
:root .ashby-job-posting-right-pane a[role="tab"]:focus,
:root .ashby-job-posting-right-pane a[role="tab"]:active {
  display: flex;
  flex: 1 1 0;
  align-items: center;
  justify-content: center;
  width: auto;
  min-width: 0;
  min-height: 48px;
  margin: 0;
  padding: 12px 20px;
  box-sizing: border-box;
  border: 0;
  border-radius: 8px;
  background: transparent;
  color: #B4BDC6;
  line-height: 1.5;
  text-align: center;
  text-decoration: none;
  box-shadow: none;
  outline: none;
  transition: opacity 200ms cubic-bezier(0.2, 0, 0, 1);
}
:root .ashby-job-posting-right-pane a[role="tab"][aria-selected="true"],
:root .ashby-job-posting-right-pane a[role="tab"][aria-selected="true"]:hover,
:root .ashby-job-posting-right-pane a[role="tab"][aria-selected="true"]:focus,
:root .ashby-job-posting-right-pane a[role="tab"][aria-selected="true"]:active {
  background: #2A2F34;
  color: #FCFDFD;
}
:root .ashby-job-posting-right-pane .ashby-job-posting-right-pane-overview-tab,
:root .ashby-job-posting-right-pane .ashby-job-posting-right-pane-application-tab {
  display: block;
  min-height: 0;
  margin: 0;
  padding: 0;
  color: inherit;
  line-height: inherit;
  background: transparent;
}
:root .ashby-job-posting-right-pane a[role="tab"]:focus-visible {
  outline: 2px solid #FCFDFD;
  outline-offset: -2px;
}
:root .ashby-job-posting-right-pane .ashby-job-posting-right-pane-tab-slider { display: none; }
@media (hover: hover) {
  html:root .ashby-job-posting-brief-list > a > div.ashby-job-posting-brief:hover,
  :root .ashby-job-posting-right-pane a[role="tab"]:hover { opacity: .8; }
}
@media (prefers-reduced-motion: reduce) {
  html:root .ashby-job-posting-brief-list > a > div.ashby-job-posting-brief,
  :root .ashby-job-posting-right-pane a[role="tab"] { transition: none; }
}
/* Native field-focus rules outrank the original single-hook focus group.
 * Strengthen the documented inputs without changing the light mobile filters. */
html:root .ashby-application-form-input-text:focus,
html:root .ashby-application-form-input-textarea:focus,
html:root .ashby-application-form-input-date:focus,
html:root .ashby-application-form-input-dropdown-select:focus,
html:root .ashby-application-form-input-autocomplete:focus { border-color: #8C98A3; }
html:root .ashby-application-form-input-text:focus-visible,
html:root .ashby-application-form-input-textarea:focus-visible,
html:root .ashby-application-form-input-date:focus-visible,
html:root .ashby-application-form-input-dropdown-select:focus-visible,
html:root .ashby-application-form-input-autocomplete:focus-visible {
  outline: 2px solid #FCFDFD;
  outline-offset: 3px;
  border-color: #8C98A3;
  box-shadow: none;
}
/* Match Ashby's own 768px transition from filter panel to desktop rows.
 * The provider has no documented panel hook. Anchor to its documented label
 * and observed container > window > header structure, never generated classes.
 * Scope the neutral token to that panel so unrelated candidate surfaces stay intact. */
@media (max-width: 767px) {
  :root div:has(> div > div > .ashby-job-board-filters-label) {
    --colorNeutral100: #202428;
    color: #FCFDFD;
  }
  :root div:has(> div > div > .ashby-job-board-filters-label) > button {
    color: #FCFDFD;
  }
  :root .ashby-job-board-filters-label { color: #B4BDC6; }
  :root .ashby-job-board-reset-filters-label { color: #FCFDFD; }
  :root .ashby-job-board-reset-filters-label svg { fill: currentColor; }
  :root .ashby-job-board-reset-filters-label:focus-visible,
  :root select.ashby-job-board-filter:focus-visible { outline-color: #FCFDFD; }
}
@media (max-width: 620px) {
  html:root .ashby-job-posting-brief-list > a > div.ashby-job-posting-brief { padding: 16px; }
  .ashby-job-posting-heading { font-size: 28px; overflow-wrap: anywhere; }
  .ashby-job-board-filter { max-width: 100%; }
  .ashby-job-posting-left-pane, .ashby-job-posting-right-pane { min-width: 0; }
}
