
/* (Gang 1b) Scanner-eigene Design-Tokens (Runde-6-Werte), scoped auf .scanner-slot: der Scanner ist
   damit unabhaengig vom Codex-Token-System (das diese Namen nicht fuehrt). Kein globaler Override.
   Behebt u.a. den weiss-auf-hell-Button (var(--kki-emphasis) war undefiniert -> Kontrast 1.07). */
.scanner-slot{--accent:#0A7E68;--border:#E3E8E5;--font-data:'JetBrains Mono',ui-monospace,'SF Mono',Menlo,monospace;--ink:#0A0C0B;--kki-emphasis:#0A4438;--kki-emphasis-hover:#106B57;--kki-mint:#10A88F;--radius-md:12px;--radius-pill:999px;--shadow-md:0 8px 24px rgba(10,12,11,.06),0 2px 6px rgba(10,12,11,.05);--surface:#F5F7F6;--text-soft:#565E5A}


@property --kki-glow-angle{syntax:'<angle>';initial-value:0deg;inherits:false}
.scanner-slot .scan{position:relative;isolation:isolate}
/* rotierender Rand-Glow: conic-gradient, per Maske nur die Kontur */
.scanner-slot .scan::before{
  content:"";position:absolute;inset:-2px;border-radius:inherit;padding:2px;
  background:conic-gradient(from var(--kki-glow-angle),
     transparent 0deg,
     rgba(16,168,143,.15) 40deg,
     #10A88F 82deg,
     #6ff0d6 96deg,
     #10A88F 110deg,
     rgba(16,168,143,.15) 150deg,
     transparent 190deg,
     transparent 360deg);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  mask-composite:exclude;
  filter:drop-shadow(0 0 4px rgba(16,168,143,.55));
  animation:kki-glow-spin 4.5s linear infinite;
  z-index:-1;pointer-events:none;
}
@keyframes kki-glow-spin{to{--kki-glow-angle:360deg}}
@media (prefers-reduced-motion:reduce){.scanner-slot .scan::before{animation:none;opacity:.6}}


#scanStages{display:none !important}
/* (Mobil-Fix 24.07., B1) Fortschritt = kompakte helle Kanon-Karte in der Pruef-Karte:
   Statuszeile + Zaehler + Spinner, Hoehe = Inhalt. Kein dunkles Demo-Terminal mehr. */
#liveScan{display:none;background:#fff;border:1px solid var(--border);border-radius:16px;box-shadow:var(--shadow-md);padding:14px 16px;margin:14px auto 0;max-width:560px;text-align:left;color:var(--ink)}
#liveScan.show{display:block}
#liveScan .ls-head{display:flex;align-items:flex-start;gap:10px;font-family:'JetBrains Mono',monospace;font-size:12px;letter-spacing:.08em;margin-bottom:8px}
#liveScan .ls-dot{width:8px;height:8px;border-radius:50%;background:#10A88F;flex:0 0 8px;animation:lsPulse 1.2s ease-in-out infinite}
#liveScan.done .ls-dot{animation:none}
@keyframes lsPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.35;transform:scale(.7)}}
/* v7.7: fixierter Kopf ist 80px hoch. Jedes Scroll-Ziel im Scanner bekommt Abstand,
   sonst landet die Kartenoberkante hinter der Kopfleiste. */
#liveScan,#lsResult,#lsAiResult,#lsAiResult.ai-error{scroll-margin-top:100px}
#liveScan .ls-label{color:var(--accent);white-space:nowrap}
/* (25.07.) Die eingegebene Adresse steht links und wird NIE abgeschnitten. Lange Adressen
   brechen um statt in Auslassungspunkten zu enden; die Spur darf dafuer wachsen. */
#liveScan .ls-domain{color:var(--ink);font-weight:600;flex:1 1 auto;min-width:0;max-width:none;white-space:normal;overflow-wrap:anywhere;text-overflow:clip;overflow:visible;line-height:1.35}
#liveScan .ls-count{margin-left:auto;flex:0 0 auto;color:var(--text-soft);white-space:nowrap}
/* (A2, 24.07.) Vorschaubild des geprueften Auftritts: Platzhalter mit fester Proportion,
   Bild erscheint, sobald der Stream bzw. das Ergebnis es liefert. */
#liveScan .ls-shot{position:relative;display:block;width:100%;aspect-ratio:396/260;overflow:hidden;border-radius:10px;border:1px solid var(--border);background:var(--surface);margin:10px 0 4px}
/* (25.07.) Kein Platzhaltertext mehr. Bis das erste Bild da ist, steht hier nur die leere
   Flaeche in fester Proportion; danach bleibt das Bild bis zum Ergebnis stehen. */
#liveScan .ls-shot img{position:relative;display:block;width:100%;height:auto;background:#fff}
#liveScan .ls-shot img:not([src]){display:none}
#liveScan .ls-shot img{display:block;width:100%;height:auto;transform:translateY(0);transition:transform .6s ease;will-change:transform}
#liveScan .ls-shot::after{content:'';position:absolute;inset:0;border-radius:10px;box-shadow:inset 0 0 0 2px rgba(16,168,143,.45);pointer-events:none}
/* ---- Stationsbuehne (25.07.) ------------------------------------------------------
   Grosses Vorschaufenster in fester Proportion, darunter der Name der laufenden Station,
   darunter die kompakte Stationsliste mit Haken. Der Bildwechsel blendet sanft; unter
   prefers-reduced-motion wechselt er hart. */
