:root { --ink:#1c2a33; --muted:#5d6b75; --line:#d9dfe3; --bg:#f5f7f8; --card:#fff; --accent:#1f6f5f; --accent-ink:#fff; --warn:#8a5a00; --warn-bg:#fff6e0; --err:#9b2222; --err-bg:#fdecec; --ok:#1f6f5f; --ok-bg:#e6f4f0; }
* { box-sizing: border-box; }
body { margin:0; font: 15px/1.45 -apple-system, "Segoe UI", Helvetica, Arial, sans-serif; color:var(--ink); background:var(--bg); }
.top { display:flex; justify-content:space-between; align-items:center; padding:12px 20px; background:#fff; border-bottom:1px solid var(--line); }
.brand { font-weight:600; display:flex; align-items:center; gap:10px; }
.brand .mark { display:inline-grid; place-items:center; width:28px; height:28px; border-radius:6px; background:var(--accent); color:#fff; font-weight:700; }
.brand .sub { font-weight:400; color:var(--muted); font-size:13px; }
.who { font-size:13px; color:var(--muted); display:flex; gap:12px; align-items:center; }
.main { max-width:1080px; margin:0 auto; padding:20px 16px 60px; }
.foot { text-align:center; color:var(--muted); font-size:12px; padding:20px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:10px; padding:20px; margin-bottom:16px; }
.card h2 { margin:0 0 6px; font-size:19px; }
.card h3 { margin:18px 0 8px; font-size:15px; color:var(--muted); text-transform:uppercase; letter-spacing:.04em; }
.hint { color:var(--muted); font-size:13px; margin:0 0 12px; }
.layout { display:grid; grid-template-columns:230px 1fr; gap:16px; }
@media (max-width: 800px) { .layout { grid-template-columns:1fr; } }
.nav { position:sticky; top:12px; align-self:start; }
.nav a { display:block; padding:8px 10px; border-radius:6px; color:var(--ink); text-decoration:none; font-size:14px; }
.nav a.active, .nav a:hover { background:#e8f0ee; color:var(--accent); }
.nav .done { float:right; color:var(--ok); font-size:12px; }
.grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:10px 14px; }
label.f { display:block; font-size:13px; color:var(--muted); }
label.f span { display:block; margin-bottom:3px; }
input[type=text], input[type=email], input[type=date], input[type=month], input[type=number], input[type=password], select, textarea {
  width:100%; padding:8px 9px; border:1px solid var(--line); border-radius:6px; font:inherit; color:var(--ink); background:#fff; }
textarea { min-height:70px; resize:vertical; }
.row { display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
button { font:inherit; padding:8px 14px; border-radius:6px; border:1px solid var(--accent); background:var(--accent); color:var(--accent-ink); cursor:pointer; }
button.ghost { background:#fff; color:var(--accent); }
button.small { padding:4px 9px; font-size:13px; }
button.danger { border-color:var(--err); background:#fff; color:var(--err); }
button:disabled { opacity:.5; cursor:default; }
table.rows { width:100%; border-collapse:collapse; font-size:13px; margin:8px 0; }
table.rows th, table.rows td { border-bottom:1px solid var(--line); padding:5px 4px; text-align:left; vertical-align:top; }
table.rows input, table.rows select { padding:5px 6px; font-size:13px; width:100%; min-width:70px; box-sizing:border-box; }
table.rows input[type=month], table.rows input[type=date] { min-width:125px; }
table.rows input[type=checkbox] { width:auto; min-width:0; }
.msg { padding:10px 12px; border-radius:6px; margin:10px 0; font-size:14px; }
.msg.ok { background:var(--ok-bg); color:var(--ok); }
.msg.warn { background:var(--warn-bg); color:var(--warn); }
.msg.err { background:var(--err-bg); color:var(--err); }
.q { border-top:1px solid var(--line); padding:12px 0; }
.q .text { margin-bottom:6px; }
.q .refs { color:var(--muted); font-size:12px; }
.q .yn label { margin-right:16px; }
.pill { display:inline-block; padding:2px 8px; border-radius:12px; font-size:12px; background:#eef2f4; color:var(--muted); margin-right:6px; }
.pill.yes { background:#e3ecf7; color:#1f4e8c; }
.pill.unanswered { background:#fff; color:var(--muted); border:1px dashed var(--line); }
.pill.review { background:var(--warn-bg); color:var(--warn); }
.pill.no { background:var(--ok-bg); color:var(--ok); }
.center { max-width:520px; margin:40px auto; }
.filelist a { display:block; padding:6px 0; }
.toolbar { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:14px; flex-wrap:wrap; }
.check { display:flex; gap:8px; align-items:flex-start; padding:8px 0; }
.check input { margin-top:4px; }
.muted { color:var(--muted); }
code { background:#eef2f4; padding:1px 5px; border-radius:4px; font-size:12px; }
