/* ProfReady: registry ink on cool paper. One bold device: the dossier ledger (page spine). */
:root{
  --paper:#f4f6f3; --sheet:#ffffff; --ink:#18241f; --muted:#5d6b64; --rule:#d3dcd6;
  --green:#22513d; --green-soft:#e3ece6; --stamp:#a8372b; --focus:#2f6fdb;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"Atkinson Hyperlegible",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){:root{
  --paper:#111815; --sheet:#18211d; --ink:#e4ebe7; --muted:#9aaba2; --rule:#2c3a33;
  --green:#7cc39d; --green-soft:#1f2d26; --stamp:#e27a6b; --focus:#7aa7ff; color-scheme:dark;}}
*{box-sizing:border-box}
html,body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.55 var(--sans)}
a{color:var(--green)} a:hover{text-decoration-thickness:2px}
:focus-visible{outline:3px solid var(--focus);outline-offset:2px}
h1,h2,h3{font-family:var(--serif);font-weight:600;line-height:1.2;margin:0 0 .5em}
h1{font-size:clamp(1.9rem,4vw,2.8rem)} h2{font-size:1.5rem} h3{font-size:1.15rem}
p{max-width:68ch}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
header.top{border-bottom:1px solid var(--rule);background:var(--sheet)}
header.top .wrap{display:flex;align-items:center;gap:20px;min-height:64px;flex-wrap:wrap}
.brand{font-family:var(--serif);font-weight:700;font-size:1.35rem;color:var(--ink);text-decoration:none}
.brand span{color:var(--stamp)}
nav.main{display:flex;gap:16px;flex-wrap:wrap;margin-left:auto}
nav.main a{text-decoration:none;color:var(--ink);padding:6px 2px;border-bottom:2px solid transparent}
nav.main a.on,nav.main a:hover{border-color:var(--green)}
main{padding:28px 0 60px}
.msg{padding:10px 14px;border-left:4px solid var(--green);background:var(--green-soft);margin:0 0 12px}
.msg.error{border-color:var(--stamp)}
.btn{display:inline-block;font:600 1rem var(--sans);padding:11px 18px;border-radius:6px;border:1px solid var(--green);
  background:var(--green);color:var(--sheet);text-decoration:none;cursor:pointer}
.btn.ghost{background:transparent;color:var(--green)}
.btn.small{padding:6px 10px;font-size:.9rem}
.btn.danger{border-color:var(--stamp);background:transparent;color:var(--stamp)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.sheet{background:var(--sheet);border:1px solid var(--rule);border-radius:4px;padding:22px}
.grid{display:grid;gap:20px}
@media(min-width:900px){.cols-2{grid-template-columns:1.6fr 1fr}.cols-3{grid-template-columns:repeat(3,1fr)}}
label{display:block;font-weight:600;margin:12px 0 4px}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=url],select,textarea{
  width:100%;padding:10px 12px;font:inherit;color:var(--ink);background:var(--sheet);border:1px solid var(--rule);border-radius:5px}
textarea{resize:vertical}
.help,.muted{color:var(--muted);font-size:.92rem}
.errorlist{color:var(--stamp);margin:4px 0;padding-left:18px}
table.list{width:100%;border-collapse:collapse}
table.list th,table.list td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--rule);vertical-align:top}
.pill{display:inline-block;font-size:.8rem;padding:2px 8px;border-radius:999px;background:var(--green-soft);color:var(--green)}
.pill.warn{background:transparent;border:1px solid var(--stamp);color:var(--stamp)}
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--rule);margin-bottom:18px;flex-wrap:wrap}
.tabs a{padding:10px 14px;text-decoration:none;color:var(--muted);border-bottom:3px solid transparent}
.tabs a.on{color:var(--ink);border-color:var(--stamp);font-weight:600}
.steps{counter-reset:s;list-style:none;padding:0}
.steps li{counter-increment:s;padding-left:38px;position:relative;margin:10px 0}
.steps li::before{content:counter(s);position:absolute;left:0;top:0;width:26px;height:26px;border-radius:50%;
  border:1.5px solid var(--green);color:var(--green);display:grid;place-items:center;font-weight:700;font-size:.85rem}

/* The ledger: a dossier's page spine with serial ranges */
.ledger{font-family:var(--serif);border-left:3px solid var(--ink);padding-left:0;margin:0;list-style:none}
.ledger li{display:grid;grid-template-columns:4.6rem 1fr;gap:12px;padding:7px 0 7px 12px;border-bottom:1px dashed var(--rule)}
.ledger .range{font-variant-numeric:tabular-nums;color:var(--stamp);font-weight:700;text-align:right}
.ledger .what{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ledger li.missing .what{color:var(--stamp)}
.hero{display:grid;gap:36px;align-items:center;padding:20px 0 30px}
@media(min-width:900px){.hero{grid-template-columns:1.1fr 1fr}}
.hero h1{max-width:16ch}
.services{display:grid;gap:18px}
@media(min-width:800px){.services{grid-template-columns:repeat(3,1fr)}}
.service{border-top:4px solid var(--green);background:var(--sheet);padding:18px;border-radius:0 0 4px 4px}
.service .price{font-family:var(--serif);font-size:1.25rem}
.pubrow{border:1px solid var(--rule);border-radius:4px;padding:12px;margin:10px 0;background:var(--sheet)}
.pubrow .num{font-family:var(--serif);font-weight:700;color:var(--stamp);font-size:1.2rem;margin-right:6px}
.bar{height:6px;background:var(--green-soft);border-radius:3px;overflow:hidden;margin-top:6px}
.bar>i{display:block;height:100%;width:0;background:var(--green);transition:width .2s}
.drop{border:2px dashed var(--rule);border-radius:6px;padding:22px;text-align:center}
.drop.over{border-color:var(--green);background:var(--green-soft)}
.repeater .item{border-left:3px solid var(--rule);padding:4px 0 8px 12px;margin:10px 0}
.row2{display:grid;gap:10px}@media(min-width:700px){.row2{grid-template-columns:1fr 1fr}.row4{grid-template-columns:2fr 2fr 1fr 1fr}}
.row4{display:grid;gap:10px}
details.section{border-bottom:1px solid var(--rule);padding:6px 0}
details.section>summary{cursor:pointer;font-family:var(--serif);font-size:1.1rem;font-weight:600;padding:8px 0}
footer.site{border-top:1px solid var(--rule);padding:24px 0;color:var(--muted);font-size:.92rem}
.sticky{position:sticky;top:12px}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* Completeness highlighting */
.gap input,.gap textarea{border-color:var(--stamp);background:color-mix(in srgb,var(--stamp) 7%,var(--sheet))}
.gap label{color:var(--stamp)}
.quick{display:flex;gap:6px;margin-top:4px}
.quick button{font:600 .8rem var(--sans);border:1px solid var(--stamp);color:var(--stamp);background:transparent;border-radius:4px;padding:2px 8px;cursor:pointer}
.dot{display:inline-block;min-width:1.3em;text-align:center;font:700 .75rem/1.3em var(--sans);background:var(--stamp);color:var(--sheet);border-radius:999px;margin-left:6px;padding:0 4px}
details.gapsec>summary{color:var(--stamp)}
.nilbox{font-weight:400;color:var(--stamp);margin:6px 0 10px}
.gapbar{border-left:4px solid var(--stamp);background:color-mix(in srgb,var(--stamp) 8%,var(--sheet));padding:10px 14px;margin:0 0 14px}
.okbar{border-left:4px solid var(--green);background:var(--green-soft);padding:10px 14px;margin:0 0 14px}
.gaptext{color:var(--stamp);font-weight:600}
