/* VitroVault Trust Centre — public-page ceremony overlay (NDA / request access). Injected by
   visitor.js; styled on the Meridian tokens so it reads as part of the supplier's trust page. */
.vv-overlay {
  position: fixed; inset: 0; z-index: 100;
  background: rgba(20, 18, 14, .5);
  display: flex; align-items: center; justify-content: center;
  padding: 24px 16px;
}
.vv-modal {
  position: relative;
  width: 100%; max-width: 440px;
  max-height: 90vh; overflow-y: auto;
  background: var(--paper, #fff); color: var(--ink);
  border-radius: var(--r-lg, 16px);
  box-shadow: var(--sh-card, 0 20px 60px rgba(0,0,0,.25));
  padding: 30px 28px;
}
.vv-close {
  position: absolute; top: 12px; right: 14px;
  background: none; border: none; font-size: 1.5rem; line-height: 1;
  color: var(--ink-3); cursor: pointer; padding: 4px;
}
.vv-close:hover { color: var(--ink); }
.vv-modal h2 { font-family: var(--display); font-size: 1.4rem; margin: 0 0 6px; color: var(--ink); }
.vv-sub { color: var(--ink-2); font-size: .92rem; margin: 0 0 18px; }
.vv-badge {
  display: inline-block; font-family: var(--mono); font-size: .62rem; letter-spacing: .08em;
  text-transform: uppercase; color: var(--sa-ink, var(--accent-ink));
  background: var(--accent-tint); border: 1px solid var(--sa, var(--accent));
  border-radius: var(--r-pill); padding: 3px 10px; margin-bottom: 14px;
}
.vv-modal .field { margin-bottom: 14px; }
.vv-modal .field label { display: block; font-size: .8rem; font-weight: 600; color: var(--ink-2); margin-bottom: 5px; }
.vv-modal .field input {
  width: 100%; box-sizing: border-box; font: inherit; font-size: .94rem;
  padding: 10px 12px; border: 1px solid var(--line-2); border-radius: var(--r-md);
  background: var(--paper); color: var(--ink);
}
.vv-modal .field input:focus { outline: 2px solid var(--sa, var(--accent)); outline-offset: 1px; border-color: var(--sa, var(--accent)); }
.vv-check { display: flex; gap: 9px; align-items: flex-start; font-size: .86rem; color: var(--ink-2); margin: 6px 0 4px; cursor: pointer; }
.vv-check input { margin-top: 2px; }
.vv-actions { margin-top: 20px; }
.vv-btn {
  width: 100%; justify-content: center; font: inherit; font-weight: 600; font-size: .95rem;
  padding: 12px; border-radius: var(--r-md); cursor: pointer; border: 1px solid var(--sa, var(--accent));
  background: var(--sa, var(--accent)); color: var(--sa-ink-on, #fff);
}
.vv-btn.is-primary { background: var(--sa, var(--accent)); color: #fff; }
.vv-btn:disabled { opacity: .5; cursor: not-allowed; }
.vv-audit { font-size: .76rem; color: var(--ink-3); margin: 14px 0 0; }
.vv-msg { font-size: .86rem; padding: 0; border-radius: var(--r-md); margin: 0; }
.vv-msg.err { display: block; padding: 10px 12px; margin-bottom: 14px; background: var(--stop-tint); color: var(--stop); border: 1px solid var(--stop); }
.vv-msg.ok  { display: block; padding: 10px 12px; margin-bottom: 14px; background: var(--go-tint); color: var(--go); border: 1px solid var(--go); }

.vv-toast {
  position: fixed; bottom: 22px; left: 50%; transform: translateX(-50%) translateY(20px);
  background: var(--ink); color: var(--paper, #fff); padding: 11px 18px; border-radius: var(--r-pill);
  font-size: .88rem; box-shadow: var(--sh-card); opacity: 0; pointer-events: none;
  transition: opacity .2s, transform .2s; z-index: 110; max-width: 90vw; text-align: center;
}
.vv-toast.on { opacity: 1; transform: translateX(-50%) translateY(0); }
.vv-toast.err { background: var(--stop); color: #fff; }
