:root{--ink:#10242b;--sea:#0b5c63;--sea-dark:#083f45;--page:#f5f7f6;--card:#fff;--line:#d7e0de;--gold:#f2a93b;--err:#a3261f;--ok:#1b6b3a}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--page);color:var(--ink);font:17px/1.55 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--sea)}
:focus-visible{outline:3px solid var(--gold);outline-offset:2px}
.top{background:var(--sea-dark);color:#fff;padding:14px 20px;font-family:Georgia,"Times New Roman",serif;font-size:22px;letter-spacing:.02em;display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.top span{color:var(--gold)}
main{max-width:980px;margin:0 auto;padding:24px 20px 48px}
h1{font:700 clamp(28px,6vw,44px)/1.1 Georgia,"Times New Roman",serif;margin:0 0 6px}
.author{margin:0 0 18px;color:#44606a;font-size:18px}
.grid{display:grid;gap:28px}
@media(min-width:760px){.grid{grid-template-columns:300px 1fr;align-items:start}}
.cover{position:relative;aspect-ratio:2/3;width:100%;max-width:260px;min-height:210px;margin:0 auto;border-radius:8px;background:var(--sea);color:#fff;display:flex;align-items:center;justify-content:center;padding:0;font:700 20px/1.25 Georgia,serif;box-shadow:0 8px 22px rgba(16,36,43,.16);overflow:hidden;text-align:center}
.cover img{width:100%;height:100%;object-fit:cover;object-position:center;display:block;margin:0}
.cover-placeholder{padding:18px;text-align:center;font:700 18px/1.35 Georgia,serif;color:#fff;display:flex;align-items:center;justify-content:center;height:100%;width:100%;word-break:break-word}
.price{font:700 30px Georgia,serif;margin:18px 0 4px}
.how{color:#44606a;font-size:15px;margin:0 0 18px}
form{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:18px;display:grid;gap:14px}
label{display:grid;gap:5px;font-weight:600;font-size:15px}
label small{font-weight:400;color:#5b747c}
input{font:inherit;padding:13px 12px;border:1.5px solid #9db3b0;border-radius:6px;background:#fff;color:var(--ink);width:100%}
button,.btn{font:700 18px system-ui,sans-serif;padding:15px 18px;border:0;border-radius:8px;background:var(--gold);color:#241700;cursor:pointer;text-align:center;text-decoration:none;display:block}
button:disabled{opacity:.6;cursor:wait}
.msg{min-height:1.4em;margin:0;font-size:15px}
.msg.err{color:var(--err);font-weight:600}
.note{font-size:14px;color:#5b747c;margin-top:16px}
.panel{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:26px 22px;max-width:560px;margin:8px auto}
.panel h1{font-size:28px}
.ok{color:var(--ok)}
.sec{background:transparent;border:2px solid var(--sea);color:var(--sea)}
.spinner{width:34px;height:34px;border:4px solid var(--line);border-top-color:var(--sea);border-radius:50%;animation:s 1s linear infinite;margin:6px 0 14px}
@keyframes s{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.spinner{animation:none}}
/* leitor */
body.reader{--bg:#fbfbf8;--fg:#1b1b1b;background:var(--bg);color:var(--fg);-webkit-user-select:none;user-select:none}
body.reader.dark{--bg:#14181a;--fg:#e4e7e5}
.bar{position:sticky;top:0;z-index:5;display:flex;gap:8px;align-items:center;padding:8px 12px;background:var(--sea-dark);color:#fff}
.bar select,.bar button{font:600 15px system-ui;padding:8px 10px;border-radius:6px;border:0;background:#fff;color:#10242b;width:auto;min-width:44px}
.bar select{flex:1;min-width:0}
.page{max-width:680px;margin:0 auto;padding:22px 20px 40px;font:var(--fs,19px)/1.75 Georgia,"Times New Roman",serif}
.page h1,.page h2{font-family:Georgia,serif;line-height:1.2}
.page p{margin:0 0 1em;text-align:left}
.page img{max-width:100%}
.wm{margin-top:40px;font:13px system-ui;opacity:.55}
.pager{display:flex;gap:10px;max-width:680px;margin:0 auto;padding:0 20px 50px}
.pager button{flex:1;background:var(--sea);color:#fff}
@media print{body.reader *{display:none!important}}
.partner{margin-top:36px;background:var(--sea-dark);color:#fff;border-radius:10px;padding:24px 22px}
.partner h2{font:700 26px Georgia,serif;margin:0 0 8px}
.partner p{margin:0 0 16px;max-width:60ch}
.partner .btn{display:inline-block}
