@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap";:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg-primary:#0f1923;--bg-surface:#ffffff0a;--bg-surface-hover:#ffffff14;--gold:#c8a45c;--gold-dim:#c8a45c4d;--gold-glow:#c8a45c26;--accent:#4880c0;--text-primary:#e8e6e3;--text-muted:#8a8a8a;--border-subtle:#ffffff0f;--border-gold:#c8a45c33;--danger:#e53e3e;--success:#48bb78;--radius:.75rem;--radius-sm:.5rem;font-family:Inter,system-ui,sans-serif}body{min-height:100vh;color:var(--text-primary);background-color:#0000;background-image:linear-gradient(#0a121cbf,#0a121ce0),url(https://steniosantos.com/apps/xadrez/chess_tournament-GjNuy110726.png);background-position:50%;background-repeat:repeat,repeat;background-size:cover;background-attachment:fixed;background-origin:padding-box,padding-box;background-clip:border-box,border-box;flex-direction:column;align-items:center;gap:1.25rem;margin:0;padding:1.5rem;display:flex}.panel{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius);flex-wrap:wrap;align-items:center;gap:.5rem;padding:.75rem 1rem;display:flex}.panel[hidden]{display:none}.app-header{align-items:center;gap:1rem;font-family:Plus Jakarta Sans,sans-serif;display:flex}.lobby{flex-wrap:wrap;justify-content:center;gap:1rem;max-width:36rem;display:flex}.lobby fieldset{border:1px solid var(--border-gold);border-radius:var(--radius);background:var(--bg-surface);padding:1rem 1.25rem}.lobby legend{color:var(--gold);letter-spacing:.08em;text-transform:uppercase;font-size:.85rem;font-weight:600}button,input{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);background:var(--bg-surface);min-height:2.75rem;color:var(--text-primary);box-sizing:border-box;padding:.5rem 1rem;font-family:inherit;font-size:.95rem;transition:all .2s}button:hover{background:var(--bg-surface-hover);border-color:var(--gold-dim)}button:active{transform:scale(.97)}input:hover{border-color:var(--gold-dim)}input:focus{border-color:var(--gold);box-shadow:0 0 0 3px var(--gold-glow);outline:none}button:focus-visible,input:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--gold);outline-offset:2px}button.btn-primary{background:linear-gradient(135deg, var(--gold), #b8924a);color:#0f1923;border:none;font-weight:600}button.btn-primary:hover{filter:brightness(1.12);border-color:#0000}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.board-area{flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:1rem;display:flex}.move-history{max-height:min(90vw, 640px, var(--board-max-height,640px));border:1px solid var(--border-subtle);border-radius:var(--radius);background:var(--bg-surface);font-variant-numeric:tabular-nums;scrollbar-width:thin;scrollbar-color:var(--gold-dim) transparent;min-width:10rem;margin:0;padding:.75rem .75rem .75rem 1.75rem;overflow-y:auto}.move-history::-webkit-scrollbar{width:4px}.move-history::-webkit-scrollbar-thumb{background:var(--gold-dim);border-radius:2px}.move-history-number{color:var(--text-muted);margin-right:.35rem;font-size:.85rem}.game-over-modal{-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-gold);box-shadow:0 16px 48px #00000080, 0 0 32px var(--gold-glow);z-index:20;text-align:center;background:#0f1923f2;border-radius:1rem;flex-direction:column;gap:.75rem;min-width:16rem;padding:2rem;display:flex;position:fixed;top:50%;left:50%;transform:translate(-50%,-50%)}.game-over-modal[hidden]{display:none}.game-over-modal h2{color:var(--gold);margin:0 0 .25rem;font-family:Plus Jakarta Sans,sans-serif;font-size:1.5rem}.status{min-height:1.5em;font-size:1.1rem;font-weight:500}#board{box-sizing:border-box;perspective:none;transform-style:flat;touch-action:none;background:0 0;justify-content:center;align-items:center;width:900px;height:650px;margin:20px auto;padding:0 50px;display:flex;overflow:visible}#board canvas{object-fit:contain;width:100%;height:100%;display:block;transform:none}.room-code{letter-spacing:.15em;color:var(--gold);text-shadow:0 0 20px var(--gold-glow);font-family:Plus Jakarta Sans,sans-serif;font-size:1.5rem;font-weight:700}.clock{font-variant-numeric:tabular-nums;gap:.75rem;font-size:1.1rem;font-weight:500;display:flex}.clock-active{color:var(--gold);font-weight:700}#opponent-status{color:var(--gold-dim);font-weight:500}.promotion-dialog{-webkit-backdrop-filter:blur(16px);border:1px solid var(--border-gold);border-radius:var(--radius);z-index:10;background:#0f1923f2;gap:.25rem;padding:.75rem;display:flex;position:fixed;transform:translate(-50%,-50%);box-shadow:0 8px 32px #0006}.promotion-dialog[hidden]{display:none}.promotion-dialog button{cursor:pointer;background:var(--bg-surface);border:1px solid #0000;border-radius:.4rem;justify-content:center;align-items:center;width:3rem;height:3rem;padding:0;font-size:2rem;line-height:1;transition:all .15s;display:flex}.promotion-dialog button:hover{background:var(--bg-surface-hover);border-color:var(--gold-dim);transform:scale(1.1)}.promotion-dialog button:focus-visible{outline:2px solid var(--gold);outline-offset:2px}.back-link{color:var(--gold);opacity:.7;white-space:nowrap;font-size:.9rem;font-weight:500;text-decoration:none;transition:opacity .2s}.back-link:hover{opacity:1;text-decoration:underline}
