:root{
  --paper:#ECE4D4; --paper-2:#E3DAC6; --paper-3:#D6CBB3;
  --ink:#1A1714; --ink-2:#3A322A; --dim:#6F6655; --muted-readable:#5E5548;
  --gold:#A8842F; --gold-2:#C9A24B;
  --danger:#7a2e22;
  --rule:rgba(26,23,20,.18);
  --shadow: 6px 8px 0 rgba(26,23,20,.12), 1px 2px 0 rgba(26,23,20,.25);
  --shadow-sm: 3px 4px 0 rgba(26,23,20,.10), 1px 1px 0 rgba(26,23,20,.18);
}
*{box-sizing:border-box;margin:0;padding:0}
html,body{max-width:100%;overflow-x:hidden;background:var(--paper);color:var(--ink);font-family:"Spectral",Georgia,serif;font-size:16px;line-height:1.45;-webkit-font-smoothing:antialiased}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:1;
  background-image:radial-gradient(rgba(26,23,20,.06) 1px,transparent 1px),radial-gradient(rgba(168,132,47,.05) 1px,transparent 1px);
  background-size:3px 3px,7px 7px;background-position:0 0,1px 2px;mix-blend-mode:multiply;opacity:.7;
}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,textarea,select{font:inherit;color:inherit}
/* foco visível por teclado em elementos clicáveis que não são botões nativos */
.book:focus-visible,.shelf-row:focus-visible,.reading-now-card:focus-visible,.busca-back:focus-visible,.edition:focus-visible,.diary-book-row:focus-visible,[role="button"]:focus-visible{outline:2px solid var(--wine);outline-offset:2px;border-radius:2px}
@media (prefers-reduced-motion: reduce){*{scroll-behavior:auto!important;transition:none!important}}

.app{position:relative;z-index:2;width:min(100%,560px);max-width:560px;margin:0 auto;min-height:100vh;padding:16px 16px 92px;overflow-x:hidden}

/* ---------- header ---------- */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:6px 2px 16px;border-bottom:1px solid var(--rule);margin-bottom:20px}
.brand{display:flex;align-items:center;gap:11px}
.seal{width:42px;height:42px;border:1.5px solid var(--ink);display:flex;align-items:center;justify-content:center;
  font-family:"Fraunces",serif;font-style:italic;font-weight:600;font-size:24px;box-shadow:var(--shadow-sm);background:var(--paper-2)}
.seal svg{height:62%;width:auto;fill:currentColor;display:block}
.wordmark{font-family:"Fraunces",serif;font-style:italic;font-weight:600;font-size:23px;letter-spacing:.01em}
.wordmark .dot{color:var(--gold)}
.crumb{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;color:var(--dim);text-align:right;opacity:0;transition:opacity .3s}
.crumb.visible{opacity:1}
.crumb b{display:block;color:var(--ink-2);font-weight:400;font-size:11px}

/* ---------- bottom nav (4) ---------- */
.tabs{position:fixed;left:0;right:0;bottom:0;z-index:10;background:var(--paper);border-top:1px solid var(--rule)}
.tabs-inner{max-width:560px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);padding:9px 0 calc(9px + env(safe-area-inset-bottom))}
.tab{display:flex;flex-direction:column;align-items:center;gap:5px;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:4px 0}
.tab svg{width:20px;height:20px;stroke:currentColor;fill:none;stroke-width:1.5}
.tab.active{color:var(--ink)}
.tab.active span{border-bottom:1.5px solid var(--gold);padding-bottom:2px}

/* ---------- type ---------- */
.h-display{font-family:"Fraunces",serif;font-style:italic;font-weight:400;font-size:38px;line-height:1.02;letter-spacing:-.015em}
.h-display .q{color:var(--gold)}
.h-section{font-family:"Fraunces",serif;font-style:italic;font-weight:400;font-size:22px;line-height:1.1}
.label{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim)}

.form-helper,
.diary-helper,
.screen-helper{
  font-family:"Spectral",Georgia,serif;
  font-size:.95rem;
  line-height:1.45;
  color:var(--muted-readable,var(--ink-2));
  margin-top:.35rem;
}
.diary-head .diary-helper{margin-top:.55rem}
.feed-intro .screen-helper{margin-top:0}
.meta{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.04em;color:var(--ink-2)}
.section-head{display:flex;align-items:baseline;justify-content:space-between;margin:30px 0 14px}
.section-head .more{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--gold);padding-bottom:1px}

/* ---------- home / busca ---------- */
.hero{padding:14px 2px 4px}
.hero .label{margin-bottom:14px}
.hero h1{margin-bottom:20px}
.search{display:flex;align-items:center;gap:0;border:1.5px solid var(--ink);background:var(--paper-2);box-shadow:var(--shadow-sm);margin:6px 0 18px}
.hero-extra{padding:6px 2px 20px}
.hero-extra .label{margin-bottom:14px}
.busca-back{display:inline-flex;align-items:center;gap:6px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);padding:4px 0 12px;cursor:pointer}
.busca-back:active{color:var(--ink)}
/* mini poster wall (obras populares) */
.wall-mini{grid-template-columns:repeat(3,1fr);gap:14px 10px}
.wall-mini .cover.fallback .ft{font-size:15px}
.wall-mini .book .t{font-size:13px;margin-top:7px}
.search .ic{padding:0 4px 0 14px;color:var(--dim);display:flex;align-items:center}
.search .ic svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8}
.search input{flex:1;background:transparent;border:0;padding:15px 12px;font-family:"Spectral",serif;font-size:16px;font-style:italic;outline:none}
.search input::placeholder{color:var(--dim);font-style:italic}
.search button{background:var(--ink);color:var(--paper);padding:0 18px;align-self:stretch;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase}
.search-hint{margin:-8px 2px 20px;color:var(--dim);font-size:14px;font-style:italic;line-height:1.4}

.chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.chip{border:1px solid var(--rule);padding:7px 11px;font-size:13px;font-style:italic;color:var(--ink-2);background:var(--paper-2);cursor:pointer;transition:background .15s,color .15s}
.chip:hover,.chip:active{background:var(--ink);color:var(--paper)}

.search-suggest{margin:-12px 0 18px;border:1px solid var(--rule);background:var(--paper-2);box-shadow:var(--shadow-sm);padding:13px 14px 15px}
.search-suggest[hidden]{display:none}
.suggest-group{margin-top:14px}
.suggest-group:first-child{margin-top:0}
.suggest-group .chips{margin-top:0}
.suggest-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.suggest-clear{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:none;border:0;cursor:pointer;padding:0}
.suggest-clear:hover{color:var(--ink)}

/* ---------- poster wall ---------- */
.wall{display:grid;grid-template-columns:repeat(2,1fr);gap:20px 14px;margin-top:6px}
@media(min-width:440px){.wall{grid-template-columns:repeat(3,1fr)}}
.book{display:block;text-align:left;cursor:pointer;width:100%}
.cover{position:relative;aspect-ratio:2/3;background:var(--paper-soft, var(--paper-3));box-shadow:var(--shadow);overflow:hidden;transition:transform .15s;max-width:100%}
.book:active .cover{transform:translate(1px,1px)}
.cover img{width:100%;max-width:100%;height:100%;object-fit:cover;display:block;background:var(--paper-soft, var(--paper-3))}
.cover .pt{position:absolute;right:6px;top:6px;font-family:"Space Mono",monospace;font-size:8.5px;letter-spacing:.14em;background:var(--paper);color:var(--ink);padding:3px 5px;border:1px solid var(--ink)}
.cover .stars-overlay{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:center;justify-content:space-between;
  font-family:"Space Mono",monospace;font-size:11px;color:var(--paper);background:linear-gradient(transparent,rgba(26,23,20,.85) 75%);padding:22px 8px 6px;letter-spacing:.04em}
.cover.fallback{display:flex;align-items:flex-end;padding:14px 12px}
.cover.fallback .ft{font-family:"Fraunces",serif;font-style:italic;font-size:21px;line-height:1.04;color:rgba(26,23,20,.78)}
.cover.fallback::after{content:"";position:absolute;left:0;top:0;bottom:0;width:5px;background:rgba(26,23,20,.18)}
.cover-art{display:flex;flex-direction:column;justify-content:space-between;gap:8px;padding:14px 12px;background:var(--cover-paper);color:var(--cover-ink);isolation:isolate}
.cover-art::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(135deg,rgba(255,255,255,.16),rgba(0,0,0,.10));mix-blend-mode:multiply}
.cover-art-rule{height:5px;width:38%;background:currentColor;margin-bottom:8px}
.cover-art-copy{min-height:0;display:flex;flex-direction:column;gap:8px;justify-content:center;flex:1}
.cover-art-author{font-family:"Space Mono",monospace;font-size:9px;line-height:1.25;letter-spacing:.12em;text-transform:uppercase;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.cover-art-title{font-family:"Fraunces",serif;font-weight:700;font-style:italic;font-size:20px;line-height:1.04;letter-spacing:-.02em;overflow-wrap:anywhere;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical}
.cover-art-meta{font-family:"Space Mono",monospace;font-size:8px;letter-spacing:.08em;text-transform:uppercase;opacity:.72;white-space:nowrap}
.cover-art.split{background:linear-gradient(90deg,var(--cover-ink) 0 30%,var(--cover-paper) 30%);color:var(--cover-ink)}
.cover-art.split .cover-art-rule{position:absolute;left:0;top:0;width:30%;height:100%;background:var(--cover-ink);z-index:-1}
.cover-art.split .cover-art-author{margin-left:32%;color:var(--cover-ink-2)}
.cover-art.split .cover-art-title{margin-left:32%}
.cover-art.split .cover-art-meta{margin-left:32%}
.cover-art.classic{align-items:center;text-align:center;border:8px solid var(--cover-paper);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--cover-ink),transparent 35%)}
.cover-art.classic .cover-art-rule{width:55%;height:2px;margin-top:12px}
.cover-art.classic .cover-art-title{font-size:21px;margin:auto 0;color:var(--cover-ink)}
.cover-art.block{background:var(--cover-ink);color:var(--cover-paper)}
.cover-art.block .cover-art-rule{width:62%;height:9px;background:var(--cover-ink-2)}
.cover-art.block .cover-art-title{font-size:22px;text-transform:uppercase;letter-spacing:.01em}
.book .t{margin-top:9px;font-family:"Fraunces",serif;font-style:italic;font-size:15px;line-height:1.15}
.book .a{font-size:12px;color:var(--dim);margin-top:2px}
.book .e{font-family:"Space Mono",monospace;font-size:10px;color:var(--gold);margin-top:5px;letter-spacing:.04em;border-bottom:1px solid rgba(168,132,47,.35);display:inline-block;padding-bottom:1px}
.book .yr{font-family:"Space Mono",monospace;font-size:10px;color:var(--dim);margin-top:4px;letter-spacing:.06em}
.book .yr .br{color:var(--ink-2)}
.work-card .cover{margin-bottom:2px}
.work-card .e{color:var(--gold)}

/* "lendo agora" — faixa horizontal */
.rail{display:flex;gap:14px;overflow-x:auto;padding:2px 2px 8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}
.rail::-webkit-scrollbar{display:none}
.rail .book{flex:0 0 132px;scroll-snap-align:start}
@media(min-width:440px){.rail .book{flex:0 0 150px}}

/* ---------- edições ---------- */
.work-head{display:flex;gap:14px;padding:4px 0 16px;border-bottom:1px solid var(--rule);margin-bottom:8px}
.work-head .cover{width:92px;flex:0 0 92px}
.work-head .wmeta{padding-top:2px}
.work-head .wmeta h2{font-family:"Fraunces",serif;font-style:italic;font-size:23px;line-height:1.05;margin-top:4px}
.work-head .wmeta .a{margin-top:4px;color:var(--ink-2);font-size:14px}
.work-head .wmeta .y{margin-top:8px}
.editions{list-style:none;display:flex;flex-direction:column}
.edition{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:16px 2px;border-bottom:1px solid var(--rule);cursor:pointer;transition:background .12s}
.edition:active{background:var(--paper-2)}
.edition-cover .cover{width:64px;box-shadow:var(--shadow-sm)}
.edition-cover .cover-art{padding:7px 6px}
.edition-cover .cover-art-author,.edition-cover .cover-art-meta{display:none}
.edition-cover .cover-art-title{font-size:11px;line-height:1.04}
.edition-body{min-width:0}
.edition .pub{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--ink)}
.publisher-link{text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--rule)}
.publisher-link:hover,.publisher-link:focus-visible{text-decoration-color:currentColor}
.author-link{color:inherit;text-decoration:underline;text-underline-offset:2px;text-decoration-color:var(--rule);cursor:pointer}
.author-link:hover,.author-link:focus-visible{text-decoration-color:currentColor}
.edition .te{font-family:"Fraunces",serif;font-style:italic;font-size:17px;margin-top:4px}
.edition .tr{margin-top:6px;font-size:14px}
.edition .tr b{font-weight:500;color:var(--gold);border-bottom:1px solid var(--gold);padding-bottom:1px}
.edition .tr .none{color:var(--dim);font-style:italic;border:0}
.edition .ln{margin-top:6px}
.edition-action{display:inline-flex;margin-top:10px;background:var(--ink);color:var(--paper);padding:8px 10px;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.edition-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.edition-actions .edition-action{margin-top:0}
.buy-amazon{display:inline-flex;align-items:center;margin-top:10px;background:transparent;color:var(--gold);padding:8px 12px;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--gold)}
.buy-amazon:hover{background:var(--gold);color:var(--paper)}
.edition-actions .buy-amazon{margin-top:0}
.selected-edition-copy .buy-amazon{margin-top:.85rem;font-size:10px;padding:10px 14px}
.affiliate-note{margin:8px 0 0;font-size:11px;line-height:1.5;color:var(--muted-readable)}

/* ---------- registrar ---------- */
.card-form{margin-top:8px;border:1px solid var(--rule);background:var(--paper-2);padding:16px}
.field{margin-bottom:16px}
.field label{display:block;margin-bottom:6px}
.field input[type=text],.field textarea,.field select{width:100%;background:var(--paper);border:1px solid var(--rule);padding:12px;font-family:"Spectral",serif;font-size:15px;outline:none}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--gold)}
.field textarea{resize:vertical;min-height:74px}
.stars{display:flex;gap:8px;align-items:center}
.stars .st{font-size:30px;line-height:1;color:var(--gold);cursor:pointer;opacity:.28}
.stars .st.on{opacity:1}
.stars .stxt{font-family:"Space Mono",monospace;font-size:11px;color:var(--dim);margin-left:6px}
.row{display:flex;gap:12px}
.row>*{flex:1}
.btn-primary{width:100%;background:var(--ink);color:var(--paper);padding:14px;font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;margin-top:4px}
.reading-form{display:grid;gap:1rem;border:0;background:transparent;padding:0}
.reading-form-block{padding:1rem;border:1px solid var(--rule);border-radius:18px;background:var(--paper-2)}
.reading-form-block>.label{margin-bottom:.85rem;color:var(--wine)}
.selected-edition-summary{display:grid;grid-template-columns:64px minmax(0,1fr);gap:.85rem;align-items:start}
.selected-edition-cover .cover{width:64px;box-shadow:var(--shadow-sm)}
.selected-edition-cover .cover-art{padding:7px 6px}
.selected-edition-cover .cover-art-author,.selected-edition-cover .cover-art-meta{display:none}
.selected-edition-cover .cover-art-title{font-size:11px;line-height:1.04}
.selected-edition-copy{min-width:0}
.selected-edition-copy h3{font-family:"Fraunces",serif;font-style:italic;font-size:22px;line-height:1.08;letter-spacing:-.02em;color:var(--ink);overflow-wrap:anywhere}
.selected-edition-author{margin-top:.2rem;color:var(--ink-2);font-size:15px}
.selected-edition-meta{margin-top:.6rem;font-family:"Space Mono",monospace;font-size:.86rem;line-height:1.45;letter-spacing:.02em;color:var(--muted-readable,var(--dim));overflow-wrap:anywhere}
/* Sinopse do livro: legível, com clamp de ~7 linhas pra não estourar o card. */
.selected-edition-desc{margin-top:.7rem;font-size:.95rem;line-height:1.5;color:var(--ink-2);overflow-wrap:anywhere;display:-webkit-box;-webkit-line-clamp:7;-webkit-box-orient:vertical;overflow:hidden}
.selected-edition-block .link-btn{margin-top:.9rem;color:var(--dim);font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--rule)}
.reading-status-block .status-field{margin-bottom:.85rem}
.reading-secondary-fields{display:grid;grid-template-columns:minmax(0,1fr);gap:.75rem}
.reading-secondary-fields .field{margin-bottom:0}
.rating-field .stars{gap:6px}
.rating-field .stars .st{font-size:24px}
.reading-text-block textarea{min-height:118px;background:color-mix(in srgb,var(--paper),transparent 8%);line-height:1.5}
.reading-text-block .field,.reading-options-block .field,.edition-relation-block .field{margin-bottom:0}
.reading-options-block,.edition-relation-block{display:grid;gap:.1rem}
.check-line{display:flex;align-items:center;gap:.7rem;min-height:38px;padding:.3rem .15rem;color:var(--ink-2);cursor:pointer}
.check-line input{width:20px;height:20px;flex:0 0 20px;accent-color:var(--wine)}
/* Override específico: vence as regras globais `.check-line` (margin:10px 0 /
   padding:.55rem) que deixavam as opções muito espaçadas nesta tela. */
.reading-options-block .check-line,.edition-relation-block .check-line{margin:0;padding:.15rem .1rem;min-height:34px}
.option-helper{margin:0 0 .1rem;padding-left:calc(20px + .85rem);font-size:.9rem;color:var(--muted-readable,var(--dim))}
.reading-submit{min-height:52px;margin-top:.35rem;border-radius:999px;box-shadow:var(--shadow-sm)}
@media(min-width:520px){
  .reading-secondary-fields{grid-template-columns:minmax(0,1fr) minmax(160px,.9fr);align-items:end}
}
@media(max-width:420px){
  .reading-form{gap:.85rem}
  .reading-form-block{padding:.95rem;border-radius:16px}
  .selected-edition-summary{grid-template-columns:58px minmax(0,1fr);gap:.75rem}
  .selected-edition-cover .cover{width:58px}
  .selected-edition-copy h3{font-size:20px}
  .field input[type=text],.field textarea,.field select{font-size:16px}
  .check-line{min-height:40px}
}

/* ---------- estante / diário / perfil ---------- */
.screen-head{display:flex;align-items:center;justify-content:space-between;margin:4px 0 4px}
.screen-head .btn-share{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--ink);padding:8px 11px}

