:root{
  --sky1:#7ec8f7; --sky2:#cfeeff; --ink:#1d2b45;
  --gold:#ffd45e; --btn:#31548f; --btnhi:#4470b8;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;touch-action:manipulation;}
html,body{margin:0;padding:0;height:100%;overflow:hidden;background:var(--ink);
  font-family:"Trebuchet MS","Segoe UI",system-ui,sans-serif;color:#fff;}
#wrap{display:flex;flex-direction:column;height:100dvh;width:100%;}
canvas{display:block;}
#gameArea{position:relative;flex:1;min-height:0;background:linear-gradient(var(--sky1),var(--sky2));}
#hud{position:absolute;top:0;left:0;right:0;display:flex;justify-content:space-between;
  align-items:flex-start;padding:8px 10px;pointer-events:none;font-weight:700;
  text-shadow:0 1px 2px rgba(0,0,0,.4);font-size:13px;gap:6px;}
#hpwrap{display:flex;gap:6px;flex-wrap:wrap;flex:1;}
.hpbox{background:rgba(20,35,60,.55);border-radius:10px;padding:5px 8px;min-width:88px;}
/* từ 5 tay súng trở lên: thẻ máu gọn lại cho khỏi che nửa màn hình */
#hpwrap.many{gap:4px;}
#hpwrap.many .hpbox{min-width:0;padding:3px 6px;max-width:96px;}
#hpwrap.many .hpname{font-size:9px;letter-spacing:0;overflow:hidden;text-overflow:ellipsis;}
#hpwrap.many .hpbar{height:5px;margin-top:3px;}
.hpbox.dead{opacity:.45;filter:grayscale(1);}
.hpbox.active{outline:2px solid var(--gold);}
.hpname{font-size:10px;letter-spacing:.4px;opacity:.95;white-space:nowrap;}
.hpbar{height:7px;border-radius:5px;background:rgba(255,255,255,.25);margin-top:4px;overflow:hidden;}
.hpfill{height:100%;border-radius:5px;transition:width .3s;}
#windbox{background:rgba(20,35,60,.55);border-radius:10px;padding:6px 12px;text-align:center;}
#windarrow{font-size:16px;display:block;line-height:1;}
#turnbanner{position:absolute;top:56px;left:50%;transform:translateX(-50%);
  background:rgba(20,35,60,.65);color:var(--gold);font-weight:800;font-size:13px;
  padding:4px 14px;border-radius:999px;pointer-events:none;white-space:nowrap;
  text-shadow:0 1px 2px rgba(0,0,0,.5);}
#controls{background:linear-gradient(#213a63,#182a4a);
  /* nen full width, noi dung gom lai giua man cho khoi keo dai le the */
  padding:8px max(10px, calc((100% - 900px) / 2)) calc(8px + env(safe-area-inset-bottom));
  display:grid;grid-template-columns:auto 1fr auto;gap:8px;align-items:center;}
.btn{border:0;border-radius:12px;background:var(--btn);color:#fff;font-weight:800;
  font-size:18px;padding:0;height:52px;min-width:52px;box-shadow:0 3px 0 #16294a;
  display:flex;align-items:center;justify-content:center;user-select:none;-webkit-user-select:none;}
.btn:active{background:var(--btnhi);transform:translateY(2px);box-shadow:0 1px 0 #16294a;}
.btn.sm{height:36px;min-width:44px;}
.btncol{display:flex;gap:8px;}
#midcol{display:flex;flex-direction:column;gap:6px;min-width:0;}
#angleRow{display:flex;align-items:center;justify-content:center;gap:10px;color:#cfe3ff;
  font-weight:800;font-size:14px;}
