/* ==========================================================================
   Salience Labs — Ashby job board custom CSS
   Dark theme, signal green accent. Upload under Settings → Job Board → Custom CSS.
   ========================================================================== */

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

/* --------------------------------------------------------------------------
   1. Tokens
   -------------------------------------------------------------------------- */
:root {
  /* Ashby's own variables — overridden here so admin theme settings don't matter. */
  --colorPrimary900: #11e297;
  --colorPrimary600: #3bffb4;
  --colorAppBackground: #000000;
  --widthMaxJobBoard: 880px;
  --borderRadiusContainer: 14px;
  --borderRadiusControl: 8px;
  --borderRadiusButton: 999px;
  --fontFamily: "Manrope", "Graphik", "Helvetica Neue", Helvetica, Arial, sans-serif;

  /* Salience Labs brand */
  --sl-black: #000000;
  --sl-surface: #0e1011;
  --sl-surface-2: #141618;
  --sl-surface-hover: #1a1d1f;
  --sl-border: #2a2e32;
  --sl-border-strong: #3d4247;
  --sl-green: #11e297;
  --sl-green-hover: #3bffb4;
  --sl-green-dim: rgba(17, 226, 151, 0.12);
  --sl-text: #f3f3f3;
  --sl-text-secondary: #a8adb2;
  --sl-text-muted: #6f7579;
  --sl-glow: 0 0 0 1px rgba(17, 226, 151, 0.45), 0 6px 28px rgba(17, 226, 151, 0.16);
  --sl-mono: "Roboto Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --sl-ease: cubic-bezier(0.16, 1, 0.3, 1);
}

/* --------------------------------------------------------------------------
   2. Page shell
   -------------------------------------------------------------------------- */
