:root{--ink:#14202b;--muted:#5b6b78;--line:#dbe3ea;--bg:#f5f7f9;--card:#fff;--teal:#0b6b62;--teal-soft:#e2f1ee;--amber:#9a5b00;--amber-soft:#fff3d6;--red:#a3271f;--red-soft:#fbe6e3;--blue:#1f4e8c;--blue-soft:#e4edf9;--mono:"IBM Plex Mono",ui-monospace,Menlo,monospace;--sans:"IBM Plex Sans",system-ui,-apple-system,Segoe UI,sans-serif}
*{box-sizing:border-box}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);line-height:1.45}
a{color:var(--teal)}code{font-family:var(--mono);font-size:.92em}
header.top{display:flex;justify-content:space-between;align-items:center;padding:12px 28px;background:#fff;border-bottom:1px solid var(--line)}
.brand{font-weight:700;color:var(--ink);text-decoration:none;font-size:18px;display:flex;align-items:center;gap:8px}.brand small{font-weight:400;color:var(--muted);font-size:13px}
.mark{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:7px;background:var(--teal);color:#fff;font-family:var(--mono);font-weight:600}
nav a{margin-left:18px;text-decoration:none;color:var(--muted);font-weight:500}nav a:hover{color:var(--teal)}
main{max-width:1240px;margin:0 auto;padding:24px 28px 60px}footer{max-width:1240px;margin:0 auto;padding:16px 28px 40px;color:var(--muted);font-size:13px}
.flash{max-width:1240px;margin:14px auto 0;padding:10px 16px;border-radius:8px;font-size:14px}.flash.notice{background:var(--teal-soft);color:var(--teal)}.flash.alert{background:var(--red-soft);color:var(--red)}
.hero h1{margin:0 0 6px;font-size:28px}.lede{color:var(--muted);max-width:820px;margin:0 0 12px}.actions{margin:0 0 8px}
h2.group{font-size:15px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:26px 0 10px}.count{display:inline-block;background:var(--line);border-radius:10px;padding:0 8px;font-size:12px;margin-left:6px}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:12px}
.card{display:block;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px 16px;text-decoration:none;color:var(--ink);transition:border-color .15s,box-shadow .15s}.card:hover{border-color:var(--teal);box-shadow:0 2px 10px rgba(11,107,98,.10)}
.card-title{font-weight:600;margin-bottom:2px}.card-meta{color:var(--muted);font-size:13px}.card-codes{margin-top:8px;display:flex;flex-wrap:wrap;gap:4px}.card-claim{margin-top:8px;font-family:var(--mono);font-size:12px;color:var(--teal)}
.chip{font-family:var(--mono);font-size:12px;padding:1px 7px;border-radius:5px;border:1px solid var(--line);background:#fff}.chip.dx{border-color:#b9d4f5;background:var(--blue-soft);color:var(--blue)}.chip.px{border-color:#bfe0d9;background:var(--teal-soft);color:var(--teal)}.chip.rejected{opacity:.4;text-decoration:line-through}.chip.proposed{border-style:dashed}
.muted{color:var(--muted)}.btn{display:inline-block;background:var(--teal);color:#fff;border:0;border-radius:8px;padding:9px 16px;font-weight:600;font-size:14px;cursor:pointer;text-decoration:none;font-family:var(--sans)}.btn.secondary{background:var(--blue)}.btn.danger{background:var(--red)}.btn.ghost{background:#fff;color:var(--muted);border:1px solid var(--line)}.btn.small{padding:5px 10px;font-size:12.5px;border-radius:6px}
.status{font-family:var(--mono);font-size:12px;padding:1px 7px;border-radius:5px;background:var(--line)}.status.finalized{background:var(--teal-soft);color:var(--teal)}.status.proposed{background:var(--amber-soft);color:var(--amber)}
.enc-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.enc-head h1{margin:0 0 4px;font-size:22px}.enc-actions{display:flex;gap:8px;flex-shrink:0}.enc-actions form{display:inline}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:22px}@media(max-width:900px){.split{grid-template-columns:1fr}}
.note-pane h2,.review-pane h2{font-size:14px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:14px 0 8px}.review-pane h2 small{text-transform:none;letter-spacing:0;font-weight:400}
pre.note{white-space:pre-wrap;font-family:var(--mono);font-size:13px;line-height:1.55;background:#fff;border:1px solid var(--line);border-radius:10px;padding:16px;margin:0}pre.note.small{font-size:12px}
mark{border-radius:3px;padding:0 2px}mark.dx{background:#cfe0f8}mark.px{background:#c5e8e0}mark.proposed{outline:1px dashed #888}
.audit{margin-top:12px;font-size:12.5px}.audit ul{list-style:none;padding:0;margin:8px 0 0}.audit li{padding:3px 0;border-bottom:1px dotted var(--line)}.audit time{font-family:var(--mono);color:var(--muted);margin-right:6px}.audit code{font-size:11px;color:var(--muted)}
.issues{border-radius:10px;padding:12px 14px;background:#fff;border:1px solid var(--line);font-size:14px}.issues ul{margin:0;padding-left:18px}.issues li{margin:3px 0}.issues li.block{color:var(--red)}.issues li.warn{color:var(--amber)}.issues .rule{font-family:var(--mono);font-size:11.5px;background:var(--line);padding:0 5px;border-radius:4px;margin-right:4px;color:var(--ink)}.issues .ok{color:var(--teal);font-weight:600}
.proposals{display:flex;flex-direction:column;gap:8px}
.proposal{display:block;background:#fff;border:1px solid var(--line);border-left:4px solid #b9c7d3;border-radius:10px;padding:10px 14px}.proposal.accepted{border-left-color:var(--teal)}.proposal.rejected{border-left-color:#c9c9c9;opacity:.6}.proposal.unverified{border-left-color:var(--amber)}
.p-head{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.p-head .code{font-family:var(--mono);font-weight:600;font-size:15px}.p-head .code small{color:var(--muted);font-weight:500}.p-head .desc{flex:1;font-size:14px}.conf{font-family:var(--mono);font-size:12px;color:var(--muted)}
.state-tag{font-size:11px;text-transform:uppercase;letter-spacing:.05em;padding:1px 7px;border-radius:5px;background:var(--line)}.state-tag.accepted{background:var(--teal-soft);color:var(--teal)}.state-tag.rejected{background:#eee;color:#777}.state-tag.proposed{background:var(--amber-soft);color:var(--amber)}
.p-body{font-size:13px;margin-top:6px}.rationale{color:var(--ink)}.evidence{margin-top:4px;color:var(--muted)}.evidence q{font-style:italic;color:var(--ink)}.evidence.bad{color:var(--amber)}.evidence.bad q{color:var(--amber)}.src{margin-top:4px;font-size:11.5px;color:var(--muted);font-family:var(--mono)}
.p-actions{margin-top:8px;display:flex;gap:6px;flex-wrap:wrap}.p-actions form{display:inline}
details.add{margin-top:14px;font-size:14px}.inline-form{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.inline-form input,.inline-form select{padding:6px 8px;border:1px solid var(--line);border-radius:6px;font-family:var(--sans);font-size:13px}
.form label{display:block;margin:10px 0;font-weight:500;font-size:14px}.form input,.form textarea{display:block;width:100%;margin-top:4px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;font-family:var(--mono);font-size:13px}.form .row{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
table.runs,table.rules,table.dict{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:10px;overflow:hidden;font-size:13.5px}table.runs th,table.rules th{text-align:left;padding:8px 10px;background:#f0f3f6;font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}table.runs td,table.rules td,table.dict td{padding:7px 10px;border-top:1px solid var(--line);vertical-align:top}tr.detail td{background:#fafbfc;font-size:12.5px}tr.detail ul{margin:6px 0 0;padding-left:18px}.miss{color:var(--red)}.extra{color:var(--amber)}
.cases details{background:#fff;border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin:6px 0;font-size:14px}.gold{font-family:var(--mono);font-size:12px;color:var(--muted);margin-left:8px}
table.dict tr.header td{color:var(--muted)}
