/* UCOFL — patient forms, printable documents and the Patient Forms hub.
 *
 * Loaded AFTER ucofl.css on: forms.html, build/forms/*.html (generated by
 * tools/forms/build_forms.py) and the printable patient documents (generated
 * by tools/forms/build_documents.py). Uses ucofl.css tokens only — no raw
 * colours except the AA-computed form-state tints already defined there.
 *
 * Two halves:
 *   1. SCREEN — form controls per DESIGN-SYSTEM §4.8 (52px inputs, radius 12,
 *      slate hover, blue-text focus with the soft sky glow), the hub rows, the
 *      document typography.
 *   2. PRINT  — @media print turns the SAME markup into a letter-size paper
 *      form: practice letterhead, ruled answer lines, box glyphs, no chrome.
 *      Blank copies (html.pf-blank, from ?print=blank) show every conditional
 *      part so a paper filler is never missing one; filled copies show only
 *      the parts that applied.
 * Spec: notes/SPEC-forms-redesign.md §5.
 */

/* ── 1. SCREEN ─────────────────────────────────────────────────────────── */

.pf-print-only, .lh, .pf-print-head, .pf-print-hint { display: none; }

html:not(.pf-blank) .pf-off { display: none !important; }

.pf-hero .lead a { color: var(--blue-text); }
.pf-notice {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  margin-top: 1.75rem;
  padding: 1rem 1.125rem;
  max-width: 62ch;
  border-radius: 12px;
  background: #f2f8fb;
  border: 1px solid #cfe3ee;
  color: var(--ink);
  font-size: var(--fs-small);
  line-height: 1.55;
}
.pf-notice svg { flex: none; margin-top: 2px; color: var(--blue-text); }
.pf-notice p { margin: 0; }
.pf-notice--hero { margin-top: 2rem; }
.pf-blank-banner { margin-top: 1.25rem; font-weight: 600; }

.pf-wrap { padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(4rem, 8vw, 6rem); }

/* Step bar */
.pf-steps { margin-bottom: clamp(2rem, 5vw, 3rem); border-bottom: 1px solid var(--line); }
.pf-steps ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.75rem; }
.pf-steps li { font-size: var(--fs-small); }
.pf-steps a {
  display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px;
  color: var(--ink-2); text-decoration: none; border-bottom: 2px solid transparent; margin-bottom: -1px;
}
.pf-steps a:hover { color: var(--ink); }
.pf-steps a[aria-current="step"] { color: var(--ink); font-weight: 600; border-bottom-color: var(--amber-line); }
.pf-step-n {
  display: inline-grid; place-items: center; width: 1.6rem; height: 1.6rem; border-radius: 50%;
  border: 1px solid var(--line); font-size: var(--fs-micro); font-variant-numeric: tabular-nums;
}
.pf-steps a[aria-current="step"] .pf-step-n { border-color: var(--ink); }
.pf-step-min { color: var(--ink-3); font-weight: 400; }
.pf-step-note { display: inline-flex; align-items: center; gap: 0.5rem; min-height: 44px; color: var(--ink-3); flex-wrap: wrap; }
.pf-step-note a { min-height: 0; color: var(--blue-text); text-decoration: underline; border: 0; }

/* Parts (one per form) */
.pf-part + .pf-part { margin-top: clamp(4rem, 8vw, 6rem); }
.pf-part-head { margin-bottom: 1.5rem; }
.pf-part-head h2 { font-size: var(--fs-h3); max-width: none; }
.pf-part-head h2:focus { outline: none; }
.pf-part-n {
  display: inline-grid; place-items: center; width: 2.25rem; height: 2.25rem; margin-right: 0.5rem;
  border-radius: 50%; background: var(--ink); color: #fff; font-size: 1rem; vertical-align: 0.3em;
}
.pf-part-meta { margin-top: 0.5rem; color: var(--ink-3); font-size: var(--fs-small); }
.pf-code { font-variant-numeric: tabular-nums; }
.pf-required-note { margin-top: 0.75rem; font-size: var(--fs-small); color: var(--ink-2); }
.pf-optional { font-weight: 400; color: var(--ink-3); }
.pf-draft { display: inline-block; margin-top: 0.75rem; padding: 0.25rem 0.75rem; border: 1px dashed var(--amber-line); border-radius: 999px; font-size: var(--fs-micro); font-weight: 600; color: var(--amber-text); }

/* Sections */
.pf-section { border: 0; margin: 0; padding: 2rem 0 0.5rem; min-width: 0; border-top: 1px solid var(--line); }
.pf-section + .pf-section, .pf-toggle + .pf-section { margin-top: 1.5rem; }
.pf-section > legend {
  float: left; width: 100%; padding: 0; margin: 0 0 1.25rem;
  font-size: var(--fs-h4); font-weight: 600; letter-spacing: -0.005em; line-height: 1.3;
}
.pf-section > legend + * { clear: both; }
.pf-intro { margin: -0.5rem 0 1.25rem; color: var(--ink-2); font-size: var(--fs-small); }

