/* RivalProof Arena · RP_ARENA_UI_V1 · sin dependencias externas */
:root {
  color-scheme: dark;
  --bg: #101315; --panel: #191e22; --panel2: #21272d; --panel3: #14191d;
  --text: #f3f5f6; --muted: #b0b9c2; --line: #343c44;
  --accent: #ff713d; --accent-strong: #ff642b; --accent-soft: #35251f;
  --green: #7fe2ac; --yellow: #f3ce80; --red: #ffabb4;
  --radius: .65rem; --shadow: 0 8px 24px #0000001f;
}
* { box-sizing: border-box; }
html { background: var(--bg); scroll-padding-top: 6rem; }
body { margin: 0; min-height: 100vh; color: var(--text); background: var(--bg); font: 1rem/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; -webkit-font-smoothing: antialiased; }
button, input, select, textarea { font: inherit; }
button, input, select, textarea, a { -webkit-tap-highlight-color: transparent; }
button { cursor: pointer; color: inherit; font-weight: 650; border: 1px solid transparent; transition: background-color .15s, border-color .15s; }
button, a { touch-action: manipulation; }
button:disabled { cursor: progress; opacity: .6; }
button:focus-visible, a:focus-visible, summary:focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
input:focus, select:focus, textarea:focus { border-color: var(--accent); box-shadow: 0 0 0 3px #ff713d24; outline: none; }
::selection { color: var(--text); background: #9b411d; }
a { color: var(--accent); text-underline-offset: 3px; }
svg { stroke-linecap: round; stroke-linejoin: round; }
.ui-icon { width: 1.375rem; height: 1.375rem; flex: 0 0 auto; vertical-align: middle; }
.hidden { display: none !important; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { color: var(--text); line-height: 1.2; }
h1 { font-size: clamp(2rem,4vw,3.5rem); letter-spacing: -.04em; margin-bottom: 1rem; }
h2 { font-size: clamp(1.375rem,2.5vw,1.875rem); letter-spacing: -.025em; font-weight: 750; margin-bottom: .75rem; }
h3 { font-size: 1.125rem; margin-bottom: .75rem; }
small { font-size: .875rem; }
.kicker { color: var(--accent); font-size: .75rem; font-weight: 750; letter-spacing: .12em; margin-bottom: .5rem; }
.muted-label, .security-note { color: var(--muted); font-size: .875rem; line-height: 1.5; }
.app-shell { max-width: 98rem; margin: 0 auto; padding: 0 1.75rem 3rem; }
.brandbar { position: sticky; top: 0; z-index: 20; min-height: 5.5rem; display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 0; margin-bottom: 1.5rem; background: var(--bg); border-bottom: 1px solid var(--line); }
.brand { flex: 0 0 auto; }
.wordmark { font-family: Impact,"Arial Narrow","Roboto Condensed",sans-serif; font-size: 1.85rem; font-weight: 800; letter-spacing: -.02em; line-height: 1; }
.wordmark span { color: var(--accent-strong); }
.header-profile { display: flex; align-items: center; gap: .75rem; min-width: 0; }
.header-identity { display: flex; align-items: center; gap: 1rem; min-width: 0; }
#usernameLabel { font-weight: 650; max-width: 20ch; overflow-wrap: anywhere; }
.test-badge { display: inline-block; padding: .2rem .625rem; background: var(--panel2); color: #d5dbe1; font-size: .75rem; border: 1px solid var(--line); border-radius: 1rem; white-space: nowrap; }
.avatar, .profile-avatar { display: grid; place-items: center; flex: 0 0 auto; width: 2.75rem; height: 2.75rem; border-radius: 50%; font-weight: 750; background: var(--panel2); border: 1px solid #6c7782; }
.session-active #appView { margin-left: 14.5rem; }
.tabs { position: fixed; top: 7rem; left: max(1.75rem,calc((100vw - 98rem)/2 + 1.75rem)); bottom: 2rem; width: 12.75rem; display: flex; flex-direction: column; align-items: stretch; gap: .5rem; border-right: 1px solid var(--line); padding-right: 1rem; z-index: 15; overflow-y: auto; }
.tab { display: flex; align-items: center; gap: .875rem; min-height: 3.25rem; background: transparent; color: var(--muted); padding: .875rem 1rem; border-radius: .4rem; text-align: left; font-size: .9375rem; border-left: 3px solid transparent; }
.tab:hover { background: var(--panel); color: var(--text); }
.tab.active { color: var(--accent); background: linear-gradient(90deg,var(--accent-soft),#35251f26); border-left-color: var(--accent); }
.tab.active .ui-icon { stroke-width: 2.2; }
.tab { min-width: 0; }
.tab span { max-width: 100%; overflow-wrap: anywhere; }
.tab-pane { min-width: 0; }
.section-head, .panel-head, .room-head, .match-top, .evidence-head { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.section-head { margin: 0 0 1rem; }
.section-head h2, .panel-head h3, .room-head h3 { margin: 0; }
.section-head > div, .room-head > div { min-width: 0; }
.section-head .mini-btn { flex: 0 0 auto; }
.count-badge { display: inline-block; padding: .125rem .5rem; margin-left: .25rem; vertical-align: middle; border: 1px solid var(--line); background: var(--panel2); border-radius: .35rem; color: var(--muted); font-size: .875rem; font-weight: 600; }
.balance-card { display: flex; justify-content: space-between; align-items: center; gap: 1.25rem; padding: 1rem 1.25rem; background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); }
.balance-values { display: flex; gap: 1.5rem; align-items: center; min-width: 0; }
.balance-values > div { min-width: 0; }
.balance-values strong { display: block; font-size: 1.75rem; line-height: 1.2; margin-top: .25rem; letter-spacing: -.025em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.balance-values .reserved-balance { padding-left: 1.5rem; border-left: 1px solid var(--line); }
.reserved-balance strong { font-size: 1.125rem; }
.quick-actions { display: grid; grid-template-columns: auto auto; gap: .625rem; flex: 0 1 auto; }
.quick-actions button { display: flex; align-items: center; justify-content: center; gap: .5rem; }
.live-sync { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: .5rem; color: var(--muted); margin: .5rem 0 1.25rem; font-size: .8125rem; }
.live-sync .mini-btn { padding: .375rem .5rem; min-height: 2.75rem; font-size: .875rem; background: transparent; border-color: transparent; }
.sync-error { color: var(--yellow); }
.primary-btn, .secondary-btn, .mini-btn, .icon-btn, .new-match button, .uploadForm > button, .acceptMatchBtn, .declineMatchBtn, .cancelMatchBtn, .reanalyzeBtn { display: inline-flex; align-items: center; justify-content: center; min-height: 2.875rem; padding: .75rem 1rem; border-radius: .4rem; text-decoration: none; text-align: center; line-height: 1.35; }
.primary-btn, .new-match button, .uploadForm > button, .acceptMatchBtn { background: var(--accent-strong); color: #1b100b; border: 1px solid var(--accent-strong); font-weight: 750; }
.primary-btn:hover, .new-match button:hover, .uploadForm > button:hover, .acceptMatchBtn:hover { background: #ff875b; border-color: #ff875b; }
.secondary-btn, .mini-btn, .icon-btn, .reanalyzeBtn { background: var(--panel2); border: 1px solid #4b5762; color: var(--text); }
.secondary-btn:hover, .mini-btn:hover, .icon-btn:hover, .reanalyzeBtn:hover { background: #2b333a; border-color: #83909c; }
.mini-btn { font-size: .875rem; }
.icon-btn { width: 2.75rem; min-height: 2.75rem; padding: 0; font-size: 1.5rem; }
.declineMatchBtn, .cancelMatchBtn { color: var(--red); border: 1px solid #78525b; background: #342127; }
.glass-card, .join-card, .room-card, .summary-card, .history-item { background: var(--panel); border: 1px solid var(--line); border-radius: var(--radius); }
.glass-card, .room-card { padding: 1.5rem; }
label { display: grid; gap: .5rem; font-size: .875rem; color: #dbe1e6; min-width: 0; }
input, select, textarea { display: block; min-width: 0; width: 100%; min-height: 2.875rem; padding: .75rem .875rem; border: 1px solid #4b5762; border-radius: .4rem; background: var(--panel3); color: var(--text); font-size: 1rem; line-height: 1.4; }
input::placeholder, textarea::placeholder { color: #9aa5b0; opacity: 1; }
textarea { resize: vertical; }
input[type=file] { padding: .375rem; font-size: .875rem; cursor: pointer; }
input[type=file]::file-selector-button { padding: .55rem .75rem; margin-right: .625rem; border: 0; border-radius: .25rem; background: #333d46; color: var(--text); font: inherit; cursor: pointer; }
input[type=number] { font-variant-numeric: tabular-nums; }
.form-stack { display: grid; gap: 1rem; margin-top: 1.25rem; }
.auth-stage { padding: 1.5rem 0; }
.auth-copy { max-width: 40rem; margin-bottom: 2rem; }
.auth-copy > p:not(.kicker) { color: var(--muted); max-width: 35rem; }
.auth-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; }
.auth-card { border-top: 3px solid var(--accent-strong); }
.auth-card h2 { font-size: 1.375rem; }
.auth-card > p { color: var(--muted); }
.match-picker, .compact-rooms { display: grid; gap: .625rem; margin-bottom: 1rem; }
.match-picker.single-match { display: none; }
.match-choice, .room-choice { display: flex; align-items: center; justify-content: space-between; width: 100%; text-align: left; gap: 1.5rem; padding: 1rem 1.125rem; border: 1px solid var(--line); background: var(--panel); border-radius: .5rem; }
.match-choice > span, .room-choice > span { min-width: 0; }
.match-choice strong, .room-choice strong { display: block; overflow-wrap: anywhere; font-size: 1rem; }
.match-choice small, .room-choice small { display: block; color: var(--muted); font-size: .875rem; font-weight: 400; margin-top: .375rem; overflow-wrap: anywhere; }
.choice-meta, .room-choice-side { text-align: right; flex: 0 1 42%; }
.choice-meta b { color: var(--accent); font-variant-numeric: tabular-nums; }
.room-choice-side b { font-family: ui-monospace, monospace; font-size: .9375rem; letter-spacing: .05em; }
.match-choice:hover, .room-choice:hover, .history-choice:hover { background: var(--panel2); border-color: #75818d; }
.match-choice.selected, .room-choice.selected, .history-choice.selected { border-color: var(--accent); background: #27211e; box-shadow: inset 3px 0 var(--accent); }
.match-detail, .room-detail { scroll-margin-top: 6.5rem; outline: none; }
.match-detail:empty, .room-detail:empty { display: none; }
.match-card { min-width: 0; }
.arena-match-layout { display: grid; gap: 1.25rem; align-items: start; }
.match-surface, .match-room { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius); background: var(--panel); padding: 1.25rem; }
.match-top { align-items: flex-start; gap: .75rem; }
.match-game { display: flex; align-items: center; gap: .625rem; min-width: 0; }
.match-game > div { min-width: 0; }
.match-game strong { display: block; font-size: 1rem; overflow-wrap: anywhere; }
.game-icon { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; flex: 0 0 auto; background: #343d45; border: 1px solid #52606b; border-radius: .5rem; color: var(--text); }
.match-id { display: block; color: var(--muted); font-size: .75rem; margin-top: .25rem; }
.badge { display: inline-block; flex: 0 1 auto; border: 1px solid #825039; color: #ffa174; background: #33251f; border-radius: .3rem; padding: .25rem .5rem; font-size: .8125rem; line-height: 1.4; }
.badge.confirmed { color: var(--green); border-color: #447956; background: #1b3025; }
.badge.draw { color: #d2d8df; border-color: #65727e; background: #282f35; }
.badge.cancelled { color: var(--red); border-color: #75505b; background: #332129; }
.badge.manual-review { color: var(--yellow); border-color: #856535; background: #342a1e; }
.versus { display: grid; grid-template-columns: minmax(0,1fr) 2.5rem minmax(0,1fr); align-items: center; gap: 1rem; margin: 1.75rem auto 1rem; max-width: 36rem; }
.player { display: flex; flex-direction: column; align-items: center; min-width: 0; text-align: center; gap: .5rem; }
.player-avatar { display: grid; place-items: center; width: 5rem; height: 5rem; border-radius: 50%; border: 2px solid #7c8a99; background: #2a323b; color: white; font-size: 2rem; font-weight: 750; }
.player-me .player-avatar { border-color: var(--accent); background: #48291d; }
.player strong { max-width: 100%; font-size: 1rem; overflow-wrap: anywhere; }
.team-name { color: var(--muted); font-size: .875rem; overflow-wrap: anywhere; }
.vs { color: #a4aeb9; font-size: 1.125rem; font-weight: 750; text-align: center; padding: .875rem 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.match-next-step { margin: 1rem 0 .25rem; text-align: center; color: var(--accent); font-size: 1rem; font-weight: 650; }
.match-next-step.needs-review { color: var(--yellow); }
.match-deadline { text-align: center; color: var(--muted); font-size: .875rem; margin: .25rem 0 .875rem; }
.wager-strip { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: center; gap: .75rem; padding: 1rem 0 .75rem; margin-top: 1rem; border-top: 1px solid var(--line); }
.wager-strip small { display: block; color: var(--muted); font-size: .875rem; }
.wager-strip b { display: block; font-size: 1.25rem; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; }
.wager-strip > span:last-child { text-align: right; }
.capture-progress { display: grid; justify-items: center; gap: .5rem; text-align: center; min-width: 0; }
.capture-progress progress { display: block; appearance: none; width: min(100%,7rem); height: .5rem; border: 0; border-radius: 1rem; overflow: hidden; background: #414c57; accent-color: var(--accent); }
progress::-webkit-progress-bar { background: #414c57; border-radius: 1rem; }
progress::-webkit-progress-value { background: var(--accent); border-radius: 1rem; }
progress::-moz-progress-bar { background: var(--accent); border-radius: 1rem; }
.capture-only { padding: .75rem 0; }
.my-reserved { color: var(--muted); font-size: .8125rem; margin: 0 0 .75rem; }
.my-reserved strong { color: #d6dde4; font-weight: 550; }
.upload-v3 { display: grid; gap: .875rem; margin: 1rem 0; }
.upload-v3 > button { width: 100%; min-height: 3.125rem; }
.upload-test-note { margin: 0; }
.upload-test-note summary { min-height: 2.75rem; padding: .5rem 0; font-size: .875rem; }
.match-diagnostics { margin-top: 1rem; border-top: 1px solid var(--line); }
.match-diagnostics > summary { display: flex; align-items: center; gap: .625rem; min-height: 3.25rem; padding: .875rem 0 0; color: #d4dde5; font-size: .9375rem; list-style: none; }
.match-diagnostics > summary::-webkit-details-marker { display: none; }
.match-diagnostics > summary::after { content: '›'; color: var(--muted); font-size: 1.5rem; line-height: 1; }
.match-diagnostics[open] > summary::after { transform: rotate(90deg); }
.match-diagnostics > summary > span { flex: 1; }
.match-diagnostics > summary small { color: var(--muted); font-size: .75rem; text-align: right; }
.diagnostic-content { padding-top: .75rem; }
.match-room { display: grid; gap: 1.25rem; }
.room-aside-head h3 { margin-bottom: .25rem; overflow-wrap: anywhere; }
.room-invite { display: grid; gap: .5rem; }
.room-invite small { color: var(--muted); }
.room-code { display: inline-block; user-select: all; -webkit-user-select: all; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; font-size: 1.25rem; font-weight: 750; letter-spacing: .075em; color: var(--text); background: var(--panel2); border: 1px solid #58636d; padding: .5rem .75rem; border-radius: .35rem; overflow-wrap: anywhere; }
.room-facts { display: grid; gap: .875rem; padding: 1rem 0 0; margin: 0; border-top: 1px solid var(--line); }
.room-facts dt { color: var(--muted); font-size: .875rem; }
.room-facts dd { font-weight: 600; margin: .125rem 0 0; overflow-wrap: anywhere; }
.match-room > button { width: 100%; }
.accept-card, .waiting-card { display: grid; gap: .875rem; margin: 1rem 0; padding: 1rem; border: 1px solid #665345; border-radius: .5rem; background: #2a221c; }
.accept-card small, .waiting-card small { display: block; color: var(--muted); margin-top: .375rem; }
.accept-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
.accept-actions button { flex: 1 1 auto; }
.waiting-card .cancelMatchBtn { justify-self: start; }
.winner-banner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1.25rem; border: 1px solid #4d8364; background: #1c3025; border-radius: .5rem; margin: 1rem 0; }
.winner-banner strong { display: block; font-size: 1.625rem; color: var(--green); overflow-wrap: anywhere; }
.winner-banner > div { min-width: 0; }
.paid-line { display: block; margin-top: .375rem; color: var(--green); font-weight: 650; }
.confidence-box { text-align: right; flex: 0 1 36%; }
.confidence-box b { display: block; color: var(--green); font-size: 1.25rem; }
.confidence-box span { display: block; color: var(--muted); font-size: .8125rem; }
.review-box { display: grid; gap: .75rem; padding: 1rem; margin: 1rem 0; border: 1px solid #6d5938; border-radius: .5rem; background: #29241b; color: #f0d9a7; font-size: .9375rem; line-height: 1.6; overflow-wrap: anywhere; }
.review-box b { color: #f6deaa; }
.error-callout { border-color: #91606a; background: #322025; color: var(--red); }
.error-callout b { color: var(--red); }
.anti-fraud-strip, .forensic-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: .625rem; margin: .5rem 0 1rem; }
.anti-fraud-strip > div, .forensic-grid > div { min-width: 0; background: var(--panel3); border: 1px solid var(--line); border-radius: .4rem; padding: .75rem; }
.anti-fraud-strip small, .forensic-grid small { display: block; color: var(--muted); font-size: .8125rem; margin-bottom: .25rem; }
.anti-fraud-strip b, .forensic-grid b { display: block; color: var(--text); font-size: .875rem; overflow-wrap: anywhere; }
.forensic-grid em { display: block; font-style: normal; color: var(--muted); font-size: .75rem; margin-top: .375rem; overflow-wrap: anywhere; }
.forensic-grid .forensic-good b, .risk-low .risk-pill { color: var(--green); }
.forensic-grid .forensic-warn b { color: var(--yellow); }
.forensic-grid .forensic-bad b, .risk-high .risk-pill { color: var(--red); }
.evidence-grid { display: grid; gap: 1rem; }
.evidence { min-width: 0; border: 1px solid var(--line); background: var(--panel3); padding: 1rem; border-radius: .5rem; color: var(--text); }
.evidence-head { align-items: flex-start; }
.evidence-head > div { min-width: 0; }
.evidence-head strong, .evidence-head small { display: block; overflow-wrap: anywhere; }
.evidence-head small { color: var(--muted); margin-top: .25rem; font-size: .8125rem; }
.risk-pill { display: inline-block; font-size: .8125rem; border: 1px solid var(--line); border-radius: .375rem; padding: .25rem .5rem; text-align: center; }
.evidence-img { display: block; width: 100%; max-height: 28rem; min-height: 4rem; height: auto; object-fit: contain; background: #0c0f11; border: 1px solid var(--line); border-radius: .375rem; margin: 1rem 0; }
details { margin-top: .75rem; color: var(--muted); font-size: .875rem; }
summary { cursor: pointer; padding: .625rem 0; font-weight: 600; min-height: 2.75rem; }
details ul { padding-left: 1.25rem; line-height: 1.6; overflow-wrap: anywhere; }
pre { background: #0d1114; color: #c8d2dc; padding: .875rem; font: .8125rem/1.55 ui-monospace,SFMono-Regular,Menlo,monospace; border: 1px solid var(--line); border-radius: .375rem; overflow: auto; max-height: 22rem; white-space: pre-wrap; overflow-wrap: anywhere; }
.reanalyzeBtn { width: 100%; margin-top: 1rem; }
.hero-actions { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1rem; margin-bottom: 1.25rem; }
.challenge-btn { display: flex; align-items: center; gap: 1rem; padding: 1.25rem; border: 1px solid #936042; border-radius: var(--radius); background: #35251e; color: var(--accent); text-align: left; }
.challenge-btn:hover { border-color: var(--accent); background: #42291d; }
.challenge-btn .plus { font-size: 2rem; font-weight: 400; }
.challenge-btn strong { display: block; font-size: 1.125rem; }
.challenge-btn small { display: block; color: var(--muted); font-weight: 400; margin-top: .25rem; }
.join-card { padding: 1.125rem; }
.join-card > label { display: block; font-weight: 650; margin-bottom: .5rem; }
.join-form { display: flex; gap: .5rem; }
.join-form input { font-family: ui-monospace,monospace; letter-spacing: .05em; text-transform: uppercase; }
.join-form button { border: 1px solid #596571; border-radius: .4rem; width: 3rem; flex: 0 0 auto; background: var(--panel2); color: var(--text); font-size: 1.5rem; }
.create-panel { margin-bottom: 1.25rem; border-color: var(--accent); }
.create-room-form { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: end; gap: .875rem; margin-top: 1.25rem; }
.room-search { display: grid; gap: .625rem; margin: 1.5rem 0 1rem; }
.room-search label { font-weight: 650; }
.room-search input { background: var(--panel); }
.room-search > span { font-size: .8125rem; }
.room-head { align-items: flex-start; }
.room-head h3 { overflow-wrap: anywhere; }
.members { display: flex; gap: .5rem; flex-wrap: wrap; margin: 1.25rem 0; }
.member-pill { font-size: .875rem; color: #d6dfe6; border: 1px solid var(--line); background: var(--panel2); border-radius: 1rem; padding: .375rem .75rem; overflow-wrap: anywhere; }
.room-pending { display: grid; gap: .75rem; margin: 1.25rem 0; padding: 1rem; background: var(--panel3); border: 1px solid var(--line); border-radius: .5rem; }
.room-pending .mini-btn { text-align: left; justify-content: flex-start; overflow-wrap: anywhere; }
.new-match { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1rem; border-top: 1px solid var(--line); padding-top: 1.25rem; margin-top: 1.25rem; }
.new-match > button, .stake-field, .team-help, .team-entry-grid { grid-column: 1/-1; }
.team-entry-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1rem; }
.stake-field { padding: 1rem; border: 1px solid #856044; border-radius: .5rem; background: #2c231d; }
.stake-field small { color: var(--muted); }
.team-help { color: var(--muted); font-size: .875rem; padding: .875rem; background: var(--panel3); border-radius: .4rem; }
.room-history-link { margin-top: 1.25rem; }
.result-receipt { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; border: 1px solid #4b8060; border-radius: .5rem; padding: 1rem; margin-bottom: 1rem; background: #1b3024; }
.result-receipt > div { flex: 1; min-width: 0; }
.result-receipt strong, .result-receipt small { display: block; overflow-wrap: anywhere; }
.result-receipt small { color: var(--muted); }
.history-list, .ledger-list { display: grid; gap: .625rem; }
.history-list { margin-bottom: 1.25rem; }
.history-item { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,auto); gap: 1rem; padding: 1rem 1.125rem; text-align: left; }
.history-item strong, .history-item small { display: block; overflow-wrap: anywhere; }
.history-item small { color: var(--muted); margin-top: .375rem; font-weight: 400; font-size: .875rem; }
.history-score { text-align: right; color: var(--green); }
.profile-avatar { width: 4rem; height: 4rem; font-size: 1.5rem; background: #42271c; border: 2px solid var(--accent); }
.profile-hero { display: flex; align-items: center; gap: 1rem; }
.profile-hero > div { min-width: 0; }
.profile-hero h2 { overflow-wrap: anywhere; }
.profile-stats, .summary-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .75rem; }
.profile-stats { margin-top: 1.5rem; }
.profile-stats > div, .summary-card { padding: 1rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--panel3); min-width: 0; }
.profile-stats small { display: block; color: var(--muted); }
.profile-stats b, .summary-card b { display: block; font-size: 1.5rem; font-variant-numeric: tabular-nums; margin-top: .25rem; overflow-wrap: anywhere; }
.system-status { margin-top: 1.25rem; }
.status-strip, .tools { display: flex; align-items: center; flex-wrap: wrap; gap: .625rem; }
.status-strip { margin-top: 1rem; }
.tool { border: 1px solid #4b775b; color: var(--green); background: #1b2a21; border-radius: .4rem; padding: .375rem .625rem; font-size: .8125rem; }
.tool.off { color: var(--yellow); background: #30281b; border-color: #796237; }
.wallet-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 1.25rem; margin-top: 1.25rem; align-items: start; }
.wallet-box { min-width: 0; }
.wallet-box .security-note { display: block; margin-top: 1rem; }
.deposit-methods { display: grid; grid-template-columns: 1fr 1fr; gap: .5rem; margin: 1rem 0; }
.depositMethodBtn, .depositPresetBtn, .withdrawalFilterBtn { padding: .75rem; min-height: 2.875rem; border: 1px solid #505c68; background: var(--panel3); border-radius: .4rem; }
.depositMethodBtn.active, .withdrawalFilterBtn.active { background: var(--accent-soft); border-color: var(--accent); color: #ffac83; }
.deposit-presets { display: grid; grid-template-columns: repeat(4,1fr); gap: .5rem; }
.depositPresetBtn:hover { border-color: var(--accent); }
.neutral-destination, .bank-deposit-preview { display: grid; gap: .375rem; padding: 1rem; margin: 1rem 0; background: var(--panel3); border: 1px solid var(--line); border-radius: .5rem; overflow-wrap: anywhere; }
.neutral-destination small, .bank-deposit-preview small, .bank-deposit-preview em { color: var(--muted); font-size: .875rem; }
.bank-deposit-preview em { font-style: normal; }
.payphone-link { display: flex; margin-top: .75rem; }
.compact-form { margin-top: 1.25rem; padding-top: 1.25rem; border-top: 1px solid var(--line); }
.ledger-head { margin-top: 2rem; }
.ledger-row { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border: 1px solid var(--line); background: var(--panel); border-radius: .5rem; }
.ledger-row > div { min-width: 0; }
.ledger-row b, .ledger-row small { display: block; overflow-wrap: anywhere; }
.ledger-row small { color: var(--muted); margin-top: .375rem; font-size: .875rem; }
.ledger-row > strong { font-variant-numeric: tabular-nums; }
.negative, .money-out { color: var(--red); }
.money-in { color: var(--green); }
.row-actions { display: flex; flex-wrap: wrap; gap: .5rem; align-items: center; justify-content: flex-end; }
.admin-wallet { margin-top: 2rem; border-color: #8c7247; }
#adminPayphoneBusinessLink { overflow-wrap: anywhere; }
#reconciliation { margin: 1.25rem 0; }
.withdrawal-filters { display: flex; flex-wrap: wrap; gap: .5rem; margin: 1rem 0; }
.withdrawalFilterBtn { font-size: .875rem; }
.withdrawalFilterBtn span { padding-left: .25rem; }
.withdrawal-admin-list { display: grid; gap: .75rem; }
.withdrawal-admin-row { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: .875rem; padding: 1rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--panel3); }
.withdrawal-main { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; min-width: 0; }
.withdrawal-main b, .withdrawal-main small, .withdrawal-pay span, .withdrawal-pay small { display: block; overflow-wrap: anywhere; }
.withdrawal-main small, .withdrawal-pay small, .withdrawal-result { color: var(--muted); font-size: .875rem; }
.withdrawal-code { font-family: ui-monospace,monospace; padding: .375rem .625rem; border: 1px solid var(--line); border-radius: .375rem; font-size: .875rem; overflow-wrap: anywhere; }
.withdrawal-pay { text-align: right; }
.withdrawal-pay span { font-size: 1.25rem; font-weight: 700; }
.withdrawal-result, .withdrawal-admin-row .row-actions { grid-column: 1/-1; border-top: 1px solid var(--line); padding-top: .875rem; }
.payout-btn { color: var(--green); background: #1d3427; border-color: #608773; }
.danger-btn { color: var(--red); background: #342127; border-color: #87636b; }
.deposit-entry, .bank-payment-card { display: grid; gap: .75rem; }
.bank-payment-card { padding: 1rem; border: 1px solid var(--line); background: var(--panel2); border-radius: .5rem; margin-bottom: 1rem; }
.bank-payment-head { display: flex; align-items: center; gap: .75rem; }
.bank-payment-head > div { display: grid; }
.bank-payment-head small { color: var(--muted); }
.bank-code { font: 700 1.5rem ui-monospace,monospace; letter-spacing: .05em; text-align: center; padding: 1rem; background: var(--panel3); border-radius: .4rem; overflow-wrap: anywhere; }
.bank-exact { text-align: center; }
.bank-exact strong { display: block; font-size: 1.5rem; }
.bank-line { display: grid; grid-template-columns: auto minmax(0,1fr); gap: 1rem; }
.bank-line b { text-align: right; overflow-wrap: anywhere; }
.bank-line span, .bank-instructions { color: var(--muted); font-size: .875rem; }
.empty { grid-column: 1/-1; border: 1px dashed #58636e; border-radius: .5rem; padding: 1.75rem 1rem; text-align: center; color: var(--muted); font-size: .9375rem; }
.empty strong { display: block; color: var(--text); margin-bottom: .5rem; }
.empty p { margin: .5rem 0 1rem; }
.toast { position: fixed; right: 1.5rem; bottom: 1.5rem; max-width: min(30rem,calc(100% - 3rem)); border: 1px solid #6c7b88; border-left: 4px solid var(--accent); border-radius: .5rem; background: #252e35; color: var(--text); padding: 1rem; box-shadow: 0 8px 32px #0007; z-index: 40; overflow-wrap: anywhere; }
.toast.error { background: #38252a; border-color: #a56b78; border-left-color: var(--red); }
@media (min-width: 80rem) {
  .arena-match-layout { grid-template-columns: minmax(0,1fr) 15.5rem; }
  .match-room { position: sticky; top: 7rem; }
}
@media (min-width: 90rem) {
  .auth-stage { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.4fr); gap: 3rem; align-items: center; padding: 3rem 0; }
}
@media (min-width: 64rem) and (max-width: 74rem) {
  .balance-card { flex-wrap: wrap; }
  .balance-values, .quick-actions { flex: 1 1 auto; }
}
@media (max-width: 63.999rem) {
  .app-shell { padding: 0 1.25rem calc(7rem + env(safe-area-inset-bottom)); }
  .session-active #appView { margin-left: 0; }
  .brandbar { min-height: 4.75rem; margin-bottom: 1rem; }
  .tabs { top: auto; bottom: 0; left: 0; right: 0; width: auto; display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); gap: .25rem; padding: .375rem max(.5rem,env(safe-area-inset-left)) calc(.375rem + env(safe-area-inset-bottom)); background: #14191df7; border: 0; border-top: 1px solid #515b65; backdrop-filter: blur(16px); box-shadow: 0 -4px 24px #0003; overflow: visible; }
  .tab { display: flex; flex-direction: column; justify-content: center; gap: .25rem; min-height: 3.75rem; padding: .5rem .125rem; font-size: .875rem; line-height: 1.3; border: 0; text-align: center; border-radius: .35rem; }
  .tab.active { background: #33251e; }
  .tab .ui-icon { width: 1.25rem; height: 1.25rem; }
  .balance-card { padding: 1rem; }
  .balance-values { gap: 1rem; }
  .balance-values .reserved-balance { padding-left: 1rem; }
  .match-room { grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: start; }
  .room-facts { grid-template-columns: repeat(3,minmax(0,1fr)); grid-column: 1/-1; }
  .match-room > button { grid-column: 1/-1; }
  .room-invite { text-align: right; }
  .toast { bottom: calc(5.75rem + env(safe-area-inset-bottom)); }
}
@media (max-width: 47rem) {
  .app-shell { padding-inline: 1rem; }
  .wordmark { font-size: 1.625rem; }
  .header-identity { flex-direction: column; align-items: flex-end; gap: .125rem; }
  #usernameLabel { max-width: 14ch; font-size: .875rem; }
  .avatar { width: 2.5rem; height: 2.5rem; }
  .balance-card { display: grid; padding: 0; border: 0; background: transparent; gap: .875rem; }
  .balance-values { justify-content: space-between; background: var(--panel); border: 1px solid var(--line); border-radius: .5rem; padding: .875rem 1rem; }
  .balance-values strong { font-size: 1.5rem; }
  .reserved-balance strong { font-size: 1rem; }
  .quick-actions { grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: .625rem; }
  .quick-actions button { font-size: .875rem; padding: .875rem .625rem; }
  .quick-actions .ui-icon { width: 1.125rem; height: 1.125rem; }
  .live-sync { margin: .375rem 0 1rem; gap: .25rem; }
  .glass-card, .room-card, .match-surface, .match-room { padding: 1rem; }
  .match-top { flex-wrap: wrap; }
  .match-top .badge { margin-left: auto; }
  .versus { margin-top: 1.25rem; gap: .625rem; }
  .player-avatar { width: 4rem; height: 4rem; font-size: 1.75rem; }
  .wager-strip { gap: .5rem; }
  .wager-strip b { font-size: 1.125rem; }
  .match-diagnostics > summary { flex-wrap: wrap; }
  .match-diagnostics > summary small { display: none; }
  .match-room { gap: 1rem; }
  .room-facts { grid-template-columns: minmax(0,1fr); }
  .room-code { font-size: 1.125rem; padding: .5rem; }
  .hero-actions { grid-template-columns: minmax(0,1fr); }
  .challenge-btn { padding: 1rem; }
  .create-room-form, .new-match, .team-entry-grid, .wallet-grid, .auth-grid { grid-template-columns: minmax(0,1fr); }
  .auth-stage { padding-top: .5rem; }
  .auth-copy { margin-bottom: 1.5rem; }
  .auth-copy h1 { font-size: 2rem; }
  .match-choice, .room-choice { gap: .75rem; padding: .875rem; }
  .history-item { grid-template-columns: minmax(0,1fr); gap: .5rem; }
  .history-score { text-align: left; }
  .winner-banner { flex-wrap: wrap; padding: 1rem; }
  .confidence-box { text-align: left; flex: 1 1 100%; }
  .confidence-box b, .confidence-box span { display: inline; }
  .confidence-box span { margin-left: .375rem; }
  .summary-grid { grid-template-columns: minmax(0,1fr); }
  .profile-stats { gap: .5rem; }
  .profile-stats > div { padding: .75rem .5rem; }
  .profile-stats b { font-size: 1.125rem; }
  .profile-hero { flex-wrap: wrap; }
  .deposit-methods { grid-template-columns: minmax(0,1fr); }
  .ledger-row { align-items: flex-start; flex-wrap: wrap; }
  .ledger-row .row-actions { justify-content: flex-start; }
  .withdrawal-admin-row { grid-template-columns: minmax(0,1fr); }
  .withdrawal-pay { text-align: left; }
  .bank-line { grid-template-columns: minmax(0,1fr); gap: .25rem; }
  .bank-line b { text-align: left; }
  .toast { right: 1rem; max-width: calc(100% - 2rem); }
}
@media (max-width: 25rem) {
  .app-shell { padding-inline: .75rem; }
  .wordmark { font-size: 1.375rem; }
  .header-profile { gap: .375rem; }
  #usernameLabel { max-width: 11ch; }
  .test-badge { padding: .125rem .5rem; }
  .avatar { width: 2.125rem; height: 2.125rem; }
  .tab { font-size: .8125rem; }
  .quick-actions button { gap: .375rem; padding: .75rem .375rem; }
  .balance-values { padding: .875rem; }
  .balance-values .muted-label { font-size: .8125rem; }
  .match-choice, .room-choice { flex-wrap: wrap; }
  .choice-meta, .room-choice-side { flex: 1 1 100%; display: flex; gap: .75rem; align-items: baseline; justify-content: space-between; text-align: left; }
  .choice-meta small, .room-choice-side small { text-align: right; }
  .anti-fraud-strip, .forensic-grid { grid-template-columns: minmax(0,1fr); }
  .match-room { grid-template-columns: minmax(0,1fr); }
  .room-invite { text-align: left; }
  .section-head, .room-head { flex-wrap: wrap; }
  .profile-stats { grid-template-columns: minmax(0,1fr); }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; }
}

/* Depósitos bancarios semi-automáticos con Gemini */
.receipt-upload { display: grid; gap: .65rem; padding: .9rem; border: 1px solid var(--line); border-radius: .5rem; background: var(--panel3); }
.receipt-upload label { display: grid; gap: .45rem; font-weight: 650; }
.receipt-upload small, .receipt-warning { color: var(--muted); line-height: 1.45; }
.receipt-verification { display: grid; gap: .35rem; padding: .85rem; border-radius: .5rem; border: 1px solid var(--line); background: var(--panel3); }
.receipt-verification.ok { border-color: #3f7655; }
.receipt-verification.review { border-color: #8a6a33; }
.receipt-verification.pending { border-color: #4d6f91; }
.receipt-verification span { font-size: .875rem; line-height: 1.4; }
.receipt-warning { padding: .75rem; border-left: 3px solid var(--accent); background: var(--panel3); }
