/* ============================================================
   ÓRBITA · Sistema visual
   Fonte única de verdade. Versão 1.1 · 24.07.2026

   Nenhuma ferramenta define cor, fonte ou espaçamento por conta
   própria. Tudo que for visual sai daqui.

   Como usar, dois caminhos:

   A) Ferramenta hospedada, use o link:
      <link rel="stylesheet" href="/orbita.css">
      Caminho relativo, funciona em qualquer subdomínio do projeto.

   B) Arquivo solto que abre offline, cole este arquivo inteiro
      dentro de uma tag <style>, sem alterar nada.

   Fontes, sempre antes deste arquivo:
   <link rel="preconnect" href="https://fonts.googleapis.com">
   <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
   <link href="https://fonts.googleapis.com/css2?family=Instrument+Serif&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
   ============================================================ */

/* ---------- 1. Tokens ---------- */

:root{
  /* superfícies */
  --branco:#FFFFFF;
  --papel:#F4F4F5;

  /* filetes */
  --linha:#E2E4E7;
  --linha-forte:#C2C5CB;

  /* texto */
  --tinta:#0F1012;
  --grafite:#494C52;
  --neblina:#6B6F77;

  /* marca, aparece raro */
  --ouro:#8A6D2A;

  /* status. Não são cores de marca, são semântica.
     Azul só informa e nunca é ação. Paleta fechada, não alterar. */
  --azul:#2F6FA8;  --azul-fundo:#EDF4FA;   /* informação */
  --verde:#2E6B4F; --verde-fundo:#EDF5F0;  /* recebido */
  --ambar:#8A6A1F; --ambar-fundo:#FBF4E4;  /* apurado */
  --verm:#8C2F39;  --verm-fundo:#F9EDEE;   /* contestado */

  /* tipografia */
  --serif:'Instrument Serif',Georgia,'Times New Roman',serif;
  --sans:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;

  /* forma */
  --raio:16px;
  --raio-p:8px;
}

/* Modo escuro desativado de propósito, por bug de fundo preto.
   Não reativar sem decisão expressa. */

/* ---------- 2. Base ---------- */

*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}

body{
  background:var(--papel);
  font-family:var(--sans);
  color:var(--tinta);
  -webkit-font-smoothing:antialiased;
  font-size:16px;
  padding:44px 20px 96px;
}

.wrap{max-width:780px;margin:0 auto}

.tela{
  background:var(--branco);
  border:1px solid var(--linha);
  border-radius:var(--raio);
  padding:30px 46px 40px;
}

/* ---------- 3. Tipografia ---------- */

/* Instrument Serif tem três empregos e mais nenhum:
   número hero, valor em campo de entrada, cláusula. */
.num{
  font-family:var(--serif);
  font-weight:400;
  letter-spacing:-.012em;
  font-variant-numeric:tabular-nums;
}

/* Inter para todo valor de corpo. */
.val{
  font-family:var(--sans);
  font-weight:500;
  font-variant-numeric:tabular-nums;
  font-size:16px;
  color:var(--tinta);
}
.val.vazio{font-weight:400;font-size:14px;color:var(--neblina)}

.rot{
  font-size:11.5px;
  letter-spacing:.11em;
  text-transform:uppercase;
  color:var(--neblina);
  font-weight:500;
}

.grot{
  display:block;
  font-size:11px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--neblina);
  font-weight:600;
  margin-bottom:8px;
}

/* ---------- 4. Cabeçalho e marca ---------- */

.topo{
  padding-bottom:16px;
  border-bottom:1px solid var(--linha-forte);
  margin-bottom:8px;
}

.marca{display:flex;align-items:center;gap:11px;color:var(--tinta)}
.marca svg{width:26px;height:26px;flex:none}
.marca .nome{font-family:var(--serif);font-size:27px;line-height:1}
.marca .sub{
  font-size:12px;
  letter-spacing:.13em;
  text-transform:uppercase;
  color:var(--neblina);
  font-weight:500;
  margin-left:6px;
  padding-left:12px;
  border-left:1px solid var(--linha-forte);
}

.nav{display:flex;gap:22px;justify-content:flex-end;margin-top:12px;flex-wrap:wrap}
.nav button{
  font-size:13.5px;color:var(--neblina);cursor:pointer;background:0;border:0;
  font-family:var(--sans);padding:0;transition:color .15s;
}
.nav button:hover{color:var(--grafite)}
.nav button.on{color:var(--tinta);font-weight:500}

/* ---------- 5. Palco, o número hero ---------- */

.palco{text-align:center;padding:52px 0 30px}
.palco .rot{display:block;margin-bottom:16px}

.heroi{font-size:56px;line-height:1.02;display:block}