#liveScan .ls-shot{aspect-ratio:396/300}
#liveScan .ls-shot img{transition:opacity .35s ease,transform .6s ease}
#liveScan .ls-shot.wechsel img{opacity:.15}
#liveScan .ls-station{margin:8px 0 2px;font-weight:650;font-size:15px;color:var(--ink);
  overflow-wrap:anywhere;min-height:1.4em}
#liveScan .ls-liste{list-style:none;margin:6px 0 10px;padding:0;display:flex;flex-wrap:wrap;gap:6px 14px}
#liveScan .ls-li{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--text-soft)}
#liveScan .ls-li-hk{width:15px;height:15px;flex:0 0 15px;border-radius:50%;
  border:1.5px solid var(--border);box-sizing:border-box}
#liveScan .ls-li.done{color:var(--ink)}
#liveScan .ls-li.done .ls-li-hk{background:#10A88F;border-color:#10A88F;position:relative}
#liveScan .ls-li.done .ls-li-hk::after{content:'';position:absolute;left:4px;top:2px;width:4px;height:8px;
  border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(40deg)}
#liveScan .ls-li.now{color:var(--ink);font-weight:650}
#liveScan .ls-li.now .ls-li-hk{border-color:#10A88F;box-shadow:0 0 0 3px rgba(16,168,143,.18)}
@media (prefers-reduced-motion:reduce){
  #liveScan .ls-shot img{transition:none}
  #liveScan .ls-shot.wechsel img{opacity:1}
  #liveScan .ls-li.now .ls-li-hk{box-shadow:none}
}
#liveScan .ls-now{display:flex;align-items:flex-start;gap:12px}
#liveScan .ls-ic{width:18px;height:18px;flex:0 0 18px;margin-top:2px;border-radius:50%;border:2px solid #d7e2de;border-top-color:#10A88F;animation:lsSpin .8s linear infinite;box-sizing:border-box;text-align:center;line-height:16px;font-size:12px;color:#062821}
#liveScan .ls-now.ok .ls-ic{animation:none;border:none;background:#10A88F;color:#fff;font-weight:700}
@keyframes lsSpin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){#liveScan .ls-ic{animation:none}#liveScan .ls-dot{animation:none}}
#liveScan .ls-kind{font-family:'JetBrains Mono',monospace;font-size:10px;letter-spacing:.12em;color:var(--accent);display:block;margin-bottom:2px}
#liveScan .ls-name{font-weight:600;font-size:15px;line-height:1.3;color:var(--ink)}
#liveScan .ls-score{color:var(--accent);font-family:'JetBrains Mono',monospace;font-size:14px;margin-left:8px}
#liveScan .ls-note{font-size:13px;line-height:1.5;color:var(--text-soft);margin-top:3px}
#liveScan .ls-bars{display:flex;gap:3px;margin-top:10px}
#liveScan .ls-bars span{flex:1;height:4px;border-radius:2px;background:#e9efec;transition:background .3s}
#liveScan .ls-bars span.on{background:#10A88F}
#lsTable{display:none;margin-top:12px;border-top:1px solid var(--border);padding-top:10px}
#lsTable.show{display:block}
#lsTable .ls-row{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px}
#lsTable .ls-row .n{flex:0 0 46%;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#lsTable .ls-row .n small{color:var(--accent);font-family:'JetBrains Mono',monospace;font-size:9px;letter-spacing:.1em;margin-right:5px}
#lsTable .ls-row .bar{flex:1;height:6px;border-radius:3px;background:#e9efec;overflow:hidden}
#lsTable .ls-row .bar i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left center;background:#10A88F;border-radius:3px;transition:transform 280ms cubic-bezier(.2,.7,.3,1)}
#lsTable .ls-row .v{flex:0 0 36px;text-align:right;font-family:'JetBrains Mono',monospace;color:var(--accent);font-size:12px}

#lsResult{background:#fff;border-radius:18px;box-shadow:0 10px 30px rgba(10,12,11,.08);padding:22px 18px;margin:14px auto 0;max-width:560px;text-align:left}
#lsResult .lsr-top{display:flex;align-items:center;gap:16px;margin-bottom:16px}
@media(max-width:699px){#lsResult .lsr-top{flex-direction:column;text-align:center}}
#lsResult .lsr-ringslot{flex:0 0 auto}
#lsResult .ring{width:116px;height:116px;margin:0}
#lsResult .ring svg{width:116px;height:116px}
#lsResult .ring .num b{font-size:2rem}
#lsResult .lsr-urteil h2{margin:0 0 6px;font-size:19px;line-height:1.25;color:#0A0C0B}
#lsResult .lsr-urteil p{margin:0;font-size:13.5px;line-height:1.55;color:#5a615e}
#lsResult .lsr-cards{display:grid;grid-template-columns:1fr;gap:8px;margin-bottom:16px}
@media(min-width:700px){#lsResult .lsr-cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}}
#lsResult .lsr-card{background:#F5F7F6;border-radius:9px;padding:12px 13px}
#lsResult .lsr-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px;margin-bottom:8px}
#lsResult .lsr-row b{font-size:13.5px;color:#0A0C0B;line-height:1.3}
#lsResult .lsr-row span{font-family:'JetBrains Mono',monospace;font-weight:700;font-size:14px;color:#0A0C0B}
#lsResult .lsr-bar{height:5px;border-radius:3px;background:#e9efec;overflow:hidden}
#lsResult .lsr-bar i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left center;background:#10A88F;border-radius:3px;transition:transform 280ms cubic-bezier(.2,.7,.3,1)}
#lsResult .lsr-cta{background:var(--kki-emphasis);border-radius:14px;padding:20px;text-align:center}
#lsResult .lsr-ctatext{margin:0 0 14px;font-size:13.5px;line-height:1.55;color:#CFE4DD}
#lsResult .lsr-buy{display:inline-block;background:var(--kki-emphasis);color:#fff;font-weight:700;font-size:16px;padding:13px 22px;border-radius:12px;text-decoration:none}
#lsResult .lsr-buy:active{transform:scale(.98)}
#lsResult .lsr-ghost{display:inline-block;margin-top:10px;padding:9px 16px;border:1px solid #E3E9E6;border-radius:9px;color:#5B6B66;font-size:13px;text-decoration:none;background:transparent}
#lsResult .lsr-call{display:inline-block;margin-top:12px;color:#CFE4DD;font-size:13px;text-decoration:underline;background:transparent;border:0}
#lsResult .lsr-call:hover{color:#fff}
#lsResult .lsr-report{background:#fff;border:1px solid #E3E9E6;border-radius:14px;padding:18px;margin-bottom:16px}
#lsResult .lsr-report h4{margin:0 0 8px;font-size:17px;line-height:1.35;color:#0A0C0B}
#lsResult .lsr-report p{margin:0 0 12px;font-size:13.5px;line-height:1.55;color:#5B6B66}
#lsResult .lsr-repform{display:flex;gap:8px}
#lsResult .lsr-repform input{flex:1;min-width:0;padding:11px 12px;border:1px solid #E3E9E6;border-radius:9px;font-size:14px;font-family:inherit}
#lsResult .lsr-repform button{background:var(--kki-emphasis);color:#fff;font-weight:700;border:none;border-radius:12px;padding:11px 14px;font-size:13.5px;cursor:pointer;white-space:nowrap;font-family:inherit}
#lsResult .lsr-repform button:disabled{opacity:.6}
#lsResult .lsr-buy:hover,#lsResult .lsr-repform button:hover{background:var(--kki-emphasis-hover)}
#lsResult .lsr-report small{display:block;margin-top:8px;font-size:11.5px;color:#8a948f}
#lsResult .lsr-repmsg{color:#C0392B;font-size:12.5px;margin-top:8px}
#lsResult .lsr-repok{color:#0A4438;font-weight:600;font-size:14.5px;margin:0}
@media(max-width:699px){#lsResult .lsr-repform{flex-direction:column}#lsResult .lsr-repform button{width:100%}}

/* Vollständige, serverseitig validierte Kunden-KI-Analyse */
#lsAiResult{background:#fff;border-radius:18px;box-shadow:0 10px 30px rgba(10,12,11,.08);padding:22px 18px;margin:14px auto 0;max-width:760px;text-align:left;color:#0A0C0B;scroll-margin-top:100px}
#lsAiResult .ai-head{display:grid;grid-template-columns:auto 1fr;gap:16px;align-items:start;margin-bottom:16px}
@media(max-width:699px){#lsAiResult .ai-head{grid-template-columns:1fr;justify-items:center;text-align:center}
#lsAiResult .ai-head h2,#lsAiResult .ai-head .ai-summary{text-align:center}}
#lsAiResult .ai-score{width:92px;height:92px;border-radius:50%;display:grid;place-content:center;background:#EAF6F2;color:#0A4438;font-family:'JetBrains Mono',monospace;font-size:30px;font-weight:700}
#lsAiResult .ai-score small{display:block;text-align:center;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:#5B6B66}
#lsAiResult h2{margin:0 0 6px;font-size:22px;line-height:1.25}
#lsAiResult .ai-summary{margin:0;color:#46504B;font-size:14px;line-height:1.6}
#lsAiResult .ai-meta{display:flex;flex-wrap:wrap;gap:7px;margin:0 0 18px}
#lsAiResult .ai-chip{font-family:'JetBrains Mono',monospace;font-size:10px;padding:5px 9px;border-radius:999px;background:#F0F4F2;color:#46504B;border:1px solid #DDE6E2}
#lsAiResult .ai-shot{width:100%;max-height:360px;object-fit:cover;object-position:top;border-radius:12px;border:1px solid #DDE6E2;margin:0 0 18px;background:#F5F7F6}
#lsAiResult .ai-section{margin:18px 0 0;padding-block:0}
#lsAiResult .ai-section h2{margin:0 0 10px;font-size:12px;font-family:'JetBrains Mono',monospace;letter-spacing:.1em;text-transform:uppercase;color:var(--accent);text-align:center}
#lsAiResult .ai-grid{display:grid;grid-template-columns:1fr;gap:9px}
@media(min-width:700px){#lsAiResult .ai-grid{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}}
#lsAiResult .ai-category,#lsAiResult .ai-item{background:#F5F7F6;border:1px solid #E3E9E6;border-radius:11px;padding:13px;text-align:left}
#lsAiResult .ai-item *,#lsAiResult .ai-category *{text-align:left}
#lsAiResult .ai-row{display:flex;justify-content:space-between;gap:10px;align-items:baseline;margin-bottom:6px}
#lsAiResult .ai-row b{font-size:14px}#lsAiResult .ai-row span{font-family:'JetBrains Mono',monospace;font-weight:700;color:#0A4438}
#lsAiResult .ai-finding,#lsAiResult .ai-evidence,#lsAiResult .ai-recommendation{margin:5px 0 0;font-size:12.5px;line-height:1.55;color:#46504B}
#lsAiResult .ai-evidence{color:#68736E}#lsAiResult .ai-evidence::before{content:'Beleg: ';font-weight:700}
#lsAiResult .ai-list{display:grid;gap:9px}#lsAiResult .ai-item b{display:block;font-size:14px;margin-bottom:4px}
/* Messbefunde: nuechterner als die Modellbefunde, weil gemessen statt beurteilt.
   Kanon: Mint nur Flaeche, Textakzent #0A7E68, keine Gedankenstriche. */
#lsAiResult .ai-mess b{color:#0A0C0B}
#lsAiResult .ai-messwert{margin:4px 0 0;font-size:12px;line-height:1.5;color:#46504B;font-family:'JetBrains Mono',monospace}
#lsAiResult .ai-messwert b{font-family:inherit;color:#68736E;font-weight:700}
#lsAiResult .ai-messstelle{margin:4px 0 0;font-size:12px;line-height:1.5;color:#46504B;background:#EDF2F0;border-radius:7px;padding:5px 8px}
#lsAiResult .ai-messstelle b{color:#0A7E68}
#lsAiResult .ai-messfuss{margin:8px 0 0;font-size:11.5px;color:#68736E}

/* Kategorie ohne belegten Befund: kleiner Zusatz in Textfarbe, kein eigener Kasten. */
#lsAiResult .ai-unbelegt{display:block;font-style:normal;font-size:11.5px;color:#68736E;margin-top:2px}
/* Leerfall des Beleggates: Abschnitt bleibt stehen, Kontaktweg statt Kaufzeile. */
#lsAiResult .ai-leerbefund{background:#F5F7F6;border:1px solid #E3E9E6;border-radius:11px;padding:13px}
#lsAiResult .ai-leerbefund p{margin:0;font-size:12.5px;line-height:1.55;color:#46504B}
#lsAiResult .ai-leerlink{margin:9px 0 0 !important}
#lsAiResult .ai-leerbefund a{color:#0A7E68;font-weight:700}
#lsAiResult .ai-priority{display:inline-block;margin-bottom:7px;border-radius:999px;padding:3px 8px;font-family:'JetBrains Mono',monospace;font-size:10px;text-transform:uppercase;background:#FFF0E9;color:#8B3F20}
#lsAiResult .ai-step{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start}
#lsAiResult .ai-stepnum{width:30px;height:30px;display:grid;place-content:center;border-radius:50%;background:#0A4438;color:#fff;font-family:'JetBrains Mono',monospace;font-weight:700}
#lsAiResult.ai-error{border:1px solid #E7C9BD}#lsAiResult.ai-error h2{color:#7C301C}#lsAiResult.ai-error .ai-error-code{font-family:'JetBrains Mono',monospace;font-size:11px;color:#7C301C}
@media(max-width:699px){#lsAiResult .ai-score{width:84px;height:84px;font-size:27px}}
/* Variante A (Runde 2): kompakter Ergebnisaufbau */
#lsAiResult .ai-status{margin:0 0 4px;font-family:'JetBrains Mono',monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#0A7E68;font-weight:700}
@media(max-width:699px){#lsAiResult .ai-status{text-align:center}#lsAiResult .ai-meta{justify-content:center}}
@media(min-width:700px){#lsAiResult .ai-grid.ai-grid-3{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}}
#lsAiResult .ai-grid-3 .ai-category{padding:11px 12px}
#lsAiResult .ai-strengthtxt{margin:4px 0 0;font-size:12.5px;line-height:1.55;color:#46504B}
#lsAiResult .ai-beleg,#lsAiResult .ai-empf{margin:5px 0 0;font-size:12.5px;line-height:1.55;color:#46504B}
#lsAiResult .ai-beleg b,#lsAiResult .ai-empf b{font-weight:700;color:#0A4438}

/* Verkaufsausgang (Idee 15): Demo-CTA-Block. Nur bestehende Farbtoken/-werte, keine neuen Farben. */
#lsAiResult .ai-demo-cta{margin:20px 0 0;padding:18px;border:1px solid #E3E9E6;border-radius:14px;background:#F5F7F6}
#lsAiResult .ai-demo-cta h2{margin:0 0 8px;font-size:16px;color:var(--ink)}
#lsAiResult .ai-demo-cta>p{margin:0 0 12px;font-size:13.5px;line-height:1.55;color:#46504B}
#lsAiResult .ai-demo-form{display:flex;flex-wrap:wrap;gap:8px}
#lsAiResult .ai-demo-form input{flex:1 1 200px;min-width:0;padding:11px 13px;border:1px solid #E3E9E6;border-radius:10px;font-size:14px;font-family:inherit}
#lsAiResult .ai-demo-form button{background:var(--kki-emphasis);color:#fff;font-weight:700;border:none;border-radius:12px;padding:11px 16px;font-size:14px;cursor:pointer;font-family:inherit;white-space:nowrap}
#lsAiResult .ai-demo-consent{font-size:12px;line-height:1.45;color:#6b756f;margin:10px 0 0}
#lsAiResult .ai-demo-consent a{color:inherit;text-decoration:underline}
#lsAiResult .ai-demo-shop{font-size:12.5px;line-height:1.5;color:#46504B;margin:8px 0 0}
#lsAiResult .ai-demo-shop a{color:var(--accent);text-decoration:underline}
#lsAiResult .ai-demo-msg{margin:12px 0 0;font-size:13.5px;line-height:1.5}
#lsAiResult .ai-demo-ok{color:var(--accent);font-weight:600}
#lsAiResult .ai-demo-err{color:#7C301C}
#lsAiResult .ai-retry{margin:12px 0 0;background:var(--kki-emphasis);color:#fff;font-weight:700;border:none;border-radius:12px;padding:11px 16px;font-size:14px;cursor:pointer;font-family:inherit}
@media(max-width:699px){#lsAiResult .ai-demo-form input,#lsAiResult .ai-demo-form button{width:100%}}


/* ===== Block 8/11: v5-Ergebniszweig (nur hinter Feature-Flag aktiv; Design-Token-Kanon unveraendert) ===== */
#lsResultV5{background:#fff;border-radius:18px;box-shadow:var(--shadow-md);padding:22px 18px;margin:14px auto 0;max-width:560px;text-align:left;color:var(--ink)}
#lsResultV5 .v5-head{display:flex;align-items:center;gap:16px;margin-bottom:14px}
#lsResultV5 .v5-score{font-family:var(--font-data);font-weight:700;font-size:3rem;line-height:1;color:var(--kki-emphasis)}
#lsResultV5 .v5-score small{display:block;font-size:.8rem;font-weight:600;color:var(--text-soft)}
#lsResultV5 .v5-band{font-family:var(--font-data);font-weight:700;font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;padding:6px 14px;border-radius:var(--radius-pill);background:var(--surface);color:var(--kki-emphasis);border:1px solid var(--border)}
#lsResultV5 .v5-kat{font-size:14px;line-height:1.55;color:var(--text-soft);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;margin-bottom:14px}
#lsResultV5 .v5-kat a{color:var(--kki-emphasis);text-decoration:underline}
#lsResultV5 .v5-status{font-size:13.5px;line-height:1.55;color:var(--ink);background:#FFF6E9;border:1px solid #F0DEBF;border-radius:var(--radius-md);padding:12px 14px;margin-bottom:14px}
#lsResultV5 .v5-sec{margin-bottom:16px}
#lsResultV5 .v5-sec>h2{margin:0 0 4px;font-size:12px;font-family:var(--font-data);letter-spacing:.1em;text-transform:uppercase;color:var(--text-soft)}
#lsResultV5 .v5-sec>.v5-sec-hint{margin:0 0 10px;font-size:12px;line-height:1.5;color:var(--text-soft)}
#lsResultV5 .v5-ax{padding:9px 0;border-top:1px solid var(--border)}
#lsResultV5 .v5-ax:first-of-type{border-top:0}
#lsResultV5 .v5-ax-row{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
#lsResultV5 .v5-ax-row b{font-size:13.5px;color:var(--ink);line-height:1.3}
#lsResultV5 .v5-ax-val{font-family:var(--font-data);font-weight:700;font-size:14px;color:var(--ink);white-space:nowrap}
#lsResultV5 .v5-ax-chip{font-family:var(--font-data);font-size:11px;font-weight:600;color:var(--text-soft);background:var(--surface-2);border-radius:var(--radius-pill);padding:2px 9px}
#lsResultV5 .v5-ax.is-off .v5-ax-row b{color:var(--text-soft)}
#lsResultV5 .v5-bar{height:5px;border-radius:3px;background:#e9efec;overflow:hidden;margin:6px 0 4px}
#lsResultV5 .v5-bar i{display:block;height:100%;width:100%;transform:scaleX(0);transform-origin:left center;background:var(--kki-mint);border-radius:3px;transition:transform 280ms cubic-bezier(.2,.7,.3,1)}
#lsResultV5 .v5-ax-note{font-size:12px;line-height:1.5;color:var(--text-soft)}
#lsResultV5 .v5-k9{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;margin-bottom:16px}
#lsResultV5 .v5-k9 p{margin:0 0 10px;font-size:13px;line-height:1.55;color:var(--text-soft)}
#lsResultV5 .v5-k9 a.v5-k9cta{display:inline-block;color:var(--kki-emphasis);font-weight:700;font-size:13.5px;text-decoration:underline}
#lsResultV5 .v5-empf{margin-bottom:16px}
#lsResultV5 .v5-empf .v5-emp{background:var(--surface);border:1px solid var(--border);border-left:3px solid var(--kki-mint);border-radius:var(--radius-md);padding:12px 14px;margin-bottom:8px}
#lsResultV5 .v5-empf .v5-emp b{display:block;font-size:14px;color:var(--ink);margin-bottom:3px}
#lsResultV5 .v5-empf .v5-emp span{font-size:12.5px;line-height:1.5;color:var(--text-soft)}
#lsResultV5 .v5-e6{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px;margin-bottom:16px;font-size:13.5px;line-height:1.55;color:var(--text-soft)}
#lsResultV5 .v5-cta{background:var(--kki-emphasis);border-radius:14px;padding:20px;text-align:center}
.v5-belege{margin:1rem 0 0;text-align:center}.v5-belege-link{display:inline-block;padding:.75rem 1rem;min-height:44px;line-height:1.4;color:var(--kki-emphasis,#0A7E68);font-weight:600;text-decoration:underline;text-underline-offset:3px}
#lsResultV5 .v5-cta a.v5-primary{display:inline-block;background:#fff;color:var(--kki-emphasis);font-weight:700;font-size:16px;padding:13px 22px;border-radius:12px;text-decoration:none}
#lsResultV5 .v5-cta a.v5-primary:active{transform:scale(.98)}
#lsResultV5 .v5-cta a.v5-sekundaer{display:block;margin-top:12px;color:#CFE4DD;font-size:13px;text-decoration:underline}
#lsResultV5 .v5-cta a.v5-sekundaer:hover{color:#fff}
/* ===== Block 8c: Zwei-Stufen-Funnel, Ladephase, Zwei-Score-Kopf, Sperr-Kacheln, Freischalt-Block ===== */
#v5Status{max-width:560px;margin:12px auto 0}
#v5Status.v5-status-line{display:flex;align-items:center;gap:9px;font-size:13.5px;color:#46504B;padding:2px 2px}
#v5Status .v5-sl-spin{width:9px;height:9px;border-radius:50%;background:var(--kki-mint);flex:0 0 auto;animation:v5pulse 1.1s ease-in-out infinite}
#v5Status .v5-sl-txt{line-height:1.4}
@keyframes v5pulse{0%,100%{opacity:.35;transform:scale(.85)}50%{opacity:1;transform:scale(1)}}
@media (prefers-reduced-motion: reduce){#v5Status .v5-sl-spin{animation:none;opacity:.8}}
#lsResultV5 .v5-head{display:flex;align-items:stretch;gap:14px;flex-wrap:wrap;margin-bottom:12px}
#lsResultV5 .v5-scorebox{flex:1 1 200px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:8px}
#lsResultV5 .v5-sb-gesamt{background:#EAF6F2;border-color:#BFE3D8}
#lsResultV5 .v5-scorebox .v5-score{font-size:2.5rem}
#lsResultV5 .v5-scorebox .v5-band{align-self:flex-start}
#lsResultV5 .v5-scorelabel{font-size:12.5px;font-weight:600;color:#46504B;line-height:1.4}
/* 12.09.2026: .v5-trennung (Zwei-Score-Satz) und die Sperr-Kachel-Regeln
   (.v5-ax-locked, .v5-ax-lock, .v5-lock-ic) sind mit den sechs Vision-Achsen entfallen.
   Die is-off-Behandlung nicht messbarer Achsen darueber bleibt unveraendert. */
/* E-Mail-Block */
#lsResultV5 .v5-unlock{background:var(--kki-emphasis);border-radius:14px;padding:18px 18px 16px;margin:4px 0 18px;color:#fff}
#lsResultV5 .v5-unlock-h{margin:0 0 6px;font-size:16px;color:#fff}
#lsResultV5 .v5-unlock-p{margin:0 0 12px;font-size:13.5px;line-height:1.55;color:#E7F1EE}
#lsResultV5 .v5-unlock-form{display:flex;gap:8px;flex-wrap:wrap}
#lsResultV5 .v5-unlock-form input{flex:1 1 180px;min-width:0;font-size:15px;padding:12px 13px;border-radius:11px;border:1px solid #BFE3D8;background:#fff;color:var(--ink)}
#lsResultV5 .v5-unlock-form button{flex:0 0 auto;background:#fff;color:var(--kki-emphasis);font-weight:700;font-size:15px;padding:12px 18px;border:0;border-radius:11px;cursor:pointer}
#lsResultV5 .v5-unlock-form button:disabled{opacity:.6;cursor:default}
#lsResultV5 .v5-mkopt{display:flex;align-items:flex-start;gap:9px;margin:12px 0 0;font-size:12.5px;line-height:1.45;color:#E7F1EE;cursor:pointer}
#lsResultV5 .v5-mkopt input{margin-top:2px;flex:0 0 auto;width:16px;height:16px;accent-color:#fff}
#lsResultV5 .v5-unlock-consent{margin:10px 0 0;font-size:11.5px;line-height:1.45;color:#CFE4DD}
#lsResultV5 .v5-unlock-consent a{color:#fff;text-decoration:underline}
#lsResultV5 .v5-unlock-msg{margin-top:9px;font-size:12.5px;line-height:1.45;color:#FFE8D6;min-height:0}
#lsResultV5 .v5-unlock-ok{font-size:14px;font-weight:700;color:var(--kki-emphasis);background:#EAF6F2;border:1px solid #BFE3D8;border-radius:var(--radius-md);padding:11px 14px;margin-bottom:14px}
/* ===== Block 8d: Prüfprotokoll (v5-Live-Phase) ===== */
#v5Protokoll{max-width:560px;margin:14px auto 0;background:#fff;border-radius:18px;box-shadow:var(--shadow-md);padding:16px;text-align:left;color:var(--ink)}
#v5Protokoll .v5p-shotwrap{position:relative;width:100%;height:300px;overflow:hidden;border-radius:12px;border:1px solid var(--border);background:var(--surface)}
#v5Protokoll .v5p-shot{display:block;width:100%;height:auto;will-change:transform;transition:transform .26s cubic-bezier(.22,1,.36,1)}
/* WANDERNDE FOKUS-BOX (02.08.2026, Motion-Haertung).
   Vorher: transition:all .5s ease auf einem Kasten, der ueber left/top/width/height gesetzt
   wurde und seine Verdunkelung aus box-shadow 0 0 0 2000px bezog. "all" hat damit vier
   Layout-Eigenschaften animiert, und der bildschirmgrosse Schatten musste zu JEDEM
   Zwischenbild neu gerechnet und gemalt werden. Das ist genau die Bewegung, die den
   Hauptfaden blockiert, waehrend im Hintergrund ein Scan laeuft.
   Jetzt: Alles bewegt sich ausschliesslich ueber transform. Die Verdunkelung kommt aus vier
   festen Flaechen (oben, unten, links, rechts), die das Fenster aussparen und selbst nur
   verschoben und skaliert werden; eine einfarbige Flaeche vertraegt Skalierung ohne
   Verzerrung. Das Aussehen bleibt dasselbe, nur die Technik dahinter ist eine andere.
   NACHTRAG (02.08., nach dem zweiten Motion-Audit): Der Rahmen war zuerst EIN Kasten, der
   mitskaliert wurde, wobei Randstaerke und Radius gegen die Skalierung zurueckgerechnet
   wurden. Das funktioniert nicht: der Browser rundet die benutzte Randstaerke auf ganze
   Pixel. Gemessen kam statt 2 px ein Rand von 1,2 bis 5,26 px heraus, und die senkrechten
   Kanten waren bis zu dreimal dicker als die waagerechten. Der Rahmen besteht deshalb jetzt
   aus VIER Kanten, die je nur in EINER Richtung skaliert werden: die Dickenrichtung wird nie
   skaliert und bleibt damit exakt 2 px. Der Preis sind eckige Ecken statt 6 px Radius; das
   Fenster der Verdunkelung war ohnehin schon eckig, beides passt jetzt zusammen. */
#v5Protokoll .v5p-kante{position:absolute;left:0;top:0;width:1px;height:1px;
  transform-origin:0 0;background:var(--kki-emphasis);
  transition:transform .26s cubic-bezier(.22,1,.36,1);pointer-events:none;z-index:3}
#v5Protokoll .v5p-dim{position:absolute;left:0;top:0;width:1px;height:1px;
  transform-origin:0 0;background:rgba(9,32,26,.34);
  transition:transform .26s cubic-bezier(.22,1,.36,1);pointer-events:none;z-index:2}
#v5Protokoll .v5p-status{font-family:var(--font-data);font-size:12.5px;font-weight:600;color:var(--kki-emphasis);margin:12px 2px 6px}
#v5Protokoll .v5p-list{margin-top:2px}
#v5Protokoll .v5p-row{padding:8px 0;border-top:1px solid var(--border)}
#v5Protokoll .v5p-row:first-child{border-top:0}
#v5Protokoll .v5p-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
#v5Protokoll .v5p-title{font-size:13.5px;color:var(--ink);line-height:1.3;font-weight:600}
#v5Protokoll .v5p-placeholder .v5p-title{color:#46504B;font-weight:500;font-style:italic}
#v5Protokoll .v5p-rowstate{font-family:var(--font-data);font-size:11px;color:#5F6763;white-space:nowrap}
#v5Protokoll .v5p-score{font-family:var(--font-data);font-weight:700;font-size:13px;color:var(--ink);white-space:nowrap}
#v5Protokoll .v5p-score.v5p-na{font-weight:500;font-size:12px;color:#46504B}
#v5Protokoll .v5p-beleg{font-size:12px;line-height:1.45;color:#46504B;margin-top:3px}
#v5Protokoll .v5p-row.v5p-done .v5p-title{color:var(--ink)}
/* 12.09.2026: .v5p-locked und .v5p-lock sind mit den sechs Vision-Zeilen entfallen. */
@media (prefers-reduced-motion: reduce){#v5Protokoll .v5p-shot,#v5Protokoll .v5p-kante,#v5Protokoll .v5p-dim{transition:none}}
/* Kompakte mobile Scan-Vorschau (Vertrag c505035): querformatiger Rahmen 80vw, AR 1056/725
   (~352x242 CSS-px @440), zentriert, Radius 11. Ersetzt das uebergrosse Full-Page-Fenster auf
   Mobil. Nur Darstellung des Rahmens; Scanlogik, Screenshotdaten, Fokus-/Scroll-Mathematik
   (liest clientWidth/clientHeight live) und die 18 Protokollzeilen bleiben unveraendert. */
@media (max-width:600px){#v5Protokoll .v5p-shotwrap{width:min(80vw,360px);height:auto;aspect-ratio:1056/725;margin-left:auto;margin-right:auto;border-radius:11px}}
/* (Redaktionslauf 25.07.) Bleibende Eingabe-Fehlermeldung des Scanners. Warnfarbe wie die
   Korb-Hinweise (#8a4b00 auf #fff7e6), damit kein neuer Farbwert entsteht. */
#scanFehler{max-width:36rem;margin:.7rem auto 0;padding:.55rem .85rem;border:1px solid #f0d9a8;
  border-radius:10px;background:#fff7e6;color:#8a4b00;font-size:.9rem;line-height:1.45;text-align:center}
#scanFehler[hidden]{display:none}

/* --- Ergebnisring im V5-Pfad (Owner-Auftrag 12.09.2026) ---
   Der alte SVG-Ring lag im Block #result, der hier display:none ist. Dieser Ring
   steht im tatsaechlich verwendeten Ergebnisweg. Der Wert ist Text in der Mitte und
   zusaetzlich aria-label am SVG - er ist also auch ohne Animation und ohne Farbe da.
   Der Uebergang entfaellt bei prefers-reduced-motion, der Wert bleibt. */
.v5-ringwrap{position:relative;width:120px;height:120px;margin:0 auto .6rem}
.v5-ring{display:block;width:120px;height:120px;transform:rotate(-90deg)}
.v5-ring-bahn{fill:none;stroke:#E3E8E5;stroke-width:12}
.v5-ring-bogen{fill:none;stroke:#10A88F;stroke-width:12;stroke-linecap:round;
  transition:stroke-dashoffset .9s ease-out}
.v5-ringmitte{position:absolute;inset:0;display:flex;flex-direction:column;
  align-items:center;justify-content:center;gap:.1rem;pointer-events:none}
.v5-ringzahl{font-size:2.1rem;line-height:1;font-weight:700;color:#1d1d1f;font-variant-numeric:tabular-nums}
.v5-ringskala{font-size:.8125rem;color:#6e6e6e}
.v5-sb-technik .v5-band{display:inline-block;margin-bottom:.35rem}
.v5-herkunft{margin:.6rem auto 0;max-width:46ch;font-size:.875rem;line-height:1.55;color:#474747;text-align:center}
/* Scanner Gang 9: Stufe der Skala am Ring (Überschrift und Satz aus dem Ergebnis) */
.v5-stufe{margin:.6rem auto 0;max-width:46ch;font-size:.95rem;line-height:1.5;color:#1f1f1f;text-align:center}
.v5-stufe b{font-weight:700}
/* Gang 24 (F08): Ausweis einer Note mit ungemessenen Regeln, direkt unter der Stufe am Wert */
.v5-ausweis{margin:.4rem auto 0;max-width:46ch;font-size:.9375rem;line-height:1.5;color:#474747;text-align:center}
@media (prefers-reduced-motion: reduce){ .v5-ring-bogen{transition:none} }

/* --- Empfehlungen je Pruefpunkt und vorrangige Massnahmen (12.09.2026) --- */
.v5-ax-bedeutung{margin:.45rem 0 .2rem;font-size:.9375rem;line-height:1.55;color:#474747}
.v5-ax-schritt{margin:.2rem 0 .4rem;font-size:.9375rem;line-height:1.55;color:#1d1d1f}
.v5-ax-schritt.is-gut{color:#0A4438}
.v5-ax-details{margin:.2rem 0 .1rem}
.v5-ax-details > summary{cursor:pointer;font-size:.8125rem;color:#6e6e6e;list-style:revert;
  padding:.25rem 0;min-height:32px;display:list-item}
.v5-ax-details > summary:focus-visible{outline:2px solid #10A88F;outline-offset:2px;border-radius:4px}
.v5-ax-details .v5-ax-note{margin-top:.25rem}
.v5-prio{margin:1.6rem 0 .4rem;padding:1.1rem 1.2rem;border:1px solid #d9dcda;border-radius:14px;background:#f5f5f7}
.v5-prio h2{margin:0 0 .6rem;font-size:1.125rem}
.v5-prio-liste{margin:0;padding-left:1.2rem;display:grid;gap:.85rem}
.v5-prio-liste li p{margin:.2rem 0 0;font-size:.9375rem;line-height:1.55;color:#474747}
.v5-prio-wert{font-variant-numeric:tabular-nums;color:#6e6e6e}
.v5-prio-hinweis{margin:.9rem 0 0;font-size:.8125rem;line-height:1.5;color:#6e6e6e}
.v5-prio-leer{margin:0;font-size:.9375rem;line-height:1.55;color:#474747}