/* diário — linha do tempo */
.diary{list-style:none;display:flex;flex-direction:column;margin-top:8px}
.diary li{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--rule);cursor:pointer}
.diary .dcover{width:54px;flex:0 0 54px;aspect-ratio:2/3;box-shadow:var(--shadow-sm);overflow:hidden;background:var(--paper-3)}
.diary .dcover img{width:100%;height:100%;object-fit:cover}
.diary .dcover.cover-art{position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:6px 5px}
.diary .dcover .cover-art-author,.diary .dcover .cover-art-meta{display:none}
.diary .dcover .cover-art-title{font-size:10px;line-height:1.02}
.diary .dcover .cover-art-rule{height:3px;margin-bottom:2px}
.diary .dbody{flex:1;min-width:0}
.diary .dtop{display:flex;align-items:baseline;justify-content:space-between;gap:8px}
.diary .dt{font-family:"Fraunces",serif;font-style:italic;font-size:16px;line-height:1.15}
.diary .dwhen{font-family:"Space Mono",monospace;font-size:10px;color:var(--dim);white-space:nowrap;letter-spacing:.04em}
.diary .dstars{font-family:"Space Mono",monospace;font-size:12px;color:var(--gold);margin-top:3px;letter-spacing:.05em}
.diary .dtr{font-family:"Space Mono",monospace;font-size:10px;color:var(--gold);margin-top:3px}
.diary .drelato{font-size:13px;color:var(--ink-2);margin-top:6px;font-style:italic;line-height:1.4;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* perfil */
.profile{margin-top:10px}
.profile .pcard{border:1px solid var(--rule);background:var(--paper-2);padding:20px;text-align:center}
.profile .phandle{font-family:"Fraunces",serif;font-style:italic;font-size:26px;margin-top:6px}
.profile .pcount{font-family:"Space Mono",monospace;font-size:11px;color:var(--ink-2);letter-spacing:.06em;margin-top:6px}
.profile .pactions{display:flex;flex-direction:column;gap:10px;margin-top:18px}
.profile .pbtn{padding:13px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;border:1px solid var(--ink)}
.profile .pbtn.solid{background:var(--ink);color:var(--paper)}
.profile .plink{font-family:"Space Mono",monospace;font-size:11px;color:var(--dim);margin-top:14px;word-break:break-all}

/* ---------- empty states ---------- */
.empty{padding:30px 4px;color:var(--dim);font-style:italic}
.empty-rich{padding:44px 4px 32px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px}
.empty-rich .ei{font-size:38px;opacity:.35;line-height:1}
.empty-rich p{color:var(--dim);font-style:italic;font-size:15px;line-height:1.5}
.empty-rich .btn-cta{display:inline-block;background:var(--ink);color:var(--paper);padding:13px 22px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-top:2px}
.empty-rich .btn-secondary{display:inline-block;border:1px solid var(--rule);background:var(--paper-2);color:var(--ink-2);padding:12px 16px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;margin-top:2px}

/* ---------- modal card ---------- */
.modal{position:fixed;inset:0;z-index:50;background:rgba(26,23,20,.72);display:none;align-items:flex-start;justify-content:center;padding:18px 12px calc(18px + env(safe-area-inset-bottom));overflow-y:auto;-webkit-overflow-scrolling:touch}
.modal.open{display:flex}
.modal-card{position:relative;width:100%;max-width:430px;display:flex;flex-direction:column;gap:12px;background:var(--paper);border:1px solid rgba(26,23,20,.22);box-shadow:0 24px 60px rgba(0,0,0,.45),var(--shadow-sm);padding:14px}
.modal-x{position:absolute;right:10px;top:8px;width:38px;height:38px;z-index:2;color:var(--dim);font-size:28px;line-height:1;border:1px solid transparent}
.modal-x:active{border-color:var(--rule);background:var(--paper-2)}
.book-detail{display:flex;flex-direction:column;gap:16px;padding:4px 2px 0}
.detail-head{display:grid;grid-template-columns:104px 1fr;gap:16px;align-items:start;padding-right:32px}
.detail-cover .cover{width:104px;box-shadow:var(--shadow-sm)}
.detail-cover .cover.fallback{padding:10px 8px}
.detail-cover .cover.fallback .ft{font-size:16px}
.detail-titleblock{min-width:0;padding-top:2px}
.detail-titleblock h2{font-family:"Fraunces",serif;font-style:italic;font-weight:500;font-size:28px;line-height:1.04;letter-spacing:-.01em;margin-top:7px}
.detail-author{margin-top:7px;color:var(--ink-2);font-size:16px;font-style:italic;line-height:1.25}
.status-tag{display:inline-flex;margin-top:12px;border:1px solid rgba(168,132,47,.55);color:var(--ink-2);background:rgba(201,162,75,.12);padding:5px 8px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.detail-section{border-top:1px solid var(--rule);padding-top:14px}
.detail-rating{display:flex;align-items:baseline;gap:10px;border-top:0;padding-top:0}
.card-cover-control{display:grid;gap:10px}
.card-cover-control .label{font-size:11px}
.card-cover-control p{color:var(--dim);font-size:14px;font-style:italic;margin-bottom:2px}
.diary-card-notice{border:1px solid rgba(168,132,47,.35);background:rgba(168,132,47,.10);padding:10px 12px;color:var(--ink-2);font-size:13px;line-height:1.45}
.diary-card-notice p+p{margin-top:6px}
.card-export-actions{display:grid;grid-template-columns:1fr;gap:8px}
.card-export-actions .btn-share-card,.card-export-actions .btn-secondary{width:100%;padding:13px;text-align:center;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.card-export-actions .btn-share-card{background:var(--ink);color:var(--paper)}
.card-export-actions .btn-secondary{background:var(--paper-2);color:var(--ink-2);border:1px solid var(--rule)}
.btn-cover-card{justify-self:start;border:1px solid var(--rule);background:var(--paper-2);color:var(--ink-2);padding:12px 14px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;line-height:1.25;max-width:100%}
.share-card-preview{width:min(100%,320px);height:auto;border:1px solid var(--rule);background:var(--paper-2);box-shadow:var(--shadow-sm);justify-self:center;display:block}
.detail-stars{font-family:"Space Mono",monospace;color:var(--gold);font-size:26px;letter-spacing:.05em;line-height:1}
.detail-rating-number{font-family:"Space Mono",monospace;color:var(--ink-2);font-size:13px;letter-spacing:.06em}
.detail-muted,.detail-empty{color:var(--dim);font-size:14px;font-style:italic}
.detail-quote{margin-top:9px;background:var(--paper-2);border-left:3px solid var(--gold);padding:14px 14px 14px 16px;box-shadow:inset 0 0 0 1px rgba(26,23,20,.06)}
.detail-quote blockquote{font-size:16px;font-style:italic;color:var(--ink-2);line-height:1.55}
.edition-data{display:grid;grid-template-columns:1fr;gap:8px;margin-top:10px}
.edition-data div{display:grid;grid-template-columns:82px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid rgba(26,23,20,.10)}
.edition-data dt{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
.edition-data dd{font-size:15px;color:var(--ink-2);word-break:break-word}
.edition-note{margin-top:10px}
.share-canvas{position:absolute;left:-9999px;top:0;width:1080px;height:1920px;pointer-events:none;opacity:0}
.modal-actions{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--rule);padding-top:12px}
.modal-actions .btn-share-card{width:100%;background:var(--ink);color:var(--paper);padding:15px;font-family:"Space Mono",monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;text-align:center;box-shadow:var(--shadow-sm)}
.modal-actions .btn-secondary{background:var(--paper-2);color:var(--ink-2);padding:13px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--rule);text-align:center}
.modal-actions .btn-danger{background:transparent;color:var(--danger);padding:12px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;text-align:center;border:1px solid rgba(122,46,34,.25)}
.edit-panel{background:var(--paper-2);padding:16px;border:1px solid var(--rule)}
.edit-panel h3{font-family:"Fraunces",serif;font-style:italic;font-weight:500;font-size:18px;margin-bottom:14px}
@media(max-width:420px){.modal{padding:10px 8px calc(10px + env(safe-area-inset-bottom))}.modal-card{max-width:none;padding:12px}.detail-head{grid-template-columns:82px 1fr;gap:12px}.detail-cover .cover{width:82px}.detail-titleblock h2{font-size:23px}.detail-author{font-size:14px}.detail-stars{font-size:22px}.edition-data div{grid-template-columns:70px 1fr}.share-card-preview{width:min(100%,300px)}.btn-cover-card{width:100%;text-align:center}.modal-actions .btn-share-card,.modal-actions .btn-secondary{padding:14px}}

/* cadastro manual / ajustes finos */
.link-manual{display:inline-block;margin-top:8px;color:var(--gold);font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;border-bottom:1px solid var(--gold);padding-bottom:1px}
.form-block{padding:0 0 14px;margin-bottom:18px;border-bottom:1px solid var(--rule)}
.form-block:last-of-type{border-bottom:0;margin-bottom:6px}
.form-block>.label{margin-bottom:12px;color:var(--gold)}
.edition{padding:11px 2px}
.edition .te{margin-top:2px}
.edition .tr,.edition .ln{margin-top:4px}
@media(max-width:420px){.row{flex-direction:column;gap:0}.edition{padding:10px 0}}

/* conta / login */
.account-box{margin-top:18px;border:1px solid var(--rule);background:var(--paper);padding:16px;text-align:left}
.account-box p{font-size:15px;color:var(--ink-2);font-style:italic;margin-top:8px;line-height:1.35}
.account-box .muted,.account-line.muted{color:var(--dim)}
.account-box .pbtn{display:block;text-align:center;margin-top:14px}
.account-box.connected{background:rgba(168,132,47,.08)}
.account-line{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.04em;margin-top:8px;word-break:break-word}
.account-logout{display:inline-block;margin-top:12px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim);border-bottom:1px solid var(--rule);padding:10px 2px 6px}
.toast{position:fixed;left:50%;bottom:86px;z-index:80;max-width:min(420px,calc(100vw - 32px));transform:translate(-50%,12px);opacity:0;background:var(--ink);color:var(--paper);box-shadow:var(--shadow-sm);padding:12px 14px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;text-align:center;transition:opacity .22s ease,transform .22s ease}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* estante — filtros e alternância grade/lista */
.shelf-tools{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin:12px 0 16px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:10px 0}
.shelf-filters{display:flex;flex-wrap:wrap;gap:7px;min-width:0}
.shelf-pill,.shelf-view-btn{min-height:34px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim);border:1px solid var(--rule);background:var(--paper);padding:8px 10px;cursor:pointer}
.shelf-pill.active,.shelf-view-btn.active{color:var(--ink);border-color:var(--ink);background:var(--paper-2);box-shadow:inset 0 -2px 0 var(--gold)}
.shelf-view{display:flex;gap:4px;flex:0 0 auto}
.shelf-view-btn{padding:8px 9px}
.shelf-empty{border-top:0;padding-top:14px}
.shelf-list{list-style:none;display:flex;flex-direction:column;margin-top:4px}
.shelf-row{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--rule);cursor:pointer}
.shelf-row:active{background:var(--paper-2)}
.shelf-cover{position:relative;width:48px;flex:0 0 48px;aspect-ratio:2/3;background:var(--paper-soft, var(--paper-3));box-shadow:var(--shadow-sm);overflow:hidden;display:block;max-width:48px}
.shelf-cover img{width:100%;height:100%;object-fit:contain;display:block;background:var(--paper-soft, var(--paper-3))}
.shelf-cover.cover-art{display:flex;flex-direction:column;justify-content:space-between;padding:6px 5px}
.shelf-cover .cover-art-author,.shelf-cover .cover-art-meta{display:none}
.shelf-cover .cover-art-title{font-size:10px;line-height:1.04;-webkit-line-clamp:4}
.shelf-cover .cover-art-rule{height:3px;margin-bottom:2px}
.shelf-row-body{flex:1;min-width:0;padding-top:1px}
.shelf-row-title{font-family:"Fraunces",serif;font-style:italic;font-size:16px;line-height:1.15;color:var(--ink)}
.shelf-row-author{font-size:13px;color:var(--ink-2);margin-top:2px;line-height:1.25}
.shelf-row-status{font-family:"Space Mono",monospace;font-size:10px;color:var(--gold);letter-spacing:.05em;margin-top:5px}
.shelf-row-meta,.shelf-row-date{font-family:"Space Mono",monospace;font-size:10px;color:var(--dim);letter-spacing:.04em;margin-top:4px;line-height:1.35}
@media(max-width:420px){.shelf-tools{flex-direction:column;gap:9px}.shelf-view{align-self:flex-start}.shelf-pill,.shelf-view-btn{min-height:38px}}

/* convite discreto de login após salvar leitura */
.login-hint{margin:10px 0 16px;border:1px solid rgba(168,132,47,.55);background:rgba(201,162,75,.13);padding:14px;box-shadow:var(--shadow-sm)}
.login-hint p{font-size:15px;color:var(--ink-2);font-style:italic;line-height:1.35;margin-bottom:12px}
.login-hint-actions{display:flex;gap:8px;flex-wrap:wrap}
.login-hint-primary,.login-hint-secondary{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;padding:10px 12px;border:1px solid var(--ink)}
.login-hint-primary{background:var(--ink);color:var(--paper)}
.login-hint-secondary{background:var(--paper);color:var(--ink-2);border-color:var(--rule)}
@media(max-width:420px){.login-hint-actions{flex-direction:column}.login-hint-primary,.login-hint-secondary{width:100%}}

/* busca — skeleton de carregamento */
.busca-skeleton-item{cursor:default;pointer-events:none}
.busca-skeleton-cover,.busca-skeleton-line{position:relative;overflow:hidden;background:linear-gradient(90deg,rgba(214,203,179,.55),rgba(236,228,212,.92),rgba(214,203,179,.55));background-size:220% 100%;animation:skeletonShimmer 1.25s ease-in-out infinite;border:1px solid rgba(26,23,20,.08)}
.busca-skeleton-cover{box-shadow:var(--shadow);border-color:rgba(26,23,20,.12)}
.busca-skeleton-line{height:12px;margin-top:10px;box-shadow:inset 0 0 0 1px rgba(255,255,255,.18)}
.busca-skeleton-line.title{width:86%;height:15px}
.busca-skeleton-line.author{width:62%}
.busca-skeleton-line.meta-line{width:44%;height:10px;background-color:rgba(168,132,47,.16)}
@keyframes skeletonShimmer{0%{background-position:120% 0}100%{background-position:-120% 0}}

/* estante — destaque temporário após salvar */
.saved-highlight{position:relative;border:1.5px solid var(--danger);box-shadow:0 0 0 3px rgba(122,46,34,.10),var(--shadow-sm);animation:savedPulse .9s ease-out 1;background:rgba(122,46,34,.035)}
.book.saved-highlight{padding:7px;margin:-8px;border-radius:2px}
.shelf-row.saved-highlight{padding-left:8px;padding-right:8px;margin-left:-8px;margin-right:-8px}
@keyframes savedPulse{0%{transform:translateY(0);box-shadow:0 0 0 0 rgba(122,46,34,.26),var(--shadow-sm)}55%{transform:translateY(-1px);box-shadow:0 0 0 6px rgba(122,46,34,.12),var(--shadow-sm)}100%{transform:translateY(0);box-shadow:0 0 0 3px rgba(122,46,34,.10),var(--shadow-sm)}}
@media (prefers-reduced-motion: reduce){.busca-skeleton-cover,.busca-skeleton-line,.saved-highlight{animation:none}}

/* UI/UX editorial mobile — papel/carvão/vinho */
:root{
  --paper:#F3EBDD; --paper-2:#E9DEC9; --paper-3:#D8C9AD;
  --ink:#171310; --ink-2:#3A322A; --coal:#0E0D0B; --coal-2:#171411;
  --wine:#8B0E20; --wine-2:#5E1018; --muted:#766B5B; --rule:rgba(23,19,16,.16);
  --gold:var(--wine); --gold-2:#A34B55; --danger:var(--wine-2);
  --shadow:0 1px 0 rgba(23,19,16,.22); --shadow-sm:0 1px 0 rgba(23,19,16,.16);
}
body.theme-dark{
  --paper:#0E0D0B; --paper-2:#171411; --paper-3:#261D19;
  --ink:#F3EBDD; --ink-2:#D8C9AD; --dim:#8E8273; --muted:#8E8273; --muted-readable:#C8BAA3;
  --rule:rgba(243,235,221,.16); --gold:#9B1627; --gold-2:#B64250; --danger:#B64250;
  --shadow:0 1px 0 rgba(243,235,221,.12); --shadow-sm:0 1px 0 rgba(243,235,221,.10);
}
html,body{background:var(--paper);transition:background .2s ease,color .2s ease}
body.theme-dark::before{opacity:.28;mix-blend-mode:screen;background-image:radial-gradient(rgba(243,235,221,.06) 1px,transparent 1px)}
.app{padding:34px 28px 112px}
.topbar{padding:76px 0 22px;margin-bottom:28px}.brand{gap:9px}.seal{display:none}
.wordmark{font-size:54px;line-height:.9;font-style:normal;letter-spacing:-.06em}
.wordmark::before{content:"";display:none;width:4px;height:.74em;background:var(--wine);margin-right:12px;vertical-align:-.05em;border-radius:2px}.wordmark .dot{color:var(--wine)}
.top-actions{display:flex;align-items:center;gap:12px}.crumb{opacity:1;text-transform:uppercase;letter-spacing:.42em;font-size:12px;white-space:nowrap}
.theme-toggle{width:50px;height:50px;border:1px solid var(--rule);border-radius:50%;background:var(--paper-2);color:var(--muted);font-size:24px;display:grid;place-items:center}
.h-display,.h-section{font-style:normal;font-weight:650;letter-spacing:-.055em}.h-display{font-size:44px}.h-section{font-size:52px}
.screen-head{align-items:flex-start;border-bottom:1px solid var(--rule);padding-bottom:24px;margin-bottom:22px}.screen-subtitle,.shelf-summary{color:var(--muted);font-size:22px;margin-top:6px}.btn-share{border-color:var(--rule)!important;border-radius:999px;color:var(--muted);background:transparent}.label{color:var(--wine);letter-spacing:.34em;font-weight:700}
.search{border-color:var(--rule);box-shadow:none;background:var(--paper-2);border-radius:4px;margin:22px 0 26px}.search input{font-size:26px;padding:22px 14px;font-style:normal}.search button{background:var(--wine);font-size:10px}.search .ic svg{width:30px;height:30px}.hero-extra{display:none}
.section-head{margin:36px 0 18px}.section-head .h-section{font-size:32px;letter-spacing:-.035em}.section-head .more{color:var(--muted);border:0}
.reading-now-card{display:grid;grid-template-columns:minmax(120px,42%) 1fr;gap:28px;border:1px solid var(--rule);background:var(--paper-2);padding:26px;min-height:238px;cursor:pointer}.reading-now-card.compact{min-height:0;padding:22px}.reading-cover .cover{width:min(100%,194px);box-shadow:none;max-height:290px}.reading-cover .cover img{object-fit:contain}.reading-copy{display:flex;flex-direction:column;min-width:0}.reading-copy h3{font-family:"Fraunces",serif;font-size:38px;line-height:1.04;letter-spacing:-.05em;margin:20px 0 6px}.reading-copy p{font-size:22px;color:var(--muted);line-height:1.2}.reading-spacer{flex:1}.reading-meta{color:var(--muted);font-size:18px;margin-bottom:8px}.reading-progress{height:9px;border-radius:999px;background:color-mix(in srgb,var(--muted),transparent 70%);overflow:hidden}.reading-progress span{display:block;height:100%;background:var(--wine);border-radius:inherit}
.shelf-now{margin:34px 0}.shelf-now>.label{margin-bottom:18px}.shelf-tools{border:0;margin:26px 0 24px;padding:0}.shelf-filters{gap:14px;flex-wrap:nowrap;overflow:auto;padding-bottom:2px}.shelf-pill,.shelf-view-btn{border-radius:999px;background:transparent;border-color:var(--rule);font-size:16px;letter-spacing:0;text-transform:none;padding:14px 22px;min-height:54px;white-space:nowrap}.shelf-pill.active,.shelf-view-btn.active{background:var(--ink);color:var(--paper);box-shadow:none;border-color:var(--ink)}body.theme-dark .shelf-pill.active,body.theme-dark .shelf-view-btn.active{background:var(--paper-2);color:var(--ink);border-color:var(--rule)}
.wall{grid-template-columns:repeat(3,1fr);gap:22px 18px}.cover{box-shadow:none;border:1px solid rgba(0,0,0,.04)}.book .t{font-style:normal;font-weight:650}
.tabs{background:var(--nav-bg);backdrop-filter:none;-webkit-backdrop-filter:none}.tabs-inner{padding:12px 0 calc(12px + env(safe-area-inset-bottom))}.tab{font-family:"Spectral",serif;text-transform:none;letter-spacing:0;font-size:16px;gap:4px}.tab svg{width:31px;height:31px}.tab.active{color:var(--ink)}.tab.active span{border:0}.tab.active::after{content:"";width:28px;height:3px;border-radius:9px;background:var(--wine);order:-1}
.diary li{gap:16px;padding:26px 0}.diary .dcover{width:48px;flex-basis:48px;opacity:.82}.diary .dmeta{font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.18em;font-size:13px;color:var(--muted);margin-bottom:12px}.diary .dmeta span{color:var(--wine);font-weight:700}.diary .dt{font-style:normal;font-weight:650;font-size:30px}.diary .drelato{font-family:"Fraunces",serif;font-size:25px;line-height:1.55;color:var(--muted);font-style:italic;display:block;-webkit-line-clamp:unset}
.profile .pcard{border:0;background:transparent;padding:22px 0;text-align:center}.profile-avatar{width:124px;height:124px;border-radius:50%;background:var(--wine);color:var(--paper);display:grid;place-items:center;font-family:"Fraunces",serif;font-size:58px;font-weight:650;margin:36px auto 24px}.profile .phandle{font-style:normal;font-weight:650;font-size:36px}.profile .pcount{font-family:"Spectral",serif;font-size:20px;color:var(--muted)}.profile-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:34px 0}.profile-metrics div{border:1px solid var(--rule);padding:22px 8px}.profile-metrics strong{display:block;font-family:"Fraunces",serif;font-size:42px;line-height:1}.profile-metrics span{display:block;font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.22em;font-size:12px;color:var(--muted);margin-top:10px}.account-box{background:var(--paper-2);border-color:var(--rule);text-align:left}.modal-card{background:var(--paper)}
@media(max-width:420px){
  .app{padding-left:26px;padding-right:26px}.topbar{padding-top:48px}.wordmark{font-size:46px}.crumb{font-size:10px;letter-spacing:.32em;max-width:160px;overflow:hidden}.theme-toggle{width:44px;height:44px}.h-section{font-size:50px}.search input{font-size:22px}.search button{display:none}.reading-now-card{grid-template-columns:45% 1fr;gap:18px;padding:18px}.reading-copy h3{font-size:30px}.reading-copy p{font-size:18px}.shelf-pill,.shelf-view-btn{font-size:18px}.diary .dcover{display:none}.diary .dt{font-size:28px}.diary .drelato{font-size:24px}.wall{gap:18px 14px}
}

