
:root{--bg:#fafaf9;--panel:#fff;--ink:#1c1917;--muted:#57534e;--line:#e7e5e4;--accent:#1d4ed8;--ready:#15803d;--missing:#b45309;--doc:#7c3aed;--danger:#b91c1c}
*{box-sizing:border-box}
html{font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:var(--ink);background:var(--bg);line-height:1.45}
body{margin:0;min-width:0}
a{color:var(--accent)}
header{display:flex;flex-wrap:wrap;gap:.5rem 1.25rem;align-items:center;padding:.75rem 1.25rem;border-bottom:1px solid var(--line);background:var(--panel)}
header h1{font-size:1.1rem;margin:0}
header nav{display:flex;flex-wrap:wrap;gap:.25rem 1rem}
header .who{margin-left:auto;display:flex;gap:.75rem;align-items:center}
main{max-width:64rem;margin:0 auto;padding:1.25rem}
.panel{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:1rem 1.25rem;margin-bottom:1rem;min-width:0}
h2{font-size:1.3rem;margin:0 0 .75rem}
h3{font-size:1.05rem;margin:0 0 .5rem}
h4{font-size:.9rem;margin:1rem 0 .25rem;color:var(--muted);text-transform:uppercase;letter-spacing:.03em}
p{margin:.5rem 0}
.muted{color:var(--muted)}
.error{color:var(--danger)}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(16rem,1fr));gap:1rem}
.grid .panel{margin:0}
.badge{display:inline-block;font-size:.75rem;padding:.1rem .5rem;border-radius:999px;border:1px solid var(--line);color:var(--muted);white-space:nowrap}
.badge.READY,.badge.VERIFIED{border-color:var(--ready);color:var(--ready)}
.badge.MISSING_INFORMATION,.badge.OVERDUE{border-color:var(--missing);color:var(--missing)}
.badge.MISSING_DOCUMENTATION{border-color:var(--doc);color:var(--doc)}
.badge.CONFLICT{border-color:var(--danger);color:var(--danger)}
.badge.NOT_APPLICABLE_REVIEW{border-color:var(--doc);color:var(--doc);border-style:dashed}
progress{display:block;width:100%;height:.5rem;margin:.25rem 0;accent-color:var(--ready)}
.stat{font-size:1.1rem;margin:.25rem 0}
ul.facts{list-style:none;padding:0;margin:.5rem 0 0}
ul.facts li{padding:.15rem 0}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
table{border-collapse:collapse;width:100%}
td,th{text-align:left;padding:.4rem .5rem;border-top:1px solid var(--line);vertical-align:top}
th{font-size:.85rem;color:var(--muted)}
td.label{width:14rem;color:var(--muted)}
form label{display:block;margin:.5rem 0 .2rem;font-weight:600}
input{font:inherit;padding:.4rem .5rem;border:1px solid var(--line);border-radius:6px;width:100%;max-width:22rem;min-width:0}
button{font:inherit;padding:.45rem .9rem;border-radius:6px;border:1px solid var(--accent);background:var(--accent);color:#fff;cursor:pointer;margin-top:.75rem}
button.inline{margin:0}
button.danger{background:var(--danger);border-color:var(--danger)}
form.inline{display:inline}
code{background:var(--line);padding:.1rem .3rem;border-radius:4px;overflow-wrap:anywhere}
.qr{display:block;width:min(100%,14rem);height:auto;margin:.75rem 0;border:1px solid var(--line)}
@media (max-width:600px){
main{padding:.75rem}
.panel{padding:.75rem .9rem}
td.label{width:auto}
table.stack thead{display:none}
table.stack tr{display:block;border-top:1px solid var(--line);padding:.4rem 0}
table.stack td{display:flex;gap:.75rem;border:0;padding:.1rem 0}
table.stack td::before{content:attr(data-label);flex:0 0 7rem;color:var(--muted);font-size:.85rem}
table.stack td:empty{display:none}
}
