/*
 * Helios Intelligence — Ashby job board and application theme
 * Updated to match the current heliosintel.ai visual system (August 2026).
 *
 * Palette: black, white, charcoal, and restrained neutral grays.
 * Typography: Instrument Serif for display headings, Roboto for UI/body,
 * and Roboto Mono for compact action labels.
 */

@import url("https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Roboto:wght@400;500;600;700&family=Roboto+Mono:wght@500;600&display=swap");

html {
  /* Helios brand tokens */
  --helios-black: #000000;
  --helios-ink: #101010;
  --helios-surface: #1f1f1f;
  --helios-surface-hover: #272727;
  --helios-border: #383838;
  --helios-border-strong: #5c5c5c;
  --helios-white: #ffffff;
  --helios-off-white: #f5f5f5;
  --helios-muted: #c4c4c4;
  --helios-subtle: #a3a3a3;
  --helios-focus: #9ec2ff;

  /* Ashby theme variables */
  --colorPrimary900: #ffffff !important;
  --colorPrimary600: #ffffff !important;
  --colorNeutral800: #ffffff !important;
  --colorNeutral700: #f5f5f5 !important;
  --colorNeutral600: #c4c4c4 !important;
  --colorNeutral500: #a3a3a3 !important;
  --colorNeutral400: #737373 !important;
  --colorNeutral300: #525252 !important;
  --colorNeutral200: #383838 !important;
  --colorNeutral100: #1f1f1f !important;
  --colorNeutral000: #000000 !important;
  --colorAppBackground: #000000 !important;

  /* Layout */
  --widthMaxJobBoard: 1000px !important;
  --borderRadiusContainer: 12px !important;
  --borderRadiusControl: 8px !important;
  --borderRadiusButton: 999px !important;

  /* Typography */
  --fontFamily: "Roboto", "Switzer", -apple-system, BlinkMacSystemFont,
    "Segoe UI", Helvetica, Arial, sans-serif !important;
  --fontFamilyDisplay: "Instrument Serif", Georgia, "Times New Roman", serif;
  --fontFamilyMono: "Roboto Mono", "SFMono-Regular", Consolas, monospace;
}

html,
body {
  background: var(--colorAppBackground) !important;
  color: var(--helios-off-white) !important;
  font-family: var(--fontFamily) !important;
}

body {
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

::selection {
  background: var(--helios-white);
  color: var(--helios-black);
}

/* Job board header */
.ashby-job-board-heading {
  margin-bottom: 8px !important;
  color: var(--helios-white) !important;
  font-family: var(--fontFamilyDisplay) !important;
  font-size: 42px !important;
  font-weight: 400 !important;
  line-height: 1.05 !important;
  letter-spacing: -0.02em !important;
}

.ashby-job-board-heading-count {
  color: var(--helios-muted) !important;
  font-family: var(--fontFamily) !important;
  font-size: 16px !important;
  font-weight: 500 !important;
  letter-spacing: 0 !important;
}

.ashby-job-board-filters-label {
  margin-bottom: 12px !important;
  color: var(--helios-white) !important;
  font-family: var(--fontFamily) !important;
  font-weight: 500 !important;
}

.ashby-job-board-filter {
  min-height: 46px !important;
  padding: 11px 14px !important;
  background: var(--helios-ink) !important;
  border: 1px solid var(--helios-border) !important;
  border-radius: var(--borderRadiusControl) !important;
  color: var(--helios-off-white) !important;
  font-family: var(--fontFamily) !important;
  font-size: 14px !important;
  transition: border-color 160ms ease, box-shadow 160ms ease !important;
}

.ashby-job-board-filter:hover {
  border-color: var(--helios-border-strong) !important;
}

.ashby-job-board-filter:focus,
.ashby-job-board-filter:focus-visible {
  border-color: var(--helios-white) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.16) !important;
}

.ashby-job-board-reset-filters-label {
  padding: 10px 0 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  color: var(--helios-off-white) !important;
  font-family: var(--fontFamily) !important;
  font-weight: 500 !important;
  text-decoration: underline !important;
  text-decoration-color: var(--helios-border-strong) !important;
  text-underline-offset: 4px !important;
  box-shadow: none !important;
}

.ashby-job-board-reset-filters-label:hover {
  color: var(--helios-white) !important;
  text-decoration-color: var(--helios-white) !important;
  transform: none !important;
}

