:root{--bg: #0f172a;--panel: #111827;--board-bg: #ffffff;--grid: #94a3b8;--grid-strong: #1e293b;--fixed: #0f172a;--editable: #1d4ed8;--select: #bfdbfe;--highlight: #e0e7ff;--same: #fde68a;--conflict: #fecaca;--conflict-text: #b91c1c;--button: #1f2937;--button-hover: #374151;--primary: #2563eb;--primary-hover: #1d4ed8;--text: #f1f5f9;--muted: #94a3b8;--ok: #16a34a;--err: #dc2626;--info: #0ea5e9}*{box-sizing:border-box}html,body,#root{margin:0;padding:0;min-height:100%;background:linear-gradient(180deg,#0b1224,#0f172a);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif}.app{max-width:560px;margin:0 auto;padding:24px 16px 64px;display:flex;flex-direction:column;gap:16px}.app-header{display:flex;justify-content:space-between;align-items:center}.app-header h1{margin:0;font-size:28px;letter-spacing:.5px}.timer{font-variant-numeric:tabular-nums;background:var(--panel);border:1px solid #1f2937;padding:6px 12px;border-radius:8px;font-size:18px;color:var(--muted)}.controls{display:flex;flex-direction:column;gap:8px}.controls .row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.diff-label{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:14px}.diff-label select{background:var(--panel);color:var(--text);border:1px solid #374151;border-radius:6px;padding:6px 8px;font-size:14px}.controls button,.numpad button{background:var(--button);color:var(--text);border:1px solid #374151;padding:8px 12px;border-radius:8px;cursor:pointer;font-size:14px;transition:background .12s ease,transform 80ms ease}.controls button:hover:not(:disabled),.numpad button:hover:not(:disabled){background:var(--button-hover)}.controls button:active:not(:disabled){transform:translateY(1px)}.controls button:disabled,.numpad button:disabled{opacity:.4;cursor:not-allowed}.controls button.primary{background:var(--primary);border-color:var(--primary)}.controls button.primary:hover{background:var(--primary-hover)}.controls button.toggle.on{background:#f59e0b;color:#1f2937;border-color:#f59e0b}.status{padding:10px 12px;border-radius:8px;font-size:14px;text-align:center}.status.info{background:#0ea5e926;color:var(--info)}.status.ok{background:#16a34a26;color:var(--ok)}.status.err{background:#dc262626;color:var(--err)}.status.big{font-size:18px;padding:14px;font-weight:600}.board{display:flex;flex-direction:column;background:var(--board-bg);color:#0f172a;border:3px solid var(--grid-strong);border-radius:6px;overflow:hidden;-webkit-user-select:none;user-select:none;align-self:center;width:min(100%,540px);aspect-ratio:1 / 1}.board-row{display:flex;flex:1}.cell{flex:1;border:1px solid #cbd5e1;background:transparent;font-size:clamp(18px,5vw,28px);font-weight:500;display:flex;align-items:center;justify-content:center;padding:0;margin:0;cursor:pointer;font-family:inherit;color:var(--fixed);position:relative;transition:background-color 80ms ease}.cell:focus{outline:none}.cell.fixed{color:var(--fixed);font-weight:700;background:#f8fafc}.cell.editable{color:var(--editable)}.cell.highlight{background:var(--highlight)}.cell.same{background:var(--same)}.cell.selected{background:var(--select)}.cell.conflict{color:var(--conflict-text);background:var(--conflict)}.cell.conflict.selected{background:#fca5a5}.cell.box-right{border-right:2px solid var(--grid-strong)}.cell.box-bottom{border-bottom:2px solid var(--grid-strong)}.cell .notes{display:grid;grid-template-columns:repeat(3,1fr);width:100%;height:100%;font-size:clamp(8px,1.8vw,11px);color:var(--muted);font-weight:600;padding:2px}.cell .notes .note{display:flex;align-items:center;justify-content:center;line-height:1}.numpad{display:grid;grid-template-columns:repeat(10,1fr);gap:6px}.numpad button{padding:14px 0;font-size:18px;font-weight:600}.numpad.notes button:not(.erase){background:#f59e0b;color:#1f2937;border-color:#f59e0b}.numpad .erase{font-size:16px}.app-footer{text-align:center;color:var(--muted);font-size:12px;margin-top:4px}@media (max-width: 480px){.app{padding:12px}.app-header h1{font-size:22px}.numpad{grid-template-columns:repeat(5,1fr)}}
