/* =========================================================================
   Devarim — Design System (skill: ux-ui-estudo-biblico)
   Ferramenta de conhecimento (Notion/Obsidian/Logos/Linear), não portal.
   Camadas: primitivos -> semânticos -> ponte Bootstrap -> componentes.
   ========================================================================= */

/* ---------- 1. PRIMITIVOS (valor cru; nunca usados direto) ---------- */
:root {
  --blue-500:#2F5FE0; --blue-400:#7AA2FF; --blue-600:#244FC9; --blue-700:#1D42AD;
  --terra-500:#C2603F; --terra-400:#E08A6A;
  --gray-50:#FAFAF8; --gray-900:#1A1A1A; --gray-600:#5B5B57;
  --ink-950:#0F1115; --ink-900:#171A21; --ink-100:#F3F4F6;

  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px;
  --space-6:24px; --space-8:32px; --space-12:48px; --space-16:64px;
  --radius-sm:6px; --radius-md:8px; --radius-lg:12px; --radius-full:9999px;
  --shadow-1:0 1px 2px rgba(16,17,21,.06); --shadow-2:0 2px 8px rgba(16,17,21,.08);
  --shadow-3:0 8px 24px rgba(16,17,21,.12); --shadow-4:0 16px 48px rgba(16,17,21,.18);
  --duration-fast:120ms; --duration-base:180ms; --duration-slow:260ms;
  --ease-out:cubic-bezier(.2,0,0,1);

  --font-serif:'Literata', Georgia, 'Times New Roman', serif;
  --font-sans:'General Sans', 'Inter', system-ui, 'Segoe UI', Roboto, sans-serif;
  --font-titulo:'General Sans', 'Inter', system-ui, sans-serif;
  --font-leitura-padrao:'Open Sans', system-ui, 'Segoe UI', sans-serif;
  --gk:'Gentium Plus', 'Galatia SIL', 'Times New Roman', serif;
  /* compat: regras antigas que ainda citem --serif */
  --serif:var(--font-serif);

  /* escala tipográfica (base 18px, razão 1.25) + tamanhos de UI por intenção */
  --fs-corpo:18px; --fs-nota:14.4px; --fs-ui:14px; --fs-cap:12px; --fs-label:11px;
}

/* ---------- 2. SEMÂNTICOS — TEMA CLARO + ponte Bootstrap ---------- */
:root, [data-bs-theme="light"] {
  /* paleta quente (design system AssetWise): bege claro + cards quase-brancos */
  --color-bg:#F2F0E9;             /* fundo bege quente */
  --color-panel:#ECE9E0;          /* painel/barra de controles */
  --color-surface:#FCFBF8;        /* cards, inputs, popovers */
  --color-surface-raised:#FFFFFF;
  --color-leitura-bg:#FFFFFF;      /* fundo BRANCO da área de leitura (melhor legibilidade) */
  --color-border:#E5E1D7;
  --color-text:#1B1A16;
  --color-text-muted:#88826F;
  --color-leitura:#5e5d59;        /* cor do texto bíblico (leitura mais leve) */
  --color-jesus:#B0281F;          /* palavras de Jesus (red-letter) */
  --color-lugar:#1f7a55;          /* nomes de lugares (mapa) */
  --color-accent:var(--blue-500);
  --color-accent-hover:var(--blue-600);
  --color-accent-fg:#FFFFFF;
  --color-accent-subtle:#EAF0FF;
  /* primário "ink" (estética AssetWise: ação principal preta) */
  --color-ink-btn:#1B1A16; --color-ink-btn-hover:#000000; --color-ink-btn-fg:#FAF9F5;
  --color-dots:#D7D3C7;           /* textura pontilhada (fundo do app) */
  /* sidebar escura (admin) */
  --color-sidebar:#1B1A16; --color-sidebar-fg:#EDEAE1; --color-sidebar-muted:#9C9686;
  --color-sidebar-active:#2C2A23; --color-sidebar-border:#2E2C25;
  --color-secondary:var(--terra-500);
  --color-ring:var(--blue-500);

  /* destaques (marca-texto) — fundo por tema */
  --hl-amarelo:#FCF3C0; --hl-verde:#D8F0D6; --hl-azul:#D6E4FB; --hl-rosa:#FBD9E6; --hl-laranja:#FBE2CC;
  /* licença: verde = domínio público · amarelo = licenciada (API) · vermelho = protegida sem conexão */
  --lic-verde-bg:#DEF3E4; --lic-verde-fg:#1F7A43; --lic-amarelo-bg:#FBF0C8; --lic-amarelo-fg:#8A6A12;
  --lic-vermelho-bg:#FBE3E3; --lic-vermelho-fg:#B23B3B;

  /* ponte: alimenta o Bootstrap com os tokens */
  --bs-body-bg:var(--color-bg);
  --bs-body-color:var(--color-text);
  --bs-secondary-color:var(--color-text-muted);
  --bs-tertiary-bg:var(--color-panel);
  --bs-secondary-bg:#ECEAE3;
  --bs-border-color:var(--color-border);
  --bs-primary:var(--color-accent);
  --bs-primary-bg-subtle:var(--color-accent-subtle);
  --bs-link-color:var(--color-accent);
  --bs-link-hover-color:var(--color-accent-hover);
  --bs-border-radius:var(--radius-md);
}

/* ---------- 2b. SEMÂNTICOS — TEMA ESCURO ---------- */
[data-bs-theme="dark"] {
  /* escuro quente (design system AssetWise) */
  --color-bg:#16150F;
  --color-panel:#1C1B14;
  --color-surface:#211F18;
  --color-surface-raised:#2A2820;
  --color-leitura-bg:#1B1A13;      /* fundo da área de leitura no escuro (calmo, não preto) */
  --color-border:#34322A;
  --color-text:#F2F0E7;
  --color-text-muted:#A8A290;
  --color-leitura:#cfccc2;        /* leitura mais leve no escuro (não branco puro) */
  --color-jesus:#FF8A80;          /* red-letter no escuro */
  --color-lugar:#5fd6a0;          /* lugares no escuro */
  --color-accent:var(--blue-400);
  --color-accent-hover:#9DBBFF;
  --color-accent-fg:var(--ink-950);
  --color-accent-subtle:#23304a;
  /* no escuro, o primário "ink" inverte: claro com texto escuro */
  --color-ink-btn:#F2F0E7; --color-ink-btn-hover:#FFFFFF; --color-ink-btn-fg:#16150F;
  --color-dots:#33312A;
  /* sidebar no escuro: ainda mais escura que o fundo */
  --color-sidebar:#100F0A; --color-sidebar-fg:#EDEAE1; --color-sidebar-muted:#8C887A;
  --color-sidebar-active:#23211A; --color-sidebar-border:#2A2820;
  --color-secondary:var(--terra-400);
  --color-ring:var(--blue-400);

  --hl-amarelo:#3D3514; --hl-verde:#16361F; --hl-azul:#16263F; --hl-rosa:#3A1A28; --hl-laranja:#3A2412;
  --lic-verde-bg:#163524; --lic-verde-fg:#7BE0A0; --lic-amarelo-bg:#3A3514; --lic-amarelo-fg:#F0C25A;
  --lic-vermelho-bg:#3A1C1C; --lic-vermelho-fg:#F19A9A;

  --bs-body-bg:var(--color-bg);
  --bs-body-color:var(--color-text);
  --bs-secondary-color:var(--color-text-muted);
  --bs-tertiary-bg:var(--color-panel);
  --bs-secondary-bg:#232833;
  --bs-border-color:var(--color-border);
  --bs-primary:var(--color-accent);
  --bs-primary-bg-subtle:var(--color-accent-subtle);
  --bs-link-color:var(--color-accent);
  --bs-link-hover-color:var(--color-accent-hover);
}

/* ---------- 3. Base ---------- */
body { font-family:var(--font-sans); }
:focus-visible { outline:3px solid var(--color-ring); outline-offset:2px; border-radius:var(--radius-sm); }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration:.01ms!important; transition-duration:.01ms!important; scroll-behavior:auto!important; }
}

.topo { border-bottom:1px solid var(--color-border); }

/* fonte de título (Stack Sans Headline) */
.navbar-brand .fw-bold { font-family:var(--font-titulo); font-weight:600; letter-spacing:0; font-size:1.15rem; }
.container h1, .aviso-protegido h3, .admin-cab h1 { font-family:var(--font-titulo); font-weight:600; letter-spacing:-.01em; }
.modal-title { font-family:var(--font-sans); font-weight:500; font-size:1.05rem; letter-spacing:0; }

/* modais: nunca gerar barra horizontal */
.modal-body { overflow-x:hidden; }
.grade-livros, .grade-caps, .versao-card { min-width:0; }
.livro-btn { min-width:0; overflow-wrap:anywhere; }
.conteudo { display:flex; flex-direction:column; }

.rotulo {
  display:block; font-size:var(--fs-label); text-transform:uppercase;
  letter-spacing:.04em; color:var(--color-text-muted); margin-bottom:2px;
}
.controles { background:var(--color-panel); }

/* botão primário "ink" (estética AssetWise) — ação principal em preto */
.btn-accent { background:var(--color-ink-btn); color:var(--color-ink-btn-fg); border:1px solid var(--color-ink-btn); font-weight:500; }
.btn-accent:hover, .btn-accent:focus-visible { background:var(--color-ink-btn-hover); border-color:var(--color-ink-btn-hover); color:var(--color-ink-btn-fg); }
/* pílula maior para CTAs de destaque (hero) */
.btn-pill { border-radius:var(--radius-full); padding-left:var(--space-6); padding-right:var(--space-6); }

/* opções de leitura (popover) */
.opcoes-leitura { width:300px; }
.opt-fonte-leitura.active, .opcoes-leitura [data-fmt].active { background:var(--color-accent-subtle); color:var(--color-accent); border-color:var(--color-accent); }

/* cor por licença: verde = domínio público · amarelo = licenciada (API) · vermelho = protegida sem conexão */
.btn-lic-verde { background:var(--lic-verde-bg); color:var(--lic-verde-fg); border:1px solid var(--lic-verde-fg); }
.btn-lic-amarelo { background:var(--lic-amarelo-bg); color:var(--lic-amarelo-fg); border:1px solid var(--lic-amarelo-fg); }
.btn-lic-vermelho { background:var(--lic-vermelho-bg); color:var(--lic-vermelho-fg); border:1px solid var(--lic-vermelho-fg); }
.btn-lic-verde:hover, .btn-lic-verde:focus-visible { filter:brightness(.96); color:var(--lic-verde-fg); }
.btn-lic-amarelo:hover, .btn-lic-amarelo:focus-visible { filter:brightness(.96); color:var(--lic-amarelo-fg); }
.btn-lic-vermelho:hover, .btn-lic-vermelho:focus-visible { filter:brightness(.96); color:var(--lic-vermelho-fg); }
.versao-sigla.lic-verde { background:var(--lic-verde-bg); color:var(--lic-verde-fg); }
.versao-sigla.lic-amarelo { background:var(--lic-amarelo-bg); color:var(--lic-amarelo-fg); }
.versao-sigla.lic-vermelho { background:var(--lic-vermelho-bg); color:var(--lic-vermelho-fg); }
.versao-card.lic-vermelho { opacity:.9; }

/* atribuição (copyright) de versão licenciada */
.copyright-versao { max-width:66ch; margin:var(--space-8) auto 0; padding-top:var(--space-3); border-top:1px solid var(--color-border); font-size:var(--fs-label); line-height:1.5; color:var(--color-text-muted); }
.copyright-versao span { opacity:.7; }

/* aviso de versão protegida */
.aviso-protegido { max-width:560px; margin:var(--space-8) auto; background:var(--color-surface); border:1px solid var(--color-border); border-left:4px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-6); }
.aviso-protegido.aviso-amarelo { border-left-color:var(--lic-amarelo-fg); }
.aviso-protegido.aviso-vermelho { border-left-color:var(--lic-vermelho-fg); }
.aviso-protegido h3 { font-size:1.1rem; display:flex; align-items:center; gap:10px; margin-bottom:var(--space-2); color:var(--color-text); }
.aviso-protegido p { color:var(--color-text-muted); margin-bottom:var(--space-4); }
.aviso-protegido code { background:var(--bs-secondary-bg); padding:1px 5px; border-radius:var(--radius-sm); font-size:.85em; }
.badge-protegido { font-size:var(--fs-label); font-weight:600; padding:3px 8px; border-radius:var(--radius-full); text-transform:uppercase; letter-spacing:.04em; }
.badge-protegido.lic-amarelo { background:var(--lic-amarelo-bg); color:var(--lic-amarelo-fg); }
.badge-protegido.lic-vermelho { background:var(--lic-vermelho-bg); color:var(--lic-vermelho-fg); }