/* Department and team headings */
.ashby-department-heading {
  margin: 36px 0 18px !important;
  color: var(--helios-white) !important;
  font-family: var(--fontFamilyDisplay) !important;
  font-size: 30px !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
  letter-spacing: -0.01em !important;
}

.ashby-department-heading-level {
  margin: 24px 0 12px !important;
  color: var(--helios-off-white) !important;
  font-family: var(--fontFamily) !important;
  font-size: 18px !important;
  font-weight: 500 !important;
}

/* Job cards */
.ashby-job-posting-brief-list {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
}

.ashby-job-posting-brief {
  margin-bottom: 0 !important;
  padding: 24px !important;
  background: var(--helios-surface) !important;
  border: 1px solid var(--helios-border) !important;
  border-radius: var(--borderRadiusContainer) !important;
  color: var(--helios-off-white) !important;
  cursor: pointer !important;
  transition: background-color 160ms ease, border-color 160ms ease,
    transform 160ms ease, box-shadow 160ms ease !important;
}

.ashby-job-posting-brief:hover {
  background: var(--helios-surface-hover) !important;
  border-color: var(--helios-border-strong) !important;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.24) !important;
  transform: translateY(-2px) !important;
}

.ashby-job-posting-brief:focus-within {
  border-color: var(--helios-white) !important;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.14) !important;
}

.ashby-job-posting-brief-title {
  margin-bottom: 10px !important;
  color: var(--helios-white) !important;
  font-family: var(--fontFamily) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  line-height: 1.35 !important;
}

.ashby-job-posting-brief-details {
  color: var(--helios-muted) !important;
  font-family: var(--fontFamily) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}

.ashby-job-posting-brief-department-heading {
  margin-bottom: 8px !important;
  color: var(--helios-white) !important;
  font-family: var(--fontFamily) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
}

.ashby-job-posting-brief-department-heading-level {
  margin-bottom: 6px !important;
  color: var(--helios-muted) !important;
  font-family: var(--fontFamily) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
}

/* Individual job page */
.ashby-job-posting-header {
  margin-bottom: 24px !important;
  padding: 32px !important;
  background: var(--helios-surface) !important;
  border: 1px solid var(--helios-border) !important;
  border-radius: var(--borderRadiusContainer) !important;
}

.ashby-job-posting-heading {
  margin-bottom: 16px !important;
  color: var(--helios-white) !important;
  font-family: var(--fontFamilyDisplay) !important;
  font-size: 44px !important;
  font-weight: 400 !important;
  line-height: 1.04 !important;
  letter-spacing: -0.02em !important;
}

.ashby-job-posting-left-pane,
.ashby-job-posting-right-pane {
  background: var(--helios-surface) !important;
  border-color: var(--helios-border) !important;
}

.ashby-job-posting-left-pane {
  padding: 24px !important;
  border-radius: var(--borderRadiusContainer) 0 0 var(--borderRadiusContainer) !important;
}

.ashby-job-posting-right-pane {
  padding: 24px !important;
  border-radius: 0 var(--borderRadiusContainer) var(--borderRadiusContainer) 0 !important;
}

.ashby-job-posting-right-pane-tab-slider {
  height: 2px !important;
  background: var(--helios-white) !important;
  border-radius: 2px !important;
}

.ashby-job-posting-right-pane-overview-tab,
.ashby-job-posting-right-pane-application-tab {
  padding: 12px 20px !important;
  border-bottom: 2px solid transparent !important;
  color: var(--helios-subtle) !important;
  font-family: var(--fontFamily) !important;
  font-weight: 500 !important;
  cursor: pointer !important;
}

.ashby-job-posting-right-pane-overview-tab:hover,
.ashby-job-posting-right-pane-application-tab:hover {
  color: var(--helios-white) !important;
}

.ashby-job-posting-right-pane-overview-tab[aria-selected="true"],
.ashby-job-posting-right-pane-application-tab[aria-selected="true"] {
  color: var(--helios-white) !important;
  border-bottom-color: var(--helios-white) !important;
}

.ashby-job-posting-description,
.ashby-job-posting-description-container,
.ashby-job-posting-description p,
.ashby-job-posting-description li {
  color: var(--helios-off-white) !important;
  font-family: var(--fontFamily) !important;
  line-height: 1.65 !important;
}

.ashby-job-posting-description strong {
  color: var(--helios-white) !important;
  font-weight: 600 !important;
}

