﻿@charset "UTF-8";

:root{
  --gap:8px;
  --grid-size:11; /* PROBLEMS_ROW_COL_NUM + 1 */
  --cell-size:calc((100vh - 120px) / var(--grid-size));
  font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
}
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}
body{
  margin:4px;
  line-height:1.2;
  color:#111;
}
h1 {
  font-size: 1.2em;
  margin-bottom: 4px;
}
h1 small {
  font-size: 0.6em;
  font-weight: normal;
  color: #666;
}
header{
  display:flex;
  gap:8px;
  align-items:center;
  flex-wrap:wrap;
  margin-bottom:4px;
}
select, button{
  padding:4px 8px;
  font-size:12px;
}

#controls {
  display:flex;
  gap:4px;
  align-items:center;
  flex-wrap:wrap;
}

#clearHistoryBtn {
  gap:4px;
  width: 100px;
}

#grid{
  display:grid;
  grid-template-columns: repeat(var(--grid-size), calc(var(--cell-size) * 1.2));
  gap: 0;
  margin-top:1px;
  border: 1px solid #d0d0d0;
}
.cell{
  border-radius:0;
  padding:0;
  height: var(--cell-size);
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:stretch;
  background:#ffffff;
  border-right: 1px solid #d0d0d0;
  border-bottom: 1px solid #d0d0d0;
  font-size:clamp(25px, calc(var(--cell-size) * 0.2), 14px);
  position: relative;
  user-select: none;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
}
.cell.last-row {
  border-bottom: none;
}
.cell.header-cell {
  background:#f0f0f0;
  font-weight:600;
  justify-content:center;
  align-items:center;
  padding: 5px;
}
.question{
  font-weight:600;
  margin-bottom:6px;
}
.cell input{
  width:100%;
  height:100%;
  box-sizing:border-box;
  padding:0;
  font-size:clamp(20px, calc(var(--cell-size) * 0.2), 14px);
  text-align:center;
  border-radius:0;
  border:none;
  background:transparent;
  outline:none;
  user-select: text;
  -webkit-user-select: text;
  -moz-user-select: text;
  -ms-user-select: text;
}
.cell input:focus {
  background:rgba(0,0,0,0.02);
}
.cell.correct{ background:#e6ffed; }
.cell.wrong{ background:#ffecec; }
.cell.highlight-row { background:#fff9e6 !important; }
.cell.highlight-col { background:#fff9e6 !important; }
footer { margin-top:4px; display:flex; flex-direction:column; gap:2px; font-size:11px; }
@media (max-width:720px){
  :root { --cell-size:64px; }
}