/* Bolt reference adaptation — Lito editorial tokens mapped to Lombada vanilla UI */
:root{
  --paper:#F4EFE6; --paper-2:#EDE4D3; --paper-3:#C4B49A;
  --ink:#1A1714; --ink-2:#3A322A; --dim:#7A6E63; --muted:#7A6E63; --muted-readable:#62584C;
  --wine:#6B1F1F; --wine-2:#4A1212; --accent:#8B2E1F;
  --rule:rgba(26,23,20,.12); --nav-bg:#EDE4D3;
  --gold:var(--wine); --gold-2:var(--accent); --danger:var(--wine-2);
  --shadow:0 16px 34px rgba(26,23,20,.10),0 1px 0 rgba(26,23,20,.14);
  --shadow-sm:0 10px 22px rgba(26,23,20,.08),0 1px 0 rgba(26,23,20,.12);
}
body.theme-dark{
  --paper:#0D0B09; --paper-2:#1A1714; --paper-3:#2A211B;
  --ink:#F4EFE6; --ink-2:#D9CBB3; --dim:#6B6258; --muted:#6B6258; --muted-readable:#CFC2AA;
  --wine:#6B1F1F; --wine-2:#4A1212; --accent:#8B2E1F;
  --rule:rgba(244,239,230,.12); --nav-bg:#0D0B09;
  --gold:var(--wine); --gold-2:var(--accent); --danger:#8B2E1F;
  --shadow:0 18px 38px rgba(0,0,0,.34),0 1px 0 rgba(244,239,230,.06);
  --shadow-sm:0 12px 24px rgba(0,0,0,.26),0 1px 0 rgba(244,239,230,.05);
}
html,body{background:var(--paper);color:var(--ink);font-family:"Spectral",Georgia,serif;}
body::before{opacity:.18;background-image:radial-gradient(rgba(217,203,179,.10) 1px,transparent 1px);background-size:4px 4px;mix-blend-mode:normal}
body.theme-light::before{opacity:.32;background-image:radial-gradient(rgba(26,23,20,.055) 1px,transparent 1px)}
.app{max-width:420px;min-height:100svh;padding:48px 24px 104px;background:var(--paper);box-shadow:0 24px 70px rgba(0,0,0,.20)}
@media(min-width:640px){body{display:flex;justify-content:center}.app{min-height:860px;margin:18px auto;border-radius:2px;overflow:hidden;position:relative}.tabs{position:fixed;left:50%;right:auto;bottom:18px;width:520px;transform:translateX(-50%);border-radius:0 0 2px 2px}}
.topbar{padding:0 0 14px;margin-bottom:18px;border-bottom:1px solid var(--rule)}
.wordmark{font-size:42px;line-height:1.05;font-style:normal;font-weight:650;letter-spacing:-.06em;color:var(--ink)}
.wordmark::before{height:.68em;width:3px;margin-right:8px;background:var(--wine)}
.crumb{font-family:"Space Mono",monospace;color:var(--muted);font-size:9px;letter-spacing:.28em;text-transform:uppercase}.crumb b{color:var(--ink)}
.theme-toggle{width:34px;height:34px;background:var(--paper-2);border:1px solid var(--rule);border-radius:50%;color:var(--muted);font-size:17px;line-height:1;box-shadow:none}
.search{margin:8px 0 26px;border:1px solid var(--rule);border-radius:2px;background:var(--paper-2);box-shadow:none}.search input{font-size:15px;padding:14px 10px;font-style:normal}.search .ic svg{width:17px;height:17px}.search button{background:var(--wine);color:#F4EFE6;font-size:10px;padding:0 14px}
.label{font-family:"Space Mono",monospace;color:var(--wine);font-size:10px;letter-spacing:.25em;text-transform:uppercase;font-weight:700}.h-display{font-size:40px;line-height:1.02;font-style:normal;font-weight:650;letter-spacing:-.055em}.h-section{font-size:32px;font-style:normal;font-weight:650;letter-spacing:-.04em}.section-head{margin:28px 0 14px}.section-head .h-section{font-size:18px;letter-spacing:-.01em}.section-head .more{border:0;color:var(--muted)}
.screen-head{display:block;border-bottom:1px solid var(--rule);padding-bottom:12px;margin:0 0 18px}.screen-head .btn-share{float:right;margin-top:4px;border:1px solid var(--rule);border-radius:999px;color:var(--muted);background:var(--paper-2)}.screen-subtitle,.shelf-summary{font-size:12px;color:var(--muted);margin-top:3px}
.reading-now-card{display:grid;grid-template-columns:118px 1fr;gap:16px;border:1px solid var(--rule);border-radius:2px;background:var(--paper-2);padding:12px;min-height:184px;box-shadow:none}.reading-now-card.compact{border-left:3px solid var(--wine);padding:12px}.reading-copy h3{font-size:21px;line-height:1.08;letter-spacing:-.02em;margin:8px 0 3px}.reading-copy p{font-size:12px;color:var(--muted)}.reading-meta{font-size:10px;color:var(--muted);margin-bottom:6px}.reading-progress{height:4px;background:var(--rule)}.reading-progress span{background:var(--wine)}
.tabs{background:var(--nav-bg);backdrop-filter:none;-webkit-backdrop-filter:none;border-top:1px solid var(--rule)}.tabs-inner{max-width:520px;padding:10px 4px calc(22px + env(safe-area-inset-bottom))}.tab{position:relative;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.10em;text-transform:uppercase;color:var(--muted);gap:6px}.tab svg{width:18px;height:18px;stroke-width:1.5}.tab.active{color:var(--ink);font-weight:700}.tab.active span{border:0}.tab.active::before{content:"";position:absolute;top:-10px;left:50%;width:24px;height:2px;transform:translateX(-50%);border-radius:0 0 2px 2px;background:var(--wine)}.tab.active::after{display:none}
.wall{grid-template-columns:repeat(3,1fr);gap:20px 12px}.wall-mini{gap:16px 10px}.book .t{font-family:"Fraunces",serif;font-style:normal;font-weight:650;font-size:13px;line-height:1.15;letter-spacing:-.01em}.book .a{font-size:10px;color:var(--muted)}.book .e,.book .yr{font-size:9px;color:var(--wine)}
.cover,.shelf-cover,.diary .dcover{box-shadow:var(--shadow-sm);border:0;border-radius:0}.cover img{border:0}.cover-art{padding:13px 11px;background:var(--cover-paper);color:var(--cover-ink)}.cover-art::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:currentColor;opacity:.12}.cover-art-author{font-size:8px;letter-spacing:.20em;color:var(--cover-ink-2)}.cover-art-title{font-style:normal;font-weight:700;font-size:18px;line-height:1.04;letter-spacing:-.035em}.cover-art-meta{font-size:7px;color:var(--cover-ink-2)}
.cover-art.modern{align-items:stretch;text-align:left}.cover-art.modern .cover-art-author{text-align:right}.cover-art.modern .cover-art-title{margin:auto 0;font-weight:500}.cover-art.modern .cover-art-rule{width:8px;height:8px;border-radius:50%;margin:0;background:var(--cover-ink-2)}
.cover-art.minimal{align-items:center;text-align:center}.cover-art.minimal .cover-art-title{margin:auto 0;font-style:italic}.cover-art.minimal .cover-art-rule{height:2px;width:28px;margin:0;background:var(--cover-ink-2)}
.cover-art.bold{background:var(--cover-ink);color:var(--cover-paper)}.cover-art.bold::before{content:attr(data-initial);position:absolute;inset:0;display:grid;place-items:center;font-family:"Fraunces",serif;font-size:92px;font-weight:900;color:var(--cover-ink-2);opacity:.10;z-index:-1}.cover-art.bold .cover-art-title{font-weight:800;text-transform:none}.cover-art.bold .cover-art-rule{height:4px;width:100%;background:var(--cover-ink-2)}
.cover-art.stripe{background:linear-gradient(to bottom,var(--cover-ink-2) 0 25%,var(--cover-paper) 25%);color:var(--cover-ink)}.cover-art.stripe .cover-art-author{color:var(--cover-paper);text-align:center;font-weight:700}.cover-art.stripe .cover-art-title{text-align:center;margin:auto 0}.cover-art.stripe .cover-art-rule{display:none}
.diary{margin-top:6px}.diary li{gap:0;padding:18px 0}.diary .dcover{display:none}.diary .dmeta{font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.18em;font-size:10px;color:var(--muted);margin-bottom:6px}.diary .dmeta span{color:var(--wine);font-weight:700}.diary .dt{font-style:normal;font-weight:650;font-size:18px;letter-spacing:-.01em}.diary .dwhen{font-size:10px;color:var(--muted)}.diary .drelato{font-family:"Fraunces",serif;font-size:14px;line-height:1.55;color:var(--muted);font-style:italic;margin-top:6px}
.shelf-tools{border:0;margin:22px 0 20px;padding:0}.shelf-filters{display:flex;gap:8px;flex-wrap:nowrap;overflow-x:auto}.shelf-pill,.shelf-view-btn{min-height:auto;border:1px solid var(--rule);border-radius:999px;background:transparent;color:var(--muted);font-size:12px;letter-spacing:0;text-transform:none;padding:8px 13px;white-space:nowrap}.shelf-pill.active,.shelf-view-btn.active{background:var(--ink);border-color:var(--ink);color:var(--paper);box-shadow:none}body.theme-dark .shelf-pill.active,body.theme-dark .shelf-view-btn.active{background:var(--ink);color:var(--paper)}.shelf-view{display:none}.shelf-now{margin:24px 0}.shelf-now>.label{margin-bottom:12px}
.profile .pcard{border:0;background:transparent;padding:16px 0;text-align:center}.profile-avatar{width:80px;height:80px;border-radius:50%;background:var(--wine);color:#F4EFE6;display:grid;place-items:center;font-family:"Fraunces",serif;font-size:34px;font-weight:650;margin:20px auto 14px}.profile .phandle{font-style:normal;font-weight:650;font-size:22px}.profile .pcount{font-family:"Spectral",serif;font-size:12px;color:var(--muted)}.profile-metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:26px 0}.profile-metrics div{border:1px solid var(--rule);background:var(--paper-2);padding:14px 6px}.profile-metrics strong{display:block;font-family:"Fraunces",serif;font-size:24px;line-height:1;color:var(--ink)}.profile-metrics span{display:block;font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.12em;font-size:9px;color:var(--muted);margin-top:6px}.account-box{background:var(--paper-2);border-color:var(--rule)}
.modal{background:rgba(13,11,9,.78);align-items:flex-start}.modal-card{max-width:420px;background:var(--paper);border-color:var(--rule);box-shadow:0 28px 80px rgba(0,0,0,.45);border-radius:2px}.modal-x{border:1px solid var(--rule);border-radius:50%;background:var(--paper-2);font-size:22px}.detail-titleblock h2{font-style:normal;font-weight:650}.status-tag{border-color:var(--rule);background:var(--paper-2);color:var(--ink)}.detail-quote{background:transparent;border-left:3px solid var(--wine);box-shadow:none}.modal-actions .btn-share-card{background:var(--wine);color:#F4EFE6;box-shadow:none}.modal-actions .btn-secondary{background:transparent;color:var(--ink);border-color:var(--rule)}
@media(max-width:420px){.app{padding:48px 24px 104px;box-shadow:none}.topbar{padding-top:0}.wordmark{font-size:38px}.crumb{max-width:118px;font-size:8px;letter-spacing:.22em}.h-display{font-size:36px}.h-section{font-size:30px}.search input{font-size:14px}.reading-now-card{grid-template-columns:104px 1fr;gap:14px;padding:11px}.reading-copy h3{font-size:18px}.shelf-pill{font-size:12px}.wall{gap:18px 10px}}


/* Mobile polish: header, helper text, cards and safe bottom spacing */
html,body{max-width:100%;overflow-x:hidden}
.app{overflow-x:hidden;padding-bottom:calc(132px + env(safe-area-inset-bottom))}
.brand{min-width:0;position:relative;gap:10px;flex:1 1 auto;max-width:calc(100% - 48px)}
.wordmark{position:relative;display:inline-flex;align-items:center;min-width:0;max-width:100%}
.wordmark::before{flex:0 0 auto;align-self:center;height:.62em;width:3px;margin:0 9px 0 0;vertical-align:0;border-radius:99px;transform:translateY(.03em)}
.top-actions{flex:0 0 auto;min-width:0}.theme-toggle{flex:0 0 auto}
.search-hint{margin:-14px 2px 18px;color:var(--muted);font-size:12px;line-height:1.25;font-style:italic;max-width:34ch}
.link-manual{margin-top:6px;font-size:8.5px;line-height:1.15;letter-spacing:.10em;max-width:100%;text-wrap:balance}
.book{min-width:0}.book .t{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;line-height:1.18;min-height:calc(2em * 1.18);overflow-wrap:anywhere}.book .a{display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}
.cover-art{min-width:0;overflow:hidden;gap:8px}.cover-art-title{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;overflow:hidden;overflow-wrap:break-word;hyphens:auto;font-size:clamp(13px,4.8vw,18px);line-height:1.02}.cover-art-author,.cover-art-meta{min-width:0;overflow:hidden;text-overflow:ellipsis}.cover-art.classic .cover-art-title,.cover-art.block .cover-art-title{font-size:clamp(13px,5vw,19px)}.cover-art.bold::before{font-size:clamp(58px,24vw,92px)}
@media(max-width:420px){.app{padding-left:20px;padding-right:20px;padding-bottom:calc(136px + env(safe-area-inset-bottom))}.topbar{gap:10px;align-items:center}.brand{max-width:calc(100% - 46px);gap:8px}.wordmark{font-size:36px;line-height:1}.wordmark::before{height:.54em;width:3px;margin-right:7px;transform:translateY(.05em)}.crumb{display:none}.theme-toggle{width:36px;height:36px}.search{margin-bottom:20px}.search-hint{margin:-10px 1px 16px;font-size:11px;line-height:1.2;max-width:30ch}.link-manual{font-size:7.5px;letter-spacing:.08em}.wall{gap:20px 10px}.book .t{font-size:12.5px;line-height:1.18;-webkit-line-clamp:3;min-height:calc(2em * 1.18)}.cover-art{padding:11px 9px}.cover-art-title{font-size:clamp(12px,4.5vw,16px);line-height:1.03;-webkit-line-clamp:6}.cover-art-author{font-size:7px;letter-spacing:.14em}.cover-art-meta{font-size:6.5px}.tabs-inner{padding-bottom:calc(22px + env(safe-area-inset-bottom))}}

/* Bugfixes: mobile scrolling, compact search helper and safer long titles */
html{min-height:100%;height:auto;overflow-y:auto;-webkit-text-size-adjust:100%}
body{min-height:100dvh;height:auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior-y:auto}
.app{min-height:100dvh;height:auto;overflow-y:visible;padding-bottom:calc(152px + env(safe-area-inset-bottom))}
section[id^="sec"],#homeFeed,#resultados,#edicoes,#manual,#form{min-height:0;overflow:visible}
.search-hint{margin:-12px 2px 14px;font-size:12px;line-height:1.18;max-width:none}
.link-manual{margin-top:4px;font-size:9px;line-height:1.1;letter-spacing:.08em;text-wrap:nowrap;white-space:nowrap}
.book .t{line-height:1.2;-webkit-line-clamp:3;min-height:0;overflow:hidden}
.wall-mini .book .t{font-size:12.5px;line-height:1.16}
.cover-art{overflow:hidden;justify-content:space-between}
.cover-art-title{line-height:1.08;-webkit-line-clamp:6;overflow:hidden}
@media(max-width:420px){.app{min-height:100dvh;height:auto;overflow-y:visible;padding-bottom:calc(156px + env(safe-area-inset-bottom))}.search-hint{margin:-12px 1px 12px;font-size:11px;line-height:1.15}.link-manual{display:inline-block;font-size:8.5px;white-space:nowrap;text-wrap:nowrap}.book .t{font-size:12.5px;line-height:1.2;-webkit-line-clamp:3;overflow:hidden}.wall-mini .book .t{font-size:12px}.cover-art-title{font-size:clamp(11px,4.1vw,15px);line-height:1.08;-webkit-line-clamp:7}.cover-art.classic .cover-art-title,.cover-art.block .cover-art-title{font-size:clamp(11px,4.3vw,16px)}}

/* Perfil: tema saiu do header e virou configuração local de usuário */
.theme-box{margin-top:16px}
.theme-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-top:14px}
.theme-option{min-width:0;cursor:pointer}
.theme-option input{position:absolute;opacity:0;pointer-events:none}
.theme-option span{display:block;border:1px solid var(--rule);border-radius:999px;background:transparent;color:var(--muted);font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.12em;text-align:center;text-transform:uppercase;padding:11px 10px;transition:background .16s ease,color .16s ease,border-color .16s ease}
.theme-option input:checked + span{background:var(--ink);border-color:var(--ink);color:var(--paper)}
body.theme-dark .theme-option input:checked + span{background:var(--paper-2);border-color:var(--rule);color:var(--ink)}
.theme-option input:focus-visible + span{outline:2px solid var(--wine);outline-offset:2px}
.brand{max-width:100%}
@media(max-width:420px){.brand{max-width:100%}.top-actions{display:none}.theme-options{gap:7px}.theme-option span{font-size:10px;padding:10px 8px}}

/* Cadastro manual: home limpa, CTA contextual depois da busca */
.manual-cta{border-top:1px solid var(--rule);margin:22px 0 6px;padding-top:14px;color:var(--muted);font-style:italic;text-align:left}
.manual-cta p{margin-bottom:4px}
.manual-cta.prominent{border:1px solid var(--rule);background:var(--paper-2);padding:18px;text-align:center;color:var(--ink-2)}
.manual-cta.prominent p{font-family:"Fraunces",serif;font-size:18px;line-height:1.2;color:var(--ink);margin-bottom:10px}
.library-box{margin-top:16px;text-align:left}
.library-box .pbtn{display:block;width:100%;margin-top:12px;text-align:center}
@media(max-width:420px){.manual-cta{margin-top:18px}.manual-cta.prominent{padding:16px}.manual-cta.prominent p{font-size:16px}}

/* ---------- página da obra: comunidade + edições ---------- */
.social-work-head{align-items:flex-start;margin-bottom:14px}
.community-score{margin-top:12px;display:flex;flex-direction:column;gap:3px}
.community-score strong{font-family:"Space Mono",monospace;color:var(--gold);font-size:16px;letter-spacing:.04em}
.community-score span{font-family:"Space Mono",monospace;font-size:11px;color:var(--ink-2);letter-spacing:.04em}
.work-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:14px}
.work-actions button,.work-my-reading{border:1px solid var(--ink);background:var(--paper-2);padding:9px 10px;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;text-align:left}
.work-actions button:first-child,.work-my-reading{background:var(--ink);color:var(--paper)}
.community-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0 8px}
.community-summary div{border:1px solid var(--rule);background:var(--paper-2);padding:12px 8px;min-width:0}
.community-summary span{display:block;font-family:"Fraunces",serif;font-style:italic;font-size:22px;line-height:1;color:var(--ink)}
.community-summary small{display:block;margin-top:7px;font-family:"Space Mono",monospace;font-size:9px;line-height:1.25;letter-spacing:.1em;text-transform:uppercase;color:var(--dim)}
.work-my-reading{width:100%;margin:10px 0 4px;text-align:center;padding:12px}
.work-editions .edition{position:relative;padding-top:30px;border:1px solid transparent;border-bottom-color:var(--rule);grid-template-columns:64px 1fr}
.work-editions .edition.most-read{background:rgba(201,162,75,.10);border-color:rgba(168,132,47,.35);padding-left:8px;padding-right:8px;margin-bottom:8px}
.edition-group{position:absolute;left:2px;top:6px;z-index:1;padding:2px 6px;border-radius:3px;background:var(--paper);box-shadow:0 0 0 1px var(--rule);font-family:"Space Mono",monospace;font-size:8px;letter-spacing:.14em;text-transform:uppercase;color:var(--gold)}
.work-editions .edition.most-read .edition-group{left:8px;color:var(--ink)}
.edition-stats{margin-top:7px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.06em;color:var(--gold)}
.edition-stats span.edition-stats-muted{font-style:italic;text-transform:none;letter-spacing:normal;white-space:normal;flex-basis:100%}
.community-section{margin-top:28px;padding-bottom:8px}
.community-label{margin:16px 0 8px;color:var(--gold)}
.reviews-list{display:flex;flex-direction:column;gap:10px}
.review-card{border:1px solid var(--rule);background:var(--paper-2);padding:14px;box-shadow:var(--shadow-sm)}
.reviews-list.featured .review-card{border-left:3px solid var(--gold)}
.review-top{display:flex;align-items:center;justify-content:space-between;gap:12px;font-family:"Space Mono",monospace;font-size:11px;color:var(--ink-2);letter-spacing:.04em}
.review-top span{color:var(--gold);white-space:nowrap}
.review-card p{margin-top:8px;font-size:15px;line-height:1.45;font-style:italic;color:var(--ink-2);overflow-wrap:anywhere}
.review-meta{margin-top:9px;font-family:"Space Mono",monospace;font-size:10px;color:var(--dim);letter-spacing:.04em}
.work-empty{padding-top:28px}
@media(max-width:420px){.work-head.social-work-head{display:grid;grid-template-columns:86px 1fr;gap:12px}.work-head .cover{width:86px;flex-basis:86px}.work-actions{flex-direction:column}.work-actions button{width:100%;text-align:center}.community-summary{grid-template-columns:1fr 1fr}.community-summary div:first-child{grid-column:1/-1}.review-card{padding:12px}.app{overflow-x:hidden}}

/* ---------- desktop responsive layout ---------- */
@media (min-width:900px){
  html,body{max-width:none;overflow-x:hidden}
  body{display:block;min-height:100vh;background:var(--paper)}
  body::before{z-index:0}
  .app{
    width:calc(100% - 260px);
    max-width:1240px;
    min-height:100vh;
    height:auto;
    margin:0 48px 0 236px;
    padding:48px clamp(34px,4vw,64px) 72px;
    overflow:visible;
    background:transparent;
    box-shadow:none;
    border-radius:0;
  }

  /* desktop sidebar navigation */
  .tabs{
    position:fixed;
    inset:0 auto 0 0;
    width:208px;
    transform:none;
    z-index:20;
    border-top:0;
    border-right:1px solid var(--rule);
    background:var(--nav-bg);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    display:flex;
    align-items:stretch;
  }
  .tabs::before{
    content:"Lombada.";
    position:absolute;
    top:48px;
    left:28px;
    font-family:"Fraunces",serif;
    font-size:31px;
    line-height:1;
    font-weight:650;
    letter-spacing:-.055em;
    color:var(--ink);
  }
  .tabs::after{
    content:"diário de leituras";
    position:absolute;
    top:88px;
    left:31px;
    font-family:"Space Mono",monospace;
    font-size:9px;
    letter-spacing:.18em;
    text-transform:uppercase;
    color:var(--muted);
  }
  .tabs-inner{
    width:100%;
    max-width:none;
    margin:0;
    padding:150px 18px 28px;
    display:flex;
    flex-direction:column;
    gap:8px;
  }
  .tab{
    width:100%;
    min-height:48px;
    flex-direction:row;
    justify-content:flex-start;
    gap:12px;
    padding:12px 14px;
    border:1px solid transparent;
    border-radius:999px;
    font-size:11px;
    letter-spacing:.12em;
    color:var(--muted);
  }
  .tab svg{width:21px;height:21px;flex:0 0 auto}
  .tab:hover{border-color:var(--rule);background:color-mix(in srgb,var(--paper-2),transparent 35%)}
  .tab.active{background:var(--ink);border-color:var(--ink);color:var(--paper);font-weight:700}
  body.theme-dark .tab.active{background:var(--paper-2);border-color:var(--rule);color:var(--ink)}
  .tab.active::before,.tab.active::after{display:none}

  /* desktop header */
  .topbar{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:32px;
    padding:0 0 28px;
    margin-bottom:34px;
  }
  .brand{max-width:none;flex:1 1 auto}
  .wordmark{font-size:clamp(52px,6vw,86px);line-height:.9;white-space:nowrap}
  .wordmark::before{height:.62em;width:5px;margin-right:14px}
  .top-actions{display:flex;max-width:44%;justify-content:flex-end}
  .crumb{display:block;max-width:none;font-size:10px;letter-spacing:.32em;white-space:normal;text-align:right;line-height:1.45}
  .crumb b{font-size:12px;margin-top:5px;overflow-wrap:anywhere}
  .screen-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:20px;margin-bottom:28px}
  .screen-head .btn-share{float:none;flex:0 0 auto}
  .h-section{font-size:clamp(36px,4vw,56px)}

  /* buscar */
  .search{max-width:900px;margin:4px 0 32px}
  .search input{font-size:20px;padding:20px 16px}
  .search button{display:block;min-width:124px}
  .section-head{margin-top:38px}
  .wall,.wall-mini{grid-template-columns:repeat(5,minmax(0,1fr));gap:30px 22px}
  .cover{max-height:340px}
  .rail{overflow-x:visible;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:22px;padding-bottom:0}
  .rail .book{flex:auto}

  /* obra / edições — .work-page é o grid real (o antigo alvo #edicoes ficou
     órfão depois que o markup passou a envolver tudo em <main class="work-page">,
     o que espremia a página inteira na 1ª coluna e deixava metade da tela vazia). */
  .work-page{grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:34px 42px;align-items:start}
  .work-page .work-hero{grid-row:1/-1;position:sticky;top:32px;display:block;border-bottom:0;margin:0;padding:0}
  .work-page .work-hero .cover{width:min(100%,260px);max-height:none;margin-bottom:18px}
  .work-page .work-hero .wmeta h2{font-size:clamp(32px,3vw,46px)}
  .work-page .work-hero ~ *{grid-column:2}
  .work-page .community-summary{margin-top:0}
  .work-editions .edition,.edition{grid-template-columns:82px 1fr;gap:18px;padding:18px 10px}
  .edition-cover .cover{width:82px}
  .reviews-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
  .reviews-list.featured{grid-template-columns:1fr}

  /* estante */
  .shelf-tools{align-items:center;gap:18px;margin:22px 0 30px}
  .shelf-filters{flex-wrap:wrap;overflow:visible;gap:10px}
  .shelf-view{display:flex}
  #prateleira .wall{grid-template-columns:repeat(6,minmax(0,1fr));gap:32px 22px}
  .shelf-list{max-width:940px}
  .shelf-row{gap:18px;padding:18px 0}
  .shelf-cover{width:64px;flex-basis:64px}
  .shelf-row-title{font-size:22px}
  .shelf-row-author{font-size:16px}

  /* diário */
  #secDiario{max-width:840px}
  .diary li{gap:20px;padding:24px 0}
  .diary .dcover{display:block;width:68px;flex-basis:68px}
  .diary .dt{font-size:26px}
  .diary .drelato{font-size:19px;line-height:1.6}

  /* perfil */
  .profile{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);gap:32px;align-items:start}
  .profile .pcard{position:sticky;top:32px;border:1px solid var(--rule);background:var(--paper-2);padding:28px;text-align:center}
  .profile-metrics{margin-top:0;grid-template-columns:repeat(3,minmax(0,1fr))}
  .account-box,.theme-box,.library-box{margin-top:0}
  .profile > :not(.pcard){min-width:0}

  /* modal */
  .modal{align-items:center;padding:34px;overflow-y:auto}
  .modal-card{max-width:900px;padding:24px;gap:18px}
  .book-detail{gap:20px}
  .detail-head{grid-template-columns:180px minmax(0,1fr);gap:28px;padding-right:48px}
  .detail-cover .cover{width:180px}
  .detail-titleblock h2{font-size:42px}
  .edition-data{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 18px}
  .modal-actions{display:grid;grid-template-columns:2fr 1fr 1fr;align-items:stretch}
  .modal-actions .btn-share-card,.modal-actions .btn-secondary,.modal-actions .btn-danger{height:100%}
}

