:root{
  --bg:#fff; --subtle:#FAFAFA; --border:#E4E4E7; --ink:#09090B; --muted:#71717A; --faint:#A1A1AA;
  --blue:#2563EB; --blue-light:#EFF6FF; --blue-border:#BFDBFE;
  --red:#DC2626; --red-light:#FEF2F2; --green:#16A34A; --green-light:#F0FDF4;
  --sans:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --mono:ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
*{box-sizing:border-box}
body{margin:0;background:var(--subtle);color:var(--ink);font:15px/1.6 var(--sans);-webkit-font-smoothing:antialiased}
.board{max-width:560px;margin:32px auto 72px;padding:28px 24px 32px;background:var(--bg);
  border:1px solid var(--border);border-radius:16px;box-shadow:0 4px 16px rgba(0,0,0,.05)}
h1{margin:12px 0 6px;font-size:28px;letter-spacing:-.03em}
.flag{display:inline-block;font:600 11px/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;
  color:var(--blue);background:var(--blue-light);padding:6px 9px;border-radius:999px}
.lede{margin:0;color:var(--muted);font-size:14.5px}
.toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;margin:24px 0 16px}
.seg,.tools{display:flex;gap:8px;flex-wrap:wrap}
.seg button,.tools button{border:1px solid var(--border);background:var(--bg);border-radius:999px;
  padding:8px 14px;font:600 13px var(--sans);color:var(--muted);cursor:pointer}
.seg button.on{color:var(--blue);background:var(--blue-light);border-color:var(--blue-border)}
.tools button:hover,.seg button:hover{border-color:#D4D4D8;color:var(--ink)}
.grid-wrap{display:flex;justify-content:center}
.grid{display:grid;grid-template-columns:repeat(9,1fr);width:min(100%,420px);aspect-ratio:1;
  border:2px solid var(--ink);border-radius:6px;overflow:hidden;background:var(--ink);gap:1px}
.cell{border:0;background:var(--bg);font:600 clamp(15px,4.4vw,20px)/1 var(--sans);color:var(--blue);
  cursor:pointer;padding:0;display:flex;align-items:center;justify-content:center}
/* Les séparations de blocs 3×3 : une bordure épaisse toutes les trois cases,
   sinon la grille se lit comme un damier de 81 cases indifférenciées. */
.cell:nth-child(3n):not(:nth-child(9n)){border-right:2px solid var(--ink)}
.cell:nth-child(n+19):nth-child(-n+27),.cell:nth-child(n+46):nth-child(-n+54){border-bottom:2px solid var(--ink)}
.cell.fixed{color:var(--ink);background:var(--subtle);cursor:default}
.cell.on{background:var(--blue-light);box-shadow:inset 0 0 0 2px var(--blue)}
.cell.wrong{background:var(--red-light);color:var(--red)}
.pad{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:18px}
.pad button{border:1px solid var(--border);background:var(--bg);border-radius:10px;padding:12px 0;
  font:600 16px var(--sans);color:var(--ink);cursor:pointer}
.pad button:hover{background:var(--blue-light);border-color:var(--blue-border);color:var(--blue)}
.pad .erase{grid-column:span 1;font-size:12px;color:var(--muted)}
.status{margin-top:16px;text-align:center;font-size:14px;color:var(--muted)}
.status.ok{color:var(--green);background:var(--green-light);border-radius:8px;padding:10px;font-weight:600}
.status.ko{color:var(--red);font-weight:600}
.note{margin-top:24px;padding:14px 16px;background:var(--subtle);border-radius:12px;
  font-size:13px;color:var(--muted);line-height:1.6}
.note b{color:var(--ink)}
@media (max-width:520px){
  .board{margin:14px;padding:22px 16px 26px}
  .pad{grid-template-columns:repeat(5,1fr);gap:6px}
}
