/* Copyright 2026 My Digital Sovereignty Ltd. All rights reserved. Published with the Provenance check page so that anyone may read it; having a copy gives no licence to it (see the notice at the head of provenance-verifier.js). */

/* ============================================================================
   provenance-verify.css: the Provenance check page (public/provenance-verify.html).
   Extends /css/village-apps.css: consumes its tokens and shared chrome (header.site,
   .wrap, footer.site, .hero, .skip-link, .lang-switch, .theme-btn, .overlay), so the
   light and dark themes follow it. Fonts are this site's own files; nothing is
   loaded from anywhere else.
   ============================================================================ */

@font-face {
  font-family: 'Atkinson Hyperlegible';
  font-style: normal; font-weight: 400; font-display: swap;
  src: local('Atkinson Hyperlegible'), url('/fonts/atkinson/atkinson-hyperlegible-regular.woff2') format('woff2');
}
@font-face {
  font-family: 'Atkinson Hyperlegible';
  font-style: normal; font-weight: 700; font-display: swap;
  src: local('Atkinson Hyperlegible Bold'), url('/fonts/atkinson/atkinson-hyperlegible-bold.woff2') format('woff2');
}
body { font-family: 'Atkinson Hyperlegible', system-ui, -apple-system, sans-serif; }

.hero--prov .wrap { grid-template-columns: 1fr; padding-block: var(--s12); }
.hero--prov h1 { font-size: clamp(1.9rem, 1.4rem + 2.4vw, 3.1rem); max-width: 26ch; }
.hero--prov .sub { max-width: 60ch; }

section.band { padding-block: var(--s12); }
section.band--alt { background: rgba(127, 127, 127, .06); }
.prose > * { max-width: 46rem; }
.prose h2 { font-size: var(--t-xl); letter-spacing: -.01em; margin-bottom: var(--s4); }
.prose p { margin-bottom: var(--s4); }
.prose a:not(.btn) { color: var(--c-know); text-underline-offset: .15em; }
.prv-list { padding-left: 1.2em; margin: 0 0 var(--s4); max-width: 46rem; }
.prv-list li { margin-bottom: var(--s3); }
.cta-band { text-align: center; padding-block: var(--s12); border-top: 1px solid var(--line); }
.cta-band .btn { background: var(--bg-raise); border-color: var(--line); color: var(--ink); }

/* Shown only by te-reo-provisional-notice.js on the te reo page; hidden by default elsewhere. */
.provisional-note { display: none; margin: var(--s4) auto 0; max-width: 72rem; padding: .75rem var(--s4);
  background: var(--c-connect-soft); border: 1px solid var(--c-connect); border-radius: var(--r-s);
  font-size: var(--t-xs); color: var(--ink); line-height: 1.6; }

a:focus-visible, button:focus-visible, input:focus-visible, summary:focus-visible, [tabindex]:focus-visible {
  outline: 2px solid var(--c-know); outline-offset: 2px;
}

.prv-ignored { max-width: 46rem; margin: var(--s4) 0 0; color: var(--ink-soft); }
.prv-ignored > summary { cursor: pointer; font-weight: 700; }
.prv-ignored .prv-list { margin-top: var(--s3); }

/* ---- The check ---- */
#prv-mount { max-width: 46rem; }
#prv-mount * { overflow-wrap: anywhere; }
.prv-field { margin: 0 0 var(--s6); padding: var(--s4); border: 2px dashed var(--line); border-radius: var(--r-s); background: var(--bg-raise); }
.prv-field.prv-drag { border-color: var(--c-know); }
#prv-mount label { display: block; font-weight: 700; margin: var(--s4) 0 var(--s2); }
.prv-field label { margin-top: 0; }
#prv-mount input[type="text"], #prv-mount input[type="file"], #prv-mount textarea {
  font: inherit; width: 100%; max-width: 100%; padding: .5em .6em; border: 1px solid var(--ink-soft);
  border-radius: var(--r-s); background: var(--bg); color: var(--ink);
}
#prv-mount textarea { font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace; font-size: var(--t-s); resize: vertical; }
.prv-progress { color: var(--ink-soft); font-size: var(--t-s); margin: 0 0 var(--s2); }
.prv-cancel[hidden], .prv-progress[hidden] { display: none; }
.prv-cancel { background: var(--bg-raise); color: var(--ink); border-color: var(--line); margin-top: 0; }
#prv-mount input[type="text"] { font-family: ui-monospace, 'SFMono-Regular', Menlo, Consolas, monospace; font-size: var(--t-s); }
.prv-hint { color: var(--ink-soft); font-size: var(--t-s); margin: var(--s2) 0 0; }
.prv-sample { margin: 0 0 var(--s6); }
.prv-sample p { margin-bottom: var(--s3); }
.prv-btn { cursor: pointer; border: 1px solid var(--c-know); background: var(--c-know); color: var(--bg); margin-top: var(--s4); }
.prv-status { min-height: 1.5em; color: var(--ink-soft); }