@media (min-width:1180px){
  .app{margin-left:260px;width:calc(100% - 320px)}
  .tabs{width:228px}
  .wall,.wall-mini{grid-template-columns:repeat(6,minmax(0,1fr))}
  .rail{grid-template-columns:repeat(6,minmax(0,1fr))}
  #prateleira .wall{grid-template-columns:repeat(7,minmax(0,1fr))}
}



/* Touch devices keep the mobile/tablet layout even when the browser exposes a wide desktop-site viewport. */
@media (max-width:899px) and (hover:none), (max-width:899px) and (pointer:coarse){
  html,body{max-width:100%;overflow-x:hidden}
  .app{width:min(100%,560px);max-width:560px;margin:0 auto;padding:16px 16px 92px;overflow-x:hidden}
  .tabs{position:fixed;left:0;right:0;top:auto;bottom:0;width:auto;inset:auto 0 0 0;transform:none;z-index:10;border-top:1px solid var(--rule);border-right:0;background:var(--nav-bg);backdrop-filter:none;-webkit-backdrop-filter:none;display:block}
  .tabs::before,.tabs::after{display:none}
  .tabs-inner{max-width:560px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);padding:9px 0 calc(9px + env(safe-area-inset-bottom))}
  .tab{width:auto;min-height:0;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;padding:4px 0;border:0;border-radius:0;font-size:9px;color:var(--dim)}
  .tab svg{width:20px;height:20px}
  .tab.active{background:transparent;border-color:transparent;color:var(--ink);font-weight:400}
  body.theme-dark .tab.active{background:transparent;border-color:transparent;color:var(--ink)}
  #edicoes:not([style*="display:none"]){display:block!important;width:100%;max-width:100%;overflow-x:hidden}
  .work-page{grid-template-columns:none}
  .work-page .work-hero{grid-row:auto;position:static;display:flex;border-bottom:1px solid var(--rule);margin-bottom:8px;padding:4px 0 16px}
  .work-page .work-hero .cover{width:92px;max-width:100%;max-height:340px;margin-bottom:0;flex:0 0 92px}
  .work-page .work-hero ~ *{grid-column:auto}
  .work-editions{width:100%;max-width:100%}
  .work-editions .edition,.edition{grid-template-columns:64px minmax(0,1fr);gap:12px;width:100%;max-width:100%;padding:16px 2px;overflow-wrap:anywhere}
  .edition-cover .cover{width:64px;max-width:100%}
  .edition-body{min-width:0;max-width:100%}
  .edition-stats span{white-space:normal}
}
/* Compact language switcher in the header */
.lang-switch{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.lang-switch button{position:relative;padding:10px 6px;border:0;background:transparent;color:var(--muted);font-family:"Space Mono",monospace;font-size:9px;line-height:1;letter-spacing:.12em;text-transform:uppercase}
.lang-switch button + button::before{content:"·";position:absolute;left:-3px;color:var(--rule)}
.lang-switch button.active{color:var(--wine);font-weight:700;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.lang-switch button:focus-visible{outline:2px solid var(--wine);outline-offset:2px;border-radius:3px}
.brand .lang-switch{margin-left:2px;align-self:center;flex:0 0 auto}
@media(max-width:420px){.brand{gap:8px}.brand .lang-switch{margin-left:auto}.lang-switch button{font-size:8px;letter-spacing:.08em;padding:3px}.wordmark{flex:0 1 auto}}
@media(min-width:900px){.brand{align-items:flex-end}.brand .lang-switch{align-self:flex-end;margin:0 0 7px 6px}.lang-switch button{font-size:10px;padding:4px 5px}}
.visibility-box{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:14px 0;margin:8px 0 16px}
.check-line{display:flex;gap:10px;align-items:flex-start;margin:10px 0;font-size:14px;color:var(--ink-2)}
.check-line input{margin-top:2px;accent-color:var(--gold)}
.review-card.has-spoiler .spoiler-box{border:1px solid var(--rule);background:var(--paper-2);padding:12px;margin-top:10px}
.spoiler-box strong{display:block;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink)}
.spoiler-box button{margin-top:8px;background:var(--ink);color:var(--paper);font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:9px 11px}
.spoiler-box p{display:none;margin-top:12px}
.review-card.spoiler-open .spoiler-box p{display:block}
.review-card.spoiler-open .spoiler-box button{display:none}
.profile-showcase{margin-top:18px;border:1px solid var(--rule);background:var(--paper-2);padding:16px;text-align:left}
.profile-showcase .label{margin-bottom:12px}.profile-mini-wall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}.profile-mini-book .t{font-size:13px}.profile-mini-book .a{font-size:10px}.profile-empty{margin-top:0}.profile-review{border-top:1px solid var(--rule);padding:12px 0}.profile-review:first-child{border-top:0;padding-top:0}.profile-review strong{display:block;font-family:"Fraunces",serif;font-size:17px}.profile-review span{display:block;color:var(--muted);font-family:"Space Mono",monospace;font-size:10px;margin-top:3px}.profile-review p{font-size:14px;color:var(--ink-2);font-style:italic;margin-top:6px;line-height:1.35}.public-preview-box .pbtn{display:block;text-align:center}
@media(min-width:920px){.profile-mini-wall{grid-template-columns:repeat(4,minmax(0,1fr))}}

.feed-list{display:grid;gap:2px}
.feed-card{display:grid;grid-template-columns:44px 1fr;gap:11px;padding:10px 0;border-bottom:1px solid var(--rule)}
.feed-cover .cover{width:44px;min-height:64px;box-shadow:var(--shadow-sm)}.feed-cover .cover img{object-fit:contain}
.feed-copy{min-width:0}.feed-user{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);cursor:pointer}.feed-action{color:var(--muted);font-style:italic;margin-left:4px}
.feed-title-row{display:flex;align-items:baseline;gap:8px;margin-top:2px;flex-wrap:wrap}
.feed-title{font-family:"Fraunces",serif;font-size:16px;line-height:1.15}
.feed-meta{color:var(--muted);font-size:11px;line-height:1.3;margin-top:1px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.feed-stars{color:var(--gold);font-size:11px;letter-spacing:.02em;white-space:nowrap}
.feed-quote{font-family:"Fraunces",serif;font-style:italic;color:var(--ink-2);font-size:13px;line-height:1.3;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.feed-spoiler{margin-top:4px;border:1px solid var(--rule);padding:6px 9px;color:var(--muted);font-family:"Space Mono",monospace;font-size:9px;text-transform:uppercase;letter-spacing:.10em}
.feed-spoiler.revealed{font-family:"Fraunces",serif;font-size:13px;text-transform:none;letter-spacing:0;color:var(--ink-2);font-style:italic;padding:0;border:0}
.feed-card .review-actions{margin-top:4px}
@media(max-width:420px){.tab{font-size:8px}.tab svg{width:17px;height:17px}.feed-card{grid-template-columns:40px 1fr}.feed-cover .cover{width:40px;min-height:58px}.feed-title{font-size:15px}}
.review-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem;margin-top:10px;font-family:"Space Mono",monospace;font-size:10px;color:var(--dim);letter-spacing:.06em;text-transform:uppercase}
.review-actions button{border:1px solid var(--rule);background:color-mix(in srgb,var(--paper-2),transparent 45%);color:inherit;padding:4px 7px;cursor:pointer;font:inherit;text-transform:inherit;letter-spacing:inherit}
.review-actions button:hover,.review-actions button.active{color:var(--gold)}

.shelf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px 16px;flex-wrap:wrap}
.shelf-head>div{min-width:0;flex:1 1 220px}
.shelf-head .btn-share{float:none;flex:0 0 auto;margin-top:4px}
.shelf-summary{clear:both;width:100%}
.shelf-segment{display:inline-flex;gap:4px;margin-top:12px;padding:3px;border:1px solid var(--rule);border-radius:999px;background:var(--paper-2)}
.shelf-segment-btn{border:0;background:transparent;color:var(--muted);border-radius:999px;padding:7px 13px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.shelf-segment-btn.active{background:var(--ink);color:var(--paper)}
body.theme-dark .shelf-segment-btn.active{background:var(--paper-2);color:var(--ink)}
@media(min-width:900px){.shelf-segment-btn{font-family:"Spectral",serif;font-size:16px;letter-spacing:0;text-transform:none;padding:10px 18px}}
@media(max-width:420px){.shelf-head{gap:10px}.shelf-head .btn-share{margin-top:0}.shelf-segment{margin-top:10px}.shelf-segment-btn{font-size:9px;padding:7px 11px}.tabs-inner{grid-template-columns:repeat(4,1fr)}}
.edition-social-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:9px}
.edition-social-btn{border:1px solid var(--rule);padding:7px 10px;border-radius:999px;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);background:transparent}
.edition-social-btn.active{border-color:var(--wine);background:rgba(139,14,32,.10);color:var(--wine)}
.edition-relation-note,.shelf-edition-flags{margin-top:6px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.06em;color:var(--wine)}
.work-edition-highlights{border:1px solid var(--rule);background:var(--paper-2);padding:14px 16px;margin:12px 0 14px}
.work-edition-highlights p{margin:5px 0;color:var(--ink-2);font-size:14px}
@media(min-width:920px){#edicoes .work-edition-highlights{grid-column:2}}
.feed-tabs{display:flex;gap:8px;margin:0 0 14px;border-bottom:1px solid var(--rule);padding-bottom:10px}
.feed-tabs button,.follow-inline{border:1px solid var(--rule);background:transparent;color:var(--ink);font-family:"Space Mono",monospace;text-transform:uppercase;letter-spacing:.14em;font-size:10px;padding:8px 10px;cursor:pointer}
.feed-tabs button.active,.follow-inline.active{background:var(--ink);color:var(--paper)}
.feed-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.feed-user,.review-user{appearance:none;border:0;background:transparent;padding:0;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);cursor:pointer;text-align:left}
.review-user{font-weight:700}
.follow-inline{white-space:nowrap;padding:6px 8px;font-size:9px}
.review-follow{margin:8px 0 0}
.discover-readers{border:1px solid var(--rule);background:var(--paper-2);padding:12px;margin-bottom:16px}
.discover-readers article{display:flex;justify-content:space-between;gap:12px;align-items:center;border-top:1px solid var(--rule);padding:10px 0}
.discover-readers article:first-of-type{border-top:0}
.discover-readers .demo-badge{font-family:"Space Mono",monospace;font-size:8px;letter-spacing:.1em;text-transform:uppercase;color:var(--dim);border:1px solid var(--rule);padding:2px 5px;margin-left:6px;vertical-align:middle;white-space:nowrap}
.discover-readers small{display:block;color:var(--muted);font-size:11px;margin-top:3px}

.correction-hint{margin:12px 0 6px}
.link-btn{display:inline-flex;align-items:center;justify-content:center;border:1px solid var(--rule);background:transparent;color:var(--ink);padding:10px 12px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase}
.profile-actions{display:grid;gap:8px;margin-top:14px}
.profile-actions .pbtn{margin-top:0}
.profile-bio{margin:10px auto 0;max-width:32rem;color:var(--muted);line-height:1.35}
.profile-edit-form{display:grid;gap:1rem;text-align:left}
.profile-edit-field{display:grid;gap:.35rem}
.profile-edit-field label{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.profile-edit-field input,.profile-edit-field textarea{width:100%;min-height:46px;border:1px solid var(--rule);background:var(--paper);color:var(--ink);border-radius:0;padding:12px;font:inherit;font-size:16px}
.profile-edit-field textarea{min-height:94px;resize:vertical}
.profile-handle-input{display:grid;grid-template-columns:auto 1fr;align-items:center;border:1px solid var(--rule);background:var(--paper)}
.profile-handle-input span{padding-left:12px;color:var(--muted);font-family:"Space Mono",monospace}
.profile-handle-input input{border:0;background:transparent;padding-left:4px}
.profile-handle-preview{font-size:.9rem;color:var(--muted);word-break:break-all}
@media(min-width:560px){.profile-actions{grid-template-columns:1fr 1fr}.profile-actions .pbtn.solid{grid-column:1/-1}}
.diary-head{margin:14px 0 18px}.diary-entry-card{border-top:1px solid var(--rule);padding:16px 0;min-width:0}.diary-entry-card:first-child{border-top:0}.diary-progress{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--wine);margin-top:5px}.diary-actions{display:flex;flex-wrap:wrap;align-items:center;gap:.45rem .75rem;margin-top:10px}.diary-actions button,.linklike{border:0;background:transparent;color:var(--muted);font-family:"Space Mono",monospace;font-size:10px;text-transform:uppercase;letter-spacing:.12em;padding:0;cursor:pointer}.diary-actions button{border:1px solid var(--rule);background:color-mix(in srgb,var(--paper-2),transparent 50%);padding:4px 7px}.linklike.dt{color:var(--ink);font-family:"Fraunces",serif;text-transform:none;letter-spacing:-.01em;font-size:20px;text-align:left}.diary-form{border:1px solid var(--rule);background:var(--paper-2);padding:14px;margin:12px 0}.diary-form textarea{min-height:96px}.form-error{margin:12px 0;padding:10px 12px;border:1px solid var(--danger);background:color-mix(in srgb,var(--danger),transparent 88%);color:var(--danger);font-family:"Space Mono",monospace;font-size:11px;line-height:1.35;letter-spacing:.08em;text-transform:uppercase}.needs-confirm{color:var(--danger)!important}.detail-diary{margin-top:12px}.detail-diary .diary-entry-card{padding:12px 0}@media(max-width:420px){.diary-form .row{display:block}.diary-entry-card{overflow-wrap:anywhere}.linklike.dt{font-size:18px}}

/* UX clarity refinement */
.field input[type=text],.field input[type=number],.field textarea,.field select,.search input,option{background:var(--paper);color:var(--ink);caret-color:var(--wine)}
.field input::placeholder,.field textarea::placeholder,.search input::placeholder{color:var(--dim);opacity:1}
.field input:disabled,.field textarea:disabled,.field select:disabled{background:var(--paper-3);color:var(--dim);opacity:1}
body.theme-dark .field input[type=text],body.theme-dark .field input[type=number],body.theme-dark .field textarea,body.theme-dark .field select,body.theme-dark option{background:color-mix(in srgb,var(--paper-2),black 22%);color:var(--ink);border:1px solid var(--rule)}
body.theme-dark .field input::placeholder,body.theme-dark .field textarea::placeholder{color:rgba(243,235,221,.48)}
input:-webkit-autofill,textarea:-webkit-autofill,select:-webkit-autofill{-webkit-text-fill-color:var(--ink);box-shadow:0 0 0 1000px var(--paper) inset}
body.theme-dark input:-webkit-autofill,body.theme-dark textarea:-webkit-autofill,body.theme-dark select:-webkit-autofill{-webkit-text-fill-color:var(--ink);box-shadow:0 0 0 1000px color-mix(in srgb,var(--paper-2),black 22%) inset}
.work-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.work-actions button{border:1px solid var(--rule);padding:10px 12px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.13em;text-transform:uppercase}.work-actions .primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}.work-actions .secondary{background:transparent;color:var(--ink)}.link-tertiary{display:inline-block;margin-top:10px;color:var(--muted);font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;text-decoration:underline;text-underline-offset:3px}.about-work{border:1px solid var(--rule);background:var(--paper-2);padding:14px 16px;margin:12px 0}.about-work p{margin-top:7px;color:var(--ink-2);line-height:1.45}.edition-meta-pills{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.edition-meta-pills span{border:1px solid var(--rule);padding:3px 6px;color:var(--muted);background:color-mix(in srgb,var(--paper-2),transparent 20%)}.edition-stats{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px;color:var(--muted);font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.04em}.edition-stats span{white-space:nowrap}.simple-reading-form{display:grid;gap:12px}.simple-reading-form .form-block{border-top:1px solid var(--rule);padding-top:14px}.simple-reading-form .form-block:first-child{border-top:0;padding-top:0}.simple-reading-form .field{margin-bottom:12px}.link-btn.subtle{border:0;padding:6px 0;color:var(--muted);text-decoration:underline;text-underline-offset:3px}.light-options{background:transparent}.feed-intro{border:1px solid var(--rule);background:var(--paper-2);padding:12px 14px;margin:0 0 16px}.feed-intro p{color:var(--muted-readable,var(--muted));font-style:italic}.empty-rich h3{font-family:"Fraunces",serif;font-size:24px;margin-bottom:4px}
@media(max-width:420px){.work-head{align-items:flex-start}.work-actions button{flex:1 1 100%;min-width:0}.edition{grid-template-columns:54px 1fr;gap:10px}.edition-cover .cover{width:54px}.edition-action{width:100%;justify-content:center}.row{display:block}.card-form{padding:14px}.feed-tabs button{flex:1;min-width:0}.profile-actions{grid-template-columns:1fr}}
/* Dark mode form legibility, including diary inputs on mobile/Chrome. */
body.theme-dark input,
body.theme-dark textarea,
body.theme-dark select,
body.theme-dark option{
  background-color:var(--paper-2);
  color:var(--ink);
  border-color:var(--rule);
  color-scheme:dark;
}
body.theme-dark .field input,
body.theme-dark .field textarea,
body.theme-dark .field select{
  background:color-mix(in srgb,var(--paper-2),black 22%);
  color:var(--ink);
  border:1px solid var(--rule);
}
body.theme-dark input::placeholder,
body.theme-dark textarea::placeholder{color:color-mix(in srgb,var(--ink),transparent 42%);opacity:1}
body.theme-dark input:focus,
body.theme-dark textarea:focus,
body.theme-dark select:focus,
body.theme-dark .field input:focus,
body.theme-dark .field textarea:focus,
body.theme-dark .field select:focus{border-color:var(--accent);outline:1px solid color-mix(in srgb,var(--accent),transparent 35%)}
body.theme-dark input:disabled,
body.theme-dark textarea:disabled,
body.theme-dark select:disabled{background:var(--paper-3);color:var(--muted);opacity:1;-webkit-text-fill-color:var(--muted)}
body.theme-dark input:-webkit-autofill,
body.theme-dark textarea:-webkit-autofill,
body.theme-dark select:-webkit-autofill{
  -webkit-box-shadow:0 0 0 1000px color-mix(in srgb,var(--paper-2),black 22%) inset;
  -webkit-text-fill-color:var(--ink);
  caret-color:var(--ink);
  border-color:var(--rule);
  transition:background-color 9999s ease-out 0s;
}
.diary-progress-field[hidden]{display:none!important}
.diary-chapter-order-field[hidden]{display:none!important}
.diary-chapter-page-field[hidden]{display:none!important}
.diary-chapter-paste[hidden]{display:none!important}
.diary-chapter-paste{margin:0 0 14px}
.diary-paste-summary-box[hidden]{display:none}
.diary-paste-summary-box{margin-top:8px;display:flex;flex-direction:column;gap:8px}
.diary-paste-summary-box textarea{width:100%;min-height:120px;resize:vertical}

/* diário — campo único de progresso */
.diary-progress-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:stretch}
.diary-progress-value{min-width:0}
.progress-units{display:inline-flex;align-items:stretch;flex:0 0 auto;border:1px solid var(--rule);border-radius:14px;background:var(--paper);overflow:hidden;min-height:44px}
.progress-unit{min-width:48px;padding:0 10px;border:0;border-left:1px solid var(--rule);background:transparent;color:var(--muted);font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;touch-action:manipulation}
.progress-unit:first-child{border-left:0}
.progress-unit.active{background:var(--ink);color:var(--paper)}
.progress-unit:focus-visible{outline:2px solid color-mix(in srgb,var(--wine),transparent 25%);outline-offset:-2px}
.diary-form .field{margin-bottom:14px}
.diary-form input,.diary-form textarea{width:100%;box-sizing:border-box;color:var(--ink);background:var(--paper);border:1px solid var(--rule)}
.diary-form input:focus,.diary-form textarea:focus{outline:2px solid color-mix(in srgb,var(--wine),transparent 35%);background:var(--paper);color:var(--ink)}
.diary-form input::placeholder,.diary-form textarea::placeholder{color:color-mix(in srgb,var(--muted),transparent 18%)}
.suffix-field{display:flex;align-items:center;gap:10px;border:1px solid var(--rule);background:var(--paper);padding-right:14px}
.suffix-field input{border:0!important;background:transparent!important}
.suffix-field span{font-family:"Space Mono",monospace;color:var(--muted)}
.diary-form{padding-bottom:calc(18px + env(safe-area-inset-bottom))}
@media(max-width:420px){.diary-form{padding:16px 14px 92px}.diary-form .btn-primary{width:100%;min-height:48px}.diary-progress-row{grid-template-columns:1fr}.progress-units{width:100%}.progress-unit{flex:1 1 0;min-height:44px}}
.card-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px 10px;align-items:center}
.card-options>.label,.card-options>.check-line,.card-options>p{grid-column:1/-1}
.card-options label{display:flex;align-items:center;gap:7px;color:var(--ink-2);font-size:13px;line-height:1.25;cursor:pointer}
.card-options input{accent-color:var(--gold);flex:0 0 auto}
.visibility-box .check-line,.light-options .check-line{align-items:center;gap:10px;line-height:1.25;cursor:pointer;width:fit-content;max-width:100%}
.visibility-box .check-line input,.light-options .check-line input{margin:0;flex:0 0 auto;width:18px;height:18px}
.visibility-box .check-line span,.light-options .check-line span{display:inline-block;max-width:min(100%,28ch)}
@media(max-width:420px){.card-options{grid-template-columns:1fr}.card-options label{font-size:14px}.visibility-box .check-line{margin:14px 0}.visibility-box .check-line span{max-width:24ch}}

