/* Stephen King First-Edition Identification Guide — dark macabre theme */
:root{
  --paper:#13100e; --paper2:#1d1814; --ink:#e4ddce; --muted:#9a8d79;
  --line:#39302a; --accent:#cf463f; --accent2:#e36a61; --gold:#c79a45;
  --warn-bg:#2a1411; --warn-line:#7a352f; --good:#79b184;
  --shadow:0 1px 3px rgba(0,0,0,.45),0 12px 32px rgba(0,0,0,.55);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; color:var(--ink);
  background:radial-gradient(130% 85% at 50% -10%, #221a16 0%, #14100e 60%, #100d0b 100%) fixed;
  font:16px/1.6 "Iowan Old Style","Palatino Linotype",Palatino,Georgia,"Times New Roman",serif;
  -webkit-font-smoothing:antialiased;
}
a{color:var(--accent2); text-decoration:none}
a:hover{text-decoration:underline}
::selection{background:#7a1c18; color:#fff}
.wrap{max-width:1080px; margin:0 auto; padding:0 22px}

/* Masthead */
.mast{
  background:linear-gradient(180deg,#0b0908,#191310);
  color:#ece3d2; border-bottom:4px solid var(--accent);
  padding:38px 0 30px; box-shadow:0 6px 30px rgba(0,0,0,.6);
}
.mast .wrap{display:block}
.mast .eyebrow{letter-spacing:.32em; text-transform:uppercase; font-size:11px; color:#b5605a; margin:0 0 8px}
.mast h1{font-size:34px; margin:0 0 6px; line-height:1.12; font-weight:700; color:#efe6d4}
.mast .sub{color:#b6a78d; font-size:15px; margin:0; max-width:760px}
.mast .meta{margin-top:16px; font-size:12.5px; color:#8d8068}
.mast .meta b{color:#d8c39a}

/* Index nav / search */
.toolbar{display:flex; gap:14px; flex-wrap:wrap; align-items:center; margin:22px 0 6px}
.toolbar input[type=search]{
  flex:1; min-width:240px; padding:11px 14px; font-size:15px; font-family:inherit;
  border:1px solid var(--line); border-radius:8px; background:#1c1713; color:var(--ink);
}
.toolbar input[type=search]::placeholder{color:#7c7160}
.toolbar .count{font-size:13px; color:var(--muted)}
.jump{display:flex; flex-wrap:wrap; gap:8px; margin:4px 0 8px}
.jump a{font-size:12.5px; padding:5px 11px; border:1px solid var(--line); border-radius:999px; background:#1c1713; color:var(--muted)}
.jump a:hover{border-color:var(--accent); color:var(--accent2); text-decoration:none}

/* Cards / sections */
.card{background:var(--paper2); border:1px solid var(--line); border-radius:12px; padding:20px 22px; margin:20px 0; box-shadow:var(--shadow)}
.card h2{margin:0 0 10px; font-size:21px; color:var(--accent)}
.card h2 .sk{color:var(--ink)}
.note{font-size:14.5px; color:var(--muted)}

/* Group section + table */
.group{margin:30px 0}
.group h2{font-size:23px; border-bottom:2px solid var(--line); padding-bottom:8px; margin:0 0 4px; color:#e7dccb}
.group .gcount{font-size:13px; color:var(--muted); font-weight:400}
table.books{width:100%; border-collapse:collapse; margin-top:10px; font-size:14.5px; table-layout:fixed}
table.books th{text-align:left; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); border-bottom:2px solid var(--line); padding:8px 10px}
table.books td{border-bottom:none; padding:9px 10px 4px; vertical-align:top}
tbody.book tr.r-points td{border-bottom:1px solid var(--line); padding-top:0}
tbody.book tr.r-main:last-child td{border-bottom:1px solid var(--line)}
tbody.book:hover td{background:#221b17}
table.books .t-title{font-weight:600; font-size:15.5px; word-break:break-word}
table.books .t-title a{color:var(--ink)}
table.books .t-title a:hover{color:var(--accent2)}
table.books .t-byline{font-size:12px; color:var(--muted); font-style:italic; font-weight:400}
table.books th.th-title{white-space:nowrap}
table.books .t-year{color:var(--muted); font-size:13px; font-weight:400; margin-left:6px}
table.books .t-link{color:var(--ink); text-decoration:underline; text-decoration-color:#6f5a44; text-underline-offset:3px}
table.books .t-link:hover{color:var(--accent2); text-decoration-color:var(--accent2)}
table.books .t-head{line-height:1.3}
tbody.book td.t-points{padding:0 12px 13px 62px; font-size:12.5px; line-height:1.55; color:#bcae96}
table.books .t-pub{margin-top:4px; font-size:12px; color:var(--muted); font-style:italic; word-break:break-word}
.col-year{white-space:nowrap; width:58px; color:var(--muted)}
.col-pub{width:128px; color:var(--muted); font-size:13px; word-break:break-word}
.col-price{white-space:nowrap; width:72px; font-variant-numeric:tabular-nums}

/* Badges */
.badge{display:inline-block; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; padding:2px 8px; border-radius:999px; vertical-align:middle; white-space:nowrap}
.badge.jewel{background:#2b2210; color:#d8b056; border:1px solid #7a5e23}
.badge.verify{background:#241d17; color:#9a8c76; border:1px solid var(--line)}
.badge.flag{background:#2c1512; color:#e2796f; border:1px solid var(--warn-line)}
.badge.grail{background:#241634; color:#c498e6; border:1px solid #6b478f}
.badge.collectible{background:#152619; color:#79b485; border:1px solid #3d6647}
.badge.common{background:#241d17; color:#9a8c76; border:1px solid var(--line)}
.badge.conf-high{background:#152619; color:var(--good); border:1px solid #3d6647}
.badge.conf-medium{background:#2a2210; color:#c9a14c; border:1px solid #6b5620}
.badge.conf-low{background:#2c1512; color:#e2796f; border:1px solid var(--warn-line)}

/* Per-book page */
.bookhead{margin:26px 0 6px}
.bookhead .crumb{font-size:13px; color:var(--muted); margin-bottom:10px}
.bookhead h1{font-size:30px; margin:0 0 4px; line-height:1.14; color:#ece3d1}
.bookhead .byline{font-style:italic; color:var(--muted); font-size:16px}
.bookhead .publine{margin-top:8px; font-size:15px; color:var(--ink)}
.bookhead .publine b{color:var(--accent2)}

.callout{border-radius:10px; padding:14px 16px; margin:16px 0; font-size:14.5px}
.callout .lbl{display:block; font-size:11px; letter-spacing:.12em; text-transform:uppercase; margin-bottom:5px; font-weight:700}
.callout.first{background:#142318; border:1px solid #355c3e}
.callout.first .lbl{color:var(--good)}
.callout.warn{background:var(--warn-bg); border:1px solid var(--warn-line)}
.callout.warn .lbl{color:var(--accent2)}

.points{display:grid; grid-template-columns:1fr 1fr; gap:0 26px; margin:18px 0}
.points .row{border-bottom:1px solid var(--line); padding:10px 2px}
.points .k{display:block; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:3px}
.points .v{font-size:15px}
@media(max-width:640px){.points{grid-template-columns:1fr}}

.sec{margin:22px 0}
.sec h3{font-size:16px; color:var(--accent); margin:0 0 6px; border-bottom:1px solid var(--line); padding-bottom:5px}
.sec p{margin:6px 0; font-size:14.5px}

.imgrid{display:flex; flex-wrap:wrap; gap:12px; margin:10px 0}
.imgcard{display:block; width:160px; border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#241e19}
.imgcard img{display:block; width:100%; height:120px; object-fit:cover}
.imgcard .imgurl{display:block; font-size:10px; color:var(--muted); padding:5px 7px; word-break:break-all; line-height:1.3}
.imgcard.noimg{width:auto; max-width:100%}
.imgcard.noimg .imgurl{padding:8px 10px}

ul.links{margin:6px 0; padding-left:18px; font-size:13px}
ul.links li{margin:3px 0; word-break:break-all}
.missing{color:#7f7361; font-style:italic}

.foot{margin:34px 0 20px; padding-top:14px; border-top:1px solid var(--line); font-size:13px; color:var(--muted); display:flex; justify-content:space-between; flex-wrap:wrap; gap:10px}
.back{font-size:14px}
.disclaimer{font-size:12.5px; color:var(--muted); background:#1b1613; border:1px dashed var(--line); border-radius:8px; padding:12px 14px; margin:18px 0}

/* Glossary */
.gloss dt{font-weight:700; color:var(--accent2); margin-top:12px}
.gloss dd{margin:3px 0 0; font-size:14.5px; color:var(--ink)}
.gloss code{background:#241d17; border:1px solid var(--line); border-radius:4px; padding:1px 5px; font-size:13px}
.pitfalls li, .missinglist li{margin:6px 0; font-size:14.5px}

/* Owned / collection tracking */
.toolbar .chk{display:flex; align-items:center; gap:6px; font-size:14px; color:var(--muted); white-space:nowrap; cursor:pointer}
.toolbar .chk input{width:16px; height:16px; accent-color:var(--good); cursor:pointer}
.toolbar .btn{font-family:inherit; font-size:13px; padding:8px 13px; border:1px solid var(--line); border-radius:8px; background:#1c1713; color:var(--ink); cursor:pointer}
.toolbar .btn:hover{border-color:var(--accent); color:var(--accent2)}
.toolbar .btn.danger:hover{border-color:var(--accent); color:#fff; background:rgba(207,70,63,.22)}
.toolbar #ownCnt{color:var(--good); font-weight:600}
.col-own{width:46px; text-align:center}
table.books td.col-own input{width:18px; height:18px; accent-color:var(--good); cursor:pointer}
tbody.book.owned td{background:#13211a}
tbody.book.owned td.col-own{box-shadow:inset 3px 0 0 var(--good)}
tbody.book.owned .t-link{color:#8fc99b}

.ownpanel{background:#15221a; border:1px solid #2f5740; border-radius:10px; padding:16px 18px; margin:16px 0}
.ownpanel.owned{background:#16271c; border-color:#3f7a55; box-shadow:inset 4px 0 0 var(--good)}
.ownpanel .owntoggle{display:flex; align-items:center; gap:10px; font-size:16px; font-weight:600; color:var(--ink); cursor:pointer}
.ownpanel .owntoggle input{width:20px; height:20px; accent-color:var(--good); cursor:pointer}
.ownpanel .ownmeta{font-size:13px; color:var(--muted); margin:6px 0 2px 30px}
.ownpanel.owned .ownmeta{color:var(--good)}
.ownpanel .ownnote-l{display:block; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin:12px 0 5px}
.ownpanel .ownnote{width:100%; min-height:66px; font-family:inherit; font-size:14px; line-height:1.5; padding:9px 11px; border:1px solid var(--line); border-radius:8px; background:#120f0d; color:var(--ink); resize:vertical}
.ownpanel .ownnote::placeholder{color:#6f6453}
.ownpanel .ownsaved{font-size:12px; color:var(--good); height:16px; margin-top:5px; opacity:0; transition:opacity .25s}

/* Cover images — index thumbnails + detail-page figure */
table.books .t-cell{display:flex; gap:11px; align-items:flex-start}
table.books .t-main{min-width:0}
.t-thumblink{flex:0 0 auto; display:block; line-height:0}
.t-thumb{flex:0 0 auto; width:40px; height:58px; object-fit:cover; border-radius:3px; border:1px solid var(--line); background:#2a231e}
.t-noimg{display:inline-block; border-style:dashed; background:
  repeating-linear-gradient(45deg,#241e1a,#241e1a 5px,#2c2520 5px,#2c2520 10px)}
img.t-thumb.t-noimg{content:""}
figure.cover{float:right; width:208px; margin:4px 0 18px 24px; text-align:center}
figure.cover img{width:100%; height:auto; border:1px solid #463a31; border-radius:5px; box-shadow:0 6px 26px rgba(0,0,0,.6); background:#2a231e}
figure.cover figcaption{font-size:11.5px; color:var(--muted); margin-top:7px; line-height:1.4}
@media(max-width:600px){figure.cover{float:none; width:170px; margin:0 auto 16px}}

/* index: print-run + value columns */
.col-run{white-space:nowrap; width:94px; color:var(--muted); font-size:13px}
.col-val{white-space:nowrap; width:92px; font-variant-numeric:tabular-nums; font-size:13.5px}
.val-conf{font-weight:600; color:var(--good)}
.val-est{color:var(--muted); font-style:italic}

/* detail page: market-value panel */
.value-sec{background:#1e1712; border:1px solid var(--line); border-radius:10px; padding:14px 16px 12px}
.value-sec h3{border-bottom:none; margin-bottom:2px}
.value-headline{font-size:23px; font-weight:700; color:var(--accent2); margin:2px 0 4px; line-height:1.2}
.value-basis{font-size:12.5px; color:var(--muted); margin:0 0 9px}
.prov{font-size:10px; letter-spacing:.07em; text-transform:uppercase; padding:2px 8px; border-radius:999px; vertical-align:middle; margin-left:8px; font-weight:700}
.prov.confirmed{background:#152619; color:#7fbf8a; border:1px solid #3d6647}
.prov.estimate{background:#2a2110; color:#d6ab57; border:1px solid #6b5620}
.prov.accepted{background:#161f2c; color:#90a8cc; border:1px solid #3a4d6b}
.points .prov{font-size:9.5px; padding:1px 6px; margin-left:6px}
.value-src{margin-top:6px; font-size:12px}
.value-src .k-inline{color:var(--muted); font-weight:600; margin-right:4px}

/* header menu + popups (glossary / checklist / outside-this-guide) */
.mast-menu{display:flex; gap:10px; flex-wrap:wrap; margin-top:18px}
.mbtn{font-family:inherit; font-size:13px; padding:8px 15px; border:1px solid #5a4a3a; border-radius:8px; background:rgba(220,200,170,.08); color:#dcccae; cursor:pointer; transition:background .15s,border-color .15s,color .15s}
.mbtn:hover{background:rgba(207,70,63,.16); border-color:var(--accent); color:#f3e6d2}
.modal{position:fixed; inset:0; background:rgba(0,0,0,.74); display:flex; align-items:flex-start; justify-content:center; padding:42px 16px; z-index:60; overflow:auto}
.modal[hidden]{display:none}
.modal-box{position:relative; width:100%; max-width:780px; margin:auto; background:var(--paper2); border:1px solid var(--line); border-radius:12px; box-shadow:0 24px 80px rgba(0,0,0,.7)}
.modal-box .card{margin:0; box-shadow:none; border:none; background:transparent}
.modal-x{position:absolute; top:6px; right:12px; background:none; border:none; font-size:28px; line-height:1; color:var(--muted); cursor:pointer; z-index:2; padding:4px 8px}
.modal-x:hover{color:var(--accent2)}

/* verified owner marker photos + click-to-expand lightbox */
.markers-sec h3 .vmark{font-size:11px; background:#152619; color:#8fd09b; border:1px solid #3d6647; padding:2px 9px; border-radius:999px; margin-left:8px; vertical-align:middle; letter-spacing:.04em}
.marker-grid{display:flex; flex-wrap:wrap; gap:14px; margin-top:12px}
.marker-thumb{margin:0; width:172px}
.marker-thumb img{width:100%; height:132px; object-fit:cover; border:1px solid var(--line); border-radius:6px; background:#2a231e; cursor:zoom-in; transition:border-color .15s,transform .15s}
.marker-thumb img:hover{border-color:var(--accent); transform:scale(1.015)}
.marker-thumb figcaption{font-size:11.5px; color:var(--muted); margin-top:6px; line-height:1.35}
figure.cover img{cursor:zoom-in}
.lightbox{position:fixed; inset:0; background:rgba(0,0,0,.9); display:flex; align-items:center; justify-content:center; z-index:80; padding:30px; cursor:zoom-out}
.lightbox[hidden]{display:none}
.lightbox img{max-width:100%; max-height:100%; object-fit:contain; border-radius:4px; box-shadow:0 10px 50px rgba(0,0,0,.7)}
.lightbox-x{position:fixed; top:14px; right:20px; background:none; border:none; color:#ddd; font-size:38px; line-height:1; cursor:pointer; z-index:81}
.lightbox-x:hover{color:var(--accent2)}

/* where-to-buy: index column + book-page marker-checked listings */
.col-buy{text-align:center; white-space:nowrap; width:104px}
th.col-buy{text-align:center}
.buy-none{color:var(--line)}
.buy-pill{display:inline-block; font-size:11.5px; font-weight:600; padding:3px 8px; border-radius:999px; text-decoration:none; border:1px solid transparent; white-space:nowrap}
.bp-confirmed{background:#13241a; color:#86d29a; border-color:#356b48}
.bp-likely{background:#0f1f2b; color:#7fb4d6; border-color:#2d5871}
.bp-cover{background:#241f12; color:#ccad63; border-color:#5e4f2b}
.buy-pill:hover{filter:brightness(1.18)}
.buy-sec .buy-tag{font-size:11px; background:#13241a; color:#86d29a; border:1px solid #356b48; padding:2px 9px; border-radius:999px; margin-left:8px; vertical-align:middle; letter-spacing:.04em}
.buy-row{display:grid; grid-template-columns:150px 66px 175px 1fr; align-items:center; gap:10px; padding:9px 12px; margin-top:8px; border:1px solid var(--line); border-radius:7px; background:var(--paper2); text-decoration:none; color:var(--ink); transition:border-color .15s,background .15s}
.buy-row:hover{border-color:var(--accent); background:#221b16}
.buy-v{font-size:11px; font-weight:700; padding:3px 8px; border-radius:5px; text-align:center; white-space:nowrap}
.v-confirmed{background:#13241a; color:#86d29a; border:1px solid #356b48}
.v-likely{background:#0f1f2b; color:#7fb4d6; border:1px solid #2d5871}
.v-cover{background:#241f12; color:#ccad63; border:1px solid #5e4f2b}
.v-uncertain{background:#22201d; color:#9a8d79; border:1px solid var(--line)}
.v-wrong{background:#241313; color:#d08a8a; border:1px solid #6b3535}
.buy-price{font-weight:700; color:var(--gold)}
.buy-seller{color:var(--ink); font-size:13px}
.buy-detail{color:var(--muted); font-size:11.5px; line-height:1.35}
.buy-hidden{color:var(--muted); font-size:12px; font-style:italic; margin-top:10px}
@media (max-width:680px){.buy-row{grid-template-columns:1fr; gap:4px} .col-buy{width:auto}}

/* what it's about — spoiler-free synopsis + significance */
.synopsis-sec .synopsis{font-size:15px; line-height:1.62; color:var(--ink); margin:0}
.synopsis-sec .significance{font-size:13px; color:var(--muted); margin-top:10px; line-height:1.5}
.synopsis-sec .sig-label{color:var(--gold); font-weight:700; letter-spacing:.05em; text-transform:uppercase; font-size:10.5px; margin-right:7px; border:1px solid var(--line); padding:1px 6px; border-radius:4px}

/* 11 Scribes brand */
.brand{display:flex; align-items:baseline; gap:6px 16px; flex-wrap:wrap; margin-bottom:20px; padding-bottom:15px; border-bottom:1px solid var(--line)}
.wordmark{display:inline-block; font-family:Georgia,'Times New Roman',serif; font-size:27px; font-weight:700; letter-spacing:.005em; color:var(--ink)}
.wordmark::first-letter{color:var(--accent)}
.brand-tag{font-size:12.5px; color:var(--muted); letter-spacing:.01em}
.brand-code{color:var(--gold); font-weight:600; white-space:nowrap; margin-left:5px; border:1px solid var(--line); padding:1px 8px; border-radius:4px; font-size:.92em}
.brand-code sup{font-size:.6em; vertical-align:.32em}
.brand-mini{font-family:Georgia,serif; font-weight:700; color:var(--accent2); text-decoration:none; letter-spacing:.01em}
.brand-mini:hover{color:var(--accent)}
