:root{
  --bg:#F4E8DE; --surface:#FBF5F0; --surface2:#EDE0D4;
  --ink:#2B3D50; --muted:#566575; --line:#DCCEC4;   /* muted: contraste 4,5:1 até sobre --surface2 (etapa 5D; antes #8C9BAA, 2,2:1) */
  --navy:#455F7A; --navy-mid:#6B8FAC; --navy-soft:#E8EFF5;
  --cream:#F4E8DE;
  --ok:#476C5A; --ok-soft:#E8F3EE;    /* ok/err: 4,5:1 sobre os fundos claros (antes #5A8A72 e #C0614E) */
  --err:#A24B39; --err-soft:#FAEEEC;
  --warn:#C08850;
  --radius:14px;
  --accent:var(--navy); --accent-ink:#FBF5F0; --accent-soft:var(--navy-soft);
  /* ── Padronização visual (versão A, 15/10/2026) — docs/PADRONIZACAO_VISUAL.md; catálogo em prototypes/catalogo-botoes.html ── */
  --warn-ink:#8A5A10; --warn-soft:#FFF3DC;   /* texto/fundo de aviso (--warn sozinho como texto dá 2,8:1) */
  --line-soft:#E6DAD0;                       /* divisória entre itens de lista */
  --cover-ph:#E3D6CB;                        /* capa sem imagem */
  --on-accent:#FBF5F0;                       /* texto/ícone sobre --navy e --err (no escuro vira escuro) */
  --shadow-c:43,61,80;
  --font-sans:'Inter',system-ui,sans-serif; --font-serif:'Cormorant Garamond',Georgia,serif;
  --font-sc:'Cormorant SC',Georgia,serif; --font-script:'Great Vibes',cursive;
  /* tamanhos de letra (mínimo 11px) */
  --fs-xs:.7rem; --fs-sm:.78rem; --fs-md:.88rem; --fs-base:.94rem; --fs-lg:1.05rem;
  --fs-xl:1.25rem; --fs-2xl:1.5rem; --fs-3xl:1.75rem; --fs-num:2.4rem;
  --ls-caps:.06em; --ls-sc:.1em; --ls-eyebrow:.18em;
  /* cantos */
  --r-xs:4px; --r-sm:8px; --r-md:12px; --r-lg:14px; --r-xl:20px; --r-pill:999px;
  /* sombras */
  --sh-1:0 1px 3px rgba(var(--shadow-c),.12); --sh-2:0 2px 8px rgba(var(--shadow-c),.07);
  --sh-3:0 6px 20px rgba(var(--shadow-c),.2); --sh-4:0 16px 48px rgba(var(--shadow-c),.3);
  /* animação */
  --t-fast:.15s; --t-mid:.25s; --t-slow:.4s;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.65 var(--font-sans);min-height:100vh}
/* Movimento reduzido (preferência do sistema): encurta, sem desligar — o toast some por animação */
@media (prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important;scroll-behavior:auto!important}}
h1,h2{font-family:var(--font-serif);font-weight:600;line-height:1.2;margin:.2em 0 .4em}
h1{font-size:var(--fs-3xl)} h2{font-size:var(--fs-xl)}
a{color:var(--navy)}
main{max-width:520px;margin:0 auto;padding:20px 16px calc(84px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:14px}
/* Páginas com botão + flutuante: folga extra para o último card não ficar embaixo dele */
body:has(.fab) main{padding-bottom:calc(140px + env(safe-area-inset-bottom))}
/* Só para leitores de tela */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.muted{color:var(--muted)} .small{font-size:var(--fs-md)} .center{text-align:center} .grow{flex:1;min-width:0}

/* ── topo ── */
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;justify-content:space-between;padding:0 20px;height:56px;background:rgba(244,232,222,.95);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
.top-brand{display:flex;flex-direction:column;align-items:flex-start;line-height:1;gap:1px}
.top-brand .script{font-family:var(--font-script);font-size:1.65rem;color:var(--navy);line-height:1}
.top-brand .sub{font-family:var(--font-sc);font-size:.48rem;font-weight:600;letter-spacing:.45em;color:var(--navy);text-transform:uppercase}
.av-top{width:36px;height:36px;border-radius:50%;background:var(--navy);color:var(--on-accent);display:grid;place-items:center;font-family:var(--font-serif);font-size:1rem;font-weight:600;flex-shrink:0}
.av-lg{width:88px;height:88px;border-radius:50%;background:var(--navy);color:var(--cream);display:inline-grid;place-items:center;font-family:var(--font-serif);font-size:2.2rem;font-weight:600}
.av-img-top{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--navy);flex-shrink:0}
.av-img-lg{width:88px;height:88px;border-radius:50%;object-fit:cover;border:2px solid var(--accent);display:inline-block}
.top-actions{display:flex;align-items:center;gap:10px}
/* ── bell (avisos) ── */
.bell-wrap{position:relative}
.bell-btn{background:none;border:none;cursor:pointer;font-size:1.15rem;padding:5px;border-radius:var(--r-sm);position:relative;line-height:1;display:flex;align-items:center;-webkit-tap-highlight-color:transparent;color:inherit;text-decoration:none}
.bell-btn:hover{background:var(--surface2)}
.bell-badge{position:absolute;top:-1px;right:-3px;pointer-events:none}
/* ── avatar cropper modal ── */
.av-crop-overlay{position:fixed;inset:0;background:rgba(43,61,80,.72);z-index:400;display:none;align-items:center;justify-content:center;padding:16px}
.av-crop-box{background:var(--surface);border-radius:var(--r-lg);width:min(480px,100%);box-shadow:var(--sh-4);overflow:hidden}
.av-crop-img-wrap{background:#1a1a1a;min-height:300px;position:relative}
.av-crop-actions{display:flex;gap:10px;justify-content:flex-end;padding:14px 18px;border-top:1px solid var(--line)}
/* ── alerta modal ── */
.alerta-overlay{position:fixed;inset:0;background:rgba(43,61,80,.55);z-index:500;display:flex;align-items:center;justify-content:center;padding:24px}
.alerta-modal{background:var(--surface);border-radius:var(--r-lg);max-width:420px;width:100%;padding:28px 24px 24px;box-shadow:var(--sh-4);animation:alertaIn .22s ease}
@keyframes alertaIn{from{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}
.alerta-modal-label{font-family:var(--font-sc);font-size:var(--fs-sm);letter-spacing:var(--ls-sc);font-weight:700;color:var(--err);text-transform:uppercase;margin-bottom:14px}
.alerta-modal-body{font-size:var(--fs-base);line-height:1.65;color:var(--ink);margin-bottom:10px;white-space:pre-wrap}
.alerta-modal-meta{font-size:var(--fs-sm);color:var(--muted);margin-bottom:22px}
/* ── aviso priority badge ── */
.aviso-priority{display:inline-flex;align-items:center;flex-shrink:0}

/* ── página de avisos ── */
.aviso-item{padding:14px 18px;border-bottom:1px solid var(--line);border-left:3px solid transparent;transition:background var(--t-fast)}
.aviso-item:last-child{border-bottom:none}
.aviso-item.unread{background:var(--navy-soft);border-left-color:var(--navy)}
.aviso-item.pri-urgente-item{border-left-color:var(--warn)}
.aviso-item.pri-urgente-item.unread{background:var(--warn-soft);border-left-color:var(--warn)}
.aviso-item.pri-alerta-item{border-left-color:var(--err)}
.aviso-item.pri-alerta-item.unread{background:var(--err-soft);border-left-color:var(--err)}
.aviso-meta{display:flex;align-items:center;gap:8px;margin-bottom:6px;flex-wrap:wrap}
.aviso-author{font-family:var(--font-sc);font-size:var(--fs-sm);font-weight:600;color:var(--navy);flex:1;letter-spacing:var(--ls-sc);min-width:0}
.aviso-date{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap}
.aviso-body{font-size:var(--fs-md);color:var(--ink);line-height:1.6}
.aviso-item.unread .aviso-body{font-weight:500}
/* ── compose form na página de avisos ── */
.aviso-ta{width:100%;resize:none;border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;font:14px/1.5 var(--font-sans);color:var(--ink);background:var(--bg);box-sizing:border-box}
.aviso-ta:focus{outline:none;border-color:var(--navy)}
.aviso-chars{font-size:var(--fs-sm);color:var(--muted)}
.aviso-priority-select{font-size:var(--fs-md);padding:7px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);cursor:pointer;appearance:auto}

/* ── cards ── */
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--sh-2);margin:0}
.card.narrow{max-width:400px;margin:48px auto;border-radius:var(--r-lg);padding:24px}
.brand-big{font-size:2.4rem}
.row{display:flex;align-items:center;gap:12px;justify-content:space-between}
.count{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap;font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-caps)}