/* Dark mode contrast pass: keep editorial palette while making secondary UI readable. */
body.theme-dark{
  --ink:#F7F0E5;
  --ink-2:#E0D2BA;
  --dim:#B7AA99;
  --muted:#B7AA99;
  --muted-readable:#CABEAA;
  --muted-soft:#A79A8A;
  --wine:#B64250;
  --wine-2:#8B2E1F;
  --accent:#D45C68;
  --rule:rgba(247,240,229,.20);
  --nav-bg:#0D0B09;
  --paper-2:#1D1915;
  --paper-3:#332820;
  --gold:var(--wine);
  --gold-2:var(--accent);
}

body.theme-dark .tabs{
  background:var(--nav-bg);
  border-color:rgba(247,240,229,.22);
}
body.theme-dark .tab{
  color:var(--muted-readable);
}
body.theme-dark .tab svg{
  stroke:currentColor;
}
body.theme-dark .tab.active{
  color:var(--ink);
  background:color-mix(in srgb,var(--paper-2),var(--ink) 5%);
  border-color:rgba(247,240,229,.22);
}
body.theme-dark .tab.active::before{
  background:var(--accent);
}
body.theme-dark .tabs::after,
body.theme-dark .crumb,
body.theme-dark .theme-toggle,
body.theme-dark .section-head .more,
body.theme-dark .screen-subtitle,
body.theme-dark .shelf-summary,
body.theme-dark .search-hint,
body.theme-dark .manual-cta,
body.theme-dark .empty,
body.theme-dark .empty-rich p,
body.theme-dark .account-box .muted,
body.theme-dark .account-line.muted,
body.theme-dark .account-logout,
body.theme-dark .profile .pcount,
body.theme-dark .profile .plink,
body.theme-dark .reading-copy p,
body.theme-dark .reading-meta,
body.theme-dark .book .a,
body.theme-dark .book .yr,
body.theme-dark .diary .dwhen,
body.theme-dark .diary .dmeta,
body.theme-dark .diary .drelato,
body.theme-dark .diary-actions button,
body.theme-dark .review-meta,
body.theme-dark .review-actions,
body.theme-dark .feed-action,
body.theme-dark .feed-meta,
body.theme-dark .feed-intro p,
body.theme-dark .discover-readers small,
body.theme-dark .shelf-row-meta,
body.theme-dark .shelf-row-date,
body.theme-dark .detail-muted,
body.theme-dark .detail-empty,
body.theme-dark .card-cover-control p,
body.theme-dark .edition-data dt,
body.theme-dark .edition .tr .none{
  color:var(--muted-readable);
}
body.theme-dark .meta,
body.theme-dark .work-head .wmeta .a,
body.theme-dark .community-score span,
body.theme-dark .review-top,
body.theme-dark .review-card p,
body.theme-dark .profile-review p,
body.theme-dark .feed-quote,
body.theme-dark .detail-author,
body.theme-dark .detail-rating-number,
body.theme-dark .detail-quote blockquote,
body.theme-dark .edition-data dd,
body.theme-dark .account-box p,
body.theme-dark .login-hint p,
body.theme-dark .about-work p,
body.theme-dark .work-edition-highlights p,
body.theme-dark .shelf-row-author,
body.theme-dark .diary .dtop,
body.theme-dark .diary .dt,
body.theme-dark .linklike.dt{
  color:var(--ink-2);
}
body.theme-dark .label,
body.theme-dark .form-block>.label,
body.theme-dark .community-label,
body.theme-dark .edition-group,
body.theme-dark .diary-progress,
body.theme-dark .book .e,
body.theme-dark .shelf-row-status,
body.theme-dark .shelf-edition-flags,
body.theme-dark .edition-relation-note,
body.theme-dark .feed-user,
body.theme-dark .review-user,
body.theme-dark .diary .dmeta span,
body.theme-dark .community-score strong,
body.theme-dark .review-top span,
body.theme-dark .lang-switch button.active{
  color:var(--accent);
}
body.theme-dark .shelf-pill,
body.theme-dark .shelf-view-btn,
body.theme-dark .shelf-segment-btn,
body.theme-dark .progress-chip,
body.theme-dark .theme-option span,
body.theme-dark .modal-actions .btn-secondary,
body.theme-dark .empty-rich .btn-secondary,
body.theme-dark .login-hint-secondary,
body.theme-dark .btn-cover-card,
body.theme-dark .edition-social-btn,
body.theme-dark .feed-spoiler,
body.theme-dark .follow-inline,
body.theme-dark .link-tertiary,
body.theme-dark .link-btn.subtle,
body.theme-dark .suffix-field span{
  color:var(--muted-readable);
  border-color:rgba(247,240,229,.22);
}
body.theme-dark .shelf-pill.active,
body.theme-dark .shelf-view-btn.active,
body.theme-dark .shelf-segment-btn.active,
body.theme-dark .progress-chip.active,
body.theme-dark .theme-option input:checked + span,
body.theme-dark .feed-tabs button.active,
body.theme-dark .follow-inline.active{
  background:var(--ink);
  border-color:var(--ink);
  color:var(--paper);
}
body.theme-dark .field input::placeholder,
body.theme-dark .field textarea::placeholder,
body.theme-dark .search input::placeholder,
body.theme-dark input::placeholder,
body.theme-dark textarea::placeholder{
  color:var(--muted-soft);
  opacity:1;
}
body.theme-dark .stars .st:not(.on){
  color:var(--muted-readable);
  opacity:.55;
}
body.theme-dark .diary .dcover,
body.theme-dark .empty-rich .ei{
  opacity:.72;
}
body.theme-dark .edition-meta-pills span{
  color:var(--muted-readable);
  border-color:rgba(247,240,229,.22);
}

/* PR 0 mobile stability: effective layer only; leave broader :root/theme consolidation to a later PR. */
.app{padding-bottom:calc(132px + env(safe-area-inset-bottom))}
.tabs{background:var(--paper);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 -10px 24px rgba(26,23,20,.10)}
body.theme-dark .tabs{background:var(--nav-bg);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 -12px 28px rgba(0,0,0,.45)}
.search{display:grid;grid-template-columns:auto minmax(0,1fr) auto;overflow:hidden}
.search button{min-width:72px;touch-action:manipulation;display:flex;align-items:center;justify-content:center}
button:disabled,.is-busy{cursor:wait;opacity:.72}
.btn-primary.is-busy,.work-actions .is-busy,.edition-action.is-busy,.link-manual.is-busy{position:relative}
.field input:focus,.field textarea:focus,.field select:focus,.search input:focus{border-color:var(--gold);outline:2px solid color-mix(in srgb,var(--gold),transparent 55%);outline-offset:1px}
.diary-form input:focus,.diary-form textarea:focus{outline:2px solid color-mix(in srgb,var(--gold),transparent 55%);border-color:var(--gold)}
body.theme-dark input:focus,
body.theme-dark textarea:focus,
body.theme-dark select:focus,
body.theme-dark .field input:focus,
body.theme-dark .field textarea:focus,
body.theme-dark .field select:focus{border-color:var(--gold);outline:2px solid color-mix(in srgb,var(--gold),transparent 48%)}
body.theme-dark .diary-form input:focus,body.theme-dark .diary-form textarea:focus{outline-color:color-mix(in srgb,var(--gold),transparent 48%)}
body.theme-dark .field input::placeholder,
body.theme-dark .field textarea::placeholder,
body.theme-dark .search input::placeholder,
body.theme-dark input::placeholder,
body.theme-dark textarea::placeholder{color:#CABEAA;opacity:1}
.profile,.feed-list,#prateleira,#diario,#resultados,#edicoes,#form,#manual{padding-bottom:calc(28px + env(safe-area-inset-bottom))}
.profile-actions,.profile .pactions{padding-bottom:calc(18px + env(safe-area-inset-bottom))}
@media(max-width:420px){
  .app{padding-bottom:calc(148px + env(safe-area-inset-bottom))}
  .search{grid-template-columns:auto minmax(0,1fr) 56px}
  .search button{min-width:56px;padding:0;font-size:0;letter-spacing:0}
  .search button::before{content:"";width:20px;height:20px;display:block;background:currentColor;mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="2" stroke-linecap="round" d="M17 17l4 4M11 19a8 8 0 1 1 0-16 8 8 0 0 1 0 16z"/></svg>') center/contain no-repeat;-webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="2" stroke-linecap="round" d="M17 17l4 4M11 19a8 8 0 1 1 0-16 8 8 0 0 1 0 16z"/></svg>') center/contain no-repeat}
}

.public-profile-card .actions,
.profile-public-actions{
  display:flex;
  flex-wrap:wrap;
  gap:.6rem;
  margin-top:14px;
}
.profile-public-actions .pbtn{
  flex:1 1 150px;
  margin-top:0;
  text-align:center;
}
.public-profile-empty{
  margin-top:10px;
}
@media(max-width:420px){
  .profile-public-actions .pbtn{
    flex-basis:100%;
  }
}

/* diário — fluxo diário mais editorial */
.reading-diary-action{align-self:flex-start;margin-top:12px;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:10px 12px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.diary-continue{margin-bottom:14px}
.diary-form-title{font-size:12px;color:var(--gold)}
.diary-form-helper{font-size:13px;line-height:1.4;color:var(--dim);font-style:italic;margin:4px 0 14px}
.diary-entry-card{border:0;border-top:1px solid var(--rule);background:transparent;padding:14px 0;margin-bottom:0;box-shadow:none;border-radius:0}
.diary-entry-card .entry-date,.diary-entry-card .dt.entry-date{font-family:"Space Mono",monospace;font-size:12px;font-style:normal;font-weight:600;letter-spacing:.14em;line-height:1.35;text-transform:uppercase;color:var(--ink-2)}
.diary-entry-card:first-child{border-top:0}
.diary-entry-card .dmeta{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.06em;color:var(--dim);margin-top:5px;line-height:1.35}
.diary-entry-card .diary-progress{font-family:"Space Mono",monospace;font-size:12px;color:var(--ink-2);margin-top:6px;letter-spacing:.04em}
.diary-entry-card .drelato{margin-top:8px;padding:8px 0 2px;font-size:15px;line-height:1.55;color:var(--ink-2);font-style:italic;display:block;overflow:visible;-webkit-line-clamp:unset}
.diary-entry-card .spoiler-note{border-left:3px solid var(--gold);padding-left:12px;color:var(--ink-2)}
.diary-entry-card .spoiler-note summary{cursor:pointer;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--dim);font-style:normal}
.diary-actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:14px;color:var(--dim);font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.diary-actions button{color:var(--ink-2);font:inherit;text-transform:inherit;letter-spacing:inherit}
@media(max-width:420px){.reading-diary-action{width:100%;text-align:center}.diary-entry-card{padding:14px 0}.diary-entry-card .drelato{font-size:14px}}
.review-card-action{
  margin-top:8px;
  border:1px solid rgba(168,132,47,.42);
  background:rgba(168,132,47,.10);
  color:var(--ink);
  padding:8px 10px;
  font-family:"Space Mono",monospace;
  font-size:9px;
  letter-spacing:.12em;
  text-transform:uppercase;
  text-align:center;
}
.review-card-action:hover{
  background:rgba(168,132,47,.18);
}
.book-review-card{
  width:100%;
  margin-top:7px;
  padding:7px 6px;
  font-size:8px;
}
.shelf-row-review-card{
  align-self:flex-start;
}
.reading-review-card-action{
  margin-bottom:8px;
}
.profile-review-card{
  width:100%;
  margin-top:10px;
}

.work-page{
  display:grid;
  gap:1rem;
}
.work-hero{
  display:grid;
  grid-template-columns:88px minmax(0,1fr);
  gap:1rem;
  align-items:start;
}
.work-section{
  padding:1rem;
  border:1px solid var(--rule);
  border-radius:18px;
  background:var(--paper-2);
}
.work-stats{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:.75rem;
}
.work-title-link{
  appearance:none;
  border:0;
  background:transparent;
  color:inherit;
  padding:0;
  text-align:left;
  cursor:pointer;
}
.work-title-link:hover{
  text-decoration:underline;
  text-underline-offset:3px;
}
.feed-title.work-title-link{
  display:block;
}
.shelf-row-title.work-title-link{
  font:inherit;
  font-weight:inherit;
}
.work-low-data p{
  color:var(--ink-2);
  line-height:1.4;
}
.work-page .work-editions{
  margin:0;
}
.work-page .community-section,
.work-page .about-work{
  margin:0;
}
/* Sinopse "Sobre a obra": recolhida em ~6 linhas; o botão "ver mais" expande. */
.about-work.clamp .about-work-text{
  display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden;
}
.about-work-actions{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin-top:.5rem;
}
.about-work-toggle{
  margin-top:0;font-family:"Space Mono",monospace;font-size:10px;
  letter-spacing:.12em;text-transform:uppercase;
}
.about-work-external{
  margin-top:0;font-family:"Space Mono",monospace;font-size:10px;
  letter-spacing:.12em;text-transform:uppercase;color:var(--wine);
  text-decoration:underline;text-underline-offset:3px;
}
.work-stats-empty p{
  margin:0;
  color:var(--ink-2);
  font-size:13px;
}

/* Context-specific cover behavior: shelf thumbnails crop like books; share/reading previews can contain. */
.shelf-list .shelf-cover,
.shelf-wall .shelf-cover{
  position:relative;
  aspect-ratio:2/3;
  overflow:hidden;
  background:transparent;
  flex:0 0 auto;
  max-width:100%;
}
.shelf-list .shelf-cover{width:92px;max-width:92px;box-shadow:var(--shadow-sm)}
.shelf-wall .shelf-cover{width:100%;box-shadow:var(--shadow-sm)}
.shelf-list .shelf-cover img,
.shelf-wall .shelf-cover img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
  background:transparent;
}
.share-card-cover-frame img,
.reading-cover .cover img{
  object-fit:contain;
}
.continue-reading-actions{
  display:grid;
  grid-column:2;
  gap:.75rem;
  margin-top:12px;
  width:100%;
  max-width:100%;
}
.continue-reading-actions button,
.continue-reading-actions .btn,
.continue-reading-actions .review-card-action,
.continue-reading-actions .reading-diary-action{
  width:100%;
  max-width:100%;
  white-space:normal;
  word-break:normal;
  overflow-wrap:normal;
  line-height:1.2;
  text-align:center;
  box-sizing:border-box;
  min-width:0;
  align-self:stretch;
  margin-top:0;
}
.continue-reading-actions .reading-review-card-action{margin-bottom:0}
@media(max-width:420px){
  .reading-now-card{align-items:start}
  .continue-reading-actions{grid-column:1/-1;gap:.6rem;margin-top:2px}
  .continue-reading-actions .reading-diary-action{padding:10px 12px;font-size:9px;letter-spacing:.08em}
}

.reading-now-card{grid-template-columns:clamp(96px,30%,130px) minmax(0,1fr);gap:14px}
.reading-copy .label{font-size:9px;letter-spacing:.10em;line-height:1.25;overflow-wrap:normal;text-wrap:balance}
.reading-copy h3{overflow-wrap:normal;word-break:normal;hyphens:none}
.reading-copy p{overflow-wrap:normal;word-break:normal}
@media(max-width:420px){.reading-now-card{grid-template-columns:clamp(96px,30%,118px) minmax(0,1fr);gap:12px}.reading-copy .label{font-size:8.5px;letter-spacing:.08em}.reading-copy h3{font-size:18px;line-height:1.1}.reading-copy p{font-size:12px;line-height:1.2}}

/* PR visual polish: app UI tokens, dark mode, controls and mobile consistency. */
:root{
  color-scheme:light;
  --bg:#F4EFE6;
  --paper:#F4EFE6;
  --surface:#FBF6EC;
  --paper-2:#EDE4D3;
  --paper-3:#D0C0A6;
  --text:#1A1714;
  --ink:#1A1714;
  --text-secondary:#62584C;
  --ink-2:#3A322A;
  --muted:#756A5F;
  --dim:#756A5F;
  --muted-readable:#5B5046;
  --line:rgba(26,23,20,.16);
  --rule:var(--line);
  --accent:#8C2B22;
  --wine:#7A241F;
  --wine-2:#551715;
  --gold:var(--accent);
  --gold-2:#A64232;
  --primary:var(--wine);
  --primary-text:#FFF8EC;
  --secondary-bg:#EFE6D6;
  --secondary-text:#2F2923;
  --active-bg:#1A1714;
  --active-text:#FFF8EC;
  --disabled-bg:#D8CCBA;
  --disabled-text:#8A7F73;
  --danger:#A13A2F;
  --focus:rgba(140,43,34,.35);
  --nav-bg:#F4EFE6;
}
body.theme-dark{
  color-scheme:dark;
  --bg:#0F0D0B;
  --paper:#0F0D0B;
  --surface:#1B1713;
  --paper-2:#1E1915;
  --paper-3:#33281F;
  --text:#F6EEE2;
  --ink:#F6EEE2;
  --text-secondary:#D8CBB8;
  --ink-2:#E2D4C0;
  --muted:#B5A995;
  --dim:#B5A995;
  --muted-readable:#D1C4B0;
  --line:rgba(246,238,226,.18);
  --rule:var(--line);
  --accent:#D06A58;
  --wine:#C65A4B;
  --wine-2:#F0A092;
  --gold:var(--accent);
  --gold-2:#F0A092;
  --primary:#C65A4B;
  --primary-text:#130F0C;
  --secondary-bg:#261F1A;
  --secondary-text:#F1E5D5;
  --active-bg:#F6EEE2;
  --active-text:#130F0C;
  --disabled-bg:#2A241F;
  --disabled-text:#82776B;
  --danger:#FF8E7B;
  --focus:rgba(208,106,88,.45);
  --nav-bg:#0F0D0B;
}
html,body{background:var(--bg);color:var(--text)}
.app{background:var(--bg);padding-bottom:calc(156px + env(safe-area-inset-bottom))}
body.theme-dark::before{opacity:.12}
a,.link-btn,.section-head .more,.link-manual{color:var(--accent)}
button,a,input,textarea,select{ -webkit-tap-highlight-color:transparent }
button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--focus);outline-offset:3px}

.btn-primary,.btn-secondary,.btn-ghost,.btn-danger,.btn-small,
.empty-rich .btn-cta,.empty-rich .btn-secondary,.profile .pbtn,.screen-head .btn-share,
.edition-action,.work-actions button,.work-my-reading,.reading-diary-action,.review-card-action,
.modal-actions .btn-share-card,.modal-actions .btn-secondary,.modal-actions .btn-danger,
.card-export-actions .btn-share-card,.card-export-actions .btn-secondary,.btn-cover-card{
  border-radius:999px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:.45rem;padding:11px 16px;line-height:1.2;white-space:normal;word-break:normal;overflow-wrap:normal;text-align:center;letter-spacing:.09em;text-transform:uppercase;font-family:"Space Mono",monospace;font-size:10px;
}
.btn-primary,.empty-rich .btn-cta,.profile .pbtn.solid,.edition-action,.work-actions button:first-child,.work-my-reading,.reading-diary-action,.modal-actions .btn-share-card,.card-export-actions .btn-share-card{background:var(--primary);border:1px solid var(--primary);color:var(--primary-text);box-shadow:none}
.btn-secondary,.empty-rich .btn-secondary,.profile .pbtn,.screen-head .btn-share,.work-actions button,.modal-actions .btn-secondary,.card-export-actions .btn-secondary,.btn-cover-card{background:var(--secondary-bg);border:1px solid var(--rule);color:var(--secondary-text);box-shadow:none}
.btn-ghost{background:transparent;border:1px solid var(--rule);color:var(--text-secondary)}
.btn-danger,.modal-actions .btn-danger{background:transparent;border:1px solid color-mix(in srgb,var(--danger),transparent 55%);color:var(--danger)}
.btn-small{min-height:38px;padding:8px 12px;font-size:9px;letter-spacing:.08em}
button:disabled,.btn-primary:disabled,.btn-secondary:disabled,.is-disabled,[aria-disabled="true"]{background:var(--disabled-bg);border-color:var(--rule);color:var(--disabled-text);cursor:not-allowed;opacity:1;box-shadow:none}

