* { box-sizing: border-box; }
body { font: 16px/1.45 system-ui, sans-serif; margin: 0 auto; padding: 16px; max-width: 1100px; color: #1d1d1f; }
h1 { font-size: 1.4rem; } h1 small { font-weight: 400; color: #777; font-size: .8em; }
.muted { color: #666; font-size: .9rem; }
.status { padding: 10px 12px; border-radius: 8px; background: #f1f3f5; }
.status.ok { background: #e6f6ea; } .status.err { background: #fde8e8; }
button.big { font-size: 1.15rem; padding: 14px 18px; border-radius: 10px; border: 0; background: #1f6feb; color: #fff; width: 100%; margin: 10px 0; }
button.big:disabled { background: #9db7e0; }
button.secondary { font-size: 1rem; padding: 10px 14px; border-radius: 10px; border: 1px solid #999; background: #fff; width: 100%; }
.warn { background: #fff4d6; border-radius: 8px; padding: 10px 12px; margin: 8px 0; }
.phone img { width: 100%; margin-top: 10px; border-radius: 8px; }
.hint { color: #666; font-size: .9rem; }
#qr { width: 280px; } #qr svg { width: 100%; height: auto; }
#photo { max-width: 100%; max-height: 60vh; border: 1px solid #ddd; border-radius: 6px; }
.legend { font-weight: 600; }
.line { border-radius: 8px; padding: 8px 12px; margin: 6px 0; border-left: 6px solid; }
.line.auto { background: #eef9f0; border-color: #2da44e; }
.line.review { background: #fff6e5; border-color: #d4a72c; }
.line.new { background: #eaf2ff; border-color: #1f6feb; }
.printed b { unicode-bidi: plaintext; } .nums { color: #555; font-size: .9rem; }
.match { color: #1a7f37; font-size: .95rem; unicode-bidi: plaintext; }
.opt { display: block; font-size: .95rem; padding: 2px 0; unicode-bidi: plaintext; }
.flag { color: #b35900; font-size: .9rem; }
pre.out { background: #f6f8fa; padding: 8px; font-size: .8rem; white-space: pre-wrap; }
