/* Baize playtest feedback widget. The page stylesheet only places and hides the host; everything inside is styled
   from this same file loaded again inside the widget's shadow root, so page CSS and widget CSS never mix. */
#baize-feedback{position:fixed;inset:0 auto auto 0;width:0;height:0;z-index:2147483000;display:block}
#baize-feedback[hidden],html[data-feedback=off] #baize-feedback,body[data-feedback=off] #baize-feedback,
body.broadcast #baize-feedback,body.watch #baize-feedback,body.watching #baize-feedback{display:none!important}

/* ---- inside the shadow root ---- */
:host{all:initial;--bz-bg:#081622;--bz-panel:#0c1a26;--bz-field:#06121b;--bz-ink:#ede6d9;--bz-muted:#b3c3cb;--bz-gold:#e6bb7c;--bz-gold-hi:#f1d4a0;--bz-line:#6a828b;--bz-danger:#f0a08c;--bz-ok:#9fd8b4;
  --bz-serif:Georgia,'Times New Roman',serif;--bz-sans:'Avenir Next',Avenir,Inter,system-ui,-apple-system,'Segoe UI',sans-serif;
  --bz-safe-t:env(safe-area-inset-top,0px);--bz-safe-r:env(safe-area-inset-right,0px);--bz-safe-b:env(safe-area-inset-bottom,0px);--bz-safe-l:env(safe-area-inset-left,0px);
  font:15px/1.45 var(--bz-sans);color:var(--bz-ink);letter-spacing:normal;text-transform:none;-webkit-font-smoothing:antialiased}
*,*:before,*:after{box-sizing:border-box}
[hidden]{display:none!important}
button,input,textarea{font:inherit;color:inherit;letter-spacing:inherit}
button{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation}
svg{display:block;flex:none}

/* Launcher: a slim tab on the screen edge (or, as a fallback or when a page pins it, a circle in a corner). The script
   picks the spot with no control under it and sets data-kind, data-side, data-corner, --bz-f and data-tucked. */
