/* ==== BASE ==== */
*, *::before, *::after { box-sizing: border-box; }

:root{
  --bg:#050505;
  --g:#39ff14;
  --y:#f4ff59;
  --r:#ff3131;
  --t:#eee;
  --f:'Exo 2',sans-serif;
  --btn:linear-gradient(145deg,#1a1a1e,#0a0a0c);
}

html,body{
  margin:0;
  padding:0;
  height:100%;
  background:radial-gradient(circle at 50% 50%,#111115 0%,#050505 100%);
  color:var(--t);
  font-family:var(--f);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  touch-action:manipulation;
  user-select:none;
}

/* ==== LEVEL BAR ==== */
.level-container{
  width:100%;
  height:22px;
  background:#000;
  border-bottom:1px solid #222;
  flex-shrink:0;
  position:relative;
  overflow:hidden;
}
#level-progress-bar{
  height:100%;
  width:0%;
  background:linear-gradient(90deg,#1a4a1a,var(--g));
  box-shadow:0 0 15px var(--g);
  transition:width .35s ease;
}
#level-text{
  position:absolute;
  width:100%;
  text-align:center;
  font-size:.65rem;
  color:#fff;
  z-index:1001;
  line-height:22px;
  font-weight:900;
  text-shadow:0 0 5px #000;
}

/* ==== HEADER ==== */
header{
  width:100%;
  flex-shrink:0;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(10px);
  display:flex;
  flex-direction:column;

  /* safe-area + padding */
  padding-top:8px;
  padding-bottom:8px;
  padding-left:max(10px, env(safe-area-inset-left));
  padding-right:max(10px, env(safe-area-inset-right));

  border-bottom:1px solid #222;
  z-index:1000;

  /* страховка от “резанья” по X */
  overflow-x:hidden;
}

/* TOP ROW LAYOUT FIX (ключевое) */
.top-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  width:100%;
  margin-bottom:8px;
}

/* левый блок (rank + sync-controls) */
.top-row > div{
  min-width:0;      /* магия для Android */
  flex:1 1 auto;    /* может сжиматься */
  display:flex;
  align-items:center;
}

/* rank */
.rank-box{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;      /* важнее чем min-width:130px */
}

/* кнопки справа в левом блоке */
.sync-controls{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:10px;
  min-width:0;         /* тоже важно */
  flex-wrap:nowrap;
}

/* FULL кнопка справа (отдельно) */
#free-toggle-btn{
  flex:0 0 auto;
  white-space:nowrap;
  flex-shrink:0;
  margin-left:8px;
}

/* ==== BUTTONS ==== */
.mini-btn{
  padding:4px 8px;
  font-size:.55rem;
  font-weight:900;
  background:#111;
  border:1px solid #333;
  color:#666;
  border-radius:4px;
  cursor:pointer;
  text-transform:uppercase;
  transition:.2s;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}
.mini-btn:active{
  transform:scale(.95);
  background:#222;
}

/* единый размер “кнопочного ряда” */
.btn-prof,
.btn-rank,
#free-toggle-btn,
#crystal-count{
  height:44px;
  min-width:44px;
  padding:0 14px;
  border-radius:4px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
}

/* иконки */
.btn-prof,
.btn-rank{
  padding:0;
  font-size:2rem;
  line-height:1;
}

.btn-prof{
  color:#fff;
  border-color:#555;
}
.btn-rank{
  color:var(--y);
  border-color:rgba(244,255,89,.3);
}

.btn-prof.disabled{
  opacity:.3;
  pointer-events:none;
}

/* FULL */
#free-toggle-btn{
  color:var(--y);
  border-color:rgba(244,255,89,.2);
  min-width:64px;
  font-size:1rem;
  letter-spacing:.5px;
}
#free-toggle-btn.active{
  background:var(--y);
  color:#000;
  box-shadow:0 0 10px var(--y);
  border-color:var(--y);
}

/* crystals button */
#crystal-count{
  background:#111;
  border:1px solid rgba(244,255,89,.30);
  color:var(--y);
  font-weight:900;
  font-size:1.2rem;
  text-shadow:0 0 10px rgba(244,255,89,.35);
  gap:8px;
  white-space:nowrap;
  cursor:pointer;
  user-select:none;

  /* важно: НЕ раздувать шапку на узких экранах */
  min-width:110px;
}
#crystal-count:active{
  transform:scale(.95);
  background:#222;
}

