/* ============================================================
   Floats & Fuel Cells — Design System
   Global entry point. Consumers link THIS file.
   Keep this file as @import lines only.
   ============================================================ */

@import url("tokens/fonts.css");
@import url("tokens/colors.css");
@import url("tokens/typography.css");
@import url("tokens/spacing.css");
@import url("tokens/elevation.css");
@import url("tokens/motion.css");

/* Executive briefing title tiles + full-grid reveal panel
   High-contrast version: uses fixed colors instead of color-mix/transparent layering
   so cards render visibly across desktop, mobile, HDR, and browser contrast modes. */
.ffc-briefing-grid {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 18px;
  min-height: 596px;
  perspective: 1400px;
}

.ffc-briefing-card {
  position: relative;
  min-height: 168px;
  appearance: none;
  border: 1px solid rgba(89, 221, 210, .55);
  border-radius: 28px;
  background: linear-gradient(145deg, #0f766e 0%, #115e59 54%, #0f3f3b 100%);
  color: #f7fffd;
  box-shadow:
    0 22px 48px rgba(0, 0, 0, .34),
    0 0 0 1px rgba(255,255,255,.05) inset,
    0 1px 0 rgba(255,255,255,.18) inset;
  padding: 26px;
  cursor: pointer;
  text-align: left;
  overflow: hidden;
  transform: translateY(0) scale(1);
  transition:
    opacity 340ms cubic-bezier(.16, 1, .3, 1),
    transform 340ms cubic-bezier(.16, 1, .3, 1),
    box-shadow 340ms cubic-bezier(.16, 1, .3, 1),
    border-color 340ms cubic-bezier(.16, 1, .3, 1),
    filter 340ms cubic-bezier(.16, 1, .3, 1);
  isolation: isolate;
}

.ffc-briefing-card::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 14% 12%, rgba(255,255,255,.22), transparent 32%),
    linear-gradient(115deg, transparent 0%, rgba(255,255,255,.16) 42%, transparent 56%);
  opacity: .58;
  transform: translateX(-62%);
  transition: transform 760ms cubic-bezier(.16, 1, .3, 1), opacity 320ms ease;
  pointer-events: none;
}

.ffc-briefing-card:hover {
  transform: translateY(-7px) scale(1.018);
  border-color: rgba(160, 255, 246, .86);
  box-shadow:
    0 30px 66px rgba(0, 0, 0, .42),
    0 0 34px rgba(34, 211, 238, .20),
    0 0 0 1px rgba(255,255,255,.08) inset,
    0 1px 0 rgba(255,255,255,.22) inset;
}

.ffc-briefing-card:hover::before { transform: translateX(62%); opacity: .82; }

.ffc-briefing-grid.has-open .ffc-briefing-card {
  opacity: .22;
  filter: blur(1.2px) saturate(.8) brightness(.72);
  transform: scale(.965);
  pointer-events: none;
}

.ffc-briefing-card.is-selected {
  opacity: .34 !important;
  filter: blur(.8px) saturate(.88) brightness(.78) !important;
}

.ffc-briefing-glow {
  position: absolute;
  inset: auto -20% -48% -20%;
  height: 88%;
  background: radial-gradient(circle, rgba(45, 212, 191, .34), transparent 64%);
  opacity: .78;
  transition: opacity 340ms ease, transform 520ms cubic-bezier(.16, 1, .3, 1);
  z-index: -1;
}

.ffc-briefing-card:hover .ffc-briefing-glow {
  opacity: 1;
  transform: translateY(-7px) scale(1.12);
}

.ffc-briefing-title {
  position: relative;
  z-index: 2;
  display: block;
  max-width: 94%;
  font-family: var(--font-display);
  font-size: clamp(23px, 2.2vw, 34px);
  font-weight: 780;
  line-height: .98;
  letter-spacing: -.035em;
  color: #ffffff !important;
  text-shadow: 0 2px 14px rgba(0,0,0,.36);
}

.ffc-briefing-cue {
  position: absolute;
  z-index: 2;
  left: 26px;
  bottom: 24px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .13em;
  text-transform: uppercase;
  color: rgba(240, 253, 250, .72);
}

.ffc-briefing-card:focus-visible,
.ffc-briefing-detail-close:focus-visible,
.ffc-briefing-detail-action:focus-visible {
  outline: 3px solid rgba(94, 234, 212, .95);
  outline-offset: 4px;
}

