.airport-shell { width: 100%; margin-inline: auto; }
body { margin: 0; background: var(--background); color: var(--foreground); font-family: var(--font-family); }
.airport-site-header { --pc-site-header-font-family: var(--font-family); height: auto; min-height: var(--pc-site-header-height); padding-inline: 0; }
.airport-header { display: flex; align-items: center; gap: var(--space-6); min-height: var(--pc-site-header-height); padding-inline: var(--space-6); }
.airport-header .pc-site-header__logo { display: inline-flex; flex-shrink: 0; }
.airport-wordmark { display: inline-flex; gap: var(--space-2); padding-left: var(--space-6); border-left: 1px solid var(--border); font-weight: 600; color: var(--foreground); }
.airport-wordmark span { color: var(--primary); }
.airport-stations-link { color: var(--foreground); text-decoration: none; }
.airport-header-actions { display: flex; gap: var(--space-2); margin-left: auto; }
.airport-select { min-height: var(--control-h-m); max-width: 100%; padding: var(--space-2) var(--space-3); border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--background); color: var(--foreground); font: inherit; font-size: var(--fs-sm); }
.airport-workspace { padding: var(--space-3) var(--space-6); border-bottom: 1px solid var(--border); }
.airport-search { display: flex; align-items: center; gap: var(--space-3); }
.airport-search > span { font-size: var(--fs-display); color: var(--muted-foreground); }
.airport-search .input { flex: 1; min-width: 0; height: var(--control-h-l); border: 0; background: var(--background); font-size: var(--control-font-l); box-shadow: none; }
.airport-filters { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-2); }
.airport-filters > label { min-width: 0; }
.airport-filters > label:nth-child(2) { max-width: 19rem; }
.airport-check { display: inline-flex; align-items: center; gap: var(--space-2); min-height: var(--control-h-m); font-size: var(--fs-sm); }
.airport-check input { accent-color: var(--primary); width: var(--space-4); height: var(--space-4); }
.airport-results-bar { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: var(--space-3); padding: var(--space-3) var(--space-6); }
.airport-results-bar p { margin: 0; font-size: var(--fs-sm); color: var(--muted-foreground); }
.airport-results-actions, .airport-view { display: flex; align-items: center; gap: var(--space-1); }
.airport-view { padding-right: var(--space-3); margin-right: var(--space-2); border-right: 1px solid var(--border); }
.airport-workspace button[aria-pressed="true"], .airport-view button[aria-pressed="true"] { color: var(--foreground); background: var(--surface); }
.airport-gallery { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: var(--space-5) var(--space-1); }
.airport-card { min-width: 0; position: relative; }
.airport-card-link { display: block; color: var(--foreground); text-decoration: none; }
.airport-visual { position: relative; display: grid; place-items: center; aspect-ratio: var(--atlas-card-ratio); background: var(--surface); overflow: hidden; }
.airport-visual img { position: absolute; width: 100%; height: 100%; object-fit: cover; }
.airport-code { position: relative; font: 500 clamp(2.75rem, 5vw, 5.5rem)/1 var(--font-family); letter-spacing: -.045em; color: var(--foreground); }
.airport-visual.has-photo::after { content: ''; position: absolute; inset: 0; background: rgb(0 0 0 / 45%); }
.airport-visual.has-photo .airport-code { color: #fff; z-index: 1; }
.airport-card-link:hover .airport-visual { outline: 2px solid var(--primary); outline-offset: 2px; }
.airport-card h2 { margin: var(--space-2) var(--space-3) var(--space-1); font-size: var(--fs-sm); line-height: var(--lh-body); }
.airport-card-name { display: none; margin: 0 var(--space-10) 0 0; font-size: var(--fs-xs); line-height: var(--lh-xs); color: var(--muted-foreground); }
.airport-save { position: absolute; right: var(--space-2); top: var(--space-2); min-width: var(--control-h-m); padding-inline: var(--space-2); background: var(--background); color: var(--foreground); }
.airport-save[aria-pressed="true"] { color: var(--primary-text); }
.airport-credit { margin: var(--space-1) var(--space-3) 0; color: var(--muted-foreground); font-size: var(--fs-2xs); line-height: var(--lh-xs); overflow-wrap: anywhere; }
.airport-credit a { color: inherit; text-decoration: underline; text-underline-offset: .15em; }
.airport-list { display: block; }
.airport-list .airport-card { border-bottom: 1px solid var(--border); padding-block: var(--space-4); padding-right: var(--space-12); }
.airport-list .airport-card-link { display: grid; grid-template-columns: 6rem 1fr; align-items: center; column-gap: var(--space-6); }
.airport-list .airport-visual { grid-row: span 2; aspect-ratio: auto; background: none; overflow: visible; }
.airport-list .airport-visual img, .airport-list .airport-visual::after { display: none; }
.airport-list .airport-code, .airport-list .has-photo .airport-code { font-size: var(--fs-h1); color: var(--primary-text); }
.airport-list h2 { margin: 0; }
.airport-list .airport-card-name { display: block; }
.airport-list .airport-save { top: 50%; bottom: auto; right: 0; transform: translateY(-50%); background: none; }
.airport-more { display: block; margin: var(--space-8) auto; }
.airport-message { padding: var(--space-12) var(--space-4); text-align: center; background: var(--surface); border-radius: var(--radius-sm); }
.airport-message h2 { font-size: var(--fs-h2); }
.airport-about { margin-top: var(--space-10); padding: var(--space-6); border-top: 1px solid var(--border); color: var(--muted-foreground); font-size: var(--fs-xs); line-height: var(--lh-xs); }
.airport-about p { margin: 0 0 var(--space-2); }
.airport-about a { color: inherit; text-decoration: underline; }
.airport-footer { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-6); padding: var(--space-6) var(--space-6) var(--space-10); color: var(--muted-foreground); font-size: var(--fs-xs); }
.airport-footer p { flex: 1; margin: 0; }
.airport-footer a { color: inherit; }
#airport-detail { width: min(var(--modal-w-l), calc(100% - var(--space-8))); max-height: calc(100dvh - var(--space-8)); padding: 0; border: 1px solid var(--border); border-radius: var(--radius-lg); background: var(--background); color: var(--foreground); overscroll-behavior: contain; }
#airport-detail::backdrop { background: rgb(0 0 0 / 60%); }
body:has(#airport-detail[open]) { overflow: hidden; }
.airport-detail-top { display: flex; justify-content: space-between; align-items: center; padding: var(--space-3) var(--space-5); }
.airport-detail-top span { font-family: var(--font-mono); color: var(--muted-foreground); }
.airport-detail-photo { margin: 0; }
.airport-detail-photo img { display: block; width: 100%; max-height: 19rem; object-fit: cover; }
.airport-detail-photo figcaption { padding-inline: var(--space-6); }
.airport-detail-body { padding: var(--space-6); }
.airport-detail-code { margin: 0 0 var(--space-3); font: 600 var(--fs-display-xl)/1 var(--font-mono); color: var(--primary-text); }
.airport-detail-body h2 { margin: 0 0 var(--space-2); font-size: var(--fs-h1); line-height: var(--lh-h1); }
.airport-detail-body > p { overflow-wrap: anywhere; }
.airport-detail-body dl { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-5); margin-block: var(--space-6); }
.airport-detail-body dt { color: var(--muted-foreground); font-size: var(--fs-xs); }
.airport-detail-body dd { margin: var(--space-1) 0 0; font-size: var(--fs-body); overflow-wrap: anywhere; }
.airport-detail-actions { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.airport-detail-links { display: flex; flex-wrap: wrap; gap: var(--space-4); margin-top: var(--space-6); font-size: var(--fs-sm); }
.airport-detail-feedback { margin: var(--space-4) 0 0; font-size: var(--fs-sm); color: var(--foreground); }
.airport-detail-feedback:empty { margin: 0; }
.airport-feedback { position: fixed; z-index: var(--z-toast); bottom: var(--space-5); left: 50%; transform: translateX(-50%); width: max-content; max-width: calc(100% - var(--space-8)); margin: 0; border-radius: var(--radius); background: var(--foreground); color: var(--background); font-size: var(--fs-sm); }
.airport-feedback:not(:empty) { padding: var(--space-3) var(--space-5); }
@media (min-width: 1800px) { .airport-gallery { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
@media (max-width: 1024px) { .airport-gallery { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .airport-header { flex-wrap: wrap; gap: var(--space-3); padding: var(--space-3) var(--space-4); }
  .airport-header .pc-site-header__logo img { width: 98px; height: auto; }
  .airport-wordmark { padding-left: var(--space-3); }
  .airport-header-actions { width: 100%; justify-content: flex-end; }
  .airport-header-actions select { flex: 1; }
  .airport-workspace, .airport-results-bar { padding-inline: var(--space-4); }
  .airport-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .airport-code { font-size: var(--fs-display-xl); }
  .airport-filters { gap: var(--space-2); }
  .airport-filters > label:nth-child(-n+2) { flex: 1 1 calc((100% - var(--space-2)) / 2); max-width: 100%; }
  .airport-filters select { width: 100%; }
  .airport-results-bar { align-items: flex-start; }
  .airport-card h2 { font-size: var(--fs-sm); }
  .airport-credit { font-size: var(--fs-2xs); }
  .airport-footer { gap: var(--space-3); }
  .airport-footer p { flex-basis: 70%; }
  .airport-list .airport-card-link { grid-template-columns: 4rem 1fr; column-gap: var(--space-3); }
  .airport-detail-body { padding: var(--space-5); }
}
.airport-search-help { margin: var(--space-2) 0 0; color: var(--muted-foreground); font-size: var(--fs-xs); }