/* chips de comparação (até 5 versões) */
.cmp-chips { display:inline-flex; align-items:center; flex-wrap:wrap; gap:var(--space-1); font-size:var(--fs-cap); }
.cmp-chips-rotulo { color:var(--color-text-muted); text-transform:uppercase; letter-spacing:.03em; font-size:var(--fs-label); }
.cmp-chip { display:inline-flex; align-items:center; gap:2px; background:var(--color-accent-subtle); color:var(--color-accent); border-radius:var(--radius-full); padding:2px 4px 2px 8px; font-weight:600; font-family:ui-monospace, Consolas, monospace; }
.cmp-chip button { border:none; background:none; color:inherit; font-size:1.1em; line-height:1; cursor:pointer; padding:0 2px; }
.cmp-chip button:hover { color:var(--color-danger, #C0392B); }
.cmp-limpar { border:none; background:none; color:var(--color-text-muted); text-decoration:underline; cursor:pointer; font-size:var(--fs-label); }
.cmp-limpar:hover { color:var(--color-accent); }

/* comparação alinhada (tabela: uma linha por versículo, uma coluna por versão) */
/* NÃO usar overflow no .comparacao: um contêiner de rolagem aqui quebra o
   position:sticky do cabeçalho (ele "descola" e vira uma tarja branca cortando
   o texto). A rolagem horizontal, quando necessária, fica no próprio .leitor-pane. */
.comparacao { }
.tabela-comparacao { width:100%; border-collapse:collapse; }
/* top negativo (= -padding do painel) + sombra-máscara para o cabeçalho grudar
   colado no topo do painel, sem deixar texto vazar na faixa acima dele. */
.tabela-comparacao th { position:sticky; top:calc(-1 * var(--space-8)); z-index:2; text-align:left; vertical-align:bottom; background:var(--color-bg); box-shadow:0 calc(-1 * var(--space-8)) 0 0 var(--color-bg); font-family:var(--font-sans); font-size:var(--fs-cap); font-weight:600; text-transform:uppercase; letter-spacing:.03em; color:var(--color-text-muted); border-bottom:2px solid var(--color-border); padding:var(--space-2); }
.tabela-comparacao td { vertical-align:top; padding:var(--space-2); border-bottom:1px solid var(--color-border); }
.tabela-comparacao .cmp-num { width:2.6em; text-align:right; }
.tabela-comparacao .cmp-cel { min-width:11em; }
.tabela-comparacao .cmp-th-int, .tabela-comparacao .cmp-int { border-right:1px solid var(--color-border); }
.tabela-comparacao .cmp-int { min-width:13em; }
.tabela-comparacao .cmp-int .interlinear { margin:0; }
.tabela-comparacao .cmp-cel .versiculo-texto { display:inline; font-family:var(--font-leitura, var(--font-serif)); font-size:var(--fs-nota); line-height:1.6; color:var(--color-leitura); }
.tabela-comparacao .cmp-cel .versiculo-texto.versiculo-jesus { color:var(--color-jesus); }
.tabela-comparacao .versiculo { padding:0; border-radius:0; }
.cmp-linha.selecionado { background:var(--color-accent-subtle); }
.cmp-linha.selecionado .versiculo-num { color:var(--color-accent); }
.cmp-vazio { color:var(--color-text-muted); }

/* modal de Bíblias */
.versoes-grupo-cab { font-weight:600; color:var(--color-text-muted); margin:14px 0 6px; font-size:var(--fs-cap); text-transform:uppercase; letter-spacing:.03em; }
.versoes-grupo-cab:first-child { margin-top:0; }
.versao-card { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); width:100%; text-align:left; border:1px solid var(--color-border); background:var(--color-surface); border-radius:var(--radius-md); padding:var(--space-2) var(--space-4); margin-bottom:var(--space-2); transition:border-color var(--duration-fast) var(--ease-out); }
.versao-card:hover { border-color:var(--color-accent); }
.versao-card.principal { border-color:var(--color-accent); box-shadow:inset 0 0 0 1px var(--color-accent); }
.versao-card.comparando { background:var(--color-accent-subtle); }
.versao-card-main { flex:1 1 auto; min-width:0; display:flex; flex-direction:column; gap:2px; background:none; border:none; padding:0; text-align:left; color:inherit; cursor:pointer; }
.versao-nome { display:block; font-weight:600; color:var(--color-text); }
.versao-desc { display:block; font-size:var(--fs-cap); color:var(--color-text-muted); }
.versao-sigla { font-family:ui-monospace, Consolas, monospace; font-size:var(--fs-cap); background:var(--bs-secondary-bg); color:var(--color-text-muted); padding:3px 8px; border-radius:var(--radius-sm); white-space:nowrap; flex:0 0 auto; }
/* botão "+ comparar" / "✓ comparando" no cartão de versão */
.versao-cmp-btn { flex:0 0 auto; width:32px; height:32px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--color-border); background:var(--color-surface); color:var(--color-text-muted); border-radius:var(--radius-full); cursor:pointer; transition:all var(--duration-fast) var(--ease-out); }
.versao-cmp-btn:hover { border-color:var(--color-accent); color:var(--color-accent); }
.versao-cmp-btn.on { background:var(--color-accent); border-color:var(--color-accent); color:var(--color-accent-fg); }
.versao-badge-principal { flex:0 0 auto; font-size:var(--fs-label); font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--color-accent); background:var(--color-accent-subtle); padding:3px 8px; border-radius:var(--radius-full); white-space:nowrap; }

/* modal de Bíblias: controles de exibição + accordion aninhado (idioma → família) */
.versoes-cfg { display:flex; flex-wrap:wrap; gap:var(--space-4); align-items:center; margin-bottom:var(--space-3); padding-bottom:var(--space-3); border-bottom:1px solid var(--color-border); }
.versoes-cfg-grupo { display:flex; align-items:center; gap:var(--space-2); }
.versoes-cfg-rot { font-size:var(--fs-cap); font-weight:600; color:var(--color-text-muted); }
.vsec-sum::before, .vfam-sum::before { content:'▸'; color:var(--color-text-muted); display:inline-block; transition:transform var(--duration-fast) var(--ease-out); }
.vsec[open] > .vsec-sum::before, .vfam[open] > .vfam-sum::before { transform:rotate(90deg); }
.vsec-sum, .vfam-sum { list-style:none; cursor:pointer; }
.vsec-sum::-webkit-details-marker, .vfam-sum::-webkit-details-marker { display:none; }
.vsec { margin-bottom:var(--space-3); }
.vsec-sum { display:flex; align-items:center; gap:var(--space-2); padding:var(--space-2) var(--space-1); font-size:var(--fs-ui); font-weight:700; text-transform:uppercase; letter-spacing:.03em; color:var(--color-text); }
.vsec-corpo { padding-left:var(--space-2); }
.vsec-n, .vfam-n { margin-left:auto; font-size:var(--fs-cap); font-weight:600; color:var(--color-text-muted); background:var(--color-panel); border-radius:var(--radius-full); padding:1px 9px; }
.vfam { border:1px solid var(--color-border); border-radius:var(--radius-md); margin-bottom:var(--space-2); overflow:hidden; }
.vfam-sum { display:flex; align-items:center; gap:var(--space-2); padding:var(--space-2) var(--space-3); background:var(--color-panel); font-weight:600; color:var(--color-text); }
.vfam-corpo { padding:var(--space-2) var(--space-2) 1px; }
/* cabeçalho das colunas de versão na comparação (sigla + reordenar + fechar) */
.cmp-th-vers { min-width:140px; }
.cmp-th-top { display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); }
.cmp-th-sig { font-family:ui-monospace, Consolas, monospace; font-weight:700; color:var(--color-text); }
.cmp-th-acoes { display:inline-flex; align-items:center; gap:2px; }
.cmp-th-btn { width:22px; height:22px; display:inline-flex; align-items:center; justify-content:center; border:none; background:none; color:var(--color-text-muted); border-radius:var(--radius-sm); cursor:pointer; font-size:.8em; }
.cmp-th-btn:hover:not(:disabled) { background:var(--color-panel); color:var(--color-text); }
.cmp-th-btn:disabled { opacity:.3; cursor:default; }
.cmp-th-x:hover:not(:disabled) { color:var(--color-jesus); }
.cmp-th-nome { display:block; font-weight:500; font-size:var(--fs-cap); color:var(--color-text-muted); white-space:normal; margin-top:2px; }

/* visão paralela */
.paralelo { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-8); }
.paralelo .leitor { max-width:none; margin:0; }
.col-versao-cab { font-family:var(--font-sans); font-size:var(--fs-cap); font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); border-bottom:1px solid var(--color-border); padding-bottom:var(--space-2); margin-bottom:var(--space-3); }
@media (max-width:760px) { .paralelo { grid-template-columns:1fr; } }

/* grade de livros (modal) */
.livros-grupo-cab { font-weight:600; color:var(--color-text-muted); margin:10px 0 8px; font-size:var(--fs-cap); text-transform:uppercase; letter-spacing:.03em; }
.livros-testamento { font-weight:700; color:var(--color-text); font-size:var(--fs-ui); letter-spacing:.04em; text-transform:uppercase; margin:var(--space-4) 0 var(--space-2); padding-bottom:var(--space-1); border-bottom:2px solid var(--color-border); }
.livros-testamento:first-child { margin-top:0; }
/* subcategorias (sob AT/NT) recuadas para mostrar subordinação */
.livros-testamento ~ .livros-grupo-cab { padding-left:var(--space-2); border-left:2px solid var(--color-border); }
.livros-ordenar { margin-bottom:var(--space-3); }
.grade-livros { display:grid; grid-template-columns:repeat(auto-fill, minmax(110px, 1fr)); gap:var(--space-2); margin-bottom:var(--space-3); }
.livro-btn { border:1px solid var(--color-border); background:var(--color-surface); color:var(--color-text); border-radius:var(--radius-sm); padding:8px 6px; font-size:var(--fs-cap); cursor:pointer; transition:all var(--duration-fast) var(--ease-out); }
.livro-btn:hover { border-color:var(--color-accent); color:var(--color-accent); }
.livro-btn.atual { background:var(--color-accent); color:var(--color-accent-fg); border-color:var(--color-accent); font-weight:600; }

/* ---------- Layout duas colunas ---------- */
.layout-leitura {
  display:grid; grid-template-columns:1fr 7px var(--estudo-largura, 440px);
  height:calc(100vh - 56px - 53px);
}
@media (max-width: 900px) {
  .layout-leitura { grid-template-columns:1fr; height:auto; }
  .divisor-estudo { display:none; }
}
.divisor-estudo { position:relative; cursor:col-resize; background:transparent; }
.divisor-estudo::before { content:''; position:absolute; inset:0 3px; background:var(--color-border); transition:background var(--duration-fast) var(--ease-out); }
.divisor-estudo:hover::before, .divisor-estudo.arrastando::before { background:var(--color-accent); }
.leitor-pane { overflow-y:auto; padding:var(--space-8) var(--space-12); background:var(--color-leitura-bg); }
.estudo-pane {
  border-left:1px solid var(--color-border); background:var(--color-panel);
  display:flex; flex-direction:column; overflow:hidden;
}

/* ---------- Leitor (texto bíblico = herói, serif) ---------- */
.leitor { max-width:var(--leitor-max-w, 900px); margin:0 auto; }
.versiculo { padding:var(--space-1) var(--space-2); border-radius:var(--radius-md); transition:background var(--duration-fast) var(--ease-out); }
.versiculo-texto {
  font-family:var(--font-leitura, var(--font-serif)); font-size:var(--fs-leitura, var(--fs-corpo)); line-height:1.7;
  color:var(--color-leitura); text-align:left; hyphens:auto;
}

/* títulos de seção (perícopes) */
.periscope { font-family:var(--font-titulo); font-size:1.15rem; font-weight:700; color:var(--color-text); margin:var(--space-6) 0 var(--space-2); letter-spacing:.01em; }
.periscope:first-child { margin-top:0; }

/* preloader giratório */
.preloader { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:var(--space-3); padding:var(--space-16) var(--space-4); color:var(--color-text-muted); font-size:var(--fs-ui); }
.preloader-sm { flex-direction:row; padding:var(--space-8) var(--space-4); }
.preloader-spin { width:28px; height:28px; border:3px solid var(--color-border); border-top-color:var(--color-accent); border-radius:var(--radius-full); animation:girar .7s linear infinite; }
.preloader-sm .preloader-spin { width:20px; height:20px; border-width:2.5px; }
.preloader-msg { font-style:normal; }
@keyframes girar { to { transform:rotate(360deg); } }

/* passagem destacada via URL (".../6-10+") */
.versiculo.url-destaque { background:var(--color-accent-subtle); border-radius:var(--radius-sm); }
.passagem-banner { background:var(--color-accent-subtle); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:var(--space-2) var(--space-3); margin-bottom:var(--space-4); font-size:var(--fs-ui); }

/* grade de capítulos (aba) */
.grade-caps { display:grid; grid-template-columns:repeat(auto-fill, minmax(38px, 1fr)); gap:var(--space-2); }
.cap-btn { border:1px solid var(--color-border); background:var(--color-surface); color:var(--color-text); border-radius:var(--radius-sm); padding:var(--space-2) 0; cursor:pointer; transition:all var(--duration-fast) var(--ease-out); }
.cap-btn:hover { border-color:var(--color-accent); color:var(--color-accent); }
.cap-btn.atual { background:var(--color-accent); color:var(--color-accent-fg); border-color:var(--color-accent); font-weight:600; }
[data-bs-theme="dark"] .versiculo-texto { font-weight:400; letter-spacing:.01em; }
.versiculo-num {
  border:none; background:none; color:var(--color-text-muted);
  font-weight:600; font-size:.68em; vertical-align:.4em; padding:0 .25em;
  margin-right:.15em; cursor:pointer; user-select:none;
  transition:color var(--duration-fast) var(--ease-out);
}
.versiculo-num:hover, div.versiculo:hover > .versiculo-num { color:var(--color-accent-fg); background:var(--color-accent); border-radius:var(--radius-sm); }
/* Ajuste 6: o bloco INTEIRO do versículo é clicável (não só o texto) */
.leitor div.versiculo { cursor:pointer; }
.versiculo-texto { cursor:pointer; }
.paragrafo .versiculo, .paragrafo .versiculo-texto { cursor:inherit; }