.search,.card-form,.reading-form-block,.profile .pcard,.account-box,.manual-cta.prominent,.library-box,.work-section,.community-summary div,.review-card,.reading-now-card,.profile-metrics div{background:var(--surface);border:1px solid var(--rule);border-radius:16px;box-shadow:none}
.search{border-radius:18px;background:var(--surface)}
.search button{background:var(--primary);color:var(--primary-text);border-radius:0;min-height:100%;white-space:nowrap}
.field input[type=text],.field input[type=email],.field input[type=password],.field textarea,.field select,.diary-form input,.diary-form textarea,.search input{
  background:var(--paper-2);color:var(--text);border:1px solid var(--rule);border-radius:12px;line-height:1.35;
}
.search input{border:0;background:transparent;border-radius:0}
input::placeholder,textarea::placeholder,.search input::placeholder{color:var(--muted);opacity:1}
.field label{color:var(--text-secondary);font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase}
.form-helper,.diary-helper,.screen-helper,.search-hint,.empty,.empty-rich p,.detail-muted,.detail-empty{color:var(--muted-readable)}
.meta,.book .a,.book .yr,.diary .dwhen,.diary .drelato,.review-top,.review-card p,.work-stats-empty p,.selected-edition-author,.selected-edition-meta{color:var(--text-secondary)}
.label,.diary-form-title,.community-label,.book .e,.edition .tr b,.edition-stats{color:var(--accent)}

.tabs{background:var(--nav-bg);border-top:1px solid var(--rule);box-shadow:0 -10px 26px rgba(26,23,20,.10)}
body.theme-dark .tabs{box-shadow:0 -14px 32px rgba(0,0,0,.55)}
.tab{min-height:52px;color:var(--muted)}
.tab.active{color:var(--text)}
.tab.active::before{background:var(--accent)}
.toast{background:var(--active-bg);color:var(--active-text);border:1px solid var(--rule);border-radius:14px;bottom:calc(96px + env(safe-area-inset-bottom));letter-spacing:.06em;text-transform:none}
.modal{background:rgba(10,8,7,.78);padding-bottom:calc(24px + env(safe-area-inset-bottom))}
.modal-card{background:var(--surface);border-color:var(--rule);border-radius:18px;color:var(--text);max-height:calc(100dvh - 28px);overflow:auto}
.modal-x{color:var(--text-secondary);min-width:44px;min-height:44px}
.diary-card-notice,.detail-quote{background:color-mix(in srgb,var(--accent),transparent 88%);border-color:color-mix(in srgb,var(--accent),transparent 65%);color:var(--text-secondary)}
.empty-rich{padding:34px 16px;border:1px dashed var(--rule);border-radius:18px;background:color-mix(in srgb,var(--surface),transparent 24%)}
.shelf-row,.diary li,.edition{border-bottom-color:var(--rule)}
.shelf-pill,.shelf-view-btn,.theme-option span,.chip{border-color:var(--rule);background:var(--secondary-bg);color:var(--secondary-text);min-height:40px}
.shelf-pill.active,.shelf-view-btn.active,.theme-option input:checked + span,.chip:active{background:var(--active-bg);border-color:var(--active-bg);color:var(--active-text)}
.check-line{border-radius:12px;padding:.55rem .45rem}.check-line input{accent-color:var(--primary)}

