*{margin:0;padding:0;box-sizing:border-box}
:root{
  --bg:#030507;--panel:#080c10;--amber:#ffb700;--green:#00ff41;
  --gdim:rgba(0,255,65,.18);--text:#b0c0c8;--dim:#384858;
  --fd:'Orbitron',monospace;--fb:'Share Tech Mono',monospace;
}
html,body{min-height:100vh;background:var(--bg);color:var(--text);font-family:var(--fb);
  display:flex;flex-direction:column;align-items:center;user-select:none;overflow-y:auto}

/* ── HEADER ── */
.hdr{width:100%;max-width:1100px;display:flex;align-items:center;justify-content:space-between;
  padding:10px 16px 8px;border-bottom:1px solid var(--gdim);flex-shrink:0}
.hdr-t{font-family:var(--fd);font-size:14px;font-weight:900;color:var(--green);
  letter-spacing:2px;text-shadow:0 0 8px rgba(0,255,65,.5)}
.hdr-b{font-family:var(--fd);font-size:9px;color:var(--dim);text-decoration:none;
  letter-spacing:1px;border:1px solid #1a2535;padding:3px 10px;transition:.2s}
.hdr-b:hover{color:var(--green);border-color:var(--gdim)}

/* ── SCREENS ── */
.screen{display:none;width:100%;flex-direction:column;align-items:center}
.screen.active{display:flex}

/* ── MENU ── */
#menuScreen{padding:30px 16px}
.menu-card{background:var(--panel);border:1px solid #1a2535;padding:28px 32px;
  width:100%;max-width:400px;display:flex;flex-direction:column;gap:14px}
.menu-title{font-family:var(--fd);font-size:22px;font-weight:900;color:var(--green);
  letter-spacing:3px;text-shadow:0 0 10px rgba(0,255,65,.4);text-align:center;margin-bottom:8px}
.form-row{display:flex;flex-direction:column;gap:5px}
.form-row label{font-family:var(--fd);font-size:8px;letter-spacing:2px;color:var(--dim)}
.form-row input,.form-row select{
  background:#0a0f14;border:1px solid #1a2535;color:var(--text);
  font-family:var(--fb);font-size:13px;padding:7px 10px;
  outline:none;transition:.2s}
.form-row input:focus,.form-row select:focus{border-color:var(--gdim)}
.form-row select option{background:#0a0f14}
.btn{font-family:var(--fd);font-size:11px;letter-spacing:2px;color:#000;background:var(--green);
  border:none;padding:10px 20px;cursor:pointer;
  box-shadow:0 0 8px rgba(0,255,65,.35);transition:.15s;width:100%}
.btn:hover{transform:scale(1.02);box-shadow:0 0 14px rgba(0,255,65,.55)}
.btn:active{transform:scale(.98)}
.btn-amber{background:var(--amber);box-shadow:0 0 8px rgba(255,183,0,.35)}
.btn-amber:hover{box-shadow:0 0 14px rgba(255,183,0,.55)}
.btn-ghost{background:transparent;color:var(--green);border:1px solid var(--gdim);box-shadow:none}
.btn-ghost:hover{background:rgba(0,255,65,.07)}

/* ── GAME SCREEN ── */
#gameScreen{flex-direction:column;align-items:center;padding-bottom:12px}
.game-header{width:100%;max-width:1100px;display:flex;align-items:center;
  justify-content:space-between;padding:8px 16px;border-bottom:1px solid var(--gdim);flex-shrink:0}
.game-title-sm{font-family:var(--fd);font-size:12px;font-weight:900;color:var(--green);
  letter-spacing:2px}
#turnInfo{font-family:var(--fd);font-size:10px;color:var(--amber);letter-spacing:1px}
.canvas-wrap{position:relative;margin:10px auto}
#billiardsCanvas{display:block;border:2px solid #1a2535;
  box-shadow:0 0 20px rgba(0,0,0,.8),inset 0 0 12px rgba(0,0,0,.5);cursor:grab}
#billiardsCanvas:active{cursor:grabbing}
.controls-bar{width:100%;max-width:1100px;background:var(--panel);
  border-top:1px solid #1a2535;padding:6px 16px;
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;flex-shrink:0}
.ctrl-btn{font-family:var(--fd);font-size:8px;letter-spacing:1px;color:var(--dim);
  background:#0a0f14;border:1px solid #1a2535;padding:5px 10px;cursor:pointer;transition:.2s;white-space:nowrap}
.ctrl-btn:hover{color:var(--green);border-color:var(--gdim)}
.ctrl-btn.on{color:var(--green);border-color:var(--gdim);
  box-shadow:0 0 6px rgba(0,255,65,.25)}
#msgBox{flex:1;font-family:var(--fb);font-size:11px;color:var(--text);
  background:#050a0e;border:1px solid #1a2535;padding:5px 10px;text-align:center;min-height:28px;
  display:flex;align-items:center;justify-content:center}
.english-wrap{display:flex;align-items:center;gap:6px}
.english-wrap label{font-family:var(--fd);font-size:8px;color:var(--dim);letter-spacing:1px}
#englishCanvas{width:38px;height:38px;border-radius:50%;cursor:crosshair;
  border:1px solid #1a2535;background:#e0e0e0;box-shadow:inset 0 0 4px rgba(0,0,0,.3)}

/* ── TURN DIALOG ── */
#turnDialog{position:fixed;inset:0;background:rgba(2,3,5,.88);
  display:none;align-items:center;justify-content:center;z-index:200}
#turnDialog.active{display:flex}
.dialog-box{background:var(--panel);border:1px solid var(--gdim);padding:36px 52px;
  text-align:center;box-shadow:0 0 40px rgba(0,255,65,.12)}
.dialog-box h2{font-family:var(--fd);font-size:18px;color:var(--green);
  letter-spacing:2px;margin-bottom:20px;text-shadow:0 0 8px rgba(0,255,65,.4)}
.dialog-box .btn{max-width:200px;margin:0 auto}

/* ── FOOTER ── */
.ftr{width:100%;text-align:center;padding:10px;font-size:9px;color:var(--dim);
  letter-spacing:2px;border-top:1px solid rgba(0,255,65,.06)}
