*{box-sizing:border-box;margin:0;padding:0}
:root{--green:#2e8b57;--orange:#f08a24;--bg:#fbf7f1;--text:#222}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column}
.top{display:flex;justify-content:space-between;align-items:center;padding:16px 20px}
.logo{font-weight:700;font-size:1.2rem}
.login{color:var(--text);text-decoration:none;font-size:.95rem}
main{flex:1;width:100%;max-width:960px;margin:0 auto;padding:16px 20px 40px}
.screen{display:none;animation:fade .25s ease}
.screen.active{display:block}
@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1}}
h1{font-size:clamp(1.8rem,5vw,2.8rem);line-height:1.15;text-align:center;margin-top:12px}
h2{font-size:clamp(1.5rem,4vw,2rem);text-align:center;margin:12px 0 24px}
.sub{text-align:center;color:#555;margin:12px 0 32px;font-size:1.05rem}
.tiles{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:720px){.tiles{grid-template-columns:1fr 1fr;gap:24px}}
.tile{border:none;border-radius:24px;padding:36px 24px;min-height:200px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;cursor:pointer;color:#fff;font:inherit;text-align:center;box-shadow:0 8px 24px rgba(0,0,0,.12);transition:transform .15s}
.tile:hover,.tile:focus-visible{transform:translateY(-4px)}
.tile:active{transform:scale(.98)}
.owner{background:var(--green)}
.walker{background:var(--orange)}
.icon{font-size:3rem}
.title{font-size:1.35rem;font-weight:700}
.hint{opacity:.9}
.trust{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:12px 24px;margin-top:32px;color:#555;font-size:.95rem}
.choices{display:grid;grid-template-columns:1fr;gap:12px;max-width:520px;margin:0 auto}
@media(min-width:600px){.choices{grid-template-columns:1fr 1fr}}
.choices button,.primary{min-height:64px;border-radius:16px;border:2px solid var(--green);background:#fff;font:inherit;font-size:1.1rem;font-weight:600;cursor:pointer;color:var(--text)}
.choices button:hover{background:#eaf5ee}
.primary{background:var(--green);color:#fff;padding:0 24px;width:100%}
.primary:disabled{opacity:.6;cursor:default}
.back{background:none;border:none;font:inherit;color:#555;cursor:pointer;padding:8px 0}
.plz{display:flex;flex-direction:column;gap:12px;max-width:420px;margin:0 auto}
.plz input{min-height:64px;border-radius:16px;border:2px solid #ccc;font-size:1.3rem;text-align:center}
.soon{text-align:center;max-width:460px;margin:0 auto}
.soon p{color:#555;margin-bottom:24px}
footer{text-align:center;padding:20px;font-size:.85rem;color:#777}
footer a{color:#777}

.paybtn{display:block;margin:28px auto 0;min-height:60px;padding:0 28px;border-radius:30px;border:2px solid var(--green);background:#fff;font:inherit;font-size:1.1rem;font-weight:700;color:var(--green);cursor:pointer}
.paybtn:hover{background:#eaf5ee}
.link{background:none;border:none;font:inherit;color:var(--green);margin-top:16px;cursor:pointer;text-decoration:underline}
.payform{display:flex;flex-direction:column;gap:12px;max-width:480px;margin:0 auto}
.payform>input{min-height:56px;border-radius:14px;border:2px solid #ccc;font-size:1.05rem;padding:0 16px}
.label{font-weight:600;margin-top:4px}
.amounts,.methods{display:grid;gap:10px}
.amounts{grid-template-columns:repeat(2,1fr)}
@media(min-width:520px){.amounts{grid-template-columns:repeat(4,1fr)}}
.methods{grid-template-columns:repeat(3,1fr)}
.amounts label,.methods label{position:relative;cursor:pointer}
.amounts input,.methods input{position:absolute;opacity:0}
.amounts span,.methods span{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:72px;border:2px solid #ccc;border-radius:14px;background:#fff;text-align:center;line-height:1.3}
.methods span{min-height:56px}
.amounts input:checked+span,.methods input:checked+span{border-color:var(--green);background:#eaf5ee}
.amounts input:focus-visible+span,.methods input:focus-visible+span{outline:3px solid var(--orange)}
.tip{display:flex;gap:8px;align-items:center}
.demo{text-align:center;color:#777;font-size:.85rem}
.ref{margin-top:-12px}

.qrbanner{background:#fff4d6;border-radius:10px;padding:10px 12px;font-weight:600}
.qrout{text-align:center;margin-top:18px}.qrout img{border:8px solid #fff;border-radius:12px;box-shadow:0 2px 10px #0002}
.qramount{font-size:1.4em;font-weight:700;margin:10px 0 4px}.qrlink{font-size:.8em;word-break:break-all;color:#666}

.stripenote{background:#f2f0ff;border-radius:10px;padding:10px 12px;margin:0}
.sco{max-width:380px;margin:10px auto;background:#fff;border-radius:14px;padding:20px;box-shadow:0 4px 18px #0002}
.sco input{width:100%;box-sizing:border-box;margin:6px 0;padding:12px;border:1px solid #ccd;border-radius:8px;font-size:1em}
.scobadge{background:#ffde8a;color:#5a3d00;font-weight:700;text-align:center;border-radius:6px;padding:6px;margin:0 0 12px}
.scomerchant{color:#666;margin:0}.scoamount{font-size:2em;font-weight:700;margin:4px 0}.scoline{color:#555;margin:0 0 12px}
.scotabs{display:flex;gap:8px;margin-bottom:6px}.scotabs span{flex:1;text-align:center;padding:10px;border:1px solid #ccd;border-radius:8px}
.scotabs .on{border-color:#635bff;color:#635bff;font-weight:600}.scorow{display:flex;gap:8px}
.scohint{font-size:.8em;color:#666}.scopay{background:#635bff!important;width:100%}
.split{width:100%;border-collapse:collapse;margin:12px 0;text-align:left}.split td{padding:8px 4px;border-bottom:1px solid #e6e1d6}
.split td:last-child{text-align:right;font-weight:600}.split .w td{color:#2d8a55;font-weight:700}
.tipnote{font-size:.9em;color:#2d8a55}
.flow{list-style:none;padding:0;text-align:left}.flow li{background:#fff;border-radius:10px;padding:10px 12px 10px 44px;margin:8px 0;position:relative}
.flow li b{position:absolute;left:12px;top:10px;background:#2d8a55;color:#fff;border-radius:50%;width:22px;height:22px;text-align:center;line-height:22px;font-size:.85em}
.split td:last-child{white-space:nowrap}

.prices{display:flex;gap:12px;margin:16px 0}.pricecard{flex:1;background:#fff;border:2px solid #2d8a55;border-radius:14px;padding:14px;text-align:center}
.pricecard span{display:block;color:#555}.pricecard b{font-size:1.8em;color:#2d8a55}
#payProducts,#qrProducts{grid-template-columns:1fr 1fr}

.from{text-align:center;color:#777;font-size:.9em;margin:10px 0 0}
.walkers{display:grid;gap:10px;margin:12px 0}
.wcard{display:flex;align-items:center;gap:12px;background:#fff;border:2px solid #e6e1d6;border-radius:14px;padding:12px 14px;text-align:left;font:inherit;cursor:pointer;width:100%}
.wcard:hover,.wcard.sel{border-color:#2d8a55}
.wcard.fixed{cursor:default;border-color:#2d8a55;background:#eef7f1;margin:10px 0}
.av{flex:0 0 44px;height:44px;border-radius:50%;background:#2d8a55;color:#fff;font-weight:700;font-size:1.2em;display:flex;align-items:center;justify-content:center}
.wcard small{display:block;color:#666}.wcard .who{font-size:.85em;color:#555}.wcard b{font-size:1.15em}
.wcard .chg{margin-left:auto;background:none;border:0;color:#2d8a55;text-decoration:underline;cursor:pointer;font:inherit;font-size:.9em}
.secondary{width:100%;padding:12px;border-radius:12px;border:2px solid #2d8a55;background:#fff;color:#2d8a55;font-weight:600;font-size:1em;cursor:pointer}
.loading{text-align:center;padding:40px 0;color:#555;font-weight:600}.demotag{display:inline-block;background:#fff4d6;border-radius:6px;padding:4px 8px;font-size:.85em;font-weight:600;margin:4px 0}
.ownerinfo{background:#fff;border-radius:10px;padding:10px 12px;font-size:.92em;margin:6px 0}.ownerinfo a{color:#2d8a55}
[hidden]{display:none!important}

.demobar{background:#333;color:#fff;font-size:.85em;padding:6px 12px;display:flex;gap:8px;align-items:center;justify-content:center}
.demobar button{background:#555;color:#fff;border:0;border-radius:6px;padding:4px 10px;cursor:pointer;font:inherit}
.demobar button.on{background:var(--orange)}
.bookings{display:grid;gap:10px;margin:12px 0}
.bk{background:#fff;border:2px solid #e6e1d6;border-radius:14px;padding:12px 14px}
.bk p{margin:3px 0}.bk .st{float:right;font-size:.8em;font-weight:700;border-radius:6px;padding:2px 8px;background:#eee}
.st.offen{background:#fff4d6}.st.bestaetigt{background:#dff1e6;color:#2d8a55}.st.abgelehnt{background:#fbe0e0;color:#a33}.st.bezahlt{background:#2d8a55;color:#fff}
.bk .btns{display:flex;gap:8px;margin-top:8px}.bk .btns button{flex:1;min-height:44px;font-size:1em}
.bk .muted{color:#777;font-size:.9em}
.reqh{margin:24px 0 4px}
.note{background:#dff1e6;border-left:5px solid #2d8a55;border-radius:10px;padding:12px;margin:14px 0;font-weight:600}
.btnno{border:2px solid #a33;background:#fff;color:#a33;border-radius:12px;font-weight:600;cursor:pointer}
.chips{display:flex;flex-wrap:wrap;gap:6px}.chip{background:#dff1e6;color:#2d8a55;border-radius:12px;padding:3px 10px;font-weight:600;font-size:.9em}
.chip.bad{background:#fbe0e0;color:#a33}.err{color:#a33;font-size:.9em}

#bTime{min-height:44px;border:2px solid #ccc;border-radius:8px;font-size:1em;padding:0 8px;flex:1}
.nextfree{margin-left:auto;text-align:right;font-size:.8em;color:#2d8a55}.nextfree+.chg{margin-left:10px}
#calBox{background:#fff;border-radius:14px;padding:12px;margin:14px 0}
.weekedit{display:grid;gap:6px}.wrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;border-bottom:1px solid #eee;padding:4px 0}
.wrow>b{width:28px}.wins{display:flex;flex-wrap:wrap;gap:4px;flex:1}.wadd{display:flex;gap:4px}.wadd input,.xrow input{padding:4px;border:1px solid #ccc;border-radius:6px;font:inherit;font-size:.9em}
.wadd button{width:auto;padding:2px 10px}.chip a{color:inherit;text-decoration:none;font-weight:700;margin-left:2px}
.calnav{display:flex;align-items:center;justify-content:space-between;gap:8px;margin:6px 0}.calnav button{width:auto;padding:4px 14px}
.calgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cday{border-radius:8px;padding:4px;font-size:.68em;min-height:64px;cursor:pointer;display:flex;flex-direction:column;gap:2px;border:1px solid #e6e1d6}
.cday .dn{font-weight:700}.cday.cav{background:#dff1e6}.cday.blk{background:#e4e4e4;color:#777}.cday.na{background:#fafafa;color:#aaa}
.bkd{background:#f08a24;color:#fff;border-radius:4px;padding:1px 3px}.bkd.offen{background:#ffde8a;color:#5a3d00}.bkd.bezahlt{background:#2d8a55}
.legend{font-size:.8em;margin:6px 0}.lg{display:inline-block;width:10px;height:10px;border-radius:3px;margin-left:6px}.lg.cav{background:#dff1e6;border:1px solid #2d8a55}.lg.blk{background:#ccc}.lg.na{background:#fafafa;border:1px solid #ccc}
.xrow{display:flex;gap:6px;margin:6px 0}.xrow>*{flex:1}
.cday>*{flex-shrink:0}.cday{overflow:hidden;word-break:break-word}

.slotcal{display:grid;gap:8px}.sday{background:#fff;border:1px solid #e6e1d6;border-radius:10px;padding:8px}
.slots{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.slot{border:2px solid #2d8a55;background:#fff;color:#2d8a55;border-radius:8px;padding:6px 10px;font:inherit;font-weight:600;cursor:pointer}
.slot.on{background:#2d8a55;color:#fff}

.cday{display:block;height:auto;overflow:visible}.cday>span{display:block;margin-top:2px}
#nwSubmit:disabled{background:#e4e4e4;border-color:#bbb;color:#888;cursor:not-allowed}
.upl{display:flex;flex-direction:column;gap:6px;font-weight:600;background:#fff;border:2px dashed #ccc;border-radius:12px;padding:10px}.upl input{font-weight:400}
.insok{align-items:flex-start}.insok input{margin-top:4px}.hint{font-size:.85em;margin-top:-6px}
.authbadge{font-size:.85em;margin-right:6px}
.sbnote{position:fixed;left:12px;right:12px;bottom:12px;background:#2d8a55;color:#fff;border-radius:10px;padding:12px;z-index:50;box-shadow:0 4px 14px #0003}
.sbnote.bad{background:#a33}

.linksent{background:#e8f6ee;border:1px solid #2d8a55;border-radius:10px;padding:14px;font-weight:600;line-height:1.4}
.ver{opacity:.6;font-size:.85em}

/* v9.3: großes, gut sichtbares Code-Feld */
#codeIn{display:block;width:100%;max-width:340px;box-sizing:border-box;margin:12px auto;padding:14px 16px;font-size:28px;font-weight:600;letter-spacing:.3em;text-align:center;border:2px solid #2f7d4f;border-radius:12px;background:#fff;color:#111}
#codeIn:focus{outline:none;box-shadow:0 0 0 4px rgba(47,125,79,.25)}
#codeIn::placeholder{font-size:16px;letter-spacing:normal;font-weight:400;color:#888}

/* v9.5: ausgewählter Kalendertag */
#calGrid .cday.seld,#calGrid .cday.seld.blk,#calGrid .cday.seld.na,#calGrid .cday.seld.cav{background:#2f6fd6!important;color:#fff!important;border-color:#1d4fa3!important;box-shadow:0 0 0 2px #1d4fa3}
#calGrid .cday.seld *{color:#fff!important}

/* v9.7: Halter-Buchung 14-Tage-Raster */
.bgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px;margin:6px 0 10px}
.bday{border:1px solid #e6e1d6;border-radius:8px;padding:5px 2px;font-size:.72em;display:flex;flex-direction:column;align-items:center;gap:1px;cursor:pointer;color:#222;min-height:56px}
.bday .dn{font-weight:700}.bday .cnt{font-size:.9em}
.bday.free{background:#dff1e6;border-color:#2d8a55}.bday.none{background:#e4e4e4;color:#888;cursor:default}
.bday.seld{background:#2f6fd6!important;color:#fff!important;border-color:#1d4fa3!important;box-shadow:0 0 0 2px #1d4fa3}

/* v9.7: Stornierung */
.st.storniert{background:#e4e4e4;color:#666}
.bk.cxd{background:#f3f3f3;border-color:#d5d5d5;color:#777}.bk.cxd .strike{text-decoration:line-through}
.cxhead{font-weight:700;color:#a33;margin:4px 0}.cxwhy{font-style:italic;color:#555}
.dlg{position:fixed;inset:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:60;padding:16px}
.dlg[hidden]{display:none}.dlgbox{background:#fff;border-radius:14px;padding:16px;max-width:380px;width:100%;display:flex;flex-direction:column;gap:10px}

/* v9.8: Haftpflicht-Info + Sichtbarkeit */
.affbox{background:#f4f6fb;border:1px solid #c9d3e6;border-radius:10px;padding:10px 12px;font-size:.9em;margin:6px 0}
.affbox ul{margin:6px 0 0 18px;padding:0}.affbox li{margin:3px 0}
.visst{border-radius:10px;padding:10px 12px;margin:8px 0;line-height:1.4}
.visst.geprueft{background:#dff1e6}.visst.eingereicht{background:#fff4d6}.visst.keine{background:#fbe9e0}

/* v9.9: Anbieter-Links erst nach "keine Haftpflicht" aktiv */
#insInfo.affoff{opacity:.45;filter:grayscale(1)}
#insInfo.affoff a{pointer-events:none}

/* v9.10: große Versicherungsfelder + Panel im Konto */
#insFields input#insName,#insFields input#insPolicy,#insPanel input#apInsurer,#insPanel input#apPolicy{width:100%;box-sizing:border-box;min-height:48px;font-size:17px;padding:0 14px;border:2px solid #ccc;border-radius:12px;background:#fff}
.payform input#insName,.payform input#insPolicy{min-height:48px;font-size:17px}
.affoff{opacity:.45;filter:grayscale(1)} .affoff a{pointer-events:none}
.insp{background:#fff;border:2px solid #f0c36d;border-radius:14px;padding:14px;margin:10px 0}
.insphead{font-weight:700;margin:0}

/* v9.17: Pfoten-Bewertungen (immer 5 Pfoten, Rest grau) */
.ratingline{display:block;margin-top:2px}
.paws .paw{font-size:15px;margin-right:1px}
.paw.off{filter:grayscale(1);opacity:.25}
.paw.half{filter:grayscale(.35);opacity:.55}
.norating{color:#999;font-size:.8em}
.ratxt{color:#666;font-size:.8em}
.revpaws{display:flex;gap:6px;justify-content:center;margin:10px 0 16px}
.revpaws .pawbtn{font-size:38px;background:none;border:0;cursor:pointer;padding:2px;line-height:1}
.revpaws .pawbtn.off{filter:grayscale(1);opacity:.25}
.revpaws span.pawbtn{cursor:default}

/* v9.20 */
.link.toplink{display:block;margin:-6px 0 10px;padding:0;text-align:left}
.bioarea{margin-top:12px;text-align:center}
.biobtn{display:inline-flex;align-items:center;gap:8px;padding:10px 16px;border:2px solid var(--green);border-radius:12px;background:#fff;color:var(--green);font:inherit;font-weight:600;cursor:pointer}
.bioicon{font-size:1.5em}
.biohint{font-size:.85em;margin-top:6px}
.bioofferbox{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);background:#fff;border:2px solid var(--green);border-radius:14px;padding:12px 14px;box-shadow:0 6px 24px rgba(0,0,0,.15);z-index:999;max-width:92vw;text-align:center}
.bioofferbox button{margin:6px 4px 0}
.biozone .biohint{color:#888}.biozone{margin:8px 0}

/* v9.24: Handy – Gassigeher-Karte komplett antippbar, kein Auswählen-Link, nur Fließtext */
@media (max-width:640px){.wcard .chg{display:none}.wcard .nextfree{color:#333;text-align:left;font-size:.85em}.wcard .nextfree .nfbr{display:none}.wcard .nextfree b{font-size:1em;font-weight:normal}}

/* v9.26: Logo-Pfote als SVG (überall gleich blau) */
.pawlogo{vertical-align:-0.15em;margin-right:.15em}
.logoimg{height:34px;width:auto;display:block}@media(max-width:600px){.logoimg{height:28px}}

/* ===== v9.26: einheitliche Felder & Buttons ===== */
:root{--field-h:56px;--primary-h:64px;--radius:14px;--field-fs:1.05rem;--field-gap:12px}
main input:is([type=text],[type=email],[type=tel],[type=number],[type=search],[type=password],:not([type])),
main select,main textarea,
.payform input#insName,.payform input#insPolicy,#insFields input#insName,#insFields input#insPolicy,#insPanel input#apInsurer,#insPanel input#apPolicy,
.sco input{
  width:100%;box-sizing:border-box;min-height:var(--field-h);border-radius:var(--radius);border:2px solid #ccc;
  font:inherit;font-size:var(--field-fs);padding:0 16px;margin:0;background:#fff;color:var(--text)}
main textarea{padding:14px 16px;min-height:calc(var(--field-h)*2)}
main input:focus,main select:focus,main textarea:focus{outline:none;border-color:var(--green)}
.plz input{min-height:var(--field-h);border-radius:var(--radius)}
/* kleine Kalender-Eingaben bleiben kompakt */
.wadd input,.xrow input{width:auto;min-height:36px;padding:4px 8px;border-radius:8px;font-size:.9em;border-width:1px}
.secondary,.btnno{width:100%;box-sizing:border-box;min-height:var(--field-h);border-radius:var(--radius);font:inherit;font-size:var(--field-fs);font-weight:600;padding:0 16px}
.primary{min-height:var(--primary-h);border-radius:var(--radius)}
.payform{gap:var(--field-gap)}
.soon .payform{margin:0 auto var(--field-gap)}
.soon>.primary{max-width:480px;display:block;margin:0 auto}
.bk .btns button{min-height:44px}