.ffc-briefing-detail {
  position: absolute;
  inset: 0;
  z-index: 20;
  border-radius: 34px;
  overflow: hidden;
  background:
    radial-gradient(circle at 18% 0%, rgba(45, 212, 191, .30), transparent 36%),
    radial-gradient(circle at 92% 8%, rgba(255,255,255,.16), transparent 30%),
    linear-gradient(145deg, #062424 0%, #0f3f3b 45%, #123f63 100%);
  color: #ffffff;
  border: 0;
  cursor: pointer;
  text-align: left;
  font: inherit;
  box-shadow:
    0 44px 110px rgba(0, 0, 0, .50),
    0 0 0 1px rgba(94, 234, 212, .30) inset,
    0 1px 0 rgba(255,255,255,.18) inset;
  transform-origin: center;
  animation: ffcBriefingReveal 640ms cubic-bezier(.16, 1, .3, 1) both;
}

.ffc-briefing-detail::after {
  content: "";
  position: absolute;
  inset: 0;
  background:
    linear-gradient(115deg, transparent 0%, rgba(255,255,255,.14) 42%, transparent 56%),
    repeating-linear-gradient(90deg, rgba(255,255,255,.03) 0 1px, transparent 1px 120px);
  transform: translateX(-120%);
  animation: ffcBriefingSheen 920ms cubic-bezier(.16, 1, .3, 1) 120ms both;
  pointer-events: none;
}

.ffc-briefing-detail-inner {
  position: relative;
  z-index: 2;
  height: 100%;
  min-height: 100%;
  max-height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: clamp(34px, 5vw, 72px);
  overflow-y: auto;
  overscroll-behavior-y: auto;
  animation: ffcBriefingContent 560ms cubic-bezier(.16, 1, .3, 1) 120ms both;
}



.ffc-briefing-detail-inner::-webkit-scrollbar { width: 10px; }
.ffc-briefing-detail-inner::-webkit-scrollbar-track { background: rgba(255,255,255,.08); border-radius: 999px; }
.ffc-briefing-detail-inner::-webkit-scrollbar-thumb { background: rgba(204,251,241,.46); border-radius: 999px; }
.ffc-briefing-detail-inner::-webkit-scrollbar-thumb:hover { background: rgba(204,251,241,.68); }

.ffc-briefing-detail-kicker {
  font-family: var(--font-mono);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .16em;
  text-transform: uppercase;
  color: rgba(204, 251, 241, .82);
}

.ffc-briefing-detail h3 {
  margin: 16px 0 24px;
  max-width: 980px;
  font-family: var(--font-display);
  font-size: clamp(44px, 6vw, 82px);
  font-weight: 780;
  line-height: .9;
  letter-spacing: -.055em;
  color: #ffffff;
  text-shadow: 0 3px 24px rgba(0,0,0,.34);
}

.ffc-briefing-detail p {
  margin: 0;
  max-width: 940px;
  white-space: pre-wrap;
  font-family: var(--font-sans);
  font-size: clamp(20px, 2.2vw, 30px);
  line-height: 1.34;
  color: rgba(248, 250, 252, .94);
}

.ffc-briefing-detail p.is-empty {
  font-style: italic;
  color: rgba(226, 232, 240, .72);
}

.ffc-briefing-detail-close {
  display: none;
  position: absolute;
  top: 24px;
  right: 24px;
  z-index: 4;
  width: 48px;
  height: 48px;
  border: 1px solid rgba(255,255,255,.30);
  border-radius: 999px;
  background: rgba(255,255,255,.14);
  color: #ffffff;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  transition: transform 220ms ease, background 220ms ease;
}

.ffc-briefing-detail-close:hover { transform: scale(1.06); background: rgba(255,255,255,.22); }

.ffc-briefing-detail-action {
  display: none;
  align-self: flex-start;
  margin-top: 34px;
  border: 1px solid rgba(255,255,255,.30);
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  color: #ffffff;
  padding: 12px 18px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .12em;
  text-transform: uppercase;
  cursor: pointer;
  transition: transform 220ms ease, background 220ms ease;
}

.ffc-briefing-detail-action:hover { transform: translateY(-1px); background: rgba(255,255,255,.24); }

@keyframes ffcBriefingReveal {
  0% { opacity: 0; transform: translateY(18px) scale(.94); clip-path: inset(20% 20% 20% 20% round 28px); filter: blur(3px); }
  62% { opacity: 1; transform: translateY(-2px) scale(1.01); filter: blur(0); }
  100% { opacity: 1; transform: translateY(0) scale(1); clip-path: inset(0 0 0 0 round 34px); filter: blur(0); }
}

@keyframes ffcBriefingContent {
  from { opacity: 0; transform: translateY(22px) scale(.985); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

@keyframes ffcBriefingSheen {
  from { transform: translateX(-120%); }
  to { transform: translateX(120%); }
}

@media (max-width: 980px) {
  .ffc-briefing-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); min-height: 724px; }
}

@media (max-width: 680px) {
  .ffc-briefing-grid { grid-template-columns: 1fr; min-height: 1160px; }
  .ffc-briefing-detail h3 { font-size: 42px; }
  .ffc-briefing-detail p { font-size: 19px; }
}

@media (prefers-reduced-motion: reduce), (forced-colors: active) {
  .ffc-briefing-card,
  .ffc-briefing-card *,
  .ffc-briefing-detail,
  .ffc-briefing-detail * {
    transition: none !important;
    animation: none !important;
  }
}

@media print {
  .ffc-briefing-grid { grid-template-columns: repeat(3, 1fr); min-height: auto; }
  .ffc-briefing-card { min-height: 140px; box-shadow: none; }
  .ffc-briefing-detail { position: relative; grid-column: 1 / -1; min-height: 360px; }
}

/* Briefing cards: title-only tiles; reveal cue intentionally removed. */
.ffc-briefing-cue { display: none !important; }


.ffc-briefing-detail:active { transform: scale(.998); }

/* Print-only report polish: keeps the live site dark, but makes Print / Save PDF clear on white paper. */
.ffc-print-briefings { display: none; }

@media print {
  @page { size: Letter; margin: 0.45in; }
  html, body {
    background: #ffffff !important;
    color: #111827 !important;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
  }

  * {
    box-shadow: none !important;
    text-shadow: none !important;
    filter: none !important;
    animation: none !important;
    transition: none !important;
  }

  .ffc-no-print { display: none !important; }

  #root > div,
  #root main,
  #root section,
  #root header {
    background: #ffffff !important;
  }

  #root > div > div {
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 18px !important;
  }

  header.ffc-rise {
    padding-bottom: 12px !important;
    margin-bottom: 4px !important;
    border-bottom: 2px solid #0f766e !important;
  }

  h1 {
    color: #0f172a !important;
    font-size: 30px !important;
    letter-spacing: -0.01em !important;
  }

  section {
    break-inside: avoid;
    page-break-inside: avoid;
    margin: 0 0 14px !important;
  }

  section > div:first-child span:first-child,
  span[style*="text-transform: uppercase"] {
    color: #0f766e !important;
  }

  .ffc-card,
  [style*="--grad-metal-card"],
  [style*="var(--grad-metal-card)"] {
    background: #ffffff !important;
    background-color: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 10px !important;
  }

  /* KPI row */
  section.ffc-rise {
    grid-template-columns: repeat(4, 1fr) !important;
    gap: 8px !important;
  }
  section.ffc-rise > * {
    padding: 10px !important;
    min-height: auto !important;
  }

  /* Financial summary and division tables */
  table {
    width: 100% !important;
    border-collapse: collapse !important;
    color: #111827 !important;
    font-size: 10px !important;
  }
  thead tr { background: #edf7f5 !important; }
  th {
    color: #334155 !important;
    border-bottom: 1px solid #94a3b8 !important;
    padding: 7px 9px !important;
  }
  td {
    color: #111827 !important;
    border-bottom: 1px solid #e2e8f0 !important;
    padding: 7px 9px !important;
  }

  /* Keep the page layout similar, but printable. */
  section > div[style*="grid-template-columns: 1fr 320px"] {
    grid-template-columns: 1fr 2.25in !important;
    gap: 10px !important;
  }

  /* Charts: white paper cards with fixed heights so ECharts canvases print predictably. */
  .ffc-no-print-charts {
    display: block !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .ffc-no-print-charts > div:last-child {
    display: grid !important;
    grid-template-columns: 1fr 1fr !important;
    gap: 10px !important;
  }
  .ffc-no-print-charts .ffc-card,
  .ffc-no-print-charts [style*="var(--grad-metal-card)"] {
    background: #ffffff !important;
    border: 1px solid #cbd5e1 !important;
    border-radius: 10px !important;
    padding: 10px !important;
  }
  .ffc-no-print-charts canvas,
  .ffc-no-print-charts div[_echarts_instance_] {
    background: #ffffff !important;
  }

  /* Briefings: print all notes as readable text, not interactive cards. */
  .ffc-briefing-card,
  .ffc-briefing-detail,
  .ffc-briefing-glow {
    display: none !important;
  }
  .ffc-briefing-grid {
    display: block !important;
    min-height: 0 !important;
    perspective: none !important;
  }
  .ffc-print-briefings {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 8px !important;
  }
  .ffc-print-briefing-item {
    border: 1px solid #cbd5e1 !important;
    border-radius: 10px !important;
    padding: 10px !important;
    background: #ffffff !important;
    break-inside: avoid;
    page-break-inside: avoid;
  }
  .ffc-print-briefing-item h3 {
    margin: 0 0 5px !important;
    color: #0f766e !important;
    font-family: var(--font-sans) !important;
    font-size: 11px !important;
    line-height: 1.2 !important;
  }
  .ffc-print-briefing-item p {
    margin: 0 !important;
    white-space: pre-wrap !important;
    color: #334155 !important;
    font-family: var(--font-sans) !important;
    font-size: 9.5px !important;
    line-height: 1.32 !important;
  }

  /* Avoid awkward blank final page from action rows. */
  .ffc-toast, .ffc-briefing-cue { display: none !important; }
}

/* Print refinement v2: tighter executive handout layout and reliable PDF file names. */
@media print {
  @page { size: Letter; margin: 0.38in; }

  html, body {
    width: auto !important;
    min-width: 0 !important;
    overflow: visible !important;
    font-size: 9pt !important;
  }

  .ffc-presentation-root {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    gap: 12px !important;
  }

  .ffc-presentation-header {
    display: block !important;
    padding-bottom: 8px !important;
    margin-bottom: 8px !important;
    border-bottom: 1.5pt solid #0f766e !important;
  }

  .ffc-presentation-header h1 {
    font-size: 21pt !important;
    line-height: 1.05 !important;
    margin: 0 0 6px !important;
  }

  .ffc-presentation-header span {
    font-size: 8.5pt !important;
    line-height: 1.25 !important;
  }

  .ffc-presentation-header > div:last-child {
    margin-top: 6px !important;
    justify-content: flex-start !important;
  }

  .ffc-presentation-header [class*="Badge"],
  .ffc-presentation-header div[style*="border-radius: var(--radius-pill)"] {
    font-size: 8pt !important;
    padding: 3px 8px !important;
  }

  .ffc-kpi-grid {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 7px !important;
    margin-bottom: 6px !important;
  }

  .ffc-kpi-grid > div {
    padding: 8px 9px !important;
    gap: 5px !important;
    border-radius: 8px !important;
    min-width: 0 !important;
    overflow: hidden !important;
  }

  .ffc-kpi-grid > div > div:nth-of-type(1) {
    font-size: 6.8pt !important;
    letter-spacing: 0.08em !important;
    white-space: nowrap !important;
  }

  .ffc-kpi-grid > div > div:nth-of-type(2) {
    font-size: 16pt !important;
    line-height: 1.02 !important;
    letter-spacing: -0.02em !important;
    white-space: nowrap !important;
  }

  .ffc-kpi-grid > div > div:nth-of-type(3),
  .ffc-kpi-grid > div > div:nth-of-type(3) span {
    font-size: 7.5pt !important;
    line-height: 1.15 !important;
  }

  section {
    margin: 0 0 10px !important;
    break-inside: auto !important;
    page-break-inside: auto !important;
  }

  section > div:first-child {
    margin-bottom: 6px !important;
  }

  section > div:first-child span:first-child,
  span[style*="text-transform: uppercase"] {
    font-size: 7.5pt !important;
    letter-spacing: 0.12em !important;
  }

  .ffc-financial-section > div:nth-child(2) {
    grid-template-columns: 1fr 1.5in !important;
    gap: 8px !important;
    align-items: stretch !important;
  }

  .ffc-financial-section > div:nth-child(2) > div:last-child {
    gap: 8px !important;
  }

  .ffc-financial-section > div:nth-child(2) > div:last-child > div {
    padding: 8px !important;
    border-radius: 8px !important;
  }

  .ffc-financial-section > div:nth-child(2) > div:last-child span:last-child {
    font-size: 16pt !important;
    line-height: 1.05 !important;
    white-space: nowrap !important;
  }

  .ffc-report-table-card {
    border-radius: 8px !important;
    overflow: hidden !important;
  }

  .ffc-report-table {
    table-layout: fixed !important;
    font-size: 8pt !important;
  }

  .ffc-report-table th,
  .ffc-report-table td {
    padding: 5px 7px !important;
    font-size: 8pt !important;
    line-height: 1.22 !important;
    white-space: normal !important;
    overflow: visible !important;
  }

  .ffc-report-table th:first-child,
  .ffc-report-table td:first-child { width: 34% !important; }
  .ffc-report-table th:nth-child(2),
  .ffc-report-table td:nth-child(2),
  .ffc-report-table th:nth-child(3),
  .ffc-report-table td:nth-child(3),
  .ffc-report-table th:nth-child(4),
  .ffc-report-table td:nth-child(4) { width: 18% !important; }
  .ffc-report-table th:nth-child(5),
  .ffc-report-table td:nth-child(5) { width: 12% !important; }

  .ffc-division-section {
    break-before: auto !important;
    page-break-before: auto !important;
  }

  .ffc-chart-section {
    break-before: auto !important;
    page-break-before: auto !important;
  }

  .ffc-charts-grid,
  .ffc-no-print-charts > div:last-child {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 8px !important;
  }

  .ffc-charts-grid > div,
  .ffc-no-print-charts > div:last-child > div {
    padding: 8px !important;
    border-radius: 8px !important;
    break-inside: avoid !important;
    page-break-inside: avoid !important;
  }

  .ffc-charts-grid > div > div[style*="height: 240px"],
  .ffc-no-print-charts div[style*="height: 240px"] {
    height: 1.85in !important;
  }

  .ffc-charts-grid > div > div[style*="height: 120px"],
  .ffc-no-print-charts div[style*="height: 120px"] {
    height: 1.05in !important;
  }

  .ffc-print-briefings {
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 6px !important;
  }

  .ffc-print-briefing-item {
    padding: 7px !important;
    border-radius: 8px !important;
    min-height: 0 !important;
  }

  .ffc-print-briefing-item h3 {
    font-size: 8pt !important;
    line-height: 1.15 !important;
    margin-bottom: 3px !important;
  }

  .ffc-print-briefing-item p {
    font-size: 7.4pt !important;
    line-height: 1.25 !important;
  }
}

/* Header brand link + airplane-themed theme toggle */
.ffc-header-brand {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  min-width: 220px;
}

.ffc-brand-link {
  display: inline-flex;
  color: inherit;
  text-decoration: none;
  border-radius: var(--radius-md);
}

.ffc-brand-link:focus-visible {
  outline: 3px solid var(--focus-ring);
  outline-offset: 4px;
}

.ffc-theme-toggle {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-left: 36px;
  appearance: none;
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-pill);
  background: color-mix(in srgb, var(--surface-inset) 86%, transparent);
  color: var(--text-secondary);
  padding: 5px 10px;
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .09em;
  text-transform: uppercase;
  cursor: pointer;
  box-shadow: var(--shadow-sm);
  transition: transform var(--dur-fast) var(--ease-standard), background var(--dur-fast) var(--ease-standard), color var(--dur-fast) var(--ease-standard), border-color var(--dur-fast) var(--ease-standard);
}

