:root { --ink:#1d2433; --muted:#5b6475; --line:#d9dee7; --bg:#f5f6f8; --card:#fff; --accent:#1f4e79; --yes:#fbe0cc; --chk:#fff4cc; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.45 -apple-system, "Segoe UI", Arial, sans-serif; color:var(--ink); background:var(--bg); }
.top { display:flex; justify-content:space-between; align-items:center; padding:10px 20px; background:var(--accent); }
.top a, .top button { color:#fff; text-decoration:none; }
.brand { font-weight:600; }
main { max-width:1150px; margin:0 auto; padding:16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:8px; padding:16px 20px; margin:0 0 16px; }
.narrow { max-width:380px; margin:60px auto; }
h1 { font-size:22px; margin:0 0 8px; } h2 { font-size:18px; margin:0 0 8px; } h3 { font-size:15px; margin:16px 0 6px; color:var(--accent); }
label { display:block; margin:6px 0; } label.radio { display:inline; margin-right:10px; white-space:nowrap; }
input, select, textarea, button { font:inherit; }
input, select, textarea { border:1px solid var(--line); border-radius:6px; padding:6px 8px; width:100%; }
input[type=radio], input[type=checkbox] { width:auto; }
textarea { resize:vertical; }
button { background:var(--accent); color:#fff; border:0; border-radius:6px; padding:8px 14px; cursor:pointer; }
button.secondary { background:#e8edf4; color:var(--accent); }
button.link { background:none; color:inherit; padding:0; text-decoration:underline; }
form.inline { display:inline; }
.row { display:flex; gap:8px; align-items:center; margin:8px 0; } .row input { flex:1; }
.grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(180px, 1fr)); gap:8px 16px; align-items:end; }
.hint { color:var(--muted); font-size:13px; }
.error { color:#a12; }
table { border-collapse:collapse; width:100%; }
.list td, .list th, .qs td { border-bottom:1px solid var(--line); padding:6px 8px; text-align:left; vertical-align:top; }
.list th { font-size:13px; color:var(--muted); font-weight:600; }
.nowrap { white-space:nowrap; }
.probes td { border-bottom:1px solid var(--line); padding:8px 6px; vertical-align:top; }
.probes .code { width:44px; color:var(--muted); } .probes .score { width:80px; } .probes textarea { min-width:180px; }
.norm { font-size:13px; color:#333; margin:2px 0; } .fac { font-size:11px; color:var(--muted); }
tr.na, h3.na { display:none; } body.showall tr.na, body.showall h3.na { display:table-row; opacity:.45; } body.showall h3.na { display:block; }
.savebar { position:sticky; top:0; z-index:5; background:var(--bg); padding:8px 0; display:flex; gap:12px; align-items:center; }
.toc a { margin-right:12px; }
details { border:1px solid var(--line); border-radius:6px; padding:6px 10px; margin:6px 0; }
summary { cursor:pointer; font-weight:600; }
label.err { font-size:14px; padding:3px 0; }
.bar { display:inline-block; height:10px; width:calc(var(--w) * 0.8); max-width:80px; background:#c55a11; border-radius:2px; vertical-align:middle; }
.st-yes td { background:var(--yes); } .st-chk td { background:var(--chk); }
.lvl-норм { color:#2e7d32; } .lvl-выра { color:#b42318; font-weight:600; }
#cv { max-width:100%; border:1px solid var(--line); cursor:crosshair; touch-action:none; }
.gallery { display:flex; flex-wrap:wrap; gap:12px; margin-top:12px; }
.gallery figure { margin:0; width:180px; } .gallery img { width:180px; height:140px; object-fit:cover; border:1px solid var(--line); border-radius:6px; }
.gallery figcaption { font-size:12px; }
body.print { background:#fff; max-width:800px; margin:20px auto; padding:0 20px; }
@media print { .noprint { display:none; } body.print { margin:0; } }
td.cm { min-width:200px; } .qs textarea { min-width:200px; }
