*{box-sizing:border-box}body{margin:0;background:#08111a;color:#eef6fc;font-family:Inter,Segoe UI,Arial,sans-serif}.topbar{height:76px;background:#0d1924;border-bottom:1px solid #1b3041;display:flex;align-items:center;justify-content:space-between;padding:0 28px;box-shadow:0 8px 30px #0005}.brand{display:flex;align-items:center;gap:13px}.brandmark{width:44px;height:44px;border-radius:11px;background:linear-gradient(135deg,#149bd7,#166ca7);display:grid;place-items:center;font-size:20px;box-shadow:0 0 22px #1689c944}.brand strong,.brand small{display:block}.brand strong{font-size:19px}.brand small{color:#7891a5;margin-top:3px}.header-right{display:flex;align-items:center;gap:9px;color:#8ba1b4;font-size:12px}.live-dot{width:8px;height:8px;border-radius:50%;background:#3cdb88;box-shadow:0 0 10px #3cdb88}.utc{margin-left:18px;padding-left:18px;border-left:1px solid #243746;color:#a8bac8}.layout{display:flex;max-width:1600px;margin:auto;padding:24px;gap:22px}.sidebar{width:245px;flex:0 0 245px;background:#0d1924;border:1px solid #182b3a;border-radius:13px;height:max-content;overflow:hidden;box-shadow:0 12px 35px #0004}.side-title{padding:17px 18px;border-bottom:1px solid #182b3a}.side-title span{font-size:10px;letter-spacing:1.8px;color:#597488;font-weight:800}nav{padding:9px}nav a{display:flex;align-items:center;gap:12px;padding:13px;color:#8ba2b5;text-decoration:none;border-radius:8px;margin:3px 0;font-size:14px;transition:.18s}nav a i{width:20px;text-align:center}nav a:hover{background:#132637;color:#fff;transform:translateX(2px)}nav a.active{background:linear-gradient(90deg,#1289c52c,#1289c50a);color:#63c8f7;border-left:3px solid #20a9e6}.sidebar-foot{border-top:1px solid #182b3a;padding:15px 17px;display:flex;gap:9px;color:#557184;font-size:11px}.content{flex:1;min-width:0}.hero{background:radial-gradient(circle at 85% 20%,#173d55,#0d1924 45%);border:1px solid #193044;border-radius:14px;padding:28px;display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;box-shadow:0 10px 35px #0003}.eyebrow{font-size:10px;letter-spacing:2px;color:#35b8f2;font-weight:800}.hero h1{font-size:31px;margin:8px 0}.hero p{margin:0;color:#7f96a8}.refresh{border:1px solid #2b9dce;background:#1389bd;color:#fff;border-radius:8px;padding:11px 15px;font-weight:700;cursor:pointer}.refresh:hover{background:#19a1dc}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:16px}.stat{background:#0d1924;border:1px solid #182b3a;border-radius:12px;padding:18px;display:flex;align-items:center;gap:15px}.stat-icon{width:43px;height:43px;border-radius:10px;background:#1289c51e;color:#48bff2;display:grid;place-items:center}.stat span{display:block;color:#657f92;font-size:10px;text-transform:uppercase;letter-spacing:1px}.stat strong{display:block;font-size:22px;margin-top:5px}.online{color:#49d58a}.offline{color:#ff7280}.market-card{background:#0d1924;border:1px solid #182b3a;border-radius:13px;overflow:hidden}.toolbar{padding:14px;display:flex;gap:10px;align-items:center;border-bottom:1px solid #182b3a}.searchbox{flex:1;background:#09131d;border:1px solid #1b3447;border-radius:8px;padding:10px 12px;display:flex;align-items:center;gap:9px}.searchbox i{color:#4c6a7e}.searchbox input{width:100%;border:0;outline:0;background:transparent;color:#fff}.toolbar select{background:#09131d;color:#9fb2c1;border:1px solid #1b3447;border-radius:8px;padding:10px}.result-count{color:#607b8e;font-size:12px;white-space:nowrap}.table-scroll{overflow:auto}table{width:100%;border-collapse:collapse}th{text-align:left;padding:13px 16px;background:#0a151f;color:#587487;font-size:10px;text-transform:uppercase;letter-spacing:1px}td{padding:14px 16px;border-top:1px solid #152938;color:#aabcc9;font-size:13px}tbody tr:hover{background:#102130}.icao{display:inline-block;background:#1289c51c;border:1px solid #168cc54a;color:#55c6f8;padding:6px 9px;border-radius:6px;font-weight:800;letter-spacing:.5px}.fbo-name{font-weight:700;color:#edf6fb;font-size:14px}.row-sub{color:#506b7e;font-size:10px;margin-top:4px}.view{display:inline-block;color:#55c6f8;text-decoration:none;font-size:12px;font-weight:700;white-space:nowrap}.view i{margin-left:5px}.pager{padding:13px 15px;border-top:1px solid #182b3a;display:flex;align-items:center;justify-content:center;gap:16px;color:#6f8798;font-size:12px}.pager button{background:#0a151f;color:#9fb2c1;border:1px solid #1b3447;border-radius:7px;padding:8px 11px;cursor:pointer}.pager button:disabled{opacity:.35;cursor:default}.alert{padding:14px;margin-bottom:15px;border-radius:9px;background:#541d2733;border:1px solid #a53c4c55;color:#ffb6bf}footer{text-align:center;padding:22px;color:#405d70;font-size:11px}@media(max-width:850px){.layout{flex-direction:column;padding:13px}.sidebar{width:100%;flex:auto}nav{display:grid;grid-template-columns:repeat(2,1fr)}.stats{grid-template-columns:1fr}.hero{align-items:flex-start;flex-direction:column;gap:18px}.refresh{width:100%}.header-right>span:not(.utc){display:none}.toolbar{flex-wrap:wrap}.searchbox{flex-basis:100%}}@media(max-width:500px){nav{grid-template-columns:1fr}.topbar{padding:0 15px}.utc{margin-left:0;padding-left:0;border:0}.hero h1{font-size:25px}.result-count{display:none}td,th{padding:12px}}

/* V6 HEADER ALIGNMENT */
.topbar{
    position:relative;
    justify-content:flex-end;
}
.brand{
    position:absolute;
    left:50%;
    transform:translateX(-50%);
    white-space:nowrap;
}
.header-right{
    margin-left:auto;
}
.header-right .utc{
    margin-left:38px;
    padding-left:38px;
    border-left:1px solid #2b4355;
}

@media(max-width:700px){
    .topbar{
        min-height:92px;
        height:auto;
        padding:12px 15px;
        flex-direction:column;
        justify-content:center;
        gap:9px;
    }
    .brand{
        position:static;
        transform:none;
    }
    .header-right{
        margin-left:0;
    }
    .header-right .utc{
        margin-left:24px;
        padding-left:24px;
    }
}

/* V7 FSHUB OPERATIONS DASHBOARD */
.stats.four{grid-template-columns:repeat(4,1fr)}
.small-stat{font-size:15px!important}
.link-button{text-decoration:none;display:inline-flex;align-items:center;gap:7px}
.status-off{background:#ff6877!important;box-shadow:0 0 10px #ff6877!important}
.setup-panel{background:linear-gradient(135deg,#102638,#0d1924);border:1px solid #24506b;border-radius:13px;padding:18px 20px;margin-bottom:16px;display:flex;align-items:center;gap:16px}
.setup-panel h3{margin:0 0 5px}.setup-panel p{margin:0;color:#88a1b3;line-height:1.5}.setup-panel code{color:#62cafa}.setup-icon{width:46px;height:46px;display:grid;place-items:center;border-radius:10px;background:#1389bd25;color:#58c8f8;font-size:20px;flex:0 0 auto}
.section-head{display:flex;justify-content:space-between;align-items:center;padding:18px;border-bottom:1px solid #182b3a}.section-head h2{margin:5px 0 0;font-size:20px}.section-head a{color:#55c6f8;text-decoration:none;font-size:12px}
.empty-state{text-align:center!important;color:#607b8e!important;padding:32px!important}
.status-pill{display:inline-block;padding:5px 8px;border-radius:99px;background:#39c67b18;border:1px solid #39c67b38;color:#65dca0;font-size:10px;text-transform:uppercase;font-weight:800}
.dashboard-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:16px}.action-card{background:#0d1924;border:1px solid #182b3a;border-radius:12px;padding:18px;display:flex;align-items:center;gap:15px;text-decoration:none;color:#eef6fc;transition:.18s}.action-card>i:first-child{font-size:20px;width:42px;height:42px;display:grid;place-items:center;border-radius:9px;background:#1289c51e;color:#48bff2}.action-card>i:last-child{margin-left:auto;color:#3d6177}.action-card span{font-size:9px;letter-spacing:1.4px;color:#4faed5;font-weight:800}.action-card h3{margin:4px 0;font-size:15px}.action-card p{margin:0;color:#607b8e;font-size:11px;line-height:1.4}.action-card:hover{transform:translateY(-2px);border-color:#22506c;background:#102130}
@media(max-width:1100px){.stats.four{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}
@media(max-width:600px){.stats.four{grid-template-columns:1fr}}

/* V9 ULTRAWIDE OPERATIONS CENTRE */
.v9-layout{max-width:1900px;padding:28px 34px;gap:26px}
.v9-sidebar{width:275px;flex-basis:275px}
.v9-sidebar nav a{font-size:15px;padding:14px}
.v9-brand strong{font-size:22px}.v9-brand small{font-size:12px}
.v9-brand .brandmark{width:50px;height:50px;font-size:22px}
.v9-hero{padding:32px 34px}.v9-hero h1{font-size:35px}
.v9-stats{grid-template-columns:repeat(6,minmax(0,1fr));gap:14px}
.v9-stats .stat{min-height:90px}.v9-stats .stat strong{font-size:21px}
.v9-recent td{padding-top:16px;padding-bottom:16px}
.landing-badge{display:inline-block;padding:5px 8px;border-radius:99px;font-weight:800;font-size:11px}
.landing-great{color:#55e59a;background:#1c9c5c1c;border:1px solid #32c77b44}
.landing-good{color:#ffd56b;background:#c692241c;border:1px solid #c6922444}
.landing-hard{color:#ff7e89;background:#c943501c;border:1px solid #c9435044}
.v9-note{font-size:10px;color:#456276;margin:10px 4px}
.flight-detail-grid{display:grid;grid-template-columns:minmax(0,2.4fr) minmax(260px,.8fr);gap:16px}
#routeMap{height:610px;background:#07121b}
.detail-panel{display:grid;grid-template-columns:1fr;gap:12px}
.detail-card{background:#0d1924;border:1px solid #182b3a;border-radius:12px;padding:18px}
.detail-card span{display:block;text-transform:uppercase;letter-spacing:1px;font-size:9px;color:#587487;margin-bottom:7px}
.detail-card strong{font-size:17px}
@media(max-width:1500px){.v9-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:1000px){.flight-detail-grid{grid-template-columns:1fr}#routeMap{height:460px}}
@media(max-width:700px){.v9-layout{padding:12px}.v9-sidebar{width:100%;flex-basis:auto}.v9-stats{grid-template-columns:1fr}}

/* V11 OCC */
.v11-layout{max-width:2100px;padding:28px 36px;gap:28px}.v11-sidebar{width:285px;flex-basis:285px}.v11-sidebar nav a{font-size:15px;padding:15px}.v11-brand strong{font-size:24px}.v11-brand small{font-size:12px}.v11-brand .brandmark{width:52px;height:52px;font-size:23px}.v11-hero{padding:32px 36px}.v11-hero h1{font-size:36px}.hero-actions{display:flex;align-items:center;gap:10px}.cache-pill,.live-count{font-size:10px;text-transform:uppercase;letter-spacing:1px;padding:7px 10px;border:1px solid #24506b;border-radius:99px;color:#68cafa;background:#0d2230}.v11-stats{grid-template-columns:repeat(5,1fr)}.v11-stats .stat{min-height:96px}.occ-grid{display:grid;grid-template-columns:minmax(0,2.25fr) minmax(330px,.75fr);gap:16px;margin-bottom:16px}#networkMap{height:510px;background:#07121b}.muted{font-size:10px;color:#557184}.live-list{padding:8px}.live-flight{display:block;padding:15px;border-bottom:1px solid #162b3a;text-decoration:none;color:#eaf5fb;transition:.18s}.live-flight:hover{background:#102332;border-radius:8px}.live-flight>div:first-child{display:flex;justify-content:space-between;gap:10px}.live-flight span,.live-flight small{color:#607f92;font-size:11px}.route-line{display:flex;align-items:center;gap:9px;margin:10px 0;color:#54c8f8}.route-line i{font-size:10px}.lower-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(330px,.75fr);gap:16px}.route-arrow{font-size:9px;color:#45697e;margin:0 5px}.fleet-bars{padding:14px 18px}.fleet-row{margin:14px 0}.fleet-row>div:first-child{display:flex;justify-content:space-between;margin-bottom:7px}.fleet-row span{color:#607b8e;font-size:10px}.fleet-row>b{display:block;text-align:right;color:#6e8da0;font-size:9px;margin-top:4px}.bar{height:6px;background:#08131c;border-radius:99px;overflow:hidden}.bar i{display:block;height:100%;background:linear-gradient(90deg,#1689c9,#48c9ff);border-radius:99px}.mobile-menu{display:none;background:#0d1924;border:1px solid #254257;color:#7ed4f8;border-radius:7px;padding:9px 11px;font-size:16px}
@media(max-width:1500px){.v11-stats{grid-template-columns:repeat(3,1fr)}.occ-grid,.lower-grid{grid-template-columns:1fr}}
@media(max-width:850px){.mobile-menu{display:block;position:absolute;left:14px}.v11-layout{padding:12px;display:block}.v11-sidebar{display:none;width:100%;margin-bottom:12px}.v11-sidebar.open{display:block}.v11-stats{grid-template-columns:1fr}.v11-hero{padding:24px;flex-direction:column}.hero-actions{width:100%;justify-content:space-between}#networkMap{height:390px}.header-right{margin-top:8px}.v11-brand strong{font-size:19px}.lower-grid,.occ-grid{grid-template-columns:1fr}}

/* V12 Yesterday route map */
.map-empty-note{background:#0b1822e8;border:1px solid #23475d;border-radius:9px;padding:10px 13px;color:#8aa9ba;font-size:11px;box-shadow:0 5px 18px #0007}
.map-empty-note strong{color:#e7f6fd}

/* V13 Yesterday + Live route layers */
.map-legend{display:flex;align-items:center;gap:16px;color:#7896a8;font-size:10px;text-transform:uppercase;letter-spacing:.7px}
.map-legend span{display:flex;align-items:center;gap:7px}
.legend-line{display:inline-block;width:26px;height:4px;border-radius:99px}
.legend-line.yesterday{background:#35aee8;opacity:.75}
.legend-line.live{background:#45f3a5;box-shadow:0 0 8px #45f3a588}
.leaflet-overlay-pane path[stroke="#45f3a5"]{filter:drop-shadow(0 0 4px #45f3a5aa)}
@media(max-width:700px){.map-legend{flex-direction:column;align-items:flex-end;gap:5px}}

/* V14 TransAtlantic dark map styling */
#networkMap,#routeMap{
 background:#07121b;
 border-top:1px solid #173346;
}
.leaflet-container{
 background:#07121b!important;
 font-family:inherit;
}
.leaflet-control-zoom{
 border:1px solid #23485f!important;
 box-shadow:0 7px 22px #0008!important;
}
.leaflet-control-zoom a{
 background:#0c1c28!important;
 color:#69ccf7!important;
 border-bottom:1px solid #23485f!important;
}
.leaflet-control-zoom a:hover{
 background:#123047!important;
 color:#dff7ff!important;
}
.leaflet-control-attribution{
 background:#07121bdd!important;
 color:#526f80!important;
 font-size:8px!important;
}
.leaflet-control-attribution a{color:#4daed7!important}
.leaflet-popup-content-wrapper,.leaflet-popup-tip{
 background:#0c1b27!important;
 color:#e7f7ff!important;
 box-shadow:0 8px 28px #000a!important;
}
.leaflet-popup-content-wrapper{
 border:1px solid #24506a;
 border-radius:10px!important;
}
.map-card{
 overflow:hidden;
 border-color:#17384c!important;
 box-shadow:0 12px 36px #0004;
}
.map-card .section-head{
 background:linear-gradient(180deg,#0e1e2a,#0a1721);
 border-bottom:1px solid #17384c;
}
.legend-line.yesterday{
 background:#32b9f2;
 box-shadow:0 0 7px #32b9f255;
}
.legend-line.live{
 background:#45f3a5;
 box-shadow:0 0 10px #45f3a599;
}

/* V15 API-key-free dark aviation map.
   Standard OpenStreetMap tiles are transformed visually in the browser. */
#networkMap .leaflet-tile-pane,
#routeMap .leaflet-tile-pane{
 filter: invert(92%) hue-rotate(170deg) brightness(36%) contrast(120%) saturate(70%);
}
#networkMap .leaflet-tile,
#routeMap .leaflet-tile{
 filter:none;
}
#networkMap,#routeMap,.leaflet-container{background:#06111a!important}
.leaflet-overlay-pane{filter:none!important}
.leaflet-marker-pane,.leaflet-tooltip-pane,.leaflet-popup-pane{filter:none!important}

/* V16 clearer TransAtlantic map */
#networkMap .leaflet-tile-pane,
#routeMap .leaflet-tile-pane{
  filter: invert(88%) hue-rotate(168deg) brightness(62%) contrast(105%) saturate(62%) !important;
  opacity:.94;
}
#networkMap,#routeMap,.leaflet-container{
  background:#102331!important;
}
#networkMap .leaflet-tile,
#routeMap .leaflet-tile{
  opacity:1!important;
}
.map-card{
  border-color:#28506a!important;
}

/* V17 Flight Report track visibility */
#routeMap .leaflet-overlay-pane path{
  stroke-linecap:round;
  stroke-linejoin:round;
}
#routeMap .map-empty-note{
  background:#0c1b27ee;
  color:#dceef7;
  border:1px solid #28506a;
  border-radius:8px;
  padding:9px 12px;
  box-shadow:0 7px 22px #0007;
}


/* V30 OCC dispatch enhancements */
.occ-section{background:#0c1b27;border:1px solid #18384b;border-radius:12px;padding:16px;margin:14px 0}
.occ-section-head{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}
.occ-section-head h3{margin:0;color:#fff;font-size:17px}.occ-kicker{color:#35bdf5;font-size:10px;letter-spacing:1.5px;text-transform:uppercase}
.occ-filters{display:flex;gap:7px;flex-wrap:wrap}.occ-filter{background:#102737;border:1px solid #24506a;color:#bfeaff;border-radius:7px;padding:7px 12px;cursor:pointer}
.occ-filter.active,.occ-filter:hover{background:#123d56;color:#fff;border-color:#31bdf7}
.live-flight-row{width:100%;display:grid;grid-template-columns:1fr 1.5fr 1fr 2fr;gap:15px;align-items:center;text-align:left;background:#0a1721;border:1px solid #173447;color:#fff;border-radius:9px;padding:12px;margin:7px 0;cursor:pointer}
.live-flight-row:hover{border-color:#28d68c;transform:translateY(-1px)}.live-flight-row small{display:block;color:#7fa7bd;margin-top:3px}
.flight-progress>div{height:7px;background:#142d3d;border-radius:20px;overflow:hidden}.flight-progress i{display:block;height:100%;background:#28d68c;border-radius:20px}
.board-row,.fleet-row{display:grid;grid-template-columns:1fr 2fr 1fr 1fr;gap:12px;padding:10px 6px;border-bottom:1px solid #153143;align-items:center}
.board-row em{font-style:normal;color:#5fdca5}.fleet-row{grid-template-columns:2fr 1fr 1fr}.occ-empty{color:#7696a8;padding:12px 2px}
#networkMap{min-height:520px}.leaflet-tile-pane{filter:invert(88%) hue-rotate(168deg) brightness(72%) contrast(92%) saturate(50%)!important}
.occ-airport-label{background:#08131c!important;border:1px solid #32bdf5!important;color:#fff!important;box-shadow:none!important;font-weight:700}
@media(max-width:900px){.live-flight-row{grid-template-columns:1fr 1fr}.board-row{grid-template-columns:1fr 2fr}.live-flight-row>*:nth-child(3),.board-row>*:nth-child(3){display:none}}

#routeMap{min-height:560px!important}.detail-card strong{word-break:break-word}

/* V35 map visibility safeguard */
#networkMap{display:block!important;min-height:520px!important;height:520px!important;visibility:visible!important;}

/* v59 OCC map details */
.occ-map-popup{min-width:185px;line-height:1.55}.occ-map-popup b{font-size:1.05rem}

/* v60 OCC Fleet Status */
.fleet-status-row{display:grid;grid-template-columns:minmax(70px,.7fr) 90px repeat(4,minmax(105px,1fr)) 80px;gap:12px;align-items:center;padding:12px 14px;border-bottom:1px solid rgba(255,255,255,.07)}
.fleet-status-row small{display:block;opacity:.55;font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;margin-bottom:2px}
.fleet-pill{display:inline-block;width:max-content;padding:3px 8px;border-radius:999px;font-size:.72rem;font-weight:800;border:1px solid rgba(255,255,255,.12)}
.fleet-active{background:rgba(46,204,113,.14)}.fleet-recent{background:rgba(53,174,232,.14)}.fleet-parked{background:rgba(255,255,255,.06)}
@media(max-width:1100px){.fleet-status-row{grid-template-columns:1fr 90px 1fr 1fr}.fleet-status-row span:nth-child(5),.fleet-status-row span:nth-child(6),.fleet-status-row span:nth-child(7){grid-column:auto}}
@media(max-width:720px){.fleet-status-row{grid-template-columns:1fr 1fr}.fleet-status-row>*{min-width:0}}
