/* tpl-report.css: GENERATED from prototype report.css (same order as the prototype head). */
/* ---- report.css ---- */
/* ==========================================================================
   Atheer Care prototype — Cleaning report (/cleaning-report) + verification
   template (/certificate/{serial}). Owner: UI/UX Developer. Shared components
   live in styles.css. Class prefix: rpt_ (page), report-* (sample document),
   ver_ (verification). Contrast pairs used here are in design-system.md §2.3.
   ========================================================================== */

/* ---------- Hero (paper surface: this page is about a document) ---------- */
.rpt-hero_component { display: grid; gap: var(--space-large); align-items: center; }
@media (min-width: 992px) { .rpt-hero_component { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); } }
.rpt-hero_content { display: grid; gap: 1.25rem; }
.rpt-hero_answer { font-size: var(--font-size-large); line-height: var(--lh-large); color: var(--text-primary); max-inline-size: 42rem; }
.rpt-hero_note { font-size: var(--font-size-small); color: var(--text-muted); max-inline-size: 42rem; padding-inline-start: 0.875rem; border-inline-start: 3px solid var(--steel-300); }
.rpt-hero_offer { font-family: var(--font-heading); font-weight: 600; font-size: 0.9375rem; color: var(--text-accent); }
.rpt-hero_actions { display: flex; flex-wrap: wrap; gap: 0.75rem; align-items: center; }
@media (max-width: 767px) { .rpt-hero_actions .button:not(.is-text) { inline-size: 100%; } }
.rpt-hero_visual { display: none; }
@media (min-width: 992px) { .rpt-hero_visual { display: block; } }
.rpt-hero_visual .placeholder-media { aspect-ratio: 1 / 1.414; border-radius: var(--radius-large); box-shadow: var(--shadow-large); }

/* ---------- Annotated sample report ---------- */
.rpt-sample_component { display: grid; gap: var(--space-large); align-items: start; }
@media (min-width: 1280px) { .rpt-sample_component { grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); } }

.report-doc {
  position: relative; background: var(--white); color: var(--steel-900);
  border: 1px solid var(--steel-200); border-radius: var(--radius-medium); box-shadow: var(--shadow-large);
  padding: 1.25rem; border-block-start: 6px solid var(--amber-500);
  max-inline-size: 46rem; inline-size: 100%; margin-inline: auto;
}
@media (min-width: 768px) { .report-doc { padding: 2rem 2.25rem; } }
.report-doc_watermark { position: absolute; inset: 0; display: grid; place-items: center; pointer-events: none; overflow: hidden;
  font-family: var(--font-heading); font-weight: 700; font-size: clamp(3rem, 12vw, 7rem); color: rgba(21, 32, 42, 0.05); }
.report-doc_watermark span { transform: rotate(-18deg); }
.report-doc_head { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem 1rem;
  padding-block-end: 1rem; border-block-end: 2px solid var(--steel-900); }
