﻿html {
  min-height: 100%;
  background-color: #f4f7fb;
}

html.dfm-first-paint *,
html.dfm-first-paint *::before,
html.dfm-first-paint *::after {
  animation-delay: 0s !important;
  animation-duration: 0s !important;
  transition: none !important;
}

body {
  background: transparent !important;
  margin: 0;
  min-height: 100%;
  position: relative;
}


body > .wrapper,
body > .auth-bg {
  position: relative;
  z-index: 1;
}

@media (max-width: 767.98px) {
  html.sidebar-enable[data-sidenav-size="full"] body > .wrapper {
    z-index: auto;
  }

  html.sidebar-enable[data-sidenav-size="full"] .sidenav-menu {
    z-index: 1055;
  }

  html.sidebar-enable[data-sidenav-size="full"] #custom-backdrop {
    z-index: 1040;
  }
}

html:not(.sidebar-enable) #custom-backdrop {
  display: none !important;
  pointer-events: none !important;
}

@media (min-width: 768px) {
  #custom-backdrop {
    display: none !important;
    pointer-events: none !important;
  }
}

.logo .logo-lg,
.logo .logo-sm,
.auth-brand .logo-lg {
  align-items: center;
  justify-content: center;
}

.sidenav-menu > .logo {
  padding-top: 0.45rem;
}

.dfm-brand-logo {
  display: block;
  height: 48px;
  max-width: 205px;
  object-fit: contain;
  width: auto;
}

.app-topbar .dfm-brand-logo {
  height: 42px;
  max-width: 180px;
}

.sidenav-menu > .logo .dfm-brand-logo {
  height: 54px;
  max-width: 220px;
}

.logo-sm .dfm-brand-logo {
  height: 38px;
  max-width: 44px;
}

.auth-brand .dfm-brand-logo {
  height: 86px;
  max-width: 260px;
}

.dfm-topbar-avatar {
  border: 1px solid rgba(15, 23, 42, 0.12);
  height: 32px;
  object-fit: cover;
  width: 32px;
}

.dfm-topbar-avatar-fallback {
  align-items: center;
  background: linear-gradient(135deg, #0f766e, #0891b2);
  color: #fff;
  font-size: 0.72rem;
  font-weight: 700;
  justify-content: center;
  letter-spacing: 0;
}

.dfm-auth-theme-switch {
  backdrop-filter: blur(14px);
  background: rgba(255, 255, 255, 0.76);
  border: 1px solid rgba(15, 23, 42, 0.1);
  border-radius: 999px;
  box-shadow: 0 16px 40px rgba(15, 23, 42, 0.12);
  display: grid;
  gap: 0.2rem;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  padding: 0.24rem;
  position: fixed;
  right: clamp(1rem, 4vw, 2.4rem);
  top: clamp(1rem, 4vw, 2rem);
  z-index: 5;
}

.dfm-auth-theme-option {
  align-items: center;
  background: transparent;
  border: 1px solid transparent;
  border-radius: 999px;
  color: #475569;
  display: inline-flex;
  height: 2.35rem;
  justify-content: center;
  padding: 0;
  transition: background-color 0.16s ease, border-color 0.16s ease, box-shadow 0.16s ease, color 0.16s ease, transform 0.16s ease;
  width: 2.35rem;
}

.dfm-auth-theme-option i {
  font-size: 1.1rem;
}

.dfm-auth-theme-option.is-active {
  background: #ffffff;
  border-color: rgba(15, 118, 110, 0.18);
  box-shadow: 0 8px 20px rgba(15, 118, 110, 0.14);
  color: #0f766e;
}

.dfm-auth-theme-option:hover {
  transform: translateY(-1px);
}

.dfm-auth-theme-option:focus-visible {
  outline: 3px solid rgba(14, 165, 233, 0.28);
  outline-offset: 2px;
}

html[data-bs-theme="dark"] {
  background-color: #080d14;
}

html[data-bs-theme="dark"] body {
  background: transparent !important;
}


html[data-bs-theme="dark"] .dfm-auth-theme-switch {
  background: rgba(15, 23, 42, 0.78);
  border-color: rgba(148, 163, 184, 0.22);
  box-shadow: 0 16px 42px rgba(0, 0, 0, 0.28);
}

html[data-bs-theme="dark"] .dfm-auth-theme-option {
  color: #cbd5e1;
}

html[data-bs-theme="dark"] .dfm-auth-theme-option.is-active {
  background: rgba(30, 41, 59, 0.95);
  border-color: rgba(45, 212, 191, 0.28);
  box-shadow: 0 8px 22px rgba(45, 212, 191, 0.12);
  color: #67e8f9;
}

.dfm-report-shell {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.22);
  border-radius: 10px;
  box-shadow: 0 16px 42px rgba(15, 23, 42, 0.06);
  padding: 18px;
}

.dfm-report-logo-band {
  align-items: center;
  border-bottom: 1px solid rgba(148, 163, 184, 0.22);
  display: flex;
  gap: 16px;
  margin-bottom: 16px;
  padding-bottom: 14px;
}

.dfm-report-logo {
  background: #fff;
  border-radius: 6px;
  display: block;
  max-height: 54px;
  object-fit: contain;
  width: 152px;
}

.dfm-report-eyebrow {
  color: #64748b;
  font-size: 0.74rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.dfm-report-title {
  color: #111827;
  font-size: 1.28rem;
  font-weight: 800;
  line-height: 1.2;
}

.dfm-report-filter {
  background: #f8fafc;
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: 8px;
  margin-bottom: 16px;
  padding: 16px;
}

.dfm-report-kpi {
  background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: 8px;
  min-height: 74px;
  padding: 12px 14px;
}

.dfm-report-kpi span {
  color: #64748b;
  display: block;
  font-size: .78rem;
  font-weight: 700;
  text-transform: uppercase;
}

.dfm-report-kpi strong {
  color: #0f172a;
  display: block;
  font-size: 1.15rem;
  margin-top: 6px;
}

.dfm-report-section {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, 0.18);
  border-radius: 8px;
  overflow: hidden;
}

.dfm-report-section-header {
  align-items: center;
  background: #fbfdff;
  border-bottom: 1px solid rgba(148, 163, 184, 0.18);
  display: flex;
  gap: 8px;
  padding: 12px 14px;
}

.dfm-report-section-header h5 {
  color: #172033;
  font-size: .92rem;
  font-weight: 800;
  margin: 0;
}

.dfm-report-section-mark {
  background: #5065c8;
  border-radius: 999px;
  height: 18px;
  width: 3px;
}

.dfm-report-table thead th {
  background: #f8fafc;
  border-bottom: 1px solid rgba(148, 163, 184, .25);
  color: #1f2937;
  font-size: .78rem;
  font-weight: 800;
}

.dfm-report-table td {
  border-color: rgba(148, 163, 184, .16);
  color: #273244;
  font-size: .82rem;
}

.dfm-employee-assignment-projects {
  display: grid;
  gap: .55rem;
}

.dfm-employee-assignment-project {
  border-left: 3px solid #18a999;
  min-width: 0;
  padding-left: .65rem;
}

.dfm-employee-assignment-project .badge {
  font-weight: 700;
}

.dfm-pilot-history-group {
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 8px;
  margin: 14px;
  overflow: hidden;
}

.dfm-pilot-history-heading {
  align-items: center;
  background: #eef4ff;
  border-bottom: 1px solid rgba(148, 163, 184, .18);
  display: flex;
  gap: 12px;
  justify-content: space-between;
  padding: 10px 12px;
}

.dfm-pilot-history-heading strong {
  color: #111827;
  font-size: .9rem;
}

.dfm-pilot-history-heading span,
.dfm-pilot-history-totals span {
  color: #4b5563;
  font-size: .76rem;
  font-weight: 700;
}

.dfm-pilot-history-totals {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: flex-end;
}

.dfm-pilot-history-totals span {
  background: #fff;
  border: 1px solid rgba(148, 163, 184, .18);
  border-radius: 999px;
  padding: 4px 8px;
}

html[data-bs-theme="dark"] .dfm-report-shell,
html[data-bs-theme="dark"] .dfm-report-section,
html[data-bs-theme="dark"] .dfm-pilot-history-group {
  background: #111827;
  border-color: rgba(148, 163, 184, .22);
}

html[data-bs-theme="dark"] .dfm-report-filter,
html[data-bs-theme="dark"] .dfm-report-kpi,
html[data-bs-theme="dark"] .dfm-report-section-header {
  background: #172033;
  border-color: rgba(148, 163, 184, .22);
}

html[data-bs-theme="dark"] .dfm-report-title,
html[data-bs-theme="dark"] .dfm-report-kpi strong,
html[data-bs-theme="dark"] .dfm-report-section-header h5,
html[data-bs-theme="dark"] .dfm-pilot-history-heading strong {
  color: #f8fafc;
}

html[data-bs-theme="dark"] .dfm-report-table thead th {
  background: #172033;
  color: #e5e7eb;
}

html[data-bs-theme="dark"] .dfm-report-table td {
  border-color: rgba(148, 163, 184, .18);
  color: #d1d5db;
}

html[data-bs-theme="dark"] .dfm-employee-assignment-project {
  border-left-color: #18a999;
}

html[data-bs-theme="dark"] .dfm-pilot-history-heading {
  background: #1f2a44;
  border-color: rgba(148, 163, 184, .22);
}

.dfm-session-swal {
  border: 1px solid rgba(20, 120, 240, 0.16);
  border-radius: 8px;
  padding: 1.35rem 1.35rem 1.2rem;
}

.dfm-session-warning {
  align-items: center;
  display: flex;
  flex-direction: column;
  text-align: center;
}

.dfm-session-warning-icon {
  align-items: center;
  background: linear-gradient(135deg, rgba(20, 120, 240, 0.14), rgba(24, 169, 153, 0.18));
  border: 1px solid rgba(20, 120, 240, 0.2);
  border-radius: 999px;
  color: #0f6ed8;
  display: inline-flex;
  height: 76px;
  justify-content: center;
  margin-bottom: 0.75rem;
  position: relative;
  width: 76px;
}

.dfm-session-warning-icon > i {
  font-size: 2.05rem;
}

.dfm-session-warning-icon span {
  align-items: center;
  background: #18a999;
  border: 3px solid var(--ct-card-bg);
  border-radius: 999px;
  bottom: -0.25rem;
  color: #fff;
  display: inline-flex;
  height: 32px;
  justify-content: center;
  position: absolute;
  right: -0.2rem;
  width: 32px;
}

.dfm-session-warning-icon span i {
  font-size: 1rem;
}

.dfm-session-warning-kicker {
  color: #18a999;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0;
  margin-bottom: 0.3rem;
  text-transform: uppercase;
}

.dfm-session-warning h3 {
  font-size: 1.24rem;
  font-weight: 800;
  margin-bottom: 0.45rem;
}

.dfm-session-warning p {
  color: var(--ct-secondary-color);
  margin: 0 auto 1rem;
  max-width: 360px;
}