/* O traço com o ponto dourado. O ponto é o único ouro da abertura. */
.traco{display:block;margin:18px auto 0;width:360px;max-width:80%;height:20px}
.traco path{fill:none;stroke:var(--grafite);stroke-width:2;stroke-linecap:round}
.traco circle{fill:var(--ouro)}

.legenda{
  font-size:14.5px;color:var(--grafite);margin-top:22px;line-height:1.55;
  max-width:46ch;margin-left:auto;margin-right:auto;
}

/* ---------- 6. Linhas de dado ---------- */

.bloco{margin-top:24px;padding-top:22px;border-top:1px solid var(--linha)}

.li{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:10px 0}
.li .cha{font-size:15px;color:var(--grafite)}
.li .dir{display:flex;align-items:center;gap:10px}

/* O ponto dourado marca o número que fecha a conta. Uma vez por tela. */
.li .ponto{width:6px;height:6px;border-radius:50%;background:var(--ouro);flex:none}

.li.destaque .cha{color:var(--tinta);font-size:16px}
.li.destaque .val{font-size:20px}
.li.sub{padding:6px 0 6px 18px}
.li.sub .cha{font-size:14px;color:var(--neblina)}
.li.sub .val{font-size:14px;color:var(--grafite);font-weight:400}
.li.meta{padding-top:12px}
.li.meta .cha,.li.meta .val{color:var(--grafite);font-size:14px;font-weight:400}
.li.fecha{padding-top:14px}
.li.fecha .cha{color:var(--tinta);font-size:16px}
.li.fecha .val{font-family:var(--serif);font-weight:400;font-size:27px}

/* ---------- 7. Escolha e entrada ---------- */

.escolha{
  display:flex;justify-content:space-between;align-items:center;gap:14px;
  padding:16px 0;border-bottom:1px solid var(--linha);
}
.escolha .cha{font-size:15px;color:var(--grafite)}
.escolha .ops{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.escolha button{
  font-size:14px;color:var(--neblina);background:0;border:0;font-family:var(--sans);
  cursor:pointer;padding:2px 0;border-bottom:1.5px solid transparent;
  transition:color .15s,border-color .15s;
}
.escolha button:hover{color:var(--grafite)}
.escolha button.on{color:var(--tinta);font-weight:500;border-bottom-color:var(--tinta)}
.escolha .sep{width:1px;height:13px;background:var(--linha-forte)}

.entrada{
  display:flex;align-items:baseline;justify-content:space-between;gap:18px;
  padding:16px 0;border-bottom:1px solid var(--linha);
}
.entrada label{font-size:15px;color:var(--grafite)}
.entrada input{
  font-family:var(--serif);font-size:24px;color:var(--tinta);text-align:right;
  border:0;outline:0;background:0;width:230px;font-variant-numeric:tabular-nums;
  padding:2px 0;border-bottom:1.5px solid transparent;transition:border-color .15s;
}
.entrada input::placeholder{color:var(--linha-forte)}
.entrada input:hover{border-bottom-color:var(--linha-forte)}
.entrada input:focus{border-bottom-color:var(--ouro)}
.entrada input.txt{font-family:var(--sans);font-size:16px;font-weight:500}

/* ---------- 8. Alíquotas ---------- */

.aliq{
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:13px 0;border-bottom:1px solid var(--linha);
}
.aliq label{font-size:15px;color:var(--grafite)}
.aliq .campo{display:flex;align-items:baseline;gap:3px}
.aliq input{
  font-family:var(--sans);font-weight:500;font-size:17px;color:var(--tinta);text-align:right;
  border:0;outline:0;background:0;width:62px;font-variant-numeric:tabular-nums;
  padding:1px 0;border-bottom:1.5px solid transparent;transition:border-color .15s;
}
.aliq input.largo{width:150px;font-family:var(--serif);font-size:20px}
.aliq input:hover{border-bottom-color:var(--linha-forte)}
.aliq input:focus{border-bottom-color:var(--ouro)}
.aliq input:disabled{color:var(--neblina)}
.aliq .pc{font-size:15px;color:var(--neblina)}
.aliq.apagado label,.aliq.apagado .pc{color:var(--neblina)}

.soma{display:flex;justify-content:space-between;align-items:center;padding:18px 0 0;gap:14px}
.soma .cha{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  color:var(--neblina);font-weight:600;
}
.soma .dir{display:flex;align-items:center;gap:10px}
.soma .val{font-size:26px}
.soma .ponto{width:6px;height:6px;border-radius:50%;background:var(--ouro);flex:none}

/* Seletor de regime tributário. Mesma lógica de .escolha, em bloco. */
.regime{padding:18px 0 4px;border-bottom:1px solid var(--linha-forte)}
.regime .rot{display:block;margin-bottom:12px}
.regime .ops{display:flex;gap:22px;flex-wrap:wrap;padding-bottom:14px}
.regime button{
  font-size:15px;color:var(--neblina);background:0;border:0;font-family:var(--sans);
  cursor:pointer;padding:2px 0;border-bottom:1.5px solid transparent;
  transition:color .15s,border-color .15s;
}
.regime button:hover{color:var(--grafite)}
.regime button.on{color:var(--tinta);font-weight:500;border-bottom-color:var(--tinta)}

.campos{margin-top:6px}

/* ---------- 9. Grupos ---------- */

.grupo{margin-top:36px}
.grupo > .rot{display:block;padding-bottom:14px;border-bottom:1px solid var(--linha-forte)}
.grupo .nota{font-size:13.5px;color:var(--neblina);margin-top:11px;line-height:1.6}

/* ---------- 10. Campo lido, para leitura de contrato ---------- */

.campo{
  display:flex;justify-content:space-between;align-items:baseline;gap:20px;
  padding:13px 0;border-bottom:1px solid var(--linha);
}
.campo .esq{flex:1;min-width:0}
.campo .cha{font-size:13.5px;color:var(--neblina);display:block;margin-bottom:3px}
.campo .dado{font-size:15px;color:var(--tinta);font-weight:500;line-height:1.45;word-break:break-word}

/* O trecho de origem. É ele que faz a conferência ser de uma linha. */
.campo .fonte{
  font-size:12.5px;color:var(--neblina);line-height:1.55;margin-top:6px;
  padding-left:11px;border-left:2px solid var(--linha);font-style:italic;
}
.campo .selo{
  font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--neblina);
  font-weight:500;flex:none;white-space:nowrap;
}
.campo.vazio .dado{color:var(--neblina);font-weight:400;font-style:italic}
.campo.marcado .selo{color:var(--ouro)}

