/* ========== Find the Word ========== */
.fw-app{ max-width: 1220px; margin-inline: auto; padding: 32px 32px 60px; }
.fw-title{ font-family: var(--font-display); font-size: clamp(34px, 5vw, 52px); color: var(--paper); margin-bottom: 24px; }

.fw-layout{
  display: grid;
  grid-template-columns: 2fr 1fr;
  grid-template-areas: "image room" "desc room";
  align-items: start;
  gap: 16px;
}
.fw-block-image{ grid-area: image; }
.fw-block-desc{ grid-area: desc; min-width: 0; }
.fw-block-room{ grid-area: room; min-width: 0; }

@media (max-width: 1100px){
  .fw-layout{ grid-template-columns: 1fr; grid-template-areas: "image" "room" "desc"; }
}

.fw-app.is-in-room .fw-block-image,
.fw-app.is-in-room .fw-block-desc{ display: none; }
.fw-app.is-in-room .fw-layout{ grid-template-columns: 1fr; grid-template-areas: "room"; justify-content: center; }
.fw-app.is-in-room .fw-block-room{ max-width: 720px; margin-inline: auto; width: 100%; }

.fw-game-image{ margin-bottom: 24px; max-width: 640px; }
.fw-game-image img{ width: 100%; height: auto; border-radius: 12px; display: block; }
.fw-game-image.is-vertical{ max-width: 340px; }

.fw-desc-heading{ font-family: var(--font-display); font-size: 30px; color: var(--paper); margin: 0 0 14px; }
.fw-subtitle{ color: var(--paper-dim); max-width: 60ch; }
.fw-game-description{ max-width: 70ch; line-height: 1.6; color: var(--paper-dim); }
.fw-game-description p{ margin: 0 0 14px; }

