:root{--navy:#1f3864;--grey:#f4f5f7;--line:#d5d9e0;--ok:#2e7d32;--warn:#b26a00;--err:#b3261e;--blue:#1565c0}
*{box-sizing:border-box}body{margin:0;font:14px/1.45 system-ui,Segoe UI,Arial,sans-serif;color:#1a1a1a;background:#fff}
header.top{background:var(--navy);color:#fff;padding:8px 20px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:8px}
header .brand a{color:#fff;font-weight:700;text-decoration:none;font-size:16px}header .muted{color:#c9d2e3}
header nav a,header nav .link{color:#fff;margin-left:14px;text-decoration:none;background:none;border:0;cursor:pointer;font:inherit}header nav .who{margin-left:14px;color:#c9d2e3}
main{max-width:1280px;margin:0 auto;padding:16px 20px}footer{text-align:center;padding:14px;font-size:12px}
h1{font-size:20px;color:var(--navy);margin:8px 0}h2{font-size:15px;color:var(--navy);margin:20px 0 6px;border-bottom:1px solid var(--line)}
.muted{color:#6b7280}.small{font-size:12px}.c{text-align:center}.inline{display:inline}.row{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap}.between{justify-content:space-between;align-items:center}.wrap{align-items:stretch}
.card{border:1px solid var(--line);border-radius:6px;padding:12px 16px;background:#fff;margin:8px 0}.narrow{max-width:480px;margin:40px auto}
label{display:block;margin:6px 0;font-weight:600}label.inline,label.chk{display:inline-block;font-weight:400;margin-right:12px}
input,select,textarea{font:inherit;padding:5px 7px;border:1px solid #9aa3b2;border-radius:4px;width:100%;max-width:520px;background:#fff}input[type=checkbox]{width:auto}
input:disabled,select:disabled,textarea:disabled{background:var(--grey);color:#333}
button,.btn{font:inherit;background:var(--navy);color:#fff;border:0;border-radius:4px;padding:7px 14px;cursor:pointer;text-decoration:none;display:inline-block;margin-top:6px}button.small,.btn.small{padding:3px 9px;font-size:12px}
.flash{padding:8px 12px;border-radius:4px;margin:6px 0;border-left:4px solid}.flash.ok{background:#e8f5e9;border-color:var(--ok)}.flash.warn{background:#fff6e5;border-color:var(--warn)}.flash.error{background:#fdecea;border-color:var(--err)}
table.grid{border-collapse:collapse;width:100%;margin:6px 0}table.grid th,table.grid td{border:1px solid var(--line);padding:5px 7px;text-align:left;vertical-align:top}table.grid th{background:var(--grey);font-size:12px}
.scroll{overflow-x:auto}.matrix td,.matrix th{font-size:12px;white-space:nowrap}
.tag{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px;background:#e5e7eb}.tag.complete,.tag.enrolled,.tag.occurred,.tag.closed{background:#c8e6c9}.tag.in_progress,.tag.screening,.tag.answered{background:#fff3cd}.tag.verified{background:#bbdefb}.tag.locked,.tag.completed{background:#d1c4e9}.tag.open,.tag.high,.tag.missed,.tag.screen_failed,.tag.discontinued{background:#ffcdd2}.tag.signed{background:#1f3864;color:#fff}
.dot{display:inline-block;width:14px;height:14px;border-radius:50%;border:1px solid #888;background:#fff}.dot.in_progress{background:#ffe082}.dot.complete{background:#81c784}.dot.verified{background:#64b5f6}.dot.locked{background:#9575cd}.dot.sig{box-shadow:0 0 0 2px var(--navy)}.legend .dot{margin:0 4px 0 10px;vertical-align:middle}
fieldset{border:1px solid var(--line);border-radius:6px;margin:10px 0;padding:8px 14px;display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:6px 18px}legend{font-weight:700;color:var(--navy);padding:0 6px}
.field label{font-weight:500;font-size:13px}.field.err input,.field.err select,input.err{border-color:var(--err);background:#fff5f5}.errmsg{color:var(--err);font-size:12px}.req{color:var(--err)}
.checks label{display:block;font-weight:400;margin:2px 0}.savebar{position:sticky;bottom:0;background:#fffbe6;border-color:#f0d264}
.logblock{margin:10px 0;padding:6px 10px;border-left:3px solid var(--line)}.qform input{max-width:260px;display:inline-block}tr.closed td{color:#777}