/* Zona tracejada: o que o escritório acrescenta, e não saiu do documento. */
.compl{margin-top:26px;padding:26px 28px 28px;border:1px dashed var(--linha-forte);border-radius:12px}

/* Zona sólida: o que exige decisão. */
.decisao{margin-top:26px;padding:26px 28px 28px;border:1px solid var(--linha-forte);border-radius:12px}

/* ---------- 11. Cláusula ---------- */

.cla{margin-top:30px;padding-top:24px;border-top:1px solid var(--linha)}
.cla .rot{display:block;margin-bottom:11px}
.cla p{font-family:var(--serif);font-size:17px;line-height:1.6;color:var(--tinta)}

/* ---------- 12. Ações ---------- */

.acoes{display:flex;align-items:center;gap:22px;margin-top:30px;flex-wrap:wrap}

.btn{
  background:var(--tinta);color:var(--branco);border:0;border-radius:var(--raio-p);
  padding:12px 24px;font-family:var(--sans);font-size:14px;font-weight:500;
  cursor:pointer;transition:opacity .15s;
}
.btn:hover{opacity:.86}

.lnk{
  font-size:14px;color:var(--neblina);cursor:pointer;background:0;border:0;
  font-family:var(--sans);padding:0;transition:color .15s;
}
.lnk:hover{color:var(--tinta)}
.lnk.ok{color:var(--ouro)}

/* Nenhuma ação é azul. O azul só informa. */

button:focus-visible,input:focus-visible,a:focus-visible{
  outline:2px solid var(--ouro);outline-offset:3px;border-radius:4px;
}

/* ---------- 13. Avisos ---------- */

.aviso{
  font-size:13.5px;color:var(--neblina);margin-top:26px;padding-top:18px;
  border-top:1px solid var(--linha);line-height:1.65;
}

/* Alerta que exige decisão. Filete dourado, sem cor de fundo. */
.alerta{
  font-size:13.5px;color:var(--neblina);line-height:1.65;margin-top:16px;
  padding-left:13px;border-left:2px solid var(--ouro);
}

/* ---------- 14. Estado e informação ---------- */

/* Chip de estado. Nunca use rótulo único para situações com
   consequências financeiras diferentes. */
.chip{
  display:inline-block;font-size:11px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;padding:3px 10px;border-radius:999px;
}
.chip-sim{background:var(--verde-fundo);color:var(--verde)}
.chip-nao{background:var(--papel);color:var(--neblina);border:1px solid var(--linha)}
.chip-parcial{background:var(--ambar-fundo);color:var(--ambar)}

/* Caixas informativas. É aqui que o azul vive, e só aqui.
   Nada dentro de uma .cx é clicável. */
.cx{
  border-radius:0 var(--raio-p) var(--raio-p) 0;padding:11px 13px;
  font-size:13.5px;line-height:1.6;margin-top:12px;color:var(--tinta);
}
.cx b{font-weight:600}
.cx-info{background:var(--azul-fundo);border-left:3px solid var(--azul)}
.cx-info b{color:var(--azul)}
.cx-aviso{background:var(--ambar-fundo);border-left:3px solid var(--ambar)}
.cx-disputa{background:var(--verm-fundo);border-left:3px solid var(--verm)}