/* text bits */
#match-info{
  font-size:1rem;
  color:var(--g);
  font-weight:900;
  transition:transform .2s cubic-bezier(.175,.885,.32,1.275),text-shadow .2s;
}
#match-info.bump{
  transform:scale(1.2);
  text-shadow:0 0 15px var(--g);
}
.crystals{
  color:var(--y);
  font-size:1.1rem;
  cursor:pointer;
  text-shadow:0 0 10px rgba(244,255,89,.4);
}

/* ==== MODES ==== */
.modes{ display:flex; gap:6px; padding:2px; }
.mode-btn{
  background:var(--btn);
  border:1px solid rgba(255,255,255,.05);
  color:#555;
  padding:6px 2px;
  border-radius:8px;
  font-size:.5rem;
  flex:1;
  text-align:center;
  cursor:pointer;
  box-shadow:2px 2px 5px #000;
}
.mode-btn b{
  display:block;
  color:#444;
  font-size:.5rem;
  margin-top:2px;
}
.mode-btn.active{
  color:#fff;
  border-color:rgba(244,255,89,.3);
}
.mode-btn.active b{ color:var(--y); }

/* ==== NAME OVERLAY ==== */
#name-overlay{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.95);
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  z-index:5000;
  backdrop-filter:blur(20px);
}
.name-input{
  background:#111;
  border:2px solid var(--g);
  color:#fff;
  padding:15px;
  border-radius:10px;
  font-family:var(--f);
  font-size:1.2rem;
  text-align:center;
  outline:none;
  margin-bottom:20px;
}

/* ==== MAIN / GRID ==== */
main{
  flex-grow:1;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:repeat(4,1fr);
  gap:10px;
  padding:12px;
  position:relative;
  min-width:0;
}
.card{
  border:1px solid rgba(255,255,255,.1);
  border-radius:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  position:relative;
  font-weight:900;
  text-transform:uppercase;
  cursor:pointer;
  background:linear-gradient(145deg,#151518,#0a0a0c);
  box-shadow:4px 4px 10px #000;
  overflow:hidden;
}
.level-badge{
  position:absolute;
  top:8px;
  left:10px;
  font-size:.8rem;
  color:#666;
  font-weight:900;
}
.mastery-badge{
  position:absolute;
  bottom:8px;
  right:10px;
  font-size:.95rem;
  color:var(--g);
  opacity:.9;
  font-weight:900;
}
.card{
  /* чтобы container units работали от ширины карточки */
  container-type: inline-size;
}

.card-text{
  z-index:2;
  padding:10px 6px;
  pointer-events:none;

  /* базовая адаптация к размеру карточки (и ПК, и мобила) */
  font-size: clamp(12px, 8cqw, 32px);
  line-height: 1.05;

  /* КЛЮЧ: не ломаем слова посередине */
  word-break: normal;
  overflow-wrap: normal;
  hyphens: manual;

  /* чтобы измерения/подгон JS были стабильны */
  display:block;
  max-width: 92%;
  max-height: 86%;
  margin: 0 auto;
}

.card[data-type="ru"],
.card[data-type="tr"] {
  color: var(--y);
}

.card.selected{ border-color:var(--g); background:#112211; }
.card.error{ border-color:var(--r); background:#2a0a0a!important; animation:shake .3s; }
.card.hint{ border-color:var(--y)!important; box-shadow:0 0 20px var(--y); z-index:10; }

@keyframes shake{
  0%,100%{transform:translateX(0)}
  25%{transform:translateX(-4px)}
  75%{transform:translateX(4px)}
}

/* ==== START OVERLAY ==== */
#start-overlay{
  position:absolute;
  inset:0;
  background:rgba(0,0,0,.4);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:500;
  backdrop-filter:blur(4px);
  border-radius:14px;
}
.big-start-btn{
  width:140px;
  height:140px;
  border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#5aff5a,#00c800 60%,#008000 100%);
  color:#fff;
  font-size:1.3rem;
  font-weight:900;
  cursor:pointer;
  border:none;
  box-shadow:inset 0 5px 15px rgba(255,255,255,.6),0 0 0 6px #d0d0d0,0 5px 15px 8px rgba(0,0,0,.5);
}

/* ==== TIMER ==== */
.timer-container{ width:100%; height:4px; background:#000; }
#timer-bar{ height:100%; width:100%; background:var(--y); transition:width 1s linear; }

/* ==== RESULT SCREEN ==== */
#result-screen{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.95);
  display:none;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  z-index:2000;
  text-align:center;
  backdrop-filter:blur(15px);
}

/* ==== FX ==== */
.floating-crystal{
  position:absolute;
  pointer-events:none;
  color:var(--y);
  font-weight:900;
  font-size:1.4rem;
  z-index:3000;
  animation:floatUp 2s ease-out forwards;
}
@keyframes floatUp{
  0%{transform:translate(-50%,0) scale(.5);opacity:1}
  100%{transform:translate(-50%,-100px) scale(1.5);opacity:0}
}

/* ==== (OPTIONAL) old toast styles kept only if you still have #net-toast in HTML ==== */
#net-toast{
  position:fixed;
  left:50%;
  bottom:18px;
  transform:translateX(-50%);
  background:rgba(57,255,20,.9);
  color:#000;
  font-family:var(--f);
  font-weight:900;
  font-size:.7rem;
  padding:10px 14px;
  border-radius:999px;
  box-shadow:0 0 20px rgba(57,255,20,.25);
  z-index:9999;
  display:none;
}

/* ==== MOBILE TIGHTENING (чтобы не резало на узких экранах) ==== */
@media (max-width: 380px){
  #crystal-count{
    min-width:90px;
    padding:0 10px;
    font-size:1rem;
  }
  #free-toggle-btn{
    min-width:56px;
    font-size:.95rem;
  }
  .sync-controls{ gap:6px; margin-left:8px; }
  .modes{ gap:5px; }
  .mode-btn{ font-size:.48rem; }
}
#free-toggle-btn{
  margin-left: 14px; /* можно 12–18, подбирай на глаз */
}


