.ng-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
.ng-tools{display:flex;justify-content:center;gap:8px;margin-bottom:12px}
.ng-tools [aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.ng-scroll{overflow-x:auto}
.ng-grid{--size:10;--cell:clamp(16px,calc((100vw - 140px) / (var(--size) + 2)),34px);display:grid;grid-template-columns:auto repeat(var(--size),var(--cell));width:max-content;margin:0 auto;touch-action:none;user-select:none;-webkit-user-select:none}
.ng-corner{border-right:2px solid var(--ink);border-bottom:2px solid var(--ink)}
.ng-clue{display:flex;justify-content:flex-end;align-items:center;gap:5px;padding:2px 6px;font:700 clamp(10px,2.6vw,13px) var(--mono);color:var(--ink);background:var(--paper)}
.ng-clue.col{flex-direction:column;justify-content:flex-end;gap:1px;padding:4px 0;border-bottom:2px solid var(--ink)}
.ng-clue.row{border-right:2px solid var(--ink);height:var(--cell)}
.ng-clue.done{color:var(--muted);opacity:.5}
.ng-cell{width:var(--cell);height:var(--cell);padding:0;border:1px solid var(--border);border-width:0 1px 1px 0;background:var(--surface);position:relative}
.ng-cell.edge-right{border-right:2px solid var(--ink)}
.ng-cell.edge-bottom{border-bottom:2px solid var(--ink)}
.ng-cell.fill{background:var(--ink)}
.ng-cell.cross::after{content:'✕';position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:calc(var(--cell) * .55)}
.ng-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;z-index:1}
.ng-grid.solved .ng-cell.fill{background:var(--accent)}
.ng-hint{margin:10px 0 0;text-align:center;font-size:12px;color:var(--muted)}
.ng-cell:disabled{opacity:1;cursor:default}