/* ── livro hero ── */
.book-hero{padding:0;position:relative}
.book-hero-inner{padding:20px;background:linear-gradient(135deg,var(--navy) 0%,#2B3D50 100%);display:flex;gap:18px;align-items:flex-start}
.cover{object-fit:cover;box-shadow:var(--sh-3);border:2px solid rgba(255,255,255,.15);flex-shrink:0}
.cover-ph{background:var(--cover-ph);display:grid;place-items:center;font-size:2.2rem;box-shadow:var(--sh-3)}
.book-meta{flex:1;min-width:0}
.book-title{font-family:var(--font-serif);font-size:var(--fs-xl);font-weight:600;line-height:1.2;color:#FBF5F0;margin-bottom:4px;margin-top:0}
.book-author{font-size:var(--fs-md);color:rgba(244,232,222,.7);margin-bottom:10px;font-style:italic;font-family:var(--font-serif)}
.book-chooser{font-size:var(--fs-sm);color:rgba(244,232,222,.9);margin:-6px 0 10px}
.pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}

.status-badge{display:inline-flex;align-items:center;gap:4px}

.hero-meeting{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin-top:8px}
.hero-meet-date{font-size:var(--fs-sm);color:rgba(244,232,222,.65)}
.meeting-pill{white-space:nowrap}

/* ── barra de leitura no hero ── */
.read-bar-wrap{padding:14px 20px;background:var(--navy);border-top:1px solid rgba(255,255,255,.08);display:flex;align-items:center;gap:10px}
.read-track{flex:1;background:rgba(255,255,255,.15);overflow:hidden}
.read-fill{height:100%;background:linear-gradient(90deg,#9FDCC0,#C5EED9);transition:width var(--t-slow)}
.read-lbl{font-size:var(--fs-xs);font-weight:600;color:#ACE1C9;white-space:nowrap}

/* ── seção header ── */
.sec-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px 12px;border-bottom:1px solid var(--line)}
.sec-title{font-family:var(--font-sc);font-size:var(--fs-md);font-weight:600;letter-spacing:var(--ls-sc);color:var(--navy)}

/* ── activity feed ── */

.act-name{font-size:var(--fs-md);font-weight:600;color:var(--ink)}

/* ── avatares ── */
.av{width:36px;height:36px;border-radius:50%;background:var(--surface2);border:2px solid var(--line);display:grid;place-items:center;font-family:var(--font-serif);font-size:1rem;font-weight:600;flex-shrink:0}
.av.lido{border-color:var(--ok);background:var(--ok-soft);color:var(--ok)}
.av.lendo{border-color:var(--navy-mid);background:var(--navy-soft);color:var(--navy)}
.av.fila{border-color:var(--line);background:var(--surface2);color:var(--muted)}
.av-stack{display:flex;flex-wrap:wrap;gap:6px}
.av-stack .av,.av-stack .av-img{width:32px;height:32px;font-size:.85rem}
.av-stack>span{display:inline-flex}
/* Foto no lugar da inicial: o anel de cor continua indicando o status */
.av-img.lido{border-color:var(--ok)}
.av-img.lendo{border-color:var(--navy-mid)}
.av-img.fila{border-color:var(--line)}
.pay-av{width:36px;height:36px}

/* ── encontro ── */

.meeting-top{padding:18px 18px 14px;background:linear-gradient(135deg,var(--navy-soft) 0%,var(--surface) 100%);border-bottom:1px solid var(--line)}
.meeting-eye{font-family:var(--font-sc);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-eyebrow);color:var(--navy);margin-bottom:6px}
.meeting-countdown{font-family:var(--font-serif);font-size:var(--fs-xl);font-weight:600;line-height:1.1;margin-bottom:8px;color:var(--ink)}
.meeting-countdown span{color:var(--navy)}
.meeting-detail{font-size:var(--fs-md);color:var(--muted);display:flex;flex-direction:column;gap:4px}
.meeting-detail b{color:var(--ink)}
.conf-body{padding:14px 18px}
.conf-label{font-family:var(--font-sc);font-size:var(--fs-xs);font-weight:600;letter-spacing:var(--ls-sc);color:var(--muted);margin-bottom:10px}
.nao-vai{font-size:var(--fs-sm);color:var(--muted);margin-top:8px}
.rsvp-hint{padding:8px 18px 14px;font-size:var(--fs-sm);color:var(--muted);display:flex;align-items:center;gap:5px}
.rsvp-hint a{color:var(--navy);font-weight:600;text-decoration:none}
.rsvp-closed-card{border-left:3px solid var(--muted)}
.rsvp-closed-inner{display:flex;align-items:center;gap:14px;padding:14px 18px}
.rsvp-closed-icon{font-size:1.5rem;line-height:1;flex-shrink:0}
.rsvp-closed-title{font-weight:600;font-size:var(--fs-md);color:var(--ink);margin-bottom:2px}
.rsvp-closed-sub{font-size:var(--fs-sm);color:var(--muted)}
.meeting-badge{display:inline-block;vertical-align:middle;margin-left:6px}

/* ── votos ── */
.votos-body{padding:16px 18px}
.votos-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.votos-lbl{font-family:var(--font-sc);font-size:var(--fs-sm);font-weight:600;letter-spacing:var(--ls-sc);color:var(--navy)}
.votos-frac{font-size:var(--fs-sm);color:var(--muted)}
.prog-track{background:var(--surface2);overflow:hidden;margin-bottom:12px;border:1px solid var(--line)}
.prog-fill{height:100%;background:linear-gradient(90deg,var(--navy),var(--navy-mid))}
.vote-chips{display:flex;flex-wrap:wrap;gap:6px}

.faltam-label{font-size:var(--fs-sm);color:var(--muted);margin-top:8px}
.faltam-label span{color:var(--err)}

/* ── mini hero (meus livros) ── */
.mini-hero{display:flex;gap:14px;align-items:center;padding:16px 18px;background:linear-gradient(135deg,var(--navy-soft),var(--surface))}
.mini-cover{object-fit:cover;box-shadow:var(--sh-3);border:1px solid rgba(69,95,122,.2)}
.mini-cover-ph{background:var(--navy-soft);display:grid;place-items:center;font-size:1.5rem}
.mini-label{font-family:var(--font-sc);font-size:var(--fs-sm);font-weight:600;letter-spacing:var(--ls-eyebrow);color:var(--navy);margin-bottom:4px;display:block}
.mini-title{font-family:var(--font-serif);font-size:var(--fs-2xl);font-weight:700;color:var(--ink);line-height:1.2}
.mini-author{font-size:var(--fs-md);color:var(--navy);font-family:var(--font-sans)}

/* ── sec divider ── */
.sec-divider{display:block;font-family:var(--font-sc);font-size:var(--fs-sm);font-weight:600;letter-spacing:var(--ls-eyebrow);color:var(--navy);margin-bottom:12px;text-transform:uppercase}

/* ── infos do livro (accordion) ── */
.book-accordion{padding:0;overflow:hidden}
.ac-tabs{display:flex}
.ac-tab-btn{flex:1;display:flex;align-items:center;justify-content:center;padding:9px 6px;min-height:44px;cursor:pointer;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;position:relative;-webkit-tap-highlight-color:transparent;user-select:none;transition:background var(--t-fast),border-color var(--t-mid)}
.ac-tab-btn+.ac-tab-btn{border-left:1px solid var(--line)}
.ac-tab-btn:hover{background:var(--surface2)}
.ac-tab-btn[aria-expanded="true"]{background:var(--navy-soft);border-bottom-color:var(--navy)}
.ac-tab-lbl{font-family:var(--font-sc);font-size:var(--fs-sm);font-weight:600;letter-spacing:var(--ls-sc);color:var(--navy);line-height:1;text-align:center}
.ac-tab-chev{font-size:.6rem;color:var(--muted);transition:transform var(--t-mid);line-height:1;margin-left:5px;flex-shrink:0}
.ac-tab-btn[aria-expanded="true"] .ac-tab-chev{transform:rotate(180deg)}

.ac-tabs-border{height:1px;background:var(--line)}
.ac-panel{padding:12px 18px 14px;animation:fadeIn .15s ease}
.ac-panel-author{font-size:var(--fs-sm);font-weight:600;color:var(--navy);margin-bottom:8px}
@keyframes fadeIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}
.book-text{font-size:var(--fs-md);line-height:1.6;color:var(--muted);margin:0}
.other-books-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:4px}
.other-books-list li{font-size:var(--fs-md);line-height:1.6;color:var(--muted)}

/* ── progresso de leitura (opções) ── */
.read-section{padding:18px}
.read-options{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.read-option{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:5px;padding:14px 8px 12px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg);cursor:pointer;transition:all var(--t-fast);-webkit-tap-highlight-color:transparent;text-align:center;flex:1;font-family:var(--font-sans);color:inherit}
.read-option:hover{border-color:var(--navy-mid);background:var(--navy-soft)}
.read-option.selected-lido{border-color:var(--ok);background:var(--ok-soft)}
.read-option.selected-lendo{border-color:var(--navy-mid);background:var(--navy-soft)}
.read-option.selected-fila{border-color:var(--muted);background:var(--surface2)}
.read-option.selected-abandonei{border-color:var(--navy);background:var(--surface2)}
.ro-icon{font-size:1.5rem;flex-shrink:0;margin-top:2px}
.ro-info{min-width:0;width:100%}
.ro-label{font-size:var(--fs-sm);font-weight:600;color:var(--ink);line-height:1.2}
.ro-desc{display:block;font-size:var(--fs-xs);color:var(--muted);line-height:1.3;margin-top:2px}
.ro-check{position:absolute;top:6px;right:6px;width:15px;height:15px;border-radius:50%;border:1px solid var(--line);display:grid;place-items:center;font-size:.55rem;transition:all var(--t-fast)}
.selected-lido .ro-check{background:var(--ok);border-color:var(--ok);color:#fff}
.selected-lendo .ro-check{background:var(--navy-mid);border-color:var(--navy-mid);color:#fff}
.selected-fila .ro-check{background:var(--muted);border-color:var(--muted);color:#fff}
.selected-abandonei .ro-check{background:var(--navy);border-color:var(--navy);color:#fff}
@media(max-width:360px){.read-options{flex-direction:column}.ro-desc{display:none}}

/* ── votação ── */
.vote-section{padding:18px}
.vote-title{font-family:var(--font-serif);font-size:var(--fs-lg);font-weight:600;color:var(--ink);margin-bottom:4px}
.vote-sub{font-size:var(--fs-md);color:var(--muted);margin-bottom:16px}

/* ── RSVP ── */
.rsvp-section{padding:18px}
.meeting-info-box{font-size:var(--fs-md);background:var(--navy-soft);border-radius:var(--r-sm);padding:10px 14px;margin-bottom:14px;display:flex;flex-direction:column;gap:4px;border:1px solid rgba(69,95,122,.2);color:var(--muted)}
.meeting-info-box b{color:var(--ink)}
.rsvp-cards{display:flex;gap:10px}
.rsvp-card{flex:1;border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg);padding:14px 12px;text-align:center;cursor:pointer;transition:all var(--t-mid);-webkit-tap-highlight-color:transparent;font-family:var(--font-sans);color:inherit}
.rsvp-card:hover{border-color:var(--muted)}
.rsvp-card.sim{border-color:var(--ok);background:var(--ok-soft)}
.rsvp-card.nao{border-color:var(--err);background:var(--err-soft)}
.rsvp-ico{font-size:1.8rem;margin-bottom:6px;display:block}
.rsvp-lbl{font-family:var(--font-sc);font-size:var(--fs-md);font-weight:600;letter-spacing:var(--ls-sc);display:block}
.rsvp-lbl.sim{color:var(--ok)}
.rsvp-lbl.nao{color:var(--err)}
.rsvp-desc{font-size:var(--fs-xs);color:var(--muted);margin-top:3px;display:block}

/* ── resultado ── */
.result{text-align:center}
.result-body{padding:24px 18px;text-align:center}
.result-eye{font-family:var(--font-sc);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-sc);color:var(--navy);margin-bottom:12px}
.result-stars{font-size:2rem;letter-spacing:2px;color:var(--navy);margin-bottom:6px}
.result-score{font-family:var(--font-serif);font-size:2.8rem;font-weight:600;line-height:1}
.result-score small{font-size:1rem;color:var(--muted);font-family:var(--font-sans)}
.result-meta{font-size:var(--fs-sm);color:var(--muted);margin-top:6px}
.big{font-family:var(--font-serif);font-size:3.6rem;font-weight:600;line-height:1;color:var(--navy)}
.big small{font-size:1.1rem;color:var(--muted)}

/* ── distribuição ── */
.dist{display:grid;grid-template-columns:repeat(11,1fr);gap:3px;height:120px;margin:18px 0 8px;align-items:end}
.dist .col{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.dist .bar{width:100%;background:var(--navy);min-height:2px;border-radius:var(--r-xs)}
.dist .c{font-size:var(--fs-sm);color:var(--muted);min-height:1em}
.dist .k{font-size:var(--fs-xs);color:var(--muted);font-variant-numeric:tabular-nums}

/* ── estrelas picker ── */
.star-picker{display:flex;justify-content:center;gap:6px;padding:20px 0 8px;cursor:pointer;touch-action:manipulation}
.star-picker:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:var(--r-md)}
.sp-star{position:relative;display:inline-block;font-size:clamp(2rem,calc((100vw - 96px)/5),2.6rem);line-height:1;user-select:none;touch-action:manipulation}
.sp-bg,.sp-fg{display:block;line-height:1}
.sp-bg{color:var(--line)}
.sp-fg{position:absolute;top:0;left:0;overflow:hidden;color:var(--navy);white-space:nowrap;width:0}
.sp-h,.sp-f{position:absolute;top:0;height:100%;z-index:1}
.sp-h{left:0;width:50%}
.sp-f{right:0;width:50%}

/* ── estrelas exibição ── */
.stars-disp{display:inline-flex;gap:1px;font-size:1.5rem;line-height:1;vertical-align:middle}
.sd-f{color:var(--navy)}
.sd-h{position:relative;color:var(--line);display:inline-block}
.sd-h::after{content:'★';position:absolute;left:0;top:0;width:50%;overflow:hidden;color:var(--navy)}
.sd-e{color:var(--line)}
.stars-big{text-align:center;margin-bottom:4px;line-height:1}
.stars-big .stars-disp{font-size:2rem}

/* ── score preview ── */
.score-preview{height:24px;font-size:var(--fs-md);color:var(--muted);margin-bottom:16px}
.score-preview strong{font-size:1rem;color:var(--navy);font-weight:700}

/* ── progresso ── */
.progress{background:var(--line);overflow:hidden;margin:6px 0 12px}
.progress span{display:block;height:100%;background:var(--navy)}

/* ── nomes ── */
.names{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}

/* ── tag ── */

.tag.aberta{border-color:var(--ok)}
.tag.revelada{border-color:var(--navy)}
.tag.lock{border-color:var(--navy)}
.tag.fechada{border-color:var(--muted)}

/* ── formulários ── */
.stack{display:flex;flex-direction:column;gap:14px}
label{display:flex;flex-direction:column;gap:6px;font-size:var(--fs-md);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--muted)}
input,textarea,select{font:15px/1.5 var(--font-sans);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:var(--r-sm);padding:11px 12px;width:100%;letter-spacing:0}
textarea{font-family:var(--font-sans);resize:vertical;min-height:72px;transition:border-color var(--t-fast);line-height:1.6}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--navy)}
textarea::placeholder{color:var(--muted)}
.btn{font:700 var(--fs-md) var(--font-sans);border:0;border-radius:var(--r-sm);padding:12px 18px;background:var(--navy);color:var(--btn-ink,var(--cream));cursor:pointer;text-align:center;text-transform:uppercase;letter-spacing:var(--ls-caps);transition:opacity var(--t-fast);display:inline-block;text-decoration:none}
.btn:hover{opacity:.88}
.btn.ghost{background:transparent;color:var(--navy);border:1px solid var(--line)}
.btn.small{padding:7px 12px;font-size:var(--fs-sm)}

.btn:disabled{opacity:.6;cursor:default}

/* ── bloco de notas ── */

.edit-ta{width:100%;min-height:100px;resize:vertical;border:1.5px solid var(--navy-mid);border-radius:var(--r-md);padding:12px 14px;font:15px/1.7 var(--font-sans);color:var(--ink);background:var(--bg)}
[data-theme="dark"] .edit-ta{background:var(--surface2)}
.edit-ta:focus{outline:2px solid var(--navy);outline-offset:1px}   /* a borda já é navy-mid: sem contorno, o foco não aparecia */
.edit-footer{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}
.alert{padding:10px 14px;border-radius:var(--r-sm);background:var(--navy-soft);color:var(--ink);font-size:var(--fs-md)}
.alert.ok{background:var(--ok-soft);color:var(--ok)}
.alert.err{background:var(--err-soft);color:var(--err)}

/* ── estante ── */
.seg{display:flex;background:var(--surface2);padding:2px;border:1px solid var(--line);border-radius:var(--r-sm);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.seg::-webkit-scrollbar{display:none}
.seg a{padding:5px 12px;text-decoration:none;color:var(--muted);font-size:var(--fs-sm);font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-caps);border-radius:var(--r-sm);white-space:nowrap;flex-shrink:0}
.seg a.on{background:var(--surface);color:var(--navy)}
.list{list-style:none;padding:0;margin:8px 0 0}
.list b{display:block}
.pos{font-family:var(--font-serif);font-weight:700;width:2ch;color:var(--muted)}
.score{font-family:var(--font-serif);font-size:var(--fs-xl);font-weight:600;color:var(--navy);text-align:right;display:flex;flex-direction:column;line-height:1.1}
.score .small{font-family:var(--font-sans);font-weight:400}
.list li{border-top:1px solid var(--line)}
.list li.off{opacity:.5}
.list .link,.list summary{padding:14px 18px;text-decoration:none;color:var(--ink);cursor:pointer;list-style:none;display:flex;align-items:center}
.list summary::-webkit-details-marker{display:none}
/* lista dentro de card: sem margem extra e sem borda dupla no 1º item */
.card > .list{margin-top:0}
.card > .list > li:first-child{border-top:none}
/* form expandível (details.add) dentro de card: garante padding horizontal */
.card > .add > form{padding:0 18px 18px}
/* card com conteúdo direto (sem componente interno com padding próprio) */
.card-padded{padding:18px}

/* ── ações e inline ── */
.actions{display:flex;flex-direction:column;gap:10px;padding:4px 18px 14px}
.actions form+form{padding-top:10px;border-top:1px solid var(--line)}
.inline{display:flex;gap:8px;flex-wrap:wrap}
.inline input{flex:1;min-width:160px;padding:8px 10px}
.seg-form{display:flex;gap:6px;flex-wrap:wrap;margin-top:12px}

/* ── add (details/summary) ── */
.add{margin:8px 0}
.add summary{list-style:none;display:inline-block}
.add summary::-webkit-details-marker{display:none}
.add[open] summary{margin-bottom:14px}