.prv-result { margin: var(--s4) 0 var(--s6); padding: var(--s4) var(--s6); border: 1px solid var(--line);
  border-left: 6px solid var(--c-connect); border-radius: var(--r-s); background: var(--bg-raise); }
.prv-result[data-tier="pass"] { border-left-color: var(--c-work); }
.prv-result[data-tier="fail"] { border-left-color: #a31515; }
.prv-headline { font-size: var(--t-l); margin: 0 0 var(--s2); }
.prv-explain { margin: 0; }
.prv-detail { margin-top: var(--s3); font-size: var(--t-s); color: var(--ink-soft); }

.prv-section { margin: var(--s6) 0; }
.prv-section h3, .prv-section > summary { font-size: var(--t-m); font-weight: 700; margin: 0 0 var(--s3); cursor: default; }
details.prv-section > summary { cursor: pointer; }
.prv-lines, .prv-check-list { list-style: none; padding: 0; margin: 0; }
.prv-lines li, .prv-check-list li { padding: var(--s2) var(--s3); margin-bottom: var(--s2); border-left: 4px solid var(--c-connect);
  background: var(--bg-raise); border-radius: 0 var(--r-s) var(--r-s) 0; }
.prv-lines li[data-tier="pass"], .prv-check-list li[data-status="pass"], .prv-check-list li[data-status="checked"] { border-left-color: var(--c-work); }
.prv-lines li[data-tier="fail"], .prv-check-list li[data-status="fail"] { border-left-color: #a31515; }
.prv-lines li[data-tier="info"], .prv-check-list li[data-status="n/a"], .prv-check-list li[data-status="informational"] { border-left-color: var(--line); }
.prv-word { display: block; font-size: var(--t-xs); text-transform: uppercase; letter-spacing: .04em; color: var(--ink-soft); }
.prv-check-detail { margin: var(--s1) 0 0; font-size: var(--t-s); color: var(--ink-soft); }

.prv-party { padding: var(--s3) var(--s4); margin: var(--s3) 0; border: 1px solid var(--line); border-radius: var(--r-s); background: var(--bg-raise); }
.prv-party p { margin: 0 0 var(--s1); }
.prv-did { font-weight: 700; }
.prv-role { color: var(--ink-soft); font-size: var(--t-s); }
.prv-fp code { font-size: var(--t-xs); word-break: break-all; }
.prv-party label { margin-top: var(--s2) !important; font-size: var(--t-s); }

.prv-table-wrap { overflow-x: auto; }
.prv-table { width: 100%; border-collapse: collapse; font-size: var(--t-s); }
.prv-table th, .prv-table td { text-align: left; padding: var(--s2); border-bottom: 1px solid var(--line); vertical-align: top; }
.prv-table td:first-child { word-break: break-all; }

@media (prefers-color-scheme: dark) {
  :root:not([data-theme="light"]) .prv-result[data-tier="fail"],
  :root:not([data-theme="light"]) .prv-lines li[data-tier="fail"],
  :root:not([data-theme="light"]) .prv-check-list li[data-status="fail"] { border-left-color: #ff8080; }
}
:root[data-theme="dark"] .prv-result[data-tier="fail"],
:root[data-theme="dark"] .prv-lines li[data-tier="fail"],
:root[data-theme="dark"] .prv-check-list li[data-status="fail"] { border-left-color: #ff8080; }

/* The printable report (milestone 1, D10): a header that prints above the result; on screen it is hidden. */
.prv-report-only { display: none; }
.prv-print { margin-top: var(--s3); }
.prv-legal { margin: var(--s6) 0; }
.prv-legal h4 { font-size: var(--t-m); margin: var(--s4) 0 var(--s2); }
.prv-legal ul { padding-left: 1.2em; }
.prv-legal .prv-lim { color: var(--ink-soft); font-size: var(--t-s); }

@media print {
  :root { color-scheme: light; }
  body { background: #fff !important; color: #000 !important; }
  header, nav, .site-nav, footer.site, .hero, .prv-field, .prv-sample, .prv-status, .prv-progress, .prv-cancel, .prv-inputs,
  .prv-print, .prv-how, .skip-link { display: none !important; }
  .prv-report-only { display: block; }
  .prv-report-head { border-bottom: 2px solid #000; margin-bottom: 12pt; padding-bottom: 8pt; }
  .prv-report-head h2 { font-size: 16pt; margin: 0 0 6pt; }
  .prv-result, .prv-lines li, .prv-check-list li, .prv-party { background: #fff !important; break-inside: avoid; }
  details > summary { list-style: none; }
  details > summary::-webkit-details-marker { display: none; }
  .prv-lines li { border-left-width: 3px; }
  a { color: #000; text-decoration: underline; }
  a[href^="http"]::after { content: " (" attr(href) ")"; font-size: 9pt; }
}
