/* Leslie Local Certificates: large type, high contrast, one column, no nested scrolling. */
:root { --bg:#0f172a; --card:#1e293b; --text:#f8fafc; --muted:#cbd5e1; --line:#334155;
        --blue:#3b82f6; --green:#16a34a; --red:#dc2626; --amber:#d97706; }
* { box-sizing:border-box; }
html, body { margin:0; background:var(--bg); color:var(--text);
  font: 18px/1.45 system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; }
body { padding:16px; max-width:560px; margin:0 auto; }
h1 { font-size:1.5rem; margin:0 0 4px; }
h2 { font-size:1.15rem; margin:20px 0 8px; color:var(--muted); font-weight:600; }
.sub { color:var(--muted); margin:0 0 16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:16px; margin-bottom:16px; }
label { display:block; font-weight:600; margin:12px 0 6px; }
input, select { width:100%; font-size:1.25rem; padding:14px; border-radius:10px; border:1px solid var(--line);
  background:#0b1220; color:var(--text); }
input.code { font-family: ui-monospace, Menlo, Consolas, monospace; letter-spacing:.08em; text-transform:uppercase; }
button { width:100%; font-size:1.25rem; font-weight:700; padding:16px; border:0; border-radius:12px;
  background:var(--blue); color:#fff; margin-top:14px; cursor:pointer; }
button.secondary { background:#334155; }
button.small { width:auto; font-size:1rem; padding:10px 14px; margin:8px 8px 0 0; }
button:disabled { opacity:.5; }
.result { border-radius:12px; padding:18px; margin-top:14px; font-size:1.3rem; font-weight:700; text-align:center; }
.result.good { background:var(--green); }
.result.bad { background:var(--red); }
.result.warn { background:var(--amber); }
.result small { display:block; font-weight:400; font-size:1rem; margin-top:8px; }
.row { display:flex; gap:10px; align-items:center; }
.row > * { flex:1; }
.muted { color:var(--muted); font-size:.95rem; }
.list { list-style:none; margin:0; padding:0; }
.list li { padding:10px 0; border-bottom:1px solid var(--line); display:flex; justify-content:space-between; gap:10px; }
.topbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:12px; }
.topbar a, .topbar button { width:auto; margin:0; font-size:.95rem; padding:8px 12px; color:var(--muted);
  background:transparent; border:1px solid var(--line); border-radius:8px; text-decoration:none; }
#reader { width:100%; border-radius:12px; overflow:hidden; background:#000; min-height:240px; }
.hidden { display:none !important; }
.stat { font-size:1.5rem; font-weight:800; white-space:nowrap; }
.pinpad { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:10px; }
.pinpad button { margin:0; font-size:1.6rem; padding:18px; background:#334155; }
