/* Pro itinerary preview */
.trip-builder__stops--compact .trip-builder__photostop{display:none}
.trip-builder__stops--compact .trip-builder__stop{padding:.65rem .85rem}
.trip-builder__stops--compact .trip-builder__grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:.45rem}
.trip-preview--pro{margin-top:1rem;padding:0;border:none;background:transparent}
.tp-head{padding:1.1rem 1.25rem;border-radius:18px;background:linear-gradient(135deg,#0f172a 0%,#134e4a 100%);color:#fff;margin-bottom:1rem}
.tp-kicker{margin:0 0 .35rem;font-size:.72rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;opacity:.8}
.tp-title{margin:0;font-size:1.15rem;line-height:1.35;font-weight:800}
.tp-meta-row{display:flex;flex-wrap:wrap;gap:.5rem .85rem;margin-top:.65rem;font-size:.82rem;opacity:.9}
.tp-cap-note{margin:.65rem 0 0;padding:.5rem .65rem;border-radius:10px;background:rgba(255,255,255,.12);font-size:.82rem;line-height:1.4}
.tp-climate{padding:.85rem 1rem;border-radius:14px;border:1px solid #d1fae5;background:#ecfdf5;margin-bottom:1rem}
.tp-climate h4{margin:0 0 .35rem;font-size:.85rem}
.tp-climate p{margin:0;font-size:.88rem;line-height:1.45;color:#334155}
.tp-climate__poya{margin-top:.4rem!important;font-size:.82rem!important;color:#0f766e!important}
.tp-timeline{display:flex;flex-direction:column;gap:0}
.tp-day{display:grid;grid-template-columns:2.75rem 1fr;gap:0 .9rem;margin:0}
.tp-day__rail{display:flex;flex-direction:column;align-items:center;padding-top:.2rem}
.tp-day__dot{width:2.2rem;height:2.2rem;border-radius:50%;background:linear-gradient(135deg,#0d9488,#0f766e);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.9rem;box-shadow:0 4px 12px rgba(13,148,136,.35)}
.tp-day--final .tp-day__dot{background:linear-gradient(135deg,#1565c0,#0d47a1)}
.tp-day__line{flex:1;width:3px;min-height:1.5rem;margin:.35rem 0 0;background:linear-gradient(180deg,#0d9488,#cbd5e1);border-radius:3px}
.tp-day__panel{background:#fff;border:1px solid #e2e8f0;border-radius:16px;padding:1rem 1.1rem;margin-bottom:1rem;box-shadow:0 2px 10px rgba(15,23,42,.05)}
.tp-day__head{display:flex;justify-content:space-between;align-items:flex-start;gap:.75rem;margin-bottom:.75rem}
.tp-day__label{margin:0;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:#0d9488}
.tp-day__place{margin:.15rem 0 0;font-size:1.15rem;font-weight:800;color:#0f172a;line-height:1.25}
.tp-pill{flex-shrink:0;font-size:.75rem;font-weight:700;padding:.28rem .55rem;border-radius:999px;background:#ede9fe;color:#5b21b6}
.tp-block{margin-top:.75rem;padding-top:.75rem;border-top:1px dashed #e2e8f0}
.tp-block__title{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#64748b;margin-bottom:.45rem}
.tp-block--transport{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:.75rem .85rem;border-top:none;margin-top:.5rem}
.tp-next{margin:0 0 .5rem;font-weight:700;font-size:.95rem;color:#0f172a}
.tp-legs{display:flex;flex-direction:column;gap:.45rem}
.tp-leg{display:grid;grid-template-columns:4.5rem 1fr auto auto auto;gap:.4rem .65rem;align-items:center;padding:.45rem .55rem;background:#fff;border-radius:10px;border:1px solid #e8ecf0;font-size:.86rem}
.tp-leg__mode{font-weight:800;text-transform:uppercase;font-size:.7rem;color:#1565c0}
.tp-leg__route{font-weight:600;color:#1e293b}
.tp-leg__num{font-weight:800;color:#0f172a;font-variant-numeric:tabular-nums;white-space:nowrap}
.tp-leg__times{font-variant-numeric:tabular-nums;font-weight:700;color:#0d9488;white-space:nowrap}
.tp-leg__link{font-size:.78rem;font-weight:700;white-space:nowrap}
.tp-leg__chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.15rem}
.tp-chip{font-size:.72rem;padding:.15rem .4rem;border-radius:6px;background:#f1f5f9;color:#334155;font-variant-numeric:tabular-nums}
.tp-chip-label{font-size:.72rem;color:#64748b;font-weight:600;margin-right:.2rem}
.tp-travel-date{font-size:.82rem;color:#64748b;margin:0 0 .35rem}
.tp-block__sub{font-size:.8rem;color:#64748b;margin:.15rem 0 .4rem}
.tp-xfer{font-size:.8rem;margin:.35rem 0 0;padding:.35rem .5rem;border-radius:8px}
.tp-xfer--ok{background:#ecfdf5;color:#065f46}
.tp-xfer--warn{background:#fff7ed;color:#9a3412}
.tp-missed{margin-top:.45rem;font-size:.82rem}
.tp-missed summary{cursor:pointer;font-weight:700;color:#0f172a}
.tp-missed ul{margin:.35rem 0 0;padding-left:1.1rem}
.tp-missed li{margin:.2rem 0;color:#334155}
.trip-zbids-budget{margin:.65rem 0 0;padding:.75rem .9rem;border-radius:12px;border:1px solid #c7d2fe;background:#eef2ff}
.trip-zbids-budget__hint{margin:0 0 .55rem;font-size:.82rem;color:#3730a3;line-height:1.4}
.trip-zbids-budget__row{display:flex;flex-wrap:wrap;gap:.55rem .75rem;align-items:flex-end}
.trip-zbids-budget__row label{display:flex;flex-direction:column;gap:.2rem;font-size:.78rem;font-weight:600;color:#4338ca}
.trip-zbids-budget__row .trip-builder__input{min-width:5.5rem;max-width:8rem}
.trip-zbids-budget__flex{flex-direction:row!important;align-items:center;gap:.35rem!important;padding-bottom:.35rem}
.trip-saved{margin:.75rem 0;padding:.65rem .85rem;border-radius:12px;border:1px solid #e2e8f0;background:#f8fafc}
.trip-saved__title{margin:0 0 .4rem;font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#64748b}
.trip-saved__list{margin:0;padding-left:1.1rem}
.trip-saved__list a{font-weight:600;color:#0f766e}
.trip-permalink-banner{margin:0 0 .75rem;padding:.55rem .75rem;border-radius:10px;background:#ecfdf5;border:1px solid #a7f3d0;font-size:.88rem}
.trip-permalink-banner a{font-weight:800;color:#065f46}
.trip-detail-permalink-note{margin:.5rem 0 0;font-size:.82rem;opacity:.85}
.trip-stop-ad{margin:.35rem 0 1rem}
@media (max-width:640px){.tp-leg{grid-template-columns:1fr 1fr;}.tp-leg__mode{grid-column:1/-1}}
.tp-block--photo p{margin:0;font-size:.9rem;line-height:1.5;color:#334155}
.tp-spots{list-style:none;margin:.5rem 0 0;padding:0;display:flex;flex-wrap:wrap;gap:.35rem}
.tp-spots li{font-size:.78rem;font-weight:600;padding:.25rem .55rem;border-radius:999px;background:#f1f5f9;border:1px solid #e2e8f0;color:#334155}
.tp-block--wx p{margin:0 0 .3rem;font-size:.85rem;color:#475569}
.tp-rhythm{list-style:none;margin:0;padding:0}
.tp-rhythm__item{display:grid;grid-template-columns:3.4rem 1fr;gap:.55rem;padding:.35rem 0;border-bottom:1px solid #f1f5f9}
.tp-rhythm__time{font-variant-numeric:tabular-nums;font-weight:800;color:#0d9488;font-size:.86rem}
.tp-rhythm__body{display:flex;flex-direction:column;gap:.1rem;font-size:.86rem}
.tp-rhythm__body span{color:#64748b;font-size:.8rem}
.tp-catalog{display:flex;flex-direction:column;gap:.65rem}
.tp-catalog__label{font-size:.72rem;font-weight:700;text-transform:uppercase;color:#94a3b8;margin-bottom:.35rem}
.tp-catalog__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.5rem}
.tp-catalog__card{display:flex;align-items:center;justify-content:space-between;gap:.5rem;padding:.55rem .65rem;border-radius:12px;border:1px solid #e2e8f0;background:#fff;text-decoration:none;color:inherit}
.tp-catalog__title{font-size:.84rem;font-weight:600;line-height:1.3}
.tp-catalog__qr{border-radius:6px;border:1px solid #e2e8f0;flex-shrink:0}
.tp-catalog__badge--booked{font-size:.72rem;font-weight:700;color:#0f766e}

/* Builder: round-trip checkbox */
.trip-builder__field--roundtrip{display:flex;align-items:center;gap:.45rem;min-height:2.5rem;padding-top:1.1rem;font-size:.86rem;font-weight:600;color:#0f172a;cursor:pointer;user-select:none}
.trip-builder__field--roundtrip input{width:1.05rem;height:1.05rem;accent-color:#0d9488}

/* Detail page: day rhythm + missed block polish */
.trip-rhythm-list{list-style:none;margin:.35rem 0 0;padding:0}
.trip-rhythm-list li{display:grid;grid-template-columns:3.4rem 1fr;gap:.55rem;padding:.4rem 0;border-bottom:1px solid #f1f5f9;font-size:.9rem}
.trip-rhythm-list time{font-variant-numeric:tabular-nums;font-weight:800;color:#0d9488;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.trip-stop-card__rhythm h4{margin:0 0 .25rem;font-size:.85rem}
.trip-stop-transport__missed,.connection-missed-block{margin-top:.85rem;padding:.75rem .9rem;border-radius:12px;border:1px solid #fde68a;background:#fffbeb}
.trip-stop-transport__missed .connection-missed-block__title,.connection-missed-block__title{margin:0 0 .25rem;font-size:.92rem;color:#b45309}
.trip-stop-transport__missed-list{margin:.4rem 0 0;padding-left:1.15rem}
.trip-stop-transport__missed-list li{margin:.25rem 0;line-height:1.4;color:#334155;font-size:.88rem}
.trip-stop-transport__gaps{margin:.5rem 0 0;padding-left:1.1rem;font-size:.86rem;color:#475569}
.trip-stop-transport__gaps .is-risky{color:#b45309;font-weight:600}
.trip-stop-transport__alts{border-color:#bfdbfe;background:#eff6ff}
.trip-stop-transport__alts .connection-missed-block__title{color:#1d4ed8}
.connection-missed-alt{display:grid;grid-template-columns:1fr auto;gap:.2rem .75rem;align-items:center;padding:.55rem .65rem;border-radius:10px;border:1px solid #dbeafe;background:#fff;text-decoration:none;color:inherit;margin-top:.4rem}
.connection-missed-alt__badge{grid-column:1/-1;font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.03em;color:#1d4ed8}
.connection-missed-alt--bus .connection-missed-alt__badge{color:#b45309}
.connection-missed-alt__path{font-weight:700;font-size:.88rem}
.connection-missed-alt__meta{font-size:.78rem;color:#64748b}
.connection-missed-alt__go{font-weight:800;color:#2563eb}
.tp-alts{margin-top:.65rem;padding:.65rem .75rem;border-radius:12px;border:1px solid #bfdbfe;background:#eff6ff}
.tp-alts__title{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#1d4ed8;margin-bottom:.2rem}
.tp-alts__sub{margin:0 0 .45rem;font-size:.8rem;color:#475569}
.tp-alts__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}
.tp-alt{display:flex;flex-wrap:wrap;gap:.35rem .55rem;align-items:baseline;padding:.45rem .55rem;border-radius:10px;border:1px solid #dbeafe;background:#fff;text-decoration:none;color:inherit;font-size:.86rem}
.tp-alt__badge{font-size:.7rem;font-weight:800;text-transform:uppercase;color:#1d4ed8;background:#dbeafe;padding:.12rem .4rem;border-radius:6px}
.tp-alt__path{font-weight:700}
.trip-stop-places{margin-top:.9rem;padding:.85rem .95rem;border-radius:14px;border:1px solid #d1fae5;background:#ecfdf5}
.trip-stop-places__title{margin:0 0 .2rem;font-size:.92rem;color:#047857}
.trip-stop-places__sub{margin:0 0 .65rem;font-size:.82rem;color:#475569}
.trip-stop-places__list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.55rem}
.trip-stop-place{padding:.55rem .65rem;border-radius:12px;border:1px solid #a7f3d0;background:#fff}
.trip-stop-place__head{display:flex;flex-wrap:wrap;gap:.35rem .55rem;align-items:baseline}
.trip-stop-place__kind{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#047857;background:#d1fae5;padding:.12rem .4rem;border-radius:6px}
.trip-stop-place__name{font-size:.95rem;color:#0f172a}
.trip-stop-place__walk{font-size:.75rem;color:#64748b;font-weight:600}
.trip-stop-place__micro{margin:.35rem 0 .3rem;font-size:.88rem;line-height:1.45;color:#334155}
.trip-stop-place__meta{display:flex;flex-wrap:wrap;gap:.35rem .65rem;align-items:center;font-size:.78rem}
.trip-stop-place__coords{font-variant-numeric:tabular-nums;color:#64748b;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.trip-stop-place__maps,.trip-stop-place__more{font-weight:700;color:#0d9488;text-decoration:none}
.tp-places{margin-top:.65rem;padding:.65rem .75rem;border-radius:12px;border:1px solid #a7f3d0;background:#ecfdf5}
.tp-places__title{font-size:.78rem;font-weight:800;text-transform:uppercase;letter-spacing:.04em;color:#047857;margin-bottom:.2rem}
.tp-places__sub{margin:0 0 .45rem;font-size:.8rem;color:#475569}
.tp-place{padding:.5rem .55rem;border-radius:10px;border:1px solid #d1fae5;background:#fff;margin-top:.35rem}
.tp-place__head{display:flex;flex-wrap:wrap;gap:.3rem .5rem;align-items:baseline}
.tp-place__kind{font-size:.68rem;font-weight:800;text-transform:uppercase;color:#047857;background:#d1fae5;padding:.1rem .35rem;border-radius:5px}
.tp-place__name{font-weight:700;font-size:.9rem}
.tp-place__micro{margin:.3rem 0;font-size:.84rem;line-height:1.4;color:#334155}
.tp-place__meta{font-size:.76rem;color:#64748b;display:flex;flex-wrap:wrap;gap:.4rem}

/* Hub catalog search + empty */
.trip-hub-catalog-search .visually-hidden,
.trip-hub-samples-section .visually-hidden{
  position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;
}
.trip-hub-catalog-search{
  display:flex;flex-direction:column;gap:.75rem;
  margin:0 0 .85rem;padding:.75rem .85rem;
  background:var(--z-surface-white,#fff);border:1px solid #e2e8f0;border-radius:14px;
  box-shadow:0 1px 6px rgba(15,23,42,.04);
}
.trip-hub-catalog-search__row{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem}
.trip-hub-catalog-search__input{
  flex:1 1 12rem;min-width:0;border:1px solid #cbd5e1;border-radius:10px;
  padding:.55rem .75rem;font-size:.92rem;background:#f8fafc;
}
.trip-hub-catalog-search__input:focus{
  outline:none;border-color:#0d9488;box-shadow:0 0 0 3px rgba(13,148,136,.15);background:#fff;
}
.trip-hub-catalog-search__btn{
  border:none;border-radius:10px;padding:.55rem 1rem;font-weight:700;font-size:.88rem;
  cursor:pointer;color:#fff;background:linear-gradient(135deg,#0d9488,#0f766e);
}
.trip-hub-catalog-search__btn:hover{filter:brightness(1.05)}
.trip-hub-catalog-search__clear{
  font-size:.84rem;font-weight:600;color:#64748b;text-decoration:none;
}
.trip-hub-catalog-search__clear:hover{color:#0f766e}
.trip-hub-catalog-filters{display:flex;flex-direction:column;gap:.65rem}
.trip-hub-filter-group__label{
  display:block;font-size:.72rem;font-weight:800;letter-spacing:.04em;
  text-transform:uppercase;color:#64748b;margin-bottom:.35rem;
}
.trip-hub-filter-chips{display:flex;flex-wrap:wrap;gap:.4rem}
.trip-hub-chip{
  display:inline-flex;align-items:center;padding:.32rem .7rem;border-radius:999px;
  border:1px solid #cbd5e1;background:#f8fafc;color:#334155;font-size:.8rem;font-weight:600;
  text-decoration:none;cursor:pointer;line-height:1.2;
}
.trip-hub-chip:hover{border-color:#0d9488;color:#0f766e}
.trip-hub-chip.is-active{
  background:linear-gradient(135deg,#0d9488,#0f766e);color:#fff;border-color:transparent;
}
.trip-hub-chip--exact{background:#fff}
.trip-hub-filter-selects{
  display:flex;flex-wrap:wrap;gap:.65rem .85rem;align-items:flex-end;
}
.trip-hub-select{display:flex;flex-direction:column;gap:.25rem;min-width:9rem;flex:1 1 9rem}
.trip-hub-select span{font-size:.72rem;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.03em}
.trip-hub-select select{
  border:1px solid #cbd5e1;border-radius:10px;padding:.45rem .6rem;font-size:.88rem;background:#fff;color:#0f172a;
}
.trip-hub-check{
  display:inline-flex;align-items:center;gap:.4rem;font-size:.88rem;font-weight:600;color:#334155;
  padding:.45rem 0;cursor:pointer;user-select:none;
}
.trip-hub-check input{width:1rem;height:1rem;accent-color:#0d9488}
.trip-hub-catalog-meta{
  margin:0 0 .85rem;font-size:.82rem;color:#64748b;
}
.trip-hub-catalog-empty{
  grid-column:1/-1;margin:1.5rem 0;padding:1.5rem;text-align:center;
  color:#64748b;font-size:.95rem;background:#f8fafc;border-radius:14px;border:1px dashed #cbd5e1;
}
.trip-hub-catalog-pagination{margin-top:1.25rem}
@media (max-width:640px){
  .trip-hub-filter-selects{flex-direction:column;align-items:stretch}
  .trip-hub-select{min-width:0}
}

