/* ============================================================
   Ledge — Custom Ashby Job Board CSS
   Matches the brand/theme of ledge.co/careers
   Live-tested on jobs.ashbyhq.com/ledge via Chrome DevTools
   Colors extracted directly from ledge.co source
   ============================================================ */

@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root {
  /* Ashby built-in theme overrides */
  --colorPrimary900: #00865B;
  --colorPrimary600: #00865B;
  --widthMaxJobBoard: 760px;
  --borderRadiusContainer: 0px;
  --borderRadiusControl: 8px;
  --borderRadiusButton: 100px;
  --fontFamily: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;
  --colorAppBackground: #f7f8f9;

  /* Ledge exact palette */
  --ledge-bg: #f7f8f9;
  --ledge-text-primary: #1a1a1a;
  --ledge-text-inactive: #1d1d1d;
  --ledge-text-secondary: #6b7280;
  --ledge-green-lime: #a8f03d;    /* bullets, submit CTA */
  --ledge-green-brand: #00865B;   /* active tab, upload buttons, focus rings */
  --ledge-divider: #e2e4e8;
  --ledge-row-hover: #f0f1f3;
}

/* ============================================================
   GLOBAL
   ============================================================ */
body, html {
  background-color: var(--ledge-bg) !important;
  font-family: var(--fontFamily) !important;
  -webkit-font-smoothing: antialiased;
}

/* ============================================================
   JOB BOARD — LISTING PAGE
   ============================================================ */
.ashby-job-board-heading {
  font-family: var(--fontFamily) !important;
  font-size: 2.25rem !important;
  font-weight: 700 !important;
  color: var(--ledge-text-primary) !important;
  letter-spacing: -0.03em !important;
}

.ashby-job-board-heading-count {
  display: none !important;
}

.ashby-job-board-filters-label {
  font-family: var(--fontFamily) !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  color: var(--ledge-text-secondary) !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}

.ashby-job-board-filter {
  font-family: var(--fontFamily) !important;
  border: 1px solid var(--ledge-divider) !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: var(--ledge-text-primary) !important;
  font-size: 0.875rem !important;
}

.ashby-job-board-reset-filters-label {
  font-family: var(--fontFamily) !important;
  color: var(--ledge-green-brand) !important;
  font-size: 0.8rem !important;
  font-weight: 500 !important;
}

/* ---- Department headings — accordion row style ---- */
.ashby-department-heading,
.ashby-job-posting-brief-department-heading {
  font-family: var(--fontFamily) !important;
  font-size: 1.05rem !important;
  font-weight: 600 !important;
  color: var(--ledge-text-primary) !important;
  padding: 1.1rem 0 !important;
  border-top: 1.5px solid var(--ledge-divider) !important;
  border-bottom: none !important;
  margin: 0 !important;
  background: transparent !important;
}

.ashby-department-heading-level,
.ashby-job-posting-brief-department-heading-level {
  font-family: var(--fontFamily) !important;
  font-size: 0.9rem !important;
  font-weight: 500 !important;
  color: var(--ledge-text-secondary) !important;
  padding: 0.5rem 0 !important;
  margin: 0 !important;
  border: none !important;
}

/* ---- Strip Ashby's internal card/section wrappers ---- */
[class*="_section_"] {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  border-radius: 0 !important;
}

[class*="_content_"] {
  padding: 0 !important;
  background: transparent !important;
}

/* ---- Individual job rows ---- */
.ashby-job-posting-brief {
  background: transparent !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  border-bottom: 1px solid var(--ledge-divider) !important;
  margin: 0 !important;
}

.ashby-job-posting-brief:hover {
  background-color: var(--ledge-row-hover) !important;
}

a[class*="_container_"] {
  display: block !important;
  text-decoration: none !important;
}

.ashby-job-posting-brief-details {
  padding: 0.9rem 0 !important;
}

.ashby-job-posting-brief-title {
  font-family: var(--fontFamily) !important;
  font-size: 0.9375rem !important;
  font-weight: 500 !important;
  color: var(--ledge-text-primary) !important;
  text-decoration: none !important;
}

.ashby-job-posting-brief-details * {
  font-family: var(--fontFamily) !important;
  font-size: 0.8125rem !important;
  color: var(--ledge-text-secondary) !important;
}

/* ============================================================
   JOB POSTING PAGE — INDIVIDUAL ROLE
   ============================================================ */