html,
body {
  background: var(--sl-black) !important;
  color: var(--sl-text) !important;
  font-family: var(--fontFamily) !important;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body ::selection {
  background: var(--sl-green);
  color: #000;
}

body > div {
  background: transparent;
}

a {
  color: var(--sl-green);
  text-decoration: none;
  transition: color 120ms var(--sl-ease);
}

a:hover {
  color: var(--sl-green-hover);
  text-decoration: underline;
  text-underline-offset: 3px;
}

.ashby-job-posting-brief a:focus-visible,
.ashby-job-board-filter select:focus-visible,
.ashby-application-form-container input:focus-visible,
.ashby-application-form-container textarea:focus-visible,
.ashby-application-form-container select:focus-visible,
.ashby-application-form-submit-button:focus-visible,
.ashby-job-board-back-to-all-jobs-button:focus-visible {
  outline: 2px solid var(--sl-green);
  outline-offset: 2px;
}

/* --------------------------------------------------------------------------
   3. Job board header + counts
   -------------------------------------------------------------------------- */
.ashby-job-board-heading {
  font-size: 2.75rem;
  line-height: 1.05;
  letter-spacing: -0.02em;
  font-weight: 700;
  color: var(--sl-text);
  margin-bottom: 8px;
}

.ashby-job-board-heading-count {
  display: inline-block;
  font-family: var(--sl-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sl-green);
  background: var(--sl-green-dim);
  border: 1px solid rgba(17, 226, 151, 0.28);
  border-radius: 999px;
  padding: 4px 12px;
  margin-left: 12px;
  vertical-align: middle;
}

/* --------------------------------------------------------------------------
   4. Filters
   -------------------------------------------------------------------------- */
.ashby-job-board-filters-label,
.ashby-job-board-reset-filters-label {
  font-family: var(--sl-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sl-text-muted);
}

.ashby-job-board-reset-filters-label {
  color: var(--sl-green);
  cursor: pointer;
  transition: color 120ms var(--sl-ease);
}

.ashby-job-board-reset-filters-label:hover {
  color: var(--sl-green-hover);
}

/* Ashby's filter is a custom combobox: a wrapper with an opaque white inner
   control. Style the wrapper, then flatten every descendant surface. */
.ashby-job-board-filter {
  background-color: var(--sl-surface-2) !important;
  border: 1px solid var(--sl-border) !important;
  border-radius: var(--borderRadiusControl) !important;
  color: var(--sl-text) !important;
  font-family: var(--fontFamily) !important;
  transition: border-color 120ms var(--sl-ease), background-color 120ms var(--sl-ease),
    box-shadow 240ms var(--sl-ease);
}

.ashby-job-board-filter *,
.ashby-job-board-filter *::before,
.ashby-job-board-filter *::after {
  background-color: transparent !important;
  background-image: none !important;
  border-color: transparent !important;
  box-shadow: none !important;
  color: var(--sl-text) !important;
  font-family: var(--fontFamily) !important;
  font-size: 0.9375rem;
}

.ashby-job-board-filter select,
.ashby-job-board-filter input,
.ashby-job-board-filter button,
.ashby-job-board-filter [role="button"],
.ashby-job-board-filter [role="combobox"] {
  appearance: none;
  -webkit-appearance: none;
  width: 100%;
  padding: 10px 13px;
  outline: none;
}

.ashby-job-board-filter svg,
.ashby-job-board-filter svg * {
  color: var(--sl-text-secondary) !important;
  fill: currentColor !important;
  stroke: currentColor !important;
}

.ashby-job-board-filter input::placeholder,
.ashby-job-board-filter [data-placeholder] {
  color: var(--sl-text-muted) !important;
  opacity: 1;
}

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

.ashby-job-board-filter:focus-within {
  border-color: var(--sl-green) !important;
  box-shadow: var(--sl-glow);
}

/* --------------------------------------------------------------------------
   5. Department / team headings
   -------------------------------------------------------------------------- */
.ashby-department-heading,
.ashby-job-posting-brief-department-heading {
  font-family: var(--sl-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sl-text-muted);
  font-weight: 500;
  padding-bottom: 10px;
  margin-top: 40px;
  border-bottom: 1px solid var(--sl-border);
}

.ashby-department-heading-level,
.ashby-job-posting-brief-department-heading-level {
  color: var(--sl-text-secondary);
  font-weight: 500;
}

/* --------------------------------------------------------------------------
   6. Job list — bordered cards on black, green glow on hover
   -------------------------------------------------------------------------- */
.ashby-job-posting-brief-list {
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.ashby-job-posting-brief {
  background: var(--sl-surface-2);
  border: 1px solid var(--sl-border);
  border-radius: var(--borderRadiusContainer);
  padding: 20px 22px;
  margin-bottom: 0;
  transition: transform 240ms var(--sl-ease), border-color 240ms var(--sl-ease),
    box-shadow 240ms var(--sl-ease), background 240ms var(--sl-ease);
}

.ashby-job-posting-brief:hover {
  transform: translateY(-2px);
  background: var(--sl-surface-hover);
  border-color: transparent;
  box-shadow: var(--sl-glow);
}

.ashby-job-posting-brief a {
  text-decoration: none;
}

.ashby-job-posting-brief-title {
  font-size: 1.125rem;
  font-weight: 600;
  letter-spacing: -0.01em;
  color: var(--sl-text);
  transition: color 120ms var(--sl-ease);
}

.ashby-job-posting-brief:hover .ashby-job-posting-brief-title {
  color: var(--sl-green);
}

.ashby-job-posting-brief-details {
  margin-top: 6px;
  font-size: 0.875rem;
  color: var(--sl-text-secondary);
}

.ashby-job-posting-brief-details span,
.ashby-job-posting-brief-details p {
  color: var(--sl-text-secondary);
}

/* --------------------------------------------------------------------------
   7. Job posting page
   -------------------------------------------------------------------------- */
.ashby-job-posting-header {
  border-bottom: 1px solid var(--sl-border);
  padding-bottom: 24px;
  margin-bottom: 32px;
}

.ashby-job-posting-heading {
  font-size: 2.25rem;
  line-height: 1.1;
  letter-spacing: -0.02em;
  font-weight: 700;
  color: var(--sl-text);
}

.ashby-job-board-back-to-all-jobs-button {
  font-family: var(--sl-mono);
  font-size: 0.6875rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--sl-text-secondary);
  background: transparent;
  border: 1px solid var(--sl-border);
  border-radius: 999px;
  padding: 7px 16px;
  cursor: pointer;
  transition: color 120ms var(--sl-ease), border-color 120ms var(--sl-ease);
}

.ashby-job-board-back-to-all-jobs-button:hover {
  color: var(--sl-green);
  border-color: var(--sl-green);
}

.ashby-job-posting-left-pane,
.ashby-job-posting-right-pane {
  color: var(--sl-text-secondary);
}

.ashby-job-posting-left-pane h1,
.ashby-job-posting-left-pane h2,
.ashby-job-posting-left-pane h3,
.ashby-job-posting-right-pane-overview-tab h1,
.ashby-job-posting-right-pane-overview-tab h2,
.ashby-job-posting-right-pane-overview-tab h3 {
  color: var(--sl-text);
  letter-spacing: -0.01em;
  font-weight: 600;
  margin-top: 28px;
  margin-bottom: 10px;
}

.ashby-job-posting-left-pane p,
.ashby-job-posting-right-pane-overview-tab p {
  line-height: 1.65;
  color: var(--sl-text-secondary);
}

/* Posting description lists — green markers instead of default bullets.
   Use these for the Perks & Benefits list written in the Ashby editor. */
.ashby-job-posting-left-pane ul,
.ashby-job-posting-right-pane-overview-tab ul {
  list-style: none;
  padding-left: 0;
  display: grid;
  gap: 10px;
  margin: 16px 0;
}

.ashby-job-posting-left-pane ul li,
.ashby-job-posting-right-pane-overview-tab ul li {
  position: relative;
  padding-left: 22px;
  line-height: 1.6;
  color: var(--sl-text-secondary);
}

.ashby-job-posting-left-pane ul li::before,
.ashby-job-posting-right-pane-overview-tab ul li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 10px;
  height: 1px;
  background: var(--sl-green);
}