.report-doc_title { font-family: var(--font-heading); font-weight: 700; font-size: 1.25rem; line-height: 1.4; }
.report-doc_grid { display: grid; gap: 0.75rem; padding-block: 1rem; }
@media (min-width: 768px) { .report-doc_grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.report-doc_section-title { font-family: var(--font-heading); font-weight: 700; font-size: 0.9375rem; margin-block: 1rem 0.5rem; color: var(--steel-700); }

.report-field { position: relative; padding: 0.75rem 0.875rem; padding-inline-start: 2.75rem; border: 1px solid var(--steel-200); border-radius: var(--radius-small); background: var(--steel-50); min-inline-size: 0; }
.report-field.is-wide { grid-column: 1 / -1; }
.report-field_label { display: block; font-size: 0.8125rem; color: var(--steel-600); line-height: 1.5; }
.report-field_value { display: block; font-family: var(--font-heading); font-weight: 600; font-size: 0.9375rem; line-height: 1.6; overflow-wrap: anywhere; }
.report-checklist { display: flex; flex-wrap: wrap; gap: 0.375rem 0.75rem; margin-block-start: 0.375rem; padding: 0; list-style: none; font-size: 0.875rem; }
.report-checklist li { display: inline-flex; align-items: center; gap: 0.25rem; }
.report-checklist .icon-embed-xsmall { color: var(--success-600); }
.report-photos { display: grid; gap: 0.625rem; margin-block-start: 0.5rem; }
.report-photos_row { display: grid; grid-template-columns: 5.5rem 1fr 1fr; gap: 0.5rem; align-items: center; }
@media (max-width: 478px) { .report-photos_row { grid-template-columns: 1fr 1fr; } .report-photos_row > .report-photos_name { grid-column: 1 / -1; } }
.report-photos_name { font-size: 0.8125rem; font-weight: 600; font-family: var(--font-heading); }
.report-photos .placeholder-media { aspect-ratio: 4 / 3; padding: 0.25rem; font-size: 0.6875rem; border-radius: var(--radius-small); }
.report-photos .placeholder-media .icon-embed-large { inline-size: 1.25rem; block-size: 1.25rem; }
.report-doc_foot { display: grid; gap: 0.75rem; padding-block-start: 1rem; border-block-start: 1px dashed var(--steel-300); }
@media (min-width: 768px) { .report-doc_foot { grid-template-columns: 1fr auto auto; align-items: end; } }
.report-sign { display: grid; gap: 0.25rem; font-size: 0.8125rem; color: var(--steel-600); }
.report-sign_line { block-size: 1.75rem; border-block-end: 1px solid var(--steel-400); }
.report-stamp { inline-size: 5.5rem; block-size: 5.5rem; border-radius: var(--radius-round); border: 2px dashed var(--steel-400); display: grid; place-items: center; text-align: center; font-size: 0.75rem; color: var(--steel-600); line-height: 1.4; }
.report-qr { inline-size: 5.5rem; block-size: 5.5rem; display: grid; place-items: center; border: 1px solid var(--steel-300); border-radius: var(--radius-small); }
.report-qr svg { inline-size: 4rem; block-size: 4rem; }
.report-doc .placeholder { font-size: 0.75rem; }

/* Pins: Latin digits in circles, placed at the field's inline-start corner */
.report-pin {
  position: absolute; inset-block-start: 0.625rem; inset-inline-start: 0.5rem; z-index: 3;
  inline-size: 1.75rem; block-size: 1.75rem; border-radius: var(--radius-round);
  display: grid; place-items: center; background: var(--steel-900); color: var(--amber-500);
  font-family: var(--font-heading); font-weight: 700; font-size: 0.8125rem; line-height: 1; direction: ltr;
  box-shadow: 0 0 0 3px var(--white);
  transition: transform var(--duration-fast) var(--ease-out), background-color var(--duration-fast) var(--ease-out);
}
.report-pin::after { content: ""; position: absolute; inset: -0.5rem; } /* 44px hit area */
@media (hover: hover) { .report-pin:hover { transform: scale(1.1); } }
.report-pin[aria-expanded="true"], .report-pin.is-highlight { background: var(--amber-500); color: var(--steel-950); transform: scale(1.1); }
.report-pin:focus-visible { outline: 2px solid var(--steel-900); outline-offset: 3px; }
.report-pin_bubble {
  display: none; position: absolute; inset-block-start: 2.75rem; inset-inline-start: 0.25rem; z-index: 4;
  inline-size: min(17rem, calc(100vw - 4rem)); padding: 0.75rem 0.875rem; border-radius: var(--radius-medium);
  background: var(--steel-900); color: var(--white); box-shadow: var(--shadow-large);
  font-size: 0.875rem; line-height: 1.7; text-align: start;
}
.report-pin_bubble strong { display: block; color: var(--amber-500); margin-block-end: 0.125rem; }
.report-field:has(> .report-pin:hover) > .report-pin_bubble,
.report-field:has(> .report-pin:focus-visible) > .report-pin_bubble,
.report-field.is-open > .report-pin_bubble { display: block; animation: bubble-in var(--duration-fast) var(--ease-out); }
@keyframes bubble-in { from { opacity: 0; transform: translateY(4px); } }
.report-field.is-conditional { opacity: 0.6; border-style: dashed; }

/* Callout list (carries the meaning for screen readers and on mobile) */
.rpt-callouts { display: grid; gap: 0.5rem; padding: 0; list-style: none; counter-reset: none; }
.report-callout { display: grid; grid-template-columns: auto 1fr; gap: 0.125rem 0.75rem; padding: 0.75rem 1rem; border-radius: var(--radius-medium);
  background: var(--bg-surface); border: 1px solid var(--border-subtle); transition: background-color var(--duration-fast) var(--ease-out), border-color var(--duration-fast) var(--ease-out); }
.report-callout_num { grid-row: span 2; inline-size: 1.75rem; block-size: 1.75rem; border-radius: var(--radius-round); display: grid; place-items: center;
  background: var(--steel-900); color: var(--amber-500); font-family: var(--font-heading); font-weight: 700; font-size: 0.8125rem; direction: ltr; }
.report-callout_label { font-family: var(--font-heading); font-weight: 600; font-size: 0.9375rem; }
.report-callout_text { font-size: var(--font-size-small); color: var(--text-secondary); line-height: 1.7; }
.report-callout.is-active, .report-callout:target { background: var(--amber-100); border-color: var(--amber-700); }
.report-callout.is-conditional { border-style: dashed; }
.report-callout_flag { display: inline-block; margin-inline-start: 0.375rem; font-size: 0.75rem; font-weight: 500; color: var(--text-muted); }
@media (min-width: 1280px) { .rpt-callouts { position: sticky; inset-block-start: calc(var(--header-height) + 1rem); max-block-size: calc(100vh - var(--header-height) - 2rem); overflow-y: auto; padding-inline-end: 0.25rem; } }

/* ---------- Tables that stack to cards on mobile (photo standard, comparison) ---------- */
.rpt-table { inline-size: 100%; font-size: var(--font-size-small); background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: var(--radius-large); overflow: hidden; }
.rpt-table caption { text-align: start; padding: 1rem 1.25rem 0.5rem; font-family: var(--font-heading); font-weight: 600; color: var(--text-secondary); }
.rpt-table th, .rpt-table td { padding: 0.875rem 1rem; text-align: start; vertical-align: top; border-block-start: 1px solid var(--border-subtle); }
.rpt-table thead th { background: var(--steel-900); color: var(--white); font-family: var(--font-heading); font-weight: 600; border: 0; }
.rpt-table tbody th { font-family: var(--font-heading); font-weight: 600; color: var(--text-primary); }
.rpt-table tbody th a { color: var(--text-accent); }
.rpt-table .is-ours { background: var(--amber-100); color: var(--steel-900); }
.rpt-table thead .is-ours { background: var(--amber-500); color: var(--steel-950); }
@media (max-width: 767px) {
  .rpt-table, .rpt-table tbody, .rpt-table tr, .rpt-table th, .rpt-table td { display: block; }
  .rpt-table { border: 0; background: transparent; overflow: visible; }
  .rpt-table thead { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); }
  .rpt-table caption { display: block; padding-inline: 0; }
  .rpt-table tr { margin-block-end: 0.75rem; background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: var(--radius-medium); overflow: hidden; }
  .rpt-table tbody th { background: var(--steel-100); border: 0; }
  .rpt-table td { border-block-start: 1px solid var(--border-subtle); }
  .rpt-table td::before { content: attr(data-label); display: block; font-family: var(--font-heading); font-size: 0.8125rem; font-weight: 600; color: var(--text-muted); margin-block-end: 0.125rem; }
  .rpt-table td.is-ours::before { color: var(--amber-800); }
}