.ashby-job-board-back-to-all-jobs-button {
  margin-bottom: 24px !important;
  padding: 11px 18px !important;
  background: transparent !important;
  border: 1px solid var(--helios-border-strong) !important;
  border-radius: var(--borderRadiusButton) !important;
  color: var(--helios-white) !important;
  font-family: var(--fontFamilyMono) !important;
  font-size: 12px !important;
  font-weight: 500 !important;
  letter-spacing: 0.04em !important;
  cursor: pointer !important;
  transition: background-color 160ms ease, color 160ms ease,
    border-color 160ms ease !important;
}

.ashby-job-board-back-to-all-jobs-button:hover {
  background: var(--helios-white) !important;
  border-color: var(--helios-white) !important;
  color: var(--helios-black) !important;
  transform: none !important;
}

/* Application form */
.ashby-application-form-container,
.ashby-application-form-section-container {
  background: transparent !important;
  color: var(--helios-off-white) !important;
  font-family: var(--fontFamily) !important;
}

.ashby-application-form-container {
  padding: 0 !important;
}

.ashby-application-form-section-container {
  margin-bottom: 32px !important;
}

.ashby-application-form-section-header {
  margin-bottom: 20px !important;
}

.ashby-application-form-section-header-title {
  margin-bottom: 8px !important;
  color: var(--helios-white) !important;
  font-family: var(--fontFamilyDisplay) !important;
  font-size: 30px !important;
  font-weight: 400 !important;
  line-height: 1.1 !important;
}

.ashby-application-form-section-header-description {
  color: var(--helios-muted) !important;
  font-family: var(--fontFamily) !important;
  font-size: 16px !important;
  line-height: 1.55 !important;
}

.ashby-application-form-field-entry {
  margin-bottom: 24px !important;
}

.ashby-application-form-question-title {
  margin-bottom: 8px !important;
  color: var(--helios-white) !important;
  font-family: var(--fontFamily) !important;
  font-size: 15px !important;
  font-weight: 500 !important;
}

.ashby-application-form-question-description {
  margin-bottom: 12px !important;
  color: var(--helios-muted) !important;
  font-family: var(--fontFamily) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}

.ashby-application-form-input-text,
.ashby-application-form-input-textarea,
input,
textarea,
select {
  padding: 12px 14px !important;
  background: var(--helios-ink) !important;
  border: 1px solid var(--helios-border) !important;
  border-radius: var(--borderRadiusControl) !important;
  color: var(--helios-white) !important;
  font-family: var(--fontFamily) !important;
  font-size: 14px !important;
  transition: border-color 160ms ease, box-shadow 160ms ease !important;
}

.ashby-application-form-input-text:hover,
.ashby-application-form-input-textarea:hover,
input:hover,
textarea:hover,
select:hover {
  border-color: var(--helios-border-strong) !important;
}

.ashby-application-form-input-text:focus,
.ashby-application-form-input-textarea:focus,
input:focus,
textarea:focus,
select:focus {
  border-color: var(--helios-white) !important;
  outline: none !important;
  box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.16) !important;
}

input::placeholder,
textarea::placeholder {
  color: var(--helios-subtle) !important;
  opacity: 1 !important;
}

.ashby-application-form-submit-button,
.ashby-application-form-input-file-dropzone-upload {
  padding: 13px 24px !important;
  background: var(--helios-white) !important;
  border: 1px solid var(--helios-white) !important;
  border-radius: var(--borderRadiusButton) !important;
  color: var(--helios-black) !important;
  font-family: var(--fontFamilyMono) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.055em !important;
  text-transform: uppercase !important;
  cursor: pointer !important;
  transition: background-color 160ms ease, color 160ms ease,
    border-color 160ms ease, transform 160ms ease !important;
}

.ashby-application-form-submit-button {
  margin-top: 24px !important;
}

.ashby-application-form-submit-button:hover,
.ashby-application-form-input-file-dropzone-upload:hover {
  background: transparent !important;
  color: var(--helios-white) !important;
  transform: translateY(-1px) !important;
}

/* Resume autofill and file upload */
.ashby-application-form-autofill-pane,
.ashby-application-form-autofill-input-root,
.ashby-application-form-autofill-input-base-layer {
  background: var(--helios-ink) !important;
}

.ashby-application-form-autofill-pane {
  margin-bottom: 28px !important;
  padding: 24px !important;
  border: 1px solid var(--helios-border) !important;
  border-radius: var(--borderRadiusContainer) !important;
}

.ashby-application-form-autofill-input-title {
  margin-bottom: 8px !important;
  color: var(--helios-white) !important;
  font-family: var(--fontFamily) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
}

