/* RHCES E-Book Store - matches the rhces.com light/dark drafting palette */
:root{--bg:#e3e7e6;--panel:#f5f7f6;--card:#fff;--ink:#1b2225;--muted:#4d595d;--accent:#0d6c87;--accent-ink:#fff;
      --soft:#d2e6eb;--rule:#c2cac9;--ok:#1e7a4c;--okbg:#dcefe5;--err:#a3312a;--errbg:#f6e1df}
@media (prefers-color-scheme:dark){:root{--bg:#101415;--panel:#171c1e;--card:#1c2225;--ink:#e2e7e6;--muted:#a2adaf;
      --accent:#5db8d3;--accent-ink:#0d1416;--soft:#15313a;--rule:#2d3538;--ok:#6fcf9a;--okbg:#16302a;--err:#f08a80;--errbg:#3a1d1b}}
*{margin:0;padding:0;box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font-family:Barlow,system-ui,sans-serif;line-height:1.55;min-height:100vh;display:flex;flex-direction:column}
a{color:var(--accent)}
.wrap{width:100%;max-width:1120px;margin:0 auto;padding:0 16px}
.wrap.narrow{max-width:640px}
main{flex:1;padding:28px 0 40px}
h1,h2,h3{font-family:"Barlow Condensed",sans-serif;line-height:1.1}

.top{background:var(--panel);border-bottom:1px solid var(--rule)}
.top-in{display:flex;align-items:center;gap:16px;min-height:62px;flex-wrap:wrap}
.brand{display:flex;align-items:center;gap:9px;text-decoration:none;color:var(--ink)}
.brand img{width:32px;height:32px}
.brand span{font-family:"Barlow Condensed";font-weight:700;font-size:1.25rem;letter-spacing:.02em}
.brand b{color:var(--accent)}
.top nav{margin-left:auto;display:flex;gap:18px;flex-wrap:wrap}
.top nav a{text-decoration:none;color:var(--ink);font-weight:500}
.top nav a.muted{color:var(--muted)}

.hero{padding:10px 0 22px}
.hero h1{font-size:clamp(2rem,5vw,3rem)}
.hero p{color:var(--muted);max-width:620px;margin-top:8px;font-size:1.05rem}

.note{background:var(--soft);border:1px solid var(--rule);border-radius:8px;padding:12px 14px;margin:0 0 18px}
.note.err{background:var(--errbg);color:var(--err);border-color:transparent}
.empty{text-align:center;background:var(--panel);border:1px dashed var(--rule);border-radius:12px;padding:56px 20px;margin:10px 0 30px}
.empty h2{font-size:1.8rem;margin-bottom:6px}.empty p{color:var(--muted)}
.empty.small{padding:24px}

.tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:20px}
.chips{display:flex;gap:8px;flex-wrap:wrap;flex:1}
.chip{text-decoration:none;color:var(--ink);background:var(--panel);border:1px solid var(--rule);border-radius:999px;padding:6px 13px;font-size:.92rem;font-weight:500}
.chip span{color:var(--muted);margin-left:3px}
.chip.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.chip.on span{color:inherit;opacity:.8}
.search,.stack input,.bookform input,.bookform textarea,.linkrow input{width:100%;padding:10px 12px;border:1px solid var(--rule);border-radius:8px;
  background:var(--card);color:var(--ink);font:inherit}
.search{max-width:280px}

.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:18px}
.book{background:var(--card);border:1px solid var(--rule);border-radius:12px;overflow:hidden;display:flex;flex-direction:column}
.cover{aspect-ratio:1/1;background:var(--soft);display:flex;align-items:center;justify-content:center;overflow:hidden}
/* contain, not cover: square and portrait covers both show whole */
.cover img{width:100%;height:100%;object-fit:contain;display:block}
.nocover{font-family:"Barlow Condensed";font-weight:700;font-size:1.5rem;text-align:center;padding:24px;color:var(--accent)}
.meta{padding:14px 16px 16px;display:flex;flex-direction:column;flex:1}
.cat{font-size:.74rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--accent)}
.book h3{font-size:1.3rem;margin:4px 0 2px}
.by{color:var(--muted);font-size:.92rem}
.desc{color:var(--muted);font-size:.92rem;margin:8px 0 0;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.facts{font-size:.8rem;color:var(--muted);margin-top:8px}
.buy{margin-top:auto;padding-top:14px;display:flex;align-items:center;justify-content:space-between;gap:10px}
.price{font-family:"Barlow Condensed";font-weight:700;font-size:1.45rem}
button,.dl{background:var(--accent);color:var(--accent-ink);border:0;border-radius:8px;padding:10px 18px;font:600 1rem Barlow,sans-serif;cursor:pointer;text-decoration:none;display:inline-block}
button:hover,.dl:hover{filter:brightness(1.08)}
button.link{background:none;color:var(--accent);padding:0;font-size:.9rem}

.how{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px;margin-top:34px}
.how div{background:var(--panel);border:1px solid var(--rule);border-radius:10px;padding:14px;display:flex;gap:12px;align-items:center}
.how b{flex:none;width:30px;height:30px;border-radius:50%;background:var(--accent);color:var(--accent-ink);display:flex;align-items:center;justify-content:center}
.how span{color:var(--muted);font-size:.95rem}

.panel{background:var(--panel);border:1px solid var(--rule);border-radius:12px;padding:24px;margin-bottom:20px}
.panel h1{font-size:2rem;margin-bottom:8px}.panel h2{font-size:1.5rem;margin-bottom:14px}
.panel p{color:var(--muted);margin-bottom:12px}
.order-head{display:flex;gap:18px;align-items:center;margin-bottom:18px}
.ocover{width:96px;border-radius:6px;border:1px solid var(--rule)}
.status{border-radius:8px;padding:12px 14px;font-weight:600;margin-bottom:16px}
.status.ok{background:var(--okbg);color:var(--ok)}
.status.wait{background:var(--soft);display:flex;align-items:center;gap:10px}
.spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--rule);border-top-color:var(--accent);animation:sp 1s linear infinite}
@keyframes sp{to{transform:rotate(360deg)}}
.dl{font-size:1.15rem;padding:14px 26px;margin-bottom:8px}
.small{font-size:.85rem;color:var(--muted)}
.files{list-style:none;margin:6px 0 12px;display:flex;flex-direction:column;gap:10px}
.files li{display:flex;align-items:center;justify-content:space-between;gap:14px;background:var(--card);border:1px solid var(--rule);border-radius:10px;padding:12px 14px}
.files .finfo{display:flex;flex-direction:column;min-width:0}
.files .dl{font-size:1rem;padding:10px 18px;margin:0;white-space:nowrap}
.includes{margin-top:8px;font-size:.85rem;color:var(--muted)}
.includes b{color:var(--ink);font-weight:600}
.keep{margin-top:22px;padding-top:18px;border-top:1px solid var(--rule)}
.linkrow{display:flex;gap:8px;margin:8px 0}
.stack{display:flex;flex-direction:column;gap:12px}
.stack label,.bookform label{display:flex;flex-direction:column;gap:5px;font-weight:600;font-size:.9rem}

.adminbar{display:flex;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:16px}
.adminbar h1{font-size:2rem}.adminbar span{color:var(--muted)}.adminbar a{margin-left:auto}
.bookform{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.bookform .full{grid-column:1/-1}
.bookform label.check{flex-direction:row;align-items:center;gap:8px}
.bookform label.check input{width:auto}
.tbl{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;padding:9px 8px;border-bottom:1px solid var(--rule);vertical-align:top}
th{color:var(--muted);font-weight:600}
td.acts{white-space:nowrap}td.acts form{display:inline;margin-left:10px}

.foot{border-top:1px solid var(--rule);padding:18px 0;color:var(--muted);font-size:.85rem;text-align:center}
.foot .legal{margin-top:6px;display:flex;gap:16px;justify-content:center}
.foot a{color:var(--muted)}

@media (max-width:640px){
  .bookform{grid-template-columns:1fr}
  .search{max-width:none}
  .order-head{flex-direction:column;align-items:flex-start}
  .files li{flex-direction:column;align-items:stretch}
  .files .dl{text-align:center}
  .top nav{margin-left:0}
}
