/* Overlay dialogs (gift chooser, pause menu, end-of-game) + toasts. */

.modal-overlay {
  position: fixed; inset: 0; z-index: 40;
  display: flex; align-items: center; justify-content: center;
  padding: 20px;
  background: rgba(40,22,8,.62);
  backdrop-filter: blur(2px);
}
.modal-card {
  width: 100%; max-width: 360px;
  background: var(--surface-panel-card);
  border: var(--border-subtle);
  border-radius: var(--radius-xl);
  box-shadow: var(--shadow-modal);
  padding: 20px 18px;
  display: flex; flex-direction: column; gap: 14px;
  max-height: 88vh; overflow-y: auto;
}
.modal-title {
  margin: 0; text-align: center;
  font-size: 19px; font-weight: var(--font-weight-heavy);
  color: var(--color-brown-deep);
}
.modal-sub {
  margin: 0; text-align: center; font-size: 13px; line-height: 1.45;
  color: var(--color-brown-muted);
}
.modal-sub b { color: var(--color-brown-strong); }

/* ── Gift chooser ────────────────────────────────────────── */
.gift-list { display: flex; flex-direction: column; gap: 8px; }
.gift-opt {
  display: flex; align-items: center; gap: 9px;
  background: #fffdf6; border: var(--border-subtle);
  border-left: 4px solid var(--oc, #999);
  border-radius: var(--radius-sm); padding: 11px 12px;
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
  text-align: left;
}

/* ── Pause menu ──────────────────────────────────────────── */
.menu-actions { display: flex; flex-direction: column; gap: 8px; }
.menu-actions .btn-primary,
.menu-actions .btn-secondary { width: 100%; }
.rules {
  display: flex; flex-direction: column; gap: 7px;
  background: #fffdf6; border: var(--border-subtle);
  border-radius: var(--radius-md); padding: 12px 14px;
  max-height: 42vh; overflow-y: auto;
}
.rules p { margin: 0; font-size: 12.5px; line-height: 1.5; color: var(--color-brown-strong); }
.rules b { color: var(--color-brown-deep); }

/* ── End of game ─────────────────────────────────────────── */
.trophy { align-self: center; }
.trophy svg { width: 56px; height: 56px; }
.score-list { display: flex; flex-direction: column; gap: 7px; }
.score-row {
  display: flex; align-items: center; gap: 8px;
  background: #fffdf6; border: var(--border-subtle);
  border-left: 4px solid var(--oc, #999);
  border-radius: var(--radius-sm); padding: 9px 11px;
  box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.score-row.win {
  background: linear-gradient(90deg, rgba(212,175,55,.22), #fffdf6 60%);
  outline: 2px solid var(--color-gold); outline-offset: -1px;
}
.rank {
  width: 20px; flex: 0 0 auto; text-align: center;
  font-size: 13px; font-weight: var(--font-weight-heavy);
  color: var(--color-brown-muted); font-variant-numeric: tabular-nums;
}
.score {
  margin-left: auto; display: inline-flex; align-items: center; gap: 4px;
  background: var(--color-gold); color: #3b2a07;
  border-radius: 999px; padding: 3px 10px;
  font-size: 13px; font-weight: var(--font-weight-heavy);
  font-variant-numeric: tabular-nums;
}
.score .i svg { width: 13px; height: 13px; }

/* ── Toasts (mounted on <body>, outside #app) ────────────── */
.toast-host {
  position: fixed; left: 50%; bottom: 28px;
  transform: translateX(-50%) translateY(12px);
  z-index: 60; max-width: 88vw;
  background: var(--color-brown-deep); color: #FFE9B8;
  border-radius: var(--radius-lg); padding: 11px 16px;
  font-size: 13px; font-weight: var(--font-weight-bold);
  box-shadow: var(--shadow-button-hover);
  opacity: 0; pointer-events: none; text-align: center;
  transition: opacity .18s ease, transform .18s ease;
}
.toast-host.show { opacity: 1; transform: translateX(-50%) translateY(0); }
.toast-info { background: var(--color-brown-deep); color: #FFE9B8; }
.toast-warn { background: var(--color-alert); color: #fff; }
.toast-good { background: var(--color-success); color: #fff; }
