:root { --ink:#16212b; --muted:#5b6b7a; --accent:#0b6e8f; --bg:#f5f7f9; --card:#fff; --line:#dbe3ea; --bad:#a4262c; --good:#107c41; --warn:#8a6d00; }
* { box-sizing:border-box; }
body { margin:0; font:15px/1.5 system-ui,-apple-system,"Segoe UI",sans-serif; color:var(--ink); background:var(--bg); }
header.site { background:var(--ink); color:#fff; padding:.6rem 1.2rem; display:flex; gap:1.2rem; align-items:center; }
header.site a { color:#dce7ee; text-decoration:none; margin-right:.8rem; }
header.site .brand { font-weight:700; letter-spacing:.03em; }
main { max-width:1100px; margin:1.5rem auto; padding:0 1rem; }
h1 { font-size:1.4rem; } h2 { font-size:1.1rem; margin-top:2rem; }
table { width:100%; border-collapse:collapse; background:var(--card); border:1px solid var(--line); }
th,td { text-align:left; padding:.5rem .7rem; border-bottom:1px solid var(--line); font-size:.92rem; }
th { background:#eef2f5; font-weight:600; }
form.card, .card { background:var(--card); border:1px solid var(--line); border-radius:6px; padding:1rem 1.2rem; margin:.8rem 0; max-width:520px; }
label { display:block; margin:.6rem 0 .15rem; font-weight:600; font-size:.88rem; }
input,select,textarea { width:100%; padding:.45rem .6rem; border:1px solid var(--line); border-radius:4px; font:inherit; }
button { margin-top:.8rem; background:var(--accent); color:#fff; border:0; border-radius:4px; padding:.5rem 1rem; font:inherit; cursor:pointer; }
button.danger { background:var(--bad); }
.status { display:inline-block; padding:.1rem .5rem; border-radius:99px; font-size:.8rem; font-weight:600; }
.status.active,.status.finalized,.status.approved,.status.issued { background:#e3f3e9; color:var(--good); }
.status.quarantined,.status.duplicate_serial_review,.status.validating,.status.staged,.status.submitted,.status.draft { background:#fdf3d7; color:var(--warn); }
.status.lost,.status.retired,.status.replaced,.status.revoked,.status.expired,.status.validation_failed,.status.disabled,.status.superseded { background:#fbe7e8; color:var(--bad); }
.flash { padding:.6rem 1rem; border-radius:4px; margin:.8rem 0; }
.flash.error { background:#fbe7e8; color:var(--bad); }
.flash.ok { background:#e3f3e9; color:var(--good); }
.muted { color:var(--muted); font-size:.88rem; }
