/* assets/duel/duel-queue.css: Find a duel, the open ranked queue (27 Oct 2026, round 7; tools/pick_looks/yard/duel_queue.js). The panel that
   says you are in the queue, the invite ("Your duel is ready", Enter, Leave Queue) in the look of the game's own pop-up dialogs, drawn in
   CSS (a dark panel, a thin bronze edge, gold Cinzel), and the queue duel's lines on the end screen. Both live inside the arena (#dl), so
   the fight's full screen (html.dl-lock) keeps them. */

/* ---- the panel: a slim strip at the arena's top, its middle ---- */
.dq-bar{position:absolute;z-index:30;left:50%;top:calc(env(safe-area-inset-top) + 10px);transform:translateX(-50%);display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:center;
  max-width:min(640px,calc(100% - 32px));box-sizing:border-box;padding:6px 6px 6px 12px;border-radius:8px;background:rgba(12,10,8,.9);
  box-shadow:0 0 0 1px #000,0 0 0 2px rgba(122,98,58,.75),0 8px 22px rgba(0,0,0,.5);font:400 13px/1.3 'Open Sans',sans-serif;color:#e9e3d6;pointer-events:auto}
.dq-bar button{font:600 13px/1 Cinzel,Georgia,serif;color:#e9e3d6;background:none;border:0;box-shadow:0 0 0 1px #3a3326;border-radius:4px;min-height:44px;padding:0 12px;cursor:pointer;white-space:nowrap}
.dq-bar button:hover{box-shadow:0 0 0 1px #8a7650}
.dq-bar button:focus-visible{outline:2px solid #ffd100;outline-offset:2px}
.dq-ic{flex:none;width:26px;height:26px;border-radius:50%;background:url(/assets/icons/ability_warrior_challange.jpg?i=2) center/cover;box-shadow:0 0 0 1px #000,0 0 0 2px #7a623a;animation:dq-spin 2.4s linear infinite}
.dq-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.dq-t b{font:700 13px/1.1 Cinzel,Georgia,serif;color:#ffd100;letter-spacing:.04em}
.dq-t small{font:600 12px/1.2 PkNum,'Open Sans',sans-serif;color:#cfc6b4;white-space:nowrap}
.dq-msg{flex:1 1 0;min-width:0;max-width:46ch;font:400 13px/1.35 'Open Sans',sans-serif;color:#e9e3d6}
.dq-x{flex:none;min-width:44px;padding:0!important;font-size:20px!important}
/* the arena strip's practice offer while you wait (away from the setup) */
.dq-off{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:center;color:#cfc6b4}
.dq-off small{flex-basis:100%;text-align:center;font-size:11px;color:#a59c8a}
.dq-nudge{animation:dq-nudge .45s ease-out}
@keyframes dq-spin{0%{box-shadow:0 0 0 1px #000,0 0 0 2px #7a623a}50%{box-shadow:0 0 0 1px #000,0 0 0 2px #ffd100,0 0 10px rgba(255,209,0,.45)}100%{box-shadow:0 0 0 1px #000,0 0 0 2px #7a623a}}
@keyframes dq-nudge{0%{transform:translateX(-50%) scale(1)}40%{transform:translateX(-50%) scale(1.06)}100%{transform:translateX(-50%) scale(1)}}
/* on the setup: Leave queue in the row of its own buttons, between Back and the step's button, the wait and the count under it */
.dl-ui .dx-go-row .dq-qleave,.dl-ui .dx-foot>.dq-qleave{min-height:44px;flex:none;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:0 12px;line-height:1}
.dq-qleave span{font:600 13px/1 Cinzel,Georgia,serif;color:#e9e3d6}
.dq-qleave small{font:600 11px/1 PkNum,'Open Sans',sans-serif;color:#ffd100;white-space:nowrap}
.dq-qleave.dq-nudge{animation:dq-nudge2 .45s ease-out}
@keyframes dq-nudge2{0%{transform:scale(1)}40%{transform:scale(1.05)}100%{transform:scale(1)}}
/* (27 Oct 2026, the first run: under the frames it sat on the dummy's nameplate) in a practice fight, its result or the VS: the bottom left
   corner, which the fight leaves empty on a computer (the bars start at its middle, Leave and the sound hold the right) */
.dq-bar.dq-infight{top:auto;bottom:12px;left:12px;transform:none;max-width:min(360px,calc(50% - 200px));padding:4px 4px 4px 10px;background:rgba(12,10,8,.82);justify-content:flex-start}
.dq-bar.dq-infight.dq-nudge{animation:dq-nudge2 .45s ease-out}
.dq-bar.dq-infight .dq-ic{width:20px;height:20px}
/* a phone: the full width of the screen, less its gutters, at the top */
@media (max-width:700px){
  .dq-bar{left:16px;right:16px;transform:none;max-width:none;justify-content:space-between}
  .dq-nudge{animation:none}
  .dq-bar.dq-infight{left:16px;right:16px;transform:none;max-width:none}
  .dq-t small{white-space:normal}
  .dl-ui .dx-go-row .dq-qleave{padding:0 8px}
}
/* a touch screen's fight keeps its stick in the bottom left: there the strip sits under the two frames and their auras, the top's middle */
@media (pointer:coarse){.dq-bar.dq-infight{top:calc(env(safe-area-inset-top) + 104px);bottom:auto}}
@media (prefers-reduced-motion:reduce){.dq-ic,.dq-nudge{animation:none}}

/* ---- the invite: the game's pop-up, in the middle, over whatever you are doing ---- */
.dq-pop{position:absolute;z-index:40;inset:0;display:grid;place-items:center;padding:16px;background:rgba(0,0,0,.35);pointer-events:auto;animation:dq-in .18s ease-out}
.dq-pop-in{width:min(380px,100%);box-sizing:border-box;padding:20px 22px 18px;text-align:center;border-radius:6px;
  background:linear-gradient(#17130e,#0c0a08);box-shadow:0 0 0 1px #000,0 0 0 3px #6f5a35,0 0 0 4px #000,0 16px 40px rgba(0,0,0,.7),inset 0 0 0 1px rgba(255,209,0,.08)}
.dq-pop h2{margin:0 0 8px;font:700 22px/1.2 Cinzel,Georgia,serif;letter-spacing:.04em;color:#ffd100;text-shadow:0 2px 8px #000}
.dq-pop-t{margin:0 0 10px;font:600 14px/1.3 PkNum,'Open Sans',sans-serif;color:#e9e3d6}
.dq-pop-bar{height:6px;margin:0 0 16px;border-radius:3px;background:#24201a;box-shadow:inset 0 0 0 1px #000;overflow:hidden}
.dq-pop-bar i{display:block;height:100%;background:linear-gradient(90deg,#c9a24a,#ffd100);transform-origin:0 50%;transition:transform .25s linear}
.dq-pop-acts{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.dq-pop-acts button{min-height:48px;min-width:132px;padding:0 18px;font:700 15px/1 Cinzel,Georgia,serif;color:#e9e3d6;background:rgba(14,12,10,.6);border:0;border-radius:4px;box-shadow:0 0 0 1px #3a3326;cursor:pointer}
.dq-pop-acts .dq-enter{color:#ffd100;box-shadow:0 0 0 2px #c9a24a;text-shadow:0 0 12px rgba(255,209,0,.35)}
.dq-pop-acts button:hover{box-shadow:0 0 0 2px #ffd100}
.dq-pop-acts button:focus-visible{outline:2px solid #ffd100;outline-offset:3px}
.dq-pop-note{margin:12px 0 0;font-size:12px;color:#a59c8a}
@keyframes dq-in{from{opacity:0}to{opacity:1}}
@media (prefers-reduced-motion:reduce){.dq-pop{animation:none}.dq-pop-bar i{transition:none}}

/* ---- the end screen of a queue duel: the other player's new rating under yours ---- */
.dq-end-foe{margin:6px 0 0;font-size:13px;color:#cfc6b4}
.dq-end-foe .up{color:#7ee787}.dq-end-foe .down{color:#ff9b8f}
.dq-end .dl-end-main small{display:block}
/* (27 Oct 2026, round 7 review) the invite names the fighter you queued as */
.dq-pop-as{margin:-2px 0 8px;font:600 13px/1.35 'Open Sans',sans-serif;color:#c9c0ae}
.dq-pop-as b{font-weight:700}
/* (27 Oct 2026, round 7 fix: a duel left in the count-in kept its '3' behind the result, the count's loop stops only at the go) once the
   result is up the count-in never shows (duel_hud.js count; here because a queue or friend duel is where a count-in is cut short) */
.dl-fight.dl-over .dl-count{opacity:0;animation:none}
/* (30 Oct 2026, Chris: "just have that option pop up above the queue so they can go mess around while they wait", then "a different
   color - maybe like a orange - halloween orange ... include the training dummy icon") the practice offers while queued (duel_queue.js
   placeWait): two matching buttons in Halloween orange, side activities apart from the ranked purple; beside the fighter (.dq-flank, the
   bot left, the dummy right) where they fit, else stacked in the bottom right (.dq-flank.dq-stack), else one compact row just above the
   queue's buttons (.dq-wait); placed once per screen and size, and their only motion is one fade in (30 Oct 2026, Chris: "just make them
   appear & stay in one place") */
.dq-flank{position:absolute;inset:0;pointer-events:none;z-index:6}
.dq-flank .dq-w{position:absolute;left:-999px;top:0;visibility:hidden}
.dq-flank.on .dq-w{visibility:visible;animation:dq-in .2s ease-out}
.dl-ui .dq-w,.dq-flank .dq-w{pointer-events:auto;display:inline-flex;align-items:center;gap:9px;min-height:48px;padding:5px 14px 5px 5px;border:0;border-radius:4px;cursor:pointer;text-align:left;white-space:nowrap;
  background:linear-gradient(#2a1406,#160a03);box-shadow:inset 0 0 0 1px rgba(255,117,24,.85),inset 0 0 0 2px rgba(0,0,0,.6),0 0 14px rgba(255,117,24,.28),0 2px 6px rgba(0,0,0,.6);color:#ffd2a8}
.dq-w:hover,.dq-w:focus-visible{background:linear-gradient(#3d1d08,#221004);box-shadow:inset 0 0 0 1px #ff9a4a,inset 0 0 0 2px rgba(0,0,0,.6),0 0 20px rgba(255,117,24,.5),0 2px 6px rgba(0,0,0,.6);outline:none}
.dq-w i{position:relative;flex:none;width:36px;height:36px;border-radius:3px;overflow:hidden;box-shadow:0 0 0 1px rgba(255,140,60,.7);background:#120904}
.dq-w i img{display:block;width:100%;height:100%}
.dq-w .dq-w-dumi::before{content:"";position:absolute;inset:0;background:url(/assets/pick/look/dummy_xs.webp) 50% 16%/175% auto no-repeat}
.dq-w span{display:flex;flex-direction:column;gap:3px;line-height:1}
.dq-w b{font:700 13px/1 Cinzel,Georgia,serif;color:#ff8a2e;letter-spacing:.02em;text-shadow:0 1px 2px #000}
.dq-w small{font:600 11px/1 'Open Sans',sans-serif;color:#e8c8a6}
.dq-wait{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:6px 10px;margin:0 0 6px;min-width:0;animation:dq-in .2s ease-out}
.dx-chars .dx-foot>.dq-wait{grid-column:1 / -1;justify-self:center;order:-1;margin:0}
.dx-create .dx-foot>.dq-wait,.dx-fight .dx-foot>.dq-wait{justify-content:flex-end}
.dq-wait .dq-w{min-height:40px;padding:3px 10px 3px 3px;gap:7px}
.dq-wait .dq-w i{width:30px;height:30px}
@media (max-width:600px){.dx-create .dx-foot>.dq-wait,.dx-fight .dx-foot>.dq-wait{justify-content:center}.dq-wait .dq-w{min-height:38px}.dq-wait .dq-w b{font-size:12px}.dq-wait .dq-w small{font-size:10px}.dq-wait .dq-w i{width:28px;height:28px}}