.pf-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 1.25rem; }
.pf-w12 { grid-column: span 12; } .pf-w8 { grid-column: span 8; } .pf-w6 { grid-column: span 6; }
.pf-w4 { grid-column: span 4; } .pf-w3 { grid-column: span 3; }
@media (max-width: 700px) {
  .pf-w8, .pf-w6, .pf-w4 { grid-column: span 12; }
  .pf-w3 { grid-column: span 6; }
}

.pf-group { grid-column: span 12; border: 1px solid var(--line); border-radius: var(--radius); padding: 1.25rem 1.25rem 0.25rem; margin: 0 0 1.375rem; min-width: 0; }
.pf-sublegend { padding: 0 0.5rem; margin-left: -0.5rem; font-weight: 600; font-size: var(--fs-small); text-transform: uppercase; letter-spacing: 0.12em; color: var(--ink-2); }

/* Fields — DESIGN-SYSTEM §4.8, extended to date inputs and long forms */
.pf-field { margin: 0 0 1.375rem; min-width: 0; }
fieldset.pf-field { border: 0; padding: 0; }
.pf-field > label, .pf-choice > legend, .pf-repeat > legend {
  display: block; padding: 0; margin-bottom: 0.5rem;
  font-size: var(--fs-small); font-weight: 600; color: var(--ink); line-height: 1.4;
}
.pf-help { margin: -0.25rem 0 0.5rem; font-size: var(--fs-micro); color: var(--ink-3); max-width: 60ch; }
.pf input[type="text"], .pf input[type="email"], .pf input[type="tel"], .pf input[type="date"], .pf textarea {
  width: 100%;
  min-height: 52px;
  padding: 14px 16px;
  font-family: var(--font-sans);
  font-size: 1rem;
  color: var(--ink);
  background: #fbfcfd;
  border: 1px solid var(--line);
  border-radius: 12px;
  transition: border-color 160ms var(--ease), box-shadow 160ms var(--ease), background-color 160ms var(--ease);
}
.pf input[type="date"] { appearance: none; -webkit-appearance: none; display: block; }
.pf textarea { min-height: 112px; resize: vertical; line-height: 1.5; }
.pf input:hover, .pf textarea:hover { border-color: var(--slate); }
.pf input:focus-visible, .pf textarea:focus-visible {
  outline: none; background: var(--paper); border-color: var(--blue-text); box-shadow: 0 0 0 4px rgba(58, 116, 150, 0.18);
}
.pf input:user-invalid, .pf textarea:user-invalid { border-color: var(--error); }

/* Choices as calm chips: the whole chip is the tap target (≥44px, §7.3) */
.pf-options { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.pf-options--cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 560px) { .pf-options--cols { grid-template-columns: 1fr; } }
.pf-opt {
  display: inline-flex; align-items: center; gap: 0.625rem; min-height: 44px;
  padding: 0.5rem 0.875rem; border: 1px solid var(--line); border-radius: 12px; background: #fbfcfd;
  font-size: var(--fs-small); line-height: 1.35; cursor: pointer;
  transition: border-color 160ms var(--ease), background-color 160ms var(--ease);
}
.pf-opt:hover { border-color: var(--slate); }
.pf-opt:has(input:checked) { border-color: var(--blue-text); background: #f2f8fb; }
.pf-opt:has(input:focus-visible) { box-shadow: 0 0 0 4px rgba(58, 116, 150, 0.18); border-color: var(--blue-text); }
.pf input[type="radio"], .pf input[type="checkbox"], .pf-receipt input[type="checkbox"] {
  flex: none; width: 20px; height: 20px; margin: 0; accent-color: var(--blue-text);
}
.pf-checkline { display: flex; gap: 0.75rem; align-items: flex-start; min-height: 44px; padding-top: 0.6rem; cursor: pointer; font-size: var(--fs-small); font-weight: 500; }
.pf-checkline input { margin-top: 1px !important; }
.pf-field > .pf-checkline { display: flex; margin-bottom: 0; font-weight: 500; }
.pf-check { margin-bottom: 0.75rem; }
.pf-check .pf-help { margin: 0.25rem 0 0 2rem; }
.pf-check--box { padding: 0.75rem 1rem 0.75rem; border: 1px solid var(--line); border-radius: 12px; background: var(--paper-2); }
.pf-check--box .pf-checkline { padding-top: 0.15rem; }

/* Repeating rows */
.pf-rep-head { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)) 5.5rem; gap: 0 0.75rem; font-size: var(--fs-micro); color: var(--ink-3); margin-bottom: 0.375rem; }
.pf-rep-head span { grid-column: span var(--w); }
.pf-rep-rows { display: block; }
.pf-rep-row { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)) 5.5rem; gap: 0.5rem 0.75rem; margin-bottom: 0.5rem; align-items: end; }
.pf-rep-row.pf-rep-off { display: none; }
.pf-rep-cell { grid-column: span var(--w); display: block; min-width: 0; }
.pf-rep-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pf-rep-remove {
  min-height: 44px; border: 0; background: none; color: var(--ink-3); font: inherit; font-size: var(--fs-micro);
  text-decoration: underline; cursor: pointer;
}
.pf-rep-remove:hover { color: var(--ink); }
.pf-rep-row:first-child .pf-rep-remove { visibility: hidden; }
.pf-rep-add { margin-top: 0.5rem; min-height: 44px; background: none; border: 0; padding: 0; font-family: inherit; cursor: pointer; }
@media (max-width: 700px) {
  .pf-rep-head { display: none; }
  .pf-rep-row { grid-template-columns: 1fr; padding: 0.75rem; border: 1px solid var(--line); border-radius: 12px; }
  .pf-rep-cell { grid-column: auto; }
  .pf-rep-label { position: static; width: auto; height: auto; clip: auto; display: block; font-size: var(--fs-micro); color: var(--ink-2); margin-bottom: 0.25rem; }
  .pf-rep-row:first-child .pf-rep-remove { display: none; }
  .pf-rep-remove { justify-self: start; }
}

