
:root{--bg:#111713;--panel:#1a241e;--paper:#f1e6cd;--ink:#2a241c;--cream:#f4ead4;--muted:#a9b2ac;--green:#7aa48e;--gold:#d0a657;--line:#39443d;--shadow:0 18px 50px rgba(0,0,0,.35)}*{box-sizing:border-box}[hidden]{display:none!important}body{margin:0;background:radial-gradient(circle at top,#29342c,#101512 64%);color:var(--cream);font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;min-height:100vh}.dust{position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(circle,rgba(255,255,255,.08) 0 1px,transparent 1.5px);background-size:90px 90px;opacity:.18}button,input,textarea{font:inherit}header{position:sticky;top:0;z-index:20;display:flex;justify-content:space-between;align-items:center;padding:1rem clamp(1rem,4vw,3rem);background:rgba(12,17,14,.88);backdrop-filter:blur(15px);border-bottom:1px solid rgba(255,255,255,.06)}header button{border:1px solid var(--line);background:var(--panel);color:var(--cream);border-radius:999px;padding:.7rem .9rem}.brand{border:0;background:transparent;display:flex;gap:.7rem;text-align:left}.brand>span{width:44px;height:44px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold)}.brand b{font:1.45rem Georgia,serif;display:block}.brand small{color:var(--muted);font-size:.62rem}main{max-width:1180px;margin:auto;padding:1.2rem clamp(1rem,4vw,3rem) 4rem}.view{display:none}.view.active{display:block}h1,h2,h3{font-family:Georgia,serif}h1{font-size:clamp(2rem,5vw,4rem)}small{color:var(--green);font-weight:900;letter-spacing:.1em}.countdown{border:1px solid var(--line);background:linear-gradient(135deg,#3e2932,#17201b);border-radius:22px;padding:1rem;display:grid;gap:1rem}.release{display:flex;justify-content:space-between;border-top:1px solid rgba(255,255,255,.08);padding:.65rem 0}.release b{color:var(--gold)}.welcome{padding:2rem 0}.welcome p{color:var(--muted)}.shelfwrap{margin:1.2rem 0}.shelfhead{display:flex;justify-content:space-between}.shelf{display:flex;gap:.5rem;align-items:end;overflow:auto;padding:1.1rem .9rem .75rem;border-bottom:18px solid #5c3b23}.spine{min-width:58px;height:180px;border:1px solid rgba(255,255,255,.14);border-radius:5px;color:white;transition:.25s}.spine:hover{transform:translateY(-10px)}.spine span{writing-mode:vertical-rl;transform:rotate(180deg);font:700 .8rem Georgia,serif}.spine.tog{background:linear-gradient(120deg,#18392b,#46725a)}.spine.acotar{background:linear-gradient(120deg,#4a2634,#8b586e)}.spine.cc{background:linear-gradient(120deg,#19334f,#4d7090)}.spine.current{box-shadow:0 0 0 2px var(--gold),0 0 22px rgba(208,166,87,.4)}.spine.upcoming{opacity:.45}.grid{display:grid;gap:1rem;margin-top:1rem}.panel{background:linear-gradient(145deg,#202b24,#17201b);border:1px solid var(--line);border-radius:20px;padding:1rem;box-shadow:var(--shadow)}.head,.readerrow,.mentionrow{display:flex;justify-content:space-between}.readerrow,.mentionrow{border-top:1px solid var(--line);padding:.7rem 0}.feature{display:flex;gap:1rem;cursor:pointer}.feature>span{font-size:2.4rem;color:var(--gold)}footer{color:var(--muted);font-size:.7rem;margin-top:2rem}.back{border:0;background:transparent;color:var(--gold);font-weight:900}.openbook{display:grid;grid-template-columns:1fr 1fr;min-height:720px}.page{background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.left{border-radius:18px 0 0 18px;background:linear-gradient(90deg,#d6c7a8,var(--paper) 9%)}.right{border-radius:0 18px 18px 0;background:linear-gradient(270deg,#d6c7a8,var(--paper) 9%)}.pad{padding:2rem;position:relative}.bookmark{position:absolute;right:1.4rem;top:0;background:#6c2e3d;color:white;padding:.8rem .7rem 1.4rem}.chapters{display:grid;gap:.45rem;max-height:560px;overflow:auto}.chapterbtn{border:1px solid #ccbfa2;background:#f8efd9;border-radius:11px;padding:.55rem;text-align:left}.chapterbtn.current{box-shadow:0 0 0 2px #e1ca95}.chapterbtn.locked{opacity:.5}.art{height:190px;border-radius:17px;background:linear-gradient(#202d38,#7d878d);position:relative}.art p{position:absolute;bottom:.5rem;left:1rem;right:1rem;color:white;font-size:.75rem}.tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:.25rem;background:#ddd0b2;padding:.25rem;border-radius:12px;margin:1rem 0}.tabs button{border:0;background:transparent;padding:.55rem}.tabs button.active{background:#fbf2dd;border-radius:9px}.tabpane{display:none}.tabpane.active{display:block}.card{border:1px solid #cbbd9e;border-radius:12px;padding:.7rem;margin:.55rem 0}.locked{opacity:.5}.gold,.outline{border-radius:11px;padding:.65rem .8rem;font-weight:900}.gold{border:0;background:var(--gold)}.outline{border:1px solid #bbae91;background:#f8efd9}.actions{display:flex;gap:.5rem;margin-top:1rem}textarea,input{width:100%;padding:.65rem;border-radius:10px;border:1px solid #c8b99b}.discussion{border:1px solid #cbbd9e;border-radius:11px;padding:.65rem;margin:.5rem 0}.loregrid,.maps{display:grid;gap:1rem}.lorecard,.maps article{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:1rem}.maps article{min-height:210px}.maps .tog{background:linear-gradient(145deg,#284837,#15231c)}.maps .acotar{background:linear-gradient(145deg,#633448,#26181f)}.maps .cc{background:linear-gradient(145deg,#294b69,#151f2a)}@media(min-width:780px){.countdown{grid-template-columns:1fr 1.3fr}.grid{grid-template-columns:1fr 1fr}.loregrid,.maps{grid-template-columns:repeat(3,1fr)}}@media(max-width:760px){.openbook{grid-template-columns:1fr}.left{border-radius:18px 18px 0 0}.right{border-radius:0 0 18px 18px}.tabs{grid-template-columns:repeat(2,1fr)}.brand small{display:none}}

/* Authentication */
.auth-gate{position:fixed;inset:0;z-index:999;background:radial-gradient(circle at 50% 20%,#2a382f,#0f1511 68%);display:grid;place-items:center;padding:1rem;overflow-y:auto;transition:opacity .25s ease,visibility .25s ease}.auth-gate.hidden{opacity:0;visibility:hidden;pointer-events:none}.auth-card{width:min(520px,100%);max-height:calc(100vh - 2rem);overflow-y:auto;overscroll-behavior:contain;padding:2rem;border:1px solid rgba(255,255,255,.12);border-radius:26px;background:linear-gradient(145deg,rgba(30,42,35,.97),rgba(17,24,20,.98));box-shadow:0 28px 80px rgba(0,0,0,.48);text-align:center;color:var(--cream)}.auth-card h1{font-size:clamp(2.5rem,8vw,4.5rem);margin:.25rem 0}.auth-card p{color:var(--muted)}.auth-crest{width:64px;height:64px;margin:0 auto 1rem;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font-size:1.6rem}.auth-kicker{text-transform:uppercase;letter-spacing:.14em;font-size:.68rem;font-weight:900;color:var(--green)!important}.google-signin{width:100%;margin-top:1rem;border:1px solid #d7d7d7;border-radius:12px;background:#fff;color:#1f1f1f;padding:.85rem 1rem;display:flex;justify-content:center;align-items:center;gap:.7rem;font-weight:800;cursor:pointer}.google-signin:hover{background:#f7f7f7}.google-signin:disabled{opacity:.65;cursor:wait}.google-mark{font-family:Arial,sans-serif;font-size:1.2rem;font-weight:900;color:#4285f4}.auth-message{min-height:1.4em;margin:.75rem 0 0;color:#e5c681!important;font-size:.82rem}.inline-auth-message{display:block;min-height:1.2em;margin-top:-.45rem;color:#f0b3a8;font-size:.78rem;font-weight:800}.account-controls{display:flex;gap:.45rem;align-items:center}.sign-out{border:1px solid var(--line);background:transparent;color:var(--muted);border-radius:999px;padding:.55rem .75rem;font-size:.75rem}.signed-in-badge{display:block;font-size:.58rem;color:var(--green);text-transform:uppercase;letter-spacing:.08em}

.entry-choices{display:grid;gap:.65rem;margin-top:1rem}.wide{width:100%}.text-link{border:0;background:transparent;color:var(--gold);font-weight:800;padding:.6rem}.auth-step{text-align:left;margin-top:1rem}.auth-step h2{text-align:center}.auth-step form{display:grid;gap:.75rem}.auth-step label{display:grid;gap:.35rem;color:var(--cream);font-size:.8rem;font-weight:800}.auth-step small{color:var(--muted);font-size:.7rem;font-weight:500;letter-spacing:0}.auth-step .text-link{display:block;margin:.35rem auto 0}.field-message{min-height:1.2em!important;margin:.1rem 0!important;color:#9b3d32!important;font-size:.78rem;font-weight:800}.onboarding-card{width:min(820px,100%);max-height:92vh;overflow:auto;padding:1.5rem;border:1px solid rgba(255,255,255,.12);border-radius:25px;background:#18211c;color:var(--cream);box-shadow:0 28px 80px rgba(0,0,0,.5)}.onboarding-card label{display:grid;gap:.35rem;margin:.65rem 0}.onboarding-card input,.onboarding-card select{background:#fff}.onboard-series{border-top:1px solid var(--line);padding-top:.6rem}.onboard-book{display:grid;grid-template-columns:minmax(180px,1fr) 90px auto auto;gap:.45rem;align-items:center;padding:.4rem 0}.onboard-book label{display:flex;align-items:center;gap:.45rem;margin:0}.onboard-book label input{width:auto}.finish-book{border:1px solid var(--line);background:transparent;color:var(--gold);border-radius:9px;padding:.5rem}.fine-print{font-size:.72rem;color:var(--muted)}.mode-status{display:inline-block;border:1px solid var(--line);border-radius:999px;padding:.45rem .7rem;color:var(--muted);font-size:.75rem}.quick-progress{display:grid;grid-template-columns:1fr auto;gap:.5rem;margin:1rem 0;padding: .75rem;border:1px solid #cbbd9e;border-radius:12px}.quick-progress label{grid-column:1/2}.quick-progress .text-link{grid-column:1/-1}.art{display:block;width:100%;height:210px;object-fit:cover;border-radius:16px;border:1px solid #c7b88f}.tabs{grid-template-columns:repeat(5,1fr)}.reread-insight{border-left:4px solid var(--gold);background:#f3e6c4;padding:.7rem;margin:.7rem 0}.archive-filter{display:flex;gap:.5rem;margin:1rem 0}.archive-filter button{border:1px solid var(--line);background:var(--panel);color:var(--cream);border-radius:999px;padding:.45rem .7rem}.archive-filter button.active{background:var(--gold);color:#241b0f}.lore-type{text-transform:uppercase;font-size:.65rem;font-weight:900;letter-spacing:.08em;color:var(--green)}.maps article img{width:100%;border-radius:14px;display:block;margin-bottom:.7rem}.map-details{margin-top:1rem}.map-location{display:flex;justify-content:space-between;border-top:1px solid var(--line);padding:.7rem 0}.readerrow{display:flex;justify-content:space-between;gap:.5rem;border-top:1px solid var(--line);padding:.7rem 0}.readerrow small{color:var(--muted)}select{width:100%;padding:.65rem;border-radius:10px;border:1px solid #c8b99b}.reread .page{box-shadow:0 0 40px rgba(208,166,87,.2)}
.mention-item{width:100%;display:grid;gap:.25rem;text-align:left;padding:.75rem 0;border:0;border-top:1px solid var(--line);background:transparent;color:var(--cream);cursor:pointer}.mention-item span,.mention-item small{color:var(--muted)}.mention-item.unread{border-left:3px solid var(--gold);padding-left:.7rem}.mention-item.unread b{color:var(--gold)}
.mention-composer{position:relative;margin-top:.75rem}.mention-composer textarea{display:block;min-height:110px;resize:vertical}.mention-suggestions{position:absolute;left:0;right:0;bottom:calc(100% + .35rem);z-index:12;max-height:220px;overflow-y:auto;padding:.35rem;border:1px solid #bcae8e;border-radius:12px;background:#fff8e8;box-shadow:0 14px 30px rgba(57,44,24,.22)}.mention-suggestions button{display:block;width:100%;border:0;border-radius:8px;background:transparent;color:#2b2418;padding:.65rem .75rem;text-align:left;font-weight:800}.mention-suggestions button:hover,.mention-suggestions button.active{background:#e4d3aa;color:#3d2b12}.mention-status{margin:0!important;padding:.65rem .75rem;color:#6e624e!important;font-size:.78rem}#postDiscussion{margin-top:.55rem}
.nickname-summary{display:grid;gap:.25rem;padding:.8rem 1rem;margin:.65rem 0;border:1px solid #c8b99b;border-radius:14px;background:#fbf4e3}.nickname-summary b{font:1.25rem Georgia,serif;color:#2b2418}.nickname-summary span{color:#6e624e;font-size:.75rem}.nickname-summary small{color:#755f38!important}
@media(max-width:700px){.onboard-book{grid-template-columns:1fr 80px auto}.onboard-book .finish-book{grid-column:1/-1}.tabs{grid-template-columns:repeat(2,1fr)}.quick-progress{grid-template-columns:1fr}}

.setup-panel{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin:0 0 1.2rem}
.setup-panel p{color:var(--muted);margin:.3rem 0}
.setup-actions{display:flex;gap:.55rem;flex-wrap:wrap}
.card-action{margin-top:.5rem}
.art-status{margin:.35rem 0 .8rem;color:#776447;font-size:.75rem;font-weight:800}
#modeBtn{width:auto;min-width:78px}
@media(max-width:700px){.setup-panel{display:block}.setup-actions{margin-top:.8rem}.setup-actions button{width:100%}}

.hidden{display:none!important}
.wizard-progress{display:grid;grid-template-columns:auto 1fr;gap:.75rem;align-items:center;margin-bottom:1.2rem}.wizard-progress div{height:8px;background:#ddd1b9;border-radius:999px;overflow:hidden}.wizard-progress i{display:block;height:100%;background:var(--gold);transition:width .3s}.wizard-page{max-width:760px;margin:auto}.status-options,.front-status-options{display:grid;gap:.55rem;margin:1rem 0}.status-options label,.front-status-options label{display:flex;gap:.6rem;align-items:center;border:1px solid #c8b99b;border-radius:12px;padding:.75rem;background:#faf2df}.status-options input,.front-status-options input{width:auto}.wizard-actions{display:flex;justify-content:space-between;gap:.7rem;margin-top:1rem}
.book-transition{position:fixed;inset:0;z-index:90;pointer-events:none;background:rgba(8,12,10,.15);perspective:1700px}.transition-spine{position:absolute;border-radius:5px;transition:all .45s cubic-bezier(.2,.75,.2,1);box-shadow:0 18px 45px #0008}.transition-cover{position:absolute;left:50%;top:50%;width:min(360px,70vw);height:min(520px,70vh);transform:translate(-50%,-50%) rotateY(-88deg) scale(.65);transform-origin:left center;opacity:0;border-radius:8px 18px 18px 8px;display:grid;place-items:center;text-align:center;padding:2rem;color:white;box-shadow:0 25px 70px #000a;transition:transform .42s .34s cubic-bezier(.22,.8,.22,1),opacity .15s .28s}.transition-cover span{font-size:2.5rem;color:var(--gold)}.transition-cover b{font:2rem Georgia,serif}.book-transition.playing .transition-spine{left:50%!important;top:50%!important;width:72px!important;height:500px!important;transform:translate(-50%,-50%) rotateY(-18deg)}.book-transition.playing .transition-cover{opacity:1;transform:translate(-50%,-50%) rotateY(0) scale(1)}.transition-spine.tog,.transition-cover.tog{background:linear-gradient(135deg,#18392b,#47735a)}.transition-spine.acotar,.transition-cover.acotar{background:linear-gradient(135deg,#4a2634,#8b586e)}.transition-spine.cc,.transition-cover.cc{background:linear-gradient(135deg,#19334f,#4d7090)}
.front-book{display:grid;grid-template-columns:minmax(260px,.78fr) minmax(0,1.35fr);min-height:680px;perspective:1600px;animation:frontOpen .55s ease both}@keyframes frontOpen{from{opacity:0;transform:translateY(18px) rotateX(3deg)}to{opacity:1;transform:none}}.front-cover{background:linear-gradient(145deg,#173429,#426952);border-radius:20px 0 0 20px;padding:2.3rem;color:white;box-shadow:var(--shadow);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;position:relative}.front-cover:after{content:"";position:absolute;inset:14px;border:1px solid #d0a65788;border-radius:12px}.front-cover h1{font-size:clamp(2.2rem,5vw,4.6rem);z-index:1}.front-cover div{z-index:1}.cover-mark{font-size:3rem;color:var(--gold);margin-top:2rem}.front-page{background:var(--paper);color:var(--ink);padding:2.4rem;border-radius:0 20px 20px 0;box-shadow:var(--shadow)}.front-tagline{font:italic 1.15rem Georgia,serif;color:#705d3c}.reading-status-card{border:1px solid #c8b99b;border-radius:16px;padding:1rem;margin:1rem 0;background:#faf2df}.front-links{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}
.chapterbtn{display:grid!important;grid-template-columns:56px 1fr!important;align-items:center!important;column-gap:1.1rem!important;padding:.65rem .8rem!important}.chapter-number{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#ddd0b3;font-weight:900}.chapter-state{text-align:left;padding-left:.3rem}
.chapter-visual{position:relative}.art-status{position:absolute;left:1rem;bottom:1rem;background:rgba(18,23,19,.78);color:white;border-radius:999px;padding:.35rem .6rem;font-size:.68rem}
.archive-tabs{display:flex;gap:.45rem;flex-wrap:wrap;margin:1rem 0}.archive-tabs button{border:1px solid var(--line);background:var(--panel);color:var(--cream);padding:.65rem .8rem;border-radius:999px}.archive-tabs button.active{background:var(--gold);color:#271d10}.archive-pane{display:none}.archive-pane.active{display:block}.directory{display:grid;gap:1rem}.directory-group{background:var(--panel);border:1px solid var(--line);border-radius:18px;padding:1rem}.directory-group article{border-top:1px solid var(--line);padding:.65rem 0}.directory-group p{color:var(--muted);margin:.2rem 0}
.maps article{overflow:hidden}.map-open{display:block;border:0;background:transparent;padding:0;width:100%;cursor:zoom-in}.map-open img{width:100%;height:290px;object-fit:contain;background:#ede9df;border-radius:12px}.map-modal{position:fixed;inset:0;z-index:100;background:rgba(6,8,7,.93);padding:1rem;color:white;display:flex;flex-direction:column}.map-modal>button{position:absolute;right:1rem;top:1rem;width:46px;height:46px;border-radius:50%;font-size:2rem;border:1px solid #fff7;background:#111;color:white}.map-modal h2{text-align:center;margin:.4rem 3.5rem 1rem}.map-scroll{overflow:auto;flex:1;display:grid;place-items:start center}.map-scroll img{max-width:none;width:auto;min-width:min(1200px,100%);height:auto;background:white}
.tabs{grid-template-columns:repeat(4,minmax(0,1fr))!important}
@media(max-width:760px){.front-book{grid-template-columns:1fr}.front-cover{min-height:390px;border-radius:20px 20px 0 0}.front-page{border-radius:0 0 20px 20px}.tabs{grid-template-columns:repeat(2,minmax(0,1fr))!important}.map-open img{height:220px}.wizard-actions{flex-direction:column-reverse}.wizard-actions button{width:100%}}


/* ---------- Archive 2.0 UI polish ---------- */

/* Onboarding readability */
.onboarding-card,
.onboarding-card h1,
.onboarding-card h2,
.onboarding-card h3,
.onboarding-card p,
.onboarding-card small,
.onboarding-card label,
.onboarding-card label *,
.status-options,
.status-options label,
.status-options label *,
.front-status-options,
.front-status-options label,
.front-status-options label * {
  color: #2b2418 !important;
}

.onboarding-card {
  background: #f4ead4;
  border: 1px solid #c9b992;
  box-shadow: 0 24px 70px rgba(0,0,0,.42);
}

.onboarding-card .auth-kicker,
.onboarding-card #wizardSeries,
.onboarding-card #wizardStepLabel {
  color: #755f38 !important;
}

/* Radio choices */
.status-options,
.front-status-options {
  gap: .7rem;
}

.status-options label,
.front-status-options label {
  display: flex;
  align-items: center;
  gap: .8rem;
  min-height: 54px;
  padding: .8rem .95rem;
  border: 1px solid #c8b99b;
  border-radius: 14px;
  background: #fbf4e3;
  cursor: pointer;
  transition: background-color .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}

.status-options label:hover,
.front-status-options label:hover {
  background: #f3ead3;
  border-color: #aa8a50;
  transform: translateY(-1px);
}

.status-options label:has(input:checked),
.front-status-options label:has(input:checked) {
  border: 2px solid #b68b3b;
  background: #f7efd9;
  box-shadow: 0 0 0 3px rgba(182,139,59,.12);
}

.status-options input[type="radio"],
.front-status-options input[type="radio"] {
  width: 18px;
  height: 18px;
  min-width: 18px;
  accent-color: #8b6a2f;
  transform: none;
}

/* Inputs and selects */
.onboarding-card input,
.onboarding-card select,
.front-page input,
.front-page select {
  min-height: 46px;
  color: #2b2418;
  background: #fffaf0;
  border: 1px solid #bcae8f;
  border-radius: 11px;
  padding: .7rem .8rem;
}

.onboarding-card input:focus,
.onboarding-card select:focus,
.front-page input:focus,
.front-page select:focus {
  outline: 3px solid rgba(182,139,59,.22);
  border-color: #9f7732;
}

/* Buttons */
.gold,
.outline,
.google-signin,
.reader-pill,
.icon-btn,
.account-controls button,
.wizard-actions button {
  min-height: 44px;
}

.gold,
.outline,
.google-signin {
  transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.gold:hover,
.outline:hover,
.google-signin:hover {
  transform: translateY(-1px);
  filter: brightness(1.03);
}

.gold:active,
.outline:active,
.google-signin:active {
  transform: translateY(0);
}

.gold:focus-visible,
.outline:focus-visible,
.google-signin:focus-visible,
.book-spine:focus-visible,
.chapterbtn:focus-visible,
.map-open:focus-visible {
  outline: 3px solid rgba(208,166,87,.45);
  outline-offset: 3px;
}

/* Wizard spacing */
.wizard-page label {
  display: grid;
  gap: .4rem;
  margin-top: .9rem;
  font-weight: 700;
}

.wizard-page p {
  line-height: 1.6;
}

.wizard-actions {
  margin-top: 1.25rem;
}

/* Book front matter */
.front-page,
.front-page h1,
.front-page h2,
.front-page h3,
.front-page p,
.front-page label {
  color: #2b2418;
}

.reading-status-card {
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.45);
}

/* Chapter navigation readability */
.chapterbtn {
  min-height: 58px;
  grid-template-columns: 58px minmax(0,1fr) !important;
  column-gap: 1.25rem !important;
}

.chapter-number {
  width: 46px;
  height: 46px;
  flex: 0 0 46px;
}

.chapter-state {
  padding-left: .15rem;
  line-height: 1.25;
}
.chapter-state span,.chapter-state small{display:block}.chapter-state small{margin-top:.2rem;color:#78684d;font-size:.7rem;letter-spacing:0}

/* Tabs */
.tabs button {
  min-height: 42px;
  white-space: normal;
  line-height: 1.2;
}

/* Cards */
.panel,
.lorecard,
.directory-group,
.map-card {
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.feature:hover,
.lorecard:hover,
.map-card:hover {
  transform: translateY(-2px);
  border-color: #5d6d63;
}

/* Mobile */
@media (max-width: 700px) {
  .onboarding-card {
    width: calc(100vw - 1rem);
    max-height: calc(100vh - 1rem);
    overflow: auto;
    padding: 1rem;
  }

  .wizard-progress {
    grid-template-columns: 1fr;
  }

  .wizard-progress > span {
    margin-bottom: .25rem;
  }

  .status-options label,
  .front-status-options label {
    min-height: 58px;
    padding: .85rem;
  }

  .chapterbtn {
    grid-template-columns: 50px minmax(0,1fr) !important;
    column-gap: .9rem !important;
  }

  .chapter-number {
    width: 42px;
    height: 42px;
  }

  .front-links {
    display: grid;
    grid-template-columns: 1fr;
  }

  .front-links button,
  .setup-actions button,
  .wizard-actions button {
    width: 100%;
  }

  .tabs {
    grid-template-columns: repeat(2,minmax(0,1fr)) !important;
  }
}

/* Content expansion and layout corrections */
.onboarding-card{width:min(920px,calc(100vw - 2rem));height:min(680px,calc(100vh - 2rem));max-height:none;overflow:hidden;display:flex;flex-direction:column}
.wizard-page{width:100%;flex:1;min-height:0;display:flex;flex-direction:column;justify-content:center}
#wizardIntro{justify-content:flex-start;overflow-y:auto;padding:.25rem .35rem .5rem}
#wizardIntro .auth-crest{width:48px;height:48px;margin-bottom:.35rem;font-size:1.15rem;flex:0 0 48px}
#wizardIntro .auth-kicker{margin:.15rem 0;text-align:center}
#wizardIntro h1{font-size:clamp(2rem,4.5vw,3.25rem);line-height:1.05;text-align:center;margin:.25rem 0 .65rem}
#wizardIntro label{margin:.38rem 0;gap:.4rem}
#wizardIntro label>span{display:block;line-height:1.35}
#wizardIntro select,#wizardIntro input{min-height:46px}
#wizardIntro .nickname-summary{margin:.4rem 0}
#wizardIntro #wizardBeginBooks{margin-top:.55rem;min-height:48px;flex:0 0 auto}
#wizardBookSummary{max-height:132px;overflow:auto;margin:.5rem 0;font-size:.94rem;line-height:1.45}
#wizardBook h1{font-size:clamp(1.65rem,4vw,2.7rem);margin:.15rem 0}
#wizardBook .status-options{grid-template-columns:repeat(3,1fr);margin:.65rem 0}
#wizardChapterWrap{margin:.4rem 0}
.wizard-actions{margin-top:.75rem}
@media(max-height:720px){
 .onboarding-card{height:calc(100vh - 1rem);padding:.8rem}
 #wizardBookSummary{max-height:92px}
 .status-options label{min-height:44px;padding:.55rem}
}
.front-inline-panels{margin:1rem 0}
.front-inline-panel{display:none;border:1px solid #c8b99b;border-radius:16px;padding:1rem;background:#fbf4e3;color:#2b2418;max-height:300px;overflow:auto}
.front-inline-panel.active{display:block}
.front-panel-button.active{background:var(--gold);color:#261c0f;border-color:var(--gold)}
.name-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:.45rem}
.name-grid span{display:block;border:1px solid var(--line);border-radius:10px;padding:.55rem .65rem;background:#17201b}
.series-directory{margin:1.2rem 0;padding:1rem;border:1px solid var(--line);border-radius:18px;background:var(--panel)}
.series-directory h2{margin-bottom:.2rem}
.reader-row{display:grid!important;grid-template-columns:minmax(110px,.35fr) minmax(0,1fr);gap:1.4rem!important;align-items:start}
.reader-name{padding-right:.4rem}
.reader-progress{color:var(--muted);line-height:1.45}
.sync-status{font-size:.72rem;color:var(--muted);padding:.35rem .55rem;border:1px solid var(--line);border-radius:999px;white-space:nowrap}
.sync-status[data-state="saving"]{color:#e8c77a}
.sync-status[data-state="saved"]{color:#9ed3a8}
.sync-status[data-state="offline"],.sync-status[data-state="error"]{color:#f0a69a}
.locked-summary{border:1px solid #c8b99b;border-radius:12px;padding:1rem;background:#efe6d3;color:#3d3325}
.future-card{display:flex;gap:1rem;align-items:flex-start}
.future-icon{width:48px;height:48px;border:1px solid var(--gold);border-radius:50%;display:grid;place-items:center;color:var(--gold);font-size:1.4rem;flex:0 0 48px}
.locked-feature{position:relative;overflow:hidden}
.locked-feature:after{content:"PREVIEW";position:absolute;right:-34px;top:18px;background:var(--gold);color:#261c0f;padding:.3rem 2.7rem;transform:rotate(42deg);font-size:.6rem;font-weight:900;letter-spacing:.1em}
.locked-feature button:disabled{opacity:.55;cursor:not-allowed}
.chapter-visual,.art,.art-status{display:none!important}
.right-page .pad>small:first-child{display:block;margin-top:.2rem}
@media(max-width:760px){
 .onboarding-card{width:calc(100vw - .6rem);height:calc(100vh - .6rem);padding:.8rem}
 #wizardBook .status-options{grid-template-columns:1fr}
 #wizardBookSummary{max-height:108px}
 .reader-row{grid-template-columns:1fr;gap:.3rem!important}
 .name-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* Character and Places contrast fix */
.front-inline-panel,
.front-inline-panel *,
.directory-group,
.directory-group *,
.series-directory,
.series-directory * {
  color: #2c2418 !important;
}

.front-inline-panel,
.directory-group {
  background: #f8f1df !important;
  border-color: #c8b99b !important;
}

.front-inline-panel h2,
.front-inline-panel h3,
.directory-group h2,
.directory-group h3,
.series-directory h2,
.series-directory h3 {
  color: #5c4421 !important;
}

.front-inline-panel p,
.directory-group p,
.series-directory p {
  color: #3d3325 !important;
  line-height: 1.6;
}

.front-inline-panel small,
.directory-group small,
.series-directory small,
.front-inline-panel .fine-print,
.directory-group .fine-print,
.series-directory .fine-print {
  color: #7b6542 !important;
}

.directory-group article {
  border-top-color: #d4c6aa !important;
}

.name-grid span {
  background: #efe6d3 !important;
  color: #2c2418 !important;
  border: 1px solid #c8b99b !important;
  border-radius: 10px;
  padding: .55rem .75rem;
  transition: background-color .15s ease, border-color .15s ease, transform .15s ease;
}

.name-grid span:hover {
  background: #e7dcc5 !important;
  border-color: #b08a45 !important;
  transform: translateY(-1px);
}

/* Keep Archive-wide series containers dark, but use light catalog cards inside */
.series-directory {
  background: #f8f1df !important;
  border-color: #c8b99b !important;
}

/* Reading-plan onboarding */
#wizardIntro{justify-content:flex-start;overflow:auto;padding:.2rem .35rem .6rem}
#wizardIntro h1{font-size:clamp(1.7rem,4vw,2.8rem);margin:.2rem 0 .35rem}
#wizardIntro .auth-crest{width:48px;height:48px;margin-bottom:.35rem}
#wizardIntro label{margin-top:.45rem;font-size:.88rem}
#wizardIntro input,#wizardIntro select{min-height:42px;padding:.55rem .7rem}

/* Tandem shelf and tracker */
.spine.tandem-spine{min-width:72px;background:linear-gradient(135deg,#6f5126,#c19545);border-color:#efd48e;color:#17120a}
.spine.tandem-spine span{font-weight:900}
.tandem-hero{padding:1.5rem 0 .5rem}.tandem-hero h1{margin:.25rem 0}.tandem-hero p{max-width:760px;color:var(--muted);line-height:1.6}
.tandem-current{display:flex;justify-content:space-between;align-items:center;gap:1rem}.tandem-current h2{margin:.25rem 0}.tandem-current p{color:var(--muted);margin:.2rem 0}
.tandem-actions{display:flex;gap:.6rem;margin:1rem 0;flex-wrap:wrap}.tandem-checklist{display:grid;gap:.55rem}
.tandem-row{display:grid;grid-template-columns:42px 1fr;gap:.8rem;align-items:center;border:1px solid var(--line);border-radius:14px;padding:.7rem .85rem;background:var(--panel)}
.tandem-row>span{width:36px;height:36px;display:grid;place-items:center;border:1px solid var(--line);border-radius:50%;font-weight:900;color:var(--muted)}
.tandem-row b{font-family:Georgia,serif}.tandem-row p{margin:.2rem 0;color:var(--muted);font-size:.85rem}.tandem-row.complete{opacity:.68}.tandem-row.complete>span{background:#315a43;color:#d9f1df}.tandem-row.current{border-color:var(--gold);box-shadow:0 0 0 2px rgba(208,166,87,.18)}
.profile-settings{display:grid;gap:.75rem}.profile-settings label{display:grid;gap:.35rem}
.tabs{grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:.35rem!important;padding:.35rem!important}
.tabs button{min-width:0;padding:.65rem .35rem!important;font-size:.84rem;line-height:1.15;white-space:nowrap;overflow-wrap:normal;word-break:normal;border-radius:9px}
.tabs button:focus{outline:none}
.tabs button:focus-visible{outline:2px solid #9a742d;outline-offset:1px}
.tabs+.tabpane,.tabs~.tabpane{margin-top:.85rem}
@media(max-width:700px){.tandem-current{display:block}.tandem-current button{width:100%;margin-top:.8rem}.tandem-actions{display:grid}.tabs{grid-template-columns:repeat(2,minmax(0,1fr))!important}}

/* Tandem Read uses the same book interface as every novel */
.tandem-spine.tandem-off{opacity:.62;box-shadow:none}.tandem-front-actions{display:flex;gap:.55rem;flex-wrap:wrap}.tandem-front-actions button{flex:1 1 190px}

/* Archive character directory — deliberately separated by series */
.character-series-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;margin:1rem 0}
.character-series-tabs button{border:1px solid var(--line);background:var(--panel);color:var(--cream);border-radius:12px;padding:.8rem;font-weight:800}
.character-series-tabs button.active{background:var(--gold);border-color:var(--gold);color:#281e10}
.series-character-heading{margin:1rem 0;padding:1rem;border:1px solid var(--line);border-radius:16px;background:linear-gradient(145deg,#202b24,#17201b)}
.series-character-heading h2{margin:.25rem 0}.series-character-heading p{margin:.25rem 0;color:var(--muted)}
@media(max-width:700px){.character-series-tabs{grid-template-columns:1fr}.tandem-front-actions{display:grid}.tandem-front-actions button{width:100%}}