#angleVal{color:var(--gold);min-width:44px;text-align:center;font-size:16px;}
/* item 🪂 bay đổi chỗ — bật sáng khi đã chọn, gồng thanh lực là bay */
.btn.item{font-size:15px;background:#2d4a80;position:relative;margin-left:6px;}
.btn.item b{font-size:10px;vertical-align:super;color:var(--gold);}
.btn.item.on{background:linear-gradient(#7ddb82,#4caf50);color:#0d3a10;
  box-shadow:0 0 0 2px var(--gold),0 3px 0 #16294a;}
#powerTrack{position:relative;height:20px;border-radius:10px;background:#12203c;overflow:hidden;
  border:2px solid #0d1830;}
#powerFill{position:absolute;inset:0;width:0%;
  background:linear-gradient(90deg,#4caf50,#ffd45e 55%,#ff5d6c);}
#powerTicks{position:absolute;inset:0;background:repeating-linear-gradient(90deg,
  transparent 0 24%, rgba(255,255,255,.35) 24% 25%);}
/* vạch đánh dấu lực của cú bắn trước + số lực hiện tại */
#powerMark{position:absolute;top:-3px;bottom:-3px;width:3px;margin-left:-1.5px;display:none;
  background:#fff;border-radius:2px;box-shadow:0 0 0 1px rgba(0,0,0,.55),0 0 6px rgba(255,255,255,.7);
  transition:left .15s;pointer-events:none;}
#powerVal{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-size:11px;font-weight:800;color:#fff;letter-spacing:.5px;pointer-events:none;
  text-shadow:0 1px 2px rgba(0,0,0,.85);}
