/* Custom itinerary builder and its printable quotation */
.tp-layout { display: grid; gap: 1.1rem; }
.tp-card { padding: clamp(1.1rem, 2.5vw, 1.6rem); background: var(--lx-white); border: 1px solid var(--lx-line); border-radius: 12px; }
main .tp-card h2 { margin: 0 0 0.9rem; font-size: clamp(1.3rem, 1.15rem + 0.6vw, 1.6rem) !important; }
.tp-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0.9rem; }
.tp-field { display: flex; flex-direction: column; gap: 0.3rem; min-width: 0; color: var(--lx-text); font-size: 0.98rem; font-weight: 600; }
.tp-field small { color: var(--lx-muted); font-size: 0.86rem; font-weight: 400; }
.tp-form input[type="text"], .tp-form input[type="tel"], .tp-form input[type="email"], .tp-form input[type="date"], .tp-form input[type="number"], .tp-form select { width: 100%; min-height: 46px; padding: 0 0.7rem; background: var(--lx-white); border: 1px solid #c4c8cc; border-radius: 6px; box-sizing: border-box; color: var(--lx-text); font-size: 1rem; font-weight: 400; }
.tp-duration { align-self: end; padding-bottom: 0.7rem; color: var(--lx-accent); font-weight: 700; }
.tp-hint { margin: 0.6rem 0 0; color: var(--lx-muted); font-size: 0.95rem; }
.tp-hint b { color: var(--lx-text); }
.tp-ticks { display: flex; flex-wrap: wrap; gap: 0.45rem; }
.tp-tick { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; padding: 0 0.85rem; border: 1px solid #c4c8cc; border-radius: 6px; color: var(--lx-text); cursor: pointer; font-weight: 600; }
.tp-tick:has(input:checked) { background: var(--lx-text); border-color: var(--lx-text); color: #fff; }
.tp-tick input { width: 17px; height: 17px; margin: 0; accent-color: var(--lx-accent); }
.tp-group + .tp-group { margin-top: 1.1rem; }
.tp-grid + .tp-group { margin-top: 1rem; }
.tp-group h3 { margin: 0 0 0.5rem; font-family: var(--lx-sans) !important; font-size: 1rem !important; font-weight: 700 !important; }
.tp-days { display: grid; gap: 0.5rem; }
.tp-day { display: grid; grid-template-columns: 90px minmax(0, 1.6fr) minmax(0, 1fr); gap: 0.75rem; align-items: end; padding: 0.7rem 0.8rem; background: var(--lx-tint); border-radius: 8px; }
.tp-day label { display: flex; flex-direction: column; gap: 0.2rem; min-width: 0; color: var(--lx-muted); font-size: 0.86rem; }
.tp-day-no { align-self: center; color: var(--lx-text); font-weight: 700; }
.tp-day-no small { display: block; color: var(--lx-muted); font-size: 0.84rem; font-weight: 400; }
.tp-day-last { grid-template-columns: 90px minmax(0, 1fr); align-items: center; }
.tp-day-last p { margin: 0; }
.tp-trap { position: absolute; left: -9999px; }
.tp-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.8rem 1.2rem; }
.tp-submit { min-height: 52px; padding: 0 1.8rem; background: var(--lx-cta); border: 0; border-radius: 6px; color: #fff; cursor: pointer; font-size: 1.05rem; font-weight: 700; }
.tp-submit:hover { background: var(--lx-cta-hover); }
.tp-submit:disabled { opacity: 0.6; cursor: progress; }
.tp-message { margin: 0; color: var(--lx-accent) !important; font-weight: 700; }
.tp-team-only { display: none; }
body.tp-team .tp-team-only { display: block; }
.tp-teambar { display: none; }
html.tp-team-mode .tp-teambar { position: sticky; top: 0; z-index: 30; display: flex; align-items: center; gap: 1rem; min-height: 52px; padding: 0.4rem clamp(1rem, 3vw, 2rem); background: var(--lx-white); border-bottom: 1px solid var(--lx-line); }
.tp-teambar a { display: inline-flex; align-items: center; gap: 0.45rem; color: var(--lx-text); font-weight: 700; text-decoration: none; }
.tp-teambar-state { color: var(--lx-muted); font-size: 0.95rem; }
.tp-teambar-user { margin-left: auto; color: var(--lx-muted); font-size: 0.95rem; font-weight: 600; }
html.tp-team-mode body.tp-page > header, html.tp-team-mode body.tp-page > footer, html.tp-team-mode .lx-page-hero, html.tp-team-mode .whatsapp-floating-wrap, html.tp-team-mode .phone-bar { display: none !important; }
.tp-live { position: sticky; bottom: 0.6rem; z-index: 20; display: grid; gap: 0.5rem; margin: 1rem 0; padding: 0.7rem 0.95rem; background: var(--lx-white); border: 1px solid var(--lx-line); border-radius: 10px; box-shadow: 0 10px 28px rgba(14, 16, 19, 0.16); }
.tp-live[hidden] { display: none; }
.tp-live-hint { margin: 0; color: var(--lx-muted); font-weight: 600; }
.tp-live-row { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 11rem) minmax(0, 1.4fr); gap: 0.25rem 1.1rem; align-items: center; }
.tp-live-row + .tp-live-row { padding-top: 0.5rem; border-top: 1px solid var(--lx-line); }
.tp-live small { display: block; color: var(--lx-muted); font-size: 0.86rem; font-weight: 600; }
.tp-live-est strong { display: block; color: var(--lx-text); font-family: var(--lx-display); font-size: clamp(1.35rem, 1.2rem + 0.6vw, 1.7rem); line-height: 1.15; font-variant-numeric: tabular-nums; }
.tp-live-money { position: relative; display: block; }
.tp-live-money::before { content: "₹"; position: absolute; top: 0; left: 0.6rem; color: var(--lx-muted); line-height: 44px; pointer-events: none; }
.tp-live-money input { width: 100%; min-height: 44px; padding: 0 0.5rem 0 1.5rem; box-sizing: border-box; background: var(--lx-white); border: 1px solid var(--lx-text); border-radius: 6px; font-size: 1.05rem; font-weight: 700; }
.tp-live-note { margin: 0; color: var(--lx-muted) !important; font-size: 0.95rem; font-weight: 600; }
.tp-live-note.is-good { color: #15803d !important; }
.tp-live-note.is-warn { color: #92590a !important; }
@media (max-width: 767px) {
  .tp-live-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .tp-live-note { grid-column: 1 / -1; }
}
.tp-bd-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.5rem 1rem; }
.tp-bd-head h3 { margin: 0 !important; }
.tp-bd-head label { font-weight: 600; }
.tp-bd-head select { min-height: 40px; padding: 0 0.5rem; border: 1px solid #c4c8cc; border-radius: 6px; background: var(--lx-white); }
.tp-output[hidden] { display: none; }
.tp-output-bar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; margin-bottom: 1rem; }
main .tp-output-bar h2 { margin: 0; }
.tp-output-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.tp-output-actions button, .tp-output-actions a { display: inline-flex; align-items: center; justify-content: center; gap: 0.45rem; min-height: 48px; padding: 0 1.2rem; border-radius: 6px; cursor: pointer; font-size: 1rem; font-weight: 600; text-decoration: none; }
.tp-output-actions button { background: var(--lx-cta); border: 1px solid var(--lx-cta); color: #fff; }
.tp-output-actions a { background: transparent; border: 1px solid var(--lx-text); color: var(--lx-text); }
.tp-breakdown { margin: 1.25rem 0 1rem; padding: 1rem 1.2rem; background: var(--lx-tint); border-radius: 8px; }
.tp-breakdown[hidden] { display: none; }
.tp-breakdown h3 { margin: 0 0 0.5rem; font-size: 1.15rem !important; }
.tp-bd { padding-top: 0.6rem; }
.tp-bd h4 { margin: 0 0 0.3rem; font-family: var(--lx-sans) !important; font-size: 1rem !important; }
.tp-bd table { width: 100%; border-collapse: collapse; font-size: 0.95rem; }
.tp-bd td { padding: 0.25rem 0.4rem; border-bottom: 1px solid var(--lx-line); }
.tp-bd td:last-child { text-align: right; white-space: nowrap; }
.tp-bd p { margin: 0.4rem 0; }
.tp-warn { color: var(--lx-accent) !important; font-weight: 600; }

/* The quotation sheet */
.tp-doc { max-width: 900px; margin-inline: auto; padding: clamp(0.9rem, 3vw, 2rem); background: #fff; border: 1px solid var(--lx-line); border-radius: 8px; color: #16181b; font-size: 0.98rem; line-height: 1.45; }
.tp-doc p, .tp-doc li, .tp-doc td, .tp-doc th { color: #16181b; }
.tpd-page { width: 100%; border-collapse: collapse; }
.tpd-page > thead td, .tpd-page > tfoot td, .tpd-page > tbody > tr > td { padding: 0; }
.tpd-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 0.4rem 1.5rem; padding-bottom: 0.7rem; font-size: 0.9rem; font-style: italic; }
.tpd-foot { margin: 1rem 0 0; padding-top: 0.6rem; border-top: 1px solid var(--lx-line); font-size: 0.84rem; font-style: italic; }
.tpd-top { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 0.9rem; }
.tpd-top blockquote { margin: 0; padding: 0.7rem 0.9rem; background: var(--lx-tint); font-family: var(--lx-display); font-size: 0.98rem; font-style: italic; line-height: 1.5; }
.tpd-top cite { display: block; margin-top: 0.3rem; text-align: right; }
.tpd-top img { flex: none; width: 96px !important; height: auto !important; filter: brightness(0); }
.tp-doc h2.tpd-band { margin: 1.1rem 0 0.7rem; padding: 0.55rem 0.8rem; background: #2b3540; color: #fff !important; font-family: var(--lx-sans) !important; font-size: 1.05rem !important; font-weight: 700 !important; line-height: 1.3 !important; text-align: center; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.tpd-facts, .tpd-terms, .tpd-cost { width: 100%; border-collapse: collapse; }
.tpd-facts th, .tpd-terms th { width: 96px; padding: 0.22rem 0.6rem; color: #2f5d8a !important; font-style: italic; font-weight: 600; text-align: left; vertical-align: top; }
.tpd-facts td { padding: 0.22rem 0.6rem; font-style: italic; }
.tpd-terms { margin-top: 0.8rem; }
.tpd-terms th, .tpd-terms td { padding: 0.5rem 0.6rem; border: 1px solid #9aa1a7; font-size: 0.94rem; vertical-align: top; }
.tpd-notes th { color: #b42318 !important; }
.tpd-overview { margin-top: 0.9rem; padding: 0.7rem 0.9rem; border: 1px solid #9aa1a7; }
.tp-doc .tpd-overview h3 { margin: 0 0 0.5rem; font-family: var(--lx-sans) !important; font-size: 1rem !important; text-decoration: underline; }
.tpd-overview ol { list-style: none; margin: 0; padding: 0; }
.tpd-overview li { display: flex; gap: 0.7rem; margin-bottom: 0.25rem; }
.tpd-overview b { flex: none; min-width: 58px; padding: 0.1rem 0.5rem; background: #2b3540; color: #fff; font-size: 0.86rem; text-align: center; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.tpd-days section { padding: 0.4rem 0.8rem; break-inside: avoid; }
.tp-doc .tpd-days h3 { margin: 0 0 0.2rem; color: #2b3540 !important; font-family: var(--lx-sans) !important; font-size: 1rem !important; font-style: italic; }
.tpd-days p { margin: 0; font-style: italic; }
.tpd-cost th, .tpd-cost td { padding: 0.5rem 0.6rem; border: 1px solid #c4c8cc; font-size: 0.93rem; text-align: left; vertical-align: top; }
.tpd-cost thead th { background: var(--lx-tint); -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.tpd-cost tfoot th, .tpd-cost tfoot td { font-size: 1.05rem; font-weight: 700; }
.tpd-cost { break-inside: avoid; }
.tpd-was { display: block; color: var(--lx-muted); font-size: 0.93rem; font-weight: 400; }
.tpd-now { display: block; color: #15803d; font-size: 1.2rem; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.tpd-save { display: block; color: #15803d; font-size: 0.85rem; font-weight: 600; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
.tp-doc .tpd-estimate { margin: 0.5rem 0 0; font-size: 0.9rem; font-style: italic; }
.tpd-policy p, .tpd-contact p, .tpd-pay p { margin: 0 0 0.5rem; font-size: 0.93rem; }
.tpd-pay { break-inside: avoid; white-space: pre-line; }

@media (max-width: 1023px) { .tp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .tp-day { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .tp-day-no { grid-column: 1 / -1; display: flex; gap: 0.5rem; align-items: baseline; }
  .tp-day-last { grid-template-columns: minmax(0, 1fr); }
  .tp-submit { width: 100%; }
  .tp-output-actions, .tp-output-actions > * { width: 100%; box-sizing: border-box; }
  .tpd-facts th, .tpd-terms th { width: 78px; }
  .tpd-cost-wrap { overflow-x: auto; }
}
@media print {
  @page { size: A4; margin: 11mm 12mm; }
  body.tp-page { background: #fff !important; padding: 0 !important; }
  body.tp-page > *:not(main), body.tp-page main > *:not(.tp-print-root), body.tp-page .tp-print-root > .container > *:not(.tp-output), .tp-output-bar, .tp-breakdown { display: none !important; }
  body.tp-page main { padding: 0 !important; }
  body.tp-page main::after { display: none !important; content: none !important; }
  .tp-print-root, .tp-print-root > .container { padding: 0 !important; margin: 0 !important; max-width: none !important; width: auto !important; }
  .tp-doc { box-sizing: border-box; max-width: none; padding: 0 1.5mm; border: 0; border-radius: 0; font-size: 10.5pt; }
  .tpd-terms, .tpd-overview, .tp-doc h2.tpd-band { break-inside: avoid; }
  .tp-doc h2.tpd-band { break-after: avoid; }
}
/* Team: a fourth column for each day's cab route (2026-11-12) */
.tp-team .tp-day:not(.tp-day-last) { grid-template-columns: 90px minmax(0, 1.5fr) minmax(0, 1fr) minmax(0, 1.2fr); }
@media (max-width: 760px) { .tp-team .tp-day:not(.tp-day-last) { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
