/* App structure v2 */
#appScreen {
  min-height: 100vh;
}

.structure-v2-sidebar {
  position: fixed;
  inset: 0 auto 0 0;
  z-index: 80;
  width: 248px;
  background: linear-gradient(180deg, #22331f, #101b12);
  color: #fff;
  padding: 20px 14px;
  display: grid;
  grid-template-rows: auto auto 1fr auto;
  gap: 18px;
  box-shadow: 16px 0 50px rgba(0,0,0,.18);
}

.structure-v2-brand {
  font-size: 24px;
  font-weight: 950;
  letter-spacing: -.03em;
  padding: 4px 10px 12px;
}

.structure-v2-primary {
  display: grid;
  gap: 8px;
}

.structure-v2-primary button,
.structure-v2-admin button {
  border: 0 !important;
  border-radius: 14px !important;
  background: transparent !important;
  color: rgba(255,255,255,.86) !important;
  display: grid !important;
  grid-template-columns: 28px 1fr;
  align-items: center;
  text-align: left;
  gap: 8px;
  padding: 11px 12px !important;
  width: 100%;
  box-shadow: none !important;
}

.structure-v2-primary button.active,
.structure-v2-primary button:hover,
.structure-v2-admin button:hover {
  background: rgba(255,255,255,.12) !important;
  color: #fff !important;
}

.structure-v2-primary button span {
  font-size: 18px;
}

.structure-v2-primary button strong {
  font-size: 14px;
}

.structure-v2-admin {
  border-top: 1px solid rgba(255,255,255,.12);
  padding-top: 14px;
  display: grid;
  align-content: start;
  gap: 4px;
}

.structure-v2-admin > span {
  color: rgba(255,255,255,.55);
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .08em;
  font-weight: 900;
  padding: 0 10px 6px;
}

.structure-role-hidden,
body.role-pilot .structure-v2-sidebar [data-structure-role]:not([data-structure-role="all"]),
body.role-pilot .structure-v2-admin,
body:not(.role-privileged) .structure-v2-admin {
  display: none !important;
}

.structure-v2-user {
  border-top: 1px solid rgba(255,255,255,.12);
  padding: 14px 8px 0;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 10px;
}

.structure-v2-logout-button {
  grid-column: 1 / -1;
  width: 100%;
  min-height: 38px !important;
  margin-top: 8px;
  border: 1px solid rgba(255,255,255,.18) !important;
  border-radius: 8px !important;
  background: rgba(180, 31, 46, .18) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-size: 12px !important;
  font-weight: 850 !important;
}

.structure-v2-logout-button:hover,
.structure-v2-logout-button:focus-visible {
  background: var(--unified-red, #b41f2e) !important;
}

#structureV2UserInitials {
  width: 42px;
  height: 42px;
  border-radius: 999px;
  background: rgba(255,255,255,.16);
  display: grid;
  place-items: center;
  font-weight: 950;
}

.structure-v2-user strong,
.structure-v2-user span {
  display: block;
}

.structure-v2-user span {
  color: rgba(255,255,255,.65);
  font-size: 12px;
}

.structure-role-hidden {
  display: none !important;
}

/* Give desktop content room for the new sidebar */
@media(min-width: 901px) {
  #appScreen > main,
  #appScreen main,
  #appScreen .app-main,
  #appScreen .content {
    margin-left: 248px !important;
    width: calc(100% - 248px) !important;
    max-width: calc(100% - 248px) !important;
  }

  /* Hide old desktop nav if present */
  #appScreen > header,
  .top-nav,
  .main-nav,
  .old-nav,
  .app-header nav {
    display: none !important;
  }
}

.structure-v2-mobile-nav {
  display: none;
}

body.locked .structure-v2-mobile-nav,
body:not(.logged-in) .structure-v2-mobile-nav,
body.locked .structure-v2-more-menu,
body:not(.logged-in) .structure-v2-more-menu {
  display: none !important;
}

.structure-v2-more-menu {
  position: fixed;
  right: 14px;
  bottom: calc(76px + env(safe-area-inset-bottom));
  z-index: 130;
  width: min(280px, calc(100vw - 28px));
  border: 1px solid var(--hdk-line, var(--line));
  border-radius: 18px;
  background: #fff;
  box-shadow: 0 18px 60px rgba(0,0,0,.24);
  padding: 8px;
}

.structure-v2-more-menu button {
  width: 100%;
  background: transparent !important;
  color: var(--text) !important;
  box-shadow: none !important;
  border-radius: 12px !important;
  text-align: left;
  justify-content: start;
}

.structure-v2-more-menu .structure-v2-mobile-logout-button {
  margin-top: 6px;
  border-top: 1px solid var(--hdk-line, var(--line)) !important;
  background: #fff1f2 !important;
  color: var(--hdk-red, #a51f2d) !important;
  font-weight: 900 !important;
}

.structure-v2-more-menu .danger-text {
  color: var(--hdk-red, #a51f2d) !important;
}

.structure-v2-section-intro {
  border: 1px solid var(--hdk-line, var(--line));
  border-left: 5px solid var(--hdk-red, #a51f2d);
  border-radius: 18px;
  background: #fff;
  padding: 14px;
  margin-bottom: 12px;
}

.structure-v2-section-intro h2 {
  margin: 0 0 4px;
}

.structure-v2-section-intro p {
  margin: 0;
  color: var(--muted);
}

/* Mobile: simple bottom nav like the mockup */
@media(max-width: 900px) {
  .structure-v2-sidebar {
    display: none;
  }

  .structure-v2-mobile-nav {
    position: fixed;
    z-index: 120;
    left: 8px;
    right: 8px;
    bottom: calc(8px + env(safe-area-inset-bottom));
    height: 64px;
    border-radius: 18px;
    background: #1d2c1b;
    color: #fff;
    box-shadow: 0 10px 36px rgba(0,0,0,.28);
    display: none;
    grid-template-columns: repeat(auto-fit, minmax(48px, 1fr));
    gap: 2px;
    padding: 6px;
  }

  body.logged-in.structure-v2-active .structure-v2-mobile-nav {
    display: grid;
  }

  .structure-v2-mobile-nav button {
    min-width: 0 !important;
    width: 100% !important;
    height: 52px;
    border: 0 !important;
    border-radius: 13px !important;
    background: transparent !important;
    color: rgba(255,255,255,.82) !important;
    box-shadow: none !important;
    display: grid !important;
    place-items: center;
    gap: 1px;
    padding: 4px !important;
  }

  .structure-v2-mobile-nav button.active {
    background: rgba(255,255,255,.13) !important;
    color: #fff !important;
  }

  .structure-v2-mobile-nav .structure-v2-mobile-nav-logout {
    color: #ffd5dc !important;
  }

  .structure-v2-mobile-nav span {
    font-size: 16px;
    line-height: 1;
  }

  .structure-v2-mobile-nav strong {
    font-size: 10px;
    line-height: 1.1;
  }

  body.logged-in {
    padding-bottom: calc(82px + env(safe-area-inset-bottom));
  }

  body.locked {
    padding-bottom: 0 !important;
  }

  /* Hide older bottom menu to avoid duplicate navigation */
  .bottom-nav,
  .mobile-bottom-nav,
  nav.bottom-menu {
    display: none !important;
  }

  .structure-v2-section-intro {
    padding: 12px;
    border-radius: 16px;
  }
}


/* App structure v2 menu fix
   Hide the old top menu/header when the new sidebar/mobile menu is active. */
body.structure-v2-active .topbar,
body.structure-v2-active #desktopNav,
body.structure-v2-active .desktop-nav,
body.structure-v2-active .mobile-nav,
body.structure-v2-active #mobileNav,
body.structure-v2-active .bottom-nav,
body.structure-v2-active .mobile-bottom-nav,
body.structure-v2-active nav.bottom-menu,
body.structure-v2-active .mobile-sheet,
body.structure-v2-active #mobileSheet,
.structure-v2-old-menu-hidden {
  display: none !important;
}

@media(min-width: 901px) {
  body.structure-v2-active #appScreen {
    display: block !important;
    padding-left: 248px !important;
  }

  body.structure-v2-active #appScreen > main,
  body.structure-v2-active #appScreen main {
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    padding-top: 18px !important;
  }

  body.structure-v2-active .structure-v2-sidebar {
    display: grid !important;
  }
}

@media(max-width: 900px) {
  body.structure-v2-active #appScreen {
    padding-left: 0 !important;
  }

  body.structure-v2-active #appScreen > main,
  body.structure-v2-active #appScreen main {
    margin-left: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}


/* Data & rapporter vs Drift & kontrol split */
.structure-v2-mode-header {
  border: 1px solid var(--hdk-line, var(--line));
  border-left: 5px solid var(--hdk-red, #a51f2d);
  border-radius: 18px;
  background: #fff;
  padding: 14px;
  margin-bottom: 12px;
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: center;
}

.structure-v2-mode-header h2 {
  margin: 0 0 4px;
}

.structure-v2-mode-header p {
  margin: 0;
  color: var(--muted);
}

#structureV2ModeBadge {
  flex: 0 0 auto;
  border-radius: 999px;
  padding: 7px 12px;
  background: var(--hdk-red, #a51f2d);
  color: #fff;
  font-size: 12px;
  font-weight: 950;
}

/* When opened as Data, hide technical drift tabs from the tab row. */
body[data-structure-reports-mode="data"] [data-data-tab="operations"],
body[data-structure-reports-mode="data"] [data-data-tab="systemcheck"],
body[data-structure-reports-mode="data"] [data-data-tab="security"],
body[data-structure-reports-mode="data"] [data-data-tab="testplan"],
body[data-structure-reports-mode="data"] [data-data-tab="tools"] {
  display: none !important;
}

/* When opened as Drift, hide normal search/report tabs from the tab row. */
body[data-structure-reports-mode="drift"] [data-data-tab="search"],
body[data-structure-reports-mode="drift"] [data-data-tab="reports"],
body[data-structure-reports-mode="drift"] [data-data-tab="audit"],
body[data-structure-reports-mode="drift"] [data-data-tab="dataquality"],
body[data-structure-reports-mode="drift"] [data-data-tab="export"] {
  display: none !important;
}

body[data-structure-reports-mode="drift"] .structure-v2-mode-header {
  border-left-color: #243b22;
}

body[data-structure-reports-mode="drift"] #structureV2ModeBadge {
  background: #243b22;
}

@media(max-width: 800px) {
  .structure-v2-mode-header {
    display: grid;
    border-radius: 16px;
    padding: 12px;
  }

  #structureV2ModeBadge {
    width: fit-content;
  }
}


/* Full structure cleanup */
.structure-mode-hidden,
.structure-deprecated-hidden {
  display: none !important;
}

.structure-v2-workflows {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 12px;
}

.structure-v2-workflows article {
  border: 1px solid var(--hdk-line, var(--line));
  border-radius: 16px;
  padding: 12px;
  background: #fff;
  display: grid;
  gap: 4px;
}

.structure-v2-workflows strong {
  font-size: 15px;
}

.structure-v2-workflows span {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.35;
}

/* Remove the old "Værktøjer" feel */
body[data-structure-reports-mode="data"] [data-data-panel="tools"],
body[data-structure-reports-mode="drift"] [data-data-panel="tools"] {
  display: none !important;
}

