/* Diccionario de japonés — tema oscuro, limpio. Un solo fichero de estilos. */
:root{
  --bg:#15171c;
  --surface:#1e2128;
  --surface-2:#262a33;
  --border:#2e333d;
  --text:#e7e9ee;
  --muted:#8b919e;
  --accent:#ff5d6c;
  --accent-soft:#33222a;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  margin:0;color:var(--text);background:var(--bg);
}

/* layout: ocupa todo el ancho */
.wrap{display:flex;gap:1.5rem;width:100%;margin:0;padding:1.5rem 2rem}

/* menú lateral */
aside{
  position:sticky;top:1.5rem;align-self:flex-start;
  flex:0 0 250px;max-height:calc(100vh - 3rem);overflow:auto;
  font-size:1.02rem;
}
aside .cat{
  font-weight:700;color:var(--accent);
  margin:1.1rem 0 .35rem;text-transform:uppercase;
  font-size:.76rem;letter-spacing:.06em;
}
aside a{
  display:block;padding:.42rem .6rem;margin:.12rem 0;
  color:var(--text);text-decoration:none;border-radius:8px;
  line-height:1.35;cursor:pointer;
}
aside a:hover{background:var(--surface-2)}
aside a.active{background:var(--accent-soft);color:var(--accent);font-weight:600}

/* contenido */
main{flex:1;min-width:0}
h1{margin:.2rem 0;font-size:1.6rem}
.meta{color:var(--muted);font-size:.88rem}
.meta a{color:var(--accent);text-decoration:none}
.meta a:hover{text-decoration:underline}
#q{
  width:100%;padding:.7rem .9rem;font-size:1rem;margin:1.1rem 0 .6rem;
  color:var(--text);background:var(--surface);
  border:1px solid var(--border);border-radius:10px;
}
#q::placeholder{color:var(--muted)}
#q:focus{outline:none;border-color:var(--accent)}

section{margin:1.4rem 0}
h2{
  border-bottom:2px solid var(--accent);padding-bottom:.25rem;
  font-size:1.2rem;margin-bottom:.4rem;
}

table{border-collapse:collapse;width:100%;font-size:.95rem}
td,th{border:1px solid var(--border);padding:.45rem .7rem;text-align:left;vertical-align:top}
th{background:var(--surface-2)}
tbody tr:nth-child(even){background:var(--surface)}
td:first-child{font-weight:600;white-space:nowrap;color:var(--accent)}
tr.hide{display:none}

code{background:var(--surface-2);padding:.12rem .35rem;border-radius:5px}

/* responsive: el menú pasa arriba en pantallas estrechas */
@media(max-width:720px){
  .wrap{flex-direction:column;gap:.6rem;padding:1rem}
  aside{position:static;flex:none;max-height:none;border-bottom:1px solid var(--border);padding-bottom:.6rem;font-size:1.05rem}
}


/* ── Botón de escuchar ───────────────────────────────────────────────────
   Lo pinta HABLAR.boton(), y solo si el aparato tiene voz japonesa. Discreto
   a propósito: la tabla es para leer y el audio es un extra, no debe competir
   con el contenido. */
.hablar{ background:none; border:none; cursor:pointer; font-size:.95rem;
         opacity:.4; padding:0 .3rem; line-height:1; }
.hablar:hover{ opacity:1; }

/* Celda de la tabla de hangul que se puede tocar para oírla. El cursor y el
   resalte son la única pista de que es pulsable — un icono en cada una de las
   ~50 casillas dejaría la tabla ilegible. */
td.suena{ cursor:pointer; }
td.suena:hover{ background:rgba(255,93,108,.10); }
td.suena:active{ background:rgba(255,93,108,.22); }
