.flight-brief-workspace { display: grid; gap: 16px; min-width: 0; }
.flight-brief-workspace .quote-editor-workspace { margin-top: 0; }
.flight-brief-flight { min-width: 0; scroll-margin-top: 24px; }
.flight-brief-flight:last-child .quote-itinerary-row { border-bottom: 0; }
.flight-brief-flight dialog { width: min(1040px, calc(100vw - 2rem)); max-height: 90dvh; }
.flight-brief-access-options { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 24px; }
.flight-brief-access-options label { min-height: 40px; align-items: center; }
.flight-brief-email-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.flight-brief-email-fields > :nth-child(n+3) { grid-column: 1 / -1; }
.flight-brief-document-frame { width: 100%; height: 75vh; min-height: 480px; border: 1px solid var(--color-line); border-radius: var(--radius-control); background: var(--color-surface); }
.flight-brief-version-row { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--color-line); }
@media (max-width: 1023px) {
  .flight-brief-workspace .quote-editor-workspace { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 639px) {
  .flight-brief-access-options, .flight-brief-email-fields { grid-template-columns: minmax(0, 1fr); }
  .flight-brief-document-frame { min-height: 400px; }
}

.passenger-manifest-frame { display: block; margin-block: var(--spacing-section); }
.passenger-manifest { overflow: hidden; border: 1px solid var(--color-line); border-radius: var(--radius-panel); background: var(--color-surface); box-shadow: var(--shadow-panel); }
.passenger-manifest-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 20px; padding: 24px; }
.passenger-manifest-scroll { overflow-x: auto; }
.passenger-manifest-table { width: 100%; border-collapse: collapse; text-align: left; font-size: 14px; }
.passenger-manifest-table th, .passenger-manifest-table td { padding: 16px; border-top: 1px solid var(--color-line); border-right: 1px solid var(--color-line); }
.passenger-manifest-table th { position: relative; }
.passenger-manifest-table tr > :last-child { border-right: 0; }
.passenger-manifest-table thead th { min-width: 210px; background: var(--color-surface-muted); vertical-align: bottom; font-weight: 400; }
.passenger-manifest-table tr > :first-child { min-width: 200px; }
.passenger-manifest-table thead th:last-child { min-width: 200px; }
.passenger-manifest-table tbody th { font-weight: 600; }
.passenger-flight-number { font-family: var(--font-mono); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.passenger-presence, .passenger-manifest-actions { display: flex; align-items: center; gap: 10px; white-space: nowrap; }
.passenger-manifest-actions > * { flex-shrink: 0; }
.passenger-manifest-actions button { white-space: nowrap; max-width: none; }
.passenger-manifest-cell-label { display: none; }
@media (max-width: 639px) {
  .passenger-manifest-header { padding: 20px; }
  /* Phones: each passenger becomes a card (name, then each flight with its toggles, then actions). */
  .passenger-manifest-scroll { overflow: visible; }
  .passenger-manifest-table, .passenger-manifest-table tbody, .passenger-manifest-table tr, .passenger-manifest-table th, .passenger-manifest-table td { display: block; }
  .passenger-manifest-table thead { display: none; }
  .passenger-manifest-table tbody tr { display: grid; gap: 14px; padding: 16px; border-top: 1px solid var(--color-line); }
  .passenger-manifest-table th, .passenger-manifest-table td { min-width: 0; padding: 0; border: 0; }
  .passenger-manifest-table tr > :first-child { min-width: 0; }
  .passenger-manifest-cell-label { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; margin-bottom: 8px; }
  .passenger-presence { white-space: normal; }
  .passenger-presence > button { flex: 1 1 0; }
  .passenger-manifest-actions { flex-wrap: wrap; }
}

.flight-brief-order-journal { display: flex; flex-direction: column; text-align: left; }
.flight-brief-order-journal .directory-notes-history { flex: 0 1 auto; max-height: min(320px, 45dvh); }

.flight-brief-lists { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); padding-top: 24px; border-top: 1px solid var(--color-line); }
.flight-brief-list-frame { display: block; min-width: 0; }
.flight-brief-lists > :first-child { padding-right: 24px; }
.flight-brief-lists > :last-child { padding-left: 24px; border-left: 1px solid var(--color-line); }
.flight-brief-list-frame .contract-section { gap: 20px; }
.flight-brief-staff { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--color-line); }
.flight-brief-list-heading { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; min-height: 40px; }
.flight-brief-list-entry { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 12px; padding-block: 16px; }
.flight-brief-list-entry:first-child { padding-top: 0; }
.flight-brief-list-entry:last-child { padding-bottom: 0; }
@media (max-width: 639px) {
  .flight-brief-lists { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .flight-brief-lists > :first-child { padding-right: 0; }
  .flight-brief-lists > :last-child { border-left: 0; padding-left: 0; border-top: 1px solid var(--color-line); padding-top: 24px; }
}

.flight-brief-content > .contract-section { display: block; padding-bottom: 20px; margin: 0; border-bottom: 1px solid var(--color-line); }
.flight-brief-content > .contract-section:last-child { border-bottom: 0; }
.flight-brief-content > .passenger-manifest-frame { margin-block: 0; }

.flight-brief-notes { min-width: 0; text-align: left; }
.flight-brief-notes .directory-notes-heading { display: none; }
.flight-brief-notes .directory-notes-history { flex: 0 1 auto; max-height: min(360px, 45dvh); }
.flight-brief-notes .directory-note > span, .flight-brief-notes form > span { width: 28px; height: 28px; border: 1px solid var(--color-line); background: var(--color-surface-muted); color: var(--color-ink); }

.flight-brief-notes .directory-notes-history { padding: 4px 0 0; }
.flight-brief-notes .directory-note { gap: 10px; }
.flight-brief-notes form.group\/note { gap: 10px; padding: 12px 0 0; }
.flight-brief-notes form:not(:focus-within) p[id$="_hint"] { display: none; }
/* Trix styles its toolbar as a block; let the formatting buttons wrap in the 280 px rail. */
.flight-brief-notes trix-toolbar { display: flex; flex-wrap: wrap; }

.flight-brief-handlings { display: block; margin-top: 16px; }
.flight-brief-handling-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; gap: 16px; margin-top: 0; }
.flight-brief-handling-card { display: flex; flex-direction: column; align-items: stretch; min-width: 0; gap: 16px; padding: 20px; border: 1px solid var(--color-line); border-radius: var(--radius-panel); }
.flight-brief-handling-card-header { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 12px; }
.flight-brief-handling-airport { padding: 5px 8px; border-radius: var(--radius-control); background: var(--color-brand); color: var(--color-on-brand); font-family: var(--font-mono); font-size: 12px; font-weight: 600; letter-spacing: .04em; }
.flight-brief-handling-instructions { border-top: 1px solid var(--color-line); padding-top: 12px; }
.flight-brief-handling-instructions summary { min-height: 32px; padding-block: 4px; }
@media (max-width: 639px) {
  .flight-brief-handling-grid { grid-template-columns: minmax(0, 1fr); }
  .flight-brief-handling-card { padding: 16px; }
}