/* Family history */
.pf-fam-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.25rem 1.5rem; }
@media (max-width: 700px) { .pf-fam-grid { grid-template-columns: 1fr; } }
.pf-fam-row { display: grid; gap: 0.25rem; padding-bottom: 0.25rem; border-bottom: 1px solid var(--line); }
.pf-fam-who { display: flex; align-items: center; gap: 0.5rem; margin: 0 0 0.5rem 2rem; font-size: var(--fs-micro); color: var(--ink-2); }
.pf .pf-fam-who input { min-height: 40px; padding: 8px 12px; }
.pf-fam-none { margin-top: 1rem; }

/* Review of systems */
.pf-ros { display: grid; gap: 1rem; }
.pf-ros-sys { border: 0; padding: 0 0 1rem; margin: 0; min-width: 0; border-bottom: 1px solid var(--line); }
.pf-ros-sys legend { padding: 0; margin-bottom: 0.5rem; font-size: var(--fs-small); font-weight: 600; }
.pf-ros-other { display: inline-flex; align-items: center; gap: 0.5rem; flex: 1 1 14rem; font-size: var(--fs-small); }
.pf .pf-ros-other input { min-height: 44px; padding: 8px 12px; }

/* AUA Symptom Index */
.pf-aua { display: block; }
.pf-aua-q { border: 0; margin: 0 0 1.5rem; padding: 0; min-width: 0; }
.pf-aua-q legend { padding: 0; margin-bottom: 0.625rem; font-size: var(--fs-small); font-weight: 600; line-height: 1.45; }
.pf-aua-n { font-variant-numeric: tabular-nums; color: var(--blue-text); }
.pf-aua-tag { display: block; font-size: var(--fs-label); letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); font-weight: 600; margin-bottom: 0.25rem; }
.pf-aua-pts { font-weight: 400; color: var(--ink-3); font-variant-numeric: tabular-nums; }
.pf-aua-score { margin-top: 0.5rem; padding: 1.25rem 1.375rem; border-radius: var(--radius); background: var(--paper-2); border: 1px solid var(--line); }
.pf-aua-total { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0.5rem; font-weight: 600; max-width: none; }
.pf-aua-out { display: inline-block; min-width: 2.5ch; font-size: var(--fs-h3); font-variant-numeric: tabular-nums; border-bottom: 2px solid var(--amber-line); text-align: center; }
.pf-aua-out--qol { font-size: inherit; min-width: 2ch; border-bottom-width: 1px; }
.pf-aua-total-label { font-size: var(--fs-small); }
.pf-aua-of { color: var(--ink-3); font-weight: 400; }
.pf-aua-status { margin-top: 0.375rem; font-size: var(--fs-small); color: var(--ink-2); min-height: 1.5em; }
.pf-aua-bands { margin-top: 0.5rem; font-size: var(--fs-micro); color: var(--ink-2); max-width: none; }
.pf-aua-src { margin-top: 0.5rem; font-size: var(--fs-micro); color: var(--ink-3); }

