*{box-sizing:border-box}body{margin:0;font-family:Segoe UI,system-ui,-apple-system,sans-serif;background:#1d2126;color:#e8e4da;min-height:100vh}h1{margin:.4em 0 .1em;letter-spacing:1px}.tagline{color:#9aa3ad;margin-top:0}.lobby{max-width:460px;margin:8vh auto;padding:0 16px;text-align:center}.card{background:#272d34;border:1px solid #3a424c;border-radius:12px;padding:20px;margin-top:16px;display:flex;flex-direction:column;gap:12px}.card h3{margin:0}.card table{width:100%;text-align:left;border-spacing:4px}.row{display:flex;gap:8px;align-items:center;justify-content:center}input,select{background:#1d2126;color:#e8e4da;border:1px solid #3a424c;border-radius:8px;padding:10px 12px;font-size:15px}button{background:#3a424c;color:#e8e4da;border:none;border-radius:8px;padding:10px 18px;font-size:15px;font-weight:600;cursor:pointer}button:hover{filter:brightness(1.15)}button.primary{background:#2f7d4f}button.danger{background:#7d2f2f}.code{font-size:20px;font-weight:800;letter-spacing:2px;color:#ffd54a}.banner{background:#2f7d4f33;border:1px solid #2f7d4f;border-radius:8px;padding:10px;margin-top:12px}.game{max-width:1080px;margin:0 auto;padding:12px 16px 24px}.board{width:100%;height:auto;display:block;-webkit-user-select:none;user-select:none}.topbar{display:flex;justify-content:space-between;align-items:center;padding:8px 4px}.player .score{background:#3a424c;border-radius:6px;padding:2px 10px;margin-left:10px;font-weight:800}.matchinfo{color:#9aa3ad}.crawford{color:#ffd54a}.controls{display:flex;gap:10px;align-items:center;padding-top:12px;flex-wrap:wrap}.controls .status{color:#cfc8ba;font-size:15px}.controls .spacer{flex:1}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:#11141a;border:1px solid #3a424c;color:#ffe9c9;border-radius:10px;padding:12px 20px;box-shadow:0 6px 24px #00000080}