/* formato parágrafo (leitura corrida) */
.paragrafo { font-family:var(--font-leitura, var(--font-serif)); font-size:var(--fs-leitura, var(--fs-corpo)); line-height:1.85; color:var(--color-leitura); text-align:left; hyphens:auto; margin-bottom:var(--space-4); }
.paragrafo .versiculo { display:inline; padding:0; }
.paragrafo .versiculo-texto { font-family:inherit; font-size:inherit; }
.paragrafo sup.versiculo-num { font-size:.62em; color:var(--color-text-muted); }
.paragrafo .versiculo.selecionado { box-shadow:none; background:var(--color-accent-subtle); border-radius:var(--radius-sm); }
.paragrafo .versiculo.url-destaque { background:var(--color-accent-subtle); }

/* seleção para copiar (Ctrl/Shift+clique ou arrastar) */
.versiculo.copia-sel { outline:2px solid var(--color-accent); outline-offset:1px; border-radius:var(--radius-sm); }
.cmp-linha.copia-sel { outline:none; background:var(--color-accent-subtle); box-shadow:inset 3px 0 0 var(--color-accent); }
/* âncora = "primeiro versículo selecionado" (fundo distinto; alvo dos comentários/abas) */
.versiculo.copia-ancora { background:color-mix(in srgb, var(--color-accent) 16%, transparent); }
.cmp-linha.copia-ancora { background:color-mix(in srgb, var(--color-accent) 16%, transparent); box-shadow:inset 3px 0 0 var(--color-accent); }
/* o leitor não usa o realce nativo (azul) do navegador — a seleção é pintada
   ao vivo no estilo do sistema (.copia-sel) ao arrastar ou clicar */
.leitor, .comparacao { user-select:none; -webkit-user-select:none; }
/* botão dividido de cópia (ação + seta de formato, estilo Office) */
.btn-copiar-cfg { padding-left:.45rem; padding-right:.45rem; }
.btn-copiar-cfg .bi { font-size:.72em; }

/* modal: formato de cópia */
.cc-corpo { display:flex; flex-direction:column; gap:var(--space-4); }
.cc-previa {
  background:var(--color-panel); border:1px solid var(--color-border);
  border-radius:var(--radius-md); padding:var(--space-3);
}
.cc-previa-rotulo { display:block; font-size:var(--fs-cap); font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); margin-bottom:var(--space-1); }
.cc-previa-txt { margin:0; font-family:var(--font-serif, Georgia, serif); font-size:var(--fs-ui); line-height:1.5; color:var(--color-text); overflow-wrap:anywhere; }
.cc-grupo { border-top:1px solid var(--color-border); padding-top:var(--space-3); }
.cc-grupo:first-of-type { border-top:none; padding-top:0; }
.cc-grupo-tit { font-size:var(--fs-cap); font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--color-accent); margin:0 0 var(--space-2); }
.cc-linha { display:flex; align-items:center; justify-content:space-between; gap:var(--space-3); min-height:2.1rem; margin:0; }
.cc-rot { font-size:var(--fs-ui); color:var(--color-text); }
.cc-inp-curto { width:5.5rem; text-align:center; }
.cc-inp-medio { width:8.5rem; }
.cc-dep { margin-top:var(--space-2); padding-left:var(--space-3); border-left:2px solid var(--color-border); display:flex; flex-direction:column; gap:var(--space-1); }
.cc-dep.cc-off { opacity:.4; pointer-events:none; }

/* interlinear (palavras originais) */
.interlinear { display:flex; flex-wrap:wrap; gap:var(--space-2); margin:var(--space-2) 0 var(--space-4); }
/* wrapper de cada card: botão principal + ícone de áudio abaixo */
.gk-wrap { display:inline-flex; flex-direction:column; align-items:center; gap:2px; }
.gk-audio-mini {
  border:none; background:none; padding:0; line-height:1;
  color:var(--color-text-muted); cursor:pointer; font-size:16px;
  width:28px; height:28px; display:flex; align-items:center; justify-content:center;
  border-radius:50%; transition:color 120ms, background 120ms;
}
.gk-audio-mini:hover { color:var(--color-accent); background:var(--color-accent-subtle); }
.gk-audio-mini.tocando { color:#fff; background:var(--color-accent); }
.gk-palavra {
  display:flex; flex-direction:column; align-items:center; gap:1px;
  border:1px solid var(--color-border); border-radius:var(--radius-md);
  background:var(--color-surface); padding:6px 10px; line-height:1.2; cursor:pointer;
  transition:border-color var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out);
}
.gk-palavra:hover { border-color:var(--color-accent); background:var(--color-accent-subtle); }
.gk-palavra:focus-visible { outline:2px solid var(--color-ring, var(--color-accent)); outline-offset:2px; }
/* dentro de cada caixa: original + transliteração + (pronúncia) empilhados */
.gk-orig { display:flex; flex-direction:column; align-items:center; gap:1px; }
.gk { font-family:var(--gk); font-size:var(--gk-size, 20px); color:var(--color-text); }
.gk-sn { font-family:ui-monospace, Consolas, monospace; font-size:var(--fs-cap); color:var(--color-accent); }
.gk-translit { font-style:italic; font-size:var(--fs-label); color:var(--color-text-muted); }
.gk-pron { font-size:10px; color:var(--color-text-muted); }
.gk-gloss { font-size:var(--fs-cap); font-weight:600; color:var(--color-text); }
/* linha 5: análise morfológica (parsing), como pílula — nos dois layouts */
.gk-parse { font-family:var(--font-sans); font-size:var(--fs-label); font-weight:600; color:var(--color-accent); background:var(--color-accent-subtle); border:1px solid transparent; border-radius:var(--radius-full); padding:.1em .55em; white-space:nowrap; margin-top:1px; }
.gk-parse[data-cat] { cursor:help; transition:filter var(--motion-fast, 120ms) ease-out, box-shadow var(--motion-fast, 120ms) ease-out; }
.gk-parse[data-cat]:hover { filter:brightness(1.06); box-shadow:var(--shadow-1, 0 1px 3px rgba(0,0,0,.18)); }
.gk-parse-vazio { background:none; border:0; padding:0; }

/* HORIZONTAL: caixas em fluxo; ordem cima→baixo = palavra · original · translit+(pron) · Strong · análise */
.inter-horizontal .gk-palavra { min-width:64px; }

/* VERTICAL (estilo Blue Letter Bible): grade tabular, uma palavra por linha;
   as colunas (--gk-cols) se ajustam aos itens ativos */
.interlinear.inter-vertical { display:block; direction:ltr; max-width:780px; }
/* em modo vertical o wrapper é transparente ao layout; áudio fica oculto */
.inter-vertical .gk-wrap { display:contents; }
.inter-vertical .gk-audio-mini { display:none; }

/* botões flutuantes laterais: largura do texto + navegação de capítulo (Ajuste 3) */
.leitor-flutuante {
  position:fixed; top:50%; transform:translateY(-50%); z-index:300;
  display:flex; flex-direction:column; gap:6px;
  opacity:.35; transition:opacity 180ms;
}
.leitor-flutuante:hover { opacity:1; }
.leitor-flutuante-esq { left:0; }
.leitor-flutuante-dir { right:0; }
.btn-flut {
  border:1px solid var(--color-border); background:var(--color-surface);
  color:var(--color-text-muted); cursor:pointer;
  border-radius:0 var(--radius-md) var(--radius-md) 0;
  padding:10px 7px; line-height:1; font-size:17px;
  display:flex; align-items:center; justify-content:center;
  transition:background 120ms, color 120ms, border-color 120ms;
  box-shadow:1px 1px 4px rgba(0,0,0,.12);
}
.leitor-flutuante-dir .btn-flut {
  border-radius:var(--radius-md) 0 0 var(--radius-md);
}
.btn-flut:hover {
  background:var(--color-accent-subtle); color:var(--color-accent);
  border-color:var(--color-accent);
}