.bzfb-safe{position:fixed;top:var(--bz-safe-t);right:var(--bz-safe-r);bottom:var(--bz-safe-b);left:var(--bz-safe-l);visibility:hidden;pointer-events:none}
.bzfb-launcher{position:fixed;display:grid;place-items:center;width:var(--bz-circle,40px);height:var(--bz-circle,40px);padding:0;margin:0;border-radius:50%;
  background:rgba(8,22,34,.82);color:var(--bz-gold);border:1px solid rgba(230,187,124,.55);
  box-shadow:0 6px 18px rgba(0,0,0,.38),inset 0 1px 0 rgba(255,255,255,.06);
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:.92;transition:background .18s,color .18s,opacity .18s}
.bzfb-launcher svg{width:20px;height:20px}
.bzfb-launcher:hover{opacity:1;background:var(--bz-gold);color:#10202a}
.bzfb-launcher:focus-visible{outline:2px solid var(--bz-gold);outline-offset:3px;opacity:1}
.bzfb-launcher[aria-expanded=true]{opacity:0;pointer-events:none}
:host([data-corner=bottom-right]) .bzfb-launcher{right:calc(14px + var(--bz-safe-r));bottom:calc(14px + var(--bz-safe-b))}
:host([data-corner=bottom-left]) .bzfb-launcher{left:calc(14px + var(--bz-safe-l));bottom:calc(14px + var(--bz-safe-b))}
:host([data-corner=top-right]) .bzfb-launcher{right:calc(10px + var(--bz-safe-r));top:calc(10px + var(--bz-safe-t))}
:host([data-corner=top-left]) .bzfb-launcher{left:calc(10px + var(--bz-safe-l));top:calc(10px + var(--bz-safe-t))}
/* A tab's centre sits at --bz-f of the safe height, kept 8px inside it (the script measures the same geometry). */
:host([data-kind=tab]) .bzfb-launcher{width:26px;height:44px;
  top:max(calc(var(--bz-safe-t) + 8px),min(calc(var(--bz-safe-t) + (100% - var(--bz-safe-t) - var(--bz-safe-b)) * var(--bz-f,.5) - 22px),calc(100% - var(--bz-safe-b) - 52px)))}
:host([data-kind=tab][data-side=right]) .bzfb-launcher{right:var(--bz-safe-r);border-radius:22px 0 0 22px;border-right:0;padding-left:3px}
:host([data-kind=tab][data-side=left]) .bzfb-launcher{left:var(--bz-safe-l);border-radius:0 22px 22px 0;border-left:0;padding-right:3px}
:host([data-kind=tab]) .bzfb-launcher svg{width:17px;height:17px}
/* Tucked: while a control scrolls past, the tab shrinks to a sliver in the page gutter instead of covering it. */
:host([data-tucked]) .bzfb-launcher{width:8px;padding:0;opacity:.8}
:host([data-tucked]) .bzfb-launcher svg{display:none}
@media (max-width:759px),(max-height:500px){:host{--bz-circle:36px}}

/* Panel: a modal dialog in the top layer, so no game overlay can sit above it. */
.bzfb-dialog{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:transparent;color:inherit;overflow:hidden}
.bzfb-dialog::backdrop{background:rgba(3,10,18,.52);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}
.bzfb-card{position:absolute;right:calc(16px + var(--bz-safe-r));bottom:calc(16px + var(--bz-safe-b));width:min(408px,calc(100vw - 32px));
  max-height:calc(100dvh - 32px - var(--bz-safe-t) - var(--bz-safe-b));display:flex;flex-direction:column;
  background:linear-gradient(180deg,#0f2130 0%,var(--bz-panel) 38%);border:1px solid rgba(106,130,139,.55);border-radius:14px;
  box-shadow:0 24px 70px rgba(0,0,0,.55),inset 0 1px 0 rgba(255,255,255,.05);animation:bzfb-in .2s ease-out}
:host([data-side=left]) .bzfb-card{right:auto;left:calc(16px + var(--bz-safe-l))}
:host([data-top]) .bzfb-card{bottom:auto;top:calc(16px + var(--bz-safe-t))}
.bzfb-dialog.is-dragging .bzfb-card{border-color:var(--bz-gold);box-shadow:0 0 0 3px rgba(230,187,124,.35),0 24px 70px rgba(0,0,0,.55)}
@keyframes bzfb-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes bzfb-up{from{transform:translateY(100%)}to{transform:none}}

.bzfb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 4px 20px}
.bzfb-kicker{margin:0 0 3px;font-size:10px;letter-spacing:2.4px;text-transform:uppercase;color:var(--bz-gold)}
.bzfb-title{margin:0;font:normal 26px/1.1 var(--bz-serif);color:#f3ecdf}
.bzfb-icon-btn{display:grid;place-items:center;width:36px;height:36px;margin:-4px -6px 0 0;padding:0;border-radius:50%;background:transparent;border:1px solid transparent;color:var(--bz-muted)}
.bzfb-icon-btn:hover{color:var(--bz-ink);border-color:rgba(106,130,139,.6)}
.bzfb-icon-btn svg{width:18px;height:18px}
.bzfb-body{flex:1 1 auto;min-height:0;overflow:auto;overscroll-behavior:contain;padding:6px 20px 12px;-webkit-overflow-scrolling:touch}
.bzfb-sub{margin:0 0 14px;color:var(--bz-muted);font-size:13.5px}
.bzfb-field{display:block;margin:0 0 14px}
.bzfb-label{display:flex;justify-content:space-between;gap:8px;margin:0 0 6px;font-size:12px;letter-spacing:.5px;color:#d8cfc0}
.bzfb-label em{font-style:normal;color:#8ea2ab}
.bzfb-input,.bzfb-textarea{display:block;width:100%;margin:0;padding:10px 12px;border-radius:8px;background:var(--bz-field);border:1px solid rgba(106,130,139,.7);color:var(--bz-ink);outline:none;font-size:16px;line-height:1.45}
.bzfb-textarea{min-height:118px;max-height:40vh;resize:vertical}
.bzfb-input::placeholder,.bzfb-textarea::placeholder{color:#7f939c}
.bzfb-input:focus,.bzfb-textarea:focus{border-color:var(--bz-gold);box-shadow:0 0 0 3px rgba(230,187,124,.18)}
.bzfb-count{display:block;margin-top:4px;text-align:right;font-size:11px;color:#8ea2ab;min-height:15px}
.bzfb-count.is-near{color:var(--bz-gold)}

.bzfb-photos{margin:0 0 12px}
.bzfb-thumbs{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px;padding:0;list-style:none}
.bzfb-thumbs:empty{display:none}
.bzfb-thumb{position:relative;width:64px;height:64px;border-radius:8px;overflow:hidden;background:#12232f;border:1px solid rgba(106,130,139,.55)}
.bzfb-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.bzfb-thumb.is-busy{display:grid;place-items:center}
.bzfb-spinner{width:20px;height:20px;border-radius:50%;border:2px solid rgba(230,187,124,.25);border-top-color:var(--bz-gold);animation:bzfb-spin .8s linear infinite}
@keyframes bzfb-spin{to{transform:rotate(360deg)}}
.bzfb-remove{position:absolute;top:3px;right:3px;display:grid;place-items:center;width:24px;height:24px;padding:0;border-radius:50%;border:0;background:rgba(6,14,20,.82);color:#fff}
.bzfb-remove svg{width:12px;height:12px}
.bzfb-remove:hover,.bzfb-remove:focus-visible{background:var(--bz-danger);color:#1a0d08;outline:none}
.bzfb-drop{border:1px dashed rgba(106,130,139,.8);border-radius:10px;padding:12px;display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.bzfb-dialog.is-dragging .bzfb-drop{border-color:var(--bz-gold);background:rgba(230,187,124,.08)}
.bzfb-file{position:absolute;width:1px;height:1px;opacity:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
.bzfb-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:38px;padding:0 13px;border-radius:8px;border:1px solid rgba(230,187,124,.7);background:transparent;color:var(--bz-gold);font-size:14px;line-height:1;cursor:pointer;user-select:none;-webkit-user-select:none}
.bzfb-btn svg{width:16px;height:16px}
.bzfb-btn:hover{background:rgba(230,187,124,.1)}
.bzfb-btn[aria-disabled=true],.bzfb-btn:disabled{opacity:.45;cursor:not-allowed;background:transparent}
.bzfb-file:focus-visible+.bzfb-btn,.bzfb-btn:focus-visible,.bzfb-send:focus-visible,.bzfb-icon-btn:focus-visible{outline:2px solid var(--bz-gold);outline-offset:2px}
.bzfb-hint{flex:1 1 150px;margin:0;font-size:12px;line-height:1.35;color:#8ea2ab}
.bzfb-photo-count{font-variant-numeric:tabular-nums}

.bzfb-details{margin:2px 0 0;font-size:12px;color:#8ea2ab}
.bzfb-details summary{cursor:pointer;width:max-content;max-width:100%;padding:4px 0;color:#a9bac2}
.bzfb-details p{margin:4px 0 0;line-height:1.5}

.bzfb-foot{flex:none;padding:12px 20px 16px;border-top:1px solid rgba(106,130,139,.3)}
.bzfb-status,.bzfb-error{margin:0 0 10px;font-size:13px;line-height:1.4;color:var(--bz-muted)}
.bzfb-status:empty,.bzfb-error:empty{display:none}
.bzfb-error{color:var(--bz-danger)}
.bzfb-title:focus{outline:none}
.bzfb-progress{height:4px;margin:0 0 10px;border-radius:2px;background:rgba(106,130,139,.35);overflow:hidden}
.bzfb-progress span{display:block;height:100%;width:0;background:var(--bz-gold);transition:width .15s linear}
.bzfb-send{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;min-height:48px;padding:0 16px;border:0;border-radius:8px;
  background:linear-gradient(180deg,var(--bz-gold-hi),#dcae68);color:#10202a;font-weight:600;font-size:16px;box-shadow:0 8px 20px rgba(0,0,0,.25),inset 0 1px 0 rgba(255,255,255,.4)}
.bzfb-send svg{width:18px;height:18px}
.bzfb-send:hover{filter:brightness(1.05)}
.bzfb-send:disabled{opacity:.6;cursor:progress}

.bzfb-done{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:26px 24px calc(24px + var(--bz-safe-b))}
.bzfb-done-mark{display:grid;place-items:center;width:58px;height:58px;margin:4px 0 8px;border-radius:50%;border:1px solid rgba(159,216,180,.6);color:var(--bz-ok);background:rgba(159,216,180,.08)}
.bzfb-done-mark svg{width:28px;height:28px}
.bzfb-done h2{margin:0;font:normal 30px/1.1 var(--bz-serif);color:#f3ecdf;outline:none}
.bzfb-done p{margin:0 0 14px;color:var(--bz-muted);font-size:14px}
.bzfb-done-actions{display:flex;gap:10px;width:100%}
.bzfb-done-actions>*{flex:1}
.bzfb-done .bzfb-send{min-height:44px}

@media (max-width:759px),(max-height:500px){
  .bzfb-card{left:0;right:0;bottom:var(--bz-kb,0px);width:100%;max-height:calc(var(--bz-vh,100dvh) - 12px - var(--bz-safe-t));border-radius:18px 18px 0 0;border-bottom:0;animation:bzfb-up .24s cubic-bezier(.2,.8,.2,1)}
  :host([data-side=left]) .bzfb-card{left:0}
  :host([data-top]) .bzfb-card{top:auto;bottom:var(--bz-kb,0px)}
  .bzfb-card:before{content:'';position:absolute;top:7px;left:50%;width:38px;height:4px;margin-left:-19px;border-radius:2px;background:rgba(106,130,139,.6)}
  .bzfb-head{padding-top:20px}
  .bzfb-foot{padding-bottom:calc(14px + var(--bz-safe-b))}
  .bzfb-textarea{min-height:104px}
}
@media (prefers-reduced-motion:reduce){
  .bzfb-card,.bzfb-launcher,.bzfb-progress span{animation:none!important;transition:none!important}
  .bzfb-spinner{animation-duration:2.4s}
}
@media (forced-colors:active){.bzfb-launcher,.bzfb-card,.bzfb-send,.bzfb-btn{border:1px solid CanvasText}}
