:root{
  --tinta:#14181f; --tinta-fraca:#5b6672; --linha:#e2e6ec; --fundo:#f4f6f9;
  --papel:#ffffff; --marca:#1f4a7a; --marca-forte:#163757; --alerta:#b3261e;
  --ok:#1c6b3f; --realce:#fff7e6; --raio:10px;
}
*{box-sizing:border-box;margin:0;padding:0}
/* .login usa display:grid, que por especificidade vence a regra padrao do navegador
   para [hidden]. Sem esta linha a tela de login continua por cima depois do login. */
[hidden]{display:none !important}
body{font:15px/1.55 -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--tinta);background:var(--fundo)}
button,input,select,textarea{font:inherit;color:inherit}

/* ---------------------------------------------------------------- login */
.login{min-height:100vh;display:grid;place-items:center;padding:20px;
  background:linear-gradient(160deg,#1f4a7a,#0f2740)}
.caixa-login{background:var(--papel);border-radius:14px;padding:30px 28px;width:100%;max-width:380px;
  box-shadow:0 18px 50px rgba(0,0,0,.28);display:flex;flex-direction:column;gap:14px}
.caixa-login h1{font-size:20px}
.caixa-login .sub{font-size:13px;color:var(--tinta-fraca);margin-top:-10px}
label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:600;color:var(--tinta-fraca)}
input,select,textarea{border:1px solid var(--linha);border-radius:8px;padding:9px 11px;background:#fff;
  font-weight:400;color:var(--tinta);width:100%}
input:focus,select:focus,textarea:focus{outline:2px solid #cfe0f2;border-color:var(--marca)}
textarea{resize:vertical}

/* ----------------------------------------------------------------- topo */
.topo{display:flex;align-items:center;gap:18px;background:var(--papel);border-bottom:1px solid var(--linha);
  padding:0 18px;height:56px;position:sticky;top:0;z-index:20;flex-wrap:wrap}
.marca{font-weight:800;color:var(--marca);white-space:nowrap}
.abas{display:flex;gap:2px;flex:1;overflow:auto}
.aba{background:none;border:0;padding:8px 12px;border-radius:8px;cursor:pointer;color:var(--tinta-fraca);
  font-weight:600;white-space:nowrap}
.aba:hover{background:#eef2f7}
.aba.ativa{background:#e8f0f8;color:var(--marca-forte)}
.usuario{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--tinta-fraca)}

/* --------------------------------------------------------------- layout */
.painel{display:none;padding:16px}
.painel.ativo{display:block}
.colunas{display:grid;grid-template-columns:320px 1fr;gap:16px;align-items:start}
@media (max-width:900px){.colunas{grid-template-columns:1fr}}
.lateral,.centro{background:var(--papel);border:1px solid var(--linha);border-radius:var(--raio);padding:16px}
.centro{display:flex;flex-direction:column;gap:10px;min-height:70vh}
.centro.largo{min-height:auto}
.lateral h2,.centro h2{font-size:13px;text-transform:uppercase;letter-spacing:.5px;color:var(--tinta-fraca);
  margin:14px 0 8px}
.lateral h2:first-child{margin-top:0}
.campo{display:flex;flex-direction:column;gap:10px}
.linha{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cresce{flex:1;min-width:180px}
.dica{font-size:12px;color:var(--tinta-fraca)}
.check{flex-direction:row;align-items:center;gap:8px;font-weight:500;color:var(--tinta)}
.check input{width:auto}

/* --------------------------------------------------------------- botoes */
.btn{border:1px solid var(--linha);background:#fff;border-radius:8px;padding:9px 14px;font-weight:700;
  cursor:pointer;color:var(--tinta)}
.btn:hover{border-color:#b9c4d1}
.btn.primario{background:var(--marca);border-color:var(--marca);color:#fff}
.btn.primario:hover{background:var(--marca-forte)}
.btn.pequeno{padding:6px 10px;font-size:13px}
.btn:disabled{opacity:.55;cursor:not-allowed}
.btn.perigo{color:var(--alerta);border-color:#f0c9c6}

/* --------------------------------------------------------------- listas */
.lista{max-height:230px;overflow:auto;border:1px solid var(--linha);border-radius:8px;margin-top:8px}
.item{padding:8px 10px;border-bottom:1px solid #eef1f5;cursor:pointer;font-size:13.5px}
.item:last-child{border-bottom:0}
.item:hover{background:#f7f9fc}
.item small{display:block;color:var(--tinta-fraca);font-size:11.5px}
.escolhido{margin-top:8px;background:var(--realce);border:1px solid #f0dcae;border-radius:8px;padding:9px 11px;font-size:13px}
.lista-fontes{display:flex;flex-direction:column;gap:8px}
.fonte{border:1px solid var(--linha);border-radius:8px;padding:8px 10px;font-size:12.5px}
.fonte b{display:block;font-size:13px}
.pastilha{display:inline-block;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.4px;
  padding:2px 7px;border-radius:20px;margin-top:4px}
.pastilha.on{background:#e3f2e8;color:var(--ok)}
.pastilha.off{background:#f1f3f6;color:var(--tinta-fraca)}
.perfis{font-size:12.5px;color:var(--tinta-fraca);padding-left:16px;display:flex;flex-direction:column;gap:5px}

/* --------------------------------------------------------------- tabela */
.tabela{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th,td{text-align:left;padding:8px 10px;border-bottom:1px solid var(--linha);vertical-align:top}
th{font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--tinta-fraca)}
tr:hover td{background:#f9fbfd}

/* --------------------------------------------------------------- editor */
.editor{min-height:52vh;font-family:"Times New Roman",Georgia,serif;font-size:16px;line-height:1.7;padding:18px 20px}
.resultado{white-space:pre-wrap;border:1px solid var(--linha);border-radius:8px;padding:14px 16px;min-height:40vh;
  background:#fcfdfe;font-size:14.5px}
.fontes{border-top:1px dashed var(--linha);padding-top:10px;font-size:12.5px}
.fontes h3{font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--tinta-fraca);margin-bottom:6px}
.fontes a{color:var(--marca);word-break:break-all}
.fontes li{margin-bottom:4px;list-style:none}
.estado{font-size:12.5px;color:var(--tinta-fraca)}
.aviso{border-radius:8px;padding:9px 11px;font-size:13px}
.aviso.erro{background:#fdeceb;color:var(--alerta);border:1px solid #f5c9c5}
.aviso.ok{background:#e9f5ee;color:var(--ok);border:1px solid #c6e4d3}
