/* Shared practice-ring components, with tournament-specific layout. */
.connection-status{font:10px/1.6 Arial,sans-serif;color:var(--muted);margin:-12px 0 18px;padding-left:3px}
.tournament-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;align-items:start}
.setup-panel,.roster-panel,.history-panel{padding:26px;min-width:0}
.panel-copy{font:12px/1.8 Arial,sans-serif;color:var(--muted);margin:0 0 20px}
.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.setup-panel label{display:block;font:700 9px/1.6 Arial,sans-serif;letter-spacing:1.1px;text-transform:uppercase;color:var(--muted)}
.setup-panel input,.setup-panel select{display:block;width:100%;min-width:0;min-height:44px;margin:8px 0 0;border:1px solid var(--line);border-radius:8px;background:#faf8f0;padding:10px 12px;color:var(--ink);font:14px Georgia,serif;letter-spacing:0;text-transform:none}
.setup-panel input:focus-visible,.setup-panel select:focus-visible{outline:3px solid #99754b;outline-offset:2px}
button:disabled{cursor:default}.join-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin:22px 0}.join-row button{min-height:44px}
#entry{grid-column:1/-1;max-width:650px;width:100%;justify-self:center;margin:10px 0 24px}
.attribute-label{margin:26px 0 14px}#attributes{gap:12px 20px}#attributes label{border-bottom:1px solid var(--line);padding-bottom:12px;display:flex;align-items:center;justify-content:space-between;gap:8px;letter-spacing:.3px;text-transform:none;font-size:12px}#attributes input{width:65px;margin:0}
#budget{color:var(--green);font-weight:700}#start{margin-top:18px;width:100%;line-height:1.6}
.opponent-preview{background:var(--lavender);border:1px solid #e2daec;border-radius:13px;padding:17px;margin:12px 0 18px;font:12px/1.8 Arial,sans-serif;color:var(--muted)}.opponent-preview p+p{margin-top:8px}.opponent-preview strong{color:var(--ink);font-weight:400;font-family:Georgia,serif;font-size:17px}
#match-title{font-size:19px;font-weight:400}.scroll{overflow-x:auto}#room .section-heading{flex-wrap:wrap}#room .badge{color:#746548;letter-spacing:0}#standings td,#standings th{padding:12px 7px}.eliminated{opacity:.55}
#duel-view{grid-column:1/-1}.duel-summary{padding:0 27px 20px;font:12px/1.8 Arial,sans-serif;color:var(--muted)}#fighters h3{overflow-wrap:anywhere}#duel-kits{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:0 27px 24px;font:11px/1.8 Arial,sans-serif;color:var(--muted)}#duel-kits summary{cursor:pointer;text-underline-offset:3px;text-decoration:underline}#duel-kits details p{margin-top:8px}#duel-log{height:390px}
#history{grid-column:1/-1}#history-list{display:grid;grid-template-columns:1fr 1fr;gap:9px}#history-list h3{grid-column:1/-1;font-size:16px;font-weight:400;margin:14px 0 4px}#history-list button{text-align:left;border:1px solid var(--line);border-radius:9px;background:#faf8f0;padding:12px 14px;font:11px/1.7 Arial,sans-serif;color:var(--muted)}#history-list button:hover{background:var(--sage)}
@media(max-width:820px){.tournament-layout{grid-template-columns:1fr;gap:18px}.setup-panel,.roster-panel,.history-panel{padding:22px}#entry{margin:0;max-width:none}}
@media(max-width:540px){.setup-panel,.roster-panel,.history-panel{padding:18px}.grid{gap:12px}#attributes{grid-template-columns:1fr}#history-list{grid-template-columns:1fr}.duel-summary{padding:0 17px 18px}#duel-kits{padding:0 15px 18px;gap:12px}.masthead .rule-link{max-width:125px;text-align:right;line-height:1.6}.section-heading h2{font-size:19px}.playback{flex-wrap:wrap}.roster-panel .badge{white-space:normal}#duel-log{height:380px}}
.tournament-score{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px;padding-top:10px;border-top:1px solid #d1d9c5;font:10px/1.5 Arial,sans-serif;color:var(--muted)}.tournament-score strong{font:20px Georgia,serif;color:var(--green)}.opponent .tournament-score{border-color:#ded6e7}.opponent .tournament-score strong{color:var(--purple)}#next-duel{white-space:normal;text-align:left;overflow-wrap:anywhere;max-width:100%}
#kit-options{display:block}#kit-options fieldset+fieldset{margin-top:22px}#kit-options .weapon-option{font:inherit;letter-spacing:normal;text-transform:none}#kit-options input[type=radio]{position:absolute;opacity:0;width:1px;height:1px;min-height:0;padding:0;margin:0}#kit-options .weapon-card{height:100%}#kit-options .weapon-stats{display:block}#attributes .attribute-row{grid-template-columns:minmax(0,1fr) 65px;gap:6px 10px}#attributes .attribute-row label{border:0;padding:0;display:block}#attributes .attribute-effect{font:11px/1.6 Arial,sans-serif;color:var(--muted)}@media(max-width:540px){#kit-options .weapon-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#kit-options .weapon-stats{font-size:10px}}
.celebration{grid-column:1/-1;padding:28px;text-align:center;background:#faf4e3;border-color:#cbb574}.celebration h2,#champion-name{font:32px/1.25 Georgia,serif;margin:10px 0}.celebration p:not(.eyebrow){font:14px/1.8 Georgia,serif;margin-top:10px}#final-contenders{font-size:22px!important;color:var(--green)}.duel-result{margin:0 27px 24px;padding:22px;border:1px solid #b9c7a7;border-radius:13px;background:var(--sage)}.duel-result h3{font:30px/1.25 Georgia,serif;margin:8px 0 12px}.duel-result p:not(.eyebrow){font:12px/1.8 Arial,sans-serif;color:var(--ink)}#tournament-complete{grid-column:1/-1;background:#faf4e3;border-color:#cbb574;text-align:center}#tournament-complete .primary-button{max-width:450px;margin:18px auto 0}@media(max-width:540px){.duel-result{margin:0 15px 18px;padding:18px}.duel-result h3,.celebration h2,#champion-name{font-size:25px}}
.reward-card{border:1px solid var(--line);border-radius:12px;padding:16px;margin:14px 0;background:var(--sage)}.reward-card.uncommon{background:var(--lavender)}.reward-card.rare{background:#faf0d2;border-color:#b1904e}.reward-card p{font:12px/1.7 Arial,sans-serif;margin:8px 0}#earned-build{font:12px/1.7 Arial,sans-serif;margin-top:20px}#attribute-reward select{width:100%;padding:10px;margin:10px 0}
