body { font-family: system-ui, -apple-system, Segoe UI, Roboto, sans-serif; margin: 20px; }
.row { display: flex; gap: 14px; flex-wrap: wrap; align-items: end; }
.card { border: 1px solid #ddd; border-radius: 12px; padding: 14px; margin: 12px 0; }
label { display: block; font-size: 12px; color: #444; margin-bottom: 4px; }
input[type="number"], input[type="text"] { padding: 8px; border: 1px solid #ccc; border-radius: 10px; width: 140px; }
input[type="file"] { padding: 6px; }
button { padding: 10px 12px; border: 1px solid #bbb; background: #fff; border-radius: 10px; cursor: pointer; }
button.primary { border-color: #333; }
button:disabled { opacity: 0.5; cursor: not-allowed; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace; }
.answer-input { text-transform: uppercase; font-size: 28px; letter-spacing: 0.08em; white-space: nowrap; }    /* try 22–28px depending on taste */
table { width: 100%; border-collapse: collapse; }
th, td { border-bottom: 1px solid #eee; padding: 8px; font-size: 12px; text-align: left; }
th { background: #fafafa; position: sticky; top: 0; }
.small { font-size: 12px; color: #555; }
.good { color: #0a7; font-weight: 600; }
.bad  { color: #c30; font-weight: 600; }
.report-grid { display:flex; gap:12px; flex-wrap:wrap; }
.report-block { flex:1; min-width:220px; }
