/* Interactive blocks on the privacy, coverage and corrections pages.
 * Components are the existing ones: .btn/.btn.dark and .book-form .f/.input/.choice (oc-app.css),
 * .lp-primary and .lp-reveal (oc-landing.css), .legal-table (legal.css/privacy-page.css), .am-steps (steps.css).
 * This file only places them: panel boundary, row gaps, error state and the green selected choice. */
.oh-panel{margin-top:16px;padding:20px 24px;border:1px solid var(--rule);border-radius:12px;background:#fff}
.oh-panel>p,.oh-panel p{margin:0}
.oh-panel>p+p{margin-top:8px}
.oh-acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:16px 0 0}
.oh-acts .btn svg{flex:none}
.oh-clear-sum{font-size:14.5px;color:var(--ink)}
.oh-confirm>div{min-height:0;overflow:hidden}
.oh-confirm-in{margin-top:16px;padding-top:16px;border-top:1px solid var(--hair)}
.oh-confirm-in>p,.oh-note,.oh-status{display:flex;align-items:flex-start;gap:10px}
.oh-confirm-in>p svg,.oh-note svg,.oh-status svg{flex:none;margin-top:3px;color:var(--dim)}
.oh-result{font-size:14px;color:var(--dim)}
.oh-result:not(:empty){margin-top:12px}
.oh-result[data-state=done]{color:var(--free)}
.oh-result[data-state=error]{color:#c62a2f}
.oh-result:focus{outline:none}

/* Coverage filter options: the corrections page's .choice, sized to its own one-line label and
 * flowing in a wrapping row instead of the fixed card grid. Icon size and tint follow .os-chip. */
.oh-choices.oh-flow{display:flex;flex-wrap:wrap;gap:8px}
.oh-flow .choice{grid-template-columns:18px 16px auto;align-items:center;gap:8px;padding:9px 14px}
.oh-flow .choice .rd{margin:0}
.oh-flow .choice svg{width:16px;height:16px;color:var(--faint)}
.oh-flow .choice.on svg{color:var(--free)}
.oh-flow .choice b{white-space:nowrap}
@media(max-width:640px){.oh-flow .choice b{white-space:normal}}

/* Coverage source cards: an h3 and fact line above each source's date table. */
.oh-sources{display:grid;gap:28px;margin-top:20px}
.oh-source h3{margin:0}
.lp .legal .oh-source h3{margin-top:0;font-size:16px}
.oh-source .oh-source-facts{margin:4px 0 0;font-size:14px;color:var(--faint)}
.oh-source .legal-table{margin-top:12px}
[data-coverage-release] .legal-table{margin-top:14px}
[data-coverage-release] .legal-table [role=row]>span:nth-child(3){font-variant-numeric:tabular-nums}
@media (min-width:641px){[data-coverage-release] .legal-table [role=row]>span:nth-child(3){text-align:right}}

/* Corrections form. */
.at-doc .oh-note{margin-top:12px;font-size:14.5px;color:var(--dim)}
.oh-report{margin-top:16px}
.oh-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 20px}
.oh-grid .oh-wide{grid-column:1/-1}
.oh-report fieldset{margin:0;padding:0;border:0;min-width:0}
.oh-report legend{padding:0;margin:0 0 6px}
.oh-report .f{align-content:start}
.oh-report .lab{display:block;line-height:18px}
.oh-report .lab small{font-size:11.5px;line-height:1;font-weight:400;color:var(--faint)}
.oh-report .oh-help{font-size:12.5px;line-height:1.45;color:var(--faint)}
.oh-report .oh-error{font-size:12.5px;color:#c62a2f}
.oh-report .input[aria-invalid=true]{border-color:#c62a2f}
.oh-choices{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))}
.oh-choices .choice{align-items:center}
.oh-choices .choice b{margin:0}
.oh-choices .choice.on{background:#f3faf6}
.oh-choices .choice:has(.rd[aria-invalid=true]){border-color:#c62a2f}
.oh-report .oh-acts{margin-top:20px}
.oh-output>div{min-height:0;overflow:hidden}
.oh-output .oh-panel{margin-top:24px}
.at-doc .oh-output pre{margin-top:16px;max-height:360px;overflow:auto;white-space:pre-wrap;overflow-wrap:anywhere}
.oh-status{font-weight:600;color:var(--ink)}
.oh-status:focus{outline:none}

@media(max-width:640px){
  .oh-panel{padding:16px}
  .oh-grid{grid-template-columns:minmax(0,1fr)}
  .oh-acts .btn,.oh-acts .lp-primary{flex:1 1 auto}
}
@media(prefers-reduced-motion:reduce){.oh-confirm,.oh-output{transition:none}}

/* Office and result IDs show only for the field that needs them. */
.oh-report [data-target-for][hidden]{display:none}
