/* SCA Hangar Portal — base CSS
   Mirrors the Workbench palette + typography (paper / steel / amber). */

:root {
  --paper:        #ECE5D5;
  --paper-dark:   #DDD3BE;
  --paper-deep:   #C9BFA8;
  --steel:        #2D4A5E;
  --steel-dark:   #1F3445;
  --steel-soft:   #5A7689;
  --teal:         #2F7E7E;
  --teal-deep:    #1F5C5C;
  --amber:        #C5762A;
  --amber-soft:   #DEA15A;
  --amber-deep:   #9A5816;
  --slate:        #1B2128;
  --slate-soft:   #404750;
  --rule:         #B7AC93;
  --sky:          #95B6CB;
  --sky-deep:     #486F8C;
  --error:        #B23A3A;
}

* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; height: 100%; }
body {
  font-family: "Instrument Sans", -apple-system, BlinkMacSystemFont, system-ui, sans-serif;
  background: var(--paper);
  color: var(--steel-dark);
  display: flex;
  flex-direction: column;
  min-height: 100vh;
}

.stripe { height: 6px; display: flex; }
.stripe span { flex: 1; }
.stripe span:nth-child(1) { background: var(--steel-dark); }
.stripe span:nth-child(2) { background: var(--amber); }
.stripe span:nth-child(3) { background: var(--steel-soft); }

/* ===========================================================
   Topbar — primary nav (Slip + Upload as peers, Admin as gear)
   =========================================================== */
.topbar {
  position: sticky; top: 0; z-index: 50;
  display: flex; align-items: stretch;
  background: var(--steel-dark);
  border-bottom: 2px solid var(--amber);
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  box-shadow: 0 2px 6px rgba(0,0,0,0.18);
}
.topbar__brand {
  display: flex; align-items: center;
  padding: 14px 24px;
  color: var(--paper); text-decoration: none;
  font-size: 14px; letter-spacing: 0.10em;
  border-right: 1px solid rgba(255,255,255,0.08);
}
.topbar__brand strong { color: var(--amber); margin-right: 6px; }
.topbar__brand:hover { color: var(--amber-soft); }

.topbar__primary {
  display: flex; align-items: stretch; flex: 1;
}
.topbar__tab {
  display: flex; align-items: center; padding: 14px 24px;
  color: var(--paper); text-decoration: none;
  font-size: 13px; letter-spacing: 0.08em;
  border-right: 1px solid rgba(255,255,255,0.08);
  transition: background 0.15s, color 0.15s;
}
.topbar__tab:hover { background: rgba(197,118,42,0.20); }
.topbar__tab.active { background: var(--amber); color: var(--steel-dark); }
.topbar__tab.disabled {
  opacity: 0.5; cursor: not-allowed; pointer-events: none;
}

.topbar__right {
  display: flex; align-items: center; gap: 14px;
  padding: 0 18px;
  border-left: 1px solid rgba(255,255,255,0.10);
  font-family: "Instrument Sans", system-ui, sans-serif;
  font-weight: 400; letter-spacing: 0; text-transform: none;
}
.topbar__admin {
  display: inline-flex; align-items: center; gap: 6px;
  color: rgba(236,229,213,0.80); text-decoration: none;
  padding: 6px 10px;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 3px;
  font-family: "BigShoulders", sans-serif;
  font-weight: 700; font-size: 11px; letter-spacing: 0.10em; text-transform: uppercase;
  transition: background 0.15s, border-color 0.15s, color 0.15s;
}
.topbar__admin:hover { background: rgba(197,118,42,0.20); color: var(--paper); border-color: var(--amber-soft); }
.topbar__admin.active { background: var(--amber); border-color: var(--amber); color: var(--steel-dark); }
.topbar__admin svg { display: block; }
.topbar__who {
  color: rgba(236,229,213,0.70);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
}
.topbar__logout {
  color: var(--paper); text-decoration: none;
  padding: 5px 12px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 3px;
  font-family: "BigShoulders", sans-serif;
  font-weight: 700; font-size: 11px; letter-spacing: 0.10em; text-transform: uppercase;
}
.topbar__logout:hover { background: rgba(197,118,42,0.20); border-color: var(--amber-soft); }

/* User identity + Sign Out folded into the right edge of the crew-nav */
.crew-nav__user {
  display: flex; align-items: center; gap: 14px;
  padding: 0 18px 0 24px;
  border-left: 1px solid rgba(255,255,255,0.10);
  font-family: "Instrument Sans", system-ui, sans-serif;
  font-weight: 400; letter-spacing: 0; text-transform: none;
}
.crew-nav__user .who {
  color: rgba(236,229,213,0.70);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
}
.crew-nav__user .logout {
  color: var(--paper);
  text-decoration: none;
  padding: 5px 12px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 3px;
  font-family: "BigShoulders", sans-serif;
  font-weight: 700; font-size: 11px; letter-spacing: 0.10em; text-transform: uppercase;
}
.crew-nav__user .logout:hover { background: rgba(197,118,42,0.20); border-color: var(--amber-soft); }

/* Flashes: sticky to the top of the viewport so the operator can keep
   reading the error while scrolling to fix the offending field. Strong
   contrast — the bug Lin called out was that the original styling was
   too subtle. */
