:root {
  color-scheme: light;
  --bg: #eef5f7;
  --panel: #ffffff;
  --panel-2: #f6fafb;
  --line: #cfdee2;
  --text: #12313b;
  --muted: #627a82;
  --accent: #18a999;
  --accent-ink: #052d2b;
  --good: #087f6d;
  --bad: #a43d45;
  --navy: #103b4a;
  --sky: #dff2f5;
  --shadow: 0 18px 50px rgba(16,59,74,.11);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
* { box-sizing: border-box; }
body { margin: 0; background: radial-gradient(circle at 20% 0%, #172033 0, var(--bg) 42%); color: var(--text); min-height: 100vh; }
button, input, select { font: inherit; }
button { cursor: pointer; }
.topbar { height: 74px; display:flex; align-items:center; justify-content:space-between; padding:0 max(24px, calc((100vw - 1132px)/2)); border-bottom:1px solid rgba(255,255,255,.07); backdrop-filter: blur(14px); position:sticky; top:0; z-index:10; background:rgba(13,17,23,.82); }
.brand { display:flex; min-height:44px; gap:12px; align-items:center; }
.brand-mark { width:44px; height:44px; border-radius:12px; display:grid; place-items:center; background:var(--accent); color:var(--accent-ink); font-weight:900; }
.brand div { display:flex; flex-direction:column; line-height:1.18; }
.brand strong { font-size:17px; }
.brand span { color:var(--muted); font-size:16px; margin-top:4px; }
.status { display:flex; align-items:center; min-height:44px; font-size:16px; color:var(--good); border:1px solid rgba(98,212,154,.3); background:rgba(98,212,154,.08); padding:7px 10px; border-radius:999px; }
.shell { max-width:1180px; margin:0 auto; padding:34px 24px 70px; }
.search-panel { background:linear-gradient(180deg, rgba(27,35,48,.98), rgba(21,27,35,.98)); border:1px solid var(--line); border-radius:22px; box-shadow:var(--shadow); overflow:hidden; }
.mode-switch { display:flex; gap:4px; padding:10px; border-bottom:1px solid var(--line); background:rgba(255,255,255,.02); }
.mode, .stay-tab, .choice, .variant-tabs button { border:0; color:var(--muted); background:transparent; border-radius:10px; padding:10px 14px; font-weight:700; }
.mode.active, .stay-tab.active, .choice.active, .variant-tabs button.active { color:var(--text); background:#273244; }
#searchForm { padding:22px; }
.route-grid { display:grid; grid-template-columns:1fr 44px 1fr; align-items:end; gap:10px; }
.route-arrow { display:grid; place-items:center; height:48px; color:var(--muted); font-size:22px; }
.field { display:flex; flex-direction:column; gap:7px; min-width:0; }
.field span { font-size:16px; font-weight:700; color:var(--muted); }
.field input, .field select { width:100%; height:48px; border-radius:12px; border:1px solid var(--line); background:#0f151e; color:var(--text); padding:0 13px; outline:none; }
.field input:focus, .field select:focus { border-color:#6a7890; box-shadow:0 0 0 3px rgba(106,120,144,.18); }
.date-grid { margin-top:16px; display:grid; grid-template-columns:minmax(0, 1fr) minmax(180px, .55fr); grid-template-areas:"departure time" "return one-way" "calendar calendar" "flexible flexible"; gap:12px; align-items:end; }
.departure-field { grid-area:departure; }
.date-input-row { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:8px; }
.calendar-toggle, .calendar-head button { min-height:44px; border:1px solid #bfd1d6; border-radius:10px; background:white; color:var(--navy); font-weight:800; padding:0 12px; }
.calendar-panel { margin-top:4px; padding:12px; border:1px solid var(--line); border-radius:13px; background:white; box-shadow:var(--shadow); }
.calendar-panel-field { grid-area:calendar; margin-top:0; }
.calendar-head { display:grid; grid-template-columns:44px 1fr 44px; align-items:center; text-align:center; gap:8px; }
.calendar-weekdays, .calendar-days { display:grid; grid-template-columns:repeat(7,minmax(32px,1fr)); gap:4px; margin-top:8px; text-align:center; }
.calendar-weekdays span { padding:6px 0; color:var(--muted); font-size:16px; font-weight:800; }
.calendar-days button { min-height:42px; border:1px solid transparent; border-radius:9px; background:var(--panel-2); color:var(--text); }
.calendar-days button:hover:not(:disabled) { border-color:var(--accent); }
.calendar-days button.selected { background:var(--navy); color:white; font-weight:900; }
.calendar-days button:disabled { opacity:.35; cursor:not-allowed; }
.flexible-search-field { grid-area:flexible; min-width:240px; }
.flexible-search-controls { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:7px; }
.flexible-search-controls > .hidden { display:none; }
.flexible-search-field small { color:var(--muted); margin-top:4px; }
.price-calendar-results { padding:18px; border:1px solid var(--line); border-radius:16px; background:var(--panel); box-shadow:var(--shadow); }
.price-calendar-heading { display:flex; justify-content:space-between; align-items:end; gap:12px; }
.price-calendar-heading h2 { margin:3px 0 0; font-size:20px; }
.price-calendar-days { display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:9px; margin-top:14px; }
.price-calendar-day { display:flex; flex-direction:column; align-items:flex-start; min-height:112px; padding:12px; border:1px solid var(--line); border-radius:12px; background:var(--panel-2); color:var(--text); text-align:left; }
.price-calendar-day strong { margin-top:5px; color:var(--good); font-size:18px; }
.price-calendar-day small { margin-top:3px; color:var(--muted); }
.price-calendar-day b { margin-top:auto; padding-top:7px; color:#7b5100; font-size:16px; }
.price-calendar-day.cheapest { border-color:#e0a119; background:#fff8e7; box-shadow:inset 0 0 0 1px #e0a119; }
.return-field { grid-area:return; }
.return-field.disabled { opacity:.72; }
.return-field.disabled input, .return-field.disabled button { background:#e8eef0; color:#758990; cursor:not-allowed; }
.return-disabled-hint { color:var(--muted); font-size:16px; font-weight:600; }
.departure-time-field { grid-area:time; }
.one-way-button { grid-area:one-way; height:48px; align-self:end; white-space:nowrap; }
.one-way-button.active { border-color:var(--navy); background:var(--navy); color:white; }
.hidden { display:none !important; }
.priority-row { margin-top:18px; }
.transport-panel { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:10px 18px; margin-top:18px; padding:13px 16px; border:1px solid var(--line); border-radius:14px; background:var(--panel-2); }
.transport-panel > div:first-child { display:flex; flex-direction:column; gap:3px; }
.transport-panel span { color:var(--muted); font-size:16px; }
.transport-choices { display:flex; gap:10px; flex-wrap:wrap; }
.transport-choice { position:relative; display:flex; align-items:center; gap:8px; min-height:44px; padding:8px 13px; border:1px solid var(--line); border-radius:11px; background:var(--panel); font-weight:800; cursor:pointer; }
.transport-choice:has(input:checked) { border-color:var(--accent); box-shadow:inset 0 0 0 1px var(--accent); background:#fff8e7; }
.transport-choice input { accent-color:var(--accent); width:17px; height:17px; }
.split-ticket-choice { grid-column:2; min-height:auto; justify-self:start; }
.split-ticket-choice.disabled { opacity:.55; }
.ticket-toggle { display:flex; justify-content:space-between; align-items:center; gap:16px; padding:15px 16px; border:1px solid rgba(240,196,25,.28); background:linear-gradient(90deg, rgba(240,196,25,.08), rgba(240,196,25,.02)); border-radius:14px; }
.ticket-toggle > div:first-child { display:flex; flex-direction:column; gap:4px; }
.ticket-toggle strong { font-size:16px; }
.ticket-toggle span { color:var(--muted); font-size:16px; }
.yes-no { display:flex; background:#0e141d; padding:4px; border-radius:12px; border:1px solid var(--line); }
.choice.active[data-dticket="true"] { background:var(--accent); color:var(--accent-ink); }
.options-grid { display:grid; grid-template-columns:1.2fr 1fr .8fr; gap:12px; margin-top:16px; }
.advanced { margin-top:16px; border-top:1px solid var(--line); padding-top:14px; color:var(--muted); }
.advanced summary { cursor:pointer; font-weight:700; font-size:16px; }
.advanced-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:14px; }
.check { display:flex; align-items:center; gap:8px; min-height:44px; font-size:16px; color:var(--text); }
.check input, .refresh input { accent-color:var(--accent); width:17px; height:17px; }
.submit-row { display:flex; align-items:center; justify-content:center; gap:24px; margin-top:20px; }
.search-button { border:0; border-radius:13px; background:var(--accent); color:var(--accent-ink); font-weight:900; padding:14px 23px; min-width:200px; box-shadow:0 8px 25px rgba(240,196,25,.16); }
.search-button:disabled { opacity:.55; cursor:progress; }
.refresh { font-size:16px; color:var(--muted); display:flex; gap:8px; align-items:center; }
.message { margin-top:18px; padding:15px 17px; border-radius:13px; border:1px solid var(--line); background:var(--panel); }
.search-progress { margin-top:18px; padding:17px; border:1px solid var(--line); border-radius:15px; background:var(--panel); box-shadow:var(--shadow); }
.progress-heading { display:flex; justify-content:space-between; align-items:center; gap:16px; }
.progress-heading h2 { margin:3px 0 0; font-size:18px; }
.progress-heading > span { color:var(--muted); font-weight:800; }
.progress-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; margin-top:14px; }
.progress-step { display:grid; grid-template-columns:12px minmax(0,1fr); align-items:center; gap:3px 8px; min-width:0; padding:10px; border-radius:10px; background:var(--panel-2); }
.progress-step > span:not(.progress-dot) { grid-column:2; color:var(--muted); font-size:16px; }
.progress-step small { grid-column:2; overflow-wrap:anywhere; color:var(--bad); }
.progress-dot { width:10px; height:10px; border-radius:50%; background:#9aadb3; }
.progress-step.loading .progress-dot, .progress-step.processing .progress-dot { background:#e6a700; animation:pulse 1.1s ease-in-out infinite; }
.progress-step.completed .progress-dot { background:var(--good); }
.progress-step.empty .progress-dot { background:#71858b; }
.progress-step.failed .progress-dot { background:var(--bad); }
@keyframes pulse { 50% { opacity:.35; transform:scale(.8); } }
.message.error { border-color:rgba(255,123,114,.35); color:#ffd0cc; }
.results { margin-top:22px; display:grid; gap:14px; }
.summary-card, .result-card { border:1px solid var(--line); background:linear-gradient(180deg, rgba(27,35,48,.98), rgba(21,27,35,.98)); border-radius:17px; padding:18px; box-shadow:0 12px 30px rgba(0,0,0,.17); }
.summary-card { display:flex; align-items:center; justify-content:space-between; gap:18px; }
.summary-card h2 { margin:0 0 5px; font-size:22px; }
.summary-card p { margin:0; color:var(--muted); font-size:16px; }
.total { text-align:right; }
.total strong { display:block; font-size:22px; }
.total span { font-size:16px; color:var(--muted); }
.card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:15px; }
.card-head h3 { margin:3px 0 0; font-size:17px; }
.eyebrow { text-transform:uppercase; letter-spacing:.08em; font-size:16px; color:var(--muted); font-weight:800; }
.price-pill { border-radius:999px; padding:7px 10px; background:rgba(98,212,154,.09); color:var(--good); font-weight:800; font-size:16px; white-space:nowrap; }
.variant-tabs { display:flex; gap:5px; margin-top:14px; flex-wrap:wrap; }
.variant-tabs button { font-size:16px; padding:7px 10px; border:1px solid transparent; }
.variant-tabs button.active { border-color:var(--line); }
.variant-content { margin-top:14px; }
.timeline { display:grid; gap:10px; }
.timeline-row { display:grid; grid-template-columns:120px 1fr auto; gap:12px; align-items:center; border-top:1px solid rgba(255,255,255,.06); padding-top:10px; }
.timeline-row:first-child { border-top:0; padding-top:0; }
.timeline-row .time { font-variant-numeric:tabular-nums; font-weight:800; }
.timeline-row .meta { color:var(--muted); font-size:16px; }
.badge { display:inline-flex; border:1px solid var(--line); padding:4px 7px; border-radius:999px; font-size:16px; font-weight:800; margin-right:5px; color:var(--muted); }
.badge.ticket { border-color:rgba(240,196,25,.32); color:#f5d85b; }
.hotel-list { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:12px; }
.hotel { padding:13px; background:#0f151e; border:1px solid var(--line); border-radius:12px; }
.hotel strong { display:block; margin-bottom:6px; }
.hotel .hotel-price { margin-top:8px; font-weight:900; }
.link { color:#9bc3ff; text-decoration:none; }
.muted { color:var(--muted); }
.spinner { display:inline-block; width:14px; height:14px; border:2px solid rgba(27,23,0,.3); border-top-color:var(--accent-ink); border-radius:50%; animation:spin .8s linear infinite; vertical-align:-2px; margin-right:8px; }
@keyframes spin { to { transform:rotate(360deg); } }
@media (max-width:850px) {
  .date-grid { grid-template-columns:minmax(0, 1fr) minmax(160px, .55fr); }
  .options-grid { grid-template-columns:1fr 1fr; }
  .advanced-grid { grid-template-columns:1fr 1fr; }
  .hotel-list { grid-template-columns:1fr; }
}
@media (max-width:620px) {
  .shell { padding:18px 16px 50px; }
  .topbar { padding:0 16px; position:static; }
  .mode-switch { display:grid; grid-template-columns:1fr; }
  .mode { min-height:54px; }
  .route-grid { grid-template-columns:1fr; }
  .route-arrow { height:20px; transform:rotate(90deg); }
  .date-grid { grid-template-columns:1fr; grid-template-areas:"departure" "return" "time" "one-way" "calendar" "flexible"; }
  .options-grid, .advanced-grid { grid-template-columns:1fr; }
  .ticket-toggle, .summary-card, .submit-row { align-items:stretch; flex-direction:column; }
  .total { text-align:left; }
  .card-head { min-width:0; }
  .card-head > div { min-width:0; }
  .price-pill { white-space:normal; flex:0 1 auto; text-align:right; }
  .timeline-row { grid-template-columns:minmax(76px, 94px) minmax(0,1fr); }
  .timeline-row > :last-child:not(:nth-child(2)) { grid-column:2; }
  .progress-heading { align-items:flex-start; flex-direction:column; gap:5px; }
  .progress-steps { grid-template-columns:1fr; }
  .flexible-search-controls { grid-template-columns:1fr; }
  .price-calendar-heading { align-items:flex-start; flex-direction:column; }
  .price-calendar-days { grid-template-columns:1fr 1fr; }
}

/* Traviorel components */
body { background: linear-gradient(180deg, #dff2f5 0, #eef5f7 280px, #eef5f7 100%); }
.topbar { background: rgba(255,255,255,.9); border-color: rgba(16,59,74,.1); box-shadow: 0 1px 0 rgba(16,59,74,.04); }
.brand-mark { background: var(--navy); color: white; border-radius: 50% 50% 50% 12px; font-size: 20px; }
.status { color: var(--good); border-color: rgba(8,127,109,.25); background: rgba(8,127,109,.07); }
.search-panel, .summary-card, .result-card { background: var(--panel); border-color: var(--line); }
.search-panel { border-radius: 18px; }
.mode-switch { background: #f6fafb; border-color: var(--line); padding: 7px; }
.mode.active, .stay-tab.active, .choice.active, .variant-tabs button.active { color: white; background: var(--navy); }
#searchForm { padding: 24px; }
.field input, .field select { background: white; color: var(--text); border-color: #bfd1d6; }
.field input:focus, .field select:focus { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(24,169,153,.14); }
.stay-box { background: var(--panel-2); border-color: var(--line); }
.ticket-toggle { border-color: rgba(24,169,153,.35); background: linear-gradient(90deg, rgba(24,169,153,.12), rgba(223,242,245,.6)); }
.yes-no { background: white; border-color: #bfd1d6; }
.choice.active[data-dticket="true"] { background: var(--accent); color: white; }
.lodging-panel { margin-top: 18px; padding: 18px; border: 1px solid var(--line); border-radius: 15px; background: var(--panel-2); }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin-bottom: 13px; }
.section-heading h2 { margin: 2px 0 0; font-size: 17px; }
.section-kicker { color: var(--good); text-transform: uppercase; letter-spacing: .09em; font-size: 16px; font-weight: 900; }
.section-note { color: var(--muted); font-size: 16px; }
.property-tabs { display: grid; grid-template-columns: repeat(5,1fr); gap: 8px; }
.property-tab { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; min-height: 64px; padding: 11px 12px; color: var(--text); background: white; border: 1px solid #c8d9dd; border-radius: 11px; text-align: left; }
.property-tab span { color: var(--muted); font-size: 16px; }
.property-tab.active { border-color: var(--accent); background: #e4f7f4; box-shadow: inset 0 0 0 1px var(--accent); color: #075e54; }
.property-tab.active span { color: #39736d; }
.lodging-options { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 12px; max-width: 520px; }
.lodging-help { margin: 10px 0 0; color: var(--muted); font-size: 16px; }
.advanced { border-color: var(--line); }
.search-button { background: var(--navy); color: white; box-shadow: 0 8px 24px rgba(16,59,74,.2); }
.search-button:hover { background: #185468; }
.summary-card, .result-card { box-shadow: 0 10px 28px rgba(16,59,74,.08); }
.price-pill { background: rgba(8,127,109,.09); color: var(--good); }
.timeline-row { border-color: rgba(16,59,74,.09); }
.badge.ticket { border-color: rgba(24,169,153,.4); color: #08786b; background: #e8f8f5; }
.hotel { background: var(--panel-2); border-color: var(--line); }
.link { color: #086f91; }
.spinner { border-color: rgba(255,255,255,.35); border-top-color: white; }
@media (max-width:850px) { .property-tabs { grid-template-columns: repeat(3,1fr); } }
@media (max-width:620px) {
  .property-tabs { grid-template-columns: 1fr 1fr; }
  .section-heading { align-items: flex-start; flex-direction: column; gap: 5px; }
  .lodging-options { grid-template-columns: 1fr; }
  .property-tab { min-height: 58px; }
}

.dticket-only { display: flex; align-items: center; gap: 10px; margin-top: 9px; padding: 11px 14px; border: 1px solid rgba(24,169,153,.3); border-radius: 11px; background: #f2fbfa; }
.dticket-only input { width: 18px; height: 18px; accent-color: var(--accent); }
.dticket-only span { display: flex; flex-direction: column; gap: 2px; color: var(--muted); font-size: 16px; }
.dticket-only strong { color: var(--text); font-size: 16px; }

.alternative-list { display: grid; gap: 12px; margin-top: 14px; }
.alternative { padding: 14px; border: 1px solid var(--line); border-radius: 12px; background: var(--panel-2); }
.alternative-head { display: flex; justify-content: space-between; align-items: flex-start; gap: 14px; margin-bottom: 12px; }
.alternative-head > div { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.alternative-head b { color: var(--good); white-space: nowrap; }
.alternative > .meta { margin: 10px 0 0; }

.mode { display:flex; flex:1 1 0; flex-direction:column; align-items:flex-start; justify-content:center; gap:3px; min-width:0; min-height:62px; text-align:left; }
.mode strong { line-height:1.2; }
.mode span { min-height:2.4em; font-size:16px; font-weight:500; line-height:1.2; opacity:.78; }

body {
  background-image: linear-gradient(rgba(238,245,247,.76), rgba(238,245,247,.94)), url("/assets/travel-background.svg");
  background-size: cover;
  background-position: center top;
  background-attachment: fixed;
}
@media (max-width: 620px) { body { background-attachment: scroll; } }

.direction-group { display: grid; gap: 12px; }
.direction-heading { display: flex; align-items: end; justify-content: space-between; gap: 16px; padding: 8px 4px 0; }
.direction-heading h2 { margin: 3px 0 0; font-size: 20px; }

.coverage-panel { margin-top:10px; padding:10px 12px; border:1px solid #c9dfe1; border-radius:11px; background:#f5fbfb; }
.coverage-heading { display:flex; justify-content:space-between; gap:12px; align-items:center; }
.coverage-heading > span { color:var(--muted); font-size:16px; }
.coverage-content { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:7px 12px; margin-top:7px; }
.coverage-loading, .coverage-unavailable { color:var(--muted); margin:0; }
.coverage-network > div:first-child { display:flex; justify-content:space-between; gap:8px; font-size:16px; }
.coverage-meter { height:7px; margin-top:4px; overflow:hidden; border-radius:999px; background:#d7e5e7; }
.coverage-meter i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,#e0a119,#18a999); }
.coverage-network details { margin-top:5px; color:var(--muted); font-size:16px; }
.coverage-network ul { margin:6px 0 0; padding-left:20px; }
.warning-panel { margin:14px 0; padding:16px; border:1px solid #e5b95f; border-radius:14px; background:#fff9e9; }
.warning-heading { display:flex; gap:9px; align-items:center; margin-bottom:10px; color:#744b00; }
.warning-heading h2 { margin:0; font-size:20px; }
.travel-warning { display:grid; grid-template-columns:30px minmax(0,1fr); gap:10px; padding:11px 0; border-top:1px solid #efdba9; }
.travel-warning:first-of-type { border-top:0; }
.travel-warning p { margin:5px 0; }
.warning-icon { font-size:22px; line-height:1; }
.warning-location { margin-top:4px; color:#744b00; font-size:16px; }
@media (max-width:620px) {
  .coverage-heading { align-items:flex-start; flex-direction:column; gap:2px; }
  .coverage-panel { padding:12px; }
  .coverage-content { grid-template-columns:1fr 1fr; gap:7px 10px; }
  .transport-panel { grid-template-columns:1fr; align-items:flex-start; }
  .transport-choices { gap:10px 16px; }
  .split-ticket-choice { grid-column:1; }
}
.direction-count { color: var(--muted); font-size: 16px; font-weight: 800; }
.connection-list { display: grid; gap: 12px; }
.provider-statuses { display:grid; gap:6px; margin:12px 0 0; padding:0; list-style:none; }
.provider-statuses li { display:flex; justify-content:space-between; gap:12px; color:var(--muted); }
.connection-card h3 { margin: 7px 0 0; font-size: 21px; font-variant-numeric: tabular-nums; }
.connection-labels { min-height: 24px; }
.connection-summary { margin: 5px 0 0; color: var(--muted); font-size: 16px; }
.departure-tolerance { display:inline-block; margin:7px 0 0; padding:4px 8px; border-radius:999px; background:#fff2cc; color:#6f4c00; font-size:16px; font-weight:800; }
.reliability-summary { display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:10px; color:#08786b; font-size:16px; }
.reliability-empty { color:var(--muted); }
.reliability-quality { color:var(--muted); font-size:16px; font-weight:600; }
.reliability-details { margin-top:8px; color:var(--muted); font-size:16px; }
.reliability-details summary { cursor:pointer; font-weight:700; }
.reliability-leg { display:flex; flex-direction:column; gap:2px; margin-top:7px; }
.reliability-leg strong { color:var(--text); }
.connection-leg { grid-template-columns: 120px minmax(0, 1fr); }
.connection-leg > div { min-width: 0; overflow-wrap: anywhere; }
@media (max-width: 620px) {
  .direction-heading { align-items: flex-start; }
  .connection-card .card-head { align-items: flex-start; }
  .connection-card h3 { font-size: 18px; }
  .connection-leg { grid-template-columns: 88px minmax(0, 1fr); gap: 9px; }
  .connection-leg .time { font-size: 16px; }
}


.action-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 13px 0 0; }
.route-grid .field { position:relative; }
.station-suggestions { position:absolute; z-index:30; top:100%; left:0; right:0; max-height:320px; overflow:auto; margin-top:5px; padding:6px; border:1px solid var(--line); border-radius:12px; background:#fff; box-shadow:0 14px 34px rgba(16,59,74,.18); }
.station-suggestions button { display:flex; width:100%; flex-direction:column; gap:3px; padding:10px 11px; border:0; border-radius:8px; background:transparent; color:var(--text); text-align:left; cursor:pointer; }
.station-suggestions button:hover, .station-suggestions button:focus { background:#eaf5f6; }
.station-suggestions span { color:var(--muted); font-size:16px; overflow-wrap:anywhere; }
.action-link { display: inline-flex; align-items: center; min-height: 38px; padding: 8px 12px; border: 1px solid #a9cbd2; border-radius: 9px; background: #edf8fa; font-weight: 800; text-decoration: none; }
.action-link:hover { background: #dff2f5; }

.support-panel { width:min(100%, 760px); margin:30px auto 0; padding:22px 24px; border:1px solid var(--line); border-radius:14px; background:rgba(255,255,255,.64); color:var(--muted); }
.support-panel h2 { margin:0 0 10px; color:var(--text); font-size:20px; }
.support-panel p { margin:7px 0; line-height:1.55; }
.support-panel a { display:inline-block; margin-top:8px; color:#386b78; font-weight:700; }
.project-credit { display:flex; flex-direction:column; justify-content:center; align-items:center; gap:7px; width:min(calc(100% - 48px), 1132px); margin:20px auto 0; padding:0 0 24px; color:var(--muted); font-size:16px; line-height:1.45; text-align:center; overflow-wrap:anywhere; }
.project-credit a { color: #386b78; text-decoration: none; font-weight: 700; }
.project-credit a:hover { text-decoration: underline; }
.project-credit [aria-hidden="true"] { display:none; }
@media (max-width: 620px) {
  .support-panel { padding:18px; }
  .project-credit { width:calc(100% - 32px); margin-top:16px; padding-bottom:20px; }
  .project-credit [aria-hidden="true"] { display:none; }
}
