/* Contraste >= 7:1, foco visible, zoom 200% sin romper (R06). */
:root {
  --bg: #ffffff;
  --fg: #111111;
  --accent: #0a3d62;
  --dark-sq: #6b7b52;
  --light-sq: #eceadf;
  --dudoso: #7a1f1f;
}

* { box-sizing: border-box; }

body {
  font-family: system-ui, "Segoe UI", Arial, sans-serif;
  color: var(--fg);
  background: var(--bg);
  line-height: 1.5;
  margin: 0;
  padding: 1rem;
  max-width: 60rem;
  margin-inline: auto;
}

h1 { color: var(--accent); }

fieldset { margin: 0.5rem 0; }

label { display: inline-block; margin: 0.25rem 0; }

button {
  font-size: 1rem;
  padding: 0.5rem 0.9rem;
  margin: 0.15rem 0.15rem 0.15rem 0;
  border: 2px solid var(--accent);
  background: var(--accent);
  color: #ffffff;
  border-radius: 6px;
  cursor: pointer;
}

button:hover { background: #082c46; }

/* Foco siempre visible (R06). */
a:focus, button:focus, input:focus, [tabindex]:focus {
  outline: 3px solid #b8860b;
  outline-offset: 2px;
}

input[type="text"] {
  font-size: 1rem;
  padding: 0.4rem;
}

.estado {
  font-weight: bold;
  min-height: 1.5rem;
}

.salida { font-size: 1.05rem; }

pre.braille {
  font-size: 1.3rem;
  background: #f4f4ef;
  padding: 0.75rem;
  border: 1px solid #ccc;
  border-radius: 6px;
  white-space: pre-wrap;
}

/* Tablero como tabla accesible (R03). */
table.tablero {
  border-collapse: collapse;
  margin: 0.5rem 0;
}

table.tablero th,
table.tablero td {
  border: 1px solid #333;
  width: 3rem;
  height: 3rem;
  text-align: center;
  font-size: 0.85rem;
  padding: 2px;
}

table.tablero td.light { background: var(--light-sq); }
table.tablero td.dark { background: var(--dark-sq); color: #fff; }
table.tablero td.dudoso { outline: 3px solid var(--dudoso); }

.dudoso-txt { color: var(--dudoso); font-weight: bold; }

/* Guía por voz */
#btn-guia[aria-pressed="true"] { outline: 3px solid currentColor; font-weight: 700; }
.ayuda { display: block; font-size: 0.95rem; margin-top: 0.3rem; }
