/* Revisor de Livros: o que só o autor e os administradores veem. O convite (Enviar para um revisor),
   a lista de pessoas do livro e a edição do acesso de cada uma. */

/* ---- o convite ---- */
.conv{display:flex;flex-direction:column;gap:16px}
.convTopo{display:grid;grid-template-columns:118px minmax(0,1fr);gap:18px;align-items:start}
.convCampos{display:flex;flex-direction:column;gap:12px;min-width:0}
.convTopo.semFoto{grid-template-columns:1fr}
.convTopo.semFoto .fotoCampo{display:none}
.convLinha{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:12px}
.secT{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:600;margin:4px 0 -6px}

/* foto: enviada (quadrada) ou um dos 10 avatares */
.fotoCampo{display:flex;flex-direction:column;align-items:center;gap:8px}
.fotoPrev{position:relative}
.fotoPrev .av{--av:96px;font-size:34px}
.fotoBtns{display:flex;flex-direction:column;gap:4px;width:100%}
.fotoBtns button{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;padding:6px 6px;border:1px solid var(--line2);border-radius:8px;background:var(--card);font-size:12px;color:var(--ink2)}
.fotoBtns button:hover{border-color:var(--accent);color:var(--accent-ink)}
.fotoBtns button.on{border-color:var(--accent);background:var(--accent-bg);color:var(--accent-ink)}
.fotoBtns svg{width:14px;height:14px}
.avGrade{grid-column:1/-1;display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--panel)}
.avGrade button{padding:0;border:2px solid transparent;border-radius:50%;background:none;aspect-ratio:1;display:flex;transition:transform .12s}
.avGrade button:hover{transform:scale(1.08)}
.avGrade button.on{border-color:var(--accent)}
.avGrade .av{--av:100%;width:100%;height:100%}

/* acesso: Revisor ou Administrador */
.opcoes{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.opcao{position:relative;display:flex;gap:10px;padding:12px 13px;border:1px solid var(--line2);border-radius:11px;background:var(--card);cursor:pointer;transition:border-color .15s,background-color .15s,box-shadow .15s}
.opcao:hover{border-color:var(--faint)}
.opcao input{position:absolute;opacity:0;pointer-events:none}
.opcao .bola{width:18px;height:18px;border-radius:50%;border:2px solid var(--line2);flex:none;margin-top:1px;transition:border-color .15s,box-shadow .15s}
.opcao b{display:block;font-size:14px;color:var(--ink)}
.opcao span.d{display:block;font-size:12.5px;line-height:1.45;color:var(--muted);margin-top:2px}
.opcao:has(input:checked){border-color:var(--accent);background:var(--accent-bg);box-shadow:0 0 0 1px var(--accent)}
.opcao:has(input:checked) .bola{border-color:var(--accent);box-shadow:inset 0 0 0 4px var(--card),inset 0 0 0 10px var(--accent)}
.opcao:has(input:disabled){opacity:.5;cursor:not-allowed}
.opcao:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}

/* partes liberadas: o livro todo ou capítulos e tópicos escolhidos */
.partes{display:flex;flex-direction:column;gap:8px}
.partesModo{display:flex;gap:6px;flex-wrap:wrap}
.partesModo label{display:flex;align-items:center;gap:7px;padding:7px 12px;border:1px solid var(--line2);border-radius:20px;background:var(--card);font-size:13px;color:var(--ink2);cursor:pointer}
.partesModo label:has(input:checked){border-color:var(--accent);background:var(--accent-bg);color:var(--accent-ink);font-weight:600}
.partesModo input{accent-color:var(--accent);margin:0}
.arvore{max-height:280px;overflow:auto;border:1px solid var(--line);border-radius:11px;background:var(--card);padding:6px}
.arvCap+.arvCap{border-top:1px solid var(--line)}
.arvLinha{display:flex;align-items:center;gap:8px;padding:6px 6px;border-radius:7px}
.arvLinha:hover{background:var(--panel)}
.arvLinha label{display:flex;align-items:center;gap:8px;flex:1;min-width:0;cursor:pointer;font-size:13.5px;color:var(--ink)}
.arvLinha label .tt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.arvLinha input{width:16px;height:16px;accent-color:var(--accent);flex:none;margin:0}
.arvLinha .code{font-family:"JetBrains Mono",monospace;font-size:10px;padding:2px 5px;border-radius:5px;background:var(--code-bg);color:var(--muted);flex:none}
.arvCap>.arvLinha label{font-family:Lora,Georgia,serif;font-weight:600}
.arvAbre{display:flex;align-items:center;gap:3px;padding:3px 6px;border:none;border-radius:6px;background:none;color:var(--muted);font-size:12px;white-space:nowrap}
.arvAbre:hover{background:var(--panel2);color:var(--ink2)}
.arvAbre svg{width:13px;height:13px;transition:transform .2s}
.arvCap.aberto .arvAbre svg{transform:rotate(90deg)}
.arvTops{display:none;margin-left:22px;padding-left:8px;border-left:1px solid var(--line2)}
.arvCap.aberto .arvTops{display:block}
.arvTops .arvLinha label{font-size:13px;color:var(--ink2)}
.partesResumo{font-size:12.5px;color:var(--muted)}