.flashes {
  position: sticky;
  top: 0;
  z-index: 100;
  padding: 14px 24px;
  background: var(--paper);
  border-bottom: 1px solid var(--rule);
  box-shadow: 0 6px 18px -8px rgba(20, 30, 40, 0.18);
}
.flash {
  padding: 12px 18px 12px 48px;
  margin-bottom: 8px;
  border-left: 5px solid var(--steel-soft);
  background: var(--paper-dark);
  font-size: 14px; line-height: 1.45;
  position: relative;
  border-radius: 2px;
}
.flash:last-child { margin-bottom: 0; }
.flash--info    { border-left-color: var(--teal);   background: #e7f3f4; }
.flash--success { border-left-color: var(--amber);  background: #fff4dc; }

/* Errors: red background + matching icon. Read at a glance, no ambiguity. */
.flash--error {
  border-left-color: var(--error);
  background: #fde8e8;
  color: #6b1d1d;
  font-weight: 600;
}
.flash--error::before {
  content: "!";
  position: absolute;
  left: 14px; top: 50%; transform: translateY(-50%);
  width: 22px; height: 22px;
  background: var(--error); color: #fff;
  border-radius: 50%;
  text-align: center; line-height: 22px; font-weight: 700; font-size: 14px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* Remediation toasts: blocking validation failures that come with a fix-it
   hint. Yellow but assertive — each one carries an actionable next step. */
.flash--remediation {
  border-left-color: var(--amber);
  background: #fff3c4;
  color: #5a3a00;
  font-weight: 500;
}
.flash--remediation::before {
  content: "!";
  position: absolute;
  left: 14px; top: 50%; transform: translateY(-50%);
  width: 22px; height: 22px;
  background: var(--amber); color: #fff;
  border-radius: 50%;
  text-align: center; line-height: 22px; font-weight: 700; font-size: 14px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}

/* Upload page (/upload?flight=...) — drag-drop zone + per-file progress
   bars + list of files already uploaded for this slip. */
.upload-page__bar {
  display: flex; gap: 12px; flex-wrap: wrap;
  margin-bottom: 18px;
}
.dropzone {
  border: 2px dashed var(--rule);
  background: var(--paper-dark);
  text-align: center;
  padding: 36px 24px;
  margin-bottom: 24px;
  border-radius: 2px;
  transition: border-color 0.1s, background 0.1s;
}
.dropzone.is-hover {
  border-color: var(--amber);
  background: rgba(197, 118, 42, 0.06);
}
.dropzone__title {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 28px; letter-spacing: 0.02em;
  color: var(--steel);
  margin-bottom: 6px;
}
.dropzone__sub { font-size: 14px; color: var(--slate); margin-bottom: 14px; }
.dropzone__pick {
  color: var(--amber); cursor: pointer; text-decoration: underline;
}
.dropzone__hint {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.06em;
  color: var(--slate-soft);
}

.upload-list {
  background: var(--paper-dark);
  border: 1px solid var(--rule);
  border-radius: 2px;
  padding: 14px 18px;
}
.upload-list__bar {
  display: flex; justify-content: flex-end;
  padding: 0 0 8px 0;
}
.upload-list__head {
  display: grid; grid-template-columns: 1fr 100px 1fr 1fr 30px;
  gap: 12px; padding: 6px 0;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--steel);
  border-bottom: 2px solid var(--steel);
}
.upload-list__empty {
  padding: 18px 6px; color: var(--slate-soft); font-style: italic;
}
.upload-row {
  display: grid; grid-template-columns: 1fr 100px 1fr 1fr 30px;
  gap: 12px; align-items: center;
  padding: 8px 0;
  border-bottom: 1px dotted var(--rule);
  font-size: 13px;
}
.upload-row__newname {
  color: var(--slate);
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; word-break: break-all;
}
.upload-row__newname--queued { font-style: italic; color: var(--amber); }
.upload-row__newname--empty { color: var(--slate-soft); }
.upload-row--needs-mount { background: rgba(248, 197, 78, 0.06); }
.upload-row--needs-mount .upload-row__newname { color: var(--amber); }
/* In-panel warning: rows still missing a mount (and therefore no
   target_filename) get a soft yellow row tint so the operator sees
   what they still need to assign before clicking Next: Rename. */
.rename-row--needs-mount { background: rgba(248, 197, 78, 0.10); }
.rename-row--needs-mount td:first-child::before {
  content: "↳ ";
  color: var(--amber); font-weight: 700;
}
.upload-row:last-child { border-bottom: none; }
.upload-row__name { color: var(--steel); font-weight: 600; word-break: break-all; }
.upload-row__size { color: var(--slate); }
.upload-row__status {
  display: flex; align-items: center; gap: 8px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase;
}
.upload-row__status--done { color: var(--teal); }
.upload-row__status--working { color: var(--amber); }
.upload-row__status--error { color: var(--error); }
.upload-row__bar {
  display: inline-block; width: 100px; height: 6px;
  background: var(--rule); border-radius: 3px; overflow: hidden;
}
.upload-row__bar-fill {
  display: block; height: 100%; background: var(--amber);
  transition: width 0.1s linear;
}
.upload-row__pct { min-width: 36px; }
.upload-row__del {
  background: transparent; border: 1px solid var(--rule);
  color: var(--slate-soft); cursor: pointer;
  width: 22px; height: 22px; line-height: 18px; padding: 0;
  font-size: 14px;
}
.upload-row__del:hover { color: var(--error); border-color: var(--error); }

/* Mini-calendar widget on the day-roster page. Renders each visible month
   as a 7x6 grid; a red dot under a day number = at least one flight slip
   on that date for the tenant. Click a day to single-day-filter the
   roster. */
.busy-cal {
  display: flex; gap: 18px; flex-wrap: wrap;
  padding: 14px 0 6px 0;
  border-bottom: 1px solid var(--rule);
  margin-bottom: 18px;
}
.busy-cal__month {
  flex: 0 0 auto;
  min-width: 220px;
}
.busy-cal__title {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 16px; letter-spacing: 0.04em;
  color: var(--steel);
  margin-bottom: 4px;
}
.busy-cal__dow {
  display: grid; grid-template-columns: repeat(7, 1fr);
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 9px; letter-spacing: 0.10em;
  color: var(--slate-soft);
  text-align: center;
  margin-bottom: 4px;
}
.busy-cal__grid {
  display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px;
}
.busy-cal__day {
  position: relative;
  text-align: center;
  font-size: 12px;
  padding: 6px 0 12px 0;
  color: var(--steel);
  text-decoration: none;
  border: 1px solid transparent;
  cursor: pointer;
}
.busy-cal__day:hover {
  border-color: var(--rule);
  background: rgba(197, 118, 42, 0.06);
}
.busy-cal__day--blank { pointer-events: none; }
.busy-cal__day--out { color: var(--slate-soft); opacity: 0.55; }
.busy-cal__day--busy { font-weight: 700; color: var(--steel); }
.busy-cal__dot {
  position: absolute; bottom: 3px; left: 50%;
  transform: translateX(-50%);
  width: 6px; height: 6px;
  background: #c93b3b;
  border-radius: 50%;
}

/* Group-header bar on the multi-day roster — shows the date + count. */
.day-roster__day-header {
  display: flex; align-items: baseline; justify-content: space-between;
  gap: 12px;
  margin: 14px 0 6px 0; padding-bottom: 4px;
  border-bottom: 2px solid var(--steel);
}
.day-roster__day-date {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 18px; letter-spacing: 0.02em;
  color: var(--steel);
}
.day-roster__day-count {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.10em;
  color: var(--slate-soft); text-transform: uppercase;
}

/* Day roster: standalone /intake/today page — full-width table of every
   flight slip for a chosen day. Operator workflow: load all of today's
   flights in the morning, then check this page when SD cards come back. */
.day-roster {
  background: var(--paper-dark);
  border: 1px solid var(--rule);
  border-radius: 2px;
  padding: 18px 24px;
}
.day-roster__date-form {
  display: flex; align-items: center; gap: 12px;
  margin-bottom: 18px; padding-bottom: 14px;
  border-bottom: 1px solid var(--rule);
  flex-wrap: wrap;
}
.day-roster__date-label {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--steel);
}
.day-roster__date-form input[type="date"] {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 14px; padding: 6px 10px;
  border: 1px solid var(--rule); background: var(--paper);
}
.day-roster__head {
  display: grid; grid-template-columns: 100px 1fr 110px 130px 130px 220px;
  gap: 14px; padding: 8px 0;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--steel);
  border-bottom: 2px solid var(--steel);
}
.day-roster__row {
  display: grid; grid-template-columns: 100px 1fr 110px 130px 130px 220px;
  gap: 14px; padding: 10px 0; align-items: center;
  border-bottom: 1px dotted var(--rule);
  font-size: 14px;
}
.day-roster__row:last-child { border-bottom: none; }
.day-roster__row--link {
  text-decoration: none; color: inherit;
  cursor: pointer; transition: background 0.08s;
}
.day-roster__row--link:hover { background: rgba(197, 118, 42, 0.08); }
.day-roster__row--link:focus-visible {
  outline: 2px solid var(--amber); outline-offset: -2px;
}
.day-roster__time { color: var(--teal); font-weight: 700; }
.day-roster__customer { font-weight: 600; color: var(--steel); }
.day-roster__pilot { color: var(--slate); }
.day-roster__pkg { color: var(--steel); }
.day-roster__video { color: var(--slate); }
.day-roster__fid { color: var(--slate-soft); font-size: 12px; }
.day-roster__empty {
  padding: 32px 16px; text-align: center;
  color: var(--slate-soft); font-style: italic;
}

/* Day-glance panel: collapsible at-a-glance summary of the day's flights,
   shown above the intake form so the operator can sanity-check schedule
   conflicts before typing in a new slip. */
