.ng-grid {
  display: grid;
  grid-template-columns: auto repeat(var(--ng-n, 5), 1fr);
  gap: 2px;
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  overflow-x: auto;
}
.ng-corner { background: transparent; }
.ng-clue {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 3px;
  font-size: clamp(0.55rem, 1.6vw, 0.8rem);
  color: #9fd0ff;
  font-weight: 700;
  padding: 2px;
  background: rgba(79, 223, 255, 0.05);
  border-radius: 3px;
}
.ng-clue--col { flex-direction: column; min-height: 42px; }
.ng-clue--row { justify-content: flex-end; min-width: 42px; padding-right: 6px; }
.ng-clue--done { color: rgba(255, 255, 255, 0.25); background: transparent; }
.ng-cell {
  aspect-ratio: 1 / 1;
  min-width: 22px;
  border: 1px solid rgba(255, 255, 255, 0.1);
  background: rgba(255, 255, 255, 0.04);
  color: #fb7185;
  font-weight: 800;
  cursor: pointer;
}
.ng-cell--bl { border-left: 2px solid rgba(255, 255, 255, 0.28); }
.ng-cell--bt { border-top: 2px solid rgba(255, 255, 255, 0.28); }
.ng-cell--fill { background: #4fdfff; }
.ng-cell--x { color: #fb7185; }
