/* ShutterVerified authenticity theme — public phase 1 pages.
   Calm registry style: navy / burgundy / off-white, thin rules, 3 px corners. */

@font-face {
  font-family: "JetBrains Mono";
  src: url("../themes/fonts/jetbrains-mono-latin-wght-normal.woff2") format("woff2");
  font-weight: 100 800;
  font-style: normal;
  font-display: swap;
}

body.sv-auth {
  background-color: var(--bg);
  color: var(--ink);
}

body.sv-auth .preview-banner {
  background: var(--bg);
  color: var(--muted);
  border-bottom: 1px solid var(--line);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-weight: 400;
  font-size: 0.68rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  padding: 0.4rem 1rem;
}

body.sv-auth .service-bar {
  background: var(--service-bar-bg);
  color: var(--service-bar-fg);
  text-align: center;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.68rem;
  font-weight: 400;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  padding: 0.42rem 1rem;
}

body.sv-auth .site-header {
  background: var(--bg);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
  border-bottom: 1px solid var(--line);
}

body.sv-auth .wordmark {
  color: var(--ink);
  font-weight: 650;
  letter-spacing: -0.03em;
}

body.sv-auth .wordmark::before {
  width: 1.4rem;
  height: 1.4rem;
  border-radius: 0;
  background: url("wordmark-seal.png") center / contain no-repeat;
}

body.sv-auth .site-nav a {
  color: var(--ink);
  background: transparent;
  border-radius: 0;
  padding: 0.35rem 0.7rem;
  font-weight: 500;
  font-size: 0.86rem;
}

body.sv-auth .site-nav a:hover {
  color: var(--ink);
  background: transparent;
  filter: none;
  text-decoration: underline;
  text-underline-offset: 0.3rem;
}

body.sv-auth .site-nav a[aria-current="page"] {
  color: var(--ink);
  background: transparent;
  box-shadow: inset 0 -2px 0 var(--accent);
  font-weight: 600;
}

body.sv-auth .site-nav a[href="login.html"],
body.sv-auth .site-nav a[href="account.html"],
body.sv-auth .site-nav a[href="signup.html"] {
  color: var(--ink);
  background: transparent;
}

body.sv-auth .site-nav a[href="admin-login.html"] {
  color: var(--muted);
  font-weight: 400;
  font-size: 0.8rem;
}

body.sv-auth .btn,
body.sv-auth button.btn,
body.sv-auth a.btn {
  background: var(--accent);
  color: var(--accent-ink);
  border: 1px solid var(--accent);
  border-radius: 3px;
  box-shadow: none;
  font-weight: 600;
  letter-spacing: 0.01em;
}

body.sv-auth .btn:hover,
body.sv-auth a.btn:hover {
  background: var(--accent-hover);
  color: var(--accent-ink);
  filter: none;
  box-shadow: none;
}

body.sv-auth .btn-ghost,
body.sv-auth a.btn-ghost {
  background: transparent;
  color: var(--accent);
  border: 1px solid var(--accent);
  box-shadow: none;
}

body.sv-auth .btn-ghost:hover,
body.sv-auth a.btn-ghost:hover {
  background: rgba(14, 42, 98, 0.06);
  color: var(--ink);
  filter: none;
}

body.sv-auth input,
body.sv-auth select,
body.sv-auth textarea,
body.sv-auth .search {
  border: 1px solid var(--accent);
  border-radius: 3px;
  background: var(--bg-elev);
  color: var(--ink);
  box-shadow: none;
}

body.sv-auth input:focus,
body.sv-auth select:focus,
body.sv-auth textarea:focus,
body.sv-auth .search:focus {
  outline: 1px solid var(--accent);
  outline-offset: 1px;
}

body.sv-auth .table-wrap,
body.sv-auth .panel,
body.sv-auth .pricing,
body.sv-auth .auth-card,
body.sv-auth .notice,
body.sv-auth .tips,
body.sv-auth .lookup,
body.sv-auth .verify-cert,
body.sv-auth .extra-service {
  background: var(--bg-elev);
  border: 1px solid var(--line);
  border-radius: 3px;
  box-shadow: none;
}

body.sv-auth .log th,
body.sv-auth .log td {
  border-color: var(--line);
}

body.sv-auth .site-footer {
  background: var(--bg);
  border-top: 1px solid var(--line);
  color: var(--ink);
}

body.sv-auth .footer-name {
  color: var(--ink);
}

body.sv-auth .footer-tag {
  margin: 0.2rem 0 0.85rem;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.72rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}

body.sv-auth .footer-abn,
body.sv-auth .footer-example,
body.sv-auth .powered {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.75rem;
  color: var(--muted);
  margin: 0.35rem 0 0;
}

body.sv-auth .powered { margin-top: 0.7rem; }

body.sv-auth .footer-nav a {
  color: var(--ink);
}

body.sv-auth h1,
body.sv-auth h2,
body.sv-auth h3 {
  color: var(--ink);
  letter-spacing: -0.03em;
}