@media(max-width:420px){
  .app{padding-left:18px;padding-right:18px;padding-bottom:calc(164px + env(safe-area-inset-bottom))}
  .h-display{font-size:clamp(32px,10vw,38px)}.h-section{font-size:clamp(24px,8vw,30px)}
  .topbar{margin-bottom:16px}.wordmark{font-size:34px}
  .search{grid-template-columns:auto minmax(0,1fr) 52px}.search input{font-size:16px;min-width:0}.search button{min-width:52px}
  .wall{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.wall-mini{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 8px}
  .row,.work-actions,.profile-public-actions{gap:8px}.row{flex-direction:column}
  .community-summary,.profile-metrics,.work-stats{gap:8px}.community-summary small,.profile-metrics span{letter-spacing:.08em}
  .modal{padding:10px 10px calc(18px + env(safe-area-inset-bottom))}.modal-card{border-radius:16px;max-height:calc(100dvh - 20px)}
  .btn-primary,.btn-secondary,.btn-ghost,.btn-danger,.empty-rich .btn-cta,.empty-rich .btn-secondary,.profile .pbtn,.work-actions button,.work-my-reading{width:100%}
}

.pwa-banner{
  position:fixed;
  left:50%;
  bottom:calc(96px + env(safe-area-inset-bottom));
  z-index:85;
  width:min(440px,calc(100vw - 32px));
  transform:translate(-50%,12px);
  opacity:0;
  display:grid;
  gap:10px;
  padding:14px;
  border:1px solid var(--rule);
  border-radius:16px;
  background:var(--surface,var(--paper-2));
  color:var(--text,var(--ink));
  box-shadow:0 14px 30px rgba(26,23,20,.18);
  font-family:"Spectral",Georgia,serif;
  transition:opacity .22s ease,transform .22s ease;
}
.pwa-banner.show{opacity:1;transform:translate(-50%,0)}
.pwa-banner-actions{display:flex;gap:8px;flex-wrap:wrap}
.pwa-banner button{
  min-height:38px;
  border:1px solid var(--primary,var(--ink));
  border-radius:999px;
  padding:8px 12px;
  background:var(--primary,var(--ink));
  color:var(--primary-text,var(--paper));
  font-family:"Space Mono",monospace;
  font-size:10px;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.pwa-banner button.ghost{background:transparent;color:var(--text-secondary,var(--ink-2));border-color:var(--rule)}
.install-box p{color:var(--text-secondary,var(--ink-2));margin:.35rem 0 0}
.app-version{margin-top:18px;color:var(--muted,var(--dim));font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;text-align:center}
@media(max-width:420px){.pwa-banner{bottom:calc(108px + env(safe-area-inset-bottom))}.pwa-banner-actions button{flex:1}}

/* Hotfix: keep the search bar iconography explicit and balanced. */
.search{
  grid-template-columns:minmax(0,1fr) 64px;
  align-items:stretch;
}
.search .ic{
  display:none;
}
.search input{
  min-width:0;
  padding-left:16px;
}
.search button,
.search button[type="submit"]{
  width:64px;
  min-width:64px;
  max-width:64px;
  height:100%;
  min-height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  align-self:stretch;
  padding:0;
  border-radius:0 18px 18px 0;
  font-size:0;
  letter-spacing:0;
  line-height:1;
  overflow:hidden;
}
.search button::before,
.search button[type="submit"]::before{
  content:"";
  width:24px;
  height:24px;
  flex:0 0 auto;
  display:block;
  background:currentColor;
  mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M17 17l4 4M11 19a8 8 0 1 1 0-16 8 8 0 0 1 0 16z"/></svg>') center/contain no-repeat;
  -webkit-mask:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path fill="none" stroke="black" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" d="M17 17l4 4M11 19a8 8 0 1 1 0-16 8 8 0 0 1 0 16z"/></svg>') center/contain no-repeat;
}
@media(max-width:420px){
  .search{
    grid-template-columns:minmax(0,1fr) 56px;
  }
  .search input{
    padding-left:14px;
    padding-right:10px;
  }
  .search button,
  .search button[type="submit"]{
    width:56px;
    min-width:56px;
    max-width:56px;
  }
  .search button::before,
  .search button[type="submit"]::before{
    width:22px;
    height:22px;
  }
}
.profile-stats-box{margin-top:18px}
.profile-stats-box .pbtn{display:block;text-align:center;margin-top:14px}
.profile-quick-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:12px}
.profile-quick-stats div{border:1px solid var(--rule);border-radius:14px;background:var(--surface);padding:14px 10px;text-align:center}
.profile-quick-stats strong{display:block;font-family:"Fraunces",serif;font-size:30px;line-height:1;color:var(--ink)}
.profile-quick-stats span{display:block;margin-top:6px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.profile-stats-empty p{margin-bottom:0}
@media(min-width:560px){.profile-quick-stats{grid-template-columns:repeat(4,minmax(0,1fr))}}

/* QA mobile: compact diary book list and progress form */
.diary-group{border:1px solid var(--rule);background:var(--surface);border-radius:16px;margin:0 0 12px;box-shadow:var(--shadow-sm)}
.diary-book-row{display:grid;grid-template-columns:42px minmax(0,1fr) 22px;align-items:center;gap:12px;min-height:64px;padding:10px 12px;cursor:default;touch-action:manipulation}
.diary-book-row[onclick]{cursor:pointer}.diary-book-row[onclick]:active{transform:translate(1px,1px)}.diary-book-row[onclick]:focus-visible{outline:2px solid var(--wine);outline-offset:2px}
.diary-book-cover-wrap{width:42px}.diary-book-cover{position:relative;width:42px;aspect-ratio:2/3;background:var(--paper-soft,var(--paper-3));box-shadow:var(--shadow-sm);overflow:hidden;display:block}.diary-book-cover img{width:100%;height:100%;object-fit:cover;display:block}.diary-book-cover.cover-art{display:flex;flex-direction:column;justify-content:space-between;padding:6px 5px}.diary-book-cover .cover-art-author,.diary-book-cover .cover-art-meta{display:none}.diary-book-cover .cover-art-title{font-size:9px;line-height:1.02;-webkit-line-clamp:4}.diary-book-cover .cover-art-rule{height:3px;margin-bottom:2px}
.diary-group-copy{min-width:0;flex:1}.diary-group-title{font-family:"Fraunces",serif;font-size:18px;line-height:1.15;color:var(--ink);overflow-wrap:anywhere}.diary-group-author{margin-top:2px;font-size:13px;line-height:1.25;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diary-group-meta{margin-top:5px;font-family:"Space Mono",monospace;font-size:10px;line-height:1.45;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.diary-group-arrow{font-size:18px;color:var(--muted);text-align:right}
.diary-progress-field[hidden]{display:none!important}.diary-form,.diary-form .field,.suffix-field,.diary-progress-row,.diary-progress-value{min-width:0}.diary-form input,.diary-form textarea,.suffix-field input{width:100%;min-width:0}.diary-form .btn-primary,.diary-actions button{min-height:40px;touch-action:manipulation}.diary-actions>span{display:none}
body.theme-dark .diary-group{background:var(--surface);border-color:rgba(247,240,229,.16)}body.theme-dark .diary-group-title{color:var(--ink-2)}body.theme-dark .diary-group-author,body.theme-dark .diary-group-meta,body.theme-dark .diary-group-arrow{color:var(--muted-readable)}body.theme-dark .diary-book-cover{background:var(--paper-2);border-color:rgba(247,240,229,.18);color:var(--ink-2)}
@media(max-width:420px){.diary-book-row{grid-template-columns:38px minmax(0,1fr) 18px;gap:10px;min-height:58px;padding:9px 10px}.diary-book-cover-wrap,.diary-book-cover{width:38px}.diary-group-title{font-size:17px}.diary-group-meta{font-size:9px}.suffix-field{gap:6px;padding-right:10px}}
/* Keep the bottom navigation fully opaque above scrollable content. */
.tabs{background:var(--nav-bg);backdrop-filter:none;-webkit-backdrop-filter:none}

/* Diário: mantém opções de visibilidade compactas sem afetar checkboxes globais. */
.diary-form .visibility-box{border:1px solid var(--rule);border-radius:14px;background:color-mix(in srgb,var(--paper),transparent 36%);padding:8px 10px;margin:8px 0 14px}
.diary-form .visibility-box .check-line{align-items:center;gap:8px;min-height:38px;margin:2px 0;padding:6px 4px;line-height:1.25;width:100%;box-sizing:border-box}
.diary-form .visibility-box .check-line input{width:17px;height:17px;flex:0 0 17px;margin:0;accent-color:var(--primary)}
.diary-form .visibility-box .check-line span{max-width:none}
@media(max-width:420px){.diary-form .visibility-box{padding:7px 9px;margin:6px 0 12px}.diary-form .visibility-box .check-line{min-height:40px;margin:0;padding:5px 3px}.diary-form .visibility-box .check-line span{max-width:none}}

/* onboarding: hero de primeira visita + checklist de primeiros passos */
.onboarding-hero{border:1px solid var(--rule);border-radius:16px;background:var(--surface);padding:22px 20px;margin:18px 0 16px;text-align:center}
.onboarding-hero h2{font-family:"Fraunces",serif;font-weight:500;font-size:24px;line-height:1.18;margin-bottom:8px}
.onboarding-hero p{color:var(--muted-readable,var(--muted));font-size:14px;line-height:1.5;margin-bottom:16px}
.onboarding-hero-sub{text-align:center;font-family:"Space Mono",monospace;font-size:10px;color:var(--muted);letter-spacing:.08em;margin-top:9px}
.onboarding-example{border:1px dashed var(--rule);border-radius:16px;padding:16px;margin-bottom:22px;background:color-mix(in srgb,var(--surface),transparent 24%)}
.onboarding-example-tag{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.onboarding-example-card{display:grid;grid-template-columns:56px 1fr;gap:14px;align-items:start;opacity:.92}
.onboarding-example-cover .cover{width:56px}
.onboarding-example-cover .cover-art{padding:7px 6px}
.onboarding-example-cover .cover-art-author,.onboarding-example-cover .cover-art-meta{display:none}
.onboarding-example-cover .cover-art-title{font-size:11px;line-height:1.04}
.onboarding-example-copy h4{font-family:"Fraunces",serif;font-style:italic;font-weight:400;font-size:17px;margin-bottom:2px}
.onboarding-example-copy .a{font-size:12px;color:var(--muted);margin-bottom:8px}
.onboarding-example-track{height:6px;border-radius:999px;background:color-mix(in srgb,var(--muted),transparent 70%);overflow:hidden;margin-bottom:8px}
.onboarding-example-track span{display:block;height:100%;width:33%;background:var(--wine);border-radius:inherit}
.onboarding-example-copy p{font-size:12.5px;color:var(--muted);font-style:italic;line-height:1.4}
.onboarding-checklist-wrap{border:1px solid var(--rule);border-radius:16px;background:var(--surface);padding:18px 18px 6px;margin:18px 0 16px}
.onboarding-checklist-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}
.onboarding-progress{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:8px}
.onboarding-checklist-head .onboarding-progress{margin-bottom:0}
.onboarding-close{width:32px;height:32px;min-width:32px;border-radius:999px;border:1px solid var(--rule);background:transparent;color:var(--muted);font-size:20px;line-height:1;display:grid;place-items:center;cursor:pointer;margin:-6px -6px 0 0}
.onboarding-check-item{display:flex;gap:12px;align-items:flex-start;padding:12px 0;border-top:1px solid var(--rule)}
.onboarding-check-item:first-child{border-top:0}
.onboarding-check-mark{width:20px;height:20px;flex:0 0 20px;border-radius:50%;border:1.5px solid var(--rule);display:flex;align-items:center;justify-content:center;font-size:11px;margin-top:1px;color:var(--muted)}
.onboarding-check-item.done .onboarding-check-mark{background:var(--wine);border-color:var(--wine);color:var(--paper)}
.onboarding-check-copy{display:flex;flex-direction:column;gap:2px}
.onboarding-check-copy b{font-size:14px;font-weight:600}
.onboarding-check-item.done .onboarding-check-copy b{color:var(--muted);text-decoration:line-through;text-decoration-color:var(--rule)}
.onboarding-check-copy span{font-size:12px;color:var(--muted)}
body.theme-dark .diary-form .visibility-box{background:color-mix(in srgb,var(--paper-2),transparent 25%)}

/* progresso: hero numérico + delta, no topo do form de atualizar progresso */
.progress-hero{margin-bottom:16px}
.progress-hero-num{font-family:"Fraunces",serif;font-size:34px;font-weight:500;letter-spacing:-.02em;line-height:1;display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.progress-hero-of{font-family:"Space Mono",monospace;font-size:12px;color:var(--muted);letter-spacing:.04em}
.progress-hero-pct{font-family:"Space Mono",monospace;font-size:14px;color:var(--wine);letter-spacing:.04em}
.progress-hero-track{margin-top:10px}
.progress-hero-delta{font-family:"Space Mono",monospace;font-size:11px;color:var(--muted);letter-spacing:.04em;margin-top:8px}
.progress-hero-eta{font-family:"Space Mono",monospace;font-size:11px;color:var(--wine);letter-spacing:.04em;margin-top:4px}
.reading-eta{font-family:"Space Mono",monospace;font-size:10.5px;color:var(--muted);letter-spacing:.04em;margin-top:4px}

/* slider de página: chrome mínimo, no mesmo tom do resto do form */
.diary-progress-slider{width:100%;appearance:none;-webkit-appearance:none;height:28px;background:transparent;cursor:pointer;margin:10px 0 4px;padding:0}
.diary-progress-slider[hidden]{display:none}
.diary-progress-slider::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:var(--rule)}
.diary-progress-slider::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--wine);border:3px solid var(--paper);box-shadow:0 0 0 1px var(--rule);margin-top:-9px}
.diary-progress-slider::-moz-range-track{height:4px;border-radius:999px;background:var(--rule)}
.diary-progress-slider::-moz-range-thumb{width:16px;height:16px;border-radius:50%;background:var(--wine);border:3px solid var(--paper);box-shadow:0 0 0 1px var(--rule)}
.diary-progress-slider:focus-visible{outline:2px solid var(--wine);outline-offset:4px;border-radius:4px}

.progress-quick-chips{display:flex;gap:8px;flex-wrap:wrap;margin:4px 0 14px}
.progress-quick-chips[hidden]{display:none}
.progress-quick-chip{font-family:"Space Mono",monospace;font-size:10.5px;letter-spacing:.08em;color:var(--muted);background:transparent;border:1px solid var(--rule);border-radius:999px;padding:8px 13px;cursor:pointer;min-height:36px}
.progress-quick-chip:hover{border-color:var(--muted)}

.diary-extra-toggle{display:block;margin:2px 0 14px;padding:8px 0}
.diary-extra[hidden]{display:none}
@media(max-width:420px){.progress-hero-num{font-size:28px}.progress-quick-chip{flex:1 1 auto;text-align:center}}

/* aviso de cold start (Render free tier hibernando) */
.cold-start-notice{position:sticky;top:0;z-index:999;display:flex;align-items:center;gap:12px;padding:12px 16px;background:var(--wine);color:#F4EFE6;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.04em;line-height:1.4}
.cold-start-notice[hidden]{display:none}
.cold-start-notice strong{display:block;font-weight:700;text-transform:uppercase;letter-spacing:.1em;font-size:10px;margin-bottom:2px}
.cold-start-spin{width:16px;height:16px;flex:0 0 16px;border-radius:50%;border:2px solid rgba(244,239,230,.35);border-top-color:#F4EFE6;animation:cold-start-spin .8s linear infinite}
@keyframes cold-start-spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion: reduce){.cold-start-spin{animation:none}}
.cold-start-notice.cold-start-error{justify-content:space-between;background:#7f1d1d}
.cold-start-reload{border:1px solid rgba(244,239,230,.8);background:#F4EFE6;color:#1A1714;border-radius:999px;padding:8px 12px;font:700 10px "Space Mono",monospace;text-transform:uppercase;letter-spacing:.1em;cursor:pointer}


/* ── lado social: pessoas com rosto e nome ── */
.avatar-chip{width:36px;height:36px;flex:0 0 36px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;background:hsl(var(--av-h) 30% 38%);color:#F4EFE6;font-family:"Fraunces",serif;font-weight:600;font-size:16px;line-height:1;user-select:none}
.person-block{appearance:none;border:0;background:transparent;padding:0;display:inline-flex;align-items:center;gap:10px;cursor:pointer;text-align:left;min-width:0;color:inherit;font:inherit}
.person-copy{display:flex;flex-direction:column;gap:1px;min-width:0}
.person-copy b{font-family:"Spectral",serif;font-weight:600;font-size:14.5px;line-height:1.15;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.person-copy span{font-family:"Space Mono",monospace;font-size:9.5px;letter-spacing:.05em;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.person-block:hover .person-copy b{text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule)}

.discover-readers article{align-items:center}
.discover-main{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}
.discover-sub{font-size:12px;color:var(--muted);font-style:italic;margin-left:46px;line-height:1.35}
.discover-sub .demo-badge{margin-left:6px;font-style:normal}

/* action row leve: curtir/guardar como gesto, denunciar atrás do ⋯ */
.review-actions{display:flex;align-items:center;gap:16px;margin-top:10px;font-family:"Space Mono",monospace;font-size:11px;color:var(--dim);letter-spacing:.04em;text-transform:none}
.review-actions .ra-like,.review-actions .ra-save,.review-actions .ra-more{border:0;background:transparent;color:inherit;padding:6px 0;cursor:pointer;font:inherit;display:inline-flex;align-items:center;gap:5px;min-height:32px}
.review-actions .ra-like.active{color:var(--wine)}
.review-actions .ra-save.active{color:var(--gold)}
.review-actions .ra-like:hover,.review-actions .ra-save:hover{color:var(--ink-2)}
.ra-more-wrap{position:relative;margin-left:auto;display:inline-flex}
.ra-more{font-size:16px;letter-spacing:2px;padding:2px 8px!important}
.ra-menu{position:absolute;right:0;top:calc(100% + 4px);z-index:20;background:var(--paper-2);border:1px solid var(--rule);border-radius:10px;padding:4px;min-width:150px;box-shadow:0 10px 30px rgba(0,0,0,.35)}
.ra-menu[hidden]{display:none}
.ra-menu button{display:block;width:100%;text-align:left;border:0;background:transparent;color:var(--ink-2);font:inherit;font-size:11px;padding:9px 11px;cursor:pointer;border-radius:7px}
.ra-menu button:hover{background:color-mix(in srgb,var(--rule),transparent 50%)}

.review-card .review-top{align-items:flex-start}
@media(max-width:420px){.person-copy b{font-size:13.5px}.discover-sub{margin-left:0}}

/* ── perfil de leitor dentro do app ── */
.reader-card{max-width:440px}
.avatar-chip.avatar-lg{width:64px;height:64px;flex:0 0 64px;font-size:28px}
.reader-head{display:flex;gap:16px;align-items:center;margin:6px 0 14px}
.reader-who h2{font-family:"Fraunces",serif;font-weight:600;font-size:24px;line-height:1.1;letter-spacing:-.02em}
.reader-handle{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.08em;color:var(--muted);margin-top:3px}
.reader-bio{font-style:italic;color:var(--ink-2);font-size:14px;margin-top:6px;line-height:1.45}
.reader-actions-row{display:flex;align-items:center;gap:14px;margin-bottom:12px;flex-wrap:wrap}
.reader-follow-main{font-size:11px;padding:9px 16px}
.reader-external{font-size:10px}
.reader-counts{display:flex;align-items:center;gap:8px;font-family:"Space Mono",monospace;font-size:11px;color:var(--muted);letter-spacing:.04em;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:11px 0;margin-bottom:14px;flex-wrap:wrap}
.reader-counts button{border:0;background:transparent;color:var(--ink-2);font:inherit;cursor:pointer;padding:4px 0;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule)}
.reader-counts button:hover{color:var(--ink)}
.reader-sec{margin:14px 0 8px}
.reader-shelf{display:flex;gap:10px;overflow-x:auto;padding-bottom:4px}
.reader-shelf-item{flex:0 0 64px}
.reader-shelf-link{border:0;background:transparent;color:inherit;padding:0;text-align:left;cursor:pointer;font:inherit}
.reader-shelf-link:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.reader-shelf-item .cover{width:64px;box-shadow:var(--shadow-sm)}
.reader-shelf-item .cover-art{padding:7px 6px}
.reader-shelf-item .cover-art-author,.reader-shelf-item .cover-art-meta{display:none}
.reader-shelf-item .cover-art-title{font-size:10px;line-height:1.05}
.reader-shelf-title{display:block;margin-top:6px;font-family:var(--font-display);font-style:italic;font-size:11px;line-height:1.05;color:var(--ink);max-width:64px}
.reader-review{border:1px solid var(--rule);border-radius:12px;padding:12px 14px;margin-bottom:8px}
.reader-review b{font-family:"Fraunces",serif;font-style:italic;font-weight:500;font-size:15px}
.reader-review p{font-style:italic;color:var(--ink-2);font-size:13px;margin-top:5px;line-height:1.45}
.reader-list-title{margin:14px 0 10px}
.reader-follow-list{display:grid}
.reader-follow-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 0;border-top:1px solid var(--rule)}
.reader-follow-row:first-child{border-top:0}

/* "pessoas que você segue leram" na página da obra */
.friends-read{display:flex;align-items:center;gap:12px;padding:12px 16px!important}
.friends-read-avs{display:inline-flex;flex:0 0 auto}
.friends-read-av{appearance:none;border:0;background:transparent;padding:0;cursor:pointer;margin-left:-8px}
.friends-read-av:first-child{margin-left:0}
.friends-read-av .avatar-chip{width:28px;height:28px;flex-basis:28px;font-size:12px;box-shadow:0 0 0 2px var(--paper-2)}
.friends-read-text{font-size:13px;color:var(--ink-2);font-style:italic;line-height:1.4}

/* contadores clicáveis no perfil próprio */
.pcount-link{appearance:none;border:0;background:transparent;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule)}
.pcount-link:hover{color:var(--ink)}

/* ── sino de atividade — fica em .brand (nunca fica display:none),
   ao contrário de .top-actions, que some em viewports estreitas ── */
.activity-bell{appearance:none;border:0;background:transparent;padding:8px;margin-left:auto;color:var(--muted);cursor:pointer;position:relative;flex:0 0 auto;line-height:0}
.activity-bell svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.activity-bell:hover{color:var(--ink)}
.activity-dot{position:absolute;top:6px;right:6px;width:8px;height:8px;border-radius:50%;background:var(--wine);box-shadow:0 0 0 2px var(--paper)}
.activity-dot[hidden]{display:none}

.activity-empty{padding:34px 16px}
.activity-list{display:grid}
.activity-item{border-top:1px solid var(--rule)}
.activity-item:first-child{border-top:0}
.activity-item.unread{background:color-mix(in srgb,var(--wine),transparent 92%)}
.activity-item-main{appearance:none;border:0;background:transparent;width:100%;display:flex;align-items:center;gap:12px;padding:12px 4px;cursor:pointer;text-align:left;font:inherit;color:inherit}
.activity-item-copy{display:flex;flex-direction:column;gap:2px;min-width:0}
.activity-item-copy span{font-size:13.5px;line-height:1.4;color:var(--ink-2)}
.activity-item-copy small{font-family:"Space Mono",monospace;font-size:10px;color:var(--muted);letter-spacing:.04em}

/* ── comentários em críticas ── */
.review-actions .ra-comment{border:0;background:transparent;color:inherit;padding:6px 0;cursor:pointer;font:inherit;display:inline-flex;align-items:center;gap:5px;min-height:32px}
.review-actions .ra-comment.active,.review-actions .ra-comment:hover{color:var(--ink-2)}
.review-comments{margin-top:10px;padding-top:10px;border-top:1px solid var(--rule);display:grid;gap:10px}
.comment-item{display:flex;gap:10px;align-items:flex-start;position:relative}
.comment-copy{flex:1;min-width:0}
.comment-head{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.comment-head b{font-size:13px;color:var(--ink)}
.comment-head small{font-family:"Space Mono",monospace;font-size:10px;color:var(--muted);letter-spacing:.04em}
.comment-copy p{font-size:13.5px;color:var(--ink-2);line-height:1.42;margin-top:2px}
.comment-del{appearance:none;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:2px 4px;flex:0 0 auto}
.comment-del:hover{color:var(--wine)}
.comment-empty{font-size:13px;color:var(--muted);font-style:italic}
.comment-form{display:flex;gap:8px;align-items:center}
.comment-form input{flex:1;border:1px solid var(--rule);background:var(--paper);color:inherit;border-radius:8px;padding:8px 10px;font:inherit;font-size:13px}
.comment-form button{border:0;background:var(--ink);color:var(--paper);border-radius:8px;padding:8px 14px;font:inherit;font-size:12px;cursor:pointer;flex:0 0 auto}
.comment-form button:disabled{opacity:.6;cursor:default}
.comment-login-hint{font-size:12.5px;color:var(--muted);font-style:italic}

/* ══ Repaginada social: chrome de app (IG/Letterboxd), mantendo a identidade editorial ══
   Camada final — vence as anteriores. Topo compacto e fixo, títulos menores,
   controles segmentados, cards de feed como superfícies, perfil com avatar +
   estatísticas em linha, capas arredondadas com sombra suave. */

/* topo: barra compacta e fixa, só marca + sino */
.topbar{position:sticky;top:0;z-index:9;margin:-16px -16px 12px;padding:10px 16px;background:color-mix(in srgb,var(--bg),transparent 6%);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--rule)}
.topbar .brand{flex:1;gap:9px}
.topbar .seal{width:30px;height:30px;font-size:17px;box-shadow:none;border-width:1px;border-radius:8px;display:flex}
.topbar .wordmark{font-size:21px}
.topbar .lang-switch{display:none} /* idioma já vive nas configurações do perfil */
.topbar .top-actions{display:none}
.activity-bell{margin-left:auto}
@media(max-width:420px){
  .app{padding:0 20px calc(164px + env(safe-area-inset-bottom))}
  .topbar{margin:0 -20px 12px;padding:10px 20px}
  .topbar .wordmark{font-size:21px}
}

/* títulos de tela: âncora, não manchete */
.screen-head{border-bottom:0;padding-bottom:0;margin:6px 0 14px}
.screen-head .h-section,.h-section{font-size:24px}
.screen-subtitle,.shelf-summary{font-size:13px;margin-top:4px}
.label{letter-spacing:.18em}

/* busca: pílula estilo app */
.search{border-radius:999px;margin:4px 0 20px;padding:4px}
.search input{padding:11px 8px}
.search button{border-radius:999px;min-height:42px}

/* controles segmentados (feed e estante) */
.feed-tabs{border-bottom:0;padding:3px;gap:4px;background:var(--secondary-bg);border:1px solid var(--rule);border-radius:999px;margin:0 0 12px}
.feed-tabs button{flex:1;border:0;border-radius:999px;min-height:38px;background:transparent;color:var(--muted)}
.feed-tabs button.active{background:var(--active-bg);color:var(--active-text)}
.feed-intro{border:0;background:transparent;padding:0;margin:0 0 14px}
.feed-intro .screen-helper{font-size:13.5px;color:var(--muted)}

/* feed: cards de superfície, capa maior, mais respiro visual */
#feed .feed-card{grid-template-columns:56px 1fr;gap:12px;padding:14px;margin-bottom:10px;border:1px solid var(--rule);border-radius:18px;background:var(--surface)}
#feed .feed-cover .cover{width:56px;min-height:82px}
.feed-title{font-size:17px}
.feed-quote{font-size:14px;-webkit-line-clamp:3}
.follow-inline{border-radius:999px;min-height:32px;padding:6px 14px}
.discover-readers{border:1px solid var(--rule);border-radius:18px;background:var(--surface);padding:14px;margin-bottom:14px}
.community-label{margin-bottom:10px}

/* perfil: cabeçalho de rede social — avatar à esquerda, números em linha */
.profile .pcard{background:transparent;border:0;border-radius:0;box-shadow:none;padding:4px 0;text-align:left}
.profile-top{display:flex;align-items:center;gap:20px;margin:8px 0 0}
.profile .profile-avatar{width:84px;height:84px;flex:0 0 84px;font-size:38px;margin:0}
.profile-stats-row{display:grid;grid-template-columns:repeat(3,1fr);flex:1;gap:2px;min-width:0}
.profile-stat{background:transparent;border:0;padding:4px 0;text-align:center;cursor:pointer;font:inherit;color:inherit}
.profile-stat strong{display:block;font-family:"Fraunces",serif;font-weight:600;font-size:24px;line-height:1.05;color:var(--text)}
.profile-stat span{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.profile-id{margin-top:14px}
.profile .profile-id .phandle{font-family:"Spectral",serif;font-style:normal;font-weight:600;font-size:19px;line-height:1.2;margin:0}
.profile .profile-id .pcount{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.05em;color:var(--muted);margin-top:2px}
.profile .profile-bio{margin:8px 0 0;font-size:14.5px;line-height:1.45;color:var(--text-secondary)}
.profile-cta-row{display:flex;gap:8px;margin:16px 0 4px}
.profile-cta-row .pbtn{flex:1;width:auto;min-height:40px}
#profileEditWrap{margin-top:4px}
.profile-metrics{grid-template-columns:repeat(3,1fr);gap:0;margin:18px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:14px 0}
.profile-metrics div{border:0;background:transparent;border-radius:0;padding:2px 4px;text-align:center}
.profile-metrics strong{font-size:22px}
.profile-metrics span{letter-spacing:.08em;font-size:9px}

/* estante: cabeçalho enxuto, filtros em linha rolável, grade 3 colunas */
.screen-head.shelf-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}
.screen-head .btn-share{float:none;flex:0 0 auto;min-height:36px;padding:8px 14px}
.shelf-segment{margin-top:10px}
.shelf-tools{border-top:0;border-bottom:0;padding:2px 0;margin:10px 0 14px;flex-direction:row;align-items:center}
.shelf-filters{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding-bottom:2px}
.shelf-filters::-webkit-scrollbar{display:none}
.shelf-pill{white-space:nowrap;border-radius:999px}
.shelf-view-btn{border-radius:999px}
@media(max-width:420px){
  .shelf-tools{flex-direction:row}
  .wall.shelf-wall{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 9px}
  .shelf-wall .t{font-size:12.5px;line-height:1.2}
  .shelf-wall .a{font-size:10.5px}
  .shelf-wall .e{font-size:9.5px}
}

/* capas: cantos arredondados e sombra suave (menos "impresso", mais app) */
.cover,.shelf-cover{border-radius:8px;overflow:hidden;box-shadow:0 1px 2px rgba(26,23,20,.16),0 6px 16px rgba(26,23,20,.12)}
body.theme-dark .cover,body.theme-dark .shelf-cover{box-shadow:0 1px 2px rgba(0,0,0,.5),0 8px 20px rgba(0,0,0,.38)}
.cover .stars-overlay,.cover .stars{border-radius:6px}
.reading-now-card .cover{border-radius:8px}

/* navegação inferior: ícones maiores, sem sublinhado tipográfico */
.tab svg{width:24px;height:24px;stroke-width:1.6}
.tab{gap:4px;font-size:8.5px;min-height:54px}
.tab.active span{border-bottom:0;padding-bottom:0}
.tab.active::after{width:22px;height:2.5px}

/* home: hero mais contido */
.hero-extra .h-display{font-size:30px}
.hero-extra .label{margin-bottom:6px}

/* ══ Perfil vitrine + stories + avatares com foto ══
   Camada final: engrenagem esconde configurações, grade de capas no perfil,
   carrossel "lendo agora" no feed, fotos de avatar, leitura atual compacta. */

/* avatares com foto do Google (inicial fica por baixo como fallback) */
.avatar-chip{position:relative;overflow:hidden}
.avatar-chip img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}
.profile-avatar{position:relative;overflow:hidden}
.profile-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:50%}

/* engrenagem: configurações saem do fluxo e viram painel recolhido */
.profile .pcard{position:relative}
.profile-gear{position:absolute;top:4px;right:0;width:40px;height:40px;display:grid;place-items:center;border:1px solid var(--rule);border-radius:999px;background:var(--secondary-bg);color:var(--text-secondary);cursor:pointer;z-index:2;padding:0}
.profile-gear svg{width:19px;height:19px;stroke:currentColor;fill:none;stroke-width:1.7}
.profile-top{padding-right:48px}
.profile-settings .settings-title{margin:18px 0 0;letter-spacing:.18em}

/* grade de capas do perfil (grid de posts) */
.profile-shelf{margin-top:20px}
.profile-shelf .section-head{margin:0 0 12px}
.wall.profile-wall{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 9px}
.profile-wall .book{cursor:pointer}

/* stories "lendo agora" no topo do feed */
.stories{margin:2px 0 16px}
.stories-label{margin-bottom:9px}
.stories-strip{display:flex;gap:14px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;padding:2px 2px 4px}
.stories-strip::-webkit-scrollbar{display:none}
.story{flex:0 0 auto;width:72px;display:flex;flex-direction:column;align-items:center;gap:6px;background:none;border:0;padding:0;cursor:pointer;color:inherit;font:inherit}
.story-ring{display:block;width:66px;height:66px;border-radius:50%;padding:3px;background:conic-gradient(from 210deg,var(--accent),var(--gold-2),var(--wine),var(--accent))}
.story-ring img{display:block;width:100%;height:100%;object-fit:cover;border-radius:50%;border:2px solid var(--bg);box-sizing:border-box}
.story-fb{width:100%;height:100%;border-radius:50%;border:2px solid var(--bg);box-sizing:border-box;display:grid;place-items:center;font-family:"Fraunces",serif;font-style:italic;font-weight:600;font-size:24px;line-height:1}
.story-name{max-width:72px;font-family:"Spectral",serif;font-size:11.5px;line-height:1.1;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* feed: nome da pessoa ocupa a linha (botão seguir só no Descobrir) */
.feed-card-top .person-block{flex:1;min-width:0}

/* leitura atual compacta: capa menor, sem vazio à direita */
.reading-now-card{grid-template-columns:92px minmax(0,1fr);gap:14px;padding:14px;min-height:0;align-items:stretch}
.reading-now-card .reading-cover .cover{width:92px}
.reading-copy h3{font-size:19px;margin:2px 0 3px}
.reading-copy p{font-size:13px}
.reading-meta{font-size:11px;margin-bottom:6px}
.reading-spacer{min-height:10px}
.continue-reading-actions{margin-top:10px}

/* foto de perfil no formulário de edição */
.profile-photo-field .photo-row{display:flex;align-items:center;gap:14px;margin-top:8px}
.profile-photo-field .avatar-chip.avatar-lg{flex:0 0 64px}
.photo-actions{display:flex;flex-wrap:wrap;gap:8px}
.photo-actions .pbtn{min-height:36px;padding:8px 14px}

/* ── editor de recorte do avatar ── */
.crop-card{max-width:360px;display:grid;gap:14px;justify-items:center;padding:20px}
.crop-hint{font-size:13px;color:var(--text-secondary);text-align:center;margin:-6px 0 0}
.crop-viewport{position:relative;width:min(280px,72vw);aspect-ratio:1/1;border-radius:50%;overflow:hidden;background:var(--paper-3);touch-action:none;cursor:grab;box-shadow:0 0 0 1px var(--rule),0 0 0 999px color-mix(in srgb,var(--surface),transparent 20%)}
.crop-viewport:active{cursor:grabbing}
.crop-viewport img{position:absolute;left:0;top:0;user-select:none;-webkit-user-drag:none;pointer-events:none}
#cropZoom{width:min(280px,72vw);accent-color:var(--accent)}
.crop-card .modal-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;margin:0}

/* ── denunciar perfil (discreto, no rodapé do modal de leitor) ── */
.report-profile-link{display:block;margin:22px auto 4px;background:none;border:0;cursor:pointer;font-family:"Space Mono",monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--rule)}
.report-profile-link:hover{color:var(--danger)}

/* ── perfil distribuído em telas largas: cabeçalho à esquerda, vitrine à direita ── */
@media(min-width:900px){
  /* anula o grid antigo do desktop que espremia o pcard numa coluna de 360px */
  .profile{display:block}
  .profile .pcard{position:relative;top:auto;display:grid;grid-template-columns:minmax(300px,340px) minmax(0,1fr);column-gap:48px;align-items:start}
  .profile-top,.profile-id,.profile-cta-row,.profile-metrics,#profileEditWrap{grid-column:1}
  .profile-shelf,.pcard>.profile-stats-box{grid-column:2;grid-row:1/span 6;margin-top:0}
  #profileSettings{grid-column:1/-1}
  .wall.profile-wall{grid-template-columns:repeat(4,minmax(0,1fr));gap:18px 14px}
  .profile-settings .account-box{max-width:640px}
}

/* números clicáveis (perfil → estante filtrada) */
.metric-link{background:none;border:0;padding:2px 4px;font:inherit;color:inherit;cursor:pointer;text-align:center}
.metric-link:hover strong{color:var(--accent)}

/* ── botão central "+" na barra (registrar leitura) ── */
.tabs-inner{grid-template-columns:repeat(5,1fr)}
/* place-content:center anula o justify-content:flex-start herdado de .tab no
   layout touch — sem ele o "+" encosta na borda esquerda do círculo */
.tab-add{justify-self:center;align-self:center;width:46px;height:46px;min-height:46px;border-radius:50%;background:var(--primary);color:var(--primary-text);display:grid;place-items:center;place-content:center;padding:0;gap:0;margin-top:0;box-shadow:0 6px 16px rgba(26,23,20,.30)}
body.theme-dark .tab-add{box-shadow:0 6px 18px rgba(0,0,0,.5)}
.tab-add svg{width:22px;height:22px;stroke-width:2}
.tab-add:active{transform:scale(.94)}
.tab-add.active{background:var(--primary);color:var(--primary-text)}
.tab-add::before,.tab-add::after{display:none}

/* ── pull-to-refresh do feed ── */
.ptr-indicator{height:0;overflow:hidden;display:grid;place-items:center;transition:height .18s ease}
.ptr-spin{width:20px;height:20px;border-radius:50%;border:2px solid var(--rule);border-top-color:var(--accent);opacity:.55;transition:opacity .15s,transform .2s}
.ptr-indicator.ready .ptr-spin{opacity:1;transform:rotate(180deg)}
.ptr-indicator.loading .ptr-spin{opacity:1;animation:ptrspin .7s linear infinite}
@keyframes ptrspin{to{transform:rotate(360deg)}}
@media(min-width:900px){.tabs .tab-add{justify-self:start;margin:10px 0 10px 26px}}

/* link compartilhável no cabeçalho da obra */
.work-share-link{margin-top:8px;font-size:12.5px}

/* ---------- ações rápidas de leitura ---------- */
.quick-actions-backdrop{position:fixed;inset:0;z-index:45;display:flex;align-items:flex-end;justify-content:center;background:rgba(26,23,20,.38);padding:18px 12px calc(74px + env(safe-area-inset-bottom));backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.quick-actions-backdrop[hidden]{display:none}
.quick-actions-sheet{width:min(100%,520px);background:var(--surface,var(--paper));border:1px solid var(--rule);border-radius:22px 22px 16px 16px;box-shadow:0 26px 70px rgba(0,0,0,.35),var(--shadow-sm);padding:10px 14px 14px;color:var(--text,var(--ink))}
.quick-actions-handle{width:42px;height:4px;border-radius:999px;background:var(--rule);margin:0 auto 12px}
.quick-actions-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:12px}
.quick-actions-head p{margin-top:4px;color:var(--text-secondary,var(--dim));font-size:14px;line-height:1.35}
.quick-actions-close{width:38px;height:38px;min-width:38px;border-radius:999px;border:1px solid var(--rule);background:var(--secondary-bg,var(--paper-2));color:var(--text-secondary,var(--dim));font-size:24px;line-height:1;display:grid;place-items:center}
.quick-actions-body{display:flex;flex-direction:column;gap:9px}
.quick-action,.quick-action-group{width:100%;text-align:left;border:1px solid var(--rule);border-radius:16px;background:var(--secondary-bg,var(--paper-2));padding:13px 14px;color:var(--text,var(--ink));box-shadow:none}
.quick-action{display:flex;flex-direction:column;gap:3px}
.quick-action.primary,.quick-action-group.primary{background:var(--primary,var(--ink));border-color:var(--primary,var(--ink));color:var(--primary-text,var(--paper))}
.quick-action strong,.quick-action-title{font-family:"Fraunces",serif;font-size:19px;font-style:italic;font-weight:650;line-height:1.1}
.quick-action span,.quick-action-sub,.quick-reading-row small{color:inherit;opacity:.76;font-size:13px;line-height:1.25}
.quick-action:disabled{cursor:not-allowed;opacity:.72;background:transparent;color:var(--text-secondary,var(--dim));border-style:dashed}
.quick-reading-list{display:flex;flex-direction:column;gap:7px;margin-top:10px}
.quick-reading-row{width:100%;display:flex;flex-direction:column;gap:2px;text-align:left;border:1px solid color-mix(in srgb,currentColor,transparent 72%);border-radius:12px;background:color-mix(in srgb,currentColor,transparent 92%);padding:10px 11px;color:inherit}
.quick-reading-row span{font-weight:650;line-height:1.2}
.quick-actions-note{font-size:13px;color:var(--text-secondary,var(--dim));padding:0 3px}
.tab-add[aria-expanded="true"]{transform:scale(.94)}
.post-read-backdrop{position:fixed;inset:0;z-index:55;display:none;align-items:flex-end;justify-content:center;background:rgba(26,23,20,.34);padding:18px 12px calc(74px + env(safe-area-inset-bottom));backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px)}
.post-read-backdrop.open{display:flex}
.post-read-sheet{position:relative;width:min(100%,520px);background:var(--surface,var(--paper));border:1px solid var(--rule);border-radius:22px 22px 16px 16px;box-shadow:0 26px 70px rgba(0,0,0,.35),var(--shadow-sm);padding:12px 16px 16px;color:var(--text,var(--ink))}
.post-read-handle{width:42px;height:4px;border-radius:999px;background:var(--rule);margin:0 auto 14px}
.post-read-close{position:absolute;right:12px;top:10px;width:38px;height:38px;border-radius:999px;border:1px solid var(--rule);background:var(--secondary-bg,var(--paper-2));color:var(--text-secondary,var(--dim));font-size:24px;line-height:1;display:grid;place-items:center}
.post-read-kicker{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent,var(--gold));margin-bottom:8px;padding-right:44px}
.post-read-sheet h2{font-family:"Fraunces",serif;font-size:28px;line-height:1.05;font-weight:600;margin:0 44px 8px 0;color:var(--text,var(--ink))}
.post-read-sheet p{font-size:16px;line-height:1.38;color:var(--text-secondary,var(--ink-2));font-style:italic;margin:0 0 16px}
.post-read-actions{display:flex;flex-direction:column;gap:9px}
.post-read-primary,.post-read-secondary{width:100%;min-height:46px;padding:13px 14px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:.13em;text-transform:uppercase;text-align:center;border:1px solid var(--rule)}
.post-read-primary{background:var(--primary,var(--ink));border-color:var(--primary,var(--ink));color:var(--primary-text,var(--paper))}
.post-read-secondary{background:var(--secondary-bg,var(--paper-2));color:var(--secondary-text,var(--ink-2))}
.post-read-later{display:block;margin:12px auto 0;padding:9px 12px;color:var(--text-secondary,var(--dim));font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;text-decoration:underline;text-underline-offset:4px}
@media(min-width:720px){.quick-actions-backdrop{align-items:flex-end;padding-bottom:86px}.quick-actions-sheet{max-width:420px}}
@media(min-width:720px){.post-read-backdrop{align-items:center;padding:34px}.post-read-sheet{max-width:430px;border-radius:18px;padding:18px 20px 20px}.post-read-handle{display:none}}
@media(max-width:420px){.quick-actions-backdrop{padding:10px 10px calc(72px + env(safe-area-inset-bottom))}.quick-actions-sheet{border-radius:20px 20px 0 0;padding:9px 12px 12px}}
@media(max-width:420px){.post-read-backdrop{padding:10px 10px calc(72px + env(safe-area-inset-bottom))}.post-read-sheet{border-radius:20px 20px 0 0;padding:10px 14px 14px}}

