/* Controles funcionais novos, sem redesenhar os recursos do jogo original. */
* {
  box-sizing: border-box;
}
html,
body {
  margin: 0;
  min-height: 100%;
  font-family: Arial, sans-serif;
}
.game {
  background: #071d51;
  color: white;
}
.operation-bar {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 9px 12px;
  flex-wrap: wrap;
  background: #061d45;
  color: white;
}
.operation-bar a {
  color: #fff700;
}
.operation-bar button,
.player-navigation button {
  padding: 7px 10px;
  cursor: pointer;
}
.player-navigation {
  display: flex;
  gap: 5px;
  padding: 5px 10px;
  flex-wrap: wrap;
}
.game-container {
  width: 100%;
  height: 95vh;
}
#bingo-frame {
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  background: #051ca1;
}
#idle-message {
  padding: 24px;
  text-align: center;
}
dialog {
  max-width: 680px;
  width: 95%;
  max-height: 80vh;
  border: 2px solid #1b49a0;
  border-radius: 8px;
}
dialog::backdrop {
  background: #000a;
}
.receipt {
  padding: 12px 0;
  border-bottom: 1px solid #bbb;
}
.receipt button {
  margin-left: 10px;
}
.management {
  background: #f3f4f6;
  color: #253246;
}
.management-content {
  width: min(1280px, 100%);
  margin: auto;
  padding: 20px;
}
.panel {
  background: white;
  padding: 18px;
  margin-bottom: 18px;
  border: 1px solid #d9e1ea;
}
.panel h2 {
  font-size: 20px;
  margin: 0 0 16px;
}
.form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
  gap: 14px;
}
.form-grid label {
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.form-grid input,
.form-grid select {
  padding: 9px;
  border: 1px solid #b6c2ce;
  border-radius: 3px;
  width: 100%;
  font: inherit;
}
.form-grid input[type="checkbox"] {
  width: auto;
  align-self: start;
}
.panel button {
  padding: 9px 13px;
  margin: 12px 6px 0 0;
  cursor: pointer;
}
.table-scroll {
  overflow: auto;
}
table {
  width: 100%;
  border-collapse: collapse;
}
th,
td {
  text-align: left;
  padding: 10px;
  border-bottom: 1px solid #ddd;
  white-space: nowrap;
}
#feedback {
  min-height: 24px;
  font-weight: bold;
}
#tv-link {
  overflow-wrap: anywhere;
}
#grade-options {
  margin-top: 18px;
  padding: 16px;
  border: 1px solid #b6c2ce;
}
#grade-preview {
  margin-top: 18px;
}
#round-list td:nth-child(10) {
  white-space: normal;
  min-width: 240px;
}
.management .panel button {
  background: #eef2f8;
  color: #192f52;
  border: 1px solid #aebbd0;
  border-radius: 4px;
}
.management #publish-grade {
  background: #16458f;
  color: white;
  border-color: #16458f;
}
.audit-entry {
  padding: 6px 0;
}
@media (max-width: 600px) {
  .management-content {
    padding: 10px;
  }
  .operation-bar {
    gap: 7px;
    font-size: 12px;
  }
  .panel {
    padding: 12px;
  }
}

[hidden] {
  display: none !important;
}

/* Carteira NOVA do bingo: controles de saldo próprios, sem alterar a arte. */
#cash-dialog {
  width: min(640px, calc(100vw - 28px));
  max-height: calc(100dvh - 28px);
  overflow: auto;
  box-sizing: border-box;
}
#cash-dialog form {
  display: grid;
  gap: 12px;
  margin: 18px 0;
  padding: 16px;
  border: 1px solid #8c5cb0;
  border-radius: 10px;
}
#cash-dialog label {
  display: grid;
  gap: 6px;
}
#cash-dialog label:has(input[type="checkbox"]) {
  display: flex;
  align-items: flex-start;
}
#cash-dialog input[type="number"] {
  max-width: 100%;
  min-width: 0;
}
#cash-feedback {
  min-height: 1.5em;
  font-weight: bold;
}

#cancel-dialog {
  max-width: min(580px, calc(100vw - 28px));
  max-height: calc(100dvh - 28px);
  overflow: auto;
}
#cancel-dialog button {
  margin: 5px;
  padding: 10px;
  cursor: pointer;
}
#cancel-dialog::backdrop {
  background: rgb(0 0 0 / 65%);
}

/* Cada linha conserva seu preço/prêmios no rascunho, antes da publicação. */
.grade-value {
  width: 108px;
  padding: 9px 6px;
  border: 1px solid #9aaec4;
  border-radius: 4px;
  font: inherit;
}
.management-content.grade-editing > :not(#grade-editor) {
  display: none;
}
#grade-date-filter {
  padding: 8px;
  margin: 8px;
  font: inherit;
}
