.frame-live.q-raids-live,.frame-live.q-eject-live{align-items:stretch;overflow:visible;pointer-events:auto}
.q-raids-panel{height:100%;overflow:auto;background:#e3d9c6;color:#071714;font:400 max(12px,1.05cqw)/1.15 var(--t-font-body);padding:.15em;display:flex;flex-direction:column;gap:.22em;scrollbar-width:thin;overscroll-behavior:contain}
.q-raids-empty,.q-raids-row{display:flex;align-items:center;justify-content:space-between;gap:.5em;padding:.25em .4em;background:#071714;color:#e8e8c8;flex-shrink:0;min-width:0}
.q-raids-row>div,.q-raids-empty>p{min-width:0;flex:1;overflow-wrap:anywhere}
/* With no raid running the empty row is the JOIN link alone, on the right where the rows below keep theirs. */
.q-raids-empty{justify-content:flex-end}
.q-raids-panel .q-raids-label{line-height:1.12}
.q-raids-panel .q-raids-meta{font-size:max(12px,.85em);color:#69e899;margin-top:.15em}
.q-raids-panel .q-raids-link{display:flex;align-items:center;justify-content:center;min-width:max(44px,3.7em);min-height:max(44px,2.2em);padding:.2em .35em;background:#ff7a26;color:#071714;border:2px solid #071714;box-shadow:1px 1px 0 #a83e05;text-decoration:none;font-family:var(--t-font-display);font-weight:700;flex-shrink:0;pointer-events:auto}
.q-raids-panel .q-raids-link:focus-visible{outline:3px solid #fff;outline-offset:1px}
.q-raids-panel .q-raids-link:hover{background:#ffb153}
.q-eject-note{height:100%;background:#071714;color:#e8e8c8;padding:.28em .45em;display:flex;flex-direction:column;justify-content:space-between;gap:.18em;font:400 max(12px,1.05cqw)/1.15 var(--t-font-body);overflow:hidden}
.q-eject-list{display:flex;flex-direction:column;gap:.16em;flex:1;justify-content:center;min-height:0}
.q-eject-row{display:grid;grid-template-columns:2.8em 1fr auto;align-items:center;gap:.4em;padding:.14em .35em;background:#0f2621;border:1px solid rgba(105,232,153,.28);color:#f2e8cf;font-family:var(--t-font-display);font-weight:700;line-height:1.1}
.q-eject-rank{color:#ffb153;letter-spacing:.03em}
.q-eject-handle{color:#e8e8c8;font-family:var(--t-font-body);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.q-eject-mult{color:#69e899;letter-spacing:.02em;font-variant-numeric:tabular-nums}
.q-eject-subnote{font-size:max(12px,.78em);color:#b8c7be;text-align:center;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
@media(max-width:767px){.q-raids-panel{font-size:max(12px,2.35cqw);gap:.15em;padding:0}.q-raids-empty,.q-raids-row{padding:.2em .4em}.q-eject-note{font-size:max(12px,2.35cqw);padding:.22em .35em;gap:.12em}.q-eject-row{padding:.12em .28em;grid-template-columns:2.6em 1fr auto}}
/* with a mouse the wheel goes on to the page at the board's end; touch keeps the board's scroll to itself */
@media(pointer:fine){.q-raids-panel{overscroll-behavior:auto}}
/* HALL OF SHAME (audit COMM-06 and PB-11, 22 Oct 2026): the build's empty output gives its width back, so the sentence or
   the latest paper hands record (hall-of-shame.js) wraps across the whole slot; on a phone the block sits on the slot's
   foot and grows up into the screen, so at 320 px it stays inside the panel. */
.q-live output[data-quit-sample-shame]:empty{display:none}
.q-live[data-region^="what-you-get.shame"] .q-shame-empty{overflow-wrap:break-word}
[data-device="phone"] .frame-surface .q-live[data-region="what-you-get.shame_result"]{align-items:flex-end}
.frame-surface .q-live .q-shame-record{display:flex;flex-direction:column;gap:.12em;width:100%;line-height:1.08;letter-spacing:.02em}
.q-shame-record__wallet{color:#ff6a55;font-weight:700}
.q-shame-record__foot{display:flex;flex-wrap:wrap;column-gap:.6em;color:#69e899;font-variant-numeric:tabular-nums}
[data-device="phone"] .frame-surface .q-live[data-region="what-you-get.shame_result"] .q-shame-record{font-size:max(12px,3.3cqw)}
/* TODAY'S RAIDS on a phone (audit PB-13, raids-fit.js): the rows take their own height instead of scrolling inside the
   drawn board, and the floor grows below the board by what they need (--q-raids-grow), so every key shows. */
.frame-surface[data-frame^="phone-"]:has([data-quit-raids-panel]){box-sizing:content-box;padding-bottom:var(--q-raids-grow,0px)}
.frame-surface[data-frame^="phone-"] .q-raids-panel{height:auto;min-height:100%;align-self:flex-start;overflow:visible;box-shadow:0 .3em 0 #071714}
/* BEST EJECT THIS WEEK has no rows until the weekly cups read real results. While it carries only its dated note the
   desktop board is hidden with the note (owner order, 23 Oct 2026: an empty board read as FUD; hide, never fake); the
   cups' date stays in the feature line under the panels. The phone keeps its board and dated note: its frame art paints
   the board's screen under the panel, so hiding it there would leave an empty screen. */
.frame-surface[data-frame^="desktop-"]:has([data-quit-eject-note]) :is(.frame-layer[data-layer="eject-board"],.frame-live.q-eject-live){display:none}
