/**
 * AVYN COA front end — the certificate library (/coa/), the certificate
 * page (/coa/{lot}) and Batch Verify. A 1:1 port of the reference pages;
 * shells, labels, section heads, step glyphs and buttons come from the
 * pages bundle (pages.css loads first).
 */

/* ── Library hero ─────────────────────────────────────────────────── */
.avyn-coa-hero { display: grid; gap: 2rem; padding-bottom: 2.5rem; }
@media (min-width: 1024px) { .avyn-coa-hero { grid-template-columns: 1.4fr 1fr; gap: 3.5rem; } }
.avyn-coa-eyebrow { margin-bottom: 0.625rem; }
.avyn-coa-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; max-width: 32rem; margin: 1.5rem 0 0; }
.avyn-coa-stats dd { margin: 0.25rem 0 0; font-family: var(--avyn-mono); font-size: 1.5rem; font-weight: 600; line-height: 2rem; color: var(--avyn-ink); font-variant-numeric: tabular-nums; }
.avyn-coa-verify-slot { scroll-margin-top: 6rem; }
.avyn-coa-band { padding-top: 3rem; padding-bottom: 3rem; }
.avyn-coa-labs-band { padding-bottom: 5.5rem; }
.avyn-coa-labs { display: grid; gap: 1.5rem; border-top: 1px solid var(--avyn-rule); padding-top: 2rem; }
@media (min-width: 768px) { .avyn-coa-labs { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.avyn-coa-lab-name { margin: 0.375rem 0 0; font-size: 0.875rem; font-weight: 600; color: var(--avyn-ink); }
.avyn-coa-lab-loc { margin: 0.25rem 0 0; font-family: var(--avyn-mono); font-size: 0.75rem; line-height: 1.05rem; color: var(--avyn-slate); }
.avyn-coa-lab-scope { margin: 0.5rem 0 0; font-size: 0.75rem; line-height: 1.625; color: var(--avyn-graphite); }

/* ── Batch verify ─────────────────────────────────────────────────── */
.avyn-verify { border: 1px solid var(--avyn-rule); background: var(--avyn-panel); padding: 1.25rem; margin: 0; }
@media (min-width: 640px) { .avyn-verify { padding: 1.5rem; } }
.avyn-verify-head { display: flex; align-items: flex-start; gap: 0.75rem; }
.avyn-verify-head > svg { flex-shrink: 0; margin-top: 0.125rem; color: var(--avyn-brand); }
.avyn-verify-head h2 { margin: 0; font-size: 1.125rem; font-weight: 600; line-height: 1.25; color: var(--avyn-ink); }
.avyn-verify-head p { margin: 0.25rem 0 0; font-size: 0.875rem; color: var(--avyn-graphite); }
.avyn-verify-row { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1rem; }
@media (min-width: 640px) { .avyn-verify-row { flex-direction: row; } }
.avyn-verify-input { position: relative; flex: 1; }
.avyn-verify-input > svg { position: absolute; left: 0.75rem; top: 50%; transform: translateY(-50%); color: var(--avyn-slate); pointer-events: none; }
.avyn-verify .avyn-field, .avyn-lots .avyn-field {
  width: 100%; min-height: 44px; height: auto; margin: 0; padding: 0.625rem 0.75rem; background: var(--avyn-panel); border: 1px solid var(--avyn-rule); border-radius: 0; box-shadow: none;
  font-family: inherit; font-size: 0.9375rem; line-height: 1.5; color: var(--avyn-ink);
}
.avyn-verify .avyn-field::placeholder, .avyn-lots .avyn-field::placeholder { color: rgba(91, 100, 103, 0.8); }
.avyn-verify .avyn-field:focus, .avyn-lots .avyn-field:focus { border-color: var(--avyn-brand); outline: none; box-shadow: 0 0 0 3px rgba(25, 118, 110, 0.14); }
.avyn-verify-input .avyn-field { padding-left: 2.25rem; font-family: var(--avyn-mono); text-transform: uppercase; letter-spacing: 0.05em; }
.avyn-verify-input .avyn-field::placeholder { text-transform: none; letter-spacing: 0.05em; }
body .avyn-verify-submit { white-space: nowrap; }
@media (min-width: 640px) { body .avyn-verify-submit { padding-left: 1.75rem; padding-right: 1.75rem; } }
body .avyn-verify-submit:disabled { opacity: 0.6; cursor: default; }
.avyn-verify-hint { margin: 0.75rem 0 0; font-family: var(--avyn-mono); font-size: 0.75rem; line-height: 1.05rem; color: var(--avyn-slate); }
.avyn-verify-error { display: flex; gap: 0.5rem; margin: 0.75rem 0 0; border: 1px solid rgba(158, 46, 34, 0.3); background: rgba(158, 46, 34, 0.05); padding: 0.625rem 0.75rem; font-size: 0.75rem; line-height: 1.625; color: #9E2E22; }
.avyn-verify-error > svg { flex-shrink: 0; margin-top: 0.125rem; }
.avyn-verify-error[hidden], .avyn-verify-hint[hidden] { display: none; }

/* ── Lot register ─────────────────────────────────────────────────── */
.avyn-lots-table th.avyn-pg-label, .avyn-coa-table th.avyn-pg-label { display: table-cell; }
.avyn-lots-table th, .avyn-lots-table td, .avyn-coa-table th, .avyn-coa-table td { border: 0; background: transparent; }
.avyn-lots-bar { display: flex; flex-direction: column; gap: 0.75rem; border: 1px solid var(--avyn-rule); border-bottom: 0; background: var(--avyn-panel); padding: 1rem; }
@media (min-width: 640px) { .avyn-lots-bar { flex-direction: row; align-items: center; justify-content: space-between; } }
.avyn-lots-search { position: relative; width: 100%; }
@media (min-width: 640px) { .avyn-lots-search { max-width: 24rem; } }
.avyn-lots-search > svg { position: absolute; left: 0.75rem; top: 50%; transform: translateY(-50%); color: var(--avyn-slate); pointer-events: none; }
.avyn-lots-search .avyn-field { padding-left: 2.25rem; }
.avyn-lots-search .avyn-field::-webkit-search-cancel-button { -webkit-appearance: none; }
.avyn-lots-filter { display: flex; align-items: center; gap: 0.5rem; width: 100%; }
@media (min-width: 640px) { .avyn-lots-filter { width: auto; } }
.avyn-lots-filter .avyn-pg-label { flex-shrink: 0; }
.avyn-lots-filter .avyn-field { height: 2.5rem; min-height: 0; padding-top: 0; padding-bottom: 0; font-size: 0.75rem; width: 100%; }
@media (min-width: 640px) { .avyn-lots-filter .avyn-field { width: 13rem; } }
.avyn-lots-scroll { overflow-x: auto; border: 1px solid var(--avyn-rule); }
.avyn-lots-table { width: 100%; min-width: 46rem; border-collapse: collapse; background: var(--avyn-paper); }
.avyn-lots-table th, .avyn-lots-table td { white-space: nowrap; text-align: left; vertical-align: middle; }
.avyn-lots-table thead tr { border-bottom: 1px solid var(--avyn-rule); background: var(--avyn-panel); }
.avyn-lots-table thead th { padding: 0.625rem 1rem; font-weight: 400; }
.avyn-lots-table thead th.is-right { text-align: right; }
.avyn-lots-table thead button { background: none; border: 0; padding: 0; margin: 0; font: inherit; letter-spacing: inherit; text-transform: inherit; color: inherit; cursor: pointer; }
.avyn-lots-table thead button:hover, .avyn-lots-table thead button.is-active { color: var(--avyn-ink); }
.avyn-lots-table tbody tr { border-bottom: 1px solid var(--avyn-rule); }
.avyn-lots-table tbody tr:last-child { border-bottom: 0; }
.avyn-lots-table tbody tr:hover { background: var(--avyn-panel); }
.avyn-lots-table tbody tr[hidden] { display: none; }
.avyn-lots-table tbody td, .avyn-lots-table tbody th { padding: 0.75rem 1rem; font-size: 0.75rem; }
.avyn-lots-table tbody td:first-child { font-weight: 500; color: var(--avyn-ink); }
.avyn-lots-table tbody td:first-child a { color: inherit; text-decoration: none; }
.avyn-lots-table tbody td:first-child a:hover { color: var(--avyn-brand); }
.avyn-lots-table tbody th { font-family: var(--avyn-mono); font-weight: 600; color: var(--avyn-ink); }
.avyn-lots-table .is-mono { font-family: var(--avyn-mono); }
.avyn-lots-table .is-graphite { color: var(--avyn-graphite); }
.avyn-lots-table .is-right { text-align: right; }
.avyn-lots-table .is-purity { font-family: var(--avyn-mono); font-weight: 600; color: var(--avyn-brand); font-variant-numeric: tabular-nums; }
.avyn-lots-table .is-mono.is-graphite { font-variant-numeric: tabular-nums; }
.avyn-lots-table .avyn-lots-view { font-family: var(--avyn-mono); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--avyn-brand); text-decoration: underline; text-underline-offset: 4px; }
.avyn-lots-table .avyn-lots-view:hover { color: var(--avyn-brand-deep); }
.avyn-lots-count { margin: 0.75rem 0 0; font-family: var(--avyn-mono); font-size: 0.75rem; line-height: 1.05rem; color: var(--avyn-slate); }

/* ── Certificate page ─────────────────────────────────────────────── */
.avyn-coa-body { padding-bottom: 2.5rem; }
.avyn-coa-toolbar { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 1rem; margin-bottom: 1.5rem; }
.avyn-coa-toolbar-eyebrow { margin-bottom: 0.5rem; }
.avyn-coa-h1 { margin: 0; font-size: clamp(1.75rem, 4vw, 2.5rem); font-weight: 600; line-height: 1.25; color: var(--avyn-ink); }
.avyn-coa-toolbar-sub { margin: 0.5rem 0 0; font-size: 0.875rem; color: var(--avyn-graphite); }
.avyn-coa-actions { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.avyn-coa-actions .avyn-btn svg { flex-shrink: 0; }
.avyn-coa { border: 1px solid var(--avyn-rule); background: var(--avyn-panel); }
.avyn-coa-header { display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: 1.25rem; padding: 1.5rem; border-bottom: 2px solid var(--avyn-ink); }
@media (min-width: 640px) { .avyn-coa-header { padding-left: 2.25rem; padding-right: 2.25rem; } }
.avyn-coa-logo svg, .avyn-coa-logo img { display: block; height: 32px; width: auto; }
.avyn-coa-site { margin: 0.5rem 0 0; font-family: var(--avyn-mono); font-size: 0.75rem; line-height: 1.05rem; color: var(--avyn-slate); }
.avyn-coa-header-right { text-align: right; }
.avyn-coa-doctitle { margin: 0; font-size: 1.125rem; font-weight: 600; line-height: 1.25; color: var(--avyn-ink); }
.avyn-coa-ruo { margin: 0.125rem 0 0; font-family: var(--avyn-mono); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.14em; color: var(--avyn-data); }
.avyn-coa-idgrid { display: grid; gap: 1px; background: var(--avyn-rule); }
@media (min-width: 640px) { .avyn-coa-idgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .avyn-coa-idgrid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.avyn-coa-idgrid > div { background: var(--avyn-panel); padding: 1rem 1.5rem; }
@media (min-width: 640px) { .avyn-coa-idgrid > div { padding-left: 2.25rem; padding-right: 2.25rem; } }
@media (min-width: 1024px) { .avyn-coa-idgrid > div { padding-left: 1.5rem; padding-right: 1.5rem; } }
.avyn-coa-idval { margin: 0.375rem 0 0; font-family: var(--avyn-mono); font-size: 0.75rem; font-weight: 500; line-height: 1.625; color: var(--avyn-ink); }
.avyn-coa-section { border-top: 1px solid var(--avyn-rule); padding: 1.5rem; }
@media (min-width: 640px) { .avyn-coa-section { padding-left: 2.25rem; padding-right: 2.25rem; } }
.avyn-coa-seclabel { margin-bottom: 0.75rem; }
.avyn-coa-scroll { overflow-x: auto; }
.avyn-coa-table { width: 100%; min-width: 42rem; border-collapse: collapse; }
.avyn-coa-table thead tr { border-top: 1px solid var(--avyn-rule); border-bottom: 1px solid var(--avyn-rule); }
.avyn-coa-table thead th { padding: 0.625rem 0.75rem; text-align: left; font-weight: 400; }
.avyn-coa-table tbody tr { border-bottom: 1px solid var(--avyn-rule); }
.avyn-coa-table tbody th { padding: 0.75rem; text-align: left; font-size: 0.75rem; font-weight: 600; color: var(--avyn-ink); }
.avyn-coa-table tbody td { padding: 0.75rem; vertical-align: top; }
.avyn-coa-method { font-size: 0.75rem; line-height: 1.625; color: var(--avyn-graphite); }
.avyn-coa-spec { font-family: var(--avyn-mono); font-size: 0.75rem; line-height: 1.05rem; color: var(--avyn-slate); }
.avyn-coa-result { font-family: var(--avyn-mono); font-size: 0.75rem; font-weight: 500; color: var(--avyn-ink); font-variant-numeric: tabular-nums; }
.avyn-coa-pass { text-align: right; }
.avyn-coa-pass span { font-family: var(--avyn-mono); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.05em; color: var(--avyn-ok); }
.avyn-coa-twocol { display: grid; gap: 1px; border-top: 1px solid var(--avyn-rule); background: var(--avyn-rule); }
@media (min-width: 1024px) { .avyn-coa-twocol { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.avyn-coa-twocol > div { background: var(--avyn-panel); padding: 1.5rem; }
@media (min-width: 640px) { .avyn-coa-twocol > div { padding-left: 2.25rem; padding-right: 2.25rem; } }
.avyn-coa-chart { border: 1px solid var(--avyn-rule); background: var(--avyn-paper); padding: 1rem; }
.avyn-coa-chart svg { display: block; width: 100%; height: 6rem; color: var(--avyn-brand); }
.avyn-coa-chart-axis { display: flex; justify-content: space-between; margin-top: 0.5rem; font-family: var(--avyn-mono); font-size: 0.75rem; line-height: 1.05rem; color: var(--avyn-slate); }
.avyn-coa-fine { margin: 0.75rem 0 0; font-size: 0.75rem; line-height: 1.625; color: var(--avyn-slate); }
.avyn-coa-specs { margin: 0; }
.avyn-coa-specs > div { display: grid; grid-template-columns: 8.5rem 1fr; gap: 0.75rem; border-bottom: 1px solid var(--avyn-rule); padding-bottom: 0.5rem; margin: 0 0 0.5rem; }
.avyn-coa-specs dt { padding-top: 0.125rem; }
.avyn-coa-specs dd { margin: 0; font-family: var(--avyn-mono); font-size: 0.75rem; line-height: 1.625; color: var(--avyn-graphite); overflow-wrap: anywhere; }
.avyn-coa-footer { border-top: 1px solid var(--avyn-rule); padding: 1.5rem; }
@media (min-width: 640px) { .avyn-coa-footer { padding-left: 2.25rem; padding-right: 2.25rem; } }
.avyn-coa-footgrid { display: grid; gap: 1.5rem; }
@media (min-width: 640px) { .avyn-coa-footgrid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.avyn-coa-releaser { margin: 0.5rem 0 0; font-size: 0.875rem; font-weight: 600; color: var(--avyn-ink); }
.avyn-coa-authorised { margin: 0.25rem 0 0; font-family: var(--avyn-mono); font-size: 0.75rem; line-height: 1.05rem; color: var(--avyn-slate); }
.avyn-coa-sig { width: 11rem; height: 2.5rem; margin-top: 0.75rem; border-bottom: 1px solid var(--avyn-ink); color: var(--avyn-brand); }
.avyn-coa-sig svg { display: block; width: 100%; height: 100%; }
.avyn-coa-doccontrol { margin: 0.5rem 0 0; font-family: var(--avyn-mono); font-size: 0.75rem; line-height: 1.05rem; color: var(--avyn-graphite); }
.avyn-coa-doccontrol > div { display: flex; justify-content: space-between; gap: 1rem; }
.avyn-coa-doccontrol > div + div { margin-top: 0.25rem; }
.avyn-coa-doccontrol dt { color: var(--avyn-slate); }
.avyn-coa-doccontrol dd { margin: 0; }
.avyn-coa-disclaimer { margin: 1.5rem 0 0; border-top: 1px solid var(--avyn-rule); padding-top: 1rem; font-size: 0.75rem; line-height: 1.625; color: var(--avyn-slate); }
.avyn-coa-siblings { margin-top: 2.5rem; }
.avyn-coa-siblings > .avyn-pg-label { margin-bottom: 0.75rem; }
.avyn-coa-siblings ul { display: grid; gap: 0.75rem; list-style: none; margin: 0; padding: 0; }
@media (min-width: 640px) { .avyn-coa-siblings ul { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .avyn-coa-siblings ul { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.avyn-coa-siblings a { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; border: 1px solid var(--avyn-rule); background: var(--avyn-panel); padding: 0.75rem 1rem; text-decoration: none; color: inherit; transition: border-color 140ms ease; }
.avyn-coa-siblings a:hover { border-color: var(--avyn-ink); }
.avyn-coa-sib-lot { display: block; font-family: var(--avyn-mono); font-size: 0.75rem; font-weight: 600; color: var(--avyn-ink); }
.avyn-coa-sib-meta { display: block; margin-top: 0.125rem; font-family: var(--avyn-mono); font-size: 0.75rem; line-height: 1.05rem; color: var(--avyn-slate); }
.avyn-coa-sib-purity { font-family: var(--avyn-mono); font-size: 0.875rem; font-weight: 600; color: var(--avyn-brand); font-variant-numeric: tabular-nums; }
.avyn-coa-back { margin-top: 2.5rem; border-top: 1px solid var(--avyn-rule); padding-top: 1.5rem; }
.avyn-coa-back a { font-family: var(--avyn-mono); font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.12em; color: var(--avyn-graphite); text-decoration: underline; text-underline-offset: 4px; }
.avyn-coa-back a:hover { color: var(--avyn-brand); }

/* ── Print: the certificate is the page ───────────────────────────── */
@media print {
  .avyn-no-print, .avyn-announce, .avyn-header, .avyn-footer, .avyn-mobile-bar, .avyn-scroll-top, .avyn-drawer, #wpadminbar { display: none !important; }
  body { background: #fff !important; }
  .avyn-coa-body { padding: 0; }
  .avyn-pg-shell { padding: 0; max-width: none; }
  .avyn-coa { border: 0; }
  .avyn-coa-scroll { overflow: visible; }
  .avyn-coa-table { min-width: 0; }
  .avyn-coa-header, .avyn-coa-section, .avyn-coa-twocol > div, .avyn-coa-footer, .avyn-coa-idgrid > div { padding-left: 0.5rem; padding-right: 0.5rem; }
}
