.wsc {
--wsc-navy: #28395E;
--wsc-dark: #1C1C25;
--wsc-cream: #F7F5F2;
--wsc-linie: #E3DED6;
--wsc-coral: #CC4444;
--wsc-coral-text: #B83737;
--wsc-gut: #1F7A4D;
--wsc-mittel: #8A5A00;
--wsc-schlecht: #B83737;
--wsc-grau: #4B5262;
background: var(--wsc-cream);
color: var(--wsc-dark);
font-family: Nunito, "Segoe UI", system-ui, sans-serif;
font-size: 1rem;
line-height: 1.65;
padding: clamp(48px, 6vw, 88px) 6vw;
}
.wsc *, .wsc *::before, .wsc *::after { box-sizing: border-box; }
.wsc [hidden] { display: none !important; }
.wsc-innen { max-width: 860px; margin: 0 auto; }
.wsc h2.wsc-titel,
.wsc h3.wsc-h3 {
font-family: Livvic, "Segoe UI", system-ui, sans-serif;
color: var(--wsc-navy);
margin: 0;
padding: 0;
}
.wsc h2.wsc-titel { font-weight: 900; font-size: clamp(1.85rem, 3.9vw, 3rem); line-height: 1.1; letter-spacing: -.03em; }
.wsc h3.wsc-h3 { font-weight: 700; font-size: clamp(1.2rem, 2vw, 1.45rem); line-height: 1.2; }
.wsc p { margin: 0; padding: 0; }
.wsc-ansage { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wsc-text { font-size: clamp(1.02rem, 1.55vw, 1.2rem); line-height: 1.7; color: var(--wsc-grau); margin-top: 14px !important; max-width: 46em; } .wsc-form { margin-top: 28px; }
.wsc-ohne-kopf { padding-top: clamp(36px, 4.5vw, 56px); }
.wsc-ohne-kopf .wsc-form { margin-top: 0; }
.wsc-label { display: block; font-weight: 700; font-size: .95rem; margin-bottom: 8px; color: var(--wsc-dark); }
.wsc-zeile { display: flex; gap: 12px; align-items: stretch; }
.wsc .wsc-feld {
flex: 1 1 auto; min-width: 0; height: 58px; padding: 0 18px;
font: 600 1.05rem Nunito, "Segoe UI", system-ui, sans-serif; color: var(--wsc-dark);
background: #fff; border: 1.5px solid #6B7280; border-radius: 4px;
}
.wsc .wsc-feld::placeholder { color: #6B7280; opacity: 1; }
.wsc .wsc-feld:focus-visible, .wsc .wsc-knopf:focus-visible, .wsc a:focus-visible, .wsc summary:focus-visible, .wsc input[type="checkbox"]:focus-visible {
outline: 3px solid var(--wsc-navy); outline-offset: 2px;
}
.wsc .wsc-knopf {
flex: 0 0 auto; height: 58px; padding: 0 28px; border: 0; border-radius: 4px; cursor: pointer;
background: var(--wsc-coral); color: #fff;
font: 700 1rem Livvic, "Segoe UI", system-ui, sans-serif; letter-spacing: 0;
box-shadow: 0 14px 30px -14px rgba(204, 68, 68, .75);
transition: transform .18s ease-out, box-shadow .18s ease-out, background .18s ease-out;
}
.wsc .wsc-knopf:hover { transform: translateY(-2px); background: #B83737; }
.wsc .wsc-knopf:active { transform: scale(.985); }
.wsc .wsc-knopf[disabled] { cursor: progress; opacity: .7; transform: none; }
.wsc-weg { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.wsc-klein { font-size: .9rem; color: var(--wsc-grau); margin-top: 10px !important; }
.wsc-klein a { color: inherit; text-decoration: underline; }
.wsc p.wsc-fehler { margin-top: 12px !important; padding: 12px 14px !important; background: #fff; border: 1.5px solid var(--wsc-schlecht); border-radius: 4px; color: var(--wsc-schlecht); font-weight: 700; } .wsc-lauf { margin-top: 28px; }
.wsc-lauf-balken { height: 6px; background: var(--wsc-linie); border-radius: 3px; overflow: hidden; }
.wsc-lauf-balken span { display: block; width: 35%; height: 100%; background: var(--wsc-navy); border-radius: 3px; animation: wsc-lauf 1.4s ease-in-out infinite; }
@keyframes wsc-lauf { 0% { transform: translateX(-100%); } 100% { transform: translateX(290%); } }
.wsc-lauf-text { margin-top: 12px !important; font-weight: 700; color: var(--wsc-navy); } .wsc-ergebnis { margin-top: 36px; outline: none; scroll-margin-top: 96px; }
.wsc-oben { display: grid; grid-template-columns: 168px 1fr; gap: 28px; align-items: center; background: #fff; border: 1px solid var(--wsc-linie); border-radius: 5px; padding: 26px; }
.wsc-ring { position: relative; width: 168px; height: 168px; }
.wsc-ring svg { display: block; width: 100%; height: 100%; transform: rotate(-90deg); }
.wsc-ring circle { fill: none; stroke-width: 13; }
.wsc-ring .wsc-ring-grund { stroke: var(--wsc-linie); }
.wsc-ring .wsc-ring-wert { stroke-linecap: butt; transition: stroke-dashoffset .9s ease-out; }
.wsc-ring-zahl { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; }
.wsc-ring-zahl b { font: 900 3.1rem/1 Livvic, "Segoe UI", system-ui, sans-serif; color: var(--wsc-navy); letter-spacing: -.03em; }
.wsc-ring-zahl span { font-size: .9rem; font-weight: 700; color: var(--wsc-grau); margin-top: 2px; }
.wsc-host { font-weight: 700; color: var(--wsc-grau); font-size: .95rem; word-break: break-all; }
.wsc-urteil { font: 700 clamp(1.15rem, 2vw, 1.4rem)/1.3 Livvic, "Segoe UI", system-ui, sans-serif; color: var(--wsc-navy); margin-top: 6px !important; }
.wsc-zaehlung { margin-top: 8px !important; color: var(--wsc-grau); }
.wsc-nur-vorlesen { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.wsc-farbe-info { color: var(--wsc-grau); }
.wsc-farbe-gut { color: var(--wsc-gut); }
.wsc-farbe-mittel { color: var(--wsc-mittel); }
.wsc-farbe-schlecht { color: var(--wsc-schlecht); }
.wsc-strich-gut { stroke: var(--wsc-gut); }
.wsc-strich-mittel { stroke: var(--wsc-mittel); }
.wsc-strich-schlecht { stroke: var(--wsc-schlecht); }
.wsc-flaeche-gut { background: var(--wsc-gut); }
.wsc-flaeche-mittel { background: var(--wsc-mittel); }
.wsc-flaeche-schlecht { background: var(--wsc-schlecht); }
.wsc-bereiche { list-style: none !important; margin: 14px 0 0 !important; padding: 0 !important; background: #fff; border: 1px solid var(--wsc-linie); border-radius: 5px; }
.wsc-bereiche li { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1.3fr) 14.5em; gap: 18px; align-items: center; padding: 15px 26px; border-top: 1px solid var(--wsc-linie); margin: 0 !important; list-style: none !important; }
.wsc-bereiche li:first-child { border-top: 0; }
.wsc-bereich-name { font-weight: 700; }
.wsc-bereich-name small { display: block; font-weight: 400; font-size: .86rem; color: var(--wsc-grau); }
.wsc-balken { height: 10px; background: var(--wsc-linie); border-radius: 2px; overflow: hidden; }
.wsc-balken span { display: block; height: 100%; width: 0; border-radius: 2px; transition: width .8s ease-out; }
.wsc-bereich-stand { font-weight: 700; font-size: .93rem; white-space: nowrap; text-align: right; }
.wsc-sofort .wsc-balken span, .wsc-sofort .wsc-ring-wert { transition: none !important; }
.wsc-block { margin-top: 34px; }
.wsc-wichtig { list-style: none !important; margin: 14px 0 0 !important; padding: 0 !important; display: grid; gap: 10px; }
.wsc-wichtig li { display: grid; grid-template-columns: 28px 1fr; gap: 14px; background: #fff; border: 1px solid var(--wsc-linie); border-radius: 5px; padding: 18px 20px; margin: 0 !important; list-style: none !important; }
.wsc-zeichen { width: 26px; height: 26px; margin-top: 2px; }
.wsc-zeichen svg { display: block; width: 26px; height: 26px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.wsc-punkt-titel { font-weight: 700; }
.wsc-punkt-titel small { font-weight: 400; color: var(--wsc-grau); font-size: .88rem; margin-left: 8px; }
.wsc-punkt-warum { color: var(--wsc-grau); margin-top: 4px !important; }
.wsc-punkt-tipp { margin-top: 4px !important; }
.wsc-punkt-tipp b { font-weight: 700; } .wsc-bericht { margin-top: 34px; background: var(--wsc-navy); color: #fff; border-radius: 5px; padding: clamp(24px, 4vw, 38px); }
.wsc .wsc-bericht h3.wsc-h3 { color: #fff !important; }
.wsc-bericht p { color: rgba(255, 255, 255, .88); }
.wsc-bericht-text { margin-top: 10px !important; max-width: 44em; }
.wsc-bericht-form { margin-top: 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.wsc-bericht-form label { display: block; font-weight: 700; font-size: .92rem; color: #fff; margin-bottom: 6px; }
.wsc-bericht-form label small { font-weight: 400; color: rgba(255, 255, 255, .8); }
.wsc .wsc-bericht-form .wsc-feld { width: 100%; height: 52px; border-color: #fff; }
.wsc-haken { grid-column: 1 / -1; display: grid; grid-template-columns: 22px 1fr; gap: 12px; align-items: start; color: rgba(255, 255, 255, .92); font-size: .96rem; }
.wsc-haken input { width: 20px; height: 20px; margin: 3px 0 0; accent-color: var(--wsc-coral); }
.wsc-haken label { font-weight: 400; margin: 0; font-size: inherit; }
.wsc-bericht-unten { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 14px 22px; align-items: center; }
.wsc-bericht .wsc-klein { color: rgba(255, 255, 255, .8); margin-top: 14px !important; }
.wsc-bericht a { color: #fff; text-decoration: underline; }
.wsc .wsc-bericht .wsc-feld:focus-visible, .wsc .wsc-bericht .wsc-knopf:focus-visible, .wsc .wsc-bericht a:focus-visible, .wsc .wsc-bericht input[type="checkbox"]:focus-visible { outline-color: #fff; }
.wsc .wsc-bericht p.wsc-fehler { grid-column: 1 / -1; margin-top: 0 !important; }
.wsc-danke { margin-top: 16px !important; font-weight: 700; color: #fff !important; }
.wsc-danke-klein { margin-top: 8px !important; font-size: .93rem; color: rgba(255, 255, 255, .82) !important; } .wsc-neu { margin-top: 22px !important; }
.wsc .wsc-neu button { background: none; border: 0; padding: 10px 0; min-height: 44px; font: inherit; font-weight: 700; color: var(--wsc-navy); text-decoration: underline; cursor: pointer; }
.wsc-grenzen { margin-top: 18px !important; font-size: .88rem; color: var(--wsc-grau); } .wsc-lauf.wsc-getaktet { background: #fff; border: 1px solid var(--wsc-linie); border-radius: 5px; padding: 24px 26px; }
.wsc-lauf-kopf { font: 700 1.1rem/1.3 Livvic, "Segoe UI", system-ui, sans-serif; color: var(--wsc-navy); margin-bottom: 14px !important; word-break: break-all; }
.wsc-getaktet .wsc-lauf-balken span { width: 0; animation: none; transition-property: width; transition-timing-function: cubic-bezier(.2, .6, .35, 1); }
.wsc-schritte { list-style: none !important; margin: 18px 0 0 !important; padding: 0 !important; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 28px; }
.wsc-schritte li { display: grid; grid-template-columns: 22px 1fr; gap: 10px; align-items: center; margin: 0 !important; list-style: none !important; color: #6B7280; transition: color .2s ease-out; }
.wsc-schritte li.wsc-laeuft { color: var(--wsc-dark); font-weight: 700; }
.wsc-schritte li.wsc-fertig { color: var(--wsc-dark); }
.wsc-schritt-zeichen { width: 20px; height: 20px; border-radius: 50%; border: 2px solid var(--wsc-linie); position: relative; }
.wsc-laeuft .wsc-schritt-zeichen { border-color: var(--wsc-linie); border-top-color: var(--wsc-navy); animation: wsc-dreh .8s linear infinite; }
.wsc-fertig .wsc-schritt-zeichen { border-color: var(--wsc-gut); background: var(--wsc-gut); }
.wsc-fertig .wsc-schritt-zeichen::after { content: ""; position: absolute; left: 5px; top: 1.5px; width: 5px; height: 9px; border-right: 2px solid #fff; border-bottom: 2px solid #fff; transform: rotate(45deg); }
@keyframes wsc-dreh { to { transform: rotate(360deg); } } .wsc-punkt-art { font-size: .8rem; font-weight: 700; letter-spacing: .02em; margin-bottom: 2px !important; }
.wsc-wichtig li.wsc-art-gut { background: #F3F8F5; border-color: #CFE3D8; }
.wsc-wichtig .wsc-punkt-titel { font-size: 1.05rem; }
@media (max-width: 700px) {
.wsc-schritte { grid-template-columns: 1fr; }
.wsc-lauf.wsc-getaktet { padding: 20px; }
}
@media (prefers-reduced-motion: reduce) {
.wsc-laeuft .wsc-schritt-zeichen { animation: none; border-color: var(--wsc-navy); }
}
@media (max-width: 700px) {
.wsc-zeile { flex-direction: column; }
.wsc .wsc-knopf { width: 100%; }
.wsc-oben { grid-template-columns: 1fr; justify-items: start; gap: 18px; padding: 22px; }
.wsc-ring { width: 140px; height: 140px; }
.wsc-ring-zahl b { font-size: 2.6rem; }
.wsc-bereiche li { grid-template-columns: 1fr auto; gap: 8px 14px; padding: 14px 18px; }
.wsc-bereiche .wsc-balken { grid-column: 1 / -1; grid-row: 2; }
.wsc-bericht-form { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
.wsc *, .wsc *::before, .wsc *::after { transition: none !important; animation-duration: 0s !important; }
.wsc-lauf-balken span { width: 100%; animation: none; opacity: .5; }
}