#fireBtn{height:66px;min-width:86px;border-radius:16px;font-size:16px;letter-spacing:.5px;
  background:linear-gradient(#ff7d54,#f14e3a);box-shadow:0 4px 0 #a52e20;}
#fireBtn.charging{background:linear-gradient(#ffd45e,#ffab3a);color:#5a3200;}
#fireBtn small{font-size:9px;font-weight:700;opacity:.85;letter-spacing:0;}
.fuel{display:flex;gap:3px;justify-content:center;}
/* hàng nhiên liệu + chọn loại đạn — nhét chung 1 dòng cho khỏi cao thêm */
#fuelrow{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;}
.ammo{display:flex;gap:4px;}
.ammobtn{border:0;border-radius:8px;background:#12203c;color:#8fa8cf;font-weight:800;
  font-size:12px;padding:2px 7px;min-width:34px;height:24px;line-height:1;
  display:flex;align-items:center;justify-content:center;}
.ammobtn b{font-size:9px;margin-left:2px;align-self:flex-start;color:var(--gold);}
.ammobtn.on{background:linear-gradient(#ffd45e,#ffab3a);color:#5a3200;}
.ammobtn.on b{color:#8a5600;}
.ammobtn:disabled{opacity:.3;}
.fuel i{width:14px;height:6px;border-radius:3px;background:#12203c;}
.fuel i.on{background:var(--gold);}
.overlay{position:fixed;inset:0;display:none;align-items:center;justify-content:flex-start;
  flex-direction:column;gap:12px;background:rgba(13,24,48,.92);text-align:center;z-index:5;padding:16px;
  overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;}
.overlay.show{display:flex;}
/* 2 đệm margin:auto để căn giữa khi nội dung ngắn, nhưng KHÔNG cắt đầu/cuối khi dài.
   (justify-content:center trong khung cuộn được sẽ cắt phần tràn ở trên và không cuộn tới được) */
.overlay.show::before,.overlay.show::after{content:'';flex:0 0 auto;margin:auto;}
.overlay .hint{opacity:.6;font-size:11px;}
.overlay h2{margin:0;font-size:26px;color:var(--gold);text-shadow:0 2px 4px rgba(0,0,0,.5);}
.overlay p{margin:0;font-size:13px;opacity:.9;max-width:300px;line-height:1.5;}
.obtn{border:0;border-radius:14px;padding:13px 22px;font-size:15px;font-weight:800;
  min-width:220px;box-shadow:0 4px 0 rgba(0,0,0,.35);}
.obtn:disabled{opacity:.4;}
.obtn.gold{background:linear-gradient(#ffd45e,#ffab3a);color:#5a3200;}
.obtn.blue{background:linear-gradient(#5db2ff,#3d8bff);color:#08213f;}
.inp{border:0;border-radius:12px;padding:13px 16px;font-size:16px;text-align:center;
  width:220px;background:#12203c;color:#fff;outline:2px solid #31548f;font-weight:700;}
.inp.code{width:110px;text-transform:uppercase;letter-spacing:4px;}
.joinrow{display:flex;gap:8px;align-items:center;}
.joinrow .obtn{min-width:0;padding:13px 18px;}
.err{color:#ff8f9a !important;font-weight:700;}
.codebig{color:#fff;background:#31548f;padding:2px 12px;border-radius:10px;letter-spacing:5px;}
.seg{display:flex;gap:0;border-radius:12px;overflow:hidden;box-shadow:0 3px 0 rgba(0,0,0,.35);}
.seg button{border:0;padding:11px 18px;font-size:14px;font-weight:800;background:#12203c;color:#8fa8cf;}
.seg button.on{background:linear-gradient(#5db2ff,#3d8bff);color:#08213f;}
/* chế độ + chọn map nằm chung 1 hàng trên màn rộng, tự xuống dòng khi hẹp */
.segrow{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.teams{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;}
.teamcol{background:rgba(255,255,255,.06);border-radius:12px;padding:8px;min-width:130px;
  display:flex;flex-direction:column;gap:6px;}
.teamhead{font-weight:800;font-size:12px;padding:4px;border-radius:8px;}
.teamhead.a{background:#1d5cc0;} .teamhead.b{background:#c02e40;}
.pill{background:rgba(255,255,255,.12);border-radius:8px;padding:6px 10px;font-size:13px;font-weight:700;}
.pill.bot{background:rgba(255,159,67,.22);color:#ffd0a0;cursor:pointer;}
.botrow{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;}
.obtn.tiny{min-width:0;padding:10px 16px;font-size:13px;}
.fsbtn{pointer-events:auto;border:0;border-radius:10px;background:rgba(20,35,60,.55);
  color:#fff;font-size:18px;width:38px;height:38px;font-weight:800;
  display:flex;align-items:center;justify-content:center;}
.fsbtn:active{background:rgba(68,112,184,.8);}
/* ---- chat ---- */
.chatbox{width:min(340px,88vw);background:rgba(255,255,255,.06);border-radius:12px;padding:8px;
  display:flex;flex-direction:column;gap:6px;}
.chatlog{display:flex;flex-direction:column-reverse;gap:3px;overflow-y:auto;
  max-height:130px;min-height:56px;text-align:left;}
.chatline{font-size:12px;line-height:1.45;color:#e6efff;word-break:break-word;}
.chatline .ta{color:#8fd0ff;} .chatline .tb{color:#ff9aa6;}
.chatrow{display:flex;gap:6px;}
.chatinp{flex:1;width:auto;text-align:left;padding:10px 12px;font-size:14px;}
.chatsend{min-width:48px;padding:10px 0;}
.chattoggle{position:absolute;right:10px;top:56px;z-index:4;border:0;border-radius:12px;
  width:42px;height:42px;font-size:18px;background:rgba(20,35,60,.6);color:#fff;
  display:flex;align-items:center;justify-content:center;}
.badge{position:absolute;top:-5px;right:-5px;background:#ff5d6c;color:#fff;font-size:10px;
  font-weight:800;border-radius:999px;min-width:17px;height:17px;line-height:17px;padding:0 3px;}
.chatpanel{position:absolute;right:8px;top:104px;z-index:4;width:min(290px,80vw);
  background:rgba(13,24,48,.92);border-radius:14px;padding:8px;
  display:flex;flex-direction:column;gap:6px;box-shadow:0 6px 20px rgba(0,0,0,.4);
  max-height:calc(100% - 116px);overflow-y:auto;}
.chatpanel .chatlog{max-height:150px;}
.quickrow{display:flex;gap:6px;}
.quickrow button{flex:1;border:0;border-radius:10px;background:#31548f;font-size:16px;
  padding:7px 0;}
.chatghost{position:absolute;left:10px;bottom:56px;z-index:3;pointer-events:none;
  display:flex;flex-direction:column;gap:2px;max-width:60vw;
  animation:ghostin .18s ease-out;}
@keyframes ghostin{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.chatghost .chatline{background:rgba(13,24,48,.55);border-radius:8px;padding:3px 8px;
  font-size:11px;}
.tauntgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.tauntgrid button{border:0;border-radius:10px;background:linear-gradient(#ff9b7a,#f14e3a);
  color:#fff;font-size:11px;font-weight:800;padding:8px 4px;box-shadow:0 2px 0 #a52e20;
  white-space:nowrap;}
.tauntgrid button:active{transform:translateY(1px);box-shadow:0 1px 0 #a52e20;}

/* ---- man ngang thap (dien thoai xoay ngang): bop nut lai de chua canvas ---- */
@media (max-height:520px){
  .btn{height:42px;min-width:42px;font-size:16px;}
  .btn.sm{height:30px;min-width:38px;}
  #fireBtn{height:50px;min-width:74px;font-size:12px;border-radius:12px;}
  #controls{padding-top:5px;padding-bottom:calc(5px + env(safe-area-inset-bottom));gap:6px;}
  #midcol{gap:4px;}
  #angleRow{font-size:12px;gap:6px;}
  #angleVal{font-size:14px;min-width:38px;}
  #powerTrack{height:15px;}
  #powerVal{font-size:9px;}
  .fuel i{height:5px;width:12px;}
  #fuelrow{gap:8px;}
  .ammobtn{height:20px;font-size:11px;min-width:30px;padding:2px 5px;}
  #turnbanner{top:40px;font-size:12px;padding:3px 12px;}
  .chattoggle{top:40px;width:36px;height:36px;font-size:16px;}
  .chatpanel{top:82px;}
}

/* ---- dien thoai cam doc: bao xoay ngang thay vi de game bi bop det ---- */
#rotate{display:none;}
@media (orientation:portrait) and (max-width:900px){
  #rotate{position:fixed;inset:0;z-index:60;display:flex;flex-direction:column;gap:14px;
    align-items:center;justify-content:center;background:rgba(13,24,48,.97);
    color:#fff;text-align:center;padding:24px;font-weight:800;font-size:17px;line-height:1.5;}
  #rotate .ico{font-size:66px;line-height:1;animation:tilt 1.8s ease-in-out infinite;}
  #rotate small{font-weight:600;font-size:12px;opacity:.65;max-width:280px;}
}
@keyframes tilt{0%,55%{transform:rotate(0)}75%,100%{transform:rotate(90deg)}}

/* ---- phòng chờ trên màn ngang thấp: bóp mọi thứ lại cho đủ nút trong 1 màn ---- */
@media (max-height:640px){
  .overlay{gap:7px;padding:10px;}
  .overlay h2{font-size:19px;}
  .overlay p{font-size:11px;line-height:1.35;max-width:340px;}
  .overlay .hint{display:none;}          /* các dòng gợi ý nhỏ — cắt cho gọn */
  .obtn{padding:9px 18px;font-size:13px;min-width:170px;box-shadow:0 3px 0 rgba(0,0,0,.35);}
  .obtn.tiny{padding:7px 12px;font-size:12px;}
  .inp{padding:9px 12px;font-size:14px;width:180px;}
  .inp.code{width:96px;}
  .seg button{padding:8px 14px;font-size:12px;}
  .teams{gap:8px;}
  .teamcol{padding:6px;min-width:104px;gap:4px;}
  .teamhead{font-size:11px;padding:3px;}
  .pill{padding:4px 8px;font-size:12px;}
  .codebig{letter-spacing:3px;padding:2px 9px;}
  .chatbox{padding:6px;gap:4px;width:min(320px,86vw);}
  .chatlog{max-height:56px;min-height:28px;}
  .chatbox .tauntgrid button{font-size:10px;padding:5px 3px;}
  .chatinp{padding:7px 10px;font-size:13px;}
  .chatsend{min-width:40px;padding:7px 0;}
}
