:root {
  --page-background: #f4f7fa;
  --header-background: #173b57;
  --header-text: #ffffff;
  --card-border: #d8e0e7;
  --selected-background: #eaf4ff;
  --selected-border: #0d6efd;
  --income-background: #eef8f1;
}

* {
  box-sizing: border-box;
}

body {
  min-height: 100vh;
  margin: 0;
  background: var(--page-background);
  color: #212529;
}

.site-header {
  background: var(--header-background);
  color: var(--header-text);
  box-shadow: 0 0.125rem 0.5rem rgb(0 0 0 / 15%);
}

.site-header h1 {
  font-size: clamp(1.7rem, 4vw, 2.5rem);
}

.card {
  border: 1px solid var(--card-border);
  border-radius: 0.8rem;
}

.form-label {
  font-weight: 600;
}

.required-marker {
  color: #b02a37;
}

#occupationResults:empty {
  display: none;
}

.occupation-result {
  padding: 1rem;
  text-align: left;
  border-left-width: 4px;
}

.occupation-result:hover,
.occupation-result:focus {
  background: #f2f8ff;
}

.occupation-result.selected {
  background: var(--selected-background);
  border-left-color: var(--selected-border);
}

.occupation-title {
  font-size: 1.05rem;
}

.occupation-code {
  margin-top: 0.2rem;
  color: #5c636a;
  font-size: 0.9rem;
}

.occupation-description {
  margin-top: 0.65rem;
  margin-bottom: 0;
  color: #343a40;
}

.earnings-summary {
  padding: 1rem;
  background: var(--income-background);
  border: 1px solid #badbcc;
  border-radius: 0.5rem;
}

.median-income {
  color: #146c43;
  font-size: 1.8rem;
  font-weight: 700;
}

.table th {
  white-space: nowrap;
}

#searchSpinner {
  width: 1rem;
  height: 1rem;
}

footer {
  color: #5c636a;
}


#federalSourcesHeading {
  color: #173b57;
}

.source-item {
  padding-left: 1rem;
  border-left: 4px solid #c7d6e2;
}

.source-item h3 {
  font-weight: 700;
}

.source-item a {
  color: #0b5ed7;
  text-decoration: none;
}

.source-item a:hover,
.source-item a:focus {
  text-decoration: underline;
}

section[aria-labelledby="federalSourcesHeading"] .card-body {
  background: #f8fbfd;
}


@media (max-width: 575.98px) {
  .card-body {
    padding: 1.1rem !important;
  }

  .table {
    font-size: 0.9rem;
  }

  .median-income {
    font-size: 1.5rem;
  }
}

.careeronestop-brand {
  display: flex;
  align-items: center;
}

.careeronestop-logo {
  display: block;
  width: 220px;
  max-width: 100%;
  height: auto;
  background: #ffffff;
  padding: 0.35rem;
  border-radius: 0.25rem;
}

#jobsSummary:empty,
#jobsSource:empty {
  display: none;
}

.job-link {
  white-space: nowrap;
}


.print-only {
  display: none;
}

.report-shell {
  max-width: 8.5in;
  margin: 0 auto;
  color: #111111;
  background: #ffffff;
}

.report-header {
  padding-bottom: 0.22in;
  border-bottom: 2px solid #1f2933;
  margin-bottom: 0.22in;
}

.report-brand-row {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 0.25in;
}

.report-kicker,
.report-section-kicker {
  margin: 0 0 0.04in;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  font-size: 9pt;
  font-weight: 700;
  color: #4b5563;
}

.report-header h1 {
  margin: 0;
  font-size: 24pt;
  line-height: 1.05;
}

.report-subtitle {
  margin: 0.06in 0 0;
  font-size: 10.5pt;
  color: #4b5563;
}

.report-logo {
  width: 1.65in;
  height: auto;
}

.report-logo-link {
  flex: 0 0 auto;
}

.report-section {
  margin: 0 0 0.22in;
  break-inside: avoid;
  page-break-inside: avoid;
}

.report-section h2 {
  margin: 0 0 0.1in;
  font-size: 14pt;
  line-height: 1.2;
  color: #173b57;
}

.report-section h3 {
  margin: 0 0 0.04in;
  font-size: 10pt;
}