/* Data mode should feel like analysis/reporting */
body[data-structure-reports-mode="data"] .structure-v2-mode-header {
  border-left-color: var(--hdk-red, #a51f2d);
}

/* Drift mode should feel like control/status */
body[data-structure-reports-mode="drift"] .structure-v2-mode-header {
  border-left-color: #243b22;
}

@media(max-width: 1100px) {
  .structure-v2-workflows {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media(max-width: 700px) {
  .structure-v2-workflows {
    grid-template-columns: 1fr;
  }
}


/* Dashboard with forecast + alerts */
.dashboard-shell{display:grid;gap:16px}.dashboard-hero{display:flex;justify-content:space-between;gap:18px;align-items:center}.eyebrow{margin:0 0 6px;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.dashboard-hero h2{margin:0 0 8px;font-size:30px;letter-spacing:-.05em}.dashboard-hero-actions{display:flex;gap:10px;flex-wrap:wrap}.dashboard-alert-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.dashboard-alert-card{cursor:pointer;transition:transform .15s ease, box-shadow .15s ease}.dashboard-alert-card:hover{transform:translateY(-2px)}.dashboard-alert-top{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.dashboard-alert-icon{font-size:24px}.dashboard-alert-card h3{margin:0 0 8px}.dashboard-alert-card strong{display:block;font-size:32px;line-height:1;margin-bottom:8px;color:var(--text)}.dashboard-badge{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:800;background:#dbeafe;color:#1d4ed8}.dashboard-badge-warning{background:#fef3c7;color:#92400e}.dashboard-badge-good{background:#dcfce7;color:#166534}.dashboard-badge-neutral{background:#e2e8f0;color:#334155}.dashboard-main-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(320px,.9fr);gap:16px}.dashboard-column-left,.dashboard-column-right{display:grid;gap:16px}.card-head-inline{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:12px}.card-head-inline h3{margin:0 0 4px}.dashboard-forecast-grid,.dashboard-forecast-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.dashboard-forecast-summary{grid-template-columns:repeat(2,minmax(0,1fr));margin-top:12px}.mini-stat{border:1px solid var(--line);border-radius:16px;padding:14px;background:#f8fbff}.mini-stat span{display:block;color:var(--muted);font-size:12px;font-weight:700;margin-bottom:6px}.mini-stat strong{display:block;font-size:18px;letter-spacing:-.03em}.mini-stat.wide strong{font-size:16px;line-height:1.35}.dashboard-status-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-status-grid .stat strong{font-size:28px}.dashboard-quick-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.dashboard-list-summary{margin-bottom:10px}.dashboard-compact-list{display:grid;gap:10px}.dashboard-list-item{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;background:#fff;color:var(--text);border:1px solid var(--line);box-shadow:none}.dashboard-list-item:hover{background:#f8fbff}.dashboard-list-item span{display:grid;gap:4px}.dashboard-list-item strong{font-size:15px}.dashboard-list-item small{color:var(--muted)}.dashboard-list-item em{font-style:normal;color:var(--blue);font-weight:800}.clickable-card button{pointer-events:none}.clickable-card *{pointer-events:none}@media (max-width: 980px){.dashboard-alert-grid,.dashboard-main-grid{grid-template-columns:1fr}.dashboard-main-grid{gap:16px}}@media (max-width: 720px){.dashboard-hero,.card-head-inline{flex-direction:column;align-items:stretch}.dashboard-forecast-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-forecast-summary,.dashboard-quick-actions,.dashboard-status-grid{grid-template-columns:1fr}.dashboard-alert-grid{grid-template-columns:1fr}}


/* Dashboard forecast fix */
.dashboard-forecast-card {
  border-left: 5px solid #2563eb;
}

.dashboard-badge-good {
  background: #dcfce7;
  color: #166534;
}

.dashboard-badge-warning {
  background: #fff7d6;
  color: #92400e;
}

.dashboard-badge-neutral {
  background: #e2e8f0;
  color: #334155;
}

/* DRONELOG NOTAM conflict popup */
.dashboard-alert-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
#dashboardNotamCard{border-left:5px solid #94a3b8;cursor:default}
#dashboardNotamCard.notam-ok{border-left-color:#16a34a}
#dashboardNotamCard.notam-warning{border-left-color:#f59e0b}
#dashboardNotamCard.notam-conflict{border-left-color:#dc2626;background:#fff7f7}
.notam-check-panel{margin:16px 0 18px;padding:18px;border:1px solid var(--line);border-radius:20px;background:linear-gradient(135deg,#ffffff,#f8fafc)}
.notam-check-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start;margin-bottom:12px}.notam-check-head h3{margin:0 0 6px}.notam-pill{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:900;background:#e2e8f0;color:#334155;white-space:nowrap}.notam-pill.ok{background:#dcfce7;color:#166534}.notam-pill.warning{background:#fef3c7;color:#92400e}.notam-pill.conflict{background:#fee2e2;color:#991b1b}.notam-status-line{border:1px solid #e2e8f0;border-radius:14px;background:#fff;padding:12px 14px;margin-bottom:8px;color:var(--muted);font-weight:700}.notam-auto-line{border:1px dashed #cbd5e1;border-radius:14px;background:#f8fafc;padding:10px 12px;margin-bottom:12px;color:#475569;font-size:13px;font-weight:700}.notam-auto-line.ok{border-color:#86efac;background:#f0fdf4;color:#166534}.notam-auto-line.warning{border-color:#fde68a;background:#fffbeb;color:#92400e}.notam-auto-line.error{border-color:#fecaca;background:#fff1f2;color:#991b1b}.notam-input-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.notam-input-grid .full{grid-column:1/-1}.notam-input-grid textarea{min-height:140px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}.notam-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}.notam-explained{margin-top:14px;border:1px solid #dbeafe;border-radius:16px;background:#f8fbff;padding:14px}.notam-explained h4{margin:0 0 10px}.notam-explained-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.notam-fact{border:1px solid #e2e8f0;background:#fff;border-radius:14px;padding:10px}.notam-fact span{display:block;color:var(--muted);font-size:12px;font-weight:800;margin-bottom:4px}.notam-fact strong{display:block}.notam-warning-overlay{position:fixed;inset:0;background:rgba(15,23,42,.55);z-index:9998;display:flex;align-items:center;justify-content:center;padding:18px}.notam-warning-modal{width:min(760px,100%);max-height:92vh;overflow:auto;background:#fff;border-radius:22px;box-shadow:0 24px 80px rgba(15,23,42,.35);border:1px solid #fecaca}.notam-warning-header{display:flex;gap:14px;align-items:flex-start;padding:22px 24px 12px}.notam-warning-icon{font-size:34px}.notam-warning-header h2{margin:0 0 5px;color:#b91c1c}.notam-warning-body{padding:0 24px 22px}.notam-warning-alert{border:1px solid #fecaca;background:#fff1f2;color:#991b1b;border-radius:14px;padding:12px 14px;font-weight:800;margin-bottom:14px}.notam-warning-table{border:1px solid #e5e7eb;border-radius:16px;overflow:hidden;margin-bottom:14px}.notam-warning-row{display:grid;grid-template-columns:160px 1fr;border-bottom:1px solid #e5e7eb}.notam-warning-row:last-child{border-bottom:0}.notam-warning-row span{padding:11px 14px;background:#f8fafc;font-weight:800}.notam-warning-row strong{padding:11px 14px;font-weight:700}.notam-warning-explanation,.notam-warning-original{border:1px solid #e5e7eb;border-radius:16px;background:#fff;padding:14px;margin-bottom:14px}.notam-warning-original pre{margin:8px 0 0;white-space:pre-wrap;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}.notam-warning-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}.notam-warning-actions .danger{background:#dc2626;color:#fff;border-color:#dc2626}.notam-warning-actions .ok{background:#166534;color:#fff;border-color:#166534}@media(max-width:980px){.dashboard-alert-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.notam-input-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:700px){.dashboard-alert-grid,.notam-input-grid,.notam-explained-grid{grid-template-columns:1fr}.notam-check-head{flex-direction:column}.notam-warning-row{grid-template-columns:1fr}.notam-warning-row span{padding-bottom:3px}.notam-warning-row strong{padding-top:3px}.notam-warning-actions button{width:100%}}


/* DRONELOG_NOTAM_MISSION_FLOW */
.mission-notam-panel{
  margin: 1rem 0 1.25rem;
  border-left: 4px solid var(--accent, #2f855a);
}
.mission-notam-panel .notam-check-head h3{
  margin-bottom: .25rem;
}




/* DRONELOG NOTAM v2 */
.notam-v2-mission{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);background:#fff;border-radius:14px;padding:10px 12px;margin-bottom:12px}.notam-v2-mission span{color:var(--muted);font-size:12px;font-weight:800}.notam-dimension-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-bottom:12px}.notam-dimension{border:1px solid var(--line);border-radius:14px;padding:12px;background:#fff}.notam-dimension span{display:block;color:var(--muted);font-size:12px;font-weight:900;text-transform:uppercase;margin-bottom:4px}.notam-dimension strong{display:block;font-size:17px;margin-bottom:5px}.notam-dimension p{margin:0;color:var(--muted);font-size:12px;line-height:1.4}.notam-dimension.good{border-color:#86efac;background:#f0fdf4}.notam-dimension.bad{border-color:#fca5a5;background:#fff1f2}.notam-dimension.warn{border-color:#fde68a;background:#fffbeb}.notam-parser-warnings{border:1px solid #fde68a;background:#fffbeb;color:#78350f;border-radius:14px;padding:12px}.notam-parser-warnings ul{margin:7px 0 0;padding-left:20px}.notam-result-good{color:#166534}.notam-result-bad{color:#991b1b}.notam-result-warn{color:#92400e}.notam-warning-modal.warning{border-color:#fde68a}.notam-warning-modal.warning .notam-warning-header h2{color:#92400e}.notam-input-grid small{display:block;color:var(--muted);font-weight:500;margin-top:4px}@media(max-width:800px){.notam-dimension-grid{grid-template-columns:1fr}.notam-v2-mission{display:grid}}


/* Operations control between mission planning and NOTAM */
.mission-operations-control-card {
  border-left: 5px solid #2563eb;
}

.operations-control-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  border-radius: 999px;
  padding: 0 12px;
  font-size: 12px;
  font-weight: 900;
}

.operations-control-badge.warning {
  background: #fff7d6;
  color: #92400e;
}

.operations-control-badge.ok {
  background: #dcfce7;
  color: #166534;
}

.operations-progress {
  display: grid;
  grid-template-columns: auto 1fr auto 1fr auto 1fr auto;
  align-items: center;
  gap: 8px;
  margin: 4px 0 16px;
}

.operations-progress-step {
  display: grid;
  justify-items: center;
  gap: 5px;
  color: var(--muted);
  font-size: 11px;
  text-align: center;
}

.operations-progress-step span {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 999px;
  border: 2px solid var(--line);
  background: #fff;
  font-weight: 900;
}

.operations-progress-step.active {
  color: #1d4ed8;
}

.operations-progress-step.active span {
  border-color: #2563eb;
  background: #eff6ff;
}

.operations-progress-step.complete {
  color: #166534;
}

.operations-progress-step.complete span {
  border-color: #16a34a;
  background: #dcfce7;
}

.operations-progress-line {
  height: 2px;
  background: var(--line);
  min-width: 20px;
}

.operations-control-grid {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 10px;
  margin-bottom: 14px;
}

.operations-control-item {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 11px 12px;
  background: #f8fafc;
  min-width: 0;
}

.operations-control-item span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
  margin-bottom: 5px;
}

.operations-control-item strong {
  display: block;
  overflow-wrap: anywhere;
  font-size: 14px;
}

.operations-control-checklist {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin: 12px 0;
}

.operations-check-item {
  display: grid;
  grid-template-columns: 28px 1fr;
  gap: 9px;
  align-items: start;
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 9px 10px;
}

.operations-check-item > span {
  width: 24px;
  height: 24px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-weight: 950;
}

.operations-check-item.ok {
  background: #f6fbf4;
  border-color: #b6ceb0;
}

.operations-check-item.ok > span {
  background: #dcfce7;
  color: #166534;
}

.operations-check-item.warning {
  background: #fff9e8;
  border-color: #e8c46f;
}

.operations-check-item.warning > span {
  background: #fff1b8;
  color: #92400e;
}

.operations-check-item strong,
.operations-check-item small {
  display: block;
}

.operations-check-item small {
  color: var(--muted);
  margin-top: 2px;
}

.operations-control-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  justify-content: flex-end;
  margin-top: 12px;
}

/* Mission page hierarchy:
   Planning + Operations control, then NOTAM full width, then planned missions. */
@media(min-width: 901px) {
  #missionsView .mission-operations-control-card {
    grid-column: 1 / -1;
  }

  #missionsView .notam-card,
  #missionsView [data-notam-card],
  #missionsView #missionNotamCard,
  #missionsView #notamControlCard {
    grid-column: 1 / -1;
  }
}

@media(max-width: 1100px) {
  .operations-control-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media(max-width: 700px) {
  .operations-progress {
    grid-template-columns: 1fr;
    justify-items: stretch;
  }

  .operations-progress-line {
    width: 2px;
    height: 16px;
    justify-self: center;
  }

  .operations-progress-step {
    grid-template-columns: 32px 1fr;
    justify-items: start;
    align-items: center;
    text-align: left;
  }

  .operations-control-grid,
  .operations-control-checklist {
    grid-template-columns: 1fr;
  }

  .operations-control-actions {
    display: grid;
    grid-template-columns: 1fr;
  }

  .operations-control-actions button {
    width: 100%;
  }
}


/* Mission and NOTAM cleanup layout */
.mission-clean-layout {
  display: grid;
  gap: 14px;
}

.mission-planning-card,
.mission-planned-card {
  width: 100%;
}

.mission-clean-form {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px 14px;
}

.mission-clean-form label {
  min-width: 0;
}

.mission-clean-form input,
.mission-clean-form select,
.mission-clean-form textarea {
  width: 100%;
}

.mission-notes-field {
  grid-column: span 2;
}

.mission-notes-field textarea {
  min-height: 78px;
}

.mission-coordinate-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 7px;
}

.input-with-unit {
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}

.input-with-unit input {
  border: 0 !important;
  border-radius: 0 !important;
}

.input-with-unit span {
  color: var(--muted);
  padding: 0 12px;
  font-size: 13px;
}

.mission-form-actions {
  grid-column: 1 / -1;
  display: flex;
  gap: 8px;
  justify-content: flex-end;
}

.mission-control-row {
  display: grid;
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.55fr);
  gap: 14px;
  align-items: stretch;
}

.mission-control-row > .card,
.mission-control-row > section {
  height: 100%;
  margin: 0;
}

.mission-compact-control-card {
  display: flex;
  flex-direction: column;
  border-left: 5px solid #2563eb;
}

.compact-toolbar {
  align-items: flex-start;
}

.mission-compact-checklist {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 9px;
  margin: 8px 0 14px;
}

.mission-compact-check {
  display: grid;
  grid-template-columns: 24px 1fr;
  align-items: center;
  gap: 8px;
  min-height: 38px;
}

.mission-compact-check > span {
  width: 22px;
  height: 22px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 950;
}

.mission-compact-check.ok > span {
  color: #166534;
  background: #dcfce7;
}

.mission-compact-check.warning > span {
  color: #92400e;
  background: #fff1b8;
}

.mission-compact-check strong {
  font-size: 13px;
}

.mission-notam-primary-button {
  width: 100%;
  margin-top: auto;
}

.mission-notam-clean-card {
  display: flex;
  flex-direction: column;
  border-left: 5px solid #d8a000;
}

.compact-notam-head {
  align-items: flex-start;
}

.mission-notam-summary-grid {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
  margin: 10px 0 12px;
}

.mission-notam-summary-grid > div {
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 9px 10px;
  background: #f8fafc;
  min-width: 0;
}

.mission-notam-summary-grid span,
.notam-compact-result-row span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  margin-bottom: 4px;
}

.mission-notam-summary-grid strong {
  display: block;
  font-size: 13px;
  overflow-wrap: anywhere;
}

.notam-clean-details {
  margin-top: auto;
  border-top: 1px solid var(--line);
  padding-top: 10px;
}

.notam-clean-details > summary,
.notam-advanced-details > summary {
  cursor: pointer;
  font-weight: 900;
  color: var(--blue);
  list-style-position: inside;
}

.notam-clean-content {
  display: grid;
  gap: 11px;
  padding-top: 12px;
}

.notam-clean-content > label {
  display: grid;
  gap: 6px;
}

.notam-clean-content textarea {
  min-height: 150px;
}

.notam-compact-result-row {
  display: grid;
  grid-template-columns: minmax(160px, .55fr) 1fr;
  gap: 10px;
  align-items: center;
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 10px 12px;
  background: #f8fafc;
}

.notam-advanced-details {
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 10px 12px;
  background: #fff;
}

.notam-advanced-details[open] > summary {
  margin-bottom: 10px;
}

.notam-clean-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.mission-planned-card {
  grid-column: 1 / -1;
}

@media(max-width: 1100px) {
  .mission-clean-form {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .mission-control-row {
    grid-template-columns: 1fr;
  }

  .mission-notam-summary-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media(max-width: 700px) {
  .mission-clean-form {
    grid-template-columns: 1fr;
  }

  .mission-notes-field,
  .mission-form-actions {
    grid-column: auto;
  }

  .mission-form-actions {
    display: grid;
  }

  .mission-coordinate-row,
  .mission-compact-checklist,
  .mission-notam-summary-grid,
  .notam-compact-result-row {
    grid-template-columns: 1fr;
  }

  .notam-clean-actions {
    display: grid;
  }

  .notam-clean-actions button {
    width: 100%;
  }
}


/* UTM / MGRS coordinate fields */
.coordinate-format-row {
  display: grid;
  grid-template-columns: 92px minmax(0, 1fr);
  gap: 7px;
}

.coordinate-format-row select,
.coordinate-format-row input {
  min-width: 0;
  width: 100%;
}

.coordinate-format-row input {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  text-transform: uppercase;
  letter-spacing: .02em;
}

.coordinate-help {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  line-height: 1.35;
}

.coordinate-help.coordinate-valid {
  color: #166534;
}

.coordinate-help.coordinate-invalid {
  color: #b91c1c;
}

.notam-coordinate-field {
  grid-column: 1 / -1;
}

@media(max-width: 520px) {
  .coordinate-format-row {
    grid-template-columns: 1fr;
  }
}


/* Final mission page design cleanup */
#missionsView {
  display: none;
}

#missionsView.active {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) !important;
  gap: 16px;
  align-items: start;
  width: 100%;
}

#flightLogView .mission-planning-card,
#flightLogView #missionForm,
#flightLogView .mission-control-row,
#flightLogView .mission-planned-card {
  display: none !important;
}

.mission-page-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 4px 2px 2px;
}