/* quem já tem conta */
.jaConta{display:flex;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:var(--sys-bg);border:1px solid var(--sys-line);font-size:13px;line-height:1.45;color:var(--ink2)}
.jaConta .av{--av:34px}
.jaConta b{color:var(--ink)}
.checkLinha{display:flex;align-items:center;gap:8px;font-size:13.5px;color:var(--ink2);cursor:pointer}
.checkLinha input{width:16px;height:16px;accent-color:var(--accent);margin:0}

/* resultado do convite */
.convOk{display:flex;flex-direction:column;align-items:center;text-align:center;gap:10px;padding:4px 0}
.convOk .ic{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:var(--add-bg);color:var(--add)}
.convOk .ic.aviso{background:var(--accent-bg);color:var(--accent-ink)}
.convOk .ic svg{width:26px;height:26px}
.convOk h3{padding:0}
.convTexto{width:100%;text-align:left;white-space:pre-wrap;font-family:Inter,system-ui,sans-serif;font-size:13px;line-height:1.55;color:var(--ink2);background:var(--panel);border:1px solid var(--line);border-radius:10px;padding:12px 14px;margin:4px 0 0;max-height:220px;overflow:auto;user-select:all}
.convOk .btns{justify-content:center}
.btn.whats{background:#1f9d55;color:#fff}
.btn.whats:hover{background:#18834a}

/* ---- a lista de pessoas (painel da direita) ---- */
.pessoas{padding:12px 12px 80px;display:flex;flex-direction:column;gap:10px}
.pesNovo{width:100%;display:flex;align-items:center;justify-content:center;gap:7px;padding:10px;border-radius:10px;background:var(--accent);color:var(--on-accent);border:none;font-size:13.5px;font-weight:500}
.pesNovo:hover{background:var(--accent-ink)}
.pesNovo svg{width:16px;height:16px}
.pesAutor{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:11px;background:var(--panel2);font-size:13px;color:var(--ink2)}
.pesAutor .av{--av:30px}
.pessoa{position:relative;display:flex;gap:11px;padding:11px 11px 12px;border:1px solid var(--line);border-radius:12px;background:var(--card)}
.pessoa .av{--av:38px}
.pessoa .pc{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}
.pessoa .pn{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.pessoa .pn b{font-size:14px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.pessoa .pm{font-size:12px;color:var(--muted);line-height:1.4}
.pessoa .pm.info{color:var(--ink2);font-style:italic}
.pessoa .pp{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--muted)}
.pessoa .pp .barra{flex:1}
.pessoa .pMais{position:absolute;top:6px;right:6px;display:flex;padding:5px;border:none;background:none;border-radius:7px;color:var(--faint)}
.pessoa .pMais:hover{background:var(--panel2);color:var(--ink2)}
.pessoa .pMais svg{width:16px;height:16px}
.pessoa.revogada{opacity:.62;background:none}
.pesGrupo{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--faint);font-weight:600;margin:8px 2px 0}
.pesVazio{padding:16px;text-align:center;font-size:13.5px;line-height:1.55;color:var(--muted);border:1px dashed var(--line2);border-radius:12px}