.ffc-theme-toggle:hover {
  transform: translateY(-1px);
  color: var(--text-primary);
  border-color: var(--border-brand);
  background: var(--surface-card);
}

.ffc-theme-toggle span:first-child {
  display: inline-grid;
  place-items: center;
  width: 18px;
  height: 18px;
  border-radius: 999px;
  background: var(--brand-primary);
  color: var(--text-on-brand);
  font-size: 12px;
  line-height: 1;
}

@media (max-width: 760px) {
  .ffc-header-brand { min-width: 0; }
  .ffc-theme-toggle { margin-left: 0; }
}

/* Final cosmetic polish: light-mode logo contrast + flat briefing cards */
[data-theme="light"] .ffc-brand-link img {
  filter: brightness(0) saturate(100%) invert(20%) sepia(39%) saturate(920%) hue-rotate(137deg) brightness(92%) contrast(95%) drop-shadow(0 1px 1px rgba(255,255,255,.8));
}

.ffc-briefing-card {
  background: #0f766e !important;
}

.ffc-briefing-card::before {
  display: none !important;
  content: none !important;
}

.ffc-briefing-card:hover::before {
  display: none !important;
}


/* Final aviation detail pass: flat seat cards, subtle cabin/instrument motifs, and print flight strip. */
.ffc-briefing-grid {
  gap: 26px 34px !important;
  padding: 8px 34px 2px !important;
  min-height: 548px !important;
}

.ffc-briefing-card {
  min-height: 150px !important;
  border-radius: 30px !important;
  background: #0f766e !important;
  background-image: none !important;
  border: 1px solid rgba(142, 245, 235, .52) !important;
  box-shadow:
    0 18px 42px rgba(0, 0, 0, .26),
    0 0 0 1px rgba(255,255,255,.05) inset !important;
  overflow: visible !important;
  padding: 28px 30px !important;
}

[data-theme="light"] .ffc-briefing-card {
  background: #10766f !important;
  border-color: rgba(11, 95, 87, .42) !important;
  box-shadow:
    0 18px 34px rgba(15, 65, 61, .16),
    0 0 0 1px rgba(255,255,255,.08) inset !important;
}

.ffc-briefing-card::before,
.ffc-briefing-card::after {
  content: "" !important;
  display: block !important;
  position: absolute;
  top: 28px;
  bottom: 28px;
  width: 18px;
  pointer-events: none;
  opacity: 1 !important;
  transform: none !important;
  transition: transform 340ms cubic-bezier(.16, 1, .3, 1), background 220ms ease, box-shadow 220ms ease !important;
  background: #0a514c !important;
  background-image: none !important;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 96'%3E%3Cpath d='M18 10C18 4.5 13.5 0 8 0H0v96h8c5.5 0 10-4.5 10-10V10Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 18 96'%3E%3Cpath d='M18 10C18 4.5 13.5 0 8 0H0v96h8c5.5 0 10-4.5 10-10V10Z'/%3E%3C/svg%3E");
  -webkit-mask-size: 100% 100%;
  mask-size: 100% 100%;
  -webkit-mask-repeat: no-repeat;
  mask-repeat: no-repeat;
  filter: none !important;
  z-index: 1;
}

.ffc-briefing-card::before { left: -18px; }
.ffc-briefing-card::after {
  right: -18px;
  transform: scaleX(-1) !important;
}

[data-theme="light"] .ffc-briefing-card::before,
[data-theme="light"] .ffc-briefing-card::after {
  background: #0b5f57 !important;
}

.ffc-briefing-card:hover {
  transform: translateY(-5px) scale(1.012) !important;
  border-color: rgba(175, 255, 248, .78) !important;
  box-shadow:
    0 24px 54px rgba(0, 0, 0, .32),
    0 0 0 1px rgba(255,255,255,.06) inset !important;
}

.ffc-briefing-card:hover::before { transform: translateX(-2px) !important; }
.ffc-briefing-card:hover::after { transform: scaleX(-1) translateX(-2px) !important; }
.ffc-briefing-glow { display: none !important; }
.ffc-briefing-title { max-width: 100% !important; text-shadow: 0 2px 10px rgba(0,0,0,.32) !important; }

