
.eh-airport {
    --eha-border:#d9dde3;
    --eha-soft:#f5f7f9;
    --eha-text:#14181f;
    --eha-muted:#667085;
    --eha-good:#18794e;
    --eha-warn:#9a6700;
    --eha-bad:#b42318;
    width:100%;
    overflow:hidden;
    border:1px solid var(--eha-border);
    border-radius:14px;
    background:#fff;
    color:var(--eha-text);
    font-family:inherit;
    box-sizing:border-box;
}
.eh-airport * { box-sizing:border-box; }

.eh-airport-header {
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:20px;
    padding:22px 24px 20px;
}
.eh-airport-header h2 {
    margin:0;
    font-size:clamp(1.6rem,4vw,2.3rem);
    line-height:1.1;
}
.eh-airport-kicker {
    margin:0 0 6px;
    color:var(--eha-muted);
    font-size:.72rem;
    font-weight:800;
    letter-spacing:.12em;
}
.eh-airport-subtitle {
    margin:7px 0 0;
    color:var(--eha-muted);
}
.eh-airport-code {
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:64px;
    height:48px;
    padding:0 12px;
    border-radius:10px;
    background:var(--eha-text);
    color:#fff;
    font-size:1.25rem;
    font-weight:900;
    letter-spacing:.08em;
}

