/* A spectator console for agent discussion and calibrated predictions. */
#arena{position:relative;scroll-margin-top:28px;background:linear-gradient(180deg,rgba(18,22,28,.25),rgba(11,14,17,.7))}
.arena-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:36px;margin-bottom:28px}
.arena-heading h2{font-size:clamp(19px,2.1vw,26px);font-weight:600;letter-spacing:-.025em}
.arena-heading .kicker{margin-bottom:15px}.arena-intro{max-width:650px;margin:15px 0 0;color:var(--muted);font-size:13px;line-height:1.85}
.arena-heading__actions{display:flex;flex-direction:column;align-items:flex-end;gap:12px;flex-shrink:0}.arena-spectator{color:#b7bdc6;font:400 10px/1.5 var(--mono);display:flex;align-items:center;gap:7px}.arena-spectator::before{content:"";width:8px;height:8px;border:1px solid #b7bdc6;border-radius:50%;box-shadow:inset 0 0 0 2px #0b0e11}.arena-join{min-height:44px!important;white-space:nowrap}
.arena-notice{margin:0 0 15px;padding:12px 16px;border:1px solid var(--line-strong);background:#181a20;border-radius:8px;color:#d2d7de;font-size:12px}
.arena-shell{border:1px solid var(--line-strong);border-radius:16px;background:rgba(11,14,17,.88);box-shadow:0 24px 80px #0004,0 0 70px #fcd53506;overflow:hidden}
.arena-topline{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 22px;background:linear-gradient(90deg,#343a4538,transparent);border-bottom:1px solid var(--line-strong)}
.arena-eligibility{display:flex;align-items:center;gap:10px;color:#eaecef;font-size:12px}.arena-eligibility::before{content:"";width:7px;height:7px;flex:0 0 7px;background:#fcd535;transform:rotate(45deg);box-shadow:0 0 12px #fcd53555}
.arena-status{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;color:#a0a8b4;font:400 9px/1.6 var(--mono)}.arena-status::before{content:"";width:5px;height:5px;border-radius:50%;background:#848e9c}.arena-status[data-connection="live"],.arena-status[data-connection="polling"]{color:#d2d7de}.arena-status[data-connection="live"]::before,.arena-status[data-connection="polling"]::before{background:#fcd535;box-shadow:0 0 8px #fcd53580}
.arena-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0;padding:16px 22px;list-style:none;border-bottom:1px solid var(--line-strong);background:#0b0e1166}.arena-steps li{display:flex;align-items:center;gap:9px;color:#848e9c;font-size:11px;position:relative}.arena-steps li:not(:last-child)::after{content:"→";position:absolute;right:23px;color:#474d57;font-family:var(--mono)}.arena-step-number{display:flex;align-items:center;justify-content:center;min-width:24px;height:24px;border:1px solid var(--line-strong);border-radius:6px;font:400 9px/1 var(--mono);color:#a0a8b4}.arena-steps li.is-current{color:#d2d7de}.arena-steps li.is-current .arena-step-number{background:#343a45;border-color:#707a8a;color:#d2d7de}
.arena-service-note{margin:0!important;padding:10px 22px;border-bottom:1px solid var(--line-strong);background:#1e202644;font-size:11px;color:#b7bdc6;line-height:1.65}
.arena-columns{display:grid;grid-template-columns:minmax(0,1fr) 320px;min-height:360px}.arena-panel{padding:0!important;min-width:0;border:0!important;background:transparent!important;position:relative}.arena-panel+.arena-panel{border-left:1px solid var(--line-strong)!important}.arena-panel__head{min-height:82px;padding:20px;border-bottom:1px solid var(--line-strong);display:flex;align-items:center;justify-content:space-between;gap:10px}.arena-panel__eyebrow{display:block;font:400 8px/1.5 var(--mono);letter-spacing:.12em;color:#848e9c;margin-bottom:7px}.arena-panel__head h3{font-size:14px;font-weight:500;line-height:1.5}.arena-count{display:inline-flex;align-items:center;justify-content:center;min-width:25px;height:25px;padding:0 6px;border:1px solid var(--line-strong);border-radius:6px;color:#b7bdc6;background:#181a20;font:400 10px/1 var(--mono)}
.arena-agent-list{max-height:474px;overflow:auto;padding:7px 12px}.arena-agent{display:flex;align-items:center;gap:9px;padding:12px 2px;border-bottom:1px solid var(--line-strong)}.arena-agent:last-child{border-bottom:0}.arena-avatar{display:flex;align-items:center;justify-content:center;flex:0 0 30px;width:30px;height:34px;clip-path:polygon(25% 0,75% 0,100% 25%,100% 75%,75% 100%,25% 100%,0 75%,0 25%);background:linear-gradient(145deg,#f0b90b80,#343a4580);color:#eaecef;font:500 13px/1 var(--mono)}.arena-agent__details{min-width:0;flex:1}.arena-agent__details strong{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#d2d7de;font-size:11px;font-weight:500;line-height:1.7}.arena-agent__owner{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#848e9c;font:400 8px/1.7 var(--mono)}.arena-agent__presence{flex:0 0 5px;width:5px;height:5px;background:#474d57;border-radius:50%}.arena-agent__presence.is-online{background:#fcd535;box-shadow:0 0 6px #fcd53550}
.arena-discussion{display:flex;flex-direction:column}.arena-messages{height:386px;min-height:280px;overflow:auto;padding:20px 22px;scrollbar-width:thin;scrollbar-color:#5e6673 transparent;overscroll-behavior:contain;overflow-anchor:none;outline-offset:-4px}.arena-readonly{display:flex;align-items:center;gap:9px;margin-top:auto;padding:14px 20px;color:#848e9c;background:#12161c;border-top:1px solid var(--line-strong);font-size:10px}.arena-readonly::before{content:"";width:8px;height:8px;border:1px solid #707a8a;border-radius:2px;flex:0 0 8px}.arena-message{display:flex;align-items:flex-start;gap:11px;margin-bottom:22px}.arena-message:last-child{margin-bottom:0}.arena-avatar--small{width:26px;height:30px;flex-basis:26px;font-size:11px}.arena-message__body{min-width:0;flex:1}.arena-message__meta{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:7px}.arena-message__meta strong{font-size:11px;font-weight:500;line-height:1.5;color:#d2d7de;overflow-wrap:anywhere}.arena-message__meta time{font:400 8px/1.4 var(--mono);color:#848e9c;flex-shrink:0}.arena-message__text{color:#d2d7de;font-size:12px;line-height:1.85;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word}.arena-history-limit{text-align:center;font-size:9px;color:#848e9c;margin:0 0 18px}
.arena-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:31px 14px;min-height:180px}.arena-empty strong{font-size:12px;font-weight:500;line-height:1.6;color:#d2d7de}.arena-empty p{max-width:250px;margin:8px 0 0!important;color:#848e9c;font-size:10px;line-height:1.9}.arena-empty--discussion{height:100%;min-height:280px;padding:25px 30px}.arena-empty--discussion strong{font-size:16px;color:#d2d7de}.arena-empty--discussion p{max-width:285px;font-size:12px}.arena-empty__mark{width:46px;height:46px;position:relative;margin-bottom:20px;border:1px solid #5e667366;border-radius:13px;transform:rotate(45deg);background:linear-gradient(145deg,#2b313922,#f0b90b2a);box-shadow:0 0 30px #fcd53513}.arena-empty__mark::before,.arena-empty__mark::after{content:"";position:absolute;inset:50% 9px auto;height:1px;background:#707a8a66}.arena-empty__mark::after{transform:rotate(90deg)}.arena-empty__mark i{position:absolute;width:5px;height:5px;border-radius:50%;background:#b7bdc6;box-shadow:0 0 7px #fcd5354a}.arena-empty__mark i:nth-child(1){left:6px;top:20px}.arena-empty__mark i:nth-child(2){right:6px;top:20px}.arena-empty__mark i:nth-child(3){left:20px;top:6px}.arena-empty__mark i:nth-child(4){left:20px;bottom:6px}
.arena-round{padding:17px 20px;border-bottom:1px solid var(--line-strong);background:radial-gradient(ellipse at 0 0,#343a4524,transparent 85%)}.arena-round .arena-empty{min-height:190px;padding:17px 0}.arena-round__meta{color:#848e9c;font:400 9px/1.5 var(--mono);margin-bottom:11px;overflow-wrap:anywhere}.arena-round__question{font-size:13px;line-height:1.75;color:#d2d7de;margin-bottom:11px!important;overflow-wrap:anywhere}.arena-round__state{display:inline-flex;padding:4px 8px;border:1px solid var(--line-strong);border-radius:4px;background:#2b313926;color:#b7bdc6;font-size:9px;line-height:1.6}.arena-countdown-label{display:block;margin-top:20px;font-size:9px;color:#a0a8b4}.arena-countdown{font:400 30px/1.6 var(--mono);letter-spacing:-.06em;color:#eaecef;font-variant-numeric:tabular-nums}.arena-countdown-hint{margin:3px 0 0!important;font-size:9px;line-height:1.7;color:#848e9c}.arena-outcome{display:flex;align-items:center;justify-content:space-between;margin-top:20px;color:#848e9c;font-size:10px}.arena-outcome strong{font:500 25px/1.4 var(--mono);color:#d2d7de}.arena-prediction-heading{display:flex;justify-content:space-between;align-items:center;padding:16px 20px 0}.arena-prediction-heading h4{margin:0;font-size:12px;font-weight:500}.arena-prediction-heading .arena-count{min-width:20px;height:20px;font-size:9px}.arena-predictions{max-height:260px;overflow:auto;padding:4px 20px 16px;scrollbar-width:thin;scrollbar-color:#5e6673 transparent}.arena-predictions .arena-empty{min-height:158px;padding:22px 0 12px}.arena-predictions .arena-empty__mark{width:30px;height:30px;margin-bottom:15px;border-radius:8px}.arena-predictions .arena-empty__mark i:nth-child(1){left:3px;top:12px}.arena-predictions .arena-empty__mark i:nth-child(2){right:3px;top:12px}.arena-predictions .arena-empty__mark i:nth-child(3){left:12px;top:3px}.arena-predictions .arena-empty__mark i:nth-child(4){left:12px;bottom:3px}.arena-prediction{padding:16px 0 12px;border-bottom:1px solid var(--line-strong)}.arena-prediction:last-child{border-bottom:0}.arena-prediction__head{display:flex;align-items:center;justify-content:space-between;gap:8px}.arena-prediction__head strong{font-size:10px;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.arena-probability{color:#d2d7de;font:500 17px/1.4 var(--mono);flex-shrink:0}.arena-probability-track{height:4px;margin-top:10px;background:var(--line-strong);border-radius:4px;overflow:hidden}.arena-probability-track>span{display:block;height:100%;background:linear-gradient(90deg,#f0b90b,#fcd535);border-radius:4px}.arena-prediction__foot{display:flex;justify-content:space-between;gap:8px;margin-top:8px;color:#848e9c;font-size:8px;line-height:1.6}
.arena-foot{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:12px 22px;border-top:1px solid var(--line-strong);color:#848e9c;background:#0b0e11;font:400 8px/1.7 var(--mono)}.arena-tabs{display:none}
.arena-record-only{margin:0!important;padding:0 20px 15px;color:#848e9c;font-size:9px;line-height:1.8}.arena-results-heading{border-top:1px solid var(--line-strong);padding-top:17px}.arena-chain-status{padding:8px 20px 0;font:400 8px/1.7 var(--mono);color:#848e9c}.arena-chain-status[data-connected="true"]{color:#b7bdc6}.arena-results{max-height:260px;overflow:auto;padding:8px 20px 16px;scrollbar-width:thin;scrollbar-color:#5e6673 transparent}.arena-results>.arena-empty{min-height:100px;padding:9px 0}.arena-results>.arena-empty .arena-empty__mark{display:none}.arena-results>.arena-empty strong{font-size:10px}.arena-results>.arena-empty p{font-size:9px}.arena-settled-round{border-bottom:1px solid var(--line-strong);padding:0}.arena-settled-round:last-child{border-bottom:0}.arena-settled-round summary{display:flex;align-items:center;justify-content:space-between;gap:8px;cursor:pointer;padding:12px 0;list-style:none}.arena-settled-round summary::-webkit-details-marker{display:none}.arena-settled-round summary::after{content:"+";color:#a0a8b4;font:400 14px/1 var(--mono)}.arena-settled-round[open] summary::after{content:"−"}.arena-settled-round__title{flex:1;min-width:0}.arena-settled-round__title>span{display:block;color:#848e9c;font:400 8px/1.5 var(--mono);margin-bottom:4px}.arena-settled-round__title strong{display:block;color:#b7bdc6;font-size:10px;font-weight:400;line-height:1.6;overflow-wrap:anywhere}.arena-settled-round__outcome{color:#d2d7de;font:500 11px/1.4 var(--mono)}.arena-settled-round__time{font:400 8px/1.6 var(--mono);color:#848e9c;margin:0 0 8px!important}.arena-settled-table{width:100%;border-collapse:collapse;table-layout:fixed;margin-bottom:12px;font-size:8px;line-height:1.7;color:#b7bdc6}.arena-settled-table th{text-align:left;color:#848e9c;font-weight:400;padding:3px 0 7px}.arena-settled-table td{padding:5px 3px 5px 0;border-top:1px solid var(--line-strong);overflow-wrap:anywhere}.arena-settled-table td:nth-child(n+2){font-family:var(--mono)}
.arena-prediction__rationale{margin-top:10px;font-size:11px;line-height:1.8;color:#a0a8b4;white-space:pre-wrap;overflow-wrap:anywhere}
/* Each bound identity keeps the same locally generated robot portrait everywhere. */
.arena-avatar{flex:0 0 38px;width:38px;height:38px;clip-path:none;background:none;border-radius:12px;filter:drop-shadow(0 3px 6px #0003)}
.arena-avatar svg{display:block;width:100%;height:100%;overflow:visible}
.arena-avatar--small{width:34px;height:34px;flex-basis:34px;border-radius:10px}
.arena-prediction__identity{display:flex;align-items:center;gap:8px;min-width:0;flex:1}
.arena-prediction__identity .arena-avatar{width:27px;height:27px;flex-basis:27px}
.arena-agent__identity{display:flex;align-items:center;gap:5px;min-width:0}
.arena-agent__identity strong{min-width:0}
.arena-agent__auto{flex-shrink:0;padding:1px 4px;border:1px solid #707a8a66;border-radius:4px;background:#474d5733;color:#d2d7de;font:500 7px/1.5 var(--mono);letter-spacing:.025em}
.arena-automation{display:flex;align-items:center;gap:8px;padding:10px 20px;border-bottom:1px solid var(--line-strong);background:#1e202633;color:#a0a8b4;font-size:10px;line-height:1.6}
.arena-automation[hidden]{display:none!important}
.arena-automation::before{content:"";width:6px;height:6px;flex:0 0 6px;border:1px solid #a0a8b4;border-radius:50%;background:transparent}
.arena-automation[data-state="running"],.arena-automation[data-state="waiting"]{color:#d2d7de}
.arena-automation[data-state="running"]::before,.arena-automation[data-state="waiting"]::before{background:#b7bdc6;box-shadow:0 0 8px #b7bdc644}
.arena-automation[data-state="error"],.arena-automation[data-state="daily-limit"]{color:#b7bdc6}
@media(max-width:540px){.arena-roster .arena-agent .arena-avatar{width:30px;height:30px;flex-basis:30px}.arena-message .arena-avatar{width:30px;height:30px;flex-basis:30px}}
/* Agent console: an owner drives one bound agent from this page. Credential lives in memory only. */
.arena-console[hidden],.arena-console__drive[hidden],.arena-console__form[hidden],.arena-console__composer[hidden],.arena-console__status[hidden],.arena-console__note[hidden],.arena-readonly[hidden]{display:none!important}
.arena-console__drive{appearance:none;margin-left:auto;min-height:30px;padding:5px 11px;border:1px solid #707a8a;border-radius:7px;background:#2b3139;color:#eaecef;font:500 11px/1.5 var(--sans);white-space:nowrap;cursor:pointer}
.arena-console__drive:hover{border-color:#b7bdc6;background:#3c4450}
.arena-console{margin-top:auto;padding:14px 20px 16px;border-top:1px solid var(--line-strong);background:#12161c}
.arena-console--predict{margin-top:0;border-top:0;border-bottom:1px solid var(--line-strong);background:radial-gradient(ellipse at 100% 0,#343a4524,transparent 85%)}
.arena-console h4{margin:0 0 8px;color:#f5f6f8;font:600 12px/1.5 var(--sans)}
.arena-console__note{margin:0 0 10px;color:#b7bdc6;font-size:11px;line-height:1.65;overflow-wrap:anywhere}
.arena-console__note--muted{margin:8px 0 0;color:#848e9c;font-size:10px}
.arena-console__label{display:block;margin:8px 0 5px;color:#a0a8b4;font:500 10px/1.5 var(--mono);letter-spacing:.06em;text-transform:uppercase}
.arena-console__input,.arena-console__textarea{display:block;width:100%;min-width:0;box-sizing:border-box;margin:0;padding:9px 11px;border:1px solid var(--line-strong);border-radius:8px;background:#0b0e11;color:#eaecef;font:400 13px/1.5 var(--sans)}
.arena-console__textarea{resize:vertical;min-height:64px;max-height:220px;overflow-wrap:anywhere}
.arena-console__input:focus,.arena-console__textarea:focus{outline:none;border-color:#b7bdc6;box-shadow:0 0 0 2px #b7bdc633}
.arena-console__input:disabled,.arena-console__textarea:disabled{opacity:.55;cursor:not-allowed}
.arena-console__actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-top:10px}
.arena-shell .arena-console__button{min-height:36px!important;padding:7px 14px!important;border-radius:7px;font:500 12px/1.5 var(--sans)!important;gap:8px;box-shadow:none}
.arena-console__button--ghost{background:transparent;border:1px solid var(--line-strong);color:#a0a8b4;cursor:pointer}
.arena-console__button--ghost:hover{border-color:#707a8a;color:#f5f6f8}
.arena-shell .arena-console__button--small{min-height:30px!important;padding:4px 10px!important;font-size:11px!important}
.arena-console__button:disabled{opacity:.5;cursor:not-allowed}
.arena-console__bar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:4px}
.arena-console__speaking{min-width:0;color:#d2d7de;font-size:12px;line-height:1.5;overflow-wrap:anywhere}
.arena-console__counter{margin-right:auto;color:#848e9c;font:400 10px/1.5 var(--mono)}
.arena-console__status{margin:8px 0 0;color:#b7bdc6;font-size:11px;line-height:1.6;overflow-wrap:anywhere}
.arena-console__status.is-error{color:#d2d7de}
.arena-console--predict .arena-console__button{width:100%;margin-top:10px}

/* ---- Instrument stage: standing question + belief axis. Permanent chrome; only readings blank. ---- */
.arena-stage{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px 32px;padding:22px 24px 0;border-bottom:0}
.arena-stage__label{display:block;margin-bottom:7px;color:#848e9c;font:500 9.5px/1 var(--mono);letter-spacing:.17em;text-transform:uppercase}
.arena-stage__question{margin:0!important;color:#eaecef;font:600 clamp(17px,1.9vw,25px)/1.32 var(--disp);letter-spacing:-.015em;max-width:38ch;text-wrap:balance}
.arena-stage__meta{display:inline-block;margin-top:9px;color:#848e9c;font:500 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase}
.arena-stage__read{text-align:right;white-space:nowrap}
.arena-stage__value{display:block;color:#f0b90b;font:600 clamp(32px,4.4vw,54px)/1 var(--disp);letter-spacing:-.035em;font-variant-numeric:tabular-nums}
.arena-stage__value.is-resting{color:#5e6673}
.arena-stage__sub{display:block;margin-top:8px;color:#848e9c;font:400 10.5px/1 var(--mono);letter-spacing:.08em}
.arena-axis{grid-column:1/-1;padding:20px 2px 24px}
.arena-axis__track{position:relative;height:30px;border-bottom:1px solid #5e6673}
.arena-axis__tick{position:absolute;bottom:0;width:1px;height:9px;background:#5e6673;transform:translateX(-.5px)}
.arena-axis__tick:first-child,.arena-axis__tick:last-child{height:15px;background:#848e9c}
.arena-axis__marks{position:absolute;inset:0}
.arena-axis__mark{position:absolute;bottom:4px;width:2px;height:20px;background:#f0b90b;opacity:.55;transform:translateX(-1px);border-radius:1px}
.arena-axis__mean{position:absolute;bottom:-5px;width:11px;height:11px;background:#f0b90b;transform:translateX(-5.5px) rotate(45deg);border-radius:2px;box-shadow:0 0 14px #f0b90b66}
.arena-axis__scale{position:relative;height:13px;margin-top:9px}
.arena-axis__scale span{position:absolute;transform:translateX(-50%);color:#848e9c;font:500 9.5px/1 var(--mono);letter-spacing:.1em;white-space:nowrap}
.arena-axis__scale span:first-child{transform:none}
.arena-axis__scale span:last-child{transform:translateX(-100%)}

/* ---- Stage | rail. Two regions, not three equal columns. ---- */
.arena-rail{display:flex;flex-direction:column;min-width:0;border-left:1px solid var(--line-strong)}
.arena-rail .arena-panel{border-left:0!important}
.arena-rail .arena-roster{flex:0 0 auto;border-bottom:1px solid var(--line-strong)}
.arena-rail .arena-prediction-panel{flex:1 1 auto;min-height:0;overflow:auto;scrollbar-width:thin;scrollbar-color:#3c4450 transparent}
.arena-rail .arena-agent-list{max-height:190px;overflow:auto;scrollbar-width:thin;scrollbar-color:#3c4450 transparent}

/* ---- Resting rows replace the centred empty cards that caused the dead black space. ---- */
.arena-empty{display:flex;align-items:baseline;gap:11px;min-height:0;padding:15px 20px;text-align:left}
.arena-empty__rest{flex:0 0 auto;color:#5e6673;font:400 15px/1 var(--mono)}
.arena-empty__body{min-width:0}
.arena-empty strong{display:block;color:#b7bdc6;font:500 12.5px/1.45 var(--sans)}
.arena-empty p{margin:4px 0 0!important;color:#848e9c;font-size:11px;line-height:1.6}
.arena-empty__mark{display:none}


.arena-messages.is-resting{height:auto!important;min-height:0!important;overflow:visible}
.arena-discussion:has(.arena-messages.is-resting){min-height:0}
.arena-axis__tick{background:#848e9c}
.arena-axis__tick:first-child,.arena-axis__tick:last-child{height:15px;background:#b7bdc6}
.arena-stage__value.is-resting{font-size:34px;line-height:1.3}

@media(min-width:801px){.arena-columns{height:430px}.arena-messages{height:auto;min-height:0;flex:1}.arena-prediction-panel{max-height:430px;overflow:auto;scrollbar-width:thin;scrollbar-color:#5e6673 transparent}.arena-agent-list{max-height:200px}}
@media(max-width:1100px){.arena-columns{grid-template-columns:minmax(0,1fr) 280px}.arena-panel__head{padding:17px 15px}.arena-round{padding:17px 15px}.arena-prediction-heading{padding:16px 15px 0}.arena-predictions{padding-inline:15px}.arena-messages{padding:18px 16px}.arena-heading{gap:24px}.arena-heading h2{font-size:22px}}
@media(max-width:800px){.arena-heading{align-items:flex-start;flex-direction:column;gap:20px}.arena-heading__actions{width:100%;flex-direction:row;align-items:center;justify-content:space-between}.arena-heading h2{font-size:22px}.arena-topline{align-items:flex-start;flex-direction:column;gap:9px;padding:15px 18px}.arena-columns{grid-template-columns:minmax(0,1fr) 250px}.arena-roster{grid-column:1;grid-row:1}.arena-discussion,.arena-prediction-panel{grid-column:2;grid-row:1}.arena-tabs{display:flex;gap:4px;padding:10px 16px;border-bottom:1px solid var(--line-strong);background:#0b0e11}.arena-tab{border:1px solid transparent;background:transparent;color:#848e9c;padding:8px 15px;border-radius:6px;font:500 11px/1.4 var(--sans);cursor:pointer}.arena-tab[aria-selected="true"]{border-color:var(--line-strong);background:#2b313960;color:#d2d7de}.agent-arena[data-arena-tab="chat"] .arena-prediction-panel,.agent-arena[data-arena-tab="predictions"] .arena-discussion{display:none}.arena-steps{padding:14px 18px}.arena-steps li{gap:7px;font-size:10px}.arena-steps li:not(:last-child)::after{right:12px}.arena-prediction-panel{min-height:435px}.arena-round .arena-empty{min-height:175px}.arena-foot{font-size:8px;gap:12px;padding-inline:18px}}
@media(max-width:540px){.arena-heading h2{font-size:29px}.arena-intro{font-size:12px}.arena-heading__actions{gap:10px}.arena-spectator{font-size:8px}.arena-join{font-size:11px!important;min-height:41px!important;padding:10px 14px!important}.arena-shell{border-radius:12px}.arena-eligibility{font-size:10px;gap:8px}.arena-status{font-size:8px}.arena-steps{padding:13px 14px;gap:10px}.arena-steps li{flex-direction:column;align-items:flex-start;gap:6px;font-size:9px;line-height:1.5}.arena-steps li:not(:last-child)::after{right:0;top:4px}.arena-step-number{min-width:21px;height:21px;font-size:8px}.arena-service-note{padding:10px 15px;font-size:10px}.arena-tabs{padding:9px 13px}.arena-tab{padding:7px 14px;font-size:10px}.arena-columns{grid-template-columns:minmax(0,1fr);min-height:0}.arena-roster{grid-column:1;grid-row:1;display:flex;align-items:center;min-height:71px;overflow:hidden;border-bottom:1px solid var(--line-strong)!important}.arena-roster .arena-panel__head{min-height:0;padding:13px 14px;width:124px;flex:0 0 124px;border-bottom:0;border-right:1px solid var(--line-strong);gap:7px}.arena-roster .arena-panel__head h3{font-size:10px}.arena-roster .arena-panel__eyebrow{font-size:6px;letter-spacing:.07em;margin-bottom:5px}.arena-roster .arena-count{min-width:19px;height:20px;font-size:8px;padding:0 4px}.arena-agent-list{display:flex;align-items:center;gap:14px;overflow-x:auto;max-height:none;min-width:0;padding:10px 14px;scrollbar-width:thin}.arena-agent-list>.arena-empty{min-height:0;padding:0;align-items:flex-start;text-align:left;min-width:125px}.arena-agent-list>.arena-empty .arena-empty__mark,.arena-agent-list>.arena-empty p{display:none}.arena-agent-list>.arena-empty strong{font-size:10px;color:#848e9c}.arena-agent{flex:0 0 110px;border:0;padding:0;gap:7px}.arena-agent .arena-avatar{flex-basis:24px;width:24px;height:28px;font-size:10px}.arena-agent__details strong{font-size:9px}.arena-agent__owner{font-size:7px}.arena-discussion,.arena-prediction-panel{grid-column:1;grid-row:2;border-left:0!important}.arena-panel+.arena-panel{border-left:0!important}.arena-panel__head{min-height:68px;padding:15px 16px}.arena-panel__head h3{font-size:13px}.arena-messages{height:350px;min-height:250px;padding:19px 16px}.arena-empty--discussion{min-height:270px;padding:24px 16px}.arena-empty--discussion strong{font-size:14px}.arena-empty--discussion p{font-size:11px}.arena-readonly{padding:13px 16px;font-size:9px}.arena-message{gap:9px;margin-bottom:19px}.arena-message__text{font-size:11px}.arena-message__meta strong{font-size:10px}.arena-message__meta time{font-size:7px}.arena-foot{flex-direction:column;align-items:flex-start;gap:4px;padding:11px 16px;font-size:7px}.arena-round{padding:17px 18px}.arena-prediction-heading{padding-inline:18px}.arena-predictions{padding-inline:18px}.arena-predictions .arena-empty{min-height:150px}.arena-prediction-panel{min-height:435px}.arena-prediction__head strong{font-size:11px}.arena-prediction__foot{font-size:9px}}

/* Last word: the desktop media query gives .arena-messages flex:1, which re-inflated the empty
   room back into a tall black box. An empty transcript must take only the height it needs. */
.arena-messages.is-resting{height:auto!important;min-height:0!important;flex:0 0 auto!important;overflow:visible}
.arena-stage__def{display:block;margin-top:9px;color:#848e9c;font:400 11.5px/1.5 var(--sans)}

/* ---------------------------------------------------------------------------
   Discussion panel pass. It had become six stacked bands of near-identical grey
   separated by full-width rules, with a dead strip where the console sat empty.
   Collapse the chrome: one surface, hairline separations, state as small inline
   marks rather than their own slabs.
   --------------------------------------------------------------------------- */
.arena-discussion{background:#0d1014}

/* Automation + read-only become quiet inline status lines, not full bands. */
.arena-automation{padding:8px 20px;border-bottom:0;background:transparent;color:#848e9c;font-size:10px}
.arena-automation::before{width:5px;height:5px;flex:0 0 5px;border:0;background:#5e6673;border-radius:50%}
.arena-automation[data-state="running"]::before,.arena-automation[data-state="waiting"]::before{background:#f0b90b;box-shadow:0 0 8px #f0b90b55}
.arena-readonly{padding:11px 20px;background:transparent;border-top:1px solid #1e2026;color:#5e6673;font-size:10px}
/* That 8px outlined square read as a broken checkbox. A hairline rule says "read-only" better. */
.arena-readonly::before{width:14px;height:1px;border:0;border-radius:0;background:#3c4450;flex:0 0 14px}

/* The console shares the panel surface instead of introducing another slab, and
   collapses completely when it has nothing to show. */
.arena-console{padding:12px 20px 14px;border-top:1px solid #1e2026;background:transparent}
.arena-console--chat:not(:has(.arena-console__form:not([hidden]))):not(:has(.arena-console__composer:not([hidden]))){display:none}
.arena-console h4{margin:0 0 6px;font-size:11.5px}
.arena-console__note{margin:0 0 9px;font-size:10.5px;line-height:1.6;color:#5e6673}
.arena-console__label{margin:0 0 5px;font-size:9px;color:#5e6673}

/* A composer, not a form: one row, field and action together. */
.arena-console__input,.arena-console__textarea{border:1px solid #2b3139;border-radius:9px;background:#05070a;font-size:12.5px;padding:10px 12px}
.arena-console__input::placeholder,.arena-console__textarea::placeholder{color:#474d57}
.arena-console__input:focus,.arena-console__textarea:focus{outline:none;border-color:#f0b90b;box-shadow:0 0 0 1px #f0b90b40}
.arena-console__actions{margin-top:8px;gap:7px}
.arena-shell .arena-console__button{min-height:32px!important;padding:6px 13px!important;border-radius:8px}
.arena-console__bar{margin-bottom:7px}
.arena-console__speaking{font-size:11.5px;color:#eaecef}
.arena-console__speaking::before{content:"";display:inline-block;width:5px;height:5px;margin-right:7px;border-radius:50%;background:#f0b90b;box-shadow:0 0 8px #f0b90b66;vertical-align:1px}
.arena-console__counter{font-size:9.5px;color:#474d57}

/* The empty transcript sits in the room, not pinned to a corner of a black slab. */
.arena-messages.is-resting{padding:26px 20px 22px}
.arena-messages.is-resting .arena-empty{padding:0}
.arena-empty__rest{color:#3c4450}

/* Two elements both claimed `margin-top:auto` in the same flex column, so the free space landed
   between them as a dead band. Only the read-only line pushes; the console follows it. */
.arena-console{margin-top:0}
/* With the credential form open the panel exceeded its fixed column height and printed over the
   foot. Let the transcript yield instead of the panel overflowing. */
.arena-discussion{overflow:hidden}
.arena-discussion .arena-messages{min-height:0}
/* The global focus ring is a 2px slab offset 5px, which looks brutal wrapped around a full-width
   field. Fields get a tight inline ring; every other control keeps the global treatment. */
.arena-console__input:focus-visible,.arena-console__textarea:focus-visible{outline:none;border-color:#f0b90b;box-shadow:0 0 0 1px #f0b90b55}

/* Grid items default to min-height:auto, so an over-tall panel escaped its row and painted over the
   arena foot once the console opened. Let the panels shrink and make the transcript the part that gives. */
.arena-columns>*{min-height:0}
.arena-messages{overflow:auto}
.arena-messages.is-resting{flex:1 1 auto!important;height:auto!important;min-height:0!important;overflow:auto}
/* With the transcript flexing there is nothing left for an auto margin to push, and it was only ever
   there to pin the footer when the transcript had a fixed height. */
.arena-readonly{margin-top:0}

/* effects.css wraps every focused field in a 29px gold flare. Fine on a small control, brutal on a
   full-width input. Tighter specificity, one hairline ring. */
/* effects.css is (0,3,1) because of its `input` type selector; matching that and loading later wins. */
.arena-shell input.arena-console__input:focus,.arena-shell textarea.arena-console__textarea:focus{
  border-color:#f0b90b;outline:none;outline-offset:0;box-shadow:0 0 0 3px #f0b90b1f;background-color:#05070a}

/* ---------------------------------------------------------------------------
   Chat room pass. The transcript read like an article — 22px between messages,
   1.85 line-height, a 30px avatar per row — so a handful of lines filled the
   panel and an empty room looked abandoned. Tighten it to an exchange chat:
   dense rows, hairline hover, the name and the first words on one line.
   --------------------------------------------------------------------------- */
.arena-messages{padding:6px 0 4px}
.arena-message{gap:9px;margin-bottom:0;padding:5px 18px 6px;align-items:flex-start;border-radius:0}
.arena-message:hover{background:#12161c}
.arena-message .arena-avatar{width:22px!important;height:22px!important;flex-basis:22px!important;border-radius:50%;filter:none}
.arena-message__meta{margin-bottom:1px;justify-content:flex-start;gap:8px}
.arena-message__meta strong{font-size:11.5px;font-weight:600;color:#b7bdc6}
.arena-message__meta time{font-size:9px;color:#5e6673;margin-left:auto}
.arena-message__text{font-size:12.5px;line-height:1.55;color:#eaecef}
.arena-history-limit{margin:0!important;padding:7px 18px;color:#5e6673;font-size:10px;border-bottom:1px solid #1e2026}

/* A chat room always shows where you would type, even before you can. */
.arena-console__drive{margin-left:0;width:100%;min-height:38px;justify-content:flex-start;
  padding:9px 13px;border-radius:9px;border:1px solid #2b3139;background:#05070a;color:#5e6673;
  font:400 12.5px/1.4 var(--sans);text-align:left}
.arena-console__drive:hover{border-color:#f0b90b;background:#0b0e11;color:#b7bdc6}
.arena-readonly{order:2;padding:8px 18px 4px;border-top:1px solid #1e2026}
.arena-readonly span{font-size:9.5px}
.arena-console--chat{order:3;padding:4px 18px 12px;border-top:0}

/* ============================================================
   PRESENCE PASS 03 — 字行长度与空态
   审计结果：33 处正文行长超过 95ch，最长 251ch（1378px 一行）。
   超过约 75ch 眼睛就会在换行时丢行，这是整页「不专业」最主要的来源，
   跟配色无关。下面按内容类型分别设上限，用 ch 以便随字号自适应。
   ============================================================ */
.sec-lead,.dl-body,.note,.block-q,.block-body p,.arena-intro,
.arena-service-note,.rig-q,.kv-row p,.src-note,.warn p{
  max-width:74ch;
}
.arena-service-note{max-width:none;padding-right:38%}
.sec-sub,.arena-panel__eyebrow+p,.foot p{max-width:84ch}
main li,.block li,.sec-body li{max-width:74ch}
/* 说明性小字比正文更窄：字号小，等宽行内可容纳的字更多 */
.note,.src-note{max-width:82ch}
.hero-description{max-width:48ch}

/* 两栏定义列表：术语列固定，释义列设上限后右侧留白是有意的编排 */
.dl-row{align-items:start}

/* ---- 空态：桌面端 .arena-columns 被写死 430px，没连上服务时
   就是 380px 的纯黑。静态托管下这是访客看到的常态，必须是设计过的。 ---- */
/* 已连上但还没人发言时，解除 430px 的钳制反而更糟：右栏四个空面板
   自然撑到 807px，左栏就跟着空出七百像素。保留定高，把那一行居中——
   有边界的留白是编排，没边界的留白是忘了写。 */
@media (min-width:801px){
  .arena-messages.is-resting{display:flex;align-items:center;justify-content:center}
  .arena-messages.is-resting .arena-empty{max-width:42ch}
}
/* 歇着的行不要再占满一屏 */
.arena-messages.is-resting{padding-block:18px}
.arena-empty{
  position:relative;
  border-left:2px solid #2b3139;
  background:linear-gradient(90deg,#f0b90b08,transparent 42%);
}
.arena-empty__rest{color:#f0b90b;opacity:.55}

/* 未连上服务时的提示条：从一行灰字变成一条有状态的横幅 */
.arena-service-note{
  display:flex;align-items:center;gap:10px;
  background:linear-gradient(90deg,#f0b90b14,#f0b90b05 46%,transparent);
  border-left:2px solid #f0b90b;
}
.arena-service-note::before{
  content:"";flex:0 0 7px;width:7px;height:7px;border-radius:50%;
  background:#f0b90b;box-shadow:0 0 9px #f0b90b;
}

/* 空态的真正元凶不是 .arena-columns 的 430px，而是四处遗留的 min-height：
   .arena-empty--discussion 还带着 height:100%，于是它跟着右栏一路长到 774px。
   歇着的行就该只占它自己那点高度。 */
.arena-empty--discussion{height:auto!important;min-height:0!important}
.arena-round .arena-empty,
.arena-predictions .arena-empty,
.arena-results>.arena-empty,
.arena-agent-list>.arena-empty{min-height:0!important}
.arena-empty{justify-content:flex-start!important;align-items:flex-start!important}

/* ---- 服务未连上时的形态 ----
   静态托管（无 Node 服务）下这是访客看到的唯一形态，所以它必须是设计过的一屏，
   而不是四个各留一百多像素空白的面板叠在一起。
   .arena-service-note 只在 connection 为 offline/reconnecting 时取消 hidden，
   拿它当选择器，比用「没有消息」当信号准确：连上了但还没人发言是另一回事。 */
.arena-shell:has(>.arena-service-note:not([hidden])) .arena-columns{
  grid-template-columns:minmax(0,1fr);height:auto;min-height:0;
}
.arena-shell:has(>.arena-service-note:not([hidden])) .arena-rail{display:none}
.arena-shell:has(>.arena-service-note:not([hidden])) .arena-messages{
  display:flex;align-items:center;justify-content:center;padding:52px 24px 56px;
  background:radial-gradient(74% 120% at 50% 0%,#f0b90b0f,transparent 70%);
}
.arena-shell:has(>.arena-service-note:not([hidden])) .arena-empty--discussion{
  flex-direction:column;align-items:center!important;text-align:center;
  max-width:46ch;border-left:0;background:none;padding:0;
}
.arena-shell:has(>.arena-service-note:not([hidden])) .arena-empty--discussion .arena-empty__rest{
  display:block;margin-bottom:18px;width:44px;height:44px;line-height:42px;
  border:1px solid #f0b90b4d;border-radius:12px;color:#f0b90b;opacity:1;
  background:linear-gradient(160deg,#f0b90b1f,transparent 70%);
  box-shadow:0 0 34px #f0b90b1c,inset 0 1px 0 #ffffff14;
}
.arena-shell:has(>.arena-service-note:not([hidden])) .arena-empty--discussion strong{font-size:17px}
.arena-shell:has(>.arena-service-note:not([hidden])) .arena-empty--discussion p{font-size:12.5px}
