:root { --ink:#1c1c22; --muted:#6b6b76; --line:#d9d9de; --accent:#a31f34; --bg:#f7f6f4; --card:#fff;
        --ok:#1f7a4d; --warn:#9a5b00; --err:#a31f34; }
* { box-sizing: border-box; }
body { margin:0; font:15px/1.5 Arial, Helvetica, sans-serif; color:var(--ink); background:var(--bg); }
header { display:flex; flex-wrap:wrap; gap:12px 24px; align-items:center; justify-content:space-between;
         padding:14px 24px; background:var(--card); border-bottom:2px solid var(--accent); }
.brand { font-size:18px; letter-spacing:.04em; color:var(--ink); text-decoration:none; }
.brand span { color:var(--muted); font-size:14px; letter-spacing:0; margin-left:8px; }
nav { display:flex; flex-wrap:wrap; gap:6px 18px; align-items:center; }
nav form { margin:0; }
a { color:var(--accent); }
main { max-width:1080px; margin:0 auto; padding:24px 16px 64px; }
h1 { font:400 28px/1.2 Georgia, serif; margin:0; }
h2 { font:400 20px/1.3 Georgia, serif; margin:0 0 12px; }
.head { display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between; margin-bottom:16px; }
.card { background:var(--card); border:1px solid var(--line); border-radius:6px; padding:20px; margin:0 0 20px; }
.narrow { max-width:520px; }
table { width:100%; border-collapse:collapse; background:var(--card); }
th, td { text-align:left; padding:9px 10px; border-bottom:1px solid var(--line); vertical-align:top; }
th { font-size:13px; color:var(--muted); font-weight:700; }
.scroll { overflow-x:auto; }
fieldset { border:0; border-top:1px solid var(--line); margin:0 0 8px; padding:16px 0 4px;
           display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:12px 20px; }
legend { font:400 18px Georgia, serif; padding-right:10px; }
label { display:block; font-size:13px; color:var(--muted); }
label.check { color:var(--ink); font-size:15px; align-self:center; }
input[type=text], input[type=email], input[type=date], input[type=number], select, textarea {
  display:block; width:100%; margin-top:4px; padding:8px 10px; font:inherit; color:var(--ink);
  border:1px solid #b9b9c2; border-radius:4px; background:#fff; }
textarea { grid-column:1 / -1; }
:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
button, .button { display:inline-block; padding:9px 16px; font:inherit; color:#fff; background:var(--accent);
  border:1px solid var(--accent); border-radius:4px; cursor:pointer; text-decoration:none; }
button.secondary, .button.secondary { background:#fff; color:var(--accent); }
button.link { background:none; border:0; padding:0; color:var(--accent); text-decoration:underline; }
form.inline { display:flex; flex-wrap:wrap; gap:10px 20px; align-items:center; }
form.inline label { font-size:15px; color:var(--ink); }
.actions { display:flex; gap:12px; align-items:center; } .actions form { margin:0; }
.pill { display:inline-block; padding:2px 9px; border-radius:10px; font-size:13px; background:#ececf0; }
.pill.ok { background:#e2f3ea; color:var(--ok); } .pill.warn { background:#fdf0d8; color:var(--warn); }
.flash { padding:10px 14px; border-radius:4px; background:#ececf0; border-left:4px solid var(--muted); }
.flash.ok { background:#e2f3ea; border-color:var(--ok); } .flash.warn { background:#fdf0d8; border-color:var(--warn); }
.flash.error { background:#fbe6e9; border-color:var(--err); }
.hint, .empty { color:var(--muted); font-size:13px; }
dl { display:grid; grid-template-columns:minmax(180px, 280px) 1fr; gap:6px 16px; margin:0 0 16px; }
dt { color:var(--muted); } dd { margin:0; }
.log { margin:0 0 16px; padding-left:18px; }
.signature { max-width:260px; max-height:110px; border:1px dashed var(--line); padding:6px; background:#fff; }
@media (max-width:600px) { dl { grid-template-columns:1fr; } dt { margin-top:8px; } }