body.sv-auth .lede,
body.sv-auth .fine,
body.sv-auth .price-note {
  color: var(--ink-soft);
}

/* Home hero */
.home-hero {
  position: relative;
  overflow: hidden;
  border-bottom: 1px solid var(--line);
  padding: 1.75rem 0 1.9rem;
}

.home-hero-bg {
  position: absolute;
  inset: 50% auto auto 50%;
  width: min(920px, 90vw);
  height: min(920px, 90vw);
  transform: translate(-50%, -48%);
  z-index: 0;
  pointer-events: none;
  opacity: 0.09;
}

.home-hero-bg img {
  display: block;
  width: 100%;
  height: 100%;
}

.home-hero-inner {
  position: relative;
  z-index: 1;
}

.home-hero h1 {
  margin: 0 0 0.55rem;
  font-size: clamp(1.7rem, 3.2vw, 2.25rem);
  font-weight: 650;
  letter-spacing: -0.03em;
  line-height: 1.15;
  max-width: none;
}

.home-hero .lede {
  margin: 0 0 1.15rem;
  max-width: none;
  font-size: 1.02rem;
  color: var(--ink-soft);
}

.home-dropzone,
.home-usb-panel {
  margin: 0 0 1rem;
  padding: 2.4rem 1.5rem 2rem;
  text-align: center;
  border: 1px dashed var(--accent);
  border-radius: 3px;
  background: color-mix(in srgb, var(--bg-elev) 92%, transparent);
  box-shadow: none;
  box-sizing: border-box;
}

.home-dropzone h2,
.home-usb-panel h2 {
  margin: 0 0 0.35rem;
  font-size: 1.2rem;
  font-weight: 650;
  letter-spacing: -0.02em;
  color: var(--ink);
}

.home-dropzone p,
.home-usb-panel p {
  margin: 0 auto 1.05rem;
  color: var(--muted);
  max-width: 32rem;
}

.home-dropzone .formats,
.home-dropzone .brands-line {
  margin: 0.85rem auto 0;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.72rem;
  letter-spacing: 0.04em;
  color: var(--muted);
  max-width: 42rem;
}

.home-dropzone .brands-line { margin-top: 0.4rem; }

.hero-secondary {
  display: grid;
  grid-template-columns: minmax(0, 34rem);
  gap: 1rem 1.5rem;
  align-items: start;
  /* extra space above so the #verify-cert anchor lands with the drop zone's edge out of view */
  margin: 1.4rem 0 1.15rem;
}

.hero-usb {
  display: block;
  padding: 0.9rem 1rem;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--bg-elev);
  color: var(--ink);
  text-decoration: none;
  font-size: 0.95rem;
}

.hero-usb:hover { border-color: var(--accent); }

.hero-usb .usb-kicker {
  display: block;
  margin: 0 0 0.25rem;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--accent-2);
}

.hero-usb .example-flag {
  display: block;
  margin-left: 0;
  margin-top: 0.15rem;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.68rem;
  letter-spacing: 0.04em;
  color: var(--muted);
  text-transform: none;
  background: none;
  padding: 0;
}

.hero-verify {
  padding: 0.9rem 1rem;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--bg-elev);
}

.hero-verify label {
  display: block;
  margin: 0 0 0.4rem;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.68rem;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
}

.hero-verify .verify-row {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
  align-items: stretch;
}

.hero-verify input {
  flex: 1 1 12rem;
  min-width: 0;
  padding: 0.5rem 0.65rem;
}

.hero-verify .btn { flex: 0 0 auto; }

.trust-row {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--line);
}

.trust-row li {
  padding: 0.85rem 1.1rem 0.15rem 0;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.72rem;
  letter-spacing: 0;
  line-height: 1.45;
  color: var(--ink);
}

.trust-row li + li {
  padding-left: 1.1rem;
  border-left: 1px solid var(--line);
}

body.sv-auth.home .section > h2,
body.sv-auth.home .faq h2 {
  font-size: clamp(1.25rem, 2.2vw, 1.55rem);
  font-weight: 650;
}

body.sv-auth .status,
body.sv-auth .life-cell,
body.sv-auth .life-green,
body.sv-auth .life-amber,
body.sv-auth .life-red {
  border-radius: 3px;
}

.auth-restricted {
  margin: 0 0 1rem;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.8rem;
  letter-spacing: 0.04em;
  color: var(--muted);
}

.auth-links {
  margin: 0.85rem 0 0;
  font-size: 0.9rem;
}

.auth-links a { color: var(--ink); }

.admin-auth h1 {
  font-size: 1.7rem;
  font-weight: 650;
  margin: 0 0 0.5rem;
}

.otp-row input {
  letter-spacing: 0.2em;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 1.1rem;
}

