/* ============================================================================
   /hash_search — certificate verification page
   ----------------------------------------------------------------------------
   The LAYOUT comes from the /preview-b-final reference: the three lookup
   methods housed in a single console (faceplate, method selector, recessed
   input slot, privacy footer) instead of four loose boxes, then a three-step
   explainer, a dark "why this matters" band, a disclosure FAQ and a legal note.

   The PALETTE and TYPE do NOT come from the preview. Every colour resolves to a
   production token from assets/css/styles.css, and the type is Montserrat via
   --font-family. No teal, no coral, no Source Serif, no JetBrains Mono — the
   monospace used for hashes is a system stack, which the page already needs to
   render a 64-character fingerprint legibly.

   SCOPING: every rule is prefixed with `body.verify-v2`. .verify (61 rules),
   .step (14), .dropzone (12), .verify-tab (10), .legal (10), .cert-verdict (9)
   and a dozen more already exist in the global styles.css for this and other
   pages; the body-class prefix outranks them without editing shared CSS.
   ========================================================================== */

body.verify-v2 {
  --vf-field:        #0f172a;
  --vf-field-2:      #0b1220;
  --vf-accent:       var(--color-primary-light);
  --vf-accent-glow:  rgba(96, 165, 250, 0.22);
  --vf-on-dark:      #eef2f9;
  --vf-on-dark-dim:  rgba(238, 242, 249, 0.74);
  --vf-on-dark-line: rgba(238, 242, 249, 0.16);
  --vf-paper:        var(--color-bg);
  --vf-paper-2:      var(--color-bg-light);
  --vf-line:         var(--color-border-light);
  --vf-ease:         cubic-bezier(0.22, 1, 0.36, 1);
  --vf-col:          clamp(22.5rem, 92vw, 83.25rem);
  --vf-mono:         ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;

  background: var(--color-bg);
}

body.verify-v2 .col {
  width: var(--vf-col); margin-inline: auto; padding-inline: clamp(18px, 4vw, 28px);
}
body.verify-v2 .section { padding: clamp(48px, 7vh, 88px) 0; }
body.verify-v2 .mono { font-family: var(--vf-mono); }