.mission-page-header h1 {
  margin: 0 0 4px;
  font-size: 30px;
  letter-spacing: -.04em;
}

.mission-page-header p {
  margin: 0;
}

.mission-page-header .eyebrow {
  margin-bottom: 5px;
}

#missionsView > [data-mission-section] {
  width: 100%;
  min-width: 0;
  margin: 0;
}

.mission-section-primary {
  border-top: 5px solid var(--hdk-red, #a51f2d);
}

.mission-section-primary > .toolbar {
  margin-bottom: 12px;
}

.mission-section-primary h2,
.mission-planned-card h3,
.mission-compact-control-card h3,
.mission-notam-clean-card h3 {
  margin-top: 0;
}

.mission-control-row {
  display: grid !important;
  grid-template-columns: minmax(280px, .72fr) minmax(0, 1.55fr) !important;
  gap: 16px !important;
  align-items: stretch !important;
}

.mission-control-row > * {
  min-width: 0;
  margin: 0 !important;
  height: 100%;
}

.mission-planned-card {
  clear: both;
  grid-column: 1 / -1 !important;
}

.mission-planning-card ~ .mission-planning-card,
#missionsView #missionForm ~ #missionForm,
#missionsView .mission-control-row ~ .mission-control-row,
#missionsView .mission-planned-card ~ .mission-planned-card {
  display: none !important;
}

@media(max-width: 980px) {
  .mission-page-header {
    align-items: flex-start;
  }

  .mission-control-row {
    grid-template-columns: 1fr !important;
  }
}

@media(max-width: 700px) {
  .mission-page-header {
    display: grid;
  }

  .mission-page-header button {
    width: 100%;
  }

  .mission-page-header h1 {
    font-size: 25px;
  }
}


/* Hide coordinate helper text below UTM/MGRS fields */
#missionCoordinateHelp,
#notamCoordinateHelp {
  display: none !important;
}


/* Manual-only NOTAM mode */
.notam-manual-disclaimer {
  border: 1px solid #e8c46f;
  border-left: 5px solid #d8a000;
  border-radius: 14px;
  background: #fff9e8;
  color: #443400;
  padding: 11px 12px;
}

.notam-manual-disclaimer strong {
  display: block;
  margin-bottom: 4px;
}

.notam-manual-disclaimer p {
  margin: 0;
  line-height: 1.4;
}


/* NOTAM as mission information */
.mission-notam-info-card {
  border-left: 5px solid #2563eb;
  display: grid;
  gap: 12px;
}
.notam-info-header {display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.notam-info-header h3 {margin:0 0 4px}
.notam-info-badge {display:inline-flex;padding:7px 11px;border-radius:999px;font-size:12px;font-weight:900;white-space:nowrap}
.notam-info-badge.neutral {background:#e2e8f0;color:#334155}
.notam-info-badge.ok {background:#dcfce7;color:#166534}
.notam-info-mission-row {display:grid;grid-template-columns:minmax(0,1fr) minmax(240px,.65fr);gap:12px;align-items:end}
.notam-info-source {border:1px solid var(--line);border-radius:13px;padding:10px 12px;background:#f8fafc}
.notam-info-source span {display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;margin-bottom:4px}
.notam-info-actions {display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
.notam-info-output {border:1px solid var(--line);border-radius:16px;padding:14px;background:#fff}
.notam-info-output-head {display:flex;justify-content:space-between;gap:12px;align-items:start;margin-bottom:12px}
.notam-info-output-head span:first-child {color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase}
.notam-info-output-head h4 {margin:3px 0 0;font-size:20px}
.notam-info-type {padding:6px 10px;border-radius:999px;background:#eff6ff;color:#1d4ed8;font-size:12px;font-weight:900}
.notam-info-facts {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-bottom:12px}
.notam-info-facts > div {border:1px solid var(--line);border-radius:12px;padding:10px;background:#f8fafc;min-width:0}
.notam-info-facts span {display:block;color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;margin-bottom:4px}
.notam-info-facts strong {display:block;overflow-wrap:anywhere}
.notam-info-explanation {border-left:4px solid #2563eb;padding:10px 12px;background:#f8fbff;border-radius:0 12px 12px 0}
.notam-info-explanation p {margin:6px 0 0;line-height:1.5}
.notam-original-details {margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.notam-original-details summary {cursor:pointer;font-weight:900;color:var(--blue)}
.notam-original-details pre {white-space:pre-wrap;overflow-wrap:anywhere;background:#f8fafc;border:1px solid var(--line);border-radius:12px;padding:12px;margin:10px 0 0;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12px}
@media(max-width:850px){.notam-info-mission-row,.notam-info-facts{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.notam-info-header,.notam-info-output-head{display:grid}.notam-info-mission-row,.notam-info-facts{grid-template-columns:1fr}.notam-info-actions{display:grid}.notam-info-actions button{width:100%}}


/* Mission flow cleanup */
.mission-flow-panel {
  border-top: 5px solid #1d4ed8;
}

.mission-flow-current {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 30px;
  border-radius: 999px;
  padding: 0 12px;
  font-size: 12px;
  font-weight: 900;
  background: #eef2ff;
  color: #1e3a8a;
}

.mission-flow-steps {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
  margin: 14px 0 12px;
}

.mission-flow-step {
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 10px 8px;
  background: #f8fafc;
  display: grid;
  justify-items: center;
  gap: 6px;
  text-align: center;
  color: var(--muted);
}

.mission-flow-step span {
  width: 28px;
  height: 28px;
  border-radius: 999px;
  display: grid;
  place-items: center;
  background: #e5e7eb;
  font-weight: 900;
}

.mission-flow-step.active {
  border-color: #1d4ed8;
  background: #eff6ff;
  color: #1e3a8a;
}

.mission-flow-step.active span {
  background: #1d4ed8;
  color: #fff;
}

.mission-flow-step.done {
  border-color: #16a34a;
  background: #f0fdf4;
  color: #166534;
}

.mission-flow-step.done span {
  background: #16a34a;
  color: #fff;
}

.mission-flow-step.disabled {
  opacity: .55;
}

.mission-flow-actions {
  display: flex;
  gap: 8px;
  justify-content: flex-end;
  flex-wrap: wrap;
}

.mission-flow-note {
  margin: 10px 0 0;
  font-size: 12px;
}

.mission-selected-summary {
  border-left: 5px solid #0f766e;
}

.mission-selected-grid {
  display: grid;
  grid-template-columns: repeat(6, minmax(0, 1fr));
  gap: 8px;
}

.mission-selected-grid > div {
  border: 1px solid var(--line);
  border-radius: 13px;
  padding: 10px 11px;
  background: #f8fafc;
  min-width: 0;
}

.mission-selected-grid span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  margin-bottom: 5px;
}

.mission-selected-grid strong {
  display: block;
  overflow-wrap: anywhere;
  font-size: 13px;
}

@media(max-width: 1100px) {
  .mission-flow-steps,
  .mission-selected-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

@media(max-width: 700px) {
  .mission-flow-steps,
  .mission-selected-grid {
    grid-template-columns: 1fr;
  }
  .mission-flow-actions {
    display: grid;
    grid-template-columns: 1fr;
  }
  .mission-flow-actions button {
    width: 100%;
  }
}


/* Mission map location picker */
.mission-location-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  align-items: end;
}

.mission-location-row .icon-button {
  min-width: 72px;
  height: 42px;
}

.mission-map-picker {
  z-index: 9999;
}

.mission-map-picker-card {
  width: min(1180px, calc(100vw - 28px));
  max-height: calc(100vh - 28px);
  overflow: auto;
}

.mission-map-toolbar {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
  margin-bottom: 12px;
}

.mission-map-search-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
}

.mission-map-picker-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.55fr) minmax(280px, .75fr);
  gap: 14px;
  align-items: stretch;
}

.mission-map-picker-canvas {
  min-height: 560px;
  border: 1px solid var(--line);
  border-radius: 18px;
  overflow: hidden;
  background: #eef2f7;
}

.mission-map-placeholder {
  min-height: 560px;
  display: grid;
  place-items: center;
  align-content: center;
  gap: 8px;
  color: var(--muted);
  text-align: center;
  padding: 20px;
}

.mission-map-placeholder strong {
  color: var(--ink);
  font-size: 18px;
}

.mission-map-side {
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px;
  background: #fff;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mission-map-side h3 {
  margin: 0;
}

.mission-map-selected {
  display: grid;
  gap: 8px;
}

.mission-map-selected > div {
  border: 1px solid var(--line);
  border-radius: 13px;
  background: #f8fafc;
  padding: 10px 11px;
}

.mission-map-selected span {
  display: block;
  color: var(--muted);
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  margin-bottom: 5px;
}

.mission-map-selected strong {
  display: block;
  overflow-wrap: anywhere;
  font-size: 13px;
}

.mission-map-actions {
  display: grid;
  gap: 8px;
  margin-top: auto;
}

.small {
  font-size: 12px;
}

.leaflet-container {
  font-family: inherit;
}

@media(max-width: 900px) {
  .mission-map-toolbar,
  .mission-map-picker-layout,
  .mission-map-search-row {
    grid-template-columns: 1fr;
  }

  .mission-map-picker-canvas,
  .mission-map-placeholder {
    min-height: 430px;
  }

  .mission-location-row {
    grid-template-columns: 1fr;
  }

  .mission-location-row .icon-button {
    width: 100%;
  }
}


/* DRONELOG_MISSION_POPUP_LAYOUT */
.mission-page-header {
  display: flex;
  justify-content: space-between;
  align-items: start;
  gap: 16px;
  flex-wrap: wrap;
}

.mission-header-actions {
  display: flex;
  gap: 10px;
  flex-wrap: wrap;
}

.mission-stats-strip {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
  margin: 10px 0 16px;
}

.mission-stat-card {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  padding: 14px 16px;
  box-shadow: 0 10px 24px rgba(15, 23, 42, 0.06);
}

.mission-stat-label {
  display: block;
  color: var(--muted);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  margin-bottom: 8px;
  letter-spacing: .04em;
}

.mission-stat-card strong {
  display: block;
  font-size: 28px;
  line-height: 1;
  margin-bottom: 6px;
}

.mission-stat-card small {
  color: var(--muted);
}

#missionsView {
  position: relative;
}

#missionsView .mission-planning-card {
  display: none;
}

body.mission-editor-open #missionsView .mission-planning-card {
  display: block;
  position: fixed;
  top: 18px;
  right: 18px;
  width: min(720px, calc(100vw - 24px));
  max-height: calc(100vh - 36px);
  overflow: auto;
  z-index: 10001;
  border-radius: 24px;
  box-shadow: 0 24px 80px rgba(0,0,0,.32);
  padding-top: 10px;
}

body.mission-editor-open #missionsView .mission-planning-card .toolbar {
  position: sticky;
  top: -10px;
  background: #fff;
  z-index: 2;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--line);
}

body.mission-editor-open {
  overflow: hidden;
}

.mission-editor-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(5, 10, 18, .52);
  backdrop-filter: blur(2px);
  z-index: 10000;
}

.mission-editor-close {
  margin-left: auto;
  min-width: 42px;
  height: 42px;
  border-radius: 999px;
  display: inline-grid;
  place-items: center;
  font-size: 22px;
  line-height: 1;
}

.mission-clean-form {
  margin-top: 12px;
}

.mission-clean-layout {
  display: grid;
  gap: 16px;
}

.mission-control-row {
  align-items: start;
}

@media (min-width: 1100px) {
  .mission-clean-layout .mission-flow-panel,
  .mission-clean-layout .mission-selected-summary,
  .mission-clean-layout .mission-control-row,
  .mission-clean-layout .mission-planned-card {
    width: 100%;
  }

  .mission-clean-layout .mission-flow-panel,
  .mission-clean-layout .mission-selected-summary {
    margin-bottom: 0;
  }

  .mission-clean-layout .mission-control-row {
    display: grid;
    grid-template-columns: minmax(0, .95fr) minmax(0, 1.2fr);
    gap: 16px;
  }
}

@media (max-width: 920px) {
  .mission-stats-strip {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .mission-page-header,
  .mission-header-actions {
    display: grid;
  }
  .mission-stats-strip {
    grid-template-columns: 1fr;
  }
}


/* DRONELOG_DASHBOARD_CLEANUP */
.dashboard-clean-hidden {
  display: none !important;
}

#dashboardView #missionStatsStrip,
#dashboardView .mission-stats-strip {
  display: none !important;
}

#missionsView #missionStatsStrip {
  display: grid;
}

.dashboard-clean-view .dashboard-field-ready-card {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-left: 5px solid #166534;
}

.dashboard-field-ready-card h3 {
  margin: 0 0 4px;
  font-size: 24px;
}

.dashboard-field-ready-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}