@media (max-width: 800px) {
  .hero-secondary,
  .trust-row { grid-template-columns: 1fr; }
  .trust-row li + li {
    padding-left: 0;
    border-left: 0;
    border-top: 1px solid var(--line);
    padding-top: 0.75rem;
  }
  .home-hero { padding: 1.2rem 0 1.4rem; }
  .home-dropzone,
  .home-usb-panel { padding: 1.6rem 1rem 1.4rem; }
}

/* Why use ShutterVerified */
.why-sv {
  padding: 2.4rem 0 2.1rem;
  border-bottom: 1px solid var(--line);
}
.why-sv h2 { margin: 0 0 1.2rem; }
.why-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.15rem;
}
.why-card {
  margin: 0;
  padding: 1.15rem 1.2rem 1.05rem;
  border: 1px solid var(--line);
  border-radius: 3px;
  background: var(--bg-elev);
}
.why-card h3 {
  margin: 0 0 0.85rem;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
}
.why-list,
.why-general {
  list-style: none;
  margin: 0;
  padding: 0;
}
.why-list li,
.why-general li {
  display: grid;
  grid-template-columns: 1.35rem 1fr;
  gap: 0.7rem;
  align-items: start;
  margin: 0 0 0.7rem;
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--ink-soft);
}
.why-list li:last-child { margin-bottom: 0; }
.why-icon {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.12rem;
  color: var(--ink);
  flex-shrink: 0;
}
.why-general {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 1.5rem;
  margin: 1.2rem 0 0;
  padding-top: 1.05rem;
  border-top: 1px solid var(--line);
}
@media (max-width: 800px) {
  .why-grid,
  .why-general { grid-template-columns: 1fr; }
}

body.sv-auth input::placeholder,
body.sv-auth textarea::placeholder,
body.sv-auth .search::placeholder {
  color: var(--muted);
  opacity: 1;
}

body.sv-auth .home-hero-inner.wrap {
  width: min(100% - var(--gutter) * 2, var(--max));
}

.nowrap { white-space: nowrap; }

/* Home spacing scale — 8 px base (8 / 16 / 24 / 32 / 48 / 64). */
body.sv-auth.home {
  --space-1: 8px;
  --space-2: 16px;
  --space-3: 24px;
  --space-4: 32px;
  --space-5: 48px;
  --space-6: 64px;
  --card-pad: 24px;
  --card-radius: 3px;
  --card-bg: var(--bg-elev);
  --card-line: var(--line);
  --max: 50rem;
}

body.sv-auth.home .home-hero,
body.sv-auth.home .section,
body.sv-auth.home .why-sv,
body.sv-auth.home .how-sv,
body.sv-auth.home .faq,
body.sv-auth.home .recent-checks,
body.sv-auth.home .site-footer {
  padding-top: var(--space-5);
  padding-bottom: var(--space-5);
  border-bottom: 1px solid var(--card-line);
}
body.sv-auth.home .site-footer {
  border-bottom: 0;
}

body.sv-auth.home .home-hero h1 { margin: 0 0 var(--space-2); }
body.sv-auth.home .home-hero .lede { margin: 0 0 var(--space-3); }

body.sv-auth.home .section > h2,
body.sv-auth.home .why-sv h2,
body.sv-auth.home .how-sv h2,
body.sv-auth.home .faq h2,
body.sv-auth.home .recent-checks h2,
body.sv-auth.home .section-head {
  margin: 0 0 var(--space-3);
}

/* One card style */
body.sv-auth.home .hero-usb,
body.sv-auth.home .hero-verify,
body.sv-auth.home .why-card,
body.sv-auth.home .how-card,
body.sv-auth.home .pricing-card {
  padding: var(--card-pad);
  border: 1px solid var(--card-line);
  border-radius: var(--card-radius);
  background: var(--card-bg);
  box-shadow: none;
  box-sizing: border-box;
  margin: 0;
  height: 100%;
}

body.sv-auth.home .home-dropzone,
body.sv-auth.home .home-usb-panel {
  margin: 0 0 var(--space-2);
  padding: var(--card-pad);
  box-sizing: border-box;
}

body.sv-auth.home .hero-secondary,
body.sv-auth.home .why-grid,
body.sv-auth.home .how-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2);
  align-items: stretch;
  margin: 0;
}

body.sv-auth.home .hero-secondary {
  /* one card now (the USB link moved to the fallback order); the space above keeps the drop
     zone's edge out of view when #verify-cert is the anchor target */
  grid-template-columns: minmax(0, 1fr);
  margin: var(--space-3) 0 var(--space-3);
}

body.sv-auth.home .hero-usb,
body.sv-auth.home .hero-verify {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

body.sv-auth.home .pricing-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-2);
  align-items: stretch;
  margin: 0 0 var(--space-3);
}
body.sv-auth.home .pricing-cta { margin: 0; }
body.sv-auth.home .pricing-card .price { margin: 0 0 var(--space-2); }
body.sv-auth.home .pricing-card .extra-kicker { margin: 0 0 var(--space-2); }
body.sv-auth.home .pricing-card .example-flag { margin: var(--space-2) 0; }
body.sv-auth.home .pricing-card p { margin: 0 0 var(--space-2); }
body.sv-auth.home .pricing-card p:last-child { margin-bottom: 0; }

