@import url("https://fonts.googleapis.com/css2?family=Oswald:wght@300;400;500;600;700&display=swap");
[hidden]{ display:none !important; }

:root{
  --bg:#0d0a13; --panel:#171222; --grid:#2d2442; --text:#e0d9ff;
  --accent:#7c4dff; --accent2:#b388ff;
}

*{box-sizing:border-box}
html,body{margin:0;height:100%;background:var(--bg);color:var(--text);font-family:system-ui,Arial,sans-serif}

header{
  position: sticky;
  top: 0;
  z-index: 10;
  background: var(--panel);
  border-bottom: 1px solid var(--grid);
  padding: 12px 16px;

  /* középre rendezés */
  display: flex;
  flex-direction: column;
  align-items: center;   /* vízszintes közép */
  justify-content: center;
  text-align: center;    /* több sor esetén is közép */
}

h1{margin:0 0 6px;font-size:18px;color:var(--accent2)}
.muted{opacity:.75;font-size:12px}

.wrap{max-width:1100px;margin:0 auto;padding:16px}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
input,select,button,textarea{background:#1c162b;border:1px solid var(--grid);color:var(--text);border-radius:10px;padding:8px;font-size:14px}
button{cursor:pointer}button:hover{background:var(--accent);color:#fff}
button:disabled{opacity:.5;cursor:not-allowed}
textarea{width:100%;height:160px;resize:vertical}
.two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:900px){.two{grid-template-columns:1fr}}
.card{background:var(--panel);border:1px solid var(--grid);border-radius:14px;padding:14px}
.sep{border:none;border-top:1px solid var(--grid);margin:12px 0}
#lineCount{margin-left:8px;font-weight:600}

/* 5×5 rács, négyzet */
.grid{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  grid-template-rows:repeat(5,1fr);
  gap:0;
  width:100%;
  aspect-ratio:1/1;
  border:1px solid var(--grid);
}

/* cella */
.cell{
  position:relative;
  aspect-ratio:1/1;
  display:flex;align-items:center;justify-content:center;
  border:1px solid var(--grid);
  background:#1a1526;
  user-select:none;text-align:center;overflow:hidden;
  margin:0;padding:0;
}

/* felirat – JS méretezi build/resize-kor */
.cell .label{
  font-family:"Oswald", Arial, Helvetica, sans-serif;
  display:block;
  width:96%;
  margin:0 auto;
  padding:2px;
  text-align:center;

  /* csak ott törjön, ahová mi <br>-t teszünk */
  white-space:normal;
  word-break:keep-all;
  overflow-wrap:normal;
  hyphens:manual;

  color:var(--text);
  font-weight:400;
  line-height:1.15;
  font-size:160px; /* induló nagy, JS visszaveszi */
}

/* jelölések */
.cell.red{background:rgba(239,83,80,.65);border-color:#ff9a96}
.cell.red .label{color:#ffd1cf}
.cell.blue{background:rgba(66,165,245,.65);border-color:#a7d6ff}
.cell.blue .label{color:#e6f2ff}

/* board + winner modal */
.board{ position: relative; width: 100%; overflow: visible; }

.winner-modal{
  position:absolute; inset:0; z-index:50;
  display:flex; align-items:center; justify-content:center;
  pointer-events:auto;
}
.winner-backdrop{
  position:absolute; inset:0;
  background:rgba(0,0,0,.55);
  backdrop-filter:blur(1px);
}
.winner-card{
  position:relative;
  min-width:260px; max-width:80%;
  padding:14px 48px 14px 18px;
  border-radius:14px; border:1px solid var(--grid);
  box-shadow:0 10px 28px rgba(0,0,0,.5);
  font-family:"Oswald", Arial, Helvetica, sans-serif;
  font-weight:600; font-size:clamp(18px,3.2vmin,28px);
  text-align:center; color:#0d2435;
  pointer-events:auto;
}
.winner-modal.red  .winner-card{ background:rgba(239,83,80,.95); border-color:#ffb4b1; color:#2b0f12; }
.winner-modal.blue .winner-card{ background:rgba(66,165,245,.95); border-color:#cde6ff; color:#0d2435; }
.winner-title{ pointer-events:none; }
.winner-close{ position:absolute; top:6px; right:8px; appearance:none; border:none; background:transparent; color:inherit; cursor:pointer; font-size:22px; line-height:1; padding:0 6px; border-radius:6px; }
.winner-close:hover{ filter:brightness(.9); }