/* Subtle instrument/taxiway section dividers without changing markup. */
.ffc-presentation-root section > div:first-child > span:last-child,
.ffc-presentation-header {
  position: relative;
}
.ffc-presentation-root section > div:first-child > span:last-child {
  height: 1px !important;
  background:
    repeating-linear-gradient(90deg,
      var(--border-subtle) 0,
      var(--border-subtle) 18px,
      transparent 18px,
      transparent 28px) !important;
  opacity: .88;
}
.ffc-presentation-root section > div:first-child::before {
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: var(--brand-accent);
  box-shadow: 14px 0 0 color-mix(in srgb, var(--brand-accent) 45%, transparent);
  opacity: .9;
}

/* Light route-line motif in presentation header. */
.ffc-presentation-header::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 2px;
  background: linear-gradient(90deg,
    var(--brand-primary) 0 34%,
    transparent 34% 38%,
    var(--brand-accent) 38% 40%,
    transparent 40% 44%,
    var(--border-subtle) 44% 100%);
  opacity: .72;
}

/* Aircraft-seat cards on smaller screens stay clear without side clipping. */
@media (max-width: 980px) {
  .ffc-briefing-grid { padding-inline: 24px !important; gap: 24px 30px !important; }
  .ffc-briefing-card { min-height: 144px !important; }
}
@media (max-width: 620px) {
  .ffc-briefing-grid { padding-inline: 18px !important; gap: 22px !important; }
  .ffc-briefing-card { min-height: 132px !important; }
  .ffc-briefing-card::before { left: -13px; width: 14px; }
  .ffc-briefing-card::after { right: -13px; width: 14px; }
}

/* Aviation-styled theme toggle refinements. */
.ffc-theme-toggle {
  position: relative;
  overflow: hidden;
}
.ffc-theme-toggle::after {
  content: "";
  position: absolute;
  left: 36px;
  right: 12px;
  top: 50%;
  height: 1px;
  background: repeating-linear-gradient(90deg, currentColor 0 5px, transparent 5px 9px);
  opacity: .18;
  transform: translateY(-50%);
  pointer-events: none;
}
.ffc-theme-toggle span { position: relative; z-index: 1; }

/* Print-only flight-strip metadata footer. */
.ffc-print-flight-strip { display: none; }
@media print {
  .ffc-print-flight-strip {
    display: grid !important;
    grid-template-columns: repeat(4, 1fr);
    gap: 0;
    margin-top: 18px;
    border: 1px solid #cbd5e1;
    border-radius: 10px;
    overflow: hidden;
    break-inside: avoid;
    page-break-inside: avoid;
    font-family: var(--font-mono);
    color: #0f172a;
  }
  .ffc-print-flight-strip span {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 8px 10px;
    border-right: 1px solid #cbd5e1;
    font-size: 8.5px;
    letter-spacing: .08em;
    text-transform: uppercase;
    line-height: 1.2;
  }
  .ffc-print-flight-strip span:last-child { border-right: 0; }
  .ffc-print-flight-strip strong {
    font-family: var(--font-sans);
    font-size: 10px;
    letter-spacing: 0;
    text-transform: none;
    color: #0f766e;
  }
  .ffc-briefing-card::before,
  .ffc-briefing-card::after { display: none !important; }
}

/* Cabin seating layout v2: flat graph-green cards, detached aisle/row system. */
.ffc-briefing-cabin {
  --ffc-seat-green: #1fb3aa;
  --ffc-seat-green-hover: #1aa79f;
  position: relative;
  display: grid;
  grid-template-columns: minmax(220px, .78fr) clamp(76px, 7vw, 118px) minmax(0, 1.9fr);
  gap: clamp(22px, 3vw, 42px);
  align-items: stretch;
  min-height: 600px;
  padding: clamp(10px, 1.8vw, 22px) clamp(18px, 3vw, 42px) 6px;
}

.ffc-cabin-left,
.ffc-cabin-right {
  display: grid;
  grid-template-rows: repeat(3, minmax(142px, 1fr));
  gap: clamp(18px, 2.2vw, 28px);
}

.ffc-cabin-right-row {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(18px, 2.2vw, 28px);
}

.ffc-cabin-aisle {
  position: relative;
  display: grid;
  grid-template-rows: repeat(3, 1fr);
  gap: clamp(18px, 2.2vw, 28px);
  border-radius: 999px;
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.10), transparent 42%),
    linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,.02));
  box-shadow:
    inset 1px 0 0 rgba(255,255,255,.09),
    inset -1px 0 0 rgba(255,255,255,.09),
    0 16px 42px rgba(0, 0, 0, .10);
  overflow: hidden;
}

.ffc-cabin-aisle::before,
.ffc-cabin-aisle::after {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 16px;
  opacity: .52;
  pointer-events: none;
}

.ffc-cabin-aisle::before {
  left: 0;
  border-left: 1px solid rgba(148, 163, 184, .26);
  border-radius: 999px 0 0 999px;
  box-shadow: -12px 0 24px rgba(15, 23, 42, .08);
}

.ffc-cabin-aisle::after {
  right: 0;
  border-right: 1px solid rgba(148, 163, 184, .26);
  border-radius: 0 999px 999px 0;
  box-shadow: 12px 0 24px rgba(15, 23, 42, .08);
}

.ffc-cabin-row-marker {
  position: relative;
  display: grid;
  place-items: center;
  min-height: 0;
  font-family: var(--font-mono);
  color: var(--text-secondary);
}

.ffc-cabin-row-marker span {
  position: relative;
  display: grid;
  place-items: center;
  width: 42px;
  height: 42px;
  border-radius: 999px;
  font-family: var(--font-display);
  font-size: clamp(24px, 2.4vw, 34px);
  font-weight: 680;
  letter-spacing: -.04em;
  color: color-mix(in srgb, var(--brand-primary) 78%, var(--text-primary));
}

.ffc-cabin-row-marker span::before,
.ffc-cabin-row-marker span::after {
  content: "";
  position: absolute;
  left: 50%;
  width: 36px;
  height: 1px;
  transform: translateX(-50%);
  background: var(--border-default);
  opacity: .64;
}

.ffc-cabin-row-marker span::before { top: -12px; }
.ffc-cabin-row-marker span::after { bottom: -12px; }

.ffc-briefing-cabin .ffc-briefing-card {
  min-height: 142px !important;
  display: grid !important;
  place-items: center !important;
  text-align: center !important;
  overflow: hidden !important;
  border-radius: 24px !important;
  border: 1px solid rgba(255,255,255,.10) !important;
  background: var(--ffc-seat-green) !important;
  background-image: none !important;
  color: #ffffff !important;
  padding: 24px 26px !important;
  box-shadow:
    0 18px 34px rgba(0, 0, 0, .18),
    0 1px 0 rgba(255,255,255,.14) inset !important;
  transform: translateY(0) scale(1) !important;
  transition:
    transform 280ms cubic-bezier(.16, 1, .3, 1),
    box-shadow 280ms cubic-bezier(.16, 1, .3, 1),
    background 200ms ease,
    opacity 280ms ease,
    filter 280ms ease !important;
}

.ffc-briefing-cabin .ffc-briefing-card::before,
.ffc-briefing-cabin .ffc-briefing-card::after {
  display: none !important;
  content: none !important;
}

.ffc-briefing-cabin .ffc-briefing-card:hover {
  transform: translateY(-4px) scale(1.01) !important;
  background: var(--ffc-seat-green-hover) !important;
  box-shadow:
    0 24px 46px rgba(0, 0, 0, .22),
    0 1px 0 rgba(255,255,255,.14) inset !important;
}

.ffc-briefing-cabin .ffc-briefing-title {
  max-width: 100% !important;
  font-size: clamp(20px, 1.75vw, 30px) !important;
  line-height: 1.08 !important;
  letter-spacing: -.045em !important;
  color: #ffffff !important;
  text-align: center !important;
  text-shadow: 0 2px 8px rgba(0,0,0,.24) !important;
}

.ffc-briefing-cabin .ffc-briefing-glow { display: none !important; }

.ffc-briefing-cabin.has-open .ffc-cabin-left,
.ffc-briefing-cabin.has-open .ffc-cabin-aisle,
.ffc-briefing-cabin.has-open .ffc-cabin-right {
  opacity: .23;
  filter: blur(1px) saturate(.78) brightness(.78);
  transform: scale(.975);
  pointer-events: none;
  transition:
    opacity 320ms cubic-bezier(.16, 1, .3, 1),
    filter 320ms cubic-bezier(.16, 1, .3, 1),
    transform 320ms cubic-bezier(.16, 1, .3, 1);
}

