#zb-portal{ --p-bg:#1a1712; --p-card:#241f18; --p-line:#3a3228; --p-fg:#f3ece0; --p-mut:#b6a888; --p-gold:#d8b56a; --p-green:#57b06a; --p-red:#e0684a;
  font-family:Manrope,system-ui,sans-serif; max-width:460px; margin:24px auto; padding:0 16px; color:var(--p-fg); }
#zb-portal .zbp-load{ text-align:center; color:var(--p-mut); padding:40px 0; }
.zbp-card{ background:var(--p-card); border:1px solid var(--p-line); border-radius:16px; padding:24px; text-align:center; }
.zbp-h{ font-family:Oswald,sans-serif; text-transform:uppercase; letter-spacing:1px; font-size:13px; color:var(--p-mut); }
.zbp-svc{ font-family:Oswald,sans-serif; font-size:24px; color:var(--p-gold); margin:8px 0 4px; }
.zbp-when{ font-size:16px; font-weight:600; }
.zbp-staff{ color:var(--p-mut); margin:4px 0 12px; }
.zbp-status{ display:inline-block; padding:5px 14px; border-radius:20px; background:#2c261d; font-size:13px; font-weight:600; }
.zbp-status.zbp-confirmed{ color:var(--p-green); } .zbp-status.zbp-cancelled{ color:var(--p-red); } .zbp-status.zbp-pending{ color:var(--p-gold); }
.zbp-note{ color:var(--p-red); margin-top:12px; font-size:14px; }
.zbp-btn{ display:block; width:100%; margin-top:18px; padding:13px; border:1px solid var(--p-red); border-radius:11px; background:transparent; color:var(--p-red); font-weight:700; cursor:pointer; }
.zbp-btn[disabled]{ opacity:.5; }
.zbp-err{ color:var(--p-mut); }

/* Custom-Toast (ersetzt window.alert) */
.zbp-toast{ position:fixed; left:50%; bottom:24px; transform:translateX(-50%) translateY(12px); background:var(--p-card); color:var(--p-fg); border:1px solid var(--p-line); border-radius:12px; padding:12px 18px; font-size:14px; box-shadow:0 12px 34px rgba(0,0,0,.4); opacity:0; transition:opacity .25s, transform .25s; z-index:100000; max-width:90vw; text-align:center; pointer-events:none; }
.zbp-toast.show{ opacity:1; transform:translateX(-50%) translateY(0); }

/* Custom-Bestätigung (ersetzt window.confirm) */
.zbp-modal-ov{ position:fixed; inset:0; background:rgba(0,0,0,.55); display:flex; align-items:center; justify-content:center; padding:20px; opacity:0; transition:opacity .2s; z-index:100000; }
.zbp-modal-ov.show{ opacity:1; }
.zbp-modal{ background:var(--p-card); border:1px solid var(--p-line); border-radius:16px; padding:22px; max-width:360px; width:100%; transform:scale(.96); transition:transform .2s; box-shadow:0 20px 50px rgba(0,0,0,.5); }
.zbp-modal-ov.show .zbp-modal{ transform:scale(1); }
.zbp-modal-msg{ color:var(--p-fg); font-size:16px; margin:0 0 18px; text-align:center; line-height:1.4; }
.zbp-modal-actions{ display:flex; gap:10px; }
.zbp-modal-actions button{ flex:1; padding:12px; border-radius:11px; font-weight:700; cursor:pointer; border:1px solid var(--p-line); background:transparent; color:var(--p-fg); font-family:inherit; font-size:15px; }
.zbp-modal-no:hover{ background:var(--p-line); }
.zbp-modal-yes{ background:var(--p-gold); border-color:var(--p-gold); color:#1a1712; }
.zbp-modal-yes.danger{ background:var(--p-red); border-color:var(--p-red); color:#fff; }

@media (prefers-color-scheme: light){
  #zb-portal{ --p-bg:#faf7f1; --p-card:#fff; --p-line:#e6ddcd; --p-fg:#2a241b; --p-mut:#7a6f58; }
}
