:root{--ink:#1B1D1F;--muted:#55595E;--faint:#6B6F74;--line:#E2E0DA;--line2:#EEECE7;--bg:#F4F3EF;--card:#FFFFFF;
--teal:#0F5E6B;--teal-ink:#0B4952;--teal-bg:#E1EDEE;--ok-bg:#E3F1E8;--ok:#1F6B45;--warn-bg:#FDF1E4;--warn:#8A4608;
--bad-bg:#FBE9E7;--bad:#A3231A;--hold-bg:#ECEAF6;--hold:#4B3F8F;--border:#C9C6BE}
*{box-sizing:border-box}
body{margin:0;font-family:'IBM Plex Sans',system-ui,sans-serif;background:var(--bg);color:var(--ink);font-size:16px}
a{color:var(--teal)}a:hover{color:#0A434C}
.mono{font-family:'IBM Plex Mono',ui-monospace,monospace}
header.top{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:28px;padding:0 28px;position:sticky;top:0;z-index:5}
header.top img{height:56px;display:block}
header.top nav{display:flex;gap:6px;flex-grow:1;flex-wrap:wrap}
.tab{display:flex;align-items:center;gap:8px;min-height:48px;padding:0 18px;border-radius:10px;color:#3D4146;font-weight:500;text-decoration:none}
.tab.on{background:var(--teal-bg);color:var(--teal-ink);font-weight:600}
.badge{min-width:22px;height:22px;padding:0 6px;border-radius:11px;background:#B42318;color:#fff;font-size:12px;font-weight:600;display:inline-flex;align-items:center;justify-content:center}
.who{display:flex;align-items:center;gap:10px;min-height:48px;text-decoration:none;color:#3D4146}
.avatar{width:40px;height:40px;border-radius:20px;background:var(--ink);color:#fff;display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:15px}
.avatar.sm{width:32px;height:32px;border-radius:16px;font-size:12px}
main{padding:24px 28px 40px;max-width:1280px;margin:0 auto;display:flex;flex-direction:column;gap:20px}
.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:24px}
.grid2{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:24px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 24px}
.lbl{font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint)}
.val{font-size:19px;font-weight:500}
.sub{font-size:14px;color:var(--muted)}
h1{margin:0;font-size:26px;font-weight:600}h2{margin:0;font-size:18px;font-weight:600}
.head{display:flex;align-items:center;gap:16px}
.back{width:48px;height:48px;border-radius:12px;border:1.5px solid var(--border);background:#fff;color:var(--ink);display:flex;align-items:center;justify-content:center;text-decoration:none;font-size:22px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:56px;padding:0 26px;border-radius:12px;font-size:17px;font-weight:600;text-decoration:none;border:0;cursor:pointer;font-family:inherit}
.btn.primary{background:var(--teal);color:#fff}.btn.secondary{background:#fff;color:var(--ink);border:1.5px solid var(--border);font-weight:500}
.btn.danger{background:#fff;color:var(--bad);border:1.5px solid #E7B4AE;font-weight:500}
.btn.sm{min-height:44px;padding:0 16px;font-size:15px}
.actions{display:flex;gap:12px;justify-content:flex-end;margin-top:auto}
.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip input{position:absolute;opacity:0;pointer-events:none}
.chip span{display:inline-flex;align-items:center;min-height:48px;padding:0 18px;border-radius:24px;border:1.5px solid var(--border);background:#fff;font-weight:500;cursor:pointer}
.chip input:checked+span{border:2px solid var(--teal);background:var(--teal-bg);color:var(--teal-ink);font-weight:600}
.chip input:focus-visible+span{outline:3px solid #9DBFC3}
input[type=text],input[type=number],input[type=search],input[type=date],input[type=time],select,textarea{height:52px;padding:0 14px;border:1.5px solid var(--border);border-radius:10px;font-family:inherit;font-size:17px;background:#fff;color:var(--ink);width:100%}
textarea{height:auto;min-height:80px;padding:12px 14px}
label.field{display:flex;flex-direction:column;gap:6px}
label.check{display:flex;gap:12px;align-items:center;min-height:48px}
label.check input{width:24px;height:24px;accent-color:var(--teal)}
.pill{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 12px;border-radius:15px;font-size:14px;font-weight:600;align-self:flex-start}
.pill.ok{background:var(--ok-bg);color:var(--ok)}.pill.warn{background:var(--warn-bg);color:var(--warn)}
.pill.bad{background:var(--bad-bg);color:var(--bad)}.pill.hold{background:var(--hold-bg);color:var(--hold)}
.banner{display:flex;gap:12px;align-items:flex-start;padding:14px 18px;border-radius:12px;font-size:16px}
.banner.hold{background:var(--hold-bg);border:1px solid #C9C2EA;color:#3B3175}
.banner.warn{background:var(--warn-bg);border:1px solid #F0C999;color:#7A3E07}
.banner.ok{background:var(--ok-bg);color:var(--ok)}.banner.bad{background:var(--bad-bg);color:var(--bad)}
.stepper{display:flex;align-items:center;gap:16px}
.stepper button{width:64px;height:64px;border-radius:14px;border:1.5px solid var(--border);background:#fff;font-size:30px;cursor:pointer}
.stepper output{min-width:64px;text-align:center;font-size:40px;font-weight:600}
table{width:100%;border-collapse:collapse}
th{text-align:left;font-size:13px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--faint);padding:12px 16px;border-bottom:1px solid var(--line)}
td{padding:14px 16px;border-bottom:1px solid var(--line2);vertical-align:middle}
.table-card{padding:0;overflow:hidden}
.scanzone{border:2px dashed #9DBFC3;border-radius:16px;background:#F3F8F8;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;text-align:center;padding:32px;min-height:280px}
.scanzone .big{font-size:28px;font-weight:600}
.ready{display:flex;align-items:center;gap:8px;color:var(--ok);font-weight:600;font-size:15px}
.ready i{width:10px;height:10px;border-radius:5px;background:#1F8A55;display:inline-block}
.modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.mode{display:flex;flex-direction:column;gap:4px;min-height:84px;padding:14px 16px;border-radius:12px;border:2px solid var(--line);background:#fff;color:var(--ink);text-decoration:none}
.mode.on{border-color:var(--teal);background:var(--teal-bg);color:var(--teal-ink)}
.mode b{font-size:18px}.mode small{font-size:14px;color:var(--muted)}
.att{display:flex;align-items:center;gap:14px;min-height:56px;padding:0 14px;border-radius:12px;text-decoration:none}
.att b{font-size:26px;min-width:28px}
.att.hold{background:var(--hold-bg);color:#3B3175}.att.warn{background:var(--warn-bg);color:var(--warn)}.att.bad{background:var(--bad-bg);color:var(--bad)}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);background:var(--ink);color:#fff;padding:14px 22px;border-radius:12px;font-size:16px;display:none;z-index:20;max-width:90vw}
.home{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:24px}
.results{display:flex;flex-direction:column;gap:6px}
.result{display:flex;align-items:center;gap:14px;min-height:52px;padding:0 14px;border-radius:10px;border:1.5px solid var(--line);background:#fff}
.result:has(input:checked){border:2px solid var(--teal);background:var(--teal-bg)}
.timeline div{padding:10px 0;border-bottom:1px solid var(--line2)}
@media (max-width:900px){.grid2,.home{grid-template-columns:1fr}.modes{grid-template-columns:1fr}}