.day-glance {
  background: var(--paper-dark);
  border: 1px solid var(--rule);
  border-radius: 2px;
  margin: 0 0 18px 0;
  font-size: 13px;
}
.day-glance__summary {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; padding: 10px 16px;
  cursor: pointer; user-select: none;
  list-style: none;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
.day-glance__summary::-webkit-details-marker { display: none; }
.day-glance__summary::before {
  content: "+"; display: inline-block;
  width: 16px; height: 16px;
  text-align: center; line-height: 14px;
  border: 1px solid var(--steel-soft);
  margin-right: 8px; flex-shrink: 0;
  font-weight: 700; color: var(--steel);
}
.day-glance[open] .day-glance__summary::before { content: "−"; }
.day-glance__count {
  font-weight: 700; letter-spacing: 0.04em;
  color: var(--steel); flex: 1;
}
.day-glance__hint {
  font-size: 10px; letter-spacing: 0.10em;
  color: var(--slate-soft); text-transform: uppercase;
}
.day-glance__body { padding: 8px 16px 12px 16px; border-top: 1px dotted var(--rule); }
.day-glance__head {
  display: grid; grid-template-columns: 90px 1fr 110px 130px 200px;
  gap: 10px; padding: 6px 0;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--slate-soft);
  border-bottom: 1px solid var(--rule);
}
.day-glance__row {
  display: grid; grid-template-columns: 90px 1fr 110px 130px 200px;
  gap: 10px; padding: 6px 0;
  border-bottom: 1px dotted var(--rule);
  align-items: center;
}
.day-glance__row:last-child { border-bottom: none; }
.day-glance__row--link {
  text-decoration: none; color: inherit;
  cursor: pointer; transition: background 0.08s;
}
.day-glance__row--link:hover { background: rgba(197, 118, 42, 0.08); }
.day-glance__row--link:focus-visible {
  outline: 2px solid var(--amber); outline-offset: -2px;
}
.day-glance__time {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--teal); font-weight: 700;
}
.day-glance__customer { font-weight: 600; color: var(--steel); }
.day-glance__pilot { color: var(--slate); }
.day-glance__pkg { color: var(--steel); }
.day-glance__fid { font-size: 12px; color: var(--slate-soft); }
.day-glance__loading,
.day-glance__empty {
  padding: 12px 4px; color: var(--slate-soft); font-style: italic;
}
.day-glance__footer {
  padding: 8px 16px;
  border-top: 1px dotted var(--rule);
  text-align: right;
}
.day-glance__all {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--amber); text-decoration: none;
}
.day-glance__all:hover { color: var(--amber-deep); }

/* Lifecycle accordions on the slip form: Brief / Post-flight sections that
   collapse by default. The slip fills in stages — booking up top (always
   visible), brief at briefing time, post-flight after the flight — so we hide
   the later-stage fields until the operator clicks to expand them. JS in the
   form template auto-expands a section when it contains an error or a
   non-default value (draft restore, validation re-render). */
.lifecycle-section {
  background: var(--paper-dark);
  border: 1px solid var(--rule);
  border-left: 3px solid var(--steel-soft);
  border-radius: 2px;
  margin: 24px 0 0 0;
}
.lifecycle-section__summary {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 18px;
  cursor: pointer; user-select: none;
  list-style: none;
}
.lifecycle-section__summary::-webkit-details-marker { display: none; }
.lifecycle-section__chev {
  display: inline-block;
  width: 18px; height: 18px;
  border: 1px solid var(--steel-soft);
  text-align: center; line-height: 14px;
  flex-shrink: 0;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 700; font-size: 14px; color: var(--steel);
  position: relative;
}
.lifecycle-section__chev::before {
  content: "+";
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  line-height: 1;
}
.lifecycle-section[open] .lifecycle-section__chev::before { content: "−"; }
.lifecycle-section__title {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 22px;
  letter-spacing: 0.04em; text-transform: uppercase;
  color: var(--steel); flex-shrink: 0;
}
.lifecycle-section__hint {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--slate-soft); flex: 1; text-align: right;
}
.lifecycle-section__body {
  padding: 8px 18px 18px 18px;
  border-top: 1px dotted var(--rule);
}
@media (max-width: 1024px) {
  .lifecycle-section__summary {
    flex-wrap: wrap; gap: 10px;
  }
  .lifecycle-section__hint {
    flex-basis: 100%; text-align: left;
  }
}

/* Soft-warning block: yellow inline banner with one ack-checkbox per finding.
   Each must be ticked before the form will accept submit. Distinct from
   .flash--remediation (blocking) — this is "heads up, confirm". */
.soft-warnings {
  background: #fff8e3;
  border: 1px solid var(--amber);
  border-left: 4px solid var(--amber);
  border-radius: 2px;
  padding: 14px 18px;
  margin: 0 0 18px 0;
  box-shadow: 0 1px 2px rgba(20, 30, 40, 0.06);
}
.soft-warnings__header {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 12px;
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 18px; letter-spacing: 0.04em;
  color: var(--steel);
}
.soft-warnings__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px;
  background: var(--amber); color: #fff;
  border-radius: 50%;
  font-weight: 700; font-size: 14px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
.soft-warnings__title { line-height: 1.2; }
.soft-warning {
  display: flex; align-items: flex-start; gap: 10px;
  padding: 8px 0;
  border-top: 1px dotted rgba(197, 118, 42, 0.35);
  cursor: pointer;
  font-size: 13.5px; line-height: 1.45; color: var(--steel);
}
.soft-warning input[type="checkbox"] {
  margin-top: 3px; flex-shrink: 0;
  accent-color: var(--amber);
  width: 16px; height: 16px;
}
.soft-warning__text { flex: 1; }
.soft-warnings__hint {
  margin-top: 10px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.10em;
  color: var(--slate-soft);
}

.page {
  flex: 1;
  width: 100%;
  max-width: 1100px;
  margin: 0 auto;
  padding: 32px 24px 48px 24px;
  box-sizing: border-box;
}

.page-head { margin-bottom: 28px; }
.page-title {
  font-family: "BigShoulders", sans-serif;
  font-weight: 900; font-size: 44px; line-height: 1; letter-spacing: -0.005em;
  color: var(--steel-dark); margin: 6px 0;
}
.eyebrow {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.22em;
  color: var(--steel-soft); text-transform: uppercase;
}
.lede { color: var(--steel); font-size: 15px; line-height: 1.5; }

/* Auth landing */
.card-stack { display: flex; justify-content: center; padding: 60px 0; }
.card { background: var(--paper-dark); border: 1px solid var(--rule); border-radius: 8px; padding: 32px; box-shadow: 4px 4px 0 var(--paper-deep); max-width: 480px; width: 100%; }
.card--auth .headline { font-family: "BigShoulders", sans-serif; font-weight: 900; font-size: 64px; line-height: 0.92; letter-spacing: -0.01em; margin: 12px 0 8px 0; }
.card--auth .headline .accent { color: var(--amber); }
.card--auth .lede { margin: 0 0 24px 0; }
.card--auth .hint { font-size: 12px; color: var(--steel-soft); margin-top: 18px; }

.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  padding: 12px 20px;
  font-family: "Instrument Sans", system-ui, sans-serif; font-weight: 500; font-size: 15px;
  border: 1px solid var(--rule); border-radius: 6px;
  background: var(--paper); color: var(--steel-dark);
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s, border-color 0.15s;
}
.btn:hover { border-color: var(--amber); background: #FFFCF2; }
.btn--primary { background: var(--steel-dark); color: var(--paper); border-color: var(--steel-dark); }
.btn--primary:hover { background: var(--steel); border-color: var(--steel); color: var(--paper); }
.btn--google { width: 100%; }

/* Dashboard tiles */
.grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 18px; }
.tile {
  display: block;
  background: var(--paper-dark);
  border: 1px solid var(--rule); border-left: 3px solid var(--amber);
  border-radius: 4px;
  padding: 22px;
  text-decoration: none;
  color: var(--steel-dark);
  transition: transform 0.15s, border-left-color 0.15s;
}
.tile[aria-disabled="true"] { opacity: 0.7; cursor: not-allowed; }
.tile:not([aria-disabled="true"]):hover { transform: translateY(-2px); border-left-color: var(--steel-dark); }
.tile__num { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; color: var(--steel-soft); font-size: 12px; letter-spacing: 0.18em; }
.tile__label { font-family: "BigShoulders", sans-serif; font-weight: 700; font-size: 24px; letter-spacing: 0.02em; margin: 4px 0; text-transform: uppercase; }
.tile__hint { color: var(--steel-soft); font-size: 13px; line-height: 1.5; }
.tile__status { margin-top: 16px; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11px; letter-spacing: 0.16em; color: var(--amber); text-transform: uppercase; }

