.flow-area { max-width:560px; }
.controls { display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:14px; }
.stats { display:flex; gap:16px; color:var(--muted); font-size:14px; flex-wrap:wrap; }
.stats b { color:var(--ink); font-size:16px; }
.actions { display:flex; gap:8px; flex-wrap:wrap; }
.board { display:grid; gap:3px; max-width:420px; margin:0 auto; }
.cell { aspect-ratio:1/1; border-radius:5px; background:var(--panel); border:1px solid var(--rule); cursor:pointer; position:relative; }
.cell.dot .dot-core { position:absolute; inset:22%; border-radius:50%; }
.cell.path { border-color:transparent; }
.cell.current { box-shadow:inset 0 0 0 2px var(--ink); }
.cell.hint-cell { box-shadow:inset 0 0 0 2px var(--cyan); }
.win-panel { max-width:360px; margin:14px auto 0; padding:24px; text-align:center; }
.win-panel h2 { margin:0 0 6px; letter-spacing:-.03em; }
.win-panel p { color:var(--muted); font-size:14px; margin:0 0 14px; }
@media (max-width:780px) { .controls { flex-direction:column; align-items:stretch; } .stats { justify-content:space-between; } .actions { justify-content:center; } }