[data-theme="light"] .ffc-briefing-cabin {
  --ffc-seat-green: #1fb3aa;
  --ffc-seat-green-hover: #1aa79f;
}

[data-theme="light"] .ffc-cabin-aisle {
  background:
    radial-gradient(circle at 50% 0%, rgba(255,255,255,.85), transparent 36%),
    linear-gradient(180deg, rgba(248,250,252,.96), rgba(241,245,249,.78));
  box-shadow:
    inset 1px 0 0 rgba(15, 65, 61, .06),
    inset -1px 0 0 rgba(15, 65, 61, .06),
    0 18px 44px rgba(15, 65, 61, .08);
}

[data-theme="light"] .ffc-briefing-cabin .ffc-briefing-card {
  border-color: rgba(11, 95, 87, .14) !important;
  box-shadow:
    0 18px 34px rgba(15, 65, 61, .15),
    0 1px 0 rgba(255,255,255,.16) inset !important;
}

@media (max-width: 980px) {
  .ffc-briefing-cabin {
    grid-template-columns: 1fr;
    min-height: 0;
    gap: 18px;
    padding-inline: 18px;
  }
  .ffc-cabin-left,
  .ffc-cabin-right {
    grid-template-rows: none;
    gap: 18px;
  }
  .ffc-cabin-right-row {
    grid-template-columns: 1fr;
    gap: 18px;
  }
  .ffc-cabin-aisle {
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: none;
    min-height: 58px;
    border-radius: 24px;
  }
  .ffc-cabin-row-marker span::before,
  .ffc-cabin-row-marker span::after { display: none; }
}

@media (max-width: 620px) {
  .ffc-briefing-cabin { padding-inline: 0; }
  .ffc-briefing-cabin .ffc-briefing-card {
    min-height: 124px !important;
    border-radius: 20px !important;
  }
  .ffc-briefing-cabin .ffc-briefing-title {
    font-size: clamp(19px, 7vw, 26px) !important;
  }
}

@media print {
  .ffc-briefing-cabin {
    display: block !important;
    min-height: 0 !important;
    padding: 0 !important;
  }
  .ffc-cabin-left,
  .ffc-cabin-aisle,
  .ffc-cabin-right {
    display: none !important;
  }
}
.ffc-cabin-row-marker span { color: #5c8f8b !important; }
[data-theme="dark"] .ffc-cabin-row-marker span { color: #8fd9d3 !important; }

/* Cabin seating layout v3: match final executive-briefing site treatment. */
.ffc-executive-cabin-section {
  position: relative;
  padding: clamp(22px, 3vw, 34px) clamp(18px, 2.8vw, 34px) clamp(28px, 3vw, 38px);
  border: 1px solid color-mix(in srgb, var(--border-subtle) 76%, transparent);
  border-radius: 28px;
  background:
    radial-gradient(circle at 14% 8%, rgba(255,255,255,.08), transparent 30%),
    linear-gradient(180deg, color-mix(in srgb, var(--surface-card) 96%, transparent), color-mix(in srgb, var(--surface-app) 94%, transparent));
  box-shadow: 0 24px 60px rgba(0,0,0,.18);
  overflow: hidden;
}

[data-theme="light"] .ffc-executive-cabin-section {
  border-color: rgba(15, 65, 61, .08);
  background:
    radial-gradient(circle at 15% 5%, rgba(31,179,170,.045), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.94));
  box-shadow: 0 22px 54px rgba(15,65,61,.10), 0 1px 0 rgba(255,255,255,.75) inset;
}

.ffc-executive-cabin-heading {
  display: grid;
  grid-template-columns: auto auto minmax(80px, 1fr);
  align-items: center;
  gap: clamp(12px, 1.5vw, 22px);
  margin: 0 0 clamp(20px, 2.5vw, 34px);
}

.ffc-executive-plane-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 2px solid color-mix(in srgb, var(--brand-primary) 70%, var(--text-primary));
  color: color-mix(in srgb, var(--brand-primary) 76%, var(--text-primary));
  font-size: 24px;
  line-height: 1;
  box-shadow: 0 10px 24px rgba(0,0,0,.12);
}

[data-theme="light"] .ffc-executive-plane-icon {
  border-color: #0f5f5a;
  color: #0f5f5a;
  background: rgba(255,255,255,.76);
  box-shadow: 0 8px 22px rgba(15,65,61,.10);
}

.ffc-executive-heading-text {
  font-family: var(--font-mono);
  font-size: clamp(20px, 2.05vw, 31px);
  font-weight: 700;
  letter-spacing: .17em;
  text-transform: uppercase;
  color: var(--text-primary);
  line-height: 1;
}

.ffc-executive-heading-line {
  position: relative;
  height: 1px;
  background: color-mix(in srgb, var(--border-default) 88%, transparent);
  min-width: 90px;
}

.ffc-executive-heading-line::after {
  content: "";
  position: absolute;
  right: 0;
  top: 50%;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  transform: translateY(-50%);
  background: color-mix(in srgb, var(--brand-primary) 40%, var(--border-default));
}

.ffc-executive-cabin-section .ffc-briefing-cabin {
  --ffc-seat-green: #1fb3aa;
  --ffc-seat-green-hover: #1aa79f;
  grid-template-columns: minmax(250px, .86fr) clamp(92px, 8.6vw, 138px) minmax(520px, 2.05fr);
  gap: clamp(28px, 4.2vw, 58px);
  min-height: 0;
  padding: 0 clamp(8px, 1vw, 12px) 4px;
  align-items: stretch;
}

.ffc-executive-cabin-section .ffc-cabin-left,
.ffc-executive-cabin-section .ffc-cabin-right {
  grid-template-rows: repeat(3, clamp(150px, 15.2vw, 182px));
  gap: clamp(18px, 2.2vw, 28px);
}

.ffc-executive-cabin-section .ffc-cabin-right-row {
  gap: clamp(18px, 2.8vw, 36px);
}

.ffc-executive-cabin-section .ffc-cabin-aisle {
  overflow: visible;
  border-radius: 999px;
  background:
    radial-gradient(circle at 50% 5%, rgba(255,255,255,.95), transparent 26%),
    radial-gradient(circle at 50% 95%, rgba(255,255,255,.55), transparent 28%),
    linear-gradient(180deg, rgba(255,255,255,.42), rgba(148,163,184,.085));
  box-shadow:
    inset 1px 0 0 rgba(255,255,255,.32),
    inset -1px 0 0 rgba(255,255,255,.28),
    0 24px 62px rgba(15,23,42,.12);
}

[data-theme="light"] .ffc-executive-cabin-section .ffc-cabin-aisle {
  background:
    radial-gradient(circle at 50% 5%, rgba(255,255,255,.98), transparent 28%),
    radial-gradient(circle at 50% 95%, rgba(241,245,249,.85), transparent 32%),
    linear-gradient(180deg, rgba(255,255,255,.93), rgba(241,245,249,.72));
  box-shadow:
    inset 1px 0 0 rgba(15,65,61,.05),
    inset -1px 0 0 rgba(15,65,61,.05),
    0 24px 56px rgba(15,65,61,.08);
}

/* Night Flight safety lights along the aisle. */
[data-theme="dark"] .ffc-executive-cabin-section .ffc-cabin-aisle {
  background:
    radial-gradient(circle at 50% 6%, rgba(204,251,241,.12), transparent 30%),
    linear-gradient(180deg, rgba(12,30,38,.64), rgba(5,15,21,.72));
  box-shadow:
    inset 1px 0 0 rgba(255,255,255,.08),
    inset -1px 0 0 rgba(255,255,255,.08),
    -18px 0 36px rgba(31,179,170,.15),
    18px 0 36px rgba(31,179,170,.15),
    0 24px 62px rgba(0,0,0,.30);
}

.ffc-executive-cabin-section .ffc-cabin-aisle::before,
.ffc-executive-cabin-section .ffc-cabin-aisle::after {
  top: 7%;
  bottom: 7%;
  width: 1px;
  border-radius: 999px;
  border: 0;
  background: rgba(148,163,184,.22);
  opacity: .8;
  box-shadow: none;
}

.ffc-executive-cabin-section .ffc-cabin-aisle::before { left: -18px; }
.ffc-executive-cabin-section .ffc-cabin-aisle::after { right: -18px; }