.footer {
  padding: 46px 60px 56px 60px;
  border-top: 2px solid var(--steel);
  background: var(--paper-dark);
  display: grid; grid-template-columns: 80px 1fr auto;
  gap: 28px; align-items: center;
}
.footer img.sca { width: 64px; height: 64px; opacity: 0.9; }
.footer .colophon {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; letter-spacing: 0.15em;
  text-transform: uppercase; color: var(--steel);
  line-height: 1.7;
}
.footer .stamp {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700;
  font-size: 42px; color: var(--steel);
  line-height: 1; letter-spacing: -0.005em;
}

/* ===========================================================
   Crew nav strip — sticky workflow stepper
   =========================================================== */
.crew-nav {
  position: sticky; top: 0; z-index: 50;
  display: flex;
  background: var(--steel-dark);
  border-bottom: 2px solid var(--amber);
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase;
  box-shadow: 0 2px 6px rgba(0,0,0,0.18);
}
.crew-nav a {
  flex: 1;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  padding: 14px 18px;
  color: var(--paper);
  text-decoration: none;
  font-size: 13px;
  border-right: 1px solid rgba(255,255,255,0.08);
  transition: background 0.15s, color 0.15s;
}
.crew-nav a:last-of-type { border-right: none; }
.crew-nav a:hover { background: rgba(197,118,42,0.20); }
.crew-nav a.active {
  background: var(--amber); color: var(--steel-dark);
}
.crew-nav .step {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; opacity: 0.55;
  padding: 2px 6px; border-radius: 2px;
  background: rgba(255,255,255,0.06);
}
.crew-nav a.active .step { opacity: 0.85; background: rgba(0,0,0,0.10); }
.crew-nav .arrow {
  display: flex; align-items: center;
  font-size: 14px;
  color: rgba(255,255,255,0.35);
  background: var(--steel-dark);
  padding: 0 4px;
}

/* ===========================================================
   Admin · Datapoint Manager
   Mirrors Workbench/admin_datapoints.html palette + layout.
   =========================================================== */

.titleblock {
  position: relative;
  overflow: hidden;
  margin: -32px -24px 32px -24px;
  padding: 36px 60px 28px 60px;
  color: var(--paper);
  background: linear-gradient(180deg, #1F3445 0%, #2D4A5E 65%, #355C7D 100%);
}
.titleblock::after {
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(circle at center, rgba(236,229,213,0.10) 1px, transparent 1.4px);
  background-size: 32px 32px;
  pointer-events: none; z-index: 1;
}
.sun-glow {
  position: absolute; right: -100px; top: -80px;
  width: 480px; height: 480px;
  background-image: url("/static/img/sun-glow.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  pointer-events: none; z-index: 1;
}
.titleblock > *:not(.sun-glow) { position: relative; z-index: 2; }

.tb-toprow {
  display: flex; justify-content: space-between; align-items: center;
  margin-bottom: 22px;
  position: relative; z-index: 3;
}
.tb-logo-mark {
  display: flex; align-items: center; gap: 14px;
}
.tb-logo-mark img.sca {
  width: 64px; height: 64px;
  background: rgba(236, 229, 213, 0.96);
  border-radius: 50%;
  padding: 4px;
}
.tb-logo-mark .label {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.30em; text-transform: uppercase;
  color: rgba(236,229,213,0.85); line-height: 1.4;
}
.tb-logo-mark .label .small {
  display: block; font-size: 9px;
  color: rgba(236,229,213,0.55); margin-top: 2px;
  letter-spacing: 0.22em;
}

.tb-badge {
  display: flex; align-items: center; gap: 10px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--amber-soft);
  padding: 10px 18px; border: 1px solid var(--amber-soft);
  background: rgba(197,118,42,0.12); font-weight: 700;
}
.tb-badge .dot {
  width: 9px; height: 9px;
  background: var(--amber-soft); border-radius: 50%;
  animation: tb-badge-pulse 1.6s ease-in-out infinite;
}
@keyframes tb-badge-pulse {
  0%, 100% { opacity: 1; transform: scale(1); }
  50% { opacity: 0.55; transform: scale(0.85); }
}

.tb-titlerow { position: relative; z-index: 3; }

/* .eyebrow already defined above for auth pages — these rules compose
   inside the dark titleblock without overriding the base color. */
.titleblock .eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; letter-spacing: 0.30em;
  text-transform: uppercase; color: var(--amber-soft);
  margin-bottom: 14px; display: flex; align-items: center; gap: 14px;
}
.titleblock .eyebrow::before {
  content: ""; width: 36px; height: 1px; background: var(--amber-soft);
}
h1.headline {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 64px; line-height: 0.92;
  margin: 0 0 12px 0; letter-spacing: -0.012em; color: var(--paper);
}
.subhead {
  font-family: "Instrument Sans", sans-serif; font-size: 16px;
  line-height: 1.55; color: rgba(236,229,213,0.84);
  margin: 0; max-width: 900px; font-weight: 400;
}
.subhead strong { color: var(--paper); font-weight: 600; }
.airframe-stripe { height: 8px; display: flex; margin-top: 12px; }
.airframe-stripe span { flex: 1; }
.airframe-stripe .a { background: var(--steel-soft); }
.airframe-stripe .b { background: var(--teal); flex: 0 0 110px; }
.airframe-stripe .c { background: var(--amber); flex: 0 0 44px; }
.title-meta {
  display: flex; gap: 32px; flex-wrap: wrap;
  margin: 16px 0 0 0; padding-top: 12px;
  border-top: 1px solid rgba(236,229,213,0.22);
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.10em;
  text-transform: uppercase; color: rgba(236,229,213,0.65);
}
.title-meta span strong { color: var(--paper); font-weight: 400; }

/* ---- Toolbar ---- */
.toolbar {
  margin: -32px -24px 0 -24px;
  padding: 22px 60px;
  background: var(--paper-dark);
  border-bottom: 1px solid var(--rule);
  display: flex; gap: 14px; flex-wrap: wrap; align-items: center;
}
.toolbar .label {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--steel); margin-right: 10px;
}
.toolbar__inline-form { display: inline-flex; margin: 0; padding: 0; }

/* ---- Section ---- */
.section { padding: 36px 0 28px 0; position: relative; }
.section + .section { border-top: 1px solid var(--rule); }
.section-head {
  display: grid; grid-template-columns: 110px 1fr 110px;
  gap: 28px; align-items: start; margin-bottom: 22px;
}
.step-badge {
  width: 92px; height: 92px;
  display: flex; align-items: center; justify-content: center;
  position: relative;
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; color: var(--amber); line-height: 1;
}
.step-badge svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.step-badge .num { position: relative; z-index: 2; font-size: 48px; margin-top: -4px; }
.step-badge .letter { font-size: 56px; }
.section-title-group { padding-top: 14px; }
.kicker {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.28em;
  text-transform: uppercase; color: var(--steel); margin-bottom: 6px;
}
.section-title {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 44px; line-height: 1.0;
  letter-spacing: -0.005em; color: var(--slate); margin: 0;
}
.section-icon {
  width: 90px; height: 90px;
  margin-top: 4px;
  color: var(--steel);
  stroke: currentColor;
  fill: none;
  stroke-width: 1.75;
  stroke-linecap: round;
  stroke-linejoin: round;
  padding: 14px; box-sizing: border-box;
  background: var(--paper-dark);
  border-radius: 12px; border: 1px solid var(--rule);
  display: block;
}
.section-body { padding-left: 138px; }
.section-body p { margin: 0 0 14px 0; color: var(--steel-dark); font-size: 15px; line-height: 1.6; }