/* Legal text + signature */
.pf-legal { margin: 0 0 1.5rem; padding: 1.25rem 1.375rem; border: 1px solid var(--line); border-radius: var(--radius); background: var(--paper-2); }
.pf-legal-h { font-size: var(--fs-small); font-weight: 600; letter-spacing: 0.08em; margin-bottom: 0.75rem; }
.pf-legal p { font-size: var(--fs-small); line-height: 1.6; }
.pf-legal p + p { margin-top: 0.75rem; }
.pf-legal-after { color: var(--ink-3); }
.pf .pf-sig input { font-style: italic; font-size: 1.125rem; }

/* Section toggles */
.pf-toggle { margin-top: 1.5rem; padding: 1.25rem 0 0; border-top: 1px solid var(--line); }
.pf-toggle-note { font-size: var(--fs-small); color: var(--ink-3); margin-bottom: 0.75rem; }

/* Continue / finish */
.pf-continue { margin-top: 2rem; }
.pf-finish { margin-top: clamp(4rem, 8vw, 6rem); padding: clamp(1.5rem, 4vw, 2.5rem); border-radius: 28px; border: 1px solid var(--line); background: linear-gradient(135deg, #f8fafb, #edf3f6); }
.pf-finish h2 { font-size: var(--fs-h3); max-width: none; }
.pf-finish .pf-notice { margin-top: 1.25rem; background: var(--paper); }
.pf-finish-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: 1.5rem; }
.pf-clear-confirm { margin-top: 1rem; font-size: var(--fs-small); display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; align-items: center; }
.pf-clear-confirm .btn--link { background-color: transparent; border: 0; padding: 0; min-height: 44px; font-family: inherit; cursor: pointer; }
.pf-finish .form-privacy { justify-content: flex-start; }
.pf-receipt { margin-top: 1.25rem; }
.pf-receipt-email { margin-top: 0.5rem; max-width: 28rem; }
.pf-review { margin-top: 1.25rem; padding: 1rem 1.25rem; border-radius: 12px; background: var(--paper); border: 1px solid var(--line); }
.pf-review:focus { outline: none; }
.pf-review h3 { font-size: var(--fs-h4); font-weight: 600; }
.pf-review ul { margin: 0.5rem 0; padding-left: 1.25rem; }
.pf-sending { margin-top: 0.75rem; min-height: 1.5em; font-size: var(--fs-small); color: var(--ink-2); }
.pf-finish [data-submit-error] { margin-top: 1.25rem; }
.pf-success { margin-top: 1.25rem; }
.pf-success:focus { outline: none; }
.pf-ref { display: none; }
.pf-bring { margin-top: 2rem; padding-top: 1.5rem; border-top: 1px solid var(--line); }
.pf-bring h3 { font-size: var(--fs-h4); font-weight: 600; }
.pf-bring ul { margin: 0.75rem 0 1rem; padding-left: 1.25rem; display: grid; gap: 0.25rem; }
.pf-bring li::marker { color: var(--blue-text); }
@media (max-width: 560px) {
  .pf-finish-actions .btn { width: 100%; }
  .pf-hero .hero-ctas .btn { width: 100%; }
}

/* ── Hub (forms.html) ─────────────────────────────────────────────────── */
.fx-index { list-style: none; margin: 0; padding: 0; }
.fx-index > li { border-top: 1px solid var(--line); }
.fx-index > li:last-child { border-bottom: 1px solid var(--line); }
.fx-meta { list-style: none; margin: 0.625rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.25rem; font-size: var(--fs-micro); color: var(--ink-3); }
.fx-meta .k { font-weight: 600; letter-spacing: 0.1em; text-transform: uppercase; font-size: 0.6875rem; margin-right: 0.375rem; color: var(--ink-2); }
.fx-kind {
  display: inline-block; margin-left: 0.625rem; padding: 0.125rem 0.5rem; border-radius: 999px; border: 1px solid var(--line);
  font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-2); vertical-align: 0.25em;
}
.fx-row {
  display: grid; grid-template-columns: 4rem 1fr auto; gap: var(--grid-gap); align-items: center;
  padding: clamp(1.125rem, 2.2vw, 1.625rem) clamp(0.5rem, 2vw, 1.5rem);
}
.fx-row .num { font-size: var(--fs-small); font-variant-numeric: tabular-nums; color: var(--blue-text); letter-spacing: 0.1em; }
.fx-row h3 { font-size: clamp(1.125rem, 1.8vw, 1.5rem); font-weight: 500; color: var(--ink); }
.fx-row h3 a { color: inherit; text-decoration: none; }
.fx-row h3 a:hover { text-decoration: underline; text-decoration-thickness: 1px; }
.fx-row .svc-desc { margin-top: 0.5rem; color: var(--ink-3); font-size: var(--fs-small); max-width: 56ch; }
.fx-parts { margin-top: 0.625rem; font-size: var(--fs-small); color: var(--ink-2); }
.fx-parts a { color: var(--blue-text); }
.fx-actions { display: flex; flex-direction: column; align-items: flex-end; gap: 0.5rem; }
.fx-actions .btn--link { min-height: 44px; display: inline-flex; align-items: center; }
.svc-index--light .svc-row .fx-meta { margin-top: 0.625rem; }
@media (max-width: 700px) {
  .fx-row { grid-template-columns: 2.5rem 1fr; }
  .fx-actions { grid-column: 1 / -1; align-items: stretch; }
  .fx-actions .btn { width: 100%; }
}