/* ── Verify field: dark frame so the console reads as a housed instrument ── */
body.verify-v2 .verify {
  padding: clamp(40px, 6vh, 72px) 0 clamp(52px, 7vh, 84px);
  background:
    radial-gradient(120% 90% at 50% -10%, #1b3563 0%, var(--vf-field) 46%, var(--vf-field-2) 100%);
  border-bottom: 1px solid rgba(11, 18, 32, 0.5);
  max-width: none; margin: 0; border-radius: 0; box-shadow: none;
}
body.verify-v2 .verify-wrap { max-width: 900px; margin-inline: auto; }

body.verify-v2 .verify-head { margin-bottom: clamp(24px, 3.5vh, 38px); text-align: center; }
body.verify-v2 .verify-head__eyebrow {
  display: inline-flex; align-items: center; gap: 9px;
  font-weight: 600; font-size: 0.9rem; letter-spacing: 0.06em; text-transform: uppercase;
  color: var(--vf-accent);
}
body.verify-v2 .verify-head__eyebrow::before {
  content: ""; width: 24px; height: 2px; background: var(--vf-accent); border-radius: 2px;
}
body.verify-v2 .verify-head__title {
  font-family: var(--font-family); font-weight: 700; color: var(--vf-on-dark);
  font-size: clamp(2.475rem, 4.4vw, 3.7125rem); line-height: 1.08; letter-spacing: -0.02em;
  margin: 14px 0 0; text-wrap: balance;
}
body.verify-v2 .verify-head__desc {
  margin: 15px auto 0; font-size: clamp(1.1025rem, 1.2vw, 1.1925rem); line-height: 1.58;
  color: var(--vf-on-dark-dim); max-width: 52ch;
}

/* ── The console ────────────────────────────────────────────────────────── */
body.verify-v2 .verify-console {
  background: var(--vf-paper); border-radius: var(--radius-xl); overflow: hidden;
  box-shadow: var(--shadow-2xl), inset 0 0 0 1px rgba(15, 23, 42, 0.06);
}
body.verify-v2 .verify-console__plate {
  display: flex; align-items: center; justify-content: space-between; gap: 14px; flex-wrap: wrap;
  padding: 13px 22px; background: var(--vf-field-2); color: var(--vf-on-dark);
}
body.verify-v2 .verify-console__mark { display: inline-flex; align-items: center; gap: 9px; font-weight: 600; font-size: 0.945rem; }
body.verify-v2 .verify-console__dot {
  width: 8px; height: 8px; border-radius: 50%; background: var(--vf-accent);
  box-shadow: 0 0 0 3px var(--vf-accent-glow); flex: none;
}
body.verify-v2 .verify-console__std {
  font-family: var(--vf-mono); font-size: 0.765rem; letter-spacing: 0.06em; color: var(--vf-on-dark-dim);
}

body.verify-v2 .verify-console__method { padding: 22px 22px 6px; }
body.verify-v2 .verify-console__legend {
  display: block; font-weight: 600; font-size: 0.81rem; letter-spacing: 0.08em;
  text-transform: uppercase; color: var(--color-text-muted); margin-bottom: 12px;
}

/* Method selector */
body.verify-v2 .verify-tabs {
  display: grid; grid-template-columns: 1fr; gap: 8px;
  background: none; border: 0; padding: 0; margin: 0;
}
@media (min-width: 640px) { body.verify-v2 .verify-tabs { grid-template-columns: repeat(3, 1fr); } }
body.verify-v2 .verify-tab {
  text-align: left; background: var(--vf-paper-2); border: 1.5px solid transparent;
  border-radius: var(--radius-md); padding: 14px 16px;
  display: flex; align-items: flex-start; gap: 12px; width: 100%; min-width: 0;
  cursor: pointer; font-family: var(--font-family); color: inherit;
  transition: border-color var(--transition-base), background var(--transition-base),
              transform var(--transition-base), box-shadow var(--transition-base);
}
body.verify-v2 .verify-tab:hover { border-color: rgba(77, 141, 246, 0.4); transform: translateY(-1px); box-shadow: var(--shadow-sm); }
body.verify-v2 .verify-tab:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(77, 141, 246, 0.35); }
body.verify-v2 .tab-glyph {
  flex: none; width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--radius-sm);
  background: rgba(77, 141, 246, 0.1); color: var(--color-primary-dark);
  font-family: var(--font-family); font-weight: 700; font-size: 1.1813rem; line-height: 1;
  transition: background var(--transition-base), color var(--transition-base);
}
body.verify-v2 .tab-body { display: grid; gap: 2px; min-width: 0; }
body.verify-v2 .verify-tab .tab-title { font-weight: 700; font-size: 1.0575rem; color: var(--color-text); }
body.verify-v2 .verify-tab .tab-desc { font-size: 0.8888rem; color: var(--color-text-muted); line-height: 1.38; }
/* Active tab carries real weight, so the chosen method is never ambiguous. */
body.verify-v2 .verify-tab.active {
  border-color: var(--color-primary-dark); background: var(--vf-field); box-shadow: var(--shadow-sm); transform: none;
}
body.verify-v2 .verify-tab.active .tab-title { color: var(--vf-on-dark); }
body.verify-v2 .verify-tab.active .tab-desc { color: var(--vf-on-dark-dim); }
body.verify-v2 .verify-tab.active .tab-glyph { background: var(--color-primary); color: #fff; }

/* The slot: a recessed input bay */
body.verify-v2 .verify-console__slot {
  margin: 18px 22px 22px; padding: 20px; border-radius: var(--radius-md);
  background: var(--vf-paper-2);
  box-shadow: inset 0 2px 5px rgba(15, 23, 42, 0.07), inset 0 0 0 1px rgba(15, 23, 42, 0.05);
}
/* The global .verify-panels is a white card in its own right: 32px of side
   padding, a border, a radius and a shadow. Nested inside the console slot that
   already provides the recessed surface, that padding was squeezing the
   dropzone and the input row to 570px inside a 636px bay. The slot is the card
   here; this is just a block. */
body.verify-v2 .verify-panels {
  display: block; background: none; border: 0; border-radius: 0;
  box-shadow: none; padding: 0; margin: 0;
}
body.verify-v2 .tab-panel { display: none; }
body.verify-v2 .tab-panel.active { display: block; }
body.verify-v2 .verify-field { display: flex; flex-wrap: wrap; gap: 12px; }
body.verify-v2 .verify-field input[type="text"] {
  flex: 1 1 260px; min-width: 0; font: inherit; font-family: var(--vf-mono); font-size: 1.195rem;
  color: var(--color-text); background: var(--vf-paper);
  border: 1.5px solid rgba(15, 23, 42, 0.16); border-radius: var(--radius-sm); padding: 13px 15px;
  transition: border-color var(--transition-base), box-shadow var(--transition-base);
}
body.verify-v2 .verify-field input[type="text"]:focus {
  outline: none; border-color: var(--color-primary-dark); box-shadow: 0 0 0 3px rgba(77, 141, 246, 0.18);
}

/* Dropzone */
body.verify-v2 .dropzone {
  position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center;
  text-align: center; gap: 9px; width: 100%;
  background: var(--vf-paper);
  border: 1.5px dashed rgba(77, 141, 246, 0.45); border-radius: var(--radius-md);
  padding: clamp(26px, 4vw, 38px) 20px; cursor: pointer; margin: 0;
  transition: background var(--transition-base), border-color var(--transition-base), transform var(--transition-base);
}
body.verify-v2 .dropzone:hover,
body.verify-v2 .dropzone.dropzone--dragover { border-color: var(--color-primary-dark); transform: translateY(-2px); }
body.verify-v2 .dropzone:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(77, 141, 246, 0.4); }
body.verify-v2 .dropzone__input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
body.verify-v2 .dropzone__icon {
  color: var(--color-primary-dark); padding: 12px; border-radius: var(--radius-md); box-sizing: content-box;
  background: linear-gradient(180deg, #ffffff, #eef2f9);
  box-shadow: 0 6px 16px rgba(15, 23, 42, 0.12), inset 0 0 0 1px rgba(15, 23, 42, 0.06);
}
body.verify-v2 .dropzone__title { font-weight: 700; font-size: 1.6875rem; line-height: 1.25; color: var(--color-text); margin: 4px 0 0; }
body.verify-v2 .dropzone__hint { font-size: 1.0125rem; line-height: 1.5; color: var(--color-text-muted); margin: 0; max-width: 46ch; }
body.verify-v2 .dropzone__file,
body.verify-v2 .dropzone__none {
  font-family: var(--vf-mono); font-size: 0.9rem; color: var(--color-text-muted); margin-top: 2px;
  max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
body.verify-v2 .dropzone.dropzone--has-file { border-style: solid; border-color: var(--color-primary-dark); background: rgba(77, 141, 246, 0.06); }
body.verify-v2 .dropzone.dropzone--has-file .dropzone__file { color: var(--color-text); font-weight: 600; }
body.verify-v2 .verify-file-action { margin-top: 12px; }
body.verify-v2 .verify-file-action .btn { width: 100%; }

/* Inline field status. Previously these were rendered and then blanked, so the
   element is styled to disappear completely when it carries no message. */
body.verify-v2 .status {
  margin: 10px 0 0; font-size: 0.99rem; line-height: 1.45; font-weight: 600;
  display: flex; align-items: flex-start; gap: 7px;
}
body.verify-v2 .status--empty,
body.verify-v2 .status:empty { display: none; margin: 0; }
body.verify-v2 .status::before { flex: none; font-weight: 700; }
body.verify-v2 .status.error { color: #c62828; }
body.verify-v2 .status.error::before { content: "!"; }
body.verify-v2 .status.loading { color: var(--color-primary-dark); }
body.verify-v2 .status.loading::before { content: "…"; }
body.verify-v2 .status.success { color: #1b7a3d; }

/* Privacy footer strip */
body.verify-v2 .verify-console__foot {
  display: flex; align-items: center; gap: 9px;
  padding: 13px 22px; border-top: 1px solid var(--vf-line);
  background: var(--vf-paper-2); font-size: 0.9225rem; line-height: 1.45; color: var(--color-text-muted);
}
body.verify-v2 .verify-console__foot svg { flex: none; color: var(--color-primary-dark); }

/* ── Buttons ────────────────────────────────────────────────────────────── */
body.verify-v2 .btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  font-family: var(--font-family); font-weight: 700; font-size: 1.0575rem;
  border-radius: var(--radius-sm); border: 0; cursor: pointer; text-decoration: none;
  padding: 13px 24px;
  transition: transform var(--transition-base), background var(--transition-base), box-shadow var(--transition-base);
}
body.verify-v2 .btn-primary { background: var(--color-primary-dark); color: #fff; box-shadow: var(--shadow-primary); }
body.verify-v2 .btn-primary:hover { background: var(--color-primary); transform: translateY(-2px); box-shadow: var(--shadow-primary-lg); }
body.verify-v2 .btn:focus-visible { outline: none; box-shadow: 0 0 0 3px rgba(77, 141, 246, 0.45); }

/* ── Result card ────────────────────────────────────────────────────────── */
body.verify-v2 .verify-result {
  margin-top: 22px; background: var(--vf-paper); border-radius: var(--radius-xl); overflow: hidden;
  box-shadow: var(--shadow-2xl), inset 0 0 0 1px rgba(15, 23, 42, 0.06);
  max-width: none; padding: 0; border: 0;
}
body.verify-v2 .verify-result.hidden { display: none; }
body.verify-v2 .result-progress { height: 3px; background: rgba(15, 23, 42, 0.08); overflow: hidden; }
body.verify-v2 .result-progress__bar { height: 100%; width: 0; background: var(--color-primary); transition: width 0.35s var(--vf-ease); }

body.verify-v2 .cert-pass { padding: 0; margin: 0; background: none; border: 0; box-shadow: none; }
body.verify-v2 .cert-pass.hidden { display: none; }

/* The verdict: one loud, unambiguous answer. */
body.verify-v2 .cert-verdict {
  display: grid; grid-template-columns: auto 1fr; align-items: start; gap: 6px 14px;
  padding: 20px 24px; margin: 0; border: 0; border-radius: 0;
}
body.verify-v2 .cert-verdict__icon {
  grid-row: 1 / span 2; width: 38px; height: 38px; border-radius: 50%;
  display: grid; place-items: center; font-size: 1.35rem; font-weight: 700; color: #fff;
}
body.verify-v2 .cert-verdict__text { font-weight: 700; font-size: 1.3275rem; line-height: 1.25; align-self: center; }
body.verify-v2 .cert-verdict__detail {
  grid-column: 2; margin: 0; font-size: 1.0125rem; line-height: 1.5; font-weight: 400; max-width: 62ch;
}
body.verify-v2 .cert-verdict__detail.hidden { display: none; }
body.verify-v2 .cert-verdict:has(.cert-verdict__detail.hidden) .cert-verdict__text { align-self: center; }

body.verify-v2 .cert-verdict--found { background: #eaf9ef; color: #14532d; }
body.verify-v2 .cert-verdict--found .cert-verdict__icon { background: #1b7a3d; }
body.verify-v2 .cert-verdict--found .cert-verdict__icon::before { content: "✓"; }
body.verify-v2 .cert-verdict--found .cert-verdict__detail { color: #256b3f; }

body.verify-v2 .cert-verdict--missing { background: #fdecea; color: #7f1d1d; }
body.verify-v2 .cert-verdict--missing .cert-verdict__icon { background: #c62828; }
body.verify-v2 .cert-verdict--missing .cert-verdict__icon::before { content: "✕"; }
body.verify-v2 .cert-verdict--missing .cert-verdict__detail { color: #9b3a34; }

body.verify-v2 .cert-verdict--pending { background: var(--vf-paper-2); color: var(--color-text-muted); }
body.verify-v2 .cert-verdict--pending .cert-verdict__icon { background: var(--color-text-muted); }
body.verify-v2 .cert-verdict--pending .cert-verdict__icon::before { content: "…"; }

body.verify-v2 .cert-body { padding: 22px 24px 24px; }
body.verify-v2 .cert-pass__caption { margin: 0 0 16px; font-size: 0.9675rem; color: var(--color-text-muted); }
body.verify-v2 .cert-pass__caption strong { color: var(--color-text); }
body.verify-v2 .cert-fields { margin: 0; display: grid; gap: 0; }
body.verify-v2 .cert-field {
  display: grid; gap: 3px; padding: 13px 0; border-top: 1px solid var(--vf-line);
}
body.verify-v2 .cert-field:first-child { border-top: 0; padding-top: 0; }
body.verify-v2 .cert-field dt {
  font-size: 0.7987rem; font-weight: 700; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-text-muted);
}
body.verify-v2 .cert-field dd { margin: 0; display: flex; align-items: center; gap: 10px; }
body.verify-v2 .cert-field__value {
  font-family: var(--vf-mono); font-size: 0.9337rem; line-height: 1.5; color: var(--color-text);
  word-break: break-all; min-width: 0;
}
body.verify-v2 .cert-copy {
  flex: none; background: none; border: 1px solid var(--vf-line); border-radius: var(--radius-sm);
  width: 32px; height: 32px; display: grid; place-items: center; cursor: pointer; color: var(--color-text-muted);
  transition: border-color var(--transition-base), color var(--transition-base), background var(--transition-base);
}
body.verify-v2 .cert-copy:hover { border-color: var(--color-primary); color: var(--color-primary-dark); background: var(--color-primary-bg); }
body.verify-v2 .cert-copy--done { border-color: #1b7a3d; color: #1b7a3d; }
body.verify-v2 .cert-actions { margin-top: 18px; display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
body.verify-v2 .cert-actions.hidden { display: none; }
body.verify-v2 .cert-note { margin: 0; font-size: 0.9562rem; color: var(--color-text-muted); }

/* ── "How it works" steps ───────────────────────────────────────────────── */
body.verify-v2 .eyebrow {
  display: inline-flex; align-items: center; gap: 12px;
  font-weight: 600; font-size: 0.99rem; color: var(--color-primary-dark); margin: 0 0 10px;
}
body.verify-v2 .eyebrow::before { content: ''; width: 24px; height: 2px; background: var(--color-primary-dark); }
body.verify-v2 .h2 {
  font-family: var(--font-family); font-weight: 700; font-size: clamp(2rem, 4.4vw, 3.7563rem);
  line-height: 1.12; letter-spacing: -0.02em; color: var(--color-text); margin: 0 0 30px;
}
body.verify-v2 .steps {
  display: grid; grid-template-columns: 1fr; gap: 18px; align-items: stretch;
  background: none; padding: 0; margin: 0;
}
@media (min-width: 860px) {
  body.verify-v2 .steps { grid-template-columns: 1fr auto 1fr auto 1fr; align-items: center; gap: 20px; }
}
body.verify-v2 .step {
  position: relative; background: var(--vf-paper); border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg); padding: 24px 22px; overflow: hidden; margin: 0;
  box-shadow: var(--shadow-sm);
}
body.verify-v2 .step__ghost {
  position: absolute; top: -26px; right: 4px; font-weight: 700; font-size: clamp(5rem, 14.5vw, 12.375rem); line-height: 1;
  color: rgba(77, 141, 246, 0.12); pointer-events: none;
}
/* Fluid rather than fixed: the reference reaches 2.475rem with a serif, but
   Montserrat Bold is much wider and Bulgarian "Потвърждаваме" is a single
   13-character word that overran its card at that size (367px of text in a
   317px box) — the card clips, so it simply vanished mid-word. Scaling with the
   viewport keeps it large, hits the reference size on wide screens where the
   cards are wide enough, and overflow-wrap is the backstop so no language can
   ever clip again. */
body.verify-v2 .step__h {
  position: relative; font-weight: 700;
  font-size: clamp(1.5rem, 2.45vw, 2.475rem);
  line-height: 1.15; letter-spacing: -0.015em; color: var(--color-text); margin: 0 0 10px;
  overflow-wrap: anywhere;
}
body.verify-v2 .step__p { position: relative; margin: 0; font-size: 1.2125rem; line-height: 1.55; color: var(--color-text-muted); }
body.verify-v2 .step__arrow { display: none; color: var(--color-primary); font-size: 1.4625rem; }
@media (min-width: 860px) { body.verify-v2 .step__arrow { display: block; } }

/* ── Dark "why it matters" band ─────────────────────────────────────────── */
body.verify-v2 .honest {
  background: var(--vf-field-2); color: var(--vf-on-dark);
  padding: clamp(44px, 6vh, 76px) 0;
}
/* Wide enough that the headline sets in three lines rather than five at the
   display size above — Montserrat needs roughly 930px per line here, and the
   previous 780px cap forced it to break far too often. The subtitle keeps its
   own 62ch measure, so only the headline uses the extra width. */
body.verify-v2 .honest-inner { max-width: 1080px; margin-inline: auto; text-align: center; }
body.verify-v2 .honest-kicker {
  font-weight: 600; font-size: 0.8775rem; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--vf-accent); margin: 0 0 16px; font-size: 0.925rem;
}
body.verify-v2 .honest h2 {
  font-family: var(--font-family); font-weight: 700; font-size: clamp(2.2rem, 7vw, 5.975rem);
  line-height: 1.08; letter-spacing: -0.025em; color: var(--vf-on-dark); margin: 0; text-wrap: balance;
}
body.verify-v2 .honest h2 em { font-style: normal; color: var(--vf-accent); }
body.verify-v2 .honest-sub { margin: 22px auto 0; max-width: 62ch; font-size: 1.2813rem; line-height: 1.6; color: var(--vf-on-dark-dim); }

/* ── FAQ ────────────────────────────────────────────────────────────────── */
body.verify-v2 .faq-list { max-width: 980px; margin-top: 18px; }
/* Same full reset as /pricing: the global .faq-item is a 600px boxed card and
   .faq-answer is both `display:none` and a `max-height:0` accordion keyed on a
   .faq-question this markup does not use. */
body.verify-v2 .faq-item {
  width: 100%; max-width: none;
  border: 0; border-top: 1px solid var(--vf-line); border-radius: 0;
  background: transparent; box-shadow: none; overflow: visible; padding: 0; margin: 0; transition: none;
}
body.verify-v2 .faq-item:last-child { border-bottom: 1px solid var(--vf-line); }
body.verify-v2 .faq-item:hover { border-color: var(--vf-line); box-shadow: none; }
body.verify-v2 .faq-q {
  list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center;
  gap: 18px; padding: 24px 0; font-weight: 700; font-size: 1.4875rem; line-height: 1.3; color: var(--color-text);
}
body.verify-v2 .faq-q::-webkit-details-marker { display: none; }
body.verify-v2 .faq-chev { flex: none; width: 20px; height: 20px; position: relative; }
body.verify-v2 .faq-chev::before,
body.verify-v2 .faq-chev::after {
  content: ''; position: absolute; background: var(--color-primary-dark);
  transition: transform 0.24s var(--vf-ease), opacity 0.24s var(--vf-ease);
}
body.verify-v2 .faq-chev::before { top: 9px; left: 0; width: 20px; height: 2px; }
body.verify-v2 .faq-chev::after { left: 9px; top: 0; width: 2px; height: 20px; }
body.verify-v2 .faq-item[open] .faq-chev::after { transform: scaleY(0); opacity: 0; }
body.verify-v2 .faq-answer {
  display: none; max-height: none; overflow: visible;
  border: 0; background: transparent; border-radius: 0; padding: 0 0 22px; margin: 0; width: auto;
  color: var(--color-text-muted); max-width: 72ch; font-size: 1.15rem; line-height: 1.6;
}
body.verify-v2 .faq-item[open] > .faq-answer { display: block; }
body.verify-v2 .faq-answer p { margin: 0; font-size: 1.15rem; color: inherit; line-height: 1.6; }

/* ── Legal note ─────────────────────────────────────────────────────────── */
body.verify-v2 .legal { background: var(--color-primary-bg); }
body.verify-v2 .legal-inner {
  display: grid; grid-template-columns: auto 1fr; gap: 24px; align-items: start; max-width: 940px; margin-inline: auto;
}
body.verify-v2 .legal-glyph {
  font-family: var(--font-family); font-weight: 700; font-size: clamp(3.4rem, 9vw, 7.6813rem);
  color: var(--color-primary-dark); line-height: 1;
}
body.verify-v2 .legal-heading { font-weight: 700; font-size: 1.8813rem; line-height: 1.25; color: var(--color-text); margin: 0 0 12px; }
body.verify-v2 .legal-text { font-size: 1.2125rem; line-height: 1.62; color: var(--color-text-secondary); margin: 0; }
@media (max-width: 560px) { body.verify-v2 .legal-inner { grid-template-columns: 1fr; gap: 10px; } }

/* ── Preview modal ──────────────────────────────────────────────────────── */
body.verify-v2 .preview-modal.hidden { display: none; }

@media (prefers-reduced-motion: reduce) {
  body.verify-v2 .verify-tab:hover,
  body.verify-v2 .dropzone:hover,
  body.verify-v2 .btn-primary:hover { transform: none; }
}

/* ── Dark theme ─────────────────────────────────────────────────────────── */
body.verify-v2.theme-dark { --vf-paper: #111827; --vf-paper-2: #0f172a; --vf-line: #2d3f55; }
body.verify-v2.theme-dark .verify-tab { background: #16233a; }
body.verify-v2.theme-dark .verify-tab .tab-title,
body.verify-v2.theme-dark .dropzone__title,
body.verify-v2.theme-dark .cert-field__value,
body.verify-v2.theme-dark .step__h,
body.verify-v2.theme-dark .faq-q,
body.verify-v2.theme-dark .legal-heading,
body.verify-v2.theme-dark .cert-pass__caption strong { color: #e2e8f0; }
body.verify-v2.theme-dark .verify-tab .tab-desc,
body.verify-v2.theme-dark .dropzone__hint,
body.verify-v2.theme-dark .dropzone__file,
body.verify-v2.theme-dark .cert-field dt,
body.verify-v2.theme-dark .step__p,
body.verify-v2.theme-dark .faq-answer,
body.verify-v2.theme-dark .legal-text,
body.verify-v2.theme-dark .verify-console__legend,
body.verify-v2.theme-dark .verify-console__foot { color: #94a3b8; }
body.verify-v2.theme-dark .verify-field input[type="text"],
body.verify-v2.theme-dark .dropzone,
body.verify-v2.theme-dark .step { background: #0f172a; border-color: #2d3f55; color: #e2e8f0; }
body.verify-v2.theme-dark .legal { background: #16233a; }
body.verify-v2.theme-dark .cert-verdict--found { background: #10301f; color: #b7e4c6; }
body.verify-v2.theme-dark .cert-verdict--found .cert-verdict__detail { color: #8fd0a8; }
body.verify-v2.theme-dark .cert-verdict--missing { background: #3a1414; color: #f5b8b2; }
body.verify-v2.theme-dark .cert-verdict--missing .cert-verdict__detail { color: #e09a94; }