#dashboardView .card {
  box-shadow: 0 8px 24px rgba(15,23,42,.05);
}

@media(max-width: 760px) {
  .dashboard-clean-view .dashboard-field-ready-card {
    display: grid;
  }
  .dashboard-field-ready-actions {
    display: grid;
  }
  .dashboard-field-ready-actions button {
    width: 100%;
  }
}


/* DRONELOG_FLIGHT_CLEANUP */
.flight-clean-view { display: none; gap: 16px; }
.flight-clean-view.active { display: grid !important; }
.flight-page-header,.flight-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;flex-wrap:wrap}
.flight-page-header h1{margin:0 0 4px;font-size:30px;letter-spacing:-.04em}
.flight-header-actions{display:flex;gap:10px;flex-wrap:wrap}
.flight-current-mission-body{display:grid;grid-template-columns:minmax(260px,.9fr) minmax(0,1.5fr);gap:22px;align-items:stretch}
.flight-map-preview{min-height:220px;border-radius:18px;background:radial-gradient(circle at 56% 43%,rgba(177,30,47,.32) 0 18%,transparent 19%),linear-gradient(135deg,#18392f,#5e7a5e 48%,#c2a97d 49%,#2f5a6f);position:relative;overflow:hidden;border:1px solid var(--line)}
.flight-map-pin{position:absolute;left:55%;top:38%;width:18px;height:18px;background:#b11e2f;border:3px solid #fff;border-radius:999px;box-shadow:0 0 0 4px rgba(177,30,47,.22)}
.flight-map-radius{position:absolute;left:39%;top:18%;width:140px;height:140px;border:2px solid #b11e2f;background:rgba(177,30,47,.12);border-radius:999px}
.flight-detail-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 18px}
.flight-detail-grid span,.flight-drone-select-label{color:var(--muted);font-size:12px;font-weight:900}
.flight-detail-grid strong{display:block;margin-top:3px;font-size:15px}
.flight-drone-select-label select{display:block;width:100%;margin:6px 0 3px}
.flight-drone-select-label small{display:block;color:var(--muted);font-weight:500}
.flight-status-tags{display:flex;gap:10px;flex-wrap:wrap;margin-top:18px}
.flight-status-tag{display:inline-flex;align-items:center;justify-content:center;min-height:32px;border-radius:10px;padding:0 12px;font-size:12px;font-weight:900}
.flight-status-tag.ok{background:#dcfce7;color:#166534}.flight-status-tag.warning{background:#fff7d6;color:#92400e}.flight-status-tag.neutral{background:#eef2ff;color:#1e3a8a}
.flight-primary-action-card{text-align:center}.flight-start-button{min-width:min(480px,100%);min-height:64px;border-radius:14px;font-size:22px;font-weight:950;background:linear-gradient(135deg,#b11e2f,#7f1422);color:#fff;border:0}.flight-stop-button{min-width:min(320px,100%);min-height:48px;margin-left:10px}
.flight-main-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(320px,.95fr);gap:16px}
.flight-clean-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.flight-clean-form .full,.flight-clean-form details,.flight-clean-form button{grid-column:1/-1}.flight-clean-form textarea{min-height:82px}
.flight-battery-percent-field{display:none!important}
.flight-mission-select-label{display:grid;gap:6px;color:var(--muted);font-size:12px;font-weight:900}
.flight-mission-select-label small{display:block;color:var(--muted);font-size:10px;font-weight:600;line-height:1.3}
.mission-mobile-select-field{display:none}
.flight-advanced-details{border:1px solid var(--line);border-radius:14px;padding:10px 12px;background:#fff}.flight-advanced-details>summary{cursor:pointer;font-weight:900}
.flight-advanced-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
.flight-forecast-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:12px 0 18px}.flight-forecast-grid>div{border-bottom:1px solid var(--line);padding:10px 0}.flight-forecast-grid span{color:var(--muted);display:block;font-size:12px;font-weight:900}.flight-forecast-grid strong{display:block;margin-top:5px;font-size:18px}
.flight-forecast-summary{border-radius:14px;padding:14px 16px;font-weight:900}.flight-forecast-summary.ok{background:#dcfce7;color:#166534}.flight-forecast-summary.warning{background:#fff7d6;color:#92400e}
.flight-recent-card{grid-column:1/-1}
@media(max-width:1000px){.flight-current-mission-body,.flight-main-grid{grid-template-columns:1fr}}
@media(max-width:680px){.flight-page-header,.flight-header-actions,.flight-card-head,.flight-detail-grid,.flight-clean-form,.flight-advanced-grid,.flight-forecast-grid{display:grid;grid-template-columns:1fr}.flight-start-button,.flight-stop-button,.flight-header-actions button{width:100%;margin-left:0}}

body.role-pilot #missionFlowPanel,
body:not(.role-privileged) #missionFlowPanel,
body.role-pilot .mission-readiness-card,
body.role-pilot #missionCreateButton,
body.role-pilot [data-refresh-module="missions"],
body.role-pilot #missionObstacleRefreshButton,
body.role-pilot .structure-v2-mobile-nav [data-structure-role],
body.role-pilot #structureV2MoreMenu [data-structure-role] {
  display: none !important;
}

@media(max-width: 900px) {
  #flightLogView .flight-secondary-details,
  #flightLogView .flight-recent-card,
  #flightOpenMissionsButton,
  #flightOpenMissionButton,
  #flightLogView .flight-simple-options {
    display: none !important;
  }

  #flightLogView .flight-simple-controls {
    grid-template-columns: 1fr !important;
  }

  #flightLogView .flight-mission-select-label,
  #flightLogView .flight-simple-drone {
    width: 100%;
  }

  .mission-mobile-select-field {
    display: grid;
    gap: 6px;
    margin: 10px 0 12px;
    color: var(--muted);
    font-size: 12px;
    font-weight: 900;
  }

  .mission-mobile-select-field select {
    width: 100%;
  }

  .mission-table-wrap {
    display: none !important;
  }
}


/* DRONELOG_FLIGHT_BOX_ALIGNMENT_FIX */
.flight-current-mission-card,
.flight-primary-action-card,
.flight-data-card,
.flight-forecast-card,
.flight-recent-card {
  align-self: stretch;
}

.flight-current-mission-body > * {
  min-width: 0;
}

.flight-mission-details,
.flight-data-card,
.flight-forecast-card,
.flight-recent-card {
  display: flex;
  flex-direction: column;
}

.flight-detail-grid,
.flight-forecast-grid {
  grid-auto-rows: 1fr;
  align-items: stretch;
}

.flight-main-grid {
  align-items: stretch;
}

.flight-main-grid > .card {
  height: 100%;
}

.flight-info-box {
  background: #faf8f3;
  border: 1px solid var(--line);
  border-radius: 14px;
  padding: 12px 14px;
  min-height: 86px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  box-sizing: border-box;
}

.flight-drone-select-label.flight-info-box {
  padding-top: 10px;
}

.flight-drone-select-label.flight-info-box select {
  margin-top: 8px;
}

.flight-status-tags {
  align-items: stretch;
}

.flight-status-tag {
  min-height: 36px;
}

.flight-primary-action-card {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.flight-primary-action-card .muted {
  margin-top: 10px;
}

.flight-recent-card .table-wrap {
  margin-top: 8px;
}

@media (min-width: 1001px) {
  .flight-current-mission-card,
  .flight-primary-action-card,
  .flight-recent-card {
    width: 100%;
  }
}


/* DRONELOG_FLIGHT_LAYOUT_HARD_FIX
   Fixes old global grid rules that made Flyvning boxes jump into columns. */
#flightLogView.flight-clean-view {
  display: none !important;
}

#flightLogView.flight-clean-view.active,
#flightLogView.active.flight-clean-view {
  display: flex !important;
  flex-direction: column !important;
  gap: 16px !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: none !important;
  grid-auto-flow: row !important;
}

#flightLogView.flight-clean-view > * {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  grid-column: 1 / -1 !important;
  margin-left: 0 !important;
  margin-right: 0 !important;
}

#flightLogView .flight-page-header {
  order: 0 !important;
}

#flightLogView .flight-section-current {
  order: 1 !important;
}

#flightLogView .flight-section-action {
  order: 2 !important;
}

#flightLogView .flight-section-main {
  order: 3 !important;
}

#flightLogView .flight-section-recent {
  order: 4 !important;
}

#flightLogView .flight-current-mission-card {
  display: block !important;
}

#flightLogView .flight-current-mission-body {
  display: grid !important;
  grid-template-columns: minmax(280px, 0.9fr) minmax(0, 1.6fr) !important;
  gap: 18px !important;
  align-items: stretch !important;
  width: 100% !important;
}

#flightLogView .flight-detail-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 12px !important;
  align-items: stretch !important;
}

#flightLogView .flight-main-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.9fr) !important;
  gap: 16px !important;
  align-items: stretch !important;
  width: 100% !important;
}

#flightLogView .flight-main-grid > .card {
  width: 100% !important;
  min-width: 0 !important;
  margin: 0 !important;
}

#flightLogView .flight-primary-action-card {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 120px !important;
  text-align: center !important;
}

#flightLogView .flight-start-button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 10px !important;
  width: min(520px, 100%) !important;
  min-width: 0 !important;
  min-height: 64px !important;
  white-space: normal !important;
  line-height: 1.15 !important;
}

#flightLogView .flight-stop-button.hidden,
#flightLogView .hidden {
  display: none !important;
}

#flightLogView .flight-recent-card .table-wrap {
  max-height: 360px !important;
  overflow: auto !important;
}

#flightLogView .flight-recent-card table {
  width: 100% !important;
}

#flightLogView .flight-recent-card th,
#flightLogView .flight-recent-card td {
  white-space: nowrap;
}

#flightLogView .flight-clean-form {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

#flightLogView .flight-clean-form .full,
#flightLogView .flight-clean-form details,
#flightLogView .flight-clean-form button {
  grid-column: 1 / -1 !important;
}

#flightLogView .flight-forecast-grid {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 10px !important;
}

#flightLogView .flight-info-box {
  min-height: 78px !important;
}

@media (max-width: 1100px) {
  #flightLogView .flight-current-mission-body,
  #flightLogView .flight-main-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 760px) {
  #flightLogView .flight-page-header,
  #flightLogView .flight-header-actions,
  #flightLogView .flight-card-head,
  #flightLogView .flight-detail-grid,
  #flightLogView .flight-clean-form,
  #flightLogView .flight-advanced-grid,
  #flightLogView .flight-forecast-grid {
    display: grid !important;
    grid-template-columns: 1fr !important;
  }

  #flightLogView .flight-header-actions button,
  #flightLogView .flight-start-button,
  #flightLogView .flight-stop-button {
    width: 100% !important;
  }
}


/* DRONELOG_FLIGHT_BUTTONS_VERIFIED */
#flightCompatibilityFields { display: none !important; }
#flightLogView button:disabled { opacity: .55; cursor: not-allowed; }


/* DRONELOG_KP_AUTO_REFRESH_STYLE */
.kp-source-text {
  display: block;
  margin-top: 5px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.3;
  font-weight: 500;
}


/* DRONELOG_FORECAST_POSITION_STYLE */
.forecast-position-status {
  display: inline-flex;
  align-items: center;
  border-radius: 999px;
  min-height: 28px;
  padding: 0 10px;
  margin-top: 7px;
  font-size: 11px;
  font-weight: 800;
}

.forecast-position-status.ok {
  background: #dcfce7;
  color: #166534;
}

.forecast-position-status.warning {
  display: flex;
  border-radius: 12px;
  padding: 9px 11px;
  background: #fff7d6;
  color: #92400e;
}

