*{box-sizing:border-box;margin:0;padding:0}
:root{
  --accent:#c2410c;
  --accent-soft:#fdf3ee;
  --bg:#faf8f6;
  --ink:#1c1917;
  --muted:#5c544f;
  --card:#ffffff;
  --line:#eae4de;
  --line-soft:#f2ede8;
  --radius:16px;
  --shadow-sm:0 1px 2px rgba(28,25,23,.05),0 1px 3px rgba(28,25,23,.04);
  --shadow-md:0 1px 2px rgba(28,25,23,.04),0 8px 24px rgba(28,25,23,.07);
}
html{scroll-behavior:smooth}
body{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg);color:var(--ink);line-height:1.6;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:var(--accent);text-decoration:none}
h1,h2,h3{letter-spacing:-.02em;line-height:1.25}
.wrap{max-width:1040px;margin:0 auto;padding:0 24px}
.narrow{max-width:440px}

/* Kopfzeile */
header.site{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding:18px 0}
header.site .logo{font-weight:800;font-size:1.1rem;color:var(--ink);white-space:nowrap;letter-spacing:-.02em}
header.site .logo span{color:var(--accent)}
header.site nav{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
nav a{font-weight:600;font-size:.92rem;color:var(--muted);padding:8px 12px;border-radius:9px}
nav a:hover{color:var(--ink);background:var(--line-soft)}
nav a.btn,nav a.btn:hover{color:#fff;background:var(--accent)}
nav a.active{color:var(--ink);background:var(--line-soft)}
nav form{display:flex;margin-left:4px}
.sitebar{background:rgba(250,248,246,.85);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}

/* Buttons */
.btn{display:inline-block;background:var(--accent);color:#fff;border:1px solid var(--accent);border-radius:11px;padding:11px 20px;font-size:.95rem;font-weight:600;font-family:inherit;cursor:pointer;text-align:center;line-height:1.4;transition:filter .15s ease,transform .1s ease,background .15s ease}
.btn:hover{filter:brightness(1.07)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:#fff;color:var(--ink);border:1px solid var(--line)}
.btn.ghost:hover{background:var(--line-soft);filter:none}
.btn.small{padding:7px 13px;font-size:.85rem;border-radius:9px}
.btn.block{display:block;width:100%}
.btn.lg{padding:14px 28px;font-size:1.02rem;border-radius:13px}

/* Startseite */
.hero{text-align:center;padding:104px 0 80px}
.eyebrow{display:inline-flex;align-items:center;gap:7px;padding:7px 16px;border-radius:999px;background:var(--accent-soft);color:var(--accent);font-size:.82rem;font-weight:700;letter-spacing:.01em;margin-bottom:30px}
.eyebrow::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--accent)}
.hero h1{font-size:3.1rem;line-height:1.06;letter-spacing:-.035em}
.hero h1 span{color:var(--accent)}
.hero .lead{color:var(--muted);font-size:1.18rem;font-weight:400;margin:24px auto 0;max-width:540px;line-height:1.6}
.hero-points{list-style:none;margin:40px auto 44px;max-width:360px;text-align:left;display:grid;gap:16px}
.hero-points li{color:var(--ink);font-size:.98rem;display:flex;align-items:flex-start;gap:11px;line-height:1.45}
.hero-points li::before{content:'';flex:none;width:20px;height:20px;margin-top:2px;border-radius:50%;background:var(--accent-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23c2410c' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E") center/12px no-repeat}
.hero-cta{margin-top:8px}
.hero-note{color:var(--muted);font-size:.85rem;margin-top:18px}

.section-head{text-align:center;max-width:560px;margin:72px auto 40px}
.section-head h2{font-size:1.85rem}
.section-head p{color:var(--muted);margin-top:12px}

.features{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;padding:0 0 16px}
.feature{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:30px 28px;box-shadow:var(--shadow-sm);transition:box-shadow .2s ease,transform .2s ease}
.feature:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.feature .ico{width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center;margin-bottom:18px}
.feature h3{margin-bottom:9px;font-size:1.02rem}
.feature p{color:var(--muted);font-size:.92rem;line-height:1.55}

.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:24px;padding:0 0 16px;counter-reset:step}
.step{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:28px 26px;position:relative;box-shadow:var(--shadow-sm)}
.step::before{counter-increment:step;content:counter(step);display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;background:var(--accent);color:#fff;font-weight:700;font-size:.9rem;margin-bottom:16px}
.step h3{font-size:1rem;margin-bottom:7px}
.step p{color:var(--muted);font-size:.9rem;line-height:1.6}

.cta{background:var(--ink);color:#fff;border-radius:22px;padding:64px 32px;text-align:center;margin:96px 0 72px}
.cta h2{font-size:1.7rem}
.cta p{color:#d6d3d1;margin:14px auto 30px;max-width:440px}
.cta .btn{background:#fff;color:var(--ink);border-color:#fff}

/* Panels & Formulare */
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:26px;margin:18px 0;box-shadow:var(--shadow-sm)}
.panel h2{font-size:1.1rem;margin-bottom:6px;display:flex;align-items:center;gap:10px}
.panel h2 .ico{flex:none;width:32px;height:32px;border-radius:9px;background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center}
.panel .desc{color:var(--muted);font-size:.92rem;margin-bottom:16px;line-height:1.55}
.panel > h2 + form,.panel > h2 + .desc + form{margin-top:2px}
.subhead{font-size:.78rem;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);margin:26px 0 10px}
.pagehead{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap;margin:26px 0 4px}
.pagehead h1{font-size:1.75rem}
.pagehead p{color:var(--muted);font-size:.92rem}

label{display:block;font-weight:600;font-size:.86rem;margin:14px 0 6px;color:var(--ink)}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=color],input[type=file],textarea,select{
  width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:11px;font-size:.98rem;background:#fff;color:var(--ink);font-family:inherit;transition:border-color .15s ease,box-shadow .15s ease}
textarea{line-height:1.55;resize:vertical}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
input[type=color]{height:46px;padding:4px;cursor:pointer}
input[type=file]{padding:9px 12px;font-size:.9rem;color:var(--muted)}
small{display:block;color:var(--muted);font-size:.85rem;line-height:1.5;margin-top:6px}

.alert{padding:12px 15px;border-radius:12px;margin:14px 0;font-weight:500;font-size:.92rem;border:1px solid transparent}
.alert.ok{background:#f0fdf4;color:#14532d;border-color:#bbf7d0}
.alert.err{background:#fef2f2;color:#991b1b;border-color:#fecaca}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px}

/* Kennzahlen */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin:18px 0}
.stat{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px;text-align:left;box-shadow:var(--shadow-sm)}
.stat b{display:block;font-size:1.9rem;color:var(--ink);font-weight:800;letter-spacing:-.03em;line-height:1.1}
.stat span{color:var(--muted);font-size:.82rem;font-weight:500}

/* Tabellen */
.tablewrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:12px;margin-top:12px}
table{width:100%;border-collapse:collapse;font-size:.9rem;background:#fff}
th,td{text-align:left;padding:11px 14px;border-bottom:1px solid var(--line-soft);white-space:nowrap}
th{color:var(--muted);font-weight:600;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em;background:#fbf9f7}
tr:last-child td{border-bottom:none}
tbody tr:hover td,table tr:hover td{background:#fdfcfb}
td code{background:var(--line-soft);border-radius:5px;padding:2px 6px;font-size:.85em}

code.url{display:block;background:#fbf9f7;border:1px solid var(--line);border-radius:10px;padding:11px 13px;font-size:.85rem;word-break:break-all;margin:10px 0;color:#433d39}
.qrshow{display:block;width:190px;margin:14px auto;border:1px solid var(--line);border-radius:14px;padding:10px;background:#fff}
.empty{text-align:center;color:var(--muted);padding:34px 16px;font-size:.94rem}

footer.site{text-align:center;color:var(--muted);font-size:.85rem;padding:36px 0;border-top:1px solid var(--line);margin-top:20px}

@media(max-width:860px){
  .grid2{grid-template-columns:1fr}
}
@media(max-width:700px){
  .hero{padding:56px 0 44px}
  .hero h1{font-size:2.15rem}
  .hero .lead{font-size:1.05rem}
  .hero-points{margin:30px auto 32px;gap:14px}
  .section-head h2{font-size:1.5rem}
  .wrap{padding:0 16px}
  .panel{padding:20px 16px;border-radius:14px}
  .features,.steps{padding:0 0 8px;gap:16px}
  .section-head{margin:52px auto 28px}
  .cta{margin:64px 0 48px}
  .cta{padding:44px 22px;border-radius:18px}
}
@media(max-width:520px){
  header.site{flex-direction:column;align-items:stretch;gap:10px;padding:14px 0}
  header.site nav{justify-content:space-between;width:100%;gap:4px}
  .stats{grid-template-columns:1fr 1fr;gap:10px}
  .stat b{font-size:1.5rem}
  code.url{font-size:.76rem}
}

/* Kundenkarte */
.cardpage{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px calc(24px + env(safe-area-inset-bottom));background:linear-gradient(160deg,var(--accent) 0%,color-mix(in srgb,var(--accent) 70%,black) 100%)}
.stampcard{background:#fff;border-radius:22px;max-width:400px;width:100%;padding:26px 22px;box-shadow:0 18px 50px rgba(0,0,0,.28)}
.stampcard .bizname{font-size:1.35rem;font-weight:800;text-align:center}
.stampcard .bizlogo{display:block;max-height:76px;max-width:min(220px,80%);width:auto;height:auto;object-fit:contain;margin:0 auto 12px}
.stampcard .reward{text-align:center;color:var(--muted);font-size:.92rem;margin:4px 0 20px}
.stampgrid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:10px auto 18px;max-width:270px;align-items:start;justify-items:stretch}
.stampdot{width:100%;aspect-ratio:1/1;flex:none;align-self:start;border-radius:50%;overflow:hidden;border:2px dashed var(--line);display:flex;align-items:center;justify-content:center;font-size:clamp(.8rem,4.5vw,1.25rem);color:#fff}
.stampdot.filled{background:var(--accent);border:2px solid var(--accent);animation:pop .3s ease}
.stampdot.haslogo.filled{background:#fff;border:2px solid var(--accent);padding:13%}
.stampdot img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;display:block}
@keyframes pop{0%{transform:scale(.4)}80%{transform:scale(1.12)}100%{transform:scale(1)}}
.progresstext{text-align:center;font-weight:700;margin-bottom:14px}
.rewardbox{text-align:center;margin:6px 0 14px}
.rewardbox .code{font-size:1.9rem;font-weight:800;letter-spacing:.2em;margin:6px 0}
.walletbtns{display:flex;gap:10px;margin-top:16px;flex-wrap:wrap}
.walletbtns a{flex:1 1 140px;background:#000;color:#fff;border-radius:10px;padding:12px 8px;text-align:center;font-size:.85rem;font-weight:700;white-space:nowrap}
.hint{color:#fff;opacity:.85;font-size:.8rem;line-height:1.5;text-align:center;margin-top:16px;max-width:400px}
@media(max-width:400px){
  .stampcard{padding:22px 16px}
  .stampcard .bizname{font-size:1.2rem}
  .stampgrid{gap:7px;max-width:240px}
  .walletbtns a{font-size:.8rem}
}

/* --- Gewinnspiel --- */
.rafflebox{margin-top:16px;padding:12px 14px;border:1px dashed var(--accent,#c2410c);border-radius:12px;text-align:center}
.rafflebox .rtitle{font-weight:700}
.rafflebox .rprize{font-size:.92rem;margin-top:2px}
.rafflebox .rlose{font-size:.85rem;color:#78716c;margin-top:6px}
.rafflebox .rterms{margin-top:8px;font-size:.78rem;color:#78716c;text-align:left}
.rafflebox .rterms summary{cursor:pointer}
.pushbtn{display:block;width:100%;margin-top:14px;padding:11px;border:1px solid var(--accent,#c2410c);background:#fff;color:var(--accent,#c2410c);border-radius:10px;font-size:.95rem;font-weight:600;cursor:pointer}
.pushbtn.on{background:var(--accent,#c2410c);color:#fff}
.pushbtn:disabled{opacity:.6}
.stampdone{text-align:center}
.stampdone .bigcheck{width:88px;height:88px;line-height:88px;margin:6px auto 10px;border-radius:50%;background:var(--accent,#c2410c);color:#fff;font-size:2.6rem}
.stampdone .donetitle{font-size:1.25rem;font-weight:700}
.stampdone .donecount{font-size:2rem;font-weight:700;color:var(--accent,#c2410c);margin:6px 0}
.stampdone .donehint{font-size:.9rem;color:#78716c;margin-bottom:16px}

/* ---------- Rechtstexte (AGB, Datenschutz, Impressum, Widerruf) ---------- */
.legal h1 { margin: 0 0 6px; }
.legal h2 { font-size: 1.02rem; margin: 26px 0 8px; }
.legal p { margin: 0 0 10px; line-height: 1.65; font-size: .95rem; }
.legal p + h2 { margin-top: 28px; }

/* ============ Banner mit Knopf rechts ============ */
.bannerzeile{display:flex;gap:14px;align-items:center;flex-wrap:wrap;justify-content:space-between}

/* ============ Erste Schritte ============ */
.checkliste{list-style:none;padding:0;margin:0 0 16px;display:flex;flex-direction:column;gap:2px}
.checkliste li{position:relative}
.checkliste li a{display:flex;flex-direction:column;gap:2px;padding:13px 34px 13px 42px;border-radius:11px;color:inherit}
.checkliste li a:hover{background:var(--line-soft)}
.checkliste li a::before{content:"";position:absolute;left:13px;top:15px;width:18px;height:18px;border-radius:50%;border:2px solid var(--line);background:#fff}
.checkliste li a::after{content:"";position:absolute;right:16px;top:19px;width:7px;height:7px;
  border-right:2px solid var(--accent);border-top:2px solid var(--accent);transform:rotate(45deg)}
.checkliste li.fertig a::before{background:#16a34a;border-color:#16a34a}
.checkliste li.fertig a::after{right:16px;top:20px;width:8px;height:4px;border:0;
  border-left:2px solid #16a34a;border-bottom:2px solid #16a34a;transform:rotate(-45deg)}
.checkliste li b{font-size:.95rem;color:var(--ink)}
.checkliste li.fertig b{color:var(--muted);text-decoration:line-through;text-decoration-thickness:1px}
.checkliste li span{color:var(--muted);font-size:.86rem;line-height:1.5}

/* ============ Einlösen (breit) ============ */
.einloeseform{display:flex;gap:12px;flex-wrap:wrap;align-items:stretch}
.einloeseform input{flex:1 1 220px;margin:0;font-size:1.15rem;letter-spacing:.12em;font-weight:600}
.einloeseform .btn{flex:0 0 auto;white-space:nowrap}

/* ============ Hinweise untereinander ============ */
.hinweisliste{list-style:none;padding:0;margin:0 0 18px;display:flex;flex-direction:column;gap:7px}
.hinweisliste li{position:relative;padding-left:22px;color:var(--muted);font-size:.9rem;line-height:1.55}
.hinweisliste li::before{content:"";position:absolute;left:6px;top:.6em;width:5px;height:5px;border-radius:50%;background:var(--accent)}

/* ============ Bilder in den Einstellungen ============ */
.bildvorschau{display:block;max-height:44px;margin-top:10px;border:1px solid var(--line);border-radius:8px;padding:4px;background:#fff}
.bildvorschau.rund{border-radius:50%;height:44px;width:44px;object-fit:contain}
.werkzeughinweis{margin-top:22px;padding:14px;border:1px dashed var(--line);border-radius:12px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.werkzeughinweis b{font-size:.9rem}
.werkzeughinweis span{color:var(--muted);font-size:.85rem;line-height:1.5}

/* ============ Passwort-Formular ============ */
.formfolge .feld{margin-bottom:4px}
.formfolge .feldtrenner{border:0;border-top:1px solid var(--line);margin:18px 0}
.feldhinweis{display:block;margin-top:6px;font-size:.83rem;color:var(--muted)}
.feldhinweis.gut{color:#15803d}
.feldhinweis.schlecht{color:#b91c1c}

/* ============ Wiederherstellungscodes ============ */
.codeliste{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px;margin-top:16px}
.codeliste code{display:block;text-align:center;padding:11px 8px;background:var(--line-soft);border:1px solid var(--line);border-radius:10px;font-size:1rem;letter-spacing:.08em;font-weight:600}

/* ============ Einführung (Overlay) ============ */
.tour{position:fixed;inset:0;background:rgba(28,25,23,.55);display:flex;align-items:center;justify-content:center;padding:20px;z-index:100}
.tourbox{background:var(--card);border-radius:20px;padding:28px;max-width:440px;width:100%;box-shadow:0 24px 60px rgba(0,0,0,.22)}
.tourbox h2{font-size:1.25rem;margin:0 0 10px;line-height:1.25}
.tourbox p{color:var(--muted);font-size:.95rem;line-height:1.6;margin:0 0 22px}
.tourpunkte{display:flex;gap:6px;margin-bottom:18px}
.tourpunkte i{width:22px;height:4px;border-radius:2px;background:var(--line);display:block;transition:background .2s}
.tourpunkte i.an{background:var(--accent)}
.tourfuss{display:flex;justify-content:space-between;align-items:center;gap:10px}

/* ============ Fragen und Antworten ============ */
.qa details{border-top:1px solid var(--line)}
.qa details:first-child{border-top:0}
.qa summary{cursor:pointer;padding:14px 30px 14px 0;font-weight:600;font-size:.95rem;position:relative;list-style:none}
.qa summary::-webkit-details-marker{display:none}
.qa summary::after{content:"";position:absolute;right:8px;top:20px;width:8px;height:8px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg);transition:transform .2s}
.qa details[open] summary::after{transform:rotate(-135deg)}
.qa summary:hover{color:var(--accent)}
.qa details p{margin:0 0 16px;color:var(--muted);font-size:.92rem;line-height:1.65}

/* ============ Logo-Werkzeug ============ */
.werkzeug{display:grid;grid-template-columns:330px 1fr;gap:20px;align-items:start}
.werkzeug .panel{margin:0}
.dropzone{border:2px dashed var(--line);border-radius:14px;padding:26px 14px;text-align:center;cursor:pointer;display:flex;flex-direction:column;gap:4px;transition:border-color .15s,background .15s}
.dropzone:hover,.dropzone.hot{border-color:var(--accent);background:var(--accent-soft)}
.dropzone b{font-size:.95rem}
.dropzone span{color:var(--muted);font-size:.82rem}
.wval{color:var(--accent);font-variant-numeric:tabular-nums}
.farbzeile{display:flex;gap:10px;align-items:center}
.farbzeile input[type=color]{width:52px;height:38px;padding:2px;margin:0}
.farbzeile code{color:var(--muted);font-size:.85rem}
.zielwahl{display:flex;flex-direction:column;gap:8px;margin-bottom:20px}
.zielwahl label{display:flex;gap:10px;align-items:flex-start;margin:0;padding:11px 12px;border:1px solid var(--line);border-radius:11px;cursor:pointer;font-weight:400}
.zielwahl label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.zielwahl input{width:auto;margin:2px 0 0}
.zielwahl span{display:flex;flex-direction:column;font-size:.85rem;color:var(--muted)}
.zielwahl span b{color:var(--ink);font-size:.92rem}
.wstatus{margin:12px 0 0;font-size:.86rem;color:var(--muted);min-height:1.2em}
.wstatus.gut{color:#15803d;font-weight:600}
.wstatus.schlecht{color:#b91c1c;font-weight:600}
.wvorschau canvas{max-width:100%;height:auto;border-radius:10px;background-color:#fff;
  background-image:linear-gradient(45deg,#e7e5e4 25%,transparent 25%),linear-gradient(-45deg,#e7e5e4 25%,transparent 25%),
                   linear-gradient(45deg,transparent 75%,#e7e5e4 75%),linear-gradient(-45deg,transparent 75%,#e7e5e4 75%);
  background-size:18px 18px;background-position:0 0,0 9px,9px -9px,-9px 0}

@media (max-width:820px){
  .werkzeug{grid-template-columns:1fr}
}
@media print{
  .sitebar,footer.site,.btn{display:none}
  .panel{border:0;box-shadow:none}
}

/* ============ Abo-Seite ============ */
.aboraster{display:grid;grid-template-columns:1.05fr .95fr;gap:20px;align-items:start}
.aboraster .abopanel{margin:0}

.preiskopf{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;flex-wrap:wrap;
  padding-bottom:20px;border-bottom:1px solid var(--line)}
.preiskopf h2{font-size:1.2rem}
.preis{text-align:right;display:flex;align-items:baseline;gap:9px}
.preis b{font-size:2.1rem;font-weight:800;letter-spacing:-.03em;line-height:1;color:var(--ink)}
.preis span{font-size:.78rem;color:var(--muted);line-height:1.35;text-align:left}

.leistungen{list-style:none;padding:0;margin:20px 0 0;display:flex;flex-direction:column;gap:16px}
.leistungen li{display:flex;flex-direction:column;gap:2px;padding-left:32px;position:relative}
.leistungen li::before{content:"";position:absolute;left:0;top:1px;width:21px;height:21px;border-radius:50%;
  background:var(--accent-soft)}
.leistungen li::after{content:"";position:absolute;left:7px;top:8px;width:8px;height:4px;
  border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
.leistungen li b{font-size:.95rem;font-weight:600;line-height:1.45}
.leistungen li span{color:var(--muted);font-size:.87rem;line-height:1.5}

/* Rechnungsblock */
.rechnung{border:1px solid var(--line);border-radius:13px;padding:16px 18px;background:var(--line-soft)}
.rechnung .zeile{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:5px 0;font-size:.92rem}
.rechnung .zeile span{color:var(--muted)}
.rechnung .zeile b{font-variant-numeric:tabular-nums;white-space:nowrap}
.rechnung .zeile.summe{margin-top:8px;padding-top:12px;border-top:1px solid var(--line);font-size:1rem}
.rechnung .zeile.summe span{color:var(--ink);font-weight:600}
.rechnung .zeile.summe b{font-size:1.2rem;font-weight:800;letter-spacing:-.02em}
.rechnung .netto{margin:10px 0 0;font-size:.76rem;color:var(--muted);line-height:1.45}

/* Hervorgehobene Zusatzoption: NFC-Karte */
.zusatz{position:relative;display:grid;grid-template-columns:auto auto 1fr;gap:14px;align-items:start;
  margin:18px 0 0;padding:18px;border:2px solid var(--accent);border-radius:15px;cursor:pointer;font-weight:400;
  background:linear-gradient(180deg,var(--accent-soft),transparent 70%);transition:box-shadow .15s,transform .1s}
.zusatz:hover{box-shadow:0 6px 20px rgba(194,65,12,.13)}
.zusatz:has(input:checked){box-shadow:0 0 0 4px var(--accent-soft)}
.zusatz input{width:auto;margin:2px 0 0;accent-color:var(--accent);width:18px;height:18px;flex:none}
.zusatzbadge{position:absolute;top:-11px;left:16px;background:var(--accent);color:#fff;font-size:.68rem;
  font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 10px;border-radius:999px}
.zusatzbild{color:var(--accent);display:flex;align-items:center;padding-top:2px}
.zusatztext{display:flex;flex-direction:column;gap:5px;min-width:0}
.zusatztext b{font-size:.97rem;font-weight:700}
.zusatztext > span{color:var(--muted);font-size:.86rem;line-height:1.55}
.zusatzpreis{color:var(--accent)!important;font-weight:700;font-size:.95rem;margin-top:3px}
.zusatzpreis small{color:var(--muted);font-weight:400;font-size:.78rem}

.agbzeile{display:flex;gap:11px;align-items:flex-start;margin:20px 0;font-weight:400}
.agbzeile input{width:auto;margin:2px 0 0;flex:none;width:17px;height:17px;accent-color:var(--accent)}
.agbzeile span{font-size:.86rem;color:var(--muted);line-height:1.55}

.sicher{display:flex;align-items:center;justify-content:center;gap:6px;margin:12px 0 0;
  font-size:.8rem;color:var(--muted)}

@media (max-width:900px){
  .aboraster{grid-template-columns:1fr}
  .preis{text-align:left}
}
.rechnung .zeile[hidden]{display:none}
@media (max-width:520px){
  .zusatz{grid-template-columns:auto 1fr}
  .zusatzbild{display:none}
}

/* ============ Warten auf die Bestätigungsmail ============ */
.wartebox{max-width:420px;margin:48px auto;text-align:center;padding:34px 28px}
.wartebild{width:62px;height:62px;margin:0 auto 20px;border-radius:50%;
  background:var(--accent-soft);color:var(--accent);display:flex;align-items:center;justify-content:center}
.wartebox h1{font-size:1.4rem;margin:0 0 12px}
.warteziel{font-size:.98rem;line-height:1.6;margin:0 0 16px}
.wartehinweis{color:var(--muted);font-size:.9rem;line-height:1.6;margin:0 0 24px}
.wartebox .alert{text-align:left}
.wartefuss{margin:18px 0 0;font-size:.86rem;display:flex;gap:20px;justify-content:center;align-items:center;flex-wrap:wrap}
.wartefuss > *{white-space:nowrap}
.wartefuss form{display:inline}
.alslink{background:none;border:0;padding:0;font:inherit;color:var(--accent);cursor:pointer;text-decoration:none}
.alslink:hover{text-decoration:underline}
#adresseForm{text-align:left}

/* ============ Kopfzeile: Hauptpunkte links, Rest im Menü ============ */
.hauptnav{display:flex;align-items:center;gap:4px;flex-wrap:wrap;flex:1 1 auto}
/* Ausgeloggt: nur Hilfe und Anmelden, buendig rechts */
.gastnav{display:flex;align-items:center;gap:6px;margin-left:auto}
.navrechts{display:flex;align-items:center;gap:10px;flex:none}

.navmenue{position:relative}
.navmenue summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:7px;
  padding:8px 13px;border:1px solid var(--line);border-radius:10px;background:var(--card);
  font-size:.9rem;font-weight:600;color:var(--ink);white-space:nowrap}
.navmenue summary::-webkit-details-marker{display:none}
.navmenue summary:hover{background:var(--line-soft)}
.navmenue[open] summary{background:var(--line-soft)}
.navklapp{position:absolute;right:0;top:calc(100% + 8px);min-width:210px;z-index:40;
  background:var(--card);border:1px solid var(--line);border-radius:13px;padding:7px;
  box-shadow:var(--shadow-md);display:flex;flex-direction:column;gap:2px}
.navklapp a,.navklapp button{display:block;width:100%;text-align:left;padding:10px 12px;border-radius:9px;
  font-size:.9rem;font-weight:500;color:var(--ink);background:none;border:0;font-family:inherit;cursor:pointer}
.navklapp a:hover,.navklapp button:hover{background:var(--line-soft)}
.navklapp hr{border:0;border-top:1px solid var(--line);margin:5px 2px}
.navklapp button{color:var(--muted)}

@media (max-width:760px){
  /* Kopfzeile im Konto: Logo links, Knopf + Menue rechts, Hauptpunkte darunter in EINER Zeile */
  header.site:has(.hauptnav){flex-direction:row;align-items:center;flex-wrap:wrap;gap:10px;padding:14px 0}
  header.site:has(.hauptnav) .logo{flex:0 0 auto;order:1}
  .navrechts{order:2;margin-left:auto;justify-content:flex-end}
  .hauptnav{order:3;width:100%;flex:1 1 100%;flex-wrap:nowrap;overflow-x:auto;
    -webkit-overflow-scrolling:touch;scrollbar-width:none;
    justify-content:space-between;gap:2px;
    border-top:1px solid var(--line);padding-top:10px;margin-top:2px}
  .hauptnav::-webkit-scrollbar{display:none}
  .hauptnav a{flex:0 0 auto;white-space:nowrap;padding:8px 9px;font-size:.87rem}
}
@media (max-width:430px){
  .hauptnav{gap:0}
  .hauptnav a{padding:8px 6px;font-size:.82rem}
  .navmenue summary{padding:8px 11px}
}

/* ============ Bildfelder in den Einstellungen ============ */
.bildfeld{display:grid;grid-template-columns:76px 1fr;gap:16px;align-items:start;
  padding:16px 0;border-top:1px solid var(--line)}
.bildfeld:first-of-type{border-top:0;padding-top:4px}
.bildkachel{width:76px;height:76px;border:1px solid var(--line);border-radius:12px;background:#fff;
  display:flex;align-items:center;justify-content:center;overflow:hidden;flex:none}
.bildkachel.rund{border-radius:50%}
.bildkachel img{max-width:84%;max-height:84%;object-fit:contain}
.bildkachel span{color:var(--muted);font-size:.72rem;text-align:center;line-height:1.3}
.bildtext{display:flex;flex-direction:column;gap:4px;min-width:0}
.bildtext b{font-size:.95rem;display:flex;align-items:baseline;gap:7px}
.bildtext b em{font-style:normal;font-size:.72rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted);background:var(--line-soft);border-radius:5px;padding:2px 6px}
.bildtext > span{color:var(--muted);font-size:.85rem;line-height:1.5;margin-bottom:6px}
.bildtext input[type=file]{margin:0}
.kleinhaken{display:flex;align-items:center;gap:8px;margin:9px 0 0;font-weight:400;font-size:.85rem;color:var(--muted)}
.kleinhaken input{width:auto;margin:0;accent-color:var(--accent)}

/* ============ Superadmin: Löschbestätigung ============ */
.loeschzahlen{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:18px 0}
.loeschzahlen div{background:var(--line-soft);border-radius:12px;padding:14px 10px;text-align:center}
.loeschzahlen b{display:block;font-size:1.5rem;font-weight:800;letter-spacing:-.02em}
.loeschzahlen span{color:var(--muted);font-size:.78rem}

/* ============ Kontakt / WhatsApp ============ */
.kontaktknoepfe{display:flex;gap:10px;flex-wrap:wrap}
.btn.wa{display:inline-flex;align-items:center;gap:9px;background:#25D366;border-color:#25D366;color:#0b3d1e}
.btn.wa:hover{filter:brightness(1.05)}

/* ============ Bestätigungscode ============ */
.codeform{text-align:left}
.codeform label{text-align:center}
.codeform input{font-size:1.7rem;letter-spacing:.4em;text-align:center;font-weight:700;
  font-variant-numeric:tabular-nums;padding:14px 12px}
.codeform .btn{margin-top:14px}
.odertrenner{display:flex;align-items:center;gap:14px;margin:22px 0 16px;color:var(--muted);font-size:.82rem}
.odertrenner::before,.odertrenner::after{content:"";flex:1;height:1px;background:var(--line)}

/* Gast-Kopfzeile bleibt auch auf dem Handy einzeilig: Logo links, Links rechts */
@media (max-width:640px){
  header.site:has(.gastnav){flex-direction:row;align-items:center;gap:10px}
  header.site .gastnav{width:auto;justify-content:flex-end;gap:2px;margin-left:auto}
  .gastnav a{padding:8px 10px}
}

/* Freischaltung läuft vorübergehend von Hand */
.perhand{margin-top:22px;padding:18px;border:2px dashed var(--accent);border-radius:14px;
  display:flex;flex-direction:column;gap:9px;background:var(--accent-soft)}
.perhand b{font-size:1rem}
.perhand > span{color:var(--muted);font-size:.9rem;line-height:1.55}
.perhand .kontaktknoepfe{margin-top:6px}
.stat .vonmax{font-size:.55em;font-weight:600;color:var(--muted);letter-spacing:0}

/* Superadmin: Freischaltcodes mit Archiv */
.codekopf{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.codetabs{display:flex;gap:4px;background:var(--line-soft);border-radius:10px;padding:3px}
.codetabs a{padding:6px 13px;border-radius:8px;font-size:.86rem;font-weight:600;color:var(--muted)}
.codetabs a.an{background:var(--card);color:var(--ink);box-shadow:var(--shadow-sm)}
.codetabs a:hover{color:var(--ink)}

/* ============ Vertrag und Kündigung ============ */
.vertragsdaten{margin:14px 0 16px;display:flex;flex-direction:column;gap:1px}
.vertragsdaten div{display:flex;gap:16px;padding:9px 0;border-top:1px solid var(--line);font-size:.92rem}
.vertragsdaten div:first-child{border-top:0}
.vertragsdaten dt{flex:0 0 46%;color:var(--muted);margin:0}
.vertragsdaten dd{margin:0;font-weight:600}
.kuendigungsliste{list-style:none;padding:0;margin:20px 0 24px;display:flex;flex-direction:column;gap:14px}
.kuendigungsliste li{display:flex;flex-direction:column;gap:2px;padding-left:30px;position:relative}
.kuendigungsliste li::before{content:"";position:absolute;left:0;top:4px;width:17px;height:17px;border-radius:50%}
.kuendigungsliste li.bleibt::before{background:#dcfce7;border:2px solid #16a34a}
.kuendigungsliste li.danach::before{background:#fef3c7;border:2px solid #b45309}
.kuendigungsliste li b{font-size:.95rem}
.kuendigungsliste li span{color:var(--muted);font-size:.87rem;line-height:1.55}

/* Widerruf-Hinweis im Konto */
.widerrufkasten{margin:18px 0 0;padding:16px;border:2px solid var(--accent);border-radius:13px;
  background:var(--accent-soft);display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.widerrufkasten b{font-size:.95rem}
.widerrufkasten > span{color:var(--muted);font-size:.88rem;line-height:1.55}
.warnkasten{margin:20px 0 0;padding:14px 16px;border-radius:11px;background:#fdf5e8;
  border:1px solid #f3d5a3;display:flex;flex-direction:column;gap:5px}
.warnkasten b{color:#b45309;font-size:.92rem}
.warnkasten span{color:var(--muted);font-size:.87rem;line-height:1.55}