/* ---- List panel ---- */
.list-panel {
  background: var(--paper-dark); border: 1px solid var(--rule);
  border-left: 3px solid var(--steel);
  padding: 22px 26px;
  margin: 14px 0 8px 0; position: relative;
}
.list-panel-label {
  position: absolute; top: -10px; left: 22px;
  background: var(--paper); padding: 0 10px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; letter-spacing: 0.22em;
  text-transform: uppercase; color: var(--steel);
}
.list-rows {
  display: flex; flex-direction: column; gap: 8px;
  margin-bottom: 18px;
}
.list-row {
  display: flex; gap: 10px; align-items: center;
  padding: 8px 10px; background: var(--paper);
  border: 1px solid var(--rule); margin: 0;
}
.list-row .idx {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; color: var(--steel-soft);
  min-width: 32px; letter-spacing: 0.10em;
}
.list-row input[type="text"] {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 14px; color: var(--steel-dark);
  background: transparent; border: none;
  border-bottom: 1px solid var(--rule);
  padding: 4px 6px; flex: 1; min-width: 0; outline: none;
}
.list-row input[type="text"]:focus { border-bottom-color: var(--teal); }
.list-row input.code-input { flex: 0 0 60px; text-align: center; text-transform: uppercase; }
.list-row select {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px; color: var(--steel-dark);
  background: var(--paper); border: 1px solid var(--rule);
  padding: 4px 8px; outline: none;
}
.list-row .radio-group, .add-form .radio-group {
  display: flex; gap: 10px; align-items: center;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; color: var(--steel); letter-spacing: 0.05em;
}
.list-row .radio-group label, .add-form .radio-group label {
  display: flex; align-items: center; gap: 4px; cursor: pointer;
}
.list-row .toggle, .add-form .toggle {
  display: flex; align-items: center; gap: 6px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; color: var(--steel); letter-spacing: 0.05em;
}
.list-row .toggle label, .add-form .toggle label {
  display: flex; align-items: center; gap: 4px; cursor: pointer;
}

.add-form {
  display: flex; gap: 10px; align-items: center;
  padding: 10px 12px;
  background: rgba(47,126,126,0.08);
  border: 1px dashed var(--teal); border-left: 3px solid var(--teal);
  margin: 0;
}
.add-label {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--teal-deep); font-weight: 700;
}
.add-form input[type="text"] {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px; color: var(--steel-dark);
  background: var(--paper); border: 1px solid var(--rule);
  padding: 6px 8px; flex: 1; outline: none; min-width: 0;
}
.add-form input[type="text"]:focus { border-color: var(--teal); }
.add-form input.code-input { flex: 0 0 60px; text-align: center; text-transform: uppercase; }
.add-form select {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px; color: var(--steel-dark);
  background: var(--paper); border: 1px solid var(--rule);
  padding: 6px 8px; outline: none;
}

/* Empty state */
.empty-state {
  font-family: "Instrument Sans", sans-serif; font-style: italic;
  font-size: 14px; color: var(--steel-soft);
  padding: 14px 12px; text-align: center;
  border: 1px dashed var(--rule); background: var(--paper);
}

/* ---- Admin button variants (override base .btn for inside list-rows / toolbar) ---- */
.toolbar .btn, .list-row .btn, .add-form .btn, .import-actions .btn {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.16em;
  text-transform: uppercase; font-weight: 700;
  cursor: pointer; padding: 7px 14px;
  border: 1px solid; border-radius: 0;
  background: transparent;
  transition: opacity 0.15s, transform 0.05s;
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
.toolbar .btn:hover, .list-row .btn:hover, .add-form .btn:hover, .import-actions .btn:hover {
  opacity: 0.85; background: transparent; border-color: inherit;
}
.toolbar .btn:active, .list-row .btn:active, .add-form .btn:active, .import-actions .btn:active {
  transform: translateY(1px);
}

.btn-save {
  border-color: var(--teal) !important; color: var(--paper) !important;
  background: var(--teal) !important;
}
.btn-add {
  border-color: var(--teal) !important; color: var(--paper) !important;
  background: var(--teal) !important;
  padding: 8px 16px !important; font-size: 12px !important;
}
.btn-delete {
  border-color: var(--amber) !important; color: var(--amber-deep) !important;
  background: rgba(197,118,42,0.10) !important;
}
.btn-delete:hover { background: var(--amber) !important; color: var(--paper) !important; }
.btn-reset {
  border-color: var(--amber-deep) !important; color: var(--paper) !important;
  background: var(--amber-deep) !important;
}
.btn-reset:hover { background: #7A4310 !important; }
.btn-export {
  border-color: var(--steel) !important; color: var(--paper) !important;
  background: var(--steel) !important; text-decoration: none;
}
.btn-import {
  border-color: var(--steel) !important; color: var(--steel) !important;
  background: transparent !important; cursor: pointer;
}
.btn-import:hover { background: var(--steel) !important; color: var(--paper) !important; }
.btn--cancel {
  border-color: var(--steel-soft) !important; color: var(--steel-dark) !important;
  background: transparent !important; text-decoration: none;
}

/* ---- Import preview ---- */
.import-diff { margin: 24px 0 28px 0; }
.import-diff__table {
  width: 100%; border-collapse: collapse;
  background: var(--paper-dark); border: 1px solid var(--rule);
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px;
}
.import-diff__table th, .import-diff__table td {
  padding: 10px 14px; text-align: left;
  border-bottom: 1px solid var(--rule);
}
.import-diff__table th {
  background: var(--paper);
  font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--steel);
}
.import-diff__table td:not(:first-child) { text-align: right; font-variant-numeric: tabular-nums; }
.import-actions { display: flex; gap: 14px; align-items: center; margin-top: 12px; }
.import-actions form { margin: 0; padding: 0; display: inline-flex; }

/* ===========================================================
   Flight Intake — slip-style form, ported from Workbench
   =========================================================== */

/* Hero banner reused from titleblock palette */
.hero {
  margin: -32px -24px 0 -24px;
  background: linear-gradient(180deg, #1F3445 0%, #2D4A5E 65%, #355C7D 100%);
  color: var(--paper);
  padding: 40px 60px 36px 60px;
  position: relative; overflow: hidden;
}
.hero::after {
  content: ""; position: absolute; inset: 0;
  background-image: radial-gradient(circle at center, rgba(236,229,213,0.10) 1px, transparent 1.4px);
  background-size: 32px 32px;
  pointer-events: none; z-index: 1;
}
.hero-row { display: flex; align-items: center; gap: 24px; position: relative; z-index: 2; }
.hero-row img.sca {
  width: 80px; height: 80px;
  background: rgba(236,229,213,0.96); border-radius: 50%; padding: 6px;
}
.hero-text { flex: 1; }
.hero-eyebrow {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.30em; text-transform: uppercase;
  color: var(--amber-soft); margin-bottom: 8px;
  display: flex; align-items: center; gap: 12px;
}
.hero-eyebrow::before { content: ""; width: 30px; height: 1px; background: var(--amber-soft); }
.hero-title {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 60px; line-height: 0.95;
  margin: 0 0 6px 0; letter-spacing: -0.012em; color: var(--paper);
}
.hero-sub {
  font-family: "Instrument Sans", sans-serif; font-size: 16px;
  color: rgba(236,229,213,0.84); margin: 0;
}
.hero-badge {
  display: flex; align-items: center; gap: 10px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--amber-soft);
  padding: 8px 14px; border: 1px solid var(--amber-soft);
  background: rgba(197,118,42,0.08);
  position: relative; z-index: 2; align-self: flex-start;
}
.hero-badge .dot { width: 8px; height: 8px; background: var(--amber-soft); border-radius: 50%; }

/* Form panel */
.form-wrap { padding: 36px 0 0 0; }

.slip {
  background: #F4EEDD; border: 1px solid var(--rule);
  border-left: 3px solid var(--steel);
  padding: 32px 36px; margin: 0 0 24px 0; position: relative;
  box-shadow: 4px 4px 0 var(--paper-deep);
}
.slip::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px;
  background: repeating-linear-gradient(90deg, var(--steel) 0 14px, transparent 14px 22px);
}
.slip-header {
  display: flex; justify-content: space-between; align-items: flex-end;
  border-bottom: 2px solid var(--steel); padding: 14px 0; margin-bottom: 22px;
}
.slip-title {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 34px; color: var(--slate);
  line-height: 1; letter-spacing: 0.01em;
}
.slip-meta {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase;
  color: var(--steel-soft); text-align: right;
}

.section-label {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.20em; text-transform: uppercase;
  color: var(--steel); margin: 24px 0 14px 0;
  padding-bottom: 6px; border-bottom: 1px dotted var(--rule);
}