/* ── tabela ── */
.tbl{width:100%;border-collapse:collapse;margin-top:8px}
.tbl th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--muted);font-weight:700;padding:6px 8px;border-bottom:1px solid var(--line)}
.tbl td{padding:10px 8px;border-bottom:1px solid var(--line);vertical-align:top;font-size:var(--fs-md)}
.tbl th:first-child,.tbl td:first-child{padding-left:18px}
.tbl th:last-child,.tbl td:last-child{padding-right:18px}
.tbl .num{font-weight:700;color:var(--navy);font-variant-numeric:tabular-nums}

/* ── blockquote ── */
blockquote{margin:0 0 10px;padding:10px 14px;border-left:2px solid var(--navy);background:var(--surface2);font-style:italic;font-family:var(--font-serif);font-size:var(--fs-base);border-radius:0 var(--r-sm) var(--r-sm) 0}

/* ── cover-row ── */
.cover-row{display:flex;gap:8px;align-items:center}
.cover-row input{flex:1}

/* ── form-divider ── */
.form-divider{font-size:var(--fs-xs);font-weight:700;text-transform:uppercase;letter-spacing:var(--ls-sc);color:var(--muted);padding:6px 0 2px;border-top:1px solid var(--line);margin-top:2px}

/* ── chev ── */
.chev{color:var(--muted);font-size:1rem;transition:transform var(--t-mid);display:inline-block;line-height:1}
.list details[open]>summary .chev{transform:rotate(90deg)}

/* ── lista de presença ── */
.roll-list{list-style:none;padding:0;margin:0}
.roll-item{display:flex;align-items:center;gap:12px;padding:11px 18px;border-bottom:1px solid var(--line)}
.roll-item:last-child{border-bottom:0}
.roll-item input[type=checkbox]{width:17px;height:17px;accent-color:var(--navy);cursor:pointer;flex-shrink:0;margin:0}
.roll-item.checked .roll-name{color:var(--navy)}

/* ── convite ── */
.invite-box{display:flex;gap:8px;align-items:center;background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-sm);padding:10px 12px;margin-top:10px}
.invite-box code{flex:1;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--navy)}
.invite-box .btn{white-space:nowrap}

/* ── bottom nav ── */
.bottom-nav{position:fixed;bottom:0;left:0;right:0;background:rgba(244,232,222,.97);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-top:1px solid var(--line);display:flex;padding:4px 6px calc(4px + env(safe-area-inset-bottom));box-shadow:0 -2px 16px rgba(43,61,80,.08);z-index:10}
.nav-btn{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:1px;padding:4px 0 2px;font-family:var(--font-sc);font-size:var(--fs-sm);font-weight:600;letter-spacing:var(--ls-sc);line-height:1.2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted);cursor:pointer;border-radius:var(--r-sm);border:none;background:transparent;text-decoration:none;transition:color var(--t-fast)}
.nav-btn .ico{font-size:1.15rem;line-height:1.15}
.nav-btn.on{color:var(--navy)}
@media(min-width:520px){.bottom-nav{max-width:520px;left:50%;transform:translateX(-50%);border-radius:var(--r-xl) var(--r-xl) 0 0}}

/* ── perfil: hero ── */

.profile-stats{display:flex;gap:24px;margin-top:16px;padding-top:16px;border-top:1px solid var(--line);width:100%;justify-content:center}
.stat-item{display:flex;flex-direction:column;align-items:center;gap:2px}
.stat-val{color:var(--navy)}

.stat-div{width:1px;background:var(--line);align-self:stretch}

/* Painéis do Perfil */
.tab-panel{display:none}
.tab-panel.on{display:block}

/* ── perfil: acordeão livro ── */
.book-row{border-bottom:1px solid var(--line)}
.book-row:last-child{border-bottom:0}
.book-row-head{display:flex;align-items:center;gap:12px;padding:14px 16px;cursor:pointer;transition:background var(--t-fast);-webkit-tap-highlight-color:transparent;user-select:none}
.book-row-head:hover{background:var(--surface2)}
.book-cover-sm{background:var(--cover-ph);display:grid;place-items:center;font-size:1.1rem;box-shadow:var(--sh-2);flex-shrink:0;object-fit:cover}
.book-info{flex:1;min-width:0}
.book-title-sm{font-family:var(--font-serif);font-size:var(--fs-base);font-weight:600;color:var(--ink);line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.book-author-sm{font:italic var(--fs-sm) var(--font-serif);color:var(--muted);margin-top:1px}
.book-note-count{display:inline-flex;align-items:center;gap:4px;margin-top:4px;font-size:var(--fs-sm);color:var(--navy);font-weight:600}
.book-chev{font-size:1.1rem;color:var(--muted);transition:transform var(--t-mid);line-height:1;flex-shrink:0}
.book-row.open .book-chev{transform:rotate(90deg)}
.book-row-body{display:none;border-top:1px solid var(--line)}
.book-row.open .book-row-body{display:block}

/* ── perfil: barra add nota ── */
.add-note-bar{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;background:var(--surface2);border-bottom:1px solid var(--line)}
.add-note-quota{font-size:var(--fs-sm);color:var(--muted);font-variant-numeric:tabular-nums}
.add-note-quota.full{color:var(--err)}
.btn-add-note{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:var(--r-sm);border:1.5px dashed var(--navy-mid);background:transparent;color:var(--navy);font:600 var(--fs-sm) var(--font-sans);cursor:pointer;transition:all var(--t-fast)}
.btn-add-note:hover{background:var(--navy-soft);border-style:solid}
.btn-add-note:disabled{opacity:.4;cursor:not-allowed;border-style:dashed}

/* ── perfil: form nova nota ── */
.new-note-form{padding:14px 16px;border-bottom:1px solid var(--line);display:none;background:var(--bg)}
.new-note-form.open{display:block}
.notes-ta{width:100%;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:15px/1.7 var(--font-sans);padding:12px 14px;resize:vertical;min-height:110px;transition:border-color var(--t-fast);outline:none;margin-bottom:8px}
.notes-ta:focus{border-color:var(--navy)}
.notes-progress{background:var(--surface2);overflow:hidden;margin-bottom:8px}
.notes-progress-fill{height:100%;background:linear-gradient(90deg,var(--warn),var(--warn-ink));transition:width var(--t-mid)}
.form-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.form-hint{font-size:var(--fs-sm);color:var(--muted)}
.form-actions{display:flex;gap:8px}

/* ── perfil: entrada de nota individual ── */
.note-entry{border-bottom:1px solid var(--line)}
.note-entry:last-child{border-bottom:0}
.note-entry-head{display:flex;align-items:flex-start;gap:10px;padding:11px 16px;cursor:pointer;transition:background var(--t-fast);-webkit-tap-highlight-color:transparent}
.note-entry-head:hover{background:var(--surface2)}
.note-entry-date{font-size:var(--fs-xs);color:var(--muted);white-space:nowrap;padding-top:2px;flex-shrink:0;min-width:68px}
.note-entry-preview{flex:1;font-size:var(--fs-md);color:var(--ink);line-height:1.5;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}
.note-entry-chev{font-size:.95rem;color:var(--muted);transition:transform var(--t-mid);flex-shrink:0;padding-top:2px}
.note-entry.open .note-entry-chev{transform:rotate(90deg)}
.note-entry-body{display:none;padding:0 16px 14px}
.note-entry.open .note-entry-body{display:block}
.note-entry-edit{display:none;padding:0 16px 14px}
.note-entry.editing .note-entry-body{display:none}
.note-entry.editing .note-entry-edit{display:block}
.note-entry.editing .note-entry-head{background:var(--surface2);cursor:default;pointer-events:none}
.note-content-box{background:var(--surface2);border:1px solid var(--line);border-radius:var(--r-md);padding:12px 14px;margin-bottom:10px}
.note-content{font:14px/1.8 var(--font-sans);color:var(--ink);white-space:pre-wrap;word-break:break-word}
.note-foot{display:flex;align-items:center;justify-content:space-between;gap:8px}
.note-char{font-size:var(--fs-xs);color:var(--muted)}

/* ── perfil: confirm delete ── */
.confirm-del{display:none;background:var(--err-soft, var(--err-soft));border:1px solid var(--err);border-radius:var(--r-sm);padding:10px 14px;margin-top:8px;font-size:var(--fs-md);color:var(--err);text-align:center}
.confirm-del.show{display:block}
.confirm-del-actions{display:flex;gap:8px;justify-content:center;margin-top:8px}

/* ── perfil: estado vazio de anotações ── */
.notes-book-empty{padding:32px 20px;text-align:center}
.notes-book-empty .ico{font-size:2.6rem;display:block;opacity:.35;margin-bottom:12px}
.notes-book-empty p{font-family:var(--font-serif);font-size:var(--fs-lg);font-weight:600;color:var(--ink);margin-bottom:8px}
.notes-book-empty small{font-size:var(--fs-md);color:var(--muted);line-height:1.7}

/* ── pagamentos ── */

.pay-alert-box{background:var(--err-soft);border:1px solid var(--err);border-radius:var(--r-md);padding:10px 16px;font-size:var(--fs-md);color:var(--err);margin-bottom:12px}
.pay-nav{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.pay-nav-month{font-family:var(--font-sc);font-size:var(--fs-lg);font-weight:600;letter-spacing:var(--ls-sc);color:var(--navy)}
.pay-nav-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--r-sm);background:var(--surface);border:1px solid var(--line);color:var(--navy);font-size:1.1rem;font-weight:700;text-decoration:none;transition:background var(--t-fast)}
.pay-nav-btn:hover{background:var(--surface2)}
.pay-summary{display:flex;align-items:stretch;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;margin-bottom:14px;box-shadow:var(--sh-2)}
.pay-sum-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:16px 8px;gap:4px}
.pay-sum-divider{width:1px;background:var(--line);align-self:stretch}
.pay-sum-val{color:var(--navy)}
.pay-sum-val.pay-pending{color:var(--err)}
.pay-sum-val.pay-ok{color:var(--ok)}

.pay-row{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line);transition:background var(--t-fast)}
.pay-row:last-child{border-bottom:none}
.pay-row.paid{background:var(--ok-soft)}
.pay-member{display:flex;align-items:center;gap:10px;flex:1;min-width:0}
.pay-name{font-size:var(--fs-md);font-weight:600;color:var(--ink)}
.pay-date{font-size:var(--fs-sm);color:var(--muted);margin-top:1px}
.pay-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.pay-form{display:flex;align-items:center}
/* cards recolhíveis (details.fold dentro do .card, summary = .sec-head) */
.fold>summary{list-style:none;cursor:pointer}
.fold>summary::-webkit-details-marker{display:none}
.fold:not([open])>summary.sec-head{border-bottom:none}
.sec-right{display:flex;align-items:center;gap:18px}
.fold-chev{color:var(--muted);font-size:1.2rem;line-height:1;transition:transform var(--t-mid)}
.fold[open] .fold-chev{transform:rotate(90deg)}
.sec-plus{width:36px;height:36px;border-radius:50%;border:none;background:var(--navy);color:var(--on-accent);font-size:1.15rem;line-height:1;cursor:pointer;display:grid;place-items:center;box-shadow:var(--sh-2)}
.sec-plus:active{transform:scale(.9)}
/* caixa do mês */
.caixa-hero{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 18px 14px}
.caixa-hero-lbl{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--muted)}
.caixa-hero-val{font:700 1.75rem/1 var(--font-sans);letter-spacing:-.01em}
.caixa-hero.ok .caixa-hero-val,.caixa-pos{color:var(--ok)}
.caixa-hero.neg .caixa-hero-val,.caixa-neg{color:var(--err)}
.caixa-linhas{margin:0 18px 14px;padding:10px 14px;background:var(--surface2);border-radius:var(--r-md)}
.caixa-linhas>div{display:flex;justify-content:space-between;gap:12px;padding:4px 0;font-size:var(--fs-md);color:var(--muted)}
.caixa-linhas b{font-weight:600;color:var(--ink);white-space:nowrap}
.caixa-linhas b.caixa-pos{color:var(--ok)}.caixa-linhas b.caixa-neg{color:var(--err)}
.caixa-sub{display:flex;align-items:center;justify-content:space-between;padding:10px 18px 8px;border-top:1px solid var(--line);font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--muted)}
.caixa-vazio{padding:0 18px 16px}
.caixa-item+.caixa-item{border-top:1px solid var(--line)}
.caixa-item summary{display:flex;align-items:center;gap:10px;padding:11px 18px;cursor:pointer;list-style:none;font-size:var(--fs-md)}
.caixa-item summary::-webkit-details-marker{display:none}
.caixa-dia{font-size:var(--fs-sm);font-weight:600;color:var(--muted);background:var(--surface2);border-radius:var(--r-sm);padding:2px 6px;flex-shrink:0}
.caixa-desc{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink)}
.caixa-item b{white-space:nowrap}
.caixa-item[open]{background:var(--surface2)}
.caixa-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:4px 18px 16px}
#caixa-nova{padding-top:6px;border-bottom:1px solid var(--line)}
.caixa-form[hidden]{display:none}
.caixa-form label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);font-weight:600;color:var(--muted);margin:0}
.caixa-form input{width:100%;min-width:0}
.caixa-full{grid-column:1/-1}
.caixa-form-tit{grid-column:1/-1;font-size:var(--fs-md);font-weight:600;color:var(--navy)}
.caixa-btns{display:flex;justify-content:space-between;gap:8px}
.caixa-btns .btn:only-child{margin-left:auto}
.pay-padrao{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:0;padding:10px 18px;border-bottom:1px solid var(--line)}
.pay-amount-input{width:72px;border:1px solid var(--line);border-radius:var(--r-sm);padding:6px 8px;font-size:var(--fs-md);color:var(--ink);background:var(--bg);text-align:right;font-family:var(--font-sans);transition:border-color var(--t-fast)}
.pay-amount-input:focus{outline:none;border-color:var(--navy-mid)}
.pay-toggle{padding:7px 14px;border-radius:var(--r-sm);border:1px solid var(--line);background:transparent;color:var(--muted);font:600 var(--fs-sm) var(--font-sans);cursor:pointer;transition:all var(--t-mid);white-space:nowrap}
.pay-toggle:hover{border-color:var(--ok);color:var(--ok)}
.pay-toggle.is-paid{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}
.pay-toggle.is-paid:hover{background:var(--err-soft);border-color:var(--err);color:var(--err)}
.pay-hist-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
.pay-hist{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}
.pay-hist th,.pay-hist td{padding:8px 10px;text-align:center;border-bottom:1px solid var(--line)}
.pay-hist-name{text-align:left!important;font-weight:600;color:var(--ink);white-space:nowrap;min-width:90px;max-width:120px}
.pay-hist thead th{font-family:var(--font-sc);font-size:var(--fs-xs);letter-spacing:var(--ls-sc);color:var(--muted);font-weight:600;background:var(--surface2)}
.pay-hist-current{background:var(--navy-soft)!important}
.pay-hist-dot{display:inline-block;width:12px;height:12px;border-radius:50%;transition:transform var(--t-fast)}
.pay-hist-dot:hover{transform:scale(1.3)}
a.pay-hist-dot{text-decoration:none}
.pay-hist-dot.paid{background:var(--ok)}
.pay-hist-dot.pending{background:var(--line)}
.pay-hist-dot.empty{background:transparent;border:1px solid var(--line)}
.pay-hist-legend{display:flex;gap:16px;padding:10px 18px;font-size:var(--fs-sm);color:var(--muted);align-items:center}
.pay-hist-legend span{display:flex;align-items:center;gap:6px}