.report-section p {
  margin: 0 0 0.09in;
  font-size: 9.5pt;
  line-height: 1.35;
}

.report-section-heading {
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
  gap: 0.2in;
  border-bottom: 1px solid #aab4bd;
  padding-bottom: 0.06in;
  margin-bottom: 0.1in;
}

.report-section-heading h2 {
  margin-bottom: 0;
}

.report-location {
  margin: 0 !important;
  max-width: 3.2in;
  text-align: right;
  color: #4b5563;
  font-size: 9pt !important;
}

.report-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0.08in 0.2in;
  margin: 0;
}

.report-facts div {
  padding: 0.06in 0;
  border-bottom: 1px solid #d6dde3;
}

.report-facts dt {
  margin: 0;
  font-size: 8.5pt;
  text-transform: uppercase;
  letter-spacing: 0.035em;
  color: #5b6570;
  font-weight: 700;
}

.report-facts dd {
  margin: 0.02in 0 0;
  font-size: 10.5pt;
  font-weight: 600;
}

.report-description-block {
  margin-top: 0.12in;
  padding: 0.1in 0.12in;
  background: #f7f9fb;
  border-left: 3px solid #8da6ba;
}

.report-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
  font-size: 9.5pt;
}

.report-table th,
.report-table td {
  border: 1px solid #aeb8c0;
  padding: 0.065in 0.07in;
  vertical-align: top;
}

.report-table th {
  background: #eef3f7;
  color: #1f2933;
  text-align: left;
  font-weight: 700;
}

.report-table th:not(:first-child),
.report-table td:not(:first-child) {
  text-align: right;
}

.report-median-box {
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 0.2in;
  margin-top: 0.1in;
  padding: 0.1in 0.12in;
  background: #f2f7f3;
  border: 1px solid #a9c8af;
}

.report-median-box span {
  font-size: 9pt;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  font-weight: 700;
}

.report-median-box strong {
  font-size: 16pt;
  color: #1f5f3d;
}

.report-sources {
  border-top: 1px solid #aeb8c0;
  padding-top: 0.12in;
}

.report-source-detail {
  font-style: italic;
  color: #4b5563;
}

.report-source-links {
  margin-top: 0.08in;
  padding: 0.09in 0.11in;
  background: #f7f9fb;
  border: 1px solid #d7dee4;
}

.report-source-links p {
  margin-bottom: 0.035in;
  font-size: 8.5pt;
  word-break: break-word;
}

.report-disclaimer {
  border-top: 2px solid #1f2933;
  padding-top: 0.12in;
}

.report-footer {
  display: flex;
  justify-content: space-between;
  gap: 0.2in;
  margin-top: 0.2in;
  padding-top: 0.08in;
  border-top: 1px solid #9ca7b0;
  font-size: 8pt;
  color: #5b6570;
}


@media print {
  @page {
    margin: 0.55in;
    size: letter;
  }


  body > .site-header,
  body > main,
  body > footer {
    display: none !important;
  }

  #printReport {
    display: block !important;
  }

  .report-shell {
    width: 100%;
    max-width: none;
  }

  .report-section,
  .report-header {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .report-table {
    break-inside: auto;
    page-break-inside: auto;
  }

  .report-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .report-logo {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  .report-table th,
  .report-median-box,
  .report-description-block,
  .report-source-links {
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }


  body {
    background: #ffffff;
  }

  .site-header {
    background: #ffffff;
    color: #000000;
    box-shadow: none;
    border-bottom: 1px solid #000000;
  }


  .careeronestop-brand {
    display: block !important;
  }

  .careeronestop-logo {
    width: 180px;
    max-width: 180px;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  .card {
    border: none;
    box-shadow: none !important;
  }


  .table-responsive {
    overflow: visible;
  }
}


/* Two-report workflow: browser prints the Earning Capacity Report.
   CareerOneStop job listings are printed separately from CareerOneStop. */
@media print {
  body * {
    visibility: hidden !important;
  }

  #printReport,
  #printReport * {
    visibility: visible !important;
  }

  #printReport {
    display: block !important;
    position: absolute !important;
    left: 0 !important;
    top: 0 !important;
    width: 100% !important;
    margin: 0 !important;
  }

  .no-print {
    display: none !important;
  }
}