.fx-trust { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(1.5rem, 3vw, 2.5rem); list-style: none; margin: 0; padding: 0; }
.fx-trust li { border-top: 2px solid var(--ink); padding-top: 1rem; position: relative; }
.fx-trust li::before { content: ""; position: absolute; left: 0; top: -2px; width: 28px; height: 2px; background: var(--amber-line); }
.fx-trust h3 { font-size: var(--fs-h4); font-weight: 600; margin-bottom: 0.5rem; }
.fx-trust p { font-size: var(--fs-small); color: var(--ink-2); }
.fx-trust a { color: var(--blue-text); }
@media (max-width: 900px) { .fx-trust { grid-template-columns: 1fr; } }

.fx-bring { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.625rem; }
.fx-bring li { padding: 0.5rem 1rem; border: 1px solid var(--line); border-radius: 999px; font-size: var(--fs-small); background: var(--paper); }

/* ── Printable documents ──────────────────────────────────────────────── */
.doc-actions { display: flex; flex-wrap: wrap; gap: 0.75rem; }
.doc-toc { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.25rem 1.5rem; font-size: var(--fs-small); }
.doc-toc a { display: inline-flex; min-height: 44px; align-items: center; color: var(--blue-text); }
.doc-body { padding-block: clamp(2.5rem, 6vw, 4.5rem) clamp(4rem, 8vw, 6rem); }
.doc-body .prose h2 { scroll-margin-top: calc(var(--header-h) + 1rem); }
.doc-alert {
  margin-block: 2rem; padding: 1.25rem 1.375rem; border-radius: var(--radius);
  background: #fdf3f2; border: 1px solid #e8c6c3; color: #8c1d16;
}
.doc-alert h2, .doc-alert h3 { color: #8c1d16; font-size: var(--fs-h4) !important; font-weight: 600; margin: 0 0 0.5rem !important; }
.doc-alert ul, .doc-alert ol { margin-top: 0.5rem; }
.doc-alert li::marker { color: #8c1d16 !important; }
.doc-alert a { color: #8c1d16 !important; font-weight: 600; }
.doc-note { margin-block: 1.5rem; padding: 1rem 1.25rem; border-left: 3px solid var(--amber-line); background: var(--paper-2); font-size: var(--fs-small); }
.doc-note p { margin: 0; }
.doc-sign { display: grid; grid-template-columns: 2fr 1fr; gap: 2rem 1.5rem; margin-top: 2.5rem; }
.doc-sign div { border-top: 1px solid var(--ink); padding-top: 0.375rem; font-size: var(--fs-micro); color: var(--ink-2); min-height: 3.5rem; }
.doc-sign-wrap { margin-top: 2rem; }
.prose ul.doc-plans { display: block; columns: 2 14rem; column-gap: 2rem; }
.doc-plans li + li { margin-top: 0.375rem; }
.doc-plans li { break-inside: avoid; }
.doc-quote { margin-block: 1.5rem; padding: 1.25rem 1.375rem; border: 1px solid var(--line); border-radius: var(--radius); }
.doc-quote > * + * { margin-top: 1rem; }
.doc-quote .doc-src { font-size: var(--fs-micro); color: var(--ink-3); }
.doc-meta { font-size: var(--fs-micro); color: var(--ink-3); margin-top: 2.5rem; }
.doc-compact { display: block; }

/* ── 2. PRINT ──────────────────────────────────────────────────────────── */
@page {
  size: letter;
  margin: 0.6in 0.65in;
  /* Every printed page identifies the practice and its page number, so a sheet
     that comes loose can be put back (Chromium 131+ supports margin boxes;
     other browsers fall back to the in-page letterhead). Forms override the
     bottom-left with their code + version (named pages, emitted by
     build_forms.py) and js/forms.js fills the patient line at the top. */
  @bottom-left { content: "Urological Consultants of Florida \00b7  (305) 672-4222"; font: 7.5pt "Switzer", Arial, sans-serif; color: #333; }
  @bottom-right { content: "Page " counter(page) " of " counter(pages); font: 7.5pt "Switzer", Arial, sans-serif; color: #333; }
}

@media print {
  html, body { background: #fff !important; color: #111 !important; }
  body { font-size: 10.5pt; line-height: 1.4; }
  .site-header, .site-footer, .skip-link, .no-print, .hero-ctas, .pf-notice, .pf-steps, .pf-toggle,
  .pf-rep-add, .pf-rep-remove, .pf-rep-head, .pf-required-note, .pf-part-meta, .pf-continue,
  .pf-blank-banner, .band--navy, .doc-actions, .doc-toc, .ticker-wrap, .consult-band, .pf-screen-only,
  .pf-aua-status, .form-privacy { display: none !important; }
  .pf-print-only { display: block; }
  span.pf-print-only, .pf-print-hint { display: inline; }
  .reveal { opacity: 1 !important; transform: none !important; }
  a { color: #111 !important; text-decoration: none !important; }
  main { padding: 0 !important; }
  .container, .container--narrow { max-width: none !important; padding: 0 !important; }

  /* Letterhead */
  .lh { display: grid !important; grid-template-columns: auto 1fr auto; gap: 0 14pt; align-items: center;
        padding-bottom: 7pt; margin-bottom: 10pt; border-bottom: 1.25pt solid #111; }
  .lh-logo { width: 1.35in; height: auto; }
  .lh-org { margin: 0; font-size: 8.5pt; line-height: 1.35; max-width: none; }
  .lh-org strong { font-size: 10pt; }
  .lh-doc { margin: 0; text-align: right; font-size: 8.5pt; line-height: 1.3; max-width: none; }
  .lh-title { display: block; font-size: 12.5pt; font-weight: 600; }
  .lh-code { display: block; font-variant-numeric: tabular-nums; }

  /* ── Forms on paper ── */
  .pf-hero { display: none !important; }
  .pf-wrap { padding: 0 !important; }
  .pf-print-head { display: block; }
  .pf-ref { display: block; margin: 0 0 6pt; font-size: 9pt; font-weight: 600; }
  .pf-part { break-before: page; }
  .pf-part:first-of-type { break-before: auto; }
  .pf-part-head { margin: 0 0 4pt; }
  .pf-part-head h2 { display: none; }
  .pf-part-head .pf-draft { display: inline-block; margin: 0 0 4pt; padding: 1pt 6pt; font-size: 7.5pt; color: #111; border-color: #111; }
  .pf-ident { display: grid !important; grid-template-columns: 2fr 1fr; gap: 12pt; margin: 0 0 8pt; }
  .pf-ident p { margin: 0; display: flex; gap: 6pt; align-items: flex-end; max-width: none; }
  .pf-ident .k { font-size: 8.5pt; white-space: nowrap; }
  .pf-ident .v { flex: 1; border-bottom: 0.75pt solid #111; min-height: 14pt; font-size: 10.5pt; }

  .pf-section { padding: 6pt 0 0; margin: 0 !important; border-top: 0.75pt solid #999; break-inside: auto; }
  .pf-section > legend { font-size: 11pt; margin: 0 0 4pt; }
  .pf-break { break-before: page; border-top: 0; }
  .pf-intro { margin: 0 0 4pt; font-size: 8.5pt; color: #333; }
  .pf-grid { gap: 0 10pt; }
  .pf-w8 { grid-column: span 8 !important; } .pf-w6 { grid-column: span 6 !important; }
  .pf-w4 { grid-column: span 4 !important; } .pf-w3 { grid-column: span 3 !important; }
  .pf-field { margin: 0 0 6pt; break-inside: avoid; }
  .pf-field > label, .pf-choice > legend, .pf-repeat > legend { font-size: 8.5pt; font-weight: 600; margin: 0 0 1pt; color: #111; }
  .pf-help { font-size: 7.5pt; margin: 0 0 1pt; color: #444; }
  .pf-optional { color: #555; }
  .pf input[type="text"], .pf input[type="email"], .pf input[type="tel"], .pf input[type="date"], .pf textarea {
    min-height: 0; height: 0.3in; padding: 0 2pt; border: 0; border-bottom: 0.75pt solid #111; border-radius: 0;
    background: transparent !important; box-shadow: none !important; font-size: 10.5pt; color: #111 !important;
    -webkit-text-fill-color: #111; opacity: 1;
  }
  .pf input:disabled, .pf textarea:disabled { opacity: 1; }
  .pf textarea { height: auto; min-height: 0.6in; resize: none; overflow: visible; line-height: 0.3in;
    background-image: repeating-linear-gradient(to bottom, transparent 0, transparent calc(0.3in - 0.75pt), #111 calc(0.3in - 0.75pt), #111 0.3in) !important;
    border-bottom: 0; -webkit-print-color-adjust: exact; print-color-adjust: exact; }
  .pf .pf-sig input { height: 0.4in; font-size: 13pt; font-style: italic; }
  .pf-sig-caption { font-size: 7.5pt; color: #444; margin: 1pt 0 0; }

  /* Choices: plain inline text with a box (radio = circle), no chips */
  .pf-options { gap: 1pt 12pt; }
  .pf-options--cols { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
  .pf-opt, .pf-checkline { min-height: 0; padding: 0; border: 0 !important; background: none !important; box-shadow: none !important;
    font-size: 9.5pt; font-weight: 400; gap: 4pt; align-items: center; break-inside: avoid; }
  .pf-check { margin-bottom: 3pt; }
  .pf-checkline input, .pf-opt input { margin-right: 3pt !important; }
  .pf-checkline { align-items: center; }
  .pf-section > legend { break-after: avoid; }
  .pf-repeat, fieldset.pf-field:has(.pf-fam-grid) { break-inside: auto !important; }
  /* The telehealth consent is long: let its text flow from page 1, one whole
     paragraph at a time, so the signature fits on the second page. */
  #tele-about, #tele-about .pf-legal, #npp-ack-privacy { break-inside: auto !important; }
  #tele-about .pf-legal p { break-inside: avoid; }
  .pf-fam-row { break-inside: avoid; }
  .pf-check .pf-help { margin-left: 15pt; }
  .pf-check--box { padding: 3pt 5pt; border: 0.75pt solid #999; border-radius: 0; background: none; }
  .pf input[type="radio"], .pf input[type="checkbox"] {
    -webkit-appearance: none; appearance: none; width: 9pt; height: 9pt; margin: 0 !important;
    border: 0.9pt solid #111; border-radius: 1pt; background: #fff;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  .pf input[type="radio"] { border-radius: 50%; }
  .pf input[type="checkbox"]:checked {
    background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12'%3E%3Cpath d='M2 6.5l2.6 2.6L10 3' fill='none' stroke='%23111' stroke-width='2'/%3E%3C/svg%3E") center / 100% no-repeat;
  }
  .pf input[type="radio"]:checked { background: radial-gradient(circle, #111 0 38%, #fff 42%); }
  .pf-group { border: 0.75pt solid #999; border-radius: 0; padding: 4pt 6pt 0; margin: 0 0 6pt; break-inside: avoid; }
  .pf-sublegend { font-size: 8pt; }

  /* Repeating rows print as a ruled table */
  .pf-rep-row { display: none; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 0 8pt; margin: 0; padding: 0; border: 0; }
  .pf-rep-row:nth-child(-n+4) { display: grid; }
  .pf-rep-row.pf-print-row { display: grid !important; }
  .pf-repeat[data-print-rows] .pf-rep-row:not(.pf-print-row) { display: none; }
  .pf-rep-cell { grid-column: span var(--w) !important; }
  .pf-rep-label { position: static; width: auto; height: auto; clip: auto; font-size: 7pt; color: #555; }
  .pf-rep-row + .pf-rep-row .pf-rep-label { display: none; }

  .pf-fam-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14pt; }
  .pf-fam-row { grid-template-columns: auto 1fr; align-items: end; gap: 6pt; border: 0; padding: 0; }
  .pf-fam-who { margin: 0; font-size: 8pt; }
  .pf .pf-fam-who input { height: 0.24in; min-height: 0; padding: 0 2pt; }
  .pf-fam-none { margin-top: 3pt; }

  /* Review of systems: two compact columns so the block stays on one page. */
  .pf-ros { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 14pt; }
  .pf-ros-sys { display: block; padding: 1.5pt 0 2pt; border-bottom: 0.5pt solid #bbb; break-inside: avoid; }
  .pf-ros-sys legend { float: none; display: block; font-size: 8pt; margin: 0 0 1pt; }
  .pf-ros-sys .pf-options { flex-wrap: wrap; gap: 1pt 8pt; align-items: flex-end; }
  .pf-ros-sys .pf-opt { font-size: 8.5pt; }
  .pf-ros-other { flex: 1 1 1.4in; font-size: 8pt; gap: 3pt; }
  .pf .pf-ros-other input { height: 0.2in; min-height: 0; padding: 0 2pt; }
  /* Keep heading + body together: short sections never split, so no legend is
     stranded at a page foot and the authorization box is never left empty. */
  #history-ros, #registration-authorize, #history-aua, #registration-pharmacy, #registration-emergency,
  .pf-section:has(> .pf-grid > .pf-legal), .pf-section[id$="-sign"], #roi-special, #roi-purpose, #share-messages,
  #registration-doctors, #history-pmh, #history-family, #history-social, #history-reason, #history-obgyn, #history-attest { break-inside: avoid; }

  .pf-aua-key { display: block; font-size: 8pt; margin: 0 0 4pt; color: #333; }
  .pf-aua-q { margin: 0 0 5pt; break-inside: avoid; }
  .pf-aua-q legend { font-size: 9pt; font-weight: 400; margin: 0 0 2pt; }
  .pf-aua-tag { display: inline; font-size: 9pt; letter-spacing: 0; text-transform: none; color: #111; }
  .pf-aua-tag::after { content: " \2014"; }
  .pf-aua-q .pf-options { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0 6pt; padding-left: 12pt; }
  .pf-aua-q--qol .pf-options { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .pf-aua-opt { font-size: 8pt; align-items: flex-start; }
  .pf-aua-opt input { margin-top: 1pt !important; }
  .pf-aua-pts { color: #111; font-weight: 600; }
  .pf-aua-score { padding: 5pt 7pt; border: 0.9pt solid #111; border-radius: 0; background: none; break-inside: avoid; }
  .pf-aua-out { min-width: 0.5in; font-size: 12pt; border-bottom: 0.9pt solid #111; }
  .pf-aua-bands, .pf-aua-src { font-size: 7.5pt; color: #333; }

  .pf-office { display: block; margin-top: 10pt; padding: 6pt 8pt; border: 0.9pt dashed #111; break-inside: avoid; }
  .pf-office-h { font-weight: 600; font-size: 9pt; text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 3pt; }
  .pf-office p, .pf-office li { font-size: 8.5pt; max-width: none; }
  .pf-office ul { list-style: none; margin: 3pt 0 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 2pt 12pt; }
  .pf-box { display: inline-block; width: 8pt; height: 8pt; border: 0.9pt solid #111; vertical-align: -1pt; margin-right: 3pt; }
  .pf-office .doc-sign { margin-top: 10pt; }
  .pf-office .doc-sign div { min-height: 0.22in; }
  /* Keep the whole acknowledgment, office box included, on one sheet. */
  #npp-ack-privacy .pf-legal p { font-size: 9.5pt; line-height: 1.35; }
  #npp-ack-privacy .pf-legal p + p { margin-top: 4pt; }
  .pf-office { margin-top: 6pt !important; padding: 4pt 7pt !important; }
  .pf-legal { padding: 6pt 8pt; border: 0.75pt solid #111; border-radius: 0; background: none; break-inside: avoid; }
  .pf-legal-h { font-size: 10.5pt; text-align: center; }
  .pf-legal p { font-size: 10pt; line-height: 1.45; }

  /* ── Documents on paper ── */
  .doc-page .page-hero { padding: 0 !important; border: 0; }
  .doc-page .page-hero .eyebrow { display: none; }
  .doc-page .page-hero h1 { font-size: 17pt; max-width: none; letter-spacing: -0.01em; }
  .doc-page .page-hero .lead { font-size: 10.5pt; margin-top: 4pt; max-width: none; }
  .doc-body { padding: 8pt 0 0 !important; }
  .doc-body .prose h2 { font-size: 13pt !important; margin-top: 12pt !important; break-after: avoid; }
  .doc-body .prose h3 { font-size: 11pt !important; margin-top: 8pt !important; break-after: avoid; }
  .doc-body .prose p, .doc-body .prose li { font-size: 10.5pt; max-width: none; }
  .doc-body .prose > * + * { margin-top: 5pt; }
  .doc-body .prose ul, .doc-body .prose ol { gap: 2pt; max-width: none; }
  .doc-alert { margin-block: 8pt; padding: 6pt 9pt; border: 1.25pt solid #111; background: none; color: #111; break-inside: avoid; }
  .doc-alert h2, .doc-alert h3, .doc-alert a, .doc-alert li::marker { color: #111 !important; }
  .doc-note { margin-block: 6pt; padding: 4pt 8pt; border-left: 2pt solid #111; background: none; }
  .doc-part { break-before: page; }
  .doc-sign-wrap { break-inside: avoid; }
  .doc-sign { margin-top: 16pt; gap: 0 14pt; }
  .doc-sign-wrap { margin-top: 6pt !important; }
  .doc-sign-wrap > p { margin-top: 8pt !important; font-size: 9.5pt; }
  .doc-sign div { border-top-color: #111; min-height: 0.3in; color: #333; }
  .doc-quote { border: 0.75pt solid #999; border-radius: 0; padding: 6pt 8pt; }
  .doc-meta { font-size: 8pt; }
  /* One-sheet documents: the Notice summary, the HIPAA consent text. */
  .doc-compact > * + * { margin-top: 3pt !important; }
  .doc-body .doc-compact p, .doc-body .doc-compact li { font-size: 9.5pt; line-height: 1.32; }
  .doc-body .doc-compact h2 { font-size: 11.5pt !important; margin-top: 7pt !important; max-width: none; }
  .doc-body .doc-compact ul { gap: 1pt; }
  .doc-compact .doc-note { margin-block: 4pt; }
  #tpo-consent-consent .pf-legal p { font-size: 9.5pt; line-height: 1.35; }
  #tpo-consent-consent .pf-legal p + p { margin-top: 4pt; }
}