/* ── admin helpers ── */
.waitlist-item{display:flex;align-items:center;justify-content:space-between;padding:10px 18px;border-bottom:1px solid var(--line);gap:12px}
.waitlist-item:last-child{border-bottom:none}
.waitlist-name{font-weight:600;font-size:var(--fs-md)}
.waitlist-meta{font-size:var(--fs-sm);color:var(--muted)}
.member-info{font-size:var(--fs-md);color:var(--muted);display:flex;flex-direction:column;gap:4px;padding:4px 0 10px;border-bottom:1px solid var(--line)}

/* ── dark mode ── */
[data-theme="dark"]{
  --bg:#111C28; --surface:#172030; --surface2:#1D2A3A;
  --ink:#F0E8DF; --muted:#8092A5; --line:#243040;   /* muted: 4,5:1 sobre --surface2 (antes #6B8096, 3,6:1) */
  --navy:#8AB0CC; --navy-mid:#6B9AB5; --navy-soft:#1A2A3C;   /* era igual ao --surface: selo e item selecionado sumiam */
  --cream:#F0E8DF;
  --ok:#5FA882; --ok-soft:#0D2218;
  --err:#CD7C6E; --err-soft:#2A1210;
  --warn:#C8986A;
  --accent-ink:#111C28;
  --btn-ink:#111C28;   /* texto do botão cheio: o creme sobre o azul claro dava 1,9:1 */
  --on-accent:#111C28;
  --warn-ink:#E8B860; --warn-soft:#2B2110;
  --line-soft:#1F2B3B; --cover-ph:#26354A;
  --shadow-c:0,0,0;
}
[data-theme="dark"] .top{background:rgba(17,28,40,.95)}
[data-theme="dark"] .book-hero-inner{background:linear-gradient(135deg,#0D1620 0%,#1D2A3A 100%)}
[data-theme="dark"] .read-bar-wrap{background:#0D1620}
[data-theme="dark"] .mini-hero{background:linear-gradient(135deg,#172030,#1D2A3A)}
[data-theme="dark"] .bottom-nav{background:rgba(17,28,40,.97)}
[data-theme="dark"] input,[data-theme="dark"] textarea,[data-theme="dark"] select{background:var(--surface2);border-color:var(--line)}
[data-theme="dark"] .read-option{background:var(--surface2)}
[data-theme="dark"] .rsvp-card{background:var(--surface2)}
[data-theme="dark"] .aviso-ta{background:var(--surface2)}
[data-theme="dark"] .aviso-priority-select{background:var(--surface2)}
[data-theme="dark"] .aviso-item.unread{background:var(--navy-soft)}
[data-theme="dark"] .aviso-item.pri-alerta-item.unread{background:var(--err-soft)}
[data-theme="dark"] .meeting-info-box{background:var(--surface2)}
[data-theme="dark"] .new-note-form{background:var(--surface2)}
[data-theme="dark"] .notes-ta{background:var(--surface2)}
[data-theme="dark"] .note-content-box{background:var(--bg)}

/* ═══════════════════════════════════════════════════════════
   BIBLIOTECA PESSOAL
═══════════════════════════════════════════════════════════ */

/* ── Menu da biblioteca (protótipo 10): busca + origem cíclica numa linha; situações em ícones no topo da lista ── */
.lib-controls{display:flex;gap:8px;align-items:stretch}
.lib-search-wrap{position:relative;flex:1;min-width:0}
.lib-search-ico{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);pointer-events:none;display:flex}
.lib-search-inp{width:100%;height:100%;min-height:46px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:15px var(--font-sans);padding:10px 44px 10px 38px;outline:none;box-shadow:var(--sh-2);transition:border-color var(--t-fast)}
.lib-search-inp::placeholder{color:var(--muted)}
.lib-search-inp:placeholder-shown{padding-right:12px}
.lib-search-inp:focus{border-color:var(--navy);box-shadow:0 0 0 2px var(--navy-soft)}
.lib-search-clear{position:absolute;right:1px;top:50%;transform:translateY(-50%);width:44px;height:44px;background:none;border:none;border-radius:var(--r-md);cursor:pointer;color:var(--muted);display:none;align-items:center;justify-content:center;padding:0}
.lib-search-clear:hover{color:var(--ink)}
.lib-search-clear:focus-visible{outline:3px solid var(--navy);outline-offset:-3px}
.lib-origin-btn{flex:none;width:112px;min-height:46px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);color:var(--ink);font:600 var(--fs-base) var(--font-sc);letter-spacing:var(--ls-sc);cursor:pointer;box-shadow:var(--sh-2);transition:background var(--t-fast),border-color var(--t-fast)}
.lib-origin-btn svg{flex:none;color:var(--navy)}
.lib-origin-btn:hover{border-color:var(--navy-mid)}
.lib-origin-btn:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
.lib-origin-btn[data-src="pessoais"]{background:var(--surface2);border-color:var(--warn)}
.lib-origin-btn[data-src="clube"]{background:var(--navy-soft);border-color:var(--navy)}
.lib-tabs{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:0 8px;border-bottom:1px solid var(--line)}
.lib-tab{position:relative;display:flex;align-items:center;justify-content:center;min-width:0;min-height:52px;padding:0;border:0;border-bottom:3px solid transparent;border-radius:0;background:none;color:var(--muted);cursor:pointer;transition:background var(--t-fast),color var(--t-fast)}
.lib-tab:hover{color:var(--ink);background:var(--surface2)}
.lib-tab[aria-pressed="true"]{color:var(--navy);border-bottom-color:var(--navy);background:var(--navy-soft)}
[data-theme="dark"] .lib-tab[aria-pressed="true"]{background:var(--surface2)}
[data-theme="dark"] .lib-tab:hover{background:var(--bg)}
.lib-tab:focus-visible{outline:3px solid var(--navy);outline-offset:-3px}
.lib-tab-tip{position:absolute;top:calc(100% + 4px);left:50%;transform:translateX(-50%);padding:4px 8px;border-radius:var(--r-sm);background:var(--ink);color:var(--surface);font:600 var(--fs-sm) var(--font-sans);white-space:nowrap;pointer-events:none;opacity:0;z-index:3;transition:opacity var(--t-fast)}
.lib-tab:first-child .lib-tab-tip{left:0;transform:none}
.lib-tab:last-child .lib-tab-tip{left:auto;right:0;transform:none}
.lib-tab:focus-visible .lib-tab-tip{opacity:1}
@media (hover:hover){.lib-tab:hover .lib-tab-tip{opacity:1}}
@media (max-width:380px){.lib-origin-btn{width:100px;padding:8px 6px;gap:4px;font-size:var(--fs-md)}}
@media (prefers-reduced-motion:reduce){.lib-tab,.lib-tab-tip,.lib-origin-btn{transition:none}}

/* ── Item da lista de livros ── */
.lib-item{display:flex;align-items:center;gap:12px;padding:12px 18px;border-top:1px solid var(--line);cursor:pointer;text-decoration:none;color:inherit;transition:background var(--t-fast)}
.lib-item:hover{background:var(--surface2)}
.lib-item:first-child{border-top:none}
.lib-cover{object-fit:cover;flex-shrink:0;background:var(--surface2)}
.lib-cover-ph{background:var(--surface2);display:grid;place-items:center;font-size:1.3rem;flex-shrink:0}
.lib-info{flex:1;min-width:0}
.lib-title{font-family:var(--font-serif);font-size:var(--fs-lg);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lib-author{font-size:var(--fs-sm);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:1px}
.lib-badges{display:flex;gap:4px;margin-top:5px;flex-wrap:wrap}

.lib-empty{padding:32px 18px;text-align:center;color:var(--muted);font-size:var(--fs-md);line-height:1.6}

/* ── Detalhe do livro ── */
.bdet-hero{display:flex;gap:16px;padding:18px;align-items:flex-start}
.bdet-cover{object-fit:cover;flex-shrink:0;box-shadow:var(--sh-3)}
.bdet-cover-ph{background:var(--surface2);display:grid;place-items:center;font-size:2rem;flex-shrink:0}
.bdet-title{font-family:var(--font-serif);font-size:var(--fs-xl);font-weight:600;line-height:1.25}
.bdet-author{font-size:var(--fs-md);color:var(--muted);margin-top:4px}
.bdet-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}

.bdet-pill.clube{background:var(--navy-soft);color:var(--navy)}

/* Status selector no detalhe */
.bdet-status-grid{display:flex;flex-wrap:wrap;gap:6px;padding:0 18px 14px}
.bdet-so{display:flex;align-items:center;justify-content:center;gap:6px;padding:7px 10px;border-radius:var(--r-pill);border:1px solid var(--line);cursor:pointer;font-size:var(--fs-sm);background:var(--bg);transition:all var(--t-fast);white-space:nowrap;flex:1 1 0}
.bdet-so:hover{border-color:var(--navy-mid)}
.bdet-so.sel{border-color:var(--navy);background:var(--navy-soft);color:var(--navy);font-weight:600}
.bdet-so form{display:none}

/* Datas automáticas */
.bdet-dates{display:flex;gap:8px;flex-wrap:wrap;padding:0 18px 14px}
.bdet-vis-hint{font-size:var(--fs-sm);color:var(--muted);padding:0 18px 14px;margin:-4px 0 0}
.bdet-date-chip{font-size:var(--fs-sm);color:var(--muted);background:var(--surface2);padding:4px 10px;border-radius:var(--r-pill)}
.bdet-date-chip strong{color:var(--ink);font-weight:600}
.datas-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0 18px 16px}
.datas-form label{display:flex;flex-direction:column;gap:4px;font-size:var(--fs-sm);font-weight:600;color:var(--muted);margin:0}
.datas-form input{width:100%;min-width:0}
.datas-form-tit{grid-column:1/-1;font-size:var(--fs-md);font-weight:600;color:var(--navy)}
.datas-form-full{grid-column:1/-1}

/* Sinopse */

.bdet-synopsis-text{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.bdet-synopsis-text.expanded{display:block;-webkit-line-clamp:unset}
.bdet-synopsis-toggle{background:none;border:none;padding:4px 0;font-size:var(--fs-sm);color:var(--navy);cursor:pointer;font-family:var(--font-sans);display:block;margin-top:4px}
.bdet-synopsis-toggle:hover{text-decoration:underline}

/* Nota do clube */
.bdet-clube-box{margin:0 18px 14px;padding:12px 14px;border-radius:var(--r-md);background:var(--navy-soft);border:1px solid var(--line)}
.bdet-clube-avg{font-family:var(--font-serif);font-size:1.6rem;font-weight:600;color:var(--navy);line-height:1}
.bdet-clube-sub{font-size:var(--fs-sm);color:var(--muted);margin-top:2px}

/* Lixeira */
.bdet-acoes{position:absolute;top:12px;right:12px;display:flex;gap:8px}
.bdet-hero.com-edit .bdet-title{padding-right:66px}
.bdet-trash-form{margin:0}

/* Anotações no detalhe */
.bdet-note-item{padding:12px 18px;border-top:1px solid var(--line)}
.bdet-note-date{font-size:var(--fs-xs);color:var(--muted);margin-bottom:4px}
.bdet-note-text{font-size:var(--fs-md);line-height:1.6;white-space:pre-wrap}
.bdet-note-actions{display:flex;gap:8px;margin-top:8px}

/* ── FAB ── */
.fab{position:fixed;bottom:calc(66px + env(safe-area-inset-bottom));right:max(16px,calc(50% - 244px));z-index:5;
  width:50px;height:50px;border-radius:50%;background:var(--navy);
  color:var(--on-accent);border:none;font-size:1.55rem;cursor:pointer;
  box-shadow:var(--sh-3);display:grid;place-items:center;
  transition:transform var(--t-fast),opacity var(--t-mid)}
.fab:active{transform:scale(.9)}
.fab.hidden{opacity:0;pointer-events:none}

/* ── Overlay + Drawer ── */
.overlay{position:fixed;inset:0;background:rgba(0,0,0,.4);z-index:50;
  opacity:0;pointer-events:none;transition:opacity var(--t-mid)}
.overlay.open{opacity:1;pointer-events:all}
.drawer{position:fixed;bottom:0;left:50%;transform:translateX(-50%) translateY(105%);
  width:100%;max-width:520px;z-index:60;background:var(--surface);
  border-radius:var(--r-xl) var(--r-xl) 0 0;border:1px solid var(--line);border-bottom:0;
  max-height:92vh;overflow-y:auto;visibility:hidden;transition:transform .3s cubic-bezier(.32,1,.34,1),visibility 0s .3s}
/* Fechada, a gaveta sai da ordem do Tab e do leitor de tela (visibility); a animação de saída continua */
.drawer.open{transform:translateX(-50%) translateY(0);visibility:visible;transition:transform .3s cubic-bezier(.32,1,.34,1)}
.drawer-handle{width:36px;height:4px;background:var(--line);border-radius:var(--r-xs);margin:10px auto 4px}
.drawer-head{display:flex;align-items:center;justify-content:space-between;padding:8px 18px 6px}
.drawer-title{font-family:var(--font-sc);font-size:var(--fs-sm);font-weight:600;
  letter-spacing:var(--ls-sc);text-transform:uppercase;color:var(--muted)}
.drawer-close{width:36px;height:36px;border-radius:50%;border:none;background:var(--surface2);
  color:var(--muted);cursor:pointer;font-size:1rem;display:grid;place-items:center}

/* ── Busca no drawer ── */
.add-search-wrap{position:relative;padding:12px 18px 8px}
.add-search-ico{position:absolute;left:30px;top:50%;transform:translateY(-50%);
  font-size:.9rem;color:var(--muted);pointer-events:none}
.add-search-inp{width:100%;border:1px solid var(--line);border-radius:var(--r-md);
  background:var(--bg);color:var(--ink);font:15px var(--font-sans);
  padding:10px 13px 10px 34px;outline:none;transition:border-color var(--t-fast)}
.add-search-inp:focus{border-color:var(--navy)}
.add-search-hint{padding:6px 18px 4px;font-size:var(--fs-sm);color:var(--muted);
  display:flex;align-items:center;gap:7px}
.searching{padding:24px 18px;text-align:center;font-size:var(--fs-md);color:var(--muted)}
.searching::after{content:'';animation:dots 1s infinite steps(3)}
@keyframes dots{0%{content:''}33%{content:'.'}66%{content:'..'}100%{content:'...'}}

/* ── Resultados de busca ── */
.sr-item{display:flex;align-items:center;gap:12px;padding:10px 18px;
  cursor:pointer;transition:background var(--t-fast);border-bottom:1px solid var(--line)}
.sr-item:last-child{border-bottom:0}
.sr-item:hover{background:var(--surface2)}
.sr-cover{overflow:hidden;
  background:var(--surface2);display:grid;place-items:center;font-size:.9rem;
  border:1px solid var(--line);flex-shrink:0}
.sr-cover img{width:100%;height:100%;object-fit:cover;display:block}
.sr-title{font-family:var(--font-serif);font-size:var(--fs-md);font-weight:600;color:var(--ink)}
.sr-author{font:italic var(--fs-sm) var(--font-serif);color:var(--muted)}

/* ── Form de confirmação ── */
.add-form-hero{display:flex;gap:14px;align-items:flex-start;padding:14px 18px;
  background:linear-gradient(160deg,var(--navy-soft) 0%,var(--surface) 70%);
  border-bottom:1px solid var(--line)}
.af-cover{
  box-shadow:var(--sh-3);overflow:hidden;flex-shrink:0;
  background:var(--surface2);display:grid;place-items:center;font-size:1.7rem}
.af-cover img{width:100%;height:100%;object-fit:cover;display:block}
.af-title{font-family:var(--font-serif);font-size:var(--fs-lg);font-weight:600;
  line-height:1.25;margin-bottom:3px}
.af-author{font:italic var(--fs-sm) var(--font-serif);color:var(--muted)}
.af-meta{font-size:var(--fs-sm);color:var(--muted);margin-top:3px}
.add-status-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}
.add-so{display:flex;align-items:center;gap:7px;padding:9px 12px;border-radius:var(--r-sm);
  border:1px solid var(--line);background:var(--surface2);cursor:pointer;
  transition:all var(--t-fast);font-size:var(--fs-sm);font-weight:600}
.add-so.sel{border-color:var(--navy);background:var(--navy-soft);color:var(--navy)}
.add-so-ico{font-size:1.1rem}
.btn-row{display:flex;gap:8px;padding:16px 18px}
.btn-row .btn{flex:1}

/* ── Chevron nos itens da lista ── */
.lib-chev{font-size:1.2rem;color:var(--muted);flex-shrink:0;margin-left:4px}
/* ── Preview da nota no detalhe ── */
.bdet-rating-preview{text-align:center;font-size:var(--fs-sm);color:var(--muted);padding:4px 0 2px;min-height:1.4em}
.bdet-rating-preview strong{color:var(--ink)}

/* ── Dark mode — biblioteca ── */
[data-theme="dark"] .lib-cover-ph{background:var(--surface2)}
[data-theme="dark"] .lib-item:hover{background:var(--surface2)}
[data-theme="dark"] .bdet-cover-ph{background:var(--surface2)}
[data-theme="dark"] .bdet-so{background:var(--surface)}
[data-theme="dark"] .bdet-date-chip{background:var(--surface2)}
[data-theme="dark"] .bdet-clube-box{background:var(--surface2)}
[data-theme="dark"] .bdet-note-item{border-color:var(--line)}
[data-theme="dark"] .add-search-inp{background:var(--surface2)}
[data-theme="dark"] .add-form-hero{background:linear-gradient(160deg,#1D2A3A 0%,var(--surface) 70%)}
[data-theme="dark"] .add-so{background:var(--surface)}
[data-theme="dark"] .sr-item:hover{background:var(--surface2)}

/* ── Cabeçalho biblioteca ── */
.lib-header{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 10px}
.lib-heading{font-family:var(--font-serif);font-size:var(--fs-2xl);font-weight:400;margin:0;color:var(--ink)}
.lib-heading em{font-style:italic;font-weight:600}

/* ── Stats bar (linha única com divisórias verticais) ── */
.lib-stats-bar{display:flex;border-top:1px solid var(--line)}
.lib-stat-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px;padding:12px 6px;border-right:1px solid var(--line)}
.lib-stat-col:last-child{border-right:none}
.lib-stat-col.lendo .lib-stat-num{color:var(--navy)}
.lib-stat-num{color:var(--ink)}

/* ── Divisória horizontal no card cabeçalho ── */
.lib-divider{height:1px;background:var(--line)}

/* ── Meta de leitura por ano ── */
.lib-goal-bar{padding:0 18px 14px}
.lib-goal-label{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.lib-goal-title{font-size:var(--fs-md);font-weight:700;color:var(--ink)}
.lib-goal-count{font-size:var(--fs-sm);color:var(--muted)}
.lib-goal-count strong{color:var(--ink)}
.lib-goal-track{background:var(--line);overflow:hidden;margin-bottom:6px}
.lib-goal-fill{height:100%;background:var(--ok);transition:width var(--t-slow)}
.lib-goal-sub{display:flex;justify-content:space-between;align-items:center;font-size:var(--fs-sm);color:var(--muted)}
.lib-goal-edit-link{background:none;border:none;cursor:pointer;font-size:var(--fs-sm);color:var(--navy);font-family:var(--font-sans);padding:0}
.lib-goal-edit-link:hover{text-decoration:underline}
.lib-goal-input{width:64px;padding:5px 8px;border:1px solid var(--line);border-radius:var(--r-sm);font-size:var(--fs-md);text-align:center;background:var(--bg);color:var(--ink)}

/* ── Toggle visualização biblioteca ── */

.lib-view-btn:hover{border-color:var(--navy-mid)}

/* Modo grade — P2: 3 colunas, capa 3/4, tira ícone+data */
.lib-view-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;padding:10px}
.lib-view-grid .lib-item{flex-direction:column;align-items:stretch;gap:0;padding:0;border:none;border-radius:var(--r-md);background:var(--surface);box-shadow:var(--sh-2);text-decoration:none;overflow:hidden}
.lib-view-grid .lib-cover{width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:0;flex-shrink:0;display:block}
.lib-view-grid .lib-cover-ph{width:100%;aspect-ratio:3/4;border-radius:0;display:flex;align-items:center;justify-content:center;font-size:2rem;background:var(--surface2)}
.lib-view-grid .lib-info{padding:5px 7px 6px;display:flex;align-items:center;justify-content:space-between}
.lib-view-grid .lib-title{display:none}
.lib-view-grid .lib-author{display:none}
.lib-view-grid .lib-chev{display:none}
.lib-view-grid .lib-badges{gap:2px;flex-direction:row;align-items:center;flex-wrap:nowrap}
.lib-view-grid .lib-badge{background:none;border:none;padding:0;font-size:.85rem;line-height:1}
.lib-view-grid .lib-badge-lbl{display:none}
.lib-view-grid .lib-badge.clube{font-size:var(--fs-xs);color:var(--muted);font-family:var(--font-sans);line-height:1}
.lib-view-grid .lib-badge.clube .lib-badge-ico{font-style:normal}

/* ── Login brand ── */
.login-brand{text-align:center;padding:12px 0 24px}
.login-logo-img{width:160px;max-width:160px;height:160px;object-fit:cover;border-radius:50%;display:block;margin:0 auto;filter:drop-shadow(0 6px 18px rgba(69,95,122,.18))}

/* ── Feed do clube ─────────────────────────────────────────────────────────── */
.sec-link{font-size:var(--fs-sm);font-weight:600;color:var(--navy);text-decoration:none}
.av.anon{color:var(--muted);background:var(--surface2);border-style:dashed}
.av.club{background:var(--navy-soft);border-color:var(--navy-mid);font-size:1rem}
.av-img{width:36px;height:36px;border-radius:50%;object-fit:cover;border:2px solid var(--line);flex-shrink:0}
.feed-item{display:flex;align-items:flex-start;gap:12px;padding:12px 18px;border-bottom:1px solid var(--line-soft)}
.feed-item:last-child{border-bottom:none}
.feed-body{flex:1;min-width:0}
.feed-text{font-size:var(--fs-md);line-height:1.45;color:var(--ink);padding-top:6px}
.feed-text b{font-weight:600}
.feed-you{font-size:var(--fs-sm);color:var(--muted)}
.feed-book{display:flex;gap:10px;align-items:center;margin-top:8px;padding:8px;background:var(--bg);border:1px solid var(--line);border-radius:var(--r-md)}
.feed-cover{object-fit:cover;flex-shrink:0;box-shadow:var(--sh-1)}
.feed-cover.ph{display:grid;place-items:center;background:var(--surface2);font-size:1.1rem;box-shadow:none}
.feed-book-info{min-width:0}
.feed-title{font-family:var(--font-serif);font-size:var(--fs-lg);font-weight:600;line-height:1.2;color:var(--ink)}
.feed-author{font-size:var(--fs-sm);color:var(--muted)}
.feed-stars{margin-top:3px;font-size:var(--fs-sm);color:var(--muted);display:flex;align-items:center;gap:6px}
.feed-stars .stars-disp{font-size:.95rem}
.feed-meta{margin-top:3px;font-size:var(--fs-sm);color:var(--muted)}
.feed-scores{display:flex;flex-wrap:wrap;gap:5px;margin-top:8px}
.feed-score{font-size:var(--fs-sm);color:var(--ink);background:var(--surface2);border:1px solid var(--line);padding:2px 9px;border-radius:var(--r-pill)}
.feed-score b{color:var(--navy);font-weight:600}
.feed-time{margin-top:6px;font-size:var(--fs-xs);color:var(--muted);display:flex;align-items:center;gap:8px}

.feed-seg{width:100%}
.feed-seg a{flex:1 0 auto;text-align:center;padding:5px 6px;font-size:var(--fs-xs);letter-spacing:var(--ls-caps)}
.feed-more{align-self:center}
.now-strip{display:flex;gap:14px;overflow-x:auto;padding:14px 18px 16px;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.now-strip::-webkit-scrollbar{display:none}
.now-item{flex:0 0 68px;text-align:center}
.now-cover{position:relative;margin:0 auto 6px;background:var(--surface2);display:grid;place-items:center;box-shadow:var(--sh-2)}
.now-cover img{width:100%;height:100%;object-fit:cover;border-radius:var(--r-xs)}
.now-cover .now-av{position:absolute;right:-8px;bottom:-8px;width:24px;height:24px;font-size:.8rem;border:2px solid var(--surface)}
.now-name{font-size:var(--fs-sm);font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:4px}
.now-title{font-family:var(--font-serif);font-size:var(--fs-sm);line-height:1.15;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.feed-review{margin-top:8px;font-size:var(--fs-md);line-height:1.55;color:var(--ink);font-style:italic;border-left:2px solid var(--navy-mid);padding:2px 0 2px 10px}
.feed-review.spoiler{position:relative;cursor:pointer;font-style:normal}
.feed-review.spoiler .spoiler-txt{filter:blur(5px);user-select:none;transition:filter var(--t-mid);display:block;font-style:italic}
.feed-review.spoiler .spoiler-tag{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:600;color:var(--err);z-index:1}
.feed-review.spoiler.open{cursor:default}
.feed-review.spoiler.open .spoiler-txt{filter:none;user-select:auto}
.feed-review.spoiler.open .spoiler-tag{display:none}
.feed-actions{display:flex;flex-direction:column;gap:10px;margin-top:10px}
.react-bar{display:flex;gap:6px}
/* Ações do card do feed: botões do mesmo tamanho, divididos por igual numa linha */
.feed-btns{display:flex;gap:8px;padding-top:10px;border-top:1px solid var(--line)}
.feed-btn{flex:1 1 auto;min-width:0;height:32px;display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:0 8px;
  border:1px solid var(--line);border-radius:var(--r-pill);background:transparent;font:600 var(--fs-sm) var(--font-sans);color:var(--navy);
  text-decoration:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;transition:background var(--t-fast)}
.feed-btn:only-child{flex:0 1 auto;padding:0 18px}
.feed-btn:hover{background:var(--navy-soft)}
.feed-btn.done{color:var(--ok);border-color:var(--ok);background:var(--ok-soft);cursor:default}
.feed-btn.locked{color:var(--muted);cursor:default}
.feed-btn.locked:hover{background:transparent}
details.cmt>summary{display:none}   /* o botão 💬 da linha de ações abre e fecha */
.react-btn{display:inline-flex;align-items:center;justify-content:center;gap:3px;height:32px;min-width:38px;border:1px solid var(--line);background:transparent;border-radius:var(--r-pill);padding:0 9px;font-size:var(--fs-md);line-height:1.5;cursor:pointer;color:var(--muted);filter:grayscale(.6);opacity:.75;transition:all var(--t-fast)}
.react-btn:hover{opacity:1;filter:none}
.react-btn.on{background:var(--navy-soft);border-color:var(--navy-mid);color:var(--navy);filter:none;opacity:1}
.react-n{font-size:var(--fs-xs);font-weight:600}
/* Reação da vez (imagem enviada pelo admin) */
.react-custom img{width:20px;height:20px;object-fit:contain;display:block}
.reac-atual{display:flex;align-items:center;gap:12px}
.reac-atual img{width:48px;height:48px;object-fit:contain;border-radius:var(--r-sm);background:var(--surface2)}
.reac-hist{display:flex;flex-wrap:wrap;gap:8px}
.reac-hist-btn{display:flex;flex-direction:column;align-items:center;gap:4px;padding:8px;border:1px solid var(--line);border-radius:var(--r-md);background:transparent;cursor:pointer;font:inherit;max-width:96px}
.reac-hist-btn img{width:36px;height:36px;object-fit:contain}
.reac-hist-btn:hover{background:var(--surface2)}
.react-n:empty{display:none}
.bdet-spoiler{flex-direction:row;flex-wrap:wrap;align-items:center;gap:4px 8px;margin-top:8px;font-size:var(--fs-sm);font-weight:500;text-transform:none;letter-spacing:0;color:var(--ink);cursor:pointer}
.bdet-spoiler input{width:16px;height:16px;padding:0;margin:0;accent-color:var(--navy)}
.bdet-spoiler .muted{font-size:var(--fs-sm);font-weight:400}
a.feed-who{color:var(--ink);font-weight:600;text-decoration:none}
a.feed-who:hover{text-decoration:underline}
a.now-item{text-decoration:none;color:inherit}
.av.trophy{background:#FBF1DF;border-color:var(--warn);font-size:1rem}
.feed-quote{margin:8px 0 0;padding:10px 14px 10px 30px;position:relative;background:var(--bg);border-radius:var(--r-md);font-family:var(--font-serif);font-style:italic;font-size:var(--fs-lg);line-height:1.45;color:var(--ink)}
.feed-quote::before{content:'“';position:absolute;left:9px;top:-2px;font-size:2.2rem;color:var(--navy);font-style:normal;line-height:1.2}
.feed-quote-page{display:block;margin-top:4px;font:500 var(--fs-xs) var(--font-sans);font-style:normal;color:var(--muted)}
.feed-book.compact{padding:6px 8px;background:transparent}

.feed-book.compact .feed-title{font-size:var(--fs-md)}
.quote-item{padding:12px 18px;border-bottom:1px solid var(--line-soft)}
.quote-item:last-child{border-bottom:none}
.quote-text{margin:0;font-family:var(--font-serif);font-style:italic;font-size:var(--fs-lg);line-height:1.45;color:var(--ink);border-left:2px solid var(--navy-mid);padding-left:10px}
.quote-meta{display:flex;justify-content:space-between;align-items:center;margin-top:6px;font-size:var(--fs-xs);color:var(--muted)}
.quote-form-row{display:flex;gap:8px;align-items:center;margin-top:8px}
.quote-page-inp{flex:1;min-width:0;padding:7px 10px;border:1px solid var(--line);border-radius:var(--r-sm);background:var(--bg);color:var(--ink);font-size:var(--fs-md)}
.mbr-head{display:flex;flex-direction:column;align-items:center;text-align:center;padding:22px 18px 16px}
.mbr-name{margin:10px 0 0;font-size:var(--fs-3xl)}
.mbr-since{font-family:var(--font-sc);font-size:var(--fs-sm);letter-spacing:var(--ls-sc);color:var(--muted)}
.mbr-bio{margin:10px 0 0;font-size:var(--fs-md);font-style:italic;color:var(--ink);max-width:360px}
.mbr-fav{display:flex;align-items:center;justify-content:center;gap:10px;margin-top:8px;text-align:left;font-size:var(--fs-sm);color:var(--muted)}
.mbr-fav b{color:var(--ink);font-weight:600}
.mbr-book{display:flex;gap:10px;align-items:center;padding:10px 18px;border-bottom:1px solid var(--line-soft)}
.mbr-book:last-child{border-bottom:none}
.mbr-shelf{display:grid;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:12px;padding:14px 18px 18px}
.mbr-shelf-item{position:relative;aspect-ratio:2/3;border-radius:var(--r-xs);overflow:hidden;background:var(--surface2);box-shadow:var(--sh-2)}
.mbr-shelf-item img{width:100%;height:100%;object-fit:cover}
.mbr-shelf-ph{display:flex;align-items:center;justify-content:center;height:100%;padding:4px;text-align:center;font-family:var(--font-serif);font-size:var(--fs-xs);line-height:1.1;color:var(--muted)}
.mbr-shelf-rating{position:absolute;left:3px;bottom:3px;background:rgba(43,61,80,.85);color:#FBF5F0;font-size:var(--fs-xs);font-weight:600;padding:1px 5px;border-radius:var(--r-md)}
[data-theme="dark"] .av.trophy{background:rgba(192,136,80,.15)}
[data-theme="dark"] .feed-quote{background:var(--surface2)}
.feed-links{display:flex;gap:8px}
.feed-link{flex:1;text-align:center;padding:9px 10px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);font-size:var(--fs-sm);font-weight:600;color:var(--navy);text-decoration:none}
.feed-link:hover{background:var(--navy-soft)}
.cmt{margin-top:8px}
.cmt summary{list-style:none;cursor:pointer;font-size:var(--fs-sm);font-weight:600;color:var(--navy);display:inline-block;padding:2px 0}
.cmt summary::-webkit-details-marker{display:none}
.cmt[open] summary{margin-bottom:6px}
.cmt-item{display:flex;gap:8px;padding:6px 0}
.cmt-av{width:24px;height:24px;font-size:.75rem;border-width:1.5px}
.cmt-body{flex:1;min-width:0;background:var(--bg);border-radius:var(--r-md);padding:6px 10px}
.cmt-head{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--muted)}
.cmt-head .feed-who{font-size:var(--fs-sm)}
.cmt-del-form{margin-left:auto}
.cmt-text{font-size:var(--fs-md);line-height:1.45;color:var(--ink);overflow-wrap:anywhere}
.cmt-form{display:flex;gap:6px;align-items:flex-end;margin-top:6px}
.cmt-form textarea{flex:1;min-height:36px;padding:7px 10px;font-size:var(--fs-md);resize:vertical}
.compat{display:flex;align-items:center;gap:14px}
.compat-pct{font-family:var(--font-serif);font-size:2.2rem;font-weight:600;color:var(--navy);line-height:1;font-variant-numeric:lining-nums;min-width:72px;text-align:center}
.compat-title{font-family:var(--font-sc);font-size:var(--fs-md);font-weight:600;letter-spacing:var(--ls-sc);color:var(--navy)}
.compat-sub{font-size:var(--fs-sm);color:var(--muted);line-height:1.45}
.rank-item{display:flex;align-items:center;gap:12px;padding:10px 18px;border-bottom:1px solid var(--line-soft);color:inherit;text-decoration:none}
.rank-item:last-child{border-bottom:none}
.rank-link:hover{background:var(--surface2)}
.rank-pos{font-family:var(--font-serif);font-size:var(--fs-xl);font-weight:600;color:var(--muted);width:16px;text-align:center;font-variant-numeric:lining-nums}
.rank-n{margin-left:auto;font-size:var(--fs-sm);font-weight:600;color:var(--navy)}
.retro-hero{text-align:center;padding:28px 18px;background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%);color:#FBF5F0;border:none}
.retro-eye{font-family:var(--font-sc);font-size:var(--fs-md);letter-spacing:var(--ls-eyebrow);opacity:.85}
.retro-year{font-family:var(--font-serif);font-size:3.6rem;font-weight:600;line-height:1;font-variant-numeric:lining-nums}
.retro-sub{font-family:var(--font-script);font-size:1.4rem;opacity:.9}
.retro-months{display:flex;align-items:flex-end;gap:4px;height:110px;padding:16px 18px 8px;border-top:1px solid var(--line)}
.retro-month{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:4px}
.retro-month span{font-size:var(--fs-xs);color:var(--muted);text-transform:uppercase}
.retro-bar{width:100%;background:var(--navy-mid);border-radius:var(--r-xs) var(--r-xs) 0 0;color:var(--on-accent);font-size:.6rem;font-weight:600;text-align:center;line-height:1.6;overflow:hidden}
.retro-label{padding:12px 18px 0;font-size:var(--fs-sm);font-weight:600;color:var(--ink);border-top:1px solid var(--line);margin-top:6px}
.retro-label b{color:var(--navy)}
[data-theme="dark"] .cmt-body{background:var(--surface2)}
[data-theme="dark"] .retro-hero{background:linear-gradient(135deg,#1D2A3A 0%,#2B3D50 100%)}
[data-theme="dark"] .feed-book{background:var(--surface2)}
[data-theme="dark"] .feed-score{background:var(--bg)}

/* Ambiente de teste */
.test-banner{position:sticky;top:0;z-index:50;background:#C08850;color:#fff;text-align:center;font:700 var(--fs-xs) var(--font-sans);letter-spacing:var(--ls-caps);text-transform:uppercase;padding:5px 10px}

/* Meta pessoal (aba Leitura do Perfil) */

.goal-facts{list-style:none;margin:0;padding:6px 18px 12px;font-size:var(--fs-md);color:var(--muted);display:flex;flex-direction:column;gap:4px}
.goal-facts b{color:var(--ink)}
.goal-chart{padding:16px 18px 10px;border-top:1px solid var(--line)}
.goal-bars{position:relative;display:flex;align-items:flex-end;gap:4px;height:80px}
.goal-col{flex:1;height:100%;display:flex;align-items:flex-end}
.goal-chart-line{position:absolute;left:0;right:0;border-top:1.5px dashed var(--navy);opacity:.55;pointer-events:none}
.goal-labels{display:flex;gap:4px;margin-top:4px}
.goal-labels span{flex:1;text-align:center;font-size:var(--fs-xs);color:var(--muted)}
.goal-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid var(--line)}
.goal-form label{font-size:var(--fs-sm);color:var(--muted);width:100%}
.goal-hist{list-style:none;margin:0;padding:0}
.goal-hist li{display:flex;justify-content:space-between;gap:10px;padding:11px 18px;border-top:1px solid var(--line);font-size:var(--fs-md)}
.goal-hist li:first-child{border-top:none}
.ach-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:14px 18px 18px}
.ach{display:flex;flex-direction:column;align-items:center;gap:4px;text-align:center;padding:10px 6px;border:1px solid var(--line);border-radius:var(--r-md);font-size:var(--fs-sm);line-height:1.25}
/* Conquista ainda não alcançada: ícone apagado e nome em muted (opacidade no card inteiro dava 2,6:1 no texto) */
.ach:not(.on) .ach-ico{opacity:.5;filter:grayscale(1)}
.ach:not(.on) .ach-name{color:var(--muted)}
.ach.on{opacity:1;background:var(--navy-soft);border-color:var(--navy-mid)}
.ach-ico{font-size:1.4rem}
.ach-name{font-weight:600;color:var(--ink)}

/* Personalização do perfil */
.mbr-fav-cover{object-fit:cover;border:1px solid var(--line);flex-shrink:0}
.mbr-genres{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px}

.mbr-contacts{display:flex;gap:14px;justify-content:center;margin-top:10px;font-size:var(--fs-md);color:var(--muted)}
.mbr-contacts a{color:var(--navy)}
.fav-results{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.fav-res{display:flex;align-items:center;gap:10px;width:100%;padding:8px 12px;background:var(--surface);border:none;border-top:1px solid var(--line);text-align:left;cursor:pointer;font:inherit;font-size:var(--fs-md);color:var(--ink)}
.fav-res:first-child{border-top:none}
.fav-res:hover{background:var(--surface2)}
.src-link{display:inline-block;margin-top:2px;font-size:var(--fs-sm);color:var(--muted);text-decoration:underline;text-underline-offset:2px}
.src-foot{padding:6px 12px;font-size:var(--fs-sm);color:var(--muted);border-top:1px solid var(--line)}
.src-foot a{color:var(--muted);text-decoration:underline}
.fav-res img{object-fit:cover}
.fav-preview{display:flex;align-items:center;gap:12px}
.fav-preview img{object-fit:cover;border:1px solid var(--line)}
.genre-box{border:1px solid var(--line);border-radius:var(--r-md);padding:10px 12px;display:flex;flex-wrap:wrap;gap:6px 14px}
.genre-box legend{font-size:var(--fs-sm);color:var(--muted);padding:0 6px}
.genre-opt{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:var(--fs-md);font-weight:400;text-transform:none;letter-spacing:0;color:var(--ink)}
.genre-opt input{width:auto;flex:none;margin:0}

/* Anotações: busca e exportar */
.notes-toolbar{display:flex;gap:8px;align-items:center;padding:12px 18px;border-bottom:1px solid var(--line)}
.notes-toolbar input{flex:1;min-width:0}

/* Biblioteca: estrelas só na lista, não nos cards */
.lib-view-grid .lib-badge.rating{display:none}
/* Nota bloqueada até o livro ser finalizado */
.bdet-rating-lock{margin:12px 18px 0;padding:8px 12px;border-radius:var(--r-sm);background:var(--surface2);font-size:var(--fs-sm);color:var(--muted)}
.bdet-rating-lock b{color:var(--ink)}
.bdet-rating-off{opacity:.45;filter:grayscale(1);pointer-events:none;user-select:none}
.bdet-rating-off .edit-ta{background:var(--surface2)}
.bdet-rating-saved{pointer-events:none;user-select:none}
.bdet-rating-saved .edit-ta{background:var(--surface2)}
.bdet-rating-saved button[type=submit]{display:none}
.bdet-edit-btn{background:var(--surface2);border:none;cursor:pointer;width:32px;height:32px;border-radius:50%;font-size:var(--fs-base);line-height:1;display:inline-flex;align-items:center;justify-content:center}

/* Mensagem de sucesso flutuante que some sozinha */
.alert.toast{position:fixed;top:calc(12px + env(safe-area-inset-top));left:50%;transform:translateX(-50%);z-index:60;max-width:min(92vw,420px);margin:0;box-shadow:var(--sh-3);font-weight:600;animation:toastIn .25s ease-out,toastOut .4s ease-in 2.6s forwards}
@keyframes toastIn{from{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes toastOut{to{opacity:0;transform:translate(-50%,-10px);visibility:hidden}}

/* Biblioteca: inclusão manual */
.add-manual-link{padding:2px 18px 0;font-size:var(--fs-sm)}
.add-manual-link a{color:var(--navy);font-weight:600;text-decoration:none}
.mf{padding:14px 18px 0;display:flex;flex-direction:column;gap:10px}
.mf label{font-size:var(--fs-sm)}
.mf label .muted{text-transform:none;letter-spacing:0;font-weight:400}
.mf-top{display:flex;gap:12px;align-items:flex-start}
.mf-cover{flex:0 0 84px;height:124px;border-radius:var(--r-sm);border:1.5px dashed var(--line);background:var(--surface2);display:flex !important;align-items:center;justify-content:center;text-align:center;font-size:var(--fs-xs);line-height:1.3;color:var(--muted);cursor:pointer;overflow:hidden;text-transform:none;letter-spacing:0;gap:0}
.mf-cover img{width:100%;height:100%;object-fit:cover}
.mf-fields{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}
.mf-row{display:flex;gap:10px}
.mf input{padding:9px 11px;font-size:var(--fs-base)}
.mf-isbn-btn{align-self:flex-start;margin-top:-4px}
.mf-msg{font-size:var(--fs-sm);color:var(--navy);min-height:1em}

/* Biblioteca: adicionar capa ao livro pessoal sem capa */
.bdet-cover-add{border:1.5px dashed var(--line);cursor:pointer;font-size:1.4rem;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:4px;font-family:inherit}
.bdet-cover-add span{font-size:var(--fs-xs);line-height:1.2;font-weight:600;text-align:center}
.capa-modal{padding:22px 20px 18px}
.capa-modal-tit{font-family:var(--font-sc);font-size:var(--fs-lg);font-weight:700;color:var(--ink);margin-bottom:14px}
.capa-dica{font-size:var(--fs-sm);line-height:1.4;color:var(--muted)}
.capa-msg{color:var(--err)}

/* ── Indicações entre membros ─────────────────────────────────────────────── */
.rec-form{display:flex;flex-direction:column;gap:12px;padding:14px 18px 18px}
.rec-label{display:block;font-size:var(--fs-sm);font-weight:600;text-transform:uppercase;letter-spacing:var(--ls-caps);color:var(--muted)}
.rec-label .muted{text-transform:none;letter-spacing:0;font-weight:400}
.rec-members{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.rec-member{flex-direction:row !important;align-items:center;gap:10px !important;padding:9px 12px;border-bottom:1px solid var(--line);font-size:var(--fs-md);font-weight:500;text-transform:none;letter-spacing:0;color:var(--ink);cursor:pointer}
.rec-member:last-child{border-bottom:none}
.rec-member input{width:18px;height:18px;margin:0;padding:0;flex-shrink:0;accent-color:var(--navy)}
.rec-member.done{opacity:.5;cursor:default}
.rec-av{width:32px;height:32px;font-size:.8rem}
.rec-name{display:flex;flex-direction:column;line-height:1.25}
.rec-name small{font-size:var(--fs-xs);font-weight:400;color:var(--muted)}
.rec-form textarea{font-size:var(--fs-md)}
.rec-seg{width:100%}
.rec-seg a{flex:1;text-align:center}
.rec-item{display:flex;gap:12px;padding:14px 18px;border-bottom:1px solid var(--line-soft)}
.rec-item:last-child{border-bottom:none}
.rec-body{flex:1;min-width:0}
.rec-who{display:flex;align-items:center;gap:7px;margin-top:6px;font-size:var(--fs-sm);color:var(--muted)}
.rec-who b{color:var(--ink);font-weight:600}
.rec-av-sm{width:24px;height:24px;font-size:.65rem;border-width:1.5px}
.rec-msg{margin:8px 0 0;padding:8px 12px;background:var(--bg);border-radius:var(--r-md);border-left:2px solid var(--navy-mid);font-size:var(--fs-md);font-style:italic;color:var(--ink)}
.rec-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.rec-actions .btn{flex:1 1 auto;padding:7px 6px;font-size:var(--fs-xs);letter-spacing:var(--ls-caps);white-space:nowrap}
.rec-status{margin-top:10px;display:inline-flex;align-items:center;gap:6px}
.rec-status .stars-disp{font-size:.8rem}

.rec-link{display:block;margin-top:6px;font-size:var(--fs-sm);font-weight:600;color:var(--navy);text-decoration:none}
.rec-change{margin-top:4px}
.link-btn{background:none;border:none;padding:0;font:600 var(--fs-sm) var(--font-sans);color:var(--navy);cursor:pointer;text-decoration:underline}
.notif-item{display:flex;gap:12px;align-items:center;padding:11px 18px;border-bottom:1px solid var(--line-soft);color:inherit;text-decoration:none}
.notif-item:last-child{border-bottom:none}
.notif-item.unread{background:var(--navy-soft)}
.notif-body{flex:1;min-width:0;display:flex;flex-direction:column}
.notif-txt{font-size:var(--fs-md);line-height:1.4;color:var(--ink)}
.notif-txt b{font-weight:600}
.notif-txt .stars-disp{font-size:.8rem}
.notif-time{font-size:var(--fs-xs);color:var(--muted)}
[data-theme="dark"] .rec-msg{background:var(--surface2)}

/* ── Posts no feed ────────────────────────────────────────────────────────── */

.pc-form{display:flex;flex-direction:column;gap:10px;padding:14px 18px 16px}
.pc-kind{flex:1;padding:8px;border-radius:var(--r-pill);border:1px solid var(--line);background:var(--bg);font:600 var(--fs-sm) var(--font-sans);color:var(--muted);cursor:pointer}
.pc-kind.on{border-color:var(--navy);background:var(--navy-soft);color:var(--navy)}
.pc-form textarea{font-size:var(--fs-base);resize:vertical}
.pc-page{width:84px;padding:9px 10px;font-size:var(--fs-md)}
.pc-photo{position:relative}
.pc-photo img{width:100%;max-height:260px;object-fit:cover;border-radius:var(--r-md);display:block}
.pc-photo button{position:absolute;top:6px;right:6px;width:36px;height:36px;border-radius:50%;border:none;background:rgba(0,0,0,.6);color:#fff;cursor:pointer}
.pc-bottom{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.pc-bottom .btn{margin-left:auto}
.pc-spoiler{flex-direction:row !important;align-items:center;gap:6px !important;font-size:var(--fs-sm);font-weight:600;text-transform:none;letter-spacing:0;color:var(--ink);cursor:pointer}
.pc-spoiler input{width:16px;height:16px;margin:0;padding:0;accent-color:var(--navy)}
.post-text{margin-top:8px;font-size:var(--fs-base);line-height:1.55;color:var(--ink);overflow-wrap:anywhere}
.post-spoiler{position:relative;margin-top:8px;cursor:pointer}
.post-spoiler .spoiler-txt{filter:blur(6px);user-select:none;transition:filter var(--t-mid)}
.post-spoiler .spoiler-txt .post-text,.post-spoiler .spoiler-txt .feed-quote{margin-top:0}
.post-spoiler .spoiler-tag{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:var(--fs-sm);font-weight:600;color:var(--err);z-index:1}
.post-spoiler.open{cursor:default}
.post-spoiler.open .spoiler-txt{filter:none;user-select:auto}
.post-spoiler.open .spoiler-tag{display:none}
.post-photo-link{display:block;margin-top:8px;border-radius:var(--r-md);overflow:hidden}
.post-photo{display:block;width:100%;max-height:420px;object-fit:cover;border-radius:var(--r-md);border:1px solid var(--line);transition:filter var(--t-mid)}
.post-photo.blur{filter:blur(16px)}
.post-spoiler.open ~ .post-photo-link .post-photo.blur{filter:none}
.post-del{display:inline;margin-left:auto}
[data-theme="dark"] .pc-kind{background:var(--surface2)}
/* Post sobre o livro do clube trancado para quem não terminou */
.feed-item.locked .feed-text{color:var(--muted)}
.post-locked{display:flex;gap:10px;align-items:flex-start;margin-top:8px;padding:10px 12px;border-radius:var(--r-md);background:var(--surface2);border:1px dashed var(--line);font-size:var(--fs-sm);line-height:1.45;color:var(--muted)}
.post-locked b{color:var(--ink)}
.post-locked a{color:var(--navy);font-size:var(--fs-sm)}
.post-locked-ico{font-size:1.1rem;line-height:1.2}

/* Início: card do livro do mês abre a página do livro (status, presença, nota) */
a.hero-link{display:block;color:inherit;text-decoration:none;-webkit-tap-highlight-color:transparent}
a.hero-link:active{transform:scale(.995)}
.hero-me{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 20px 12px;background:var(--surface);border-top:1px solid var(--line)}
.hero-me-lbl{font-size:var(--fs-sm);font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:var(--ls-caps)}

.hero-me-go{margin-left:auto;font-size:var(--fs-sm);font-weight:600;color:var(--navy)}

/* Prazo da confirmação de presença */
.rsvp-prazo{margin:10px 0 12px;padding:8px 12px;border-radius:var(--r-md);background:var(--surface2);font-size:var(--fs-md);color:var(--ink)}
.rsvp-prazo.perto{background:var(--warn-soft);color:var(--warn-ink)}
.rsvp-prazo.ultimo{background:var(--err-soft);color:var(--err)}
/* Lembrete de presença no sino */
.notif-ico{display:flex;align-items:center;justify-content:center;font-size:1.05rem;background:var(--navy-soft)}
/* Biblioteca: livro do mês fixo no topo */
.lib-item.lib-item-mes{background:var(--navy-soft);box-shadow:inset 3px 0 0 var(--navy)}

[data-theme="dark"] .lib-item.lib-item-mes{background:#1D2A3A}
/* Lista: selo "Livro do mês" no lugar do mês; a etiqueta da capa só existe na grade */
.lib-view-list .lib-badge.clube.mes-grade{display:none}
.lib-mes-tag{display:none}
/* Grade: rodapé igual aos outros cards; etiqueta "Do mês" sobre a capa e contorno de 2px no card inteiro */
.lib-view-grid .lib-item{position:relative}
.lib-view-grid .lib-item.lib-item-mes{background:var(--surface);box-shadow:0 0 0 2px var(--navy),0 3px 10px rgba(0,0,0,.12)}
[data-theme="dark"] .lib-view-grid .lib-item.lib-item-mes{background:var(--surface)}
.lib-view-grid .lib-badge.clube.mes{display:none}
.lib-view-grid .lib-mes-tag{display:block;position:absolute;top:6px;left:6px;z-index:1;padding:2px 6px;border-radius:var(--r-sm);background:var(--navy);color:var(--on-accent);font:600 var(--fs-xs)/1.3 var(--font-sans);white-space:nowrap;letter-spacing:var(--ls-caps);box-shadow:var(--sh-1)}

/* Botão de administração no topo (admin principal e membros-admin) */
.admin-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;text-decoration:none;font-size:1.05rem;border:1px solid transparent}
.admin-btn.on{border-color:var(--navy);background:var(--navy-soft)}

/* Início: Leitura do grupo em 3 linhas (Finalizaram / Lendo / Na fila) */
.grp-row{border-top:1px solid var(--line)}
.sec-head+.grp-row{border-top:none}
.grp-row>summary{list-style:none;display:flex;align-items:center;gap:10px;padding:11px 18px;cursor:pointer}
.grp-row>summary::-webkit-details-marker{display:none}
.grp-row[data-vazio]>summary{cursor:default}
.grp-lbl{flex:none;width:118px;font-size:var(--fs-md);color:var(--ink)}
.grp-lbl b{margin-left:2px}
.grp-ico{display:inline-block;width:20px}
.grp-avs{flex:1;min-width:0;display:flex;align-items:center}
.grp-avs .av,.grp-avs .av-img{width:32px;height:32px;font-size:.8rem;margin-left:-8px;border:2px solid var(--surface);flex:none}
.grp-avs>:first-child{margin-left:0}
.grp-mais{margin-left:6px;font-size:var(--fs-sm);font-weight:600;color:var(--muted)}
.grp-nada{font-size:var(--fs-sm);color:var(--muted)}
.grp-row .chev{color:var(--muted);transition:transform var(--t-mid)}
.grp-row[open] .chev{transform:rotate(90deg)}
.grp-nomes{display:flex;flex-wrap:wrap;gap:6px 12px;padding:0 18px 12px 46px;font-size:var(--fs-md)}
.grp-nomes a{color:var(--navy);text-decoration:none}

/* Detalhe do livro: datas tocáveis (o input de data cobre a etiqueta, invisível) */
.bdet-date-chip.editavel{position:relative;cursor:pointer;display:inline-flex;align-items:center;gap:4px;font-weight:400;text-transform:none;letter-spacing:0;flex-direction:row}
.bdet-date-chip.editavel input[type=date]{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;border:0;padding:0;margin:0}
.bdet-date-edit{font-size:var(--fs-xs);color:var(--navy)}
.bdet-date-chip.editavel:focus-within{outline:2px solid var(--navy);outline-offset:2px}

/* Indicar: "Para quem?" com busca e etiquetas — a lista só mostra quem combina com o que foi digitado */
.rec-busca{width:100%}
.rec-members .rec-member{display:none}
.rec-members .rec-member.show{display:flex}
.rec-chips{display:flex;flex-wrap:wrap;gap:6px}
.rec-chips:empty{display:none}
.rec-chip{border:1px solid var(--navy);background:var(--navy-soft);color:var(--navy);border-radius:var(--r-pill);padding:4px 10px;font:500 var(--fs-sm) var(--font-sans);cursor:pointer}

/* Feed: novo post numa gaveta (botão +) e escolha de livro por sugestão ou busca */
.pc-kinds{display:flex;gap:6px;flex-wrap:wrap}
.pc-livro{display:flex;flex-direction:column;gap:8px}
.pc-livro-lbl{font-size:var(--fs-md);font-weight:600;color:var(--ink)}
.pc-sugest,.pc-sel{display:flex;flex-wrap:wrap;gap:6px}
.pc-sugest:empty{display:none}
.pc-book-chip{border:1px solid var(--line);background:var(--surface2);color:var(--ink);border-radius:var(--r-pill);padding:5px 11px;font:500 var(--fs-sm) var(--font-sans);cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-book-chip.on{border-color:var(--navy);background:var(--navy-soft);color:var(--navy)}
.pc-busca{width:100%}
.pc-res{display:flex;flex-direction:column;border-radius:var(--r-md);overflow:hidden}
.pc-res-item{text-align:left;border:0;border-top:1px solid var(--line);background:var(--surface);color:var(--ink);padding:9px 12px;font:inherit;font-size:var(--fs-md);cursor:pointer}
.pc-res-item:first-child{border-top:0}
.pc-res-item:hover{background:var(--surface2)}
#pc-drawer .pc-form{padding:8px 18px calc(18px + env(safe-area-inset-bottom))}
/* Importação em massa (admin → Livros) */
.imp-res{margin-top:14px}
.imp-res [hidden]{display:none}
.imp-status{margin:0 0 8px;font-size:var(--fs-md);font-weight:600;color:var(--ink)}
.imp-res progress{width:100%;height:8px;accent-color:var(--navy)}
/* Importação: revisão do rascunho (?p=importar) */
.imp-rev{list-style:none;margin:0;padding:0}
.imp-rev-item{display:flex;gap:12px;align-items:center;padding:10px 18px;border-top:1px solid var(--line)}
.imp-rev-item:first-child{border-top:0}
.imp-rev-existe{background:var(--surface2)}
.imp-capa{object-fit:cover;background:var(--surface2)}
.imp-capa-ph{display:grid;place-items:center;font-size:1.3rem}
.imp-rev-txt{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;font-size:var(--fs-md);line-height:1.3}
.imp-rev-txt b{overflow-wrap:anywhere}
.imp-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}
.imp-form{padding:8px 18px 0}
.imp-form-row{display:grid;grid-template-columns:2fr 1fr 1fr;gap:8px}
.imp-form-row input{width:100%}
.imp-cover-row{display:flex;gap:10px;align-items:center}
.imp-cover-row input{flex:1;min-width:0}
.dit-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:6px 0}
/* Perfil: grupos da aba Leitura e seções recolhíveis da aba Conta (13/10/2026) */

.meta-old summary{padding:10px 18px;font-size:var(--fs-md);color:var(--muted);cursor:pointer}
.meta-old[open] summary{border-bottom:1px solid var(--line)}
.conta-acc li:first-child{border-top:0}
.conta-acc summary{gap:12px}
.conta-acc summary .grow b{display:block}
.conta-acc summary .grow .small{display:block;margin-top:2px}
.conta-acc details[open]>summary{background:var(--surface2)}
.conta-perigo{margin-top:6px;padding-top:14px;border-top:1px solid var(--line)}

/* ── Perfil: menu em cartões (identidade + lista de telas) ── */
.tab-panel > * + *{margin-top:14px}
.hub-group{padding:0}
.hub-item{display:flex;align-items:center;gap:14px;width:100%;min-height:64px;padding:12px 16px;background:none;border:0;border-top:1px solid var(--line);color:var(--ink);font:inherit;text-align:left;text-decoration:none;cursor:pointer}
.hub-group > .hub-item:first-child,.hub-group > form:first-child .hub-item{border-top:0}
.hub-sair b{color:var(--err)}
.conta-acc.solo summary{display:none}
.mbr-head{position:relative}
.mbr-edit{position:absolute;top:12px;right:12px}
.hub-item:hover{background:var(--surface2)}
.hub-item:focus-visible{outline:3px solid var(--navy);outline-offset:-3px}
.hub-ic{font-size:1.5rem;line-height:1;width:34px;text-align:center;flex:none}
.hub-txt{display:flex;flex-direction:column;min-width:0;flex:1}
.hub-txt b{font-weight:600}
.hub-name{font-family:var(--font-serif);font-size:var(--fs-xl);overflow-wrap:anywhere}
.hub-av{width:56px;height:56px;border-radius:50%;object-fit:cover;flex:none;border:2px solid var(--line)}
.hub-av.ph{display:flex;align-items:center;justify-content:center;background:var(--navy-soft);color:var(--navy);font:600 1.5rem var(--font-serif)}
.hub-badge{margin-left:4px}
.hub-back{display:inline-flex;align-items:center;min-height:44px;padding:0 4px;background:none;border:0;color:var(--navy);font:600 var(--fs-base) var(--font-sans);cursor:pointer}
.hub-title{margin:0 0 2px;font-size:var(--fs-2xl)}
.adm-kpi{display:grid;grid-template-columns:repeat(3,1fr)}
.adm-kpi > div{display:flex;flex-direction:column;align-items:center;padding:12px 6px;text-align:center;border-right:1px solid var(--line)}
.adm-kpi > div:last-child{border-right:0}

.adm-kpi b.adm-kpi-err{color:var(--err)}
a.hub-back{text-decoration:none;align-self:flex-start}

/* ── Botões só com ícone (padrão do app): ico_btn('editar'|'excluir', rótulo) — catálogo em prototypes/catalogo-botoes.html ── */
.ico-btn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:50%;background:var(--surface2);color:var(--navy);cursor:pointer;line-height:1;flex:none;transition:background var(--t-fast)}
.ico-btn:hover{background:var(--line)}
.ico-btn:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
.ico-btn svg{display:block}
.ico-btn.sm,.bdet-note-actions .ico-btn,.note-foot .ico-btn{width:36px;height:36px}

/* ── Amigos (Solo, fase 8.1) ── */
.amg-intro{margin:0 0 10px}
.amg-hint{margin:8px 0 0}
.amg-gerar{margin-top:12px}
.amg-form{display:inline;margin:0}
.amg-nome{color:var(--ink);text-decoration:none;min-width:0}
.amg-vazio{margin:0}
.amg-mais{position:relative}
.amg-mais summary{list-style:none;cursor:pointer;min-width:44px;min-height:44px;display:grid;place-items:center;color:var(--muted);font-size:var(--fs-lg)}
.amg-mais summary::-webkit-details-marker{display:none}
.amg-mais-corpo{position:absolute;right:0;top:44px;z-index:5;width:220px;display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-3)}
.amg-mais-corpo .btn{width:100%}
.cad-titulo{font:600 var(--fs-xl) var(--font-serif);margin:0 0 12px;text-align:center}
.cad-hint{margin:-6px 0 0}
.cad-isca{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}
.amg-perfil{display:flex;align-items:center;justify-content:space-between;padding-top:4px;padding-bottom:4px}

/* ═══════════════════════════════════════════════════════════
   COMPONENTES PADRONIZADOS (versão A, 15/10/2026)
   Fonte única da aparência; as regras antigas só guardam posição e layout.
   Docs: docs/PADRONIZACAO_VISUAL.md · catálogo: prototypes/catalogo-botoes.html
═══════════════════════════════════════════════════════════ */
/* Selo: fundo suave, caixa alta, Inter 11px. Cor por variante; nunca --warn como texto */
.tag,.chip,.names li,.lib-badge,.bdet-pill,.feed-club-tag,.goal-status,.rec-status,.hero-me-chip,.mbr-genre,.meeting-badge,.aviso-priority,.sec-count{
  display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:0;border-radius:var(--r-pill);
  font:600 var(--fs-xs)/1.5 var(--font-sans);letter-spacing:var(--ls-caps);text-transform:uppercase;white-space:nowrap;
  background:var(--surface2);color:var(--muted)}
.sec-count{text-transform:none;letter-spacing:0;font-variant-numeric:tabular-nums}
.chip,.names li,.meeting-badge,.tag.aberta,.goal-status.adiantada,.rec-status.st-lido,.rec-status.st-ja_li,.lib-badge.lendo{background:var(--ok-soft);color:var(--ok)}
.feed-club-tag,.mbr-genre,.tag.revelada,.tag.lock,.rec-status.st-quero_ler,.lib-badge.lido,.lib-badge.clube,.bdet-pill.clube{background:var(--navy-soft);color:var(--navy)}
.goal-status.atrasada,.hero-me-chip.pend,.aviso-priority.pri-alerta{background:var(--err-soft);color:var(--err)}
.lib-badge.quero_ler,.aviso-priority.pri-urgente{background:var(--warn-soft);color:var(--warn-ink)}
.lib-badge.clube.mes{background:var(--navy);color:var(--on-accent)}
.mbr-genre,.hero-me-chip{text-transform:none;letter-spacing:0}   /* conteúdo livre (gêneros, situação), não rótulo */
/* Selo sobre o fundo azul do livro do mês (os dois temas têm fundo escuro ali) */
.status-badge,.pill,.meeting-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:var(--r-pill);
  font:600 var(--fs-xs)/1.5 var(--font-sans);letter-spacing:var(--ls-caps);text-transform:uppercase;white-space:nowrap;
  background:rgba(255,255,255,.12);color:#F4E8DE;border:1px solid rgba(255,255,255,.22)}
/* Contador vermelho (sino, cartão do menu) */
.bell-badge,.hub-badge{display:inline-flex;align-items:center;justify-content:center;min-width:16px;height:16px;padding:0 4px;border-radius:var(--r-pill);
  background:var(--err);color:var(--on-accent);font:700 var(--fs-xs)/1 var(--font-sans)}
/* Números de resumo: Cormorant (versão A); rótulo Inter caixa alta */
.adm-kpi b,.stat-val,.lib-stat-num,.pay-sum-val{font:600 var(--fs-2xl)/1 var(--font-serif);font-variant-numeric:lining-nums tabular-nums}
.adm-kpi span,.lib-stat-lbl,.stat-label,.pay-sum-lbl{font:600 var(--fs-xs) var(--font-sans);letter-spacing:var(--ls-caps);text-transform:uppercase;color:var(--muted)}
/* Barras de progresso: 6px */
.progress,.prog-track,.lib-goal-track,.read-track,.notes-progress{height:6px;border-radius:var(--r-xs)}
.progress span,.prog-fill,.lib-goal-fill,.read-fill,.notes-progress-fill{border-radius:var(--r-xs)}
/* Capas de livro: 4 tamanhos, sempre 2:3 */
.lib-cover,.lib-cover-ph,.book-cover-sm,.feed-cover,.mbr-fav-cover,.imp-capa,.sr-cover,.fav-preview img,
.feed-book.compact .feed-cover,.fav-res img,.mini-cover,.mini-cover-ph,.bdet-cover,.bdet-cover-ph,.af-cover,.now-cover,.cover,.cover-ph{flex:none;border-radius:var(--r-xs)}
.lib-cover,.lib-cover-ph,.book-cover-sm,.feed-cover,.mbr-fav-cover,.imp-capa,.sr-cover,.fav-preview img{width:40px;height:60px}
.feed-book.compact .feed-cover,.fav-res img{width:28px;height:42px}
.mini-cover,.mini-cover-ph,.bdet-cover,.bdet-cover-ph,.af-cover,.now-cover{width:64px;height:96px}
.cover,.cover-ph{width:96px;height:144px}
.cover-ph{background:rgba(255,255,255,.12)}
/* Botão destrutivo: contorno vermelho (.danger = .danger-ghost = .warn) */
.btn.danger,.btn.warn,.btn.danger-ghost{background:transparent;color:var(--err);border:1px solid var(--err)}
.btn.danger:hover,.btn.warn:hover,.btn.danger-ghost:hover{background:var(--err-soft);opacity:1}
/* Botão só com ícone: ico_btn() — lápis navy, lixeira vermelha */
.ico-btn.ico-del{color:var(--err)}
.lib-view-btn .ico-lista,.lib-view-btn[aria-pressed="true"] .ico-grade{display:none}
.lib-view-btn[aria-pressed="true"] .ico-lista{display:block}
.bell-btn,.admin-btn{min-width:36px;min-height:36px;justify-content:center}
/* Selecionado: borda de 2px na cor do estado (sem mudar o tamanho: o 2º pixel é sombra interna) */
.read-option.selected-lido,.rsvp-card.sim,.pay-toggle.is-paid{box-shadow:inset 0 0 0 1px var(--ok)}
.read-option.selected-lendo{box-shadow:inset 0 0 0 1px var(--navy-mid)}
.read-option.selected-fila{box-shadow:inset 0 0 0 1px var(--muted)}
.read-option.selected-abandonei,.bdet-so.sel,.add-so.sel,.pc-kind.on,.pc-book-chip.on,.lib-origin-btn[data-src="clube"]{box-shadow:inset 0 0 0 1px var(--navy)}
.rsvp-card.nao{box-shadow:inset 0 0 0 1px var(--err)}
