:root {
  --azul: #004AAD;
  --rojo: #dc3545;
  --blanco: #ffffff;
  --gris-claro: #f8f9fa;
  --gris-medio: #e9ecef;
  --gris-oscuro: #495057;

  --primary-font: "Poppins", sans-serif;
  --secondary-font: "Roboto", sans-serif;

  --border: var(--gris-medio);
  --text: var(--gris-oscuro);
  --bg-page: var(--gris-claro);
  --bg-card: var(--blanco);
}

* {
  box-sizing: border-box;
}

html,
body {
  height: 100%;
}

body {
  margin: 0;
  font-family: var(--primary-font);
  color: var(--text);
  background: var(--bg-page);
  display: flex;
  flex-direction: column;
}

/* ===== Header ===== */
.header {
  background: var(--bg-card);
  border-bottom: 2px solid var(--border);
}

.brand {
  max-width: 1100px;
  margin: 0 auto;
  padding: .6rem 1rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  /* Logo a la izq, título a la der */
}

.brand__logo {
  height: 48px;
  width: auto;
  object-fit: contain;
}

.brand__title {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--azul);
  text-align: right;
}

/* ===== Layout ===== */
.container {
  flex: 1;
  width: 100%;
  max-width: 1100px;
  margin: 1rem auto;
  padding: 0 1rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
}

/* ===== Controles ===== */
.controls {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 12px;
  padding: .75rem 1rem;
}

.control {
  display: flex;
  align-items: center;
  gap: .5rem;
}

.control label {
  font-weight: 600;
  color: var(--azul-oscuro);
}

.control select {
  height: 38px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--blanco);
  padding: 0 .75rem;
  font: 500 1rem var(--secondary-font);
  color: var(--negro);
}

.control--right {
  margin-left: auto;
}

.btn {
  height: 38px;
  padding: 0 1rem;
  border: none;
  border-radius: 10px;
  font: 600 1rem var(--primary-font);
  color: var(--blanco);
  background: var(--azul);
  cursor: pointer;
}

.btn:hover {
  filter: brightness(1.05);
}

/* ===== Tablero ===== */
.board {
  background: var(--bg-card);
  border: 1px solid var(--border);
  border-radius: 14px;
  padding: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 50vh;
}

canvas {
  width: 100%;
  height: auto;
  max-width: 100%;
  touch-action: none;
  display: block;
}

/* ===== Footer ===== */
.footer {
  background: var(--bg-card);
  border-top: 2px solid var(--border);
}

.footer__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: .75rem 1rem;
  text-align: center;
  color: var(--azul-oscuro);
  font-family: var(--secondary-font);
}