body.sv-auth.home .why-card h3,
body.sv-auth.home .how-card h3 {
  margin: 0 0 var(--space-2);
}

body.sv-auth.home .why-list li,
body.sv-auth.home .why-general li {
  margin: 0 0 var(--space-2);
  gap: var(--space-2);
}
body.sv-auth.home .why-list li:last-child { margin-bottom: 0; }

body.sv-auth.home .why-general {
  margin: var(--space-3) 0 0;
  padding-top: var(--space-3);
  gap: var(--space-2) var(--space-3);
}

body.sv-auth.home .why-aside {
  display: block;
  margin-top: var(--space-1);
  color: var(--muted);
  font-size: 0.9rem;
  line-height: 1.45;
}

body.sv-auth.home .how-steps {
  list-style: none;
  margin: 0;
  padding: 0;
}
body.sv-auth.home .how-steps li {
  display: grid;
  grid-template-columns: 1.75rem 1.25rem 1fr;
  gap: var(--space-1) var(--space-2);
  align-items: start;
  margin: 0 0 var(--space-2);
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--ink-soft);
}
body.sv-auth.home .how-steps li:last-child { margin-bottom: 0; }
body.sv-auth.home .how-num {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.06em;
  color: var(--ink);
  line-height: 1.35rem;
}
body.sv-auth.home .how-icon {
  width: 1.25rem;
  height: 1.25rem;
  margin-top: 0.1rem;
  color: var(--ink);
}
body.sv-auth.home .how-verify-link {
  margin: var(--space-3) 0 0;
  padding-top: var(--space-2);
  border-top: 1px solid var(--card-line);
  font-size: 0.95rem;
}
body.sv-auth.home .how-verify-link a { color: var(--ink); }

body.sv-auth.home .trust-row li {
  padding: var(--space-2) var(--space-2) 0 0;
}
body.sv-auth.home .trust-row li + li { padding-left: var(--space-2); }

@media (max-width: 800px) {
  body.sv-auth.home .hero-secondary,
  body.sv-auth.home .why-grid,
  body.sv-auth.home .how-grid,
  body.sv-auth.home .pricing-grid,
  body.sv-auth.home .why-general {
    grid-template-columns: 1fr;
  }
  body.sv-auth.home .home-hero,
  body.sv-auth.home .section,
  body.sv-auth.home .why-sv,
  body.sv-auth.home .how-sv,
  body.sv-auth.home .faq,
  body.sv-auth.home .recent-checks,
  body.sv-auth.home .site-footer {
    padding-top: var(--space-4);
    padding-bottom: var(--space-4);
  }
}

/* How fast shutters wear */
body.sv-auth.home .wear-sv h2 { margin: 0 0 var(--space-1); }
body.sv-auth.home .wear-caption {
  margin: 0 0 var(--space-3);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
body.sv-auth.home .wear-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr;
  gap: var(--space-2);
  align-items: stretch;
  margin: 0;
}
body.sv-auth.home .wear-tile {
  padding: var(--card-pad);
  border: 1px solid var(--card-line);
  border-radius: var(--card-radius);
  background: var(--card-bg);
  box-shadow: none;
  box-sizing: border-box;
  margin: 0;
  height: 100%;
}
body.sv-auth.home .wear-figure {
  margin: 0 0 var(--space-2);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--ink);
}
body.sv-auth.home .wear-copy {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--ink-soft);
}
body.sv-auth.home .wear-close {
  margin: var(--space-3) 0 0;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--ink-soft);
}
body.sv-auth.home .how-card h3 {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--ink);
}
@media (max-width: 800px) {
  body.sv-auth.home .wear-grid { grid-template-columns: 1fr; }
}

body.sv-auth.home .hero-note {
  margin: 0 0 var(--space-3);
  max-width: none;
  font-size: 0.95rem;
  line-height: 1.45;
  color: var(--muted);
}
body.sv-auth.home .home-hero .lede {
  margin: 0 0 var(--space-2);
  max-width: none;
}
body.sv-auth.home .why-grid {
  grid-template-columns: 1fr 1fr 1fr;
}
body.sv-auth.home .why-general {
  grid-template-columns: 1fr 1fr 1fr;
}
@media (max-width: 800px) {
  body.sv-auth.home .why-grid,
  body.sv-auth.home .why-general { grid-template-columns: 1fr; }
}

body.sv-auth.home .why-general {
  grid-template-columns: 1fr 1fr;
}
@media (max-width: 800px) {
  body.sv-auth.home .why-general { grid-template-columns: 1fr; }
}