/* ---------- Meus Comentaristas: cards no leitor ---------- */
.mc-lista { display:flex; flex-direction:column; gap:var(--space-3); }
.mc-card { border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-surface); padding:var(--space-3); }
.mc-cab { display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); margin-bottom:var(--space-2); font-size:var(--fs-label); }
.mc-autor { font-weight:600; color:var(--color-text); }
.mc-fonte { color:var(--color-text-muted); font-size:var(--fs-cap); }
.mc-fonte .bi-youtube { color:#f00; }
.mc-video { display:flex; gap:var(--space-2); align-items:center; text-decoration:none; color:inherit; margin-bottom:var(--space-2); }
.mc-thumb { width:120px; height:68px; object-fit:cover; border-radius:var(--radius-sm); flex:none; background:var(--color-border); }
.mc-video-info { display:flex; flex-direction:column; gap:2px; min-width:0; position:relative; }
.mc-titulo { font-weight:600; font-size:var(--fs-cap); color:var(--color-text); line-height:1.3; }
.mc-ts { font-size:var(--fs-label); color:var(--color-text-muted); }
.mc-play { font-size:1.4rem; color:#f00; align-self:flex-start; }
.mc-texto { font-size:var(--fs-cap); color:var(--color-text); line-height:1.55; }

/* ---------- Meus Comentaristas: tela de gestão (modal) ---------- */
.mc-add-linha { display:flex; gap:var(--space-2); align-items:center; }
.mc-add-linha .form-control { flex:1; }
.mc-resultados { margin-top:var(--space-2); border:1px solid var(--color-border); border-radius:var(--radius-md); overflow:hidden; }
.mc-res-item { display:flex; align-items:center; gap:var(--space-2); padding:var(--space-2); border-bottom:1px solid var(--color-border); }
.mc-res-item:last-child { border-bottom:0; }
.mc-res-item img, .mc-res-x { width:40px; height:40px; border-radius:50%; flex:none; object-fit:cover; display:flex; align-items:center; justify-content:center; background:var(--color-accent-subtle); color:#f00; }
.mc-res-info { min-width:0; flex:1; }
.mc-res-tit { font-weight:600; font-size:var(--fs-cap); }
.mc-res-desc { font-size:var(--fs-label); color:var(--color-text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.mc-manual { margin-top:var(--space-3); display:flex; flex-direction:column; gap:var(--space-1); }
.mc-gestao-lista { display:flex; flex-direction:column; gap:var(--space-2); }
.mc-g-card { border:1px solid var(--color-border); border-radius:var(--radius-md); padding:var(--space-2) var(--space-3); }
.mc-g-cab { display:flex; align-items:center; gap:var(--space-2); margin-bottom:var(--space-1); }
.mc-g-foto { width:32px; height:32px; border-radius:50%; object-fit:cover; flex:none; display:flex; align-items:center; justify-content:center; background:var(--color-accent-subtle); color:var(--color-accent); font-weight:700; }
.mc-g-nome { font-weight:600; }
.mc-g-fontes { display:flex; flex-direction:column; gap:2px; padding-left:calc(32px + var(--space-2)); }
.mc-fonte-linha { display:flex; align-items:center; gap:var(--space-2); font-size:var(--fs-cap); }
.mc-fonte-nome { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.mc-chip { font-size:var(--fs-label); padding:.05em .5em; border-radius:var(--radius-full); white-space:nowrap; }
.mc-chip-ok { background:#d1e7dd; color:#0f5132; }
.mc-chip-wip { background:#fff3cd; color:#664d03; }
.mc-chip-err { background:#f8d7da; color:#842029; }
[data-bs-theme="dark"] .mc-chip-ok { background:#13361f; color:#75d99a; }
[data-bs-theme="dark"] .mc-chip-wip { background:#3a3210; color:#e6c14d; }
[data-bs-theme="dark"] .mc-chip-err { background:#3a1518; color:#e88; }
.inter-vertical .gk-cab,
.inter-vertical .gk-palavra {
  display:grid; grid-template-columns:var(--gk-cols, minmax(0,1.1fr) minmax(0,1.7fr) 4.5rem auto);
  align-items:center; gap:var(--space-4); width:100%; text-align:left;
}
.inter-vertical .gk-cab {
  position:sticky; top:0; z-index:1; background:var(--color-bg);
  padding:var(--space-1) var(--space-2) var(--space-2); border-bottom:2px solid var(--color-border);
  font-size:var(--fs-cap); font-weight:600; text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted);
}
.inter-vertical .gk-palavra {
  border:none; border-bottom:1px solid var(--color-border); border-radius:0;
  background:none; padding:var(--space-2); flex-direction:row;
}
.inter-vertical .gk-palavra:hover { background:var(--color-panel); }
.inter-vertical .gk-gloss { font-size:var(--fs-ui); }
.inter-vertical .gk-orig { align-items:flex-start; }
.inter-vertical .gk { font-size:calc(var(--gk-size, 14px) * 1.3); unicode-bidi:isolate; }
.inter-vertical .gk-sn { font-size:var(--fs-cap); justify-self:start; }
.inter-vertical .gk-parse { justify-self:start; margin-top:0; }
@media (max-width:600px) { .inter-vertical .gk-cab, .inter-vertical .gk-palavra { gap:var(--space-3); } }

/* controle dos 5 itens do interlinear (chips ligáveis) */
.inter-itens { display:flex; flex-wrap:wrap; gap:var(--space-1); }
.inter-item { display:inline-flex; align-items:center; gap:6px; margin:0; padding:4px 10px; border:1px solid var(--color-border); border-radius:var(--radius-full); font-size:var(--fs-cap); color:var(--color-text-muted); cursor:pointer; user-select:none; background:var(--color-surface); }
.inter-item input { accent-color:var(--color-accent); margin:0; }
.inter-item:has(input:checked) { border-color:var(--color-accent); color:var(--color-text); background:var(--color-accent-subtle); }
/* barra contextual do interlinear (abaixo da barra principal; só quando ligado) */
.barra-interlinear { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-start; gap:var(--space-2) var(--space-3); padding:var(--space-2) var(--space-4); background:var(--color-panel); border-bottom:1px solid var(--color-border); }
.barra-interlinear .bi-rotulo { display:inline-flex; align-items:center; font-size:var(--fs-cap); font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); }
.barra-interlinear .bi-sep { font-size:var(--fs-cap); color:var(--color-text-muted); margin-left:var(--space-2); }
@media (max-width:600px) { .barra-interlinear .bi-rotulo, .barra-interlinear .bi-sep { display:none; } }

/* controle de Cores das análises (botão + popover de temas/paleta) */
.inter-cores-wrap { position:relative; display:inline-flex; }
.inter-cores-btn { display:inline-flex; align-items:center; font-size:var(--fs-cap); border-radius:var(--radius-full); }
.inter-cores-pop { position:absolute; top:calc(100% + 6px); left:0; z-index:40; width:280px; max-width:88vw;
  padding:var(--space-3); background:var(--color-surface); border:1px solid var(--color-border);
  border-radius:var(--radius-lg, 12px); box-shadow:var(--shadow-3, 0 12px 32px rgba(0,0,0,.22)); }
.ic-sec-tit { font-size:var(--fs-cap); font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); margin:0 0 var(--space-2); }
.ic-sec-tit + .ic-temas { margin-bottom:var(--space-3); }
.ic-temas { display:flex; flex-wrap:wrap; gap:var(--space-1); }
.ic-tema { font-size:var(--fs-cap); padding:4px 10px; border:1px solid var(--color-border); border-radius:var(--radius-full);
  background:var(--color-surface); color:var(--color-text-muted); cursor:pointer; }
.ic-tema:hover { color:var(--color-text); border-color:var(--color-text-muted); }
.ic-tema.active { border-color:var(--color-accent); color:var(--color-text); background:var(--color-accent-subtle); }
.ic-grade { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-2) var(--space-3); }
.ic-swatch { display:inline-flex; align-items:center; gap:6px; padding:0; border:0; background:none; cursor:pointer; text-align:left; }
.ic-swatch[disabled] { cursor:default; }
.ic-pencil { width:14px; color:var(--color-text-muted); font-size:11px; line-height:1; }
.ic-pill { flex:1; min-width:0; padding:3px 8px; border:1px solid transparent; border-radius:var(--radius-full);
  font-size:10px; font-weight:700; letter-spacing:.02em; text-align:center; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ic-swatch:not([disabled]):hover .ic-pill { filter:brightness(1.06); }
.ic-color-input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }

/* balão (box) de explicação da tag de análise */
.gk-box { position:absolute; z-index:60; max-width:260px; padding:var(--space-2) var(--space-3);
  display:flex; flex-direction:column; gap:2px; text-align:center;
  background:var(--color-surface); border:1px solid var(--color-border); border-top:3px solid var(--gk-box-cor, var(--color-accent));
  border-radius:var(--radius-md, 8px); box-shadow:var(--shadow-3, 0 12px 32px rgba(0,0,0,.22)); pointer-events:none; }
.gk-box-tit { font-family:ui-monospace, Consolas, monospace; font-size:var(--fs-ui); font-weight:700; letter-spacing:.02em; }
.gk-box-corpo { font-family:var(--font-sans); font-size:var(--fs-label); font-weight:600; color:var(--color-text); margin-top:1px; }
.gk-box-expl { font-size:var(--fs-cap); color:var(--color-text-muted); margin-top:4px; padding-top:4px; border-top:1px solid var(--color-border); }
@media (prefers-reduced-motion:reduce) { .gk-parse[data-cat] { transition:none; } }

/* no interlinear, a frase suave é ocultada (fica no DOM só para cópia); as caixas a substituem */
.versiculo-inter .versiculo-texto { display:none; }
.versiculo-inter .interlinear { margin-top:0; }

/* ---------- Painel de estudo ---------- */
.estudo-tabs { padding:0 var(--space-3); flex:0 0 auto; }
.estudo-tabs .nav-link { padding:var(--space-2) var(--space-3); font-size:var(--fs-cap); }
.estudo-corpo { padding:var(--space-4) var(--space-6); overflow-y:auto; flex:1 1 auto; }
.atribuicao { font-size:var(--fs-label); flex:0 0 auto; }

.palavra-cabeca { display:flex; align-items:baseline; gap:var(--space-3); margin-bottom:var(--space-4); }
.palavra-grega { font-family:var(--gk); font-size:32px; color:var(--color-text); }
.palavra-translit { font-size:16px; color:var(--color-accent); font-style:italic; }
.palavra-pron { font-size:var(--fs-cap); color:var(--color-text-muted); font-style:normal; }

/* comentários: referências clicáveis (peek) + estrutura de tópicos */
.comentario-corpo .ref-cit { color:var(--color-accent); text-decoration:none; border-bottom:1px dotted var(--color-accent); cursor:pointer; white-space:nowrap; }
.comentario-corpo .ref-cit:hover { background:var(--color-accent-subtle); }
.cmt-topico { margin:.4em 0; }
.cmt-mk { color:var(--color-accent); font-weight:700; margin-right:.3em; }
.cmt-n0 { margin-left:1.4em; }
.cmt-n1 { margin-left:2.8em; }
.cmt-n2 { margin-left:4.2em; }
.cmt-n3 { margin-left:5.6em; }
.modal-ref-texto { font-family:var(--font-leitura, var(--font-serif)); color:var(--color-leitura); line-height:1.7; }
.modal-ref-texto .versiculo-num { margin-right:.2em; }
.comentario-fonte { margin-top:var(--space-2); font-size:var(--fs-label); color:var(--color-text-muted); border-top:1px dashed var(--color-border); padding-top:var(--space-1); }
.comentario-fonte a { color:var(--color-text-muted); }
.comentario-fonte a:hover { color:var(--color-accent); }

/* Peek de referência (citações nos comentários) — posicionado perto da citação */
.ref-peek { position:absolute; z-index:1085; width:340px; max-width:92vw; padding:var(--space-3); background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); box-shadow:var(--shadow-3); }
.ref-peek-cab { display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); margin-bottom:var(--space-2); cursor:grab; user-select:none; }
.ref-peek-cab strong { font-family:var(--font-titulo, inherit); }
.ref-peek-x { border:none; background:none; font-size:1.3rem; line-height:1; color:var(--color-text-muted); cursor:pointer; }
.ref-peek-x:hover { color:var(--color-accent); }
.ref-peek-versao { margin-bottom:var(--space-2); }
.ref-peek-corpo { max-height:40vh; overflow:auto; }
.ref-peek-rodape { margin-top:var(--space-2); text-align:right; }

/* notas de rodapé das traduções */
.fn-marker { color:var(--color-accent); cursor:pointer; font-weight:600; font-size:.7em; vertical-align:.4em; padding:0 .12em; user-select:none; }
.fn-marker:hover { text-decoration:underline; }
.nota-pop { position:absolute; z-index:1086; max-width:320px; padding:var(--space-2) var(--space-3); background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); box-shadow:var(--shadow-3); font-size:var(--fs-label); color:var(--color-text); line-height:1.5; }
.nota-pop-cab { font-weight:600; color:var(--color-accent); margin-right:.4em; }

/* palavras de Jesus (red-letter por versículo) */
.versiculo-texto.versiculo-jesus { color:var(--color-jesus); }
#leitor-texto.no-vermelho .versiculo-jesus { color:var(--color-leitura); }
.lbl-jesus { color:var(--color-jesus); font-weight:600; }

/* lugares (mapa da época) */
.lbl-lugares { color:var(--color-lugar); font-weight:600; }
.lugar { color:var(--color-lugar); text-decoration:underline; text-decoration-style:dotted; text-underline-offset:2px; cursor:pointer; background:none; border:none; padding:0; font:inherit; }
.lugar:hover { text-decoration-style:solid; }
.mapa-canvas { height:60vh; min-height:340px; width:100%; border:1px solid var(--color-border); border-radius:var(--radius-md); }
.mapa-credito { font-size:var(--fs-cap); }
/* mini-mapa de prévia (hover sobre um lugar) */
.mapa-peek {
  position:fixed; z-index:1080; width:240px; height:160px;
  border:1px solid var(--color-border); border-radius:var(--radius-md);
  overflow:hidden; background:var(--color-panel); box-shadow:var(--shadow-lg, 0 8px 28px rgba(0,0,0,.28));
  pointer-events:none; opacity:0; transform:translateY(4px) scale(.98);
  transition:opacity var(--duration-fast,.12s) var(--ease-out,ease), transform var(--duration-fast,.12s) var(--ease-out,ease);
}
.mapa-peek.show { opacity:1; transform:none; }
.mapa-peek-canvas { position:absolute; inset:0; }
.mapa-peek-rotulo {
  position:absolute; left:0; right:0; bottom:0; z-index:2;
  font:600 var(--fs-cap, .78rem)/1.3 var(--font-sans, inherit);
  color:#fff; background:linear-gradient(transparent, rgba(0,0,0,.72));
  padding:1.2em .6em .4em; pointer-events:none;
}
.leaflet-container { background:var(--color-surface); font-family:var(--font-sans); }

/* comentários: tabulação dos comentaristas sob a seção */
.coment-secao .coment-grupos { padding-left:var(--space-4); border-left:2px solid var(--color-border); margin-left:var(--space-1); }

/* Ferramentas por versículo (estilo Blue Letter Bible) */
.versiculo-tools { opacity:0; border:none; background:none; color:var(--color-text-muted); cursor:pointer; padding:0 .2em; font-size:.8em; transition:opacity var(--duration-fast) var(--ease-out), color var(--duration-fast) var(--ease-out); }
.versiculo:hover .versiculo-tools, .versiculo.selecionado .versiculo-tools { opacity:.6; }
.versiculo-tools:hover { opacity:1; color:var(--color-accent); }
.ferramentas-menu { position:absolute; z-index:1080; min-width:200px; padding:var(--space-1); background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); box-shadow:var(--shadow-3); }
.ferramentas-cab { font-size:var(--fs-label); text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); padding:var(--space-2) var(--space-2) var(--space-1); }
.ferr-item { display:flex; align-items:center; gap:var(--space-2); width:100%; text-align:left; border:none; background:none; padding:var(--space-2); border-radius:var(--radius-sm); color:var(--color-text); cursor:pointer; font-size:.9rem; }
.ferr-item:hover { background:var(--color-accent-subtle); color:var(--color-accent); }
.ferr-item i { width:1.1em; text-align:center; color:var(--color-text-muted); }
.ferr-item:hover i { color:var(--color-accent); }
/* cores por área, espelhando o Blue Letter Bible */
.ferr-item[data-a="palavra"] i { color:#3a7bd5; }
.ferr-item[data-a="biblias"] i { color:#d98a2b; }
.ferr-item[data-a="refs"] i { color:#8a5cd6; }
.ferr-item[data-a="comentarios"] i { color:#2e9e6b; }
.ferr-item[data-a="dicionarios"] i { color:#d65a7a; }
.ferr-item[data-a="ia"] i { color:#5b8def; }
.ferr-item[data-a="notas"] i { color:var(--color-text-muted); }

/* cabeçalho do versículo no dock: referência + Anterior/Próximo (Fase 2) */
.estudo-vnav { display:flex; align-items:center; gap:var(--space-2); padding:var(--space-2) var(--space-4);
  border-bottom:1px solid var(--color-border); background:var(--color-panel); }
.estudo-vnav .vnav-ref { flex:1 1 auto; font-weight:600; font-size:var(--fs-ui); color:var(--color-text); }
.vnav-btn { display:inline-flex; align-items:center; justify-content:center; width:28px; height:24px;
  border:1px solid var(--color-border); border-radius:var(--radius-sm); background:var(--color-surface);
  color:var(--color-text-muted); cursor:pointer; }
.vnav-btn:hover:not(:disabled) { color:var(--color-accent); border-color:var(--color-accent); }
.vnav-btn:disabled { opacity:.4; cursor:default; }

/* aba Dicionários: palavras originais do versículo */
.dic-cab, .bib-cab { font-size:var(--fs-cap); font-weight:700; text-transform:uppercase; letter-spacing:.04em;
  color:var(--color-text-muted); margin-bottom:var(--space-3); }
.dic-lista { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--space-1); }
.dic-item { display:flex; align-items:center; gap:var(--space-3); width:100%; text-align:left; padding:var(--space-2);
  border:1px solid transparent; border-radius:var(--radius-sm); background:none; cursor:pointer; color:var(--color-text); }
.dic-item:hover { background:var(--color-panel); border-color:var(--color-border); }
.dic-item .dic-orig { font-family:var(--gk); font-size:18px; min-width:4.5rem; }
.dic-item .dic-gloss { flex:1 1 auto; font-size:var(--fs-label); color:var(--color-text-muted); }

/* aba Bíblias: versículo em várias traduções */
.bib-lista { display:flex; flex-direction:column; gap:var(--space-2); }
.bib-item { display:grid; grid-template-columns:3.2rem 1fr; gap:var(--space-3); align-items:baseline;
  padding:var(--space-2) 0; border-bottom:1px solid var(--color-border); }
.bib-item.principal { background:var(--color-accent-subtle); border-radius:var(--radius-sm); padding:var(--space-2); border-bottom:none; }
.bib-item .bib-sigla { font-family:ui-monospace, Consolas, monospace; font-size:var(--fs-cap); font-weight:700; color:var(--color-text-muted); }
.bib-item .bib-texto { font-size:var(--fs-ui); line-height:1.5; color:var(--color-text); }

/* link "Ver concordância" na Análise */
.conc-link { display:inline-flex; align-items:center; margin-top:var(--space-3); padding:4px 12px;
  border:1px solid var(--color-border); border-radius:var(--radius-full); background:var(--color-surface);
  color:var(--color-accent); font-size:var(--fs-cap); cursor:pointer; }
.conc-link:hover { border-color:var(--color-accent); background:var(--color-accent-subtle); }

/* aba Concordância */
.conc-cab { display:flex; align-items:baseline; gap:var(--space-2); margin-bottom:var(--space-3); }
.conc-cab .conc-forma { font-family:var(--gk); font-size:22px; color:var(--color-text); }
.conc-cab .conc-total { font-size:var(--fs-cap); color:var(--color-text-muted); }
.conc-chips { display:flex; flex-wrap:wrap; gap:var(--space-1); margin-bottom:var(--space-2); }
.conc-chip { font-family:ui-monospace, Consolas, monospace; font-size:var(--fs-cap); padding:2px 8px;
  border:1px solid var(--color-border); border-radius:var(--radius-full); background:var(--color-surface);
  color:var(--color-text-muted); cursor:pointer; }
.conc-chip:hover { color:var(--color-text); border-color:var(--color-text-muted); }
.conc-chip.active { border-color:var(--color-accent); color:var(--color-accent); background:var(--color-accent-subtle); }
.conc-chip .conc-chip-n { opacity:.7; }
.conc-sub { font-size:var(--fs-cap); margin-bottom:var(--space-2); }
.conc-lista { display:flex; flex-direction:column; }
.conc-oc { display:grid; grid-template-columns:minmax(5.5rem,auto) minmax(0,1fr) auto; gap:var(--space-3);
  align-items:baseline; width:100%; text-align:left; padding:var(--space-2); border:none; border-bottom:1px solid var(--color-border);
  background:none; color:var(--color-text); cursor:pointer; }
.conc-oc:hover { background:var(--color-panel); }
.conc-oc .conc-ref { font-size:var(--fs-label); font-weight:600; color:var(--color-accent); white-space:nowrap; }
.conc-oc .conc-w { font-family:var(--gk); font-size:16px; }
.conc-oc .conc-en { font-size:var(--fs-cap); color:var(--color-text-muted); text-align:right; }
.campos dt { font-size:var(--fs-label); text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); }
.campos dd { margin:0 0 10px; color:var(--color-text); }
.codigo {
  font-family:ui-monospace, Consolas, monospace; font-size:var(--fs-label);
  background:var(--bs-secondary-bg); color:var(--color-text-muted);
  padding:1px 5px; border-radius:var(--radius-sm); margin-left:6px;
}
.strong-tag {
  font-family:ui-monospace, Consolas, monospace; font-size:var(--fs-cap);
  background:var(--color-accent-subtle); color:var(--color-accent);
  padding:2px 8px; border-radius:var(--radius-sm);
}
.lexico { border-top:1px solid var(--color-border); margin-top:var(--space-2); padding-top:var(--space-4); }

/* botão de áudio de pronúncia (TTS Google) */
.btn-audio { display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px;
  border:1px solid var(--color-border); border-radius:var(--radius-full); background:var(--color-surface);
  color:var(--color-accent); cursor:pointer; padding:0; }
.btn-audio:hover { border-color:var(--color-accent); background:var(--color-accent-subtle); }
.btn-audio.tocando { color:#fff; background:var(--color-accent); border-color:var(--color-accent); }

/* painel de Análise sintática (aba Palavra, estilo BLB) */
.analise-sint { margin-top:var(--space-2); }
.analise-sint h4 { color:var(--color-text-muted); text-transform:uppercase; letter-spacing:.04em; font-size:var(--fs-cap); }
.an-campos { display:flex; flex-wrap:wrap; gap:var(--space-2); margin-top:var(--space-2); }
.an-campo { display:inline-flex; flex-direction:column; gap:1px; padding:4px 10px;
  border:1px solid var(--color-border); border-radius:var(--radius-md); background:var(--color-surface); }
.an-campo .an-rot { font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); }
.an-campo .an-val { font-size:var(--fs-label); font-weight:600; color:var(--color-text); }

/* ---------- Destaques (marca-texto) ---------- */
.versiculo.hl-amarelo { background:var(--hl-amarelo); }
.versiculo.hl-verde   { background:var(--hl-verde); }
.versiculo.hl-azul    { background:var(--hl-azul); }
.versiculo.hl-rosa    { background:var(--hl-rosa); }
.versiculo.hl-laranja { background:var(--hl-laranja); }
.versiculo.selecionado { box-shadow:inset 3px 0 0 var(--color-accent); }

.destaque-bar { display:flex; align-items:center; gap:var(--space-2); padding:var(--space-2) var(--space-4); border-bottom:1px solid var(--color-border); }
.destaque-bar .swatch { width:20px; height:20px; border-radius:var(--radius-full); border:1px solid var(--color-border); padding:0; cursor:pointer; transition:transform var(--duration-fast) var(--ease-out); }
.destaque-bar .swatch[data-cor="amarelo"] { background:#F2C94C; }
.destaque-bar .swatch[data-cor="verde"]   { background:#5FB97A; }
.destaque-bar .swatch[data-cor="azul"]    { background:#5B8DEF; }
.destaque-bar .swatch[data-cor="rosa"]    { background:#E07AA3; }
.destaque-bar .swatch[data-cor="laranja"] { background:#E3884B; }
.destaque-bar .swatch-x { background:var(--bs-secondary-bg); color:var(--color-text-muted); display:flex; align-items:center; justify-content:center; }
.destaque-bar .swatch:hover { transform:scale(1.15); }

/* ---------- Página "Minhas notas" ---------- */
.mn-item { display:block; padding:var(--space-3) var(--space-4); border:1px solid var(--color-border); border-radius:var(--radius-lg); margin-bottom:10px; text-decoration:none; color:inherit; background:var(--color-surface); transition:border-color var(--duration-fast) var(--ease-out), box-shadow var(--duration-fast) var(--ease-out); }
.mn-item:hover { border-color:var(--color-accent); box-shadow:var(--shadow-1); }
.mn-ref { color:var(--color-accent); font-weight:600; }
.mn-texto { font-family:var(--font-serif); margin-top:var(--space-1); color:var(--color-text); }

/* ---------- Busca ---------- */
#busca-resultados { background:var(--color-panel); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-4); margin-bottom:var(--space-4); box-shadow:var(--shadow-2); }
.busca-item { padding:var(--space-2) 6px; border-bottom:1px solid var(--color-border); cursor:pointer; border-radius:var(--radius-sm); transition:background var(--duration-fast) var(--ease-out); }
.busca-item:hover { background:var(--color-accent-subtle); }
.busca-ref { color:var(--color-accent); font-weight:600; font-size:var(--fs-cap); margin-right:var(--space-2); }
.busca-txt { font-family:var(--font-serif); color:var(--color-text); }
.busca-item mark { background:var(--hl-amarelo); color:inherit; padding:0 2px; border-radius:var(--radius-sm); }

/* ---------- Markdown (síntese IA) ---------- */
.markdown-body { font-size:var(--fs-ui); line-height:1.6; color:var(--color-text); }
.markdown-body h1, .markdown-body h2, .markdown-body h3 { font-size:15px; margin:var(--space-3) 0 6px; }
.markdown-body ul { padding-left:20px; }
.markdown-body p { margin-bottom:var(--space-2); }

/* ---------- Comentários ---------- */
.comentario { margin-bottom:var(--space-4); }
.comentario h4 { font-size:var(--fs-ui); color:var(--color-accent); margin-bottom:var(--space-1); }
.comentario .sigla { color:var(--color-text-muted); font-weight:400; }
.comentario p { font-size:var(--fs-ui); line-height:1.6; color:var(--color-text); }

/* Comentários — filtro por teólogo + cards recolhíveis */
.teologos-filtro { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.chip-teologo {
  font-size: var(--fs-cap); padding: var(--space-1) var(--space-3);
  border: 1px solid var(--color-border); border-radius: var(--radius-sm);
  background: var(--color-surface); color: var(--color-text-muted);
  cursor: pointer; transition: all var(--duration-fast) var(--ease-out);
}
.chip-teologo:hover { border-color: var(--color-accent); color: var(--color-text); }
.chip-teologo.ativo { background: var(--color-accent); border-color: var(--color-accent); color: var(--color-accent-fg); }
.chip-teologo:focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; }
.comentario.oculto { display: none; }
.comentario-toggle {
  display: flex; align-items: center; gap: var(--space-2);
  width: 100%; text-align: left; background: none; border: 0; padding: 0;
  font: inherit; color: var(--color-text); cursor: pointer;
}
.comentario-toggle .caret { color: var(--color-text-muted); transition: transform 180ms ease-out; }
.comentario-toggle[aria-expanded="true"] .caret { transform: rotate(90deg); }
.comentario-corpo { margin-top: var(--space-2); margin-left: 2px; padding-left: calc(1em + var(--space-2)); border-left: 2px solid var(--color-border); font-size: var(--fs-ui); line-height: 1.6; color: var(--color-text); text-align: justify; hyphens: auto; }
.comentario-corpo p, .comentario-corpo .cmt-topico { font-size: inherit; line-height: inherit; margin-top: 0; margin-bottom: var(--space-2); }
.comentario-corpo .cmt-topico:last-child { margin-bottom: 0; }

/* comentários: agrupamento por categoria (período / tradição / A–Z) */
.coment-grupobar { display:flex; align-items:center; gap:var(--space-2); margin-bottom:var(--space-3); flex-wrap:wrap; }
.coment-grupobar .rotulo { font-size:var(--fs-label); color:var(--color-text-muted); }
.coment-grupo { margin-bottom:var(--space-3); }
.coment-grupo-cab { display:flex; align-items:center; gap:var(--space-2); width:100%; text-align:left; border:none; background:none; padding:var(--space-1) 0; font-size:var(--fs-label); text-transform:uppercase; letter-spacing:.04em; color:var(--color-text-muted); cursor:pointer; border-bottom:1px solid var(--color-border); }
.coment-grupo-cab .caret { transition:transform 180ms ease-out; }
.coment-grupo-cab[aria-expanded="false"] .caret { transform:rotate(-90deg); }
.coment-grupo-faixa { text-transform:none; letter-spacing:0; font-weight:400; color:var(--color-text-muted); }
.coment-grupo-n { margin-left:auto; background:var(--color-accent-subtle); color:var(--color-accent); border-radius:var(--radius-full); padding:0 .5em; font-size:.85em; }
.coment-grupo-corpo { padding-top:var(--space-2); }
.coment-ano { font-weight:400; color:var(--color-text-muted); font-size:.85em; }

/* comentários: seções (versículo / capítulo) + tags de escopo */
.coment-secao { margin-bottom:var(--space-5); }
.coment-secao-cab { display:flex; align-items:center; gap:var(--space-2); font-size:var(--fs-ui); font-weight:600; color:var(--color-text); margin:0 0 var(--space-2); padding-bottom:var(--space-1); border-bottom:2px solid var(--color-border); }
.coment-secao-n { color:var(--color-text-muted); font-weight:400; font-size:.85em; }
.coment-tag { margin-left:auto; font-size:var(--fs-label); font-weight:600; padding:.15em .55em; border-radius:var(--radius-full); white-space:nowrap; }
.tag-verde { background:var(--lic-verde-bg); color:var(--lic-verde-fg); }
.tag-amarelo { background:var(--lic-amarelo-bg); color:var(--lic-amarelo-fg); }
.tag-azul { background:var(--color-accent-subtle); color:var(--color-accent); }
/* ---------- página "Por que Devarim" ---------- */
.pagina-nome { max-width:900px; margin:0 auto; padding:var(--space-12) var(--space-6) var(--space-16); color:var(--color-text); }
.pagina-nome p { font-family:var(--font-leitura, var(--font-serif)); font-size:var(--fs-corpo); line-height:1.75; color:var(--color-leitura); margin-bottom:var(--space-4); text-align:justify; hyphens:auto; }
.pagina-nome-cab .pagina-nome-kicker, .pagina-nome-cab .pagina-nome-translit, .pagina-nome-frase { text-align:center; } /* cabeçalho e frase ficam centralizados, não justificados */
.pagina-nome-cab { text-align:center; margin-bottom:var(--space-12); }
.pagina-nome-kicker { font-family:var(--font-sans)!important; font-size:var(--fs-label); text-transform:uppercase; letter-spacing:.12em; color:var(--color-text-muted); margin-bottom:var(--space-2)!important; }
.pagina-nome-titulo { font-family:var(--font-sans); font-weight:600; font-size:clamp(1.7rem, 4vw, 2.4rem); line-height:1.15; color:var(--color-text); margin:0 0 var(--space-4); }
.pagina-nome-hebraico { font-size:clamp(2rem, 6vw, 3rem)!important; line-height:1.1!important; color:var(--color-accent)!important; margin:0 0 var(--space-1)!important; }
.pagina-nome-translit { font-family:var(--font-sans)!important; font-size:var(--fs-ui)!important; color:var(--color-text-muted)!important; margin:0!important; }
.pagina-nome-sub { font-family:var(--font-sans); font-weight:600; font-size:1.3rem; color:var(--color-text); margin:var(--space-8) 0 var(--space-3); }
.pagina-nome-sep { border:0; border-top:1px solid var(--color-border); margin:var(--space-8) 0; }
.escritura { font-style:italic; color:var(--color-text); }
.escritura-ref { font-family:var(--font-sans); font-style:normal; font-size:.72em; color:var(--color-accent); vertical-align:.35em; margin-left:.25em; white-space:nowrap; }
.pagina-nome-destaque { border-left:3px solid var(--color-accent); padding-left:var(--space-4); }
.pagina-nome-lista { list-style:none; padding:0; margin:0 0 var(--space-4); }
.pagina-nome-lista li { display:flex; gap:var(--space-3); align-items:flex-start; font-family:var(--font-leitura, var(--font-serif)); font-size:var(--fs-corpo); line-height:1.65; color:var(--color-leitura); margin-bottom:var(--space-3); }
.pagina-nome-lista li i { color:var(--color-accent); font-size:1.1em; margin-top:.2em; flex:0 0 auto; }
.pagina-nome-frase { position:relative; font-family:var(--font-leitura, var(--font-serif)); font-size:1.3rem; line-height:1.7; color:var(--color-text); background:var(--color-accent-subtle); border:none; border-radius:12px; padding:var(--space-8); margin:var(--space-12) 0 0; text-align:center; }
.pagina-nome-frase::before { content:'\201C'; display:block; font-family:Georgia, var(--font-serif); font-size:3.2rem; line-height:.5; color:var(--color-accent); opacity:.5; margin-bottom:var(--space-3); }
.pagina-nome-frase strong { color:var(--color-accent); }
.pagina-nome-rodape { text-align:center; margin-top:var(--space-8); }

/* ---------- página "Sobre" (segue o padrão de "Por que Devarim") ---------- */
.sobre-lista { padding-left:var(--space-4); margin-bottom:var(--space-4); }
.sobre-lista li { margin-bottom:var(--space-2); line-height:1.55; color:var(--color-text); text-align:justify; hyphens:auto; }
.sobre-fontes li { text-align:justify; hyphens:auto; }
.pagina-nome-lista li span { text-align:justify; hyphens:auto; }
.sobre-legenda { list-style:none; padding-left:0; }
.sobre-legenda li { position:relative; padding-left:var(--space-6); }
.sobre-dot { position:absolute; left:0; top:.45em; width:12px; height:12px; border-radius:var(--radius-full); border:1px solid var(--color-border); }
.sobre-dot.dot-verde { background:var(--lic-verde-fg); }
.sobre-dot.dot-amarelo { background:var(--lic-amarelo-fg); }
.sobre-dot.dot-vermelho { background:var(--lic-vermelho-fg); }
.sobre-fontes li { margin-bottom:var(--space-2); color:var(--color-text-muted); }
.sobre-fontes strong { color:var(--color-text); }

/* ===================== Acesso (entrar / aguardando) ===================== */
.acesso-wrap { min-height:calc(100vh - 120px); display:flex; align-items:center; justify-content:center; padding:var(--space-8) var(--space-4);
  background-image:radial-gradient(var(--color-dots) 1px, transparent 1px); background-size:22px 22px; }
.acesso-card { width:100%; max-width:430px; text-align:center; background:var(--color-surface); border:1px solid var(--color-border); border-radius:16px; padding:var(--space-12) var(--space-8); box-shadow:var(--shadow-3); }
.acesso-marca { font-family:var(--font-titulo); font-size:1.5rem; font-weight:400; margin-bottom:var(--space-1); }
.acesso-marca [lang="he"] { color:var(--color-accent); margin-left:.3rem; }
.acesso-tag { font-size:var(--fs-ui); color:var(--color-text-muted); margin-bottom:var(--space-8); }
.acesso-foto { width:64px; height:64px; border-radius:var(--radius-full); object-fit:cover; margin-bottom:var(--space-2); border:2px solid var(--color-border); }
.acesso-foto-x { display:inline-flex; align-items:center; justify-content:center; background:var(--color-accent-subtle); color:var(--color-accent); font-weight:700; font-size:1.6rem; text-transform:uppercase; }
.acesso-ola { margin-bottom:var(--space-3); }
.acesso-icone { font-size:2.4rem; margin-bottom:var(--space-2); }
.acesso-icone-espera { color:var(--color-accent); }
.acesso-icone-recusa { color:var(--lic-vermelho-fg); }
.acesso-icone-ok { color:var(--lic-verde-fg); }
.acesso-titulo { font-family:var(--font-sans); font-weight:600; font-size:1.3rem; margin-bottom:var(--space-3); }
.acesso-acoes { display:flex; gap:var(--space-2); justify-content:center; margin-top:var(--space-4); }
.acesso-nota { font-size:var(--fs-cap); margin-top:var(--space-6); line-height:1.5; }
.acesso-link-admin { display:block; width:100%; margin-top:var(--space-3); background:none; border:none; color:var(--color-text-muted); font-size:var(--fs-ui); text-decoration:underline; cursor:pointer; }
.acesso-link-admin:hover { color:var(--color-accent); }
/* seletor de idioma (PT/EN) na tela de login — a escolha vai pela URL */
.acesso-idioma { margin-top:var(--space-6); font-size:var(--fs-cap); color:var(--color-text-muted); display:flex; align-items:center; justify-content:center; gap:var(--space-2); }
.acesso-idioma a { color:var(--color-text-muted); text-decoration:none; }
.acesso-idioma a:hover { color:var(--color-accent); }
.acesso-idioma a.ativo { color:var(--color-text); font-weight:600; }
/* tela de login não mostra a barra do topo (os links já estão no card) */
body.pagina-entrar .topo { display:none; }

/* botão "Entrar com Google" */
.btn-google { display:flex; align-items:center; justify-content:center; gap:var(--space-3); width:100%; padding:12px 16px; background:#fff; color:#3c4043; border:1px solid #dadce0; border-radius:var(--radius-md); font-family:var(--font-sans); font-weight:600; font-size:15px; text-decoration:none; transition:box-shadow var(--duration-fast) var(--ease-out), background var(--duration-fast) var(--ease-out); }
.btn-google:hover { box-shadow:var(--shadow-2); background:#f8f9fa; color:#3c4043; }
.btn-google-icon { display:inline-flex; }
[data-bs-theme="dark"] .btn-google { background:#1B1F27; color:#E8EAED; border-color:#3c4043; }
[data-bs-theme="dark"] .btn-google:hover { background:#222732; color:#E8EAED; }

/* foto do usuário no cabeçalho */
.usuario-foto { width:22px; height:22px; border-radius:var(--radius-full); object-fit:cover; }

/* ===================== Painel administrativo ===================== */
.admin-cab { display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-3); margin-bottom:var(--space-4); flex-wrap:wrap; }
.admin-cards { display:grid; grid-template-columns:repeat(auto-fit, minmax(120px, 1fr)); gap:var(--space-3); }
.admin-card { display:flex; flex-direction:column-reverse; gap:var(--space-1); background:var(--color-surface); border:1px solid var(--color-border); border-radius:12px; padding:var(--space-4); text-align:left; }
.admin-card.destaque { border-color:var(--color-accent); background:var(--color-accent-subtle); }
.admin-card.online .admin-card-n { color:var(--lic-verde-fg); }
.admin-card-n { font-size:2rem; font-weight:700; line-height:1.05; letter-spacing:-.02em; color:var(--color-text); }
.admin-card-l { font-size:var(--fs-cap); color:var(--color-text-muted); }
.admin-tabs { margin-bottom:var(--space-3); }
.admin-filtros { display:flex; gap:var(--space-3); flex-wrap:wrap; align-items:center; margin-bottom:var(--space-3); }
.admin-tabela-wrap { overflow-x:auto; background:var(--color-surface); border:1px solid var(--color-border); border-radius:12px; }
.admin-tabela { width:100%; border-collapse:collapse; font-size:var(--fs-ui); }
.admin-tabela tbody tr:last-child td { border-bottom:none; }
.admin-tabela th:first-child, .admin-tabela td:first-child { padding-left:var(--space-4); }
.admin-tabela th:last-child, .admin-tabela td:last-child { padding-right:var(--space-4); }
.admin-tabela th { text-align:center; font-size:var(--fs-cap); font-weight:500; color:var(--color-text-muted); border-bottom:1px solid var(--color-border); padding:var(--space-3) var(--space-2); white-space:nowrap; }
.admin-tabela td { padding:var(--space-3) var(--space-2); border-bottom:1px solid var(--color-border); vertical-align:middle; text-align:center; }
.admin-tabela tbody tr { transition:background var(--duration-fast) var(--ease-out); }
.admin-tabela tbody tr:hover { background:var(--color-panel); }
.admin-num { white-space:nowrap; color:var(--color-text-muted); }
/* colunas alinhadas à esquerda: Usuário, Ações, Papel, Status
   (especificidade .admin-tabela th/td para vencer o text-align:center base) */
.admin-tabela th.admin-th-l, .admin-tabela td.admin-cel-l { text-align:left; }
.admin-user { display:flex; align-items:center; gap:var(--space-2); justify-content:flex-start; text-align:left; }
.admin-acoes-cel .admin-acoes { justify-content:flex-start; flex-wrap:nowrap; }
.admin-nome { white-space:nowrap; }
/* duas listas (Administradores / Usuários) */
.admin-listas { display:flex; flex-direction:column; gap:var(--space-6); } /* 24px entre as listas (≥20px) */
.admin-grupo-tit { display:flex; align-items:center; gap:var(--space-2); font-size:var(--fs-ui); font-weight:600; color:var(--color-text); margin:0 0 var(--space-2); }
.admin-grupo-n { display:inline-flex; align-items:center; justify-content:center; min-width:1.5em; padding:0 .4em; height:1.5em; border-radius:var(--radius-full); background:var(--color-accent-subtle); color:var(--color-accent); font-size:var(--fs-cap); font-weight:700; }
/* Super Admin: linha fixa no topo, destaque sutil e ação protegida */
.admin-linha-super { background:color-mix(in srgb, var(--color-accent) 7%, transparent); }
.admin-papel-super { color:var(--color-accent); font-weight:700; }
.admin-super-nota { display:inline-flex; align-items:center; font-size:var(--fs-cap); color:var(--color-accent); font-weight:600; white-space:nowrap; }
.admin-foto { width:32px; height:32px; border-radius:var(--radius-full); object-fit:cover; flex:0 0 auto; }
.admin-foto-x { display:inline-flex; align-items:center; justify-content:center; background:var(--color-accent-subtle); color:var(--color-accent); font-weight:700; text-transform:uppercase; }
.admin-foto-lg { width:56px; height:56px; }
.admin-nome { background:none; border:none; padding:0; color:var(--color-text); font-weight:600; cursor:pointer; text-align:left; }
.admin-nome:hover { color:var(--color-accent); text-decoration:underline; }
.admin-email { color:var(--color-text-muted); font-size:var(--fs-cap); }
.admin-dot { display:inline-block; width:9px; height:9px; border-radius:var(--radius-full); background:var(--color-border); }
.admin-dot.on { background:var(--lic-verde-fg); box-shadow:0 0 0 3px color-mix(in srgb, var(--lic-verde-fg) 25%, transparent); }
.admin-papel { font-size:var(--fs-cap); color:var(--color-text-muted); }
.admin-status { font-size:var(--fs-label); font-weight:600; padding:.15em .55em; border-radius:var(--radius-full); white-space:nowrap; }
.st-pendente { background:var(--lic-amarelo-bg); color:var(--lic-amarelo-fg); }
.st-aprovado { background:var(--lic-verde-bg); color:var(--lic-verde-fg); }
.st-recusado, .st-bloqueado { background:var(--lic-vermelho-bg); color:var(--lic-vermelho-fg); }
.admin-acoes { display:flex; gap:var(--space-1); flex-wrap:wrap; justify-content:center; }
/* filtros de status com fundo sólido (não transparente) */
#admin-filtro-status .btn { background:var(--color-surface); }
#admin-filtro-status .btn:hover { background:var(--color-panel); }
#admin-filtro-status .btn.active { background:var(--color-accent); border-color:var(--color-accent); color:var(--color-accent-fg); }
.admin-allow-form { display:flex; gap:var(--space-2); flex-wrap:wrap; align-items:center; }

/* tabela com larguras fixas: alinha as duas listas (Administradores/Usuários) */
.admin-tabela-fixa { table-layout:fixed; }
.admin-tabela-fixa th, .admin-tabela-fixa td { overflow:hidden; text-overflow:ellipsis; }
.admin-tabela-fixa .admin-acoes { flex-wrap:nowrap; }
.admin-tabela-fixa .admin-user { min-width:0; }
.admin-tabela-fixa .admin-user > div { min-width:0; }
.admin-tabela-fixa .admin-email { overflow:hidden; text-overflow:ellipsis; }

/* marca: ícone com a letra Dalet (ד) ao lado de "Devarim" */
.marca-dalet { display:inline-flex; align-items:center; justify-content:center; width:30px; height:30px; flex:0 0 auto;
  border-radius:9px; background:var(--color-accent); color:#fff; font-size:1.15rem; font-weight:700; line-height:1;
  font-family:'Gentium Plus', var(--font-serif, serif); }
.marca-dalet-dark { background:rgba(255,255,255,.12); color:var(--color-sidebar-fg); }

/* detalhe: cantos arredondados no topo do conteúdo, encaixando sob a top bar */
.admin-shell { background:var(--color-sidebar); }
.admin-sidebar { border-top-left-radius:var(--radius-lg); }
.admin-main { border-top-right-radius:var(--radius-lg); }

/* busca global da top bar (paleta de resultados) */
.admin-cmdk-res { position:absolute; top:calc(100% + 6px); left:0; right:0; z-index:50; max-height:60vh; overflow-y:auto;
  background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); box-shadow:var(--shadow-3); padding:var(--space-1); }
.cmdk-grp { font-size:var(--fs-cap); font-weight:700; text-transform:uppercase; letter-spacing:.05em; color:var(--color-text-muted); padding:var(--space-2) var(--space-2) var(--space-1); }
.cmdk-item { display:flex; align-items:center; gap:var(--space-2); width:100%; text-align:left; background:none; border:none; color:var(--color-text); padding:var(--space-2) var(--space-2); border-radius:var(--radius-sm); font-size:var(--fs-ui); cursor:pointer; }
.cmdk-item i { width:1.2em; text-align:center; color:var(--color-text-muted); }
.cmdk-item:hover { background:var(--color-panel); }
.cmdk-vazio { padding:var(--space-3); color:var(--color-text-muted); font-style:italic; font-size:var(--fs-ui); }

/* modal global de Configurações (sub-navegação + painéis) */
.cfg-body { display:flex; gap:0; padding:0; min-height:58vh; }
.cfg-nav { flex:0 0 220px; display:flex; flex-direction:column; gap:2px; padding:var(--space-3); border-right:1px solid var(--color-border); background:var(--color-panel); }
.cfg-nav-item { display:flex; align-items:center; gap:var(--space-2); width:100%; text-align:left; background:none; border:none; color:var(--color-text-muted); padding:var(--space-2) var(--space-3); border-radius:var(--radius-md); font-size:var(--fs-ui); font-weight:500; cursor:pointer; }
.cfg-nav-item i { width:1.2em; text-align:center; }
.cfg-nav-item:hover { background:var(--color-surface); color:var(--color-text); }
.cfg-nav-item.active { background:var(--color-surface); color:var(--color-text); font-weight:600; box-shadow:inset 2px 0 0 var(--color-accent); }
.cfg-conteudo { flex:1 1 auto; min-width:0; padding:var(--space-6); display:flex; flex-direction:column; gap:var(--space-4); overflow-y:auto; }
.cfg-card { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:var(--space-4); }
.cfg-card-tit { font-size:var(--fs-cap); font-weight:700; text-transform:uppercase; letter-spacing:.04em; color:var(--color-accent); margin:0 0 var(--space-3); }
.cfg-secao-rodape { display:flex; justify-content:flex-start; }
@media (max-width:680px) {
  .cfg-body { flex-direction:column; min-height:0; }
  .cfg-nav { flex:none; flex-direction:row; flex-wrap:wrap; border-right:none; border-bottom:1px solid var(--color-border); }
}
.admin-det-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:var(--space-3); margin:var(--space-3) 0; }
.admin-det-num { font-size:1.2rem; font-weight:700; }
.admin-det-l { font-size:var(--fs-label); text-transform:uppercase; color:var(--color-text-muted); }
.admin-barras { display:flex; align-items:flex-end; gap:4px; height:90px; padding:var(--space-2); background:var(--color-panel); border-radius:var(--radius-md); }
.admin-bar { flex:1; display:flex; flex-direction:column; justify-content:flex-end; align-items:center; height:100%; }
.admin-bar > span { width:70%; min-height:2px; background:var(--color-accent); border-radius:3px 3px 0 0; }
.admin-bar small { font-size:9px; color:var(--color-text-muted); margin-top:2px; }
.admin-tipos { list-style:none; padding:0; margin:0; }
.admin-tipos li { display:flex; justify-content:space-between; padding:var(--space-1) 0; border-bottom:1px solid var(--color-border); }
.admin-eventos { list-style:none; padding:0; margin:0; max-height:220px; overflow:auto; font-size:var(--fs-cap); }
.admin-eventos li { padding:var(--space-1) 0; border-bottom:1px solid var(--color-border); color:var(--color-text-muted); }
.admin-ev-tipo { display:inline-block; background:var(--color-accent-subtle); color:var(--color-accent); border-radius:var(--radius-sm); padding:0 .4em; font-weight:600; }
.admin-ev-t { float:right; }

/* ===================== Design System AssetWise — refinos globais ===================== */
:root { --bs-border-radius:10px; }
.form-control, .form-select { background-color:var(--color-surface); border-color:var(--color-border); border-radius:10px; }
.form-control:focus, .form-select:focus { border-color:var(--color-text-muted); box-shadow:none; }
.btn { border-radius:10px; }
.modal-content { border-radius:16px; border:1px solid var(--color-border); background:var(--color-surface); box-shadow:var(--shadow-4); }
.btn-outline-secondary { border-color:var(--color-border); color:var(--color-text); }
.btn-outline-secondary:hover { background:var(--color-panel); border-color:var(--color-text-muted); color:var(--color-text); }

/* ===================== Admin — layout com sidebar (estilo AssetWise) ===================== */
body.pagina-admin .topo { display:none; }
body.pagina-admin .conteudo { padding:0; }
/* ===== Shell do painel: top bar escura + sidebar clara (dois grupos) ===== */
.admin-shell { display:flex; flex-direction:column; min-height:100vh; }
.admin-topbar { display:flex; align-items:center; gap:var(--space-6); height:56px; padding:0 var(--space-4); background:var(--color-sidebar); color:var(--color-sidebar-fg); position:sticky; top:0; z-index:30; }
.admin-top-brand { display:flex; align-items:center; gap:var(--space-2); width:240px; flex:0 0 240px; color:var(--color-sidebar-fg); text-decoration:none; font-family:var(--font-titulo); font-weight:600; font-size:1.1rem; }
.admin-top-brand i { font-size:1.25rem; }
.admin-topsearch { position:relative; flex:0 1 540px; display:flex; align-items:center; }
.admin-topsearch > i { position:absolute; left:14px; color:var(--color-sidebar-muted); font-size:.95rem; pointer-events:none; }
.admin-topsearch input { width:100%; background:rgba(255,255,255,.06); border:1px solid var(--color-sidebar-border); border-radius:var(--radius-md); color:var(--color-sidebar-fg); padding:8px 64px 8px 38px; font-size:var(--fs-ui); }
.admin-topsearch input::placeholder { color:var(--color-sidebar-muted); }
.admin-topsearch input:focus { outline:none; border-color:var(--color-accent); background:rgba(255,255,255,.1); }
.admin-topsearch kbd { position:absolute; right:10px; font-size:var(--fs-cap); background:rgba(255,255,255,.08); color:var(--color-sidebar-muted); border:none; border-radius:var(--radius-sm); padding:2px 7px; }

.admin-corpo { display:flex; align-items:stretch; flex:1 1 auto; min-height:0; }
.admin-sidebar { width:240px; flex:0 0 240px; background:var(--color-panel); border-right:1px solid var(--color-border); display:flex; flex-direction:column; gap:var(--space-4); padding:var(--space-4); position:sticky; top:56px; height:calc(100vh - 56px); }
.admin-sb-topo { display:flex; align-items:center; gap:var(--space-2); }
.admin-sb-conta { flex:1 1 auto; min-width:0; }
.admin-sb-perfil { display:flex; align-items:center; gap:var(--space-2); width:100%; background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); padding:var(--space-1) var(--space-2); cursor:pointer; color:var(--color-text); font-size:var(--fs-ui); font-weight:600; }
.admin-sb-foto { width:26px; height:26px; border-radius:var(--radius-full); object-fit:cover; flex:0 0 auto; }
.admin-sb-foto-x { display:inline-flex; align-items:center; justify-content:center; background:var(--color-accent-subtle); color:var(--color-accent); font-weight:700; font-size:.8rem; text-transform:uppercase; }
.admin-sb-perfil-nome { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.admin-sb-perfil .bi-chevron-down { font-size:.75rem; color:var(--color-text-muted); }
.admin-sb-tema-btn { flex:0 0 auto; width:38px; height:38px; display:inline-flex; align-items:center; justify-content:center; background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); color:var(--color-text); cursor:pointer; }
.admin-sb-tema-btn:hover { background:var(--color-panel); }

.admin-sb-nav { display:flex; flex-direction:column; gap:2px; flex:1 1 auto; overflow-y:auto; }
.admin-sb-grupo { font-size:var(--fs-cap); font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--color-text-muted); margin:var(--space-3) var(--space-2) var(--space-1); }
.admin-sb-nav .admin-sb-grupo:first-child { margin-top:0; }
.admin-sb-item { display:flex; align-items:center; gap:var(--space-3); width:100%; text-align:left; background:none; border:none; color:var(--color-text-muted); text-decoration:none; padding:var(--space-2) var(--space-3); border-radius:var(--radius-md); font-size:var(--fs-ui); font-weight:500; cursor:pointer; transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast); }
.admin-sb-item i { font-size:1.05rem; width:1.2em; text-align:center; }
.admin-sb-item:hover { background:var(--color-surface); color:var(--color-text); }
.admin-sb-item.active { background:var(--color-surface); color:var(--color-text); box-shadow:inset 2px 0 0 var(--color-accent); font-weight:600; }

.admin-sb-rodape { display:flex; flex-direction:column; gap:var(--space-3); }
.admin-sb-card { background:var(--color-sidebar); color:var(--color-sidebar-fg); border-radius:var(--radius-lg); padding:var(--space-4); }
.admin-sb-card-tit { font-size:var(--fs-cap); font-weight:600; line-height:1.45; margin:0 0 var(--space-3); }

.admin-main { flex:1 1 auto; min-width:0; padding:var(--space-8) var(--space-12); background-color:var(--color-bg); background-image:radial-gradient(var(--color-dots) 1px, transparent 1px); background-size:22px 22px; }
.admin-cab { display:flex; justify-content:space-between; align-items:flex-start; gap:var(--space-3); margin-bottom:var(--space-6); flex-wrap:wrap; }
.admin-secao-cab { display:flex; justify-content:space-between; align-items:center; gap:var(--space-3); margin:var(--space-8) 0 var(--space-3); flex-wrap:wrap; }
.admin-secao-titulo { font-size:1.15rem; font-weight:600; margin:0; }
.admin-filtros { margin-bottom:0; }
.admin-aba { margin-top:0; }

/* responsivo: top bar e sidebar empilham em telas estreitas */
@media (max-width: 860px) {
  .admin-topbar { gap:var(--space-3); }
  .admin-top-brand { width:auto; flex:none; }
  .admin-topsearch { flex:1 1 auto; }
  .admin-corpo { flex-direction:column; }
  .admin-sidebar { width:auto; flex:none; height:auto; position:static; }
  .admin-main { padding:var(--space-6) var(--space-4); }
}

/* tela de entrar — card estilo AssetWise (logo acima, divisor "ou") */
.acesso-bloco { width:100%; max-width:430px; }
.acesso-logo { text-align:center; font-family:var(--font-titulo); font-weight:600; font-size:1.3rem; margin-bottom:var(--space-4); }
.acesso-logo [lang="he"] { color:var(--color-accent); margin-left:.3rem; }
.acesso-bloco .acesso-card { max-width:none; padding:var(--space-8); }
.acesso-titulo { font-family:var(--font-titulo); font-weight:600; font-size:1.4rem; margin-bottom:var(--space-1); }
.acesso-ou { display:flex; align-items:center; gap:var(--space-3); margin:var(--space-4) 0; color:var(--color-text-muted); font-size:var(--fs-cap); }
.acesso-ou::before, .acesso-ou::after { content:''; flex:1; height:1px; background:var(--color-border); }

/* ===================== Design System — componentes unificados ===================== */
/* Botões (hierarquia AssetWise): primário ink · secundário contornado · outline neutro */
.btn-primary {
  --bs-btn-bg:var(--color-ink-btn); --bs-btn-border-color:var(--color-ink-btn); --bs-btn-color:var(--color-ink-btn-fg);
  --bs-btn-hover-bg:var(--color-ink-btn-hover); --bs-btn-hover-border-color:var(--color-ink-btn-hover); --bs-btn-hover-color:var(--color-ink-btn-fg);
  --bs-btn-active-bg:var(--color-ink-btn-hover); --bs-btn-active-border-color:var(--color-ink-btn-hover); --bs-btn-active-color:var(--color-ink-btn-fg);
  --bs-btn-disabled-bg:var(--color-ink-btn); --bs-btn-disabled-border-color:var(--color-ink-btn); --bs-btn-disabled-color:var(--color-ink-btn-fg);
  font-weight:500;
}
.btn-outline-primary {
  --bs-btn-color:var(--color-text); --bs-btn-border-color:var(--color-border);
  --bs-btn-hover-bg:var(--color-panel); --bs-btn-hover-border-color:var(--color-text-muted); --bs-btn-hover-color:var(--color-text);
  --bs-btn-active-bg:var(--color-ink-btn); --bs-btn-active-border-color:var(--color-ink-btn); --bs-btn-active-color:var(--color-ink-btn-fg);
}
.btn-outline-danger { --bs-btn-color:var(--lic-vermelho-fg); --bs-btn-border-color:var(--color-border); --bs-btn-hover-bg:var(--lic-vermelho-bg); --bs-btn-hover-border-color:var(--lic-vermelho-fg); --bs-btn-hover-color:var(--lic-vermelho-fg); }

/* Toggles (form-switch): ligado = ink, coerente com o sistema */
.form-check-input:checked { background-color:var(--color-ink-btn); border-color:var(--color-ink-btn); }
.form-check-input:focus { border-color:var(--color-text-muted); box-shadow:0 0 0 .2rem color-mix(in srgb, var(--color-text) 12%, transparent); }

/* Abas do painel de estudo — indicador de sublinhado limpo (sem azul Bootstrap) */
.estudo-tabs { border-bottom:1px solid var(--color-border); }
.estudo-tabs .nav-link { border:none; border-bottom:2px solid transparent; color:var(--color-text-muted); border-radius:0; font-weight:500; background:none; }
.estudo-tabs .nav-link:hover { color:var(--color-text); border-bottom-color:var(--color-border); }
.estudo-tabs .nav-link.active { color:var(--color-text); border-bottom-color:var(--color-ink-btn); background:none; }

/* Badge neutro (pílula escura, ex.: condição/contagem) */
.badge-neutro { display:inline-block; font-size:var(--fs-cap); font-weight:500; padding:.2em .6em; border-radius:var(--radius-full); background:var(--color-ink-btn); color:var(--color-ink-btn-fg); }
.badge-suave { display:inline-block; font-size:var(--fs-cap); font-weight:500; padding:.2em .6em; border-radius:var(--radius-full); background:var(--color-panel); color:var(--color-text); border:1px solid var(--color-border); }

/* Cards reutilizáveis no padrão do sistema */
.ds-card { background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-lg); padding:var(--space-6); }

/* Dropdowns / popovers no padrão de superfície */
.dropdown-menu { --bs-dropdown-bg:var(--color-surface); --bs-dropdown-border-color:var(--color-border); --bs-dropdown-border-radius:var(--radius-md); --bs-dropdown-link-hover-bg:var(--color-panel); box-shadow:var(--shadow-2); }

/* página Design System (admin) */
.ds-h { font-size:1rem; font-weight:600; margin:0 0 var(--space-4); }
.ds-swatches { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px, 1fr)); gap:var(--space-3); }
.ds-swatch { display:flex; align-items:center; gap:var(--space-2); }
.ds-chip { width:34px; height:34px; border-radius:var(--radius-md); border:1px solid var(--color-border); flex:0 0 auto; }
.ds-chip-l { font-size:var(--fs-cap); display:flex; flex-direction:column; line-height:1.3; }
.ds-chip-l code { font-size:10px; color:var(--color-text-muted); }
.ds-tipo { margin-bottom:var(--space-3); color:var(--color-text); }
.ds-row { display:flex; flex-wrap:wrap; gap:var(--space-3); align-items:center; }
.ds-row-col { flex-direction:column; align-items:flex-start; }

/* ===================== Dock do painel de estudo (estilo "Dock side") ===================== */
.layout-leitura { position:relative; }
.estudo-cab { display:flex; flex-direction:column; align-items:stretch; gap:0; border-bottom:1px solid var(--color-border); }
.estudo-cab .estudo-tabs { border-bottom:none; flex:0 0 auto; min-width:0; overflow-x:auto; overflow-y:hidden; scrollbar-width:thin; scrollbar-color:var(--color-border) transparent; }
.estudo-cab .estudo-tabs::-webkit-scrollbar { height:6px; }
.estudo-cab .estudo-tabs::-webkit-scrollbar-track { background:transparent; }
.estudo-cab .estudo-tabs::-webkit-scrollbar-thumb { background:var(--color-border); border-radius:var(--radius-full); }
.estudo-cab .estudo-tabs::-webkit-scrollbar-thumb:hover { background:var(--color-text-muted); }
.estudo-cab .estudo-tabs .nav-link { padding:var(--space-2) var(--space-2); white-space:nowrap; }
/* textos de orientação (estados vazios) — formato menor */
.estudo-corpo p.fst-italic { font-size:var(--fs-ui); line-height:1.5; }
/* separador entre o botão "organizar" e os botões de posição no dock */
.estudo-dock-sep { width:1px; align-self:center; height:18px; background:var(--color-border); margin:0 2px; }

/* botão "organizar abas" como primeiro item da barra de abas — fixo ao rolar */
.estudo-org-li { flex:0 0 auto; display:flex; align-items:center; position:sticky; left:0; z-index:3; background:var(--color-panel); padding-right:var(--space-2); box-shadow:6px 0 8px -5px rgba(0,0,0,0); transition:box-shadow var(--duration-fast) var(--ease-out); }
/* ao rolar, uma sombra suave à direita mostra que as abas passam por baixo do botão fixo */
.estudo-tabs.rolada .estudo-org-li { box-shadow:6px 0 8px -5px rgba(0,0,0,.18); }
.estudo-org-btn { background:none; border:none; color:var(--color-text-muted); padding:var(--space-2); margin-right:var(--space-1); cursor:pointer; display:inline-flex; align-items:center; border-radius:var(--radius-sm); line-height:1; transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast); }
.estudo-org-btn:hover { color:var(--color-text); background:var(--color-bg); }

/* modal: organizar abas (ordem + visibilidade) */
.abas-org { list-style:none; margin:0; padding:0; display:flex; flex-direction:column; gap:var(--space-2); }
.abas-org-item { display:flex; align-items:center; gap:var(--space-3); padding:var(--space-2) var(--space-3); background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); }
.abas-org-item.arrastando { opacity:.5; border-style:dashed; }
.abas-org-handle { color:var(--color-text-muted); cursor:grab; display:inline-flex; }
.abas-org-handle:active { cursor:grabbing; }
.abas-org-nome { flex:1 1 auto; font-weight:500; }
.estudo-dock { display:flex; align-items:center; justify-content:flex-end; gap:1px; padding:2px var(--space-2); flex:0 0 auto; border-bottom:1px solid var(--color-border); }
.dock-btn { background:none; border:none; color:var(--color-text-muted); padding:4px 5px; border-radius:var(--radius-sm); cursor:pointer; line-height:1; display:inline-flex; font-size:.9rem; transition:background var(--duration-fast) var(--ease-out), color var(--duration-fast); }
.dock-btn .bi-layout-split { transform:rotate(90deg); }
.dock-btn:hover { background:var(--color-bg); color:var(--color-text); }
.dock-btn.ativo { color:var(--color-text); background:var(--color-bg); }

/* botão flutuante para reabrir quando recolhido */
.estudo-reabrir { display:none; position:absolute; top:var(--space-3); right:var(--space-3); z-index:20; width:36px; height:36px; align-items:center; justify-content:center; background:var(--color-surface); border:1px solid var(--color-border); border-radius:var(--radius-md); color:var(--color-text); box-shadow:var(--shadow-2); cursor:pointer; }
.estudo-reabrir:hover { background:var(--color-panel); }

@media (min-width: 901px) {
  /* painel à esquerda */
  .layout-leitura.dock-left { grid-template-columns:var(--estudo-largura, 440px) 7px 1fr; }
  .layout-leitura.dock-left .leitor-pane { order:3; }
  .layout-leitura.dock-left .divisor-estudo { order:2; }
  .layout-leitura.dock-left .estudo-pane { order:1; border-left:none; border-right:1px solid var(--color-border); }
  /* painel embaixo */
  .layout-leitura.dock-bottom { grid-template-columns:1fr; grid-template-rows:1fr 7px var(--estudo-altura, 300px); }
  .layout-leitura.dock-bottom .divisor-estudo { cursor:row-resize; }
  .layout-leitura.dock-bottom .divisor-estudo::before { inset:3px 0; }
  .layout-leitura.dock-bottom .estudo-pane { border-left:none; border-top:1px solid var(--color-border); }
  /* recolhido: leitor ocupa tudo */
  .layout-leitura.dock-collapsed { grid-template-columns:1fr; }
  .layout-leitura.dock-collapsed > .divisor-estudo, .layout-leitura.dock-collapsed > .estudo-pane { display:none; }
  .layout-leitura.dock-collapsed .estudo-reabrir { display:inline-flex; }
}
@media (max-width: 900px) { .estudo-dock { display:none; } }

/* ===================== Leitor como app-shell (sem barra de rolagem externa) ===================== */
@media (min-width: 901px) {
  body.pagina-leitor { height:100vh; overflow:hidden; display:flex; flex-direction:column; }
  body.pagina-leitor .conteudo { flex:1 1 auto; min-height:0; }
  body.pagina-leitor .layout-leitura { height:auto; flex:1 1 auto; min-height:0; }
}

/* indicador do tema ativo (Padrão/White/Dark) */
.tema-item { display:flex; align-items:center; }
.tema-check { display:none; color:var(--color-accent); }
.tema-item.ativo .tema-check { display:inline; }
.tema-item.ativo { font-weight:600; }

/* cabeçalho do menu do usuário: foto + nome + e-mail (Google) */
#chip-usuario .dropdown-menu { min-width:248px; }
.user-info { display:flex; align-items:center; gap:var(--space-3); padding:var(--space-3); }
.user-info-foto { width:40px; height:40px; border-radius:var(--radius-full); object-fit:cover; flex:0 0 auto; }
.user-info-icone { font-size:1.9rem; color:var(--color-text-muted); flex:0 0 auto; }
.user-info-txt { min-width:0; }
.user-info-nome { font-weight:600; font-size:var(--fs-ui); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.user-info-email { font-size:var(--fs-cap); color:var(--color-text-muted); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* Mapa do Sistema (admin) */
.mapa-lista { margin:0; padding-left:1.1em; }
.mapa-lista li { margin-bottom:var(--space-2); line-height:1.55; color:var(--color-text); }
.mapa-2col { columns:2; column-gap:var(--space-8); padding-left:1.1em; }
.mapa-2col li { break-inside:avoid; }
.ds-card code, .mapa-lista code { font-size:.85em; font-family:ui-monospace, SFMono-Regular, Menlo, monospace; background:var(--color-panel); padding:.1em .4em; border-radius:var(--radius-sm); }
.mapa-lista .badge-suave { margin-right:var(--space-1); }
@media (max-width:600px){ .mapa-2col { columns:1; } }

/* ===================== Ajustes finos (hover, alinhamento, vazamento, fundo) ===================== */
/* Ajuste 3: hover na linha inteira do versículo */
.leitor div.versiculo:hover:not(.selecionado) { background:var(--color-panel); }
.tabela-comparacao tbody tr.cmp-linha:hover:not(.selecionado) { background:var(--color-panel); }

/* Ajuste 6: sem padding à esquerda das abas — o botão fixo cobre desde o início (nada vaza ao rolar) */
.estudo-cab .estudo-tabs { padding-left:0; padding-right:var(--space-4); }

/* Ajuste 4: margens consistentes no painel (cabeçalho, abas e conteúdo terminam alinhados) */
.estudo-corpo { padding:var(--space-4); overflow-x:hidden; }
.estudo-dock { padding-left:var(--space-4); padding-right:var(--space-4); }

/* Ajuste 1: a página de leitura inteira fica branca (o cabeçalho mantém a cor do layout) */
body.pagina-conteudo .conteudo { background:var(--color-leitura-bg); }

/* alternância de idioma nas páginas de conteúdo (PT padrão / EN quando html.lang-en) */
html:not(.lang-en) .so-en { display:none !important; }
html.lang-en .so-pt { display:none !important; }
