:root{--tinta:#1B2A33;--papel:#FAFAF7;--jade:#0E6B5C;--jade-claro:#E7F1EE;--ouro:#C9A227;--ouro-claro:#FBF4DE;--grafite:#5A6670;--linha:#E3E5E0;--branco:#fff;--vermelho:#B4462E}
*{margin:0;padding:0;box-sizing:border-box}
body{font-family:'Public Sans',sans-serif;background:var(--papel);color:var(--tinta);font-size:14px;min-height:100vh}
h1,h2,h3,.marca{font-family:'Fraunces',serif;font-weight:650}
button{font-family:inherit;cursor:pointer}
input,select,textarea{font-family:inherit;font-size:13.5px;padding:9px 12px;border:1px solid var(--linha);border-radius:8px;background:var(--branco);color:var(--tinta);outline:none;width:100%}
input:focus,select:focus,textarea:focus{border-color:var(--jade)}
.btn{background:var(--jade);color:#fff;border:none;border-radius:8px;padding:9px 16px;font-weight:600;font-size:13px}
.btn:hover{filter:brightness(1.1)}
.btn.sec{background:var(--branco);color:var(--tinta);border:1px solid var(--linha)}
.btn.sec:hover{border-color:var(--jade);color:var(--jade);filter:none}
.btn.mini{padding:4px 10px;font-size:11.5px;border-radius:6px}
.btn.perigo{background:transparent;color:var(--vermelho);border:1px solid transparent;font-size:12px;padding:4px 8px}
.btn.perigo:hover{border-color:var(--vermelho)}
.tag{font-size:11px;font-weight:600;padding:2px 9px;border-radius:12px;background:var(--jade-claro);color:var(--jade);white-space:nowrap}
.tag.sec{background:var(--ouro-claro);color:#8a6d10}
.tag.tri{background:#F6E7E2;color:var(--vermelho)}
.vazio{color:var(--grafite);font-size:13px;padding:12px 0;font-style:italic}
.cartao{background:var(--branco);border:1px solid var(--linha);border-radius:10px;padding:18px 20px}
.cartao h2{font-size:16px;margin-bottom:12px}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;border-bottom:1.5px solid var(--tinta);padding:8px;font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.04em}
td{border-bottom:1px solid var(--linha);padding:9px 8px;vertical-align:middle}

/* ---------- login ---------- */
#telaLogin{display:flex;align-items:center;justify-content:center;min-height:100vh;background:linear-gradient(160deg,var(--tinta) 0%,#0e3a33 100%)}
.caixa-login{background:var(--branco);border-radius:14px;padding:38px 36px;width:400px;max-width:92vw;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.caixa-login .marca{font-size:34px;margin-bottom:4px}
.caixa-login .marca span{color:var(--ouro)}
.caixa-login .sub{color:var(--grafite);font-size:13px;margin-bottom:22px}
.abas{display:flex;gap:4px;background:var(--papel);border-radius:8px;padding:4px;margin-bottom:18px}
.abas button{flex:1;border:none;background:transparent;padding:8px;border-radius:6px;font-weight:600;font-size:13px;color:var(--grafite)}
.abas button.ativo{background:var(--branco);color:var(--tinta);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.campo{margin-bottom:12px}
.campo label{display:block;font-size:11.5px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--grafite);margin-bottom:5px}
.erro-login{color:var(--vermelho);font-size:12.5px;margin-top:10px;min-height:16px}

/* ---------- app ---------- */
#app{display:none;min-height:100vh}
#app.on{display:flex}
.sidebar{width:230px;background:var(--tinta);color:#AEB9BF;padding:22px 0;flex-shrink:0;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow-y:auto}
.sidebar .marca{font-size:26px;color:var(--papel);padding:0 22px 6px}
.sidebar .marca span{color:var(--ouro)}
.sidebar .usuario{padding:0 22px 16px;font-size:12px;color:#6B7A85}
.menu-grupo{font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;color:#6B7A85;padding:14px 22px 6px}
.menu a{display:flex;align-items:center;gap:10px;padding:8px 22px;color:#AEB9BF;text-decoration:none;font-weight:500;font-size:13.5px;border-left:3px solid transparent;cursor:pointer}
.menu a:hover{color:var(--papel);background:rgba(255,255,255,.05)}
.menu a.ativo{color:var(--papel);background:rgba(14,107,92,.35);border-left-color:var(--ouro)}
.menu .ico{width:18px;text-align:center}
.rodape-side{margin-top:auto;padding:16px 22px;font-size:11.5px;color:#6B7A85;border-top:1px solid rgba(255,255,255,.08);line-height:1.5}
.rodape-side a{color:#AEB9BF;cursor:pointer;text-decoration:underline}
.main{flex:1;padding:26px 32px;min-width:0}
.topo{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:20px;flex-wrap:wrap;gap:12px}
.topo h1{font-size:22px;max-width:680px;line-height:1.3}
.topo .sub{color:var(--grafite);font-size:13px;margin-top:4px}
.badge-api{font-size:11.5px;font-weight:600;padding:5px 12px;border-radius:20px;background:var(--jade-claro);color:var(--jade);border:1px solid var(--jade);white-space:nowrap}
.vista{display:none}.vista.on{display:block}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px;margin-bottom:20px}
.kpi{background:var(--branco);border:1px solid var(--linha);border-radius:10px;padding:16px 18px}
.kpi .rotulo{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--grafite);font-weight:600}
.kpi .valor{font-family:'Fraunces',serif;font-size:30px;font-weight:650;margin-top:4px}
.kpi .valor.jade{color:var(--jade)}.kpi .valor.ouro{color:var(--ouro)}
.grid{display:grid;grid-template-columns:2fr 1fr;gap:16px;margin-bottom:16px}
@media(max-width:1100px){.grid{grid-template-columns:1fr}}
canvas{max-height:230px}
.pend{list-style:none}
.pend li{padding:8px 0;border-bottom:1px solid var(--linha);font-size:13px}
.pend li:before{content:'○ ';color:var(--ouro);font-weight:700}
.pend li:last-child{border-bottom:none}
.linha-acao{display:flex;gap:10px;margin-bottom:16px;flex-wrap:wrap;align-items:center}
.linha-acao input,.linha-acao select{width:auto;flex:1;min-width:180px}

/* ---------- editor ---------- */
.barra-editor{display:flex;gap:6px;flex-wrap:wrap;align-items:center;background:var(--branco);border:1px solid var(--linha);border-bottom:none;border-radius:10px 10px 0 0;padding:9px 12px}
.barra-editor button{background:transparent;border:1px solid transparent;border-radius:6px;padding:5px 10px;font-size:13px;color:var(--tinta)}
.barra-editor button:hover{border-color:var(--linha);background:var(--papel)}
.barra-editor .sep{width:1px;height:20px;background:var(--linha)}
#folha{background:var(--branco);border:1px solid var(--linha);border-radius:0 0 10px 10px;min-height:420px;padding:34px 44px;font-size:15px;line-height:1.9;outline:none;font-family:Georgia,'Times New Roman',serif}
#folha h1,#folha h2{font-family:'Fraunces',serif;margin:14px 0 8px}
#folha p{margin-bottom:10px}
.cit{background:var(--jade-claro);color:var(--jade);border-radius:5px;padding:1px 5px;font-family:'Public Sans',sans-serif;font-size:13px;font-weight:600;white-space:nowrap;cursor:default;user-select:none}
#bibliografia{background:var(--branco);border:1px solid var(--linha);border-radius:10px;padding:22px 28px;margin-top:14px}
#bibliografia h3{font-size:15px;margin-bottom:12px}
#bibliografia p{font-size:13.5px;line-height:1.7;margin-bottom:9px;font-family:Georgia,serif}
#bibliografia p.apa,#bibliografia p.chicago{text-indent:-1.6em;padding-left:1.6em}

/* ---------- kanban ---------- */
.kanban{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media(max-width:900px){.kanban{grid-template-columns:1fr}}
.coluna{background:var(--branco);border:1px solid var(--linha);border-radius:10px;padding:14px;min-height:220px}
.coluna h3{font-size:13px;text-transform:uppercase;letter-spacing:.06em;color:var(--grafite);font-family:'Public Sans',sans-serif;font-weight:700;margin-bottom:12px;display:flex;justify-content:space-between}
.cartao-tarefa{background:var(--papel);border:1px solid var(--linha);border-radius:8px;padding:10px 12px;margin-bottom:8px;font-size:13px}
.cartao-tarefa .acoes{display:flex;gap:4px;margin-top:8px;justify-content:space-between;align-items:center}
.cartao-tarefa .prazo{font-size:11px;color:var(--grafite)}
.mover{display:flex;gap:4px}
.mover button{border:1px solid var(--linha);background:var(--branco);border-radius:5px;padding:2px 8px;font-size:12px}
.mover button:hover{border-color:var(--jade);color:var(--jade)}

/* ---------- ACQ ---------- */
.acq-res{margin-top:16px}
.cod-bloco{border:1px solid var(--linha);border-radius:10px;background:var(--branco);padding:14px 18px;margin-bottom:10px}
.cod-bloco .cab{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.cod-bloco .sigla{font-weight:700;color:var(--jade);font-size:14px}
.cod-bloco .cont{font-size:12.5px;color:var(--grafite);border-left:2px solid var(--jade-claro);padding:3px 0 3px 10px;margin-top:8px;line-height:1.55}
mark{background:var(--ouro-claro);border-radius:3px;padding:0 2px}

/* ---------- modal ---------- */
.modal-fundo{display:none;position:fixed;inset:0;background:rgba(15,25,30,.55);z-index:50;align-items:center;justify-content:center}
.modal-fundo.on{display:flex}
.modal{background:var(--branco);border-radius:14px;padding:26px 28px;width:520px;max-width:94vw;max-height:88vh;overflow-y:auto;box-shadow:0 24px 60px rgba(0,0,0,.35)}
.modal h3{font-size:17px;margin-bottom:16px}
/* a barra de acoes precisa QUEBRAR: com muitos botoes a linha transbordava e o
   primeiro botao (Fechar) saia da caixa, ficando sob o fundo do modal */
.modal .rodape-modal{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;margin-top:18px}
.duas{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.lista-ref-modal{max-height:260px;overflow-y:auto;border:1px solid var(--linha);border-radius:8px;margin-bottom:12px}
.lista-ref-modal .item{padding:10px 12px;border-bottom:1px solid var(--linha);cursor:pointer;font-size:13px}
.lista-ref-modal .item:hover{background:var(--jade-claro)}
.lista-ref-modal .item.sel{background:var(--jade-claro);border-left:3px solid var(--jade)}
.toast{position:fixed;bottom:24px;right:24px;background:var(--tinta);color:#fff;border-radius:10px;padding:12px 18px;font-size:13px;z-index:99;display:none;box-shadow:0 10px 30px rgba(0,0,0,.3)}
.drop{border:2px dashed var(--linha);border-radius:12px;background:var(--branco);padding:26px;text-align:center;color:var(--tinta);margin-bottom:16px;transition:all .15s}
.drop.sobre{border-color:var(--jade);background:var(--jade-claro)}
mark.anot{cursor:pointer;border-radius:3px;padding:0 2px}
.bolinha{width:20px;height:20px;border-radius:50%;cursor:pointer;border:2px solid transparent;display:inline-block}
.bolinha.sel{border-color:var(--tinta)}
.item-anot{padding:9px 0;border-bottom:1px solid var(--linha);font-size:12.5px;line-height:1.5}
.item-anot:last-child{border-bottom:none}
.prio{font-size:10.5px;font-weight:700;padding:1px 7px;border-radius:10px}
.prio.p1{background:#F6E7E2;color:var(--vermelho)} .prio.p2{background:var(--ouro-claro);color:#8a6d10}
.prio.p3{background:#E0EAF6;color:#2C5E8F} .prio.p4{background:var(--linha);color:var(--grafite)}
.prazo-vencido{color:var(--vermelho);font-weight:700}
.matriz{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:900px){.matriz{grid-template-columns:1fr}}
@page{size:A4;margin:${m1}cm ${m2}cm ${m2}cm ${m1}cm}
body{font-family:'${p.fonte}',serif;font-size:${p.tamanho}pt;line-height:${p.espaco};text-align:justify}
h1{font-size:${p.tamanho + 2}pt} h2{font-size:${p.tamanho}pt;font-weight:bold}
.cit{background:none;color:windowtext} mark{background:none}

/* preview de versão do histórico: aparência de folha, sem edição */
.folha-preview{background:#fff;border:1px solid var(--linha);border-radius:8px;padding:26px 30px;font-size:14.5px;line-height:1.75}
.folha-preview h1{font-family:'Fraunces',serif;font-size:20px;margin:0 0 12px}
.folha-preview h2{font-family:'Fraunces',serif;font-size:17px;margin:16px 0 8px}
.folha-preview .cit{color:var(--jade);font-weight:600}
.folha-preview table{width:100%;border-collapse:collapse;margin:10px 0}
.folha-preview td,.folha-preview th{border:1px solid var(--linha);padding:6px 8px;font-size:13px}
.folha-preview img{max-width:100%}

/* o modal de versão pode ser aberto por cima do de conflito */
#modalVersao{z-index:60}

/* ---------- evidências (Pacote 3A) ---------- */
.ev-lista { display: flex; flex-direction: column; gap: 12px; }
.ev-cartao { border: 1px solid #E8E2D6; border-radius: 10px; padding: 12px 14px; background: #fff; }
.ev-cabecalho { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; font-size: 12.5px; color: var(--grafite); margin-bottom: 6px; }
.ev-trecho { margin: 6px 0; padding: 8px 12px; border-left: 3px solid var(--jade); background: #FBFAF7;
  font-size: 13.5px; line-height: 1.7; white-space: pre-wrap; word-break: break-word; }
.ev-nota { font-size: 12.5px; color: #4a4a4a; font-style: italic; margin-top: 4px; }
.ev-pe { font-size: 11.5px; color: var(--grafite); margin-top: 6px; }
.ev-acoes { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 8px; }
.ev-estado { padding: 1px 8px; border-radius: 10px; background: #EEF6F1; color: #1d5c3a; font-size: 11.5px; }
.ev-estado.ev-manual_unverified { background: #FBF3E4; color: #8a6d10; }
.ev-estado.ev-stale, .ev-estado.ev-failed { background: #FBE9E6; color: #8a2a16; }
.ev-status { padding: 1px 8px; border-radius: 10px; background: #F1EFEA; font-size: 11.5px; }
.ev-aviso { background: #FBF3E4; border-radius: 8px; padding: 8px 12px; margin: 6px 0; font-size: 12.5px; color: #6b5410; }
.ev-ficha { display: grid; grid-template-columns: 190px 1fr; gap: 4px 12px; font-size: 12.5px; margin: 10px 0; }
.ev-ficha dt { color: var(--grafite); }
.ev-ficha dd { margin: 0; word-break: break-word; }
.ev-contexto { font-size: 12.5px; line-height: 1.8; color: #4a4a4a; white-space: pre-wrap; }
.ev-uso { margin: 10px 0; font-size: 12.5px; }
.ev-uso ul { margin: 6px 0 0 18px; }
.ev-uso li { margin-bottom: 4px; display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ev-leitor { max-height: 420px; overflow: auto; padding: 12px 14px; border: 1px solid #E8E2D6;
  border-radius: 8px; background: #FBFAF7; font-size: 13.5px; line-height: 1.9; white-space: pre-wrap; user-select: text; }
.ev-leitor .ev-pagina { color: var(--grafite); font-size: 11.5px; margin: 12px 0 4px; border-top: 1px dashed #E8E2D6; padding-top: 6px; }
.ev-leitor mark.ev-marca { background: #ffee88; }

/* ===================== Análise qualitativa (Pacote 3B-2) ===================== */
/* A cor nunca informa sozinha: cada estado também aparece por escrito. */
.q-ajuda{font-size:12.5px;color:var(--grafite);margin:4px 0 8px}
.q-meta{font-size:12px;color:var(--grafite);margin-left:8px}
.q-mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px}
.q-descricao{margin:4px 0 10px}
.q-meta-lista{display:grid;grid-template-columns:auto 1fr;gap:2px 12px;font-size:13px;margin:8px 0}
.q-meta-lista dt{color:var(--grafite)}
.q-meta-lista dd{margin:0}
.q-acoes{display:flex;flex-wrap:wrap;gap:8px;margin:10px 0}
.q-grid-editor{align-items:start}

.q-arvore,.q-sub{list-style:none;margin:0;padding-left:0}
.q-sub{padding-left:18px;border-left:1px solid var(--linha,#dfe4e6)}
.q-no{margin:2px 0}
.q-no-linha{display:flex;align-items:center;gap:6px;padding:3px 4px;border-radius:4px;cursor:pointer}
.q-no-linha:hover{background:rgba(0,0,0,.04)}
.q-no[aria-selected="true"]>.q-no-linha{background:rgba(0,0,0,.08);outline:2px solid currentColor;outline-offset:-2px}
.q-no:focus-visible,.q-no-linha:focus-visible{outline:2px solid currentColor;outline-offset:2px}
.q-no-alternar{background:none;border:0;cursor:pointer;font-size:12px;padding:0 2px}
.q-no-espaco{opacity:.35;width:14px;display:inline-block;text-align:center}
.q-retirado>.q-no-linha .q-cor-rotulo{text-decoration:line-through}
.q-no-acoes{display:none;gap:4px;flex-wrap:wrap;padding:2px 0 6px 22px}
.q-no[aria-selected="true"]>.q-no-acoes,.q-no:focus-within>.q-no-acoes{display:flex}

.q-cor{display:inline-flex;align-items:center;gap:6px}
.q-cor-ponto{width:10px;height:10px;border-radius:50%;border:1px solid rgba(0,0,0,.25);display:inline-block;flex:0 0 auto}
.q-cor-vazia{background:repeating-linear-gradient(45deg,#ccc,#ccc 2px,#eee 2px,#eee 4px)}
.q-campo-cor{display:flex;gap:8px;align-items:flex-end;flex-wrap:wrap}
.q-campo-cor input[type=color]{width:44px;height:32px;padding:0}
.q-campo-cor input[type=text]{max-width:120px}

.q-etiqueta{font-size:11px;padding:1px 6px;border-radius:10px;border:1px solid currentColor;white-space:nowrap}
.q-etiqueta-retirado{opacity:.75}
.q-etiqueta-incompleto{font-weight:600}
.q-faixa-rascunho{border-left:4px solid currentColor;padding:6px 10px;margin:8px 0;font-size:13px}
.q-nao-salvo{font-style:italic}
.q-aviso-forte{border-left:4px solid currentColor;padding:8px 10px;font-weight:500}

.q-lista-erros,.q-lista-avisos,.q-exemplos,.q-uso-lista,.q-compare-lista{margin:6px 0;padding-left:20px;font-size:13px}
.q-lista-erros li{font-weight:600}
.q-erro-campo{font-size:12px;font-weight:600;margin:4px 0 0}
input[aria-invalid="true"],textarea[aria-invalid="true"],select[aria-invalid="true"]{outline:2px solid currentColor}

.q-cartoes{list-style:none;padding:0;margin:8px 0}
.q-cartao{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 8px;border:1px solid var(--linha,#dfe4e6);border-radius:6px;margin-bottom:6px}
.q-cartao.q-destaque{outline:3px solid currentColor;outline-offset:1px}
.q-cartao.q-inativo{opacity:.7}
.q-cartao-acoes,.q-compare-acoes{display:flex;gap:4px;margin-left:auto;flex-wrap:wrap}

.q-historico{padding-left:20px;font-size:13px}
.q-historico-item{margin-bottom:12px}
.q-compare-secao{margin:12px 0}
.q-compare-lista{list-style:none;padding:0}
.q-compare-item{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 0;border-bottom:1px solid var(--linha,#eef1f2)}
.q-compare-texto{flex:1 1 240px}

.q-filtros .campo{margin-bottom:8px}
.q-escopo{border:1px solid var(--linha,#dfe4e6);border-radius:6px;padding:8px}
.q-radio,.q-checkbox{display:flex;align-items:center;gap:6px;margin:2px 0}
.q-confirmacao{display:flex;align-items:flex-start;gap:8px}

.q-tabela{width:100%;border-collapse:collapse;font-size:12.5px;margin:10px 0}
.q-tabela th,.q-tabela td{border:1px solid var(--linha,#dfe4e6);padding:4px 6px;text-align:left}
.q-evidencia,.q-definicao,.q-aplicados,.q-aplicar,.q-uso,.q-legado{margin:12px 0}
.q-sucessora{border:1px dashed currentColor;border-radius:6px;padding:8px;margin-top:8px}
.q-arvore-caixa{max-height:60vh;overflow:auto}
.btn.mini{font-size:11.5px;padding:2px 8px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ===================== Casos e atributos (Pacote 3C) ===================== */
/* Sensibilidade e ausência aparecem SEMPRE por escrito; a cor só acompanha. */
.c-area{margin-top:28px;padding-top:18px;border-top:2px solid var(--linha,#dfe4e6)}
.c-etiqueta{font-size:11px;padding:1px 6px;border-radius:10px;border:1px solid currentColor;margin-left:6px;white-space:nowrap}
.c-sens-personal{font-weight:600}
.c-sens-sensitive{font-weight:700;border-width:2px}
.c-sens-highly_sensitive{font-weight:700;border-width:2px;text-transform:uppercase;letter-spacing:.03em}
.c-pendente,.c-conflito{font-weight:700}
.c-tabela td,.c-tabela th{vertical-align:top}
.c-nome{font-weight:600}
.c-valor{max-width:280px;overflow-wrap:anywhere}
.c-cabecalho{margin-bottom:10px}
.c-abas{display:flex;gap:6px;flex-wrap:wrap;margin:10px 0;border-bottom:1px solid var(--linha,#dfe4e6);padding-bottom:8px}
.c-abas button[aria-selected="true"]{font-weight:700}
.c-painel{padding-top:10px}
.c-vazio p{max-width:60ch}

/* ---------- Matrizes analíticas (Pacote 3D) ---------- */
.m-area { margin-top: 28px; border-top: 1px solid var(--linha, #2a2f3a); padding-top: 18px }
.m-grid { border-collapse: separate; border-spacing: 0; width: auto; max-width: 100%; display: block; overflow: auto; max-height: 62vh }
.m-grid thead th { position: sticky; top: 0; z-index: 2; background: var(--fundo-cartao, #161a22) }
.m-grid tbody th[scope="row"] { position: sticky; left: 0; z-index: 1; background: var(--fundo-cartao, #161a22); text-align: left; max-width: 260px }
.m-grid thead th:first-child { z-index: 3; left: 0 }
.m-celula { text-align: right; min-width: 68px; cursor: pointer; font-variant-numeric: tabular-nums }
.m-celula:focus-visible { outline: 3px solid var(--foco, #7aa2ff); outline-offset: -3px }
/* zero e agregação nunca são indicados só por cor: há texto e marca */
.m-celula.m-zero { opacity: .62 }
.m-celula.m-agregada { font-weight: 600 }
.m-marca { margin-left: 4px; font-size: .8em }
.m-drill { margin-top: 14px }
.m-explicacao { font-size: 1.02em; line-height: 1.5 }
.m-snapshot { margin-top: 12px }

/* ---------- Memos analíticos (Pacote 3E) ---------- */
.mo-area { margin-top: 28px; border-top: 1px solid var(--linha, #2a2f3a); padding-top: 18px }
.mo-editor textarea { width: 100%; font-family: inherit; font-size: 14px; line-height: 1.55; min-height: 280px }
/* estado local x revisão gravada: a diferença é dita por texto, não só por cor */
.mo-sujo { font-weight: 600 }
.mo-sujo::before { content: '● '; }
.mo-previa { margin-top: 12px; border-left: 3px solid var(--linha, #2a2f3a); padding-left: 12px }
.mo-html { white-space: pre-wrap; font-size: 13.5px; line-height: 1.6 }
.mo-proveniencia { margin-top: 14px }
.mo-proveniencia li { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; padding: 6px 0 }
.mo-titulo { font-weight: 600 }

/* ---------- Claims e argumentos (Pacote 3F) ---------- */
.ag-area { margin-top: 28px; border-top: 1px solid var(--linha, #2a2f3a); padding-top: 18px }
.ag-texto, .ag-titulo { font-weight: 600; max-width: 420px }
.ag-proveniencia li { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; padding: 6px 0 }
.ag-outline h4 { margin: 14px 0 4px }
.ag-outline li { padding: 8px 0; border-bottom: 1px solid var(--linha, #2a2f3a) }
.ag-proposicao { font-weight: 600 }
/* a relação é dita por extenso, nunca só por seta colorida */
.ag-relacao { display: block; font-size: 12.5px; opacity: .85; margin-left: 12px }
.ag-antes, .ag-depois { display: block; font-size: 12.5px }
.ag-antes::before { content: '− ' }
.ag-depois::before { content: '+ ' }

/* ---------- Resultados estruturados (Pacote 3G) ---------- */
.rs-area { margin-top: 28px; border-top: 1px solid var(--linha, #2a2f3a); padding-top: 18px }
.rs-titulo { font-weight: 600; max-width: 420px }
/* o estado nunca é dito só por cor: a etiqueta traz sempre o texto */
.rs-etiqueta { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px;
  border: 1px solid var(--linha, #2a2f3a) }
.rs-complete::before { content: '✓ ' }
.rs-partial::before { content: '◐ ' }
.rs-missing::before { content: '○ ' }
.rs-stale::before { content: '↺ ' }
.rs-invalid::before { content: '✕ ' }
.rs-escopo, .rs-limitacoes { margin: 14px 0; border: 1px solid var(--linha, #2a2f3a); border-radius: 8px; padding: 10px 14px }
.rs-escopo legend, .rs-limitacoes legend { font-weight: 600; padding: 0 6px }
.rs-trace h5 { margin: 14px 0 4px }
.rs-caminhos { list-style: none; padding-left: 0; margin: 0 }
.rs-caminhos li { padding: 6px 0; border-bottom: 1px solid var(--linha, #2a2f3a); font-size: 13px }
.rs-passos { display: block; font-family: ui-monospace, monospace; font-size: 12px; opacity: .85 }
.rs-ok::before { content: '✓ ' }
.rs-falta::before { content: '⚠ ' }
.rs-falta { font-weight: 600 }
/* impedimento e aviso se distinguem por texto e marca, não só por cor */
.rs-impedimentos li::before { content: '⛔ ' }

/* ---------- Planejamento de capítulos (Pacote 3H) ---------- */
.cp-area { margin-top: 28px; border-top: 1px solid var(--linha, #2a2f3a); padding-top: 18px }
.cp-titulo { font-weight: 600; max-width: 420px }
/* a cobertura nunca é dita só por cor: a etiqueta traz sempre o texto */
.cp-etiqueta { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px;
  border: 1px solid var(--linha, #2a2f3a) }
.cp-complete::before { content: '✓ ' }
.cp-partial::before { content: '◐ ' }
.cp-missing::before { content: '○ ' }
.cp-stale::before { content: '↺ ' }
.cp-invalid::before { content: '✕ ' }
.cp-not_required::before { content: '– ' }
.cp-manual_review::before { content: '☐ ' }
/* árvore acessível: recuo por nível, sem depender de arrastar e soltar */
.cp-arvore, .cp-arvore ul { list-style: none; padding-left: 0; margin: 0 }
.cp-arvore ul { padding-left: 22px; border-left: 1px solid var(--linha, #2a2f3a) }
.cp-arvore li { padding: 6px 0 }
.cp-arvore li[aria-selected="true"] > .cp-linha { font-weight: 600; outline: 2px solid var(--jade, #2f7d6b); outline-offset: 2px }
.cp-linha { display: flex; flex-wrap: wrap; gap: 8px; align-items: baseline; cursor: pointer }
.cp-caminho { font-family: ui-monospace, monospace; font-size: 12px; opacity: .8; min-width: 42px }
.cp-secao-titulo { font-weight: 600 }
.cp-retirada { text-decoration: line-through; opacity: .75 }
.cp-retirada-marca { font-size: 12px; border: 1px dashed var(--linha, #2a2f3a); border-radius: 8px; padding: 0 6px }
.cp-acoes-secao { display: flex; flex-wrap: wrap; gap: 4px; margin: 4px 0 0 42px }
.cp-detalhe, .cp-sustentacao { margin-top: 14px }
.cp-sustentacao h5 { margin: 14px 0 4px }
.cp-sustentacao li { display: flex; flex-wrap: wrap; gap: 6px; align-items: baseline; padding: 6px 0 }

/* ---------- Painel de administração (Pacote 4A) ---------- */
.pl-descricao { max-width: 380px; font-size: 12.5px }
/* o status nunca é dito só por cor: a marca textual vem no próprio texto */
.pl-status { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 12px;
  border: 1px solid var(--linha, #2a2f3a) }
.pl-log { max-height: 320px; overflow: auto; font-size: 12px; line-height: 1.5;
  background: var(--jade-claro, #f2f7f5); border-radius: 8px; padding: 10px 12px; white-space: pre-wrap }
.pl-modulos { list-style: none; padding: 0; margin: 0 }
.pl-modulos li { padding: 6px 0; display: flex; align-items: center; gap: 6px }

/* ---------- Orientação: margem e compartilhamento (Pacote 4B) ---------- */
.co-papel { font-size: 12px; color: var(--grafite, #5b6472); margin: 0 0 8px }
.co-filtro { display: block; font-size: 12px; margin: 8px 0; color: var(--grafite, #5b6472) }
.co-item { border-left: 3px solid var(--jade, #2f7d6b); padding: 8px 0 8px 10px; margin-bottom: 10px }
/* órfão não é erro: é comentário preservado. A borda tracejada diz isso
   sem esconder nada, e o aviso em texto explica — cor nunca informa sozinha. */
.co-orfao { border-left-style: dashed; border-left-color: var(--grafite, #5b6472); opacity: .92 }
.co-aviso-orfao { font-size: 11.5px; color: var(--grafite, #5b6472); font-style: italic; margin: 4px 0 }
.co-topo { display: flex; justify-content: space-between; align-items: baseline; gap: 8px }
.co-autor { font-size: 12.5px }
.co-data { font-size: 11px; color: var(--grafite, #5b6472) }
.co-trecho { margin: 4px 0; padding-left: 8px; border-left: 2px solid var(--linha, #d8dee6);
  font-size: 12px; color: var(--grafite, #5b6472) }
.co-texto { margin: 4px 0; font-size: 13px; line-height: 1.5 }
.co-resposta { margin: 4px 0 4px 10px; font-size: 12.5px; line-height: 1.5 }
.co-acoes { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 6px }
.co-resumo { font-size: 11.5px; color: var(--grafite, #5b6472); margin: 8px 0 0 }

.cp-explica { font-size: 12.5px; color: var(--grafite, #5b6472); max-width: 620px }
.cp-sub { font-size: 13px; margin: 14px 0 6px }
.cp-participantes, .cp-liberacoes { list-style: none; padding: 0; margin: 0 }
.cp-participantes li, .cp-liberacoes li { padding: 6px 0; display: flex; flex-wrap: wrap;
  gap: 8px; align-items: baseline; border-bottom: 1px solid var(--linha, #eef1f5) }
.cp-papel { font-size: 12px; color: var(--grafite, #5b6472) }
.cp-nota { font-size: 11.5px; color: var(--grafite, #5b6472); margin: 10px 0 0; max-width: 620px }

/* ---------- Minha conta: levar tudo e ir embora (Pacote 4C) ---------- */
.ct-papel { font-size: 13px; font-weight: 600; margin: 0 0 2px }
.ct-cota { font-size: 12px; color: var(--grafite, #5b6472); margin: 0 0 10px }
.ct-sub { font-size: 13px; margin: 16px 0 4px }
/* o título da área destrutiva é distinguido por PALAVRA e por peso, não
   só por cor: quem não distingue cores precisa perceber igual */
.ct-perigo-titulo { color: #B4462E; border-top: 1px solid var(--linha, #eef1f5); padding-top: 14px }
.ct-explica { font-size: 12.5px; color: var(--grafite, #5b6472); max-width: 620px; margin: 4px 0 10px }
.ct-previa { list-style: none; padding: 0; margin: 0 0 10px; display: flex; flex-wrap: wrap; gap: 6px 18px }
.ct-previa li { font-size: 12.5px }
.ct-permanece { font-size: 12px; color: var(--grafite, #5b6472); max-width: 620px;
  border-left: 3px solid var(--linha, #d8dee6); padding-left: 10px; margin: 8px 0 }
.ct-confirmacao { margin-top: 10px }