/* ===== LAMP CARD LOOK ===== */

/* базовая карточка — чуть глубже и “матовее” */
.card{
  border:1px solid rgba(255,255,255,.10);
  background:
    radial-gradient(120% 140% at 50% 10%, rgba(255,255,255,.08) 0%, rgba(255,255,255,0) 55%),
    linear-gradient(145deg,#151518,#0a0a0c);
  box-shadow:
    0 18px 40px rgba(0,0,0,.55),
    inset 0 0 0 1px rgba(255,255,255,.04);
  position:relative;
  overflow:hidden;
}

/* “лампочка сверху” — она ВСЕГДА есть, но слабая */
.card::before{
  content:"";
  position:absolute;
  left:8%;
  right:8%;
  top:-18%;
  height:55%;
  border-radius:999px;
  filter:blur(18px);
  opacity:.28;
  pointer-events:none;
  transform:translateZ(0);
}

/* лёгкая виньетка/глубина внутри */
.card::after{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:
    radial-gradient(120% 120% at 50% 15%, rgba(255,255,255,.06) 0%, rgba(0,0,0,0) 45%),
    radial-gradient(140% 120% at 50% 110%, rgba(0,0,0,.55) 0%, rgba(0,0,0,0) 45%);
  pointer-events:none;
  opacity:.85;
}

/* цвет лампы по типу карточки */
.card[data-type="en"]::before{
  background: radial-gradient(circle at 50% 30%,
    rgba(255,255,255,.85) 0%,
    rgba(255,255,255,.35) 35%,
    rgba(255,255,255,0) 70%
  );
}

.card[data-type="ru"]::before,
.card[data-type="tr"]::before{
  background: radial-gradient(circle at 50% 30%,
    rgba(244,255,89,.95) 0%,
    rgba(244,255,89,.40) 35%,
    rgba(244,255,89,0) 70%
  );
}

/* ===== ACTIVE / SELECTED: лампа “включается” и держится ===== */
.card.selected{
  border-color: rgba(57,255,20,.45);
  background:
    radial-gradient(120% 140% at 50% 10%, rgba(57,255,20,.10) 0%, rgba(57,255,20,0) 55%),
    linear-gradient(145deg,#141a14,#080a08);
  box-shadow:
    0 22px 55px rgba(0,0,0,.60),
    0 0 26px rgba(57,255,20,.20),
    inset 0 0 0 1px rgba(57,255,20,.22);
}

/* усиливаем верхний свет при выборе */
.card.selected::before{
  opacity:.70;
  filter:blur(16px);
}

/* чуть подсветим текст у выбранной карточки, но без “фото-вспышки” */
.card.selected .card-text{
  text-shadow: 0 2px 12px rgba(0,0,0,.75);
}

/* RU/TR в выбранном состоянии — тёплая лампа */
.card[data-type="ru"].selected::before,
.card[data-type="tr"].selected::before{
  opacity:.78;
  filter:blur(16px);
}

/* EN в выбранном состоянии — холоднее/белее */
.card[data-type="en"].selected::before{
  opacity:.72;
  filter:blur(16px);
}

/* чтобы бейджи не терялись */
.level-badge{ opacity:.55; }
.mastery-badge{ text-shadow:0 2px 10px rgba(0,0,0,.8); }
