/* =====================================================================
   Tolliver Quote — the engine's few extra surfaces. SAMPLE WORK.
   Things the machine needs that the design reference does not draw yet:
   the sample Stripe sheet, backup/restore, the signed-copy send-back,
   "record a Stripe payment", the estimator's bar over the customer's quote.
   Built only from styles.css tokens; the designer may restyle or absorb
   any of it into styles.css. Nothing here overrides a tq- surface.
   ===================================================================== */
.tq-home-tools { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; }
.tq-home-tools .tq-btn { flex: 1 1 auto; }
.tq-home-sample { font-size: 13px; line-height: 1.45; color: var(--ink-2); margin: 22px 0 0; }

.tq-review-status { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: -6px 0 18px; font-size: 14px; color: var(--ink-2); }
.tq-review-more { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0 0; }
.tq-record-paid { margin-top: 22px; padding: 16px; border: 1px dashed var(--rule-strong); border-radius: var(--r); background: var(--paper); }
.tq-record-paid .tq-section-label { margin-top: 0; }
.tq-record-paid .tq-field { margin: 12px 0 10px; }

.tq-pad-block + .tq-pad-block, #second-wrap .tq-pad-block { margin-top: 18px; }
#second-wrap { text-align: center; }
#second-wrap .tq-pad-block { text-align: left; }

.tq-sendback { margin-top: 16px; padding: 16px; border: 1px dashed var(--fescue); border-radius: var(--r); background: var(--paper); }
.tq-sendback .tq-section-label { margin: 0 0 6px; }
.tq-sendback .tq-actions-row { margin: 12px 0 4px; }

.tq-on-stripe { margin: 10px 0 0; font: 600 15px/1.4 var(--f-ui); font-variant-numeric: tabular-nums; color: var(--ink); }

/* the estimator's bar above the customer's quote (never printed) */
.tq-est-bar { display: flex; justify-content: space-between; align-items: center; gap: 8px; max-width: 780px; margin: 0 auto; padding: 8px var(--pad) 0; }
@media (min-width: 1000px) { .tq-est-bar { padding: 16px 0 0; } body.tq-customer .tq-est-bar + .tq-quote { margin-top: 12px; } }

/* SAMPLE ONLY: the sheet that stands where Stripe's page would open */
.tq-sheet-scrim { position: fixed; inset: 0; z-index: 90; background: rgba(28, 33, 30, .55); display: flex; align-items: flex-end; justify-content: center; }
.tq-sheet { width: 100%; max-width: 520px; max-height: 92vh; overflow: auto; display: grid; gap: 10px;
  background: var(--paper); border-radius: 20px 20px 0 0; padding: 20px var(--pad) calc(16px + var(--safe-b)); box-shadow: 0 -12px 40px rgba(28, 33, 30, .18); }
.tq-sheet .tq-badge { justify-self: start; }
.tq-sheet h2 { font: 600 24px/1.2 var(--f-display); margin: 4px 0 0; }
.tq-sheet p { margin: 0; }
.tq-sheet .tq-help { margin: 0; }
.tq-sheet-url { font-size: 12px; line-height: 1.4; word-break: break-all; background: var(--limestone); padding: 8px 10px; border-radius: var(--r-sm); font-variant-numeric: tabular-nums; }
@media (min-width: 600px) { .tq-sheet-scrim { align-items: center; } .tq-sheet { border-radius: var(--r-lg); padding: 28px; } }

@media print {
  .tq-est-bar, .tq-sheet-scrim, .tq-sendback, .tq-record-paid, .tq-on-stripe, .tq-sample-pay-note { display: none !important; }
}
