/* tasks/030 — Guest Registration Card + sign QR slips (screen + print).
   App-specific (.grc-*) layered on DiveOS tokens. The SAME card partial renders
   on the staff page, the portal sign page, and paper — print rules strip the
   app chrome and keep the document. */

.grc-card {
  background: var(--surface);
  border: 1px solid var(--hairline);
  border-radius: var(--radius-lg);
  padding: 24px 28px;
  max-width: 720px;
}
.grc-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-bottom: 2px solid var(--ink); padding-bottom: 12px; margin-bottom: 14px; }
.grc-title { font-family: var(--font-display); font-size: var(--text-xl); font-weight: 600; color: var(--ink); }
.grc-property { font-size: var(--text-xs); color: var(--text-muted); line-height: 1.5; }
.grc-logo { max-height: 48px; max-width: 140px; object-fit: contain; }
.grc-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; }
.grc-field { display: flex; gap: 8px; padding: 6px 0; border-bottom: 1px solid var(--hairline-2); font-size: var(--text-sm); }
.grc-field--wide { grid-column: 1 / -1; }
.grc-label { flex: none; width: 130px; color: var(--text-muted); font-size: var(--text-xs); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; padding-top: 2px; }
.grc-value { color: var(--ink); min-width: 0; overflow-wrap: anywhere; }
.grc-notice { margin-top: 14px; padding: 10px 12px; border: 1px solid var(--hairline); border-radius: var(--radius-md); font-size: var(--text-xs); color: var(--text-muted); white-space: pre-line; }
.grc-sigblock { margin-top: 16px; display: flex; align-items: flex-end; gap: 18px; }
.grc-sigbox { flex: 1; border: 1px solid var(--hairline-strong); border-radius: var(--radius-md); min-height: 88px; display: flex; align-items: center; justify-content: center; background: var(--surface); }
.grc-sigbox img { max-height: 80px; max-width: 100%; }
.grc-sigmeta { font-size: var(--text-2xs); color: var(--muted-2); }

/* Signature pad (draw/type) — sizes for the DiveOS .sig-* classes. */
.grc-pad .sig-canvas { width: 100%; height: 160px; touch-action: none; }
.grc-pad .sig-canvas-container { border: 2px dashed var(--hairline-strong); border-radius: var(--radius-md); overflow: hidden; }

/* Batch QR slips — one compact slip per signatory, grid on screen,
   2-up per row on paper with page-break control. */
.grc-slips { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; }
.grc-slip { display: flex; gap: 14px; align-items: center; border: 1px dashed var(--hairline-strong); border-radius: var(--radius-md); padding: 14px; background: var(--surface); break-inside: avoid; }
.grc-slip-name { font-family: var(--font-display); font-weight: 600; color: var(--ink); }
.grc-slip-meta { font-size: var(--text-xs); color: var(--text-muted); line-height: 1.5; }

.grc-print-only { display: none; }

@media print {
  .grc-print-only { display: flex !important; }
  /* Keep the document, drop the app. */
  .diveos-sidebar, .diveos-topbar, .gp2-side, .gp2-tabs, .no-print { display: none !important; }
  .diveos-shell, .diveos-main, .gp2-frame, .gp2-main { display: block !important; margin: 0 !important; padding: 0 !important; }
  body { background: var(--surface) !important; }
  .grc-card { border: none; border-radius: 0; max-width: none; padding: 0; }
  .grc-slips { grid-template-columns: 1fr 1fr; }
  a[href]::after { content: none !important; }
  @page { margin: 14mm; }
}

/* ── Passenger manifest sheets (tasks/009 #2) ─────────────────────────── */
.mfp-sheet { background: var(--surface); border: 1px solid var(--hairline); border-radius: var(--radius-lg); padding: 22px 26px; }
.mfp-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; border-bottom: 2px solid var(--ink); padding-bottom: 10px; margin-bottom: 12px; }
.mfp-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; margin-bottom: 14px; }
.mfp-table { width: 100%; border-collapse: collapse; font-size: var(--text-sm); }
.mfp-table th { text-align: left; font-size: var(--text-2xs); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--text-muted); border-bottom: 1px solid var(--hairline-strong); padding: 6px 8px; }
.mfp-table td { border-bottom: 1px solid var(--hairline-2); padding: 7px 8px; color: var(--ink); }
.mfp-foot { margin-top: 18px; display: flex; flex-direction: column; gap: 16px; }
.mfp-signs { display: flex; gap: 40px; }
.mfp-sign { flex: 1; font-size: var(--text-xs); color: var(--text-muted); }
.mfp-signline { border-bottom: 1px solid var(--ink); height: 34px; margin-bottom: 5px; }

@media print {
  .mfp-sheet { border: none; border-radius: 0; padding: 0; break-after: page; }
  .mfp-sheet:last-child { break-after: auto; }
}