/* Tagline band */
body.sv-auth .tagline-band {
  background: var(--band-bg);
  color: var(--band-fg);
  padding: 64px 0;
  border: 0;
  text-align: center;
}
body.sv-auth .tagline-band .wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
}
body.sv-auth .tagline {
  margin: 0 0 32px;
  max-width: 40rem;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: clamp(1.05rem, 2.1vw, 1.35rem);
  font-weight: 400;
  letter-spacing: 0.02em;
  line-height: 1.45;
  color: var(--band-fg);
}
body.sv-auth .tagline-btn,
body.sv-auth a.tagline-btn {
  background: var(--band-fg);
  color: var(--band-bg);
  border: 1px solid var(--band-fg);
  box-shadow: none;
}
body.sv-auth .tagline-btn:hover,
body.sv-auth a.tagline-btn:hover {
  background: var(--bg-elev);
  color: var(--band-bg);
  border-color: var(--bg-elev);
  filter: none;
  box-shadow: none;
}
body.sv-auth .footer-tagline {
  margin: 0.35rem 0 0;
  max-width: 36rem;
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.88rem;
  font-weight: 400;
  letter-spacing: 0.01em;
  line-height: 1.4;
  color: var(--ink);
}
@media (max-width: 800px) {
  body.sv-auth .tagline-band { padding: 48px 0; }
  body.sv-auth .tagline { margin-bottom: 24px; }
}

/* Fun facts — same tile style as How fast shutters wear */
body.sv-auth.home .facts-sv h2 { margin: 0 0 var(--space-1); }
body.sv-auth.home .facts-caption {
  margin: 0 0 var(--space-3);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
body.sv-auth.home .facts-grid,
body.sv-auth.home .facts-flow {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-2);
  align-items: stretch;
  margin: 0;
}
body.sv-auth.home .facts-tile,
body.sv-auth.home .wear-tile {
  padding: var(--card-pad);
  border: 1px solid var(--card-line);
  border-radius: var(--card-radius);
  background: var(--card-bg);
  box-shadow: none;
  box-sizing: border-box;
  margin: 0;
}
body.sv-auth.home .wear-tile { height: 100%; }
body.sv-auth.home .facts-tile {
  flex: 0 1 calc((100% - 2 * var(--space-2)) / 3);
  width: calc((100% - 2 * var(--space-2)) / 3);
  max-width: calc((100% - 2 * var(--space-2)) / 3);
  height: auto;
}
body.sv-auth.home .facts-tile[hidden],
body.sv-auth.home .facts-chart[hidden] { display: none; }
body.sv-auth.home .facts-kicker {
  margin: 0 0 var(--space-2);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--muted);
}
body.sv-auth.home .facts-figure {
  margin: 0 0 var(--space-2);
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 1.15rem;
  font-weight: 500;
  letter-spacing: -0.02em;
  line-height: 1.25;
  color: var(--ink);
}
body.sv-auth.home .facts-copy {
  margin: 0;
  font-size: 0.95rem;
  line-height: 1.4;
  color: var(--ink-soft);
}
@media (max-width: 800px) {
  body.sv-auth.home .facts-grid,
  body.sv-auth.home .facts-flow { display: flex; }
  body.sv-auth.home .facts-tile {
    flex: 1 1 100%;
    width: 100%;
    max-width: 100%;
  }
}

body.sv-auth.home .facts-chart {
  flex: 1 1 100%;
  width: 100%;
  margin: 0;
  padding: var(--card-pad);
  border: 1px solid var(--card-line);
  border-radius: var(--card-radius);
  background: var(--card-bg);
  box-shadow: none;
  box-sizing: border-box;
}
body.sv-auth.home .facts-chart figcaption { margin: 0 0 var(--space-3); }
body.sv-auth.home .facts-chart h3 {
  margin: 0 0 var(--space-1);
  font-size: 1.05rem;
  font-weight: 650;
  letter-spacing: -0.02em;
  color: var(--ink);
  text-transform: none;
  font-family: inherit;
}
body.sv-auth.home .facts-chart-sub {
  margin: 0;
  font-size: 0.9rem;
  line-height: 1.4;
  color: var(--muted);
}
body.sv-auth.home .facts-bars {
  display: block;
  width: 100%;
  height: auto;
}

body.sv-auth.home .facts-bars-css { display: none; }
body.sv-auth.home .facts-bars-css {
  list-style: none;
  margin: 0;
  padding: 0;
}
body.sv-auth.home .facts-bars-css li {
  display: grid;
  grid-template-columns: 6.2rem 1fr 1.4rem;
  gap: 8px;
  align-items: center;
  margin: 0 0 8px;
}
body.sv-auth.home .facts-bars-css li:last-child { margin-bottom: 0; }
body.sv-auth.home .facts-bar-label,
body.sv-auth.home .facts-bar-n {
  font-family: "JetBrains Mono", ui-monospace, monospace;
  font-size: 0.78rem;
  color: var(--ink);
}
body.sv-auth.home .facts-bar-label { text-align: right; }
body.sv-auth.home .facts-bar-n { text-align: right; }
body.sv-auth.home .facts-bar-track {
  position: relative;
  height: 14px;
  background:
    repeating-linear-gradient(
      to right,
      var(--gold) 0 1px,
      transparent 1px 20%
    );
  background-color: var(--bg);
  border-bottom: 1px solid var(--gold);
}
body.sv-auth.home .facts-bar-fill {
  display: block;
  height: 100%;
  background: var(--accent);
}
body.sv-auth.home .facts-bar-fill.is-top { background: var(--accent-2); }
@media (max-width: 800px) {
  body.sv-auth.home .facts-bars { display: none; }
  body.sv-auth.home .facts-bars-css { display: block; }
}

