/**
 * gca2 member pages, in the landing page style (landing.css).
 * Loaded last by gca2/app.blade.php on every page that does not bring its own landing shell.
 *  - .gm-*  : the shell (top navigation from gca2/nav_top.blade.php, footer from gca2/app.blade.php)
 *  - .gca2-dash / .gd-* : the dashboard (gca2/dashboard/index.blade.php), always dark navy,
 *    which also restyles the stock Disposable widget cards it shows
 */

:root {
  --gl-accent: #F2C230;
  --gl-text: #EEF1FF;
  --gl-soft: #C9CEF0;
  --gl-muted: #A8AEDB;
  --gl-line: #262E7A;
  --gl-line-soft: #1A2160;
  --gl-edge: #4A55B8;
  --gl-green: #5CF29A;
  --gl-green-soft: #8FE8B5;
  --gl-navy: #070A2B;
  --gl-panel: rgba(12, 16, 66, 0.88);
  --gl-gold-line: rgba(242, 194, 48, 0.35);
  --gl-sans: 'Barlow', 'Helvetica Neue', sans-serif;
  --gl-mono: 'IBM Plex Mono', ui-monospace, monospace;
  --gl-cond: 'Barlow Condensed', 'Arial Narrow', sans-serif;
}

/* ---------------------------------------------------------------- Navigation */
#Dispo_NavBar.gm-nav {
  background: rgba(10, 14, 60, 0.94);
  border-bottom: 1px solid var(--gl-gold-line);
  box-shadow: none;
  margin-bottom: 10px;
  padding: 0 1.5%;
  font-family: var(--gl-sans);
}
.gm-nav .gm-nav-row { padding: 10px 0; }
#Dispo_NavBar.gm-nav .gm-brand { display: flex; align-items: center; gap: 12px; margin: 0 16px 0 0; padding: 0; }
.gm-brand-logo { width: 42px; height: 42px; border-radius: 50%; object-fit: contain; background: #FFFFFF; padding: 3px; }
.gm-brand-text { display: flex; flex-direction: column; line-height: 1; }
#Dispo_NavBar.gm-nav .gm-brand-name { font-family: var(--gl-cond); font-weight: 700; font-size: 21px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gl-text); }
.gm-brand-sub { font-family: var(--gl-mono); font-size: 10px; letter-spacing: 0.2em; color: var(--gl-accent); margin-top: 4px; text-transform: uppercase; }

#Dispo_NavBar.gm-nav .nav-link,
#Dispo_NavBar.gm-nav .form-check-label {
  color: var(--gl-soft);
  font-size: 15px;
  font-weight: 600;
  letter-spacing: 0.03em;
}
#Dispo_NavBar.gm-nav .nav-link { padding: 10px 11px; }
#Dispo_NavBar.gm-nav .nav-link:hover,
#Dispo_NavBar.gm-nav .nav-link:focus,
#Dispo_NavBar.gm-nav .nav-link.show { color: #FFFFFF; }
#Dispo_NavBar.gm-nav .nav-link i { color: var(--gl-muted); width: 18px; text-align: center; }
#Dispo_NavBar.gm-nav .nav-link:focus-visible { outline: 2px solid var(--gl-accent); outline-offset: -2px; border-radius: 6px; }

/* UTC clock: a readout, not a link */
#Dispo_NavBar.gm-nav #utc_clock { font-family: var(--gl-mono); font-size: 13px; font-weight: 500; color: var(--gl-muted); letter-spacing: 0; white-space: nowrap; }

/* Dark mode switch (it only changes the stock pages; the dashboard is always navy) */
#Dispo_NavBar.gm-nav .form-switch { display: flex; align-items: center; gap: 8px; margin: 0 6px 0 0 !important; padding-left: 0; min-height: 44px; }
#Dispo_NavBar.gm-nav .form-switch .form-check-input { float: none; margin: 0; background-color: transparent; border-color: var(--gl-edge); cursor: pointer; }
#Dispo_NavBar.gm-nav .form-switch .form-check-input:checked { background-color: var(--gl-accent); border-color: var(--gl-accent); }
#Dispo_NavBar.gm-nav .form-switch .form-check-input:focus { box-shadow: 0 0 0 3px rgba(242, 194, 48, 0.25); }
#Dispo_NavBar.gm-nav .form-check-label { font-size: 14px; white-space: nowrap; cursor: pointer; }

/* Dropdowns */
#Dispo_NavBar.gm-nav .dropdown-menu {
  background: #0C1042;
  border: 1px solid var(--gl-line);
  border-radius: 10px;
  box-shadow: 0 14px 34px rgba(0, 0, 0, 0.45);
  padding: 6px;
  margin-top: 6px;
}
#Dispo_NavBar.gm-nav .dropdown-menu .dropdown-item {
  color: var(--gl-soft);
  font-size: 15px;
  font-weight: 500;
  padding: 8px 12px;
  border-radius: 6px;
}
#Dispo_NavBar.gm-nav .dropdown-menu .dropdown-item:hover,
#Dispo_NavBar.gm-nav .dropdown-menu .dropdown-item:focus {
  background: rgba(242, 194, 48, 0.08);
  color: #FFFFFF;
}
#Dispo_NavBar.gm-nav .dropdown-menu .dropdown-item i { color: var(--gl-accent); width: 18px; text-align: center; }

/* Separator before the personal menu */
#Dispo_NavBar.gm-nav .navbar-nav > .nav-item > .dropdown-divider { border-top-color: var(--gl-line); opacity: 1; }

#Dispo_NavBar.gm-nav .gm-toggler { color: var(--gl-text); border: 1px solid var(--gl-edge); border-radius: 6px; padding: 8px 12px; font-size: 18px; }
#Dispo_NavBar.gm-nav .gm-toggler:focus { box-shadow: 0 0 0 3px rgba(242, 194, 48, 0.25); }

/* Wide screens: one row like the landing header, no icons on the top level */
@media (min-width: 1200px) {
  #Dispo_NavBar.gm-nav .navbar-nav { align-items: center; }
  #Dispo_NavBar.gm-nav .navbar-nav > .nav-item > .nav-link > i { display: none; }
  #Dispo_NavBar.gm-nav .navbar-nav > .nav-item > .dropdown-divider { width: 1px; height: 24px; margin: 0 6px; border: 0; background: var(--gl-line); }
  #Dispo_NavBar.gm-nav .dropdown-menu { position: absolute; }
}
/* Not enough room for the whole wordmark next to a full member menu */
@media (min-width: 1200px) and (max-width: 1499px) {
  .gm-brand-text { display: none; }
}
/* Collapsed menu */
@media (max-width: 1199px) {
  #Dispo_NavBar.gm-nav .navbar-collapse { padding: 8px 0 12px; }
  #Dispo_NavBar.gm-nav .navbar-nav > .nav-item > .nav-link { padding: 10px 4px; }
  #Dispo_NavBar.gm-nav .dropdown-menu { margin: 0 0 6px; }
}
@media (max-width: 419px) {
  .gm-brand-sub { display: none; }
  #Dispo_NavBar.gm-nav .gm-brand-name { font-size: 18px; }
}

/* ---------------------------------------------------------------- Footer */
#footer.gm-footer {
  position: absolute;
  bottom: 0;
  width: 100%;
  height: auto;
  padding: 14px 3%;
  border-top: 1px solid var(--gl-gold-line);
  background: rgba(10, 14, 60, 0.94);
  font-family: var(--gl-sans);
  font-size: 14px;
  color: var(--gl-muted);
}
/* Discord | (c) GC Airlines | attributions; the copyright comes first in the markup so phones show it on top */
.gm-footer-row { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 6px 20px; }
.gm-footer-left { grid-column: 1; grid-row: 1; justify-self: start; }
.gm-footer-copy { grid-column: 2; grid-row: 1; justify-self: center; white-space: nowrap; }
.gm-footer-right { grid-column: 3; grid-row: 1; justify-self: end; text-align: right; }
#footer.gm-footer a { color: var(--gl-text); font-weight: 600; text-decoration: none; }
#footer.gm-footer a:hover { color: var(--gl-accent); }
.gm-footer-sep { margin: 0 8px; color: var(--gl-edge); }
#page-contents { padding-bottom: 72px; }
@media (max-width: 991px) {
  .gm-footer-row { grid-template-columns: minmax(0, 1fr); justify-items: center; text-align: center; }
  .gm-footer-left, .gm-footer-copy, .gm-footer-right { grid-column: 1; grid-row: auto; justify-self: center; text-align: center; }
  .gm-footer-left:empty { display: none; }
  #page-contents { padding-bottom: 112px; }
}
@media (max-width: 767px) {
  #page-contents { padding-bottom: 132px; }
}

/* ---------------------------------------------------------------- Landing page for members */
/* gca2/landing/home.blade.php shown to a logged-in member: member navbar and footer around the landing content
   (landing.css loads after this file, hence "html body" for the extra specificity) */
html body:has(.gca2-landing) #page-contents { padding-bottom: 56px !important; }
body:has(.gca2-landing) #Dispo_NavBar.gm-nav { margin-bottom: 0; position: relative; z-index: 3; }
@media (max-width: 767px) {
  html body:has(.gca2-landing) #page-contents { padding-bottom: 88px !important; }
}

/* ---------------------------------------------------------------- Maps */
/* DBasic::Map without a Carto key (gca2/modules/DisposableBasic/widgets/map.blade.php): OSM tiles turned navy, like the guest live map */
.gca2-navy-tiles { filter: invert(1) hue-rotate(195deg) saturate(0.55) brightness(0.8) contrast(0.95); }
.leaflet-container:has(.gca2-navy-tiles) { background: #0C1042; }

/* ---------------------------------------------------------------- Dashboard page */
body:has(.gca2-dash) {
  background: var(--gl-navy) !important;
  color: var(--gl-text) !important;
}
body:has(.gca2-dash) #page-contents {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 0 72px !important;
}
body:has(.gca2-dash) #Dispo_NavBar.gm-nav { margin-bottom: 0; }
@media (max-width: 767px) {
  body:has(.gca2-dash) #page-contents { padding-bottom: 104px !important; }
}

.gca2-dash {
  position: relative;
  font-family: var(--gl-sans);
  font-size: 15px;
  line-height: 1.4;
  color: var(--gl-text);
  padding-bottom: 40px;
}
.gca2-dash *, .gca2-dash *::before, .gca2-dash *::after { box-sizing: border-box; }
.gca2-dash a { color: var(--gl-text); font-weight: 600; text-decoration: none; }
.gca2-dash a:hover { color: var(--gl-accent); }
.gca2-dash b, .gca2-dash strong { color: #FFFFFF; font-weight: 600; }

/* Background still behind the hero (shared partial gca2/landing/background.blade.php).
   z-index 0 + positioned content without z-index: no stacking contexts, so widget modals still sit above their backdrop */
.gca2-dash .gl-bg {
  position: absolute; top: 0; left: 0; right: 0; height: 900px; z-index: 0;
  background-size: cover; background-position: center 62%; /* the landing still: keep the runway in view */
}
.gca2-dash .gl-bg-tint { position: absolute; inset: 0; background: rgba(10, 14, 70, 0.38); }
.gca2-dash .gl-bg-fade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,10,43,0.55) 0%, rgba(7,10,43,0.15) 30%, rgba(7,10,43,0.45) 65%, var(--gl-navy) 100%); }

.gd-wrap { max-width: 1360px; margin: 0 auto; }

/* Flash messages (prices from Check Price, jumpseat/transfer results...) above the hero, as a clear banner */
body:has(.gca2-dash) #page-contents > .alert {
  position: relative; z-index: 1;
  max-width: 1360px; margin: 20px auto 0 !important; width: calc(100% - 6%);
  padding: 16px 20px 16px 52px !important;
  border: 1px solid var(--gl-line); border-left: 4px solid var(--gl-accent); border-radius: 10px;
  background: #0C1042; color: var(--gl-text);
  font-family: var(--gl-sans); font-size: 17px; font-weight: 600 !important; line-height: 1.4;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.35);
}
body:has(.gca2-dash) #page-contents > .alert::before {
  content: "i"; position: absolute; left: 18px; top: 50%; transform: translateY(-50%);
  width: 22px; height: 22px; border-radius: 50%; background: var(--gl-accent); color: #0A0E3C;
  font-family: var(--gl-mono); font-size: 13px; font-weight: 600; line-height: 22px; text-align: center;
}
body:has(.gca2-dash) #page-contents > .alert-success { border-left-color: var(--gl-green); }
body:has(.gca2-dash) #page-contents > .alert-success::before { content: "\2713"; background: var(--gl-green); }
body:has(.gca2-dash) #page-contents > .alert-danger { border-left-color: #FF6B6B; }
body:has(.gca2-dash) #page-contents > .alert-danger::before { content: "!"; background: #FF6B6B; }
body:has(.gca2-dash) #page-contents > .alert .close { float: right; background: none; border: 0; color: var(--gl-muted); font-size: 22px; line-height: 1; margin: -2px -6px 0 12px; }
@media (max-width: 767px) {
  body:has(.gca2-dash) #page-contents > .alert { width: calc(100% - 32px); font-size: 15px; }
}
.gd-section { position: relative; padding: 0 3%; }

.gd-alert {
  position: relative; margin: 20px auto 0; max-width: 1360px;
  border: 1px solid var(--gl-gold-line); border-radius: 10px; background: rgba(242, 194, 48, 0.1);
  color: var(--gl-accent); font-weight: 600; padding: 12px 16px;
}

/* Hero */
.gd-hero { position: relative; padding: 44px 3% 28px; }
.gd-hero-row { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 32px; }
.gd-hero-text { flex: 1 1 520px; min-width: 0; display: flex; flex-direction: column; gap: 14px; }
.gd-kicker { font-family: var(--gl-mono); font-size: 13px; letter-spacing: 0.18em; color: var(--gl-accent); text-transform: uppercase; }
.gca2-dash .gd-title { margin: 0; font-family: var(--gl-cond); font-weight: 700; font-size: clamp(40px, 4.6vw, 72px); line-height: 0.95; text-transform: uppercase; color: var(--gl-text); overflow-wrap: anywhere; }
.gd-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 22px; font-size: 16px; color: var(--gl-soft); }
.gd-meta-item { display: inline-flex; align-items: center; gap: 8px; }
.gd-meta-item i { color: var(--gl-accent); }
.gd-meta-item img { height: 22px; width: auto; }

