:root{
  --bg:#0b0705;
  --panel:#120c0a;
  --orange:#ff7a18;
  --orange-2:#ff9d3c;
  --amber:#ffb020;
  --text:#f4ece6;
  --muted:#b79b8a;
  --line:#3a2418;
  --green:#1ec36a;
  --red:#e33b3b;
  --lock:#ffb020;
  --neon-blue:#37b6ff;
  --neon-red:#ff3b3b;
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;height:100%;}
body{
  background:var(--bg);
  color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  overflow-x:hidden;
}
.screen{display:none;min-height:100vh;position:relative;padding-bottom:28px;}
.screen.active{display:block;}

/* ---------- Основная ---------- */
.bg{
  position:fixed;inset:0;z-index:0;
  background:url('/assets/bg.jpg') center/cover no-repeat;
}
.bg::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,3,2,.55),rgba(5,3,2,.8));}
.topbar{
  position:relative;z-index:2;
  display:flex;justify-content:space-between;align-items:flex-start;
  padding:16px 16px 0;
}
.balance{
  display:flex;align-items:center;gap:8px;
  background:rgba(10,7,5,.7);border:1px solid var(--line);
  padding:7px 14px 7px 8px;border-radius:999px;
  font-weight:800;font-size:20px;
  box-shadow:0 0 18px rgba(255,122,24,.25);
}
.coin{width:30px;height:30px;object-fit:contain;filter:drop-shadow(0 0 6px rgba(255,160,40,.6));}
.coin.sm{width:20px;height:20px;}
.avatar{
  width:60px;height:60px;border-radius:14px;object-fit:cover;
  border:2px solid var(--orange);background:#1a1109;
  box-shadow:0 0 16px rgba(255,122,24,.35);
}
.avatar[src=""],.avatar:not([src]){visibility:hidden;}
#screen-main.active{display:flex;flex-direction:column;min-height:100vh;}
.team-name{
  position:relative;z-index:2;
  flex:1;display:flex;align-items:center;justify-content:center;text-align:center;
  font-size:27px;font-weight:800;letter-spacing:.5px;
  padding:12px 18px;
  text-shadow:0 0 20px rgba(255,122,24,.5);
}
.main-center{
  position:relative;z-index:2;
  flex:1;
  display:flex;justify-content:center;align-items:center;
  padding:0 18px 24px;
}
.panel{
  width:100%;max-width:420px;
  background:rgba(8,5,4,.82);
  border:1px solid var(--line);
  border-radius:22px;
  padding:26px 20px;
  display:flex;flex-direction:column;gap:14px;
  box-shadow:0 0 40px rgba(0,0,0,.6), inset 0 0 30px rgba(255,122,24,.05);
}
.phase-badge{
  align-self:center;margin-top:8px;
  font-size:12px;letter-spacing:2px;font-weight:700;
  color:var(--amber);border:1px solid var(--line);border-radius:999px;
  padding:6px 16px;text-transform:uppercase;
}
.teams-subtitle{
  max-width:520px;margin:12px auto 0;padding:0 16px;
  text-align:center;color:var(--amber);font-weight:700;font-size:14px;
}
.btn{
  appearance:none;cursor:pointer;
  border:1px solid var(--orange);
  background:linear-gradient(180deg,rgba(255,122,24,.14),rgba(255,122,24,.05));
  color:var(--text);
  font-size:18px;font-weight:700;
  padding:16px;border-radius:14px;
  transition:transform .05s ease, box-shadow .2s ease, opacity .2s;
}
.btn:active{transform:scale(.98);}
.btn:hover{box-shadow:0 0 20px rgba(255,122,24,.3);}
.btn-accent{
  border-color:var(--amber);
  background:linear-gradient(180deg,rgba(255,176,32,.9),rgba(255,122,24,.85));
  color:#1a0e04;
}
.btn:disabled,.btn.disabled{
  opacity:.35;cursor:not-allowed;border-color:var(--line);
  background:rgba(255,255,255,.03);color:var(--muted);box-shadow:none;
}

/* ---------- Общий заголовок экранов ---------- */
.header{
  position:sticky;top:0;z-index:5;
  display:flex;align-items:center;gap:10px;
  padding:12px 14px;background:rgba(8,5,4,.96);
  border-bottom:1px solid var(--line);
}
.back{
  width:40px;height:40px;flex:0 0 40px;
  border-radius:12px;border:1px solid var(--line);
  background:rgba(255,122,24,.08);color:var(--orange-2);
  font-size:26px;line-height:1;cursor:pointer;
}
.header-title{flex:1;font-size:18px;font-weight:800;}
.header-bal{display:flex;align-items:center;gap:6px;font-weight:800;font-size:16px;}

/* ---------- Картинка бинго + оверлеи ---------- */
.bingo-wrap{position:relative;width:100%;max-width:520px;margin:12px auto 0;padding:0 10px;}
.bingo-img{display:block;width:100%;border-radius:14px;}
.overlay{position:absolute;inset:0 10px;pointer-events:none;}
.mark{
  position:absolute;transform:translate(-50%,-50%);
  width:6%;filter:drop-shadow(0 2px 6px rgba(0,0,0,.85));
}

/* ---------- Сетка кнопок клеток ---------- */
.cell-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:8px;
  max-width:520px;margin:16px auto 0;padding:0 12px;
}
.cell-btn{
  position:relative;aspect-ratio:1/1;
  border:1px solid var(--line);border-radius:12px;
  background:rgba(255,122,24,.06);color:var(--text);
  font-size:20px;font-weight:800;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
}
.cell-btn:active{transform:scale(.97);}
.cell-btn.st-done{border-color:var(--neon-blue);background:rgba(55,182,255,.12);box-shadow:0 0 12px rgba(55,182,255,.45);}
.cell-btn.st-blocked{border-color:var(--neon-red);background:rgba(255,59,59,.12);box-shadow:0 0 12px rgba(255,59,59,.45);}
.cell-btn.actionable{border-color:var(--orange);box-shadow:0 0 12px rgba(255,122,24,.25);}
.cell-btn.dim{opacity:.4;cursor:not-allowed;}
.cell-badge{
  position:absolute;top:2px;right:2px;width:20px;height:20px;object-fit:contain;
}

/* ---------- Список команд ---------- */
.teams-list{max-width:520px;margin:14px auto 0;padding:0 14px;display:flex;flex-direction:column;gap:10px;}
.team-row{
  display:flex;align-items:center;justify-content:space-between;
  padding:15px 16px;border-radius:14px;cursor:pointer;
  border:1px solid var(--line);background:rgba(255,122,24,.06);
}
.team-row:active{transform:scale(.99);}
.team-row.own{opacity:.7;border-style:dashed;}
.team-row.noclick{cursor:default;}
.team-row.noclick:active{transform:none;}
.team-row .rank{color:var(--muted);font-weight:700;margin-right:10px;}
.team-row .tname{flex:1;font-weight:700;font-size:16px;}
.team-row .tbal{display:flex;align-items:center;gap:6px;font-weight:800;color:var(--amber);}

/* ---------- Прочее ---------- */
.hint{max-width:520px;margin:14px auto 0;padding:0 18px;color:var(--muted);font-size:13px;text-align:center;line-height:1.5;}
.toast{
  position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(30px);
  background:#1c120b;border:1px solid var(--orange);color:var(--text);
  padding:12px 18px;border-radius:12px;max-width:88%;text-align:center;
  font-size:14px;opacity:0;transition:.25s;z-index:50;pointer-events:none;
  box-shadow:0 6px 30px rgba(0,0,0,.6);
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
