.di-airport{background:#fff;color:#111;font-family:Montserrat,Arial,Helvetica,sans-serif;padding:24px;border:1px solid #e5e5e5;border-radius:12px;margin:24px 0;box-sizing:border-box}
.di-airport *{box-sizing:border-box}.di-airport h2{font-family:"Paytone One",Arial,sans-serif;font-size:28px;line-height:1.25;font-weight:400;color:#000;margin:0 0 8px}.di-airport h3{font-family:Montserrat,Arial,sans-serif;font-size:18px;font-weight:800;line-height:1.4;color:#000;margin:18px 0 12px}
.di-airport p{font-family:inherit;font-size:14px;line-height:1.6;margin:8px 0 14px;color:#333}.di-airport .dia-subtitle{color:#555}.di-airport .dia-meta{font-size:12px;color:#666;line-height:1.6}.di-airport a{color:#333;text-decoration:underline}
.di-airport .dia-controls{display:flex;gap:8px;margin:18px 0}.di-airport .dia-controls button{background:#fff;color:#111;border:1px solid #ccc;border-radius:6px;padding:10px 18px;font-family:inherit;font-weight:700;font-size:13px;cursor:pointer}.di-airport .dia-controls button[aria-pressed=true]{background:#111;color:#fff;border-color:#111}
.di-airport .dia-scroll{overflow-x:auto;width:100%}.di-airport table{border-collapse:collapse;width:100%;min-width:700px;margin:0;background:#fff;color:#111;font-family:inherit;font-size:12px;line-height:1.5}.di-airport th,.di-airport td{padding:13px 10px;text-align:left;vertical-align:top;border:0;border-bottom:1px solid #e5e5e5}.di-airport th{background:#f6f6f6;color:#333;font-weight:700}.di-airport td small{display:block;font-size:11px;line-height:1.5;color:#666;margin-top:3px}.di-airport td strong{font-weight:800;color:#000}.di-airport [hidden]{display:none!important}
.di-airport button:focus-visible,.di-airport a:focus-visible,.di-airport .dia-scroll:focus-visible{outline:2px solid #111;outline-offset:3px}
@media(max-width:600px){.di-airport{padding:16px}.di-airport h2{font-size:24px}.di-airport .dia-controls button{flex:1}.di-airport .dia-scroll{border:1px solid #eee}}
.di-airport .dia-airline{display:flex;align-items:center;gap:10px;min-width:165px}.di-airport .dia-logo-box{position:relative;display:block;flex:0 0 40px;width:40px;height:40px;background:#fff;border:1px solid #eee;border-radius:6px;overflow:hidden}.di-airport .dia-logo-fallback{display:flex;align-items:center;justify-content:center;width:100%;height:100%;font-size:23px;color:#888}.di-airport .dia-logo{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;background:#fff;padding:3px}
.di-airport .dia-flight-toggle{border:0;background:transparent;color:#111;padding:0;text-align:left;font:inherit;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:3px}.di-airport .dia-details-hint{display:block;font-size:10px;font-weight:500;color:#666;margin-top:3px}.di-airport .dia-detail-row>td{background:#f4f7fa;padding:16px}.di-airport .dia-detail-card{background:white;border:1px solid #e5e5e5;border-radius:18px;padding:20px;max-width:760px;margin:auto}.di-airport .dia-detail-card h4{font:800 18px/1.4 Montserrat,Arial,sans-serif;color:#111;margin:0 0 8px}.di-airport .dia-status{display:inline-block;background:#eee;color:#222;border-radius:4px;padding:3px 8px;font-weight:700}.di-airport .dia-route{display:flex;align-items:center;gap:12px;font-size:18px;margin:16px 0 8px}.di-airport .dia-route span{flex:1;border-top:2px solid #999}.di-airport .dia-legs{display:grid;grid-template-columns:1fr 1fr;gap:24px}.di-airport .dia-leg:last-child{text-align:right}.di-airport .dia-leg h5{font:600 12px/1.5 Montserrat,Arial,sans-serif;margin:0 0 6px;color:#555}.di-airport .dia-big-time{font-size:25px}.di-airport .dia-leg-facts{border-top:1px solid #ddd;padding-top:12px;display:flex;flex-wrap:wrap;gap:14px;margin:10px 0}.di-airport .dia-leg:last-child .dia-leg-facts{justify-content:flex-end}.di-airport .dia-leg-facts dt{font-size:11px;font-weight:400}.di-airport .dia-leg-facts dd{margin:4px 0 0;font-size:12px;font-weight:700}.di-airport .dia-close{display:block;margin:12px auto 0;border:1px solid #ddd;background:#fff;color:#111;border-radius:6px;padding:8px 14px;cursor:pointer;font:inherit}
.di-airport .dia-route .dia-route-track{position:relative;display:block;height:2px;background:#ccc;border:0;margin:12px 5px}.di-airport .dia-route-fill{position:absolute;left:0;top:0;height:2px;background:#176a45}.di-airport .dia-plane{position:absolute;top:50%;transform:translate(-50%,-50%);font-style:normal;font-size:27px;line-height:1;color:#176a45;background:#fff;padding:0 2px}.di-airport .dia-progress-note{font-size:12px;line-height:1.6;color:#444;margin:12px 0}
.di-airport .dia-scroll table{border-collapse:separate;border-spacing:0 8px;background:#f7f9fb;min-width:820px;padding:0 6px}.di-airport .dia-scroll th{background:transparent;border:0;color:#596474;font-weight:600}.di-airport .dia-flight-row>td{background:#fff;vertical-align:middle;border-top:1px solid #e2e6eb;border-bottom:1px solid #d4dae2;padding:15px 10px}.di-airport .dia-flight-row>td:first-child{border-left:1px solid #e2e6eb;border-radius:12px 0 0 12px}.di-airport .dia-flight-row>td:last-child{border-right:1px solid #e2e6eb;border-radius:0 12px 12px 0}.di-airport .dia-flight-time{min-width:130px}.di-airport del{color:#747b85;font-weight:400;display:inline-block;margin-right:5px}.di-airport .dia-detail-card{max-width:none}.di-airport .dia-legs{gap:16px;margin-top:22px}.di-airport .dia-leg:last-child{text-align:left}.di-airport .dia-leg h5{font-size:18px;font-weight:800;color:#111;margin:0 0 12px}.di-airport .dia-leg-facts,.di-airport .dia-leg:last-child .dia-leg-facts{display:block;border:1px solid #ccd3dd;padding:0;margin:0}.di-airport .dia-leg-facts>div{display:grid;grid-template-columns:1fr 1fr;gap:12px;padding:15px;border-bottom:1px solid #ccd3dd;min-height:58px;align-items:center}.di-airport .dia-leg-facts>div:last-child{border:0}.di-airport .dia-leg-facts dt{font-size:12px;color:#333}.di-airport .dia-leg-facts dd{margin:0;font-size:12px;overflow-wrap:anywhere}.di-airport .dia-leg-facts small{font-weight:400}.di-airport .dia-status{background:#eef3f8}.di-airport .dia-airline{min-width:150px}.di-airport .dia-logo-box{flex-basis:30px;width:30px;height:30px}.di-airport .dia-logo-fallback{font-size:20px}
.di-airport .dia-route-unconfirmed .dia-route-fill{background:repeating-linear-gradient(to right,#87919d 0,#87919d 5px,transparent 5px,transparent 9px)}.di-airport .dia-route-unconfirmed .dia-plane{color:#66717f}
.di-airport .dia-status{padding:4px 9px;border-radius:6px;font-size:11px;line-height:1.5;font-weight:700;border:1px solid transparent}.di-airport .dia-status.dia-status-green{background:#dcfce7;color:#166534;border-color:#bbf7d0}.di-airport .dia-status.dia-status-blue{background:#dbeafe;color:#1e40af;border-color:#bfdbfe}.di-airport .dia-status.dia-status-slate{background:#e8eef5;color:#334155;border-color:#d3dce8}.di-airport .dia-status.dia-status-purple{background:#f3e8ff;color:#6b21a8;border-color:#e9d5ff}.di-airport .dia-status.dia-status-amber{background:#fef3c7;color:#92400e;border-color:#fde68a}.di-airport .dia-status.dia-status-red{background:#fee2e2;color:#991b1b;border-color:#fecaca}.di-airport .dia-status.dia-status-grey{background:#f3f4f6;color:#4b5563;border-color:#d1d5db}
.di-airport .dia-route-unconfirmed .dia-route-fill{background:repeating-linear-gradient(to right,#b45309 0,#b45309 5px,transparent 5px,transparent 9px)}.di-airport .dia-route-unconfirmed .dia-plane{color:#b45309}
.di-airport .dia-airport-weather{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:20px 0 8px}.di-airport .dia-airport-weather section{padding:16px;border:1px solid #dce2e8;border-radius:10px;background:#fff}.di-airport .dia-airport-weather h5{font:700 14px/1.4 Montserrat,Arial,sans-serif;color:#333;margin:0 0 8px}.di-airport .dia-airport-weather p{font-size:12px;margin:6px 0}
.di-airport .dia-weather-summary{display:flex;align-items:center;gap:16px;border-radius:10px;padding:14px;margin:10px 0;background:#f1f5f9;color:#334155}.di-airport .dia-weather-icon{font-size:42px;line-height:1.2;flex:0 0 52px;text-align:center}.di-airport .dia-weather-temp{font-size:24px;color:inherit}.di-airport .dia-weather-summary p{color:inherit;margin:4px 0 0}.di-airport .dia-weather-sun{background:#fff7dc;color:#92400e}.di-airport .dia-weather-partly{background:#fff8eb;color:#80551c}.di-airport .dia-weather-cloud{background:#eef2f7;color:#475569}.di-airport .dia-weather-rain{background:#e8f3ff;color:#075985}.di-airport .dia-weather-storm{background:#f3e8ff;color:#6b21a8}.di-airport .dia-weather-snow{background:#ecfeff;color:#155e75}.di-airport .dia-weather-fog{background:#f3f4f6;color:#4b5563}
/* 1.0.16: expanded flight overview */
.di-airport .dia-premium{padding:0;border:1px solid #e2e6ec;border-radius:22px;overflow:hidden;box-shadow:0 5px 20px #18283c12}
.di-airport .dia-card-header{display:flex;align-items:center;justify-content:space-between;gap:20px;background:#eceef2;padding:18px 22px;color:#111827}
.di-airport .dia-card-header>strong{font-size:16px}.di-airport .dia-card-header>strong>span{font-weight:500;font-size:13px}
.di-airport .dia-card-content{padding:22px}.di-airport .dia-flight-hero{display:grid;grid-template-columns:1fr minmax(140px,.55fr) 1fr;gap:20px;align-items:start}
.di-airport .dia-eyebrow{display:block;font-size:10px;font-weight:700;letter-spacing:1.2px;color:#64748b;line-height:1.5}
.di-airport .dia-hero-leg h4{font-size:21px;line-height:1.3;margin:6px 0}.di-airport .dia-hero-leg:last-child{text-align:right}
.di-airport .dia-hero-terminal{font-size:12px;color:#526176;margin:0 0 14px}.di-airport .dia-hero-clock{font-size:34px;line-height:1.2;font-weight:800;color:#0f172a;letter-spacing:-1px}
.di-airport .dia-hero-date,.di-airport .dia-hero-gates,.di-airport .dia-hero-original{font-size:11px;margin:6px 0;color:#526176}
.di-airport .dia-hero-gates b{color:#172c47}.di-airport .dia-hero-centre{text-align:center;align-self:center}.di-airport .dia-hero-centre .dia-status{border-radius:20px;padding:7px 12px}
.di-airport .dia-duration{display:block;font-size:22px;font-weight:700;color:#24374d;margin:14px 0 4px}
.di-airport .dia-premium .dia-route-track{height:6px;background:#e5e7eb;border-radius:6px}.di-airport .dia-premium .dia-route-fill{height:6px;border-radius:6px}
.di-airport .dia-travel-panels{display:grid;grid-template-columns:2fr 1fr;gap:14px;margin-top:24px;align-items:stretch}
.di-airport .dia-weather-panels{min-width:0}.di-airport .dia-premium .dia-airport-weather{margin:0 0 10px;gap:14px}.di-airport .dia-premium .dia-airport-weather section{background:linear-gradient(135deg,#fff8e6,#f3f6fa);border:0;padding:16px;border-radius:14px}
.di-airport .dia-premium .dia-weather-summary{background:transparent;display:flex;flex-wrap:wrap;padding:0;gap:4px;margin:8px 0}.di-airport .dia-premium .dia-weather-temp{font-size:27px}.di-airport .dia-premium .dia-weather-summary>div{flex:1;min-width:100px}
.di-airport .dia-zone-card{background:#f3f5f8;border-radius:14px;padding:20px;align-self:start}.di-airport .dia-zone-card h5{font:700 18px/1.4 Montserrat,Arial,sans-serif;margin:8px 0 16px;color:#14233b}.di-airport .dia-zone-card p{font-size:13px}.di-airport .dia-zone-card .dia-meta{font-size:11px;border-top:1px solid #dce2e8;padding-top:14px}
.di-airport .dia-more-facts{margin:18px 0;border-top:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;padding:14px 0}.di-airport .dia-more-facts summary{cursor:pointer;font-size:13px;font-weight:700;color:#24374d}.di-airport .dia-more-facts summary:focus-visible{outline:2px solid #2563eb;outline-offset:4px}
@media(max-width:850px){.di-airport .dia-travel-panels{grid-template-columns:1fr}.di-airport .dia-card-header{flex-wrap:wrap}.di-airport .dia-card-content{padding:16px}}
/* Prominent gate, check-in and baggage values. */
.di-airport .dia-travel-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:16px;text-align:left}
.di-airport .dia-travel-fact{padding:13px 14px;border:1px solid #bfdbfe;border-left:4px solid #2563eb;border-radius:10px;background:#eff6ff;min-width:0}
.di-airport .dia-travel-fact>span{display:block;font-size:12px;font-weight:700;line-height:1.4;color:#1e40af;margin-bottom:7px}
.di-airport .dia-travel-fact>strong{display:block;font-size:25px;font-weight:800;line-height:1.2;color:#172554;overflow-wrap:anywhere}
.di-airport .dia-fact-checkin{background:#f5f3ff;border-color:#ddd6fe;border-left-color:#7c3aed}.di-airport .dia-fact-checkin>span{color:#6d28d9}.di-airport .dia-fact-checkin>strong{color:#4c1d95}
.di-airport .dia-fact-baggage{background:#ecfdf5;border-color:#a7f3d0;border-left-color:#059669}.di-airport .dia-fact-baggage>span{color:#047857}.di-airport .dia-fact-baggage>strong{color:#064e3b}
.di-airport .dia-fact-missing{background:#f8fafc;border-color:#e2e8f0;border-left-color:#94a3b8}.di-airport .dia-fact-missing>span{color:#475569}.di-airport .dia-fact-missing>strong{font-size:15px;color:#64748b}
/* 1.0.18: prominent, plain-language destination clock. */
.di-airport .dia-zone-card.dia-zone-feature{background:linear-gradient(145deg,#eff6ff,#eef2ff);border:1px solid #c7d7f5;border-top:4px solid #4f66cf;box-shadow:0 5px 16px #344ba510;padding:24px}
.di-airport .dia-zone-feature .dia-eyebrow{color:#425ca1;font-size:11px;letter-spacing:1.3px}
.di-airport .dia-zone-feature .dia-zone-badge{display:inline-block;background:#fff;color:#273d91;border:1px solid #c7d7f5;border-radius:14px;padding:12px 16px;font-size:clamp(24px,2.6vw,36px);font-weight:800;line-height:1.2;margin:18px 0 12px;overflow-wrap:anywhere;box-shadow:0 3px 8px #344ba50c}
.di-airport .dia-zone-feature h5{font-size:18px;line-height:1.4;color:#223465;margin:4px 0 12px}
.di-airport .dia-zone-feature .dia-zone-explanation{font-size:17px;font-weight:600;line-height:1.65;color:#253654;margin:0 0 18px;overflow-wrap:anywhere}
.di-airport .dia-zone-feature .dia-meta{font-size:12px;line-height:1.6;color:#52617e;border-top-color:#cdd8ec}
/* 1.0.19: all three panels share a single equal-height grid row. */
.di-airport .dia-aligned-panels{grid-template-columns:repeat(3,minmax(0,1fr));align-items:stretch;gap:14px}
.di-airport .dia-aligned-panels>.dia-zone-card{align-self:stretch;margin:0;min-width:0}
.di-airport .dia-aligned-panels>.dia-airport-weather-card{display:flex;flex-direction:column;min-width:0;padding:16px;border:0;border-radius:14px;background:linear-gradient(135deg,#fff8e6,#f3f6fa);margin:0}
.di-airport .dia-airport-weather-card h5{font:700 14px/1.4 Montserrat,Arial,sans-serif;color:#333;margin:0 0 8px}
.di-airport .dia-airport-weather-card p{font-size:12px;margin:6px 0}
.di-airport .dia-aligned-panels .dia-airport-weather-card>.dia-meta:last-child{margin-top:auto;padding-top:10px}
.di-airport .dia-weather-footer{margin-top:12px}.di-airport .dia-weather-footer>.dia-meta{margin:6px 0 0}
@media(max-width:850px){.di-airport .dia-aligned-panels{grid-template-columns:repeat(3,minmax(0,1fr))}}
/* 1.0.20: shared rows align both airport legs, even with long names/revised times. */
.di-airport .dia-flight-hero{align-items:stretch;grid-template-columns:minmax(0,1fr) minmax(130px,.45fr) minmax(0,1fr);grid-template-rows:repeat(7,auto);column-gap:18px;row-gap:0}
.di-airport .dia-flight-hero>.dia-hero-leg{display:grid;grid-row:1 / span 7;grid-template-rows:subgrid;min-width:0;text-align:left;background:#fafcff;border:1px solid #e2e8f0;border-radius:14px;padding:18px}
.di-airport .dia-flight-hero>.dia-hero-leg:first-child{grid-column:1}.di-airport .dia-flight-hero>.dia-hero-leg:last-child{grid-column:3}
.di-airport .dia-flight-hero>.dia-hero-centre{grid-column:2;grid-row:1 / span 7;align-self:center}
.di-airport .dia-hero-leg h4{overflow-wrap:anywhere;margin:7px 0 14px}.di-airport .dia-hero-leg>.dia-hero-clock{margin:0}.di-airport .dia-hero-leg>.dia-meta{margin:4px 0}
.di-airport .dia-hero-leg .dia-travel-facts{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-self:stretch;align-items:stretch}
.di-airport .dia-hero-leg .dia-travel-fact{padding:12px 9px;min-height:90px}.di-airport .dia-hero-leg .dia-travel-fact>span{font-size:11px}.di-airport .dia-hero-leg .dia-travel-fact>strong{font-size:24px}
.di-airport .dia-fact-terminal{background:#fff7df;border-color:#f4d58d;border-left-color:#d99009}.di-airport .dia-fact-terminal>span{color:#8a5100}.di-airport .dia-fact-terminal>strong{color:#713f12}
.di-airport .dia-hero-leg .dia-fact-missing{background:#f8fafc;border-color:#e2e8f0;border-left-color:#94a3b8}.di-airport .dia-hero-leg .dia-fact-missing>strong{font-size:14px;color:#64748b}
@supports not (grid-template-rows:subgrid){.di-airport .dia-flight-hero>.dia-hero-leg{grid-template-rows:auto minmax(70px,auto) auto auto auto minmax(44px,auto) 1fr}}
/* 1.0.21: lightweight aircraft-type illustrations. */
.di-airport .dia-aircraft-card{display:flex;align-items:center;gap:28px;padding:20px 28px;margin:20px 0;background:linear-gradient(120deg,#f1f5f9,#fff);border:1px solid #dbe3ed;border-radius:16px}
.di-airport .dia-aircraft-art{width:190px;height:180px;flex:0 0 190px;display:flex;align-items:center;justify-content:center}
.di-airport .dia-aircraft-art svg{display:block;width:150px;height:165px}.di-airport .dia-aircraft-large svg{width:170px;height:180px}.di-airport .dia-aircraft-regional svg{width:115px;height:140px}.di-airport .dia-aircraft-propeller svg{width:140px;height:155px}.di-airport .dia-aircraft-generic svg{width:125px;height:145px}
.di-airport .dia-aircraft-card h5{font:800 23px/1.4 Montserrat,Arial,sans-serif;color:#172554;margin:8px 0 12px}.di-airport .dia-aircraft-type{display:inline-block;background:#dbeafe;color:#1e40af;padding:5px 10px;border-radius:6px;font-size:12px;font-weight:700}.di-airport .dia-aircraft-card .dia-meta{margin:10px 0 0}
