.solve-main {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.solve-status {
  width: 100%;
  max-width: 480px;
  border: 3px solid var(--ink);
  border-radius: 10px;
  padding: 0.9rem;
  text-align: center;
  font-weight: 700;
  margin-bottom: 1rem;
}

.solve-status.success { background: var(--pine); color: #fff8ec; }
.solve-status.error { background: #f6d6d6; color: #a3313f; }
.solve-status.info { background: var(--paper-dark); color: var(--ink); }

.board-wrap {
  overflow-x: auto;
  max-width: 100%;
  padding: 0.5rem;
}

.solve-board {
  display: grid;
  grid-template-columns: repeat(var(--n), minmax(2.4rem, 3.4rem));
  grid-template-rows: repeat(var(--n), minmax(2.4rem, 3.4rem));
  border: 1px solid var(--grid-line);
  border-radius: 8px;
  overflow: hidden;
  background: var(--card);
  margin: 0 auto;
  box-shadow: 6px 6px 0 var(--shadow);
}

.solve-board input {
  width: 100%;
  height: 100%;
  border: 1px solid var(--grid-line);
  text-align: center;
  font-family: 'Kdam Thmor Pro', 'Baloo 2', sans-serif;
  font-size: 1.3rem;
  font-weight: 700;
  color: var(--ink);
  background: var(--card);
  padding: 0;
}

.solve-board input:focus { outline: none; background: #fff3d6; }
.solve-board input.box-top { border-top: 3px solid var(--grid-line); }
.solve-board input.box-left { border-left: 3px solid var(--grid-line); }
.solve-board input.solved-cell { background: #e8e8e8; }
.solve-board input:focus.solved-cell { background: #fff3d6; }

.solve-actions {
  display: flex;
  justify-content: center;
  margin-top: 1.5rem;
}

@media (max-width: 480px) {
  .solve-board {
    grid-template-columns: repeat(var(--n), minmax(1.9rem, 2.6rem));
    grid-template-rows: repeat(var(--n), minmax(1.9rem, 2.6rem));
  }
  .solve-board input { font-size: 1.05rem; }
}

@media print {
  .solve-main, .layout { display: none !important; }
}
