/* SBVora v3 / proof-stats: "Beleg" buttons in the stats band and one shared evidence panel. */

.stats-band{
  --pf-ink:#071426;
  --pf-muted:#55658a;
  --pf-line:rgba(6,35,90,.16);
  --pf-line-strong:#061a36;
  --pf-bg:#fff;
  --pf-sub:#f2f7fb;
  --pf-accent:#1868c0;
  --pf-accent-2:#249ae6;
  --pf-ok:#0d7a4f;
  --pf-ok-bg:rgba(13,122,79,.08);
  --pf-warn:#a4470b;
  --pf-warn-bg:rgba(164,71,11,.08);
  --pf-mono:ui-monospace,Menlo,monospace;
}
html[data-theme="dark"] .stats-band{
  --pf-ink:#e8f4fc;
  --pf-muted:#a8c2d3;
  --pf-line:rgba(139,194,223,.22);
  --pf-line-strong:#5fb8e6;
  --pf-bg:#0a2036;
  --pf-sub:#0c253e;
  --pf-accent:#5fc8f5;
  --pf-accent-2:#2dc5f8;
  --pf-ok:#5fe0a6;
  --pf-ok-bg:rgba(95,224,166,.1);
  --pf-warn:#ffb27a;
  --pf-warn-bg:rgba(255,178,122,.1);
}

/* align the triggers on one baseline across the row (grid items stretch) */
.stat:has(> .stat-proof){display:flex;flex-direction:column;align-items:flex-start}
.stat:has(> .stat-proof)>.stat-proof{margin-top:auto;padding-top:0}
.stat:has(> .stat-proof)>span{margin-bottom:12px}

