:root{--bg:#0b0906;--panel:#171310;--line:#4a3c26;--ink:#fff8e8;--dim:#cbb98a;--gold:#e7b94f;--gold-light:#f7d879;--red:#a65d2f}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.45 'DM Sans',system-ui,-apple-system,Segoe UI,sans-serif}
header{position:sticky;top:0;z-index:3;display:flex;gap:1rem;align-items:center;padding:.85rem max(4vw,calc((100vw - 1200px)/2));background:rgba(11,9,6,.97);border-bottom:3px solid var(--gold)}
header b{font-family:Fraunces,Georgia,serif;letter-spacing:.02em}
header .brand-logo{width:38px;height:38px;border-radius:50%;object-fit:cover;border:1px solid var(--gold)}
header span{margin-left:auto;color:var(--dim)}
header a,nav a{color:var(--gold-light)}
main{width:min(1200px,92vw);margin:auto;padding:2rem 0 6rem}
.hero{padding:3rem 0 1rem}
.eyebrow{color:var(--gold);font-weight:900;letter-spacing:.14em;text-transform:uppercase;font-size:.75rem}
h1{font-family:Fraunces,Georgia,serif;font-size:clamp(2.7rem,7vw,5.5rem);line-height:.9;margin:.6rem 0;color:var(--ink)}
h2{margin-top:0;font-family:Fraunces,Georgia,serif;color:var(--gold-light)}
.stats{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.5rem}
.stats b,nav a{border:1px solid var(--line);padding:.65rem .85rem;background:var(--panel)}
nav{display:flex;gap:.5rem;flex-wrap:wrap;margin:1rem 0 2rem}
section,.gate{background:var(--panel);border:1px solid var(--line);padding:1.4rem;margin:1rem 0;border-radius:4px}
.gate{max-width:560px;margin:8vh auto;border-top:4px solid var(--gold)}
form{display:grid;gap:.8rem}
label{display:grid;gap:.35rem;color:var(--dim);font-weight:700}
input,select{width:100%;background:#0e0b08;color:var(--ink);border:1px solid var(--line);padding:.8rem;border-radius:3px}
input:focus,select:focus{outline:2px solid var(--gold);outline-offset:1px}
button{border:0;background:var(--gold);color:#171310;font-weight:900;padding:.85rem 1rem;cursor:pointer;border-radius:3px}
button:hover{background:var(--gold-light)}
.cols{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.inline{grid-template-columns:repeat(4,1fr);align-items:end}
.search{grid-template-columns:1fr auto}
.table{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:.8rem;border-bottom:1px solid var(--line);vertical-align:top}
th{color:var(--dim);font-size:.72rem;text-transform:uppercase}
code{color:var(--gold-light)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.7rem;margin-top:1rem}
.cards article{display:grid;padding:1rem;border:1px solid var(--line);border-radius:3px}
.cards article.inactive{opacity:.55;border-style:dashed}
.cards span,.cards small,small{color:var(--dim)}
.alert{padding:1rem;margin:1rem 0;border-radius:3px}
.error{background:#542631;border:1px solid var(--red)}
.notice{background:#1c3a2a;border:1px solid var(--gold)}
@media(max-width:760px){.cols,.inline{grid-template-columns:1fr}header span{display:none}}
.print-label-btn{padding:.4rem .7rem;font-size:.8rem}
.label-sheet[aria-hidden="true"]{display:none}
.label-sheet[aria-hidden="false"]{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;padding:.5rem}
.qr-label{display:grid;justify-items:center;gap:.3rem;padding:.6rem;border:1px solid #000;text-align:center;color:#000;background:#fff}
.qr-label b{font-size:.85rem}
.qr-label small{color:#333}
@media print{
  body>*:not(.label-sheet){display:none!important}
  .label-sheet[aria-hidden="true"]{display:none!important}
  .label-sheet{display:grid!important;grid-template-columns:repeat(3,1fr);gap:.4in;padding:.3in}
  .qr-label{break-inside:avoid}
}

/* Black-and-white identity shared with the public Book Exchange site. */
:root{--bg:#050505;--panel:#111;--line:#4b4b4b;--ink:#fff;--dim:#c9c9c9;--gold:#fff;--gold-light:#fff;--red:#8f2f2f}
body{background-color:#050505;background-image:linear-gradient(rgba(5,5,5,.87),rgba(5,5,5,.93)),url('../assets/book-exchange-logo-sm.png?v=20260919-logo2');background-position:center,center 145px;background-size:auto,68vw auto;background-repeat:repeat,no-repeat;background-attachment:fixed;color:var(--ink)}
header{min-height:116px;background:#050505;border-bottom:3px solid #fff}
header .brand-logo{width:136px;height:102px;border:0;border-radius:0;object-fit:contain;background:#000}
header b{color:#fff;font-size:1.05rem}
header a,nav a{color:#fff}
section,.gate,.stats b,nav a{background:rgba(17,17,17,.94);border-color:#4b4b4b;backdrop-filter:blur(2px)}
h2,.eyebrow,code{color:#fff}
button{background:#fff;color:#050505;border:1px solid #fff}
button:hover{background:#d6d6d6}
input,select{background:#080808;color:#fff;border-color:#555}
input:focus,select:focus{outline-color:#fff}
@media(max-width:760px){header{min-height:88px;padding-top:6px;padding-bottom:6px}header .brand-logo{width:100px;height:75px}header b{font-size:.88rem}}
