:root{--bg:#f6f7f9;--card:#fff;--surface:#fff;--surface-2:#f1f3f5;--chip:#eef1f4;--info-bg:#eef4ff;--info-line:#c7d8fb;--ok-bg:#eefaf1;--ok-line:#a7d8b4;--warn-bg:#fff8e1;--warn-line:#e5cf8f;--bad-bg:#fff0f1;--bad-line:#f2b8bd;--ink:#1d232b;--muted:#5d6875;--line:#dde2e8;--accent:#1f6feb;--accent-ink:#fff;--ok:#1a7f37;--warn:#9a6700;--bad:#cf222e;--radius:8px}
*{box-sizing:border-box}
body{margin:0;font:15px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;background:var(--bg);color:var(--ink)}
a{color:var(--accent)}
header.top{background:var(--surface);border-bottom:1px solid var(--line);padding:.6rem 1rem;display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
header.top .brand{font-weight:700;font-size:1.15rem;color:var(--ink);text-decoration:none;letter-spacing:.01em}
header.top nav{display:flex;gap:1rem;flex-wrap:wrap;margin-left:auto}
header.top nav a{text-decoration:none;color:var(--muted)}
main{max-width:1180px;margin:0 auto;padding:1.25rem 1rem 3rem}
main.wide{max-width:none;padding:0}
footer.site{max-width:1180px;margin:0 auto;padding:1rem;color:var(--muted);font-size:.85rem;display:flex;gap:1rem;flex-wrap:wrap}
h1{font-size:1.5rem;margin:.2rem 0 1rem}h2{font-size:1.15rem;margin:1.5rem 0 .6rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem 1.1rem;margin-bottom:1rem}
.grid{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
table{border-collapse:collapse;width:100%;background:var(--surface)}
th,td{border-bottom:1px solid var(--line);padding:.45rem .5rem;text-align:left;vertical-align:top}
th{font-weight:600;color:var(--muted);font-size:.85rem}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
.table-wrap{overflow-x:auto}
.btn,button{display:inline-block;border:1px solid var(--line);background:var(--surface);color:var(--ink);padding:.45rem .9rem;border-radius:6px;cursor:pointer;font:inherit;text-decoration:none}
.btn.primary,button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.danger,button.danger{color:var(--bad);border-color:var(--bad)}
button:disabled{opacity:.5;cursor:not-allowed}
form p{margin:.5rem 0}label{display:block;font-weight:500;margin-bottom:.2rem}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{width:100%;max-width:520px;padding:.45rem .55rem;border:1px solid var(--line);border-radius:6px;font:inherit;background:var(--surface);color:var(--ink)}
input[type=checkbox]{margin-right:.4rem}
.errorlist{color:var(--bad);margin:.2rem 0;padding-left:1rem}
.helptext{color:var(--muted);font-size:.85rem}
.badge{display:inline-block;padding:.05rem .5rem;border-radius:999px;font-size:.8rem;border:1px solid var(--line);background:var(--surface-2)}
.badge.ok{color:var(--ok);border-color:var(--ok-line);background:var(--ok-bg)}.badge.warn{color:var(--warn);border-color:var(--warn-line);background:var(--warn-bg)}.badge.bad{color:var(--bad);border-color:var(--bad-line);background:var(--bad-bg)}
.messages{list-style:none;padding:0;margin:0 0 1rem}.messages li{padding:.6rem .8rem;border-radius:6px;margin-bottom:.4rem;background:var(--info-bg);border:1px solid var(--info-line)}
.messages li.error{background:var(--bad-bg);border-color:var(--bad-line)}.messages li.success{background:var(--ok-bg);border-color:var(--ok-line)}
.draft-banner{background:var(--warn-bg);border:1px solid var(--warn-line);padding:.7rem 1rem;border-radius:6px;font-weight:600;margin-bottom:1rem}
.muted{color:var(--muted)}.small{font-size:.85rem}
.steps{display:flex;gap:.4rem;flex-wrap:wrap;margin-bottom:1rem;padding:0;list-style:none}
.steps li{padding:.3rem .7rem;border-radius:999px;background:var(--chip);color:var(--muted);font-size:.85rem}
.steps li.done{background:var(--ok-bg);color:var(--ok)}.steps li.current{background:var(--accent);color:#fff}
.dropzone{border:2px dashed var(--line);border-radius:var(--radius);padding:2rem;text-align:center;background:var(--surface)}
.dropzone.over{border-color:var(--accent);background:var(--info-bg)}
.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}
@media (max-width:640px){header.top nav{margin-left:0}th,td{padding:.35rem}}
