.traffic-filter {
  display: grid;
  grid-template-columns: minmax(220px, 1fr) auto;
  gap: 10px;
  align-items: end;
}
.traffic-filter label { grid-column: 1 / -1; display: block; }
.traffic-filter input { min-width: 0; }
.company-card:only-child { grid-column: 1 / -1; }
.consent-banner { position: fixed; z-index: 1000; left: 20px; right: 20px; bottom: 20px; max-width: 920px; margin: auto; padding: 18px 20px; border: 1px solid #cbd6e5; border-radius: 14px; background: #fff; color: #172b4d; box-shadow: 0 20px 65px rgba(23,43,77,.24); display: flex; gap: 24px; align-items: center; justify-content: space-between; }
.consent-banner strong { font: 800 1.05rem Manrope, sans-serif; }
.consent-banner p { margin: 4px 0 2px; color: #53647b; font-size: .9rem; }
.consent-banner a { color: #276ef1; font-size: .82rem; }
.consent-actions { display: flex; gap: 9px; flex-shrink: 0; }
.consent-actions button { border: 1px solid #172b4d; border-radius: 8px; padding: 10px 16px; background: #fff; color: #172b4d; font-weight: 700; cursor: pointer; }
.consent-actions button:last-child { background: #172b4d; color: #fff; }
.cookie-settings { border: 0; background: none; color: #8e9db1; padding: 0; font: inherit; text-decoration: underline; cursor: pointer; }
.line-filter { margin: 0; padding: 18px; border: 1px solid #cbd6e5; border-radius: 14px; background: #f8fbff; }
.line-filter legend { padding: 0 7px; font-weight: 800; color: #172b4d; }
.line-filter-heading { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.line-filter-heading p { display: flex; flex-direction: column; margin: 0; }
.line-filter-heading p span { color: #64758c; font-size: .84rem; }
.line-filter-heading>div { display: flex; gap: 8px; }
.line-filter-heading button { border: 0; padding: 6px 3px; background: none; color: #276ef1; font: inherit; font-size: .78rem; font-weight: 700; cursor: pointer; text-decoration: underline; }
.line-options { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 15px; }
.line-options label { display: flex; align-items: center; gap: 7px; min-height: 42px; padding: 7px 11px; border: 1px solid #cbd6e5; border-radius: 9px; background: #fff; cursor: pointer; font-size: .85rem; }
.line-options label:has(input:checked) { border-color: #276ef1; box-shadow: 0 0 0 2px rgba(39,110,241,.1); }
.line-options input { width: 17px; height: 17px; margin: 0; accent-color: #276ef1; }
.line-options label:focus-within { outline: 3px solid rgba(39,110,241,.2); outline-offset: 2px; }
.line-pill { min-width: 29px; padding: 4px 7px; border-radius: 6px; background: var(--bg,#276ef1); color: var(--fg,#fff); text-align: center; font-weight: 800; }
.departure-summary { min-height: 1.2em; color: #64758c; font-size: .82rem; }
.departure-list>.departure:last-child { border-bottom: 0; }
.departure-empty { border-bottom: 0; }
.departure-more { display: flex; justify-content: center; }
.departure-more .button { min-height: 42px; }
@media (max-width: 650px) { .consent-banner { left: 10px; right: 10px; bottom: 10px; display: block; padding: 16px; } .consent-actions { margin-top: 13px; } .consent-actions button { flex: 1; } }
@media (max-width: 560px) {
  .traffic-filter { grid-template-columns: 1fr; }
  .traffic-filter label { grid-column: 1; }
  .traffic-filter .button { width: 100%; justify-content: center; }
  .line-filter { padding: 14px; }
  .line-filter-heading { align-items: flex-start; flex-direction: column; gap: 7px; }
  .line-options { display: grid; grid-template-columns: 1fr 1fr; }
  .line-options label { min-width: 0; }
}
