/* ── Cancellation policy ack modal (T110.4) ──────────────────────────
 * Per `feedback_explicit_consent_for_fees`: passive paragraph isn't
 * consent. This modal blocks Submit on the paid path until the user
 * explicitly checks the agree checkbox; only then can Continue fire the
 * confirm POST with the {ack_ts, policy_text_hash, policy_version} body
 * the server pins to the appointment row.
 *
 * Split out of book-base.css to keep that file under its 400 LOC cap
 * (T104.5 enforcement test). Linked alongside the other public
 * stylesheets from dashboard/public/book.html.
 */

.ack-modal {
  position: fixed;
  inset: 0;
  z-index: 10100;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ack-modal.hidden { display: none; }
.ack-modal-overlay {
  position: absolute;
  inset: 0;
  background: rgba(5, 8, 16, 0.78);
  /* Overlay click is a no-op in book-page.js (stops propagation),
   * but cursor stays default so the user doesn't read it as dismiss. */
}
.ack-modal-panel {
  position: relative;
  width: min(440px, 92vw);
  background: var(--bg-card);
  border: 1px solid var(--brand);
  padding: 24px 26px 20px;
  font-size: 12px;
  line-height: 1.7;
  color: var(--text-primary);
}
.ack-modal-panel h3 {
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--silk);
  font-weight: 700;
  margin-bottom: 14px;
  text-transform: uppercase;
}
.ack-modal-policy {
  color: var(--text-primary);
  margin-bottom: 14px;
  word-wrap: break-word;
}
.ack-modal-check {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 16px;
  cursor: pointer;
  font-size: 12px;
  color: var(--text-primary);
}
.ack-modal-check input[type="checkbox"] {
  margin-top: 3px;
  flex-shrink: 0;
}
.ack-modal-panel .primary[disabled] {
  opacity: 0.5;
  cursor: not-allowed;
}
@media (max-width: 480px) {
  .ack-modal-panel { padding: 18px 16px 16px; font-size: 12px; }
  .ack-modal-panel h3 { font-size: 10px; margin-bottom: 10px; }
}