.fw-topbar{ display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.fw-players{ display:flex; align-items:center; gap:10px; flex-wrap: wrap; }
.fw-player-chip{
  display: flex; align-items: center; gap: 8px;
  padding: 8px 14px; border-radius: 999px;
  font-weight: 700; font-size: 13px; color: var(--paper);
  background: var(--ink-2); border: 2px solid transparent;
}
.fw-player-chip.is-me{ background: var(--ink-3); }
.fw-player-dot{ width: 12px; height: 12px; border-radius: 50%; flex-shrink: 0; background: var(--dot, #FFB627); }
.fw-player-score{ font-weight: 800; color: var(--amber); }
.fw-player-wins{ font-weight: 800; color: var(--amber); opacity: 0.9; }

.fw-share{
  display:flex; gap: 10px; margin-bottom: 18px;
  background: var(--ink-2); border: 1px solid var(--ink-3); border-radius: 8px; padding: 14px; flex-wrap: wrap;
}
.fw-share input{ flex: 1 1 220px; background: var(--ink); border: 1px solid var(--ink-3); color: var(--paper-dim); padding: 10px 12px; border-radius: 6px; font-size: 13px; }

.fw-status-row{ display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 18px; }
.fw-status{ color: var(--paper-dim); font-size: 15px; margin-bottom: 0; min-height: 22px; }
.fw-round-countdown{
  font-weight: 800;
  font-size: 15px;
  color: var(--amber);
  flex-shrink: 0;
  transition: color .2s ease;
}
.fw-round-countdown.is-urgent{ color: var(--coral, #FF5D73); }

/* ---- Συννεφάκι γρίφου ---- */
.fw-bubble-wrap{ display: flex; justify-content: center; margin-bottom: 22px; }
.fw-bubble{
  position: relative;
  background: var(--ink-2);
  border: 2px solid var(--amber);
  border-radius: 20px;
  padding: 20px 26px;
  max-width: 480px;
  text-align: center;
  font-family: var(--font-display);
  font-size: 19px;
  color: var(--paper);
  line-height: 1.4;
  transition: filter .4s ease;
}
.fw-bubble.is-waiting{
  filter: blur(10px) brightness(0.6);
  pointer-events: none;
}
.fw-bubble::after{
  content: '';
  position: absolute;
  bottom: -14px;
  left: 50%;
  transform: translateX(-50%);
  border-width: 14px 10px 0 10px;
  border-style: solid;
  border-color: var(--amber) transparent transparent transparent;
}
.fw-bubble::before{
  content: '';
  position: absolute;
  bottom: -10px;
  left: 50%;
  transform: translateX(-50%);
  border-width: 11px 8px 0 8px;
  border-style: solid;
  border-color: var(--ink-2) transparent transparent transparent;
  z-index: 1;
}

/* ---- Πλέγμα γραμμάτων ---- */
.fw-board-wrap{
  background: var(--ink-2);
  border: 1px solid var(--ink-3);
  border-radius: 12px;
  padding: 14px;
  display: flex;
  justify-content: center;
}
.fw-grid{
  display: grid;
  gap: 3px;
  touch-action: none;
  user-select: none;
  transition: filter .4s ease;
}
.fw-grid.is-waiting{
  filter: blur(24px) brightness(0.6);
  pointer-events: none;
}
.fw-cell{
  width: 34px;
  height: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ink);
  border-radius: 4px;
  font-weight: 700;
  font-size: 15px;
  color: var(--paper);
  cursor: pointer;
}
.fw-cell.is-selected{
  background: var(--amber);
  color: var(--ink);
}
.fw-cell.is-found{
  background: var(--teal);
  color: var(--ink);
}
@media (max-width: 480px){
  .fw-cell{ width: 24px; height: 24px; font-size: 12px; }
}

.btn-sm{ padding: 8px 16px; font-size: 13px; flex-shrink: 0; }

/* ---- Κάρτες lobby (αυτοτελές) ---- */
.tavli-card{ background: var(--ink-2); border: 1px solid var(--ink-3); border-radius: 10px; padding: 32px 36px; max-width: 640px; }
.tavli-card h2{ font-family: var(--font-display); font-size: 26px; color: var(--paper); margin-bottom: 10px; }
.tavli-card p{ color: var(--paper-dim); font-size: 15px; margin-bottom: 18px; }
.tavli-field{ display:flex; flex-direction:column; gap:6px; margin-bottom:18px; }
.tavli-field label{ font-size: 13px; font-weight:600; color: var(--paper-dim); }
.tavli-field input[type="text"], .tavli-field select{
  background: var(--ink); border: 1px solid var(--ink-3); color: var(--paper);
  padding: 12px 14px; border-radius: 6px; font-size: 15px; font-family: var(--font-body);
}

/* ---- Winner/countdown overlays (αυτοτελές) ---- */
.tavli-winner{
  position: fixed; inset: 0; background: rgba(10,14,28,.88);
  display:flex; align-items:center; justify-content:center; z-index: 999; padding: 20px;
}
.tavli-winner-card{
  background: var(--ink-2); border: 1px solid var(--ink-3); border-radius: 12px;
  padding: 40px; text-align: center; max-width: 380px; position: relative;
}
.tavli-winner-card p{ font-family: var(--font-display); font-size: 26px; color: var(--paper); margin-bottom: 22px; }
.tavli-winner-close{
  position: absolute; top: 12px; right: 14px; background: none; border: none;
  color: var(--paper-dim); font-size: 26px; line-height: 1; cursor: pointer; padding: 4px 8px;
}
.tavli-winner-close:hover{ color: var(--paper); }
.tavli-winner-note{ font-family: var(--font-body); color: var(--paper-dim); font-size: 15px; margin: 0 0 18px; line-height: 1.5; }
.tavli-winner-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
.fw-rematch-buttons{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; margin-top:16px; }
#fw-start-countdown-num,
#fw-countdown-num{ color: var(--amber); font-weight: 800; font-size: 20px; }

.gamehub-ad-slot{ margin-top: 32px; display:flex; justify-content:center; overflow:hidden; }

@media (max-width: 900px){ .fw-app{ padding: 20px 16px 40px; } }
@media (max-width: 640px){ .tavli-card{ padding: 20px; } .fw-board-wrap{ padding: 8px; } }

/* ---- Κουμπί πλήρους οθόνης / οριζόντιας προβολής (μόνο σε κάθετη προβολή κινητού) ---- */
#fw-view-game{
  position: relative;
}
.fw-fullscreen-btn{
  display: none;
  position: absolute;
  top: -62px;
  right: 10px;
  width: 36px;
  height: 36px;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.12);
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 8px;
  color: var(--paper);
  cursor: pointer;
  z-index: 40;
  backdrop-filter: blur(2px);
}
.fw-fullscreen-btn.is-active{
  background: var(--amber);
  border-color: var(--amber);
  color: var(--ink);
}
@media (max-width: 640px) and (orientation: portrait){
  .fw-fullscreen-btn{ display: flex; }
}

body.fw-landscape-mode{
  overflow: hidden;
  position: fixed;
  width: 100%;
  height: 100%;
}
body.fw-landscape-mode .site-header,
body.fw-landscape-mode .site-footer{
  display: none !important;
}
body.fw-landscape-mode .fw-app{
  padding: 10px;
}