.eh-airport-section,
.eh-airport-notices {
    border-top:1px solid var(--eha-border);
}
.eh-section-heading {
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:12px;
    padding:13px 24px;
    border-bottom:1px solid var(--eha-border);
    background:var(--eha-soft);
}
.eh-section-heading h3 {
    margin:0;
    font-size:1rem;
}
.eh-section-heading span {
    color:var(--eha-muted);
    font-size:.74rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.eh-flight-search {
    display:grid;
    grid-template-columns:minmax(180px,.8fr) minmax(300px,1.2fr);
    gap:24px;
    padding:22px 24px;
}
.eh-flight-search-copy strong {
    font-size:1.1rem;
}
.eh-flight-search-copy p {
    margin:5px 0 0;
    color:var(--eha-muted);
}
.eh-flight-form {
    display:grid;
    grid-template-columns:1fr 150px auto;
    gap:10px;
    align-items:end;
}
.eh-flight-form label span {
    display:block;
    margin-bottom:5px;
    color:var(--eha-muted);
    font-size:.74rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.eh-flight-form input,
.eh-flight-form select {
    width:100%;
    height:42px;
    padding:0 10px;
    border:1px solid var(--eha-border);
    border-radius:7px;
    background:#fff;
    font:inherit;
}
.eh-flight-form button {
    height:42px;
    padding:0 16px;
    border:0;
    border-radius:7px;
    background:var(--eha-text);
    color:#fff;
    font:inherit;
    font-weight:800;
    cursor:pointer;
}
.eh-flight-buttons {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px;
    padding:0 24px 18px;
}
.eh-flight-buttons a {
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:16px;
    border:1px solid var(--eha-border);
    border-radius:10px;
    color:inherit;
    text-decoration:none;
}
.eh-flight-buttons a:hover {
    background:var(--eha-soft);
}
.eh-flight-buttons span {
    color:var(--eha-muted);
    font-size:.75rem;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.eh-airport-note {
    margin:0;
    padding:0 24px 20px;
    color:var(--eha-muted);
    font-size:.82rem;
}

.eh-local-grid,
.eh-essential-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    padding:20px 24px;
}
.eh-local-card,
.eh-essential-grid a {
    display:flex;
    flex-direction:column;
    min-height:120px;
    gap:5px;
    padding:16px;
    border:1px solid var(--eha-border);
    border-radius:10px;
    color:inherit;
    text-decoration:none;
}
.eh-local-card:hover,
.eh-essential-grid a:hover {
    background:var(--eha-soft);
}
.eh-local-icon {
    margin-bottom:4px;
    font-size:1.35rem;
}
.eh-local-card small,
.eh-essential-grid span {
    color:var(--eha-muted);
    line-height:1.4;
}
.eh-local-empty {
    grid-column:1/-1;
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:20px;
    border:1px dashed var(--eha-border);
    border-radius:10px;
    color:var(--eha-muted);
}

.eh-airport-notice {
    margin:15px 24px;
    padding:15px 17px;
    border:1px solid var(--eha-border);
    border-left:5px solid #667085;
    border-radius:10px;
}
.eh-airport-notice.severity-warning { border-left-color:var(--eha-warn); }
.eh-airport-notice.severity-major { border-left-color:var(--eha-bad); }
.eh-airport-notice-top {
    display:flex;
    justify-content:space-between;
    gap:15px;
    align-items:flex-start;
}
.eh-airport-notice-top span {
    padding:3px 8px;
    border-radius:999px;
    background:var(--eha-soft);
    font-size:.72rem;
    font-weight:800;
}
.eh-airport-notice-copy > :first-child { margin-top:8px; }
.eh-airport-notice-copy > :last-child { margin-bottom:6px; }
.eh-airport-notice small { color:var(--eha-muted); }

.eh-airport-footer {
    display:flex;
    justify-content:space-between;
    gap:12px;
    flex-wrap:wrap;
    padding:11px 24px;
    border-top:1px solid var(--eha-border);
    background:var(--eha-soft);
    color:var(--eha-muted);
    font-size:.76rem;
}

@media (max-width:800px) {
    .eh-flight-search {
        grid-template-columns:1fr;
        gap:15px;
    }
    .eh-flight-form {
        grid-template-columns:1fr 1fr;
    }
    .eh-flight-form button {
        grid-column:1/-1;
    }
    .eh-local-grid,
    .eh-essential-grid {
        grid-template-columns:1fr 1fr;
    }
}

@media (max-width:560px) {
    .eh-airport-header { padding:18px 16px 15px; }
    .eh-section-heading { padding:12px 16px; }
    .eh-flight-search { padding:18px 16px; }
    .eh-flight-form { grid-template-columns:1fr; }
    .eh-flight-form button { grid-column:auto; }
    .eh-flight-buttons {
        grid-template-columns:1fr;
        padding:0 16px 16px;
    }
    .eh-airport-note { padding:0 16px 18px; }
    .eh-local-grid,
    .eh-essential-grid {
        grid-template-columns:1fr;
        padding:16px;
    }
    .eh-local-card,
    .eh-essential-grid a {
        min-height:auto;
    }
    .eh-airport-notice { margin:12px 16px; }
    .eh-airport-footer { padding:10px 16px; }
}


/* v1.1 National Express coaches */
.eh-coach-intro {
    padding:18px 24px 0;
}
.eh-coach-intro p {
    margin:0;
    color:var(--eha-muted);
}
.eh-coach-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    padding:18px 24px;
}
.eh-coach-card {
    display:flex;
    flex-direction:column;
    gap:5px;
    min-height:125px;
    padding:16px;
    border:1px solid var(--eha-border);
    border-radius:10px;
}
.eh-coach-card strong {
    font-size:1rem;
}
.eh-coach-card span {
    font-weight:900;
    letter-spacing:.02em;
}
.eh-coach-card small {
    color:var(--eha-muted);
    line-height:1.4;
}
.eh-coach-actions {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    padding:0 24px 18px;
}
.eh-coach-actions a {
    display:flex;
    flex-direction:column;
    gap:4px;
    padding:15px;
    border:1px solid var(--eha-border);
    border-radius:10px;
    color:inherit;
    text-decoration:none;
}
.eh-coach-actions a:hover {
    background:var(--eha-soft);
}
.eh-coach-actions span {
    color:var(--eha-muted);
    font-size:.84rem;
    line-height:1.35;
}
@media (max-width:800px) {
    .eh-coach-grid,
    .eh-coach-actions {
        grid-template-columns:1fr 1fr;
    }
}
@media (max-width:560px) {
    .eh-coach-intro { padding:16px 16px 0; }
    .eh-coach-grid,
    .eh-coach-actions {
        grid-template-columns:1fr;
        padding-left:16px;
        padding-right:16px;
    }
}


/* Live ADS-B aircraft radar */
.eh-radar-section{position:relative}
.eh-radar-intro{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:14px}
.eh-radar-intro strong{display:block;font-size:16px;color:#111827}
.eh-radar-intro p{margin:5px 0 0;color:#5f6368;line-height:1.5}
.eh-radar-live{display:flex;gap:7px;align-items:center;font-size:12px;letter-spacing:.08em;color:#166534}
.eh-radar-dot{width:9px;height:9px;border-radius:50%;background:#16a34a;box-shadow:0 0 0 4px rgba(22,163,74,.13)}
.eh-radar-controls{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:0 0 12px}
.eh-radar-filter{display:flex;flex-wrap:wrap;gap:6px}
.eh-radar-filter button,.eh-radar-refresh{appearance:none!important;border:1px solid #cfd3d7!important;background:#fff!important;color:#111827!important;border-radius:5px!important;padding:7px 10px!important;font:inherit!important;font-size:12px!important;font-weight:700!important;line-height:1.2!important;cursor:pointer!important;text-transform:none!important;box-shadow:none!important;min-height:0!important}
.eh-radar-filter button:hover,.eh-radar-refresh:hover{background:#f3f4f6!important;color:#111827!important}
.eh-radar-filter button.is-active{background:#111827!important;color:#fff!important;border-color:#111827!important}
.eh-radar-refresh:disabled{opacity:.55;cursor:default!important}
.eh-radar-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border:1px solid #d8dadd;border-radius:7px 7px 0 0;background:#fafafa;overflow:hidden}
.eh-radar-summary>div{padding:10px 12px;min-width:0}
.eh-radar-summary>div+div{border-left:1px solid #e1e3e5}
.eh-radar-summary span,.eh-radar-summary strong{display:block}
.eh-radar-summary span{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:#74777b}
.eh-radar-summary strong{margin-top:2px;font-size:16px;color:#111827}
.eh-radar-map-wrap{position:relative;min-width:0;border-left:1px solid #d8dadd;border-right:1px solid #d8dadd;background:#e7eaed}
.eh-radar-map{height:620px;min-height:420px;width:100%;overflow:hidden;background:#e7eaed}
.eh-radar-map-status{position:absolute;left:12px;bottom:12px;z-index:500;background:rgba(255,255,255,.96);border:1px solid #d8dadd;border-radius:5px;padding:7px 9px;font-size:11px;color:#222;box-shadow:0 2px 9px rgba(0,0,0,.10);max-width:70%}
.eh-radar-map-status.is-warning{border-color:#b77700;background:#fff8e8}
.eh-radar-map-legend{position:absolute;right:12px;bottom:12px;z-index:500;display:flex;flex-wrap:wrap;gap:7px 11px;background:rgba(255,255,255,.96);border:1px solid #d8dadd;border-radius:5px;padding:7px 9px;font-size:10px;color:#344054;box-shadow:0 2px 9px rgba(0,0,0,.08)}
.eh-radar-map-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}
.eh-radar-map-legend i{display:inline-block;width:8px;height:8px;border-radius:50%}
.eh-radar-map-legend .is-arrival{background:#b42318}.eh-radar-map-legend .is-departure{background:#175cd3}.eh-radar-map-legend .is-nearby{background:#667085}
.eh-radar-board{border:1px solid #d8dadd;border-radius:0 0 7px 7px;background:#fff;overflow:hidden}
.eh-radar-board-heading{display:flex;justify-content:space-between;gap:12px;padding:12px 14px;border-bottom:1px solid #e4e7ec;background:#fff}
.eh-radar-board-heading strong,.eh-radar-board-heading span{display:block}
.eh-radar-board-heading strong{font-size:15px;color:#111827}.eh-radar-board-heading span{margin-top:2px;font-size:11px;color:#667085}
.eh-radar-table-head{display:grid;grid-template-columns:1.05fr 1.2fr 1.45fr 1.45fr 1.15fr .9fr 1.1fr .75fr;gap:0;background:#f8f9fa;border-bottom:1px solid #dfe3e6;color:#667085;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.045em}
.eh-radar-table-head span{padding:8px 9px;border-right:1px solid #e7e9ec}.eh-radar-table-head span:last-child{border-right:0;text-align:right}
.eh-radar-aircraft-list{max-height:620px;overflow:auto;background:#fff}
.eh-radar-loading{padding:18px;color:#666;font-size:13px;line-height:1.5}
.eh-radar-aircraft{display:grid!important;grid-template-columns:1.05fr 1.2fr 1.45fr 1.45fr 1.15fr .9fr 1.1fr .75fr!important;gap:0!important;width:100%!important;margin:0!important;padding:0!important;border:0!important;border-bottom:1px solid #eceeef!important;background:#fff!important;color:#111827!important;text-align:left!important;cursor:pointer!important;font:inherit!important;border-radius:0!important;box-shadow:none!important;text-decoration:none!important}
.eh-radar-aircraft:hover,.eh-radar-aircraft:focus,.eh-radar-aircraft.is-selected{background:#f4f7fa!important;color:#111827!important;outline:none!important}
.eh-radar-aircraft.is-selected{box-shadow:inset 4px 0 0 #111827!important}
.eh-radar-aircraft--arrival{box-shadow:inset 3px 0 0 #b42318!important}.eh-radar-aircraft--departure{box-shadow:inset 3px 0 0 #175cd3!important}.eh-radar-aircraft--nearby{box-shadow:inset 3px 0 0 #98a2b3!important}
.eh-radar-aircraft--arrival.is-selected,.eh-radar-aircraft--departure.is-selected,.eh-radar-aircraft--nearby.is-selected{box-shadow:inset 5px 0 0 #111827!important}
.eh-radar-cell{display:flex;flex-direction:column;justify-content:center;min-width:0;min-height:62px;padding:8px 9px;border-right:1px solid #f0f1f2;color:#111827!important}
.eh-radar-cell:last-child{border-right:0}
.eh-radar-cell strong,.eh-radar-cell small{display:block!important;visibility:visible!important;opacity:1!important;color:inherit!important;white-space:normal!important}
.eh-radar-cell strong{font-size:12px!important;line-height:1.3!important;font-weight:750!important;overflow-wrap:anywhere}
.eh-radar-cell small{margin-top:3px!important;font-size:9px!important;line-height:1.3!important;color:#667085!important;font-weight:500!important}
.eh-radar-flight strong{font-size:14px!important}.eh-radar-airline strong{font-weight:700!important}.eh-radar-route strong{font-weight:650!important}.eh-radar-distance{text-align:right!important;align-items:flex-end}
.eh-radar-note{margin-top:12px;border-left:4px solid #111827;background:#f7f7f7;padding:10px 12px;font-size:12px;line-height:1.5;color:#344054}
.eh-plane-icon{background:transparent!important;border:0!important;overflow:visible!important}
.eh-plane-symbol{display:flex;width:26px;height:26px;align-items:center;justify-content:center;font-size:20px;line-height:1;transform-origin:center;color:#667085;text-shadow:0 1px 2px #fff,0 0 3px #fff}
.eh-plane-icon--arrival .eh-plane-symbol{color:#b42318}.eh-plane-icon--departure .eh-plane-symbol{color:#175cd3}.eh-plane-icon--nearby .eh-plane-symbol{color:#667085}
.eh-aircraft-map-label{background:rgba(255,255,255,.94)!important;border:1px solid rgba(17,24,39,.16)!important;border-radius:4px!important;box-shadow:0 1px 4px rgba(0,0,0,.13)!important;color:#111827!important;padding:3px 5px!important}
.eh-aircraft-map-label:before{display:none!important}.eh-map-flight-label strong,.eh-map-flight-label span,.eh-map-flight-label small{display:block;line-height:1.1}.eh-map-flight-label strong{font-size:11px}.eh-map-flight-label span{font-size:9px;margin-top:2px}.eh-map-flight-label small{font-size:8px;color:#667085;margin-top:2px}
.eh-place-label{background:rgba(255,255,255,.94)!important;border:1px solid rgba(17,24,39,.15)!important;border-radius:4px!important;box-shadow:none!important;color:#111827!important;font-size:10px!important;font-weight:700!important;padding:3px 5px!important}.eh-place-label:before{display:none!important}
.eh-radar-popup{display:grid;gap:3px;min-width:210px}.eh-radar-popup span,.eh-radar-popup b{display:block}.eh-radar-popup-flight{font-size:16px;color:#111827}.eh-radar-map .leaflet-popup-content{font-size:12px;line-height:1.4}.eh-radar-map .leaflet-control-attribution{font-size:9px}.eh-radar-map .leaflet-control-zoom a{color:#111827!important}
@media(max-width:1050px){
  .eh-radar-table-head{display:none}
  .eh-radar-aircraft-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:8px;max-height:none}
  .eh-radar-aircraft{display:grid!important;grid-template-columns:1fr 1fr!important;border:1px solid #e1e4e7!important;border-radius:6px!important;overflow:hidden!important}
  .eh-radar-cell{border-right:0;border-bottom:1px solid #f0f1f2;min-height:58px}
  .eh-radar-cell:nth-child(odd){border-right:1px solid #f0f1f2}.eh-radar-cell:nth-last-child(-n+2){border-bottom:0}
  .eh-radar-route{grid-column:span 1}.eh-radar-distance{align-items:flex-start;text-align:left!important}
  .eh-radar-map{height:560px}
}
@media(max-width:760px){
  .eh-radar-summary{grid-template-columns:1fr 1fr}.eh-radar-summary>div:nth-child(3){border-left:0;border-top:1px solid #e1e3e5}.eh-radar-summary>div:nth-child(4){border-top:1px solid #e1e3e5}
  .eh-radar-controls,.eh-radar-intro{display:block}.eh-radar-live{margin-top:10px}.eh-radar-refresh{margin-top:8px!important;width:100%!important}
  .eh-radar-map{height:500px;min-height:390px}.eh-radar-map-legend{left:12px;right:auto;bottom:50px;max-width:75%}
  .eh-radar-aircraft-list{grid-template-columns:1fr}
  .eh-radar-aircraft{grid-template-columns:1fr 1fr!important}
}
@media(max-width:500px){
  .eh-radar-map{height:440px;min-height:360px}.eh-radar-map-status{max-width:calc(100% - 24px)}.eh-radar-map-legend{display:none}
  .eh-radar-aircraft{grid-template-columns:1fr!important}.eh-radar-cell,.eh-radar-cell:nth-child(odd){border-right:0}.eh-radar-cell{min-height:0;padding:8px 10px}.eh-radar-cell:not(:last-child){border-bottom:1px solid #f2f3f4}.eh-radar-distance{align-items:flex-start}
  .eh-radar-cell small{font-size:10px!important}.eh-radar-cell strong{font-size:13px!important}
}


/* v1.2.2 self-contained Stansted radar — no external map library */
.eh-radar-map{height:auto!important;min-height:0!important;background:#0b1720!important;border:1px solid #203947!important;overflow:hidden!important;position:relative}
.eh-radar-svg{display:block;width:100%;height:auto;aspect-ratio:1000/650;background:#0b1720}
.eh-svg-bg{fill:#0b1720}
.eh-svg-ring{fill:none;stroke:#31505d;stroke-width:1;stroke-dasharray:5 6}
.eh-svg-spoke{stroke:#203d48;stroke-width:1;opacity:.75}
.eh-svg-range-label,.eh-svg-north{fill:#8fb1bd;font:700 11px Arial,sans-serif;letter-spacing:.04em}
.eh-svg-north{font-size:14px;text-anchor:middle}
.eh-svg-place circle{fill:#91a9b1}.eh-svg-place text{fill:#b9c9cf;font:11px Arial,sans-serif;text-shadow:0 1px 2px #071116}
.eh-svg-place.airport circle{fill:#fff}.eh-svg-place.airport text{fill:#fff;font-weight:700}
.eh-svg-place.home circle{fill:#f0c419}.eh-svg-place.home text{fill:#ffe98c;font-weight:700}
.eh-svg-runway line{stroke:#f1f5f7;stroke-width:6;stroke-linecap:round}.eh-svg-runway text{fill:#f1f5f7;font:700 10px Arial,sans-serif}
.eh-svg-aircraft{cursor:pointer}.eh-svg-plane-shape path{fill:#d6e4e9;stroke:#071116;stroke-width:1}
.eh-svg-aircraft.arrival .eh-svg-plane-shape path{fill:#ff6b5d}.eh-svg-aircraft.departure .eh-svg-plane-shape path{fill:#67a7ff}.eh-svg-aircraft.low .eh-svg-plane-shape path{fill:#f3c969}
.eh-svg-aircraft.is-selected .eh-svg-plane-shape path{stroke:#fff;stroke-width:3}
.eh-svg-aircraft-label{fill:#f7fbfc;font:700 10px Arial,sans-serif;paint-order:stroke;stroke:#071116;stroke-width:3px;stroke-linejoin:round}
.eh-svg-trail{fill:none;stroke:#9eb4bd;stroke-width:1.5;opacity:.5}.eh-svg-trail.arrival{stroke:#ff6b5d}.eh-svg-trail.departure{stroke:#67a7ff}
.eh-radar-map-legend{background:rgba(10,24,32,.9)!important;color:#eaf2f5!important;border-color:#29434e!important}
.eh-radar-map-status{background:rgba(255,255,255,.95)!important;color:#1b262c!important;max-width:min(90%,680px)}
.eh-radar-aircraft-list{max-height:620px!important}
.eh-radar-aircraft{cursor:pointer}
.eh-radar-aircraft.is-selected{outline:2px solid #111;outline-offset:-2px;background:#eef4f7}
@media(max-width:760px){.eh-radar-svg{min-width:680px}.eh-radar-map{overflow-x:auto!important}.eh-radar-map-status{position:sticky!important;left:10px!important}}