.forecast-position-status.neutral {
  background: #eef2ff;
  color: #1e3a8a;
}


/* DRONELOG_UNIFIED_DESIGN_SYSTEM */
:root {
  --unified-bg: #f4f1e9;
  --unified-surface: #fffefa;
  --unified-sidebar: #142415;
  --unified-sidebar-2: #0c170e;
  --unified-active: #425b37;
  --unified-red: #b41f2e;
  --unified-red-dark: #8f1421;
  --unified-green: #23823a;
  --unified-line: #ddd8ce;
  --unified-text: #161914;
  --unified-muted: #686b63;
}

html, body { background: var(--unified-bg) !important; color: var(--unified-text) !important; }
body { font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; }

body.structure-v2-active .structure-v2-sidebar {
  width: 232px !important;
  padding: 18px 14px !important;
  background: linear-gradient(180deg, var(--unified-sidebar), var(--unified-sidebar-2)) !important;
  box-shadow: none !important;
  border-right: 1px solid rgba(255,255,255,.06);
}

.unified-brand {
  display: grid !important;
  grid-template-columns: 40px 1fr;
  gap: 10px;
  align-items: center;
  padding: 4px 8px 16px !important;
}
.unified-brand-mark {
  width: 38px;
  height: 46px;
  display: grid;
  place-items: center;
  border: 2px solid rgba(255,255,255,.86);
  border-radius: 8px 8px 15px 15px;
  color: #fff;
  font-size: 28px;
}
.unified-brand strong { display: block; font-size: 18px; letter-spacing: .02em; }
.unified-brand small { display: block; margin-top: 2px; color: rgba(255,255,255,.58); font-size: 9px; letter-spacing: .14em; }

.structure-v2-primary { gap: 5px !important; }
.structure-v2-primary button,
.structure-v2-admin button {
  min-height: 46px !important;
  border-radius: 8px !important;
  padding: 10px 12px !important;
  color: rgba(255,255,255,.88) !important;
}
.structure-v2-primary button.active,
.structure-v2-primary button:hover,
.structure-v2-admin button:hover {
  background: var(--unified-active) !important;
}
.structure-v2-primary button strong { font-size: 13px !important; }
.structure-v2-admin { opacity: .82; }
.structure-v2-user { margin-top: auto; }

@media(min-width: 901px) {
  body.structure-v2-active #appScreen { padding-left: 232px !important; }
  body.structure-v2-active #appScreen > main,
  body.structure-v2-active #appScreen main {
    padding: 26px 28px 46px !important;
    background: var(--unified-bg) !important;
  }
}

main { max-width: none !important; }
.view > header h1,
.dashboard-hero h2 { font-size: 30px !important; letter-spacing: -.045em; }
.eyebrow { color: var(--unified-red) !important; font-weight: 900 !important; letter-spacing: .08em; }
.muted { color: var(--unified-muted) !important; }

.card {
  background: var(--unified-surface) !important;
  border: 1px solid var(--unified-line) !important;
  border-radius: 12px !important;
  box-shadow: 0 4px 14px rgba(27, 31, 24, .035) !important;
  padding: 17px !important;
}

button {
  border-radius: 7px !important;
  background: var(--unified-red) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-weight: 850 !important;
}
button:hover { background: var(--unified-red-dark) !important; }
button.secondary {
  background: #fff !important;
  color: var(--unified-text) !important;
  border: 1px solid #cfc9bd !important;
}
button.ok { background: var(--unified-green) !important; }
.structure-v2-sidebar button { background: transparent !important; }
.structure-v2-sidebar button.active,
.structure-v2-sidebar button:hover { background: var(--unified-active) !important; }

input, select, textarea {
  background: #fff !important;
  border: 1px solid #d6d1c8 !important;
  border-radius: 8px !important;
}

.unified-hidden { display: none !important; }

/* Dashboard */
.unified-dashboard-view .dashboard-shell { display: grid; gap: 16px; }
.unified-dashboard-view .dashboard-hero {
  padding: 0 2px 6px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.unified-dashboard-view .dashboard-hero .eyebrow { display: none; }
.unified-dashboard-view .dashboard-hero-actions { display: none; }
.unified-dashboard-view .dashboard-alert-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
  gap: 14px !important;
}
.unified-overview-card {
  min-height: 146px;
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
}
.unified-overview-card h3,
.unified-overview-card > strong { margin: 8px 0 4px !important; }
.unified-overview-card > strong { font-size: 19px !important; line-height: 1.25; }
.unified-card-label {
  color: var(--unified-muted);
  text-transform: uppercase;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: .08em;
}
.unified-card-icon {
  width: 32px; height: 32px; border-radius: 999px;
  display: grid; place-items: center; margin-top: 8px; font-weight: 950;
}
.unified-card-icon.ok { background: #dff3e3; color: var(--unified-green); }
.unified-progress { height: 4px; background: #e8e5dd; border-radius: 999px; margin-top: auto; overflow: hidden; }
.unified-progress span { display: block; width: 100%; height: 100%; background: var(--unified-green); }
.unified-dashboard-view .dashboard-main-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.45fr) minmax(320px, .85fr) !important;
  gap: 14px !important;
}
.unified-dashboard-recent { grid-column: 1; }
.unified-dashboard-weather { grid-column: 2; }
.unified-dashboard-view .dashboard-forecast-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
.unified-dashboard-view .dashboard-forecast-summary { grid-template-columns: 1fr !important; }
.unified-dashboard-view .mini-stat { background: #faf8f2 !important; border-color: var(--unified-line) !important; }
.unified-dashboard-view table th { background: transparent !important; }

/* Missioner */
.unified-missions-view .mission-page-header { margin-bottom: 2px; }
.unified-missions-view .mission-page-header .eyebrow { display: none; }
.unified-mission-workspace {
  display: grid;
  grid-template-columns: minmax(270px, .8fr) minmax(420px, 1.25fr) minmax(240px, .65fr);
  gap: 14px;
  align-items: start;
}
.unified-mission-column { min-width: 0; display: grid; gap: 14px; }
.unified-mission-list-card,
.unified-mission-detail-card,
.unified-mission-tasks-card { margin: 0 !important; }
.unified-mission-list-card .table-wrap { max-height: 620px; overflow: auto; }
.unified-mission-list-card table { min-width: 620px; }
.unified-mission-detail-card .mission-selected-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
}
.unified-mission-detail-card .mission-selected-grid > div {
  background: #faf8f2 !important;
  border-color: var(--unified-line) !important;
  border-radius: 8px !important;
}
.unified-notam-only-row { display: block !important; }
.unified-notam-only-row > #notamCheckPanel { width: 100%; }
.unified-mission-tasks-card .mission-flow-steps {
  grid-template-columns: 1fr !important;
  gap: 6px !important;
}
.unified-mission-tasks-card .mission-flow-step {
  min-height: 44px;
  grid-template-columns: 28px 1fr !important;
  justify-items: start !important;
  align-items: center;
  text-align: left !important;
  border-radius: 8px !important;
  padding: 8px 10px !important;
}
.unified-mission-tasks-card .mission-flow-step span { width: 24px !important; height: 24px !important; }
.unified-mission-tasks-card .mission-flow-actions { display: grid !important; }
body.mission-editor-open #missionsView .mission-planning-card {
  width: min(620px, calc(100vw - 24px)) !important;
  border-radius: 12px !important;
}

/* Flyvning */
.unified-flight-view .flight-page-header { margin-bottom: 0; }
.unified-flight-view .flight-header-actions #flightOpenMissionsButton { display: inline-flex; }
.unified-flight-mission-summary .flight-current-mission-body {
  display: block !important;
}
.unified-flight-mission-summary .flight-detail-grid {
  grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}
.unified-flight-mission-summary .flight-info-box {
  min-height: 70px !important;
  background: transparent !important;
  border: 0 !important;
  padding: 8px 12px !important;
  border-right: 1px solid var(--unified-line) !important;
  border-radius: 0 !important;
}
.unified-flight-mission-summary .flight-info-box:last-child { border-right: 0 !important; }
.unified-flight-mission-summary .flight-status-tags { margin-top: 8px !important; }
.unified-flight-mission-summary .flight-status-tag { min-height: 27px !important; font-size: 10px !important; }
.unified-flight-operation-grid {
  display: grid;
  grid-template-columns: minmax(220px, .72fr) minmax(300px, 1fr) minmax(280px, .85fr);
  gap: 14px;
  align-items: stretch;
}
.unified-flight-operation-grid > .card { margin: 0 !important; height: 100%; }
.unified-flight-drone-card { display: flex; flex-direction: column; gap: 10px; }
.unified-drone-visual {
  min-height: 98px;
  display: grid;
  place-items: center;
  font-size: 68px;
  color: #243126;
  background: linear-gradient(180deg, #fbfaf6, #f1eee7);
  border-radius: 8px;
}
.unified-flight-drone-card .flight-info-box {
  border: 0 !important; padding: 0 !important; min-height: auto !important; background: transparent !important;
}
.unified-battery { height: 5px; background: #e9e5dc; border-radius: 999px; overflow: hidden; margin-top: auto; }
.unified-battery span { display: block; width: 85%; height: 100%; background: var(--unified-green); }
.unified-flight-operation-grid .flight-primary-action-card {
  display: flex !important;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-height: 250px !important;
}
.unified-flight-operation-grid .flight-start-button { width: 100% !important; min-width: 0 !important; }
.unified-flight-operation-grid .flight-forecast-card .flight-forecast-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  gap: 6px !important;
}
.unified-flight-operation-grid .flight-forecast-card .flight-info-box {
  min-height: 62px !important;
  padding: 8px 10px !important;
  background: #faf8f2 !important;
}
.unified-flight-data-row { display: block !important; }
.unified-flight-data-row > .flight-data-card { width: 100% !important; }
.unified-flight-recent .table-wrap { max-height: 310px !important; overflow: auto !important; }

@media(max-width: 1180px) {
  .unified-dashboard-view .dashboard-alert-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .unified-mission-workspace { grid-template-columns: minmax(250px, .8fr) minmax(0, 1.2fr); }
  .unified-mission-side-column { grid-column: 1 / -1; }
  .unified-flight-operation-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .unified-flight-operation-grid .flight-forecast-card { grid-column: 1 / -1; }
}

@media(max-width: 900px) {
  body.structure-v2-active #appScreen > main,
  body.structure-v2-active #appScreen main { padding: 14px 12px 90px !important; }
  .unified-dashboard-view .dashboard-alert-grid,
  .unified-dashboard-view .dashboard-main-grid,
  .unified-mission-workspace,
  .unified-flight-operation-grid { grid-template-columns: 1fr !important; }
  .unified-dashboard-recent,
  .unified-dashboard-weather { grid-column: 1 !important; }
  .unified-mission-side-column { grid-column: auto; }
  .unified-flight-mission-summary .flight-detail-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .unified-flight-operation-grid .flight-forecast-card { grid-column: auto; }
}

@media(max-width: 560px) {
  .unified-dashboard-view .dashboard-alert-grid,
  .unified-flight-mission-summary .flight-detail-grid,
  .unified-mission-detail-card .mission-selected-grid { grid-template-columns: 1fr !important; }
}


/* DRONELOG_UNIFIED_FLIGHT_ORDER_GUARD */
#flightLogView.unified-flight-view.active {
  display: flex !important;
  flex-direction: column !important;
  gap: 14px !important;
}
#flightLogView.unified-flight-view > .flight-page-header { order: 0 !important; }
#flightLogView.unified-flight-view > .flight-current-mission-card { order: 1 !important; }
#flightLogView.unified-flight-view > .unified-flight-operation-grid { order: 2 !important; }
#flightLogView.unified-flight-view > .flight-main-grid { order: 3 !important; }
#flightLogView.unified-flight-view > .flight-recent-card { order: 4 !important; }
#flightLogView .unified-flight-mission-summary .flight-mission-details { width: 100% !important; }
#flightLogView .unified-flight-mission-summary .flight-detail-grid { width: 100% !important; }


/* DRONELOG_UNIFIED_OPERATION_ORDER_FIX */
#flightLogView .unified-flight-mission-summary .flight-detail-grid {
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
}
#unifiedFlightOperationGrid > #unifiedFlightDroneCard { order: 1 !important; }
#unifiedFlightOperationGrid > .flight-primary-action-card { order: 2 !important; }
#unifiedFlightOperationGrid > .flight-forecast-card { order: 3 !important; }
#unifiedFlightOperationGrid .flight-stop-button span,
#unifiedFlightOperationGrid .flight-stop-button small {
  display: block;
  line-height: 1.2;
}
#unifiedFlightOperationGrid .flight-stop-button small {
  margin-top: 3px;
  font-size: 10px;
  font-weight: 600;
  opacity: .72;
}


/* DRONELOG_GPS_UNIFIED_STYLE */
.forecast-position-details {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
  margin-top: 8px;
  border-radius: 12px;
  padding: 9px 11px;
  font-size: 11px;
  font-weight: 750;
}

.forecast-position-details.ok {
  background: #ecf8ef;
  color: #195c2b;
}

.forecast-position-details.warning {
  background: #fff5d6;
  color: #875a00;
}

.forecast-position-details.neutral {
  background: #f1f3f5;
  color: #59616b;
}

.forecast-position-details .text-button {
  margin-left: auto;
  padding: 0;
  min-height: auto;
  border: 0;
  background: transparent;
  color: inherit;
  text-decoration: underline;
  font-size: 11px;
  box-shadow: none;
}