/* ---------- the "Beleg" trigger: looks like a micro-label, hits like a button ---------- */
.stat-proof{
  display:inline-flex;align-items:center;gap:9px;
  min-height:44px;min-width:44px;margin:12px 0 -10px -10px;padding:0 10px;
  border:0;background:none;color:var(--pf-accent);cursor:pointer;
  font:700 10px/1 var(--pf-mono);letter-spacing:.16em;text-transform:uppercase;
  -webkit-tap-highlight-color:transparent;
}
.stat-proof::before{
  content:"";width:7px;height:7px;flex:none;border:1px solid currentColor;
  background:transparent;transition:background-color .2s ease,transform .3s var(--ease,ease);
}
.stat-proof::after{
  content:"";width:9px;height:9px;flex:none;
  background:linear-gradient(currentColor,currentColor) center/9px 1px no-repeat,linear-gradient(currentColor,currentColor) center/1px 9px no-repeat;
  transition:transform .3s var(--ease,ease);
}
.stat-proof:hover{color:var(--pf-ink)}
.stat-proof:hover::before{background:currentColor}
.stat-proof[aria-expanded="true"]{color:var(--pf-ink)}
.stat-proof[aria-expanded="true"]::before{background:var(--pf-accent-2);border-color:var(--pf-accent-2)}
.stat-proof[aria-expanded="true"]::after{transform:rotate(45deg)}
.stat-proof:focus-visible{outline:2px solid var(--cyan,#2dc5f8);outline-offset:-2px}
.stat.is-proofing{background:linear-gradient(180deg,transparent 60%,rgba(36,154,230,.07))}
html[data-theme="dark"] .stat.is-proofing{background:linear-gradient(180deg,transparent 60%,rgba(45,197,248,.08))}

/* ---------- panel shell ---------- */
.stat-proof-panel{
  --proof-x:50%;
  position:relative;overflow:hidden;
  margin-top:-1px;
  border:1px solid var(--pf-line-strong);
  background:var(--pf-bg);color:var(--pf-ink);
}
.stat-proof-panel[hidden]{display:none}
.stat-proof-panel::before{ /* notch pointing at the active stat */
  content:"";position:absolute;z-index:1;top:2px;left:var(--proof-x);width:18px;height:8px;transform:translateX(-50%);
  background:var(--pf-accent-2);clip-path:polygon(0 0,100% 0,50% 100%);
  transition:left .35s var(--ease,ease);
}
.stat-proof-panel::after{ /* printhead rule */
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:linear-gradient(90deg,var(--blue,#1868c0),var(--cyan,#2dc5f8));
}
.stat-proof-panel.is-animating{will-change:height,opacity}

.stat-proof-head{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:6px 6px 6px 28px;border-bottom:1px dashed var(--pf-line);
  background:var(--pf-sub);
}
.stat-proof-kicker{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;margin:0;
  font:700 10px/1.4 var(--pf-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--pf-muted);
}
.stat-proof-led{
  width:8px;height:8px;background:var(--pf-ok);box-shadow:0 0 0 3px var(--pf-ok-bg);
  animation:proofLed 1.6s steps(2,jump-none) infinite;
}
.stat-proof-time{color:var(--pf-ink);font-variant-numeric:tabular-nums}
.stat-proof-time:empty{display:none}
.stat-proof-time::before{content:"·";margin-right:12px;color:var(--pf-muted)}
@keyframes proofLed{50%{opacity:.35}}

.stat-proof-close{
  position:relative;flex:none;width:44px;height:44px;border:1px solid transparent;background:none;cursor:pointer;color:var(--pf-ink);
}
.stat-proof-close::before,.stat-proof-close::after{
  content:"";position:absolute;left:50%;top:50%;width:16px;height:1.5px;background:currentColor;
}
.stat-proof-close::before{transform:translate(-50%,-50%) rotate(45deg)}
.stat-proof-close::after{transform:translate(-50%,-50%) rotate(-45deg)}
.stat-proof-close:hover{border-color:var(--pf-line-strong)}
.stat-proof-close:focus-visible{outline:2px solid var(--cyan,#2dc5f8);outline-offset:-4px}

.stat-proof-body{padding:30px 28px 32px}
.stat-proof-panel.is-swapping .stat-proof-body{animation:proofSwap .42s cubic-bezier(.16,1,.3,1)}
@keyframes proofSwap{from{opacity:0;transform:translateY(8px)}}

/* ---------- content ---------- */
.proof-title{
  margin:0 0 26px;max-width:40ch;
  font-family:Michroma,"Arial Narrow",sans-serif;font-weight:400;
  font-size:clamp(17px,1.7vw,22px);line-height:1.3;letter-spacing:-.01em;color:var(--pf-ink);
}
.proof-title:focus{outline:none}
.proof-title:focus-visible{outline:2px solid var(--cyan,#2dc5f8);outline-offset:6px}

.proof-grid{display:grid;grid-template-columns:minmax(200px,.34fr) 1fr;gap:0;border:1px solid var(--pf-line)}
.proof-readout{
  display:flex;flex-direction:column;padding:22px 22px 20px;border-right:1px solid var(--pf-line);
  background:
    repeating-linear-gradient(90deg,var(--pf-line) 0 1px,transparent 1px 8px) left bottom/100% 6px no-repeat,
    var(--pf-sub);
}
.proof-micro{
  margin:0 0 12px;font:700 9.5px/1.3 var(--pf-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--pf-muted);
}
.proof-value{
  margin:0;font-family:Michroma,"Arial Narrow",sans-serif;font-size:clamp(52px,5.4vw,76px);line-height:1;letter-spacing:-.04em;
  color:var(--pf-ink);font-variant-numeric:tabular-nums;
}
.proof-caption{margin:12px 0 18px;font-size:13px;line-height:1.4;color:var(--pf-muted);max-width:24ch}
.proof-verdict{
  display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:auto 0 0;padding-top:14px;padding-bottom:12px;
  border-top:1px dashed var(--pf-line);font:700 9.5px/1.3 var(--pf-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--pf-muted);
}
.proof-stamp{
  padding:6px 9px;border:1.5px solid currentColor;font:800 10px/1 var(--pf-mono);letter-spacing:.18em;transform:rotate(-3deg);
}
.proof-verdict.is-ok .proof-stamp{color:var(--pf-ok);background:var(--pf-ok-bg)}
.proof-verdict.is-off .proof-stamp{color:var(--pf-warn);background:var(--pf-warn-bg)}

.proof-detail{display:flex;flex-direction:column;gap:22px;padding:22px 24px;min-width:0}
.proof-section .proof-micro{margin-bottom:8px}

.proof-rows{margin:0;display:grid}
.proof-row{
  display:flex;align-items:baseline;gap:12px;padding:9px 0;border-bottom:1px dotted var(--pf-line);
}
.proof-row:first-child{padding-top:0}
.proof-row dt{font-size:14px;color:var(--pf-ink);flex:none;max-width:70%}
.proof-row::after{content:none}
.proof-row dd{
  margin:0 0 0 auto;font:700 14px/1.2 var(--pf-mono);font-variant-numeric:tabular-nums;color:var(--pf-ink);text-align:right;overflow-wrap:anywhere;
}
.proof-row.is-zero dd{color:var(--pf-ok)}
.proof-row.is-warn dd{color:var(--pf-warn)}
.proof-row.is-key dt{font:600 12.5px/1.3 var(--pf-mono);letter-spacing:.02em;color:var(--pf-muted)}
.proof-row.is-key dd code{font:inherit;padding:3px 7px;border:1px solid var(--pf-line);background:var(--pf-sub)}
.proof-row.is-key dd code.is-empty{font-weight:500;color:var(--pf-muted);border-style:dashed;background:none}

.proof-chips{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.proof-chip{
  display:inline-flex;align-items:baseline;flex-wrap:wrap;gap:4px 8px;padding:7px 10px;border:1px solid var(--pf-line);background:var(--pf-sub);
  font-size:12.5px;line-height:1.35;color:var(--pf-ink);max-width:100%;
}
.proof-chip code{font:700 11.5px/1.35 var(--pf-mono);color:var(--pf-accent);overflow-wrap:anywhere}
.proof-chip i{font-style:normal;color:var(--pf-muted)}
.proof-note{margin:0;font:600 10px/1.5 var(--pf-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--pf-muted)}

.proof-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--pf-line)}
.proof-list li{
  display:grid;grid-template-columns:34px 1fr auto;align-items:baseline;gap:12px;padding:10px 0;border-bottom:1px solid var(--pf-line);
  font-size:14.5px;line-height:1.35;transition:background-color .3s ease;
}
.proof-idx{font:700 10.5px/1 var(--pf-mono);letter-spacing:.1em;color:var(--pf-accent)}
.proof-name{color:var(--pf-ink);min-width:0;overflow-wrap:anywhere}
.proof-tag{
  justify-self:end;padding:4px 7px;border:1px solid var(--pf-line);font:700 9px/1 var(--pf-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--pf-muted);white-space:nowrap;
}
.proof-langs li{grid-template-columns:34px 92px 1fr auto}
.proof-lang-name{font:600 11px/1.3 var(--pf-mono);letter-spacing:.06em;color:var(--pf-muted)}
.proof-langs li.is-current .proof-tag{color:var(--pf-accent);border-color:currentColor}
.proof-langs li.is-ticking{background:linear-gradient(90deg,rgba(36,154,230,.1),transparent 70%)}
.proof-langs li.is-ticking .proof-idx::before{content:"";display:inline-block;width:5px;height:5px;margin:0 6px 1px -11px;background:var(--pf-accent-2)}

/* vertical ticker: all slides share one grid cell, so its height = tallest slide */
.proof-ticker{
  display:grid;overflow:hidden;padding:18px 20px;border:1px solid var(--pf-line);
  background:var(--pf-sub);
}
.proof-slide{
  grid-area:1/1;display:grid;grid-template-columns:40px 1fr;gap:14px;align-items:center;
  opacity:0;transform:translateY(60%);visibility:hidden;
  transition:opacity .5s ease,transform .6s cubic-bezier(.16,1,.3,1),visibility 0s linear .6s;
}
.proof-slide.is-on{opacity:1;transform:none;visibility:visible;transition:opacity .5s ease .08s,transform .6s cubic-bezier(.16,1,.3,1),visibility 0s}
.proof-slide.is-off{opacity:0;transform:translateY(-60%);visibility:visible}
.proof-slide-code{
  display:grid;place-items:center;height:40px;border:1px solid var(--pf-line-strong);
  font:700 11px/1 var(--pf-mono);letter-spacing:.12em;color:var(--pf-ink);background:var(--pf-bg);
}
.proof-slide-line{
  display:block;font-family:Michroma,"Arial Narrow",sans-serif;font-size:clamp(17px,2vw,26px);line-height:1.22;letter-spacing:-.03em;color:var(--pf-ink);
}
.proof-slide-line span,.proof-slide-line strong{display:block}
.proof-slide-line strong{font-weight:400;color:var(--pf-accent)}
.stat-proof-panel.proof-still .proof-ticker{display:none}

.proof-link,.proof-mail{color:var(--pf-accent)}
.proof-link{
  display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:48px;padding:0 2px;
  border-top:1px solid var(--pf-line-strong);font-size:13px;font-weight:750;color:var(--pf-ink);text-decoration:none;
}
.proof-link i{font-style:normal;font-size:18px;color:var(--pf-accent-2);transition:transform .25s ease}
.proof-link:hover i{transform:translate(3px,3px)}
.proof-link:focus-visible,.proof-mail:focus-visible{outline:2px solid var(--cyan,#2dc5f8);outline-offset:3px}
.proof-mail{display:inline-block;padding:8px 0;margin:-8px 0;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}

/* contact card pulse after "Zur Kontaktkarte" */
.contact-card.proof-pulse{animation:proofPulse 2.4s ease-out 1}
@keyframes proofPulse{
  0%,100%{outline:1px solid rgba(169,232,255,0);outline-offset:14px}
  12%,60%{outline:1px solid rgba(169,232,255,.95);outline-offset:6px}
}

/* ---------- responsive ---------- */
@media (max-width:860px){
  .proof-grid{grid-template-columns:1fr}
  .proof-readout{border-right:0;border-bottom:1px solid var(--pf-line);display:grid;grid-template-columns:auto 1fr;column-gap:20px;align-items:end}
  .proof-readout .proof-micro{grid-column:1/-1}
  .proof-readout .proof-caption{margin:0 0 6px}
  .proof-readout .proof-verdict{grid-column:1/-1;margin-top:16px;padding-bottom:4px}
}
@media (max-width:560px){
  .stat-proof{margin-top:8px;font-size:9.5px;letter-spacing:.14em}
  .stat-proof-head{padding-left:16px}
  .stat-proof-kicker{font-size:9px;letter-spacing:.11em}
  .stat-proof-time{flex-basis:100%;padding-left:18px}
  .stat-proof-time::before{content:none}
  .stat-proof-body{padding:22px 16px 24px}
  .proof-title{margin-bottom:18px}
  .proof-readout{padding:18px 16px 14px}
  .proof-value{font-size:48px}
  .proof-detail{padding:18px 16px}
  .proof-row{flex-wrap:wrap;gap:4px 12px}
  .proof-row dt{max-width:none}
  .proof-langs li{grid-template-columns:30px 1fr auto;gap:4px 10px}
  .proof-langs .proof-lang-name{grid-column:2}
  .proof-langs .proof-name{grid-column:2/-1;grid-row:2}
  .proof-langs .proof-tag{grid-column:3;grid-row:1}
  .proof-list li{grid-template-columns:28px 1fr auto;gap:10px}
  .proof-ticker{padding:14px}
  .proof-slide{grid-template-columns:34px 1fr;gap:12px}
  .proof-slide-code{height:34px}
}

/* ---------- reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  .stat-proof::before,.stat-proof::after,.stat-proof-panel::before,.proof-link i,.proof-list li{transition:none}
  .stat-proof-led{animation:none}
  .stat-proof-panel.is-swapping .stat-proof-body{animation:none}
  .proof-ticker{display:none}
  .contact-card.proof-pulse{animation:none;outline:1px solid rgba(169,232,255,.95);outline-offset:6px}
}

/* ---------- normal page print ---------- */
@media print{
  html:not(.sbv-print-only) .stat-proof,
  html:not(.sbv-print-only) .stat-proof-panel{display:none!important}
}