/* Form rows */
.f-row {
  display: grid; grid-template-columns: 200px 1fr;
  gap: 18px; padding: 10px 0; align-items: center;
}
.f-row + .f-row { border-top: 1px dotted var(--rule); }
.f-row .label {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--steel);
}
.f-row .label .req { color: var(--amber); margin-left: 4px; }
.f-row .control { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }

.slip input[type="date"],
.slip input[type="text"],
.slip input[type="number"],
.slip select {
  font-family: "Instrument Sans", sans-serif; font-size: 16px;
  color: var(--slate); background: var(--paper);
  border: 1px solid var(--rule); border-bottom: 1px solid var(--steel-soft);
  padding: 8px 10px; min-width: 240px; outline: none;
  transition: border-color 0.15s;
}
.slip input[type="text"].mono,
.slip input[type="number"].mono {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 15px;
}
.slip input:focus, .slip select:focus {
  border-color: var(--amber);
  border-bottom-color: var(--amber);
  background: #FFFCF2;
}
.slip input.error, .slip select.error {
  border-color: var(--amber-deep);
  background: rgba(197,118,42,0.06);
}
.slip select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'><path fill='%232D4A5E' d='M2 4 L6 8 L10 4 Z'/></svg>");
  background-repeat: no-repeat; background-position: right 10px center;
  padding-right: 30px;
}

/* Time-stack widget */
.time-stack {
  display: inline-flex; align-items: center;
  gap: 0; padding: 2px 6px;
  background: var(--paper);
  border: 1px solid var(--rule);
  border-bottom: 1px solid var(--steel-soft);
  border-radius: 3px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  transition: border-color 0.15s;
}
.time-stack:focus-within {
  border-color: var(--amber);
  border-bottom-color: var(--amber);
  background: #FFFCF2;
}
.time-stack.error {
  border-color: var(--amber-deep);
  background: rgba(197,118,42,0.06);
}
.time-stack select {
  appearance: none; -webkit-appearance: none;
  border: none !important; background: transparent !important;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 18px; color: var(--steel-dark);
  padding: 6px 18px 6px 6px;
  min-width: unset !important;
  cursor: pointer;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'><path fill='%23889ba9' d='M2 4 L5 7 L8 4 Z'/></svg>") !important;
  background-repeat: no-repeat !important;
  background-position: right 4px center !important;
  background-size: 9px 9px !important;
}
.time-stack select:focus { outline: none; background-color: rgba(197,118,42,0.10); border-radius: 2px; }
.time-stack .ts-colon {
  color: var(--amber); font-weight: 700; font-size: 18px;
  padding: 0 2px; user-select: none;
}
.time-stack .ts-divider {
  width: 1px; height: 22px; background: var(--rule); margin: 0 6px;
}

/* Computed flight ID */
.computed-row {
  display: grid; grid-template-columns: 200px 1fr;
  gap: 18px; padding: 18px 0 8px 0;
  border-top: 2px solid var(--steel); margin-top: 14px;
}
.computed-row .label {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--amber);
  align-self: start; padding-top: 14px;
}
.flightid-display {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 31px; letter-spacing: 0.01em; line-height: 1;
  display: flex; align-items: baseline; gap: 4px; flex-wrap: wrap;
}
.flightid-display .seg-date    { color: var(--steel); }
.flightid-display .seg-pilot   { color: var(--teal);  }
.flightid-display .seg-pkg     { color: var(--steel-soft); }
.flightid-display .seg-dash    { color: var(--rule); padding: 0 4px; }
.flightid-hint {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.10em;
  color: var(--slate-soft); margin-top: 6px;
}

/* Cameras table */
.cam-head {
  display: grid; grid-template-columns: 36px 170px 1fr 130px 100px;
  gap: 14px; padding: 8px 0;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 10px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--steel);
  border-bottom: 2px solid var(--steel);
}
.cam-row {
  display: grid; grid-template-columns: 36px 170px 1fr 130px 100px;
  gap: 14px; align-items: center; padding: 10px 0;
  border-bottom: 1px dotted var(--rule);
}
.cam-row:last-child { border-bottom: none; }
.cam-row .role-name {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px; color: var(--slate); font-weight: 700;
}
.cam-row .role-name.addon::after {
  content: "ADD-ON"; display: inline-block; margin-left: 8px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 9px; letter-spacing: 0.12em; color: var(--amber);
  border: 1px solid var(--amber); padding: 1px 5px;
  vertical-align: middle;
}
.cam-row input.cam-id { min-width: 0 !important; width: 100%; }
.cam-row.disabled input.cam-id { opacity: 0.4; pointer-events: none; }
.cam-row.disabled .role-name { color: var(--slate-soft); opacity: 0.7; }

/* Telemetry-box rows (e.g. OnFlight Whitebox) — same grid, no audio/GPS toggles. */
.cam-row--box .role-name.box::after {
  content: "TELEMETRY BOX"; display: inline-block; margin-left: 8px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 9px; letter-spacing: 0.12em; color: var(--teal);
  border: 1px solid var(--teal); padding: 1px 5px;
  vertical-align: middle;
}
.cam-row .toggle-na {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--slate-soft); opacity: 0.5; text-align: center;
}

/* Custom checkbox */
.cb-wrap {
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; user-select: none;
  position: relative;
}
.cb-wrap input { position: absolute; opacity: 0; pointer-events: none; }
.cb-box {
  width: 22px; height: 22px; border: 2px solid var(--steel);
  background: var(--paper); display: flex;
  align-items: center; justify-content: center; transition: background 0.1s;
}
.cb-wrap input:checked + .cb-box::after {
  content: ""; width: 14px; height: 14px; background: var(--amber);
}
.cb-wrap input:focus + .cb-box {
  border-color: var(--amber); outline: 2px solid var(--amber-soft); outline-offset: 1px;
}

/* Toggle (audio / gps) */
.toggle-wrap {
  display: flex; align-items: center; gap: 8px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.10em; text-transform: uppercase;
  color: var(--slate-soft); cursor: pointer; user-select: none;
  position: relative;
}
.toggle-wrap input { position: absolute; opacity: 0; pointer-events: none; }
.toggle-pill {
  width: 36px; height: 18px; background: var(--paper-deep);
  border: 1px solid var(--rule); border-radius: 10px;
  position: relative; transition: background 0.15s;
}
.toggle-pill::after {
  content: ""; position: absolute; left: 2px; top: 1px;
  width: 12px; height: 12px; background: var(--paper);
  border: 1px solid var(--steel-soft); border-radius: 50%;
  transition: transform 0.15s, background 0.15s;
}
.toggle-wrap input:checked + .toggle-pill { background: var(--teal); }
.toggle-wrap input:checked + .toggle-pill::after {
  transform: translateX(18px); background: var(--paper);
  border-color: var(--teal-deep);
}
.toggle-wrap.audio input:checked + .toggle-pill { background: var(--amber); }
.toggle-wrap.audio input:checked + .toggle-pill::after { border-color: var(--amber-deep); }
.toggle-wrap input:focus + .toggle-pill { outline: 2px solid var(--amber-soft); outline-offset: 1px; }
.toggle-wrap.disabled { opacity: 0.35; pointer-events: none; }
.toggle-text-on  { color: var(--teal); font-weight: 700; display: none; }
.toggle-text-off { color: var(--slate-soft); }
.toggle-wrap.audio .toggle-text-on { color: var(--amber); }
.toggle-wrap input:checked ~ .toggle-text-on  { display: inline; }
.toggle-wrap input:checked ~ .toggle-text-off { display: none; }

/* Telemetry checkboxes */
.tel-grid {
  display: grid; grid-template-columns: 1fr 1fr; gap: 10px 24px;
  margin-top: 6px;
}
.tel-item {
  display: flex; align-items: center; gap: 12px;
  padding: 8px 10px;
  background: var(--paper); border: 1px solid var(--rule);
  cursor: pointer; user-select: none;
}
.tel-item:hover { border-color: var(--steel-soft); }
.tel-item .name {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 13px; color: var(--slate); font-weight: 700;
}