.ashby-application-form-autofill-input-description,
.ashby-application-form-input-file-dropzone-instructions {
  color: var(--helios-muted) !important;
  font-family: var(--fontFamily) !important;
  font-size: 14px !important;
  line-height: 1.5 !important;
}

.ashby-application-form-autofill-input-icon {
  color: var(--helios-white) !important;
}

.ashby-application-form-input-file-dropzone,
.ashby-application-form-autofill-uploader {
  padding: 28px !important;
  background: var(--helios-ink) !important;
  border: 1px dashed var(--helios-border-strong) !important;
  border-radius: var(--borderRadiusContainer) !important;
  text-align: center !important;
  transition: background-color 160ms ease, border-color 160ms ease !important;
}

.ashby-application-form-input-file-dropzone:hover,
.ashby-application-form-autofill-uploader:hover {
  background: var(--helios-surface-hover) !important;
  border-color: var(--helios-white) !important;
}

/* Form status messages */
.ashby-application-form-success-container,
.ashby-application-form-failure-container,
.ashby-application-form-blocked-application-container {
  padding: 28px !important;
  border-radius: var(--borderRadiusContainer) !important;
  font-family: var(--fontFamily) !important;
  text-align: center !important;
}

.ashby-application-form-success-container {
  background: rgba(58, 166, 94, 0.12) !important;
  border: 1px solid rgba(104, 211, 145, 0.42) !important;
  color: #b8f2cb !important;
}

.ashby-application-form-failure-container {
  background: rgba(209, 63, 63, 0.12) !important;
  border: 1px solid rgba(255, 125, 125, 0.42) !important;
  color: #ffb0b0 !important;
}

.ashby-application-form-blocked-application-container {
  background: rgba(208, 161, 42, 0.12) !important;
  border: 1px solid rgba(244, 199, 94, 0.42) !important;
  color: #ffe09a !important;
}

.ashby-application-form-texting-consent-description {
  margin-top: 8px !important;
  color: var(--helios-subtle) !important;
  font-family: var(--fontFamily) !important;
  font-size: 12px !important;
  line-height: 1.5 !important;
}

.ashby-application-form-autofill-input-form-alert {
  margin: 12px 0 !important;
  padding: 12px 16px !important;
  border-radius: var(--borderRadiusControl) !important;
  font-family: var(--fontFamily) !important;
  font-size: 14px !important;
}

.ashby-application-form-autofill-input-form-alert[data-highlight="positive"] {
  background: rgba(58, 166, 94, 0.12) !important;
  border: 1px solid rgba(104, 211, 145, 0.42) !important;
  color: #b8f2cb !important;
}

.ashby-application-form-autofill-input-form-alert[data-highlight="negative"] {
  background: rgba(209, 63, 63, 0.12) !important;
  border: 1px solid rgba(255, 125, 125, 0.42) !important;
  color: #ffb0b0 !important;
}

.ashby-survey-form-container {
  margin-top: 40px !important;
  padding-top: 32px !important;
  border-top: 1px solid var(--helios-border) !important;
}

/* Links and keyboard focus */
a {
  color: var(--helios-white) !important;
  text-decoration-color: var(--helios-border-strong) !important;
  text-underline-offset: 3px !important;
}

a:hover {
  color: var(--helios-white) !important;
  text-decoration-color: var(--helios-white) !important;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible,
[role="tab"]:focus-visible {
  outline: 2px solid var(--helios-focus) !important;
  outline-offset: 3px !important;
}

/* Ashby footer */
footer {
  color: var(--helios-subtle) !important;
  border-top-color: var(--helios-border) !important;
}

footer a {
  color: var(--helios-muted) !important;
}

/* Responsive adjustments */
@media (max-width: 768px) {
  .ashby-job-board-heading {
    font-size: 34px !important;
  }

  .ashby-department-heading {
    font-size: 26px !important;
  }

  .ashby-job-posting-heading {
    font-size: 36px !important;
  }

  .ashby-job-posting-header,
  .ashby-job-posting-brief,
  .ashby-job-posting-left-pane,
  .ashby-job-posting-right-pane {
    padding: 20px !important;
  }

  .ashby-job-posting-left-pane,
  .ashby-job-posting-right-pane {
    border-radius: var(--borderRadiusContainer) !important;
  }

  .ashby-application-form-section-header-title {
    font-size: 26px !important;
  }

  .ashby-application-form-submit-button {
    width: 100% !important;
    padding: 14px 20px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}
