:root{
 --bg:#f4f4f4;--panel:#ffffff;--panel2:#f8f8f8;--text:#252525;--muted:#737373;
 --accent:#800000;--accent2:#a52a2a;--danger:#a2212c;--line:#dedede;--soft:#eeeeee;
 --page-gutter:clamp(32px,3vw,56px);
}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:var(--bg);color:var(--text);font-family:"Segoe UI",Arial,sans-serif}body{padding:24px var(--page-gutter)}.shell{width:100%;max-width:none;margin:0}.topbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;padding:8px 2px 12px;border-bottom:3px solid var(--accent)}.eyebrow{color:var(--accent);text-transform:uppercase;letter-spacing:.18em;font-size:11px;line-height:1.35;font-weight:800}h1{margin:3px 0 0;font-size:clamp(30px,4vw,50px);line-height:1.05;letter-spacing:-.035em;color:#222}.topbar h1+.eyebrow{margin-top:5px}.badge{border:1px solid var(--line);background:#fff;padding:8px 12px;border-radius:4px;font-weight:800;font-size:12px;letter-spacing:.06em;display:flex;gap:8px;align-items:center}.badge span{width:9px;height:9px;border-radius:50%;background:currentColor}.badge.online{color:#397748}.badge.offline{color:var(--danger)}.badge.neutral{color:var(--muted)}
.hero,.flight-card,.content-card,.empty-card,.next-flight,.fleet-overview{background:var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:0 4px 18px rgba(0,0,0,.06)}.hero{position:relative;overflow:hidden}#map,#historyMap{height:clamp(470px,67vh,800px);background:#e8e8e8}#fleetMap{height:clamp(560px,74vh,900px);background:#e8e8e8}.map-controls{position:absolute;z-index:600;top:14px;right:14px;display:flex;gap:8px;align-items:center;background:rgba(255,255,255,.94);padding:8px;border-radius:4px;border:1px solid var(--line);box-shadow:0 3px 12px rgba(0,0,0,.12)}.map-controls button,.map-controls label{color:var(--text);background:transparent;border:0;font:inherit;font-size:12px}.map-controls button,.button-link{cursor:pointer;background:var(--accent);color:#fff!important;font-weight:800;padding:8px 11px;border-radius:3px;text-decoration:none}.map-controls label{display:flex;gap:5px;align-items:center}.map-notice{position:absolute;z-index:600;left:50%;top:16px;transform:translateX(-50%);background:#fff;border:1px solid var(--line);padding:8px 12px;border-radius:3px;font-size:12px}.hidden{display:none!important}
.flight-card{margin-top:14px;overflow:hidden}.route-row{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;padding:20px 22px;border-bottom:1px solid var(--line)}.route{display:flex;gap:14px;justify-content:center;align-items:center;font-size:25px}.route span,.schedule-route span{color:var(--accent)}.phase{justify-self:end;color:var(--accent);font-size:13px;letter-spacing:.08em;font-weight:900}.label,.stat span,.systems span{color:var(--muted);display:block;font-size:11px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.stats{display:grid;grid-template-columns:repeat(6,1fr)}.stat{padding:18px 20px;border-right:1px solid var(--line)}.stat:last-child{border-right:0}.stat strong{font-size:20px}.systems{display:grid;grid-template-columns:repeat(auto-fit,minmax(125px,1fr));background:var(--panel2);border-top:1px solid var(--line)}.engine-systems{display:contents}.systems div{padding:15px 20px;border-right:1px solid var(--line)}.systems div:last-child{border-right:0}.aircraft-marker,.fleet-aircraft{width:34px;height:34px;color:var(--accent);transform-origin:17px 17px}.aircraft-svg{display:block;width:34px;height:34px;filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 3px #fff)}.fleet-aircraft.parked,.aircraft-marker.parked{color:#707070;opacity:.9}.leaflet-control-attribution{font-size:9px}
#aircraftSelect{background:#fff;color:var(--text);border:1px solid var(--line);border-radius:3px;padding:8px 10px;font:inherit;min-width:190px}.header-tools{display:flex;gap:12px;align-items:center}.public-nav{display:flex;gap:8px;margin:0 0 14px;flex-wrap:wrap}.public-nav a{color:#555;text-decoration:none;border:1px solid var(--line);background:#fff;padding:9px 13px;border-radius:3px;font-size:13px;font-weight:700}.public-nav a:hover,.public-nav a.active{color:#fff;background:var(--accent);border-color:var(--accent)}.content-card{padding:20px 22px}.content-card h2{margin:3px 0 0;font-size:clamp(24px,3vw,36px);letter-spacing:-.03em}.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:12px}.muted{color:var(--muted)}
.flight-list,.schedule-board,.fleet-list{display:flex;flex-direction:column}.flight-row{display:grid;grid-template-columns:140px minmax(180px,1.2fr) 90px 130px;gap:18px;align-items:center;color:var(--text);text-decoration:none;padding:16px 6px;border-top:1px solid var(--line)}.flight-row:hover,.fleet-row:hover,.schedule-row:hover{background:#fafafa}.flight-row span,.flight-row small{color:var(--muted)}.flight-date,.flight-main,.flight-pilot,.flight-duration{display:flex;flex-direction:column;gap:3px}.flight-main strong{font-size:18px}.status-pill{display:inline-flex;width:max-content;border-radius:3px;border:1px solid var(--line);padding:6px 9px;font-size:11px;font-weight:900;letter-spacing:.05em;background:#fff}.status-pill.completed,.status-pill.active{color:#397748}.status-pill.interrupted{color:#946200}.status-pill.cancelled{color:var(--danger)}.status-pill.scheduled{color:#555}.source-pill{display:block;margin-top:5px;font-size:9px!important;letter-spacing:.08em}.warn{color:#946200!important}.empty-state{display:flex;flex-direction:column;gap:6px;color:var(--muted);padding:34px 22px;text-align:center}.empty-state strong{color:var(--text)}.empty-card{margin:10vh auto;max-width:620px;padding:32px}.button-link.secondary{color:var(--text)!important;background:#fff;border:1px solid var(--line)}
.flight-detail-head{display:grid;grid-template-columns:1fr 1fr 1fr;align-items:center;margin-bottom:14px}.route.large{font-size:31px}.detail-actions{justify-self:end}.detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}.detail-grid .content-card{display:flex;flex-direction:column;gap:5px}.detail-grid strong{font-size:18px}.detail-grid small{color:var(--muted)}.history-map{margin-top:14px}.next-flight{margin-top:14px;display:flex;justify-content:space-between;gap:18px;align-items:center;padding:18px 22px;border-left:4px solid var(--accent)}.next-flight h2{font-size:22px}.next-flight p{margin:.35rem 0 0}.schedule-head,.schedule-row{display:grid;grid-template-columns:130px 150px minmax(180px,1.2fr) 150px;gap:18px;align-items:center}.schedule-head{padding:10px 6px;color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.08em}.schedule-row{padding:15px 6px;border-top:1px solid var(--line)}.schedule-time,.schedule-flight,.schedule-crew{display:flex;flex-direction:column;gap:3px}.schedule-time span,.schedule-flight span,.schedule-crew span,.status-time{color:var(--muted);font-size:12px}.schedule-route{display:flex;gap:12px;align-items:center;font-size:18px}.status-time{display:block;margin-top:5px}.fleet-overview{margin-top:14px;padding:18px 22px}.fleet-row{display:grid;grid-template-columns:120px minmax(180px,1fr) minmax(220px,1.2fr) minmax(180px,1fr) 140px 100px;gap:14px;align-items:center;padding:13px 4px;border-top:1px solid var(--line);color:var(--text)}.fleet-row span{color:var(--muted)}.fleet-state{font-weight:900;letter-spacing:.05em;font-size:11px}.fleet-state.live{color:#397748!important}.fleet-registration-link{color:var(--pf-link-accent,var(--accent));text-decoration:none}.fleet-registration-link:hover,.fleet-registration-link:focus-visible{text-decoration:underline;text-underline-offset:2px}.fleet-actions{display:flex;justify-content:flex-end}.fleet-dispatch-button{white-space:nowrap}
@media(max-width:900px){body{padding:10px}.topbar{align-items:flex-start;gap:12px;flex-direction:column}.header-tools{width:100%;flex-wrap:wrap}#aircraftSelect{flex:1}.map-controls{left:10px;right:10px;top:10px;flex-wrap:wrap}.route-row{grid-template-columns:1fr 1fr;gap:12px}.phase{grid-column:1/-1;justify-self:start}.stats,.systems{grid-template-columns:repeat(2,1fr)}.stat,.systems div{border-bottom:1px solid var(--line)}.flight-row,.fleet-row{grid-template-columns:1fr 1fr;gap:10px}.flight-row>div:last-child,.fleet-row .fleet-state{grid-column:1/-1}.fleet-row .fleet-actions{grid-column:1/-1;justify-content:flex-start}.flight-detail-head{grid-template-columns:1fr;gap:14px}.detail-actions{justify-self:start}.route.large{justify-content:flex-start}.detail-grid{grid-template-columns:repeat(2,1fr)}.next-flight{align-items:flex-start;flex-direction:column}.schedule-head{display:none}.schedule-row{grid-template-columns:1fr 1fr}.schedule-row>div:last-child{grid-column:1/-1}.schedule-route{justify-content:flex-start}}
@media(max-width:560px){.detail-grid{grid-template-columns:1fr}}

.flightplan-card{margin-top:14px}.flightplan-route{margin:7px 0 6px;font-family:"Cascadia Mono",Consolas,monospace;font-size:14px;line-height:1.55;overflow-wrap:anywhere;word-break:normal;color:var(--text)}

/* v1.12.9 authenticated pilot crew visibility */
.crew-card{margin-top:14px;display:flex;justify-content:space-between;gap:18px;align-items:center;border-left:4px solid var(--accent)}
.crew-card>div{display:flex;flex-direction:column;gap:4px}.crew-card strong{font-size:18px}
.schedule-head.crew-visible,.schedule-row.crew-visible{grid-template-columns:130px 150px minmax(180px,1.2fr) minmax(170px,1fr) 150px}
.flight-row.crew-visible{grid-template-columns:140px minmax(180px,1.2fr) minmax(170px,1fr) 90px 130px}
@media(max-width:900px){.crew-card{align-items:flex-start;flex-direction:column}.schedule-row.crew-visible,.flight-row.crew-visible{grid-template-columns:1fr 1fr}.schedule-row.crew-visible>div:last-child,.flight-row.crew-visible>div:last-child{grid-column:1/-1}}

/* v1.13.0 explicit per-flight public event crew opt-in */
.public-event-crew{border-left-color:#397748}

/* v1.14.7 scheduled flightplan route */
.schedule-route-wrap{min-width:0}.schedule-flightplan{display:block;margin-top:5px;color:var(--muted);font-family:"Cascadia Mono",Consolas,monospace;font-size:11px;line-height:1.35;overflow-wrap:anywhere}


/* v1.18.3 legal/privacy and flight-simulation disclosure */
.legal-shell{max-width:980px}.legal-card{line-height:1.65}.legal-card h2{margin:4px 0 18px}.legal-card p{margin:0 0 14px}.privacy-placeholder-notice{display:flex;flex-direction:column;gap:6px;padding:14px 16px;margin-bottom:20px;border-left:4px solid var(--accent);background:#fff8e8}.privacy-placeholder-notice span{color:#625b4a}.privacy-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.privacy-topic-grid>div{display:flex;flex-direction:column;gap:4px;padding:13px 14px;border:1px solid var(--line);background:#fafafa}.privacy-topic-grid span{color:var(--muted);font-size:13px}@media(max-width:700px){.privacy-topic-grid{grid-template-columns:1fr}}
.legal-managed-content h2,.legal-managed-content h3,.legal-managed-content h4{margin-top:24px}.legal-managed-content h2:first-child,.legal-managed-content h3:first-child{margin-top:4px}.legal-managed-content ul,.legal-managed-content ol{padding-left:24px;margin:0 0 16px}.legal-managed-content li{margin:5px 0}.legal-managed-content blockquote{margin:16px 0;padding:12px 16px;border-left:4px solid var(--accent);background:#fafafa}.legal-managed-content code{background:#f2f2f2;padding:2px 4px;border-radius:3px}.legal-managed-content a{overflow-wrap:anywhere}

/* v1.28.0 compact public server version */
.server-version-inline{color:#8a8a8a;font-size:11px;font-weight:600;white-space:nowrap;letter-spacing:.02em}

/* v1.33.1 richer public aircraft detail page */
.aircraft-overview-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:14px;margin-bottom:14px}
.aircraft-info-card,.aircraft-statistics-card{min-width:0}
.aircraft-facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;padding:1px;background:var(--line);border-radius:3px;overflow:hidden}
.aircraft-facts>div{padding:14px 16px;background:#fff;min-width:0}
.aircraft-facts>div.wide{grid-column:span 3}
.aircraft-facts span,.aircraft-stat-grid span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}
.aircraft-facts strong{font-size:15px;overflow-wrap:anywhere}.aircraft-facts .availability-maintenance,.aircraft-facts .availability-out_of_service{color:var(--danger)}.aircraft-facts .availability-available{color:#397748}
.aircraft-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;padding:1px;background:var(--line);border-radius:3px;overflow:hidden}
.aircraft-stat-grid>div{padding:14px 16px;min-height:88px;background:#fff;display:flex;flex-direction:column;justify-content:center}
.aircraft-stat-grid strong{font-size:20px}.aircraft-stat-grid small{display:block;margin-top:5px;color:var(--muted);line-height:1.35}
.recent-aircraft-activity{margin-top:14px}.recent-activity-list{display:flex;flex-direction:column}.recent-activity-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:14px 4px;border-top:1px solid var(--line);color:var(--text);text-decoration:none}.recent-activity-row:hover{background:#fafafa}.recent-activity-row>div{display:flex;flex-direction:column;gap:3px}.recent-activity-row>div:last-child{text-align:right}.recent-activity-row span{color:var(--muted);font-size:12px}
@media(max-width:980px){.aircraft-overview-grid{grid-template-columns:1fr}.aircraft-facts{grid-template-columns:repeat(2,minmax(0,1fr))}.aircraft-facts>div.wide{grid-column:span 2}}
@media(max-width:560px){.aircraft-facts,.aircraft-stat-grid{grid-template-columns:1fr}.aircraft-facts>div.wide{grid-column:auto}.recent-aircraft-activity .section-head{align-items:flex-start;flex-direction:column}.recent-activity-row{grid-template-columns:1fr}.recent-activity-row>div:last-child{text-align:left}}

/* v1.37.0 Fleet UX & Operations */
.fleet-status-summary{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px;margin:4px 0 18px}.fleet-status-card{display:flex;flex-direction:column;gap:5px;align-items:flex-start;text-align:left;background:#fff;color:var(--text);border:1px solid var(--line);border-radius:5px;padding:12px 14px;cursor:pointer}.fleet-status-card span{font-size:11px;color:var(--muted);font-weight:800;text-transform:uppercase;letter-spacing:.04em}.fleet-status-card strong{font-size:24px}.fleet-status-card:hover,.fleet-status-card.active{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.fleet-status-card.active{background:#faf5f5}.fleet-type-group{display:flex;flex-direction:column}.fleet-type-group+.fleet-type-group{margin-top:18px}.fleet-type-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 6px;background:#f6f6f6;border:1px solid var(--line);border-radius:4px}.fleet-type-heading strong{font-size:14px;letter-spacing:.04em}.fleet-type-heading span{color:var(--muted);font-size:11px}.fleet-type-group .fleet-row:first-of-type{border-top:0}.fleet-unavailable-reason{display:block;margin-top:3px;color:var(--muted);font-weight:400;letter-spacing:0;text-transform:none;line-height:1.25}
@media(max-width:900px){.fleet-status-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.fleet-status-card:first-child{grid-column:1/-1}.fleet-type-heading{position:sticky;top:0;z-index:1}}

/* i18n language switch */
.language-switch{display:inline-flex;gap:4px;align-items:center}.language-switch .button-link{min-width:34px;padding:6px 8px;text-align:center}.language-switch .button-link.active,.language-switch .button-link[aria-current="page"]{background:#800000!important;color:#fff!important;border-color:#800000!important}.language-switch .button-link.active:hover,.language-switch .button-link.active:focus,.language-switch .button-link[aria-current="page"]:hover,.language-switch .button-link[aria-current="page"]:focus{background:#800000!important;color:#fff!important;border-color:#800000!important}

.route-status-stack{display:flex;flex-direction:column;align-items:flex-start;gap:8px}.route-status-stack .status-pill{align-self:flex-start}
/* Build 6-3: live Current operation inside Recorded operation */
.current-operation{margin-top:12px;border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:4px;background:#fafafa;padding:13px 14px}.current-operation-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.current-operation-head .label{margin:0}.current-operation-head>strong{font-size:11px;letter-spacing:.07em;color:#397748}.current-operation-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.current-operation-grid>div{background:#fff;border:1px solid var(--line);padding:9px 10px;min-width:0}.current-operation-grid span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.07em;margin-bottom:3px}.current-operation-grid strong{font-size:13px;overflow-wrap:anywhere}@media(max-width:560px){.current-operation-grid{grid-template-columns:1fr}}

/* v1.42.35 Fleet simulation notice formatting */
.fleet-note{margin-top:14px;line-height:1.55}.fleet-note-title{display:block;margin:0 0 6px;font-size:14px}.fleet-note p{display:block;margin:0;color:var(--muted)}


/* staging 19-1 authenticated archived OFP viewer */
.flight-ofp-dialog{width:min(1180px,96vw);height:min(88vh,980px);max-width:none;max-height:none;padding:0;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--text);box-shadow:0 24px 70px rgba(0,0,0,.35)}
.flight-ofp-dialog::backdrop{background:rgba(0,0,0,.62)}
.flight-ofp-shell{height:100%;display:flex;flex-direction:column;min-height:0}.flight-ofp-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:13px 16px;border-bottom:1px solid var(--line);background:#fafafa}.flight-ofp-head h2{margin:0;font-size:18px}.flight-ofp-meta{margin-top:3px;color:var(--muted);font-size:11px}.flight-ofp-actions{display:flex;gap:7px}.flight-ofp-content{flex:1;min-height:0;overflow:auto;padding:18px 20px 40px;font-family:"Cascadia Mono",Consolas,"Liberation Mono",monospace;font-size:14px;line-height:1.22;white-space:pre-wrap}.flight-ofp-content table{border-collapse:collapse}.flight-ofp-content td,.flight-ofp-content th{padding:0;vertical-align:top}.flight-ofp-entry{display:inline-block;min-width:2ch;padding:0 .14em;margin:0 .03em;border-bottom:1px solid #a76b18;background:#fff8ec;color:#8a4c00;font-weight:700;white-space:pre}.flight-ofp-entry.empty{color:#999;background:transparent;border-bottom-color:#bbb;font-weight:400}
@media(max-width:700px){.flight-ofp-dialog{width:98vw;height:94vh}.flight-ofp-head{align-items:flex-start;flex-direction:column}.flight-ofp-content{padding:12px;font-size:12px}}
@media print{body:has(.flight-ofp-dialog.print-active) main.shell{display:none!important}.flight-ofp-dialog.print-active{display:block!important;position:static!important;width:auto!important;height:auto!important;border:0!important;box-shadow:none!important}.flight-ofp-dialog.print-active .flight-ofp-head{display:none!important}.flight-ofp-dialog.print-active .flight-ofp-content{overflow:visible!important;padding:0!important;font-size:10pt!important}.flight-ofp-dialog.print-active .flight-ofp-entry{color:#000!important;background:#fff!important;border-bottom:1px solid #777!important}}

.operational-times{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.operational-times>div{padding:12px 14px;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:4px}.operational-times>div:last-child{border-right:0}.operational-times span{color:var(--muted);font-size:11px}.operational-times strong{font-size:15px}@media(max-width:900px){.operational-times{grid-template-columns:repeat(2,minmax(0,1fr))}.operational-times>div:nth-child(2){border-right:0}}@media(max-width:560px){.operational-times{grid-template-columns:1fr}.operational-times>div{border-right:0}}