.ashby-job-posting-left-pane strong,
.ashby-job-posting-right-pane-overview-tab strong {
  color: var(--sl-text);
  font-weight: 600;
}

.ashby-job-posting-left-pane hr {
  border: 0;
  border-top: 1px solid var(--sl-border);
  margin: 32px 0;
}

/* Tabs */
.ashby-job-posting-right-pane-tab-slider {
  background: var(--sl-surface-2);
  border: 1px solid var(--sl-border);
  border-radius: 999px;
  padding: 4px;
}

.ashby-job-posting-right-pane-tab-slider button,
.ashby-job-posting-right-pane-tab-slider [role="tab"] {
  border-radius: 999px !important;
  color: var(--sl-text-secondary) !important;
  background: transparent !important;
  font-weight: 500;
  font-size: 0.875rem;
  border: 0 !important;
  transition: color 120ms var(--sl-ease), background 120ms var(--sl-ease);
}

.ashby-job-posting-right-pane-tab-slider [aria-selected="true"],
.ashby-job-posting-right-pane-tab-slider button[data-state="active"] {
  background: var(--sl-green) !important;
  color: #000 !important;
  font-weight: 600;
}

/* --------------------------------------------------------------------------
   8. Application form
   -------------------------------------------------------------------------- */
.ashby-application-form-container,
.ashby-survey-form-container {
  background: var(--sl-surface);
  border: 1px solid var(--sl-border);
  border-radius: var(--borderRadiusContainer);
  padding: 28px;
}

.ashby-application-form-section-container + .ashby-application-form-section-container {
  margin-top: 32px;
  padding-top: 32px;
  border-top: 1px solid var(--sl-border);
}

