:root { --bg:#0b0b0d; --card:#16161a; --accent:#ffd500; --text:#eaeaea; --muted:#9aa0a6; }
*{box-sizing:border-box}
body{margin:0;font-family:system-ui,-apple-system,Segoe UI,Roboto; background:var(--bg); color:var(--text);}
header{display:flex;justify-content:space-between;align-items:center;padding:12px 18px;border-bottom:1px solid #222}
header h1{font-size:20px;margin:0}
nav a{color:var(--text);text-decoration:none;margin-right:12px}
nav a:hover{color:var(--accent)}
main{max-width:1000px;margin:20px auto;padding:0 16px}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.card{background:var(--card);padding:16px;border-radius:14px;box-shadow:0 8px 28px rgba(0,0,0,.25)}
h2,h3,h4{margin-top:0}
table{width:100%;border-collapse:collapse}
th,td{border:1px solid #333;padding:4px 6px;text-align:center}
.mini-card{border:1px solid #444;font-size:12px}
.mini-card td{width:24px;height:24px}
.free{background:#17323a;color:#7bdcff;font-weight:700}
.flash{padding:8px;border-radius:10px;margin:8px 0}
.flash.success{background:#143d2a;color:#a2f5c6}
.flash.info{background:#1c2a3d;color:#b0cbff}
.flex{display:flex;gap:30px;flex-wrap:wrap}
button{background:var(--accent);border:none;border-radius:12px;padding:10px 14px;font-weight:700;cursor:pointer}
button:hover{filter:brightness(0.95)}
form input, form select{background:#0f1114;border:1px solid #333;color:var(--text);padding:8px;border-radius:10px;width:100%;margin-bottom:8px}
.inline{display:inline-block;margin-right:8px}
.btn{display:inline-block;background:#444;color:#fff;padding:10px 12px;border-radius:10px;text-decoration:none;margin-left:8px}

/* Manual board + animation */
.board{display:grid;grid-template-columns:repeat(15,1fr);gap:6px;margin-top:8px}
.ball{width:100%;padding:8px;border-radius:999px;border:none;font-weight:800;cursor:pointer;box-shadow:0 2px 8px rgba(0,0,0,.3)}
.ball.small{font-size:12px}
.ball.drawn{opacity:.35;filter:grayscale(.2);cursor:default}
.ball.blue{background:#0d6efd;color:#fff}
.ball.red{background:#dc3545;color:#fff}
.ball.white{background:#f0f0f0;color:#111}
.ball.green{background:#198754;color:#fff}
.ball.yellow{background:#ffd000;color:#111}

.big-ball{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.55);z-index:9999}
.big-ball.hidden{display:none}
.big-ball > span{display:flex;align-items:center;justify-content:center;width:180px;height:180px;border-radius:50%;font-size:84px;font-weight:900;box-shadow:0 8px 30px rgba(0,0,0,.45);border:6px solid rgba(255,255,255,.85)}
.big-ball.blue > span{background:#0d6efd;color:#fff}
.big-ball.red > span{background:#dc3545;color:#fff}
.big-ball.white > span{background:#f0f0f0;color:#111}
.big-ball.green > span{background:#198754;color:#fff}
.big-ball.yellow > span{background:#ffd000;color:#111}

@keyframes popZoom { 0%{transform:scale(.2);opacity:0} 60%{transform:scale(1.05);opacity:1} 100%{transform:scale(1);opacity:1} }
.pop > span{animation: popZoom .8s ease-out both}

.host-controls .lg{font-size:18px;padding:12px 18px}
.host-controls .xl{font-size:22px;padding:16px 22px}
.boardHost{display:grid;grid-template-columns:repeat(10,1fr);gap:10px}
.ball.xl{font-size:22px;padding:16px}