.dfm-session-countdown {
  --dfm-session-progress: 100%;
  align-items: center;
  background:
    radial-gradient(circle at center, var(--ct-card-bg) 0 58%, transparent 59%),
    conic-gradient(#1478f0 var(--dfm-session-progress), rgba(108, 117, 125, 0.16) 0);
  border-radius: 999px;
  display: inline-flex;
  flex-direction: column;
  height: 118px;
  justify-content: center;
  margin-top: 0.2rem;
  width: 118px;
}

.dfm-session-countdown strong {
  color: #1478f0;
  font-size: 2.35rem;
  font-weight: 900;
  line-height: 1;
}

.dfm-session-countdown span {
  color: var(--ct-secondary-color);
  font-size: 0.75rem;
  font-weight: 700;
  margin-top: 0.25rem;
}

html[data-bs-theme="dark"] .dfm-session-swal {
  border-color: rgba(255, 255, 255, 0.08);
}

html[data-bs-theme="dark"] .dfm-session-warning-icon {
  background: linear-gradient(135deg, rgba(75, 190, 225, 0.16), rgba(24, 169, 153, 0.16));
  border-color: rgba(75, 190, 225, 0.18);
  color: #6fd8f3;
}

main[role="main"] {
  min-height: calc(100vh - 180px);
}

.validation-summary-errors ul {
    margin-bottom: 0;
    padding-left: 1rem;
}

.validation-summary-valid {
    display: none;
}

.dfm-empty-state {
    align-items: center;
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    max-width: 620px;
    min-height: 360px;
    padding: 3rem 1rem;
    text-align: center;
}

.dfm-empty-state-visual {
    height: 170px;
    margin-bottom: 1.5rem;
    position: relative;
    width: 210px;
}

.dfm-empty-state-core {
    align-items: center;
    background: linear-gradient(135deg, #2f6fed, #18a999);
    border: 8px solid var(--ct-card-bg);
    border-radius: 50%;
    box-shadow: 0 18px 40px rgba(47, 111, 237, 0.22);
    color: #fff;
    display: inline-flex;
    font-size: 3.25rem;
    height: 118px;
    justify-content: center;
    left: 50%;
    position: absolute;
    top: 50%;
    transform: translate(-50%, -50%);
    width: 118px;
}

.dfm-empty-state-orbit {
    align-items: center;
    background: var(--ct-card-bg);
    border: 4px solid var(--ct-card-bg);
    border-radius: 50%;
    box-shadow: 0 12px 30px rgba(33, 37, 41, 0.16);
    color: #2f6fed;
    display: inline-flex;
    font-size: 1.7rem;
    height: 56px;
    justify-content: center;
    overflow: hidden;
    position: absolute;
    width: 56px;
}

.dfm-empty-state-orbit.orbit-two {
    color: #18a999;
}

.dfm-empty-state-orbit.orbit-three {
    color: #d58936;
}

.dfm-empty-state-orbit.orbit-one {
    left: 14px;
    top: 18px;
}

.dfm-empty-state-orbit.orbit-two {
    right: 4px;
    top: 42px;
}

.dfm-empty-state-orbit.orbit-three {
    bottom: 2px;
    left: 42px;
}

.dfm-empty-state-title {
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: 0.5rem;
}

.dfm-empty-state-text {
    color: var(--ct-secondary-color);
    line-height: 1.6;
    margin-bottom: 1.25rem;
    max-width: 480px;
}

.dfm-drone-kpi-strip {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    padding: 0.1rem 0 0.35rem;
}

.dfm-drone-kpi {
    --dfm-kpi-accent: #2f6fed;
    align-items: center;
    background: color-mix(in srgb, var(--dfm-kpi-accent) 9%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, var(--dfm-kpi-accent) 20%, var(--ct-border-color));
    border-radius: 8px;
    display: inline-flex;
    flex: 1 1 132px;
    gap: 0.45rem;
    min-height: 42px;
    min-width: 132px;
    padding: 0.45rem 0.55rem;
}

.dfm-drone-kpi.is-flight-ready {
    --dfm-kpi-accent: #18a999;
}

.dfm-drone-kpi.is-flight-restricted {
    --dfm-kpi-accent: #d58936;
}

.dfm-drone-kpi-icon {
    align-items: center;
    background: color-mix(in srgb, var(--dfm-kpi-accent) 16%, var(--ct-card-bg));
    border-radius: 6px;
    color: var(--dfm-kpi-accent);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1rem;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.dfm-drone-kpi-status {
    color: var(--ct-heading-color);
    flex: 1 1 auto;
    font-size: 0.82rem;
    font-weight: 600;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dfm-drone-kpi-count {
    align-items: center;
    background: var(--dfm-kpi-accent);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.85rem;
    font-weight: 700;
    justify-content: center;
    line-height: 1;
    min-width: 28px;
    padding: 0.35rem 0.45rem;
}

html[data-bs-theme="dark"] .dfm-drone-kpi {
    background: color-mix(in srgb, var(--dfm-kpi-accent) 14%, var(--ct-card-bg));
    border-color: color-mix(in srgb, var(--dfm-kpi-accent) 26%, rgba(255, 255, 255, 0.12));
}

.dfm-flight-filter-panel {
    background: color-mix(in srgb, #2f6fed 4%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, #2f6fed 10%, var(--ct-border-color));
    border-radius: 8px;
    padding: 0.75rem;
}

.dfm-flight-status-ticker {
    align-items: center;
    background: color-mix(in srgb, #111827 3%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, #111827 10%, var(--ct-border-color));
    border-radius: 8px;
    display: grid;
    gap: 0.5rem;
    grid-template-columns: auto minmax(0, 1fr);
    min-width: 0;
    padding: 0.45rem;
}

.dfm-flight-status-ticker-label {
    align-items: center;
    background: color-mix(in srgb, var(--ct-primary) 12%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, var(--ct-primary) 18%, var(--ct-border-color));
    border-radius: 7px;
    color: var(--ct-primary);
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 800;
    gap: 0.35rem;
    height: 34px;
    letter-spacing: 0;
    padding: 0 0.65rem;
    text-transform: uppercase;
    white-space: nowrap;
}

.dfm-flight-status-ticker-window {
    min-width: 0;
    overflow: hidden;
    position: relative;
}

.dfm-flight-status-ticker-track {
    align-items: center;
    display: flex;
    gap: 0.9rem;
    min-width: max-content;
    width: max-content;
    animation: dfm-flight-status-ticker-scroll 32s linear infinite;
    white-space: nowrap;
}

.dfm-flight-status-ticker:hover .dfm-flight-status-ticker-track {
    animation-play-state: paused;
}

.dfm-flight-status-ticker-window::before,
.dfm-flight-status-ticker-window::after {
    bottom: 0;
    content: "";
    pointer-events: none;
    position: absolute;
    top: 0;
    width: 2.25rem;
    z-index: 1;
}

.dfm-flight-status-ticker-window::before {
    background: linear-gradient(90deg, var(--ct-card-bg), transparent);
    left: 0;
}

.dfm-flight-status-ticker-window::after {
    background: linear-gradient(270deg, var(--ct-card-bg), transparent);
    right: 0;
}

.dfm-flight-status-ticker-group {
    align-items: center;
    display: flex;
    flex: 0 0 auto;
    gap: 0.45rem;
}

@keyframes dfm-flight-status-ticker-scroll {
    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(calc(-50% - 0.45rem));
    }
}

@media (prefers-reduced-motion: reduce) {
    .dfm-flight-status-ticker-track {
        animation: none;
    }

    .dfm-flight-status-ticker-window {
        overflow-x: auto;
        scrollbar-width: none;
    }

    .dfm-flight-status-ticker-window::-webkit-scrollbar {
        display: none;
    }
}

.dfm-flight-kpi {
    --dfm-flight-kpi-accent: var(--ct-primary);
    align-items: center;
    background: color-mix(in srgb, var(--dfm-flight-kpi-accent) 8%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, var(--dfm-flight-kpi-accent) 18%, var(--ct-border-color));
    border-radius: 999px;
    display: inline-flex;
    flex: 0 0 auto;
    gap: 0.42rem;
    height: 34px;
    min-width: 0;
    padding: 0.25rem 0.35rem 0.25rem 0.3rem;
}

.dfm-flight-kpi.is-primary {
    --dfm-flight-kpi-accent: var(--ct-primary);
}

.dfm-flight-kpi.is-secondary {
    --dfm-flight-kpi-accent: var(--ct-secondary);
}

.dfm-flight-kpi.is-success {
    --dfm-flight-kpi-accent: var(--ct-success);
}

.dfm-flight-kpi.is-danger {
    --dfm-flight-kpi-accent: var(--ct-danger);
}

.dfm-flight-kpi.is-warning {
    --dfm-flight-kpi-accent: var(--ct-warning);
}

.dfm-flight-kpi.is-info {
    --dfm-flight-kpi-accent: var(--ct-info);
}

.dfm-flight-kpi.is-light {
    --dfm-flight-kpi-accent: var(--ct-light);
}

.dfm-flight-kpi.is-dark {
    --dfm-flight-kpi-accent: var(--ct-dark);
}

.dfm-flight-kpi-icon {
    align-items: center;
    background: color-mix(in srgb, var(--dfm-flight-kpi-accent) 16%, var(--ct-card-bg));
    border-radius: 50%;
    color: var(--dfm-flight-kpi-accent);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.95rem;
    height: 24px;
    justify-content: center;
    width: 24px;
}

.dfm-flight-kpi-status {
    color: var(--ct-heading-color);
    flex: 1 1 auto;
    font-size: 0.82rem;
    font-weight: 700;
    line-height: 1;
    max-width: clamp(7rem, 16vw, 13rem);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dfm-flight-kpi-count {
    align-items: center;
    background: var(--dfm-flight-kpi-accent);
    border-radius: 999px;
    color: #fff;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.82rem;
    font-weight: 800;
    justify-content: center;
    line-height: 1;
    min-width: 28px;
    padding: 0.28rem 0.48rem;
}

html[data-bs-theme="dark"] .dfm-flight-filter-panel {
    background: color-mix(in srgb, #2f6fed 8%, var(--ct-card-bg));
    border-color: color-mix(in srgb, #2f6fed 18%, rgba(255, 255, 255, 0.12));
}

html[data-bs-theme="dark"] .dfm-flight-status-ticker {
    background: color-mix(in srgb, #ffffff 4%, var(--ct-card-bg));
    border-color: color-mix(in srgb, #ffffff 10%, rgba(255, 255, 255, 0.12));
}

html[data-bs-theme="dark"] .dfm-flight-status-ticker-label {
    background: color-mix(in srgb, var(--ct-primary) 18%, var(--ct-card-bg));
    border-color: color-mix(in srgb, var(--ct-primary) 26%, rgba(255, 255, 255, 0.12));
}

html[data-bs-theme="dark"] .dfm-flight-kpi {
    background: color-mix(in srgb, var(--dfm-flight-kpi-accent) 13%, var(--ct-card-bg));
    border-color: color-mix(in srgb, var(--dfm-flight-kpi-accent) 24%, rgba(255, 255, 255, 0.12));
}

.dfm-flight-schedule-list {
    overflow-x: visible;
    width: 100%;
}

.dfm-flight-schedule-table {
    table-layout: fixed;
    width: 100%;
    border: 1px solid var(--ct-border-color);
}

.dfm-flight-schedule-table > :not(caption) > * > * {
    padding: 0.55rem 0.5rem;
    border: 1px solid var(--ct-border-color);
}

.dfm-flight-schedule-table th:nth-child(1) {
    width: 24%;
}

.dfm-flight-schedule-table th:nth-child(2) {
    width: 20%;
}

.dfm-flight-schedule-table th:nth-child(3) {
    width: 30%;
}

.dfm-flight-schedule-table th:nth-child(4) {
    width: 16%;
}

.dfm-flight-schedule-table th:nth-child(5) {
    width: 10%;
}

.table.align-middle.dfm-flight-schedule-table tbody > tr > td:nth-child(2),
.table.align-middle.dfm-flight-schedule-table tbody > tr > td:nth-child(3) {
    vertical-align: top !important;
}

.dfm-flight-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 0.25rem;
    justify-content: flex-end;
    margin-left: auto;
    max-width: 66px;
}

.dfm-flight-actions form {
    display: inline-flex;
    line-height: 1;
}

.dfm-flight-actions .btn {
    align-items: center;
    display: inline-flex;
    height: 30px;
    justify-content: center;
    padding: 0;
    width: 30px;
}

.dfm-flight-tracking-button {
    flex: 0 0 30px;
    margin-left: auto;
}

.dfm-flight-fly-button {
    color: #18a999;
}

.dfm-flight-in-progress-button {
    color: #d58936;
}

.dfm-fly-modal-icon {
    align-items: center;
    background: color-mix(in srgb, #18a999 15%, var(--ct-card-bg));
    border-radius: 8px;
    color: #18a999;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.2rem;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.dfm-fly-route {
    align-items: center;
    background: color-mix(in srgb, #18a999 8%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, #18a999 18%, var(--ct-border-color));
    border-radius: 8px;
    color: var(--ct-heading-color);
    display: flex;
    flex-wrap: wrap;
    font-weight: 800;
    gap: 0.45rem;
    justify-content: center;
    margin-bottom: 0.65rem;
    padding: 0.55rem 0.65rem;
}

.dfm-fly-route i {
    color: #18a999;
    font-size: 1.1rem;
}

.dfm-fly-summary {
    display: grid;
    gap: 0.42rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dfm-fly-summary-horizontal {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

.dfm-fly-summary div {
    background: var(--ct-light);
    border: 1px solid var(--ct-border-color);
    border-radius: 7px;
    min-width: 0;
    padding: 0.42rem 0.52rem;
}

.dfm-fly-summary span,
.dfm-fly-summary strong {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dfm-fly-summary span {
    color: var(--ct-secondary-color);
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.dfm-fly-summary strong {
    color: var(--ct-heading-color);
    font-size: 0.78rem;
}

html[data-bs-theme="dark"] .dfm-fly-route {
    background: color-mix(in srgb, #18a999 14%, var(--ct-card-bg));
    border-color: color-mix(in srgb, #18a999 28%, rgba(255, 255, 255, 0.12));
}

html[data-bs-theme="dark"] .dfm-fly-summary div {
    background: color-mix(in srgb, #ffffff 6%, var(--ct-card-bg));
}

.dfm-hhmm-control .input-group-text {
    font-weight: 800;
}

.dfm-hhmm-input {
    font-family: var(--ct-font-monospace, ui-monospace, SFMono-Regular, Menlo, Consolas, monospace);
    font-size: 0.95rem;
    font-weight: 800;
    letter-spacing: 0;
    text-align: center;
}

.dfm-hhmm-input::placeholder {
    color: var(--ct-secondary-color);
    font-weight: 700;
    opacity: 0.72;
}

.dfm-hhmm-format,
.dfm-hhmm-date {
    color: var(--ct-secondary-color);
    min-width: 56px;
    justify-content: center;
}

.dfm-hhmm-date {
    background: color-mix(in srgb, #18a999 9%, var(--ct-light));
    color: color-mix(in srgb, #18a999 72%, var(--ct-heading-color));
}

html[data-bs-theme="dark"] .dfm-hhmm-date {
    background: color-mix(in srgb, #18a999 16%, var(--ct-card-bg));
}

.dfm-flying-modal-icon {
    align-items: center;
    background: color-mix(in srgb, #d58936 16%, var(--ct-card-bg));
    border-radius: 8px;
    color: #d58936;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.2rem;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.dfm-flying-progress-panel {
    background: linear-gradient(135deg, color-mix(in srgb, #18a999 14%, var(--ct-card-bg)), color-mix(in srgb, #d58936 12%, var(--ct-card-bg)));
    border: 1px solid color-mix(in srgb, #18a999 22%, var(--ct-border-color));
    border-radius: 8px;
    padding: 0.65rem;
}

.dfm-flying-progress-layout {
    align-items: stretch;
    display: grid;
    gap: 0.65rem;
    grid-template-columns: minmax(150px, 0.42fr) minmax(0, 1fr);
}

.dfm-flying-progress-main {
    min-width: 0;
}

.dfm-flying-elapsed-card {
    align-items: center;
    background: color-mix(in srgb, #111827 90%, transparent);
    border: 1px solid color-mix(in srgb, #18a999 26%, rgba(255, 255, 255, 0.18));
    border-radius: 8px;
    box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 96px;
    padding: 0.65rem;
}

.dfm-flying-elapsed-card span {
    color: rgba(255, 255, 255, 0.7);
    display: block;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0;
    margin-bottom: 0.35rem;
    text-transform: uppercase;
}

.dfm-flying-elapsed-card strong {
    color: #ffffff;
    display: block;
    font-size: 2.65rem;
    font-weight: 900;
    line-height: 1;
}

.dfm-flying-progress-header {
    align-items: flex-start;
    display: flex;
    gap: 0.75rem;
    justify-content: space-between;
    margin-bottom: 0.45rem;
}

.dfm-flying-progress-header span,
.dfm-flying-progress-stats span,
.dfm-flying-summary span {
    color: var(--ct-secondary-color);
    display: block;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0;
    text-transform: uppercase;
}

.dfm-flying-progress-header strong,
.dfm-flying-progress-stats strong,
.dfm-flying-summary strong {
    color: var(--ct-heading-color);
    display: block;
    font-size: 0.84rem;
    font-weight: 800;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dfm-flying-progress-clock {
    background: color-mix(in srgb, #111827 86%, transparent);
    border-radius: 8px;
    color: #ffffff;
    font-size: 0.96rem;
    font-weight: 800;
    line-height: 1;
    padding: 0.48rem 0.58rem;
    white-space: nowrap;
}

.dfm-flying-progress-bar {
    background: color-mix(in srgb, #111827 12%, var(--ct-card-bg));
    height: 0.7rem;
}

.dfm-flight-progress-overrun [data-flight-progress-percent],
.dfm-flight-progress-overrun .dfm-dashboard-flight-ticker strong {
    color: #d58936;
}

.dfm-flight-progress-overrun .dfm-flying-elapsed-card {
    border-color: color-mix(in srgb, #d58936 42%, rgba(255, 255, 255, 0.18));
}

.dfm-flight-progress-overrun .dfm-flying-progress-clock {
    background: color-mix(in srgb, #d58936 22%, #111827);
}

.dfm-flight-progress-overrun .dfm-dashboard-flight-progress span {
    color: #d58936;
    white-space: nowrap;
}

.dfm-flying-progress-stats,
.dfm-flying-summary {
    display: grid;
    gap: 0.45rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0.5rem;
}

.dfm-flying-progress-stats div,
.dfm-flying-summary div {
    background: color-mix(in srgb, #ffffff 72%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, #18a999 12%, var(--ct-border-color));
    border-radius: 7px;
    min-width: 0;
    padding: 0.38rem 0.48rem;
}

.dfm-flight-transition-display {
    border-bottom: 1px dashed color-mix(in srgb, #18a999 28%, var(--ct-border-color));
    margin-top: 0.55rem;
    padding-bottom: 0.55rem;
}

.dfm-flight-transition-display-title,
.dfm-flight-transition-entry-title {
    align-items: center;
    color: #18a999;
    display: inline-flex;
    font-size: 0.72rem;
    font-weight: 900;
    gap: 0.32rem;
    letter-spacing: 0;
    line-height: 1;
    text-transform: uppercase;
}

.dfm-flight-transition-display-title {
    margin-bottom: 0.4rem;
}

.dfm-flight-transition-entry-title {
    border-top: 1px dashed color-mix(in srgb, #2f6fed 24%, var(--ct-border-color));
    color: #2f6fed;
    margin-bottom: 0.45rem;
    padding-top: 0.6rem;
    width: 100%;
}

.dfm-flight-transition-summary {
    display: grid;
    gap: 0.42rem 1rem;
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.dfm-flight-transition-summary-item {
    align-items: start;
    display: grid;
    gap: 0.08rem 0.34rem;
    grid-template-columns: 1rem minmax(0, 1fr);
    min-width: 0;
}

.dfm-flight-transition-summary-item i {
    color: #18a999;
    flex: 0 0 auto;
    font-size: 0.88rem;
    grid-row: 1 / span 2;
    transform: translateY(1px);
}

.dfm-flight-transition-summary-item span {
    color: var(--ct-secondary-color);
    display: block;
    font-size: 0.65rem;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
    white-space: nowrap;
}

.dfm-flight-transition-summary-item strong {
    color: var(--ct-heading-color);
    display: block;
    font-size: 0.78rem;
    font-weight: 800;
    line-height: 1.18;
    min-width: 0;
    overflow-wrap: anywhere;
    white-space: normal;
}

.dfm-flight-transition-summary-wide {
    grid-column: span 2;
}

.dfm-flight-transition-summary-full {
    grid-column: 1 / -1;
}

.dfm-flight-transition-route small {
    color: var(--ct-secondary-color);
    font-size: 0.72rem;
    font-weight: 800;
    margin: 0 0.28rem;
}

.dfm-flying-transition-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
    margin-top: 0.75rem;
}

.dfm-flight-components-panel {
    background: color-mix(in srgb, #18a999 4%, var(--ct-card-bg));
    border: 1px dashed color-mix(in srgb, #18a999 28%, var(--ct-border-color));
    border-radius: 8px;
    padding: 0.75rem;
}

.dfm-flight-components-grid {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
}

.dfm-flight-component-card {
    background: var(--ct-card-bg);
    border: 1px solid color-mix(in srgb, #18a999 14%, var(--ct-border-color));
    border-radius: 8px;
    padding: 0.7rem;
}

.dfm-flight-component-card-head {
    align-items: center;
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.55rem;
}

.dfm-flight-component-picks {
    display: grid;
    gap: 0.4rem;
}

html[data-bs-theme="dark"] .dfm-flying-progress-stats div,
html[data-bs-theme="dark"] .dfm-flying-summary div {
    background: color-mix(in srgb, #ffffff 7%, var(--ct-card-bg));
}

html[data-bs-theme="dark"] .dfm-flight-transition-display {
    border-bottom-color: color-mix(in srgb, #18a999 32%, var(--ct-border-color));
}

.dfm-dashboard-flight-grid {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
}

.dfm-dashboard-flight-strip {
    align-items: center;
    background: color-mix(in srgb, #18a999 5%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, #18a999 16%, var(--ct-border-color));
    border-radius: 8px;
    display: grid;
    gap: 0.25rem 0.55rem;
    grid-template-areas:
        "number ticker status"
        "progress progress progress";
    grid-template-columns: minmax(96px, 0.8fr) minmax(128px, 1fr) auto;
    min-width: 0;
    padding: 0.45rem 0.55rem;
}

.dfm-dashboard-flight-number {
    grid-area: number;
    min-width: 0;
}

.dfm-dashboard-flight-number span,
.dfm-dashboard-flight-ticker span {
    color: var(--ct-secondary-color);
    display: block;
    font-size: 0.62rem;
    font-weight: 800;
    line-height: 1;
    margin-bottom: 0.15rem;
    text-transform: uppercase;
}

.dfm-dashboard-flight-number strong,
.dfm-dashboard-flight-ticker strong {
    color: var(--ct-heading-color);
    display: block;
    font-weight: 900;
    line-height: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dfm-dashboard-flight-number strong {
    font-size: 1.15rem;
}

.dfm-dashboard-flight-ticker {
    grid-area: ticker;
    min-width: 0;
}

.dfm-dashboard-flight-ticker strong {
    color: #18a999;
    font-size: 1.6rem;
}

.dfm-dashboard-flight-status {
    align-items: center;
    display: flex;
    gap: 0.3rem;
    grid-area: status;
    justify-content: flex-end;
    min-width: 0;
}

.dfm-dashboard-flight-status .badge {
    max-width: 104px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dfm-dashboard-flight-status .btn {
    align-items: center;
    display: inline-flex;
    height: 28px;
    justify-content: center;
    padding: 0;
    width: 28px;
}

.dfm-dashboard-flight-progress {
    align-items: center;
    display: grid;
    gap: 0.35rem;
    grid-area: progress;
    grid-template-columns: minmax(0, 1fr) auto;
}

.dfm-dashboard-flight-progress .progress {
    height: 0.35rem;
}

.dfm-dashboard-flight-progress span {
    color: var(--ct-secondary-color);
    font-size: 0.66rem;
    font-weight: 800;
}

.dfm-dashboard-flight-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr));
}

html[data-bs-theme="dark"] .dfm-dashboard-flight-strip {
    background: color-mix(in srgb, #18a999 9%, var(--ct-card-bg));
    border-color: color-mix(in srgb, #18a999 22%, rgba(255, 255, 255, 0.12));
}

.dfm-flight-mission-cell {
    align-items: flex-start;
    display: flex;
    min-width: 0;
}

.dfm-flight-mission-cell .min-w-0 {
    min-width: 0;
    width: 100%;
}

.dfm-flight-primary-text {
    color: var(--ct-heading-color);
    font-size: 0.92rem;
    font-weight: 700;
    line-height: 1.2;
    margin-bottom: 0.25rem;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dfm-flight-status-badge {
    align-items: center;
    display: inline-flex;
    gap: 0.15rem;
    font-size: 0.72rem;
    line-height: 1.1;
    max-width: 100%;
}

.dfm-flight-meta-line,
.dfm-flight-detail-line {
    align-items: center;
    color: var(--ct-secondary-color);
    display: flex;
    font-size: 0.78rem;
    gap: 0.3rem;
    line-height: 1.25;
    min-width: 0;
}

.dfm-flight-meta-line {
    margin-top: 0.28rem;
}

.dfm-flight-detail-line + .dfm-flight-detail-line {
    margin-top: 0.28rem;
}

.dfm-flight-detail-line i,
.dfm-flight-meta-line i {
    color: #18a999;
    flex: 0 0 auto;
    font-size: 1rem;
}

.dfm-flight-detail-line span,
.dfm-flight-meta-line span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dfm-flight-stack {
    min-width: 0;
}

.dfm-flight-time-card {
    display: grid;
    gap: 0.2rem;
    min-width: 0;
}

.dfm-flight-time-block {
    display: grid;
    gap: 0.12rem;
    min-width: 0;
}

.dfm-flight-time-block.is-actual {
    color: #2f6fed;
}

.dfm-flight-time-line {
    align-items: center;
    display: grid;
    gap: 0.45rem;
    grid-template-columns: 58px 72px 58px;
    min-width: 0;
    white-space: nowrap;
}

.dfm-actuals-edit-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 22px;
    height: 20px;
    padding: 0;
    margin: 0;
    font-size: 13px;
    line-height: 1;
}

.dfm-flight-time-line.is-sub {
    grid-template-columns: 58px 72px 58px;
}

.dfm-flight-time-line.dfm-flight-time-missing {
    grid-template-columns: 58px minmax(92px, 1fr);
}

.dfm-flight-time-band-label {
    align-items: center;
    color: #18a999;
    display: inline-flex;
    font-size: 0.68rem;
    font-weight: 800;
    letter-spacing: 0;
    line-height: 1;
    min-width: 42px;
    text-transform: uppercase;
    white-space: nowrap;
}

.dfm-flight-time-block.is-actual .dfm-flight-time-band-label {
    color: #2f6fed;
}

.dfm-flight-time-pill {
    align-items: center;
    color: var(--ct-heading-color);
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 700;
    gap: 0.2rem;
    min-width: 0;
    overflow: visible;
    white-space: nowrap;
}

.dfm-flight-time-pill i {
    color: #18a999;
    flex: 0 0 auto;
    font-size: 0.82rem;
}

.dfm-flight-time-no-data {
    align-items: center;
    background: color-mix(in srgb, #ef4444 16%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, #ef4444 42%, transparent);
    border-radius: 999px;
    color: #dc2626;
    display: inline-flex;
    font-size: 0.68rem;
    font-weight: 800;
    gap: 0.22rem;
    letter-spacing: 0;
    line-height: 1;
    padding: 0.24rem 0.5rem;
    text-transform: uppercase;
    width: fit-content;
}

.dfm-flight-time-no-data i {
    font-size: 0.78rem;
}

.dfm-status-history-title-icon {
    align-items: center;
    background: color-mix(in srgb, #2f6fed 14%, var(--ct-card-bg));
    border-radius: 7px;
    color: #2f6fed;
    display: inline-flex;
    font-size: 1rem;
    height: 30px;
    justify-content: center;
    width: 30px;
}

.dfm-status-history-empty {
    align-items: center;
    display: flex;
    flex-direction: column;
    min-height: 160px;
    justify-content: center;
    text-align: center;
}

.dfm-status-history-empty span {
    align-items: center;
    background: color-mix(in srgb, #2f6fed 12%, var(--ct-card-bg));
    border-radius: 50%;
    color: #2f6fed;
    display: inline-flex;
    font-size: 1.45rem;
    height: 54px;
    justify-content: center;
    margin-bottom: 0.65rem;
    width: 54px;
}

.dfm-status-history-empty h6 {
    font-weight: 700;
    margin-bottom: 0.25rem;
}

.dfm-status-history-empty p {
    color: var(--ct-secondary-color);
    margin-bottom: 0;
}

.dfm-status-timeline {
    display: grid;
    gap: 0.45rem;
    position: relative;
}

.dfm-status-timeline::before {
    background: var(--ct-border-color);
    bottom: 0.75rem;
    content: "";
    left: 13px;
    position: absolute;
    top: 0.75rem;
    width: 1px;
}

.dfm-status-timeline-item {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: 26px minmax(0, 1fr);
    position: relative;
}

.dfm-status-timeline-marker {
    align-items: center;
    background: color-mix(in srgb, #18a999 14%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, #18a999 24%, var(--ct-border-color));
    border-radius: 50%;
    color: #18a999;
    display: inline-flex;
    font-size: 0.85rem;
    height: 26px;
    justify-content: center;
    position: relative;
    width: 26px;
    z-index: 1;
}

.dfm-status-timeline-content {
    background: color-mix(in srgb, #2f6fed 5%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, #2f6fed 12%, var(--ct-border-color));
    border-radius: 7px;
    padding: 0.5rem 0.6rem;
}

.dfm-status-timeline-content > .d-flex {
    margin-bottom: 0.35rem !important;
}

.dfm-status-timeline-content .badge {
    font-size: 0.68rem;
    line-height: 1;
}

.dfm-status-code {
    background: var(--ct-light);
    border-radius: 5px;
    color: var(--ct-secondary-color);
    font-size: 0.66rem;
    font-weight: 700;
    padding: 0.12rem 0.32rem;
}

.dfm-status-action-line {
    align-items: center;
    color: var(--ct-heading-color);
    display: flex;
    font-size: 0.78rem;
    font-weight: 700;
    gap: 0.3rem;
}

.dfm-status-action-line i {
    color: #2f6fed;
    flex: 0 0 auto;
}

.dfm-status-meta-grid {
    display: grid;
    gap: 0.35rem;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    margin-top: 0.35rem;
}

.dfm-status-meta-grid div {
    align-items: center;
    color: var(--ct-secondary-color);
    display: flex;
    font-size: 0.74rem;
    gap: 0.3rem;
    min-width: 0;
}

.dfm-status-meta-grid i {
    color: #d58936;
    flex: 0 0 auto;
}

.dfm-status-meta-grid span {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

html[data-bs-theme="dark"] .dfm-status-timeline-content {
    background: color-mix(in srgb, #2f6fed 10%, var(--ct-card-bg));
    border-color: color-mix(in srgb, #2f6fed 20%, rgba(255, 255, 255, 0.12));
}

html[data-bs-theme="dark"] .dfm-status-code {
    background: color-mix(in srgb, #ffffff 7%, var(--ct-card-bg));
}

@media (max-width: 991.98px) {
    .dfm-flight-schedule-list {
        overflow-x: auto;
    }

    .dfm-flight-schedule-table {
        min-width: 960px;
    }

    .dfm-fly-summary-horizontal,
    .dfm-flying-progress-stats,
    .dfm-flying-summary,
    .dfm-dashboard-flight-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dfm-flight-transition-summary {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 575.98px) {
    .dfm-status-meta-grid {
        grid-template-columns: 1fr;
    }

    .dfm-fly-summary,
    .dfm-fly-summary-horizontal,
    .dfm-flying-progress-stats,
    .dfm-flying-summary,
    .dfm-dashboard-flight-summary {
        grid-template-columns: 1fr;
    }

    .dfm-flying-progress-layout {
        grid-template-columns: 1fr;
    }

    .dfm-flight-transition-summary {
        grid-template-columns: 1fr;
    }

    .dfm-flight-transition-summary-wide {
        grid-column: span 1;
    }

    .dfm-dashboard-flight-grid {
        grid-template-columns: 1fr;
    }

    .dfm-flying-progress-clock {
        display: inline-block;
        margin-top: 0.5rem;
    }
}

.dfm-user-id-badge {
    align-items: center;
    background: color-mix(in srgb, #2f6fed 9%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, #2f6fed 20%, var(--ct-border-color));
    border-radius: 8px;
    display: inline-flex;
    gap: 0.5rem;
    max-width: 100%;
    padding: 0.4rem 0.55rem;
}

.dfm-user-type-badge {
    align-items: center;
    border-radius: 8px;
    display: inline-flex;
    gap: 0.5rem;
    max-width: 100%;
    padding: 0.4rem 0.55rem;
}

.dfm-user-type-badge .dfm-user-id-icon {
    background: color-mix(in srgb, currentColor 12%, transparent);
    color: currentColor;
}

.dfm-user-type-badge .dfm-user-id-value {
    color: currentColor;
}

.dfm-user-type-toggle-header .btn {
    font-size: 0.82rem;
    padding: 0.34rem 0.65rem;
}

.dfm-user-type-toggle-header {
    white-space: nowrap;
}

.dfm-user-role-card {
    align-items: flex-start;
}

.dfm-user-role-card-copy {
    min-width: 0;
}

.dfm-user-permission-set-badge {
    line-height: 1.25;
    max-width: 100%;
    overflow-wrap: anywhere;
    text-align: left;
    white-space: normal;
}

.dfm-user-role-badges {
    display: flex;
    flex-wrap: wrap;
    gap: 0.32rem;
    max-width: 100%;
    min-width: 0;
}

.dfm-user-role-chip {
    align-items: flex-start;
    background: color-mix(in srgb, #2f6fed 9%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, #2f6fed 18%, var(--ct-border-color));
    border-radius: 7px;
    color: var(--ct-heading-color);
    display: inline-flex;
    flex-direction: column;
    gap: 0.08rem;
    line-height: 1.1;
    max-width: 190px;
    min-width: 0;
    padding: 0.28rem 0.42rem;
}

.dfm-user-role-chip span,
.dfm-user-role-chip small {
    max-width: 100%;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dfm-user-role-chip span {
    font-size: 0.75rem;
    font-weight: 800;
}

.dfm-user-role-chip small {
    color: var(--ct-secondary-color);
    font-size: 0.67rem;
    font-weight: 700;
}

html[data-bs-theme="dark"] .dfm-user-role-chip {
    background: color-mix(in srgb, #2f6fed 16%, var(--ct-card-bg));
    border-color: color-mix(in srgb, #2f6fed 30%, rgba(255, 255, 255, 0.12));
}

.dfm-user-id-icon {
    align-items: center;
    background: color-mix(in srgb, #2f6fed 15%, var(--ct-card-bg));
    border-radius: 6px;
    color: #2f6fed;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1rem;
    height: 30px;
    justify-content: center;
    width: 30px;
}

.dfm-user-id-copy {
    display: flex;
    flex-direction: column;
    line-height: 1.15;
    min-width: 0;
}

.dfm-user-id-label {
    color: var(--ct-secondary-color);
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
}

.dfm-user-id-value {
    color: var(--ct-heading-color);
    font-family: var(--ct-font-monospace);
    font-size: 0.82rem;
    font-weight: 700;
    overflow-wrap: anywhere;
}

html[data-bs-theme="dark"] .dfm-user-id-badge {
    background: color-mix(in srgb, #2f6fed 14%, var(--ct-card-bg));
    border-color: color-mix(in srgb, #2f6fed 28%, rgba(255, 255, 255, 0.12));
}

.dfm-image-upload-surface {
    align-items: center;
    border: 1px dashed var(--ct-border-color);
    border-radius: 8px;
    display: flex;
    gap: 0.75rem;
    min-height: 78px;
    padding: 0.75rem;
}

.dfm-pdf-upload-surface {
    align-items: center;
    border: 1px dashed var(--ct-border-color);
    border-radius: 8px;
    display: flex;
    gap: 0.75rem;
    min-height: 78px;
    padding: 0.75rem;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.dfm-pdf-upload-surface.is-invalid {
    border-color: var(--ct-danger);
    box-shadow: 0 0 0 0.15rem rgba(220, 53, 69, 0.12);
}

.dfm-image-upload-trigger {
    flex: 0 0 auto;
    height: 44px;
    width: 44px;
}

.dfm-pdf-upload-trigger,
.dfm-pdf-preview-trigger {
    flex: 0 0 auto;
    height: 44px;
    width: 44px;
}

.dfm-image-upload-empty,
.dfm-image-upload-preview {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    gap: 0.75rem;
    min-width: 0;
}

.dfm-pdf-upload-empty,
.dfm-pdf-upload-preview {
    align-items: center;
    display: flex;
    flex: 1 1 auto;
    gap: 0.75rem;
    min-width: 0;
}

.dfm-pdf-upload-file-icon {
    align-items: center;
    background: rgba(220, 53, 69, 0.12);
    border-radius: 8px;
    color: var(--ct-danger);
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.45rem;
    height: 46px;
    justify-content: center;
    width: 46px;
}

.dfm-image-upload-preview img {
    border-radius: 6px;
    height: 52px;
    object-fit: cover;
    width: 52px;
}

.dfm-image-preview-trigger {
    cursor: zoom-in;
    transition: box-shadow 0.15s ease, transform 0.15s ease;
}

.dfm-image-preview-trigger:hover,
.dfm-image-preview-trigger:focus-visible {
    box-shadow: 0 0 0 0.2rem rgba(47, 111, 237, 0.18);
    outline: 0;
    transform: translateY(-1px);
}

.dfm-image-preview-modal {
    z-index: 1085;
}

.dfm-image-preview-modal .modal-body {
    padding: 0.75rem;
}

.dfm-document-preview-modal {
    z-index: 100020 !important;
}

.dfm-document-preview-backdrop {
    z-index: 100010 !important;
}

.dfm-document-preview-header {
    align-items: center;
    gap: 0.75rem;
}

.dfm-document-preview-header .modal-title {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dfm-document-preview-actions {
    margin-left: auto;
    text-align: right;
}

.dfm-pdf-preview-frame {
    background: #fff;
    border: 0;
    display: block;
    height: min(76vh, 820px);
    width: 100%;
}

.dfm-image-preview-frame {
    align-items: center;
    background: color-mix(in srgb, var(--ct-card-bg) 86%, #2f6fed 14%);
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    display: flex;
    justify-content: center;
    min-height: 280px;
    overflow: hidden;
}

.dfm-image-preview-frame img {
    display: block;
    max-height: 76vh;
    object-fit: contain;
    width: 100%;
}

.dfm-image-upload-name {
    max-width: 100%;
}

.dfm-component-thumbnail {
    align-items: center;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    display: inline-flex;
    flex: 0 0 auto;
    height: 42px;
    justify-content: center;
    object-fit: cover;
    width: 42px;
}

.dfm-component-thumbnail-empty {
    background: color-mix(in srgb, var(--ct-card-bg) 86%, #2f6fed 14%);
    color: var(--ct-secondary-color);
    font-size: 1.25rem;
}

.dfm-component-summary {
    background:
        linear-gradient(135deg, color-mix(in srgb, var(--ct-card-bg) 92%, #2f6fed 8%), var(--ct-card-bg));
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    padding: 0.85rem;
}

.dfm-component-summary-header {
    align-items: center;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
}

.dfm-component-summary-heading {
    align-items: center;
    display: flex;
    gap: 0.7rem;
    min-width: 0;
}

.dfm-component-summary-heading-icon {
    align-items: center;
    background: color-mix(in srgb, #2f6fed 14%, var(--ct-card-bg));
    border-radius: 8px;
    color: #2f6fed;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.25rem;
    height: 40px;
    justify-content: center;
    width: 40px;
}

.dfm-component-summary-title {
    color: var(--ct-heading-color);
    font-weight: 800;
}

.dfm-component-summary-subtitle {
    color: var(--ct-secondary-color);
    font-size: 0.78rem;
}

.dfm-component-summary-actions {
    align-items: center;
    display: flex;
    gap: 0.5rem;
}

.dfm-component-summary-rollup {
    display: grid;
    gap: 0.45rem;
    grid-template-columns: repeat(5, minmax(62px, auto));
}

.dfm-component-summary-rollup span {
    background: var(--ct-light);
    border: 1px solid var(--ct-border-color);
    border-radius: 6px;
    min-width: 62px;
    padding: 0.35rem 0.5rem;
    text-align: center;
}

.dfm-component-summary-rollup strong,
.dfm-component-summary-rollup small {
    display: block;
    line-height: 1.05;
}

.dfm-component-summary-rollup strong {
    color: var(--ct-heading-color);
    font-size: 1rem;
}

.dfm-component-summary-rollup small {
    color: var(--ct-secondary-color);
    font-size: 0.62rem;
    font-weight: 800;
    margin-top: 0.15rem;
    text-transform: uppercase;
}

.dfm-component-summary-toggle {
    align-items: center;
    display: inline-flex;
    flex: 0 0 auto;
    height: 34px;
    justify-content: center;
    width: 34px;
}

.dfm-component-summary-toggle i {
    transition: transform 0.18s ease;
}

.dfm-component-summary-toggle[aria-expanded="true"] i {
    transform: rotate(180deg);
}

.dfm-component-summary-details {
    border-top: 1px dashed var(--ct-border-color);
    margin-top: 0.85rem;
    padding-top: 0.85rem;
}

.dfm-component-summary-grid {
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(auto-fill, minmax(255px, 1fr));
}

.dfm-component-summary-card {
    background: var(--ct-card-bg);
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    display: grid;
    gap: 0.65rem;
    grid-template-rows: auto auto 1fr;
    min-height: 158px;
    padding: 0.75rem;
}

.dfm-component-summary-top {
    align-items: center;
    display: flex;
    gap: 0.6rem;
    min-width: 0;
}

.dfm-component-summary-icon {
    align-items: center;
    background: color-mix(in srgb, #2f6fed 14%, var(--ct-card-bg));
    border-radius: 8px;
    color: #2f6fed;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1.2rem;
    height: 38px;
    justify-content: center;
    width: 38px;
}

.dfm-component-summary-name {
    color: var(--ct-heading-color);
    font-weight: 700;
    line-height: 1.15;
}

.dfm-component-summary-category {
    color: var(--ct-secondary-color);
    font-size: 0.78rem;
    margin-top: 0.1rem;
}

.dfm-component-summary-total {
    color: var(--ct-heading-color);
    font-weight: 800;
    line-height: 1;
    margin-left: auto;
    text-align: right;
}

.dfm-component-summary-total span {
    display: block;
    font-size: 1.55rem;
}

.dfm-component-summary-total small {
    color: var(--ct-secondary-color);
    display: block;
    font-size: 0.68rem;
    font-weight: 700;
    margin-top: 0.15rem;
    text-transform: uppercase;
}

.dfm-component-summary-meter {
    background: var(--ct-light);
    border-radius: 999px;
    height: 0.42rem;
    overflow: hidden;
}

.dfm-component-summary-meter span {
    background: linear-gradient(90deg, #2f6fed, #16a34a);
    border-radius: inherit;
    display: block;
    height: 100%;
    width: var(--availability-width, 0%);
}

.dfm-component-summary-metrics {
    display: grid;
    gap: 0.35rem;
    grid-template-columns: repeat(5, minmax(0, 1fr));
}

.dfm-component-summary-metrics span {
    align-items: center;
    background: var(--ct-light);
    border-radius: 6px;
    color: var(--ct-body-color);
    display: grid;
    font-size: 0.72rem;
    gap: 0.15rem;
    justify-content: center;
    min-height: 48px;
    padding: 0.3rem 0.2rem;
    text-align: center;
}

.dfm-component-summary-metrics i {
    color: #2f6fed;
    font-size: 0.95rem;
}

.dfm-component-summary-metrics strong,
.dfm-component-summary-metrics small {
    line-height: 1;
}

.dfm-component-summary-metrics strong {
    color: var(--ct-heading-color);
    font-size: 0.88rem;
}

.dfm-component-summary-metrics small {
    color: var(--ct-secondary-color);
    font-size: 0.58rem;
    font-weight: 800;
    text-transform: uppercase;
}

@media (max-width: 1199.98px) {
    .dfm-component-summary-header {
        align-items: stretch;
        flex-direction: column;
    }

    .dfm-component-summary-actions {
        align-items: stretch;
    }

    .dfm-component-summary-rollup {
        grid-template-columns: repeat(auto-fit, minmax(76px, 1fr));
        width: 100%;
    }
}

.dfm-component-table {
    table-layout: fixed;
    width: 100%;
}

.dfm-component-table th,
.dfm-component-table td {
    white-space: nowrap;
}

.dfm-component-identity-column {
    width: 27%;
}

.dfm-component-classification-column {
    width: 22%;
}

.dfm-component-lifecycle-row td {
    background: color-mix(in srgb, var(--ct-light) 55%, var(--ct-card-bg) 45%);
    border-top: 0;
    padding-bottom: 0.32rem;
    padding-top: 0.02rem;
}

.dfm-component-main-row td {
    border-bottom: 0;
    padding-bottom: 0.18rem;
    padding-top: 0.42rem;
}

.dfm-component-lifecycle-band {
    align-items: center;
    background: transparent;
    border: 0;
    border-radius: 0;
    display: flex;
    gap: 0.45rem;
    overflow: hidden;
    padding: 0;
}

.dfm-component-lifecycle-title {
    align-items: center;
    color: #2f6fed;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.66rem;
    font-weight: 800;
    letter-spacing: 0.02em;
    padding: 0.1rem 0.15rem 0.1rem 0;
    text-transform: uppercase;
}

.dfm-component-lifecycle-grid {
    align-items: center;
    display: grid;
    flex: 1 1 auto;
    gap: 0.2rem;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    min-width: 0;
}

.dfm-component-lifecycle-item {
    align-items: center;
    background: transparent;
    border: 0;
    border-left: 1px solid var(--ct-border-color);
    border-radius: 0;
    display: flex;
    gap: 0.2rem;
    justify-content: flex-start;
    min-height: 20px;
    min-width: 0;
    padding: 0 0.32rem;
}

.dfm-component-lifecycle-icon {
    align-items: center;
    background: transparent;
    border-radius: 5px;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 0.76rem;
    height: 16px;
    justify-content: center;
    width: 16px;
}

.dfm-component-lifecycle-label,
.dfm-component-lifecycle-value {
    display: inline;
    line-height: 1;
}

.dfm-component-lifecycle-label {
    color: var(--ct-secondary-color);
    font-size: 0.58rem;
    font-weight: 700;
    margin-right: 0.15rem;
    text-transform: uppercase;
}

.dfm-component-lifecycle-value {
    color: var(--ct-body-color);
    font-size: 0.68rem;
    font-weight: 700;
    white-space: nowrap;
}

.dfm-component-identity-cell,
.dfm-component-classification-cell,
.dfm-component-assignment-primary,
.dfm-component-status-column {
    min-width: 0;
}

.dfm-component-classification-cell {
    display: grid;
    gap: 0.18rem;
}

.dfm-component-type-chip {
    color: var(--ct-heading-color);
    display: block;
    font-weight: 800;
    line-height: 1.1;
}

.dfm-component-assignment-cell {
    align-items: center;
    display: flex;
    gap: 0.45rem;
    min-width: 0;
}

.dfm-component-operation-column {
    width: 31%;
}

.dfm-component-assignment-primary {
    flex: 1 1 auto;
    min-width: 116px;
}

.dfm-component-assignment-meta {
    line-height: 1.05;
    margin-top: 0.1rem;
}

.dfm-component-inspection-inline {
    display: flex;
    flex: 0 0 auto;
    flex-direction: column;
    gap: 0.25rem;
}

.dfm-component-inspection-inline .badge {
    font-size: 0.68rem;
    font-weight: 700;
}

.dfm-component-status-column {
    width: 12%;
}

.dfm-component-status-column .badge {
    display: inline-block;
    max-width: 100%;
}

.dfm-component-action-grid {
    display: grid;
    gap: 0.3rem;
    grid-template-columns: repeat(2, 2rem);
    justify-content: end;
}

.dfm-component-action-form {
    margin: 0;
}

.dfm-component-action-grid .btn {
    align-items: center;
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    padding-left: 0;
    padding-right: 0;
    width: 100%;
}

.dfm-component-action-delete {
    grid-column: 1 / -1;
}

.dfm-qr-preview {
    align-items: center;
    background: #fff;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    display: flex;
    justify-content: center;
    margin: 0 auto;
    max-width: 320px;
    padding: 1rem;
}

.dfm-qr-preview canvas {
    height: auto;
    image-rendering: pixelated;
    max-width: 100%;
}

.dfm-qr-value {
    background: var(--ct-light);
    border: 1px solid var(--ct-border-color);
    border-radius: 6px;
    color: var(--ct-heading-color);
    font-family: var(--ct-font-monospace);
    font-size: 0.82rem;
    margin-top: 0.75rem;
    overflow-wrap: anywhere;
    padding: 0.6rem;
    text-align: center;
}

.dfm-image-upload-dropzone {
    align-items: center;
    background: var(--ct-light);
    border: 1px dashed var(--ct-border-color);
    border-radius: 8px;
    color: var(--ct-body-color);
    display: flex;
    flex-direction: column;
    gap: 0.35rem;
    justify-content: center;
    min-height: 210px;
    padding: 1.5rem;
    text-align: center;
    transition: border-color 0.15s ease, background-color 0.15s ease;
    width: 100%;
}

.dfm-image-upload-dropzone.is-dragover {
    background: rgba(47, 111, 237, 0.08);
    border-color: #2f6fed;
}

.dfm-image-upload-drop-icon {
    align-items: center;
    background: rgba(47, 111, 237, 0.12);
    border-radius: 50%;
    color: #2f6fed;
    display: inline-flex;
    font-size: 2rem;
    height: 64px;
    justify-content: center;
    width: 64px;
}

.dfm-image-upload-drop-title {
    font-weight: 700;
}

.dfm-image-upload-drop-text {
    color: var(--ct-secondary-color);
    font-size: 0.875rem;
}

.dfm-image-upload-modal-preview {
    align-items: center;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    display: flex;
    gap: 0.75rem;
    margin-top: 1rem;
    padding: 0.75rem;
}

.dfm-image-upload-modal-preview img {
    border-radius: 6px;
    height: 56px;
    object-fit: cover;
    width: 56px;
}

.dfm-customer-flight-summary {
    align-items: stretch;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: minmax(135px, 0.65fr) minmax(195px, 1fr) minmax(0, 2.8fr);
}

.dfm-customer-flight-summary-item,
.dfm-customer-flight-summary-statuses {
    align-items: center;
    background: color-mix(in srgb, var(--ct-card-bg) 86%, #2f6fed 14%);
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    display: flex;
    gap: 0.5rem;
    min-height: 48px;
    padding: 0.35rem 0.6rem;
}

.dfm-customer-flight-summary-statuses {
    display: flex;
    min-width: 0;
    background: var(--ct-card-bg);
    border-radius: 8px;
}

.dfm-customer-summary-total,
.dfm-customer-summary-upcoming {
    min-width: 0;
    border-radius: 8px;
    align-items: center;
    padding: 0.35rem 0.6rem;
    background: linear-gradient(135deg, color-mix(in srgb, var(--ct-card-bg) 90%, #2f6fed 10%), var(--ct-card-bg));
}

.dfm-customer-summary-total {
    border-top: 3px solid var(--ct-primary);
}

.dfm-customer-summary-upcoming {
    border-top: 3px solid var(--ct-info);
}

.dfm-customer-summary-total .dfm-customer-flight-summary-value {
    font-size: 1.15rem;
    letter-spacing: -0.02em;
    margin-top: 0;
    font-variant-numeric: tabular-nums;
}

.dfm-customer-summary-upcoming .dfm-customer-flight-summary-value {
    font-size: 0.8rem;
    margin: 0.1rem 0 0;
}

.dfm-customer-summary-reference {
    display: block;
    color: var(--ct-secondary-color);
    font-size: 0.72rem;
    overflow-wrap: anywhere;
}

.dfm-customer-status-heading {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    gap: 0.25rem 1rem;
    margin-bottom: 0.65rem;
    font-size: 0.75rem;
    font-weight: 600;
}

.dfm-customer-status-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.35rem;
}

.dfm-customer-status-tile {
    flex: 0 1 auto;
    min-width: 0;
    display: flex;
    flex-direction: row;
    align-items: center;
    gap: 0.5rem;
    padding: 0.35rem 0.5rem;
    border-radius: 8px;
    text-align: left;
    white-space: normal;
}

.dfm-customer-status-name {
    font-size: 0.72rem;
    line-height: 1.35;
    overflow-wrap: anywhere;
}

.dfm-customer-status-metric {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    margin-top: 0;
    font-variant-numeric: tabular-nums;
}

.dfm-customer-status-metric strong { font-size: 0.85rem; }
.dfm-customer-status-metric > span { font-size: 0.68rem; font-weight: 500; }
.dfm-customer-status-meter {
    height: 4px;
    border-radius: 4px;
    background: color-mix(in srgb, currentColor 12%, transparent);
    overflow: hidden;
}
.dfm-customer-status-meter > span {
    display: block;
    height: 100%;
    border-radius: inherit;
    background: currentColor;
}

.dfm-customer-flight-summary-icon {
    align-items: center;
    border-radius: 8px;
    display: inline-flex;
    flex: 0 0 auto;
    font-size: 1rem;
    height: 28px;
    justify-content: center;
    width: 28px;
}

.dfm-customer-flight-summary-value {
    color: var(--ct-heading-color);
    display: block;
    font-weight: 700;
    line-height: 1.2;
}

.dfm-customer-flight-summary-label {
    color: var(--ct-secondary-color);
    display: block;
    font-size: 0.82rem;
}

.dfm-customer-flight-list {
    display: grid;
    gap: 0.75rem;
}

.dfm-customer-flight-item {
    align-items: center;
    background: var(--ct-card-bg);
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    display: grid;
    gap: 0.9rem;
    grid-template-columns: 70px minmax(0, 1fr) auto;
    padding: 0.8rem;
}

.dfm-customer-flight-date {
    align-items: center;
    background: linear-gradient(180deg, rgba(47, 111, 237, 0.14), rgba(24, 169, 153, 0.1));
    border: 1px solid rgba(47, 111, 237, 0.16);
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    min-height: 66px;
}

.dfm-customer-flight-day {
    color: var(--ct-heading-color);
    font-size: 1.45rem;
    font-weight: 800;
    line-height: 1;
}

.dfm-customer-flight-month {
    color: var(--ct-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    letter-spacing: 0;
    text-transform: uppercase;
}

.dfm-customer-flight-route,
.dfm-customer-flight-meta {
    color: var(--ct-secondary-color);
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem 0.9rem;
    min-width: 0;
}

.dfm-customer-flight-route {
    font-weight: 600;
}

.dfm-customer-flight-route span,
.dfm-customer-flight-meta span {
    align-items: center;
    display: inline-flex;
    gap: 0.25rem;
    min-width: 0;
}

.dfm-customer-flight-action {
    align-items: center;
    display: flex;
    gap: 0.35rem;
    justify-self: end;
}

.dfm-customer-action-count {
    align-items: center;
    background: rgba(255, 255, 255, 0.78);
    border-radius: 999px;
    color: currentColor;
    display: inline-flex;
    font-size: 0.68rem;
    font-weight: 800;
    height: 0.95rem;
    justify-content: center;
    margin-left: 0.2rem;
    min-width: 0.95rem;
    padding: 0 0.25rem;
}

.dfm-customer-tracking-dashboard {
    background: color-mix(in srgb, #18a999 5%, var(--ct-card-bg));
    border: 1px dashed color-mix(in srgb, #18a999 24%, var(--ct-border-color));
    border-radius: 8px;
    padding: 0.75rem;
}

.dfm-customer-tracking-empty {
    align-items: center;
    color: var(--ct-secondary-color);
    display: flex;
    gap: 0.45rem;
    font-size: 0.86rem;
    font-weight: 700;
    min-height: 42px;
}

.dfm-customer-tracking-empty i {
    color: #18a999;
    font-size: 1.1rem;
}

.dfm-customer-action-modal-buttons {
    display: flex;
    flex-wrap: wrap;
    gap: 0.45rem;
    justify-content: flex-end;
    margin-top: 0.75rem;
}

.dfm-customer-flight-hero {
    background: linear-gradient(135deg, rgba(47, 111, 237, 0.12), rgba(24, 169, 153, 0.1));
    border: 1px solid rgba(47, 111, 237, 0.16);
    border-radius: 8px;
    display: grid;
    gap: 0.75rem;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    padding: 1rem;
}

.dfm-customer-detail-section {
    border-top: 1px dashed var(--ct-border-color);
    margin-bottom: 0.9rem;
    padding-top: 0.85rem;
}

.dfm-customer-detail-heading {
    align-items: center;
    display: flex;
    gap: 0.5rem;
    margin-bottom: 0.6rem;
}

.dfm-customer-detail-label {
    color: var(--ct-secondary-color);
    font-size: 0.78rem;
    font-weight: 700;
    margin-bottom: 0.2rem;
    text-transform: uppercase;
}

.dfm-customer-detail-value {
    color: var(--ct-heading-color);
    font-weight: 600;
    overflow-wrap: anywhere;
}

.dfm-customer-approval-item {
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    height: 100%;
    padding: 0.85rem;
}

.dfm-customer-approval-stage {
    background: var(--ct-light);
    border-radius: 8px;
    display: grid;
    gap: 0.35rem;
    padding: 0.65rem;
}

.dfm-customer-status-timeline {
    display: grid;
    gap: 0.75rem;
}

.dfm-customer-status-step {
    display: grid;
    gap: 0.65rem;
    grid-template-columns: 16px minmax(0, 1fr);
    position: relative;
}

.dfm-customer-status-step::before {
    background: var(--ct-border-color);
    bottom: -0.8rem;
    content: "";
    left: 7px;
    position: absolute;
    top: 18px;
    width: 2px;
}

.dfm-customer-status-step:last-child::before {
    display: none;
}

.dfm-customer-status-dot {
    background: #2f6fed;
    border: 3px solid var(--ct-card-bg);
    border-radius: 50%;
    box-shadow: 0 0 0 1px rgba(47, 111, 237, 0.28);
    height: 16px;
    margin-top: 0.15rem;
    width: 16px;
    z-index: 1;
}

html[data-bs-theme="dark"] .dfm-customer-flight-summary-item,
html[data-bs-theme="dark"] .dfm-customer-flight-summary-statuses,
html[data-bs-theme="dark"] .dfm-customer-flight-date,
html[data-bs-theme="dark"] .dfm-customer-flight-hero {
    background: color-mix(in srgb, var(--ct-card-bg) 82%, #2f6fed 18%);
}

@media (max-width: 991.98px) {
    .dfm-customer-flight-summary-statuses {
        grid-column: 1 / -1;
    }
    .dfm-customer-flight-summary,
    .dfm-customer-flight-hero {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .dfm-customer-flight-item {
        grid-template-columns: 64px minmax(0, 1fr);
    }

    .dfm-customer-flight-action {
        grid-column: 1 / -1;
        justify-self: stretch;
    }

    .dfm-customer-flight-action .btn {
        width: 100%;
    }
}

@media (max-width: 575.98px) {
    .dfm-customer-flight-summary,
    .dfm-customer-flight-hero {
        grid-template-columns: 1fr;
    }

    .dfm-customer-flight-item {
        grid-template-columns: 1fr;
    }

    .dfm-customer-flight-date {
        align-items: baseline;
        flex-direction: row;
        gap: 0.35rem;
        justify-content: flex-start;
        min-height: auto;
        padding: 0.6rem;
    }
}

/* Dense working rhythm for data-entry screens and operational lists. */
.wrapper .card {
    border: 1px solid color-mix(in srgb, var(--ct-border-color) 82%, #2f6fed 18%);
    box-shadow: 0 10px 26px rgba(15, 23, 42, 0.06);
    overflow: hidden;
}

.wrapper .card > .card-header {
    background: linear-gradient(90deg, color-mix(in srgb, #2f6fed 8%, var(--ct-card-bg)), var(--ct-card-bg) 48%);
    gap: 0.5rem !important;
    min-height: auto;
    padding: 0.62rem 0.95rem;
    position: relative;
}

.wrapper .card > .card-header::before {
    background: linear-gradient(180deg, #2f6fed, #18a999);
    border-radius: 999px;
    bottom: 0.55rem;
    content: "";
    left: 0;
    position: absolute;
    top: 0.55rem;
    width: 3px;
}

.wrapper .card > .card-header .header-title,
.wrapper .card > .card-header h4 {
    font-size: 1rem;
    line-height: 1.15;
}

.wrapper .card > .card-header .small,
.wrapper .card > .card-header .text-muted {
    line-height: 1.2;
}

.wrapper .card > .card-header .btn {
    padding-bottom: 0.34rem;
    padding-top: 0.34rem;
}

.wrapper .card > .card-body {
    padding: 0.82rem 0.95rem;
}

.wrapper .card-body .row,
.wrapper .modal-body .row {
    --ct-gutter-x: 0.65rem;
    --ct-gutter-y: 0.42rem;
}

.wrapper .card-body .row.g-3,
.wrapper .modal-body .row.g-3 {
    --ct-gutter-x: 0.7rem;
    --ct-gutter-y: 0.48rem;
}

.wrapper .card-body .row.g-2,
.wrapper .modal-body .row.g-2 {
    --ct-gutter-x: 0.58rem;
    --ct-gutter-y: 0.36rem;
}

.wrapper .card-body .mb-3,
.wrapper .modal-body .mb-3 {
    margin-bottom: 0.48rem !important;
}

.wrapper .card-body .mt-4 {
    margin-top: 0.7rem !important;
}

.wrapper .card-body .pt-3 {
    padding-top: 0.62rem !important;
}

.wrapper .card-body .border-top.border-dashed {
    margin-top: 0.72rem !important;
}

.wrapper .card-body section.mb-4 {
    margin-bottom: 0.52rem !important;
}

.wrapper .card-body section.border-top.border-dashed {
    margin-top: 0.18rem !important;
    padding-top: 0.46rem !important;
}

.wrapper .card-body section.mb-4 + section.border-top.border-dashed {
    margin-top: 0 !important;
}

.wrapper .card-body section > .d-flex.align-items-center.gap-2.mb-3,
.wrapper .card-body .border-top.border-dashed > .d-flex.align-items-center.gap-2.mb-3 {
    margin-bottom: 0.42rem !important;
}

.wrapper .card-body form.border.rounded,
.wrapper .card-body .border.rounded.p-3,
.wrapper .card-body .border.rounded-2.p-3 {
    padding: 0.68rem !important;
}

.wrapper .form-label {
    color: var(--ct-secondary-color);
    font-size: 0.76rem;
    font-weight: 700;
    line-height: 1.15;
    margin-bottom: 0.22rem;
}

.wrapper .form-control,
.wrapper .form-select {
    border-radius: 6px;
    min-height: 36px;
    padding: 0.38rem 0.62rem;
}

.wrapper textarea.form-control {
    min-height: 72px;
}

.wrapper .input-group .btn {
    min-height: 36px;
    padding-bottom: 0.38rem;
    padding-top: 0.38rem;
}

.wrapper .form-check {
    margin-bottom: 0;
    min-height: auto;
}

.wrapper .form-check-input {
    margin-top: 0.18rem;
}

.wrapper .invalid-feedback.d-block,
.wrapper .field-validation-error {
    font-size: 0.72rem;
    line-height: 1.2;
    margin-top: 0.14rem;
}

.wrapper .validation-summary-errors,
.wrapper .alert {
    margin-bottom: 0.62rem;
    padding: 0.55rem 0.75rem;
}

.wrapper .choices {
    margin-bottom: 0;
}

.wrapper .choices__inner {
    border-radius: 6px;
    min-height: 36px;
    padding: 0.16rem 0.52rem;
}

.wrapper .choices__list--single {
    padding: 0.1rem 1rem 0.1rem 0.12rem;
}

/* Shared disabled-option treatment, including options disabled dynamically. */
:root {
    --dfm-disabled-option-bg: #fce4e4;
    --dfm-disabled-option-color: #a94442;
}

html[data-bs-theme="dark"] {
    --dfm-disabled-option-bg: #482c30;
    --dfm-disabled-option-color: #f3aaaa;
}

select option:disabled,
select optgroup:disabled,
select optgroup:disabled option,
.select2-results__option[aria-disabled="true"],
.select2-results__option--disabled,
.choices__list--dropdown .choices__item[aria-disabled="true"],
.choices__list[aria-expanded] .choices__item[aria-disabled="true"],
.dropdown-menu .dropdown-item.disabled,
.dropdown-menu .dropdown-item:disabled,
.dropdown-menu .dropdown-item[aria-disabled="true"] {
    background-color: var(--dfm-disabled-option-bg) !important;
    color: var(--dfm-disabled-option-color) !important;
    opacity: 1;
    cursor: not-allowed;
}

/* Long submenu labels stay inside both the expanded sidebar and its flyouts. */
.side-nav .sub-menu .side-nav-item .side-nav-link {
    min-width: 0;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.35;
}

.side-nav .sub-menu .side-nav-link .menu-text {
    min-width: 0;
    flex: 1 1 auto;
    white-space: normal;
}

.wrapper .table-responsive {
    border: 1px solid color-mix(in srgb, var(--ct-border-color) 86%, #18a999 14%);
    border-radius: 8px;
}

.wrapper .table {
    margin-bottom: 0;
}

.wrapper .table > :not(caption) > * > * {
    padding: 0.5rem 0.62rem;
    vertical-align: middle;
}

.wrapper .table thead th {
    background: color-mix(in srgb, var(--ct-card-bg) 86%, #2f6fed 14%);
    border-bottom-color: color-mix(in srgb, var(--ct-border-color) 72%, #2f6fed 28%);
    color: var(--ct-secondary-color);
    font-size: 0.72rem;
    font-weight: 800;
    line-height: 1.15;
}

.wrapper .table tbody tr {
    transition: background-color 0.18s ease, transform 0.18s ease;
}

.wrapper .table-hover tbody tr:hover > * {
    background-color: color-mix(in srgb, #18a999 6%, var(--ct-card-bg)) !important;
}

.wrapper .table td .small,
.wrapper .table td .text-muted {
    line-height: 1.25;
}

.wrapper .btn-sm {
    --ct-btn-padding-y: 0.28rem;
    --ct-btn-padding-x: 0.48rem;
}

.dfm-project-team-panel {
    background: color-mix(in srgb, var(--ct-card-bg) 94%, #2f6fed 6%);
}

.dfm-project-team-checks {
    display: grid;
    gap: 0.45rem;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    max-height: 230px;
    overflow-y: auto;
    padding-right: 0.2rem;
}

.dfm-project-team-card {
    cursor: pointer;
    min-height: 58px;
    transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.dfm-project-team-card:hover {
    transform: translateY(-1px);
}

.dfm-project-team-card .fw-semibold {
    line-height: 1.2;
    overflow-wrap: anywhere;
}

.dfm-customer-flight-summary {
    gap: 0.52rem;
    margin-bottom: 0.65rem !important;
}

.dfm-customer-flight-summary-item,
.dfm-customer-flight-summary-statuses,
.dfm-customer-flight-hero,
.dfm-customer-approval-item {
    padding: 0.62rem 0.72rem;
}

.dfm-customer-flight-item {
    gap: 0.65rem;
    padding: 0.62rem 0.72rem;
}

.dfm-customer-flight-date {
    min-height: 56px;
    padding: 0.48rem;
}

.dfm-customer-flight-day {
    font-size: 1.25rem;
}

.dfm-customer-flight-route,
.dfm-customer-flight-meta {
    gap: 0.28rem 0.62rem;
}

.dfm-customer-detail-section {
    margin-bottom: 0.65rem;
    padding-top: 0.58rem;
}

.dfm-customer-detail-heading {
    margin-bottom: 0.45rem;
}

.dfm-customer-detail-label {
    font-size: 0.72rem;
    margin-bottom: 0.12rem;
}

.dfm-customer-status-timeline {
    gap: 0.48rem;
}

.dfm-customer-status-step {
    gap: 0.45rem;
}

.dfm-agency-action-panel {
    background: color-mix(in srgb, var(--ct-card-bg) 90%, #18a999 10%);
    border: 1px solid color-mix(in srgb, var(--ct-border-color) 76%, #18a999 24%);
    border-radius: 0.45rem;
    display: grid;
    gap: 0.45rem;
    min-width: 300px;
    padding: 0.58rem;
}

.dfm-agency-action-panel-after {
    background: color-mix(in srgb, var(--ct-card-bg) 91%, #2f6fed 9%);
    border-color: color-mix(in srgb, var(--ct-border-color) 76%, #2f6fed 24%);
}

.dfm-agency-complete-check {
    align-items: center;
    display: flex;
    font-size: 0.78rem;
    font-weight: 800;
    gap: 0.42rem;
    line-height: 1.1;
    margin-bottom: 0;
}

.dfm-agency-date-grid {
    align-items: end;
    display: grid;
    gap: 0.42rem;
    grid-template-columns: minmax(0, 1.15fr) minmax(86px, 0.85fr);
}

.dfm-agency-date-grid.has-now-button {
    grid-template-columns: minmax(0, 1.05fr) minmax(86px, 0.75fr) auto;
}

.dfm-agency-now-button {
    align-items: center;
    align-self: end;
    border-radius: 999px;
    box-shadow: 0 0.35rem 0.9rem color-mix(in srgb, var(--ct-primary) 24%, transparent);
    display: inline-flex;
    height: 2rem;
    justify-content: center;
    margin-bottom: 0.02rem;
    padding: 0;
    width: 2rem;
}

.dfm-agency-now-button.is-populated {
    background: var(--ct-primary);
    border-color: var(--ct-primary);
    color: #fff;
    transform: scale(1.05);
}

.dfm-agency-action-panel .form-label {
    color: var(--ct-secondary-color);
    font-weight: 700;
}

.dfm-agency-action-panel textarea.form-control-sm {
    min-height: 58px;
    resize: vertical;
}

#agencyApprovalTable td {
    vertical-align: top;
}

.dfm-agency-detail-stack {
    background: color-mix(in srgb, var(--ct-card-bg) 90%, #f7b84b 10%);
    border: 1px solid color-mix(in srgb, var(--ct-border-color) 76%, #f7b84b 24%);
    border-radius: 0.45rem;
    display: grid;
    gap: 0.42rem;
    min-width: 250px;
    padding: 0.58rem;
}

.dfm-agency-detail-line {
    align-items: flex-start;
    display: grid;
    gap: 0.45rem;
    grid-template-columns: 1.05rem minmax(0, 1fr);
    line-height: 1.15;
}

.dfm-agency-detail-line i {
    font-size: 1rem;
    margin-top: 0.12rem;
}

.dfm-agency-detail-line span {
    color: var(--ct-secondary-color);
    display: block;
    font-size: 0.68rem;
    font-weight: 800;
    text-transform: uppercase;
}

.dfm-agency-detail-line strong {
    color: var(--ct-body-color);
    display: block;
    font-size: 0.82rem;
    font-weight: 800;
    overflow-wrap: anywhere;
}

.dfm-agency-detail-line-serial strong {
    color: #2f6fed;
    font-size: 0.95rem;
}

html[data-bs-theme="dark"] .wrapper .card {
    border-color: color-mix(in srgb, rgba(255, 255, 255, 0.12) 78%, #2f6fed 22%);
    box-shadow: 0 12px 30px rgba(0, 0, 0, 0.24);
}

html[data-bs-theme="dark"] .wrapper .card > .card-header {
    background: linear-gradient(90deg, color-mix(in srgb, #2f6fed 16%, var(--ct-card-bg)), var(--ct-card-bg) 52%);
}

html[data-bs-theme="dark"] .wrapper .table thead th {
    background: color-mix(in srgb, var(--ct-card-bg) 78%, #2f6fed 22%);
}

.dfm-profile-shell {
    display: grid;
    gap: 1rem;
}

.dfm-profile-hero {
    align-items: center;
    background: linear-gradient(135deg, color-mix(in srgb, var(--ct-card-bg) 82%, #2f6fed 18%), color-mix(in srgb, var(--ct-card-bg) 88%, #18a999 12%));
    border: 1px solid color-mix(in srgb, var(--ct-border-color) 76%, #2f6fed 24%);
    border-radius: 8px;
    display: flex;
    gap: 1rem;
    justify-content: space-between;
    padding: 1rem;
}

.dfm-profile-identity {
    align-items: center;
    display: flex;
    gap: 0.9rem;
    min-width: 0;
}

.dfm-profile-avatar {
    align-items: center;
    background: color-mix(in srgb, #2f6fed 16%, var(--ct-card-bg));
    border: 1px solid color-mix(in srgb, var(--ct-border-color) 68%, #18a999 32%);
    border-radius: 8px;
    color: #2f6fed;
    display: grid;
    flex: 0 0 70px;
    font-size: 1.35rem;
    font-weight: 800;
    height: 70px;
    justify-content: center;
    overflow: hidden;
}

.dfm-profile-avatar img {
    height: 100%;
    object-fit: cover;
    width: 100%;
}

.dfm-profile-meta {
    color: var(--ct-secondary-color);
    display: flex;
    flex-wrap: wrap;
    gap: 0.38rem 0.85rem;
    font-size: 0.82rem;
}

.dfm-profile-meta span {
    align-items: center;
    display: inline-flex;
    gap: 0.28rem;
    overflow-wrap: anywhere;
}

.dfm-profile-score {
    align-items: center;
    background: color-mix(in srgb, var(--ct-card-bg) 90%, #f7b84b 10%);
    border: 1px solid color-mix(in srgb, var(--ct-border-color) 72%, #f7b84b 28%);
    border-radius: 8px;
    display: grid;
    flex: 0 0 112px;
    justify-items: center;
    padding: 0.75rem;
}

.dfm-profile-score span {
    font-size: 1.65rem;
    font-weight: 900;
    line-height: 1;
}

.dfm-profile-score small {
    color: var(--ct-secondary-color);
    font-weight: 800;
    text-transform: uppercase;
}

.dfm-profile-progress {
    height: 0.7rem;
}

.dfm-readiness-grid {
    display: grid;
    gap: 0.55rem;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
}

.dfm-readiness-item {
    align-items: flex-start;
    border: 1px solid var(--ct-border-color);
    border-radius: 8px;
    display: flex;
    gap: 0.58rem;
    min-height: 82px;
    padding: 0.68rem;
}

.dfm-readiness-icon {
    align-items: center;
    border-radius: 8px;
    display: inline-flex;
    flex: 0 0 32px;
    height: 32px;
    justify-content: center;
}

.dfm-readiness-ok {
    background: color-mix(in srgb, var(--ct-card-bg) 91%, #18a999 9%);
    border-color: color-mix(in srgb, var(--ct-border-color) 72%, #18a999 28%);
}

.dfm-readiness-ok .dfm-readiness-icon {
    background: color-mix(in srgb, #18a999 18%, transparent);
    color: #18a999;
}

.dfm-readiness-blocking {
    background: color-mix(in srgb, var(--ct-card-bg) 92%, #f06548 8%);
    border-color: color-mix(in srgb, var(--ct-border-color) 72%, #f06548 28%);
}

.dfm-readiness-blocking .dfm-readiness-icon {
    background: color-mix(in srgb, #f06548 16%, transparent);
    color: #f06548;
}

.dfm-readiness-warning {
    background: color-mix(in srgb, var(--ct-card-bg) 91%, #f7b84b 9%);
    border-color: color-mix(in srgb, var(--ct-border-color) 72%, #f7b84b 28%);
}

.dfm-readiness-warning .dfm-readiness-icon {
    background: color-mix(in srgb, #f7b84b 18%, transparent);
    color: #f7b84b;
}

.dfm-readiness-copy {
    display: grid;
    gap: 0.16rem;
    min-width: 0;
}

.dfm-profile-detail-list {
    display: grid;
    gap: 0.55rem;
}

.dfm-profile-detail-list > div {
    background: color-mix(in srgb, var(--ct-card-bg) 92%, #2f6fed 8%);
    border: 1px solid color-mix(in srgb, var(--ct-border-color) 84%, #2f6fed 16%);
    border-radius: 8px;
    display: grid;
    gap: 0.08rem;
    padding: 0.62rem 0.72rem;
}

.dfm-profile-detail-list span,
.dfm-profile-detail-list small {
    color: var(--ct-secondary-color);
    font-size: 0.75rem;
    font-weight: 700;
}

.dfm-profile-detail-list strong {
    overflow-wrap: anywhere;
}

.dfm-profile-role-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.4rem;
}

.dfm-profile-role-chip {
    align-items: center;
    background: color-mix(in srgb, var(--ct-card-bg) 88%, #18a999 12%);
    border: 1px solid color-mix(in srgb, var(--ct-border-color) 76%, #18a999 24%);
    border-radius: 999px;
    display: inline-flex;
    font-size: 0.78rem;
    font-weight: 800;
    gap: 0.3rem;
    max-width: 100%;
    padding: 0.32rem 0.58rem;
}

.dfm-profile-role-chip span {
    overflow-wrap: anywhere;
}

@media (max-width: 575.98px) {
    .dfm-profile-hero,
    .dfm-profile-identity {
        align-items: stretch;
        flex-direction: column;
    }

    .dfm-profile-score {
        flex-basis: auto;
        justify-items: start;
    }
}

.dfm-global-progress {
    position: fixed;
    inset: 0;
    z-index: 100000;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(var(--ct-body-bg-rgb), .78);
    backdrop-filter: blur(4px);
    cursor: wait;
}

.dfm-global-progress.is-active {
    display: flex;
}

.dfm-global-progress-panel {
    min-width: 220px;
    padding: 1.25rem 1.6rem 1.3rem;
    border: 1px solid var(--ct-border-color);
    border-radius: .75rem;
    background: color-mix(in srgb, var(--ct-tertiary-bg) 94%, transparent);
    box-shadow: 0 1rem 3rem rgba(15, 23, 42, .22);
    text-align: center;
}

.dfm-global-progress-logo {
    align-items: center;
    display: flex;
    justify-content: center;
    margin-bottom: .9rem;
}

.dfm-global-progress-logo img {
    display: block;
    height: 54px;
    max-width: 180px;
    object-fit: contain;
    width: auto;
}

.dfm-global-progress-logo-light {
    display: none !important;
}

html[data-bs-theme="dark"] .dfm-global-progress-logo-light {
    display: block !important;
}

html[data-bs-theme="dark"] .dfm-global-progress-logo-dark {
    display: none !important;
}

.dfm-global-progress .bouncing-loader > div {
    margin-top: .5rem;
    margin-bottom: .75rem;
}

.dfm-global-progress-text {
    color: var(--ct-secondary-color);
    font-size: .875rem;
    font-weight: 600;
}

body.dfm-processing,
body.dfm-processing * {
    cursor: wait !important;
}

.dfm-password-toggle,
[data-dfm-datepicker-trigger],
[data-dfm-datepicker-clear] {
    background-color: var(--ct-input-bg, var(--ct-body-bg)) !important;
    border-color: var(--ct-input-border-color, var(--ct-border-color)) !important;
    color: var(--ct-secondary-color) !important;
}

.dfm-password-toggle:hover,
.dfm-password-toggle:focus,
.dfm-password-toggle:active,
[data-dfm-datepicker-trigger]:hover,
[data-dfm-datepicker-trigger]:focus,
[data-dfm-datepicker-trigger]:active,
[data-dfm-datepicker-clear]:hover,
[data-dfm-datepicker-clear]:focus,
[data-dfm-datepicker-clear]:active {
    background-color: var(--ct-input-bg, var(--ct-body-bg)) !important;
    border-color: var(--ct-input-border-color, var(--ct-border-color)) !important;
    box-shadow: none !important;
    color: var(--ct-heading-color) !important;
}

.input-group:focus-within .dfm-password-toggle,
.input-group:focus-within [data-dfm-datepicker-trigger],
.input-group:focus-within [data-dfm-datepicker-clear] {
    border-color: var(--ct-input-focus-border-color, var(--ct-primary)) !important;
}

.dfm-datepicker-group:hover > .form-control:not(:disabled),
.dfm-datepicker-group:hover > [data-dfm-datepicker-trigger]:not(:disabled),
.dfm-datepicker-group:hover > [data-dfm-datepicker-clear]:not(:disabled) {
    border-color: var(--ct-input-border-color, var(--ct-border-color)) !important;
}

.dfm-datepicker-group:focus-within > .form-control,
.dfm-datepicker-group:focus-within > [data-dfm-datepicker-trigger],
.dfm-datepicker-group:focus-within > [data-dfm-datepicker-clear] {
    border-color: var(--ct-input-focus-border-color, var(--ct-primary)) !important;
}

.dfm-datepicker-group > .form-control:focus,
.dfm-datepicker-group > [data-dfm-datepicker-trigger]:focus,
.dfm-datepicker-group > [data-dfm-datepicker-clear]:focus {
    box-shadow: none !important;
}

[data-dfm-datepicker-trigger],
[data-dfm-datepicker-clear] {
    align-items: center;
    display: inline-flex;
    justify-content: center;
    min-width: 2.75rem;
}

.text-teal { color: #0f766e !important; }
.bg-teal-subtle { background-color: rgba(20, 184, 166, .14) !important; }
.border-teal-subtle { border-color: rgba(20, 184, 166, .34) !important; }
.btn-teal { --ct-btn-color: #fff; --ct-btn-bg: #0f766e; --ct-btn-border-color: #0f766e; --ct-btn-hover-color: #fff; --ct-btn-hover-bg: #0b5f59; --ct-btn-hover-border-color: #0b5f59; --ct-btn-active-color: #fff; --ct-btn-active-bg: #0a524d; --ct-btn-active-border-color: #0a524d; color: #fff !important; background-color: #0f766e !important; border-color: #0f766e !important; }
.btn-soft-teal { color: #0f766e !important; background-color: rgba(20, 184, 166, .14) !important; border-color: transparent !important; }

.text-cyan { color: #0e7490 !important; }
.bg-cyan-subtle { background-color: rgba(6, 182, 212, .14) !important; }
.border-cyan-subtle { border-color: rgba(6, 182, 212, .34) !important; }
.btn-cyan { --ct-btn-color: #fff; --ct-btn-bg: #0e7490; --ct-btn-border-color: #0e7490; --ct-btn-hover-color: #fff; --ct-btn-hover-bg: #155e75; --ct-btn-hover-border-color: #155e75; --ct-btn-active-color: #fff; --ct-btn-active-bg: #164e63; --ct-btn-active-border-color: #164e63; color: #fff !important; background-color: #0e7490 !important; border-color: #0e7490 !important; }
.btn-soft-cyan { color: #0e7490 !important; background-color: rgba(6, 182, 212, .14) !important; border-color: transparent !important; }

.text-indigo { color: #4f46e5 !important; }
.bg-indigo-subtle { background-color: rgba(99, 102, 241, .14) !important; }
.border-indigo-subtle { border-color: rgba(99, 102, 241, .34) !important; }
.btn-indigo { --ct-btn-color: #fff; --ct-btn-bg: #4f46e5; --ct-btn-border-color: #4f46e5; --ct-btn-hover-color: #fff; --ct-btn-hover-bg: #4338ca; --ct-btn-hover-border-color: #4338ca; --ct-btn-active-color: #fff; --ct-btn-active-bg: #3730a3; --ct-btn-active-border-color: #3730a3; color: #fff !important; background-color: #4f46e5 !important; border-color: #4f46e5 !important; }
.btn-soft-indigo { color: #4f46e5 !important; background-color: rgba(99, 102, 241, .14) !important; border-color: transparent !important; }

.text-purple { color: #7e22ce !important; }
.bg-purple-subtle { background-color: rgba(168, 85, 247, .14) !important; }
.border-purple-subtle { border-color: rgba(168, 85, 247, .34) !important; }
.btn-purple { --ct-btn-color: #fff; --ct-btn-bg: #7e22ce; --ct-btn-border-color: #7e22ce; --ct-btn-hover-color: #fff; --ct-btn-hover-bg: #6b21a8; --ct-btn-hover-border-color: #6b21a8; --ct-btn-active-color: #fff; --ct-btn-active-bg: #581c87; --ct-btn-active-border-color: #581c87; color: #fff !important; background-color: #7e22ce !important; border-color: #7e22ce !important; }
.btn-soft-purple { color: #7e22ce !important; background-color: rgba(168, 85, 247, .14) !important; border-color: transparent !important; }

.text-pink { color: #be185d !important; }
.bg-pink-subtle { background-color: rgba(236, 72, 153, .14) !important; }
.border-pink-subtle { border-color: rgba(236, 72, 153, .34) !important; }
.btn-pink { --ct-btn-color: #fff; --ct-btn-bg: #be185d; --ct-btn-border-color: #be185d; --ct-btn-hover-color: #fff; --ct-btn-hover-bg: #9d174d; --ct-btn-hover-border-color: #9d174d; --ct-btn-active-color: #fff; --ct-btn-active-bg: #831843; --ct-btn-active-border-color: #831843; color: #fff !important; background-color: #be185d !important; border-color: #be185d !important; }
.btn-soft-pink { color: #be185d !important; background-color: rgba(236, 72, 153, .14) !important; border-color: transparent !important; }

.text-orange { color: #c2410c !important; }
.bg-orange-subtle { background-color: rgba(249, 115, 22, .16) !important; }
.border-orange-subtle { border-color: rgba(249, 115, 22, .36) !important; }
.btn-orange { --ct-btn-color: #fff; --ct-btn-bg: #c2410c; --ct-btn-border-color: #c2410c; --ct-btn-hover-color: #fff; --ct-btn-hover-bg: #9a3412; --ct-btn-hover-border-color: #9a3412; --ct-btn-active-color: #fff; --ct-btn-active-bg: #7c2d12; --ct-btn-active-border-color: #7c2d12; color: #fff !important; background-color: #c2410c !important; border-color: #c2410c !important; }
.btn-soft-orange { color: #c2410c !important; background-color: rgba(249, 115, 22, .16) !important; border-color: transparent !important; }

/* Keep pending list actions inaccessible without blocking page filters/navigation. */
.dfm-list-loading { position: relative !important; min-height: 6rem; }
.dfm-list-loading > :not(.dfm-list-loading-overlay) { opacity: .4; pointer-events: none; }
.dfm-list-loading-overlay { position: absolute; inset: 0; z-index: 20; display: flex; align-items: center; justify-content: center; gap: .65rem; background: rgba(var(--ct-body-bg-rgb, 255,255,255), .7); color: var(--ct-body-color); cursor: progress; }

.dfm-dashboard-section-placeholder { position: relative; min-height: 10rem; }
.dfm-dashboard-section-overlay { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .5rem; background: var(--ct-card-bg, var(--ct-body-bg)); }
.dfm-dashboard-section-overlay .bouncing-loader > div { background: var(--ct-primary); }

/* Keep progress at the top of each result area without moving the viewport. */
.dfm-list-loading-overlay { flex-direction: column; justify-content: flex-start; padding: 1rem; }
.dfm-list-loading-overlay .bouncing-loader > div { background: var(--ct-primary); }
.pagination > .dfm-list-loading-overlay { visibility: hidden; }

/* Center flight progress directly above the schedule results. */
.dfm-flight-load-status {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: .65rem;
    width: max-content;
    max-width: 100%;
    margin: 0 auto 1rem;
    text-align: center;
    padding: .75rem 1rem;
    border: 1px solid var(--ct-border-color);
    border-radius: .65rem;
    background: var(--ct-card-bg, var(--ct-body-bg));
    color: var(--ct-body-color);
    box-shadow: 0 .25rem 1rem rgba(0, 0, 0, .15);
}
.dfm-flight-load-status .spinner-border, .dfm-flight-load-status button { flex-shrink: 0; }
.dfm-customer-status-filter .choices { margin-bottom: 0; }
/* The list overlay still blocks stale row actions; the notice above supplies progress. */
#flightScheduleListHost > .dfm-list-loading-overlay > * { display: none; }

/* Static, responsive flight summary accordion. */
.dfm-flight-summary { --summary-accent: var(--ct-primary); }
.dfm-flight-summary .accordion-item { border: 1px solid var(--ct-border-color); border-radius: 1rem; overflow: hidden; background: var(--ct-card-bg); }
.dfm-flight-summary .accordion-button { gap: .85rem; padding: 1rem 1.15rem; color: var(--ct-body-color); background: linear-gradient(110deg, color-mix(in srgb, var(--ct-primary) 7%, var(--ct-card-bg)), var(--ct-card-bg)); box-shadow: none; }
.dfm-flight-summary .accordion-button:focus-visible { outline: 2px solid var(--ct-primary); outline-offset: -3px; }
.dfm-flight-summary .accordion-button::after { margin-left: .7rem; }
.dfm-summary-header-icon { display: grid; place-items: center; width: 2.65rem; height: 2.65rem; flex-shrink: 0; border-radius: .8rem; background: color-mix(in srgb, var(--ct-primary) 13%, transparent); color: var(--ct-primary); font-size: 1.45rem; }
.dfm-summary-header-copy { display: grid; gap: .2rem; flex: 1; }
.dfm-summary-header-copy strong { font-size: .98rem; }
.dfm-summary-header-copy small { color: var(--ct-secondary-color); font-size: .78rem; }
.dfm-summary-header-tag { font-size: .7rem; border: 1px solid var(--ct-border-color); border-radius: 99px; padding: .3rem .65rem; color: var(--ct-secondary-color); }
.dfm-flight-summary .accordion-body { padding: 1rem; border-top: 1px solid var(--ct-border-color); }
.dfm-summary-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.dfm-summary-panel { min-width: 0; border: 1px solid var(--ct-border-color); border-top: 3px solid var(--summary-accent); border-radius: .8rem; padding: 1rem; background: var(--ct-card-bg); }
.dfm-summary-panel.is-page { --summary-accent: var(--ct-info); }
.dfm-summary-panel-header { display: flex; justify-content: space-between; gap: .8rem; margin-bottom: 1rem; }
.dfm-summary-eyebrow { font-size: .63rem; font-weight: 800; letter-spacing: .09em; color: var(--summary-accent); }
.dfm-summary-panel h3 { font-size: .95rem; margin: .3rem 0; }
.dfm-summary-panel p { font-size: .75rem; color: var(--ct-secondary-color); margin: 0; }
.dfm-summary-total { display: grid; align-content: center; text-align: right; }
.dfm-summary-total strong { font-size: 1.9rem; line-height: 1.1; letter-spacing: -.04em; color: var(--summary-accent); font-variant-numeric: tabular-nums; }
.dfm-summary-total > span { font-size: .7rem; color: var(--ct-secondary-color); }
.dfm-summary-badges { display: flex; flex-wrap: wrap; gap: .55rem; }
.dfm-summary-badges .dfm-flight-kpi { height: auto; min-height: 2.2rem; max-width: 100%; padding-left: .65rem; }
.dfm-summary-badges .dfm-flight-kpi-status { max-width: none; white-space: normal; line-height: 1.3; overflow-wrap: anywhere; font-weight: 600; }
.dfm-summary-status-dot { width: .45rem; height: .45rem; flex-shrink: 0; border-radius: 50%; background: var(--dfm-flight-kpi-accent); }
.dfm-summary-badges .is-empty .dfm-flight-kpi-count { background: transparent; color: var(--ct-secondary-color); }
.dfm-summary-badges .is-warning .dfm-flight-kpi-count, .dfm-summary-badges .is-light .dfm-flight-kpi-count, .dfm-summary-badges .is-info .dfm-flight-kpi-count { color: #182433; }
.dfm-summary-badges .is-teal { --dfm-flight-kpi-accent: #087f8c; }
.dfm-summary-badges .is-cyan { --dfm-flight-kpi-accent: #087f9e; }
.dfm-summary-badges .is-indigo { --dfm-flight-kpi-accent: #635bce; }
.dfm-summary-badges .is-purple { --dfm-flight-kpi-accent: #8754bd; }
.dfm-summary-badges .is-pink { --dfm-flight-kpi-accent: #b8437c; }
.dfm-summary-badges .is-orange { --dfm-flight-kpi-accent: #a9580e; }
@media (max-width: 767.98px) { .dfm-summary-grid { grid-template-columns: 1fr; } .dfm-summary-header-tag { display: none; } .dfm-flight-summary .accordion-button { padding: .85rem; } }
:root { --dfm-management-summary-accent: var(--ct-primary-rgb, 59, 130, 246); }
.dfm-management-summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .65rem; }
.dfm-management-summary-total, .dfm-management-summary-item { display: flex; align-items: center; gap: .7rem; padding: .8rem 1rem; border: 1px solid var(--ct-border-color); border-radius: .7rem; }
.dfm-management-summary-total { background: rgba(var(--dfm-management-summary-accent), .1); border-color: rgba(var(--dfm-management-summary-accent), .3); }
.dfm-management-summary-total > i { font-size: 1.5rem; color: rgb(var(--dfm-management-summary-accent)); }
.dfm-management-summary-total strong, .dfm-management-summary-item strong { font-size: 1.65rem; line-height: 1; font-variant-numeric: tabular-nums; color: rgb(var(--dfm-management-summary-accent)); }
.dfm-management-summary-item span, .dfm-management-summary-total span { font-size: .85rem; overflow-wrap: anywhere; }

/* Pending preflight remains orange even when live flight timing updates. */
.dfm-pending-preflight-bar { background-color: #e67e22 !important; }
.dfm-pending-preflight-badge { background-color: #e67e22; color: #fff; font-size: .7rem; }

.dfm-pending-preflight-badge,
.dfm-dashboard-flight-status .dfm-pending-preflight-badge {
    max-width: 100%;
    overflow: visible;
    text-overflow: clip;
    white-space: normal;
    overflow-wrap: anywhere;
    line-height: 1.3;
    flex-shrink: 0;
}
.dfm-dashboard-flight-status:has(.dfm-pending-preflight-badge) { flex-wrap: wrap; }
@media (max-width: 575.98px) {
    .dfm-dashboard-flight-strip:has(.dfm-pending-preflight-badge) {
        grid-template-areas: "number ticker" "status status" "progress progress";
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.dfm-flying-progress-header .dfm-pending-preflight-badge { color: #fff; }

.dfm-checklist-status-badge,
.dfm-checklist-alert { height: 1.4rem; vertical-align: middle; }
.dfm-checklist-status-badge { display: inline-flex; align-items: center; }
.dfm-checklist-alert {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.4rem;
    flex: 0 0 1.4rem;
    color: var(--ct-danger, #dc3545);
    background: transparent;
    line-height: 1;
    cursor: help;
}
.dfm-checklist-alert svg { display: block; width: 1rem; height: 1rem; }
.dfm-checklist-alert:focus-visible { outline: 2px solid var(--ct-body-color); outline-offset: 2px; }

.dfm-status-alert-group { display: inline-flex; align-items: center; gap: .125rem; vertical-align: middle; }
.dfm-status-alert-group .dfm-checklist-alert { width: 1rem; flex-basis: 1rem; }

/* Keep attached input-group controls joined, including inside compact forms and modals. */
.input-group {
    --dfm-group-focus-border: var(--ct-input-focus-border-color, var(--ct-border-color));
}
.input-group:has(.is-invalid, .input-validation-error),
.was-validated .input-group:has(.form-control:invalid, .form-select:invalid) {
    --dfm-group-focus-border: var(--ct-form-invalid-border-color, var(--ct-danger));
}
.input-group:has(.is-valid):not(:has(.is-invalid, .input-validation-error)) {
    --dfm-group-focus-border: var(--ct-form-valid-border-color, var(--ct-success));
}
.input-group > .btn-outline-secondary,
.input-group > .dfm-password-toggle {
    border-color: var(--ct-input-border-color, var(--ct-border-color));
}
.input-group:focus-within > .form-control,
.input-group:focus-within > .form-select,
.input-group:focus-within > .form-floating > .form-control,
.input-group:focus-within > .form-floating > .form-select,
.input-group:focus-within > .input-group-text,
.input-group:focus-within > .btn {
    border-color: var(--dfm-group-focus-border) !important;
}
.input-group > .btn:focus-visible {
    outline: 2px solid var(--ct-primary);
    outline-offset: 2px;
}
/* Override compact-form rounding without rounding the internal seams. */
.wrapper .input-group > .form-control:not(:last-child),
.wrapper .input-group > .form-select:not(:last-child) {
    border-top-right-radius: 0;
    border-bottom-right-radius: 0;
}
.wrapper .input-group > .form-control:not(:first-child),
.wrapper .input-group > .form-select:not(:first-child) {
    border-top-left-radius: 0;
    border-bottom-left-radius: 0;
}

.dfm-checklist-preview-actions {
    display: flex;
    justify-content: flex-end;
    gap: .25rem;
    margin-top: .25rem;
}
.dfm-checklist-preview-actions .dfm-checklist-preview-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    height: 22px;
    width: 30px;
    padding: 0;
    font-size: 15px;
    line-height: 1;
}
.dfm-customer-flight-action-stack { justify-self: end; }
.dfm-checklist-preview-value { white-space: pre-wrap; }
@media (max-width: 991.98px) {
    .dfm-customer-flight-action-stack {
        grid-column: 1 / -1;
        justify-self: stretch;
    }
}

/* Keep flight list actions consistent with the compact checklist previews. */
.dfm-flight-actions .btn,
.dfm-customer-flight-action .btn {
    height: 22px;
    min-height: 22px;
    padding-top: 0;
    padding-bottom: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    line-height: 1;
}

/* Keep dropdowns compact; selected filters have their own bounded area. */
.dfm-flight-multi-field .choices { margin-bottom: 0; }
.dfm-flight-multi-field .choices__inner {
    height: 38px;
    min-height: 38px;
    max-height: 38px;
    padding: 6px 8px !important;
    overflow: hidden;
}
.dfm-flight-multi-field .choices__list--multiple { display: none; }
.dfm-flight-multi-field .choices__input--cloned {
    width: 100% !important;
    min-width: 0 !important;
    height: 24px;
    margin: 0;
    padding: 2px 0;
}
.dfm-flight-selected-values {
    display: flex;
    flex-wrap: wrap;
    align-content: flex-start;
    align-items: flex-start;
    gap: 4px;
    height: 68px;
    overflow-y: auto;
    scrollbar-width: thin;
    margin-top: 6px;
    padding: 6px;
    border: 1px solid var(--ct-border-color, #dee2e6);
    border-radius: 4px;
    background: var(--ct-tertiary-bg, #f8f9fa);
}
.dfm-flight-selected-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    max-width: 100%;
    border: 1px solid var(--ct-border-color, #dee2e6);
    border-radius: 4px;
    padding: 2px 6px;
    background: var(--ct-secondary-bg, #fff);
    color: var(--ct-body-color, #212529);
    font-size: .75rem;
    text-align: start;
}
.dfm-flight-selected-chip span:first-child { overflow-wrap: anywhere; }
.dfm-flight-selected-chip:hover,
.dfm-flight-selected-chip:focus-visible { border-color: var(--ct-primary, #0d6efd); color: var(--ct-primary, #0d6efd); }