@media(max-width: 700px) {
  .forecast-position-details {
    display: grid;
    grid-template-columns: 1fr;
  }

  .forecast-position-details .text-button {
    margin-left: 0;
    justify-self: start;
  }
}


/* DRONELOG_SHARED_VALIDATION_STYLE */
.validation-invalid {
  border-color: #b4232f !important;
  box-shadow: 0 0 0 3px rgba(180, 35, 47, .12) !important;
}

.validation-field-error {
  display: block;
  margin-top: 5px;
  font-size: 11px;
  line-height: 1.35;
  font-weight: 700;
}

.validation-field-error.error {
  color: #9f1724;
}

.validation-field-error.warning {
  color: #8a5a00;
}

.message.warning {
  background: #fff7d6;
  color: #7a5100;
  border-color: #e7c761;
}


/* DRONELOG_FLIGHT_CONTROLLER_STYLE */
#startFlightButton[aria-busy="true"],
#flightStartTopButton[aria-busy="true"],
#stopFlightButton[aria-busy="true"] {
  cursor: wait;
  opacity: .72;
}

body.flight-is-active .flight-primary-action-card {
  border-color: #25763b;
  box-shadow: 0 0 0 3px rgba(37, 118, 59, .10);
}


/* DRONELOG_UI_CONTROLLER_STYLE */
button[aria-busy="true"] { cursor: wait; opacity: .72; }


/* DRONELOG_ADHOC_FLIGHT_STYLE */
.flight-adhoc-fields {
  margin-top: 18px;
  padding: 18px;
  border: 1px solid var(--line, #dfe5e2);
  border-radius: 16px;
  background: #f7faf8;
}

.flight-adhoc-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

.flight-adhoc-head h3 {
  margin: 2px 0 0;
}

.flight-adhoc-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto;
  gap: 12px;
  align-items: end;
}

#flightUseAdHocButton.active {
  border-color: #2f7145;
  background: #e9f5ed;
  color: #205a34;
}

#flightAdHocUseGpsButton[aria-busy="true"] {
  cursor: wait;
  opacity: .7;
}

@media (max-width: 820px) {
  .flight-adhoc-grid {
    grid-template-columns: 1fr;
  }

  .flight-adhoc-head {
    display: grid;
  }
}


/* DRONELOG_SIMPLE_FLIGHT_STYLE */
.flight-simple-start-card {
  padding: 24px;
}

.flight-simple-head {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: 18px;
}

.flight-simple-head h2 {
  margin: 2px 0 6px;
}

.flight-simple-badge {
  border-radius: 999px;
  padding: 8px 12px;
  background: #f0f3f1;
  color: #526057;
  font-size: 12px;
  font-weight: 750;
  white-space: nowrap;
}

.flight-simple-badge.ok {
  background: #e8f5ec;
  color: #205f35;
}

.flight-simple-badge.warning {
  background: #fff3d5;
  color: #805400;
}

.flight-simple-controls {
  display: grid;
  grid-template-columns:
    minmax(220px, 1fr)
    minmax(240px, 1.2fr);
  gap: 14px;
  align-items: end;
  margin-top: 22px;
}

.flight-simple-drone {
  margin: 0;
}

.flight-simple-controls .flight-start-button,
.flight-simple-controls .flight-stop-button {
  min-height: 58px;
  margin: 0;
  font-size: 18px;
  font-weight: 800;
}

.flight-simple-options {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 14px;
  color: var(--muted, #66716b);
  font-size: 13px;
}

.flight-simple-options button {
  min-height: 38px;
}

.flight-secondary-details {
  margin-top: 18px;
}

.flight-secondary-details > summary {
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  min-height: 42px;
  padding: 0 14px;
  border: 1px solid var(--line, #dce3df);
  border-radius: 12px;
  background: #fff;
  color: #46534b;
  font-weight: 750;
  user-select: none;
}

.flight-secondary-details[open] > summary {
  margin-bottom: 14px;
}

#saveFlightButton.hidden {
  display: none !important;
}

@media (max-width: 760px) {
  .flight-simple-head,
  .flight-simple-controls {
    display: grid;
    grid-template-columns: 1fr;
  }

  .flight-simple-badge {
    justify-self: start;
  }
}
/* DRONELOG_MISSION_WORKFLOW_V3 */
.unified-mission-workspace.mission-workspace-v3 {
  grid-template-columns: minmax(320px, .82fr) minmax(0, 1.45fr) !important;
  align-items: start;
  max-width: 1500px;
  margin-inline: auto;
}

.mission-workspace-v3 .unified-mission-list-column,
.mission-workspace-v3 .unified-mission-detail-column {
  min-width: 0;
}

.mission-workspace-v3 .unified-mission-detail-column {
  display: grid;
  gap: 16px;
}

.mission-list-heading,
.mission-selected-heading,
.mission-readiness-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.mission-search-field {
  width: min(280px, 100%);
}

.mission-search-field span {
  display: block;
  margin-bottom: 6px;
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.mission-list-filters {
  display: flex;
  align-items: end;
  flex-wrap: wrap;
  gap: 8px;
  margin: 16px 0 12px;
}

.mission-list-filters button.active {
  color: #fff;
  background: var(--hdk-red, #a51f2d);
  border-color: var(--hdk-red, #a51f2d);
}

.mission-date-filter {
  margin-left: auto;
  min-width: 150px;
}

.mission-table-modern td {
  vertical-align: top;
}

.mission-table-modern td strong,
.mission-table-modern td small {
  display: block;
}

.mission-table-modern td small {
  margin-top: 4px;
  color: var(--muted);
}

.mission-table-modern tr.mission-row-selected td {
  background: rgba(165, 31, 45, .08);
  border-color: rgba(165, 31, 45, .3);
}

.mission-selected-summary {
  display: grid;
  gap: 18px;
}

.mission-selected-empty {
  padding: 28px;
  border: 1px dashed var(--line);
  border-radius: 14px;
  text-align: center;
  color: var(--muted);
  background: #f8f8f6;
}

.mission-selected-empty p {
  margin-bottom: 0;
}

.mission-selected-primary {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.mission-selected-primary > div {
  padding: 12px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fafaf8;
}

.mission-selected-primary span {
  display: block;
  margin-bottom: 4px;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.mission-readiness-card {
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}

.mission-readiness-heading h3,
.mission-readiness-heading p {
  margin: 0;
}

.mission-readiness-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
  margin-top: 14px;
}

.mission-readiness-item {
  display: flex;
  align-items: center;
  gap: 9px;
  min-height: 42px;
  padding: 9px 11px;
  border-radius: 10px;
  border: 1px solid var(--line);
}

.mission-readiness-item span {
  display: grid;
  place-items: center;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  font-weight: 900;
}

.mission-readiness-item.ok span {
  color: #fff;
  background: #287a48;
}

.mission-readiness-item.warning span {
  color: #6b4f00;
  background: #f2d27a;
}

.mission-context-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 10px;
}

.mission-context-actions #missionOpenFlightButton {
  margin-left: auto;
}

.mission-context-actions button:disabled,
.mission-flow-actions button:disabled {
  opacity: .45;
  cursor: not-allowed;
}

.mission-risk-snapshot-panel {
  display: grid;
  gap: 12px;
  padding: 14px;
  border: 1px solid #d8d3c6;
  border-radius: 14px;
  background: #fff;
}

.mission-risk-snapshot-heading {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.mission-risk-snapshot-heading h3,
.mission-risk-snapshot-heading p {
  margin: 0;
}

.mission-risk-snapshot-heading p {
  margin-top: 3px;
}

.mission-risk-snapshot-badge {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 10px;
  border: 1px solid #d6d2c8;
  border-radius: 999px;
  background: #f4f3ef;
  color: #5f5d57;
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
  text-transform: uppercase;
  letter-spacing: .03em;
}

.mission-risk-snapshot-badge.low {
  border-color: #a7cdb2;
  background: #edf8f0;
  color: #2d6840;
}

.mission-risk-snapshot-badge.medium {
  border-color: #e0bd58;
  background: #fff7df;
  color: #765000;
}

.mission-risk-snapshot-badge.high {
  border-color: #e18787;
  background: #fff0f0;
  color: #951c2e;
}

.mission-risk-snapshot-summary {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.mission-risk-snapshot-card {
  display: grid;
  gap: 4px;
  min-height: 82px;
  padding: 11px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #fafaf8;
}

.mission-risk-snapshot-card span {
  color: var(--muted);
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.mission-risk-snapshot-card strong {
  font-size: 15px;
}

.mission-risk-snapshot-card small {
  color: var(--muted);
  line-height: 1.35;
}

body.role-pilot .mission-risk-snapshot-panel {
  display: none !important;
}

.mission-flow-panel {
  order: 2;
}

.mission-flow-steps {
  grid-template-columns: repeat(6, minmax(90px, 1fr)) !important;
  overflow-x: auto;
}

.mission-flow-actions {
  display: flex;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: 8px;
}

.mission-context-panel {
  display: block;
  order: 3;
}

.mission-context-panel.hidden {
  display: none !important;
}

.mission-notam-header-actions {
  display: flex;
  align-items: center;
  gap: 8px;
}

.mission-progressive-form {
  display: block !important;
}

.mission-form-section {
  display: block;
  margin: 0 0 14px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fff;
}

.mission-form-section summary {
  display: flex;
  align-items: center;
  gap: 12px;
  cursor: pointer;
  list-style: none;
}

.mission-form-section summary::-webkit-details-marker {
  display: none;
}

.mission-form-section summary > span,
.mission-form-section-heading > span {
  display: grid;
  place-items: center;
  flex: 0 0 30px;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  color: #fff;
  background: var(--hdk-red, #a51f2d);
  font-weight: 900;
}

.mission-form-section summary strong,
.mission-form-section summary small {
  display: block;
}

.mission-form-section summary small,
.mission-form-section-heading p {
  color: var(--muted);
  margin: 2px 0 0;
}

.mission-form-section-heading {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 14px;
}

.mission-form-section-heading h3 {
  margin: 0;
}

.mission-form-fields {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.mission-details-fields {
  margin-top: 16px;
}

.mission-field-wide {
  grid-column: 1 / -1;
}

.mission-clean-form select[multiple] {
  min-height: 112px;
  padding: 8px;
}

.mission-team-hidden-select {
  position: absolute !important;
  width: 1px !important;
  min-height: 1px !important;
  height: 1px !important;
  opacity: 0 !important;
  pointer-events: none !important;
}

.mission-team-choice-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.mission-team-choice {
  display: grid !important;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 6px 8px;
  min-height: 48px;
  border: 1px solid #d8dee7;
  border-radius: 14px;
  background: #fff;
  padding: 9px 10px;
  cursor: pointer;
}

.mission-team-choice input {
  width: 18px;
  min-height: 18px;
}

.mission-team-choice strong {
  font-size: 13px;
  line-height: 1.2;
}

.mission-team-choice span {
  grid-column: 2;
  color: var(--muted);
  font-size: 11px;
  font-weight: 800;
}

.mission-team-choice:has(input:checked) {
  border-color: #0f766e;
  background: #ecfdf5;
}

.mission-team-empty {
  border: 1px dashed #cbd5e1;
  border-radius: 14px;
  color: var(--muted);
  padding: 12px;
}

.mission-clean-form select[multiple] option {
  border-radius: 8px;
  padding: 7px 9px;
}

.mission-clean-form label small {
  display: block;
  margin-top: 5px;
}

.mission-form-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 16px;
}

@media (max-width: 1050px) {
  .unified-mission-workspace.mission-workspace-v3 {
    grid-template-columns: 1fr !important;
  }

  .mission-planned-card {
    position: static !important;
  }
}

@media (max-width: 700px) {
  .mission-list-heading,
  .mission-selected-heading,
  .mission-readiness-heading {
    display: grid;
  }

  .mission-search-field,
  .mission-date-filter {
    width: 100%;
    margin-left: 0;
  }

  .mission-selected-primary,
  .mission-readiness-list,
  .mission-form-fields {
    grid-template-columns: 1fr;
  }

  .mission-team-choice-grid {
    grid-template-columns: 1fr;
  }

  .mission-context-actions,
  .mission-form-actions,
  .mission-flow-actions {
    display: grid;
  }

  .mission-context-actions #missionOpenFlightButton {
    margin-left: 0;
  }
}

/* DRONELOG_FLIGHT_COCKPIT_V4 */
#flightLogView .flight-cockpit-shell {
  overflow: hidden;
  padding: 0;
  border: 1px solid #d8e0e7;
  background: #fff;
}

.flight-progress {
  display: grid;
  grid-template-columns: auto minmax(60px, 1fr) auto minmax(60px, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 18px 28px;
  border-bottom: 1px solid #e4e9ed;
  background: #f8fafb;
}

.flight-progress-step {
  display: flex;
  align-items: center;
  gap: 8px;
  color: #77828c;
}

.flight-progress-step span {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border: 2px solid #cbd4dc;
  border-radius: 50%;
  background: #fff;
  font-size: 13px;
  font-weight: 850;
}

.flight-progress-step strong {
  font-size: 13px;
}

.flight-progress-step.active {
  color: #075ea8;
}

.flight-progress-step.active span {
  border-color: #0877c9;
  background: #0877c9;
  color: #fff;
}

.flight-progress-step.done {
  color: #267343;
}

.flight-progress-step.done span {
  border-color: #2f8b50;
  background: #e9f7ee;
  color: #267343;
}

.flight-progress-line {
  height: 2px;
  background: #d5dde3;
}

.flight-progress-line.done {
  background: #3e9b60;
}

.flight-preflight-panel {
  padding: 24px;
}

.flight-readiness-strip {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 20px;
}

.flight-readiness-strip span {
  padding: 7px 10px;
  border-radius: 999px;
  background: #eef2f4;
  color: #53616b;
  font-size: 12px;
  font-weight: 750;
}

.flight-readiness-strip span.ok {
  background: #e7f5eb;
  color: #22663a;
}

.flight-readiness-strip span.warning {
  background: #fff1cf;
  color: #7a5100;
}

.flight-active-panel {
  margin: 18px;
  padding: 24px;
  border-radius: 18px;
  background:
    radial-gradient(circle at 100% 0, rgba(24, 126, 188, .18), transparent 34%),
    linear-gradient(145deg, #071f36, #0b2a46);
  color: #fff;
  box-shadow: 0 18px 44px rgba(4, 30, 52, .22);
}

.flight-active-heading {
  display: grid;
  justify-items: center;
  gap: 5px;
  padding: 4px 0 22px;
  text-align: center;
}

.flight-live-status {
  color: #45db75;
  font-weight: 850;
}

.flight-live-status i {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin-right: 7px;
  border-radius: 50%;
  background: currentColor;
  box-shadow: 0 0 0 5px rgba(69, 219, 117, .12);
}

.flight-live-timer {
  font-size: clamp(46px, 8vw, 88px);
  line-height: 1;
  letter-spacing: .04em;
  font-variant-numeric: tabular-nums;
}

.flight-active-heading small {
  color: #abc0d0;
}

.flight-live-facts {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  border-top: 1px solid rgba(255, 255, 255, .14);
  border-bottom: 1px solid rgba(255, 255, 255, .14);
}

.flight-live-facts > div {
  min-width: 0;
  padding: 16px;
  border-right: 1px solid rgba(255, 255, 255, .12);
}

.flight-live-facts > div:last-child {
  border-right: 0;
}

.flight-live-facts span,
.flight-live-facts strong {
  display: block;
}

.flight-live-facts span {
  margin-bottom: 4px;
  color: #94aec2;
  font-size: 11px;
  text-transform: uppercase;
  letter-spacing: .07em;
}

.flight-live-facts strong {
  overflow: hidden;
  font-size: 13px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.flight-battery-panel {
  display: grid;
  grid-template-columns: minmax(260px, 1.5fr) minmax(110px, .4fr) minmax(150px, .6fr);
  gap: 12px;
  margin-top: 20px;
}

.flight-battery-swap-button {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 82px;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(135deg, #ffbd35, #e99612);
  color: #2f260f;
  box-shadow: 0 8px 22px rgba(233, 150, 18, .24);
  font-size: 20px;
}

.flight-battery-swap-button span {
  font-size: 28px;
}

.flight-battery-count {
  display: grid;
  place-items: center;
  align-content: center;
  border: 1px solid rgba(255, 255, 255, .18);
  border-radius: 14px;
  background: rgba(255, 255, 255, .06);
}

.flight-battery-count strong {
  font-size: 36px;
  line-height: 1;
}

.flight-battery-count span {
  color: #b9cad7;
  font-size: 12px;
}

#undoBatterySwapButton {
  border-color: rgba(255, 255, 255, .22);
  background: rgba(255, 255, 255, .06);
  color: #fff;
}

#undoBatterySwapButton:disabled {
  opacity: .45;
}

.flight-battery-timeline {
  min-height: 22px;
  padding: 8px 2px 0;
  color: #b8cad7;
  font-size: 12px;
}

.flight-quick-note {
  margin-top: 14px;
  color: #c3d3df;
  font-size: 12px;
}

.flight-quick-note input {
  margin-top: 6px;
  border-color: rgba(255, 255, 255, .2);
  background: rgba(255, 255, 255, .07);
  color: #fff;
}

.flight-quick-note input::placeholder {
  color: #8da6b8;
}

#flightActivePanel .flight-stop-button {
  width: 100%;
  min-height: 66px;
  margin: 16px 0 0;
  border: 0;
  border-radius: 14px;
  background: linear-gradient(135deg, #dc3545, #b71f2e);
  color: #fff;
  font-size: 20px;
  font-weight: 850;
}

body.flight-is-active #flightLogView .flight-secondary-details,
body.flight-is-active #flightLogView .flight-recent-card {
  display: none;
}

#flightLogView .flight-cockpit-shell > #flightMessage {
  margin: 0 24px 20px;
}

@media (max-width: 920px) {
  .flight-live-facts {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .flight-live-facts > div {
    border-bottom: 1px solid rgba(255, 255, 255, .12);
  }

  .flight-battery-panel {
    grid-template-columns: 1fr 150px;
  }

#undoBatterySwapButton {
    grid-column: 1 / -1;
  }
}


/* DRONELOG_DESKTOP_MOBILE_PARITY */
#flightLogView .flight-secondary-details,
#flightLogView .flight-recent-card,
#flightOpenMissionsButton,
#flightOpenMissionButton,
#flightLogView .flight-simple-options {
  display: none !important;
}

#flightLogView .flight-simple-start-card {
  max-width: 920px;
  margin-inline: auto;
}

#flightLogView .flight-simple-controls {
  grid-template-columns: 1fr !important;
  max-width: 720px;
  margin-inline: auto;
}

#flightLogView .flight-mission-select-label,
#flightLogView .flight-simple-drone,
#flightLogView .flight-start-button {
  width: 100%;
}

#flightLogView .flight-start-button {
  margin-left: 0;
}