/* Flight add-on checkboxes */
.f-row .control label.addon-cb {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 6px 12px; margin-right: 8px; margin-bottom: 6px;
  background: var(--paper); border: 1px solid var(--rule);
  cursor: pointer; user-select: none;
  font-size: 14px; color: var(--slate);
}
.f-row .control label.addon-cb:hover { border-color: var(--steel-soft); }
.f-row .control label.addon-cb input[type="checkbox"] { margin: 0; }
.f-row .control label.addon-cb input[type="checkbox"]:checked + span {
  color: var(--teal); font-weight: 700;
}

/* Submit row */
.submit-row {
  margin-top: 32px; padding-top: 24px;
  border-top: 2px solid var(--steel);
  display: flex; gap: 16px; align-items: center; justify-content: flex-end;
}
.errors {
  flex: 1;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; color: var(--amber-deep); line-height: 1.5;
}
.errors:empty { display: none; }

button.submit, a.submit {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 24px; letter-spacing: 0.04em;
  color: var(--slate); background: var(--amber);
  border: 2px solid var(--amber-deep);
  padding: 14px 36px; cursor: pointer;
  box-shadow: 3px 3px 0 var(--paper-deep);
  transition: transform 0.1s, box-shadow 0.1s;
  text-decoration: none;
  display: inline-block;
}
button.submit:hover, a.submit:hover { background: var(--amber-soft); }
button.submit:active, a.submit:active {
  transform: translate(2px, 2px);
  box-shadow: 1px 1px 0 var(--paper-deep);
}

/* Notes section */
.notes-intro {
  background: var(--paper-dark);
  border: 1px solid var(--rule);
  border-left: 3px solid var(--teal);
  padding: 14px 18px;
  margin: 12px 0 10px 0;
  font-size: 14px; line-height: 1.55; color: var(--slate);
}
.notes-intro ul { margin: 8px 0 6px 0; padding-left: 22px; }
.notes-intro li { margin-bottom: 4px; }
.notes-row textarea {
  width: 100%; min-height: 140px;
  font-family: "Instrument Sans", sans-serif; font-size: 15px;
  line-height: 1.5; color: var(--slate);
  background: var(--paper); border: 1px solid var(--rule);
  padding: 12px 14px; resize: vertical;
}
.notes-row textarea:focus {
  outline: none; border-color: var(--steel);
  box-shadow: 0 0 0 2px rgba(45, 74, 94, 0.15);
}

/* Linked flights conditional inputs */
.linked-flight-input {
  display: flex; align-items: center; gap: 8px; margin-bottom: 6px;
}
.linked-flight-input .lfi-num {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; color: var(--steel); font-weight: 700; min-width: 24px;
}
.linked-flight-input select {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 14px;
  background: var(--paper-dark); border: 1px solid var(--rule);
  padding: 6px 10px; min-width: 340px;
}
.linked-flight-input .empty-hint {
  font-style: italic; font-size: 12px; color: var(--slate-soft);
}

/* Confirm review panel */
.confirm-panel {
  display: none;
  background: #F4EEDD;
  border: 1px solid var(--rule);
  border-left: 6px solid var(--amber);
  padding: 32px 36px 28px 36px;
  position: relative;
  box-shadow: 4px 4px 0 var(--paper-deep);
  margin-top: 0;
}
.confirm-panel.show { display: block; }
.confirm-panel::before {
  content: ""; position: absolute; top: 0; left: 0; right: 0; height: 6px;
  background: repeating-linear-gradient(90deg, var(--amber) 0 14px, transparent 14px 22px);
}
/* Custom modal — replaces window.confirm() for the same-name duplicate
   prompt and any future yes/no question. Activated by the .is-open class. */
.scm-modal-overlay {
  position: fixed; inset: 0;
  background: rgba(20, 30, 40, 0.55);
  display: none;
  align-items: center; justify-content: center;
  z-index: 1000;
  padding: 24px;
}
.scm-modal-overlay.is-open { display: flex; }
.scm-modal {
  background: var(--paper);
  border: 1px solid var(--steel);
  border-top: 5px solid var(--amber);
  border-radius: 2px;
  max-width: 540px; width: 100%;
  padding: 22px 26px;
  box-shadow: 0 18px 42px rgba(20, 30, 40, 0.32);
  font-family: "Instrument Sans", sans-serif;
  color: var(--steel);
}
.scm-modal__title {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 22px; letter-spacing: 0.02em;
  color: var(--steel);
  margin: 0 0 14px 0;
}
.scm-modal__body {
  font-size: 14px; line-height: 1.55;
  margin-bottom: 22px;
}
.scm-modal__body em {
  font-style: normal; font-weight: 700; color: var(--amber-deep);
}
.scm-modal__buttons {
  display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap;
}
.scm-modal__btn {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; letter-spacing: 0.10em; text-transform: uppercase;
  padding: 10px 16px;
  border: 1px solid var(--steel);
  background: transparent;
  cursor: pointer;
  transition: background 0.08s, color 0.08s;
}
.scm-modal__btn:hover { background: rgba(20, 30, 40, 0.06); }
.scm-modal__btn--primary {
  background: var(--amber); border-color: var(--amber); color: #fff;
}
.scm-modal__btn--primary:hover { background: var(--amber-deep); border-color: var(--amber-deep); }
.scm-modal__btn--secondary { color: var(--steel); }

/* Lock formation: cross-slip conflict cards on /intake/group/<fid>/lock */
.lock-conflicts { margin: 12px 0 18px 0; }
.lock-conflict {
  background: #fff8e3;
  border: 1px solid var(--amber);
  border-left: 4px solid var(--amber);
  border-radius: 2px;
  padding: 14px 18px;
  margin-bottom: 10px;
}
.lock-conflict__head {
  display: flex; align-items: center; gap: 10px;
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 17px; letter-spacing: 0.04em;
  color: var(--steel);
}
.lock-conflict__icon {
  display: inline-flex; align-items: center; justify-content: center;
  width: 22px; height: 22px;
  background: var(--amber); color: #fff;
  border-radius: 50%;
  font-weight: 700; font-size: 14px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
}
.lock-conflict__detail {
  margin: 8px 0 6px 32px;
  font-size: 13.5px; line-height: 1.5; color: var(--steel);
}
.lock-conflict__affected {
  margin: 0 0 10px 32px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.06em;
  color: var(--slate-soft);
}
.lock-conflict__actions {
  display: flex; gap: 8px; align-items: center;
  margin-left: 32px; flex-wrap: wrap;
}
.lock-conflict__override-form {
  display: flex; gap: 6px; align-items: center; flex-wrap: wrap;
}
.lock-conflict__note {
  font-size: 13px; padding: 5px 8px;
  border: 1px solid var(--rule);
  background: var(--paper);
  min-width: 200px;
}