/* Cenários lado a lado. O Farol mostra os dois e não decide. */
.cenarios{display:flex;gap:14px;margin-top:14px;flex-wrap:wrap}
.cenario{flex:1;min-width:220px;border:1px solid var(--linha);border-radius:10px;padding:14px 16px}
.cenario h3{font-size:13px;font-weight:600;margin-bottom:6px;color:var(--tinta)}

.check{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid var(--linha)}
.check input{width:17px;height:17px;margin-top:2px;accent-color:var(--tinta)}
.check span{font-size:15px;color:var(--grafite)}

/* Tabela de parcelas e registro de alterações de parâmetro. */
.sp-tab{width:100%;border-collapse:collapse;font-size:14px;margin-top:12px}
.sp-tab th,.sp-tab td{
  text-align:left;padding:9px 10px;border-bottom:1px solid var(--linha);
  font-variant-numeric:tabular-nums;color:var(--grafite);
}
.sp-tab th{font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--neblina);font-weight:600}
.sp-tab .tnum{text-align:right}
.sp-tab b{color:var(--tinta);font-weight:600}

.sp-log{
  font-size:12.5px;color:var(--neblina);max-height:130px;overflow:auto;
  border:1px solid var(--linha);border-radius:var(--raio-p);padding:10px 12px;
  margin-top:14px;font-variant-numeric:tabular-nums;line-height:1.8;
}

.notax{font-size:13.5px;color:var(--neblina);margin-top:10px;line-height:1.6}

/* Exceção deliberada: o hero da aba de split é dourado, porque ele é
   a sobra para o escritório, o número que fecha a conta. */
.heroi.ouro{color:var(--ouro)}

.cla button{margin-top:13px}

/* ---------- 15. Vistas ---------- */

.vista{display:none}
.vista.on{display:block}
.oculto{display:none}

/* ---------- 16. Documento imprimível ---------- */

.doc{margin-top:36px;padding-top:30px;border-top:1px solid var(--linha-forte)}
.doc .cab{
  display:flex;justify-content:space-between;align-items:flex-start;
  padding-bottom:18px;border-bottom:1px solid var(--linha-forte);
  margin-bottom:22px;gap:16px;
}
.doc .cab .dt{font-size:12.5px;color:var(--neblina);text-align:right;line-height:1.5}
.doc .sec{
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--neblina);
  font-weight:600;margin:28px 0 6px;
}
.doc .dl{
  display:flex;justify-content:space-between;align-items:baseline;gap:14px;
  padding:11px 0;border-bottom:1px solid var(--linha);
}
.doc .dl span{font-size:14px;color:var(--grafite)}
.doc .dl b{font-weight:500;font-size:16px;font-variant-numeric:tabular-nums;color:var(--tinta)}
.doc .dl.forte{padding:16px 0}
.doc .dl.forte b{font-family:var(--serif);font-weight:400;font-size:26px}
.doc .dl.forte span{color:var(--tinta);font-size:15px}
.doc .rodape{
  margin-top:30px;padding-top:18px;border-top:1px solid var(--linha);
  font-size:11.5px;color:var(--neblina);line-height:1.7;
}

/* ---------- 17. Celular ---------- */

@media(max-width:640px){
  body{padding:26px 12px 64px;font-size:15px}
  .tela{padding:22px 20px 30px;border-radius:12px}
  .marca svg{width:22px;height:22px}
  .marca .nome{font-size:23px}
  .marca .sub{display:none}
  .nav{justify-content:flex-start;gap:16px}
  .nav button{font-size:13px}
  .palco{padding:36px 0 22px}
  .heroi{font-size:34px}
  .traco{max-width:88%}
  .entrada input{width:160px;font-size:20px}
  .escolha{flex-wrap:wrap;gap:8px}
  .li.fecha .val{font-size:22px}
  .aliq input.largo{width:120px;font-size:18px}
  .campo{flex-direction:column;gap:5px}
  .regime .ops{gap:16px}
  .decisao,.compl{padding:20px 18px 22px}
}

/* ---------- 18. Impressão ---------- */

@media print{
  body{background:var(--branco);padding:0;font-size:12px}
  .tela{border:0;border-radius:0;padding:0}
  .topo,.campos,.acoes,.naoimprime{display:none !important}
  .doc{border-top:0;margin-top:0;padding-top:0}
  .vista{display:none !important}
  #v-doc{display:block !important}
  .doc .dl.forte b{font-size:21px}
}

/* ---------- 19. Movimento reduzido ---------- */

@media(prefers-reduced-motion:reduce){
  *{transition:none !important;animation:none !important}
}