.mission-mobile-select-field {
  display: grid;
  gap: 6px;
  margin: 10px 0 12px;
  color: var(--muted);
  font-size: 12px;
  font-weight: 900;
}

.mission-mobile-select-field select {
  width: 100%;
}

.mission-list-filters,
.mission-search-field,
.mission-table-wrap {
  display: none !important;
}

.mission-planned-card {
  display: grid;
  gap: 10px;
}

.mission-planned-card .mission-list-heading {
  margin-bottom: 0;
}

.mission-planned-card #missionDaySummary {
  margin-top: -2px;
}

@media (max-width: 640px) {
  .flight-progress {
    gap: 6px;
    padding: 14px;
  }

  .flight-progress-step {
    display: grid;
    justify-items: center;
    gap: 4px;
  }

  .flight-progress-step strong {
    font-size: 10px;
  }

  .flight-preflight-panel,
  .flight-active-panel {
    padding: 18px;
  }

  .flight-active-panel {
    margin: 10px;
  }

  .flight-live-facts,
  .flight-battery-panel {
    grid-template-columns: 1fr;
  }

  .flight-live-facts > div {
    border-right: 0;
  }

  #undoBatterySwapButton {
    grid-column: auto;
  }
}

/* DRONELOG_LAYOUT_RECOVERY_V5
   Missioner og kortvælger skal bruge den tilgængelige skærm ved alle zoomniveauer. */
#missionsView.unified-missions-view.active {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  gap: 16px !important;
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: none !important;
}

#missionsView.unified-missions-view.active > .mission-page-header,
#missionsView.unified-missions-view.active > .unified-mission-workspace {
  width: 100% !important;
  max-width: none !important;
  min-width: 0 !important;
  margin-inline: 0 !important;
}

.unified-mission-workspace.mission-workspace-v3 {
  width: 100% !important;
  max-width: none !important;
}

/* NOTAM vises inline under "Valgt mission" i stedet for som popup. */
#missionsView .selected-mission-notam-slot {
  display: grid;
  gap: 12px;
  margin-top: 14px;
}

#missionsView .selected-mission-notam-slot:empty,
#missionsView .selected-mission-notam-slot:has(.mission-context-panel.hidden) {
  display: none;
  margin-top: 0;
}

#missionsView .mission-context-panel:not(.hidden) {
  position: static !important;
  inset: auto !important;
  z-index: auto !important;
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  background: transparent !important;
  backdrop-filter: none !important;
}

#missionsView .mission-context-panel:not(.hidden) > #notamCheckPanel {
  width: 100% !important;
  max-width: none !important;
  max-height: none !important;
  height: auto !important;
  margin: 0 !important;
  overflow: visible !important;
  border-left-width: 5px !important;
  box-shadow: 0 8px 24px rgba(15, 23, 42, .05) !important;
}

/* Kortvælgeren skal fylde skærmen og må ikke ende som en smal stribe. */
#missionMapPickerModal.mission-map-picker {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10030 !important;
  display: grid !important;
  place-items: center !important;
  width: 100vw !important;
  height: 100vh !important;
  padding: clamp(10px, 2vw, 24px) !important;
  overflow: hidden !important;
  background: rgba(13, 19, 27, .62) !important;
  backdrop-filter: blur(3px);
}

#missionMapPickerModal.mission-map-picker.hidden {
  display: none !important;
}

#missionMapPickerModal .mission-map-picker-card {
  width: calc(100vw - clamp(20px, 4vw, 48px)) !important;
  max-width: none !important;
  height: calc(100vh - clamp(20px, 4vw, 48px)) !important;
  max-height: none !important;
  margin: 0 !important;
  padding: clamp(14px, 2vw, 22px) !important;
  overflow: hidden !important;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 20px;
  background: #f7f5ef;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .38);
}

#missionMapPickerModal .mission-map-picker-layout {
  min-height: 0;
}

#missionMapPickerModal .modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
}

#missionMapPickerModal .modal-head .icon-only {
  flex: 0 0 auto;
}

#missionMapPickerModal .mission-map-picker-canvas,
#missionMapPickerModal .mission-map-placeholder {
  min-height: clamp(360px, 58vh, 680px) !important;
}

body:has(#missionMapPickerModal:not(.hidden)) {
  overflow: hidden;
}

@media (min-width: 901px) {
  #missionMapPickerModal .mission-map-picker-card {
    display: grid;
    grid-template-rows: auto auto minmax(0, 1fr);
    gap: 12px;
  }

  #missionMapPickerModal .mission-map-toolbar {
    margin-bottom: 0;
  }

  #missionMapPickerModal .mission-map-picker-layout,
  #missionMapPickerModal .mission-map-picker-canvas {
    height: 100%;
  }

  #missionMapPickerModal .mission-map-picker-canvas,
  #missionMapPickerModal .mission-map-placeholder {
    min-height: 0 !important;
  }

  #missionMapPickerModal .mission-map-side {
    min-height: 0;
    overflow: auto;
  }
}

@media (max-width: 900px) {
  #missionMapPickerModal .mission-map-picker-card {
    height: calc(100vh - 20px) !important;
    overflow: auto !important;
  }

  #missionMapPickerModal .mission-map-picker-canvas,
  #missionMapPickerModal .mission-map-placeholder {
    min-height: clamp(300px, 48vh, 520px) !important;
  }
}


/* Mission obstacle decision support */
.mission-obstacle-panel {
  display: grid;
  gap: 10px;
  margin-top: 14px;
  padding: 14px;
  border: 1px solid var(--line);
  border-radius: 14px;
  background: #fffdf8;
}

.mission-obstacle-heading,
.mission-obstacle-heading-actions {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.mission-obstacle-heading {
  align-items: flex-start;
}

.mission-obstacle-heading h3,
.mission-obstacle-heading p {
  margin: 0;
}

.mission-obstacle-heading p {
  margin-top: 3px;
}

.mission-obstacle-heading-actions {
  flex: 0 0 auto;
}

.mission-obstacle-heading-actions button {
  width: auto !important;
  min-height: 34px;
  padding: 6px 10px;
}

.mission-obstacle-status {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 9px;
  border: 1px solid #d6d2c8;
  border-radius: 999px;
  background: #f4f3ef;
  color: #5f5d57;
  font-size: 10px;
  font-weight: 900;
  white-space: nowrap;
}

.mission-obstacle-status.loading {
  border-color: #a9c8df;
  background: #edf6fc;
  color: #245f91;
}

.mission-obstacle-status.ok {
  border-color: #a7cdb2;
  background: #edf8f0;
  color: #2d6840;
}

.mission-obstacle-status.warning {
  border-color: #e0bd58;
  background: #fff7df;
  color: #765000;
}

.mission-obstacle-list {
  display: grid;
  gap: 8px;
}

.mission-map-preview {
  display: grid;
  gap: 10px;
}

.mission-map-preview-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
  padding: 14px;
  border: 1px solid #d8d3c6;
  border-radius: 12px;
  background:
    radial-gradient(circle at 18% 20%, rgba(180, 17, 42, .11), transparent 28%),
    linear-gradient(135deg, #fffdf7 0%, #f4efe4 100%);
}

.mission-map-preview-icon {
  display: grid;
  width: 46px;
  height: 46px;
  place-items: center;
  border-radius: 13px;
  background: #b4112a;
  color: #fff;
  font-size: 10px;
  font-weight: 950;
  letter-spacing: .04em;
  box-shadow: 0 8px 18px rgba(180, 17, 42, .18);
}

.mission-map-preview-copy {
  min-width: 0;
}

.mission-map-preview-copy strong,
.mission-map-preview-copy small,
.mission-map-preview-fact small,
.mission-map-preview-fact strong,
.mission-map-preview-badge strong,
.mission-map-preview-badge small {
  display: block;
}

.mission-map-preview-copy strong {
  font-size: 14px;
}

.mission-map-preview-copy small {
  margin-top: 4px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.4;
}

.mission-map-preview-facts {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 7px;
}

.mission-map-preview-fact {
  min-width: 72px;
  padding: 8px 10px;
  border: 1px solid rgba(30, 27, 23, .1);
  border-radius: 10px;
  background: rgba(255, 255, 255, .82);
  text-align: right;
}

.mission-map-preview-fact small {
  color: var(--muted);
  font-size: 8px;
  font-weight: 850;
  text-transform: uppercase;
}

.mission-map-preview-fact strong {
  margin-top: 2px;
  color: var(--text);
  font-size: 13px;
}

.mission-map-preview-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.mission-inline-map {
  position: relative;
  z-index: 0;
  isolation: isolate;
  overflow: hidden;
  min-height: clamp(220px, 34vh, 360px);
  border: 1px solid #d8d3c6;
  border-radius: 13px;
  background: #e8ece8;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .45);
}

.mission-inline-map .leaflet-container {
  position: relative;
  z-index: 0;
  border-radius: 13px;
}

.mission-inline-map-placeholder {
  display: grid;
  min-height: clamp(220px, 34vh, 360px);
  place-items: center;
  align-content: center;
  gap: 4px;
  padding: 18px;
  background:
    linear-gradient(135deg, rgba(36, 95, 145, .09), transparent 35%),
    linear-gradient(45deg, rgba(255, 255, 255, .55) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, .55) 50%, rgba(255, 255, 255, .55) 75%, transparent 75%, transparent);
  background-size: auto, 34px 34px;
  color: var(--muted);
  text-align: center;
  font-size: 11px;
}