/* Back button */
.ashby-job-board-back-to-all-jobs-button {
  font-family: var(--fontFamily) !important;
  border: 1px solid var(--ledge-divider) !important;
  border-radius: 100px !important;
  background: transparent !important;
  color: var(--ledge-text-primary) !important;
  font-weight: 500 !important;
  font-size: 0.875rem !important;
  padding: 0.45rem 1.2rem !important;
}

/* Job title */
.ashby-job-posting-heading {
  font-family: var(--fontFamily) !important;
  font-size: 2rem !important;
  font-weight: 700 !important;
  color: var(--ledge-text-primary) !important;
  letter-spacing: -0.03em !important;
  line-height: 1.15 !important;
}

/* Left pane metadata */
.ashby-job-posting-left-pane {
  font-family: var(--fontFamily) !important;
  font-size: 0.875rem !important;
  color: var(--ledge-text-secondary) !important;
}

.ashby-job-posting-left-pane span,
.ashby-job-posting-left-pane div,
.ashby-job-posting-left-pane p {
  font-family: var(--fontFamily) !important;
  font-size: 0.8125rem !important;
}

/* Right pane body copy */
.ashby-job-posting-right-pane {
  font-family: var(--fontFamily) !important;
  font-size: 0.9375rem !important;
  color: var(--ledge-text-primary) !important;
  line-height: 1.75 !important;
}

/* Section headings */
.ashby-job-posting-right-pane h1,
.ashby-job-posting-right-pane h2,
.ashby-job-posting-right-pane h3 {
  font-family: var(--fontFamily) !important;
  font-weight: 700 !important;
  color: var(--ledge-text-primary) !important;
  letter-spacing: -0.02em !important;
  margin-top: 2rem !important;
  margin-bottom: 0.75rem !important;
}
.ashby-job-posting-right-pane h1 { font-size: 1.35rem !important; }
.ashby-job-posting-right-pane h2 { font-size: 1.2rem !important; }
.ashby-job-posting-right-pane h3 { font-size: 1rem !important; }

/* Bullet lists — lime green square markers matching ledge.co */
.ashby-job-posting-right-pane ul {
  list-style: none !important;
  padding-left: 0 !important;
  margin: 0.5rem 0 1rem 0 !important;
}

.ashby-job-posting-right-pane ul li {
  font-family: var(--fontFamily) !important;
  font-size: 0.9375rem !important;
  color: var(--ledge-text-primary) !important;
  padding: 0.2rem 0 0.2rem 1.4rem !important;
  position: relative !important;
  line-height: 1.65 !important;
}

.ashby-job-posting-right-pane ul li::before {
  content: '' !important;
  position: absolute !important;
  left: 0 !important;
  top: 0.6em !important;
  width: 7px !important;
  height: 7px !important;
  background-color: #1a1a1a !important;
  border-radius: 1px !important;
}

.ashby-job-posting-right-pane strong,
.ashby-job-posting-right-pane b {
  font-weight: 700 !important;
  color: var(--ledge-text-primary) !important;
}

/* ============================================================
   TABS — exact match to ledge.co
   Active:   #00865B dark forest green text + 2px underline
   Inactive: #1d1d1d near-black, no decoration
   ============================================================ */
.ashby-job-posting-right-pane-overview-tab,
.ashby-job-posting-right-pane-application-tab {
  font-family: var(--fontFamily) !important;
  font-size: 0.9375rem !important;
  font-weight: 400 !important;
  color: var(--ledge-text-inactive) !important;
  background: transparent !important;
  border: none !important;
  padding: 0.75rem 0 !important;
}

.ashby-job-posting-right-pane-overview-tab[data-state='active'],
.ashby-job-posting-right-pane-application-tab[data-state='active'] {
  color: var(--ledge-green-brand) !important;
}

.ashby-job-posting-right-pane-tab-slider {
  background-color: var(--ledge-green-brand) !important;
  height: 2px !important;
  border-radius: 0 !important;
}

/* ============================================================
   APPLICATION FORM
   ============================================================ */
.ashby-application-form-container {
  font-family: var(--fontFamily) !important;
}

.ashby-application-form-section-container {
  background: transparent !important;
}

.ashby-application-form-section-header-title {
  font-family: var(--fontFamily) !important;
  font-size: 1rem !important;
  font-weight: 600 !important;
  color: var(--ledge-text-primary) !important;
}

