.pf-route,
.pf-worksheet {
  min-width: 0;
  color: var(--ink, #282334);
  font-family: inherit;
}

.pf-route {
  margin: 0 0 24px;
  padding: 20px 22px 18px;
  border: 1px solid var(--line, #e4dce8);
  border-top: 3px solid var(--purple, #4a1f73);
  border-radius: 8px;
  background: rgba(255, 254, 250, .92);
  box-shadow: 0 8px 24px rgba(50, 33, 62, .045);
  text-align: center;
}

.pf-route-eyebrow {
  margin: 0 0 3px;
  color: var(--purple, #4a1f73);
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .17em;
}

.pf-route-graphic {
  position: relative;
  width: min(100%, 510px);
  margin: 0 auto 10px;
  padding-bottom: 33px;
}

.pf-route-dial {
  display: block;
  width: 100%;
  height: auto;
  overflow: visible;
}

.pf-route-zones {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
  margin: -1px 0 0;
}

.pf-route-zone-label {
  min-width: 0;
  padding: 5px 3px 0;
  color: var(--ink, #282334);
  font-size: 11px;
  font-weight: 750;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.pf-route-zone-label::before {
  content: "";
  display: block;
  width: 20px;
  height: 4px;
  margin: 0 auto 5px;
  background: var(--green, #32634c);
}

.pf-route-zone-label[data-zone="1"]::before {
  background: #D7191C;
}

.pf-route-zone-label[data-zone="2"]::before {
  background: #FFD400;
  border: 1px solid #111111;
}

.pf-offer-marker {
  position: absolute;
  top: 4px;
  right: 0;
  margin: 0;
  padding: 5px 9px;
  border: 2px solid var(--purple, #4a1f73);
  border-radius: 3px;
  color: var(--purple, #4a1f73);
  background: var(--paper, #fffefa);
  font-size: 11px;
  font-weight: 800;
  line-height: 1.2;
}

.pf-route h2 {
  margin: 3px 0 7px;
  color: var(--purple, #4a1f73);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(21px, 3.5vw, 27px);
  font-weight: 500;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.pf-route-reason,
.pf-route-years {
  max-width: 760px;
  margin: 0 auto 6px;
  color: var(--ink, #282334);
  font-size: 14px;
  line-height: 1.5;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
}

.pf-route-years {
  color: var(--muted, #655f6c);
  font-size: 12px;
}

.pf-route-footer {
  margin: 12px 0 0;
  padding-top: 9px;
  border-top: 1px solid var(--line, #e4dce8);
  color: var(--muted, #655f6c);
  font-size: 11px;
  font-weight: 700;
}

.pf-worksheet {
  margin: 24px 0;
  padding: 22px;
  border: 1px solid var(--line, #e4dce8);
  border-top: 3px solid var(--purple, #4a1f73);
  border-radius: 8px;
  background: rgba(255, 254, 250, .96);
  box-shadow: 0 8px 24px rgba(50, 33, 62, .045);
}

.pf-worksheet > h2 {
  margin: 0 0 7px;
  color: var(--purple, #4a1f73);
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(23px, 3vw, 29px);
  font-weight: 500;
  line-height: 1.2;
}

.pf-worksheet-disclaimer {
  margin: 0 0 17px;
  padding: 10px 12px;
  border-left: 3px solid #9475aa;
  color: #514a57;
  background: var(--purple-soft, #f1ebf5);
  font-size: 12px;
  line-height: 1.45;
  overflow-wrap: anywhere;
}

.pf-worksheet-forms {
  display: flex;
  flex-wrap: wrap;
  gap: 6px 18px;
  margin: 0 0 17px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line, #e4dce8);
}

.pf-worksheet-forms h3 {
  margin: 0;
  color: var(--muted, #655f6c);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}

.pf-worksheet-section,
.pf-worksheet-totals {
  min-width: 0;
  margin-top: 19px;
}

.pf-worksheet-section h3,
.pf-worksheet-totals h3 {
  margin: 0 0 8px;
  color: var(--purple, #4a1f73);
  font-family: Georgia, "Times New Roman", serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.25;
  overflow-wrap: anywhere;
}

.pf-worksheet-table,
.pf-worksheet-totals-table {
  width: 100%;
  border-collapse: collapse;
  table-layout: fixed;
}

.pf-worksheet-table th,
.pf-worksheet-table td,
.pf-worksheet-totals-table th,
.pf-worksheet-totals-table td {
  min-width: 0;
  padding: 8px 9px;
  border: 1px solid var(--line, #e4dce8);
  color: var(--ink, #282334);
  font-size: 12px;
  line-height: 1.4;
  text-align: left;
  vertical-align: top;
  white-space: pre-wrap;
  overflow-wrap: anywhere;
  word-break: normal;
}

.pf-worksheet-table thead th,
.pf-worksheet-totals-table thead th {
  color: var(--purple, #4a1f73);
  background: var(--purple-soft, #f1ebf5);
  font-weight: 750;
}

.pf-worksheet-totals-table tbody th {
  font-weight: 750;
}

.pf-worksheet-note {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.4;
  margin: 8px 0 0;
}

@media (max-width: 560px) {
  .pf-route {
    padding: 17px 12px 15px;
  }

  .pf-route-graphic {
    padding-bottom: 40px;
  }

  .pf-route-zone-label {
    padding-inline: 1px;
    font-size: 9px;
  }

  .pf-offer-marker {
    top: 0;
    right: 1px;
    font-size: 9px;
  }

  .pf-worksheet {
    padding: 16px 12px;
  }

  .pf-worksheet-table th,
  .pf-worksheet-table td,
  .pf-worksheet-totals-table th,
  .pf-worksheet-totals-table td {
    padding: 6px 5px;
    font-size: 11px;
  }
}

@media print {
  .pf-worksheet-note {
    color: #111;
    font-size: 8pt;
    margin-top: 2mm;
  }
  .pf-route,
  .pf-worksheet {
    color: #111;
    border: 1px solid #555;
    border-top: 2px solid #111;
    border-radius: 0;
    background: #fff;
    box-shadow: none;
    break-inside: auto;
    print-color-adjust: exact;
    -webkit-print-color-adjust: exact;
  }

  .pf-route {
    margin: 0 0 3mm;
    padding: 3mm 4mm;
    break-inside: avoid;
  }

  .pf-route-eyebrow {
    color: #111;
    font-size: 8pt;
  }

  .pf-route-graphic {
    width: min(100%, 90mm);
    padding-bottom: 6mm;
  }

  .pf-route-zone-label {
    color: #111;
    font-size: 8pt;
  }

  .pf-offer-marker {
    border-color: #111;
    color: #111;
    background: #fff;
    font-size: 8pt;
  }

  .pf-route h2 {
    color: #111;
    font-size: 17pt;
  }

  .pf-route-reason,
  .pf-route-years {
    color: #111;
    font-size: 9pt;
  }

  .pf-route-footer {
    color: #111;
    font-size: 8pt;
  }

  .pf-worksheet {
    margin: 0;
    padding: 3mm;
    break-before: page;
  }

  .pf-worksheet > h2 {
    color: #111;
    font-size: 14pt;
    margin-bottom: 3mm;
  }

  .pf-worksheet-disclaimer {
    color: #111;
    background: #fff;
    border: 1px solid #777;
    border-left: 3px solid #111;
    font-size: 8.5pt;
    margin-bottom: 3mm;
    padding: 2mm;
  }

  .pf-worksheet-forms h3 {
    color: #111;
    font-size: 8.5pt;
  }

  .pf-worksheet-forms {
    margin-bottom: 2mm;
    padding-bottom: 2mm;
  }

  .pf-worksheet-section,
  .pf-worksheet-totals {
    margin-top: 2.5mm;
  }

  .pf-worksheet-section h3,
  .pf-worksheet-totals h3 {
    color: #111;
    font-size: 10pt;
    margin-bottom: 1.5mm;
    break-after: avoid;
  }

  .pf-worksheet-table,
  .pf-worksheet-totals-table {
    page-break-inside: auto;
  }

  .pf-worksheet-table thead,
  .pf-worksheet-totals-table thead {
    display: table-header-group;
  }

  .pf-worksheet-table tr,
  .pf-worksheet-totals-table tr {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .pf-worksheet-table th,
  .pf-worksheet-table td,
  .pf-worksheet-totals-table th,
  .pf-worksheet-totals-table td {
    padding: 1mm 1.5mm;
    border-color: #777;
    color: #111;
    font-size: 8pt;
    line-height: 1.25;
    background: #fff;
  }

  .pf-worksheet-table thead th,
  .pf-worksheet-totals-table thead th {
    color: #111;
    background: #eee;
  }
}