.mission-inline-map-placeholder strong,
.mission-inline-map-placeholder span {
  display: block;
}

.mission-inline-map-placeholder strong {
  color: var(--text);
  font-size: 13px;
}

.mission-map-preview-badge {
  display: inline-grid;
  grid-template-columns: auto auto;
  column-gap: 7px;
  row-gap: 1px;
  align-items: center;
  min-height: 38px;
  padding: 7px 9px;
  border: 1px solid #d8d3c6;
  border-radius: 999px;
  background: #fff;
}

.mission-map-preview-badge > span {
  grid-row: span 2;
  display: grid;
  width: 24px;
  height: 24px;
  place-items: center;
  border-radius: 999px;
  background: #eee7d7;
  color: #5f5538;
  font-size: 8px;
  font-weight: 950;
}

.mission-map-preview-badge strong {
  color: var(--text);
  font-size: 10px;
  line-height: 1.1;
}

.mission-map-preview-badge small {
  color: var(--muted);
  font-size: 8px;
  font-weight: 850;
}

.mission-map-preview-badge.high {
  border-color: #d97a7a;
  background: #fff3f3;
}

.mission-map-preview-badge.high > span {
  background: #f3d6d6;
  color: #8b2929;
}

.mission-map-preview-badge.medium {
  border-color: #e0bd58;
  background: #fff8e4;
}

.mission-map-preview-badge.medium > span {
  background: #f5e5b3;
  color: #765000;
}

.mission-map-preview-badge.low {
  border-color: #a7cdb2;
  background: #f1f8f3;
}

.mission-map-preview-badge.low > span {
  background: #dcefe1;
  color: #2d6840;
}

.mission-map-preview-badge.neutral > span {
  background: #303a49;
  color: #fff;
}

.mission-obstacle-item {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  align-items: center;
  gap: 11px;
  min-width: 0;
  padding: 11px 12px;
  border: 1px solid #d9d5cb;
  border-radius: 11px;
  background: #faf9f6;
}

.mission-obstacle-item.medium {
  border-color: #e0bd58;
  background: #fff8e4;
}

.mission-obstacle-item.high {
  border-color: #d97a7a;
  background: #fff0f0;
}

.mission-obstacle-item.low {
  border-color: #a7cdb2;
  background: #f1f8f3;
}

.mission-obstacle-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 9px;
  background: #ebe4c8;
  color: #5d511f;
  font-size: 10px;
  font-weight: 900;
}

.mission-obstacle-item.low .mission-obstacle-icon {
  background: #dcefe1;
  color: #2d6840;
}

.mission-obstacle-item.high .mission-obstacle-icon {
  background: #f3d6d6;
  color: #8b2929;
}

.mission-obstacle-copy {
  min-width: 0;
}

.mission-obstacle-copy strong,
.mission-obstacle-copy small,
.mission-obstacle-distance strong,
.mission-obstacle-distance span {
  display: block;
}

.mission-obstacle-copy strong {
  font-size: 13px;
}

.mission-obstacle-copy small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.mission-obstacle-source {
  display: inline-flex;
  margin-left: 5px;
  padding: 2px 6px;
  border: 1px solid rgba(83, 74, 39, .25);
  border-radius: 999px;
  background: rgba(255, 255, 255, .7);
  color: #62582e;
  font-size: 8px;
  font-weight: 900;
  vertical-align: 1px;
}

.mission-obstacle-distance {
  min-width: 62px;
  text-align: right;
}

.mission-obstacle-distance strong {
  color: #765000;
  font-size: 17px;
}

.mission-obstacle-distance span {
  margin-top: 2px;
  color: #765000;
  font-size: 8px;
  font-weight: 900;
  text-transform: uppercase;
}

.mission-obstacle-item.low .mission-obstacle-distance strong,
.mission-obstacle-item.low .mission-obstacle-distance span {
  color: #2d6840;
}

.mission-obstacle-item.high .mission-obstacle-distance strong,
.mission-obstacle-item.high .mission-obstacle-distance span {
  color: #8b2929;
}

.mission-obstacle-map-button {
  width: auto !important;
  min-height: 34px;
  padding: 7px 10px;
  font-size: 10px;
  white-space: nowrap;
}

.mission-obstacle-empty,
.mission-obstacle-map-error {
  display: grid;
  place-items: center;
  min-height: 76px;
  padding: 14px;
  border: 1px dashed #d5d1c7;
  border-radius: 10px;
  background: #faf9f6;
  color: var(--muted);
  text-align: center;
  font-size: 11px;
}

.mission-obstacle-map-error {
  min-height: 100%;
  align-content: center;
  gap: 5px;
}

.mission-obstacle-note,
.mission-obstacle-map-note {
  margin: 0 !important;
  font-size: 10px;
  line-height: 1.45;
}

.mission-airspace-summary {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto auto;
  gap: 12px;
  align-items: center;
  padding: 13px 14px;
  border: 1px solid #d8c17a;
  border-radius: 10px;
  background: #fff9e9;
}

.mission-airspace-summary.ok {
  border-color: #a7cdb2;
  background: #f1f8f3;
}

.mission-airspace-summary.danger {
  border-color: #d9a1a1;
  background: #fff0f0;
}

.mission-airspace-icon {
  display: grid;
  width: 34px;
  height: 34px;
  place-items: center;
  border-radius: 9px;
  background: #303a49;
  color: #fff;
  font-size: 9px;
  font-weight: 900;
  letter-spacing: .04em;
}

.mission-airspace-copy {
  min-width: 0;
}

.mission-airspace-copy strong,
.mission-airspace-copy small {
  display: block;
}

.mission-airspace-copy strong {
  font-size: 13px;
}

.mission-airspace-copy small {
  margin-top: 3px;
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.mission-airspace-status {
  padding: 5px 8px;
  border: 1px solid #d7c172;
  border-radius: 999px;
  background: #fff;
  color: #765000;
  font-size: 9px;
  font-weight: 900;
  white-space: nowrap;
}

.mission-airspace-status.ok {
  border-color: #9fc8aa;
  color: #2d6840;
}

.mission-airspace-status.danger {
  border-color: #d8a0a0;
  color: #8b2929;
}

#missionOverviewMapButton {
  width: auto !important;
  min-height: 40px;
  padding: 8px 14px;
  border-color: #b4112a;
  background: #b4112a;
  color: #fff;
  font-size: 11px;
  font-weight: 900;
  white-space: nowrap;
}

#missionOverviewMapButton:disabled {
  border-color: #d9a0aa;
  background: #d9a0aa;
  color: #fff;
  cursor: not-allowed;
}

.mission-airspace-links {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 14px;
  padding: 0 2px;
  font-size: 10px;
}

.mission-airspace-links a {
  color: #315f85;
  font-weight: 750;
  text-decoration: underline;
  text-underline-offset: 2px;
}

.mission-map-controls {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
  margin-top: 12px;
}

.mission-map-controls label {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 999px;
  background: #faf9f6;
  font-size: 10px;
  font-weight: 800;
  cursor: pointer;
}

.mission-map-controls input {
  width: 15px;
  height: 15px;
  margin: 0;
}

.mission-map-obstacle-icon {
  display: grid;
  width: 30px;
  height: 30px;
  place-items: center;
  border: 2px solid #fff;
  border-radius: 50%;
  color: #fff;
  box-shadow: 0 2px 7px rgba(22, 29, 34, .32);
  font-size: 9px;
  font-weight: 900;
}

.mission-map-powerline-icon {
  border-radius: 7px;
  background-image: linear-gradient(135deg, rgba(255,255,255,.22) 0 48%, transparent 49%);
}

.mission-map-obstacle-shell {
  border: 0;
  background: transparent;
}

.mission-obstacle-map-canvas .mission-map-powerline-trace,
.mission-inline-map .mission-map-powerline-trace {
  filter: drop-shadow(0 2px 2px rgba(255, 255, 255, .78));
}

.mission-obstacle-map-canvas .leaflet-tooltip,
.mission-inline-map .leaflet-tooltip {
  padding: 7px 9px;
  border: 0;
  border-radius: 6px;
  background: #222a34;
  color: #fff;
  box-shadow: 0 4px 12px rgba(20, 27, 33, .28);
  font-size: 10px;
  font-weight: 750;
}

.mission-obstacle-map-canvas .leaflet-tooltip::before,
.mission-inline-map .leaflet-tooltip::before {
  border-top-color: #222a34;
}

#missionObstacleMapModal.hidden {
  display: none !important;
}

#missionObstacleMapModal.mission-obstacle-map-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 10040 !important;
  display: grid !important;
  place-items: center !important;
  width: 100vw !important;
  height: 100vh !important;
  padding: clamp(10px, 2vw, 24px) !important;
  overflow: hidden !important;
  background: rgba(13, 19, 27, .66) !important;
  backdrop-filter: blur(3px);
}

#missionObstacleMapModal.mission-obstacle-map-modal.hidden {
  display: none !important;
}

#missionObstacleMapModal .mission-obstacle-map-card {
  display: grid;
  grid-template-rows: auto auto minmax(0, 1fr) auto;
  gap: 12px;
  width: min(1100px, calc(100vw - 28px)) !important;
  max-width: none !important;
  height: min(760px, calc(100vh - 28px)) !important;
  max-height: none !important;
  margin: 0 !important;
  padding: clamp(14px, 2vw, 20px) !important;
  overflow: hidden !important;
  border: 1px solid rgba(255, 255, 255, .5);
  border-radius: 20px;
  background: #f7f5ef;
  box-shadow: 0 28px 90px rgba(0, 0, 0, .38);
}

#missionObstacleMapModal .modal-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 14px;
}

#missionObstacleMapModal .modal-head h2,
#missionObstacleMapModal .modal-head p {
  margin: 0;
}

#missionObstacleMapModal .modal-head p {
  margin-top: 3px;
}

#missionObstacleMapModal .modal-head button {
  width: 36px !important;
  min-height: 36px;
  flex: 0 0 auto;
}

.mission-obstacle-map-canvas {
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: 100%;
  margin-top: 0;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: #eef2ed;
}

.mission-obstacle-map-note {
  margin: 0 !important;
}

body:has(#missionObstacleMapModal:not(.hidden)) {
  overflow: hidden;
}

@media (max-width: 700px) {
  .mission-obstacle-heading {
    display: grid;
  }

  .mission-obstacle-heading-actions {
    justify-content: space-between;
  }

  .mission-obstacle-item {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  .mission-map-preview-main {
    grid-template-columns: auto minmax(0, 1fr);
  }

  .mission-map-preview-facts {
    grid-column: 1 / -1;
    justify-content: stretch;
  }

  .mission-map-preview-fact {
    flex: 1 1 88px;
    text-align: left;
  }

  .mission-obstacle-map-button {
    grid-column: 2 / -1;
    justify-self: start;
  }

  .mission-airspace-summary {
    grid-template-columns: auto minmax(0, 1fr) auto;
  }

  #missionOverviewMapButton {
    grid-column: 1 / -1;
    justify-self: stretch;
    width: 100% !important;
  }

  #missionObstacleMapModal .mission-obstacle-map-card {
    width: calc(100vw - 20px) !important;
    height: calc(100vh - 20px) !important;
    padding: 12px !important;
  }

  .mission-obstacle-map-canvas {
    min-height: 280px;
  }
}


/* DRONELOG_ROLE_SIDEBAR_HARD_HIDE
   Stronger than sidebar button display rules. */
body:not(.role-privileged) .structure-v2-sidebar [data-structure-role]:not([data-structure-role="all"]),
body:not(.role-privileged) [data-role="privileged"],
body:not(.role-privileged) #structureV2MobileNav [data-structure-role],
body:not(.role-privileged) #structureV2MoreMenu [data-structure-role],
body:not(.role-privileged) .desktop-nav [data-role="privileged"],
body:not(.role-privileged) .mobile-sheet [data-role="privileged"],
body:not(.role-privileged) .structure-v2-admin,
body.role-pilot .structure-v2-sidebar [data-structure-role]:not([data-structure-role="all"]),
body.role-pilot #structureV2MobileNav [data-structure-role],
body.role-pilot #structureV2MoreMenu [data-structure-role],
body.role-pilot .desktop-nav [data-role="privileged"],
body.role-pilot .mobile-sheet [data-role="privileged"],
body.role-pilot .structure-v2-admin,
.structure-v2-primary > .structure-role-hidden,
.structure-v2-admin.structure-role-hidden,
.structure-v2-admin .structure-role-hidden,
#structureV2MobileNav > .structure-role-hidden,
#structureV2MoreMenu > .structure-role-hidden {
  display: none !important;
}
