:root{--ink:#1b1a17;--paper:#f6f2ea;--line:#d8cfbf;--brass:#8a5116;--sage:#e6efe2;--procore:#e5ecf6;--accubid:#efe6f4;--pm:#fff2cc;--assumed:#fce4d6;--missing:#f4cccc}
*{box-sizing:border-box}body{margin:0;font:15px/1.5 "IBM Plex Sans","Segoe UI",system-ui,sans-serif;color:var(--ink);background:var(--paper)}
header.top{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.8rem 1rem;border-bottom:2px solid var(--brass);flex-wrap:wrap}
.brand{font-weight:700;color:var(--ink);text-decoration:none;letter-spacing:.02em}nav{display:flex;gap:.8rem;align-items:center}
nav form{margin:0}main{padding:1rem;max-width:1400px;margin:auto}footer{padding:1rem;color:#6b6457;font-size:.85rem}
button{font:inherit;padding:.45rem .9rem;border:1px solid var(--ink);background:#fff;cursor:pointer}button.primary{background:var(--brass);color:#fff;border-color:var(--brass)}
.stack{display:grid;gap:.8rem;max-width:28rem}input{font:inherit;padding:.45rem;width:100%}
.meta{color:#5d574c}.banner{background:var(--assumed);border-left:4px solid var(--brass);padding:.6rem .8rem}
table.list{border-collapse:collapse;width:100%}.list th,.list td{border-bottom:1px solid var(--line);padding:.45rem;text-align:left}
.status.due,.status.none,.status.detected{color:#9b2c1d;font-weight:600}
.sheet{overflow-x:auto;border:1px solid var(--line);background:#fff}.sheet table{border-collapse:collapse;font-size:13px}
.sheet td{border:1px solid #eee;padding:.2rem .45rem;white-space:nowrap}.cell{font-variant-numeric:tabular-nums}
td.cell:not(.label){text-align:right}.cell.label{font-weight:500}.cell.sage{background:var(--sage)}.cell.procore{background:var(--procore)}
.cell.accubid{background:var(--accubid)}.cell.pm{background:var(--pm)}.cell.assumed{background:var(--assumed)}.cell.missing{background:var(--missing)}
.legend .cell{display:inline-block;padding:.1rem .5rem;margin-right:.3rem;border:1px solid var(--line)}
.grid-men{display:grid;grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr));gap:.5rem}
.error{color:#9b2c1d;font-weight:600}
select{font:inherit;padding:.4rem;width:100%}.users{display:grid;gap:.5rem;margin:1rem 0 2rem}
details.user{background:#fff;border:1px solid var(--line);padding:.5rem .75rem}details.user.pending{border-left:4px solid var(--brass)}
details.user summary{cursor:pointer;display:flex;flex-wrap:wrap;gap:.4rem;align-items:baseline}.uname{font-weight:600}
.chip{font-size:.8rem;border:1px solid var(--line);padding:0 .45rem;border-radius:2px}.chip.st-pending{background:var(--pm)}
.chip.st-disabled{background:var(--missing)}.uedit{display:grid;gap:.6rem;margin-top:.6rem}
.uedit form.row{display:flex;flex-wrap:wrap;gap:.5rem;align-items:end}.uedit form.row label{flex:1 1 11rem}
button.danger{border-color:#9b2c1d;color:#9b2c1d}.status.pending{color:#9b2c1d;font-weight:600}