/* Home: what we read from one photo (camera + Canon RF lens counts) */
.read-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--space-2, 1rem); margin: var(--space-3, 1.5rem) 0 0; }
.read-heading { grid-column: 1 / -1; margin: 0; font-size: 1.05rem; }
.read-card { border: 1px solid var(--line); border-radius: 3px; background: var(--bg-elev); padding: var(--card-pad, 1.1rem 1.2rem); }
.read-kicker { margin: 0 0 0.6rem; font-family: "JetBrains Mono", ui-monospace, monospace; font-weight: 300; font-size: 0.68rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--accent-2, #96183E); }
.read-list { margin: 0; padding: 0; list-style: none; }
.read-list li { padding: 0.35rem 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent); font-size: 0.95rem; }
.read-list li:last-child { border-bottom: 0; }
.read-fine { margin: 0.7rem 0 0; font-size: 0.82rem; line-height: 1.55; color: var(--muted, #5c6158); }
.cert-prices { margin: 0.4rem 0 0.6rem; display: grid; gap: 0.15rem; }
.cert-prices div { display: flex; justify-content: space-between; align-items: baseline; border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent); padding: 0.3rem 0; }
.cert-prices dt { font-size: 0.9rem; }
.cert-prices dd { margin: 0; font-size: 1.25rem; font-weight: 600; font-variant-numeric: tabular-nums; color: var(--ink, #0E2A62); }
@media (max-width: 800px) { .read-grid { grid-template-columns: 1fr; } }

/* Mobile header: the four public links on one row */
@media (max-width: 720px) {
  .site-nav, body.sv-auth .site-nav { flex-wrap: nowrap; gap: 0; width: 100%; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .site-nav::-webkit-scrollbar { display: none; }
  .site-nav a, body.sv-auth .site-nav a { font-size: 0.8rem; padding: 0.4rem 0.5rem; white-space: nowrap; flex: 0 0 auto; }
  .site-nav a:first-child, body.sv-auth .site-nav a:first-child { padding-left: 0; }
}
@media (max-width: 370px) {
  .site-nav a, body.sv-auth .site-nav a { font-size: 0.76rem; padding: 0.4rem 0.42rem; }
}
/* Public link on small screens: link and copy icon side by side */
@media (max-width: 480px) {
  .cert-public-link { font-size: 0.8rem; }
}

/* Pricing: kicker, then the price headline on the same line in every card */
.pricing-card { display: flex; flex-direction: column; }
.pricing-card .extra-kicker { min-height: 1.2em; margin-bottom: 0.35rem; }
.pricing-card .price { margin-top: 0; margin-bottom: 0.3rem; }
.pricing-card .price-flag-spacer { visibility: hidden; }
.pricing-card .cert-from { white-space: nowrap; }
@media (max-width: 800px) { .pricing-card .price-flag-spacer { display: none; } }
.pricing-card .extra-kicker { white-space: nowrap; letter-spacing: 0.06em; overflow: hidden; text-overflow: ellipsis; }

/* admin sign-in: password field with show/hide, reset panel */
.pw-wrap { position: relative; display: flex; }
.pw-wrap input { flex: 1; padding-right: 4.2rem; }
.pw-toggle { position: absolute; right: 0.35rem; top: 50%; transform: translateY(-50%); height: 2rem; padding: 0 0.6rem; border: 1px solid var(--line); border-radius: var(--radius-sm, 4px); background: var(--bg, #f7f5ef); color: var(--ink-soft, #3b3f45); font: 600 0.75rem/1 ui-monospace, "SF Mono", Menlo, monospace; letter-spacing: 0.04em; cursor: pointer; }
.pw-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.pw-rule { margin: 0.35rem 0 0; font-size: 0.78rem; color: var(--muted); }
.pw-rule.is-ok { color: var(--ok); }
.auth-alt { margin: 0.9rem 0 0; font-size: 0.88rem; }
.auth-alt .text-link { background: none; border: 0; padding: 0; font: inherit; color: var(--accent); text-decoration: underline; text-underline-offset: 2px; cursor: pointer; }
.auth-sub { font-size: 1rem; margin: 0 0 0.4rem; }
#admin-reset { margin-top: 1rem; }

/* Public certificate page: verification summary, format tabs, one preview at a time. */
.cert-summary {
  margin: 0 0 1.5rem;
  padding: 1.15rem 1.2rem 1.2rem;
  background: var(--bg-elev);
  border: 1px solid var(--line);
  border-radius: var(--radius);
}
.cert-summary-badge {
  margin: 0 0 0.35rem;
  font-family: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--accent-2);
}
.cert-summary-count {
  margin: 0;
  font-family: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);
  font-size: clamp(1.85rem, 5vw, 2.4rem);
  font-weight: 500;
  letter-spacing: 0;
  line-height: 1.15;
  padding-bottom: 0.12em;
  margin-bottom: 0.16em;
  white-space: nowrap;
  overflow-wrap: normal;
  max-width: 100%;
  box-sizing: border-box;
  /* proportional punctuation: tabular-nums made the comma as wide as a digit (17, 673) */
  font-variant-numeric: lining-nums proportional-nums;
  font-feature-settings: "tnum" 0, "pnum" 1, "lnum" 1;
  color: var(--ink);
}
.cert-summary-sub {
  margin: 0.15rem 0 0;
  font-family: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);
  font-size: 0.92rem;
  color: var(--ink-soft);
}
.cert-summary-model {
  margin: 0.35rem 0 0.85rem;
  font-size: 1.05rem;
  font-weight: 600;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.cert-summary-facts {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0.65rem 1.2rem;
  margin: 0;
}
.cert-summary-facts div { margin: 0; min-width: 0; }
.cert-summary-facts dt {
  margin: 0;
  font-family: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);
  font-size: 0.62rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--muted);
}
.cert-summary-facts dd {
  margin: 0.15rem 0 0;
  font-size: 0.95rem;
  font-weight: 550;
  color: var(--ink);
  overflow-wrap: anywhere;
}
.cert-summary-note {
  margin: 0.95rem 0 0;
  font-family: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);
  font-size: 0.78rem;
  color: var(--muted);
}
.cert-preview { margin: 0 0 0.5rem; }
.cert-tabs {
  display: flex;
  width: 100%;
  margin: 0 0 1rem;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  background: var(--bg-elev);
}
.cert-tab {
  appearance: none;
  flex: 1 1 0;
  margin: 0;
  border: 0;
  border-right: 1px solid var(--line);
  background: transparent;
  color: var(--ink-soft);
  font-family: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);
  font-size: 0.8rem;
  font-weight: 500;
  letter-spacing: 0.04em;
  min-height: 44px;
  padding: 0.55rem 0.4rem;
  cursor: pointer;
}
.cert-tab:last-child { border-right: 0; }
.cert-tab[aria-selected="true"] {
  background: var(--accent);
  color: var(--accent-ink);
}
.cert-tab:hover:not([aria-selected="true"]) { background: var(--accent-soft); color: var(--ink); }
.cert-tab:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: -2px;
  z-index: 1;
}
.cert-preview-panel { margin: 0; }
.cert-preview-panel[hidden] { display: none; }
.cert-preview-panel .tab-meta {
  margin: 0 0 0.55rem;
  font-family: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);
  font-size: 0.72rem;
  color: var(--muted);
}
.cert-page .cert-downloads {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
  margin: 1.15rem 0 0;
}
.cert-page .cert-downloads .btn {
  flex: 1 1 10rem;
  justify-content: center;
  text-align: center;
  min-height: 44px;
  box-shadow: none;
}
.privacy-page .privacy-body {
  max-width: 40rem;
}
.privacy-page .privacy-body p { margin: 0 0 1rem; color: var(--ink-soft); }
.privacy-page .privacy-body p:last-child { margin-bottom: 0; }
.site-footer .privacy-notice { max-width: 40rem; }
/* Off-screen A4 source sheets, used to rasterise the locked-in H-page PDF and print copy. */
.cert-sheet-source {
  position: fixed;
  left: -10000px;
  top: 0;
  width: 794px;
  pointer-events: none;
  color-scheme: light;
  z-index: -1;
}
.cert-sheet-source .hybrid-sheet,
.cert-sheet-source .print-sheet {
  margin: 0;
}
.cert-page .pdf-actions {
  display: flex;
  gap: 0.5rem;
  margin: 0.6rem 0 0;
}
.cert-page .pdf-actions .btn { flex: 1; justify-content: center; text-align: center; min-height: 44px; box-shadow: none; }
.cert-page .print-sheet { color-scheme: light; }
.cert-a4-frame {
  container-type: inline-size;
  width: 100%;
  overflow: visible;
  background: #f7f5ef;
  color-scheme: light;
  border: 1px solid var(--line, #d9d6cc);
  box-shadow: 0 1px 2px rgba(14, 42, 98, 0.06);
}
.cert-a4-frame > .hybrid-sheet,
.cert-a4-frame > .print-sheet {
  width: 794px;
  height: 1123px;
  margin: 0;
  box-shadow: none;
  zoom: calc(100cqi / 794);
}
html[data-theme="dark"] .cert-a4-frame { background: #f7f5ef; }


/* Details accordion: collapsed on small screens, open as normal flow on desktop. */
.cert-more {
  margin: 0.85rem 0 0;
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  border-radius: var(--radius, 0.5rem);
  background: color-mix(in srgb, var(--bg-elev) 55%, transparent);
  padding: 0 0.85rem;
}
.cert-more > summary {
  list-style: none;
  cursor: pointer;
  font-family: var(--font-mono, "JetBrains Mono", ui-monospace, monospace);
  font-size: 0.78rem;
  font-weight: 500;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--ink-soft);
  min-height: 44px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.5rem;
}
.cert-more > summary::-webkit-details-marker { display: none; }
.cert-more > summary::after {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-right: 1.5px solid var(--muted);
  border-bottom: 1.5px solid var(--muted);
  transform: rotate(45deg);
  transition: transform 0.16s ease;
}
.cert-more[open] > summary::after { transform: rotate(225deg); }
.cert-more > summary:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.cert-more .hybrid-bottom { margin-top: 0.2rem; }
.cert-more .cert-web-notes { margin-top: 0.65rem; padding-bottom: 0.7rem; }

.cert-tabs {
  position: sticky;
  top: var(--header-h, var(--header));
  z-index: 18;
}

@media (min-width: 641px) {
  .cert-more {
    border: 0;
    background: transparent;
    padding: 0;
    margin-top: 0;
    border-radius: 0;
  }
  .cert-more > summary { display: none; }
  .cert-more:not([open]) > .hybrid-bottom { display: grid; }
  .cert-more:not([open]) > .cert-web-notes { display: block; }
}

@media (max-width: 640px) {
  .cert-summary { padding: 0.75rem 0.85rem 0.8rem; margin-bottom: 0.9rem; }
  .cert-summary-count { font-size: clamp(1.45rem, 6vw, 1.85rem); }
  .cert-summary-facts { grid-template-columns: 1fr 1fr; gap: 0.4rem 0.8rem; }
  .cert-summary-note { margin-top: 0.65rem; }
  .cert-tab { font-size: 0.74rem; padding: 0.45rem 0.25rem; letter-spacing: 0.02em; min-height: 40px; }
  .cert-tabs { margin-bottom: 0.7rem; }
  .cert-page .cert-web-sheet { padding: 1rem 0.85rem 1rem; }
  .cert-page .cert-web-frame > .cert-web-sheet { padding: clamp(0.65rem, 4cqi, 1.2rem) clamp(0.7rem, 4.8cqi, 1rem) clamp(0.5rem, 3cqi, 1.15rem); }
  .cert-page .cert-downloads {
    position: sticky;
    bottom: 0;
    z-index: 16;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    gap: 0.4rem;
    margin: 0.75rem calc(var(--gutter, 1.1rem) * -1) 0;
    padding: 0.5rem var(--gutter, 1.1rem) calc(0.5rem + env(safe-area-inset-bottom, 0px));
    background: color-mix(in srgb, var(--bg) 90%, transparent);
    backdrop-filter: blur(14px) saturate(1.1);
    border-top: 1px solid var(--line);
  }
  .cert-page .cert-downloads .btn {
    flex: 1 1 0;
    width: auto;
    min-height: 40px;
    padding: 0.4rem 0.3rem;
    font-size: 0.76rem;
  }
}

/* Privacy policy page */
body.sv-auth .privacy-article { max-width: 40rem; }
body.sv-auth .privacy-article h1 { margin: 0 0 var(--space-2, 0.75rem); }
body.sv-auth .privacy-article h2 {
  margin: 1.75rem 0 0.5rem;
  font-size: 1.15rem;
  letter-spacing: -0.02em;
}
body.sv-auth .privacy-article p { margin: 0 0 0.9rem; color: var(--ink); }
body.sv-auth .privacy-article .lede { color: var(--ink); }

.cert-page .count-comma, .print-count .count-comma { display: inline-block; letter-spacing: 0; margin: 0 -0.15em 0 0; padding: 0; }
.cert-summary-count .count-comma { display: inline-block; letter-spacing: 0; margin: 0 -0.15em 0 0; padding: 0; }


/* Public /c certificate view is view-only: no format tabs, no download bar.
   The Details accordion is unwrapped in the HTML so the QR and notes stay
   in the sheet, and the page closes up before the slogan strip. */
body.cert-page[data-cert-page^="public"] .cert-tabs,
body.cert-page[data-cert-page^="public"] .cert-downloads,
body.cert-page[data-cert-page^="public"] .cert-preview-panel:not(#panel-certificate),
body.cert-page[data-cert-page^="public"] .cert-sheet-source {
  display: none !important;
}
body.cert-page[data-cert-page^="public"] .cert-preview { margin-bottom: 0; }
body.cert-page[data-cert-page^="public"] .cert-sheet-end { margin: 0; }
body.cert-page[data-cert-page^="public"] .sv-slogan-strip { margin-top: 1.4rem; }