.ashby-application-form-section-header-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--sl-text);
  letter-spacing: -0.01em;
}

.ashby-application-form-section-header-description,
.ashby-application-form-question-description,
.ashby-application-form-texting-consent-description {
  font-size: 0.8125rem;
  line-height: 1.55;
  color: var(--sl-text-muted);
  margin-top: 4px;
}

.ashby-application-form-field-entry {
  margin-top: 20px;
}

.ashby-application-form-question-title {
  font-size: 0.8125rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  color: var(--sl-text);
  margin-bottom: 6px;
}

/* Inputs */
.ashby-application-form-container input[type="text"],
.ashby-application-form-container input[type="email"],
.ashby-application-form-container input[type="tel"],
.ashby-application-form-container input[type="url"],
.ashby-application-form-container input[type="number"],
.ashby-application-form-container input[type="date"],
.ashby-application-form-container textarea,
.ashby-application-form-container select,
.ashby-survey-form-container input,
.ashby-survey-form-container textarea,
.ashby-survey-form-container select {
  width: 100%;
  background: var(--sl-black) !important;
  color: var(--sl-text) !important;
  border: 1px solid var(--sl-border) !important;
  border-radius: var(--borderRadiusControl) !important;
  padding: 11px 13px;
  font-family: var(--fontFamily) !important;
  font-size: 0.9375rem;
  transition: border-color 120ms var(--sl-ease), box-shadow 240ms var(--sl-ease);
}

.ashby-application-form-container input::placeholder,
.ashby-application-form-container textarea::placeholder {
  color: var(--sl-text-muted);
}

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

.ashby-application-form-container input:focus,
.ashby-application-form-container textarea:focus,
.ashby-application-form-container select:focus {
  border-color: var(--sl-green) !important;
  box-shadow: var(--sl-glow);
  outline: none;
}

/* Chrome autofill repaint */
.ashby-application-form-container input:-webkit-autofill,
.ashby-application-form-container input:-webkit-autofill:focus {
  -webkit-text-fill-color: var(--sl-text);
  -webkit-box-shadow: 0 0 0 1000px var(--sl-surface-2) inset;
  caret-color: var(--sl-text);
}

/* Checkboxes / radios */
.ashby-application-form-container input[type="checkbox"],
.ashby-application-form-container input[type="radio"] {
  width: auto;
  accent-color: var(--sl-green);
}

/* Submit button */
.ashby-application-form-submit-button {
  background: var(--sl-green) !important;
  color: #000 !important;
  border: 0 !important;
  border-radius: var(--borderRadiusButton) !important;
  font-family: var(--fontFamily) !important;
  font-weight: 600;
  font-size: 0.9375rem;
  padding: 13px 32px;
  cursor: pointer;
  transition: background 120ms var(--sl-ease), box-shadow 240ms var(--sl-ease),
    transform 120ms var(--sl-ease);
}

.ashby-application-form-submit-button:hover {
  background: var(--sl-green-hover) !important;
  box-shadow: 0 6px 28px rgba(17, 226, 151, 0.28);
}

.ashby-application-form-submit-button:active {
  transform: translateY(1px);
}

.ashby-application-form-submit-button:disabled {
  background: var(--sl-surface-hover) !important;
  color: var(--sl-text-muted) !important;
  box-shadow: none;
  cursor: not-allowed;
}

/* --------------------------------------------------------------------------
   9. Resume autofill / upload
   -------------------------------------------------------------------------- */
.ashby-application-form-autofill-pane,
.ashby-application-form-autofill-input-root {
  background: var(--sl-surface-2);
  border: 1px dashed var(--sl-border-strong);
  border-radius: var(--borderRadiusContainer);
  padding: 22px;
  transition: border-color 240ms var(--sl-ease), box-shadow 240ms var(--sl-ease),
    background 240ms var(--sl-ease);
}