[data-theme="dark"] .ffc-executive-cabin-section .ffc-cabin-aisle::before,
[data-theme="dark"] .ffc-executive-cabin-section .ffc-cabin-aisle::after {
  width: 2px;
  background: rgba(79, 255, 232, .50);
  box-shadow:
    0 0 9px rgba(79,255,232,.55),
    0 0 22px rgba(31,179,170,.28),
    0 0 42px rgba(31,179,170,.18);
  opacity: .86;
}

.ffc-executive-cabin-section .ffc-cabin-row-marker span {
  width: 52px;
  height: 52px;
  font-size: clamp(26px, 2.7vw, 38px);
  color: #5c8f8b !important;
  text-shadow: none;
}

[data-theme="dark"] .ffc-executive-cabin-section .ffc-cabin-row-marker span {
  color: #9ce9e2 !important;
  text-shadow: 0 0 16px rgba(79,255,232,.18);
}

.ffc-executive-cabin-section .ffc-cabin-row-marker span::before,
.ffc-executive-cabin-section .ffc-cabin-row-marker span::after {
  width: 42px;
  opacity: .48;
}

.ffc-executive-cabin-section .ffc-briefing-card {
  min-height: 0 !important;
  height: 100% !important;
  border-radius: 24px !important;
  background: #1fb3aa !important;
  background-image: none !important;
  border: 1px solid rgba(5,95,88,.14) !important;
  box-shadow: 0 16px 30px rgba(15,65,61,.16) !important;
  padding: 22px 24px !important;
}

.ffc-executive-cabin-section .ffc-briefing-card::before,
.ffc-executive-cabin-section .ffc-briefing-card::after,
.ffc-executive-cabin-section .ffc-briefing-glow {
  display: none !important;
  content: none !important;
}

.ffc-executive-cabin-section .ffc-briefing-card:hover {
  transform: translateY(-3px) scale(1.006) !important;
  background: #1aa79f !important;
  box-shadow: 0 22px 40px rgba(15,65,61,.22) !important;
}

.ffc-executive-cabin-section .ffc-briefing-title {
  max-width: 88% !important;
  margin: 0 auto;
  font-family: var(--font-sans);
  font-size: clamp(19px, 1.62vw, 28px) !important;
  font-weight: 750 !important;
  line-height: 1.15 !important;
  letter-spacing: -.045em !important;
  color: #fff !important;
  text-shadow: none !important;
}

@media (max-width: 1180px) {
  .ffc-executive-cabin-section .ffc-briefing-cabin {
    grid-template-columns: minmax(220px, .9fr) 92px minmax(420px, 1.8fr);
    gap: 28px;
  }
  .ffc-executive-cabin-section .ffc-cabin-left,
  .ffc-executive-cabin-section .ffc-cabin-right {
    grid-template-rows: repeat(3, 148px);
  }
}

@media (max-width: 980px) {
  .ffc-executive-cabin-heading {
    grid-template-columns: auto minmax(0, 1fr);
  }
  .ffc-executive-heading-line { grid-column: 1 / -1; }
  .ffc-executive-cabin-section .ffc-briefing-cabin {
    grid-template-columns: 1fr;
    gap: 18px;
    padding: 0;
  }
  .ffc-executive-cabin-section .ffc-cabin-left,
  .ffc-executive-cabin-section .ffc-cabin-right {
    grid-template-rows: none;
  }
  .ffc-executive-cabin-section .ffc-cabin-right-row { grid-template-columns: 1fr; }
  .ffc-executive-cabin-section .ffc-cabin-aisle {
    min-height: 54px;
    grid-template-columns: repeat(3, 1fr);
    grid-template-rows: none;
  }
  .ffc-executive-cabin-section .ffc-cabin-aisle::before,
  .ffc-executive-cabin-section .ffc-cabin-aisle::after { display: none; }
}

@media (max-width: 620px) {
  .ffc-executive-cabin-section { padding: 18px 14px 22px; border-radius: 22px; }
  .ffc-executive-plane-icon { width: 36px; height: 36px; font-size: 20px; }
  .ffc-executive-heading-text { font-size: 18px; letter-spacing: .13em; }
  .ffc-executive-cabin-section .ffc-briefing-card { min-height: 120px !important; }
}

/* Final micro-polish: align status chip, clean divider dots, and add subtle bottom briefing footer. */
.ffc-period-control-cluster {
  align-items: flex-start !important;
}
.ffc-period-status-pill {
  margin-top: 36px !important;
}

@media (max-width: 760px) {
  .ffc-period-status-pill { margin-top: 0 !important; }
  .ffc-period-control-cluster { align-items: center !important; }
}

/* Move section-marker dots into the left gutter so they no longer collide with labels. */
.ffc-presentation-root section > div:first-child {
  position: relative;
  padding-left: 22px;
}
.ffc-presentation-root section > div:first-child::before {
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  flex: none !important;
  margin: 0 !important;
  z-index: 0 !important;
}
.ffc-presentation-root section > div:first-child > span:first-child {
  position: relative;
  z-index: 1;
}
.ffc-executive-cabin-heading {
  padding-left: 0 !important;
}
.ffc-executive-cabin-heading::before {
  display: none !important;
}

.ffc-screen-flight-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 18px;
  border: 1px solid color-mix(in srgb, var(--border-default) 68%, transparent);
  border-radius: 18px;
  background:
    linear-gradient(90deg,
      color-mix(in srgb, var(--surface-card) 92%, transparent),
      color-mix(in srgb, var(--surface-inset) 82%, transparent));
  color: var(--text-secondary);
  font-family: var(--font-mono);
  font-size: 10px;
  letter-spacing: .11em;
  text-transform: uppercase;
}
.ffc-screen-flight-footer strong {
  color: var(--text-primary);
  font-family: var(--font-sans);
  font-size: 13px;
  letter-spacing: 0;
  text-transform: none;
  font-weight: 650;
  text-align: center;
}
[data-theme="dark"] .ffc-screen-flight-footer {
  box-shadow: inset 0 1px 0 rgba(255,255,255,.04), 0 14px 34px rgba(0,0,0,.16);
}
@media (max-width: 760px) {
  .ffc-screen-flight-footer {
    flex-direction: column;
    align-items: flex-start;
  }
  .ffc-screen-flight-footer strong { text-align: left; }
}
@media print {
  .ffc-screen-flight-footer { display: none !important; }
}

/* Final requested polish: drop status pill to align with jump controls; remove only the top KPI marker dots. */
.ffc-period-status-pill {
  margin-top: 50px !important;
}
.ffc-kpi-grid > div:first-child {
  padding-left: inherit !important;
}
.ffc-kpi-grid > div:first-child::before {
  content: none !important;
  display: none !important;
}
@media (max-width: 760px) {
  .ffc-period-status-pill { margin-top: 0 !important; }
}

/* Final KPI alignment fix: removing the stray top marker should not remove the
   first KPI card's normal internal padding. Keep the first KPI text aligned
   with the other KPI cards while suppressing only the marker pseudo-element. */
.ffc-kpi-grid > div:first-child {
  padding: 20px 22px !important;
}
.ffc-kpi-grid > div:first-child::before {
  content: none !important;
  display: none !important;
}
@media print {
  .ffc-kpi-grid > div:first-child {
    padding: 8px 9px !important;
  }
}

/* Final aviation atmosphere pass: Light Cabin clouds, Night Flight header tone,
   route-map History styling, and pre-flight loading state. */
