/* Shared entity-books design system: base tokens + the cockpit grid used by close & recon.
   index/close/recon all link this; each page overrides only what it needs inline. */
:root { --ink:#1a1a1a; --muted:#5b6470; --rule:#e3e6ea; --bg:#fff; --accent:#15406d;
  --clean:#f3f6f9; --flag:#fff4e2; --flagink:#8a5a00; --bad:#b00020; --ok:#e9f4ec; --okink:#1f6b3a; }
* { box-sizing: border-box; }
html, body { margin:0; padding:0; }
body { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:var(--ink); background:var(--bg); line-height:1.5; -webkit-font-smoothing:antialiased; }
.wrap { max-width:80rem; margin:0 auto; padding:2rem 1.25rem; }
h1 { font-size:1.4rem; margin:0 0 .25rem; }
.sub { color:var(--muted); font-size:.85rem; margin-bottom:1.5rem; }
.home { display:inline-block; font-size:.8rem; color:var(--accent); text-decoration:none; margin-bottom:1rem; }

.gate { max-width:22rem; }
.gate label { display:block; font-size:.85rem; color:var(--muted); margin-bottom:.35rem; }
.gate input { width:100%; padding:.6rem .75rem; font-size:1rem; border:1px solid var(--rule); border-radius:4px; }
.gate button { margin-top:.75rem; padding:.6rem 1.25rem; font-size:1rem; border:none; border-radius:4px; background:var(--accent); color:#fff; cursor:pointer; }
.gate button:disabled { opacity:.5; cursor:default; }
.err { color:var(--bad); font-size:.9rem; margin-top:.5rem; }

.meta-top { color:var(--muted); font-size:.8rem; margin-bottom:1rem; }
.legend { font-size:.75rem; color:var(--muted); margin-bottom:.5rem; }
.gridwrap { overflow-x:auto; border:1px solid var(--rule); border-radius:6px; }
table.grid { border-collapse:collapse; font-size:.72rem; }
table.grid th, table.grid td { border:1px solid var(--rule); padding:.25rem .4rem; white-space:nowrap; text-align:center; }
table.grid th.ent, table.grid td.ent { text-align:left; position:sticky; left:0; background:#fff; font-weight:600; z-index:1; }
table.grid th { background:#fafbfc; color:var(--muted); font-weight:600; }
td.cell { cursor:pointer; font-variant-numeric:tabular-nums; }
td.clean { background:var(--clean); }
td.flagged { background:var(--flag); color:var(--flagink); font-weight:600; }
td.ok { background:var(--ok); color:var(--okink); }
td.muted { color:#c3c9d0; }
td.cell:hover { outline:2px solid var(--accent); outline-offset:-2px; }

#detail { margin-top:1.5rem; }
#detail h2 { font-size:1.05rem; margin:0 0 .25rem; }
.flagbox { border-left:3px solid var(--flagink); background:var(--flag); padding:.5rem .75rem; margin:.5rem 0; font-size:.85rem; border-radius:0 4px 4px 0; }
.gapbox { border-left:3px solid var(--bad); background:#fdeef0; padding:.5rem .75rem; margin:.5rem 0; font-size:.85rem; border-radius:0 4px 4px 0; }
.flagbox.done, .gapbox.done { opacity:.45; }

table.tx { width:100%; border-collapse:collapse; margin-top:.75rem; font-size:.82rem; }
table.tx th, table.tx td { text-align:left; padding:.35rem .5rem; border-bottom:1px solid var(--rule); }
table.tx td.num, table.tx th.num { text-align:right; font-variant-numeric:tabular-nums; }
.pill { display:inline-block; font-size:.68rem; padding:.05rem .35rem; border-radius:8px; background:#eef1f4; color:var(--muted); margin-left:.35rem; }
.back { font-size:.8rem; color:var(--accent); cursor:pointer; }
.okbtn { font-size:.68rem; padding:.1rem .5rem; border:1px solid var(--rule); border-radius:10px; background:#fff; color:var(--accent); cursor:pointer; margin-left:.5rem; }
.okbtn:hover { background:#f0f4f8; }
.ackd { font-size:.72rem; color:var(--muted); margin-left:.5rem; }
.undo { color:var(--accent); cursor:pointer; text-decoration:underline; }