/* Rank progress (NextRank widget without its card) */
.gd-progress { max-width: 600px; font-size: 14px; color: var(--gl-soft); }
.gca2-dash .gd-progress .progress { height: 16px; margin: 8px 0 0 !important; border-radius: 99px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.gca2-dash .gd-progress .progress-bar {
  background-image: none; color: #0A0E3C;
  font-family: var(--gl-mono); font-size: 11px; font-weight: 600;
}
.gca2-dash .gd-progress .progress-bar.bg-warning { background-color: var(--gl-accent) !important; }
.gca2-dash .gd-progress .progress-bar.bg-success { background-color: var(--gl-green) !important; }

/* Quick actions */
.gd-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.gca2-dash .gd-btn {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px;
  border: 1px solid var(--gl-edge); border-radius: 8px; background: rgba(10, 14, 60, 0.55);
  color: var(--gl-text); font-weight: 600; font-size: 15px; text-decoration: none;
}
.gca2-dash .gd-btn:hover { border-color: var(--gl-accent); color: #FFFFFF; }
.gca2-dash .gd-btn-accent { background: var(--gl-accent); border-color: var(--gl-accent); color: #0A0E3C; }
.gca2-dash .gd-btn-accent:hover { color: #0A0E3C; filter: brightness(1.08); }
.gca2-dash .gd-btn-blue { background: #1F3BB3; border-color: #3B5BDB; color: #FFFFFF; }
.gca2-dash .gd-btn-blue:hover { background: #2747C9; border-color: var(--gl-accent); color: #FFFFFF; }
/* Flights page: "Search by map" box (.gd-loc look) in the hero above the search card, with the DBasic Map widget buttons */
@media (min-width: 1200px) {
  .gf-hero-row { display: grid; grid-template-columns: minmax(0, 3fr) minmax(280px, 1fr); gap: 0 20px; align-items: end; } /* = .gf-grid */
}
.gca2-dash .gf-mapbox { flex: 0 1 380px; min-width: 0; gap: 10px; }
.gca2-dash .gf-mapbox:not(:has(.btn)) { display: none; }
/* no box around the map buttons (Flights, Fleet): just the buttons, bottoms in line with the buttons on the left */
.gca2-dash .gd-loc.gf-mapbox { padding: 0; border: 0; border-radius: 0; background: none; }
.gca2-dash .gd-maps.gf-mapbox-btns { margin: 0; gap: 10px; }
.gca2-dash .gd-maps.gf-mapbox-btns .btn {
  min-height: 44px; padding: 0 12px !important; border-radius: 8px; font-size: 15px;
  background: #1F3BB3 !important; border: 1px solid #3B5BDB; color: #FFFFFF !important;
}
.gca2-dash .gd-maps.gf-mapbox-btns .btn:hover { background: #2747C9 !important; border-color: var(--gl-accent); }
.gca2-dash .gf-mapbox-btns .btn::before { content: "\f279"; font-family: "Font Awesome 6 Pro", "Font Awesome 6 Free", "Font Awesome 5 Free"; font-weight: 900; margin-right: 8px; }
.gca2-dash .gf-js-body .card { margin-bottom: 0 !important; }
.gca2-dash .gf-js-body .card-header { display: none; } /* the dialog has the title already */
.gca2-dash .gf-js-body p { color: var(--gl-soft); }
/* select2 dropdowns are attached to <body>: keep them above an open dialog */
.select2-container.select2-container--open { z-index: 1065; }
.gca2-dash .gd-btn:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 2px; }

/* Current location */
.gd-loc {
  flex: 0 1 380px; min-width: 260px;
  display: flex; flex-direction: column; gap: 6px;
  padding: 20px 22px; border: 1px solid rgba(242, 194, 48, 0.4); border-radius: 14px;
  background: rgba(10, 14, 60, 0.72);
}
.gd-label { font-family: var(--gl-mono); font-size: 12px; letter-spacing: 0.16em; color: var(--gl-muted); text-transform: uppercase; }
.gd-loc-icao { font-family: var(--gl-mono); font-weight: 600; font-size: 44px; line-height: 1.05; color: var(--gl-green); }
.gca2-dash a.gd-loc-main { display: flex; flex-direction: column; gap: inherit; color: inherit; text-decoration: none; }
.gca2-dash a.gd-loc-main:hover .gd-loc-icao, .gca2-dash a.gd-loc-main:focus-visible .gd-loc-icao { color: var(--gl-accent); }
.gca2-dash a.gd-loc-main:hover .gd-loc-name { color: #FFFFFF; }
.gd-loc-name { font-size: 16px; color: var(--gl-soft); }
.gd-loc-links { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 8px; font-size: 14px; }
.gd-loc-links a i { color: var(--gl-accent); margin-right: 6px; }
.gd-maps.gd-loc-map { margin: 10px 0 0; } /* Flights Map button at the bottom of the Current Airport box */
/* Dashboard: the Current Airport box takes the side column of the widget grid below (2fr/1fr, 20px gap), so it is exactly as wide as Weather */
@media (min-width: 992px) {
  .gd-hero-row.gd-hero-dash { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 0 20px; align-items: end; } /* = .gd-grid */
  .gd-hero-dash > .gd-loc { min-width: 0; }
}
@media (max-width: 991px) {
  .gd-hero-dash > .gd-loc { flex-basis: 100%; } /* one column below: full width like Weather */
}
/* Dashboard quick actions and the flights page hero buttons: equal-width buttons; as many per row as fit (2 on phones) */
.gd-hero-dash .gd-actions, .gd-actions.gd-actions-even { display: grid; grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); }
.gca2-dash .gd-hero-dash .gd-actions .gd-btn, .gca2-dash .gd-actions-even .gd-btn { justify-content: center; padding: 0 12px; white-space: nowrap; }
@media (max-width: 767px) {
  .gd-hero-dash .gd-actions, .gd-actions.gd-actions-even { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* Readouts (same look as the landing page key statistics) */
.gd-readouts-section { padding-bottom: 28px; }
.gd-readouts { display: flex; flex-wrap: wrap; gap: 1px; background: var(--gl-gold-line); border: 1px solid var(--gl-gold-line); border-radius: 12px; overflow: hidden; }
/* No min-width: a tile is never narrower than its value, so tiles wrap to a new row before a value would break */
.gd-readout { flex: 1 1 170px; background: rgba(9, 12, 52, 0.94); padding: 16px 18px; display: flex; flex-direction: column; gap: 6px; }
.gd-readout-wide { flex: 1.5 1 250px; }
.gca2-dash .gd-readout-value a { color: inherit; }
.gca2-dash .gd-readout-value a:hover { color: var(--gl-accent); }
.gd-readout .gd-label { white-space: nowrap; letter-spacing: 0.12em; }
.gd-readout-value { font-family: var(--gl-mono); font-weight: 600; font-size: clamp(18px, 1.5vw, 22px); line-height: 1.2; color: var(--gl-green); white-space: nowrap; }

/* Widget grid */
.gd-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 0 20px; align-items: start; } /* 20px like every other gap */
.gd-col { min-width: 0; }
.gd-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; }
.gd-trio { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 20px; }
.gd-maps { display: flex; gap: 12px; margin-bottom: 20px; }
.gd-maps > div { flex: 1 1 0; min-width: 0; }
/* A map widget with nothing to show renders no button: drop its slot so the other button takes the full width */
.gd-maps > div:not(:has(.btn)) { display: none; }
.gd-maps:not(:has(.btn)) { display: none; }
@media (max-width: 1199px) {
  .gd-trio { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 991px) {
  .gd-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 767px) {
  .gd-hero, .gd-section { padding-left: 16px; padding-right: 16px; }
  .gd-hero { padding-top: 28px; }
  .gd-loc { flex-basis: 100%; }
  .gd-pair { grid-template-columns: minmax(0, 1fr); }
  .gd-readout { flex-basis: 140px; padding: 14px 16px; }
  .gd-readout-value { font-size: 22px; }
}

/* ---------------------------------------------------------------- Widget cards on the dashboard */
.gca2-dash .card {
  background: var(--gl-panel);
  border: 1px solid var(--gl-line);
  border-radius: 12px;
  box-shadow: none;
  color: var(--gl-text);
  overflow: hidden;
}
.gca2-dash .card.mb-2 { margin-bottom: 20px !important; }
.gca2-dash .card .card-header {
  background: transparent;
  border-bottom: 1px solid var(--gl-line);
  padding: 12px 16px !important;
}
.gca2-dash .card .card-header h5 {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  margin: 0 !important;
  font-family: var(--gl-cond); font-weight: 600; font-size: 19px; letter-spacing: 0.1em; text-transform: uppercase;
  color: var(--gl-text);
}
.gca2-dash .card .card-header h5 i { font-size: 14px; color: var(--gl-accent); }
.gca2-dash .card .card-header h5 i[data-toggle] { cursor: pointer; }
/* Three leaderboards side by side: long titles ("Leader Board (Pilot) | October Flights") */
.gca2-dash .gd-trio .card .card-header h5 { font-size: 15px; letter-spacing: 0.06em; line-height: 1.25; }
.gca2-dash .gd-trio .card .card-header { min-height: 48px; display: flex; align-items: center; } /* same header height as the other cards */
.gca2-dash .gd-trio .card .card-header h5 { flex: 1 1 auto; }
.gca2-dash .card .card-body { color: var(--gl-text); }
.gca2-dash .card .card-body.p-1 { padding: 12px 16px !important; }
.gca2-dash .card .card-body.p-2 { padding: 14px 16px !important; }
.gca2-dash .card .card-footer {
  background: transparent;
  border-top: 1px solid var(--gl-line-soft);
  padding: 8px 16px !important;
  font-family: var(--gl-mono); font-size: 12px; font-weight: 500 !important;
  color: var(--gl-muted);
}
.gca2-dash .card .card-footer a { color: var(--gl-text); }
.gca2-dash .card hr { border: 0; height: 1px; background-color: var(--gl-line); opacity: 1; margin: 10px 0 !important; }
.gca2-dash .card .card-title { color: var(--gl-text); }

/* News (latestNews widget) */
.gca2-dash .card .card-body h5 { font-family: var(--gl-cond); font-weight: 600; font-size: 20px; letter-spacing: 0.04em; color: #FFFFFF; margin: 4px 0 8px !important; }
.gca2-dash .card .card-body p:last-child { margin-bottom: 0; }
.gca2-dash .card .card-body .text-end.small { color: var(--gl-muted); font-size: 13px; margin-top: 6px; }

/* Tables */
.gca2-dash .table {
  --bs-table-bg: transparent;
  --bs-table-accent-bg: transparent;
  --bs-table-striped-bg: rgba(255, 255, 255, 0.025);
  --bs-table-striped-color: var(--gl-text);
  --bs-table-hover-bg: rgba(242, 194, 48, 0.06);
  --bs-table-hover-color: var(--gl-text);
  color: var(--gl-text);
  font-size: 14px;
  font-weight: 400;
  margin-bottom: 0;
}
.gca2-dash .table > :not(caption) > * > * { padding: 9px 10px; border-bottom: 1px solid var(--gl-line-soft); }
.gca2-dash .table > :not(caption) > * > *:first-child { padding-left: 16px; }
.gca2-dash .table > :not(caption) > * > *:last-child { padding-right: 16px; }
.gca2-dash .table > :not(caption) > *:last-child > *:last-child > * { border-bottom: 0; }
.gca2-dash .table th {
  font-family: var(--gl-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--gl-muted);
}

/* Buttons inside widgets */
.gca2-dash .card .btn,
.gca2-dash .gd-maps .btn {
  font-family: var(--gl-sans); font-weight: 600; font-size: 14px;
  padding: 6px 14px !important; border-radius: 6px;
  border: 1px solid var(--gl-edge);
  background: rgba(10, 14, 60, 0.6) !important;
  color: var(--gl-text) !important;
}
.gca2-dash .card .btn:hover,
.gca2-dash .gd-maps .btn:hover { border-color: var(--gl-accent); color: #FFFFFF !important; }
.gca2-dash .card .btn.bg-success,
.gca2-dash .card .btn.btn-success {
  background: var(--gl-accent) !important; border-color: var(--gl-accent); color: #0A0E3C !important;
}
.gca2-dash .card .btn.bg-success:hover,
.gca2-dash .card .btn.btn-success:hover { filter: brightness(1.08); color: #0A0E3C !important; }
.gca2-dash .gd-maps .btn { width: 100%; min-height: 44px; }
.gca2-dash .gd-maps .row { margin: 0; }
.gca2-dash .gd-maps .col { padding: 0; }
/* Fleet Map is a link to /fleet-map since 2026-10-30: centre its text like the <button>s */
.gca2-dash .gd-maps a.btn { display: inline-flex; align-items: center; justify-content: center; text-decoration: none; }

/* Form fields inside widgets (airport search, aircraft select) */
.gca2-dash .card .form-control,
.gca2-dash .card select {
  background-color: rgba(7, 10, 43, 0.8);
  border: 1px solid var(--gl-edge);
  border-radius: 8px;
  color: var(--gl-text);
}
.gca2-dash .select2-container--default .select2-selection--single {
  height: 40px; background-color: rgba(7, 10, 43, 0.8); border: 1px solid var(--gl-edge); border-radius: 8px;
}
.gca2-dash .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 38px; color: var(--gl-text); padding-left: 12px; }
.gca2-dash .select2-container--default .select2-selection--single .select2-selection__placeholder { color: var(--gl-muted); }
.gca2-dash .select2-container--default .select2-selection--single .select2-selection__arrow { height: 38px; }
.gca2-dash .select2-container--default .select2-selection--single .select2-selection__arrow b { border-top-color: var(--gl-muted); }

/* Select2 dropdowns are appended to <body>, outside .gca2-dash: without this they inherit the page's light text on a white list */
body:has(.gca2-dash) .select2-dropdown { background: #0C1042; border: 1px solid var(--gl-edge); color: var(--gl-text); font-family: var(--gl-sans); }
body:has(.gca2-dash) .select2-search--dropdown .select2-search__field { background: rgba(7, 10, 43, 0.9); border: 1px solid var(--gl-edge); border-radius: 6px; color: var(--gl-text) !important; }
body:has(.gca2-dash) .select2-results__option { color: var(--gl-text) !important; padding: 7px 12px; }
body:has(.gca2-dash) .select2-results__message { color: var(--gl-muted) !important; }
body:has(.gca2-dash) .select2-container--default .select2-results__option--highlighted[aria-selected],
body:has(.gca2-dash) .select2-container--default .select2-results__option--highlighted.select2-results__option--selectable { background: rgba(242, 194, 48, 0.16); color: #FFFFFF !important; }
body:has(.gca2-dash) .select2-container--default .select2-results__option[aria-selected=true],
body:has(.gca2-dash) .select2-container--default .select2-results__option--selected { background: rgba(255, 255, 255, 0.08); }

/* Progress bars (tour progress) */
.gca2-dash .card .progress { background: rgba(255, 255, 255, 0.08); border-radius: 99px; }

/* Scrollable widget tables (active bookings etc.): dark scrollbar */
.gca2-dash .table-responsive, .gca2-dash .overflow-auto { scrollbar-color: var(--gl-edge) transparent; scrollbar-width: thin; }
.gca2-dash .table-responsive::-webkit-scrollbar, .gca2-dash .overflow-auto::-webkit-scrollbar { height: 8px; width: 8px; background: transparent; }
.gca2-dash .table-responsive::-webkit-scrollbar-thumb, .gca2-dash .overflow-auto::-webkit-scrollbar-thumb { background: var(--gl-edge); border-radius: 99px; }

/* Map modals (DBasic::Map) */
.gca2-dash .modal-content { background: #0C1042; border: 1px solid var(--gl-line); border-radius: 12px; overflow: hidden; color: var(--gl-text); }
.gca2-dash .modal .modal-header,
.gca2-dash .modal .modal-footer { background: #0C1042; color: var(--gl-muted); padding: 10px 16px !important; }
.gca2-dash .modal .modal-header .card-title { font-family: var(--gl-cond); font-weight: 600; font-size: 19px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gl-text); }
.gca2-dash .modal .modal-header .close i { font-size: 20px; color: var(--gl-text); cursor: pointer; }
.gca2-dash .modal .modal-footer { font-family: var(--gl-mono); font-size: 12px; }

/* Weather embed (metar-taf.com) */
.gca2-dash .gd-wx .card-header { padding: 14px 16px 4px !important; border-bottom: 0; }
.gca2-dash .gd-wx .card-header.gd-wx-title { padding: 12px 16px !important; border-bottom: 1px solid var(--gl-line-soft); }
.gca2-dash .gd-wx .card-header + .card-header { padding: 8px 16px !important; border-top: 1px solid var(--gl-line-soft); font-family: var(--gl-mono); font-size: 12px; }
.gca2-dash .gd-wx .card-header a { color: var(--gl-text); font-weight: 500; }

/* Last PIREP */
.gd-route { display: flex; align-items: center; gap: 18px; padding: 18px 16px 6px; }
.gca2-dash .gd-route-apt { display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 0 1 auto; }
.gd-route-arr { text-align: right; }
.gd-route-icao { font-family: var(--gl-mono); font-weight: 600; font-size: 32px; line-height: 1.1; color: var(--gl-green); }
.gd-route-name { font-size: 14px; font-weight: 500; color: var(--gl-soft); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gd-route-line { flex: 1 1 60px; display: flex; align-items: center; gap: 10px; color: var(--gl-accent); min-width: 60px; }
.gd-route-line::before, .gd-route-line::after { content: ""; flex: 1; border-top: 1px dashed var(--gl-edge); }
.gd-facts { display: flex; flex-wrap: wrap; gap: 14px 28px; margin: 0; padding: 14px 16px 16px; }
.gd-facts > div { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.gd-facts dt { font-family: var(--gl-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gl-muted); }
.gd-facts dd { margin: 0; font-family: var(--gl-mono); font-weight: 500; font-size: 15px; }
.gd-comments { list-style: none; margin: 0; padding: 12px 16px; border-top: 1px solid var(--gl-line-soft); font-size: 14px; color: var(--gl-soft); }
.gd-comments li + li { margin-top: 6px; }
.gd-comments li::before { content: "›"; color: var(--gl-accent); margin-right: 8px; }
@media (max-width: 575px) {
  .gd-route { gap: 10px; }
  .gd-route-icao { font-size: 24px; }
  .gd-route-line { min-width: 30px; }
}

/* ---------------------------------------------------------------- Roster and pilot profile (.gp-*)
   gca2/users/index + table.blade.php and gca2/profile/index.blade.php. They reuse the dashboard wrapper
   (.gca2-dash: navy page, hero, readouts, widget cards), so only what is specific to them is here. */
.gp-hero-compact { padding-bottom: 20px; }
.gp-hero-compact .gd-title { font-size: clamp(40px, 4vw, 64px); }
.gp-hero-compact .gd-meta { gap: 12px 22px; }

/* Roster table */
.gca2-dash .gp-roster > :not(caption) > * > * { padding-top: 8px; padding-bottom: 8px; }
.gca2-dash .gp-roster th a { color: var(--gl-muted); font-weight: 500; }
.gca2-dash .gp-roster th a:hover { color: var(--gl-accent); }
.gp-avatar { display: inline-block; width: 44px; height: 44px; border-radius: 50%; overflow: hidden; background: #1F3BB3; border: 1px solid var(--gl-edge); vertical-align: middle; }
.gp-avatar img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gca2-dash .gp-name { font-size: 16px; }
.gca2-dash .gp-apt { display: inline-flex; flex-direction: column; line-height: 1.25; max-width: 240px; }
.gp-apt-icao { font-family: var(--gl-mono); font-weight: 600; font-size: 14px; }
.gp-apt-name { font-size: 12px; font-weight: 500; color: var(--gl-muted); overflow: hidden; text-overflow: ellipsis; }
.gp-logo { max-height: 28px; width: auto; border-radius: 4px; }
.gp-rank { max-height: 30px; width: auto; }
.gp-mono { font-family: var(--gl-mono); }
.gp-awards { font-family: var(--gl-mono); color: var(--gl-accent); white-space: nowrap; }
/* Pilots that are not active (DT_UserState row classes): dimmed, with a coloured edge */
.gca2-dash .table > tbody > tr[class*="table-"] { --bs-table-bg: transparent; --bs-table-accent-bg: transparent; --bs-table-striped-bg: rgba(255, 255, 255, 0.025); --bs-table-striped-color: var(--gl-muted); color: var(--gl-muted); }
.gca2-dash .table > tbody > tr[class*="table-"] > :first-child { box-shadow: inset 3px 0 0 var(--gl-edge); }
.gca2-dash .table > tbody > tr.table-warning > :first-child { box-shadow: inset 3px 0 0 var(--gl-accent); }
.gca2-dash .table > tbody > tr.table-danger > :first-child { box-shadow: inset 3px 0 0 #FF6B6B; }
.gca2-dash .table > tbody > tr[class*="table-"] img { opacity: 0.6; }

/* Pagination */
.gca2-dash .pagination { gap: 6px; margin: 4px 0 24px; flex-wrap: wrap; }
.gca2-dash .pagination .page-link {
  background: var(--gl-panel); border: 1px solid var(--gl-line); border-radius: 6px !important;
  color: var(--gl-text); font-family: var(--gl-mono); font-size: 13px; font-weight: 500; min-width: 36px; text-align: center;
}
.gca2-dash .pagination .page-link:hover { border-color: var(--gl-accent); color: #FFFFFF; }
.gca2-dash .pagination .active .page-link { background: var(--gl-accent); border-color: var(--gl-accent); color: #0A0E3C; }
.gca2-dash .pagination .disabled .page-link { background: transparent; color: var(--gl-edge); }
/* Disposable's pagination views add .pag-items / .pag-items-curr with !important colours */
.gca2-dash .pagination .pag-items, .gca2-dash .pagination .page-link.pag-items { background-color: var(--gl-panel) !important; border-color: var(--gl-line) !important; color: var(--gl-text) !important; }
.gca2-dash .pagination li.pag-items { background-color: transparent !important; border: 0 !important; }
.gca2-dash .pagination .page-link.pag-items:hover { border-color: var(--gl-accent) !important; }
.gca2-dash .pagination .pag-items-curr, .gca2-dash .pagination .page-link.pag-items-curr { background-color: var(--gl-accent) !important; border-color: var(--gl-accent) !important; color: #0A0E3C !important; }
.gca2-dash .pagination li.pag-items-curr { background-color: transparent !important; border: 0 !important; }
.gca2-dash .pagination .disabled .page-link.pag-items { background-color: transparent !important; color: var(--gl-edge) !important; }

/* Profile hero */
.gp-pilot { flex: 1 1 560px; min-width: 0; display: flex; align-items: center; gap: 28px; }
.gp-photo { flex: 0 0 auto; width: 148px; height: 148px; border-radius: 16px; overflow: hidden; border: 1px solid rgba(242, 194, 48, 0.5); background: #1F3BB3; }
.gp-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gca2-dash .gp-flag { font-size: 0.42em; vertical-align: 0.35em; margin-left: 12px; border-radius: 3px; }
.gp-meta-small { font-size: 14px; gap: 8px 18px; }
.gca2-dash .gp-chip { font-family: var(--gl-mono); font-size: 12px; font-weight: 500; padding: 4px 10px; border: 1px solid var(--gl-edge); border-radius: 99px; color: var(--gl-text); }
.gca2-dash .gp-chip:hover { border-color: var(--gl-accent); }
.gca2-dash .gp-meta-small .badge { font-family: var(--gl-mono); font-size: 11px; }
.gp-account { gap: 10px; }
.gp-secret { font-family: var(--gl-mono); font-size: 13px; color: var(--gl-soft); overflow-wrap: anywhere; }
.gp-secret i { color: var(--gl-accent); cursor: pointer; }
.gp-account .gd-actions { margin-top: 4px; gap: 8px; }
.gca2-dash .gp-account .gd-btn { min-height: 38px; padding: 0 14px; font-size: 14px; }
.gp-account .gp-account-map { margin: 0; }
@media (max-width: 767px) {
  .gp-pilot { flex-direction: column; align-items: flex-start; gap: 18px; }
  .gp-pilot .gd-hero-text { flex: 0 0 auto; width: 100%; } /* in a column, the 520px flex-basis would become height */
  .gp-photo { width: 112px; height: 112px; }
}

/* PersonalStats / JournalDetails cards shown as readout tiles */
.gp-tiles { display: flex; flex-wrap: wrap; gap: 1px; background: var(--gl-line); border: 1px solid var(--gl-line); border-radius: 12px; overflow: hidden; }
.gca2-dash .gp-tiles > .card {
  flex: 1 1 calc(20% - 1px); margin: 0 !important; border: 0; border-radius: 0; background: rgba(9, 12, 52, 0.94);
  display: flex; flex-direction: column-reverse; justify-content: flex-end; text-align: left !important; padding: 16px 18px; gap: 6px;
}
.gca2-dash .gp-tiles > .card .card-body,
.gca2-dash .gp-tiles-rows .card .card-body { padding: 0 !important; font-family: var(--gl-mono); font-weight: 600; font-size: clamp(17px, 1.4vw, 20px); color: var(--gl-green); white-space: nowrap; }
.gca2-dash .gp-tiles > .card .card-footer,
.gca2-dash .gp-tiles-rows .card .card-footer { padding: 0 !important; border: 0; font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; white-space: nowrap; }
.gca2-dash .gp-tiles > .card .btn { margin: 0 !important; padding: 2px 10px !important; font-size: 12px; }
.gca2-dash .gp-tiles > .card table { font-size: 13px; }

/* Tabs */
.gp-tabs { display: flex; flex-wrap: wrap; gap: 4px; margin: 8px 0 20px; padding: 0; list-style: none; border-bottom: 1px solid var(--gl-line); }
.gca2-dash .gp-tabs .nav-link {
  background: transparent !important; border: 0; border-bottom: 2px solid transparent; border-radius: 0;
  margin-bottom: -1px; padding: 12px 16px;
  font-family: var(--gl-cond); font-weight: 600; font-size: 17px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gl-muted);
}
.gca2-dash .gp-tabs .nav-link:hover { color: #FFFFFF; }
.gca2-dash .gp-tabs .nav-link.active { color: var(--gl-text); border-bottom-color: var(--gl-accent); }
.gca2-dash .gp-tabs .nav-link:focus-visible { outline: 2px solid var(--gl-accent); outline-offset: -2px; }
.gp-tab-content { min-height: 120px; }
/* Statistics tab (stock profile/user_stats): small tiles, label above the value */
.gca2-dash .gp-tiles-rows .card { display: flex; flex-direction: column-reverse; gap: 4px; text-align: left !important; padding: 12px 14px; }
.gca2-dash .gp-tiles-rows .card.mb-2 { margin-bottom: 12px !important; }
.gca2-dash .gp-tiles-rows hr { border: 0; height: 1px; background-color: var(--gl-line); color: var(--gl-line); opacity: 1; margin: 8px 0 20px; }
/* Type ratings and awards tabs */
.gca2-dash .gp-tab-content .card-body img { max-width: 100%; }
.gca2-dash .gp-tab-content #awards .card-footer + .card-footer,
.gca2-dash .gp-tab-content #typeratings .card-footer { text-align: center; }
/* Pilot Challenge card first in the Awards tab (gca2/profile/user_awards.blade.php) */
.gca2-dash .gp-challenge { margin-bottom: 20px !important; padding: 20px; }
.gp-challenge-head { display: flex; align-items: center; gap: 18px; }
.gp-challenge-trophy { width: 64px; height: auto; flex: 0 0 auto; filter: drop-shadow(0 4px 10px rgba(0, 0, 0, 0.45)); }
.gp-challenge-kicker { font-family: var(--gl-mono); font-size: 11px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gl-accent); }
.gca2-dash .gp-challenge .gp-challenge-title { margin: 2px 0 4px; font-size: 22px; letter-spacing: 0.06em; text-transform: uppercase; color: #FFFFFF; }
.gp-challenge-count { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; color: var(--gl-text); font-weight: 600; }
.gp-challenge-holder { font-family: var(--gl-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: #0A0E3C; background: var(--gl-accent); border-radius: 4px; padding: 2px 8px; }
.gp-challenge-list { list-style: none; margin: 18px 0 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 8px 20px; }
.gp-challenge-list li { display: flex; flex-direction: column; padding: 8px 12px; border-left: 2px solid var(--gl-accent); background: rgba(7, 10, 43, 0.35); border-radius: 0 6px 6px 0; }
.gp-challenge-month { font-weight: 700; color: #FFFFFF; }
.gp-challenge-stats { font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted, var(--gl-text)); }

/* Tile widths per screen size (after the base .gp-tiles rules so they win) */
@media (min-width: 768px) and (max-width: 1199px) {
  .gca2-dash .gp-tiles > .card { flex-basis: calc(33.333% - 1px); }
}
@media (max-width: 767px) {
  .gca2-dash .gp-tiles > .card { flex-basis: calc(50% - 1px); padding: 14px 16px; }
}

/* ---------------------------------------------------------------- Forms (.gp-form: gca2/profile/edit.blade.php) */
.gp-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 20px; align-items: start; }
@media (max-width: 991px) { .gp-form-grid { grid-template-columns: minmax(0, 1fr); } }
.gca2-dash .gp-fields { display: flex; flex-direction: column; gap: 16px; padding: 18px 16px 20px !important; }
.gp-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gca2-dash .gp-field > label { font-family: var(--gl-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gl-muted); margin: 0; }
.gca2-dash .gp-field > label i { color: var(--gl-accent); cursor: help; }
.gp-required { color: #FF6B6B; margin-left: 4px; }
.gp-hint { display: block; font-family: var(--gl-sans); font-size: 13px; letter-spacing: 0; text-transform: none; color: var(--gl-muted); margin-top: 2px; }
.gp-inline { display: flex; align-items: center; gap: 10px; min-width: 0; }
.gp-inline .form-control { flex: 1 1 auto; min-width: 0; }
.gca2-dash .gp-inline .gd-btn { flex: 0 0 auto; min-height: 40px; font-size: 14px; white-space: nowrap; }
.gp-avatar-now { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; border: 1px solid var(--gl-edge); flex: 0 0 auto; }
.gca2-dash .gp-fields .form-control { min-height: 40px; font-size: 15px; }
.gca2-dash .gp-fields .form-control:focus { background-color: rgba(7, 10, 43, 0.9); border-color: var(--gl-accent); color: var(--gl-text); box-shadow: 0 0 0 3px rgba(242, 194, 48, 0.2); }
.gca2-dash .gp-fields .form-control[readonly], .gca2-dash .gp-fields .form-control:disabled { color: var(--gl-muted); background-color: rgba(7, 10, 43, 0.5); }
.gca2-dash .gp-fields input[type="file"].form-control { padding: 7px 10px; }
.gca2-dash .gp-fields input[type="file"]::file-selector-button { background: rgba(10, 14, 60, 0.9); color: var(--gl-text); border: 0; border-right: 1px solid var(--gl-edge); margin: -7px 12px -7px -10px; padding: 8px 14px; font-family: var(--gl-sans); font-weight: 600; }
.gca2-dash .gp-fields .select2-container--default.select2-container--disabled .select2-selection--single { background-color: rgba(7, 10, 43, 0.5); }
.gca2-dash .gp-fields .select2-container--default.select2-container--disabled .select2-selection__rendered { color: var(--gl-muted); }
.gp-check { flex-direction: row; align-items: flex-start; gap: 12px; padding-top: 4px; }
.gca2-dash .gp-check .form-check-input { width: 20px; height: 20px; margin: 2px 0 0; flex: 0 0 auto; background-color: transparent; border-color: var(--gl-edge); cursor: pointer; }
.gca2-dash .gp-check .form-check-input:checked { background-color: var(--gl-accent); border-color: var(--gl-accent); }
.gca2-dash .gp-check > label { font-family: var(--gl-sans); font-size: 15px; font-weight: 600; letter-spacing: 0; text-transform: none; color: var(--gl-text); cursor: pointer; }
.gp-errors { margin-bottom: 20px; padding: 14px 18px; border: 1px solid var(--gl-line); border-left: 4px solid #FF6B6B; border-radius: 10px; background: #0C1042; color: var(--gl-text); font-weight: 600; }
.gp-errors div + div { margin-top: 4px; }
.gp-form-actions { display: flex; justify-content: flex-end; gap: 10px; margin: 4px 0 20px; }

/* ---------------------------------------------------------------- Airlines (.ga-*: gca2/modules/DisposableBasic/airlines/index.blade.php) */
.ga-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 460px), 1fr)); gap: 20px; margin-bottom: 20px; }
.gca2-dash .ga-card { margin: 0; display: flex; flex-direction: column; }
.ga-head { display: flex; align-items: center; gap: 20px; padding: 22px 22px 18px; }
.gca2-dash .ga-logo { flex: 0 0 auto; width: 96px; height: 96px; border-radius: 14px; background: #FFFFFF; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 8px; }
.ga-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ga-logo span { font-family: var(--gl-mono); font-weight: 600; font-size: 22px; color: #0A0E3C; }
.ga-title { min-width: 0; display: flex; flex-direction: column; gap: 10px; }
.gca2-dash .ga-title h2 { margin: 0; font-family: var(--gl-cond); font-weight: 700; font-size: clamp(26px, 2.4vw, 34px); line-height: 1; text-transform: uppercase; letter-spacing: 0.02em; }
.ga-codes { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; }
.ga-country { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; color: var(--gl-soft); }
.ga-country img { height: 16px; width: auto; border-radius: 2px; }
.ga-stats { display: flex; flex-wrap: wrap; gap: 1px; background: var(--gl-line); border-top: 1px solid var(--gl-line); border-bottom: 1px solid var(--gl-line); }
.ga-stats > div { flex: 1 1 90px; display: flex; flex-direction: column; gap: 6px; padding: 14px 16px; background: rgba(9, 12, 52, 0.94); }
.ga-stats .gd-label { font-size: 11px; letter-spacing: 0.12em; }
.ga-num { font-family: var(--gl-mono); font-weight: 600; font-size: 22px; color: var(--gl-green); }
.ga-foot { display: flex; justify-content: flex-end; padding: 14px 16px; margin-top: auto; }
.gca2-dash .ga-foot .gd-btn { min-height: 40px; font-size: 14px; }
@media (max-width: 575px) {
  .ga-head { flex-direction: column; align-items: flex-start; }
}

/* ---------------------------------------------------------------- Ranks (.gr-*: gca2/modules/DisposableBasic/ranks/index.blade.php) */
.gr-row {
  display: grid; grid-template-columns: 72px minmax(0, 2.2fr) repeat(3, minmax(0, 1fr)) minmax(0, 1.3fr);
  align-items: center; gap: 12px 16px; padding: 14px 18px;
}
.gr-headrow { padding-top: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--gl-line); }
.gr-headrow .gd-label { font-size: 11px; letter-spacing: 0.12em; }
.gr-item { border-bottom: 1px solid var(--gl-line-soft); }
.gr-item:last-child { border-bottom: 0; }
.gr-item > summary { list-style: none; cursor: pointer; }
.gr-item > summary::-webkit-details-marker { display: none; }
.gr-item[data-empty] > summary { cursor: default; }
.gr-item > summary:hover { background: rgba(242, 194, 48, 0.05); }
.gr-item > summary:focus-visible { outline: 2px solid var(--gl-accent); outline-offset: -2px; }
.gr-item[open] > summary { background: rgba(255, 255, 255, 0.03); }
.gr-img { display: flex; align-items: center; justify-content: center; }
.gr-img img { max-height: 34px; max-width: 72px; width: auto; }
.gr-name { font-family: var(--gl-cond); font-weight: 600; font-size: 21px; letter-spacing: 0.04em; text-transform: uppercase; display: flex; flex-wrap: wrap; align-items: center; gap: 6px 12px; }
.gr-you { font-family: var(--gl-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; padding: 3px 9px; border-radius: 99px; background: var(--gl-accent); color: #0A0E3C; }
.gr-mine > summary { box-shadow: inset 4px 0 0 var(--gl-accent); background: rgba(242, 194, 48, 0.07); }
.gr-cell { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gr-cell-label { display: none; font-family: var(--gl-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gl-muted); }
.gr-hours { font-family: var(--gl-mono); font-weight: 600; font-size: 18px; color: var(--gl-green); }
.gr-pay { font-family: var(--gl-mono); font-size: 15px; color: var(--gl-text); }
.gr-restrict { flex-direction: row; align-items: center; justify-content: space-between; gap: 10px; font-size: 14px; color: var(--gl-soft); }
.gr-chev { color: var(--gl-accent); transition: transform .2s ease; }
.gr-item[open] .gr-chev { transform: rotate(180deg); }
.gr-subfleets { display: flex; flex-wrap: wrap; gap: 8px; padding: 4px 18px 18px 106px; }
.gca2-dash .gr-subfleets .gp-chip { font-family: var(--gl-sans); font-size: 13px; font-weight: 500; }
@media (prefers-reduced-motion: reduce) { .gr-chev { transition: none; } }
@media (max-width: 991px) {
  .gr-headrow { display: none; }
  .gr-row { grid-template-columns: 56px repeat(3, minmax(0, 1fr)); padding: 14px 16px; }
  .gr-name { grid-column: 2 / -1; }
  .gr-img { grid-row: span 2; }
  .gr-cell-label { display: block; }
  .gr-restrict { grid-column: 2 / -1; }
  .gr-subfleets { padding-left: 16px; }
}
@media (max-width: 575px) {
  .gr-row { grid-template-columns: 44px repeat(3, minmax(0, 1fr)); gap: 10px 12px; padding: 14px 14px; }
  .gr-name { font-size: 19px; }
  .gr-hours { font-size: 16px; }
  .gr-pay { font-size: 14px; }
  .gr-img img { max-width: 44px; }
}

/* ---------------------------------------------------------------- Awards (.gw-*: gca2/modules/DisposableBasic/awards/index.blade.php) */
.gw-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 20px; margin-bottom: 28px; }
.gca2-dash .gw-card { margin: 0; padding: 24px 20px 16px; display: flex; flex-direction: column; align-items: center; text-align: center; gap: 10px; }
.gw-badge { width: 128px; height: 128px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: rgba(7, 10, 43, 0.6); border: 2px solid var(--gl-line); overflow: hidden; flex: 0 0 auto; }
.gw-badge img { max-width: 100%; max-height: 100%; object-fit: contain; }
.gw-badge i { font-size: 44px; color: var(--gl-accent); }
.gca2-dash .gw-name { margin: 6px 0 0; font-family: var(--gl-cond); font-weight: 600; font-size: 20px; letter-spacing: 0.04em; text-transform: uppercase; line-height: 1.1; color: var(--gl-text); }
.gw-desc {
  margin: 0; font-size: 14px; line-height: 1.45; color: var(--gl-soft); white-space: pre-line; overflow-wrap: anywhere; /* long links */
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
.gw-more { display: flex; flex-direction: column; align-items: center; gap: 6px; cursor: pointer; border-radius: 8px; padding: 4px 6px; margin: -4px -6px; }
.gw-more:focus-visible { outline: 2px solid var(--gl-accent); outline-offset: 2px; }
.gw-more-hint { font-family: var(--gl-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gl-accent); }
.gw-more:hover .gw-desc, .gw-more:focus .gw-desc, .gw-more:focus-within .gw-desc { -webkit-line-clamp: unset; display: block; text-align: left; }
.gw-more:hover, .gw-more:focus { background: rgba(255, 255, 255, 0.03); }
.gw-more:hover .gw-more-hint, .gw-more:focus .gw-more-hint { display: none; }
.gw-foot { margin-top: auto; padding-top: 10px; width: 100%; display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 8px 12px; border-top: 1px solid var(--gl-line-soft); }
.gw-holders { font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted); }
.gca2-dash .gw-earned { border-color: rgba(242, 194, 48, 0.55); }
.gw-earned .gw-badge { border-color: var(--gl-accent); box-shadow: 0 0 0 4px rgba(242, 194, 48, 0.12); }
.gca2-dash .gw-group { margin: 4px 0 16px; font-family: var(--gl-cond); font-weight: 600; font-size: 15px; letter-spacing: 0.2em; text-transform: uppercase; color: var(--gl-muted); }
.gw-retired .gw-badge { filter: grayscale(1); opacity: 0.6; }
.gw-retired-tag { font-family: var(--gl-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: #FF6B6B; }

/* ---------------------------------------------------------------- Statistics (.gs-*: gca2/modules/DisposableBasic/stats/index.blade.php) */
.gs-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 28px; padding: 8px 16px 12px; }
.gs-list-single { grid-template-columns: minmax(0, 1fr); }
.gs-row { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 9px 0; border-bottom: 1px solid var(--gl-line-soft); font-size: 15px; }
.gs-key { color: var(--gl-soft); }
.gs-val { font-family: var(--gl-mono); font-weight: 500; text-align: right; white-space: nowrap; color: var(--gl-text); }
@media (max-width: 575px) { .gs-list { grid-template-columns: minmax(0, 1fr); } }
/* Leaderboard tabs: the module partials use Bootstrap rows; give the cards some air */
.gs-boards .row { --bs-gutter-x: 20px; }
.gca2-dash .gs-boards .card .card-header h5 { font-size: 15px; letter-spacing: 0.06em; line-height: 1.25; }

/* ---------------------------------------------------------------- Pilot Shop (.gk-*: gca2/modules/DisposableSpecial/market/index.blade.php) */
.gk-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.gk-cats, .gk-sort { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.gca2-dash .gk-toolbar .gp-chip { font-family: var(--gl-sans); font-size: 14px; font-weight: 600; padding: 6px 14px; }
.gca2-dash .gk-toolbar .gp-chip.gk-active { background: var(--gl-accent); border-color: var(--gl-accent); color: #0A0E3C; }
.gk-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 20px; margin-bottom: 20px; }
.gca2-dash .gk-card { margin: 0; display: flex; flex-direction: column; }
.gk-image { position: relative; aspect-ratio: 4 / 3; background: #FFFFFF; display: flex; align-items: center; justify-content: center; overflow: hidden; border-bottom: 1px solid var(--gl-line); }
.gk-image img { width: 100%; height: 100%; object-fit: contain; padding: 14px; }
.gk-image > i { font-size: 52px; color: #C9CEF0; }
.gk-flag { position: absolute; top: 12px; left: 12px; }
.gk-flag-out { font-family: var(--gl-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; padding: 3px 9px; border-radius: 99px; background: #FF6B6B; color: #0A0E3C; }
.gk-body { padding: 16px 18px 6px; display: flex; flex-direction: column; gap: 8px; }
.gca2-dash .gk-name { margin: 0; font-family: var(--gl-cond); font-weight: 600; font-size: 21px; letter-spacing: 0.03em; text-transform: uppercase; line-height: 1.15; color: var(--gl-text); }
.gk-desc { font-size: 14px; line-height: 1.5; color: var(--gl-soft); overflow-wrap: anywhere; }
.gk-desc p { margin: 0 0 8px; }
.gk-desc p:last-child { margin-bottom: 0; }
.gk-desc img { max-width: 100%; height: auto; }
.gk-foot { margin-top: auto; padding: 14px 18px 16px; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; border-top: 1px solid var(--gl-line-soft); }
.gk-price-wrap { display: flex; flex-direction: column; gap: 2px; }
.gk-price { font-family: var(--gl-mono); font-weight: 600; font-size: 22px; color: var(--gl-green); }
.gk-left { font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted); }
.gk-actions { display: flex; gap: 8px; }
.gk-actions form { margin: 0; }
.gca2-dash .gk-actions .gd-btn { min-height: 40px; padding: 0 14px; font-size: 14px; cursor: pointer; }
.gca2-dash .gk-owned { border-color: rgba(242, 194, 48, 0.55); }
.gk-soldout .gk-image img { filter: grayscale(1); opacity: 0.6; }
.gk-empty { padding: 24px !important; color: var(--gl-soft); }
/* Gift dialog */
.gca2-dash .modal .modal-header { padding: 14px 18px !important; border-bottom: 1px solid var(--gl-line); }
.gca2-dash .modal .modal-body { background: #0C1042; color: var(--gl-text); }
.gk-gift-body { display: flex; flex-direction: column; gap: 8px; padding: 18px !important; }
.gca2-dash .gk-select { background-color: rgba(7, 10, 43, 0.8); border: 1px solid var(--gl-edge); border-radius: 8px; color: var(--gl-text); min-height: 42px; }
.gca2-dash .gk-select:focus { border-color: var(--gl-accent); box-shadow: 0 0 0 3px rgba(242, 194, 48, 0.2); }
.gca2-dash .gk-select option { background: #0C1042; color: var(--gl-text); }
.gca2-dash .modal .gk-gift-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 14px 18px !important; border-top: 1px solid var(--gl-line); font-family: var(--gl-sans); }

/* ---------------------------------------------------------------- Flights and bids (.gf-*: gca2/flights/*.blade.php) */
.gf-grid { grid-template-columns: minmax(0, 3fr) minmax(280px, 1fr); }
@media (max-width: 1199px) { .gf-grid { grid-template-columns: minmax(0, 1fr); } }
.gf-count { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 22px; padding: 0 6px; margin-left: 4px; border-radius: 99px; background: #0A0E3C; color: var(--gl-accent); font-family: var(--gl-mono); font-size: 12px; }
.gca2-dash .gf-table > :not(caption) > * > * { padding-top: 10px; padding-bottom: 10px; }
.gca2-dash .gf-table th a { color: var(--gl-muted); font-weight: 500; }
.gca2-dash .gf-table th a:hover { color: var(--gl-accent); }
.gca2-dash .gf-flightno { font-family: var(--gl-mono); font-weight: 600; font-size: 15px; }
.gf-tour { margin-left: 8px; font-family: var(--gl-mono); font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; padding: 2px 7px; border-radius: 99px; background: var(--gl-accent); color: #0A0E3C; vertical-align: middle; }
.gf-apt-wrap { display: inline-flex; align-items: center; gap: 10px; }
.gf-flag { height: 18px; width: auto; border-radius: 2px; }
.gf-block { color: var(--gl-soft); }
.gf-actions { display: inline-flex; flex-wrap: wrap; justify-content: flex-end; gap: 6px; }
.gf-table .gf-actions { flex-wrap: nowrap; }
.gf-table .gp-apt { max-width: 190px; }
.gf-table .gp-apt-name { white-space: nowrap; }
.gca2-dash .btn.gf-act {
  display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 0 10px !important; margin: 0 !important;
  border: 1px solid var(--gl-edge); border-radius: 6px; background: rgba(10, 14, 60, 0.6) !important; color: var(--gl-text) !important;
  font-family: var(--gl-sans); font-size: 13px; font-weight: 600; white-space: nowrap;
}
.gca2-dash .btn.gf-act:hover { border-color: var(--gl-accent); color: #FFFFFF !important; }
.gca2-dash .btn.gf-act i { font-size: 12px; color: var(--gl-accent); }
.gca2-dash .btn.gf-act-icon { padding: 0 9px !important; }
/* Bid button: btn-success = not booked (gold call to action), btn-danger = booked (green outline); flights/scripts switches the classes */
.gca2-dash .card .btn.gf-act.save_flight.btn-success { background: var(--gl-accent) !important; border-color: var(--gl-accent); color: #0A0E3C !important; }
.gca2-dash .card .btn.gf-act.save_flight.btn-success i { color: #0A0E3C; }
.gca2-dash .card .btn.gf-act.save_flight.btn-danger { background: rgba(92, 242, 154, 0.1) !important; border-color: var(--gl-green); color: var(--gl-green) !important; }
.gca2-dash .card .btn.gf-act.save_flight.btn-danger i { color: var(--gl-green); }
.gca2-dash .btn.gf-act-main { background: var(--gl-accent) !important; border-color: var(--gl-accent); color: #0A0E3C !important; }
.gca2-dash .btn.gf-act-main i { color: #0A0E3C; }
.gca2-dash .btn.gf-act-ofp { border-color: var(--gl-green); }
.gca2-dash .btn.gf-act-ofp i { color: var(--gl-green); }
/* Bids page: the remove button keeps its warning look */
.gca2-dash .card.gf-bid .btn.gf-act.save_flight.btn-danger { background: rgba(255, 107, 107, 0.12) !important; border-color: #FF6B6B; color: #FFD0D0 !important; }
.gca2-dash .card.gf-bid .btn.gf-act.save_flight.btn-danger i { color: #FF6B6B; }

/* Search card */
.gf-search .gp-fields { gap: 12px; padding: 14px 16px 16px !important; }
.gf-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
.gf-unit { text-transform: none; letter-spacing: 0; color: var(--gl-edge); margin-left: 4px; }
.gca2-dash .gf-search-foot { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 16px !important; font-family: var(--gl-sans); }
.gca2-dash .gf-search-foot .gd-btn { min-height: 40px; font-size: 14px; cursor: pointer; }

/* Bid cards */
.gca2-dash .gf-bid .gf-bid-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
.gf-bid-title { display: flex; align-items: center; gap: 14px; min-width: 0; }
.gf-bid-logo { width: 48px; height: 48px; border-radius: 10px; background: #FFFFFF; display: flex; align-items: center; justify-content: center; padding: 4px; flex: 0 0 auto; }
.gf-bid-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.gca2-dash .gf-bid .gf-bid-head h5 { justify-content: flex-start; font-size: 22px; }
.gf-callsign { font-family: var(--gl-mono); font-size: 13px; font-weight: 500; letter-spacing: 0.06em; color: var(--gl-muted); text-transform: none; }
.gf-bid-sub { font-size: 14px; color: var(--gl-soft); }
.gf-bid-tools { display: flex; gap: 8px; }
.gca2-dash .gf-bid-tools .gd-btn { min-height: 36px; font-size: 13px; padding: 0 12px; }
.gca2-dash .gf-bid .gd-route { padding: 22px 18px 18px; }
.gf-time { font-family: var(--gl-mono); font-size: 13px; color: var(--gl-muted); margin-top: 4px; }
.gf-route-mid { flex-direction: column; gap: 6px; }
.gf-route-mid::before, .gf-route-mid::after { display: none; }
.gf-route-mid i.fa-plane { font-size: 18px; }
.gf-route-mid { background: linear-gradient(var(--gl-edge), var(--gl-edge)) center / 100% 1px no-repeat; }
.gf-route-mid > * { background: var(--gl-panel); padding: 0 10px; }
.gf-dist { font-family: var(--gl-mono); font-size: 13px; color: var(--gl-soft); white-space: nowrap; }
.gf-dist i { color: var(--gl-accent); }
.gf-details { border-top: 1px solid var(--gl-line-soft); }
.gf-route-text, .gf-subfleets { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; padding: 0 16px 14px; }
.gf-route-text code { font-family: var(--gl-mono); font-size: 13px; color: var(--gl-text); background: rgba(7, 10, 43, 0.6); padding: 4px 8px; border-radius: 6px; overflow-wrap: anywhere; white-space: normal; }
.gca2-dash .gf-subfleets .gp-chip { font-family: var(--gl-sans); font-size: 13px; }
.gf-notes { padding: 0 16px 14px; font-size: 14px; color: var(--gl-soft); }
.gca2-dash .gf-bid-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px !important; font-family: var(--gl-sans); }
.gf-badges .btn, .gf-badges .badge { font-family: var(--gl-mono); font-size: 11px !important; }
.gca2-dash .gf-badges .btn { padding: 3px 9px !important; min-height: 0; }
.gf-wx { margin: -8px 0 20px; }
.gf-wx-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 0 20px; }
@media (max-width: 767px) {
  .gca2-dash .gf-bid .gd-route { flex-wrap: wrap; }
  .gf-route-mid { order: 3; flex-basis: 100%; flex-direction: row; justify-content: center; background: none; }
  .gca2-dash .gf-bid .gd-route-apt { flex: 1 1 40%; }
}
.gf-none { color: var(--gl-edge); }
/* Phones: each flight row becomes a small card (flight no + time / from → to / actions) */
@media (max-width: 767px) {
  .gca2-dash .gf-table thead { display: none; }
  .gca2-dash .gf-table, .gca2-dash .gf-table tbody { display: block; }
  .gca2-dash .gf-table tbody tr {
    display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    grid-template-areas: "no time" "dep arr" "act act";
    gap: 10px 12px; padding: 14px 16px; border-bottom: 1px solid var(--gl-line-soft);
  }
  .gca2-dash .gf-table tbody tr > td { display: block; padding: 0 !important; border: 0 !important; box-shadow: none; text-align: left !important; min-width: 0; }
  .gca2-dash .gf-table .gf-c-no { grid-area: no; }
  .gca2-dash .gf-table .gf-c-std { grid-area: time; text-align: right !important; }
  .gca2-dash .gf-table .gf-c-sta { grid-area: time; text-align: right !important; justify-self: end; margin-right: 52px; }
  .gca2-dash .gf-table .gf-c-dep { grid-area: dep; }
  .gca2-dash .gf-table .gf-c-arr { grid-area: arr; }
  .gca2-dash .gf-table .gf-c-act { grid-area: act; }
  .gca2-dash .gf-table .gf-c-code, .gca2-dash .gf-table .gf-c-leg { display: none !important; }
  .gf-table .gf-actions { flex-wrap: wrap; justify-content: flex-start; }
  .gf-table .gp-apt { max-width: 100%; }
}
@media (max-width: 767px) {
  .gf-table .gf-apt-wrap { display: flex; max-width: 100%; min-width: 0; }
  .gf-table .gp-apt { min-width: 0; }
}

/* ---------------------------------------------------------------- Tours (.gt-*: gca2/modules/DisposableSpecial/tours/index.blade.php) */
.gt-bar { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 20px; margin-bottom: 20px; border-bottom: 1px solid var(--gl-line); }
.gt-bar .gt-tabs { margin: 0; border-bottom: 0; }
.gt-count { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 20px; padding: 0 6px; margin-left: 6px; border-radius: 99px; background: rgba(255, 255, 255, 0.08); font-family: var(--gl-mono); font-size: 11px; letter-spacing: 0; color: var(--gl-soft); vertical-align: 2px; }
.gca2-dash .gp-tabs .nav-link.active .gt-count { background: var(--gl-accent); color: #0A0E3C; }
.gt-filter { display: flex; align-items: center; gap: 8px; padding-bottom: 10px; }
.gca2-dash .gt-filter .gk-select { min-width: 220px; min-height: 40px; }
.gca2-dash .gt-filter .gd-btn { min-height: 40px; font-size: 14px; cursor: pointer; }
.gt-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 380px), 1fr)); gap: 20px; margin-bottom: 20px; }
.gca2-dash .gt-card { margin: 0; display: flex; flex-direction: column; }
.gt-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 20px 6px; }
.gt-title { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.gca2-dash .gt-title h2 { margin: 0; font-family: var(--gl-cond); font-weight: 700; font-size: clamp(24px, 2.2vw, 30px); line-height: 1.05; text-transform: uppercase; }
.gt-status { align-self: flex-start; font-family: var(--gl-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; padding: 3px 10px; border-radius: 99px; }
.gt-status-activet { background: var(--gl-green); color: #0A0E3C; }
.gt-status-futuret { background: var(--gl-accent); color: #0A0E3C; }
.gt-status-closedt { background: rgba(255, 255, 255, 0.08); color: var(--gl-muted); }
.gt-logo { flex: 0 0 auto; width: 64px; height: 64px; border-radius: 12px; background: #FFFFFF; display: flex; align-items: center; justify-content: center; padding: 6px; }
.gt-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.gt-facts { padding: 10px 20px 14px; }
.gt-remark { color: #FF6B6B; cursor: help; }
.gt-desc { padding: 0 20px 14px; font-size: 14px; line-height: 1.5; color: var(--gl-soft); }
.gt-desc p:last-child { margin-bottom: 0; }
.gt-foot { margin-top: auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 20px 16px; border-top: 1px solid var(--gl-line-soft); }
.gt-token { font-size: 14px; color: var(--gl-soft); }
.gca2-dash .gt-foot .gd-btn { min-height: 40px; font-size: 14px; }
.gt-rules { padding: 18px 20px !important; font-size: 15px; line-height: 1.6; color: var(--gl-soft); }
.gt-rules p { margin-bottom: 12px; }
.gt-rules p:last-child { margin-bottom: 0; color: var(--gl-accent); font-weight: 600; }
.gt-rules b { color: var(--gl-text); }
@media (max-width: 767px) {
  .gt-filter { width: 100%; }
  .gca2-dash .gt-filter .gk-select { min-width: 0; flex: 1 1 auto; }
}

/* Tour details (gca2/modules/DisposableSpecial/tours/show + legs_table) */
.gca2-dash a.gt-back { color: var(--gl-accent); }
.gca2-dash a.gt-back:hover { color: #FFFFFF; }
.gt-progress { margin-top: 4px; }
.gt-hero-desc { padding: 0; max-width: 760px; font-size: 15px; }
.gt-logo-lg { width: 120px; height: 120px; border-radius: 18px; padding: 10px; }
.gt-legno { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; border: 1px solid var(--gl-edge); font-family: var(--gl-mono); font-weight: 600; }
.gca2-dash .gt-leg-flown .gt-legno { border-color: var(--gl-green); color: var(--gl-green); }
.gca2-dash .gt-leg-next .gt-legno { background: var(--gl-accent); border-color: var(--gl-accent); color: #0A0E3C; }
.gca2-dash .table > tbody > tr.gt-leg-next > * { background: rgba(242, 194, 48, 0.06); }
.gt-note-date { color: #FF6B6B; cursor: help; }
.gt-note-fleet { color: var(--gl-accent); cursor: help; }
.gt-leg-state { display: inline-flex; align-items: center; gap: 6px; font-family: var(--gl-mono); font-size: 12px; text-transform: uppercase; letter-spacing: 0.08em; color: var(--gl-edge); }
.gt-leg-state-ok { color: var(--gl-green); }
.gt-leg-state-next { color: var(--gl-accent); }
.gt-report th a { color: var(--gl-text); }
.gt-report .text-success { color: var(--gl-green) !important; }
.gt-report .text-danger { color: #FF6B6B !important; }
@media (max-width: 767px) {
  .gca2-dash .gt-legs tbody tr { grid-template-columns: auto minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "no dep arr" "valid valid status" "act act act"; }
  .gca2-dash .gt-legs .gf-c-no { grid-area: no; }
  .gca2-dash .gt-legs .gt-c-valid { grid-area: valid; }
  .gca2-dash .gt-legs .gt-c-status { grid-area: status; text-align: right !important; }
  .gca2-dash .gt-legs .gt-c-notes, .gca2-dash .gt-legs .gt-c-dist, .gca2-dash .gt-legs .gt-c-time { display: none !important; }
  .gt-logo-lg { display: none; }
}
@media (max-width: 767px) {
  .gca2-dash .table > tbody > tr.gt-leg-next { background: rgba(242, 194, 48, 0.06); }
  .gca2-dash .table > tbody > tr.gt-leg-next > * { background: transparent; }
}

/* ---------------------------------------------------------------- Hubs (.gh-*: gca2/modules/DisposableBasic/hubs/index.blade.php) */
.gh-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); gap: 20px; margin-bottom: 20px; }
.gca2-dash a.gh-card { margin: 0; padding: 20px 20px 16px; display: flex; flex-direction: column; gap: 6px; color: var(--gl-text); font-weight: 400; transition: border-color .15s ease, transform .15s ease; }
.gca2-dash a.gh-card:hover { border-color: var(--gl-accent); color: var(--gl-text); transform: translateY(-2px); }
.gca2-dash a.gh-card:focus-visible { outline: 2px solid var(--gl-accent); outline-offset: 2px; }
.gh-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.gh-icao { font-family: var(--gl-mono); font-weight: 600; font-size: 34px; line-height: 1.1; color: var(--gl-green); }
.gh-flag { height: 22px; width: auto; border-radius: 3px; }
.gca2-dash .gh-name { margin: 2px 0 0; font-family: var(--gl-cond); font-weight: 600; font-size: 20px; line-height: 1.15; letter-spacing: 0.02em; text-transform: uppercase; color: var(--gl-text); }
.gh-place { font-size: 14px; color: var(--gl-soft); }
.gh-foot { margin-top: auto; padding-top: 12px; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; border-top: 1px solid var(--gl-line-soft); }
.gh-pilots { font-family: var(--gl-mono); font-size: 13px; color: var(--gl-muted); }
.gh-pilots i { color: var(--gl-accent); margin-right: 6px; }
.gca2-dash a.gh-card.gh-mine { border-color: rgba(242, 194, 48, 0.55); }
@media (prefers-reduced-motion: reduce) { .gca2-dash a.gh-card { transition: none; } .gca2-dash a.gh-card:hover { transform: none; } }

/* ---------------------------------------------------------------- Fleet maintenance (.gx-*: gca2/modules/DisposableSpecial/maintenance/index.blade.php) */
.gca2-dash .gd-readout-value.gx-warn-text { color: var(--gl-accent); }
.gca2-dash .gx-allgood { flex-direction: row; align-items: center; gap: 20px; padding: 28px 28px; border-color: rgba(92, 242, 154, 0.35); }
.gx-allgood > i { font-size: 44px; color: var(--gl-green); flex: 0 0 auto; }
.gca2-dash .gx-allgood h2 { margin: 0 0 6px; font-family: var(--gl-cond); font-weight: 600; font-size: 24px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gl-text); }
.gx-allgood p { margin: 0; color: var(--gl-soft); font-size: 15px; max-width: 70ch; }
.gca2-dash .gx-table th.gx-group { border-bottom: 1px solid var(--gl-line) !important; text-align: center; }
.gca2-dash .gx-ac { font-family: var(--gl-mono); font-weight: 600; }
.gx-ac-name { display: block; font-family: var(--gl-sans); font-size: 12px; font-weight: 500; color: var(--gl-muted); }
.gx-sub { display: block; font-family: var(--gl-mono); font-size: 11px; color: var(--gl-muted); margin-top: 3px; }
.gx-eta { color: var(--gl-accent); font-weight: 600; }
.gx-pill { font-family: var(--gl-mono); font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 99px; }
.gx-pill.gx-ok { background: rgba(92, 242, 154, 0.15); color: var(--gl-green); }
.gx-pill.gx-warn { background: rgba(242, 194, 48, 0.15); color: var(--gl-accent); }
.gx-pill.gx-bad { background: rgba(255, 107, 107, 0.15); color: #FF6B6B; }
.gx-bar { display: inline-block; vertical-align: middle; width: 80px; height: 8px; border-radius: 99px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.gx-bar > span { display: block; height: 100%; border-radius: 99px; }
.gx-bar.gx-ok > span { background: var(--gl-green); }
.gx-bar.gx-warn > span { background: var(--gl-accent); }
.gx-bar.gx-bad > span { background: #FF6B6B; }
.gx-bar-num { font-family: var(--gl-mono); font-size: 13px; margin-left: 8px; }
.gca2-dash .gx-table td.gx-due { color: var(--gl-accent); font-weight: 600; }
.gx-over { color: #FF6B6B; font-weight: 600; }
.gca2-dash .btn.gf-act.gx-act-c { background: rgba(255, 107, 107, 0.15) !important; border-color: #FF6B6B; color: #FFD0D0 !important; }
.gca2-dash .btn.gf-act.gx-act-c i { color: #FF6B6B; }
.gca2-dash .btn.gf-act:disabled { opacity: 0.7; cursor: default; }
@media (max-width: 575px) { .gca2-dash .gx-allgood { flex-direction: column; align-items: flex-start; } }

/* ---------------------------------------------------------------- Missions (.gq-*: gca2/modules/DisposableSpecial/missions/index.blade.php) */
.gca2-dash .gq-group { display: flex; align-items: center; margin: 4px 0 14px; font-family: var(--gl-cond); font-weight: 600; font-size: 18px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gl-text); }
.gq-group i { color: var(--gl-accent); }
.gq-columns { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; }
@media (max-width: 991px) { .gq-columns { grid-template-columns: minmax(0, 1fr); } }
.gq-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 440px), 1fr)); gap: 16px; margin-bottom: 24px; }
.gq-list { display: flex; flex-direction: column; gap: 16px; margin-bottom: 24px; }
.gca2-dash .gq-card { margin: 0; }
.gca2-dash .gq-mine { border-color: rgba(242, 194, 48, 0.55); }
.gq-head { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; padding: 14px 16px 0; }
.gq-order { font-family: var(--gl-mono); font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 99px; background: var(--gl-accent); color: #0A0E3C; }
.gq-ac { font-family: var(--gl-mono); font-weight: 600; font-size: 16px; }
.gca2-dash a.gq-ac { color: var(--gl-text); text-decoration: none; }
.gca2-dash a.gq-ac:hover, .gca2-dash a.gq-ac:focus-visible { color: var(--gl-accent); }
.gca2-dash .gq-route a.gd-route-apt { text-decoration: none; color: inherit; }
.gca2-dash .gq-route a.gd-route-apt:hover .gd-route-icao, .gca2-dash .gq-route a.gd-route-apt:focus-visible .gd-route-icao { color: var(--gl-accent); }
.gca2-dash .gq-route a.gd-route-apt:hover .gd-route-name { color: #FFFFFF; }
.gq-airline { font-size: 13px; color: var(--gl-muted); }
.gq-parked { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; font-family: var(--gl-mono); font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 99px; border: 1px solid var(--gl-accent); color: var(--gl-accent); white-space: nowrap; cursor: help; }
.gq-parked i { font-size: 12px; }
.gca2-dash .gq-route { padding: 12px 16px 12px; }
.gca2-dash .gq-route .gd-route-icao { font-size: 26px; }
.gq-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 16px 14px; border-top: 1px solid var(--gl-line-soft); }
.gq-meta { font-size: 13px; color: var(--gl-soft); }

/* ---------------------------------------------------------------- Live weather (.gwx-*: gca2/modules/DisposableBasic/pages/livewx.blade.php) */
.gt-bar.gwx-bar { border-bottom: 0; margin-bottom: 14px; }
.gca2-dash .gwx-bar .gp-chip { font-family: var(--gl-sans); font-size: 14px; font-weight: 600; padding: 6px 14px; background: rgba(10, 14, 60, 0.6); cursor: pointer; }
.gca2-dash .gwx-bar .gp-chip.gk-active { background: var(--gl-accent); border-color: var(--gl-accent); color: #0A0E3C; }
.gca2-dash .gwx-card { overflow: hidden; }
.gca2-dash .gwx-card iframe { border: 0; display: block; }
.gwx-note { font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted); text-align: right; margin-bottom: 20px; }
@media (max-width: 767px) { .gca2-dash .gwx-card iframe { height: 70vh !important; min-height: 360px !important; } }

/* ---------------------------------------------------------------- PIREPs (.gq-*: gca2/modules/DisposableBasic/pireps/index + table) */
/* Rows share the flights table look (.gf-table); reports that are not accepted keep the dimmed row with a coloured edge (DB_PirepState row classes) */
.gq-table .gp-apt { max-width: 220px; }
.gq-table .gq-c-ac .gp-apt { max-width: 140px; }
@media (max-width: 1399px) { .gq-table .gp-apt { max-width: 170px; } }
@media (max-width: 1199px) { .gq-table .gp-apt { max-width: 130px; } .gca2-dash .gq-table > :not(caption) > * > * { padding-left: 6px; padding-right: 6px; } }
.gca2-dash .gq-info { color: var(--gl-accent); margin-right: 6px; }
.gca2-dash .gq-info:hover { color: #FFFFFF; }
.gq-state { margin-left: 8px; font-family: var(--gl-mono); font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; padding: 2px 7px; border-radius: 99px; border: 1px solid var(--gl-edge); color: var(--gl-muted); vertical-align: middle; }
.gca2-dash .table > tbody > tr.table-danger .gq-state { border-color: #FF6B6B; color: #FFB4B4; }
.gca2-dash .table > tbody > tr.table-warning .gq-state { border-color: var(--gl-accent); color: var(--gl-accent); }
/* Landing rate that starts a DisposableSpecial Hard Landing Check: red, with an icon that explains it on hover */
.gca2-dash .gq-c-lrate.gq-hard { color: #FF6B6B; font-weight: 600; }
.gca2-dash .gq-tip { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; margin: -6px -6px -6px 0; padding: 0; border: 0; border-radius: 50%; background: none; color: #FF6B6B; cursor: help; vertical-align: middle; }
.gca2-dash .gq-tip:hover, .gca2-dash .gq-tip[aria-describedby] { background: rgba(255, 107, 107, 0.15); }
.gca2-dash .gq-tip:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 0; }
/* The popup box is appended to <body> (outside .gca2-dash) by the script in pireps/index */
.gq-tip-box { position: absolute; z-index: 1080; max-width: min(320px, calc(100vw - 16px)); padding: 10px 12px; border: 1px solid #FF6B6B; border-radius: 8px; background: #0A0E3C; color: #F2F4FF; font-family: var(--gl-sans, sans-serif); font-size: 13px; line-height: 1.45; white-space: normal; text-align: left; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.45); pointer-events: none; }
.gq-tip-box[hidden] { display: none; }
.gq-tip-box strong { display: block; margin-bottom: 4px; font-weight: 700; color: #FFFFFF; }
.gq-tip-box strong:empty { display: none; }
.gq-tip-box div { white-space: pre-line; }
/* Notes / comments (gca2/pireps/notes_tip): information, not a warning */
.gca2-dash .gq-tip.gq-tip-info { color: var(--gl-muted); }
.gca2-dash .gq-tip.gq-tip-info:hover, .gca2-dash .gq-tip.gq-tip-info[aria-describedby] { background: rgba(255, 255, 255, 0.1); color: var(--gl-text); }
.gq-tip-box.gq-tip-box-info { border-color: var(--gl-edge, #5C67B8); }
/* The notes button sits left of the submitted date */
.gq-when-text { display: inline-block; vertical-align: middle; text-align: right; }
.gq-c-when .gq-tip-info { vertical-align: middle; }
.gca2-dash .gq-c-pilot a { color: var(--gl-text); font-weight: 500; }
.gca2-dash .gq-c-pilot a:hover { color: var(--gl-accent); }
.gq-c-when { line-height: 1.25; }
.gq-ago { display: block; font-size: 14px; }
.gq-date { display: block; font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted); }
/* Phones: flight no + submitted / from → to / aircraft, times / pilot */
@media (max-width: 767px) {
  .gca2-dash .gq-table tbody tr { grid-template-areas: "no when" "dep arr" "ac time" "pilot fuel" "lrate lrate"; }
  .gca2-dash .gq-table .gq-c-lrate { grid-area: lrate; }
  .gca2-dash .gq-table .gq-c-lrate::before { content: "Landing "; font-family: var(--gl-sans); font-size: 12px; color: var(--gl-muted); }
  .gca2-dash .gq-table .gq-c-lrate.gq-c-empty { display: none !important; }
  .gca2-dash .gq-table .gq-c-when { grid-area: when; text-align: right !important; }
  .gca2-dash .gq-table .gq-c-ac { grid-area: ac; }
  .gca2-dash .gq-table .gq-c-time { grid-area: time; text-align: right !important; }
  .gca2-dash .gq-table .gq-c-fuel { grid-area: fuel; text-align: right !important; }
  .gca2-dash .gq-table .gq-c-pilot { grid-area: pilot; }
  .gca2-dash .gq-table .gq-c-admin, .gca2-dash .gq-table .gq-c-net { display: none !important; }
  .gca2-dash .gq-table .gq-c-when .gq-ago { font-size: 13px; }
  /* The coloured edge of a report that is not accepted goes on the card, not on its first cell */
  .gca2-dash .gq-table > tbody > tr[class*="table-"] > :first-child { box-shadow: none; }
  .gca2-dash .gq-table > tbody > tr.table-danger { box-shadow: inset 3px 0 0 #FF6B6B; }
  .gca2-dash .gq-table > tbody > tr.table-warning { box-shadow: inset 3px 0 0 var(--gl-accent); }
  .gca2-dash .gq-table > tbody > tr.table-secondary, .gca2-dash .gq-table > tbody > tr.table-info, .gca2-dash .gq-table > tbody > tr.table-primary { box-shadow: inset 3px 0 0 var(--gl-edge); }
  .gq-table .gp-apt, .gq-table .gq-c-ac .gp-apt { max-width: 100%; min-width: 0; }
}

/* My PIREPs (.gq-mine: gca2/pireps/index + table): same table as /dpireps plus a status column */
.gq-status { font-family: var(--gl-mono); font-size: 10px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; padding: 3px 8px; border-radius: 99px; border: 1px solid var(--gl-edge); color: var(--gl-muted); white-space: nowrap; }
.gq-status-2 { border-color: var(--gl-green); color: var(--gl-green); }
.gq-status-1 { border-color: var(--gl-accent); color: var(--gl-accent); }
.gq-status-3, .gq-status-4, .gq-status-6 { border-color: #FF6B6B; color: #FFB4B4; }
.gq-mine .gf-actions { flex-wrap: nowrap; align-items: center; }
.gq-mine .gf-actions .btn:not(.gf-act), .gq-mine .gf-actions .badge { font-family: var(--gl-mono); font-size: 11px !important; }
/* Medium screens: twelve columns don't fit, so airports show the ICAO code only (full name in the link title); below 992px the table scrolls sideways in its card */
@media (min-width: 768px) and (max-width: 1399px) { .gq-mine .gf-c-dep .gp-apt-name, .gq-mine .gf-c-arr .gp-apt-name { display: none; } }
@media (min-width: 768px) and (max-width: 1199px) { .gq-mine .gq-ago { font-size: 12px; } .gq-mine .gq-status { letter-spacing: 0.05em; } }
@media (max-width: 767px) {
  .gca2-dash .gq-mine tbody tr { grid-template-areas: "no status" "dep arr" "ac time" "lrate fuel" "score when"; }
  .gca2-dash .gq-mine .gq-c-status { grid-area: status; text-align: right !important; }
  .gca2-dash .gq-mine .gq-c-status .gf-actions { justify-content: flex-end; flex-wrap: wrap; }
  .gca2-dash .gq-mine .gq-c-score { grid-area: score; }
  .gca2-dash .gq-mine .gq-c-score::before { content: "Score "; font-family: var(--gl-sans); font-size: 12px; color: var(--gl-muted); }
  .gca2-dash .gq-mine .gq-c-score.gq-c-empty { display: none !important; }
  .gca2-dash .gq-mine .gq-c-when { text-align: right !important; }
  .gca2-dash .gq-mine .gq-c-when .gq-ago { display: none; }
  .gca2-dash .gq-mine .gq-c-lrate.gq-c-empty { display: block !important; visibility: hidden; }
  .gca2-dash .gq-table .gq-c-lrate::before, .gca2-dash .gq-mine .gq-c-score::before { margin-right: 4px; }
  .gca2-dash .gq-table .gq-c-time::before { content: "Flight time"; margin-right: 6px; font-family: var(--gl-sans); font-size: 12px; color: var(--gl-muted); }
  .gca2-dash .gq-table .gq-c-fuel::before { content: "Fuel used"; margin-right: 6px; font-family: var(--gl-sans); font-size: 12px; color: var(--gl-muted); }
}

/* Flown on our network (gca2/pireps/network_tabs + network_tip): gold route marker and All · Network · Other tabs */
.gca2-dash .gq-tip.gq-tip-net { color: var(--gl-accent); }
.gca2-dash .gq-tip.gq-tip-net:hover, .gca2-dash .gq-tip.gq-tip-net[aria-describedby] { background: rgba(242, 194, 48, 0.15); }
.gq-tip-box.gq-tip-box-net { border-color: var(--gl-accent); }
.gca2-dash .gq-net-tabs .gp-chip { display: inline-flex; align-items: center; }
.gca2-dash .gq-net-tabs .gp-chip.gk-active .gt-count { background: #0A0E3C; color: var(--gl-accent); }
.gq-net-share { font-size: 14px; color: var(--gl-soft); }
.gq-net-share b { color: var(--gl-accent); font-family: var(--gl-mono); font-weight: 600; }

/* ---------------------------------------------------------------- PIREP page (.gq-show*: gca2/pireps/show.blade.php) */
.gq-show-title { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin-bottom: 18px; }
.gq-show-title .gd-title { margin: 0; }
.gq-show-title .gq-status { font-size: 12px; padding: 4px 12px; }
.gca2-dash .gq-show-title .gq-tip-net { width: 36px; height: 36px; font-size: 18px; }
.gca2-dash .card.gq-show-route { max-width: 900px; margin-bottom: 18px; }
.gca2-dash .gq-show-route .gd-route { padding: 20px 20px 16px; }
.gq-progress { position: relative; height: 22px; margin: 0 20px 16px; border-radius: 99px; background: rgba(255, 255, 255, 0.06); overflow: hidden; }
.gq-progress span { position: absolute; inset: 0 auto 0 0; background: linear-gradient(90deg, rgba(92, 242, 154, 0.35), var(--gl-green)); }
.gq-progress b { position: relative; display: block; text-align: center; line-height: 22px; font-family: var(--gl-mono); font-size: 12px; color: #FFFFFF; }
.gca2-dash .gd-btn.gq-btn-danger { border-color: #FF6B6B; color: #FFD0D0; }
.gca2-dash .gd-btn.gq-btn-danger i { color: #FF6B6B; }
/* Readouts: the check icons next to the value */
.gd-readout-value .gq-tip { margin-left: 4px; font-size: 16px; }
.gca2-dash .gd-readout-value.gq-hard { color: #FF6B6B; }
.gca2-dash a.gq-balance-value { text-decoration: none; }
.gca2-dash a.gq-balance-value.gq-pos { color: var(--gl-green); }
.gca2-dash a.gq-balance-value.gq-neg { color: #FF6B6B; }
.gca2-dash a.gq-balance-value:hover { text-decoration: underline; text-underline-offset: 4px; }
/* Tabs in a card header */
.gca2-dash .gq-show-tabs .card-header .gp-tabs, .gca2-dash .card-header .gp-tabs { border-bottom: 0; padding: 0 8px; }
.gca2-dash .card-header .gp-tabs .nav-link { padding: 14px 12px 12px; font-size: 15px; }
.gca2-dash .gp-tabs .gq-count-danger { background: rgba(255, 107, 107, 0.2); color: #FFB4B4; }
.gq-map { width: 100%; height: 62vh; min-height: 360px; }
.gq-chart { padding: 12px 8px 4px; min-height: 440px; }
.gq-pane-scroll { max-height: 62vh; overflow: auto; }
.gca2-dash .gq-kv td.gq-kv-name { width: 40%; font-family: var(--gl-sans); font-weight: 500; color: var(--gl-muted); }
.gca2-dash .gq-kv td { font-family: var(--gl-mono); }
.gca2-dash .gq-log thead th { position: sticky; top: 0; background: #0C1046; z-index: 1; }
.gq-log-text { white-space: normal; min-width: 220px; }
.gca2-dash .gq-log a { color: var(--gl-accent); }
.gq-comments { list-style: none; margin: 0; padding: 0; }
.gq-comments li { padding: 14px 16px; border-bottom: 1px solid var(--gl-line-soft); }
.gq-comments li:last-child { border-bottom: 0; }
.gq-comment-head { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; margin-bottom: 6px; }
.gq-comment-head span { font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted); }
.gq-comments p { margin: 0; color: var(--gl-soft); white-space: pre-line; }
.gca2-dash .gq-route-text { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 12px; padding: 12px 16px !important; }
.gq-route-text code { font-family: var(--gl-mono); font-size: 13px; color: var(--gl-text); background: rgba(7, 10, 43, 0.6); padding: 4px 8px; border-radius: 6px; overflow-wrap: anywhere; white-space: normal; }
.gq-facts > div { flex: 1 1 40%; }
.gca2-dash .gq-facts dd a { color: var(--gl-text); }
.gca2-dash .gq-facts dd a:hover { color: var(--gl-accent); }
.gq-notes { padding: 0 16px 16px; }
.gq-notes p { margin: 6px 0 0; color: var(--gl-soft); white-space: pre-line; }
/* Finance: one Amount column, credit and debit stacked */
.gca2-dash .gq-amount { font-family: var(--gl-mono); white-space: nowrap; }
.gq-amount > span { display: block; }
.gca2-dash .gq-money tfoot .gq-amount { text-transform: none; letter-spacing: 0; font-size: 14px; font-weight: 600; }
.gq-memo-detail { display: block; font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted); }
.gq-memo-detail > span { white-space: nowrap; }
.gq-balance { display: flex; justify-content: space-between; align-items: baseline; padding: 12px 16px; border-top: 1px solid var(--gl-line-soft); }
.gq-balance b { font-size: 18px; }
.gq-pos { color: var(--gl-green); }
.gq-neg { color: #FF6B6B; }
@media (max-width: 767px) {
  .gca2-dash .gq-show-route .gd-route { padding: 16px 14px 12px; flex-wrap: wrap; }
  /* Same as the bid cards: distance and block time on their own row under the airports */
  .gca2-dash .gq-show-route .gd-route-apt { flex: 1 1 40%; }
  .gca2-dash .gq-show-route .gf-route-mid { order: 3; flex-basis: 100%; flex-direction: row; justify-content: center; background: none; }
  .gq-map { height: 55vh; }
  .gca2-dash .card-header .gp-tabs .nav-link { padding: 12px 8px 10px; font-size: 14px; }
}

/* ---------------------------------------------------------------- Airport page (.ga2-*: gca2/airports/show.blade.php; reuses the PIREP page's .gq-show-* parts) */
.ga2-name { margin: -8px 0 14px; font-size: clamp(18px, 1.6vw, 22px); font-weight: 600; color: var(--gl-text); }
.ga2-muted { color: var(--gl-muted); font-family: var(--gl-mono); font-size: 13px; }
.gca2-dash .ga2-hub { display: inline-flex; align-items: center; gap: 6px; font-family: var(--gl-mono); font-size: 12px; font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; padding: 4px 12px; border-radius: 99px; background: var(--gl-accent); color: #0A0E3C; }
.gca2-dash a.ga2-hub:hover { filter: brightness(1.08); color: #0A0E3C; }
.gca2-dash a.gd-readout-value { text-decoration: none; color: var(--gl-green); }
.gca2-dash a.gd-readout-value:hover { color: var(--gl-accent); }
.ga2-weather-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px; padding: 16px; }
.gca2-dash .ga2-weather-grid .card { margin: 0 !important; }
.ga2-notes { padding: 16px; color: var(--gl-soft); }
.ga2-sun { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--gl-line-soft); }
.ga2-sun > div { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 12px 4px; text-align: center; }
.ga2-sun > div + div { border-left: 1px solid var(--gl-line-soft); }
.ga2-sun i { color: var(--gl-accent); font-size: 16px; }
.ga2-sun .gd-label { font-size: 10px; letter-spacing: 0.1em; }
.ga2-sun b { font-family: var(--gl-mono); font-size: 13px; font-weight: 600; white-space: nowrap; }
.ga2-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 24px; align-items: start; }
.ga2-pair .ga2-wide { grid-column: 1 / -1; }
.ga2-scroll { max-height: 460px; overflow: auto; }
.gca2-dash .ga2-scroll thead th { position: sticky; top: 0; background: #0C1046; z-index: 1; }
.ga2-flights .gp-apt { max-width: 240px; }
.gca2-dash .card-header h5 .gt-count { margin-left: 8px; }
.gca2-dash .gq-state.ga2-booked { border-color: var(--gl-accent); color: var(--gl-accent); }
@media (max-width: 1199px) { .ga2-pair { grid-template-columns: minmax(0, 1fr); } }
.gca2-dash .ga2-wrap { white-space: normal; min-width: 110px; }
@media (max-width: 767px) {
  .ga2-flights .gp-apt { max-width: 150px; }
  .ga2-sun b { font-size: 12px; }
  .gca2-dash .ga2-hide-sm { display: none; }
  .gca2-dash .ga2-scroll .table > :not(caption) > * > * { padding-left: 6px; padding-right: 6px; }
  .gca2-dash .ga2-scroll .table > :not(caption) > * > :first-child { padding-left: 14px; }
  .gca2-dash .ga2-scroll .table > :not(caption) > * > :last-child { padding-right: 14px; }
  .ga2-flights .gp-apt, .ga2-scroll .gp-apt { max-width: 120px; }
}
@media (max-width: 380px) {
  .ga2-scroll .gp-apt { max-width: 96px; }
  .gca2-dash .ga2-scroll .gf-flightno { font-size: 13px; }
  .gca2-dash .ga2-scroll .table { font-size: 13px; }
}

/* ---------------------------------------------------------------- Airline page (.gal-*: gca2/modules/DisposableBasic/airlines/show.blade.php; reuses .ga-* from the airlines list and .gq-show-tabs) */
.gal-hero { display: flex; align-items: center; gap: 28px; }
.gca2-dash .ga-logo.gal-logo { width: 132px; height: 132px; border-radius: 20px; padding: 12px; }
.gal-hero-text { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.gal-hero-text .gd-title { margin: 0; }
.gal-scroll { max-height: 70vh; overflow: auto; }
.gca2-dash .gal-scroll thead th { position: sticky; top: 0; background: #0C1046; z-index: 1; }
.gca2-dash .gal-table > :not(caption) > * > * { padding-top: 9px; padding-bottom: 9px; }
.gca2-dash .gal-table th a { color: var(--gl-muted); font-weight: 500; }
.gca2-dash .gal-table th a:hover { color: var(--gl-accent); }
.gal-table .gp-apt { max-width: 260px; }
.gca2-dash .gal-wrap { white-space: normal; min-width: 120px; }
.gca2-dash .gal-name { color: var(--gl-text); font-weight: 500; }
.gca2-dash .gal-name:hover { color: var(--gl-accent); }
.gal-badges .badge { font-family: var(--gl-mono); font-size: 11px; font-weight: 600; }
.gca2-dash .gal-foot { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px; padding: 12px 16px !important; font-size: 14px; color: var(--gl-soft); }
.gca2-dash .gal-foot a { color: var(--gl-accent); }
.gca2-dash .gal-foot[hidden] { display: none; }
.gal-stats > div { flex: 1 1 40%; }
.gal-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr) minmax(0, 1fr); gap: 0 24px; align-items: start; }
.gca2-dash .gal-row .gd-maps { flex-direction: column; }
@media (max-width: 1199px) { .gal-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } .gal-row > .gd-maps { grid-column: 1 / -1; flex-direction: row; } }
@media (max-width: 767px) { .gal-row { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 1199px) { .gca2-dash .gal-hide-md { display: none; } }
@media (max-width: 991px) {
  .gca2-dash .gal-hide-tab { display: none; }
  .gca2-dash #al_reports .gq-c-ac, .gca2-dash #al_reports .gq-c-fuel, .gca2-dash #al_reports .gq-ago { display: none; }
  .gca2-dash #al_reports .gq-table > :not(caption) > * > * { padding-left: 6px; padding-right: 6px; }
  .gca2-dash #al_reports .gf-flightno { font-size: 14px; }
}
/* Reports tab (the /dpireps table): below 1400px airport codes only (names in the link title) */
@media (max-width: 1399px) { .gca2-dash #al_reports .gp-apt-name { display: none; } }
@media (max-width: 767px) {
  .gal-hero { flex-direction: column; align-items: flex-start; gap: 16px; }
  .gca2-dash .ga-logo.gal-logo { width: 88px; height: 88px; border-radius: 14px; padding: 8px; }
  .gca2-dash .gal-hide-sm { display: none; }
  .gal-table .gp-apt { max-width: 130px; }
  .gal-badges .badge { display: block; width: fit-content; margin: 2px 0 2px auto !important; }
  .gca2-dash .gal-table > :not(caption) > * > * { padding-left: 6px; padding-right: 6px; }
  .gca2-dash .gal-table > :not(caption) > * > :first-child { padding-left: 14px; }
  .gca2-dash .gal-table > :not(caption) > * > :last-child { padding-right: 14px; }
}
@media (max-width: 380px) { .gal-table .gp-apt { max-width: 104px; } }

/* ---------------------------------------------------------------- SimBrief briefing (.gsb-*: gca2/flights/simbrief_briefing.blade.php; reuses .gq-show-* and .gd-* parts) */
.gsb-route-foot { display: flex; flex-wrap: wrap; gap: 8px 28px; padding: 12px 20px 16px; border-top: 1px solid var(--gl-line-soft); font-size: 14px; color: var(--gl-soft); }
.gsb-route-foot .gd-label { font-size: 11px; margin-right: 6px; }
.gca2-dash .gsb-route-foot a { color: var(--gl-text); }
.gca2-dash .gsb-route-foot a:hover { color: var(--gl-accent); }
.gsb-actions { gap: 10px 12px; }
.gca2-dash a.gq-status { text-decoration: none; }
.gca2-dash .gsb-actions button.gd-btn { cursor: pointer; }
.gsb-readouts .gd-readout { flex: 1 1 calc(25% - 1px); }
.gsb-sub { font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted); }
.gsb-sub.gq-neg, .gca2-dash .gd-readout-value.gq-neg { color: #FF6B6B; }
.gsb-pane { padding: 18px 20px 20px; }
.gsb-block { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; min-width: 0; }
.gsb-block:last-child { margin-bottom: 0; }
.gsb-route { font-family: var(--gl-mono); font-size: 14px; line-height: 1.6; color: var(--gl-text); background: rgba(7, 10, 43, 0.6); padding: 10px 12px; border-radius: 8px; overflow-wrap: anywhere; }
.gsb-pre { margin: 0; font-family: var(--gl-mono); font-size: 13px; line-height: 1.6; color: var(--gl-text); background: rgba(7, 10, 43, 0.6); padding: 12px 14px; border-radius: 8px; white-space: pre-wrap; overflow-wrap: anywhere; max-height: 60vh; overflow: auto; }
.gsb-links { display: flex; flex-wrap: wrap; gap: 8px; }
.gca2-dash .gsb-links .gd-btn { min-height: 38px; font-size: 13px; }
.gsb-two { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: 18px 24px; }
.gsb-rmk { margin: 0; font-family: var(--gl-mono); font-size: 13px; line-height: 1.6; color: var(--gl-soft); }
.gsb-charts { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 16px; }
.gsb-chart { margin: 0; background: #FFFFFF; border-radius: 10px; overflow: hidden; }
.gsb-chart img { display: block; width: 100%; height: auto; }
.gsb-chart figcaption { padding: 8px 12px; font-family: var(--gl-mono); font-size: 12px; color: #0A0E3C; background: #E9ECF8; }
.gsb-wx { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.gsb-wx-altn { margin-top: 18px; }
.gsb-metar { display: block; font-family: var(--gl-mono); font-size: 13px; line-height: 1.55; color: var(--gl-text); background: rgba(7, 10, 43, 0.6); padding: 8px 10px; border-radius: 6px; overflow-wrap: anywhere; white-space: normal; }
.gsb-taf { color: var(--gl-soft); }
.gsb-windy { width: 100%; height: 420px; border: 0; border-radius: 10px; display: block; background: #0C1042; }
.gsb-h3 { margin: 0 0 4px; font-family: var(--gl-cond); font-weight: 700; font-size: 18px; letter-spacing: 0.06em; text-transform: uppercase; }
.gsb-h3 i { color: var(--gl-accent); }
.gsb-facts { padding: 10px 0 12px; }
.gsb-facts > div { flex: 1 1 40%; }
.gsb-facts .gsb-v dd { color: var(--gl-green); font-weight: 600; }
.gsb-rwy { border: 1px solid var(--gl-line-soft); border-radius: 8px; margin-top: 8px; padding: 0 14px; }
.gsb-rwy summary { cursor: pointer; padding: 10px 0; font-family: var(--gl-mono); font-size: 14px; font-weight: 600; list-style-position: outside; }
.gsb-rwy summary:focus-visible { outline: 2px solid var(--gl-accent); outline-offset: 2px; }
.gsb-planned { margin-left: 10px; font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; padding: 2px 8px; border-radius: 99px; background: var(--gl-accent); color: #0A0E3C; }
.gsb-report { margin-top: 18px; }
.gsb-report .gsb-pre { margin-bottom: 12px; }
.gsb-dispatch { padding: 0 16px 16px; font-family: var(--gl-mono); font-size: 13px; color: var(--gl-soft); }
.gsb-dispatch .gd-label { display: block; font-size: 11px; margin-bottom: 4px; }
.gsb-download { display: flex; flex-direction: column; gap: 10px; padding: 16px !important; }
.gsb-download-row { display: flex; gap: 8px; }
.gca2-dash .gsb-download .form-select { flex: 1 1 auto; min-width: 0; background-color: rgba(7, 10, 43, 0.8); color: var(--gl-text); border-color: var(--gl-edge); }
.gca2-dash .gsb-download .gd-btn { min-height: 40px; font-size: 14px; cursor: pointer; }
.gca2-dash .gsb-qr { flex-direction: row; align-items: center; gap: 16px; padding: 16px; }
.gsb-qr canvas { flex: 0 0 auto; width: 96px; height: 96px; border-radius: 8px; background: #FFFFFF; padding: 6px; }
.gsb-qr p { margin: 4px 0 0; font-size: 14px; color: var(--gl-soft); }
/* Dialogs (OFP, edit, route map): dark like the page */
.gsb-modal .modal-content { background: #0C1046; color: var(--gl-text); border: 1px solid var(--gl-line); border-radius: 12px; }
.gsb-modal .modal-header, .gsb-modal .modal-footer { border-color: var(--gl-line-soft); }
.gsb-modal-title { margin: 0; font-family: var(--gl-cond); font-weight: 700; font-size: 18px; letter-spacing: 0.08em; text-transform: uppercase; }
/* The OFP is SimBrief's own HTML: shown on paper white, whatever the page's colours */
.gsb-modal .modal-body.gsb-ofp { background: #F7F8FC; color: #10142E; }
.gsb-modal .gsb-ofp pre, .gsb-modal .gsb-ofp b, .gsb-modal .gsb-ofp * { color: #10142E; }
.gsb-modal .gsb-ofp pre { font-size: 12.5px; margin: 0; background: transparent; }
.gsb-ofp-note { margin: 0 0 8px; font-weight: 700; text-transform: uppercase; font-size: 12px; }
.gsb-map-foot { justify-content: flex-start; font-family: var(--gl-mono); font-size: 12px; color: var(--gl-soft); }
.gsb-pin span { display: block; width: 14px; height: 14px; border-radius: 50%; border: 2px solid #0A0E3C; box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.6); }
@media (max-width: 767px) {
  .gsb-pane { padding: 14px; }
  .gsb-readouts .gd-readout { flex-basis: calc(50% - 1px); }
  .gsb-windy { height: 320px; }
  .gsb-download-row { flex-direction: column; }
}

/* ---------------------------------------------------------------- Flight page (.gfs-*: gca2/flights/show.blade.php; reuses .gq-show-*, .gsb-route-foot and .gsb-actions) */
.gca2-dash .gd-btn.gfs-booked { border-color: var(--gl-green); color: var(--gl-green); }
.gca2-dash .gd-btn.gfs-booked i { color: var(--gl-green); }
.gca2-dash .gd-btn.gf-act-ofp:not(.gd-btn-accent) { border-color: var(--gl-green); }
.gca2-dash .gd-btn.gf-act-ofp:not(.gd-btn-accent) i { color: var(--gl-green); }
.gca2-dash .gfs-sky { min-height: 34px; font-size: 13px; padding: 0 12px; margin-left: auto; }
.gfs-chips { display: flex; flex-wrap: wrap; gap: 8px; padding: 14px 16px !important; }
.gca2-dash .gfs-chips .gp-chip { font-family: var(--gl-sans); font-size: 13px; }
.gfs-muted { color: var(--gl-muted); font-family: var(--gl-mono); font-size: 11px; margin-left: 4px; }
.gfs-notes { padding: 14px 16px !important; color: var(--gl-soft); }
.gfs-wx-label { padding: 14px 16px 0; }
.gca2-dash .gfs-wx .tab-pane > .card { margin: 12px 12px 0 !important; }
.gca2-dash .gfs-wx .tab-pane > .card:last-child { margin-bottom: 12px !important; }
.gca2-dash .gfs-wx .gp-tabs .nav-link { font-family: var(--gl-mono); letter-spacing: 0.04em; }
/* Jumpseat widget (DBasic::JumpSeat): its button as a gca2 action button, next to the others */
.gfs-jumpseat { flex: 0 0 auto; max-width: none; }
.gca2-dash .gfs-jumpseat form { margin: 0; }
.gca2-dash .gfs-jumpseat .btn {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin: 0 !important; padding: 0 18px !important;
  border: 1px solid var(--gl-edge); border-radius: 8px; background: rgba(10, 14, 60, 0.6) !important; color: var(--gl-text) !important;
  font-family: var(--gl-sans); font-size: 15px; font-weight: 600;
}
.gca2-dash .gfs-jumpseat .btn:hover { border-color: var(--gl-accent); color: #FFFFFF !important; }
/* Jumpseat confirmation (gca2/flights/show) */
.gfs-travel-body p { margin: 14px 0 0; color: var(--gl-soft); font-size: 15px; line-height: 1.5; }
.gfs-travel-route { display: flex; align-items: center; gap: 16px; }
.gfs-travel-route > span { flex: 1 1 0; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gfs-travel-route > span:last-child { text-align: right; }
.gfs-travel-route b { font-size: 28px; color: var(--gl-green); line-height: 1.1; }
.gfs-travel-route small { color: var(--gl-muted); font-size: 13px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gfs-travel-route i { color: var(--gl-accent); font-size: 20px; }
.gsb-modal .gfs-travel-foot { justify-content: flex-end; gap: 8px; }
.gca2-dash .gsb-modal .gd-btn, .gsb-modal .gd-btn { cursor: pointer; }
.gfs-travel-price { display: flex; justify-content: space-between; gap: 16px; margin-top: 16px; padding: 12px 14px; border-radius: 8px; background: rgba(7, 10, 43, 0.6); }
.gfs-travel-price > span { display: flex; flex-direction: column; gap: 2px; }
.gfs-travel-price > span:last-child { text-align: right; }
.gfs-travel-price b { font-size: 20px; color: var(--gl-accent); }
.gfs-travel-price > span:last-child b { color: var(--gl-text); }
.gfs-travel-price b.gq-neg, .gfs-travel-price > span:last-child b.gq-neg { color: #FF6B6B; }
.gfs-travel-price small { font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted); }
.gsb-modal .gfs-travel-warn { color: #FFB4B4; }

/* ---------------------------------------------------------------- PIREP form (.gpf-*: gca2/pireps/create, edit, fields, fares; builds on .gp-form) */
.gpf-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; align-items: start; margin-bottom: 20px; }
@media (max-width: 991px) { .gpf-grid { grid-template-columns: minmax(0, 1fr); } }
.gca2-dash .gpf-card { margin: 0; }
.gpf-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.gpf-row-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 575px) { .gpf-row, .gpf-row-3 { grid-template-columns: minmax(0, 1fr); } }
.gpf-opt { text-transform: none; letter-spacing: 0; color: var(--gl-edge); margin-left: 4px; font-size: 11px; }
.gpf-fixed { min-height: 40px; display: flex; align-items: center; gap: 8px; padding: 0 12px; border: 1px solid var(--gl-line); border-radius: 6px; background: rgba(7, 10, 43, 0.5); color: var(--gl-soft); font-size: 14px; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.gpf-fixed b { color: var(--gl-green); }
.gpf-time, .gpf-unit { display: flex; align-items: center; gap: 8px; }
.gpf-time .form-control { flex: 1 1 0; min-width: 0; }
.gpf-unit .form-control { flex: 1 1 auto; min-width: 0; }
.gpf-time span, .gpf-unit span { font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted); }
.gpf-fares { display: grid; grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)); gap: 12px; }
.gpf-fare { display: flex; flex-direction: column; gap: 4px; }
.gca2-dash .gpf-fare label { font-size: 13px; color: var(--gl-soft); margin: 0; }
.gpf-score-note { display: flex; align-items: center; gap: 18px; margin-bottom: 20px; padding: 16px 20px; border: 1px solid var(--gl-gold-line); border-left: 4px solid var(--gl-accent); border-radius: 12px; background: rgba(9, 12, 52, 0.92); }
.gpf-score { flex: 0 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; width: 72px; height: 72px; border-radius: 50%; border: 2px solid var(--gl-accent); }
.gpf-score b { font-size: 26px; line-height: 1; color: var(--gl-accent); }
.gpf-score small { font-family: var(--gl-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gl-muted); }
.gpf-score-note p { margin: 4px 0 0; color: var(--gl-soft); font-size: 14px; }
.gca2-dash .gpf-info { border-left-color: var(--gl-accent); }
.gca2-dash .gpf-actions .gd-btn { cursor: pointer; }
.gca2-dash .gpf-form textarea.form-control { min-height: 80px; }
.gpf-form ~ *, .gca2-dash .gd-hero .gd-title + .gd-meta { margin-top: 14px; }

/* Dashboard tools row (Jumpseat Travel, Aircraft Transfer, Airport Information): three equal cards at the bottom */
.gd-tools-section { padding-top: 20px; padding-bottom: 28px; }
.gd-tools { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; }
.gd-tools > div, .gd-tools-pair > div { display: flex; flex-direction: column; min-width: 0; }
.gd-tools > .gd-tools-pair { display: contents; }
.gd-tools-pair > div > form { display: flex; flex-direction: column; flex: 1 1 auto; }
.gd-tools > div > form { display: flex; flex-direction: column; flex: 1 1 auto; }
.gca2-dash .gd-tools .card { flex: 1 1 auto; margin: 0 !important; display: flex; flex-direction: column; }
.gca2-dash .gd-tools .card > .card-body { flex: 1 1 auto; }
/* The yellow action buttons (Travel, Transfer, Go, Discord Join) all the same size */
.gca2-dash .gd-tools .btn.bg-success, .gca2-dash .gd-fill .card-footer .btn.bg-success { width: 92px; text-align: center; padding-left: 0 !important; padding-right: 0 !important; }
@media (max-width: 991px) { .gd-tools { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 1199px) { .gd-tools-section { padding-top: 0; } } /* the cards above keep their 20px bottom margin there */
/* From 992px (two columns) the tools row follows the columns above: Jumpseat + Transfer under the main column, Airport Information under the side column */
@media (min-width: 992px) {
  .gd-tools { grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); }
  .gd-tools > .gd-tools-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
}

/* Dashboard: both columns end at the same line (only with two columns). When the main column is taller, the side
   column's last card (Discord, .gd-fill) takes the rest; when the Discord list is longer, it grows, pushes the tools row
   down (the main column then ends higher) */
.gca2-dash .gd-fill .card > .card-body { max-height: none !important; } /* the widget caps the list at 282px; show every member */
@media (min-width: 1200px) {
  .gd-grid.gd-grid-even { align-items: stretch; }
  .gd-grid-even > .gd-col { display: flex; flex-direction: column; }
  .gd-grid-even .gd-fill { flex: 1 1 auto; display: flex; flex-direction: column; min-height: 0; }
  /* the widget arrives wrapped in an inline .arrilot-widget-container */
  .gd-grid-even .gd-fill > .arrilot-widget-container { display: flex !important; flex-direction: column; flex: 1 1 auto; }
  .gca2-dash .gd-grid-even .gd-fill .card { flex: 1 1 auto; display: flex; flex-direction: column; margin-bottom: 0 !important; }
  .gca2-dash .gd-grid-even .gd-fill .card > .card-body { flex: 1 1 auto; } /* the footer stays at the bottom */
  /* the leaderboard cards end the main column: same bottom line, no extra margin under them (they keep their height if Discord is taller) */
  .gca2-dash .gd-grid-even .gd-trio .card { margin-bottom: 0 !important; }
}

/* Dashboard: Pilot Challenge trophy after "Welcome back, name" for the holder (gca2/dashboard/index.blade.php) */
.gca2-dash .gd-title-trophy { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 16px; }
.gca2-dash .gd-potm { position: relative; flex: 0 0 auto; padding: 0; border: 0; background: none; cursor: help; line-height: 0; border-radius: 10px; }
.gca2-dash .gd-potm img { width: clamp(44px, 4.2vw, 64px); height: auto; filter: drop-shadow(0 4px 14px rgba(242, 194, 48, 0.45)); }
.gca2-dash .gd-potm:focus-visible { outline: 2px solid var(--gl-accent); outline-offset: 4px; }
.gd-potm-tip { position: absolute; left: 50%; top: calc(100% + 8px); transform: translateX(-50%) translateY(6px); width: 280px; max-width: calc(100vw - 32px); z-index: 20;
  padding: 12px 14px; border: 1px solid var(--gl-accent); border-radius: 10px; background: rgba(8, 11, 48, 0.97); box-shadow: 0 10px 28px rgba(0, 0, 0, 0.5);
  font-family: var(--gl-sans); font-size: 13px; font-weight: 400; line-height: 1.5; letter-spacing: 0; text-transform: none; color: var(--gl-soft); text-align: left;
  opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s; }
.gd-potm-tip b { display: block; margin-bottom: 4px; color: #FFFFFF; font-size: 14px; font-weight: 700; }
.gd-potm:hover .gd-potm-tip, .gd-potm:focus .gd-potm-tip { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(0); }
@media (max-width: 575px) { .gd-potm-tip { left: 0; transform: translateY(6px); } .gd-potm:hover .gd-potm-tip, .gd-potm:focus .gd-potm-tip { transform: translateY(0); } }
@media (prefers-reduced-motion: reduce) { .gd-potm-tip { transition: none; } }

/* Dashboard news: the latest item only, folded to about 2/3 of the card with a long item in full (13.5em of text), Read more opens it */
.gca2-dash .gd-news-body { padding: 12px 16px 6px !important; }
.gd-news-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 14px; margin-bottom: 4px; }
.gca2-dash .gd-news-subject { margin: 0; font-family: var(--gl-cond); font-weight: 700; font-size: 19px; letter-spacing: 0.04em; color: #FFFFFF; }
.gd-news-meta { font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted); }
.gd-news-text { position: relative; max-height: 13.5em; overflow: hidden; font-size: 15px; line-height: 1.55; color: var(--gl-soft); }
.gd-news-text::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1.4em; background: linear-gradient(rgba(12, 16, 66, 0), rgba(12, 16, 66, 0.95)); pointer-events: none; }
.gd-news-text > :first-child { margin-top: 0; }
.gd-news-text h1, .gd-news-text h2, .gd-news-text h3, .gd-news-text h4 { font-size: 16px; margin: 0 0 4px; color: var(--gl-text); }
.gd-news-text img { max-width: 100%; height: auto; }
.gd-news.is-open .gd-news-text { max-height: none; }
.gd-news.is-open .gd-news-text::after { display: none; }
.gca2-dash .gd-news-foot { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 8px 16px !important; font-size: 13px; }
.gca2-dash .gd-news-foot a { color: var(--gl-accent); font-weight: 600; }
.gca2-dash .gd-news-more { padding: 0; border: 0; background: none; color: var(--gl-accent); font-family: var(--gl-sans); font-size: 13px; font-weight: 600; cursor: pointer; }
.gca2-dash .gd-news-more:hover { color: #FFFFFF; }
.gca2-dash .gd-news-more:focus-visible { outline: 2px solid var(--gl-accent); outline-offset: 2px; }

/* Map popups (DBasic map widgets, Leaflet): navy with light text and yellow links, like the cards
   (Leaflet's white popup made the theme's light link text unreadable) */
.gca2-dash .leaflet-popup-content-wrapper, .gca2-dash .leaflet-popup-tip {
  background: #0C1042; color: var(--gl-text); border: 1px solid var(--gl-line); box-shadow: 0 6px 20px rgba(0, 0, 0, 0.5);
}
.gca2-dash .leaflet-popup-content { color: var(--gl-text); font-size: 13px; line-height: 1.45; }
.gca2-dash .leaflet-popup-content a { color: var(--gl-accent); font-weight: 600; text-decoration: none; }
.gca2-dash .leaflet-popup-content a:hover { color: #FFFFFF; text-decoration: underline; }
.gca2-dash .leaflet-popup-content b, .gca2-dash .leaflet-popup-content strong { color: #FFFFFF; }
.gca2-dash .leaflet-container a.leaflet-popup-close-button { color: var(--gl-muted); }
.gca2-dash .leaflet-container a.leaflet-popup-close-button:hover { color: var(--gl-accent); }
/* The other Leaflet controls had the same light-on-white problem: zoom buttons, attribution, layer list */
.gca2-dash .leaflet-bar a, .gca2-dash .leaflet-bar a:hover { background: #0C1042; color: var(--gl-text); border-bottom-color: var(--gl-line); }
.gca2-dash .leaflet-bar a:hover { color: var(--gl-accent); }
.gca2-dash .leaflet-bar a.leaflet-disabled { background: #0C1042; color: var(--gl-muted); opacity: 0.6; }
.gca2-dash .leaflet-bar { border-color: var(--gl-line); }
.gca2-dash .leaflet-control-attribution { background: rgba(12, 16, 66, 0.8) !important; color: var(--gl-muted); }
.gca2-dash .leaflet-control-attribution a { color: var(--gl-soft); }
.gca2-dash .leaflet-control-layers-expanded { background: #0C1042; color: var(--gl-text); border: 1px solid var(--gl-line); }
.gca2-dash .leaflet-control-layers-expanded label { color: var(--gl-text); }
.gca2-dash .leaflet-control-layers-separator { border-top-color: var(--gl-line); }

/* ---------------------------------------------------------------- Fleet (.gfl-*: gca2/modules/DisposableBasic/fleet/index.blade.php; table = .gal-table from the airline page) */
.gca2-dash .gd-readout-value.gfl-warn { color: var(--gl-accent); }
.gca2-dash .gd-readout-value.gfl-dim { color: var(--gl-soft); }
@media (max-width: 1399px) { .gca2-dash .gfl-hide-lg { display: none; } } /* /dfleet: ICAO is under the registration too; the airline column returns at 1400px+ */
/* /dfleet search in the table card header */
.gca2-dash .card .card-header.gfl-head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 20px; }
.gfl-found { font-family: var(--gl-mono); font-size: 13px; letter-spacing: 0.04em; text-transform: none; color: var(--gl-accent); }
.gfl-search { position: relative; flex: 0 1 340px; min-width: 0; display: flex; align-items: center; }
.gfl-search > .fa-search { position: absolute; left: 12px; font-size: 14px; color: var(--gl-muted); pointer-events: none; }
.gca2-dash .card .gfl-search .form-control { height: 38px; padding: 0 12px 0 36px; font-size: 15px; }
.gca2-dash .card .gfl-search:has(.gfl-clear) .form-control { padding-right: 36px; } /* room for the clear link only when there is one */
.gca2-dash .card .gfl-search .form-control::placeholder { color: var(--gl-muted); }
.gca2-dash .card .gfl-search .form-control:focus { border-color: var(--gl-accent); box-shadow: 0 0 0 3px rgba(242, 194, 48, 0.2); background-color: rgba(7, 10, 43, 0.9); color: var(--gl-text); }
.gfl-search input[type="search"]::-webkit-search-cancel-button { display: none; } /* own clear link */
.gca2-dash .gfl-clear { position: absolute; right: 10px; color: var(--gl-muted); padding: 4px; }
.gca2-dash .gfl-clear:hover { color: var(--gl-accent); }
@media (max-width: 767px) { .gfl-search { flex-basis: 100%; } }
/* /dfleet: marker on the aircraft the logged-in pilot may fly (rank and type ratings) */
.gca2-dash .gfl-can { color: var(--gl-green); font-size: 12px; }
.gca2-dash .gp-apt-icao .gfl-can { margin-left: 7px; }
.gca2-dash .gfl-tabs .gp-chip.gk-active .gt-count { background: #0A0E3C; color: var(--gl-accent); } /* as the /dpireps tabs */
.gca2-dash .gfl-tabs .gp-chip.gk-active .gfl-can { color: #0A0E3C; }

/* ---------------------------------------------------------------- Aircraft page (.gac-*: gca2/modules/DisposableBasic/fleet/aircraft.blade.php; reuses .gd-loc, .gq-facts, .gal-table, .gx-bar) */
.gca2-dash .gq-show-title .gal-badges .badge { font-size: 12px; padding: 5px 10px; }
.gca2-dash .gd-meta a.gd-meta-item { color: var(--gl-soft); text-decoration: none; }
.gca2-dash .gd-meta a.gd-meta-item:hover { color: var(--gl-accent); }
.gca2-dash .gac-cannot, .gca2-dash .gac-cannot i { color: var(--gl-muted); }
.gac-loc-facts { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 8px; font-size: 14px; color: var(--gl-soft); }
.gac-loc-facts i { color: var(--gl-accent); margin-right: 6px; }
.gac-sub { margin-left: 10px; margin-right: auto; font-family: var(--gl-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.04em; text-transform: none; color: var(--gl-muted); }
.gac-map { width: 100%; height: 380px; border-radius: 0 0 12px 12px; }
.gca2-dash .gac-flt { color: var(--gl-text); font-weight: 600; }
.gca2-dash .gac-flt:hover { color: var(--gl-accent); }
/* Maintenance */
.gca2-dash .gac-mx { display: flex; flex-direction: column; gap: 16px; padding: 16px !important; }
.gac-mx-now { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid var(--gl-gold-line); border-radius: 10px; background: rgba(242, 194, 48, 0.1); color: var(--gl-accent); }
.gac-mx-state { display: flex; align-items: center; gap: 14px; }
.gac-mx-state .gac-mx-bar { flex: 1 1 auto; width: auto; height: 10px; }
.gac-mx-checks { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.gac-mx-check { padding: 12px 14px; border: 1px solid var(--gl-line); border-radius: 10px; background: rgba(7, 10, 43, 0.4); }
.gac-mx-check dl { margin: 8px 0 0; display: flex; flex-direction: column; gap: 4px; }
.gac-mx-check dl > div { display: flex; justify-content: space-between; gap: 8px; font-size: 14px; }
.gac-mx-check dt { font-weight: 500; color: var(--gl-soft); }
.gac-mx-check dd { margin: 0; }
.gca2-dash .gac-mx-check dd.gx-due { color: var(--gl-accent); font-weight: 600; }
.gac-mx-last { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 18px; font-size: 14px; color: var(--gl-soft); }
.gca2-dash .gac-mx-last a { color: var(--gl-text); font-weight: 600; }
.gca2-dash .gac-mx-last a:hover { color: var(--gl-accent); }
.gac-mx-cost { margin-left: auto; }
.gac-mx-cost b { font-family: var(--gl-mono); color: var(--gl-text); }
.gac-mx-nocost { margin-left: auto; color: var(--gl-muted); }
@media (max-width: 575px) { .gac-mx-checks { grid-template-columns: minmax(0, 1fr); } }
/* Fuel calculator */
.gca2-dash .gac-fuel { padding: 16px !important; display: flex; flex-direction: column; gap: 10px; }
.gac-fuel-in { display: flex; align-items: center; gap: 8px; }
.gca2-dash .card .gac-fuel-in .form-control { width: 84px; height: 40px; font-family: var(--gl-mono); font-size: 16px; text-align: right; }
.gca2-dash .card .gac-fuel-in .form-control:focus { border-color: var(--gl-accent); box-shadow: 0 0 0 3px rgba(242, 194, 48, 0.2); background-color: rgba(7, 10, 43, 0.9); color: var(--gl-text); }
.gac-fuel-in span { color: var(--gl-soft); margin-right: 8px; }
.gac-fuel-out { margin: 4px 0 0; display: flex; flex-direction: column; gap: 6px; }
.gac-fuel-out > div { display: flex; justify-content: space-between; gap: 8px; font-size: 15px; }
.gac-fuel-out dt { font-weight: 500; color: var(--gl-soft); }
.gac-fuel-out dd { margin: 0; }
.gac-fuel-out .gac-fuel-total { padding-top: 6px; border-top: 1px solid var(--gl-line-soft); }
.gca2-dash .gac-fuel-out .gac-fuel-total dd { color: var(--gl-green); font-weight: 600; }
.gac-fuel-src { margin: 0; font-size: 12px; color: var(--gl-muted); }
.gca2-dash .gac-route a { color: var(--gl-text); font-weight: 600; }
.gca2-dash .gac-route a:hover { color: var(--gl-accent); }
.gac-route i { margin: 0 6px; color: var(--gl-accent); font-size: 12px; }
/* Aircraft details: Configuration as a small list, one fare per line */
.gca2-dash .gq-facts > div.gac-wide { flex-basis: 100%; }
.gac-fares { list-style: none; margin: 2px 0 0; padding: 0; display: flex; flex-direction: column; gap: 2px; max-width: 320px; }
.gac-fares li { display: flex; justify-content: space-between; gap: 16px; font-family: var(--gl-sans); font-size: 14px; font-weight: 500; color: var(--gl-soft); }
.gac-fares li b { font-family: var(--gl-mono); font-size: 13px; font-weight: 600; color: var(--gl-text); white-space: nowrap; }
.gac-fares li.gac-fare-none, .gac-fares li.gac-fare-none b { color: var(--gl-muted); font-weight: 500; }
.gac-dd-sub { display: block; margin-top: 2px; font-family: var(--gl-sans); font-size: 13px; font-weight: 500; color: var(--gl-soft); }
/* Aircraft page: spec sheet table (details and statistics cards) - label left, value right */
.gac-sheet { width: 100%; margin: 4px 0; border-collapse: collapse; font-size: 14px; }
.gac-sheet th, .gac-sheet td { padding: 8px 16px; vertical-align: baseline; border-bottom: 1px solid var(--gl-line-soft); }
.gac-sheet tr:last-child > * { border-bottom: 0; }
.gac-sheet th { font-weight: 500; color: var(--gl-soft); white-space: nowrap; }
.gac-sheet td { text-align: right; font-weight: 600; color: var(--gl-text); }
.gac-sheet td.gp-mono { font-size: 14px; }
.gca2-dash .gac-sheet td a { color: var(--gl-text); }
.gca2-dash .gac-sheet td a:hover, .gca2-dash .gac-sheet td a:hover .gac-sheet-sub { color: var(--gl-accent); }
.gac-sheet-sub { font-weight: 500; color: var(--gl-soft); }
.gac-sheet tr.gac-sheet-group th { padding-top: 16px; padding-bottom: 6px; font-family: var(--gl-mono); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gl-muted); }
.gac-sheet tr.gac-sheet-group + tr > * { border-top: 0; }
.gac-sheet tr.gac-sheet-none > * { color: var(--gl-muted); font-weight: 500; }
/* Aircraft page: narrower side column (details, fuel, statistics), the Location box above follows it */
@media (min-width: 992px) {
  .gd-hero-row.gac-cols, .gd-grid.gac-cols { grid-template-columns: minmax(0, 1fr) clamp(300px, 28%, 380px); }
}
.gac-sheet .gac-sheet-sub { display: block; margin-top: 2px; font-size: 13px; } /* base airport name under the code */
/* Aircraft page: image in the hero, between the text and the Location box, as tall as the box.
   Grid rows: the text spans both rows, image + Location sit in the bottom row and stretch to the same height. */
.gac-hero-img { position: relative; margin: 0; overflow: hidden; border: 1px solid var(--gl-line); border-radius: 14px; background: rgba(10, 14, 60, 0.72); aspect-ratio: 16 / 9; }
.gac-hero-img img { display: block; width: 100%; height: 100%; object-fit: cover; }
.gac-hero-img figcaption { position: absolute; left: 0; right: 0; bottom: 0; padding: 18px 14px 8px; font-size: 13px; font-weight: 500; color: #FFFFFF;
  background: linear-gradient(180deg, rgba(7, 10, 43, 0) 0%, rgba(7, 10, 43, 0.85) 100%); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (min-width: 992px) {
  .gd-hero-row.gac-cols.gac-has-img { grid-template-columns: minmax(0, 1fr) auto clamp(300px, 28%, 380px); grid-template-rows: 1fr auto; }
  .gac-has-img > .gd-hero-text { grid-column: 1; grid-row: 1 / 3; }
  .gac-has-img > .gac-hero-img { grid-column: 2; grid-row: 2; align-self: stretch; aspect-ratio: auto; width: clamp(240px, 24vw, 360px); }
  .gac-has-img > .gac-hero-img img { position: absolute; inset: 0; }
  .gac-has-img > .gd-loc { grid-column: 3; grid-row: 2; align-self: stretch; }
}
@media (max-width: 991px) { .gac-hero-img { flex: 1 1 100%; max-height: 280px; } } /* one column: a wide, low strip above the Location box */
/* /dfleet: the "Search by map" box (between the readouts and the table) as wide as the last of the five status readouts above (right edges line up) */
@media (min-width: 992px) {
  .gk-toolbar.gfl-tabs { display: grid; grid-template-columns: minmax(0, 1fr) 20%; gap: 0 24px; align-items: end; }
  .gca2-dash .gfl-tabs > .gd-loc.gf-mapbox { min-width: 0; padding: 0 23px; } /* the button as wide as, and right above, the table search (box width minus the old 22px padding + 1px border) */
  /* five equal tiles, so 20% above matches the last one; long labels may wrap on narrower screens */
  .gd-readouts.gfl-readouts { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .gfl-readouts .gd-label { white-space: normal; }
  /* the search box in the table header as wide as the Fleet Map button in the Where is the fleet box, right edges in line
     (box = 20% of the card: header padding 2 x 16px + border 2px; button = box minus 2 x 22px padding and 2 x 1px border) */
  .gfl-search { flex: 0 0 calc((100% + 34px) / 5 - 46px); margin-right: 6px; }
}
@media (max-width: 991px) { .gfl-tabs > .gf-mapbox { flex: 1 1 100%; } }

/* ---------------------------------------------------------------- Maintenance costs on /dmaintenance (.gx-cost*, .gx-price*; reuses .gal-table and .gac-sheet) */
.gca2-dash .gx-costs-title { margin: 28px 0 14px; font-family: var(--gl-cond); font-weight: 700; font-size: 26px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gl-text); }
.gx-cost-readouts { margin-bottom: 20px; }
.gx-cost-grid { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 0 20px; align-items: start; }
@media (max-width: 991px) { .gx-cost-grid { grid-template-columns: minmax(0, 1fr); } }
.gca2-dash .gx-strong { color: var(--gl-text); font-weight: 600; }
.gca2-dash .gx-dim { color: var(--gl-soft); margin-left: 6px; }
.gx-price-pick { display: flex; align-items: center; gap: 12px; padding: 14px 16px 6px; }
.gca2-dash .card .gx-price-pick .form-select { flex: 1 1 auto; min-width: 0; height: 40px; background-color: rgba(7, 10, 43, 0.8); border: 1px solid var(--gl-edge); border-radius: 8px; color: var(--gl-text); font-family: var(--gl-mono); font-size: 14px; }
.gx-price-note { display: block; margin-top: 1px; font-size: 12px; font-weight: 500; color: var(--gl-muted); }
.gx-price-foot { margin: 0; padding: 10px 16px 14px; border-top: 1px solid var(--gl-line-soft); font-size: 12px; line-height: 1.5; color: var(--gl-muted); }
@media (max-width: 767px) { .gca2-dash .gx-cost-grid .gal-wrap, .gca2-dash .gal-table td.gal-wrap { min-width: 0; } }
.gx-only-xs { display: none; }
@media (max-width: 575px) {
  .gca2-dash .gx-hide-xs { display: none; }
  .gx-only-xs { display: block; font-size: 12px; color: var(--gl-muted); } /* the date under the check name */
}
.gx-prices td { white-space: nowrap; }

/* ---------------------------------------------------------------- NOTAMs (.gnt-*: gca2/modules/DisposableSpecial/notams/index.blade.php) */
.gnt-filter-note { font-size: 14px; color: var(--gl-soft); }
.gca2-dash .gnt-filter-note a { color: var(--gl-accent); }
.gnt-list { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 520px), 1fr)); gap: 20px; align-items: start; }
.gca2-dash .card.gnt-card { margin: 0; padding: 22px 24px 18px; display: flex; flex-direction: column; gap: 16px; border-left: 4px solid var(--gl-accent); }
.gca2-dash .card.gnt-card.gnt-airport { border-left-color: var(--gl-green); }
.gca2-dash .card.gnt-card.gnt-airline { border-left-color: #6F8BFF; }
.gnt-head { display: flex; flex-direction: column; gap: 10px; }
.gnt-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; font-size: 13px; }
.gnt-ident { font-family: var(--gl-mono); font-weight: 600; font-size: 13px; letter-spacing: 0.04em; color: var(--gl-accent); }
.gca2-dash .gnt-scope { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border: 1px solid var(--gl-edge); border-radius: 99px; color: var(--gl-soft); font-weight: 500; }
.gca2-dash a.gnt-scope:hover { border-color: var(--gl-accent); color: var(--gl-text); }
.gnt-scope i { font-size: 11px; color: var(--gl-muted); }
.gnt-new { padding: 2px 9px; border-radius: 99px; background: var(--gl-accent); color: #0A0E3C; font-family: var(--gl-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; text-transform: uppercase; }
.gca2-dash .gnt-repl { font-family: var(--gl-mono); font-size: 12px; color: var(--gl-muted); text-decoration: underline dotted; }
.gca2-dash .gnt-repl:hover { color: var(--gl-accent); }
.gca2-dash .gnt-title { margin: 0; font-family: var(--gl-cond); font-weight: 700; font-size: clamp(24px, 2.2vw, 30px); line-height: 1.1; text-transform: uppercase; letter-spacing: 0.02em; color: var(--gl-text); }
.gnt-validity { display: flex; flex-direction: column; gap: 10px; padding: 12px 14px; border: 1px solid var(--gl-line); border-radius: 10px; background: rgba(7, 10, 43, 0.4); }
.gnt-when { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 8px 26px; }
.gnt-when > span:not(.gnt-left) { display: flex; flex-direction: column; gap: 3px; }
.gnt-when b { font-family: var(--gl-mono); font-weight: 600; font-size: 14px; color: var(--gl-text); }
.gnt-left { margin-left: auto; font-family: var(--gl-mono); font-size: 13px; color: var(--gl-accent); }
.gnt-bar { display: block; height: 6px; border-radius: 99px; background: rgba(255, 255, 255, 0.08); overflow: hidden; }
.gnt-bar > span { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, var(--gl-green), var(--gl-accent)); }
.gnt-body { font-size: 16px; line-height: 1.6; color: var(--gl-soft); }
.gnt-body p { margin: 0 0 0.7em; }
.gnt-body p:last-child { margin-bottom: 0; }
.gca2-dash .gnt-body strong, .gca2-dash .gnt-body b { color: var(--gl-text); }
.gca2-dash .gnt-body a { color: var(--gl-accent); text-decoration: underline; }
.gnt-raw summary { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; font-family: var(--gl-mono); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gl-muted); list-style: none; }
.gnt-raw summary::-webkit-details-marker { display: none; }
.gnt-raw summary::after { content: "\203A"; font-size: 16px; transition: transform .15s ease; }
.gnt-raw[open] summary::after { transform: rotate(90deg); }
.gnt-raw summary:hover { color: var(--gl-accent); }
.gnt-raw-box { position: relative; margin-top: 10px; border: 1px solid var(--gl-line); border-radius: 8px; background: #050720; }
.gnt-raw-box pre { margin: 0; padding: 14px 16px; padding-right: 90px; font-family: var(--gl-mono); font-size: 13px; line-height: 1.6; color: var(--gl-green); white-space: pre-wrap; word-break: break-word; }
.gca2-dash .gnt-copy { position: absolute; top: 8px; right: 8px; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border: 1px solid var(--gl-edge); border-radius: 6px; background: rgba(10, 14, 60, 0.8); color: var(--gl-soft); font-size: 12px; cursor: pointer; }
.gca2-dash .gnt-copy:hover { border-color: var(--gl-accent); color: var(--gl-text); }
@media (max-width: 575px) {
  .gca2-dash .card.gnt-card { padding: 18px 16px 14px; }
  .gnt-left { margin-left: 0; width: 100%; }
}
.gnt-repl:not(a) { text-decoration: none !important; }
/* NOTAMs: even line breaks - balanced titles, no single word left on the last line of a paragraph, no hyphenation */
.gca2-dash .gnt-title { text-wrap: balance; hyphens: none; }
.gnt-body p, .gnt-body li { text-wrap: pretty; hyphens: none; overflow-wrap: break-word; }
.gnt-body { max-width: 68ch; }
.gnt-raw-box pre { word-break: normal; overflow-wrap: anywhere; }
/* Dashboard: "2 NOTAMs in effect" link in the hero meta line (small, like the other meta items) */
.gca2-dash a.gd-notams { color: var(--gl-soft); font-weight: 400; text-decoration: none; }
.gca2-dash a.gd-notams i { color: var(--gl-accent); }
.gca2-dash a.gd-notams:hover { color: var(--gl-accent); text-decoration: underline; text-underline-offset: 3px; }

/* ---------------------------------------------------------------- Operations Manual (.gom-*: gca2/modules/DisposableSpecial/pages/ops_manual.blade.php) */
.gom-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 0 28px; align-items: start; }
.gom-toc { position: sticky; top: 84px; }
.gom-toc details { padding: 16px 18px; border: 1px solid var(--gl-line); border-radius: 12px; background: var(--gl-panel); }
.gom-toc summary { cursor: default; list-style: none; margin-bottom: 10px; }
.gom-toc summary::-webkit-details-marker { display: none; }
.gom-toc ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.gca2-dash .gom-toc a { display: flex; align-items: baseline; gap: 10px; padding: 6px 8px; border-radius: 6px; color: var(--gl-soft); font-weight: 500; font-size: 14px; line-height: 1.3; }
.gca2-dash .gom-toc a:hover { color: var(--gl-text); background: rgba(255, 255, 255, 0.05); }
.gca2-dash .gom-toc a.gom-here { color: var(--gl-accent); background: rgba(242, 194, 48, 0.08); }
.gom-n { flex: 0 0 auto; min-width: 1.6em; font-family: var(--gl-mono); font-weight: 600; color: var(--gl-accent); }
.gom-body { display: flex; flex-direction: column; gap: 20px; min-width: 0; }
.gca2-dash .card.gom-ch { margin: 0; padding: 26px 30px 22px; scroll-margin-top: 84px; font-size: 16px; line-height: 1.65; color: var(--gl-soft); }
.gca2-dash .gom-ch h2 { display: flex; align-items: baseline; gap: 14px; margin: 0 0 14px; font-family: var(--gl-cond); font-weight: 700; font-size: 28px; line-height: 1.1; letter-spacing: 0.03em; text-transform: uppercase; color: var(--gl-text); text-wrap: balance; }
.gca2-dash .gom-ch h2 .gom-n { font-size: 0.8em; }
.gca2-dash .gom-ch h3 { margin: 18px 0 6px; font-family: var(--gl-sans); font-weight: 600; font-size: 17px; color: var(--gl-text); }
.gom-ch p, .gom-ch li { text-wrap: pretty; max-width: 74ch; }
.gom-ch p { margin: 0 0 10px; }
.gom-ch ul, .gom-ch ol { margin: 0 0 10px; padding-left: 1.3em; }
.gom-ch li { margin-bottom: 6px; }
.gca2-dash .gom-ch b { color: var(--gl-text); }
.gca2-dash .gom-ch a { color: var(--gl-accent); font-weight: 500; text-decoration: underline; text-underline-offset: 3px; }
.gom-steps { counter-reset: gom; list-style: none; padding-left: 0 !important; }
.gom-steps li { position: relative; padding-left: 2.2em; counter-increment: gom; }
.gom-steps li::before { content: counter(gom); position: absolute; left: 0; top: 0.1em; width: 1.5em; height: 1.5em; border-radius: 50%; background: rgba(242, 194, 48, 0.15); color: var(--gl-accent); font-family: var(--gl-mono); font-size: 0.85em; font-weight: 600; line-height: 1.5em; text-align: center; }
.gom-facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); gap: 10px; margin: 14px 0 0; }
.gom-facts > div { padding: 10px 12px; border: 1px solid var(--gl-line); border-radius: 8px; background: rgba(7, 10, 43, 0.4); }
.gom-facts dt { font-family: var(--gl-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gl-muted); }
.gom-facts dd { margin: 2px 0 0; font-family: var(--gl-mono); font-weight: 600; color: var(--gl-text); }
.gom-quote { margin: 4px 0 14px; padding: 12px 16px; border-left: 3px solid var(--gl-accent); border-radius: 0 8px 8px 0; background: #050720; font-family: var(--gl-mono); font-size: 13px; line-height: 1.6; color: var(--gl-green); }
.gom-table { width: 100%; max-width: 760px; margin: 6px 0 14px; border-collapse: collapse; font-size: 15px; }
.gom-table th { padding: 6px 10px; border-bottom: 1px solid var(--gl-line); font-family: var(--gl-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gl-muted); text-align: left; }
.gom-table td { padding: 8px 10px; border-bottom: 1px solid var(--gl-line-soft); color: var(--gl-soft); }
.gom-table tr:last-child td { border-bottom: 0; }
.gom-table .gom-r { text-align: right; white-space: nowrap; font-family: var(--gl-mono); }
.gom-table td:first-child { color: var(--gl-text); font-weight: 500; }
.gom-note { font-size: 14px; color: var(--gl-muted); }
.gom-ratings { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 10px; margin: 8px 0 0; }
.gom-ratings > div { padding: 10px 12px; border: 1px solid var(--gl-line); border-radius: 8px; background: rgba(7, 10, 43, 0.4); }
.gom-ratings dt { font-weight: 600; color: var(--gl-text); }
.gom-ratings dd { margin: 2px 0 0; font-size: 14px; line-height: 1.45; color: var(--gl-muted); }
.gom-end { margin-top: 16px !important; font-style: italic; color: var(--gl-text); }
@media (max-width: 991px) {
  .gom-layout { grid-template-columns: minmax(0, 1fr); }
  .gom-toc { position: static; margin-bottom: 20px; }
  .gom-toc summary { cursor: pointer; margin-bottom: 0; }
  .gom-toc details[open] summary { margin-bottom: 10px; }
}
@media (max-width: 575px) {
  .gca2-dash .card.gom-ch { padding: 20px 16px 16px; font-size: 15px; }
  .gca2-dash .gom-ch h2 { font-size: 23px; }
  .gom-table { font-size: 14px; }
  .gom-table th, .gom-table td { padding-left: 6px; padding-right: 6px; }
}

/* ---------------------------------------------------------------- Hub page (.gh2-*: gca2/modules/DisposableBasic/hubs/show.blade.php; reuses .gal-table, .gac-sheet, .gq-show-tabs) */
.gca2-dash .gh2-map { height: 360px; min-height: 0; border-radius: 12px; }
.gca2-dash .gal-table tr.gh2-group > th { padding-top: 14px; padding-bottom: 8px; background: rgba(7, 10, 43, 0.55); font-family: var(--gl-mono); font-size: 11px; font-weight: 500; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gl-accent); }
.gh2-group .gt-count { margin-left: 8px; }
.gca2-dash .gh2-here { margin-left: 7px; font-size: 11px; color: var(--gl-green); }
.gh2-dir { margin-right: 6px; font-family: var(--gl-sans); font-size: 11px; font-weight: 500; color: var(--gl-muted); text-transform: uppercase; letter-spacing: 0.06em; }
.gh2-pages { padding: 12px 16px 4px; }
.gh2-flag { height: 14px; width: auto; margin-right: 8px; vertical-align: -1px; }
.gh2-boards { margin-top: 12px; }
.gca2-dash .gh2-time .gd-loc-icao { font-size: 40px; }
@media (max-width: 575px) { .gca2-dash .gh2-map { height: 280px; } }
/* Hub page: "About" card (the hub's notes), folded at ~14em with a fade, Read more opens it */
.gca2-dash .gh2-about .card-body { padding: 18px 22px 16px !important; }
.gh2-about-text { position: relative; max-height: 14em; overflow: hidden; font-size: 16px; line-height: 1.65; color: var(--gl-soft); }
.gh2-about-text:not(.gh2-open):not(.gh2-all) { -webkit-mask-image: linear-gradient(180deg, #000 62%, transparent); mask-image: linear-gradient(180deg, #000 62%, transparent); } /* the text fades out, whatever the card background */
.gh2-about-text.gh2-open, .gh2-about-text.gh2-all { max-height: none; }
.gca2-dash .gh2-about-text h1, .gca2-dash .gh2-about-text h2, .gca2-dash .gh2-about-text h3 { margin: 0.9em 0 0.35em; font-family: var(--gl-cond); font-weight: 700; font-size: 22px; letter-spacing: 0.03em; text-transform: uppercase; color: var(--gl-text); text-wrap: balance; }
.gca2-dash .gh2-about-text > :first-child { margin-top: 0; }
.gh2-about-text p { margin: 0 0 0.75em; max-width: 74ch; text-wrap: pretty; }
.gh2-about-text ul { margin: 0 0 0.75em; padding-left: 1.2em; }
.gh2-about-text li p { margin: 0 0 0.2em; }
.gca2-dash .gh2-about-text strong, .gca2-dash .gh2-about-text b { color: var(--gl-text); }
.gca2-dash .gh2-more { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; padding: 6px 14px; border: 1px solid var(--gl-edge); border-radius: 8px; background: rgba(10, 14, 60, 0.55); color: var(--gl-text); font-weight: 600; font-size: 14px; cursor: pointer; }
.gca2-dash .gh2-more:hover { border-color: var(--gl-accent); }
.gh2-more[aria-expanded="true"] i { transform: rotate(180deg); }
.gca2-dash .gd-localtime { font-family: var(--gl-mono); font-weight: 600; color: var(--gl-text); }

/* ---------------------------------------------------------------- Flight assignments (.gas-*: gca2/modules/DisposableSpecial/assignments/index.blade.php) */
.gca2-dash .gas-month.gas-current { border-color: var(--gl-gold-line); }
.gas-now { margin-left: 12px; padding: 2px 9px; border-radius: 99px; background: var(--gl-accent); color: #0A0E3C; font-family: var(--gl-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; }
.gca2-dash .gas-month .card-header h5 { justify-content: flex-start; }
.gas-count { margin-left: auto !important; }
.gas-legs { list-style: none; margin: 0; padding: 6px 0; }
.gas-leg { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; padding: 12px 18px; border-bottom: 1px solid var(--gl-line-soft); }
.gas-leg:last-child { border-bottom: 0; }
.gas-n { display: inline-flex; align-items: center; justify-content: center; width: 30px; height: 30px; border-radius: 50%; border: 1px solid var(--gl-edge); font-family: var(--gl-mono); font-weight: 600; color: var(--gl-soft); }
.gas-done .gas-n { border-color: var(--gl-green); color: var(--gl-green); }
.gas-route { display: flex; align-items: center; gap: 10px; font-family: var(--gl-mono); font-weight: 600; font-size: 18px; color: var(--gl-text); }
.gas-route i { font-size: 13px; color: var(--gl-accent); }
.gca2-dash a.gas-apt { color: var(--gl-text); }
.gca2-dash a.gas-apt:hover { color: var(--gl-accent); }
.gas-sub { margin-top: 2px; font-size: 13px; color: var(--gl-muted); }
.gca2-dash .gas-sub a { color: var(--gl-soft); font-family: var(--gl-mono); font-weight: 600; }
.gca2-dash .gas-sub a:hover { color: var(--gl-accent); }
.gas-act { display: flex; align-items: center; gap: 10px; justify-content: flex-end; flex-wrap: wrap; }
.gas-state { display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.gca2-dash .gas-state-done, .gca2-dash a.gas-state-done { color: var(--gl-green); }
.gas-state-open { color: var(--gl-accent); }
.gas-state-open i { font-size: 9px; }
.gas-state-missed { color: var(--gl-muted); }
.gas-missed .gas-route, .gas-missed .gas-route a { color: var(--gl-muted) !important; }
.gca2-dash .gas-foot { display: flex; align-items: center; gap: 14px; padding: 10px 18px !important; font-size: 13px; color: var(--gl-soft); }
.gas-foot .gas-bar { flex: 1 1 auto; width: auto; max-width: 260px; }
.gas-earn { margin-left: auto; font-family: var(--gl-mono); color: var(--gl-green); }
.gca2-dash .gas-how { padding: 14px 18px !important; font-size: 14px; color: var(--gl-soft); }
.gas-how ul { margin: 0; padding-left: 1.1em; display: flex; flex-direction: column; gap: 6px; }
.gca2-dash .gas-staff { display: flex; flex-direction: column; gap: 10px; padding: 14px 18px !important; }
.gca2-dash .gas-staff .gd-btn { width: 100%; justify-content: center; }
.gca2-dash .gas-danger { border-color: #FF6B6B; color: #FFB3B3; }
.gca2-dash .gas-danger:hover { border-color: #FF6B6B; color: #FFFFFF; background: rgba(255, 107, 107, 0.15); }
.gca2-dash .gas-empty a { color: var(--gl-accent); }
@media (max-width: 575px) {
  .gas-leg { grid-template-columns: auto minmax(0, 1fr); padding: 12px 14px; }
  .gas-act { grid-column: 1 / -1; justify-content: flex-start; padding-left: 46px; }
}
/* Assignments: is the feature running (automatic or by staff) */
.gas-status { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; align-self: flex-start; max-width: 100%; padding: 8px 14px; border: 1px solid var(--gl-line); border-radius: 10px; background: rgba(10, 14, 60, 0.6); font-size: 14px; color: var(--gl-soft); }
.gas-status b { color: var(--gl-text); font-weight: 600; }
.gas-dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; }
.gas-status-on { border-color: rgba(92, 242, 154, 0.4); }
.gas-status-on .gas-dot { background: var(--gl-green); box-shadow: 0 0 0 4px rgba(92, 242, 154, 0.15); }
.gas-status-off { border-color: var(--gl-gold-line); }
.gas-status-off .gas-dot { background: var(--gl-accent); box-shadow: 0 0 0 4px rgba(242, 194, 48, 0.15); }
.gas-status-sub { color: var(--gl-muted); }
.gas-staff-note { margin: 0 0 4px; font-size: 13px; color: var(--gl-soft); }
.gca2-dash .gas-staff-note a { color: var(--gl-accent); }

/* ---------------------------------------------------------------- Free Flight (.gff-*: gca2/modules/DisposableSpecial/freeflights/index.blade.php; reuses .gas-status, .gac-sheet, .gas-how) */
.gca2-dash .gff-cost-chip b { color: var(--gl-accent); }
.gff-current { margin-top: 2px; }
.gca2-dash .gff-link { margin-left: 4px; color: var(--gl-accent); font-weight: 600; }
.gca2-dash .gff-card .card-body { padding: 22px 24px 20px !important; }
.gff-route { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: start; gap: 6px 18px; padding-bottom: 20px; margin-bottom: 18px; border-bottom: 1px solid var(--gl-line-soft); }
.gff-apt { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gca2-dash .card .gff-icao { height: 64px; font-family: var(--gl-mono); font-weight: 600; font-size: 34px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gl-green); background-color: rgba(7, 10, 43, 0.8); }
.gca2-dash .card .gff-icao::placeholder { color: var(--gl-line); }
.gca2-dash .card .gff-icao[readonly] { color: var(--gl-soft); }
.gca2-dash .card .form-control:focus, .gca2-dash .card .form-select:focus { border-color: var(--gl-accent); box-shadow: 0 0 0 3px rgba(242, 194, 48, 0.2); background-color: rgba(7, 10, 43, 0.9); color: var(--gl-text); }
.gca2-dash .gff-icao:focus { color: var(--gl-green) !important; }
.gff-apt-name { min-height: 1.4em; font-size: 14px; color: var(--gl-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gff-apt-name.gff-ok { color: var(--gl-soft); }
.gff-apt-name.gff-bad { color: #FF8A8A; }
.gff-route-icon { margin-top: 42px; font-size: 20px; color: var(--gl-accent); }
.gff-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px 18px; }
.gff-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.gff-wide { grid-column: 1 / -1; }
.gff-inline { display: flex; gap: 8px; }
.gca2-dash .card .gff-field .form-control, .gca2-dash .card .gff-field .form-select { height: 42px; font-size: 15px; }
.gca2-dash .card .gff-field .form-select { background-color: rgba(7, 10, 43, 0.8); border: 1px solid var(--gl-edge); border-radius: 8px; color: var(--gl-text); }
.gca2-dash .card .gff-field .form-select option, .gca2-dash .card .gff-field .form-select optgroup { background: #0C1042; color: var(--gl-text); }
.gca2-dash .gff-num { flex: 0 0 110px; font-family: var(--gl-mono); }
.gff-fixed { display: inline-flex; align-items: center; padding: 0 12px; height: 42px; border: 1px solid var(--gl-line); border-radius: 8px; background: rgba(7, 10, 43, 0.5); font-family: var(--gl-mono); font-weight: 600; color: var(--gl-soft); }
.gff-opt { margin-left: 6px; letter-spacing: 0.06em; color: var(--gl-line); }
.gff-ac-foot { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 18px; font-size: 13px; }
.gff-check { display: inline-flex; align-items: center; gap: 8px; color: var(--gl-soft); cursor: pointer; }
.gff-check input { accent-color: var(--gl-accent); }
.gff-ac-note { color: var(--gl-accent); }
.gca2-dash .gff-neg { color: #FF8A8A !important; }
.gff-go { padding: 16px; border-top: 1px solid var(--gl-line-soft); }
.gca2-dash .gff-go .gd-btn { width: 100%; justify-content: center; min-height: 48px; font-size: 16px; }
.gca2-dash .gff-go .gd-btn:disabled { opacity: 0.45; cursor: not-allowed; filter: grayscale(0.4); }
.gff-go-note { margin: 10px 0 0; font-size: 12px; line-height: 1.5; color: var(--gl-muted); }
@media (max-width: 575px) {
  .gca2-dash .gff-card .card-body { padding: 18px 16px !important; }
  .gff-route { grid-template-columns: minmax(0, 1fr); }
  .gff-route-icon { display: none; }
  .gff-fields { grid-template-columns: minmax(0, 1fr); }
  .gca2-dash .card .gff-icao { height: 56px; font-size: 28px; }
}
/* Free Flight: "N396GC (GCA) is at TFFS" + switch airline button, when the chosen airline has nothing at the departure */
.gff-ac-hint:empty { display: none; }
.gff-ac-hint { display: flex; flex-direction: column; gap: 8px; margin-top: 4px; }
.gff-hint-row { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 14px; padding: 10px 14px; border: 1px solid var(--gl-gold-line); border-radius: 10px; background: rgba(242, 194, 48, 0.08); font-size: 14px; color: var(--gl-soft); }
.gff-hint-row b { color: var(--gl-text); font-family: var(--gl-mono); }
.gca2-dash .gff-switch { min-height: 34px; padding: 0 12px; font-size: 13px; }
/* Free Flight: the aircraft rules in force (settings) */
.gff-rules { display: flex; flex-wrap: wrap; gap: 6px 8px; margin-bottom: 2px; }
.gff-rule { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border: 1px solid var(--gl-line); border-radius: 99px; background: rgba(7, 10, 43, 0.5); font-size: 12px; color: var(--gl-soft); }
.gff-rule i { font-size: 11px; color: var(--gl-green); }
.gff-rule-strict { border-color: var(--gl-gold-line); }
.gff-rule-strict i { color: var(--gl-accent); }
.gca2-dash .gff-staff { margin-top: 12px; padding-top: 10px; border-top: 1px solid var(--gl-line-soft); }
/* Airport page: the pilot's Current Airport box, relation to this airport */
.ga2-rel { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 8px; font-size: 14px; color: var(--gl-soft); }
.ga2-rel i { color: var(--gl-accent); margin-right: 6px; }
.gca2-dash .ga2-rel a { color: var(--gl-text); }
.gca2-dash .ga2-rel a:hover { color: var(--gl-accent); }
.ga2-rel-here { color: var(--gl-green); font-weight: 600; }
.ga2-rel-here i { color: var(--gl-green); }
.gd-loc-links > span { color: var(--gl-soft); } .gd-loc-links > span i { color: var(--gl-accent); margin-right: 6px; }
/* "Local time 14:40 UTC+02:00": the offset small and muted (as the old airport page meta line) */
.gd-utcoff { margin-left: 6px; font-family: var(--gl-mono); font-size: 11px; color: var(--gl-muted); }
/* Location boxes (dashboard Current Airport, aircraft Location, Free Flight From, airport/hub boxes): one fact per line,
   so the box grows in height and the text never needs the width */
.gd-loc .gac-loc-facts { flex-direction: column; flex-wrap: nowrap; gap: 4px; }
.gd-loc .gac-loc-facts > span { display: flex; align-items: baseline; min-width: 0; }
.gd-loc .gac-loc-facts > span i { flex: 0 0 18px; margin-right: 6px; text-align: center; }
.gd-loc .ga2-rel { flex-direction: column; gap: 4px; }
.ga2-rel .ga2-dist { margin-left: 6px; color: var(--gl-muted); }
.gca2-dash .gp-chip.ga2-country { display: inline-flex; align-items: center; gap: 7px; } .gp-chip.ga2-country img { height: 12px; width: auto; }
.ga2-dist-only { color: var(--gl-muted); }
.gca2-dash .ga2-dist-only a { color: var(--gl-soft); font-weight: 600; }
.gca2-dash .gq-show-title .gp-chip.ga2-country { font-family: var(--gl-mono); font-size: 12px; font-weight: 500; }
.gca2-dash .gd-loc-icao.gd-localtime { color: var(--gl-green); } /* the big clock in a Local time box (airport page) stays green */

/* ---------------------------------------------------------------- Downloads (.gdl-*: gca2/downloads/index.blade.php) */
.gca2-dash a.card.gdl-acars { display: flex; align-items: center; gap: 18px; margin-bottom: 20px; padding: 18px 22px; border-color: var(--gl-gold-line); color: var(--gl-text); text-decoration: none; }
.gdl-acars > i { font-size: 30px; color: var(--gl-accent); }
.gdl-acars > span:nth-child(2) { flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; }
.gdl-acars b { font-size: 18px; } .gdl-acars small { color: var(--gl-muted); font-size: 13px; }
.gdl-group { padding: 18px 20px 6px; border-bottom: 1px solid var(--gl-line-soft); }
.gdl-group:last-child { border-bottom: 0; padding-bottom: 18px; }
.gca2-dash .gdl-group-title { display: flex; align-items: center; gap: 10px; margin: 0 0 14px; font-family: var(--gl-cond); font-weight: 700; font-size: 20px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gl-text); }
.gdl-group-title > i { font-size: 15px; color: var(--gl-accent); }
.gdl-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.gca2-dash a.gdl-file { display: flex; align-items: center; gap: 14px; padding: 10px 14px 10px 10px; border: 1px solid var(--gl-line); border-radius: 10px; background: rgba(7, 10, 43, 0.45); color: var(--gl-text); font-weight: 400; text-decoration: none; transition: border-color .15s ease, background .15s ease; }
.gca2-dash a.gdl-file:hover { border-color: var(--gl-accent); background: rgba(242, 194, 48, 0.06); color: var(--gl-text); }
.gdl-thumb { flex: 0 0 64px; width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; border-radius: 8px; background: rgba(255, 255, 255, 0.06); overflow: hidden; }
.gdl-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; }
.gdl-thumb i { font-size: 26px; color: var(--gl-soft); }
.gdl-info { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.gdl-info b { font-weight: 600; overflow-wrap: anywhere; }
.gdl-info small { font-size: 13px; color: var(--gl-muted); }
.gdl-meta { display: flex; gap: 10px; font-size: 12px; color: var(--gl-muted); }
.gdl-ext { font-family: var(--gl-mono); letter-spacing: 0.06em; }
.gdl-dl { flex: 0 0 auto; color: var(--gl-muted); }
.gca2-dash a.gdl-file:hover .gdl-dl { color: var(--gl-accent); }
@media (prefers-reduced-motion: reduce) { .gca2-dash a.gdl-file { transition: none; } }
@media (max-width: 575px) { .gdl-group { padding: 16px 14px 4px; } .gdl-grid { grid-template-columns: minmax(0, 1fr); } }
/* Aircraft page: photo placeholder when there is no aircraft/subfleet image */
.gac-hero-img.gac-noimg { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; border-style: dashed; border-color: var(--gl-edge); background: rgba(7, 10, 43, 0.45); color: var(--gl-muted); text-align: center; padding: 14px; }
.gac-noimg > i { font-size: 38px; color: var(--gl-line); transform: rotate(-45deg); }
.gac-noimg > span { font-size: 13px; font-weight: 500; letter-spacing: 0.04em; }
.gac-noimg > small { font-family: var(--gl-mono); font-size: 11px; color: var(--gl-muted); opacity: 0.75; overflow-wrap: anywhere; }
@media (max-width: 991px) { .gac-hero-img.gac-noimg { min-height: 120px; } }
/* Aircraft photo: admin upload / remove buttons on the photo (GcaTweaks) */
.gac-photo-tools { position: absolute; top: 10px; right: 10px; display: flex; gap: 6px; z-index: 2; }
.gac-noimg .gac-photo-tools { position: static; margin-top: 4px; }
.gac-photo-form { margin: 0; }
.gca2-dash .gac-photo-btn { display: inline-flex; align-items: center; gap: 7px; margin: 0; padding: 6px 12px; border: 1px solid var(--gl-edge); border-radius: 8px; background: rgba(7, 10, 43, 0.85); color: var(--gl-text); font-size: 13px; font-weight: 600; cursor: pointer; }
.gca2-dash .gac-photo-btn:hover { border-color: var(--gl-accent); color: #FFFFFF; }
.gca2-dash .gac-photo-btn i { color: var(--gl-accent); }
.gca2-dash .gac-photo-del i { color: #FF8A8A; }
.gac-photo-btn.is-busy { opacity: 0.6; pointer-events: none; }
.gac-photo-btn.is-busy i::before { content: "\f110"; }
.gac-sfphoto { color: rgba(255, 255, 255, 0.7); font-weight: 400; }
/* Aircraft photo shown whole (contain), on the box's navy: wide panoramas get a band above and below instead of a crop */
.gac-hero-img:not(.gac-noimg) { background: #070A2B; }
.gac-hero-img img { object-fit: contain; }
/* Aircraft page: Photo / Routes flown card (the photo moved out of the hero) */
.gac-photo { position: relative; margin: 0; aspect-ratio: 16 / 9; max-height: 520px; width: 100%; background: #070A2B; border-radius: 0 0 12px 12px; overflow: hidden; }
.gac-photo img { display: block; width: 100%; height: 100%; object-fit: contain; }
.gac-photo.gac-noimg { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; aspect-ratio: auto; min-height: 220px; border: 1px dashed var(--gl-edge); border-radius: 0 0 12px 12px; background: rgba(7, 10, 43, 0.45); color: var(--gl-muted); text-align: center; padding: 24px; }
.gac-media .gac-map { border-radius: 0; }
.gac-map-note { margin: 0; padding: 8px 16px 10px; font-size: 12px; color: var(--gl-muted); }
/* the photo box takes the image's own shape (no bands for wide panoramas), up to 520px high */
.gac-photo:not(.gac-noimg) { aspect-ratio: auto; max-height: none; }
.gac-photo:not(.gac-noimg) img { height: auto; max-height: 520px; margin: 0 auto; }

/* Aircraft photo slideshow (several photos: <registration>.jpg, -2.jpg …): one 16:9 frame, photos fade, shown whole */
.gac-photo.gac-slides { aspect-ratio: 16 / 9; max-height: 520px; }
.gac-photo.gac-slides img.gac-slide { position: absolute; inset: 0; width: 100%; height: 100%; max-height: none; object-fit: contain; opacity: 0; transition: opacity 0.6s ease; }
.gac-photo.gac-slides img.gac-slide.is-active { opacity: 1; }
.gac-photo:not(.gac-slides) img.gac-slide:not(.is-active) { display: none; }
.gac-slide-nav { position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--gl-edge); border-radius: 50%; background: rgba(7, 10, 43, 0.7); color: #FFFFFF; opacity: 0; transition: opacity 0.2s ease; }
.gac-slide-prev { left: 12px; }
.gac-slide-next { right: 12px; }
.gac-photo:hover .gac-slide-nav, .gac-slide-nav:focus-visible { opacity: 1; }
.gac-slide-nav:hover { border-color: var(--gl-accent); color: var(--gl-accent); }
@media (hover: none) { .gac-slide-nav { opacity: 0.85; } }
.gac-slide-dots { position: absolute; left: 0; right: 0; bottom: 10px; z-index: 2; display: flex; justify-content: center; gap: 7px; }
.gac-slide-dots button { width: 9px; height: 9px; padding: 0; border: 1px solid rgba(255, 255, 255, 0.8); border-radius: 50%; background: rgba(7, 10, 43, 0.5); }
.gac-slide-dots button.is-active { background: var(--gl-accent); border-color: var(--gl-accent); }

/* Aircraft photo admin menu: a discreet "⋯" in the top right corner (only for admins, only when there are own photos) */
.gac-photo-menu { position: absolute; top: 10px; right: 10px; z-index: 3; }
.gac-photo-menu > summary { list-style: none; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, 0.18); border-radius: 50%; background: rgba(7, 10, 43, 0.55); color: rgba(255, 255, 255, 0.75); cursor: pointer; opacity: 0.6; transition: opacity 0.2s ease, border-color 0.2s ease; }
.gac-photo-menu > summary::-webkit-details-marker { display: none; }
.gac-photo:hover .gac-photo-menu > summary, .gac-photo-menu[open] > summary, .gac-photo-menu > summary:focus-visible { opacity: 1; }
.gac-photo-menu > summary:hover, .gac-photo-menu[open] > summary { border-color: var(--gl-accent); color: var(--gl-accent); }
.gac-photo-menu-list { position: absolute; top: 40px; right: 0; min-width: 200px; padding: 6px; background: #0C1042; border: 1px solid var(--gl-line); border-radius: 10px; box-shadow: 0 14px 34px rgba(0, 0, 0, 0.45); }
.gac-photo-menu-list form { margin: 0; }
.gca2-dash .gac-photo-menu-item { display: flex; align-items: center; gap: 10px; width: 100%; margin: 0; padding: 8px 12px; border: 0; border-radius: 6px; background: none; color: var(--gl-soft); font-size: 14px; font-weight: 500; text-align: left; cursor: pointer; }
.gca2-dash .gac-photo-menu-item:hover { background: rgba(242, 194, 48, 0.08); color: #FFFFFF; }
.gca2-dash .gac-photo-menu-item i { width: 16px; text-align: center; color: var(--gl-accent); }
.gca2-dash .gac-photo-menu-item small { margin-left: auto; font-family: var(--gl-mono); font-size: 11px; color: var(--gl-muted); }
.gca2-dash .gac-photo-menu-item.gac-photo-del i { color: #FF8A8A; }
.gac-photo-menu-item.is-busy { opacity: 0.6; pointer-events: none; }
.gac-photo-menu-item.is-busy i::before { content: "\f110"; }
.gdl-empty { display: flex; align-items: center; gap: 10px; }
.gdl-empty i { color: var(--gl-line); }

/* ---------------------------------------------------------------- Statistics KPI section (.gkp-*: gca2/modules/DisposableBasic/stats/kpi.blade.php) */
.gkp { padding-top: 8px; padding-bottom: 12px; }
.gkp-head { display: flex; flex-direction: column; gap: 8px; margin-bottom: 18px; }
.gca2-dash .gkp-title { margin: 0; font-family: var(--gl-cond); font-weight: 700; font-size: clamp(26px, 2.6vw, 38px); line-height: 1.05; text-transform: uppercase; color: var(--gl-text); }
.gkp-sub { margin: 0; color: var(--gl-soft); font-size: 16px; }
/* On-track tiles: the readout look, status line in green/red with an icon + text */
.gkp-tiles { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; margin-bottom: 20px; background: var(--gl-gold-line); border: 1px solid var(--gl-gold-line); border-radius: 12px; overflow: hidden; }
.gkp-tile { background: rgba(9, 12, 52, 0.94); padding: 14px 16px; display: flex; flex-direction: column; gap: 6px; min-width: 0; border-top: 3px solid transparent; }
.gkp-tile.is-good { border-top-color: var(--gl-green); }
.gkp-tile.is-bad { border-top-color: #FF6B6B; }
.gkp-tile .gd-label { letter-spacing: 0.12em; }
.gkp-tile-value { font-family: var(--gl-mono); font-weight: 600; font-size: clamp(16px, 1.25vw, 20px); line-height: 1.2; color: var(--gl-text); overflow-wrap: anywhere; }
.gkp-tile-meta { font-size: 13px; color: var(--gl-muted); }
.gkp-status { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; margin-top: auto; font-weight: 600; font-size: 14px; color: var(--gl-muted); }
.gkp-tile.is-good .gkp-status { color: var(--gl-green); }
.gkp-tile.is-bad .gkp-status { color: #FF8A8A; }
.gkp-diff { font-family: var(--gl-mono); font-weight: 500; font-size: 13px; white-space: nowrap; }
.gkp-good { color: var(--gl-green); }
.gkp-bad { color: #FF8A8A; }
.gkp-flat { color: var(--gl-muted); }
.gkp-arrow { font-size: 16px; }
@media (max-width: 1199px) {
  .gkp-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .gkp-tile:last-child { grid-column: span 2; } /* 7 tiles: the last one fills the empty cell (4 and 2 columns) */
}
@media (max-width: 767px) { .gkp-tiles { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
/* Table */
.gca2-dash .gkp-table { min-width: 980px; }
.gca2-dash .gkp-table th, .gca2-dash .gkp-table td { white-space: nowrap; vertical-align: middle; }
.gca2-dash .gkp-table tbody th { font-weight: 500; color: var(--gl-soft); }
/* Phones/tablets: the table scrolls sideways, the row labels stay in view */
@media (max-width: 1199px) {
  .gca2-dash .gkp-table tbody th[scope="row"], .gca2-dash .gkp-table thead th:first-child { position: sticky; left: 0; z-index: 1; background: #0C1046; }
  .gca2-dash .gkp-table .gkp-group-row th { position: sticky; left: 0; }
}
@media (max-width: 767px) {
  .gca2-dash .gkp-table tbody th[scope="row"] { white-space: normal; min-width: 130px; max-width: 150px; line-height: 1.3; }
  .gkp-icao { display: block; }
}
.gca2-dash .gkp-table .gkp-num { text-align: right; font-family: var(--gl-mono); }
.gca2-dash .gkp-table thead .gkp-num { font-family: var(--gl-sans); }
.gkp-hint { display: block; font-size: 11px; font-weight: 400; letter-spacing: 0.04em; color: var(--gl-muted); text-transform: none; }
.gca2-dash .gkp-table .gkp-group-row th { padding-top: 14px; font-family: var(--gl-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gl-accent); }
.gkp-icao { display: inline-block; min-width: 3.4em; font-family: var(--gl-mono); color: var(--gl-muted); }
.gca2-dash .gkp-table .gkp-total > * { color: #FFFFFF; font-weight: 600; background: rgba(242, 194, 48, 0.07); }
.gca2-dash .gkp-table .gkp-proj > * { color: var(--gl-accent); }
.gca2-dash .gkp-note { font-size: 14px; color: var(--gl-muted); }
/* Chart */
.gca2-dash .gkp-chart-head { padding: 0 !important; }
.gca2-dash .gkp-chart-head .gp-tabs { margin: 0; }
.gkp-chart-caption { margin: 0 0 4px; font-size: 14px; color: var(--gl-soft); }
.gkp-chart { min-height: 380px; }
.gkp-method { margin: 0 0 24px; padding: 14px 18px; border: 1px solid var(--gl-line); border-radius: 12px; background: rgba(9, 12, 52, 0.6); font-size: 14px; color: var(--gl-soft); }
.gca2-dash .gkp-method h3 { margin: 0 0 6px; font-family: var(--gl-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.16em; text-transform: uppercase; color: var(--gl-muted); }
.gkp-method ul { margin: 0; padding-left: 18px; }
.gkp-method li { margin: 3px 0; }

/* ---------------------------------------------------------------- File Library admin tools (.gfl-*: gca2/downloads/index.blade.php, GcaTweaks FileLibraryController) */
.gdl-item { position: relative; min-width: 0; }
.gdl-item > a.gdl-file { height: 100%; }
.gca2-dash .gdl-item:has(.gfl-del-form) > a.gdl-file { padding-right: 52px; }
.gfl-del-form { position: absolute; top: 50%; right: 10px; transform: translateY(-50%); margin: 0; }
.gca2-dash .gfl-del {
  width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center;
  border: 1px solid var(--gl-line); border-radius: 8px; background: rgba(7, 10, 43, 0.7); color: var(--gl-muted); font-size: 14px;
}
.gca2-dash .gfl-del:hover, .gca2-dash .gfl-del:focus-visible { border-color: #FF6B6B; color: #FF8A8A; outline: none; }
.gca2-dash .gdl-item:has(.gfl-del-form) .gdl-dl { display: none; } /* the delete button takes the download icon's place */
.gfl-form { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px 20px; }
.gfl-wide { grid-column: 1 / -1; }
.gfl-field { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.gfl-field small { font-size: 13px; color: var(--gl-muted); }
.gfl-field .gd-label small { font-size: inherit; text-transform: none; letter-spacing: 0; }
.gca2-dash .gfl-field input[type=text], .gca2-dash .gfl-field select, .gca2-dash .gfl-field input[type=file] {
  min-height: 44px; padding: 8px 12px; border: 1px solid var(--gl-edge); border-radius: 8px;
  background: rgba(7, 10, 43, 0.7); color: var(--gl-text); font-size: 15px;
}
.gca2-dash .gfl-field select option, .gca2-dash .gfl-field select optgroup { background: #0C1042; color: var(--gl-text); }
.gca2-dash .gfl-field input:focus, .gca2-dash .gfl-field select:focus { border-color: var(--gl-accent); outline: none; }
.gca2-dash .gfl-field input[type=file]::file-selector-button { margin-right: 12px; padding: 6px 12px; border: 0; border-radius: 6px; background: #1F3BB3; color: #FFFFFF; font-weight: 600; }
.gfl-buttons { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.gfl-too-big, .gfl-errors { color: #FFB4B4; font-weight: 600; }
.gfl-errors { margin-bottom: 14px; padding: 10px 14px; border: 1px solid rgba(255, 107, 107, 0.5); border-left: 4px solid #FF6B6B; border-radius: 8px; background: rgba(255, 107, 107, 0.08); }
@media (max-width: 767px) { .gfl-form { grid-template-columns: minmax(0, 1fr); } }

/* ---------------------------------------------------------------- File Library "Front page" tab (.gfs-*: landing slideshow, GcaTweaks SlideController) */
.gfs-intro { margin: 0 0 16px; max-width: 900px; color: var(--gl-soft); font-size: 15px; }
.gfs-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; }
.gfs-slide { margin: 0; display: flex; flex-direction: column; border: 1px solid var(--gl-line); border-radius: 10px; overflow: hidden; background: rgba(7, 10, 43, 0.45); }
.gfs-slide.is-shown { border-color: rgba(92, 242, 154, 0.45); }
.gfs-slide img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; display: block; background: rgba(255, 255, 255, 0.04); }
.gfs-slide.is-hidden img { opacity: 0.4; filter: grayscale(0.7); }
.gfs-slide figcaption { display: flex; flex-direction: column; gap: 4px; padding: 10px 12px 12px; min-width: 0; }
.gfs-slide figcaption b { font-weight: 600; overflow-wrap: anywhere; }
.gfs-slide figcaption small { font-size: 13px; color: var(--gl-muted); }
.gfs-state { font-family: var(--gl-mono); font-size: 12px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gl-muted); }
.gfs-slide.is-shown .gfs-state { color: var(--gl-green); }
.gfs-actions { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 8px; }
.gfs-actions form { margin: 0; }
.gca2-dash .gfs-actions .gd-btn { min-height: 36px; padding: 0 14px; font-size: 14px; }
.gfs-actions .gfl-del-form.gfs-del { position: static; transform: none; }

/* ---------------------------------------------------------------- SimBrief planning form (.gsf-*: gca2/flights/simbrief_form.blade.php; builds on .gff-* and .gac-sheet) */
.gca2-dash .gsf-go-box { gap: 10px; }
.gsf-go-route { display: flex; align-items: center; gap: 14px; font-family: var(--gl-mono); font-weight: 600; font-size: 34px; line-height: 1.1; color: var(--gl-green); }
.gsf-go-route i { font-size: 18px; color: var(--gl-accent); }
.gsf-rules-now { font-family: var(--gl-mono); font-size: 13px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gl-soft); }
/* IFR orange, VFR green (hero box, summary, switch) */
.gsf-rules-now, .gca2-dash .gac-sheet td[data-gsf-rules] { color: #FF9F43; }
.gsf-rules-now.is-vfr, .gca2-dash .gac-sheet td.is-vfr { color: var(--gl-green); }
.gca2-dash .gsf-generate { justify-content: center; margin-top: 6px; min-height: 48px; font-size: 16px; }
.gsf-route .gff-route-icon { margin-top: 38px; }
.gca2-dash .card .gsf-route .gff-icao:disabled { color: var(--gl-green); background-color: rgba(7, 10, 43, 0.8); opacity: 1; }
.gsf-apt-opts { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 6px; }
.gsf-mini { display: flex; flex-direction: column; gap: 4px; margin: 0; min-width: 120px; flex: 1 1 120px; }
.gsf-mini > span { font-family: var(--gl-mono); font-size: 11px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gl-muted); }
.gca2-dash .card .gsf-mini .form-select, .gca2-dash .card .gsf-opt .form-select, .gca2-dash .card .gsf-opt .form-control {
  height: 40px; font-size: 14px; background-color: rgba(7, 10, 43, 0.8); border: 1px solid var(--gl-edge); border-radius: 8px; color: var(--gl-text);
}
.gca2-dash .card .gsf-opt .form-control:disabled, .gca2-dash .card .gsf-opt .form-select:disabled { color: var(--gl-muted); background-color: rgba(7, 10, 43, 0.45); border-color: var(--gl-line); }
.gca2-dash .card .gsf-mini .form-select option, .gca2-dash .card .gsf-opt .form-select option { background: #0C1042; color: var(--gl-text); }
/* Flight rules switch: IFR (default, left) / VFR (right); the checkbox underneath is #gsf-vfr */
.gsf-rules { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 18px; margin: 0 0 18px; }
.gsf-switch { display: inline-flex; align-items: center; gap: 12px; margin: 0; cursor: pointer; user-select: none; }
.gsf-switch input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gsf-switch-side { font-family: var(--gl-mono); font-weight: 600; font-size: 16px; letter-spacing: 0.08em; color: var(--gl-muted); transition: color .15s ease; }
.gsf-switch .gsf-ifr:has(~ input:not(:checked)) { color: #FF9F43; }
.gsf-switch input:checked ~ .gsf-vfr-side { color: var(--gl-green); }
.gsf-switch-track { position: relative; width: 58px; height: 30px; border-radius: 99px; border: 1px solid #FF9F43; background: rgba(255, 159, 67, 0.14); transition: background .15s ease, border-color .15s ease; }
.gsf-switch-knob { position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #FF9F43; transition: transform .15s ease, background .15s ease; }
.gsf-switch input:checked ~ .gsf-switch-track { background: rgba(92, 242, 154, 0.14); border-color: var(--gl-green); }
.gsf-switch input:checked ~ .gsf-switch-track .gsf-switch-knob { transform: translateX(28px); background: var(--gl-green); }
.gsf-switch input:focus-visible ~ .gsf-switch-track { outline: 2px solid #FFFFFF; outline-offset: 2px; }
.gsf-switch:hover .gsf-switch-track { box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.08); }
.gsf-rules-hint { font-size: 13px; color: var(--gl-muted); }
.gsf-rules:not(:has(input:checked)) .gsf-rules-hint { visibility: hidden; }
@media (prefers-reduced-motion: reduce) { .gsf-switch-knob, .gsf-switch-track, .gsf-switch-side { transition: none; } }
.gca2-dash .gsf-side-btn { flex: 0 0 auto; min-height: 42px; font-size: 14px; white-space: nowrap; }
.gsf-time { align-items: center; }
.gca2-dash .card .gsf-time .form-control { flex: 0 0 76px; text-align: center; }
.gsf-time > span { font-family: var(--gl-mono); color: var(--gl-muted); }
/* Aircraft card */
.gsf-ac-head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 12px 20px; padding: 16px 16px 14px; border-bottom: 1px solid var(--gl-line-soft); }
.gsf-ac-reg { display: block; font-family: var(--gl-mono); font-size: 26px; color: var(--gl-green); }
.gsf-ac-name { color: var(--gl-soft); font-size: 14px; }
.gsf-airframe { flex: 0 1 300px; }
/* cells draw their own lines (right + bottom), so an incomplete last row leaves no coloured gaps */
.gsf-specs, .gsf-fares { display: grid; grid-template-columns: repeat(auto-fill, minmax(130px, 1fr)); overflow: hidden; }
.gsf-spec, .gsf-fare { display: flex; flex-direction: column; gap: 4px; padding: 12px 16px; min-width: 0; box-shadow: 1px 0 0 var(--gl-line-soft), 0 1px 0 var(--gl-line-soft); }
.gsf-spec .gd-label, .gsf-fare .gd-label { letter-spacing: 0.1em; font-size: 11px; }
.gca2-dash .gsf-spec-val, .gca2-dash .gsf-cell { width: 100%; padding: 0; border: 0; background: transparent; color: var(--gl-text); font-family: var(--gl-mono); font-weight: 600; font-size: 17px; opacity: 1; }
.gsf-spec small, .gsf-fare small { font-size: 12px; color: var(--gl-muted); }
.gsf-fares { border-bottom: 1px solid var(--gl-line-soft); }
.gca2-dash .gsf-weights th i { width: 18px; margin-right: 8px; color: var(--gl-accent); }
.gca2-dash .gsf-weights td { text-align: right; }
.gca2-dash .gsf-weights .gsf-cell { text-align: right; font-size: 15px; }
.gca2-dash .gsf-weights .gsf-total > * { background: rgba(242, 194, 48, 0.07); }
.gca2-dash .gsf-weights .gsf-total .gsf-cell { color: var(--gl-accent); }
.gsf-empty { margin: 0; padding: 16px; color: var(--gl-muted); }
/* Option lists in the side column: label left, control right */
.gsf-opts { display: flex; flex-direction: column; }
.gsf-opt { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); align-items: center; gap: 12px; margin: 0; padding: 8px 16px; border-bottom: 1px solid var(--gl-line-soft); }
.gsf-opt:last-child { border-bottom: 0; }
.gsf-opt > span, .gsf-opt > label { margin: 0; font-size: 14px; color: var(--gl-soft); }
.gsf-opt small { font-family: var(--gl-mono); font-size: 11px; color: var(--gl-muted); }
.gsf-unit { display: flex; gap: 6px; min-width: 0; }
.gca2-dash .card .gsf-unit .form-control { flex: 1 1 auto; min-width: 0; }
.gca2-dash .card .gsf-unit .form-select { flex: 0 0 74px; }
.gsf-tanker { padding: 10px 16px; font-size: 14px; }
.gca2-dash .gsf-tanker .text-success { color: var(--gl-green) !important; }
.gca2-dash .gsf-tanker .text-danger { color: #FF8A8A !important; }
/* Weather & NOTAMs */
.gca2-dash .gsf-wx-title { display: flex; align-items: center; gap: 10px; margin: 6px 0 12px; font-family: var(--gl-cond); font-weight: 700; font-size: 20px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--gl-text); }
.gsf-wx-title i { font-size: 15px; color: var(--gl-accent); }
@media (max-width: 991px) {
  .gd-pair.gsf-wx { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 575px) {
  .gsf-route { grid-template-columns: minmax(0, 1fr); }
  .gsf-route .gff-route-icon { display: none; }
  .gsf-go-route { font-size: 28px; }
}
.gsf-go-note { font-size: 12px; line-height: 1.5; color: var(--gl-muted); }
/* Weather & NOTAMs table (departure / arrival side by side, rows line up) */
.gsf-wxt { width: 100%; border-collapse: collapse; table-layout: fixed; font-size: 14px; }
.gsf-wxt th, .gsf-wxt td { padding: 12px 16px; vertical-align: top; border-bottom: 1px solid var(--gl-line-soft); text-align: left; }
.gsf-wxt tbody tr:last-child > * { border-bottom: 0; }
.gsf-wxt thead th:first-child, .gsf-wxt tbody th { width: 96px; }
.gsf-wxt td + td, .gsf-wxt th + th { border-left: 1px solid var(--gl-line-soft); }
.gca2-dash .gsf-wxt thead th { font-family: var(--gl-cond); font-weight: 700; font-size: 17px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gl-text); }
.gsf-wxt thead th i { margin-right: 8px; font-size: 14px; color: var(--gl-accent); }
.gsf-wxt-icao { margin-left: 6px; font-family: var(--gl-mono); font-size: 15px; color: var(--gl-green); letter-spacing: 0.04em; }
.gca2-dash .gsf-wxt tbody th { font-family: var(--gl-mono); font-size: 12px; font-weight: 500; letter-spacing: 0.12em; color: var(--gl-muted); }
.gsf-wxt-raw { font-family: var(--gl-mono); font-size: 13px; line-height: 1.55; color: var(--gl-text); overflow-wrap: anywhere; }
.gsf-wxt-cat { display: inline-block; margin: 0 8px 4px 0; padding: 1px 8px; border-radius: 99px; font-family: var(--gl-mono); font-size: 11px; font-weight: 600; letter-spacing: 0.08em; }
.gsf-wxt-cat.is-vmc { background: rgba(92, 242, 154, 0.15); color: var(--gl-green); }
.gsf-wxt-cat.is-imc { background: rgba(255, 107, 107, 0.15); color: #FF8A8A; }
.gsf-wxt-none { color: var(--gl-muted); }
.gsf-wxt-count { display: block; margin-bottom: 6px; font-family: var(--gl-mono); font-size: 12px; color: var(--gl-accent); }
.gsf-wxt-notams { max-height: 240px; overflow: auto; padding-right: 6px; scrollbar-color: var(--gl-edge) transparent; scrollbar-width: thin; }
.gsf-wxt-notam { padding: 6px 0; border-bottom: 1px dashed var(--gl-line-soft); font-size: 13px; color: var(--gl-soft); overflow-wrap: anywhere; }
.gsf-wxt-notam:last-child { border-bottom: 0; }
.gsf-wxt-foot { padding: 8px 16px; border-top: 1px solid var(--gl-line-soft); font-family: var(--gl-mono); font-size: 11px; color: var(--gl-muted); text-align: right; }
/* Phones: one column; each cell gets its airport as a small heading */
@media (max-width: 767px) {
  .gsf-wxt thead { display: none; }
  .gsf-wxt, .gsf-wxt tbody, .gsf-wxt tr, .gsf-wxt th, .gsf-wxt td { display: block; width: auto !important; }
  .gsf-wxt td + td { border-left: 0; }
  .gsf-wxt tbody th { padding-bottom: 0; border-bottom: 0; }
  .gsf-wxt td { padding-top: 8px; }
  .gsf-wxt td::before { content: attr(data-col); display: block; margin-bottom: 4px; font-family: var(--gl-mono); font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gl-accent); }
}
/* Summary inside the Flight card */
.gca2-dash .gsf-summary-title { margin: 22px 0 6px; padding-top: 16px; border-top: 1px solid var(--gl-line-soft); }
.gca2-dash .gff-card .gac-sheet.gsf-summary { margin: 0; }
.gca2-dash .gff-card .gsf-summary th, .gca2-dash .gff-card .gsf-summary td { padding-left: 0; padding-right: 0; }
.gca2-dash .gsf-summary td { text-align: right; }
/* Pilot in Command line under the flight number */
.gsf-pic { margin-top: -4px; font-size: 18px; font-weight: 600; color: #FFFFFF; }
.gsf-pic span { color: var(--gl-accent); }
/* Flight rules row: a cloud at the far right for IFR, a sun for VFR */
.gsf-rules-wx { margin-left: auto; font-size: 26px; line-height: 1; }
.gsf-wx-ifr { color: #FF9F43; }
.gsf-wx-vfr { color: var(--gl-green); display: none; }
.gsf-rules:has(input:checked) .gsf-wx-ifr { display: none; }
.gsf-rules:has(input:checked) .gsf-wx-vfr { display: inline-block; }

/* ---------------------------------------------------------------- SimBrief aircraft choice (.gsa-*: gca2/flights/simbrief_aircraft.blade.php; builds on .gsf-*, .gac-sheet, .gx-*) */
.gsa-grid { align-items: start; }
.gsa-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; padding: 12px 16px; border-bottom: 1px solid var(--gl-line-soft); }
.gsa-filter > i { color: var(--gl-muted); }
.gca2-dash .card .gsa-filter .form-control { flex: 1 1 220px; height: 40px; font-size: 15px; }
.gsa-list { display: flex; flex-direction: column; }
.gsa-item { position: relative; display: flex; align-items: center; gap: 14px; margin: 0; padding: 10px 16px; border-bottom: 1px solid var(--gl-line-soft); cursor: pointer; transition: background .12s ease; }
.gsa-item:last-of-type { border-bottom: 0; }
.gsa-item[hidden] { display: none; }
.gsa-item input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.gsa-item:hover { background: rgba(255, 255, 255, 0.03); }
.gsa-item.is-active { background: rgba(242, 194, 48, 0.08); box-shadow: inset 4px 0 0 var(--gl-accent); }
.gsa-item:has(input:focus-visible) { outline: 2px solid #FFFFFF; outline-offset: -2px; }
.gsa-thumb { flex: 0 0 88px; width: 88px; height: 50px; display: flex; align-items: center; justify-content: center; border-radius: 6px; background: rgba(255, 255, 255, 0.05); overflow: hidden; }
.gsa-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gsa-thumb i { color: var(--gl-line); font-size: 20px; }
.gsa-item-text { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.gsa-item-text b { font-family: var(--gl-mono); font-size: 17px; color: var(--gl-text); }
.gsa-item.is-active .gsa-item-text b { color: var(--gl-green); }
.gsa-item-text small { font-size: 13px; color: var(--gl-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.gsa-where { flex: 0 0 auto; font-family: var(--gl-mono); font-size: 13px; color: var(--gl-muted); }
.gsa-where i { margin-right: 6px; }
.gsa-where.is-here { color: var(--gl-green); }
/* Side: details stay in view while scrolling a long list */
@media (min-width: 992px) { .gsa-side { position: sticky; top: 16px; } }
.gsa-pick { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 40px 24px; text-align: center; color: var(--gl-muted); }
.gsa-pick i { font-size: 28px; color: var(--gl-accent); }
.gsa-pick p { margin: 0; max-width: 280px; }
.gsa-photo { aspect-ratio: 16 / 9; background: rgba(255, 255, 255, 0.04); display: flex; align-items: center; justify-content: center; overflow: hidden; }
.gsa-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.gsa-photo span { color: var(--gl-muted); font-size: 14px; }
.gsa-photo span i { margin-right: 8px; }
.gsa-head { display: flex; flex-direction: column; gap: 2px; padding: 14px 16px 10px; border-bottom: 1px solid var(--gl-line-soft); }
.gsa-sub { font-size: 13px; color: var(--gl-muted); }
.gca2-dash .gsa-detail .gac-sheet td { text-align: right; }
.gca2-dash .gsa-detail .gac-sheet .gx-pill { margin-left: 8px; }
.gsa-stats { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--gl-line-soft); border-bottom: 1px solid var(--gl-line-soft); }
.gsa-stats > div { display: flex; flex-direction: column; gap: 2px; padding: 12px 14px; min-width: 0; }
.gsa-stats > div + div { border-left: 1px solid var(--gl-line-soft); }
.gsa-stats .gd-label { font-size: 10px; letter-spacing: 0.1em; }
.gsa-stats b { font-family: var(--gl-mono); font-size: 17px; color: var(--gl-text); }
.gsa-stats small { font-size: 11px; color: var(--gl-muted); }
.gsa-links { padding: 10px 16px 4px; font-size: 14px; }
.gca2-dash .gsa-links a { color: var(--gl-accent); font-weight: 600; }
.gsa-links i { margin-right: 6px; }
.gca2-dash .gff-go .gd-btn.is-disabled { opacity: 0.45; filter: grayscale(0.4); cursor: not-allowed; }
@media (max-width: 575px) {
  .gsa-thumb { flex-basis: 64px; width: 64px; height: 40px; }
  .gsa-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .gsa-stats > div:nth-child(3) { border-left: 0; }
  .gsa-stats > div:nth-child(n+3) { border-top: 1px solid var(--gl-line-soft); }
}
/* Maintenance block in the aircraft details */
.gsa-mx { padding: 12px 16px 6px; border-top: 1px solid var(--gl-line-soft); }
.gsa-mx-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.gsa-mx-head .gd-label { flex: 1 1 auto; }
.gsa-mx-now { margin-bottom: 8px; padding: 8px 10px; border-radius: 8px; background: rgba(242, 194, 48, 0.1); color: var(--gl-accent); font-size: 13px; }
.gsa-mx-now i { margin-right: 6px; }
.gsa-mx-checks { width: 100%; border-collapse: collapse; font-size: 13px; }
.gsa-mx-checks th, .gsa-mx-checks td { padding: 6px 0; border-bottom: 1px solid var(--gl-line-soft); text-align: right; }
.gsa-mx-checks tbody tr:last-child > * { border-bottom: 0; }
.gca2-dash .gsa-mx-checks thead th { font-family: var(--gl-mono); font-size: 10px; font-weight: 500; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gl-muted); }
.gca2-dash .gsa-mx-checks tbody th { text-align: left; font-weight: 500; color: var(--gl-soft); }
.gsa-mx-checks td { color: var(--gl-text); }
.gsa-mx-last { padding: 8px 0 4px; font-size: 13px; color: var(--gl-muted); }
.gca2-dash .gsa-mx-checks td.gx-due { color: var(--gl-accent); font-weight: 600; }
/* Aircraft details: Overview / Maintenance tabs */
.gsa-tabs { display: flex; gap: 4px; padding: 0 12px; border-bottom: 1px solid var(--gl-line); }
.gca2-dash .gsa-tab { display: inline-flex; align-items: center; gap: 8px; padding: 12px 10px 10px; border: 0; border-bottom: 2px solid transparent; background: none; color: var(--gl-muted); font-family: var(--gl-cond); font-weight: 600; font-size: 15px; letter-spacing: 0.1em; text-transform: uppercase; cursor: pointer; }
.gca2-dash .gsa-tab:hover { color: #FFFFFF; }
.gca2-dash .gsa-tab.is-active { color: var(--gl-text); border-bottom-color: var(--gl-accent); }
.gca2-dash .gsa-tab:focus-visible { outline: 2px solid var(--gl-accent); outline-offset: -2px; }
.gsa-tab .gx-pill { font-size: 10px; padding: 1px 7px; letter-spacing: 0; }
.gsa-pane[hidden] { display: none; }
.gsa-mx-next { display: flex; gap: 10px; margin: 4px 0 12px; padding: 10px 12px; border: 1px solid var(--gl-line); border-radius: 8px; background: rgba(7, 10, 43, 0.5); font-size: 13px; color: var(--gl-soft); }
.gsa-mx-next i { margin-top: 2px; color: var(--gl-accent); }
.gsa-check { padding: 10px 0; border-top: 1px solid var(--gl-line-soft); }
.gsa-check-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 2px 10px; margin-bottom: 6px; }
.gsa-check-head b { font-size: 15px; }
.gsa-check-head span { font-size: 12px; color: var(--gl-muted); }
.gsa-check-bars { display: flex; flex-direction: column; gap: 6px; }
.gsa-check-bars > div { display: grid; grid-template-columns: 52px minmax(0, 1fr) auto; align-items: center; gap: 10px; }
.gsa-check-bars .gx-bar { width: 100%; }
.gsa-check-lbl { font-family: var(--gl-mono); font-size: 10px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gl-muted); }
.gsa-check-num { font-size: 12px; color: var(--gl-text); white-space: nowrap; }
.gca2-dash .gsa-check-num.gx-due { color: var(--gl-accent); font-weight: 600; }
.gsa-check-foot { margin-top: 6px; font-size: 12px; color: var(--gl-muted); }
.gsa-mx-sub { padding: 12px 0 4px; border-top: 1px solid var(--gl-line-soft); }
.gsa-rules { margin: 8px 0 6px; padding: 0; list-style: none; font-size: 13px; color: var(--gl-soft); }
.gsa-rules li { display: flex; align-items: baseline; gap: 8px; padding: 3px 0; }
.gsa-rules li i { width: 16px; color: var(--gl-accent); }
.gsa-rules b { color: var(--gl-text); font-weight: 600; }
.gsa-mx-note { margin: 6px 0 4px; font-size: 13px; color: var(--gl-muted); }
.gsa-mx-note b { color: var(--gl-text); }
.gsa-mx-hist { width: 100%; margin-top: 6px; border-collapse: collapse; font-size: 13px; }
.gsa-mx-hist td { padding: 6px 0; border-bottom: 1px solid var(--gl-line-soft); color: var(--gl-soft); vertical-align: baseline; }
.gsa-mx-hist td:first-child { width: 90px; color: var(--gl-muted); white-space: nowrap; }
.gsa-mx-hist td:last-child { text-align: right; color: var(--gl-text); white-space: nowrap; }
.gca2-dash .gsa-mx-hist a { color: var(--gl-accent); }
/* the side column scrolls by itself when the details are taller than the window */
@media (min-width: 992px) { .gsa-side { max-height: calc(100vh - 32px); overflow: auto; scrollbar-width: thin; scrollbar-color: var(--gl-edge) transparent; } }
.gsa-photo:not(:has(img)) { aspect-ratio: auto; padding: 22px 16px; } /* no photo: a short placeholder instead of an empty 16:9 box */
/* Aircraft acceptance dialog (native <dialog>) */
.gsa-accept { width: min(620px, calc(100% - 32px)); max-height: calc(100vh - 32px); padding: 0; border: 1px solid var(--gl-gold-line); border-radius: 14px; background: #0C1042; color: var(--gl-text); box-shadow: 0 24px 60px rgba(0, 0, 0, 0.55); }
.gsa-accept::backdrop { background: rgba(4, 6, 26, 0.72); }
.gsa-accept-box { display: flex; flex-direction: column; margin: 0; font-family: var(--gl-sans); }
.gsa-accept-head { padding: 20px 22px 12px; border-bottom: 1px solid var(--gl-line); }
.gsa-accept-head h2 { margin: 6px 0 0; font-family: var(--gl-cond); font-weight: 700; font-size: 30px; text-transform: uppercase; color: var(--gl-text); }
.gsa-accept-body { padding: 14px 22px 6px; overflow: auto; font-size: 15px; line-height: 1.55; color: var(--gl-soft); }
.gsa-accept-body p { margin: 10px 0; }
.gsa-accept-body b { color: #FFFFFF; }
.gsa-accept-facts { margin: 0 0 6px; }
.gsa-accept-facts th, .gsa-accept-facts td { padding-left: 0 !important; padding-right: 0 !important; }
.gsa-accept-facts td { text-align: right; }
.gsa-accept-facts td b { color: var(--gl-green); }
.gsa-accept-small { font-family: var(--gl-mono); font-size: 11px; letter-spacing: 0.04em; color: var(--gl-muted); }
.gsa-accept-check { display: flex; align-items: center; gap: 10px; margin: 6px 0 10px; padding: 12px 14px; border: 1px solid var(--gl-edge); border-radius: 10px; background: rgba(7, 10, 43, 0.6); color: var(--gl-text); font-weight: 600; cursor: pointer; }
.gsa-accept-check input { width: 20px; height: 20px; accent-color: var(--gl-accent); }
.gsa-accept-check:has(input:checked) { border-color: var(--gl-accent); background: rgba(242, 194, 48, 0.08); }
.gsa-accept-foot { display: flex; justify-content: flex-end; gap: 10px; padding: 14px 22px 18px; border-top: 1px solid var(--gl-line); }
.gsa-accept .gd-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border: 1px solid var(--gl-edge); border-radius: 8px; background: rgba(10, 14, 60, 0.55); color: var(--gl-text); font-weight: 600; font-size: 15px; text-decoration: none; cursor: pointer; }
.gsa-accept .gd-btn-accent { background: var(--gl-accent); border-color: var(--gl-accent); color: #0A0E3C; }
.gsa-accept .gd-btn.is-disabled { opacity: 0.45; filter: grayscale(0.4); cursor: not-allowed; }

/* Dashboard readouts in the see-through blue of the buttons (.gd-btn), gold lines between the tiles (dashboard/index: .gd-readouts-glass).
   The stock .gd-readouts draws its dividers with a gold background behind opaque tiles; see-through tiles need the lines drawn instead. */
.gd-readouts.gd-readouts-glass { background: transparent; gap: 0; }
.gd-readouts-glass .gd-readout { background: rgba(10, 14, 60, 0.55); box-shadow: -1px 0 0 var(--gl-gold-line), 0 -1px 0 var(--gl-gold-line); }
/* NOTAM as printed: one line per field / paragraph; E) and its paragraphs wrap under the text, not under "E)" */
.gnt-raw-box pre > span { display: block; }
.gnt-raw-box pre > .gnt-raw-e { padding-left: 3ch; text-indent: -3ch; }
.gnt-raw-box pre > .gnt-raw-p { padding-left: 3ch; }
/* Dashboard: the NOTAM warning icon blinks four times when the page opens (the Font Awesome kit may swap the <i> for an <svg>) */
.gca2-dash a.gd-notams > i, .gca2-dash a.gd-notams > svg { animation: gd-notam-blink 0.7s ease-in-out 0.6s 4; }
@keyframes gd-notam-blink { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.1; transform: scale(1.25); } }
@media (prefers-reduced-motion: reduce) { .gca2-dash a.gd-notams > i, .gca2-dash a.gd-notams > svg { animation: none; } }
/* Dashboard: the Pilot Challenge trophy grows out big once when the holder opens the page, then settles after the name */
.gca2-dash .gd-potm img { position: relative; z-index: 30; transform-origin: 50% 60%; animation: gd-potm-grow 2.2s cubic-bezier(.3, 1.4, .5, 1) 0.8s 1 both; }
@keyframes gd-potm-grow {
  0%   { transform: scale(1) rotate(0); }
  30%  { transform: scale(2.8) rotate(-8deg); filter: drop-shadow(0 0 28px rgba(242, 194, 48, 0.95)); }
  45%  { transform: scale(2.6) rotate(6deg); filter: drop-shadow(0 0 34px rgba(242, 194, 48, 0.9)); }
  60%  { transform: scale(2.7) rotate(0); filter: drop-shadow(0 0 30px rgba(242, 194, 48, 0.85)); }
  100% { transform: scale(1) rotate(0); filter: drop-shadow(0 4px 14px rgba(242, 194, 48, 0.45)); }
}
@media (prefers-reduced-motion: reduce) { .gca2-dash .gd-potm img { animation: none; } }

/* Free Flight airport search (From/To): suggestions under the field, this site's airports tagged GCA */
.gff-as { position: relative; }
.gca2-dash .card .gff-icao::placeholder { font-size: 20px; letter-spacing: 0.04em; text-transform: none; }
.gff-as-list {
  position: absolute; z-index: 30; left: 0; right: 0; top: calc(100% + 6px); max-height: 360px; overflow-y: auto;
  margin: 0; padding: 6px; list-style: none;
  background: #0C1042; border: 1px solid var(--gl-edge); border-radius: 10px; box-shadow: 0 18px 40px rgba(0, 0, 0, 0.5);
}
.gff-as-list li { display: grid; grid-template-columns: 62px minmax(0, 1fr) auto; gap: 10px; align-items: center; padding: 8px 10px; border-radius: 7px; cursor: pointer; }
.gff-as-list li:hover, .gff-as-list li.is-active { background: rgba(74, 85, 184, 0.3); }
.gff-as-list li.is-active { box-shadow: inset 2px 0 0 var(--gl-accent); }
.gff-as-code { display: flex; flex-direction: column; font-family: var(--gl-mono); font-weight: 600; font-size: 16px; color: var(--gl-green); line-height: 1.15; }
.gff-as-code small { font-size: 11px; font-weight: 500; color: var(--gl-muted); }
.gff-as-text { display: flex; flex-direction: column; min-width: 0; line-height: 1.25; }
.gff-as-text b { font-weight: 600; font-size: 14px; color: var(--gl-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gff-as-text small { font-size: 12px; color: var(--gl-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gff-as-net { font-family: var(--gl-mono); font-size: 10px; font-weight: 600; letter-spacing: 0.1em; padding: 2px 6px; border-radius: 4px; border: 1px solid var(--gl-gold-line); color: var(--gl-accent); }

/* Active Bookings (gca2/modules/DisposableBasic/widgets/active_bookings.blade.php): two lines per booking, no sideways scrolling */
.gab-list { list-style: none; margin: 0; padding: 0; }
.gab-item { padding: 10px 16px; }
.gab-item + .gab-item { border-top: 1px solid var(--gl-line-soft); }
.gab-line { display: flex; align-items: baseline; gap: 10px; min-width: 0; }
.gca2-dash .gab-flt { font-family: var(--gl-mono); font-weight: 600; font-size: 15px; white-space: nowrap; color: var(--gl-accent); }
.gca2-dash .gab-flt:hover { color: #FFFFFF; }
.gab-route { font-family: var(--gl-mono); font-weight: 600; font-size: 15px; white-space: nowrap; }
.gab-route a { color: var(--gl-text); }
.gab-route i { margin: 0 6px; color: var(--gl-accent); font-size: 12px; }
.gab-etd { margin-left: auto; font-family: var(--gl-mono); font-weight: 600; font-size: 15px; color: var(--gl-green); white-space: nowrap; }
.gab-etd small { margin-right: 6px; font-size: 10px; letter-spacing: 0.14em; color: var(--gl-muted); }
.gab-sub { margin-top: 3px; font-size: 13px; color: var(--gl-muted); }
.gab-who { min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gab-exp { margin-left: auto; white-space: nowrap; }
.gab-exp a { margin-right: 6px; color: var(--gl-muted); }
.gab-exp a:hover { color: var(--gl-accent); }

/* Free Flight: free ATC callsign (2026-10-23) */
.gff-callsign { text-transform: uppercase; font-family: var(--gl-mono); letter-spacing: 0.04em; }

/* ---------------------------------------------------------------- File Library "Dashboard ads" tab (.gda-*: GcaTweaks DashboardAdController; reuses .gfs-*) */
.gda-guide { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 16px; margin: 0 0 18px; }
.gda-spec { display: flex; gap: 14px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--gl-line); border-radius: 10px; background: rgba(7, 10, 43, 0.45); }
.gda-spec > div { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.gda-spec b { font-family: var(--gl-mono); font-size: 17px; color: var(--gl-accent); }
.gda-spec small { font-size: 13px; color: var(--gl-muted); line-height: 1.45; }
.gda-shape { flex: 0 0 auto; display: grid; place-items: center; margin-top: 4px; border: 1px dashed var(--gl-edge); border-radius: 4px; background: rgba(242, 194, 48, 0.06); font-family: var(--gl-mono); font-size: 11px; color: var(--gl-soft); }
.gda-shape-desktop { width: 96px; height: 12px; font-size: 9px; line-height: 1; }
.gda-shape-mobile { width: 54px; height: 18px; }
.gda-tips { grid-column: 1 / -1; margin: 0; padding: 0 0 0 18px; color: var(--gl-soft); font-size: 14px; line-height: 1.55; }
.gda-tips code { color: var(--gl-accent); font-size: 13px; }
.gda-group-pick { border: 0; padding: 0; min-width: 0; }
.gda-group-pick legend { float: none; width: auto; margin: 0 0 6px; padding: 0; }
.gda-group-pick > span { display: flex; flex-wrap: wrap; gap: 8px 18px; min-height: 44px; align-items: center; }
.gda-group-pick label { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
.gda-group-pick label small { color: var(--gl-muted); font-family: var(--gl-mono); font-size: 12px; }
.gda-group-pick input { accent-color: var(--gl-accent); width: 18px; height: 18px; }
.gda-dims.is-warn { color: #FFD27A; }
.gda-grid-desktop { grid-template-columns: repeat(auto-fill, minmax(min(100%, 560px), 1fr)); }
.gda-grid-mobile { grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.gda-ad img { aspect-ratio: auto; object-fit: cover; }
.gda-ad figcaption small a { color: var(--gl-soft); overflow-wrap: anywhere; }
@media (max-width: 767px) { .gda-guide { grid-template-columns: minmax(0, 1fr); } }

/* ---------------------------------------------------------------- Airlines list, livelier (2026-10-30; .gax-*: gca2/modules/DisposableBasic/airlines/index.blade.php)
   Cover photo with the logo overlapping it, an accent colour per airline (--gax-accent, set on the card), callsign chip,
   one line about the airline, stats with icons, and a "just getting started" note for an airline with nothing flown yet */
.gax-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 360px), 1fr)); gap: 22px; margin-bottom: 20px; align-items: stretch; }
.gca2-dash .gax-card { --gax-accent: var(--gl-accent); position: relative; display: flex; flex-direction: column; border: 1px solid var(--gl-line); border-radius: 14px; overflow: hidden;
  background: rgba(12, 16, 66, 0.9); box-shadow: inset 0 3px 0 var(--gax-accent); transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease; }
.gca2-dash .gax-card:hover { transform: translateY(-4px); border-color: color-mix(in srgb, var(--gax-accent) 55%, transparent);
  box-shadow: inset 0 3px 0 var(--gax-accent), 0 18px 40px rgba(0, 0, 0, 0.35), 0 0 0 1px color-mix(in srgb, var(--gax-accent) 25%, transparent); }
.gax-cover { position: relative; display: block; aspect-ratio: 16 / 7; overflow: hidden; background: #0A0E3C; }
.gax-cover img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.6s ease; }
.gca2-dash .gax-card:hover .gax-cover img { transform: scale(1.05); }
.gax-cover::after { content: ''; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7, 10, 43, 0) 45%, rgba(12, 16, 66, 0.95) 100%); }
/* no photo: the background still, tinted with the airline's colour */
.gax-cover.is-still img { filter: saturate(0.6) brightness(0.8); }
.gax-cover.is-still::before { content: ''; position: absolute; inset: 0; z-index: 1; background: linear-gradient(135deg, color-mix(in srgb, var(--gax-accent) 45%, transparent), transparent 70%); mix-blend-mode: screen; }
.gax-cover-cap { position: absolute; right: 12px; top: 12px; z-index: 2; display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: 99px;
  font-family: var(--gl-mono); font-size: 11px; letter-spacing: 0.04em; color: #EEF1FF; background: rgba(7, 10, 43, 0.65); backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); }
.gax-cover-cap i { color: var(--gax-accent); }
.gax-head { position: relative; z-index: 2; display: flex; align-items: flex-end; gap: 18px; padding: 0 22px; margin-top: -54px; }
.gca2-dash .gax-logo { flex: 0 0 auto; width: 100px; height: 100px; border-radius: 18px; background: #FFFFFF; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 8px;
  border: 3px solid var(--gax-accent); box-shadow: 0 10px 24px rgba(0, 0, 0, 0.4); }
.gax-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.gax-logo span { font-family: var(--gl-mono); font-weight: 600; font-size: 22px; color: #0A0E3C; }
.gax-title { min-width: 0; display: flex; flex-direction: column; gap: 8px; padding-bottom: 2px; }
.gca2-dash .gax-title h2 { margin: 0; font-family: var(--gl-cond); font-weight: 700; font-size: clamp(24px, 2.2vw, 30px); line-height: 1; text-transform: uppercase; letter-spacing: 0.02em; text-shadow: 0 2px 10px rgba(7, 10, 43, 0.8); }
.gca2-dash .gax-title h2 a { color: inherit; text-decoration: none; }
.gca2-dash .gax-title h2 a:hover { color: var(--gax-accent); }
.gax-codes { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; }
.gca2-dash .gax-codes .gp-chip { font-size: 11px; padding: 3px 9px; background: rgba(7, 10, 43, 0.6); }
.gca2-dash .gax-callsign { border-color: var(--gax-accent); color: var(--gax-accent); display: inline-flex; align-items: center; gap: 6px; letter-spacing: 0.08em; }
.gax-country img { height: 16px; width: auto; border-radius: 2px; display: block; }
.gax-about { margin: 16px 22px 0; font-size: 15px; line-height: 1.5; color: var(--gl-soft); }
.gax-stats { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); margin: 18px 22px 0; border: 1px solid var(--gl-line); border-radius: 10px; overflow: hidden; }
.gax-stats > div { display: flex; flex-direction: column; gap: 6px; padding: 12px 12px; background: rgba(7, 10, 43, 0.45); box-shadow: 1px 0 0 var(--gl-line); min-width: 0; }
.gax-stats .gd-label { font-size: 10px; letter-spacing: 0.1em; display: flex; align-items: center; gap: 5px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gax-stats .gd-label i { color: var(--gax-accent); font-size: 10px; }
.gax-num { font-family: var(--gl-mono); font-weight: 600; font-size: 21px; color: var(--gl-green); }
.gax-new { display: flex; align-items: center; gap: 14px; margin: 18px 22px 0; padding: 14px 16px; border-radius: 10px; border: 1px dashed color-mix(in srgb, var(--gax-accent) 60%, transparent);
  background: color-mix(in srgb, var(--gax-accent) 10%, transparent); }
.gax-new div { display: flex; flex-direction: column; gap: 2px; }
.gax-new b { font-family: var(--gl-cond); font-size: 19px; letter-spacing: 0.04em; text-transform: uppercase; color: var(--gax-accent); }
.gax-new span { font-size: 14px; color: var(--gl-soft); }
.gax-new-dot { flex: 0 0 auto; width: 12px; height: 12px; border-radius: 50%; background: var(--gax-accent); box-shadow: 0 0 0 0 var(--gax-accent); animation: gax-pulse 2s infinite; }
@keyframes gax-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--gax-accent) 70%, transparent); } 70% { box-shadow: 0 0 0 12px transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
.gax-foot { display: flex; justify-content: flex-end; padding: 18px 22px 20px; margin-top: auto; }
.gca2-dash .gax-btn { min-height: 40px; font-size: 14px; background: var(--gax-accent); border-color: var(--gax-accent); color: #0A0E3C; }
.gca2-dash .gax-btn:hover { color: #0A0E3C; filter: brightness(1.1); }
@media (max-width: 575px) {
  .gax-head { flex-direction: column; align-items: flex-start; gap: 12px; padding: 0 16px; margin-top: -44px; }
  .gca2-dash .gax-logo { width: 84px; height: 84px; border-radius: 14px; }
  .gax-about, .gax-stats, .gax-new { margin-left: 16px; margin-right: 16px; }
  .gax-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .gax-foot { padding: 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .gca2-dash .gax-card, .gax-cover img { transition: none; }
  .gca2-dash .gax-card:hover { transform: none; }
  .gca2-dash .gax-card:hover .gax-cover img { transform: none; }
  .gax-new-dot { animation: none; }
}
/* five stats did not fit one row in a ~400px card (labels cut off): they wrap, 3 + 2 */
.gax-stats { grid-template-columns: repeat(auto-fit, minmax(104px, 1fr)); }
.gax-stats > div { box-shadow: 1px 0 0 var(--gl-line), 0 1px 0 var(--gl-line); }
.gax-stats .gd-label { overflow: visible; }
@media (max-width: 575px) { .gax-stats { grid-template-columns: repeat(auto-fit, minmax(96px, 1fr)); } }
.gax-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gax-stats > div:last-child:nth-child(3n+2) { grid-column: span 2; }
@media (max-width: 575px) { .gax-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

/* GC Airlines Group (2026-10-30): the airlines page shows the three sister airlines as one group. A lead line under
   the title, and on wide screens a tree: the group on top, a rail branching down to each card in its accent colour. */
.gax-lead { margin: 0; max-width: 46em; font-size: 18px; line-height: 1.5; color: var(--gl-soft); }
.gax-tree { display: none; }
@media (min-width: 1100px) {
  .gax-grid { grid-template-columns: repeat(var(--gax-n, 3), minmax(0, 1fr)); }
  .gax-tree { display: flex; flex-direction: column; align-items: center; margin-bottom: 0; }
  .gax-tree-root { position: relative; display: inline-flex; align-items: center; gap: 10px; padding: 8px 18px 8px 8px; border-radius: 99px; border: 1px solid var(--gl-gold-line);
    background: #0A0E3C; font-family: var(--gl-cond); font-weight: 600; font-size: 18px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gl-text); }
  .gax-tree-root img { width: 30px; height: 30px; border-radius: 50%; background: #FFFFFF; padding: 2px; object-fit: contain; }
  /* stem from the group down to the rail */
  .gax-tree-root::after { content: ''; position: absolute; left: 50%; top: 100%; width: 2px; height: 18px; background: var(--gl-gold-line); transform: translateX(-1px); }
  /* the rail: one cell per airline (same columns and gap as the cards); each cell draws its drop line and its share of
     the horizontal line, so the line runs from the first card's centre to the last one's */
  .gax-tree-rail { display: grid; grid-template-columns: repeat(var(--gax-n, 3), minmax(0, 1fr)); gap: 22px; width: 100%; margin-top: 18px; }
  .gax-tree-rail span { position: relative; height: 26px; }
  .gax-tree-rail span::before { content: ''; position: absolute; left: 50%; top: 0; bottom: 0; width: 2px; transform: translateX(-1px);
    background: linear-gradient(180deg, var(--gl-gold-line), var(--gax-accent)); }
  .gax-tree-rail span::after { content: ''; position: absolute; top: 0; height: 2px; left: -11px; right: -11px; background: var(--gl-gold-line); }
  .gax-tree-rail span:first-child::after { left: 50%; }
  .gax-tree-rail span:last-child::after { right: 50%; }
  .gax-tree-rail span:only-child::after { display: none; }
}
/* role in the group, top left on the cover in the airline's colour */
.gax-role { position: absolute; left: 12px; top: 12px; z-index: 2; padding: 4px 10px; border-radius: 99px; font-family: var(--gl-mono); font-size: 11px; font-weight: 600;
  letter-spacing: 0.1em; text-transform: uppercase; color: #0A0E3C; background: var(--gax-accent); }
@media (max-width: 575px) { .gax-lead { font-size: 16px; } }
/* phones: role chip and photo caption do not both fit across the cover; the caption moves to the bottom right */
@media (max-width: 575px) { .gax-cover-cap { top: auto; bottom: 62px; font-size: 10px; } }

/* Map buttons as airport wayfinding signs (2026-10-30, gca2/maps/button.blade.php; replaced the navy "map cards" the
   same day, user: "more like the signs at airports"). Backlit sign panel in a dark aluminium frame, black with yellow
   text for every map (user: both the same and a bit smaller, they stood out too much; the yellow variant is in
   member.css.before-signs2-20261030).
   Pictogram in its own square, bold mixed-case sign lettering, direction arrow; hover = the backlight brightens and the
   arrow nudges. .gmb.gmb.gmb outranks the generic .gd-maps/.card .btn rules above. */
.gca2-dash .btn.gmb.gmb.gmb {
  --gmb-bg: linear-gradient(180deg, #23262D 0%, #16181D 50%, #0F1115 100%); --gmb-ink: #FFCC00; --gmb-tile: #FFCC00; --gmb-tile-ink: #111317; --gmb-glow: rgba(255, 204, 0, 0.3);
  container: gmb / inline-size;
  position: relative; display: flex; align-items: center; gap: 10px; width: 100%; min-height: 48px; overflow: hidden;
  padding: 6px 10px 6px 6px !important; border: 0; border-radius: 4px;
  background: var(--gmb-bg) !important; color: var(--gmb-ink) !important;
  text-align: left; text-decoration: none; font-family: var(--gl-sans); line-height: 1.1;
  box-shadow: 0 0 0 2px #2B3038, 0 0 0 3px #4A515C, 0 5px 12px rgba(0, 0, 0, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.1);
  transition: filter 0.2s ease, box-shadow 0.2s ease;
}
.gca2-dash .btn.gmb.gmb.gmb::before { content: none; }
/* backlight: a soft bright band across the panel */
.gca2-dash .btn.gmb.gmb.gmb::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: radial-gradient(120% 90% at 50% 0%, rgba(255, 255, 255, 0.07), transparent 60%);
}
.gca2-dash .btn.gmb.gmb.gmb:hover, .gca2-dash .btn.gmb.gmb.gmb:focus-visible {
  filter: brightness(1.07) saturate(1.05); color: var(--gmb-ink) !important;
  box-shadow: 0 0 0 2px #2B3038, 0 0 0 3px #4A515C, 0 5px 14px rgba(0, 0, 0, 0.45), 0 0 18px var(--gmb-glow), inset 0 1px 0 rgba(255, 255, 255, 0.1);
}
.gca2-dash .btn.gmb.gmb.gmb:focus-visible { outline: 2px solid #FFFFFF; outline-offset: 5px; }
.gca2-dash .btn.gmb.gmb.gmb:active { filter: brightness(0.97); }

.gmb-icon { position: relative; z-index: 1; flex: 0 0 auto; display: grid; place-items: center; width: 34px; height: 34px; border-radius: 3px; background: var(--gmb-tile); color: var(--gmb-tile-ink); font-size: 16px; }
.gmb-text { position: relative; z-index: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; flex: 1 1 auto; padding-left: 10px; border-left: 2px solid currentColor; border-left-color: color-mix(in srgb, var(--gmb-ink) 35%, transparent); }
.gmb-label { font-weight: 700; font-size: 16px; letter-spacing: 0.005em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gmb-sub { font-weight: 600; font-size: 11px; letter-spacing: 0.02em; opacity: 0.78; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.gmb-go { position: relative; z-index: 1; flex: 0 0 auto; font-size: 18px; color: var(--gmb-ink); transition: transform 0.2s ease; }
.gmb:hover .gmb-go, .gmb:focus-visible .gmb-go { transform: translateX(4px); }
@media (prefers-reduced-motion: reduce) { .gca2-dash .btn.gmb.gmb.gmb, .gmb-go { transition: none; } }
/* narrow boxes (two signs side by side, side columns) */
@container gmb (max-width: 250px) {
  .gmb-icon { width: 30px; height: 30px; font-size: 14px; }
  .gmb-label { font-size: 15px; }
  .gmb-text { padding-left: 8px; }
}
@container gmb (max-width: 210px) { .gmb-sub, .gmb-go { display: none; } }
/* /flights hero: at 1200px+ the map column is ~1/4 wide, so the two cards stack (they rise beside the title);
   below that the box takes the full row and the cards sit side by side */
@media (min-width: 1200px) { .gca2-dash .gf-hero-row .gd-maps.gf-mapbox-btns { flex-direction: column; } }
@media (max-width: 1199px) { .gca2-dash .gf-hero-row .gf-mapbox { flex: 1 1 100%; } }

/* /flights table polish (2026-10-30, flights/table.blade.php): one call to action per row.
   Desktop/tablet: Bid is a gold outline (fills on hover), SimBrief / ACARS / PIREP are quiet icon buttons (labels in
   .gf-act-label, hidden; title + aria-label name them) that light up on the hovered row. Phones (cards) keep labels. */
@media (min-width: 768px) {
  .gf-table .gf-act-label:not(.gf-act-keep) { display: none; }
  .gca2-dash .gf-table .btn.gf-act:not(.save_flight) {
    justify-content: center; width: 32px; padding: 0 !important; border-color: transparent; background: transparent !important;
    transition: border-color 0.15s ease, background-color 0.15s ease;
  }
  .gca2-dash .gf-table .btn.gf-act:not(.save_flight) i { font-size: 14px; color: var(--gl-muted); transition: color 0.15s ease; }
  .gca2-dash .gf-table tr:hover .btn.gf-act:not(.save_flight), .gca2-dash .gf-table tr:focus-within .btn.gf-act:not(.save_flight) { border-color: var(--gl-line); background: rgba(10, 14, 60, 0.6) !important; }
  .gca2-dash .gf-table tr:hover .btn.gf-act:not(.save_flight) i, .gca2-dash .gf-table tr:focus-within .btn.gf-act:not(.save_flight) i { color: var(--gl-accent); }
  .gca2-dash .gf-table .btn.gf-act:not(.save_flight):hover { border-color: var(--gl-accent); }
  .gca2-dash .gf-table .btn.gf-act.gf-act-ofp i { color: var(--gl-green); }
  .gca2-dash .gf-table .gf-actions { gap: 4px; align-items: center; }
}
.gca2-dash .card .gf-table .btn.gf-act.save_flight.btn-success:not(.btn-danger) { min-width: 74px; justify-content: center; background: transparent !important; border-color: rgba(242, 194, 48, 0.6); color: var(--gl-accent) !important; }
.gca2-dash .card .gf-table .btn.gf-act.save_flight.btn-success:not(.btn-danger) i { color: var(--gl-accent); }
.gca2-dash .card .gf-table .btn.gf-act.save_flight.btn-success:not(.btn-danger):hover { background: var(--gl-accent) !important; border-color: var(--gl-accent); color: #0A0E3C !important; }
.gca2-dash .card .gf-table .btn.gf-act.save_flight.btn-success:not(.btn-danger):hover i { color: #0A0E3C; }
.gca2-dash .card .gf-table .btn.gf-act.save_flight.btn-danger { min-width: 74px; justify-content: center; }
/* current page: gold outline instead of a solid gold block (gold stays for the one main action on screen) */
.gca2-dash .pagination .active .page-link,
.gca2-dash .pagination .pag-items-curr, .gca2-dash .pagination .page-link.pag-items-curr { background-color: rgba(242, 194, 48, 0.12) !important; border-color: var(--gl-accent) !important; color: var(--gl-accent) !important; }
.gf-table .gf-act-icon .gf-act-label { display: none; } /* PIREP: icon only everywhere, as before (keeps phone cards on one row) */

/* /flights round 2 (2026-10-30): Aircraft + Distance columns, city names, "More filters" in the search card */
.gf-c-ac, .gf-c-dist { white-space: nowrap; }
.gf-ac { display: inline-flex; align-items: center; gap: 5px; font-family: var(--gl-mono); font-size: 13px; }
.gf-ac i { font-size: 11px; }
.gf-ac-ok { color: var(--gl-green); }
.gf-ac-none { color: var(--gl-edge); }
.gf-ac-none .gf-ac-word, .gf-ac-ok .gf-ac-word { display: none; }
.gf-c-dist { color: var(--gl-soft); font-size: 13px; }
.gf-c-dist .gf-unit { font-size: 10px; color: var(--gl-muted); }
.gf-table .gp-apt { max-width: 170px; }
@media (max-width: 1399px) { .gf-table .gf-c-dist { display: none; } } /* room for the actions on smaller desktops */
@media (max-width: 767px) {
  /* plain flight tables only: PIREP (.gq-table) and tour leg (.gt-legs) cards have their own grids above */
  .gca2-dash .gf-table:not(.gq-table):not(.gt-legs) tbody tr { grid-template-areas: "no time" "dep arr" "ac dist" "act act"; }
  .gca2-dash .gf-table .gf-c-ac { grid-area: ac; text-align: left !important; }
  .gca2-dash .gf-table .gp-apt { max-width: 100%; min-width: 0; } /* phones: airport names fit their card column (the 170px desktop cap made long names run into the next column) */
  .gca2-dash .gf-table .gf-c-dist { display: block !important; grid-area: dist; text-align: left !important; }
  .gf-ac-ok .gf-ac-word, .gf-ac-none .gf-ac-word { display: inline; }
}
.gf-more { border-top: 1px solid var(--gl-line); margin: 4px -2px 0; padding-top: 4px; }
.gf-more > summary { display: flex; align-items: center; justify-content: space-between; padding: 10px 2px; cursor: pointer; list-style: none;
  font-family: var(--gl-mono); font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--gl-soft); }
.gf-more > summary::-webkit-details-marker { display: none; }
.gf-more > summary:hover { color: var(--gl-accent); }
.gf-more > summary i { font-size: 11px; transition: transform 0.2s ease; }
.gf-more[open] > summary i { transform: rotate(180deg); }
.gf-more-body { display: flex; flex-direction: column; gap: 16px; padding: 4px 2px 2px; }

/* ---------------------------------------------------------------- SimBrief form: free flight cargo (gca2/flights/simbrief_ff_cargo, 2026-10-30) */
.gsf-cg { padding: 12px 16px 14px; border-bottom: 1px solid var(--gl-line-soft); }
.gsf-cg-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 12px; margin-bottom: 8px; }
.gsf-cg-head .gd-label { letter-spacing: 0.1em; font-size: 11px; }
.gsf-cg-status { font-size: 12px; color: var(--gl-muted); }
.gsf-cg-status.is-ok { color: var(--gl-green-soft); }
.gsf-cg-status.is-bad { color: #FF8A8A; }
.gsf-cg-note, .gsf-cg-foot { margin: 0 0 10px; font-size: 13px; color: var(--gl-soft); }
.gsf-cg-note i, .gsf-cg-foot i { margin-right: 6px; color: var(--gl-accent); }
.gsf-cg-foot { margin: 10px 0 0; font-size: 12px; color: var(--gl-muted); }
.gsf-cg-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 6px 16px; padding: 6px 0; }
.gsf-cg-name { margin: 0; font-weight: 600; color: var(--gl-text); }
.gsf-cg-name small { display: block; font-weight: 400; font-size: 12px; color: var(--gl-muted); }
.gsf-cg-inputs { display: flex; gap: 8px; }
.gsf-cg-in { display: flex; align-items: center; gap: 6px; margin: 0; }
.gsf-cg-in span { width: 2.2em; font-size: 12px; color: var(--gl-muted); }
.gca2-dash .gsf-cg-in .form-control { width: 120px; text-align: right; font-weight: 600; }
.gca2-dash .gsf-cg-row.is-over .form-control { border-color: #FF6B6B; }
.gsf-cg-tools { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin-top: 8px; font-size: 13px; color: var(--gl-soft); }
.gsf-cg-tools b { font-family: var(--gl-mono); color: var(--gl-text); }
.gsf-cg-tools b small { color: var(--gl-muted); font-weight: 400; }
.gca2-dash .gsf-cg-fill { padding: 4px 10px; font-size: 12px; }
.gsf-cg-warn { margin-top: 10px; padding: 10px 14px; border: 1px solid var(--gl-line); border-left: 4px solid #FF6B6B; border-radius: 10px; background: rgba(255, 107, 107, 0.08); color: var(--gl-text); font-size: 13px; }
.gsf-cg-warn i { margin-right: 8px; color: #FF6B6B; }
.gsf-cg-warn small { color: var(--gl-soft); }
.gca2-dash .gsf-cg-check { margin-top: 10px; }
.gca2-dash .gsf-cg-check caption { caption-side: top; padding: 0 0 6px; font-size: 11px; letter-spacing: 0.1em; text-transform: uppercase; color: var(--gl-muted); }
.gca2-dash .gsf-cg-check th small { display: block; font-weight: 400; font-size: 11px; color: var(--gl-muted); }
.gca2-dash .gsf-cg-check td { text-align: right; font-family: var(--gl-mono); white-space: nowrap; }
.gca2-dash .gsf-cg-check td small { color: var(--gl-muted); }
.gca2-dash .gsf-cg-check td[data-gsf-ok] { width: 1%; font-family: var(--gl-sans); font-size: 12px; color: var(--gl-green-soft); }
.gca2-dash .gsf-cg-check tr.is-over > * { background: rgba(255, 107, 107, 0.08); }
.gca2-dash .gsf-cg-check tr.is-over td[data-gsf-ok] { color: #FF8A8A; }
@media (max-width: 575.98px) {
  .gca2-dash .gsf-cg-in .form-control { width: 100px; }
  .gca2-dash .gsf-cg-check td small { display: block; }
  .gca2-dash .gsf-cg-check td[data-gsf-ok] small { display: inline; }
}

/* SimBrief aircraft choice: pool aircraft mark (GcaTweaks Fleet/Pool, 2026-10-30) */
.gsa-item-text .gsa-pool { color: #B9A6FF; }

/* ------------------------------------------- Corporate menu (gca2/nav_menu, 2026-11-06) */
/* Grouped: Operations + People | Money + Leisure, Dev Log and phpVMS Admin in a footer row */
#Dispo_NavBar.gm-nav .gcm-menu { padding: 8px; }
#Dispo_NavBar.gm-nav .gcm-cols { display: grid; gap: 4px; }
#Dispo_NavBar.gm-nav .gcm-group + .gcm-group { margin-top: 6px; }
#Dispo_NavBar.gm-nav .gcm-head {
  font-family: var(--gl-mono);
  font-size: 10.5px;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--gl-muted);
  padding: 8px 12px 4px;
  margin: 0;
}
#Dispo_NavBar.gm-nav .gcm-menu .dropdown-item { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
#Dispo_NavBar.gm-nav .gcm-menu .dropdown-item.active,
#Dispo_NavBar.gm-nav .gcm-menu .dropdown-item:active {
  background: rgba(242, 194, 48, 0.12);
  color: #FFFFFF;
  box-shadow: inset 2px 0 0 var(--gl-accent);
}
#Dispo_NavBar.gm-nav .gcm-foot {
  display: flex;
  flex-wrap: wrap;
  gap: 2px;
  margin-top: 8px;
  padding-top: 6px;
  border-top: 1px solid var(--gl-line);
}
#Dispo_NavBar.gm-nav .gcm-foot .dropdown-item { flex: 1 1 auto; width: auto; font-size: 14px; color: var(--gl-muted); }
#Dispo_NavBar.gm-nav .gcm-foot .dropdown-item i { color: var(--gl-muted); }
#Dispo_NavBar.gm-nav .gcm-foot .dropdown-item:hover i { color: var(--gl-accent); }
@media (min-width: 1200px) {
  #Dispo_NavBar.gm-nav .gcm-menu { min-width: 400px; }
  #Dispo_NavBar.gm-nav .gcm-cols { grid-template-columns: 1fr 1fr; column-gap: 8px; }
  #Dispo_NavBar.gm-nav .gcm-col + .gcm-col { border-left: 1px solid var(--gl-line-soft); padding-left: 8px; }
  #Dispo_NavBar.gm-nav .gcm-foot { display: flex; flex-wrap: nowrap; justify-content: space-between; gap: 2px; }
  #Dispo_NavBar.gm-nav .gcm-foot .dropdown-item { flex: 0 1 auto; padding-left: 10px; padding-right: 10px; }
}
/* A full-width group under the columns (Operations › Maps), its items two per row on wide screens */
#Dispo_NavBar.gm-nav .gcm-wide { margin-top: 8px; padding-top: 2px; border-top: 1px solid var(--gl-line); }
#Dispo_NavBar.gm-nav .gcm-wide-grid { display: grid; }
@media (min-width: 1200px) {
  #Dispo_NavBar.gm-nav .gcm-wide-grid { grid-template-columns: 1fr 1fr; grid-template-rows: auto auto; grid-auto-flow: column; column-gap: 17px; }
}
/* Link that opens a new window (Resources › Tools): a small muted arrow after the label */
#Dispo_NavBar.gm-nav .gcm-menu .dropdown-item i.gcm-ext { width: auto; margin-left: -4px; font-size: 10px; color: var(--gl-muted); }
/* Unread count after a menu item (ESS) */
#Dispo_NavBar.gm-nav .gcm-menu .gcm-badge { margin-left: auto; min-width: 20px; padding: 1px 7px; border-radius: 999px; background: var(--gl-accent); color: #0A0E3C; font-size: 11px; font-weight: 700; text-align: center; }

/* ---------------------------------------------------------------- Bought Items + receipts (.gkc-*: gca2/modules/DisposableSpecial/market/show.blade.php, 2026-11-06) */
.gkc-actions { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.gkc-readouts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.gkc-money { color: var(--gl-green) !important; }
.gkc-small { font-size: clamp(20px, 2vw, 28px) !important; }
.gca2-dash .gkc-h2 { margin: 0; font-family: var(--gl-cond); font-size: 22px; letter-spacing: 0.08em; text-transform: uppercase; color: var(--gl-text); }
.gkc-cat { align-self: flex-start; padding: 2px 9px; border: 1px solid var(--gl-gold-line); border-radius: 99px; font-family: var(--gl-mono); font-size: 10px; letter-spacing: 0.12em; text-transform: uppercase; color: var(--gl-accent); }
.gkc .gk-card { position: relative; }
.gkc-notes { margin-top: 4px; border: 1px solid var(--gl-line); border-radius: 8px; background: rgba(242, 194, 48, 0.05); }
.gkc-notes summary { display: flex; align-items: center; gap: 8px; padding: 8px 12px; font-size: 13px; font-weight: 600; color: var(--gl-accent); cursor: pointer; list-style: none; }
.gkc-notes summary::-webkit-details-marker { display: none; }
.gkc-notes[open] summary { border-bottom: 1px solid var(--gl-line-soft); }
.gkc-notes .gk-desc { padding: 10px 12px; font-size: 13px; }
.gkc-giftflag { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 99px; background: #B9A6FF; color: #0A0E3C; font-family: var(--gl-mono); font-size: 11px; font-weight: 600; }
/* receipt button: a little paper stub */
.gkc-rc-btn { position: relative; display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 9px; border: 0; border-radius: 3px 3px 0 0; background: #F4F1E8; color: #23253A; font-family: var(--gl-mono); cursor: pointer;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.35); transform: rotate(-2deg); transition: transform 0.15s, box-shadow 0.15s;
  -webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 10px 100%; mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 10px 100%; }
.gkc-rc-btn:hover, .gkc-rc-btn:focus-visible { transform: rotate(0) translateY(-3px); box-shadow: 0 10px 22px rgba(0, 0, 0, 0.45); outline: none; }
.gkc-rc-btn i { font-size: 18px; color: #B5862A; }
.gkc-rc-btn span { display: flex; flex-direction: column; font-size: 12px; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; line-height: 1.2; text-align: left; }
.gkc-rc-btn small { font-size: 10px; font-weight: 500; letter-spacing: 0; text-transform: none; color: #6B6E85; }
/* empty state + still in the shop */
.gkc-empty { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 48px 20px !important; text-align: center; color: var(--gl-soft); }
.gkc-empty > i { font-size: 44px; color: var(--gl-accent); }
.gca2-dash .gkc-empty h2 { margin: 0; font-family: var(--gl-cond); font-size: 24px; text-transform: uppercase; letter-spacing: 0.06em; color: var(--gl-text); }
.gkc-empty p { max-width: 460px; margin: 0 0 6px; }
.gkc-more { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 14px; }
.gca2-dash .gkc-mini { display: grid; grid-template-columns: 84px minmax(0, 1fr); align-items: center; gap: 14px; margin: 0; padding: 10px; color: var(--gl-text); text-decoration: none; transition: border-color 0.15s, transform 0.15s; }
.gca2-dash .gkc-mini:hover { border-color: var(--gl-accent); transform: translateY(-2px); }
.gkc-mini-img { display: grid; place-items: center; aspect-ratio: 1; border-radius: 8px; background: #FFFFFF; overflow: hidden; }
.gkc-mini-img img { width: 100%; height: 100%; object-fit: contain; padding: 6px; }
.gkc-mini-img i { font-size: 28px; color: #C9CEF0; }
.gkc-mini-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gkc-mini-text b { font-size: 14px; line-height: 1.25; }
.gkc-mini-text .gk-price { font-size: 17px; }
/* the receipt dialog: thermal paper */
.gkc-rc-dlg { padding: 0; border: 0; background: transparent; max-width: calc(100vw - 24px); max-height: calc(100vh - 24px); overflow: visible; }
.gkc-rc-dlg::backdrop { background: rgba(3, 5, 22, 0.72); backdrop-filter: blur(3px); }
.gkc-rc-dlg[open] .gkc-rc-paper { animation: gkc-print 0.55s cubic-bezier(0.2, 0.8, 0.3, 1); }
@keyframes gkc-print { from { clip-path: inset(0 0 100% 0); transform: translateY(-24px); } to { clip-path: inset(0 0 0 0); transform: none; } }
.gkc-rc { display: flex; flex-direction: column; align-items: center; gap: 14px; max-height: calc(100vh - 24px); overflow-y: auto; padding: 4px; }
.gkc-rc-paper { position: relative; width: min(340px, calc(100vw - 32px)); padding: 26px 22px 34px; background: #F7F5EE linear-gradient(180deg, rgba(0, 0, 0, 0.025), transparent 30%, rgba(0, 0, 0, 0.02)); color: #22242F;
  font-family: 'IBM Plex Mono', ui-monospace, monospace; font-size: 12.5px; line-height: 1.45; box-shadow: 0 18px 50px rgba(0, 0, 0, 0.55);
  -webkit-mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 14px 100%; mask: conic-gradient(from -45deg at bottom, #0000, #000 1deg 89deg, #0000 90deg) 50% / 14px 100%; }
.gkc-rc-logo { display: block; width: 64px; height: auto; margin: 0 auto 8px; filter: grayscale(1) contrast(1.2); }
.gkc-rc-shop { text-align: center; font-weight: 700; font-size: 15px; letter-spacing: 0.14em; text-transform: uppercase; }
.gkc-rc-sub, .gkc-rc-center { text-align: center; }
.gkc-rc-sub { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; color: #5E6175; }
.gkc-rc-rule { height: 0; margin: 12px 0; border-top: 1px solid #22242F; }
.gkc-rc-rule.is-dashed { border-top: 1px dashed #8B8EA3; margin: 8px 0; }
.gkc-rc-meta { display: grid; gap: 1px; margin: 0; }
.gkc-rc-meta div { display: flex; justify-content: space-between; gap: 12px; }
.gkc-rc-meta dt { font-weight: 400; color: #5E6175; text-transform: uppercase; font-size: 11px; letter-spacing: 0.06em; }
.gkc-rc-meta dd { margin: 0; text-align: right; }
.gkc-rc-line { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; }
.gkc-rc-line > span:first-child { min-width: 0; overflow-wrap: anywhere; }
.gkc-rc-line > :last-child { white-space: nowrap; }
.gkc-rc-dim { color: #5E6175; font-size: 11.5px; }
.gkc-rc-total { margin-top: 4px; font-size: 17px; font-weight: 700; letter-spacing: 0.06em; }
.gkc-rc-gift { display: flex; flex-direction: column; align-items: center; gap: 1px; margin: 10px 0 2px; padding: 8px; border: 1.5px dashed #22242F; border-radius: 4px; text-align: center; }
.gkc-rc-gift b { letter-spacing: 0.3em; }
.gkc-rc-bars { display: flex; justify-content: center; align-items: stretch; height: 46px; margin: 4px 0 4px; }
.gkc-rc-bars i { display: block; background: #22242F; }
.gkc-rc-code { text-align: center; font-size: 11px; letter-spacing: 0.3em; }
.gkc-rc-thanks { margin: 12px 0 2px; text-align: center; font-weight: 700; text-transform: uppercase; letter-spacing: 0.06em; }
.gkc-rc-tools { display: flex; gap: 8px; }
@media (prefers-reduced-motion: reduce) { .gkc-rc-dlg[open] .gkc-rc-paper { animation: none; } .gkc-rc-btn { transition: none; } }
@media print {
  body.gkc-printing > *:not(dialog) { display: none !important; }
  body.gkc-printing .gca2-dash > *:not(.gk-grid):not(section) { display: none !important; }
  body.gkc-printing #page-contents, body.gkc-printing .gca2-dash, body.gkc-printing .gd-section, body.gkc-printing .gd-wrap, body.gkc-printing .gk-grid { display: block !important; background: none !important; padding: 0 !important; margin: 0 !important; }
  body.gkc-printing .gca2-dash > section:not(:has(.is-printing)), body.gkc-printing .gk-card, body.gkc-printing nav, body.gkc-printing footer, body.gkc-printing .gd-hero { display: none !important; }
  body.gkc-printing .gkc-rc-dlg.is-printing { position: static; display: block; }
  body.gkc-printing .gkc-rc-dlg.is-printing::backdrop { display: none; }
  body.gkc-printing .gkc-rc-tools { display: none; }
  body.gkc-printing .gkc-rc-paper { box-shadow: none; animation: none; }
}
.gca2-dash .gkc-rc-paper b, .gca2-dash .gkc-rc-paper strong { color: inherit; }

/* SimBrief briefing: where the aircraft is parked, under the flight number (2026-11-08) */
.gq-show-title:has(+ .gsb-where) { margin-bottom: 8px; }
.gsb-where { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 6px; margin-bottom: 18px; font-size: 14px; color: var(--gl-soft); }
.gsb-where > i { color: var(--gl-green); margin-right: 2px; }
.gsb-where b { color: var(--gl-text); font-weight: 600; }
.gsb-where.is-away > i, .gsb-where-warn { color: var(--gl-accent); }
.gsb-where.is-flying > i { color: var(--gl-muted); }

/* File Library "News" tab (2026-11-08): public files; move to News / Other and copy-link buttons beside delete */
.gfl-news-note { margin: 0 0 4px; padding: 14px 18px 0; }
.gfl-news-note i { color: var(--gl-green); margin-right: 6px; }
.gfl-move-form { position: absolute; top: 50%; right: 50px; transform: translateY(-50%); margin: 0; }
.gca2-dash .gdl-item:has(.gfl-move-form) > a.gdl-file { padding-right: 92px; }
.gca2-dash .gfl-copy { position: absolute; top: 50%; right: 10px; transform: translateY(-50%); }
.gca2-dash .gdl-item:has(.gfl-copy) > a.gdl-file { padding-right: 52px; }
.gca2-dash .gdl-item:has(.gfl-copy):has(.gfl-move-form) .gfl-copy { right: 90px; }
.gca2-dash .gdl-item:has(.gfl-copy):has(.gfl-move-form) > a.gdl-file { padding-right: 132px; }
.gca2-dash .gdl-item:has(.gfl-copy) .gdl-dl { display: none; }
.gca2-dash .gfl-move, .gca2-dash .gfl-copy {
  width: 34px; height: 34px; display: inline-flex; align-items: center; justify-content: center; cursor: pointer;
  border: 1px solid var(--gl-line); border-radius: 8px; background: rgba(7, 10, 43, 0.7); color: var(--gl-muted); font-size: 14px;
}
.gca2-dash .gfl-move:hover, .gca2-dash .gfl-move:focus-visible, .gca2-dash .gfl-copy:hover, .gca2-dash .gfl-copy:focus-visible { border-color: var(--gl-accent); color: var(--gl-accent); outline: none; }
.gca2-dash .gfl-copy.is-done { border-color: var(--gl-green); color: var(--gl-green); }

/* ---------------------------------------------------------------- PMC F-23 menu (gca2/nav_menu, 2026-11-10): red, not gold */
.gcm-pmc-icon, #gcmPmc .gcm-pmc-icon { color: #E5484D !important; }
.gcm-menu .dropdown-item.active .gcm-pmc-icon, .gcm-menu .dropdown-item:hover .gcm-pmc-icon { color: #FF6B6F !important; }

/* ---------------------------------------------------------------- Fuel against plan chip (gca2/pireps/fuel_chip, 2026-11-11)
   PIREP lists and the PIREP page readout; a .gq-tip button (popup from gca2/pireps/tip_script), shaped as a pill */
.gca2-dash .gq-tip.gq-fu-chip { width: auto; height: auto; margin: 0 0 0 6px; padding: 1px 7px; border: 1px solid currentColor; border-radius: 99px;
  font-family: var(--gl-mono, monospace); font-size: 11px; font-weight: 600; line-height: 1.5; color: var(--gl-muted); vertical-align: middle; }
.gca2-dash .gq-tip.gq-fu-chip.gq-fu-ok { color: var(--gl-green); }
.gca2-dash .gq-tip.gq-fu-chip.gq-fu-warn { color: var(--gl-accent); }
.gca2-dash .gq-tip.gq-fu-chip.gq-fu-bad { color: #FF8A8A; }
.gca2-dash .gq-tip.gq-fu-chip:hover, .gca2-dash .gq-tip.gq-fu-chip[aria-describedby] { background: rgba(255, 255, 255, 0.08); color: inherit; }
.gca2-dash .gq-tip.gq-fu-chip.gq-fu-ok:hover { color: var(--gl-green); }
.gca2-dash .gq-tip.gq-fu-chip.gq-fu-warn:hover { color: var(--gl-accent); }
.gca2-dash .gq-tip.gq-fu-chip.gq-fu-bad:hover { color: #FF8A8A; }
.gd-readout-value .gq-tip.gq-fu-chip { font-size: 13px; padding: 2px 9px; }

/* ---------------------------------------------------------------- Mode switch tab (2026-11-11, Pmc/Mode)
   Right of Corporate: "PMC F-23" (red crest) in GCA mode, "GCA" (gold logo) in F-23 mode. */
#Dispo_NavBar.gm-nav .nav-link.gcm-mode { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; letter-spacing: .04em; border-radius: 8px; }
#Dispo_NavBar.gm-nav .gcm-mode-img { width: 20px; height: 20px; object-fit: contain; flex: none; }
#Dispo_NavBar.gm-nav .nav-link.gcm-mode-f23 { color: #FF8589; border: 1px solid rgba(229, 72, 77, 0.45); padding: 6px 11px; }
#Dispo_NavBar.gm-nav .nav-link.gcm-mode-f23:hover, #Dispo_NavBar.gm-nav .nav-link.gcm-mode-f23:focus-visible { background: rgba(229, 72, 77, 0.14); color: #fff; }
#Dispo_NavBar.gm-nav .nav-link.gcm-mode-gca { color: #F2C230; border: 1px solid rgba(242, 194, 48, 0.45); padding: 6px 11px; }
#Dispo_NavBar.gm-nav .nav-link.gcm-mode-gca .gcm-mode-img { background: #fff; border-radius: 50%; padding: 1px; }
#Dispo_NavBar.gm-nav .nav-link.gcm-mode-gca:hover, #Dispo_NavBar.gm-nav .nav-link.gcm-mode-gca:focus-visible { background: rgba(242, 194, 48, 0.12); color: #fff; }
@media (max-width: 1199px) { #Dispo_NavBar.gm-nav .nav-link.gcm-mode { margin: 6px 0; align-self: flex-start; } }
