.zb{--zb-akzent:var(--akzent,#E2491A);--zb-dunkel:var(--dunkel,#1b2128);--zb-linie:#dfe3e8;--zb-weich:#f4f6f8;--zb-ok:#14804a;--zb-err:#b42318;color:var(--zb-dunkel);font-size:16px}
.zb *{box-sizing:border-box}
.zb-form{background:#fff;border-radius:18px;padding:clamp(18px,3vw,32px);box-shadow:0 1px 2px rgba(16,24,40,.06),0 12px 40px -12px rgba(16,24,40,.18)}
.zb-label{font-weight:800;font-size:.95rem;letter-spacing:.02em;text-transform:uppercase;margin:0 0 12px;color:var(--zb-dunkel)}
.zb-label:not(:first-child){margin-top:26px}
.zb-orte{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.zb-ort{position:relative;display:block;cursor:pointer}
.zb-ort input{position:absolute;opacity:0;pointer-events:none}
.zb-ort span{display:flex;flex-direction:column;gap:2px;padding:14px 16px 14px 46px;border:2px solid var(--zb-linie);border-radius:12px;transition:.15s;height:100%}
.zb-ort span::before{content:"";position:absolute;left:16px;top:17px;width:18px;height:18px;border-radius:50%;border:2px solid #b9c0c8;background:#fff}
.zb-ort small{color:#5b6672;font-size:.82rem;line-height:1.35}
.zb-ort input:checked+span{border-color:var(--zb-akzent);background:#fff4ef}
.zb-ort input:checked+span::before{border:6px solid var(--zb-akzent)}
.zb-ort input:focus-visible+span{outline:3px solid rgba(226,73,26,.35);outline-offset:2px}
.zb-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start}
@media (max-width:760px){.zb-grid{grid-template-columns:1fr}}
.zb-kal{border:1px solid var(--zb-linie);border-radius:14px;padding:14px;min-height:320px}
.zb-kal-kopf{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.zb-kal-nav{width:36px;height:36px;border-radius:10px;border:1px solid var(--zb-linie);background:#fff;font-size:20px;line-height:1;cursor:pointer;color:var(--zb-dunkel)}
.zb-kal-nav:disabled{opacity:.3;cursor:default}
.zb-kal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.zb-kal-wt{font-size:.72rem;font-weight:700;color:#7a8591;text-align:center;padding:4px 0}
.zb-kal-tag{aspect-ratio:1;border:0;border-radius:9px;background:var(--zb-weich);font:inherit;font-size:.92rem;font-weight:600;cursor:pointer;color:var(--zb-dunkel);transition:background .12s}
.zb-kal-tag:hover:not(:disabled){background:#fde3d9}
.zb-kal-tag.heute{box-shadow:inset 0 0 0 2px #c4cbd3}
.zb-kal-tag.vergangen{background:transparent;color:#c3c9d0;cursor:default}
.zb-kal-tag.belegt{background:repeating-linear-gradient(135deg,#f7c9c9 0 5px,#fbe1e1 5px 10px);color:#b42318;text-decoration:line-through;cursor:not-allowed}
.zb-kal-tag.teilweise{background:linear-gradient(135deg,var(--zb-weich) 50%,#fde7c8 50%)}
.zb-kal-tag.zwischen{background:#fde0d5}
.zb-kal-tag.start,.zb-kal-tag.ende{background:var(--zb-akzent);color:#fff}
.zb-kal-legende{display:flex;flex-wrap:wrap;gap:14px;margin-top:12px;font-size:.78rem;color:#5b6672}
.zb-kal-legende i{display:inline-block;width:12px;height:12px;border-radius:3px;margin-right:5px;vertical-align:-1px}
.l-frei{background:var(--zb-weich);border:1px solid #d5dbe1}.l-teil{background:linear-gradient(135deg,var(--zb-weich) 50%,#fde7c8 50%)}.l-belegt{background:#f7c9c9}
.zb-feld{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.zb-feld label{font-weight:700;font-size:.9rem}
.zb-zeile{display:grid;grid-template-columns:1fr 130px;gap:8px}
.zb input:not([type=radio]):not([type=checkbox]),.zb select,.zb textarea{width:100%;font:inherit;font-size:16px;padding:11px 12px;border:1.5px solid var(--zb-linie);border-radius:10px;background:#fff;color:var(--zb-dunkel)}
.zb input:focus,.zb select:focus,.zb textarea:focus{outline:none;border-color:var(--zb-akzent);box-shadow:0 0 0 3px rgba(226,73,26,.18)}
.zb-tipp{font-size:.82rem;color:#6b7581;margin:0 0 12px}
.zb-status{min-height:8px;border-radius:12px;font-size:.95rem}
.zb-status.laden,.zb-status.ok,.zb-status.fehler{padding:14px 16px}
.zb-status.laden{background:var(--zb-weich);color:#5b6672}
.zb-status.ok{background:#ecf9f1;border:1px solid #b9e6cb;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 12px}
.zb-frei{color:var(--zb-ok);font-weight:800}
.zb-preis{font-size:1.6rem;font-weight:900;margin-left:auto}
.zb-status.ok small{flex-basis:100%;color:#41604e;font-size:.8rem}
.zb-status.fehler{background:#fef0ef;border:1px solid #f6c8c4;color:var(--zb-err)}
.zb-link{background:none;border:0;padding:0;margin-top:6px;font:inherit;font-weight:700;color:var(--zb-dunkel);text-decoration:underline;cursor:pointer}
.zb-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;margin-top:20px;padding:15px 26px;border:0;border-radius:12px;background:var(--zb-akzent);color:#fff;font:inherit;font-weight:800;font-size:1rem;cursor:pointer;transition:transform .12s,filter .12s;width:100%}
.zb-btn:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}
.zb-btn:disabled{background:#c9cfd6;cursor:not-allowed}
.zb-btn-ghost{background:#fff;color:var(--zb-dunkel);border:1.5px solid var(--zb-linie)}
.zb-aktionen{display:grid;grid-template-columns:1fr 2fr;gap:12px}
.zb-zusammenfassung{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;background:var(--zb-weich);border-radius:12px;padding:14px 16px;margin-bottom:6px}
.zb-zusammenfassung small{display:block;font-size:.72rem;text-transform:uppercase;letter-spacing:.05em;color:#6b7581}
.zb-felder{display:grid;grid-template-columns:1fr 1fr;gap:0 14px}
.zb-voll{grid-column:1/-1}
@media (max-width:600px){.zb-felder{grid-template-columns:1fr}.zb-aktionen{grid-template-columns:1fr}}
.zb-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.zb-check{display:flex;gap:10px;align-items:flex-start;font-size:.9rem;margin-top:6px;cursor:pointer}
.zb-check input{width:20px;height:20px;margin-top:1px;accent-color:var(--zb-akzent);flex:none}
.zb-check a{color:inherit;font-weight:700}
.zb-hinweis{font-size:.85rem;color:#5b6672;background:var(--zb-weich);border-radius:10px;padding:10px 12px;margin:14px 0 0}
.zb-danke{text-align:center;padding:30px 10px}
.zb-haken{width:72px;height:72px;margin:0 auto 14px;border-radius:50%;background:#ecf9f1;color:var(--zb-ok);font-size:38px;font-weight:900;display:grid;place-items:center}
.zb-danke h3{font-size:1.6rem;margin:0 0 8px}
.zb-nr{font-weight:800;font-size:1.1rem}
.zb-status.ok small.zb-spartipp{color:#7a4a00;background:#fff6e0;border-radius:8px;padding:8px 10px;margin-top:6px;font-size:.85rem}