/* explore por editora — trilha editorial compacta na home */
.publisher-strip{margin:26px 0 4px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);padding:15px 0 16px}
.publisher-strip .section-head{margin:0 0 12px}
.publisher-strip-head .more{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--gold);border-bottom:1px solid var(--gold);padding-bottom:1px;white-space:nowrap}
.publisher-chip-row{display:flex;gap:9px;overflow-x:auto;padding:1px 2px 3px;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}
.publisher-chip-row::-webkit-scrollbar{display:none}
.publisher-chip{flex:0 0 auto;min-width:128px;max-width:190px;scroll-snap-align:start;border:1px solid var(--rule);background:color-mix(in srgb,var(--paper-2),transparent 8%);padding:10px 11px 9px;box-shadow:2px 3px 0 rgba(26,23,20,.08);transition:background .15s,color .15s,transform .15s}
.publisher-chip:active{transform:translate(1px,1px);background:var(--ink);color:var(--paper)}
.publisher-name{display:block;font-family:"Fraunces",serif;font-style:italic;font-size:16px;line-height:1.08;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.publisher-count{display:block;margin-top:5px;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--dim)}
.publisher-empty-note{margin:0;color:var(--muted);font-size:13px;line-height:1.35}
.publisher-strip-empty{padding-bottom:14px}
.publisher-chip:active .publisher-count{color:var(--paper-2)}
.publisher-chip.skeleton{height:58px;min-width:142px;border-color:transparent;background:linear-gradient(90deg,rgba(26,23,20,.06),rgba(26,23,20,.12),rgba(26,23,20,.06));background-size:220% 100%;animation:publisherPulse 1.2s ease-in-out infinite;box-shadow:none}
.publisher-chip.skeleton.short{min-width:104px}
@keyframes publisherPulse{0%{background-position:100% 0}100%{background-position:-100% 0}}
@media(max-width:380px){.publisher-chip{min-width:118px}.publisher-name{font-size:15px}.publisher-strip-head{align-items:flex-start;gap:10px}}

/* filtros leves da busca */
.search-filters{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:-12px 0 18px}
.search-filter-toggle{border:1px solid var(--rule);background:transparent;color:var(--muted);border-radius:999px;padding:7px 11px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;min-height:34px}
.search-publisher-select{display:flex;align-items:center;gap:7px;border:1px solid var(--rule);background:var(--secondary-bg,var(--paper-2));border-radius:999px;padding:5px 8px 5px 11px;color:var(--muted);font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase}
.search-publisher-select[hidden]{display:none}
.search-publisher-select select{max-width:min(56vw,260px);border:0;background:transparent;color:var(--ink);font:inherit;text-transform:none;letter-spacing:0;outline:0}
.active-search-filters{display:flex;gap:7px;flex-wrap:wrap;min-width:0}
.search-filter-chip{display:inline-flex;align-items:center;gap:7px;border:1px solid color-mix(in srgb,var(--wine),transparent 55%);background:color-mix(in srgb,var(--wine),transparent 90%);color:var(--ink);border-radius:999px;padding:6px 7px 6px 11px;font-size:13px;line-height:1.1}
.search-filter-chip button{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--wine);color:var(--paper);font-size:16px;line-height:1;cursor:pointer}
.search-filter-empty{margin:10px 0 14px;text-align:left}
.search-filter-empty .link-manual{margin-top:12px}
@media(max-width:420px){.search-filters{margin-top:-10px}.search-filter-toggle,.search-publisher-select{min-height:38px}.search-publisher-select{width:100%;justify-content:space-between}.search-publisher-select select{max-width:62vw}.active-search-filters{width:100%}}

/* bottom sheet customizado do filtro de editora */
body.sheet-open{overflow:hidden}
.search-filter-toggle.has-active-filter{border-color:color-mix(in srgb,var(--wine),transparent 45%);background:color-mix(in srgb,var(--wine),transparent 90%);color:var(--ink)}
.publisher-sheet-backdrop{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-end;justify-content:center;background:rgba(10,8,7,.48);backdrop-filter:blur(4px);padding:18px}
.publisher-sheet-backdrop[hidden]{display:none}
.publisher-sheet{width:min(620px,100%);max-height:min(78vh,720px);display:flex;flex-direction:column;background:var(--paper);color:var(--ink);border:1px solid var(--rule);border-radius:24px 24px 18px 18px;box-shadow:var(--shadow);padding:10px 16px 16px;animation:publisherSheetIn .18s ease-out}
@keyframes publisherSheetIn{from{transform:translateY(18px);opacity:.5}to{transform:translateY(0);opacity:1}}
.publisher-sheet-handle{width:44px;height:4px;border-radius:999px;background:var(--rule);margin:0 auto 12px}
.publisher-sheet-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;padding-bottom:12px;border-bottom:1px solid var(--rule)}
.publisher-sheet-head p{margin:5px 0 0;color:var(--muted);font-size:14px;line-height:1.35}
.publisher-sheet-close{width:38px;height:38px;border-radius:50%;border:1px solid var(--rule);background:var(--paper-2);color:var(--ink);font-size:24px;line-height:1;cursor:pointer;flex:0 0 auto}
.publisher-sheet-search{display:block;margin:14px 0 10px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.publisher-sheet-search input{width:100%;margin-top:7px;border:1px solid var(--rule);border-radius:999px;background:var(--paper-2);color:var(--ink);padding:11px 14px;font-family:"Spectral",serif;font-size:16px;outline:0}
.publisher-sheet-search input:focus{border-color:var(--gold);outline:2px solid color-mix(in srgb,var(--gold),transparent 55%);outline-offset:1px}
.publisher-sheet-options{display:grid;gap:8px;overflow:auto;padding:2px 2px 8px;-webkit-overflow-scrolling:touch}
.publisher-option{display:grid;grid-template-columns:22px minmax(0,1fr);align-items:center;gap:10px;width:100%;text-align:left;border:1px solid var(--rule);border-radius:16px;background:var(--paper-2);color:var(--ink);padding:12px 13px;font-family:"Fraunces",serif;font-style:italic;font-size:18px;line-height:1.12;cursor:pointer}
.publisher-option:hover,.publisher-option:focus-visible{border-color:var(--gold)}
.publisher-option.selected{border-color:color-mix(in srgb,var(--wine),transparent 35%);background:color-mix(in srgb,var(--wine),transparent 88%)}
.publisher-option-mark{width:18px;height:18px;border-radius:50%;border:1px solid var(--rule);background:var(--paper);box-shadow:inset 0 0 0 4px var(--paper)}
.publisher-option.selected .publisher-option-mark{border-color:var(--wine);background:var(--wine)}
.publisher-options-empty{margin:10px 2px 4px;color:var(--muted);font-size:14px;line-height:1.4}
body.theme-dark .publisher-sheet{background:color-mix(in srgb,var(--paper),black 5%)}
body.theme-dark .publisher-sheet-backdrop{background:rgba(0,0,0,.62)}
@media(max-width:420px){.publisher-sheet-backdrop{padding:0}.publisher-sheet{max-height:86vh;border-radius:22px 22px 0 0;border-left:0;border-right:0;border-bottom:0;padding:9px 13px calc(13px + env(safe-area-inset-bottom))}.publisher-option{font-size:17px;padding:13px 12px}.publisher-sheet-head p{font-size:13px}}

/* bottom sheet unificado de filtros da busca */
.filter-sheet-body{flex:1 1 auto;min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:2px 2px 10px}
.filter-group{padding:14px 0 4px;border-bottom:1px solid var(--rule)}
.filter-group:last-child{border-bottom:0}
.filter-group>.label{margin-bottom:10px}
.filter-group .publisher-sheet-search{margin:2px 0 10px}
.filter-publisher-options{max-height:238px;overflow:auto;margin-bottom:10px}
.filter-publisher-options .publisher-option{font-size:16px;padding:10px 12px}
.filter-chip-row{display:flex;flex-wrap:wrap;gap:8px;padding-bottom:10px}
.filter-chip-option{border:1px solid var(--rule);background:var(--paper-2);color:var(--ink);border-radius:999px;padding:8px 13px;font-family:"Spectral",serif;font-size:14px;line-height:1.1;cursor:pointer;min-height:36px}
.filter-chip-option:hover,.filter-chip-option:focus-visible{border-color:var(--gold)}
.filter-chip-option.selected{border-color:color-mix(in srgb,var(--wine),transparent 30%);background:color-mix(in srgb,var(--wine),transparent 86%);font-weight:650}
.filter-subgroup{margin-bottom:4px}
.filter-subgroup-title{display:block;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);margin:2px 0 8px}
.filter-sheet-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding-top:12px;border-top:1px solid var(--rule)}
.filter-clear-all{border:0;background:none;color:var(--muted);font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:10px 4px}
.filter-clear-all:hover{color:var(--ink)}
.filter-apply{margin-left:auto;border:0;border-radius:999px;background:var(--primary,var(--wine));color:var(--primary-text,var(--paper));font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;padding:12px 20px;cursor:pointer;min-height:42px}
.filter-apply:active{transform:scale(.97)}
.search-filter-clear-all{border:0;background:none;color:var(--muted);font-family:"Space Mono",monospace;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;text-decoration:underline;text-underline-offset:3px;padding:6px 4px;min-height:34px}
.search-filter-clear-all:hover{color:var(--ink)}
.literatura-fallback-note{margin:0 0 14px;text-align:left;font-size:13px;padding:12px 14px;border:1px dashed var(--rule);border-radius:14px}

/* BrandLogo variants: wordmark = monograma como L inicial; lockup = símbolo + texto; mark = só símbolo */
.brand-logo{display:flex;align-items:center;gap:12px;min-width:0;color:var(--ink)}
.brand-logo__mark{flex:0 0 auto;width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:var(--paper-2);border:1px solid var(--rule);box-shadow:none;color:var(--ink)}
.brand-logo__mark svg{width:auto;height:64%;display:block;fill:currentColor}
.brand-logo__word{flex:0 1 auto;min-width:0;font-family:"Fraunces",serif;font-style:normal;font-weight:650;font-size:26px;line-height:1;letter-spacing:-.055em;color:var(--ink);white-space:nowrap}
.brand-logo__word::before{content:none!important;display:none!important}
.brand-logo__word .dot{color:var(--wine)}
.brand-logo--mark{display:inline-flex;gap:0}
.brand-logo--mark .brand-logo__word{display:none}
.brand-logo--lockup{gap:12px}
.brand-logo--wordmark{gap:2px;align-items:baseline}
.brand-logo--wordmark .brand-logo__mark{width:auto;height:.92em;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;align-self:baseline;transform:translateY(.075em)}
.brand-logo--wordmark .brand-logo__mark svg{height:100%;width:auto;overflow:visible}
.brand-logo--wordmark .brand-logo__word{line-height:.92}
.brand-logo--wordmark .brand-logo__rest{margin-left:-.015em}
.topbar .brand-logo{max-width:100%}
.topbar .brand-logo--lockup{gap:11px}
.topbar .brand-logo--lockup .brand-logo__mark,.topbar .brand-logo--mark .brand-logo__mark{width:38px;height:38px;border-radius:10px}
.topbar .brand-logo__word{font-size:24px;line-height:1}
.topbar .brand-logo--wordmark{gap:1px}
.topbar .brand-logo--wordmark .brand-logo__mark{height:23px}
.topbar .brand-logo--wordmark .brand-logo__word{font-size:24px;line-height:.92}
@media(max-width:420px){.topbar .brand-logo--lockup{gap:10px}.topbar .brand-logo--lockup .brand-logo__mark,.topbar .brand-logo--mark .brand-logo__mark{width:38px;height:38px}.topbar .brand-logo__word{font-size:23px}.topbar .brand-logo--wordmark{gap:1px}.topbar .brand-logo--wordmark .brand-logo__mark{height:22px}.topbar .brand-logo--wordmark .brand-logo__word{font-size:23px}}
@media(max-width:340px){.topbar .brand-logo--lockup{gap:9px}.topbar .brand-logo--lockup .brand-logo__mark,.topbar .brand-logo--mark .brand-logo__mark{width:36px;height:36px}.topbar .brand-logo__word{font-size:21px}.topbar .brand-logo--wordmark .brand-logo__mark{height:20px}.topbar .brand-logo--wordmark .brand-logo__word{font-size:21px}}

/* chamada clara para login no perfil anônimo */
.profile-login-cta{margin-top:18px;padding:18px;text-align:left}
.profile-login-cta h3{margin:8px 0 6px;font-family:"Fraunces",serif;font-size:24px;line-height:1.05;color:var(--text)}
.profile-login-cta p{margin:0 0 14px;color:var(--text-secondary);font-size:15px;line-height:1.45}
.profile-login-cta .pbtn{display:block;width:100%;text-align:center}
.profile-empty-actions,.empty-actions{display:grid;gap:8px;margin-top:14px}
.profile-stats-empty .profile-empty-actions .pbtn{margin-top:0;text-align:center}
@media(min-width:560px){.profile-empty-actions,.empty-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-login-cta .pbtn{width:auto;display:inline-block}}
@media(min-width:920px){.pcard>.profile-login-cta{grid-column:1}.profile-shelf+.profile-login-cta{grid-column:2}}

/* Alternância e listas compactas de catálogo */
.view-toggle{display:inline-flex;align-items:center;gap:6px;flex-wrap:nowrap}
.view-toggle-btn{display:inline-grid;place-items:center;width:34px;height:34px;border:1px solid var(--rule);border-radius:999px;background:transparent;color:var(--muted);cursor:pointer;padding:0;line-height:1}
.view-toggle-btn svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.view-toggle-btn.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}
body.theme-dark .view-toggle-btn.active{background:var(--paper-2);border-color:var(--rule);color:var(--ink)}
.catalog-list{display:grid;gap:0}
.catalog-list-item{display:block;border-top:1px solid var(--rule);padding:10px 0;color:inherit;cursor:pointer;text-decoration:none;min-height:44px}
.catalog-list-item:first-child{border-top:0}
.catalog-list-title{display:block;font-family:"Fraunces",serif;font-style:italic;font-weight:500;font-size:17px;line-height:1.13;color:var(--ink)}
.catalog-list-author{display:block;margin-top:2px;font-family:"Spectral",serif;font-size:13px;line-height:1.2;color:var(--muted)}
.catalog-list-meta{margin-top:5px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold)}
.popular-section-head{align-items:center;justify-content:space-between;gap:12px}.home-popular-list{width:100%}.wall.catalog-list-host{display:block}
/* Busca: paginação e alternância grade/lista */
.search-controls{display:grid;gap:8px;margin:14px 0 18px;padding:10px;border:1px solid var(--rule);background:var(--paper-2)}
.search-controls .view-toggle,.search-controls .per-page-select,.search-controls .pager{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.search-controls .per-page-select span,.search-controls .pager span,.search-total{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.per-page-select button,.pager button{border:1px solid var(--rule);border-radius:999px;background:transparent;color:var(--muted);font-family:"Space Mono",monospace;font-size:11px;padding:7px 10px;min-height:0;text-transform:none;letter-spacing:0;cursor:pointer}
.per-page-select button.active{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.pager button:disabled{opacity:.45;cursor:not-allowed}
.search-result-list{display:grid;gap:0}.search-result-row{cursor:pointer}.search-result-title{font-size:17px}.search-result-author{font-size:13px}.search-result-meta{margin-top:5px}
@media(min-width:700px){.search-controls{grid-template-columns:auto auto 1fr auto;align-items:center}.search-controls .pager{justify-content:flex-end}}
@media(max-width:420px){.search-controls{grid-template-columns:1fr auto;padding:9px;gap:8px}.search-controls .pager{grid-column:1/-1;justify-content:space-between}.search-controls .per-page-select{grid-column:1;grid-row:2}.search-controls .view-toggle{grid-column:2;grid-row:2;justify-content:flex-end}.search-total{grid-column:1/-1}.per-page-select button,.pager button{font-size:10px;padding:7px 9px}.search-result-title{font-size:16px}}


/* Home hierarchy: prioritize the current reading and progressive discovery. */
.home-feed{display:flex;flex-direction:column;gap:28px}
.home-feed .hero-extra{margin-bottom:0}
.home-primary:empty,.home-onboarding:empty,.home-publishers:empty{display:none}
.home-primary{order:1}
.home-onboarding{order:2}
.home-discovery{order:3;padding-top:8px}
.home-publishers{order:4;padding-top:4px;border-top:1px solid var(--rule)}
.home-feed.has-current-reading .home-intro{display:none}
.home-feed.has-current-reading .home-primary{margin-top:2px}
.home-feed.has-current-reading .home-onboarding .onboarding-checklist-wrap{margin-top:0}
.home-more-button{
  appearance:none;border:0;background:transparent;padding:8px 0 8px 12px;
  font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px;
}
.home-discovery .popular-section-head{margin-top:0}
.home-discovery #populares{margin-bottom:0}
.home-publishers .publisher-strip{margin-top:0}

@media(max-width:640px){
  .home-feed{gap:22px}
  .home-discovery{padding-top:2px}
  .home-publishers{padding-top:18px}
  .home-feed:not(.has-current-reading) .home-intro{margin-bottom:-4px}
}


/* Quick actions: one reading selector and three predictable actions. */
.quick-reading-picker{display:grid;gap:7px;padding:2px 1px 4px;color:var(--text-secondary,var(--dim));font-family:"Space Mono",monospace;font-size:9px;letter-spacing:.12em;text-transform:uppercase}
.quick-reading-picker select{width:100%;min-height:44px;border:1px solid var(--rule);border-radius:13px;background:var(--paper-2);color:var(--ink);padding:9px 12px;font-family:"Spectral",serif;font-size:15px;line-height:1.2;text-transform:none;letter-spacing:0}
.quick-actions-grid{display:grid;gap:9px}
.quick-actions-grid .quick-action{min-height:64px;justify-content:center}
.quick-actions-grid .quick-action strong{font-size:14px}
.quick-actions-grid .quick-action span{font-size:12.5px;line-height:1.3}
@media(min-width:480px){.quick-actions-grid{grid-template-columns:1fr 1fr}.quick-actions-grid .quick-action:last-child{grid-column:1/-1}}

/* ─── revisão da interface mobile (feedback do Shavo) ───
   estante como tela inicial · aba explorar ·
   compartilhar em ícone · título da estante acompanha o toggle */

/* toggle estante/diário mais enxuto — o título da página já diz onde estamos */
.shelf-segment.compact{margin-top:8px;padding:2px}
.shelf-segment.compact .shelf-segment-btn{font-size:9px;padding:5px 10px}
@media(min-width:900px){.shelf-segment.compact .shelf-segment-btn{font-size:12px;padding:6px 14px}}

/* compartilhar: só o símbolo dos três pontos conectados */
#shelfShareButton.btn-share-icon{width:42px;height:42px;min-height:42px;padding:0;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex:0 0 auto}
#shelfShareButton.btn-share-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