/* ---------- Verify steps, situations, next-due ---------- */
.rpt-steps { counter-reset: s; display: grid; gap: 0.75rem; padding: 0; list-style: none; }
.rpt-steps > li { counter-increment: s; display: grid; grid-template-columns: auto 1fr; gap: 0.75rem; align-items: start; }
.rpt-steps > li::before { content: counter(s); inline-size: 2rem; block-size: 2rem; border-radius: var(--radius-round); display: grid; place-items: center;
  background: var(--amber-500); color: var(--steel-950); font-family: var(--font-heading); font-weight: 700; direction: ltr; }
.rpt-two { display: grid; gap: var(--space-medium); align-items: start; }
@media (min-width: 992px) { .rpt-two { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rpt-situations { display: grid; gap: var(--gutter); padding: 0; list-style: none; }
@media (min-width: 768px) { .rpt-situations { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.rpt-next_card { padding: 1.5rem; border-radius: var(--radius-large); display: grid; gap: 1rem; }
.rpt-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.5rem; padding: 0; list-style: none; position: relative; }
.rpt-timeline::before { content: ""; position: absolute; inset-inline: 16%; inset-block-start: 0.75rem; block-size: 2px; background: var(--steel-600); }
.rpt-timeline li { position: relative; display: grid; justify-items: center; gap: 0.5rem; text-align: center; font-size: 0.8125rem; color: var(--text-muted); }
.rpt-timeline_dot { inline-size: 1.5rem; block-size: 1.5rem; border-radius: var(--radius-round); background: var(--steel-700); box-shadow: 0 0 0 4px var(--steel-900); display: grid; place-items: center; color: var(--white); }
.rpt-timeline li.is-next .rpt-timeline_dot { background: var(--amber-500); color: var(--steel-950); }
.rpt-timeline li.is-next { color: var(--amber-500); font-family: var(--font-heading); font-weight: 600; }
.rpt-timeline_dot svg { inline-size: 0.875rem; block-size: 0.875rem; }

/* ---------- Verification page (/certificate/{serial}) ---------- */
.ver_component { max-inline-size: 44rem; margin-inline: auto; display: grid; gap: var(--space-medium); }
.ver_card { background: var(--bg-surface); border: 1px solid var(--border-subtle); border-radius: var(--radius-large); box-shadow: var(--shadow-medium); overflow: hidden; }
.ver_status { display: none; gap: 0.75rem; align-items: flex-start; padding: 1.25rem 1.5rem; }
.ver_status .icon-embed-large { flex: none; }
.ver_status-title { font-family: var(--font-heading); font-weight: 700; font-size: var(--font-size-h4); line-height: 1.4; }
.ver_status-sub { font-size: var(--font-size-small); margin-block-start: 0.125rem; }
.ver_status.is-latest { background: var(--success-50); color: var(--success-600); }      /* 4.68:1 */
.ver_status.is-superseded { background: var(--steel-100); color: var(--steel-900); }     /* 13.78:1 */
.ver_status.is-superseded .icon-embed-large { color: var(--success-600); }
.ver_status.is-withdrawn { background: var(--warning-50); color: var(--warning-700); }   /* 5.75:1 */
.ver_card[data-status="latest"] .ver_status.is-latest,
.ver_card[data-status="superseded"] .ver_status.is-superseded,
.ver_card[data-status="withdrawn"] .ver_status.is-withdrawn { display: flex; }
.ver_body { padding: 1.5rem; display: grid; gap: 1rem; }
.ver_fields { display: grid; gap: 0; margin: 0; }
.ver_row { display: grid; grid-template-columns: minmax(8rem, 2fr) 3fr; gap: 0.5rem 1rem; padding-block: 0.75rem; border-block-end: 1px solid var(--border-subtle); }
@media (max-width: 478px) { .ver_row { grid-template-columns: 1fr; gap: 0.125rem; } }
.ver_row dt { color: var(--text-muted); font-size: var(--font-size-small); }
.ver_row dd { margin: 0; font-family: var(--font-heading); font-weight: 600; overflow-wrap: anywhere; }
.ver_card[data-status="withdrawn"] .ver_fields { opacity: 0.6; }
.proto-switch { display: flex; flex-wrap: wrap; gap: 0.5rem; align-items: center; justify-content: center; padding: 0.5rem; font-size: 0.8125rem; color: var(--text-muted); border: 1px dashed var(--steel-400); border-radius: var(--radius-medium); }
.proto-switch a { font-family: var(--font-heading); font-weight: 600; color: var(--text-accent); min-block-size: 2.75rem; display: inline-flex; align-items: center; padding-inline: 0.5rem; }
.proto-switch a[aria-current="true"] { text-decoration: underline; text-decoration-thickness: 2px; }