.confirm-banner {
  margin: 14px 0 18px 0; padding: 12px 16px;
  background: rgba(197, 118, 42, 0.10);
  border-left: 3px solid var(--amber);
  font-size: 14px; line-height: 1.5; color: var(--slate);
}
.rv-grid {
  display: grid; grid-template-columns: 200px 1fr;
  gap: 0; margin-top: 6px; margin-bottom: 18px;
}
.rv-row { display: contents; }
.rv-row .rv-label,
.rv-row .rv-val {
  padding: 8px 0;
  border-bottom: 1px dotted var(--rule);
}
.rv-row .rv-label {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--steel); padding-right: 16px;
}
.rv-row .rv-val {
  font-family: "Instrument Sans", sans-serif; font-size: 15px; color: var(--slate);
}
.rv-row .rv-val.mono {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 14px; color: var(--steel-dark); font-weight: 700;
}
.rv-row .rv-val:empty::after { content: "—"; color: var(--rule); }
.rv-row .rv-val .pill-link {
  display: inline-block; background: var(--paper-dark);
  border: 1px solid var(--steel-soft); color: var(--steel);
  padding: 2px 8px; margin-right: 6px; margin-bottom: 4px;
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px;
}
.rv-row .rv-val .cam-summary {
  display: inline-block; background: var(--paper-dark);
  border: 1px solid var(--rule); padding: 4px 10px;
  margin: 0 6px 6px 0; font-size: 13px;
}
.rv-row .rv-val .cam-summary .role {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-weight: 700; color: var(--steel);
}
.rv-row .rv-val .cam-summary .id {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  color: var(--slate); margin-left: 6px;
}
.rv-row .rv-val .cam-summary .audio-flag {
  display: inline-block; margin-left: 6px;
  background: var(--amber); color: var(--slate); font-weight: 700;
  padding: 1px 6px; font-size: 10px; letter-spacing: 0.1em;
}
.rv-row .rv-val .cam-summary .gps-flag {
  display: inline-block; margin-left: 4px;
  background: var(--teal); color: var(--paper); font-weight: 700;
  padding: 1px 6px; font-size: 10px; letter-spacing: 0.1em;
}
.rv-notes {
  margin: 8px 0 12px 0;
  padding: 14px 18px;
  background: var(--paper);
  border: 1px solid var(--rule);
  border-left: 3px solid var(--teal);
  font-family: "Instrument Sans", sans-serif; font-size: 15px;
  line-height: 1.55; color: var(--slate);
  white-space: pre-wrap;
  min-height: 24px;
}
.rv-notes:empty::after {
  content: "(no notes)"; color: var(--rule); font-style: italic;
}
.confirm-actions {
  margin-top: 24px; padding-top: 18px;
  border-top: 2px solid var(--steel);
  display: flex; gap: 16px; align-items: center; justify-content: space-between;
}
.confirm-actions form { margin: 0; padding: 0; }
.back-btn {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 18px; letter-spacing: 0.04em;
  color: var(--steel);
  background: var(--paper-dark); border: 2px solid var(--steel);
  padding: 10px 24px; cursor: pointer;
  text-decoration: none; display: inline-block;
}
.back-btn:hover { background: var(--paper-deep); }

/* Success card */
.success {
  margin-top: 24px;
  background: var(--paper-dark);
  border: 1px solid var(--rule);
  border-left: 4px solid var(--teal);
  padding: 24px 28px;
  display: none;
}
.success.show { display: block; }
.success-head {
  display: flex; justify-content: space-between; align-items: baseline;
  border-bottom: 1px solid var(--rule); padding-bottom: 12px; margin-bottom: 14px;
}
.success-title {
  font-family: "Big Shoulders Display", "BigShoulders", sans-serif;
  font-weight: 700; font-size: 24px; color: var(--teal-deep);
}
.success-meta {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--steel-soft);
}
.success-recap {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 14px; padding: 14px 16px; margin-top: 10px;
  background: var(--paper-dark); border-left: 3px solid var(--amber);
  color: var(--steel-dark);
}

/* ===========================================================
   Impersonation banner — shown when admin views-as another user
   Sticks above the topbar; amber background, steel-dark text.
   =========================================================== */
.impersonation-banner {
  position: sticky; top: 0; z-index: 60;
  display: flex; align-items: center; gap: 16px;
  background: var(--amber);
  color: var(--steel-dark);
  padding: 10px 24px;
  font-family: "Big Shoulders Display", sans-serif;
  font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase;
  font-size: 13px;
  border-bottom: 2px solid var(--amber-deep);
  box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}
.impersonation-banner__icon { font-size: 18px; }
.impersonation-banner__text { flex: 1; }
.impersonation-banner__text strong { color: var(--steel-dark); }
.impersonation-banner__form { margin: 0; }
.impersonation-banner__btn {
  background: var(--steel-dark); color: var(--paper);
  border: none; padding: 6px 14px;
  font-family: inherit; font-weight: 700; font-size: 12px;
  letter-spacing: 0.10em; text-transform: uppercase;
  cursor: pointer;
}
.impersonation-banner__btn:hover { background: var(--slate); }

/* ===========================================================
   Audit log views — table + filter toolbar + paging
   =========================================================== */
.audit-toolbar {
  display: flex; align-items: flex-end; gap: 16px; flex-wrap: wrap;
  padding: 14px 18px; margin: 16px 0;
  background: var(--paper-dark); border-left: 3px solid var(--amber);
}
.audit-filter-form { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; }
.audit-filter-form label { display: flex; flex-direction: column; gap: 4px; }
.audit-filter-form label span {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--steel-soft);
}
.audit-filter-form input {
  padding: 6px 8px; border: 1px solid var(--rule); background: var(--paper);
  font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px;
}
.audit-table-wrap { overflow-x: auto; margin: 16px 0; }
.audit-table {
  width: 100%; border-collapse: collapse;
  font-family: "JetBrains Mono", ui-monospace, monospace; font-size: 12px;
}
.audit-table th, .audit-table td {
  padding: 6px 10px; border-bottom: 1px solid var(--rule);
  text-align: left; vertical-align: top;
}
.audit-table th {
  background: var(--steel-dark); color: var(--paper);
  font-family: "Big Shoulders Display", sans-serif;
  letter-spacing: 0.08em; text-transform: uppercase; font-size: 11px;
}
.audit-table tbody tr:hover { background: var(--paper-dark); }
.audit-table .muted { color: var(--steel-soft); }
.audit-table code.payload {
  display: block; max-width: 320px; overflow: hidden;
  text-overflow: ellipsis; white-space: nowrap;
  font-size: 11px;
}
.audit-paging {
  display: flex; gap: 12px; align-items: center; justify-content: flex-end;
  margin: 16px 0;
}
.audit-page-label {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 11px; letter-spacing: 0.14em;
  color: var(--steel-soft); text-transform: uppercase;
}

/* ===========================================================
   Admin · merged Aircraft per-plane gear (Section C)
   Each plane row = a top bar (tail + type + actions) plus an
   expandable gear panel. Reuses the intake roster classes
   (.cam-row / .toggle-pill / .cb-box / .toggle-text-on|off) so
   admin defaults render exactly like the slip; the panel just
   drops the Camera ID column (serials are per-flight).
   =========================================================== */
.list-row--plane { display: block; padding: 0; }
.list-row--plane .row-top {
  display: grid;
  grid-template-columns: 32px 150px 180px 1fr auto auto auto;
  gap: 10px; align-items: center; padding: 10px 12px;
}
.list-row--plane .row-top input.tail { flex: none; width: 100%; }

/* Loud expand button (Lin's "obvious button" call) */
.btn-expand {
  border-color: var(--teal) !important; color: var(--teal-deep) !important;
  background: rgba(47,126,126,0.12) !important;
}
.btn-expand:hover { background: rgba(47,126,126,0.22) !important; }
.list-row--plane.expanded .btn-expand {
  background: var(--teal) !important; color: var(--paper) !important;
}

/* Gear panel — hidden until the row is expanded */
.list-row--plane .gear-panel {
  display: none;
  background: var(--paper-deep);
  border-top: 1px solid var(--rule);
  padding: 18px 22px 20px;
}
.list-row--plane.expanded .gear-panel { display: block; }
.gear-header {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--steel-dark); font-weight: 700;
  padding: 6px 12px; background: var(--paper);
  border-left: 3px solid var(--amber);
  display: inline-block; margin-bottom: 16px;
}
.gear-header .sep { color: var(--steel-soft); padding: 0 6px; }
.gear-header .tail { color: var(--amber-deep); }

/* Admin gear roster: same grid as intake minus the Camera ID column. */
.gear-panel .cam-head,
.gear-panel .cam-row { grid-template-columns: 36px 1fr 130px 100px; }

.gear-hint {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.04em; color: var(--steel-soft);
  margin-top: 14px; line-height: 1.6;
}
.gear-hint strong { color: var(--steel-dark); }

/* Plane add-form: keep the tail input from greedily growing + hint copy. */
.add-form--plane input.tail { flex: 0 1 180px; }
.add-form--plane .add-hint {
  font-family: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px; letter-spacing: 0.04em; color: var(--slate-soft); flex: 1;
}

