.zc-feedback-dialog{box-sizing:border-box;width:calc(100vw - 32px);max-width:360px;max-height:calc(100dvh - 32px);overflow:auto;margin:auto;padding:24px;border:1px solid var(--border,#91b8d91f);border-left:4px solid #ff453a;border-radius:16px;background:var(--surface,#0b1a2a);color:var(--text,#f2f8fc);box-shadow:0 20px 80px #0009;animation:zc-feedback-in 180ms ease-out}
.zc-feedback-dialog::backdrop{background:rgba(0,0,0,.65)}
.zc-feedback-dialog h2{font-size:20px!important;line-height:1.3;margin:14px 0 10px;font-weight:600}.zc-feedback-dialog p{font-size:15px!important;color:var(--text,#f2f8fc)!important;line-height:1.55;margin:0 0 22px;overflow-wrap:anywhere}
.zc-feedback-icon{display:inline-grid;place-items:center;width:28px;height:28px;border:1px solid currentColor;border-radius:50%;font-size:17px;font-weight:600;flex-shrink:0;color:#ff6b62}.zc-feedback-actions{display:flex;gap:10px;justify-content:flex-end}.zc-feedback-actions button{min-height:44px;font-size:14px;padding:10px 18px}.zc-feedback-actions .primary{background:var(--text,#f2f8fc);color:var(--brand-ink,#03121e);border:0}
.zc-toasts{position:fixed;z-index:2147483646;top:max(16px,env(safe-area-inset-top));right:max(16px,env(safe-area-inset-right));display:flex;flex-direction:column;gap:8px;width:min(380px,calc(100vw - 32px));pointer-events:none}
.zc-toast{display:flex;align-items:center;gap:12px;min-height:56px;padding:10px 12px;border:1px solid var(--border-strong,#91b8d938);border-radius:12px;background:#0b1a2af5;box-shadow:0 8px 30px #0008;color:var(--text,#f2f8fc);font-size:14px;line-height:1.5;pointer-events:auto;animation:zc-feedback-in 180ms ease-out}.zc-toast>span:nth-child(2){flex:1;overflow-wrap:anywhere}.zc-toast button{min-width:44px;min-height:44px;padding:4px;font-size:24px;background:transparent;color:var(--text,#f2f8fc);border:0}
.zc-toast[data-variant=success] .zc-feedback-icon{color:#8ee6aa}.zc-toast[data-variant=info] .zc-feedback-icon{color:var(--text,#f2f8fc)}.zc-toast[data-variant=warning] .zc-feedback-icon{color:#ffd47a}
.zc-inline-alert{padding:14px 16px!important;border:1px solid #ff453a80;border-radius:10px;background:#ff453a26;color:#fff1ef!important;font-size:14px!important;line-height:1.5!important;overflow-wrap:anywhere}.zc-inline-alert[data-variant=info],.zc-inline-alert[data-variant=success]{border-color:#b8a47b66;background:#b8a47b18;color:var(--text,#f2f8fc)!important}
.zc-field-error{color:#ff746c!important;font-size:13px!important;line-height:1.4;margin:6px 0 12px}input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:#ff453a!important;box-shadow:0 0 0 1px #ff453a55}
form button[aria-busy=true]::after{content:'';display:inline-block;width:14px;height:14px;margin-left:10px;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:zc-feedback-spin 1s linear infinite}
@keyframes zc-feedback-spin{to{transform:rotate(360deg)}}@keyframes zc-feedback-in{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:600px){.zc-toasts{left:16px;right:16px;top:max(12px,env(safe-area-inset-top));width:auto}.zc-feedback-dialog{padding:22px;max-height:calc(100dvh - env(safe-area-inset-top) - env(safe-area-inset-bottom) - 32px)}}
@media(prefers-reduced-motion:reduce){.zc-feedback-dialog,.zc-toast,form button[aria-busy=true]::after{animation:none}}
/* Streaming stays in-stage so Retry does not interrupt fullscreen. */
.video-shell .player-error-card{border-left:3px solid #ff453a;color:#f5efea;background:#0b1a2af5}.video-shell .player-error-card p{font-size:14px;color:var(--text,#f2f8fc);line-height:1.5}.video-shell .player-error-card button{min-height:44px;font-size:14px}