.ashby-application-form-autofill-input-root:hover,
.ashby-application-form-autofill-input-root[data-state="drag"] {
  border-color: var(--sl-green);
  background: rgba(17, 226, 151, 0.05);
  box-shadow: var(--sl-glow);
}

.ashby-application-form-autofill-input-title {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--sl-text);
}

.ashby-application-form-autofill-input-description {
  font-size: 0.8125rem;
  color: var(--sl-text-muted);
  margin-top: 4px;
}

.ashby-application-form-autofill-input-icon {
  color: var(--sl-green);
}

.ashby-application-form-autofill-input-drag-layer[data-state="active"],
.ashby-application-form-autofill-input-pending-layer[data-state="active"] {
  background: rgba(0, 0, 0, 0.72);
  backdrop-filter: blur(6px);
  border-radius: var(--borderRadiusContainer);
  color: var(--sl-green);
}

.ashby-application-form-autofill-uploader button,
.ashby-application-form-autofill-uploader [role="button"] {
  border-radius: var(--borderRadiusButton) !important;
  border: 1px solid var(--sl-green) !important;
  background: transparent !important;
  color: var(--sl-green) !important;
  font-weight: 600;
  padding: 9px 20px;
}

.ashby-application-form-autofill-uploader button:hover {
  background: var(--sl-green-dim) !important;
}

/* --------------------------------------------------------------------------
   10. Alerts, success, failure
   -------------------------------------------------------------------------- */
.ashby-application-form-autofill-input-form-alert {
  border-radius: var(--borderRadiusControl);
  padding: 10px 14px;
  font-size: 0.8125rem;
}

.ashby-application-form-autofill-input-form-alert[data-highlight="positive"] {
  background: var(--sl-green-dim);
  border: 1px solid rgba(17, 226, 151, 0.35);
  color: var(--sl-green);
}

.ashby-application-form-autofill-input-form-alert[data-highlight="negative"] {
  background: rgba(255, 92, 57, 0.12);
  border: 1px solid rgba(255, 92, 57, 0.4);
  color: #ff8a6d;
}

.ashby-application-form-success-container,
.ashby-application-form-failure-container,
.ashby-application-form-blocked-application-container {
  border-radius: var(--borderRadiusContainer);
  padding: 28px;
  text-align: center;
  font-size: 1rem;
  line-height: 1.6;
}

.ashby-application-form-success-container {
  background: var(--sl-green-dim);
  border: 1px solid rgba(17, 226, 151, 0.35);
  color: var(--sl-text);
  box-shadow: var(--sl-glow);
}

.ashby-application-form-failure-container {
  background: rgba(255, 92, 57, 0.1);
  border: 1px solid rgba(255, 92, 57, 0.4);
  color: #ffb8a5;
}

.ashby-application-form-blocked-application-container {
  background: var(--sl-surface-2);
  border: 1px solid var(--sl-border);
  color: var(--sl-text-secondary);
}

/* --------------------------------------------------------------------------
   11. Mobile
   -------------------------------------------------------------------------- */
@media (max-width: 768px) {
  .ashby-job-board-heading {
    font-size: 2rem;
  }

  .ashby-job-posting-heading {
    font-size: 1.625rem;
  }

  .ashby-job-posting-brief {
    padding: 16px 18px;
  }

  .ashby-application-form-container,
  .ashby-survey-form-container {
    padding: 20px 16px;
  }

  .ashby-application-form-submit-button {
    width: 100%;
  }

  .ashby-job-board-heading-count {
    margin-left: 0;
    margin-top: 10px;
  }
}

/* --------------------------------------------------------------------------
   12. Accessibility / print
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  * {
    transition-duration: 1ms !important;
    animation-duration: 1ms !important;
  }
}

@media print {
  html,
  body {
    background: #fff !important;
    color: #000 !important;
  }

  .ashby-job-posting-brief {
    background: #fff;
    border-color: #ccc;
  }
}