.ashby-application-form-question-title {
  font-family: var(--fontFamily) !important;
  font-size: 0.875rem !important;
  font-weight: 500 !important;
  color: var(--ledge-text-primary) !important;
}

.ashby-application-form-question-description {
  font-family: var(--fontFamily) !important;
  font-size: 0.8rem !important;
  color: var(--ledge-text-secondary) !important;
}

/* ---- Input fields — neutral border replacing Ashby's blue-grey ---- */
.ashby-application-form-field-entry input,
.ashby-application-form-field-entry textarea,
.ashby-application-form-field-entry select,
input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
textarea {
  font-family: var(--fontFamily) !important;
  font-size: 0.875rem !important;
  border: 1px solid var(--ledge-divider) !important;
  border-radius: 8px !important;
  background: #fff !important;
  color: var(--ledge-text-primary) !important;
  padding: 0.625rem 0.875rem !important;
  transition: border-color 0.15s ease !important;
}

input:focus,
textarea:focus,
select:focus {
  border-color: var(--ledge-green-brand) !important;
  box-shadow: 0 0 0 3px rgba(0, 134, 91, 0.1) !important;
  outline: none !important;
}

input::placeholder,
textarea::placeholder {
  color: #adb5bd !important;
}

/* ---- Autofill section ---- */
.ashby-application-form-autofill-pane {
  background: #f9fafb !important;
  border: 1px solid var(--ledge-divider) !important;
  border-radius: 8px !important;
}

.ashby-application-form-autofill-input-title {
  font-family: var(--fontFamily) !important;
  font-weight: 600 !important;
  font-size: 0.875rem !important;
  color: var(--ledge-text-primary) !important;
}

.ashby-application-form-autofill-input-description {
  font-family: var(--fontFamily) !important;
  font-size: 0.8rem !important;
  color: var(--ledge-text-secondary) !important;
}

/* Resume upload drop zone */
.ashby-application-form-autofill-uploader {
  border: 2px dashed var(--ledge-divider) !important;
  border-radius: 8px !important;
  background: #fafafa !important;
}

/* 
  Upload buttons — Ashby's internal _secondary_ class was rendering
  lime-green from their theme variable. Override to brand dark green.
*/
[class*="_secondary_"] {
  color: var(--ledge-green-brand) !important;
  border-color: var(--ledge-green-brand) !important;
  background: transparent !important;
}

[class*="_secondary_"]:hover {
  background: rgba(0, 134, 91, 0.06) !important;
}

/* ---- Submit button — black pill with white text ---- */
.ashby-application-form-submit-button,
[class*="_submitButton_"],
[class*="_primary_"] {
  font-family: var(--fontFamily) !important;
  font-size: 0.9rem !important;
  font-weight: 600 !important;
  background-color: #1a1a1a !important;
  color: #ffffff !important;
  border: none !important;
  border-radius: 100px !important;
  padding: 0.875rem 2.5rem !important;
  cursor: pointer !important;
  width: 100% !important;
  letter-spacing: -0.01em !important;
  margin-top: 1.5rem !important;
  margin-bottom: 2.5rem !important;
  display: block !important;
}

.ashby-application-form-submit-button:hover,
[class*="_submitButton_"]:hover,
[class*="_primary_"]:hover {
  filter: brightness(1.07) !important;
  background-color: #1a1a1a !important;
}

/* ---- Gray box fix ---- */
/* Ashby renders a classless <div> wrapper around the submit button
   with background rgb(250,249,245). Target it with CSS :has() */
div:has(> .ashby-application-form-submit-button),
div:has(> [class*="_submitButton_"]) {
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
  border: none !important;
}

/* Strip bottom padding from the _details_ content wrapper */
[class*="_details_"] {
  padding-bottom: 0 !important;
}

/* ---- Success / failure states ---- */
.ashby-application-form-success-container {
  background-color: rgba(168, 240, 61, 0.12) !important;
  border: 1px solid rgba(168, 240, 61, 0.4) !important;
  border-radius: 8px !important;
  padding: 1.25rem !important;
  color: #2d6e10 !important;
  font-family: var(--fontFamily) !important;
}

.ashby-application-form-failure-container {
  background-color: #fff0f0 !important;
  border: 1px solid #fca5a5 !important;
  border-radius: 8px !important;
  padding: 1.25rem !important;
  color: #991b1b !important;
  font-family: var(--fontFamily) !important;
}