.ffc-app-header {
  position: sticky !important;
  overflow: hidden;
  isolation: isolate;
}
.ffc-app-header > * {
  position: relative;
  z-index: 2;
}
.ffc-app-header::before,
.ffc-app-header::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}
[data-theme="light"] .ffc-app-header::before {
  opacity: .72;
  background:
    radial-gradient(ellipse at 16% -20%, rgba(255,255,255,.92) 0 18%, transparent 34%),
    radial-gradient(ellipse at 37% -30%, rgba(255,255,255,.70) 0 14%, transparent 30%),
    radial-gradient(ellipse at 72% -22%, rgba(255,255,255,.58) 0 16%, transparent 34%);
  filter: blur(8px);
  transform: translate3d(0,-10px,0);
  animation: ffcCloudDrift 42s linear infinite;
}
[data-theme="light"] .ffc-app-header::after {
  opacity: .42;
  background:
    radial-gradient(ellipse at 82% -18%, rgba(31,179,170,.12) 0 12%, transparent 32%),
    linear-gradient(90deg, transparent, rgba(31,179,170,.08), transparent);
  transform: translate3d(18%,0,0);
  animation: ffcCloudDriftSoft 64s linear infinite;
}
[data-theme="dark"] .ffc-app-header::before {
  opacity: .58;
  background:
    linear-gradient(90deg, transparent 0 8%, rgba(31,179,170,.10) 20%, transparent 43%, rgba(31,179,170,.08) 70%, transparent 100%),
    radial-gradient(circle at 16% 50%, rgba(79,255,232,.14), transparent 16%),
    radial-gradient(circle at 88% 50%, rgba(79,255,232,.10), transparent 18%);
}
[data-theme="dark"] .ffc-app-header::after {
  left: 8%;
  right: 8%;
  top: auto;
  bottom: 0;
  height: 1px;
  background: linear-gradient(90deg, transparent, rgba(79,255,232,.28), rgba(31,179,170,.12), transparent);
  box-shadow: 0 0 18px rgba(31,179,170,.18);
  opacity: .72;
}
@keyframes ffcCloudDrift {
  0% { transform: translate3d(-12%, -10px, 0); }
  100% { transform: translate3d(12%, 8px, 0); }
}
@keyframes ffcCloudDriftSoft {
  0% { transform: translate3d(18%, -4px, 0); }
  100% { transform: translate3d(-18%, 8px, 0); }
}
@media (prefers-reduced-motion: reduce) {
  [data-theme="light"] .ffc-app-header::before,
  [data-theme="light"] .ffc-app-header::after { animation: none !important; }
}
@media print {
  .ffc-app-header::before,
  .ffc-app-header::after { display: none !important; }
}

.ffc-preflight-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 14px 18px;
  color: var(--text-secondary);
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: .10em;
  text-transform: uppercase;
  border-bottom: 1px solid var(--border-subtle);
  background: color-mix(in srgb, var(--surface-inset) 78%, transparent);
}
.ffc-preflight-loading small {
  color: var(--text-muted);
  font-size: 10px;
  letter-spacing: .08em;
}
.ffc-preflight-icon {
  display: inline-grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 999px;
  color: var(--text-on-brand);
  background: var(--brand-primary);
  box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-primary) 12%, transparent);
  animation: ffcPreflightPulse 2.8s ease-in-out infinite;
}
@keyframes ffcPreflightPulse {
  0%, 100% { transform: translateY(0); box-shadow: 0 0 0 4px color-mix(in srgb, var(--brand-primary) 12%, transparent); }
  50% { transform: translateY(-1px); box-shadow: 0 0 0 7px color-mix(in srgb, var(--brand-primary) 7%, transparent); }
}
@media (prefers-reduced-motion: reduce) {
  .ffc-preflight-icon { animation: none !important; }
}

.ffc-history-route-map {
  position: relative;
}
.ffc-history-route-map::before {
  content: "";
  position: absolute;
  left: 17px;
  top: 18px;
  bottom: 18px;
  width: 1px;
  background: linear-gradient(180deg, transparent, color-mix(in srgb, var(--brand-primary) 48%, var(--border-default)), transparent);
  opacity: .48;
  pointer-events: none;
}
.ffc-history-year-card,
.ffc-history-quarter-card,
.ffc-history-week-row {
  position: relative;
}
.ffc-history-year-card::before,
.ffc-history-quarter-card::before,
.ffc-history-week-row::before {
  content: "";
  position: absolute;
  left: -25px;
  top: 28px;
  width: 9px;
  height: 9px;
  border-radius: 999px;
  background: var(--brand-primary);
  box-shadow: 0 0 0 5px color-mix(in srgb, var(--brand-primary) 12%, transparent);
  z-index: 2;
}
.ffc-history-quarter-card::before {
  left: -18px;
  top: 22px;
  width: 7px;
  height: 7px;
  opacity: .78;
}
.ffc-history-week-row::before {
  left: -14px;
  top: 22px;
  width: 6px;
  height: 6px;
  opacity: .58;
}
.ffc-history-year-body,
.ffc-history-week-list {
  position: relative;
}
.ffc-history-year-body::before,
.ffc-history-week-list::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 10px;
  bottom: 10px;
  width: 1px;
  background: color-mix(in srgb, var(--brand-primary) 34%, var(--border-subtle));
  opacity: .38;
  pointer-events: none;
}
.ffc-history-quarter-card,
.ffc-history-week-row {
  margin-left: 24px;
}
.ffc-history-week-row:hover {
  background: color-mix(in srgb, var(--brand-primary) 5%, transparent) !important;
}
[data-theme="dark"] .ffc-history-route-map::before,
[data-theme="dark"] .ffc-history-year-body::before,
[data-theme="dark"] .ffc-history-week-list::before {
  opacity: .55;
  box-shadow: 0 0 16px rgba(31,179,170,.16);
}
[data-theme="dark"] .ffc-history-year-card::before,
[data-theme="dark"] .ffc-history-quarter-card::before,
[data-theme="dark"] .ffc-history-week-row::before {
  box-shadow: 0 0 0 5px rgba(31,179,170,.12), 0 0 16px rgba(31,179,170,.22);
}
@media (max-width: 760px) {
  .ffc-history-route-map::before,
  .ffc-history-year-card::before,
  .ffc-history-quarter-card::before,
  .ffc-history-week-row::before,
  .ffc-history-year-body::before,
  .ffc-history-week-list::before {
    display: none !important;
  }
  .ffc-history-quarter-card,
  .ffc-history-week-row { margin-left: 0; }
  .ffc-preflight-loading { flex-direction: column; gap: 4px; }
}

/* ---- In-app help guide ---- */
.ffc-help-overlay {
  position: fixed;
  inset: 0;
  z-index: 120;
  display: grid;
  place-items: center;
  padding: 28px;
  background: rgba(2, 10, 18, 0.58);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.ffc-help-modal {
  width: min(920px, calc(100vw - 40px));
  max-height: min(840px, calc(100vh - 48px));
  display: flex;
  flex-direction: column;
  overflow: hidden;
  border-radius: 24px;
  border: 1px solid var(--border-subtle);
  background: var(--surface-overlay);
  box-shadow: 0 32px 90px rgba(0, 0, 0, 0.38);
}

.ffc-help-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 20px;
  padding: 24px 26px 18px;
  border-bottom: 1px solid var(--border-subtle);
  background:
    radial-gradient(circle at 10% 10%, rgba(31, 179, 170, 0.12), transparent 36%),
    var(--surface-card);
}

.ffc-help-kicker {
  display: block;
  margin-bottom: 6px;
  font-family: var(--font-mono);
  font-size: 11px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--brand-accent);
}

.ffc-help-header h2 {
  margin: 0;
  font-family: var(--font-sans);
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.08;
  color: var(--text-primary);
}

.ffc-help-close {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  border: 1px solid var(--border-subtle);
  border-radius: 999px;
  background: var(--surface-inset);
  color: var(--text-primary);
  cursor: pointer;
  font-size: 24px;
  line-height: 1;
}

.ffc-help-close:hover { transform: translateY(-1px); }

.ffc-help-body {
  overflow: auto;
  padding: 22px 28px 30px;
  color: var(--text-secondary);
  font-family: var(--font-sans);
  line-height: 1.62;
}

.ffc-help-body section {
  padding: 0 0 18px;
  margin: 0 0 18px;
  border-bottom: 1px solid var(--border-subtle);
}

.ffc-help-body section:last-child {
  border-bottom: none;
  margin-bottom: 0;
  padding-bottom: 0;
}

.ffc-help-body h3 {
  margin: 0 0 8px;
  font-family: var(--font-sans);
  font-size: 16px;
  color: var(--text-primary);
}

.ffc-help-body p { margin: 0 0 10px; }
.ffc-help-body ol, .ffc-help-body ul { margin: 8px 0 0 22px; padding: 0; }
.ffc-help-body li { margin: 4px 0; }
.ffc-help-body strong { color: var(--text-primary); }

@media (max-width: 720px) {
  .ffc-help-overlay { padding: 14px; align-items: stretch; }
  .ffc-help-modal { width: 100%; max-height: calc(100vh - 28px); border-radius: 18px; }
  .ffc-help-header { padding: 18px 18px 14px; }
  .ffc-help-body { padding: 18px; }
}