.flight-brief-handling-time { display: flex; align-items: baseline; flex-wrap: wrap; gap: 4px 8px; }
.flight-brief-handling-time time { font-size: 16px; }
.flight-brief-handling-time p { margin: 0; }

.flight-brief-country-flag { display: block; width: 24px; height: 18px; flex-shrink: 0; object-fit: cover; }

.flight-brief-entry-actions { display: flex; align-items: center; gap: 8px; }
.flight-brief-entry-action { min-width: 32px; min-height: 32px; aspect-ratio: 1; padding: 6px; }
.flight-brief-entry-action--remove { color: var(--color-danger); }
.flight-brief-entry-action--remove:hover,
.flight-brief-entry-action--remove:focus-visible { background: var(--color-danger-soft); }


.flight-brief-content > .contract-section > h2 { margin-bottom: 0; }
.flight-brief-content > .contract-section > .flight-brief-flight:first-of-type .quote-itinerary-row { padding-top: 12px; }

.flight-brief-services.contract-section { gap: 8px; }
.flight-brief-services .flight-brief-list-entry { align-items: center; padding-block: 12px; }

/* The send screen follows the contract's information / document layout. */
.flight-brief-send-layout { display: grid; align-items: start; gap: 24px; margin-top: 24px; }
.flight-brief-send-fields .flight-brief-access-options,
.flight-brief-send-fields .flight-brief-email-fields { grid-template-columns: minmax(0, 1fr); }
.flight-brief-send-fields .flight-brief-email-fields > * { grid-column: auto; }
.flight-brief-savebar { display: flex; flex-direction: column; align-items: stretch; gap: 16px; margin-top: 24px; padding-top: 14px; border-top: 1px solid var(--color-line); }
.flight-brief-savebar > p { max-width: 52ch; }
.flight-brief-send-fields > #flight-brief-issued-summary { position: static; }
@media (max-width: 639px) {
  .flight-brief-savebar > p { display: none; }
  .flight-brief-savebar > div { width: 100%; }
  .flight-brief-savebar button { flex: 1 1 100%; }
}
.flight-brief-send-preview .quote-section-heading { flex-wrap: wrap; }
@media (min-width: 1280px) {
  .flight-brief-send-layout { grid-template-columns: minmax(320px, 420px) minmax(0, 1fr); }
  .flight-brief-send-preview { position: sticky; top: 24px; }
}
