/* =====================================================================
   Design system — tokens do brandbook GSK 1.0
   O sistema e claro; so o menu e escuro. O laranja aparece pouco:
   quando algo fica laranja, e porque precisa de alguem.
   ===================================================================== */
:root{
  --noite:#011426; --profundo:#052949; --painel:#01477C; --prata:#8294A4;
  --laranja:#FF7205; --ambar:#FF9C05; --sol:#FED104;
  --papel:#F4F6F9; --branco:#fff; --tinta:#0E1B28; --sec:#5A6672; --linha:#DDE3EA;
  --ok:#1D7A4B; --okbg:#E3F3EA; --att:#9A5A00; --attbg:#FFF1DC;
  --crit:#C7362B; --critbg:#FBE6E4; --neubg:#E9EEF4;
  --sans:'Barlow',system-ui,-apple-system,'Segoe UI',sans-serif;
  --cond:'Barlow Condensed','Barlow',system-ui,sans-serif;
  --menu:248px; --raio:4px; --raio-p:3px;
  --sombra:0 4px 16px rgba(1,20,38,.10);
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--papel);color:var(--tinta);font-family:var(--sans);
  font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{margin:0;line-height:1.15;font-weight:600}
p{margin:0 0 1em}
a{color:var(--painel);text-decoration:none}
a:hover{text-decoration:underline}
button,input,select,textarea{font-family:inherit;font-size:inherit}
:focus-visible{outline:2px solid var(--laranja);outline-offset:2px}
img{max-width:100%;height:auto}
.num{font-family:var(--cond);font-variant-numeric:tabular-nums}
.oculto{display:none!important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ===== faixa de visita a outra empresa =====
   Âmbar porque é estado de atenção, não de falha: nada está quebrado,
   mas quem está na tela precisa lembrar de onde está. */
.faixa-visita{position:fixed;top:0;left:0;right:0;height:42px;z-index:60;
  background:var(--ambar);color:#3A2600;display:flex;align-items:center;gap:16px;
  padding:0 20px;font-size:14.5px}
.faixa-visita strong{font-weight:600}
.faixa-visita form{margin-left:auto}
.faixa-visita button{background:rgba(0,0,0,.16);color:#2A1C00;border:0;cursor:pointer;
  font-family:var(--sans);font-size:13.5px;font-weight:600;padding:5px 13px;border-radius:99px}
.faixa-visita button:hover{background:rgba(0,0,0,.26)}

/* ===== estrutura ===== */
.app{display:flex;min-height:100vh}
.app.com-faixa{padding-top:42px}
.app.com-faixa .menu{top:42px;height:calc(100vh - 42px)}
.app.com-faixa .barra{top:42px}
.tela{flex:1;min-width:0;display:flex;flex-direction:column}
.conteudo{padding:24px 28px 60px;flex:1}

/* ===== menu lateral ===== */
.menu{width:var(--menu);flex:none;background:var(--noite);color:#A9BCCD;
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;z-index:20}
.menu-marca{display:flex;align-items:center;gap:11px;padding:16px 18px;
  border-bottom:1px solid rgba(255,255,255,.08);text-decoration:none}
.menu-marca:hover{text-decoration:none}
.menu-marca img,.menu-marca svg{width:40px;height:40px;flex:none;object-fit:contain}
.menu-marca b{color:#fff;font-family:var(--cond);font-size:20px;font-weight:600;line-height:1;display:block}
.menu-marca span{display:block;font-size:11.5px;color:#7F93A6;letter-spacing:.09em;text-transform:uppercase}
.menu nav{padding:12px 0;overflow-y:auto;flex:1}
.menu-grupo{font-family:var(--cond);font-size:13px;letter-spacing:.09em;color:#5E7386;
  padding:14px 20px 6px;text-transform:uppercase}
.item{display:flex;align-items:center;gap:11px;width:100%;background:none;border:0;
  color:#A9BCCD;padding:9px 20px;font-size:15px;cursor:pointer;text-align:left;
  border-left:3px solid transparent;text-decoration:none}
.item:hover{color:#fff;background:rgba(255,255,255,.05);text-decoration:none}
.item.ativo{color:#fff;background:rgba(255,114,5,.13);border-left-color:var(--laranja);font-weight:500}
.item .ic{width:17px;height:17px;flex:none;stroke:currentColor;fill:none;stroke-width:1.7;
  stroke-linecap:round;stroke-linejoin:round}
.item .cont{margin-left:auto;font-family:var(--cond);font-size:13px;
  background:rgba(255,255,255,.12);border-radius:99px;padding:0 7px;min-width:22px;text-align:center}
.item.ativo .cont{background:var(--laranja);color:#fff}
.item .cont.alerta{background:var(--crit);color:#fff}
.menu-pe{padding:14px 20px;border-top:1px solid rgba(255,255,255,.08);font-size:13px;
  display:flex;gap:10px;align-items:center}
.avatar{width:31px;height:31px;border-radius:50%;background:var(--painel);color:#fff;
  display:grid;place-items:center;font-weight:600;font-size:13px;flex:none}
.menu-pe b{color:#fff;font-weight:500;display:block;font-size:14px}
.menu-pe span{color:#6D8298;font-size:12.5px;display:block}
.menu-pe .sair{margin-left:auto;color:#6D8298;background:none;border:0;cursor:pointer;padding:4px}
.menu-pe .sair:hover{color:var(--laranja)}

/* ===== barra superior ===== */
.barra{background:#fff;border-bottom:1px solid var(--linha);padding:14px 28px;
  display:flex;align-items:center;gap:18px;position:sticky;top:0;z-index:10}
.barra h1{font-family:var(--cond);font-size:27px;font-weight:600}
.barra .cam{font-size:13px;color:var(--sec);font-family:var(--cond);letter-spacing:.03em}
.barra .dir{margin-left:auto;display:flex;gap:10px;align-items:center}
.abre-menu{display:none;width:34px;height:34px;border:1px solid var(--linha);
  border-radius:var(--raio-p);background:#fff;place-items:center;cursor:pointer}

/* ===== botoes ===== */
.btn{border-radius:var(--raio-p);padding:8px 15px;font-size:14.5px;font-weight:600;
  border:1.5px solid transparent;cursor:pointer;display:inline-flex;align-items:center;
  gap:7px;text-decoration:none;line-height:1.3;white-space:nowrap}
.btn:hover{text-decoration:none}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-1{background:var(--laranja);color:#fff}
.btn-1:hover{background:#E56504;color:#fff}
.btn-2{background:#fff;color:var(--painel);border-color:#C3D0DC}
.btn-2:hover{background:#EFF3F7;color:var(--painel)}
.btn-3{background:transparent;color:var(--sec);border-color:var(--linha)}
.btn-3:hover{background:#EFF3F7}
.btn-perigo{background:#fff;color:var(--crit);border-color:#E9B7B2}
.btn-perigo:hover{background:var(--critbg)}
.btn-p{padding:5px 10px;font-size:13.5px}
.btn svg{width:15px;height:15px;stroke:currentColor;fill:none;stroke-width:1.9;
  stroke-linecap:round;stroke-linejoin:round}

/* ===== selos ===== */
.selo{font-family:var(--cond);font-size:13.5px;font-weight:600;padding:2px 9px;
  border-radius:99px;white-space:nowrap;display:inline-block}
.s-ok{background:var(--okbg);color:var(--ok)}
.s-att{background:var(--attbg);color:var(--att)}
.s-crit{background:var(--critbg);color:var(--crit)}
.s-neu{background:var(--neubg);color:var(--painel)}
.s-sol{background:#FFF8D6;color:#7A6300}

/* ===== cartoes ===== */
.cartao{background:#fff;border:1px solid var(--linha);border-radius:var(--raio)}
.cartao-cab{padding:14px 18px;border-bottom:1px solid var(--linha);
  display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.cartao-cab h3{font-family:var(--cond);font-size:20px}
.cartao-cab .ap{font-size:13px;color:var(--sec)}
.cartao-cab .dir{margin-left:auto;display:flex;gap:8px;align-items:center}
.cartao-corpo{padding:18px}
.cartao-pe{padding:12px 18px;border-top:1px solid var(--linha);background:#FAFBFD;
  display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.grade{display:grid;gap:16px}
.g2{grid-template-columns:repeat(2,1fr)}
.g3{grid-template-columns:repeat(3,1fr)}
.g4{grid-template-columns:repeat(4,1fr)}

/* ===== kpis ===== */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}
.kpi{background:#fff;border:1px solid var(--linha);border-radius:var(--raio);padding:15px 17px}
.kpi .rot{font-size:13.5px;color:var(--sec)}
.kpi .v{font-family:var(--cond);font-size:31px;font-weight:600;line-height:1.1;
  margin-top:3px;font-variant-numeric:tabular-nums}
.kpi .d{font-size:13px;margin-top:2px;color:var(--sec)}
.kpi .d.sobe{color:var(--ok)}
.kpi .d.desce{color:var(--crit)}
.kpi.destaque .v{color:var(--painel)}
.kpi.alerta .v{color:var(--crit)}
.kpi.atencao .v{color:var(--att)}

/* ===== tabelas ===== */
.tabela-rolagem{overflow-x:auto}
table.tb{width:100%;border-collapse:collapse;font-size:14.5px}
.tb th{font-family:var(--cond);font-size:14.5px;font-weight:600;color:var(--sec);
  text-align:left;padding:9px 18px;border-bottom:1px solid var(--linha);white-space:nowrap}
.tb td{padding:11px 18px;border-bottom:1px solid var(--linha);vertical-align:middle}
.tb tr:last-child td{border-bottom:0}
.tb tbody tr:hover{background:#FAFBFD}
.tb .n{font-family:var(--cond);font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.tb .acoes{text-align:right;white-space:nowrap}
.tb .acoes a,.tb .acoes button{color:var(--painel);font-size:13.5px;margin-left:10px;
  background:none;border:0;cursor:pointer;padding:0}
.tb .acoes .perigo{color:var(--crit)}
.tb tr.vencida td{background:#FEF7F6}
.tb tr.inativa{opacity:.55}
.cli{font-weight:500}
.cli span{display:block;font-size:13px;color:var(--sec);font-weight:400}
.tb-compacta td{padding:8px 14px}
.tb-compacta th{padding:7px 14px}

/* ===== vazio ===== */
.vazio{padding:56px 24px;text-align:center;color:var(--sec)}
.vazio svg{width:44px;height:44px;stroke:var(--prata);fill:none;stroke-width:1.4;margin-bottom:12px}
.vazio h3{font-family:var(--cond);font-size:21px;color:var(--tinta);margin-bottom:6px}
.vazio p{max-width:44ch;margin:0 auto 16px}

/* ===== formularios ===== */
.form-grade{display:grid;gap:16px 18px;grid-template-columns:repeat(12,1fr)}
.campo{display:flex;flex-direction:column;grid-column:span 12}
.c1{grid-column:span 1}.c2{grid-column:span 2}.c3{grid-column:span 3}
.c4{grid-column:span 4}.c5{grid-column:span 5}.c6{grid-column:span 6}
.c7{grid-column:span 7}.c8{grid-column:span 8}.c9{grid-column:span 9}
.c10{grid-column:span 10}.c12{grid-column:span 12}
.campo label{font-size:13.5px;color:var(--sec);margin-bottom:5px;font-weight:500}
.campo label .req{color:var(--laranja)}
.campo input,.campo select,.campo textarea{width:100%;border:1px solid var(--linha);
  border-radius:var(--raio-p);padding:8px 10px;font-size:15px;background:#fff;color:var(--tinta)}
.campo input:focus,.campo select:focus,.campo textarea:focus{border-color:var(--painel);outline:none;
  box-shadow:0 0 0 3px rgba(1,71,124,.10)}
.campo textarea{min-height:88px;resize:vertical;line-height:1.5}
.campo input[readonly],.campo input:disabled{background:#F4F6F9;color:var(--sec)}
.campo .ajuda{font-size:12.5px;color:var(--sec);margin-top:4px}
.campo.invalido input,.campo.invalido select,.campo.invalido textarea{border-color:var(--crit)}
.erro-campo{display:block;font-size:12.5px;color:var(--crit);margin-top:4px}
.campo-n input{font-family:var(--cond);font-variant-numeric:tabular-nums;text-align:right}
input[type=range]{width:100%;accent-color:var(--laranja);padding:0}
.check{flex-direction:row;align-items:center;gap:8px}
.check input{width:auto}
.check label{margin:0;font-size:14.5px;color:var(--tinta)}
fieldset{border:0;padding:0;margin:0 0 26px}
fieldset legend{font-family:var(--cond);font-size:19px;font-weight:600;color:var(--noite);
  padding:0 0 4px;margin-bottom:14px;border-bottom:1px solid var(--linha);width:100%}
.form-acoes{display:flex;gap:10px;align-items:center;padding-top:6px}
.form-acoes .dir{margin-left:auto}

/* ===== filtros ===== */
.filtros{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:16px}
.filtros .campo{grid-column:auto;min-width:150px}
.filtros .campo.busca{min-width:250px;flex:1}
.filtros .btn{margin-bottom:1px}
.abas{display:flex;gap:2px;border-bottom:1px solid var(--linha);margin-bottom:18px;overflow-x:auto}
.aba{padding:9px 16px;font-family:var(--cond);font-size:16px;color:var(--sec);
  border-bottom:2px solid transparent;cursor:pointer;background:none;border-top:0;
  border-left:0;border-right:0;white-space:nowrap;text-decoration:none}
.aba:hover{color:var(--tinta);text-decoration:none}
.aba.ativo{color:var(--noite);border-bottom-color:var(--laranja);font-weight:600}
.aba .q{font-family:var(--cond);font-size:13px;background:var(--neubg);border-radius:99px;
  padding:0 6px;margin-left:5px;color:var(--painel)}

/* ===== flash ===== */
.flash{padding:11px 16px;border-radius:var(--raio-p);margin-bottom:16px;font-size:14.5px;
  display:flex;gap:10px;align-items:flex-start;border-left:3px solid}
.flash-sucesso{background:var(--okbg);color:#12603A;border-color:var(--ok)}
.flash-erro{background:var(--critbg);color:#98281F;border-color:var(--crit)}
.flash-aviso{background:var(--attbg);color:#7A4700;border-color:var(--ambar)}
.flash-info{background:var(--neubg);color:var(--profundo);border-color:var(--painel)}
.flash .x{margin-left:auto;background:none;border:0;cursor:pointer;color:inherit;opacity:.6;font-size:17px;line-height:1}

/* ===== paginacao ===== */
.paginacao{display:flex;gap:6px;align-items:center;padding:14px 18px;
  border-top:1px solid var(--linha);font-size:14px;color:var(--sec);flex-wrap:wrap}
.paginacao a,.paginacao span.pg{padding:4px 10px;border:1px solid var(--linha);
  border-radius:var(--raio-p);color:var(--painel);background:#fff;text-decoration:none}
.paginacao a:hover{background:#EFF3F7;text-decoration:none}
.paginacao .atual{background:var(--painel);color:#fff;border-color:var(--painel)}
.paginacao .total{margin-left:auto}

/* ===== resumo escuro (dimensionador / proposta) ===== */
.resumo{background:var(--noite);color:#fff;border-radius:var(--raio);padding:20px 22px;
  position:relative;overflow:hidden}
.resumo:before{content:"";position:absolute;top:-140px;right:-70px;width:340px;height:340px;
  border-radius:50%;background:radial-gradient(circle,rgba(255,156,5,.28),transparent 65%)}
.resumo .cab{position:relative;font-family:var(--cond);font-size:20px;font-weight:600;margin-bottom:16px}
.resumo .cab small{display:block;font-family:var(--sans);font-size:13px;font-weight:400;color:#8FA1B2;margin-top:2px}
.res-grade{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:18px}
.res-grade .b .r{font-size:13px;color:#8FA1B2}
.res-grade .b .v{font-family:var(--cond);font-size:30px;font-weight:600;line-height:1.1;
  font-variant-numeric:tabular-nums}
.res-grade .b .v small{font-size:16px;font-weight:400;color:#B9C6D4}
.res-grade .destaque .v{color:var(--sol)}
.barra-comp{position:relative;margin-bottom:16px}
.comp-l{display:flex;justify-content:space-between;font-size:13px;color:#B9C6D4;margin-bottom:5px}
.comp-t{height:26px;border-radius:2px;display:flex;overflow:hidden;background:rgba(255,255,255,.1)}
.comp-t i{display:block;height:100%;background:linear-gradient(90deg,var(--ambar),var(--laranja))}
.itens{position:relative;background:rgba(255,255,255,.06);border-radius:var(--raio-p);
  padding:12px 14px;font-size:14px}
.itens div{display:flex;gap:10px;padding:4px 0;border-bottom:1px solid rgba(255,255,255,.07)}
.itens div:last-child{border:0}
.itens span:last-child{margin-left:auto;font-family:var(--cond);color:#B9C6D4;
  font-variant-numeric:tabular-nums;white-space:nowrap}
.aviso{font-size:13px;color:var(--sec);margin-top:12px}
.dim{display:grid;grid-template-columns:360px 1fr;gap:16px;align-items:start}
.faixa-v{font-family:var(--cond);font-size:30px;font-weight:600;color:var(--noite);
  font-variant-numeric:tabular-nums}
.faixa-l{display:flex;justify-content:space-between;font-family:var(--cond);font-size:12.5px;color:var(--sec)}

/* ===== graficos ===== */
.graf{padding:16px 18px}
.graf svg{width:100%;height:190px;display:block}
.leg{display:flex;gap:16px;font-size:13px;color:var(--sec);margin-top:8px;flex-wrap:wrap}
.leg i{width:11px;height:3px;display:inline-block;vertical-align:3px;margin-right:6px}

/* ===== barras de estoque ===== */
.barra-est{height:8px;border-radius:99px;background:#E9EEF4;overflow:hidden;display:flex;margin-top:9px}
.barra-est i{display:block;height:100%}
.legenda-est{display:flex;gap:14px;font-size:12.5px;color:var(--sec);margin-top:7px;flex-wrap:wrap}
.legenda-est i{width:9px;height:9px;border-radius:2px;display:inline-block;margin-right:5px}
.med{height:5px;border-radius:99px;background:#E9EEF4;overflow:hidden;margin-top:5px}
.med i{display:block;height:100%;background:var(--sol)}
.med.baixo i{background:var(--crit)}
.med.atencao i{background:var(--ambar)}

/* ===== linha do tempo / historico ===== */
.lista .li{display:flex;gap:12px;padding:12px 18px;border-bottom:1px solid var(--linha);
  align-items:flex-start}
.lista .li:last-child{border:0}
.marca-l{width:3px;align-self:stretch;border-radius:2px;flex:none;background:var(--prata)}
.marca-l.ok{background:var(--ok)}.marca-l.att{background:var(--ambar)}
.marca-l.crit{background:var(--crit)}.marca-l.dado{background:var(--painel)}
.li .txt{flex:1;min-width:0}
.li .txt b{font-weight:500;display:block}
.li .txt span{font-size:13.5px;color:var(--sec)}
.li .quando{font-family:var(--cond);font-size:13.5px;color:var(--sec);white-space:nowrap}

/* ===== dado em ficha ===== */
.ficha{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:16px 20px;padding:18px}
.ficha .d .r{font-size:12.5px;color:var(--sec);text-transform:uppercase;letter-spacing:.05em}
.ficha .d .v{font-size:15px;margin-top:2px}
.ficha .d .v.grande{font-family:var(--cond);font-size:24px;font-weight:600;
  font-variant-numeric:tabular-nums;color:var(--noite)}

/* ===== modal ===== */
.modal{position:fixed;inset:0;background:rgba(1,20,38,.55);display:none;
  align-items:center;justify-content:center;padding:20px;z-index:50}
.modal.aberto{display:flex}
.modal-caixa{background:#fff;border-radius:var(--raio);max-width:560px;width:100%;
  max-height:90vh;overflow-y:auto;box-shadow:var(--sombra)}
.modal-cab{padding:16px 20px;border-bottom:1px solid var(--linha);display:flex;align-items:center;gap:12px}
.modal-cab h3{font-family:var(--cond);font-size:21px}
.modal-cab .x{margin-left:auto;background:none;border:0;font-size:22px;color:var(--sec);cursor:pointer;line-height:1}
.modal-corpo{padding:20px}
.modal-pe{padding:14px 20px;border-top:1px solid var(--linha);display:flex;gap:10px;
  justify-content:flex-end;background:#FAFBFD}

/* ===== busca com sugestao ===== */
.autocomplete{position:relative}
.autocomplete .sugestoes{position:absolute;top:100%;left:0;right:0;background:#fff;
  border:1px solid var(--linha);border-top:0;border-radius:0 0 var(--raio-p) var(--raio-p);
  max-height:260px;overflow-y:auto;z-index:30;box-shadow:var(--sombra);display:none}
.autocomplete .sugestoes.aberto{display:block}
.autocomplete .sug{padding:9px 12px;cursor:pointer;font-size:14.5px;border-bottom:1px solid #F0F3F7}
.autocomplete .sug:last-child{border:0}
.autocomplete .sug:hover,.autocomplete .sug.marcado{background:#EFF3F7}
.autocomplete .sug small{display:block;color:var(--sec);font-size:12.5px}

/* ===== itens editaveis (proposta / compra) ===== */
.itens-tab{width:100%;border-collapse:collapse;font-size:14.5px}
.itens-tab th{font-family:var(--cond);font-size:14px;color:var(--sec);text-align:left;
  padding:8px 10px;border-bottom:1px solid var(--linha);font-weight:600}
.itens-tab td{padding:6px 8px;border-bottom:1px solid var(--linha);vertical-align:middle}
.itens-tab input,.itens-tab select{border:1px solid transparent;background:transparent;
  padding:6px 8px;border-radius:var(--raio-p);width:100%}
.itens-tab input:hover,.itens-tab select:hover{border-color:var(--linha)}
.itens-tab input:focus,.itens-tab select:focus{border-color:var(--painel);background:#fff}
.itens-tab .n input{text-align:right;font-family:var(--cond);font-variant-numeric:tabular-nums}
.itens-tab .rm{color:var(--crit);background:none;border:0;cursor:pointer;font-size:17px;
  padding:2px 6px;line-height:1}
.itens-tab tfoot td{font-weight:600;border-top:2px solid var(--linha);border-bottom:0;padding:10px}
.itens-tab tfoot .n{font-family:var(--cond);font-size:17px;font-variant-numeric:tabular-nums}

/* ===== login ===== */
.login{min-height:100vh;display:grid;grid-template-columns:1fr 460px}
.login-arte{background:var(--noite);color:#fff;padding:60px 56px;display:flex;
  flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.login-arte:before{content:"";position:absolute;inset:-20px;
  background-image:linear-gradient(rgba(130,148,164,.5) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(130,148,164,.5) 1px,transparent 1px);
  background-size:44px 92px;opacity:.13;transform:rotate(-8deg)}
.login-arte:after{content:"";position:absolute;top:-260px;right:-120px;width:640px;height:640px;
  border-radius:50%;background:radial-gradient(circle,rgba(255,156,5,.30) 0%,rgba(255,114,5,.10) 45%,transparent 68%)}
.login-arte>*{position:relative;z-index:1}
.login-arte h2{font-family:var(--cond);font-size:clamp(30px,4vw,46px);font-weight:700;
  letter-spacing:-.01em;max-width:16ch}
.login-arte h2 span{color:var(--ambar);display:block}
.login-arte p{color:#B9C6D4;max-width:44ch;font-size:17px;margin-top:16px}
.login-arte .rodape{font-size:13px;color:#7F93A6}
.login-form{background:#fff;padding:56px 48px;display:flex;flex-direction:column;justify-content:center}
.login-form .marca{margin-bottom:32px}
.login-form .marca img,.login-form .marca svg{width:64px;height:64px}
.login-form h1{font-family:var(--cond);font-size:30px;margin-bottom:6px}
.login-form .sub{color:var(--sec);margin-bottom:26px}
.login-form .campo{margin-bottom:16px}
.login-form .btn{width:100%;justify-content:center;padding:11px}
.login-form .extra{margin-top:20px;font-size:14px;color:var(--sec);text-align:center}

/* ===== erros ===== */
.pagina-erro{min-height:100vh;display:grid;place-items:center;padding:40px;text-align:center}
.pagina-erro .cod{font-family:var(--cond);font-size:90px;font-weight:700;color:var(--prata);line-height:1}
.pagina-erro h1{font-family:var(--cond);font-size:30px;margin:8px 0 10px}
.pagina-erro p{color:var(--sec);max-width:46ch;margin:0 auto 22px}

/* ===== responsivo ===== */
@media(max-width:1180px){
  .kpis{grid-template-columns:repeat(2,1fr)}
  .dim{grid-template-columns:1fr}
  .g3,.g4{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:900px){
  .login{grid-template-columns:1fr}
  .login-arte{display:none}
  .login-form{padding:40px 24px}
}
@media(max-width:860px){
  .menu{position:fixed;left:0;top:0;transform:translateX(-100%);transition:transform .18s}
  .menu.aberto{transform:none}
  .abre-menu{display:grid}
  .conteudo{padding:16px}
  .barra{padding:12px 16px}
  .barra h1{font-size:22px}
  .res-grade{grid-template-columns:repeat(2,1fr)}
  .g2,.g3,.g4{grid-template-columns:1fr}
  .form-grade>*{grid-column:span 12!important}
  .menu-sombra{position:fixed;inset:0;background:rgba(1,20,38,.5);z-index:19}
}
@media(prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* ===== impressao ===== */
@media print{
  .menu,.barra,.form-acoes,.filtros,.paginacao,.abas,.nao-imprime{display:none!important}
  .conteudo{padding:0}
  body{background:#fff}
  .cartao{border:1px solid #ccc;break-inside:avoid}
}