/* Flight-attendant help call button */
.ffc-attendant-help-button {
  appearance: none;
  border: none;
  background: transparent;
  padding: 0;
  inline-size: 50px;
  block-size: 50px;
  border-radius: 999px;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform 180ms var(--ease-standard), filter 180ms var(--ease-standard), box-shadow 180ms var(--ease-standard);
}

.ffc-attendant-help-button:hover {
  transform: translateY(-1px) scale(1.02);
  filter: saturate(1.04);
}

.ffc-attendant-help-button:active {
  transform: translateY(0) scale(0.99);
}

.ffc-attendant-help-button:focus-visible {
  outline: 2px solid color-mix(in srgb, var(--brand-primary) 60%, white);
  outline-offset: 3px;
}

.ffc-attendant-help-shell {
  position: relative;
  inline-size: 100%;
  block-size: 100%;
  border-radius: 999px;
  padding: 4px;
  display: block;
  background: linear-gradient(180deg, rgba(255,255,255,0.96), rgba(232,236,239,0.98));
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.95),
    inset 0 -2px 4px rgba(137,147,160,0.18),
    0 8px 18px rgba(10, 33, 58, 0.12);
}

.ffc-attendant-help-face {
  position: relative;
  inline-size: 100%;
  block-size: 100%;
  border-radius: 999px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  background: radial-gradient(circle at 32% 28%, #38d0c7 0%, #23bdb4 42%, #14959c 100%);
  box-shadow:
    inset 0 2px 5px rgba(255,255,255,0.18),
    inset 0 -6px 10px rgba(0,0,0,0.10);
}

.ffc-attendant-help-gloss {
  position: absolute;
  inset: 6px 11px auto 12px;
  block-size: 18%;
  border-radius: 999px;
  background: linear-gradient(180deg, rgba(255,255,255,0.42), rgba(255,255,255,0.08));
  opacity: 0.75;
  pointer-events: none;
}

.ffc-attendant-help-svg {
  inline-size: 72%;
  block-size: 72%;
  position: relative;
  z-index: 1;
  filter: drop-shadow(0 1px 0 rgba(255,255,255,0.08));
}

[data-theme="dark"] .ffc-attendant-help-shell {
  background: linear-gradient(180deg, rgba(245,247,249,0.95), rgba(217,223,229,0.98));
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,0.95),
    inset 0 -2px 4px rgba(98,109,124,0.22),
    0 10px 24px rgba(0,0,0,0.30);
}

[data-theme="dark"] .ffc-attendant-help-button:hover {
  filter: brightness(1.03) saturate(1.05);
}


/* Mobile usability pass */
@media (max-width: 900px) {
  .ffc-app-header {
    position: static !important;
    flex-wrap: wrap;
    align-items: flex-start !important;
    gap: 12px !important;
    padding: 12px 14px !important;
  }

  .ffc-header-brand {
    width: 100%;
    min-width: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 10px;
  }

  .ffc-brand-link {
    min-width: 0;
    overflow: hidden;
  }

  .ffc-theme-toggle {
    flex: 0 0 auto;
    white-space: nowrap;
    transform: scale(0.92);
    transform-origin: right center;
  }

  .ffc-main-tabs {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    justify-content: flex-start !important;
    scrollbar-width: none;
  }

  .ffc-main-tabs::-webkit-scrollbar {
    display: none;
  }

  .ffc-main-tabs button {
    flex: 0 0 auto;
    padding: 8px 14px !important;
  }

  .ffc-header-actions {
    width: 100%;
    justify-content: flex-end;
    gap: 12px !important;
  }

  .ffc-header-actions .ffc-button,
  .ffc-header-actions button {
    min-height: 42px;
  }
}

@media (max-width: 720px) {
  body {
    overflow-x: hidden;
  }

  .ffc-app-header {
    padding: 10px 12px !important;
  }

  .ffc-theme-toggle {
    transform: scale(0.86);
  }

  .ffc-attendant-help-button {
    inline-size: 46px;
    block-size: 46px;
  }

  .ffc-header-actions {
    align-items: center !important;
    justify-content: space-between;
  }

  .ffc-page,
  .ffc-app-main,
  main {
    max-width: 100vw;
    overflow-x: hidden;
  }

  .ffc-period-controls,
  .ffc-view-controls,
  .ffc-presentation-controls {
    flex-wrap: wrap !important;
    align-items: stretch !important;
    gap: 10px !important;
  }

  .ffc-period-nav,
  .ffc-jump-controls,
  .ffc-period-jump {
    width: 100%;
    justify-content: center !important;
  }

  .ffc-status-pill,
  .ffc-performance-pill {
    margin-left: 0 !important;
    align-self: center !important;
  }

  .ffc-kpi-grid,
  .ffc-summary-grid,
  .ffc-financial-grid {
    grid-template-columns: 1fr !important;
  }

  .ffc-kpi-card,
  .ffc-metric-card {
    min-width: 0 !important;
  }

  .ffc-kpi-card strong,
  .ffc-kpi-value,
  .ffc-metric-value {
    font-size: clamp(28px, 10vw, 42px) !important;
    line-height: 1.05 !important;
    word-break: break-word;
  }

  .ffc-table-wrap,
  .ffc-data-table-wrap,
  .ffc-financial-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    max-width: 100%;
  }

  table {
    min-width: 620px;
  }

  .ffc-cabin-panel,
  .ffc-briefing-cabin,
  .ffc-executive-cabin {
    padding: 18px 14px !important;
    border-radius: 22px !important;
  }

  .ffc-cabin-layout,
  .ffc-seat-map,
  .ffc-briefing-seat-map {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .ffc-cabin-left,
  .ffc-cabin-right,
  .ffc-seat-column,
  .ffc-seat-pair,
  .ffc-cabin-right-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  .ffc-cabin-aisle,
  .ffc-aisle,
  .ffc-row-markers {
    display: none !important;
  }

  .ffc-briefing-card,
  .ffc-seat-card,
  .ffc-executive-card {
    min-height: 112px !important;
    border-radius: 22px !important;
    padding: 20px !important;
  }

  .ffc-briefing-card h3,
  .ffc-seat-card h3,
  .ffc-executive-card h3 {
    font-size: clamp(18px, 6vw, 26px) !important;
    line-height: 1.12 !important;
  }

  .ffc-briefing-reveal,
  .ffc-help-modal {
    width: min(94vw, 720px) !important;
    max-height: 86vh !important;
  }

  .ffc-help-body {
    max-height: 68vh !important;
  }

  .ffc-chart-grid,
  .ffc-charts-grid {
    grid-template-columns: 1fr !important;
  }

  .ffc-chart-card {
    min-width: 0 !important;
    overflow: hidden;
  }

  .ffc-edit-grid,
  .ffc-form-grid,
  .ffc-reporting-grid,
  .ffc-division-grid,
  .ffc-forecast-grid,
  .ffc-notes-grid {
    grid-template-columns: 1fr !important;
  }

  input,
  textarea,
  select {
    font-size: 16px !important;
  }

  textarea {
    min-height: 120px;
  }

  .ffc-history-grid,
  .ffc-history-summary,
  .ffc-history-row {
    grid-template-columns: 1fr !important;
  }

  .ffc-history-actions {
    justify-content: flex-start !important;
    flex-wrap: wrap !important;
  }

  .ffc-briefing-footer,
  .ffc-end-briefing {
    text-align: center;
    padding-inline: 12px !important;
  }
}

@media (max-width: 460px) {
  .ffc-header-actions {
    gap: 8px !important;
  }

  .ffc-header-actions .ffc-button,
  .ffc-header-actions button:not(.ffc-attendant-help-button) {
    padding-inline: 12px !important;
    font-size: 13px !important;
  }

  .ffc-attendant-help-button {
    inline-size: 42px;
    block-size: 42px;
  }

  .ffc-main-tabs button {
    padding: 8px 12px !important;
    font-size: 11px !important;
  }

  .ffc-kpi-card,
  .ffc-metric-card,
  .ffc-card {
    padding: 16px !important;
  }

  .ffc-section-title,
  .ffc-cabin-title,
  .ffc-briefing-title {
    font-size: clamp(18px, 7vw, 28px) !important;
    letter-spacing: 0.12em !important;
  }

  .ffc-briefing-card,
  .ffc-seat-card,
  .ffc-executive-card {
    min-height: 100px !important;
  }
}

@media print {
  .ffc-app-header,
  .ffc-help-overlay {
    display: none !important;
  }
}
