:root{
  --bg:#eef4fb;
  --surface:#ffffff;
  --surface-2:#f8fbff;
  --line:#d7e2f0;
  --text:#133256;
  --muted:#607a9c;
  --blue:#115bcc;
  --blue-dark:#0d418f;
  --gold:#d8a24d;
  --danger:#c44f4f;
  --success:#278b5c;
  --shadow:0 14px 34px rgba(19,50,86,.08);
  --radius:22px;
}
*{box-sizing:border-box}
body{margin:0;font-family:Inter,system-ui,sans-serif;background:linear-gradient(180deg,#f5f9ff 0%,#edf3fb 100%);color:var(--text)}
a{color:var(--blue);text-decoration:none}
a:hover{text-decoration:none}
.container{width:min(1200px,calc(100% - 40px));margin:0 auto}
.site-shell{min-height:100vh}
.shell-topbar{background:#e7eef8;border-bottom:1px solid var(--line);font-size:13px;color:var(--muted)}
.shell-topbar-inner{display:flex;justify-content:space-between;padding:10px 0;gap:20px}
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.82);backdrop-filter:blur(14px);border-bottom:1px solid rgba(215,226,240,.75)}
.nav-wrap{display:flex;align-items:center;justify-content:space-between;padding:16px 0;gap:18px}
.brand{display:flex;align-items:center;gap:14px;color:var(--text)}
.brand-mark{width:48px;height:48px;border-radius:16px;background:linear-gradient(135deg,var(--blue) 0%,#82b2ff 100%);display:grid;place-items:center;color:#fff;font-weight:800;box-shadow:var(--shadow)}
.brand-copy strong{display:block;font-size:15px}.brand-copy small{color:var(--muted)}
.main-nav{display:flex;gap:18px;flex-wrap:wrap}.main-nav a{color:var(--text);font-weight:600;font-size:14px}
.nav-actions{display:flex;align-items:center;gap:10px}
.user-chip{padding:9px 14px;border-radius:999px;background:#edf4ff;border:1px solid #cfe0fb;color:var(--blue-dark);font-weight:700}
.inline-form{display:inline}
.btn{display:inline-flex;align-items:center;justify-content:center;border:none;border-radius:14px;padding:12px 18px;font-weight:700;cursor:pointer;transition:.2s ease;box-shadow:none}
.btn-small{padding:9px 14px;font-size:13px}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-dark)}
.btn-soft,.btn-ghost{background:#eef4ff;color:var(--blue-dark);border:1px solid #d7e4fb}.btn-danger{background:#fff1f1;color:var(--danger);border:1px solid #f3cccc}
main{padding-bottom:60px}.flash-wrap{padding-top:18px}.alert{border-radius:14px;padding:14px 16px;margin-bottom:10px}.alert.success{background:#eefaf4;color:#1d6a48;border:1px solid #cfeedd}.alert.error{background:#fff4f4;color:#9e3f3f;border:1px solid #f2d0d0}
.section{padding:36px 0}.surface-light{background:#f6faff;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.hero-band{padding:34px 0 24px}.hero-grid,.live-ops-grid,.content-grid-2,.content-grid-3,.feature-grid-four,.admin-link-grid{display:grid;gap:24px}
.hero-grid{grid-template-columns:1.35fr .95fr}.live-ops-grid{grid-template-columns:1.55fr .55fr;align-items:start}.content-grid-2{grid-template-columns:1.25fr .95fr}.content-grid-3{grid-template-columns:1.3fr 1.3fr .95fr}.feature-grid-four,.admin-link-grid{grid-template-columns:repeat(4,1fr)}
.card{background:var(--surface);border:1px solid rgba(215,226,240,.92);border-radius:var(--radius);box-shadow:var(--shadow)}
.surface-strong{background:linear-gradient(180deg,#ffffff 0%,#f9fbff 100%)}.surface-gradient{background:linear-gradient(145deg,#1d5fca 0%,#8ab7ff 100%);color:#fff}
.hero-copy,.hero-visual{padding:34px}.hero-copy h1{font-size:50px;line-height:1.02;margin:10px 0 14px}.hero-visual h2{font-size:31px;line-height:1.1;margin:8px 0 14px}
.lead{font-size:18px;color:var(--muted);max-width:760px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin:24px 0}.stats-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.stat-tile{padding:18px;border-radius:18px;background:#f8fbff;border:1px solid var(--line)}.stat-tile span{display:block;color:var(--muted);font-size:13px;margin-bottom:8px}.stat-tile strong{font-size:28px}
.hero-visual-badge,.eyebrow{display:inline-block;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--blue);font-weight:800}.surface-gradient .hero-visual-badge{color:#dbeaff;background:rgba(255,255,255,.15);padding:8px 11px;border-radius:999px}.surface-gradient p{color:#edf5ff}.visual-pill-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.pill{padding:8px 12px;border-radius:999px;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.26)}
.section-header,.page-header-block,.card-head{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:18px}.page-header-block{align-items:center}.page-header-block h1,.section-header h2{margin:6px 0 0;font-size:38px}.section-header p,.page-header-block p{margin:8px 0 0;color:var(--muted);max-width:760px}
.map-card{padding:16px}.live-map{height:520px;border-radius:22px;overflow:hidden;border:1px solid var(--line)}.ops-sidebar{display:grid;gap:18px}.info-card{padding:22px}.info-card h3{font-size:34px;margin:8px 0}.info-card strong{font-size:24px}.emphasis{background:linear-gradient(145deg,#184f9e 0%,#2667cf 100%);color:#fff}.emphasis .eyebrow,.emphasis p{color:#eaf2ff}
.mt-24{margin-top:24px}.table-card{padding:20px}.card-head h2,.card-head h3{margin:0;font-size:24px}.between{align-items:center}.ops-table{width:100%;border-collapse:collapse}.ops-table th,.ops-table td{padding:14px 12px;border-bottom:1px solid #ebf0f8;text-align:left;vertical-align:top}.ops-table th{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.ops-table-clickable tbody tr{cursor:pointer}.ops-table-clickable tbody tr:hover{background:#f6faff}.muted,.muted-inline{color:var(--muted)}
.feature-card{padding:24px}.feature-card h3{margin:0 0 10px}
.page-section{padding-top:30px}.profile-hero-card{display:flex;align-items:center;gap:18px;padding:24px 28px;margin-bottom:24px}.pilot-avatar{display:grid;place-items:center;border-radius:18px;background:#eef4ff;color:var(--blue-dark);font-weight:800}.pilot-avatar.large{width:74px;height:74px;font-size:28px}
.stack-card-group,.stack-list{display:grid;gap:14px}.stack-item{padding:16px;border-radius:18px;background:#f8fbff;border:1px solid var(--line)}.stack-item p{margin:8px 0 0;color:var(--muted)}.compact .stack-item{padding:14px}
.sidebar-card{padding:22px}.mission-layout{align-items:start}.mission-grid{display:grid;gap:18px}.mission-card{overflow:hidden}.mission-cover{height:160px;background-size:cover;background-position:center}.mission-body{padding:20px}.mission-body h3{margin:0 0 10px}.mission-body p{margin:0 0 14px;color:var(--muted)}.mission-meta{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:16px}.mission-meta span,.status-chip{display:inline-flex;align-items:center;padding:8px 10px;border-radius:999px;font-size:12px;font-weight:700}.mission-meta span{background:#f4f8ff;border:1px solid var(--line);color:var(--blue-dark)}.status-chip.blue{background:#eef4ff;color:var(--blue-dark)}.status-chip.green{background:#eefaf4;color:#216d4b}.mission-actions-row{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.form-card{padding:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.form-grid label{display:grid;gap:8px;font-size:14px;font-weight:600}.form-grid input,.form-grid textarea,.form-grid select{padding:12px 14px;border-radius:14px;border:1px solid var(--line);background:#fbfdff;color:var(--text);font:inherit}.form-grid textarea{resize:vertical}.span-2{grid-column:1 / -1}.checkbox-row{display:flex !important;align-items:center;gap:10px}.checkbox-row input{width:auto}.actions-inline{display:flex;gap:8px;justify-content:flex-end;align-items:center}.actions-inline form{margin:0}
.quick-link-card{padding:22px;display:block;color:var(--text)}.quick-link-card strong{display:block;margin-bottom:8px}.quick-link-card span{color:var(--muted)}.admin-stats-row{margin-bottom:24px}.admin-editor-grid{align-items:start}
.flight-plane-icon-wrap{background:transparent;border:none}.flight-plane-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:999px;background:var(--blue);color:#fff;border:2px solid #fff;box-shadow:0 8px 18px rgba(17,91,204,.35);font-size:18px}.flight-popup{font-family:Inter,system-ui,sans-serif;line-height:1.5}
.site-footer{padding:36px 0;background:#eef3fa;border-top:1px solid var(--line)}.footer-grid{display:grid;grid-template-columns:1.2fr .7fr .7fr;gap:28px}.footer-brand-block{display:flex;gap:14px;align-items:flex-start}.footer-list{list-style:none;padding:0;margin:0;display:grid;gap:8px}.footer-list a{color:var(--text)}
@media (max-width: 1080px){.hero-grid,.live-ops-grid,.content-grid-2,.content-grid-3,.feature-grid-four,.admin-link-grid{grid-template-columns:1fr}.stats-row{grid-template-columns:repeat(2,1fr)}.main-nav{display:none}.nav-wrap{flex-wrap:wrap}.live-map{height:460px}}
@media (max-width: 720px){.container{width:min(100% - 24px,1200px)}.hero-copy,.hero-visual{padding:24px}.hero-copy h1{font-size:36px}.page-header-block h1,.section-header h2{font-size:30px}.stats-row{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.shell-topbar-inner{flex-direction:column;gap:4px}}

.table-responsive{width:100%;overflow-x:auto}
.live-page-layout{display:grid;grid-template-columns:minmax(0,1.55fr) 340px;gap:24px;align-items:start}
.live-fullscreen-shell{padding:16px}
.live-map--fullscreen{height:72vh;min-height:620px}
.live-side-panel{display:grid;gap:18px}
.live-flight-info p{margin:.4rem 0;color:var(--muted)}
.live-page-head{margin-bottom:18px}
@media (max-width: 1080px){.live-page-layout{grid-template-columns:1fr}.live-map--fullscreen{height:60vh;min-height:480px}}


/* Wider live page layout */
.container-wide{width:min(1680px,calc(100% - 40px));margin:0 auto}
.live-page-layout{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}
.live-side-panel{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.live-fullscreen-shell{padding:16px}
.live-map--fullscreen{height:72vh;min-height:620px}
@media (max-width: 1080px){
  .live-side-panel{grid-template-columns:1fr}
  .live-map--fullscreen{height:60vh;min-height:480px}
}

/* Pure plane markers without white circle */
.flight-plane-icon-wrap,
.flight-plane-icon-wrap.leaflet-div-icon,
.leaflet-marker-icon.flight-plane-icon-wrap{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
.flight-plane-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  transform-origin:50% 50%;
}
.flight-plane-icon svg{
  width:30px;
  height:30px;
  display:block;
  fill:var(--blue);
  filter:drop-shadow(0 2px 6px rgba(17,91,204,.22));
}

/* Live map: planned flightplan overlay */
.live-route-toggle{display:flex;align-items:center;gap:.7rem;font-weight:800;color:var(--navy);cursor:pointer}
.live-route-toggle input{width:18px;height:18px;flex:0 0 auto;accent-color:var(--blue)}
.live-route-toggle-help{margin:.65rem 0 0;color:var(--muted);font-size:.92rem;line-height:1.55}
.live-route-legend-inline{display:flex;flex-wrap:wrap;gap:.6rem 1rem;margin-top:.9rem;padding-top:.8rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--muted)}
.live-route-legend-inline span{display:inline-flex;align-items:center;gap:.45rem}
.live-route-swatch{display:inline-block;width:28px;height:0;border-top:3px solid}
.live-route-swatch--actual{border-color:#0e56c6}
.live-route-swatch--planned{border-color:#64748b;border-top-style:dashed;opacity:.65}
.live-planned-route-control{background:rgba(255,255,255,.94);border:1px solid rgba(148,163,184,.45);border-radius:9px;box-shadow:0 4px 14px rgba(15,23,42,.14);padding:.55rem .7rem;color:#17365f;font:700 13px/1.2 Inter,system-ui,sans-serif}
.live-planned-route-control label{display:flex;align-items:center;gap:.5rem;white-space:nowrap;cursor:pointer}
.live-planned-route-control input{width:16px;height:16px;margin:0;accent-color:#2563eb}


/* =========================================================
   FLEVO VA WORKSPACE V3 — light modular operations interface
   ========================================================= */
:root{
  --bg:#f4f7fb;--surface:#fff;--surface-2:#f8fafe;--surface-3:#eef4fb;
  --line:#dfe7f1;--line-strong:#cad7e6;--text:#112a46;--muted:#6b7f98;
  --blue:#1768e5;--blue-dark:#0c4fb8;--blue-soft:#eaf2ff;--cyan:#13a9c7;
  --green:#1ca56f;--amber:#d99322;--danger:#d24b58;
  --shadow:0 12px 30px rgba(20,48,82,.06);--shadow-hover:0 18px 44px rgba(20,48,82,.11);
  --radius:18px;--sidebar-width:252px;--topbar-height:72px;--workspace-max:1660px;
}
html{scroll-behavior:smooth}body{background:var(--bg);color:var(--text);font-size:14px}.card{border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);background:#fff}.card:hover{border-color:#d6e1ee}.btn{border-radius:11px}.btn-primary{background:linear-gradient(135deg,#1768e5,#276fda)}.btn-soft,.btn-ghost{background:#f3f7fc;border-color:#dce6f2;color:#28547f}.pill,.status-chip{border-radius:999px}.eyebrow{letter-spacing:.12em}.workspace-body{overflow-x:hidden}.workspace-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
.workspace-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-width);z-index:50;background:#fff;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:18px 14px;transition:width .2s ease,transform .2s ease;box-shadow:8px 0 28px rgba(35,64,96,.025)}
.workspace-brand-row{height:54px;display:flex;align-items:center;gap:8px;padding:0 4px 0 6px}.workspace-brand{display:flex;align-items:center;gap:12px;min-width:0;flex:1;color:var(--text)}.workspace-brand-mark{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,#1768e5,#79a8ff);color:#fff;font-weight:800;letter-spacing:.03em;box-shadow:0 8px 22px rgba(23,104,229,.2);flex:0 0 38px}.workspace-brand-copy{min-width:0}.workspace-brand-copy strong,.workspace-brand-copy small{display:block;white-space:nowrap}.workspace-brand-copy strong{font-size:14px}.workspace-brand-copy small{font-size:11px;color:var(--muted);margin-top:2px}
.icon-button{width:38px;height:38px;border-radius:10px;border:1px solid var(--line);background:#fff;color:#48637f;display:grid;place-items:center;cursor:pointer;font:inherit;font-weight:800}.icon-button:hover{background:#f4f7fb;color:var(--blue)}.sidebar-collapse-button{width:30px;height:30px}.workspace-nav{display:flex;flex-direction:column;gap:3px;margin-top:22px;overflow-y:auto;padding:0 4px 20px}.workspace-nav-label{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:#95a5b8;font-weight:800;margin:17px 10px 6px}.workspace-nav-label:first-child{margin-top:0}.workspace-nav a{height:42px;display:flex;align-items:center;gap:11px;padding:0 11px;border-radius:11px;color:#3b5572;font-weight:650;transition:.15s}.workspace-nav a:hover{background:#f2f6fb;color:#174f92}.workspace-nav a.is-active{background:#eaf2ff;color:#0f5ed1}.nav-glyph{width:22px;text-align:center;font-size:16px;color:#7291b3;flex:0 0 22px}.workspace-nav a.is-active .nav-glyph{color:#1768e5}.workspace-sidebar-footer{margin-top:auto;border-top:1px solid var(--line);padding:15px 9px 2px;display:grid;gap:9px}.workspace-sidebar-footer small{color:var(--muted);line-height:1.4}.connection-pill{display:flex;align-items:center;gap:8px;color:#42627f;font-size:12px;font-weight:700}.connection-pill i,.topbar-live-chip i{width:8px;height:8px;border-radius:50%;background:#21b476;box-shadow:0 0 0 4px rgba(33,180,118,.11)}
.workspace-stage{grid-column:2;min-width:0;min-height:100vh}.workspace-topbar{height:var(--topbar-height);position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(18px);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;gap:20px}.workspace-topbar-left,.workspace-topbar-actions{display:flex;align-items:center;gap:12px}.workspace-context strong,.workspace-context span{display:block}.workspace-context strong{font-size:14px}.workspace-context span{font-size:11px;color:var(--muted);margin-top:2px}.topbar-live-chip{height:36px;display:flex;align-items:center;gap:9px;padding:0 12px;border:1px solid #d9e7df;background:#f7fcf9;border-radius:999px;color:#277653;font-weight:700;font-size:12px}.workspace-user{display:flex;align-items:center;gap:9px;padding:6px 9px;border-radius:12px;color:var(--text)}.workspace-user:hover{background:#f3f6fa}.workspace-user-avatar{width:34px;height:34px;border-radius:10px;background:#e9f2ff;color:#145bc3;display:grid;place-items:center;font-weight:800}.workspace-user strong,.workspace-user small{display:block;white-space:nowrap}.workspace-user strong{font-size:12px}.workspace-user small{font-size:10px;color:var(--muted);margin-top:1px}.mobile-nav-button{display:none}
.workspace-main{min-height:calc(100vh - var(--topbar-height));padding-bottom:38px}.workspace-main>.section,.workspace-main>.page-section{padding-top:26px}.workspace-main .container{width:min(var(--workspace-max),calc(100% - 44px))}.workspace-main .container-wide{width:min(1840px,calc(100% - 44px))}.workspace-flashes{width:min(var(--workspace-max),calc(100% - 44px));margin:0 auto;padding-top:16px}.workspace-main .page-header-block{padding:3px 0 6px}.workspace-main .page-header-block h1,.workspace-main .section-header h2{font-size:32px;letter-spacing:-.025em}.workspace-main .table-card{padding:18px}.workspace-main .ops-table th{background:#fafcff}.workspace-main .ops-table tr:last-child td{border-bottom:0}
.workspace-settings-panel{position:fixed;z-index:90;right:0;top:0;bottom:0;width:min(410px,100%);background:#fff;border-left:1px solid var(--line);box-shadow:-18px 0 50px rgba(20,45,76,.12);padding:26px;transform:translateX(105%);transition:transform .22s ease;overflow-y:auto}.workspace-settings-panel.is-open{transform:none}.settings-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px}.settings-panel-head h2{margin:5px 0 0;font-size:26px}.workspace-setting{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:17px 0;border-bottom:1px solid var(--line);cursor:pointer}.workspace-setting span{display:block}.workspace-setting strong,.workspace-setting small{display:block}.workspace-setting small{color:var(--muted);margin-top:4px;line-height:1.4}.workspace-setting input{width:20px;height:20px;accent-color:var(--blue)}.settings-panel-actions{display:grid;gap:10px;margin-top:24px}.workspace-backdrop{display:none;position:fixed;inset:0;background:rgba(16,36,59,.28);z-index:45}
body.workspace-sidebar-compact{--sidebar-width:78px}.workspace-sidebar-compact .workspace-brand-copy,.workspace-sidebar-compact .workspace-nav a>span:last-child,.workspace-sidebar-compact .workspace-nav-label,.workspace-sidebar-compact .workspace-sidebar-footer span,.workspace-sidebar-compact .workspace-sidebar-footer small{display:none}.workspace-sidebar-compact .workspace-nav a{justify-content:center;padding:0}.workspace-sidebar-compact .nav-glyph{font-size:18px}.workspace-sidebar-compact .workspace-brand-row{justify-content:center}.workspace-sidebar-compact .sidebar-collapse-button{position:absolute;left:62px;top:27px;width:26px;height:26px;background:#fff}.workspace-sidebar-compact .workspace-brand{justify-content:center}.workspace-content-wide{--workspace-max:1840px}.workspace-compact-tables .ops-table th,.workspace-compact-tables .ops-table td,.workspace-compact-tables .dashboard-table th,.workspace-compact-tables .dashboard-table td{padding-top:9px;padding-bottom:9px}
/* Larger operational maps throughout the portal */
.workspace-body .live-map{height:650px}.workspace-body .live-map--fullscreen{height:calc(100vh - 190px);min-height:680px}.workspace-body .dispatch-overview-map{height:620px!important}.workspace-body .dashboard-map{height:560px!important}.workspace-body .passport-map{height:680px!important}.workspace-body #tours-overview-map,.workspace-body #tour-route-map,.workspace-body #flightMap,.workspace-body #pilotRoutesMap{height:620px!important;min-height:620px!important}.workspace-maps-xl .live-map--fullscreen{height:calc(100vh - 145px);min-height:760px}.workspace-maps-xl .dispatch-overview-map,.workspace-maps-xl .dashboard-map,.workspace-maps-xl .passport-map,.workspace-maps-xl #tours-overview-map,.workspace-maps-xl #tour-route-map,.workspace-maps-xl #flightMap,.workspace-maps-xl #pilotRoutesMap{height:720px!important;min-height:720px!important}
/* Modular dashboard */
.modular-dashboard{display:grid;gap:18px}.dashboard-workspace-toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 20px}.dashboard-workspace-toolbar h1{margin:4px 0 0;font-size:30px}.dashboard-workspace-actions{display:flex;gap:9px;flex-wrap:wrap}.dashboard-module-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:18px;align-items:start}.dashboard-module{grid-column:span 4;min-width:0;position:relative;transition:box-shadow .16s,transform .16s}.dashboard-module[data-size="wide"]{grid-column:span 8}.dashboard-module[data-size="full"]{grid-column:1/-1}.dashboard-module.is-dragging{opacity:.55;transform:scale(.995)}.dashboard-module[hidden]{display:none!important}.module-toolbar{position:absolute;right:12px;top:12px;z-index:6;display:flex;gap:5px;opacity:0;transition:.15s}.dashboard-module:hover>.module-toolbar,.dashboard-customize-mode .module-toolbar{opacity:1}.module-tool{width:28px;height:28px;border:1px solid #dbe5f0;background:rgba(255,255,255,.94);border-radius:8px;color:#55708d;display:grid;place-items:center;cursor:pointer;font-size:12px;font-weight:800}.module-drag{cursor:grab}.dashboard-customize-mode .dashboard-module{outline:2px dashed #9fc1ef;outline-offset:3px}.dashboard-customize-panel{display:none;padding:20px}.dashboard-customize-panel.is-open{display:block}.module-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin-top:14px}.module-picker label{display:flex;gap:10px;align-items:center;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fafcff}.module-picker input{accent-color:var(--blue)}.pilot-command-card{padding:26px;overflow:hidden;background:linear-gradient(135deg,#fff,#f5f9ff);position:relative}.pilot-command-card:after{content:"";position:absolute;right:-100px;top:-130px;width:330px;height:330px;border-radius:50%;background:radial-gradient(circle,rgba(34,112,226,.13),transparent 68%)}.pilot-command-inner{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:center;position:relative;z-index:1}.pilot-command-main{display:flex;gap:16px;align-items:center}.pilot-command-avatar{width:72px;height:72px;border-radius:20px;background:linear-gradient(135deg,#1768e5,#67a0f8);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:800;box-shadow:0 12px 30px rgba(23,104,229,.18)}.pilot-command-copy h2{font-size:28px;margin:4px 0}.pilot-command-copy p{margin:0;color:var(--muted)}.pilot-command-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}.dashboard-kpi-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;padding:18px}.dashboard-kpi{padding:16px 17px;border:1px solid var(--line);border-radius:14px;background:#fbfdff}.dashboard-kpi span{display:block;font-size:10px;letter-spacing:.12em;text-transform:uppercase;font-weight:800;color:#7a91ab}.dashboard-kpi strong{display:block;font-size:25px;margin-top:7px;color:#153f70}.module-card-pad{padding:21px}.module-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:15px}.module-head h2{margin:4px 0 0;font-size:21px}.compact-route{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:13px;padding:17px;border-radius:15px;background:#f5f9ff;border:1px solid #dce7f3}.compact-route strong{font-size:27px;color:#153f70}.compact-route>div:last-child{text-align:right}.route-arrow{color:#1768e5;font-size:22px}.mini-list{display:grid;gap:10px}.mini-list-item{padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}.mini-list-item strong{display:block}.mini-list-item p{margin:5px 0 0;color:var(--muted)}.live-network-strip{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:13px;border:1px solid var(--line);border-radius:13px}.live-network-strip+.live-network-strip{margin-top:8px}.live-plane-dot{width:36px;height:36px;border-radius:12px;background:#eaf2ff;color:#1768e5;display:grid;place-items:center;font-size:18px}.live-flight-route{font-weight:800;color:#194a81}.module-map-wrap{padding:0;overflow:hidden}.module-map-head{padding:20px 21px 14px}.module-map-wrap .dashboard-map{border-radius:0}
/* Live map page redesign */
.live-page-layout{grid-template-columns:minmax(0,1fr) 320px;gap:18px}.live-fullscreen-shell{padding:0;overflow:hidden}.live-side-panel{gap:12px}.live-side-panel .info-card{padding:18px}.live-page-head{margin-bottom:12px}.flightboard-link-card{background:linear-gradient(135deg,#10263e,#183855);color:#fff;border-color:#193956}.flightboard-link-card .eyebrow,.flightboard-link-card .muted{color:#a9c4df}
/* Airport live flight board */
.flightboard-page{padding-top:22px}.flightboard-top{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:16px}.flightboard-top h1{margin:5px 0 0}.flightboard-clock{text-align:right}.flightboard-clock strong{display:block;font-variant-numeric:tabular-nums;font-size:30px;letter-spacing:.04em}.flightboard-clock span{color:var(--muted);font-size:12px}.flightboard-shell{background:#0e1b28;border:1px solid #173149;border-radius:20px;overflow:hidden;box-shadow:0 22px 54px rgba(10,29,46,.18)}.flightboard-header{display:grid;grid-template-columns:120px minmax(210px,1.35fr) minmax(170px,1fr) 125px 100px 100px 120px;gap:12px;padding:13px 20px;background:#13283b;color:#7fa2bf;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:800}.flightboard-row{display:grid;grid-template-columns:120px minmax(210px,1.35fr) minmax(170px,1fr) 125px 100px 100px 120px;gap:12px;align-items:center;padding:17px 20px;border-top:1px solid rgba(154,189,216,.11);color:#edf6ff;transition:background .15s}.flightboard-row:hover{background:#12283b}.board-flight-no{font-size:19px;font-weight:800;letter-spacing:.06em;color:#fff}.board-route-cell{min-width:0}.board-route-codes{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:16px;font-weight:800}.board-route-track{height:3px;border-radius:999px;background:#29455d;margin-top:10px;position:relative}.board-route-track:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--progress,55%);background:#55a3ff;border-radius:inherit}.board-plane{position:absolute;left:var(--progress,55%);top:50%;transform:translate(-50%,-52%);font-size:15px;color:#fff;text-shadow:0 0 10px rgba(85,163,255,.75)}.board-pilot{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-pilot small{display:block;color:#779ab7;margin-top:3px}.board-metric strong{font-size:15px}.board-metric small{display:block;color:#7191aa;margin-top:2px}.board-status{display:inline-flex;justify-content:center;padding:7px 9px;border-radius:8px;background:#183951;color:#9fd0ff;text-transform:uppercase;font-size:10px;letter-spacing:.08em;font-weight:800}.board-status.airborne{background:#113b31;color:#81e1b8}.board-status.departed{background:#183b59;color:#9fd0ff}.board-status.boarding{background:#4a3817;color:#f4d28b}.flightboard-empty{padding:46px;text-align:center;color:#8ca8bf}.flightboard-footer{display:flex;justify-content:space-between;gap:16px;padding:13px 20px;background:#102336;border-top:1px solid rgba(154,189,216,.11);color:#7193ad;font-size:11px}.flightboard-fullscreen:fullscreen{width:100vw;height:100vh;border-radius:0;display:flex;flex-direction:column}.flightboard-fullscreen:fullscreen .flightboard-shell{flex:1;border-radius:0}.flightboard-fullscreen:fullscreen .flightboard-row{padding-top:20px;padding-bottom:20px}
@media(max-width:1250px){.dashboard-module{grid-column:span 6}.dashboard-module[data-size="wide"]{grid-column:span 12}.dashboard-kpi-grid{grid-template-columns:repeat(3,1fr)}.live-page-layout{grid-template-columns:1fr}.flightboard-header,.flightboard-row{grid-template-columns:105px minmax(190px,1.2fr) minmax(150px,.9fr) 100px 90px 110px}.flightboard-header>*:nth-child(6),.flightboard-row>*:nth-child(6){display:none}}
@media(max-width:900px){.workspace-shell{display:block}.workspace-stage{grid-column:auto}.workspace-sidebar{transform:translateX(-103%);width:260px}.workspace-body.workspace-mobile-nav-open .workspace-sidebar{transform:none}.workspace-body.workspace-mobile-nav-open .workspace-backdrop{display:block}.workspace-topbar{padding:0 15px}.mobile-nav-button{display:grid}.workspace-context,.topbar-live-chip,.workspace-user small{display:none}.workspace-main .container,.workspace-main .container-wide,.workspace-flashes{width:min(100% - 26px,100%)}.dashboard-module,.dashboard-module[data-size="wide"]{grid-column:1/-1}.pilot-command-inner{grid-template-columns:1fr}.pilot-command-actions{justify-content:flex-start}.dashboard-kpi-grid{grid-template-columns:repeat(2,1fr)}.workspace-sidebar-compact .workspace-brand-copy,.workspace-sidebar-compact .workspace-nav a>span:last-child,.workspace-sidebar-compact .workspace-nav-label,.workspace-sidebar-compact .workspace-sidebar-footer span,.workspace-sidebar-compact .workspace-sidebar-footer small{display:initial}.workspace-sidebar-compact .workspace-nav a{justify-content:flex-start;padding:0 11px}.flightboard-header,.flightboard-row{grid-template-columns:92px minmax(180px,1fr) 90px 100px}.flightboard-header>*:nth-child(3),.flightboard-row>*:nth-child(3),.flightboard-header>*:nth-child(5),.flightboard-row>*:nth-child(5),.flightboard-header>*:nth-child(6),.flightboard-row>*:nth-child(6){display:none}}
@media(max-width:620px){.workspace-topbar-actions>.btn,.workspace-user>span:last-child{display:none}.pilot-command-main{align-items:flex-start}.pilot-command-avatar{width:58px;height:58px;border-radius:16px;flex:0 0 58px}.pilot-command-copy h2{font-size:22px}.dashboard-kpi-grid{grid-template-columns:1fr 1fr;padding:12px}.dashboard-kpi{padding:13px}.dashboard-kpi strong{font-size:21px}.flightboard-top{align-items:flex-start}.flightboard-clock strong{font-size:23px}.flightboard-header,.flightboard-row{grid-template-columns:76px minmax(150px,1fr) 90px;padding-left:12px;padding-right:12px}.flightboard-header>*:nth-child(3),.flightboard-row>*:nth-child(3),.flightboard-header>*:nth-child(4),.flightboard-row>*:nth-child(4),.flightboard-header>*:nth-child(5),.flightboard-row>*:nth-child(5),.flightboard-header>*:nth-child(6),.flightboard-row>*:nth-child(6){display:none}.board-flight-no{font-size:15px}.board-route-codes{font-size:14px}}


/* =========================================================
   COMPLETE SITE POLISH V4
   Shared styling for legacy/current views inside the new shell.
   ========================================================= */
.auth-shell{min-height:calc(100vh - 210px);display:flex;align-items:center}
.auth-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.75fr);gap:24px;align-items:stretch}
.auth-brand-panel{padding:44px;border-radius:24px;background:linear-gradient(135deg,#f4f8ff 0%,#eaf2ff 100%);border:1px solid #d7e4f4;display:flex;flex-direction:column;justify-content:center;min-height:400px;position:relative;overflow:hidden}
.auth-brand-panel:after{content:"";position:absolute;width:330px;height:330px;border-radius:50%;right:-120px;bottom:-170px;background:radial-gradient(circle,rgba(23,104,229,.16),rgba(23,104,229,0) 68%)}
.auth-brand-panel h1{font-size:44px;line-height:1.08;letter-spacing:-.035em;margin:10px 0 15px;max-width:620px}
.auth-brand-panel p{color:var(--muted);font-size:16px;line-height:1.7;max-width:610px}
.auth-card{display:flex;flex-direction:column;justify-content:center;padding:30px!important;background:#fff}
.auth-card .form-grid{grid-template-columns:1fr}.auth-card .btn{width:100%;min-height:46px}
.spaced-form{gap:17px}.form-grid label{color:#294c70}.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus{outline:0;border-color:#8db5ec;box-shadow:0 0 0 4px rgba(23,104,229,.08);background:#fff}
.workspace-body .form-grid input,.workspace-body .form-grid textarea,.workspace-body .form-grid select{border-color:#dbe5f1;background:#fbfdff}
.workspace-body .page-section>.container:first-child:not(.modular-dashboard){padding-top:4px}
.workspace-body .table-responsive{border-radius:12px}
.workspace-body .ops-table tbody tr{transition:background .12s ease}.workspace-body .ops-table tbody tr:hover{background:#f7faff}
.workspace-body .stack-item{background:#fbfdff;border-color:#e0e8f2}.workspace-body .pill{background:#f0f5fb;border-color:#dae5f1;color:#416183}
.workspace-body .status-chip.green{background:#ecfaf4;color:#17724c}.workspace-body .status-chip.blue{background:#edf4ff;color:#1257bd}
.workspace-body .card-head{align-items:center}.workspace-body .card-head h2,.workspace-body .card-head h3{letter-spacing:-.02em}
.workspace-body .feature-card,.workspace-body .sidebar-card,.workspace-body .info-card{box-shadow:var(--shadow)}
.workspace-body .leaflet-container{font-family:Inter,system-ui,sans-serif;background:#eaf1f8}
.workspace-body .leaflet-control-zoom a{color:#234f7c;border-color:#dbe5ef}
.public-body .auth-card{box-shadow:0 20px 55px rgba(22,54,91,.10)}
.public-body .hero-copy,.public-body .hero-visual{min-height:510px}
.public-body .hero-copy{display:flex;flex-direction:column;justify-content:center}
.public-body .surface-gradient{background:linear-gradient(145deg,#276dcc 0%,#7baaf0 100%)}
.public-body .main-nav a{padding:8px 4px}.public-body .main-nav a:hover{color:var(--blue)}
@media(max-width:900px){.auth-grid{grid-template-columns:1fr}.auth-brand-panel{min-height:auto;padding:30px}.auth-brand-panel h1{font-size:34px}.auth-shell{align-items:flex-start}}
@media(max-width:620px){.auth-brand-panel{padding:24px}.auth-card{padding:22px!important}.auth-brand-panel h1{font-size:29px}}

/* =========================================================
   FLEVO VA V5 — LIGHT FLIGHT CONTROL DESIGN
   New visual language: warm aviation white, teal operational accent,
   quieter surfaces, larger map canvas and deterministic dashboard sizing.
   ========================================================= */
:root{
  --bg:#f3f6f3;
  --surface:#ffffff;
  --surface-2:#f8faf8;
  --surface-3:#edf4f1;
  --line:#dce5e0;
  --line-strong:#c9d7d0;
  --text:#152620;
  --muted:#6b7c75;
  --blue:#0f8d80;
  --blue-dark:#0a6f65;
  --blue-soft:#e5f5f1;
  --cyan:#4f8df5;
  --green:#278b68;
  --amber:#d39a41;
  --danger:#c9585f;
  --shadow:0 12px 38px rgba(30,54,46,.065);
  --shadow-hover:0 18px 48px rgba(30,54,46,.10);
  --radius:16px;
  --sidebar-width:242px;
  --topbar-height:74px;
  --workspace-max:1720px;
}
body{font-family:Manrope,Inter,system-ui,sans-serif;background:var(--bg);color:var(--text)}
.workspace-body{background:linear-gradient(120deg,#f5f7f4 0%,#f2f6f4 48%,#f5f7f5 100%)}
.card{border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);background:rgba(255,255,255,.96)}
.card:hover{border-color:#cfddd6}
.eyebrow{color:#0c8579;letter-spacing:.145em;font-size:10px}
.btn{border-radius:10px;font-weight:750;letter-spacing:-.01em}
.btn-primary{background:#0f8d80;color:#fff;box-shadow:0 8px 20px rgba(15,141,128,.17)}
.btn-primary:hover{background:#0a766c}
.btn-soft,.btn-ghost{background:#fff;border:1px solid #d7e3dd;color:#355e55}
.btn-soft:hover,.btn-ghost:hover{background:#f3f8f6;border-color:#c8d9d1;color:#0a766c}
.btn-success-edit{background:#173c35;color:#fff;border-color:#173c35}
.pill{background:#edf5f2!important;border:1px solid #d7e6e0!important;color:#3d675e!important}

/* Shell: floating navigation / command deck */
.workspace-shell{grid-template-columns:var(--sidebar-width) minmax(0,1fr)}
.workspace-sidebar{width:var(--sidebar-width);padding:14px 12px;background:#fbfcfa;border-right:1px solid #dce5e0;box-shadow:10px 0 36px rgba(42,66,57,.035)}
.workspace-brand-row{height:66px;padding:0 5px;border-bottom:1px solid #e4ebe7;margin-bottom:8px}
.workspace-brand-mark{width:42px;height:42px;flex-basis:42px;border-radius:13px;background:#153a34;color:#fff;box-shadow:none;font-size:12px}
.workspace-brand-copy strong{font-size:14px;letter-spacing:-.02em}.workspace-brand-copy small{color:#7a8a84}
.workspace-nav{margin-top:8px;padding:0 3px 18px;gap:2px}
.workspace-nav-label{color:#9aa8a2;font-size:9px;margin:18px 10px 7px}
.workspace-nav a{height:40px;border-radius:10px;color:#526a62;font-weight:700;font-size:12px;gap:10px}
.workspace-nav a:hover{background:#f0f5f2;color:#204b43}
.workspace-nav a.is-active{background:#dff1ec;color:#0b766c;box-shadow:inset 3px 0 0 #0f8d80}
.nav-glyph{color:#82958d;font-size:15px}.workspace-nav a.is-active .nav-glyph{color:#0f8d80}
.workspace-sidebar-footer{border-top:1px solid #e4ebe7}.connection-pill{color:#4d6a60}.connection-pill i,.topbar-live-chip i{background:#2ba574;box-shadow:0 0 0 4px rgba(43,165,116,.10)}
.workspace-stage{grid-column:2}
.workspace-topbar{height:var(--topbar-height);padding:0 24px;background:rgba(250,252,250,.90);border-bottom:1px solid #dce5e0;backdrop-filter:blur(22px)}
.workspace-context strong{font-size:13px;color:#1c3d35}.workspace-context span{color:#82918c;font-size:10px}
.workspace-quicknav{display:flex;align-items:center;gap:4px;margin-left:14px;padding:4px;background:#eef3f0;border:1px solid #dde7e2;border-radius:11px}
.workspace-quicknav a{padding:7px 11px;border-radius:8px;color:#64786f;font-size:11px;font-weight:800}
.workspace-quicknav a:hover,.workspace-quicknav a.is-active{background:#fff;color:#0b766c;box-shadow:0 2px 10px rgba(39,65,55,.06)}
.topbar-live-chip{background:#f5fbf8;border-color:#d8e8e0;color:#34705d}
.workspace-user{border:1px solid transparent}.workspace-user:hover{background:#fff;border-color:#dde7e2}
.workspace-user-avatar{background:#e2f2ed;color:#0b766c;border-radius:50%}
.icon-button{border-color:#dce5e0;color:#5e746b;background:#fff}.icon-button:hover{background:#edf5f2;color:#0b766c}
.workspace-main{background:transparent}.workspace-main>.section,.workspace-main>.page-section{padding-top:24px}
.workspace-main .page-header-block h1,.workspace-main .section-header h2{color:#173a33;font-weight:800;letter-spacing:-.035em}
.workspace-settings-panel{background:#fbfcfa;border-color:#dce5e0}
.workspace-setting{border-color:#e4ebe7}.workspace-setting input{accent-color:#0f8d80}
body.workspace-sidebar-compact{--sidebar-width:76px}

/* Shared surfaces throughout all logged-in pages */
.workspace-body .table-card,.workspace-body .feature-card,.workspace-body .sidebar-card,.workspace-body .info-card{box-shadow:var(--shadow)}
.workspace-body .ops-table th{background:#f7f9f8;color:#778982}
.workspace-body .ops-table td{border-color:#e8eeeb}.workspace-body .ops-table tbody tr:hover{background:#f3f8f6}
.workspace-body .stack-item,.workspace-body .mini-list-item{background:#fbfcfb;border-color:#e0e8e4}
.workspace-body .form-grid input,.workspace-body .form-grid textarea,.workspace-body .form-grid select{background:#fff;border-color:#dbe5e0}
.workspace-body .form-grid input:focus,.workspace-body .form-grid textarea:focus,.workspace-body .form-grid select:focus{border-color:#7cc1b7;box-shadow:0 0 0 4px rgba(15,141,128,.08)}

/* Dashboard: new command-board style */
.modular-dashboard{gap:16px}
.dashboard-workspace-toolbar{padding:22px 24px;border-radius:16px;background:linear-gradient(115deg,#ffffff 0%,#f2f8f5 100%);border-left:5px solid #0f8d80}
.dashboard-workspace-toolbar h1{font-size:31px;color:#173a33;letter-spacing:-.04em}
.dashboard-customize-panel{background:#f8faf8;border-style:dashed;box-shadow:none}
.module-picker{grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}
.module-picker label{border-color:#dce6e1;background:#fff;border-radius:10px;padding:10px 12px;font-size:12px}.module-picker input{accent-color:#0f8d80}
.dashboard-module-grid{grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;grid-auto-flow:row dense;align-items:start}
.dashboard-module{grid-column:span 4;border-radius:16px;overflow:visible;transition:grid-column .18s ease,transform .18s ease,box-shadow .18s ease}
.dashboard-module[data-size="normal"]{grid-column:span 4}
.dashboard-module[data-size="wide"]{grid-column:span 8}
.dashboard-module[data-size="full"]{grid-column:1/-1}
.dashboard-customize-mode .dashboard-module{outline:1px dashed #7db8ad;outline-offset:5px;box-shadow:0 12px 34px rgba(30,79,68,.08)}
.dashboard-customize-mode .dashboard-module::after{content:"";position:absolute;inset:-6px;border-radius:20px;pointer-events:none}
.module-toolbar{display:none;position:absolute;z-index:25;right:10px;top:-17px;align-items:center;gap:5px;padding:5px;background:#fff;border:1px solid #cfded7;border-radius:11px;box-shadow:0 8px 24px rgba(26,58,48,.12);opacity:1}
.dashboard-customize-mode .module-toolbar{display:flex}
.module-tool{width:auto;height:30px;padding:0 9px;display:inline-flex;align-items:center;gap:6px;border:0;background:transparent;color:#60776e;border-radius:7px;font-size:10px;font-weight:800}
.module-tool:hover{background:#eef6f3;color:#0b766c}.module-drag{cursor:grab}.module-drag:active{cursor:grabbing}.module-tool-icon{font-size:15px;line-height:1}
.module-size-switch{display:flex;align-items:center;gap:2px;padding:2px;border-radius:8px;background:#eef3f1}
.module-size-switch button{width:28px;height:26px;border:0;border-radius:6px;background:transparent;color:#789087;font:inherit;font-size:10px;font-weight:900;cursor:pointer}
.module-size-switch button:hover{background:#fff;color:#0b766c}.module-size-switch button.is-active{background:#153a34;color:#fff;box-shadow:0 2px 7px rgba(21,58,52,.16)}
.module-hide-tool{color:#a05b60}.module-hide-tool:hover{background:#fff0f0;color:#9a444c}
.dashboard-module.is-dragging{opacity:.58;transform:scale(.985) rotate(.15deg)}
.pilot-command-card{padding:27px;background:linear-gradient(115deg,#173a34 0%,#24564b 67%,#386f61 100%);border:0;color:#fff;overflow:hidden}
.pilot-command-card:after{width:420px;height:420px;right:-140px;top:-180px;background:radial-gradient(circle,rgba(255,255,255,.11),transparent 68%)}
.pilot-command-card .eyebrow{color:#a9d9cf}.pilot-command-card .pilot-command-copy p{color:#cfe2dc}.pilot-command-avatar{background:#fff;color:#173a34;box-shadow:none;border-radius:50%}
.pilot-command-card .btn-primary{background:#fff;color:#173a34;box-shadow:none}.pilot-command-card .btn-soft{background:rgba(255,255,255,.09);border-color:rgba(255,255,255,.22);color:#fff}.pilot-command-card .btn-soft:hover{background:rgba(255,255,255,.16)}
.dashboard-kpi-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0;padding:0;background:#fff;border-radius:16px;overflow:hidden}
.dashboard-kpi{min-height:104px;border:0;border-right:1px solid #e3eae6;border-radius:0;background:#fff;padding:20px 22px;position:relative}
.dashboard-kpi:last-child{border-right:0}.dashboard-kpi::before{content:"";position:absolute;left:22px;top:15px;width:22px;height:3px;border-radius:999px;background:#86bfb4}
.dashboard-kpi span{margin-top:9px;color:#84948e;font-size:9px}.dashboard-kpi strong{color:#173a33;font-size:25px;letter-spacing:-.035em}
.module-card-pad{padding:22px}.module-head h2{color:#183b34;font-size:20px}.compact-route{background:#f1f7f4;border-color:#dce9e3;border-radius:12px}.compact-route strong{color:#173a33}.route-arrow{color:#0f8d80}.live-plane-dot{background:#e4f4ef;color:#0f8d80;border-radius:50%}.live-flight-route{color:#24594f}.progress-track span{background:#0f8d80!important}
.recommendation-item{background:#fbfcfb!important;border-color:#e0e8e4!important}.recommendation-route{color:#173a33!important}
.module-map-wrap{overflow:hidden}.module-map-head{background:#fbfcfb;border-bottom:1px solid #e1e9e5}

/* Live map V5: one dominant radar surface with floating HUD */
.live-v5-page{padding-top:19px!important}
.live-v5-head{margin-bottom:13px!important}.live-v5-head h1{font-size:34px!important}.live-head-actions{margin:0}
.live-map-stage{position:relative;height:calc(100vh - 185px);min-height:680px;max-height:960px;border:1px solid #d3dfd9;border-radius:18px;background:#dde9e5;overflow:hidden;box-shadow:0 18px 54px rgba(32,59,50,.10)}
.workspace-body .live-v5-map,.workspace-body .live-map--fullscreen{height:100%!important;min-height:0!important;border:0;border-radius:0}
.live-v5-map .leaflet-tile{filter:saturate(.58) brightness(1.055) contrast(.94)}
.live-v5-map .leaflet-control-container{font-family:Manrope,Inter,sans-serif}
.live-v5-map .leaflet-control-zoom{border:0!important;box-shadow:0 8px 22px rgba(31,57,49,.12)!important}
.live-v5-map .leaflet-control-zoom a{border-color:#d8e3de;color:#355f55;background:#fff}
.live-v5-map .leaflet-control-attribution{background:rgba(255,255,255,.78)!important;color:#83938d;border-radius:8px 0 0 0}
.live-map-hud{position:absolute;z-index:650;left:18px;top:18px;display:flex;align-items:center;gap:14px;padding:12px 15px;background:rgba(255,255,255,.92);border:1px solid rgba(211,225,218,.92);border-radius:14px;box-shadow:0 10px 30px rgba(33,61,52,.11);backdrop-filter:blur(16px)}
.live-status-dot{width:10px;height:10px;border-radius:50%;background:#27a676;box-shadow:0 0 0 5px rgba(39,166,118,.12)}
.hud-label{display:block;color:#82928c;text-transform:uppercase;font-size:8px;letter-spacing:.13em;font-weight:900}.live-map-hud strong{display:block;color:#173a33;font-size:12px;margin-top:2px}.hud-divider{width:1px;height:29px;background:#dbe5e0}
.live-map-flight-dock{position:absolute;z-index:650;right:18px;top:70px;width:340px;max-height:calc(100% - 140px);overflow:auto;padding:20px;background:rgba(255,255,255,.94);border:1px solid rgba(209,223,216,.95);border-radius:16px;box-shadow:0 16px 44px rgba(27,55,46,.12);backdrop-filter:blur(18px)}
.live-map-flight-dock h3{margin:6px 0 10px;font-size:24px;color:#173a33;letter-spacing:-.035em}.live-map-flight-dock p{color:#6d8078;line-height:1.55;margin:.45rem 0}.live-map-flight-dock strong{font-size:inherit}.flight-inspector-empty{margin-top:17px;padding:14px;border-radius:12px;background:#edf6f2;display:flex;align-items:center;gap:10px;color:#4d6b61;font-weight:800;font-size:11px}.flight-inspector-plane{width:33px;height:33px;border-radius:50%;display:grid;place-items:center;background:#0f8d80;color:#fff}
.live-route-legend-inline{border-top:1px solid #e2e9e6;margin-top:14px;padding-top:12px;display:grid;gap:6px;font-size:10px!important}.live-route-swatch--actual{background:#0f8d80!important}
.live-map-bottom-actions{position:absolute;z-index:650;left:18px;bottom:18px;display:flex;gap:8px;flex-wrap:wrap}.map-action-chip{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border-radius:10px;background:rgba(255,255,255,.93);border:1px solid rgba(209,223,216,.95);color:#335f54;font-size:10px;font-weight:850;box-shadow:0 8px 22px rgba(31,57,49,.09);backdrop-filter:blur(12px)}.map-action-chip:hover{background:#fff;color:#0a766c}.map-action-chip--static{cursor:default}
.live-planned-route-control,.live-fleet-control{border:0!important;box-shadow:0 8px 22px rgba(31,57,49,.11)!important;border-radius:10px!important;overflow:hidden;margin-right:18px!important}.live-planned-route-control label,.live-fleet-control button{min-height:36px;padding:0 12px;background:rgba(255,255,255,.94);border:0;color:#42675e;font:700 10px Manrope,Inter,sans-serif}.live-planned-route-control label{padding:9px 12px}.live-planned-route-control input{accent-color:#0f8d80}.live-fleet-control button{cursor:pointer}.live-fleet-control button:hover{background:#edf6f2;color:#0a766c}
.flight-plane-icon{width:38px;height:38px;border-radius:50%;background:#0f8d80;border:3px solid rgba(255,255,255,.95);box-shadow:0 8px 20px rgba(15,104,94,.28)}
.flight-plane-icon svg{width:22px;height:22px;fill:#fff}
.live-roster-card{padding:0;overflow:hidden}.live-roster-head{padding:19px 21px;margin:0;border-bottom:1px solid #e2e9e6}.live-roster-head h3{margin:4px 0 0;font-size:20px}.live-roster-table th,.live-roster-table td{padding:13px 16px}.route-code-chip{display:inline-flex;padding:5px 7px;border-radius:7px;background:#eef5f2;color:#2f5f54;font-weight:800;font-size:11px}.route-table-arrow{display:inline-block;margin:0 7px;color:#8a9b95}
.live-map-stage:fullscreen{width:100vw;height:100vh;max-height:none;border-radius:0;border:0}.live-map-stage:fullscreen .live-map-flight-dock{top:70px}.live-map-stage:fullscreen .live-v5-map{height:100%!important}

/* Light airport information display */
.flightboard-shell{background:#fff;border-color:#d7e2dc;box-shadow:0 18px 48px rgba(31,58,49,.09)}
.flightboard-header{background:#edf3f0;color:#75877f;border-bottom:1px solid #dbe5e0}
.flightboard-row{color:#173a33;background:#fff;border-top:1px solid #e4ebe7}.flightboard-row:hover{background:#f4f8f6}.board-flight-no{color:#173a33}.board-route-track{background:#dfe9e4}.board-route-track:before{background:#0f8d80}.board-plane{color:#0f8d80;text-shadow:none}.board-pilot small,.board-metric small{color:#84958e}.board-status{background:#e9f2ef;color:#517168}.board-status.airborne{background:#e1f5ec;color:#237653}.board-status.departed{background:#e6f1f8;color:#3b6e8d}.board-status.boarding{background:#fbf0da;color:#8a6726}.flightboard-footer{background:#f5f8f6;border-color:#dfe7e3;color:#7d8e87}

/* Public/light pages also follow V5 palette */
.public-body{background:#f4f7f4}.public-body .site-header{background:rgba(255,255,255,.9);border-color:#dde6e1}.public-body .brand-mark{background:#173a34;border-radius:13px;box-shadow:none}.public-body .surface-gradient{background:linear-gradient(135deg,#173a34 0%,#3a7669 100%)}.public-body .auth-brand-panel{background:linear-gradient(135deg,#f3f8f5 0%,#e8f3ef 100%);border-color:#d7e5de}.public-body .auth-brand-panel:after{background:radial-gradient(circle,rgba(15,141,128,.13),rgba(15,141,128,0) 68%)}

@media(max-width:1350px){
  .workspace-quicknav{display:none}
  .dashboard-module[data-size="normal"]{grid-column:span 6}.dashboard-module[data-size="wide"]{grid-column:span 12}
  .live-map-flight-dock{width:310px}
}
@media(max-width:1050px){
  .live-map-stage{height:70vh;min-height:610px}.live-map-flight-dock{left:18px;right:18px;top:auto;bottom:62px;width:auto;max-height:210px}.live-map-hud{right:18px;justify-content:flex-start}.live-map-bottom-actions{bottom:14px}
}
@media(max-width:900px){
  .workspace-sidebar{width:260px}.workspace-topbar{padding:0 14px}.workspace-context{display:none}
  .dashboard-module,.dashboard-module[data-size="normal"],.dashboard-module[data-size="wide"],.dashboard-module[data-size="full"]{grid-column:1/-1}
  .module-toolbar{left:10px;right:10px;justify-content:space-between}.dashboard-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-kpi{border-bottom:1px solid #e3eae6}
  .live-map-stage{min-height:560px}.live-map-hud{gap:9px}.hud-divider{display:none}.live-map-hud>div:last-child{display:none}
}
@media(max-width:620px){
  .dashboard-workspace-toolbar{align-items:flex-start}.dashboard-workspace-actions{width:100%}.dashboard-workspace-actions .btn{flex:1}.dashboard-kpi-grid{grid-template-columns:1fr 1fr}.dashboard-kpi{padding:18px 16px}.dashboard-kpi::before{left:16px}
  .live-v5-head{align-items:flex-start}.live-head-actions{width:100%}.live-head-actions .btn{flex:1}.live-map-stage{height:68vh;min-height:520px;border-radius:13px}.live-map-hud{left:10px;top:10px;right:10px}.live-map-flight-dock{left:10px;right:10px;bottom:54px;padding:15px}.live-map-bottom-actions{left:10px;bottom:10px}.map-action-chip--static{display:none}.live-fleet-control,.live-planned-route-control{margin-right:10px!important}.live-planned-route-control{margin-top:6px!important}
}

/* =========================================================
   Dashboard V5.1 — light airline operations board
   Clear tables, deterministic module layout and calmer hierarchy.
   ========================================================= */
.dashboard-v51{--dash-navy:#163250;--dash-blue:#2f78d8;--dash-blue-soft:#eef5ff;--dash-line:#dbe4ed;--dash-muted:#728397;--dash-surface:#ffffff;--dash-head:#f6f9fc}
.dashboard-v51 .modular-dashboard{gap:18px}
.dashboard-header-v51{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding:6px 2px 4px}
.dashboard-header-v51 h1{margin:5px 0 5px;color:var(--dash-navy);font-size:32px;line-height:1.08;letter-spacing:-.045em}
.dashboard-header-v51 p{margin:0;color:var(--dash-muted);font-size:13px}
.dashboard-v51 .eyebrow{color:#5c7898}
.dashboard-v51 .dashboard-module-grid{grid-auto-flow:row;gap:18px}
.dashboard-v51 .dashboard-module{border:1px solid var(--dash-line);border-radius:14px;box-shadow:0 8px 26px rgba(36,61,87,.055);background:var(--dash-surface)}
.dashboard-v51 .dashboard-module:hover{border-color:#ccd9e6}
.dashboard-v51 .module-card-pad{padding:22px 22px 20px}
.dashboard-v51 .module-head{margin-bottom:16px;align-items:flex-start}
.dashboard-v51 .module-head h2{margin:4px 0 0;color:var(--dash-navy);font-size:20px;letter-spacing:-.025em}
.module-subtitle-v51{margin:6px 0 0;color:var(--dash-muted);font-size:11px;line-height:1.45;max-width:760px}
.dashboard-editor-help{margin:14px 0 0;font-size:12px;line-height:1.55}
.dashboard-v51 .dashboard-customize-panel{border-color:#cfdbe7;background:#f9fbfd}
.dashboard-v51 .module-picker label{border-color:#dce5ee;background:#fff}
.dashboard-v51 .module-picker input{accent-color:var(--dash-blue)}

/* Pilot command becomes a light briefing strip instead of a dark hero card. */
.dashboard-v51 .pilot-command-v51{padding:22px 24px;background:linear-gradient(110deg,#ffffff 0%,#f7fbff 70%,#eef6ff 100%);border:1px solid #d9e5f0;color:var(--dash-navy);overflow:hidden}
.dashboard-v51 .pilot-command-v51:before{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:#55a0e8;border-radius:14px 0 0 14px}
.dashboard-v51 .pilot-command-v51:after{display:none}
.dashboard-v51 .pilot-command-v51 .eyebrow{color:#587999}
.dashboard-v51 .pilot-command-v51 .pilot-command-copy p{color:var(--dash-muted)}
.dashboard-v51 .pilot-command-v51 .pilot-command-avatar{width:58px;height:58px;background:#eaf3fd;color:#1e5f9f;border:1px solid #d3e3f3;box-shadow:none}
.dashboard-v51 .pilot-command-v51 .pilot-command-copy h2{margin:3px 0;font-size:23px;color:var(--dash-navy)}
.dashboard-v51 .pilot-command-v51 .btn-primary{background:#2f78d8;color:#fff;border-color:#2f78d8;box-shadow:none}
.dashboard-v51 .pilot-command-v51 .btn-soft{background:#fff;border-color:#d6e1ec;color:#365a7e}

/* KPI strip */
.dashboard-v51 .dashboard-stats-v51{overflow:hidden}
.dashboard-v51 .dashboard-kpi-grid{background:#fff}
.dashboard-v51 .dashboard-kpi{min-height:96px;padding:19px 22px;border-right:1px solid #e4eaf0}
.dashboard-v51 .dashboard-kpi::before{width:20px;height:3px;background:#79aee2;top:15px}
.dashboard-v51 .dashboard-kpi span{color:#7f8fa0;font-size:9px}
.dashboard-v51 .dashboard-kpi strong{color:var(--dash-navy);font-size:24px}

/* Dispatch block */
.dispatch-route-v51{display:grid;grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr);gap:10px;align-items:center;padding:15px 16px;border:1px solid #dce6ef;border-radius:12px;background:#f8fbfe}
.airport-block-v51{min-width:0}.airport-block-v51--right{text-align:right}
.airport-block-v51>span{display:block;color:#8392a2;text-transform:uppercase;letter-spacing:.1em;font-size:8px;font-weight:850}
.airport-block-v51>strong{display:block;margin:4px 0 2px;color:var(--dash-navy);font-size:24px;letter-spacing:-.025em}
.airport-block-v51>small{display:block;color:#748699;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.route-arrow-v51{width:34px;height:34px;border-radius:50%;background:#e8f2fc;color:#2f78d8;display:grid;place-items:center;font-size:17px;font-weight:900}
.dispatch-meta-v51{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:14px;border:1px solid #e1e8ef;border-radius:10px;overflow:hidden}
.dispatch-meta-v51 span{padding:10px 12px;color:#496178;font-size:11px;border-right:1px solid #e5ebf1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dispatch-meta-v51 span:last-child{border-right:0}
.dispatch-meta-v51 b{display:block;margin-bottom:3px;color:#8a98a7;font-size:8px;text-transform:uppercase;letter-spacing:.09em}
.dashboard-empty-v51{display:grid;gap:5px;padding:18px;border:1px dashed #d5e0ea;border-radius:11px;background:#fafcfe;color:#667a8d}.dashboard-empty-v51 strong{color:#28455f}.dashboard-empty-v51 span{font-size:11px;line-height:1.45}

/* Tables: explicit visual grid rather than floating text. */
.dashboard-table-shell-v51{border:1px solid #dce5ee;border-radius:11px;overflow:hidden;background:#fff}
.dashboard-data-table{width:100%;border-collapse:collapse;border-spacing:0;table-layout:auto}
.dashboard-data-table thead th{padding:10px 13px;background:#f5f8fb;border-bottom:1px solid #dce5ee;color:#7b8b9c;font-size:9px;line-height:1.2;text-transform:uppercase;letter-spacing:.1em;font-weight:850;text-align:left;white-space:nowrap}
.dashboard-data-table tbody td{padding:12px 13px;border-bottom:1px solid #e7edf2;color:#334c63;font-size:11px;vertical-align:middle}
.dashboard-data-table tbody tr:last-child td{border-bottom:0}
.dashboard-data-table tbody tr:hover{background:#f8fbfe}
.dashboard-data-table td strong{display:block;color:#1d3a55;font-size:12px;line-height:1.35}
.dashboard-data-table td small{display:block;margin-top:2px;color:#7c8c9c;font-size:9px;line-height:1.3;max-width:300px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dashboard-data-table .metric-cell{text-align:right;white-space:nowrap}
.airport-code-v51{display:block;color:#1d5c97;font-size:12px;font-weight:900;letter-spacing:.02em;line-height:1.3}
.route-mini-arrow-v51{color:#90a0ae;margin:0 4px}.action-cell-v51{text-align:right;white-space:nowrap}.empty-table-v51{text-align:center!important;color:#8291a0!important;padding:24px!important}
.clickable-row{cursor:pointer}
.dashboard-actions-separated{margin-top:13px;padding-top:13px;border-top:1px solid #e6edf2}
.location-pill-v51{display:grid;gap:1px;max-width:270px;padding:8px 11px;border:1px solid #d6e2ed;border-radius:10px;background:#f8fbfe;color:#48647e;line-height:1.25}.location-pill-v51 b{font-size:10px}.location-pill-v51 small{color:#8391a0;font-size:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Tour progress is isolated from its label, preventing overlap. */
.tour-progress-v51{display:grid;grid-template-columns:minmax(90px,1fr) 38px;gap:9px;align-items:center;min-width:150px}
.tour-progress-bar-v51{position:relative;height:7px;border-radius:999px;background:#e8edf2;overflow:hidden}
.tour-progress-bar-v51 span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#5a9fe0,#2f78d8)}
.tour-progress-v51>strong{display:block!important;color:#3c5b77!important;font-size:10px!important;text-align:right}

/* Secondary modules */
.simple-list-v51{display:grid;gap:8px}.simple-list-v51 article{display:grid;gap:3px;padding:11px 12px;border:1px solid #e0e7ee;border-radius:10px;background:#fafcfe}.simple-list-v51 article strong{color:#25435d;font-size:11px}.simple-list-v51 article span{color:#7b8b9a;font-size:10px}
.award-grid-v51{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:9px}.award-grid-v51 .award-item{border:1px solid #e1e8ef;border-radius:10px;background:#fafcfe;padding:12px}
.monthly-score-v51{display:grid;grid-template-columns:1fr 1fr;border:1px solid #e0e7ee;border-radius:11px;overflow:hidden}.monthly-score-v51>div{padding:15px}.monthly-score-v51>div+div{border-left:1px solid #e0e7ee}.monthly-score-v51 span{display:block;color:#8593a1;font-size:8px;text-transform:uppercase;letter-spacing:.1em;font-weight:850}.monthly-score-v51 strong{display:block;margin-top:5px;color:var(--dash-navy);font-size:20px}
.dashboard-v51 .module-map-head{padding:18px 21px;background:#f8fafc;border-bottom:1px solid #e0e7ee}.dashboard-v51 .module-map-head h2{margin:4px 0 0;color:var(--dash-navy);font-size:19px}

/* Editor controls */
.dashboard-v51 .module-toolbar{border-color:#ccd9e5;box-shadow:0 8px 22px rgba(39,63,87,.12)}
.dashboard-v51 .module-size-switch{background:#eef3f8}.dashboard-v51 .module-size-switch button.is-active{background:#2d5f8f;color:#fff}
.dashboard-v51 .module-tool:hover{background:#eef5fb;color:#2e648f}
.dashboard-v51.dashboard-customize-mode .dashboard-module,.dashboard-customize-mode .dashboard-v51 .dashboard-module{outline-color:#8bb7df}

@media(max-width:1250px){
  .dashboard-data-table td small{max-width:210px}
  .dispatch-meta-v51{grid-template-columns:1fr}.dispatch-meta-v51 span{border-right:0;border-bottom:1px solid #e5ebf1}.dispatch-meta-v51 span:last-child{border-bottom:0}
}
@media(max-width:900px){
  .dashboard-header-v51{align-items:flex-start;flex-direction:column}.dashboard-header-v51 .dashboard-workspace-actions{width:100%}
  .dashboard-table-shell-v51{overflow-x:auto}.dashboard-data-table{min-width:720px}.tour-table-v51{min-width:680px}
  .dashboard-v51 .dashboard-kpi{border-bottom:1px solid #e4eaf0}
}
@media(max-width:620px){
  .dashboard-header-v51 h1{font-size:27px}.dashboard-v51 .module-card-pad{padding:17px}.dispatch-route-v51{grid-template-columns:1fr 28px 1fr;padding:13px}.route-arrow-v51{width:28px;height:28px}.airport-block-v51>strong{font-size:20px}
  .dashboard-v51 .dashboard-kpi-grid{grid-template-columns:1fr 1fr}.dashboard-v51 .dashboard-kpi{padding:17px 15px}
}


/* V5.2 airport hierarchy: location is primary, ICAO is supporting information. */
.airport-location-v52{display:grid;gap:3px;min-width:0}
.dashboard-data-table td .airport-name-v52{display:block;color:#173a55;font-size:14px;font-weight:800;line-height:1.24;letter-spacing:-.012em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:340px}
.airport-code-v52{display:block;width:max-content;color:#8292a3;font-size:9px;font-weight:850;line-height:1.2;letter-spacing:.11em;text-transform:uppercase}
.airport-block-v51>.airport-primary-name-v52{margin:5px 0 3px;color:var(--dash-navy);font-size:17px;line-height:1.22;letter-spacing:-.018em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.airport-block-v51>.airport-secondary-code-v52{color:#7d8d9c;font-size:9px;font-weight:850;letter-spacing:.11em;text-transform:uppercase}
@media (max-width:1200px){.dashboard-data-table td .airport-name-v52{max-width:240px;font-size:13px}}

/* =========================================================
   V5.3 · Airport Details + Operations Wall / TV mode
   ========================================================= */
.airports-index-page,.airport-detail-page{--airport-ink:#123936;--airport-muted:#6e8380;--airport-line:#d9e5e1;--airport-soft:#f5f9f7;--airport-accent:#0d8f83;--airport-accent-soft:#e8f5f2}
.airport-directory-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:24px;padding:8px 2px}.airport-directory-hero h1,.airport-detail-hero h1{color:var(--airport-ink);margin:4px 0 8px}.airport-directory-hero p,.airport-detail-hero p{margin:0;color:var(--airport-muted);max-width:780px}
.airport-search-panel{display:grid;grid-template-columns:minmax(220px,.7fr) minmax(280px,1.5fr) auto auto;gap:12px;align-items:center;padding:18px 20px;border:1px solid var(--airport-line);border-radius:22px;background:#fff;box-shadow:0 12px 34px rgba(34,72,67,.06)}.airport-search-copy{display:flex;align-items:center;gap:12px}.airport-search-copy strong,.airport-search-copy small{display:block}.airport-search-copy small{color:var(--airport-muted);font-size:11px;margin-top:2px}.airport-search-icon{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:var(--airport-accent-soft);color:var(--airport-accent);font-size:22px}.airport-search-panel input{height:46px;border:1px solid var(--airport-line);border-radius:14px;padding:0 15px;background:#f9fbfa;font:inherit;color:var(--airport-ink);outline:none}.airport-search-panel input:focus{border-color:#8fc8c0;box-shadow:0 0 0 3px rgba(13,143,131,.08);background:#fff}
.airport-directory-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:34px 0 16px}.airport-directory-heading h2{margin:3px 0 0;color:var(--airport-ink)}.airport-directory-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.airport-directory-card{position:relative;display:flex;min-height:240px;flex-direction:column;padding:20px;border:1px solid var(--airport-line);border-radius:22px;background:#fff;color:inherit;text-decoration:none;overflow:hidden;box-shadow:0 10px 28px rgba(34,72,67,.045);transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}.airport-directory-card:hover{transform:translateY(-3px);border-color:#aad1cb;box-shadow:0 18px 38px rgba(34,72,67,.09)}.airport-directory-card-top{display:flex;align-items:center;gap:8px}.airport-directory-code{font-size:12px;font-weight:800;letter-spacing:.12em;color:var(--airport-accent);background:var(--airport-accent-soft);padding:6px 9px;border-radius:9px}.airport-directory-iata{font-size:11px;font-weight:700;color:#7b8e8b}.airport-directory-icon{position:absolute;right:18px;top:14px;font-size:54px;color:#cfe7e2;transform:rotate(-8deg)}.airport-directory-card h3{position:relative;margin:44px 0 6px;font-size:18px;line-height:1.25;color:var(--airport-ink);max-width:88%}.airport-directory-card p{margin:0;color:var(--airport-muted);font-size:13px}.airport-directory-footer{margin-top:auto;padding-top:18px;border-top:1px solid #edf2f0;display:flex;align-items:center;justify-content:space-between;color:#66807c;font-size:12px}.airport-directory-footer strong{color:var(--airport-ink);font-size:14px}.airport-card-arrow{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#f0f6f4;color:var(--airport-accent);font-size:18px}.airport-directory-empty{text-align:center;padding:56px 24px}.airport-directory-empty h1{margin:6px 0}.airport-directory-empty p{color:var(--airport-muted);margin:8px auto 22px}
.airport-detail-hero{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:8px 0 24px}.airport-detail-identity{display:flex;align-items:center;gap:18px;min-width:0}.airport-detail-code-stack{flex:0 0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;width:82px;height:82px;border-radius:20px;background:#113f3a;color:#fff;box-shadow:0 13px 28px rgba(18,57,54,.14)}.airport-detail-code-stack strong{font-size:23px;letter-spacing:.05em}.airport-detail-code-stack span{margin-top:3px;font-size:10px;letter-spacing:.15em;color:#a9d9d2}.airport-detail-actions{display:flex;gap:9px;flex-wrap:wrap;justify-content:flex-end}
.airport-stat-strip{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border:1px solid var(--airport-line);border-radius:20px;background:#fff;overflow:hidden;margin-bottom:18px;box-shadow:0 9px 25px rgba(34,72,67,.04)}.airport-stat-strip>div{padding:17px 20px;border-right:1px solid #e8efed}.airport-stat-strip>div:last-child{border-right:0}.airport-stat-strip span,.airport-weather-metrics span{display:block;color:#718783;text-transform:uppercase;letter-spacing:.09em;font-size:9px;font-weight:800}.airport-stat-strip strong{display:block;margin-top:3px;font-size:24px;color:var(--airport-ink)}
.airport-overview-grid{display:grid;grid-template-columns:minmax(340px,.78fr) minmax(520px,1.4fr);gap:18px}.airport-weather-card,.airport-map-card,.airport-board-card,.airport-forecast-strip{border:1px solid var(--airport-line);border-radius:22px;background:#fff;box-shadow:0 10px 28px rgba(34,72,67,.045)}.airport-weather-card,.airport-map-card,.airport-board-card,.airport-forecast-strip{padding:20px}.airport-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:15px;margin-bottom:16px}.airport-panel-head h2{margin:2px 0 0;color:var(--airport-ink);font-size:19px}.weather-live-dot{display:inline-flex;align-items:center;gap:6px;padding:6px 9px;border-radius:999px;background:#e8f5f2;color:#08756d;font-size:9px;font-weight:800;letter-spacing:.1em}.weather-live-dot:before{content:"";width:6px;height:6px;border-radius:50%;background:#17ad76;box-shadow:0 0 0 4px rgba(23,173,118,.1)}
.airport-weather-current{display:flex;align-items:center;gap:15px;padding:6px 0 17px}.airport-weather-symbol{display:grid;place-items:center;width:76px;height:76px;border-radius:22px;background:linear-gradient(145deg,#edf8f5,#f9fbfa);font-size:38px;color:#0d8f83}.airport-weather-temp strong,.airport-weather-temp span{display:block}.airport-weather-temp strong{font-size:38px;line-height:1;color:var(--airport-ink)}.airport-weather-temp span{margin-top:6px;color:var(--airport-muted);font-weight:600}.airport-weather-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.airport-weather-metrics>div{padding:11px;border:1px solid #e8efed;border-radius:13px;background:#f9fbfa}.airport-weather-metrics strong{display:block;margin-top:3px;color:var(--airport-ink);font-size:13px}.airport-metar-box{margin-top:14px;padding:14px 15px;border-radius:15px;background:#103c38;color:#fff}.airport-metar-box>div{display:flex;align-items:center;justify-content:space-between;gap:10px}.airport-metar-box>div>span{font-size:10px;font-weight:800;letter-spacing:.13em;color:#a8d7d0}.airport-metar-box p{margin:9px 0 0;color:#eff9f7;font:600 12px/1.55 ui-monospace,SFMono-Regular,Consolas,monospace}.metar-category{padding:4px 7px;border-radius:7px;font-size:9px;letter-spacing:.08em;background:#d8f4eb;color:#087158}.metar-ifr,.metar-lifr{background:#ffe5e5;color:#a52f38}.metar-mvfr{background:#fff0cf;color:#966416}.airport-weather-unavailable{display:flex;flex-direction:column;justify-content:center;min-height:180px;padding:20px;border:1px dashed #cfdfda;border-radius:16px;background:#f8fbfa;color:var(--airport-ink)}.airport-weather-unavailable span{color:var(--airport-muted);margin-top:5px;font-size:12px}
.airport-detail-map{height:440px;border-radius:17px;overflow:hidden;background:#e8f2ef}.airport-plane-marker-wrap{background:transparent!important;border:0!important}.airport-plane-marker{display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:#fff;color:#0a887d;box-shadow:0 5px 14px rgba(25,62,57,.22);font-size:17px;transform-origin:50% 50%}
.airport-forecast-strip{margin-top:18px}.airport-forecast-days{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}.airport-forecast-days article{padding:14px;border-radius:15px;background:#f7faf9;border:1px solid #e6efec;text-align:center}.airport-forecast-days article>span,.airport-forecast-days article>em,.airport-forecast-days article>small{display:block}.airport-forecast-days article>span{color:#617c77;font-size:10px;text-transform:uppercase;font-weight:800;letter-spacing:.05em}.airport-forecast-days article>b{display:block;margin:9px 0 5px;font-size:24px;font-style:normal}.airport-forecast-days article>strong{display:block;color:var(--airport-ink);font-size:17px}.airport-forecast-days article>strong small{color:#80918e;font-weight:600;font-size:12px}.airport-forecast-days article>em{margin-top:4px;color:#4f6965;font-style:normal;font-size:11px}.airport-forecast-days article>small{margin-top:5px;color:#899a97;font-size:9px}
.airport-boards-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}.airport-board-symbol{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#eaf5f2;color:#0b8a7f;font-size:20px}.airport-movement-table{width:100%;border-collapse:collapse}.airport-movement-table th{padding:9px 10px;text-align:left;color:#718783;text-transform:uppercase;letter-spacing:.08em;font-size:8px;border-bottom:1px solid #e3ece9}.airport-movement-table td{padding:11px 10px;border-bottom:1px solid #edf2f0;vertical-align:middle;color:#2e4b47;font-size:11px}.airport-movement-table tr:last-child td{border-bottom:0}.airport-movement-table td>small{display:block;color:#879995;font-size:9px;margin-top:2px}.airport-table-location{display:block;color:inherit;text-decoration:none}.airport-table-location strong,.airport-table-location span{display:block}.airport-table-location strong{font-size:11px;color:#244541;max-width:190px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.airport-table-location span{font-size:9px;color:#81938f;margin-top:2px;letter-spacing:.05em}.airport-table-location:hover strong{color:#0b8a7f}.movement-status{display:inline-flex;padding:5px 7px;border-radius:999px;background:#eef4f2;color:#56726e;font-size:8px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.movement-airborne,.movement-departed{background:#e5f4f1;color:#087b70}.movement-boarding{background:#fff2d8;color:#98651e}.movement-arrived{background:#eaf4ec;color:#2c7d49}

/* Operations wall */
.operations-wall-body{margin:0;overflow:hidden;background:#eaf1ef;color:#173632;font-family:'Manrope',sans-serif}.operations-wall{height:100vh;display:grid;grid-template-rows:74px minmax(0,1fr);background:radial-gradient(circle at 84% 4%,rgba(185,223,214,.35),transparent 32%),#eaf1ef}.wall-topbar{display:grid;grid-template-columns:minmax(330px,1fr) minmax(280px,.75fr) auto auto;align-items:center;gap:20px;padding:0 26px;background:rgba(255,255,255,.93);border-bottom:1px solid #d6e3df;box-shadow:0 7px 24px rgba(32,65,60,.05);z-index:20}.wall-brand{display:flex;align-items:center;gap:12px;min-width:0}.wall-brand-mark{display:grid;place-items:center;width:39px;height:39px;border-radius:12px;background:#0e8177;color:#fff;font-size:13px;font-weight:800;letter-spacing:.08em}.wall-brand strong,.wall-brand span{display:block}.wall-brand strong{font-size:15px;color:#173b36}.wall-brand span{margin-top:2px;color:#7a8d89;font-size:9px}.wall-airport-selector{display:flex;align-items:center;justify-content:flex-end;gap:10px}.wall-airport-selector>span{font-size:8px;font-weight:800;letter-spacing:.12em;color:#839590}.wall-airport-selector select{max-width:330px;height:37px;border:1px solid #d4e2de;border-radius:11px;background:#f8fbfa;padding:0 10px;color:#224640;font:600 10px 'Manrope',sans-serif}.wall-clock-wrap{text-align:right;min-width:150px}.wall-clock-wrap strong,.wall-clock-wrap span{display:block}.wall-clock-wrap strong{font-size:23px;letter-spacing:.05em;color:#123a35;line-height:1}.wall-clock-wrap span{margin-top:4px;color:#7e918d;font-size:8px;text-transform:uppercase}.wall-actions{display:flex;gap:7px}.wall-actions a,.wall-actions button{height:35px;padding:0 11px;border:1px solid #d2dfdc;border-radius:10px;background:#fff;color:#28514a;text-decoration:none;font:700 9px 'Manrope',sans-serif;cursor:pointer}.wall-actions button{background:#123f39;color:#fff;border-color:#123f39}
.wall-main{min-height:0;display:grid;grid-template-columns:minmax(0,1.8fr) minmax(300px,.62fr);grid-template-rows:minmax(0,1fr) minmax(255px,.44fr) 35px;gap:12px;padding:12px}.wall-map-panel,.wall-weather-panel,.wall-kpi-grid>div,.wall-board-panel{border:1px solid #d6e2df;border-radius:18px;background:#fff;box-shadow:0 8px 25px rgba(34,70,64,.045);overflow:hidden}.wall-map-panel{grid-column:1;grid-row:1;position:relative;min-height:0}.wall-panel-label{position:absolute;z-index:500;left:14px;top:14px;display:flex;align-items:center;gap:12px;padding:8px 11px;border:1px solid rgba(206,222,218,.92);border-radius:11px;background:rgba(255,255,255,.92);box-shadow:0 5px 16px rgba(26,62,56,.08);backdrop-filter:blur(10px)}.wall-panel-label span{display:flex;align-items:center;gap:7px;color:#54706b;font-size:8px;font-weight:800;letter-spacing:.09em}.wall-panel-label span i{width:7px;height:7px;border-radius:50%;background:#17aa78;box-shadow:0 0 0 4px rgba(23,170,120,.12)}.wall-panel-label strong{font-size:10px;color:#193f39}.wall-live-map{height:100%;min-height:360px;background:#dcece8}.wall-map-legend{position:absolute;z-index:500;left:14px;bottom:13px;display:flex;align-items:center;gap:12px;padding:7px 10px;border-radius:10px;background:rgba(18,54,49,.9);color:#d9ece8;font-size:8px}.wall-map-legend span{display:flex;align-items:center;gap:5px}.wall-live-dot{width:6px;height:6px;border-radius:50%;background:#43d69b}.operations-wall .leaflet-control-attribution{font-size:7px!important}.operations-wall .leaflet-control-zoom a{width:28px!important;height:28px!important;line-height:28px!important}
.wall-side-stack{grid-column:2;grid-row:1;display:grid;grid-template-rows:minmax(0,1fr) auto;gap:12px;min-height:0}.wall-weather-panel{padding:17px}.wall-weather-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.wall-weather-head span,.wall-weather-head strong{display:block}.wall-weather-head span{color:#0b8a7e;font-size:10px;font-weight:800;letter-spacing:.1em}.wall-weather-head strong{margin-top:3px;font-size:13px;color:#183c36;max-width:210px}.wall-weather-head a{font-size:8px;color:#0b857a;text-decoration:none;font-weight:800}.wall-weather-main{display:flex;align-items:center;gap:14px;padding:20px 0 14px}.wall-weather-icon{display:grid;place-items:center;width:62px;height:62px;border-radius:18px;background:#ebf6f3;color:#0b887d;font-size:30px}.wall-weather-main strong,.wall-weather-main span{display:block}.wall-weather-main strong{font-size:34px;line-height:1;color:#173d37}.wall-weather-main span{margin-top:5px;color:#748b86;font-size:10px}.wall-weather-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.wall-weather-grid>div{padding:9px;border:1px solid #e1ebe8;border-radius:11px;background:#f8fbfa}.wall-weather-grid span,.wall-weather-grid strong{display:block}.wall-weather-grid span{font-size:7px;text-transform:uppercase;letter-spacing:.08em;color:#839792}.wall-weather-grid strong{margin-top:2px;font-size:11px;color:#294b46}.wall-metar{margin-top:10px;padding:10px 11px;border-radius:11px;background:#153e39;color:#e6f3ef}.wall-metar span{font-size:7px;font-weight:800;letter-spacing:.11em;color:#8dc8bf}.wall-metar p{margin:5px 0 0;font:600 8px/1.4 ui-monospace,monospace}.wall-weather-missing{margin:25px 0;padding:22px;border-radius:12px;background:#f6faf8;color:#6d817d;font-size:10px}.wall-kpi-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.wall-kpi-grid>div{padding:12px}.wall-kpi-grid span,.wall-kpi-grid strong{display:block}.wall-kpi-grid span{font-size:7px;color:#82938f;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.wall-kpi-grid strong{margin-top:3px;font-size:17px;color:#173d37}.wall-kpi-grid .wall-online{font-size:12px;color:#0d8d69;margin-top:6px}
.wall-board-panel{grid-column:1 / -1;grid-row:2;padding:0;min-height:0}.wall-board-title{height:48px;display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 17px;border-bottom:1px solid #e0e9e6;background:#f8fbfa}.wall-board-title span,.wall-board-title strong{display:block}.wall-board-title>div>span{font-size:8px;letter-spacing:.13em;color:#0a8b7f;font-weight:800}.wall-board-title>div>strong{font-size:13px;color:#173e38;margin-top:1px}.wall-board-title>span{font-size:7px;color:#81948f;letter-spacing:.08em}.wall-flightboard{height:calc(100% - 48px);overflow:hidden}.wall-flight-row{display:grid;grid-template-columns:95px minmax(360px,1.55fr) minmax(130px,.55fr) minmax(120px,.52fr) 78px 65px 90px;align-items:center;gap:10px;min-height:48px;padding:7px 15px;border-bottom:1px solid #edf2f0}.wall-flight-row:last-child{border-bottom:0}.wall-flight-row:nth-child(even){background:#fbfdfc}.wall-flight-id strong,.wall-flight-id span,.wall-flight-pilot strong,.wall-flight-pilot small,.wall-flight-aircraft strong,.wall-flight-aircraft small,.wall-flight-metric strong,.wall-flight-metric small{display:block}.wall-flight-id strong{font-size:12px;color:#123d37}.wall-flight-id span{font-size:7px;color:#829590;margin-top:2px}.wall-flight-route{display:grid;grid-template-columns:minmax(95px,.9fr) minmax(90px,1fr) minmax(95px,.9fr);gap:8px;align-items:center}.wall-flight-route>div:first-child,.wall-route-arr{text-align:left}.wall-route-arr{text-align:right!important}.wall-flight-route strong,.wall-flight-route small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wall-flight-route strong{font-size:9px;color:#254a44}.wall-flight-route small{font-size:7px;color:#849691;margin-top:1px;letter-spacing:.05em}.wall-route-line{position:relative;height:2px;background:#d5e5e1}.wall-route-line i{position:absolute;left:0;top:0;height:2px;width:var(--progress);background:#159387}.wall-route-line span{position:absolute;left:var(--progress);top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#fff;color:#0d8b80;box-shadow:0 2px 8px rgba(27,75,68,.15);font-size:10px}.wall-flight-pilot strong,.wall-flight-aircraft strong{font-size:9px;color:#31504b;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wall-flight-pilot small,.wall-flight-aircraft small,.wall-flight-metric small{font-size:7px;color:#8a9a96;margin-top:2px}.wall-flight-metric strong{font-size:12px;color:#173e38}.wall-status{display:inline-flex;padding:5px 7px;border-radius:999px;background:#e8f4f1;color:#08796f;font-size:7px;font-weight:800;letter-spacing:.06em}.wall-status-boarding{background:#fff0d2;color:#986313}.wall-status-arrived{background:#e9f3eb;color:#287246}.wall-board-empty{display:grid;place-items:center;height:100%;color:#768b86;font-size:11px}
.wall-ticker{grid-column:1 / -1;grid-row:3;display:flex;align-items:center;min-width:0;border-radius:10px;background:#153c38;color:#dcece8;overflow:hidden}.wall-ticker-label{flex:0 0 auto;height:100%;display:flex;align-items:center;padding:0 13px;background:#0b887d;color:#fff;font-size:7px;font-weight:800;letter-spacing:.12em}.wall-ticker-track{display:flex;align-items:center;gap:28px;min-width:0;overflow:hidden;padding:0 14px;white-space:nowrap;font-size:8px}.wall-ticker-track span{color:#c5dbd6}.wall-ticker-track b{color:#fff;margin-right:4px}.operations-wall:fullscreen{background:#eaf1ef}

@media(max-width:1300px){.airport-directory-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.airport-overview-grid{grid-template-columns:1fr}.airport-boards-grid{grid-template-columns:1fr}.wall-topbar{grid-template-columns:minmax(260px,1fr) auto auto}.wall-airport-selector{display:none}.wall-main{grid-template-columns:minmax(0,1.55fr) minmax(270px,.65fr)}.wall-flight-row{grid-template-columns:80px minmax(300px,1.3fr) 120px 110px 70px 58px 78px}}
@media(max-width:900px){.airport-search-panel{grid-template-columns:1fr}.airport-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.airport-detail-hero{align-items:flex-start;flex-direction:column}.airport-detail-actions{justify-content:flex-start}.airport-stat-strip{grid-template-columns:repeat(2,1fr)}.airport-stat-strip>div{border-bottom:1px solid #e8efed}.airport-weather-metrics{grid-template-columns:repeat(2,1fr)}.airport-forecast-days{grid-template-columns:repeat(2,1fr)}.operations-wall-body{overflow:auto}.operations-wall{height:auto;min-height:100vh}.wall-topbar{grid-template-columns:1fr auto;padding:10px 14px;height:auto}.wall-clock-wrap,.wall-actions{display:none}.wall-main{display:block;padding:10px}.wall-map-panel{height:58vh;margin-bottom:10px}.wall-side-stack{display:block}.wall-weather-panel{margin-bottom:10px}.wall-kpi-grid{margin-bottom:10px}.wall-board-panel{height:auto;min-height:320px;margin-bottom:10px}.wall-flightboard{height:auto}.wall-flight-row{grid-template-columns:75px 1fr 90px}.wall-flight-pilot,.wall-flight-aircraft,.wall-flight-metric,.wall-flight-row>div:last-child{display:none}.wall-ticker{height:35px}}
@media(max-width:620px){.airport-directory-grid{grid-template-columns:1fr}.airport-detail-identity{align-items:flex-start}.airport-detail-code-stack{width:66px;height:66px;border-radius:16px}.airport-detail-code-stack strong{font-size:18px}.airport-stat-strip{grid-template-columns:1fr 1fr}.airport-map-card,.airport-weather-card,.airport-board-card,.airport-forecast-strip{padding:14px}.airport-detail-map{height:350px}.airport-forecast-days{grid-template-columns:1fr 1fr}.airport-movement-table{min-width:720px}}
.live-route-airports{display:grid;grid-template-columns:minmax(120px,1fr) auto minmax(120px,1fr);gap:8px;align-items:center;min-width:360px}.live-route-airports a{display:block;color:inherit;text-decoration:none}.live-route-airports a strong,.live-route-airports a small{display:block}.live-route-airports a strong{color:#264b46;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-route-airports a small{margin-top:2px;color:#849590;font-size:9px;letter-spacing:.06em}.live-route-airports a:hover strong{color:#0b8c80}.live-airport-table-name{display:inline-block;max-width:150px;vertical-align:middle;font-weight:700;color:#274b46;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.live-airport-table-code{display:inline-block;margin-left:4px;color:#839590;font-size:9px}.board-route-codes--named span{min-width:0}.board-route-codes--named b,.board-route-codes--named small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.board-route-codes--named b{font-size:10px;color:#244b46}.board-route-codes--named small{margin-top:2px;font-size:8px;color:#7d918c;letter-spacing:.05em}.board-route-codes--named span:last-child{text-align:right}
.airport-location-link-v53{color:inherit;text-decoration:none}.airport-location-link-v53:hover .airport-name-v52,.airport-location-link-v53:hover .airport-primary-name-v52{color:#0b8c80}


/* v2 live-map focus & visibility patch */
.flight-plane-icon{
    background:#102a43!important;
    border:3px solid #ffb000!important;
    box-shadow:0 0 0 2px rgba(255,255,255,.9),0 8px 22px rgba(16,42,67,.35)!important;
}
.flight-plane-icon svg{
    fill:#ff7a00!important;
    stroke:#ffe0a3;
    stroke-width:1.1px;
    paint-order:stroke fill;
    filter:drop-shadow(0 1px 2px rgba(0,0,0,.32));
}
.airport-plane-marker{
    background:#102a43!important;
    color:#ff7a00!important;
    border:2px solid #ffb000!important;
    box-shadow:0 0 0 2px rgba(255,255,255,.88),0 6px 16px rgba(16,42,67,.32)!important;
}
.board-status.in_flight{background:#e1f5ec!important;color:#176946!important}
.board-status.landing{background:#fff0d7!important;color:#9a5b00!important}
.board-status.arrived{background:#e4f4e8!important;color:#236b3c!important}
.wall-status-in_flight{background:#e1f5ec!important;color:#176946!important}
.wall-status-landing{background:#fff0d7!important;color:#9a5b00!important}
.wall-status-arrived{background:#e4f4e8!important;color:#236b3c!important}


/* v2.4 fixed station-style flight board */
.flightboard-page--station{padding-top:18px}.station-board-actions{display:flex;justify-content:space-between;align-items:end;gap:16px;flex-wrap:wrap;margin-bottom:14px}.station-board-actions h1{margin:3px 0 0}
.station-board{overflow:hidden;border:1px solid #292929;border-radius:14px;background:#303030;box-shadow:0 20px 60px rgba(19,28,24,.18)}
.station-board-header{min-height:102px;display:grid;grid-template-columns:auto 1fr auto;gap:20px;align-items:center;padding:16px 22px;background:#f3d31e;border-bottom:5px solid #2d2d2d;color:#171717}.station-signs{display:flex;gap:12px}.station-sign{width:54px;height:54px;border:2px solid #292929;border-radius:7px;background:#fff8be;display:grid;place-items:center;font-size:30px;font-weight:900;line-height:1}.station-sign-plane{font-size:26px}.station-title strong{display:block;font-size:42px;line-height:.95;font-weight:900;letter-spacing:-.03em}.station-title span{display:block;margin-top:6px;font-size:16px;font-weight:800}.station-clock{text-align:right}.station-clock strong{display:block;font-size:29px;font-weight:900;font-variant-numeric:tabular-nums}.station-clock span{display:block;margin-top:4px;font-size:11px;font-weight:800;letter-spacing:.06em}
.station-board-columns,.station-board-row{display:grid;grid-template-columns:130px 105px minmax(260px,1.2fr) minmax(190px,.9fr) 170px;gap:10px;align-items:center;padding-left:16px;padding-right:16px}.station-board-columns{padding-top:11px;padding-bottom:8px;background:#3a3a3a;color:#f5f5f5;font-weight:800;font-size:13px}.station-board-rows{padding:8px 0 10px;background:#333}.station-board-row{min-height:48px;padding-top:4px;padding-bottom:4px}.station-board-row--empty{opacity:.42}
.flap-field{min-width:0;display:flex;gap:2px;height:40px}.flap-char{position:relative;flex:1 1 0;min-width:0;max-width:28px;height:40px;display:grid;place-items:center;overflow:hidden;border:1px solid #252525;border-radius:3px;background:linear-gradient(#575757 0 48%,#454545 49% 51%,#505050 52% 100%);box-shadow:inset 0 1px rgba(255,255,255,.05),inset 0 -1px rgba(0,0,0,.45);color:#f2f2f2;font-family:"Courier New",monospace;font-size:21px;font-weight:700;text-transform:uppercase;text-shadow:0 1px 1px #111;transform-origin:center}.flap-char:after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:#252525;box-shadow:0 -1px rgba(255,255,255,.04)}.flap-char b{font:inherit;line-height:1;position:relative;z-index:1}.flap-char.is-flipping{animation:stationFlap .62s cubic-bezier(.2,.68,.3,1)}@keyframes stationFlap{0%{transform:perspective(600px) rotateX(0);filter:brightness(1)}28%{transform:perspective(600px) rotateX(-82deg);filter:brightness(.72)}56%{transform:perspective(600px) rotateX(82deg);filter:brightness(1.15)}100%{transform:perspective(600px) rotateX(0);filter:brightness(1)}}
.station-board-row>.flap-field:nth-child(2) .flap-char{max-width:26px}.station-board-row>.flap-field:nth-child(3) .flap-char,.station-board-row>.flap-field:nth-child(4) .flap-char{max-width:none}.station-board-row>.flap-field:nth-child(5) .flap-char{max-width:none}.station-board-row>.flap-field:nth-child(5){filter:saturate(.9)}
.station-board-footer{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:10px 16px;background:#242424;color:#c9c9c9;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}
.flightboard-fullscreen:fullscreen{width:100vw;height:100vh;background:#e9ece9;padding:14px}.flightboard-fullscreen:fullscreen .station-board{height:calc(100vh - 82px);display:flex;flex-direction:column}.flightboard-fullscreen:fullscreen .station-board-rows{flex:1}.flightboard-fullscreen:fullscreen .station-board-row{min-height:calc((100vh - 240px)/12)}.flightboard-fullscreen:fullscreen .flap-field,.flightboard-fullscreen:fullscreen .flap-char{height:calc((100vh - 280px)/12);min-height:38px}.flightboard-fullscreen:fullscreen .flap-char{font-size:clamp(18px,1.4vw,28px)}
@media(max-width:1100px){.station-board-columns,.station-board-row{grid-template-columns:112px 92px minmax(220px,1fr) minmax(160px,.8fr) 145px;gap:6px;padding-left:10px;padding-right:10px}.flap-char{font-size:17px}.station-title strong{font-size:34px}}
@media(max-width:820px){.station-board-header{grid-template-columns:auto 1fr}.station-clock{grid-column:1/-1;text-align:left}.station-board-columns,.station-board-row{grid-template-columns:104px 86px minmax(180px,1fr) 128px}.station-board-columns span:nth-child(4),.station-board-row>.flap-field:nth-child(4){display:none}.flap-char{font-size:15px}.station-title strong{font-size:30px}}
@media(max-width:600px){.station-board-columns,.station-board-row{grid-template-columns:95px 78px minmax(150px,1fr)}.station-board-columns span:nth-child(4),.station-board-row>.flap-field:nth-child(4),.station-board-columns span:nth-child(5),.station-board-row>.flap-field:nth-child(5){display:none}.station-sign{width:44px;height:44px}.station-title strong{font-size:27px}}


/* v2.5 Flight Board: Departure + Destination centraal, aircraft verwijderd */
.station-board-columns,.station-board-row{
    grid-template-columns:130px 105px minmax(210px,.9fr) minmax(280px,1.25fr) 170px;
}
.station-board-row>.flap-field:nth-child(3) .flap-char,
.station-board-row>.flap-field:nth-child(4) .flap-char{
    max-width:none;
}
@media(max-width:1100px){
    .station-board-columns,.station-board-row{
        grid-template-columns:112px 92px minmax(170px,.85fr) minmax(220px,1.15fr) 145px;
    }
}
@media(max-width:820px){
    .station-board-columns,.station-board-row{
        grid-template-columns:104px 86px minmax(150px,.85fr) minmax(180px,1fr) 128px;
    }
    .station-board-columns span:nth-child(4),.station-board-row>.flap-field:nth-child(4){display:block}
}
@media(max-width:680px){
    .station-board-columns,.station-board-row{
        grid-template-columns:96px 80px minmax(130px,.9fr) minmax(150px,1fr);
    }
    .station-board-columns span:nth-child(5),.station-board-row>.flap-field:nth-child(5){display:none}
}

/* Language module */
.language-switch{display:inline-flex;align-items:center;gap:3px;padding:3px;border:1px solid rgba(38,76,122,.16);background:rgba(255,255,255,.78);border-radius:999px;box-shadow:0 4px 12px rgba(18,45,83,.05)}
.language-switch a{display:inline-flex;align-items:center;justify-content:center;min-width:34px;height:30px;padding:0 8px;border-radius:999px;text-decoration:none;font-size:12px;font-weight:800;letter-spacing:.04em;color:#6680a1;transition:.18s ease}
.language-switch a:hover{color:#14427f;background:#eef5ff}
.language-switch a.is-active{background:var(--tenant-primary,#1769ff);color:#fff;box-shadow:0 4px 10px rgba(23,105,255,.18)}
.tv-language-switch{position:fixed;z-index:2500;right:18px;top:18px;background:rgba(15,30,57,.88);border-color:rgba(255,255,255,.18);backdrop-filter:blur(12px)}
.tv-language-switch a{color:#cbd7ea}.tv-language-switch a:hover{background:rgba(255,255,255,.08);color:#fff}.tv-language-switch a.is-active{background:#fff;color:#102a4f}
.language-admin-card{background:linear-gradient(135deg,#f5f9ff 0%,#eef4fb 100%);border:1px solid #cfe0f6}
.language-choice-row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
.language-choice-row label{display:flex;align-items:center;gap:8px;padding:10px 13px;border:1px solid #d8e3f1;border-radius:12px;background:#fff;font-weight:700;cursor:pointer}
@media (max-width:760px){.workspace-topbar-actions .language-switch{display:none}.nav-actions .language-switch{order:-1}.tv-language-switch{right:10px;top:10px}}

/* =========================================================
   CONTRAST HOTFIX — improve readability on demo/customer VA cards
   ========================================================= */
.workspace-body .card,
.workspace-body .feature-card,
.workspace-body .info-card,
.workspace-body .sidebar-card,
.workspace-body .table-card,
.workspace-body .stack-item,
.workspace-body .mini-list-item,
.workspace-body .dashboard-kpi,
.workspace-body .live-network-strip,
.workspace-body .stat-tile{color:#17362f}

.workspace-body .card p,
.workspace-body .feature-card p,
.workspace-body .info-card p,
.workspace-body .sidebar-card p,
.workspace-body .table-card p,
.workspace-body .stack-item p,
.workspace-body .mini-list-item p,
.workspace-body .module-card-pad p,
.workspace-body .pilot-command-copy p,
.workspace-body .live-flight-info p,
.workspace-body .muted,
.workspace-body .muted-inline{color:#566a63!important;opacity:1}

.workspace-body .eyebrow,
.workspace-body .hero-visual-badge,
.workspace-body .module-head .eyebrow,
.workspace-body .info-card .eyebrow,
.workspace-body .feature-card .eyebrow,
.workspace-body .sidebar-card .eyebrow,
.workspace-body .table-card .eyebrow,
.workspace-body .stat-tile .eyebrow{color:#0a766c!important;opacity:1}

.workspace-body .card h1,
.workspace-body .card h2,
.workspace-body .card h3,
.workspace-body .card h4,
.workspace-body .feature-card h1,
.workspace-body .feature-card h2,
.workspace-body .feature-card h3,
.workspace-body .info-card h1,
.workspace-body .info-card h2,
.workspace-body .info-card h3,
.workspace-body .sidebar-card h1,
.workspace-body .sidebar-card h2,
.workspace-body .sidebar-card h3,
.workspace-body .module-head h2,
.workspace-body .dashboard-kpi strong,
.workspace-body .stat-tile strong,
.workspace-body .info-card strong,
.workspace-body .live-flight-route,
.workspace-body .compact-route strong{color:#17362f!important}

.workspace-body .pill,
.workspace-body .mission-meta span,
.workspace-body .status-chip.blue{background:#edf5f2!important;border-color:#d6e5df!important;color:#35584f!important;opacity:1}

.workspace-body .status-chip.green{background:#ebf7f1!important;color:#1b6e50!important}

.workspace-body .dashboard-kpi span,
.workspace-body .stat-tile span,
.workspace-body .mini-list-item small,
.workspace-body .live-network-strip small,
.workspace-body .card small{color:#6a7c76!important;opacity:1}

.workspace-body .btn-soft,
.workspace-body .btn-ghost{color:#244d45}

.workspace-body .pilot-command-card .pilot-command-copy p{color:#d9ece6!important}
.workspace-body .pilot-command-card .eyebrow{color:#bfe6dc!important}
