:root{
  --bg:#070A10;
  --panel:#0E1424;
  --ink:#EAF0FF;
  --muted:#9FB0D0;
  --a:#5EEAD4;
  --b:#60A5FA;
  --danger:#F97316;
  --bad:#FB7185;
  --good:#34D399;
  --grid:#111A2E;
  --tile:#0B1020;
  --tile2:#0F1830;
  --line:rgba(255,255,255,.08);
}

*{box-sizing:border-box}
html,body{height:100%}
body{
  margin:0;
  background:radial-gradient(1200px 900px at 20% 0%, rgba(96,165,250,.15), transparent 55%),
             radial-gradient(900px 700px at 100% 10%, rgba(94,234,212,.12), transparent 55%),
             var(--bg);
  color:var(--ink);
  font-family: system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif;
}

.wrap{max-width:900px;margin:0 auto;padding:14px}
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px}
.brand{display:flex;align-items:center;gap:10px}
.logo{
  width:44px;height:44px;border-radius:14px;
  display:grid;place-items:center;
  background:linear-gradient(135deg, rgba(96,165,250,.25), rgba(94,234,212,.18));
  border:1px solid var(--line);
  font-size:20px;
}
.title{font-weight:900;letter-spacing:.12em}
.subtitle{color:var(--muted);font-size:12px;letter-spacing:.14em;margin-top:2px}

.hud{display:flex;gap:10px}
.hudbox{
  min-width:86px;
  padding:10px 12px;
  background:rgba(14,20,36,.6);
  border:1px solid var(--line);
  border-radius:16px;
  backdrop-filter: blur(8px);
}
.label{font-size:11px;color:var(--muted);letter-spacing:.12em}
.value{font-size:18px;font-weight:800;margin-top:3px}

.main{margin-top:12px}
canvas{
  width:100%;
  height: min(62vh, 620px);   /* keeps gameplay in correct area */
  border-radius:22px;
  background:linear-gradient(180deg, rgba(14,20,36,.55), rgba(14,20,36,.35));
  border:1px solid var(--line);
  display:block;
  touch-action: none;         /* important for accurate taps */
}
.controls{
  display:flex;gap:10px;flex-wrap:wrap;
  margin-top:12px;
}
.btn{
  flex:1;
  min-width:120px;
  padding:12px 14px;
  border-radius:18px;
  border:1px solid var(--line);
  background:rgba(14,20,36,.55);
  color:var(--ink);
  font-weight:800;
  letter-spacing:.06em;
}
.btn.primary{
  background:linear-gradient(135deg, rgba(96,165,250,.35), rgba(94,234,212,.26));
  border-color:rgba(96,165,250,.35);
}
.btn:active{transform:scale(.99)}

.actionbar{
  margin-top:10px;
  display:flex;
  gap:10px;
  align-items:center;
  padding:10px;
  border-radius:20px;
  border:1px solid var(--line);
  background:rgba(14,20,36,.45);
}

.pill {
  width: 64px;
  height: 56px;
  min-width: 56px;   /* fallback */
  font-size: 24px;   /* bigger emoji */
}
.pill2{
  width:56px;height:50px;
  border-radius:18px;
  border:1px solid var(--line);
  background:rgba(7,10,16,.35);
  color:var(--ink);
  font-size:20px;
}
.pill.active{
  outline:2px solid rgba(94,234,212,.5);
  box-shadow:0 0 0 6px rgba(94,234,212,.07);
}

.charges{display:flex;gap:12px;margin-left:auto;color:var(--muted);font-weight:700}
.c span{color:var(--ink)}

.panel{
  position:fixed;inset:0;
  background:rgba(0,0,0,.55);
  display:grid;place-items:center;
  padding:18px;
}
.panel.hidden{display:none}
.panelCard{
  width:min(680px, 100%);
  background:linear-gradient(180deg, rgba(14,20,36,.92), rgba(14,20,36,.75));
  border:1px solid var(--line);
  border-radius:22px;
  padding:18px;
  position:relative;
}
.x{
  position:absolute;top:10px;right:12px;
  border:1px solid var(--line);
  background:rgba(0,0,0,.25);
  color:var(--ink);
  border-radius:14px;
  width:40px;height:36px;
  font-weight:900;
}
.foot{margin-top:12px;color:var(--muted);font-size:12px;text-align:center}
.small{color:var(--muted);font-size:13px;line-height:1.45}
.row{display:flex;gap:10px;flex-wrap:wrap;margin-top:12px}
input,select{
  width:100%;
  padding:12px 12px;
  border-radius:16px;
  border:1px solid var(--line);
  background:rgba(7,10,16,.25);
  color:var(--ink);
  font-weight:700;
}
.lb{
  width:100%;
  border-collapse:collapse;
  margin-top:10px;
  overflow:hidden;
  border-radius:16px;
}
.lb th,.lb td{
  padding:10px 10px;
  border-bottom:1px solid rgba(255,255,255,.06);
  text-align:left;
  font-size:13px;
}
.btn, .pill {
  touch-action: manipulation;   /* faster tap response, no 300ms delay */
}
.lb th{color:var(--muted);font-weight:900;letter-spacing:.08em}
.badge{padding:3px 8px;border-radius:999px;border:1px solid var(--line);font-size:12px;color:var(--muted)}