.pdoc {
  display: none;
}

.print-dialog {
  width: min(440px, calc(100vw - 32px));
  padding: 0;
  border: 0;
  border-radius: var(--r-lg);
  background: var(--paper);
  color: var(--ink);
  box-shadow: 0 30px 80px -30px rgba(10, 24, 51, 0.55);
}

.print-dialog::backdrop {
  background: rgba(10, 24, 51, 0.45);
}

.print-dialog form {
  display: grid;
  gap: 18px;
  padding: 26px 26px 22px;
}

.print-dialog h2 {
  font-size: 24px;
}

.print-dialog-lead {
  margin-top: -8px;
  color: var(--muted);
  font-size: 14px;
  line-height: 1.55;
}

.print-dialog-lead b {
  color: var(--ink);
}

.print-dialog fieldset {
  display: grid;
  gap: 8px;
  margin: 0;
  padding: 0;
  border: 0;
}

.print-dialog legend {
  margin-bottom: 8px;
  padding: 0;
  color: var(--muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.print-option {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 11px 14px;
  border: 1px solid var(--line);
  border-radius: var(--r-sm);
  background: var(--white);
  font-size: 15px;
  font-weight: 600;
  cursor: pointer;
}

.print-option:has(input:checked) {
  border-color: var(--navy);
  box-shadow: inset 0 0 0 1px var(--navy);
}

.print-option:has(input:disabled) {
  opacity: 0.5;
  cursor: not-allowed;
}

.print-option input {
  width: 18px;
  height: 18px;
  margin: 0;
  accent-color: var(--navy);
}

.print-option small {
  color: var(--muted);
  font-weight: 500;
}

.print-dialog-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 4px;
}

@page {
  size: A4;
  margin: 19mm 14mm 16mm;

  @top-left {
    font-family: "Manrope", system-ui, sans-serif;
    font-size: 7.5pt;
    color: #8a93a3;
    vertical-align: middle;
  }

  @top-right {
    font-family: "Manrope", system-ui, sans-serif;
    font-size: 7.5pt;
    font-weight: 700;
    color: #12264d;
    vertical-align: middle;
  }

  @bottom-left {
    font-family: "Manrope", system-ui, sans-serif;
    font-size: 7.5pt;
    color: #5b6577;
    vertical-align: top;
  }

  @bottom-right {
    font-family: "Manrope", system-ui, sans-serif;
    font-size: 7.5pt;
    color: #5b6577;
    vertical-align: top;
  }
}

@page :first {
  margin-top: 13mm;
}

@media print {
  body:has(.pdoc) *:not(:has(.pdoc)):not(.pdoc):not(.pdoc *):not(.sprite):not(.sprite *) {
    display: none !important;
  }

  html:has(.pdoc),
  body:has(.pdoc),
  body:has(.pdoc) main,
  body:has(.pdoc) [data-wa-number] {
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
    background: #fff !important;
  }

  .pdoc {
    --p-ink: #1b2335;
    --p-muted: #5b6577;
    --p-line: #ddd5c6;
    --p-soft: #f7f2e9;
    display: block;
    color: var(--p-ink);
    font-family: var(--sans);
    font-size: 9.4pt;
    line-height: 1.5;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  .pdoc h1,
  .pdoc h2,
  .pdoc h3,
  .pdoc p,
  .pdoc ul,
  .pdoc ol,
  .pdoc dl,
  .pdoc dd,
  .pdoc figure {
    margin: 0;
    padding: 0;
  }

  .pdoc img {
    display: block;
    max-width: 100%;
  }

  .pdoc .icon {
    width: 4.2mm;
    height: 4.2mm;
    flex: none;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.8;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .pdoc .icon--fill {
    fill: currentColor;
    stroke: none;
  }

  .pdoc-head {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8mm;
    padding-bottom: 3.5mm;
    border-bottom: 0.6mm solid var(--navy);
  }

  .pdoc-head::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -0.6mm;
    width: 30mm;
    height: 0.6mm;
    background: var(--orange);
  }

  .pdoc-logo img {
    width: auto;
    height: 12.5mm;
  }

  .pdoc-logo b {
    font-family: var(--serif);
    font-size: 18pt;
    color: var(--navy);
  }

  .pdoc-agency {
    display: grid;
    justify-items: end;
    gap: 0.4mm;
    color: var(--p-muted);
    font-size: 7.6pt;
    line-height: 1.35;
    text-align: right;
  }

  .pdoc-agency b {
    color: var(--navy);
    font-size: 8.2pt;
  }

  .pdoc-title {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: start;
    gap: 8mm;
    margin: 6mm 0 4.5mm;
  }

  .pdoc-kicker {
    color: var(--orange-deep);
    font-size: 7.4pt;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }

  .pdoc h1 {
    margin-top: 1.8mm;
    color: var(--navy);
    font-family: var(--serif);
    font-size: 25pt;
    font-weight: 500;
    line-height: 1.08;
    letter-spacing: -0.01em;
  }

  .pdoc-lead {
    margin-top: 2.2mm;
    color: var(--p-muted);
    font-size: 9.6pt;
  }

  .pdoc-qr {
    display: grid;
    justify-items: center;
    gap: 1.4mm;
    width: 25mm;
  }

  .pdoc-qr svg {
    display: block;
    width: 23mm;
    height: 23mm;
  }

  .pdoc-qr figcaption {
    color: var(--p-muted);
    font-size: 6.4pt;
    line-height: 1.3;
    text-align: center;
  }

  .pdoc-cover {
    width: 100%;
    height: 70mm;
    object-fit: cover;
    border-radius: 3mm;
  }

  .pdoc-thumbs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2.5mm;
    margin-top: 2.5mm;
  }

  .pdoc-thumbs img {
    width: 100%;
    height: 30mm;
    object-fit: cover;
    border-radius: 2mm;
  }

  .pdoc-facts {
    display: grid;
    grid-auto-columns: 1fr;
    grid-auto-flow: column;
    margin-top: 4mm;
    border: 0.3mm solid var(--p-line);
    border-radius: 2.5mm;
    background: var(--p-soft);
  }

  .pdoc-facts > div {
    padding: 2.6mm 4mm;
  }

  .pdoc-facts > div + div {
    border-left: 0.3mm solid var(--p-line);
  }

  .pdoc-facts dt {
    color: var(--p-muted);
    font-size: 6.8pt;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  .pdoc-facts dd {
    margin-top: 0.6mm;
    color: var(--navy);
    font-size: 10.5pt;
    font-weight: 800;
  }

  .pdoc-sec {
    margin-top: 7mm;
  }

  .pdoc-sec > h2,
  .pdoc-contact h2 {
    break-after: avoid;
    page-break-after: avoid;
  }

  .pdoc-sec > h2 {
    display: flex;
    align-items: center;
    gap: 2.2mm;
    margin-bottom: 3mm;
    padding-bottom: 1.6mm;
    border-bottom: 0.3mm solid var(--p-line);
    color: var(--navy);
    font-family: var(--sans);
    font-size: 8.4pt;
    font-weight: 800;
    letter-spacing: 0.14em;
    text-transform: uppercase;
  }

  .pdoc-sec > h2::before {
    content: "";
    width: 2.2mm;
    height: 2.2mm;
    border-radius: 0.5mm;
    background: var(--orange);
  }

  .pdoc-table {
    width: 100%;
    border-collapse: collapse;
  }

  .pdoc-table thead {
    display: table-header-group;
  }

  .pdoc-table th {
    padding: 1.6mm 2.5mm;
    background: var(--p-soft);
    color: var(--p-muted);
    font-size: 6.8pt;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-align: left;
    text-transform: uppercase;
  }

  .pdoc-table td {
    padding: 2.2mm 2.5mm;
    border-bottom: 0.25mm solid var(--p-line);
    vertical-align: top;
  }

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

  .pdoc-table td b {
    color: var(--navy);
  }

  .pdoc-table td small {
    display: block;
    color: var(--p-muted);
    font-size: 7.6pt;
  }

  .pdoc-num {
    text-align: right !important;
    white-space: nowrap;
  }

  .pdoc-dates td.pdoc-num b {
    font-size: 10.5pt;
  }

  .pdoc-status {
    display: inline-flex;
    align-items: center;
    gap: 1.4mm;
    font-size: 8pt;
    font-weight: 700;
    white-space: nowrap;
  }

  .pdoc-status::before {
    content: "";
    width: 2mm;
    height: 2mm;
    border-radius: 50%;
    background: currentColor;
  }

  .pdoc-status.status--ok {
    color: var(--ok);
  }

  .pdoc-status.status--few {
    color: var(--warn);
  }

  .pdoc-status.status--full {
    color: var(--full);
  }

  .pdoc-note {
    margin-top: 2.5mm;
    color: var(--p-muted);
    font-size: 8.2pt;
  }

  .pdoc-fine {
    margin-top: 2.5mm;
    color: var(--p-muted);
    font-size: 7.4pt;
    font-style: italic;
  }

  .pday {
    display: grid;
    grid-template-columns: 19mm 1fr;
    gap: 4mm;
    padding: 3mm 0;
    border-bottom: 0.25mm dashed var(--p-line);
  }

  .pday:first-of-type {
    padding-top: 0.5mm;
  }

  .pday-no {
    color: var(--orange-deep);
    font-size: 7.6pt;
    font-weight: 800;
    letter-spacing: 0.08em;
    line-height: 1.35;
    text-transform: uppercase;
  }

  .pday-body h3 {
    margin-bottom: 1.4mm;
    color: var(--navy);
    font-family: var(--serif);
    font-size: 12pt;
    font-weight: 500;
    line-height: 1.25;
    break-after: avoid;
    page-break-after: avoid;
  }

  .pday-body p {
    orphans: 3;
    widows: 3;
  }

  .pday-body p + p {
    margin-top: 1.6mm;
  }

  .pday-stops {
    display: flex;
    flex-wrap: wrap;
    gap: 1.2mm 3.5mm;
    margin-bottom: 2mm !important;
    break-after: avoid;
    page-break-after: avoid;
    color: var(--navy);
    font-size: 7.8pt;
    font-weight: 700;
  }

  .pday-stops span,
  .pdoc-route-list li {
    display: inline-flex;
    align-items: center;
    gap: 1.3mm;
  }

  .pday-stops i,
  .pdoc-route-list i {
    display: inline-grid;
    place-items: center;
    width: 4mm;
    height: 4mm;
    border-radius: 50%;
    background: var(--orange);
    color: #fff;
    font-size: 6.4pt;
    font-style: normal;
    font-weight: 800;
    line-height: 1;
  }

  .pdoc-route {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .pdoc--no-route .pdoc-route,
  .pdoc--no-route .pday-stops {
    display: none;
  }

  .pdoc-route-grid {
    display: grid;
    grid-template-columns: 96mm 1fr;
    gap: 6mm;
    align-items: start;
  }

  .pdoc-sketch {
    display: block;
    width: 100%;
    height: auto;
  }

  .pdoc-sketch-bg {
    fill: var(--p-soft);
    stroke: var(--p-line);
  }

  .pdoc-sketch-line {
    fill: none;
    stroke: var(--navy);
    stroke-width: 1.6;
    stroke-dasharray: 5 4;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .pdoc-sketch-leader {
    fill: none;
    stroke: var(--navy);
    stroke-width: 0.8;
  }

  .pdoc-sketch-anchor {
    fill: var(--navy);
  }

  .pdoc-sketch-dot {
    fill: var(--orange);
    stroke: #fff;
    stroke-width: 2;
  }

  .pdoc-sketch-dot--first {
    fill: var(--navy);
  }

  .pdoc-sketch text {
    fill: #fff;
    font-family: var(--sans);
    font-size: 9.5px;
    font-weight: 800;
  }

  .pdoc-sketch-north path {
    fill: var(--navy);
  }

  .pdoc-sketch-north text,
  .pdoc-sketch-scale text {
    fill: var(--p-muted);
    font-size: 8.5px;
    font-weight: 700;
  }

  .pdoc-sketch-scale path {
    fill: none;
    stroke: var(--p-muted);
    stroke-width: 1.2;
  }

  .pdoc-route-list {
    display: grid;
    gap: 3mm;
  }

  .pdoc-route-list h3 {
    margin-bottom: 1.2mm;
    color: var(--orange-deep);
    font-size: 7.4pt;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
  }

  .pdoc-route-list ol {
    display: grid;
    gap: 1.3mm;
    list-style: none;
    font-size: 8.8pt;
    font-weight: 600;
  }

  .pday-stops i.is-first,
  .pdoc-route-list i.is-first {
    background: var(--navy);
  }

  .pdoc-keep {
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .pdoc-pickups td {
    padding: 1.8mm 2.5mm;
  }

  .pdoc-pickups td:first-child {
    padding-left: 0;
  }

  .pdoc-time {
    width: 16mm;
    color: var(--orange-deep);
    font-size: 10pt;
    font-weight: 800;
  }

  .pdoc-incl {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6mm;
  }

  .pdoc-incl h3 {
    margin-bottom: 1.8mm;
    color: var(--navy);
    font-size: 8.6pt;
    font-weight: 800;
  }

  .pdoc-incl ul {
    display: grid;
    gap: 1.3mm;
    list-style: none;
  }

  .pdoc-incl li {
    position: relative;
    padding-left: 5mm;
    break-inside: avoid;
  }

  .pdoc-incl li::before {
    position: absolute;
    left: 0;
    top: 0;
    font-weight: 800;
  }

  .pdoc-yes li::before {
    content: "✓";
    color: var(--ok);
  }

  .pdoc-no li::before {
    content: "✕";
    color: #b23b2e;
  }

  .pdoc-prose {
    font-size: 8.8pt;
  }

  .pdoc-prose p + p,
  .pdoc-prose ul,
  .pdoc-prose ol {
    margin-top: 1.6mm;
  }

  .pdoc-prose ul,
  .pdoc-prose ol {
    padding-left: 5mm;
  }

  .pdoc-prose li + li {
    margin-top: 0.8mm;
  }

  .pdoc-prose h2,
  .pdoc-prose h3 {
    margin: 3mm 0 1.2mm;
    color: var(--navy);
    font-family: var(--sans);
    font-size: 9pt;
    font-weight: 800;
  }

  .pdoc-prose a {
    color: inherit;
    text-decoration: none;
  }

  .pdoc-contact {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 7mm;
    margin-top: 8mm;
    padding: 5mm 6mm;
    border: 0.4mm solid var(--navy);
    border-radius: 3mm;
    break-inside: avoid;
    page-break-inside: avoid;
  }

  .pdoc-contact h2 {
    color: var(--navy);
    font-family: var(--serif);
    font-size: 15pt;
    font-weight: 500;
  }

  .pdoc-contact-main p {
    margin-top: 2mm;
    font-size: 8.8pt;
  }

  .pdoc-contact-main .pdoc-stamp {
    margin-top: 3.5mm;
    padding-top: 2.5mm;
    border-top: 0.25mm solid var(--p-line);
    color: var(--p-muted);
    font-size: 7.4pt;
  }

  .pdoc-stamp b {
    color: var(--p-ink);
  }

  .pdoc-contact-list {
    display: grid;
    gap: 2.2mm;
    list-style: none;
    font-size: 8.6pt;
  }

  .pdoc-contact-list li {
    display: flex;
    align-items: flex-start;
    gap: 2.5mm;
    color: var(--navy);
    font-weight: 700;
  }

  .pdoc-contact-list .icon {
    margin-top: 0.6mm;
    color: var(--orange-deep);
  }

  .pdoc-contact-list small {
    display: block;
    color: var(--p-muted);
    font-size: 6.6pt;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
  }

  .pdoc-contact-list li:last-child span {
    font-weight: 600;
  }

  .pdoc--no-prices .pdoc-price {
    display: none !important;
  }

  .pdoc-month {
    margin-top: 6mm;
  }

  .pdoc-table .pdoc-month-row th {
    padding: 0 0 1.4mm;
    border-bottom: 0.5mm solid var(--navy);
    background: none;
    color: var(--navy);
    font-family: var(--serif);
    font-size: 14pt;
    font-weight: 500;
    letter-spacing: 0;
    text-transform: none;
  }

  .pdoc-month-row span {
    float: left;
  }

  .pdoc-month-row small {
    float: right;
    margin-top: 1.6mm;
    color: var(--p-muted);
    font-family: var(--sans);
    font-size: 7.6pt;
    font-weight: 600;
  }

  .pdoc-month-row small b {
    color: var(--orange-deep);
  }

  .pdoc-month-row + tr th {
    border-top: 2mm solid #fff;
  }

  .pdoc-cal {
    font-size: 8.6pt;
  }

  .pdoc-cal td {
    padding: 1.8mm 2.2mm;
  }

  .pdoc-cal .pdoc-when {
    width: 37mm;
    white-space: nowrap;
  }

  .pdoc-cal td.pdoc-when small {
    display: inline;
    margin-left: 1mm;
  }

  .pdoc-ret {
    display: block;
    color: var(--p-muted);
    font-size: 7.6pt;
  }

  .pdoc-ret small {
    font-size: inherit !important;
  }

  .pdoc-cal td:nth-child(3),
  .pdoc-cal td:nth-child(4) {
    white-space: nowrap;
  }

  .pdoc-cal td.pdoc-num b {
    font-size: 9.6pt;
  }

  .pdoc--cal > .pdoc-note {
    margin-top: 4mm;
  }

  .pdoc--landscape .pdoc-cal {
    font-size: 9.2pt;
  }

  .pdoc--landscape .pdoc-cal .pdoc-when {
    width: 42mm;
  }

  .pdoc--landscape .pdoc-contact {
    grid-template-columns: 1.2fr 1fr;
  }
}
