/* Online mode keeps the same neon rooftop, original sprites, and arcade palette. */
.online-panel,.tournament-panel{border:1px solid var(--line);border-radius:9px;background:var(--panel);padding:22px;margin-bottom:18px}
.online-heading,.room-toolbar,.bracket-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.online-heading h2,.bracket-heading h2{margin:0;font-size:22px;letter-spacing:-.8px}
.online-heading .eyebrow{margin:0 0 6px}.online-heading .quiet-button{white-space:nowrap}
.connection-status{color:var(--lime);font:12px monospace;margin:14px 0}.online-error{background:#541d38;border:1px solid #ff71c777;padding:10px 14px;color:#ffd8ed;border-radius:4px;font-size:13px;line-height:1.5}
.entry-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.entry-fields label{font:bold 11px monospace;color:var(--muted);display:grid;gap:8px}
.entry-fields input{width:100%;background:#11141e;border:1px solid #424652;border-radius:5px;color:var(--text);padding:12px;font:16px monospace;min-width:0}
#online-code{text-transform:uppercase;letter-spacing:3px}.online-actions{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:15px}
.online-actions .primary-button,.online-actions .secondary-button{width:auto;min-width:150px;margin:0;padding:11px 20px;font-size:13px}.online-actions .secondary-button{display:inline-block}
.online-note,.online-rules{font:11px/1.7 monospace;color:#b7bac8}.online-rules{border-top:1px solid var(--line);padding-top:12px;margin:16px 0 0;font-size:10px}.online-note a{color:var(--lime)}
.room-toolbar{justify-content:flex-start;font:12px monospace;border-top:1px solid var(--line);padding-top:14px}.room-toolbar strong{font-size:15px}#room-code{letter-spacing:2px;color:var(--lime)}#online-role{color:#ffb3df}#online-latency{margin-left:auto;color:var(--muted)}
.participation{display:flex;gap:8px;align-items:center;font:12px monospace;margin:16px 0}.participation input{accent-color:var(--lime);width:16px;height:16px}
.online-room-columns{display:grid;grid-template-columns:1fr 1.2fr;gap:24px}.online-room-columns h3{font:11px monospace;color:var(--muted);letter-spacing:1px;margin:0 0 10px}.online-room-columns h3 span{color:var(--lime);float:right;letter-spacing:0}
.room-players{display:grid;gap:6px;list-style:none;padding:0;margin:0;max-height:170px;overflow:auto}.room-players li{display:flex;align-items:center;justify-content:space-between;gap:8px;font:12px monospace;padding:7px 9px;background:#11141e;border-radius:3px}.room-players small{font-size:9px;color:var(--muted);text-align:right}.room-players .offline{opacity:.6}.room-players .self{border-left:3px solid var(--lime)}
.online-roster{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.online-roster .roster-card{min-width:0;padding:4px 1px;font-size:8px;letter-spacing:0}.online-roster .roster-sprite{width:100%;height:auto;aspect-ratio:1;max-width:65px}.online-roster .roster-card[aria-pressed=true]{border-color:var(--lime);box-shadow:0 0 12px #d9ff7a22}
.online-mode .fighter-heading strong{font-size:clamp(12px,1.8vw,21px);overflow-wrap:anywhere}.online-mode .fighter-heading>span{min-width:0}.online-mode .controls{display:none}#online-controls-note{border:1px solid var(--line);border-radius:6px;padding:12px;margin:12px 0}
.online-arena-banner{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;padding:20px;pointer-events:none;background:linear-gradient(#0b0e2033,#0b0e20aa);z-index:3}.online-arena-banner h2{font:bold italic clamp(22px,4vw,44px) Arial;margin:0 0 9px;text-shadow:0 3px 15px #000;max-width:90%;overflow-wrap:anywhere}.online-arena-banner>p:last-child{font:12px/1.6 monospace;max-width:85%;margin:0}.online-arena-banner .eyebrow{margin-bottom:10px}.online-mode .arena-wrap{min-height:0!important}
.tournament-panel{margin-top:18px;margin-bottom:0;padding:17px}.bracket-heading{margin-bottom:12px}.bracket-heading h2{font-size:17px}.bracket-heading>span{font:10px monospace;color:var(--muted)}.tournament-bracket{display:flex;gap:14px;overflow:auto;padding-bottom:6px}.bracket-round{flex:1;min-width:160px}.bracket-round h3{font:10px monospace;color:var(--lime);margin:0 0 9px}.bracket-match{background:#10141e;border:1px solid #353a48;border-radius:5px;padding:9px;margin-bottom:9px;font:11px/1.6 monospace}.bracket-match.active{border-color:var(--lime);box-shadow:0 0 12px #d9ff7a11}.bracket-match span{display:block;overflow-wrap:anywhere}.bracket-match .winner{color:var(--lime)}.bracket-match small{display:block;color:var(--muted);font-size:9px;margin-top:5px}
@media(max-width:850px){.online-room-columns{grid-template-columns:1fr}.online-panel{padding:16px}.online-roster .roster-sprite{max-width:55px}.online-heading h2{font-size:19px}.online-mode .fighter-heading strong{font-size:14px}}
@media(max-width:480px){.entry-fields{grid-template-columns:1fr}.online-actions{gap:8px}.online-actions .primary-button,.online-actions .secondary-button{min-width:125px;padding:10px 12px}.online-roster{grid-template-columns:repeat(4,minmax(0,1fr))}.room-toolbar{font-size:10px}.online-mode .fighter-subtitle{font-size:6px}}
.online-panel.compact .online-room-columns,.online-panel.compact .participation,.online-panel.compact .online-rules,.online-panel.compact #host-hint,.online-panel.compact .online-heading .eyebrow{display:none}
.online-panel.compact{padding:12px 18px}.online-panel.compact .online-heading h2{font-size:15px}.online-panel.compact .connection-status{margin:8px 0}.online-panel.compact .online-actions{margin-top:8px}.online-panel.compact .room-toolbar{padding-top:8px}.online-panel.compact .online-heading #online-close{display:none}
/* Online fights are shared: Escape releases input rather than pausing rivals. */
.online-mode footer>span:last-child{display:none}
