:root { --ink:#1a1a1a; --bg:#fbfaf7; --card:#fff; --line:#8a8a8a; --accent:#14507a; --err:#9b1c1c; }
* { box-sizing: border-box; }
body { margin:0; font:18px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--ink); background:var(--bg); }
.bar { display:flex; justify-content:space-between; align-items:center; padding:12px 20px; background:var(--card); border-bottom:2px solid var(--line); }
.brand { font-weight:700; color:var(--ink); text-decoration:none; }
main { max-width:640px; margin:24px auto; padding:0 20px; }
h1 { font-size:1.7rem; }
.card { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:20px; }
label { display:block; margin:16px 0 6px; font-weight:600; }
input { width:100%; min-height:48px; padding:8px 12px; font:inherit; border:2px solid var(--line); border-radius:6px; }
input:focus, button:focus { outline:3px solid var(--accent); outline-offset:2px; }
button { min-height:48px; padding:8px 22px; margin-top:20px; font:inherit; font-weight:600; color:#fff; background:var(--accent); border:0; border-radius:6px; cursor:pointer; }
button.secondary { margin:0 0 0 12px; color:var(--accent); background:transparent; border:2px solid var(--accent); }
.inline { display:flex; align-items:center; margin:0; }
.error { padding:12px 16px; color:var(--err); background:#fdeeee; border:2px solid var(--err); border-radius:6px; font-weight:600; }
.empty { color:#444; }
.qr svg { width:220px; height:220px; background:#fff; }
nav a { margin-right:16px; }
/* click targets: every link a person taps is at least 44px tall and wide */
.bar nav a, .brand, main a:not(.button):not(.tab) { display:inline-flex; align-items:center; justify-content:center; min-height:44px; min-width:44px; padding:0 8px; }
.bar nav a { margin-right:4px; }
.hint a, p a:not(.button):not(.tab) { vertical-align:middle; }
.card { margin:16px 0; }
.card h2 { margin-top:0; font-size:1.25rem; }
.notice { padding:12px 16px; background:#eef4f9; border:2px solid var(--accent); border-radius:6px; }
.button { display:inline-block; min-height:48px; padding:10px 22px; color:#fff; background:var(--accent); border-radius:6px; font-weight:600; text-decoration:none; }
.hint, .detail { color:#444; font-size:.95rem; }
.flag { color:var(--err); font-weight:600; }
.list { width:100%; border-collapse:collapse; }
.list th, .list td { text-align:left; padding:10px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
select { width:100%; min-height:48px; padding:8px 12px; font:inherit; border:2px solid var(--line); border-radius:6px; }
fieldset { border:0; padding:0; margin:16px 0 0; }
.choice { display:flex; align-items:center; min-height:48px; margin:8px 0 0; padding:6px 10px; font-weight:400; border:1px solid var(--line); border-radius:6px; cursor:pointer; }
.choice input { width:24px; height:24px; min-height:0; margin:0 12px 0 0; flex:none; }
.result { padding:8px 0; border-top:1px solid #ddd; }
@media (min-width: 900px) { main { max-width:900px; } }
.summary { font-size:1.3rem; font-weight:700; margin:8px 0 0; }
.filters { display:flex; flex-wrap:wrap; gap:12px; margin:12px 0; }
.tab { display:inline-block; min-height:48px; padding:10px 18px; border:2px solid var(--accent); border-radius:6px; color:var(--accent); font-weight:600; text-decoration:none; }
.tab.on { color:#fff; background:var(--accent); }
.line { margin:16px 0; padding:14px 16px; background:var(--card); border:1px solid var(--line); border-left:10px solid var(--line); border-radius:6px; }
.line.sure { border-left-color:#1b6e3c; }
.line.look { border-left-color:#b45f06; background:#fff8ee; }
.line.stop { border-left-color:var(--err); background:#fdf1f1; }
.line.skipped { opacity:.75; border-left-style:dashed; }
.line.approved { border-left-color:#1b6e3c; background:#f1f8f3; }
.state { margin:0 0 6px; font-weight:700; }
.state.look { color:#8a4700; }
.state.stop { color:var(--err); }
.state.sure { color:#1b6e3c; }
.when { margin:4px 0; }
.desc { margin:4px 0 8px; white-space:pre-wrap; overflow-wrap:anywhere; }
.actions { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.actions form { margin:0; }
.actions button { margin-top:12px; }
.actions button.secondary { margin:12px 0 0; }
.line input { min-height:48px; }
button:disabled { opacity:.7; cursor:default; }
.check { margin:8px 0; padding:10px 14px; border-left:8px solid var(--line); background:var(--card); }
.check.ok { border-left-color:#1b6e3c; background:#f1f8f3; }
.loud { margin:16px 0; padding:16px 18px; font-size:1.2rem; font-weight:700; color:var(--err); background:#fdeeee; border:3px solid var(--err); border-radius:6px; }
.parts { margin:12px 0; padding-left:0; list-style:none; }
.parts li { margin:12px 0; padding:12px 14px; border:1px solid var(--line); border-radius:6px; }
