/* ---------------------------------------------------------------------------
   Controle de Inconsistencias -- estilos.

   A paleta e as mesmas variaveis da Contagem de Material, para os dois sistemas
   parecerem o mesmo produto. Claro/escuro segue o tema do sistema operacional.
   --------------------------------------------------------------------------- */

:root{
  --bg:#f4f6f9; --card:#ffffff; --linha:#e3e8ef; --texto:#1c2430; --fraco:#6b7787;
  /* Ambar e verde saem mais escuros que na Contagem de Material de proposito:
     aqui eles aparecem como TEXTO dentro de selos com fundo tingido, e no tom
     original o contraste caia para ~3,5:1 -- ilegivel na tela do celular ao
     sol. Medido: todo selo fica acima de 4,5:1 nos dois temas. */
  --azul:#1f3b57; --azul2:#2f5f8a; --verde:#186347; --ambar:#8a5c00; --vermelho:#b3261e;
  --roxo:#5b4bb7; --chip:#eef2f7; --chip2:#e4eaf2; --fraco-forte:#55616f;
  --sombra:0 1px 2px rgba(16,24,40,.06),0 4px 14px rgba(16,24,40,.06);
  --sombra-alta:0 8px 20px rgba(16,24,40,.12),0 24px 48px rgba(16,24,40,.12);
  --r:12px;
  --topo:#ffffff;
}
@media (prefers-color-scheme:dark){
  :root{
    --bg:#12161c; --card:#1a1f27; --linha:#2a323d; --texto:#e6ebf2; --fraco:#94a2b3;
    --azul:#8ab4e8; --azul2:#6fa3dd; --verde:#5fd0a0; --ambar:#e0b25c; --vermelho:#f08a80;
    --roxo:#a99bf0; --chip:#232b35; --chip2:#2b3440; --fraco-forte:#94a2b3;
    --sombra:0 1px 2px rgba(0,0,0,.3),0 4px 14px rgba(0,0,0,.25);
    --sombra-alta:0 8px 20px rgba(0,0,0,.45),0 24px 48px rgba(0,0,0,.4);
    --topo:#171c23;
  }
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--texto);
     font:15px/1.55 -apple-system,"Segoe UI",Roboto,Arial,sans-serif;
     padding-bottom:env(safe-area-inset-bottom)}
a{color:var(--azul2)}
h1,h2,h3{letter-spacing:-.25px;margin:0}

/* ---------------- topo ---------------- */
.topo{position:sticky;top:0;z-index:40;background:var(--topo);
      border-bottom:1px solid var(--linha)}
.topo-in{max-width:1240px;margin:0 auto;padding:10px 16px;
         display:flex;align-items:center;gap:14px}
.marca{display:flex;align-items:center;gap:9px;font-weight:700;font-size:15.5px;
       text-decoration:none;color:inherit;white-space:nowrap}
.marca .p{width:26px;height:26px;border-radius:8px;background:var(--chip);
          display:grid;place-items:center;font-size:14px}
nav.abas{display:flex;gap:2px;margin-left:6px;overflow-x:auto;scrollbar-width:none}
nav.abas::-webkit-scrollbar{display:none}
nav.abas a{padding:7px 12px;border-radius:9px;font-size:13.5px;text-decoration:none;
           color:var(--fraco);white-space:nowrap;font-weight:500}
nav.abas a:hover{background:var(--chip);color:var(--texto)}
nav.abas a.on{background:var(--chip2);color:var(--texto);font-weight:600}
.topo .cresce{flex:1}
.eu{font-size:12.5px;color:var(--fraco);background:none;border:0;cursor:pointer;
    padding:6px 8px;border-radius:8px;white-space:nowrap;text-decoration:none;
    line-height:1.3;display:inline-block}
.eu:hover{background:var(--chip);color:var(--texto)}
a.eu{font-size:16px}

.wrap{max-width:1240px;margin:0 auto;padding:20px 16px 90px}

/* ---------------- botoes ---------------- */
button,.btn{font:inherit;font-size:13.5px;padding:8px 14px;border-radius:9px;
  border:1px solid var(--linha);background:var(--card);color:var(--texto);
  cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:6px;
  line-height:1.3;transition:.12s}
button:hover,.btn:hover{border-color:var(--azul2);color:var(--azul)}
button:disabled{opacity:.5;cursor:not-allowed}
.btn-1,button.btn-1{background:var(--azul);border-color:var(--azul);color:#fff;font-weight:600}
.btn-1:hover,button.btn-1:hover{opacity:.9;color:#fff;border-color:var(--azul)}
@media (prefers-color-scheme:dark){
  .btn-1,button.btn-1,.btn-1:hover,button.btn-1:hover{color:#12161c}
}
.btn-ok{border-color:var(--verde);color:var(--verde)}
.btn-ok:hover{background:rgba(31,122,82,.08);color:var(--verde)}
.btn-perigo{border-color:var(--vermelho);color:var(--vermelho)}
.btn-perigo:hover{background:rgba(179,38,30,.08);color:var(--vermelho)}
.btn-pq{font-size:12.5px;padding:5px 10px}
.btn-largo{width:100%;justify-content:center}

/* ---------------- cartoes ---------------- */
.card{background:var(--card);border:1px solid var(--linha);border-radius:var(--r);
      box-shadow:var(--sombra)}
.card-p{padding:16px 18px}
.secao{margin:26px 0 12px;display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.secao h2{font-size:15px}
.secao .cresce{flex:1}
.sub{color:var(--fraco);font-size:13px}

/* ---------------- indicadores do dashboard ---------------- */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:11px}
.kpi{background:var(--card);border:1px solid var(--linha);border-radius:var(--r);
     padding:14px 15px;cursor:pointer;text-align:left;box-shadow:var(--sombra);
     display:block;width:100%;transition:.13s}
.kpi:hover{transform:translateY(-2px);box-shadow:var(--sombra-alta);border-color:var(--azul2)}
.kpi .n{font-size:27px;font-weight:700;letter-spacing:-.8px;line-height:1.1}
.kpi .r{color:var(--fraco);font-size:11.5px;text-transform:uppercase;letter-spacing:.5px;
        margin-top:3px;font-weight:600}
.kpi .barra{height:3px;border-radius:2px;background:var(--chip2);margin-top:10px;overflow:hidden}
.kpi .barra i{display:block;height:100%;background:var(--azul2)}
.kpi.vermelho .n{color:var(--vermelho)} .kpi.vermelho .barra i{background:var(--vermelho)}
.kpi.laranja  .n{color:var(--ambar)}    .kpi.laranja  .barra i{background:var(--ambar)}
.kpi.verde    .n{color:var(--verde)}    .kpi.verde    .barra i{background:var(--verde)}
.kpi.roxo     .n{color:var(--roxo)}     .kpi.roxo     .barra i{background:var(--roxo)}

/* ---------------- selos de status e prazo ---------------- */
.selo{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;
      padding:3px 9px;border-radius:999px;background:var(--chip);color:var(--fraco);
      white-space:nowrap;letter-spacing:.1px}
.selo::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;
              flex:none}
.selo.s-rascunho{background:var(--chip);color:var(--fraco-forte)}
.selo.s-aguardando_envio{background:rgba(91,75,183,.13);color:var(--roxo)}
.selo.s-enviado{background:rgba(47,95,138,.14);color:var(--azul2)}
.selo.s-aguardando_correcao{background:rgba(164,112,10,.15);color:var(--ambar)}
.selo.s-corrigido{background:rgba(31,122,82,.13);color:var(--verde)}
.selo.s-validado{background:rgba(31,122,82,.2);color:var(--verde)}
.selo.s-cancelado{background:var(--chip);color:var(--fraco-forte);text-decoration:line-through}
.selo.p-alta{background:rgba(164,112,10,.15);color:var(--ambar)}
.selo.p-urgente{background:rgba(179,38,30,.14);color:var(--vermelho)}
.selo.pz-vencida{background:rgba(179,38,30,.14);color:var(--vermelho)}
.selo.pz-hoje{background:rgba(164,112,10,.16);color:var(--ambar)}
.selo.pz-amanha{background:rgba(164,112,10,.1);color:var(--ambar)}
.selo.pz-ok{background:rgba(31,122,82,.12);color:var(--verde)}
.selo.pz-sem_prazo,.selo.pz-encerrada{background:var(--chip);color:var(--fraco-forte)}
.selo.sem-ponto::before{display:none}

/* ---------------- formulario ---------------- */
.campo{margin-bottom:14px}
.campo > label{display:block;font-size:12.5px;font-weight:600;color:var(--fraco);
               margin-bottom:5px;letter-spacing:.2px}
.campo .dica{font-size:12px;color:var(--fraco);margin-top:4px}
/* campo que o sistema calcula: parece campo, mas não se digita nele */
.derivado{padding:9px 11px;border-radius:9px;border:1px dashed var(--linha);
  background:var(--chip);font-size:14.5px;display:flex;align-items:center;gap:8px;
  flex-wrap:wrap;min-height:40px}
.derivado b{font-variant-numeric:tabular-nums}
input[type=text],input[type=number],input[type=date],input[type=time],
input[type=search],input[type=datetime-local],input[type=tel],select,textarea{
  font:inherit;font-size:14.5px;width:100%;padding:9px 11px;border-radius:9px;
  border:1px solid var(--linha);background:var(--card);color:var(--texto);
  transition:border-color .12s,box-shadow .12s}
textarea{resize:vertical;min-height:74px;line-height:1.5}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--azul2);
  box-shadow:0 0 0 3px rgba(47,95,138,.14)}
input::placeholder,textarea::placeholder{color:var(--fraco);opacity:.75}
/* campo recusado (atendimento já cadastrado) */
input.erro{border-color:var(--vermelho);background:rgba(179,38,30,.05)}
input.erro:focus{box-shadow:0 0 0 3px rgba(179,38,30,.16)}
.campo .dica.erro{color:var(--vermelho);font-weight:600}
.campo .dica.erro a{color:var(--vermelho)}
.linha{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.linha-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px}
@media (max-width:640px){.linha,.linha-3{grid-template-columns:1fr}}

.pilulas{display:flex;gap:7px;flex-wrap:wrap}
.pilula{font-size:13px;padding:7px 13px;border-radius:999px;border:1px solid var(--linha);
        background:var(--card);cursor:pointer;color:var(--fraco);font-weight:500}
.pilula:hover{border-color:var(--azul2)}
.pilula.on{background:var(--azul);border-color:var(--azul);color:#fff;font-weight:600}
@media (prefers-color-scheme:dark){.pilula.on{color:#12161c}}
.pilula.on.alerta{background:var(--vermelho);border-color:var(--vermelho);color:#fff}
.pilula.on.aviso{background:var(--ambar);border-color:var(--ambar);color:#fff}

/* ---------------- previa da mensagem ---------------- */
.previa{position:sticky;top:66px}
.previa pre{margin:0;padding:15px 16px;background:var(--chip);border-radius:10px;
  font:13.5px/1.6 ui-monospace,"Cascadia Mono","Consolas",monospace;white-space:pre-wrap;
  word-break:break-word;min-height:120px;color:var(--texto);
  border:1px dashed var(--linha)}
.previa .vazia{color:var(--fraco);font-style:italic}
.copiar{width:100%;justify-content:center;font-size:15px;font-weight:700;padding:13px;
        margin-top:12px}
.copiar.feito{background:var(--verde);border-color:var(--verde);color:#fff}
@media (max-width:900px){.previa{position:static}}

/* ---------------- listagem ---------------- */
.filtros{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.filtros input[type=search]{max-width:280px}
.filtros select{width:auto;min-width:130px;font-size:13.5px;padding:7px 9px}

.tabela-wrap{overflow-x:auto;border-radius:var(--r)}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--linha);
      vertical-align:middle}
th{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--fraco);
   font-weight:700;background:var(--card);position:sticky;top:0;z-index:1}
tbody tr{cursor:pointer}
tbody tr:hover td{background:var(--chip)}
tbody tr:last-child td{border-bottom:0}
td.at{font-weight:700;font-variant-numeric:tabular-nums}
td .desc{color:var(--fraco);font-size:12.5px;display:block;margin-top:2px;
         max-width:420px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* balão de espiada: pendurado no <body>, não ocupa lugar no fluxo da página */
.balao{position:fixed;z-index:80;max-width:min(340px,calc(100vw - 16px));
  background:var(--texto);color:var(--bg);padding:10px 13px;border-radius:10px;
  font-size:13px;line-height:1.55;box-shadow:var(--sombra-alta);
  white-space:pre-wrap;word-break:break-word;pointer-events:none;
  animation:fade .1s ease}
.balao .t{font-size:10.5px;text-transform:uppercase;letter-spacing:.5px;
  opacity:.65;margin-bottom:5px;font-weight:700;white-space:nowrap;
  overflow:hidden;text-overflow:ellipsis}
.balao .bico{position:absolute;width:10px;height:10px;background:inherit;
  transform:rotate(45deg)}

/* ações rápidas da lista: fazem o fluxo sem abrir a inconsistência */
.acoes-linha{display:flex;gap:5px;flex-wrap:wrap}
.btn-espiar{flex:0 0 auto !important}
.acoes-td{white-space:nowrap;width:1%}
.acoes-td .btn-pq{padding:5px 8px;font-size:14px;line-height:1}
.item .acoes-linha{margin-top:10px;padding-top:10px;border-top:1px solid var(--linha)}
.item .acoes-linha .btn-pq{flex:1;justify-content:center}

.vazio{color:var(--fraco);padding:44px 20px;text-align:center;font-size:14px}
.vazio b{display:block;color:var(--texto);font-size:15px;margin-bottom:4px}

/* na tela pequena a tabela vira lista de cartoes */
.lista-cards{display:none}
@media (max-width:860px){
  .tabela-wrap{display:none}
  .lista-cards{display:grid;gap:10px}
}
.item{background:var(--card);border:1px solid var(--linha);border-radius:var(--r);
      padding:13px 14px;box-shadow:var(--sombra);cursor:pointer}
.item:active{transform:scale(.995)}
.item .l1{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:5px}
.item .at{font-weight:700;font-size:15px}
.item .txt{font-size:13.5px;color:var(--fraco);margin-bottom:8px;
           display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
           overflow:hidden}
.item .l2{display:flex;gap:6px;flex-wrap:wrap;align-items:center;
          font-size:12px;color:var(--fraco)}

/* ---------------- detalhe ---------------- */
.det{display:grid;grid-template-columns:1fr 340px;gap:18px;align-items:start}
@media (max-width:980px){.det{grid-template-columns:1fr}}
.dados dt{font-size:11.5px;text-transform:uppercase;letter-spacing:.4px;color:var(--fraco);
          font-weight:700;margin-top:13px}
.dados dd{margin:3px 0 0;font-size:14.5px;white-space:pre-wrap}
.dados dd.fraco{color:var(--fraco)}
.dados{margin:0}
.acoes{display:flex;gap:8px;flex-wrap:wrap}

.timeline{list-style:none;margin:0;padding:0}
.timeline li{position:relative;padding:0 0 16px 22px;border-left:2px solid var(--linha)}
.timeline li:last-child{border-left-color:transparent;padding-bottom:0}
.timeline li::before{content:"";position:absolute;left:-6px;top:3px;width:10px;height:10px;
  border-radius:50%;background:var(--card);border:2px solid var(--azul2)}
.timeline li.t-criada::before{border-color:var(--fraco)}
.timeline li.t-enviada::before,.timeline li.t-reenviada::before{border-color:var(--azul2)}
.timeline li.t-corrigida::before{border-color:var(--verde)}
.timeline li.t-validada::before{border-color:var(--verde);background:var(--verde)}
.timeline li.t-fotos::before{border-color:var(--roxo)}
.timeline .q{font-size:11.5px;color:var(--fraco);font-variant-numeric:tabular-nums}
.timeline .d{font-size:14px;margin-top:1px}
.timeline .u{font-size:12px;color:var(--fraco)}

.galeria{display:grid;grid-template-columns:repeat(auto-fill,minmax(112px,1fr));gap:9px}
.foto{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;
      border:1px solid var(--linha);background:var(--chip);cursor:pointer}
.foto img{width:100%;height:100%;object-fit:cover;display:block}
.foto .x{position:absolute;top:4px;right:4px;background:rgba(0,0,0,.6);color:#fff;
  border:0;border-radius:6px;width:22px;height:22px;font-size:13px;padding:0;
  display:grid;place-items:center;opacity:0;transition:.12s}
.foto:hover .x{opacity:1}
.foto .leg{position:absolute;left:0;right:0;bottom:0;background:linear-gradient(
  transparent,rgba(0,0,0,.72));color:#fff;font-size:10.5px;padding:12px 6px 4px;
  text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grupo-fotos{margin-bottom:16px}
.grupo-fotos h3{font-size:12px;text-transform:uppercase;letter-spacing:.5px;
                color:var(--fraco);margin-bottom:8px}

/* ---------------- modal ---------------- */
.fundo{position:fixed;inset:0;background:rgba(10,14,20,.5);backdrop-filter:blur(2px);
  z-index:60;display:flex;align-items:center;justify-content:center;padding:16px;
  animation:fade .13s ease}
@keyframes fade{from{opacity:0}to{opacity:1}}
.modal{background:var(--card);border-radius:16px;box-shadow:var(--sombra-alta);
  width:100%;max-width:470px;max-height:calc(100vh - 32px);overflow:auto;
  animation:sobe .16s cubic-bezier(.2,.8,.3,1)}
@keyframes sobe{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}
.modal.largo{max-width:900px}
.modal .cabeca{padding:16px 18px 0;display:flex;align-items:center;gap:10px}
.modal .cabeca h3{font-size:16px;flex:1}
.modal .corpo{padding:14px 18px 4px}
.modal .pe{padding:12px 18px 16px;display:flex;gap:8px;justify-content:flex-end;
           flex-wrap:wrap;position:sticky;bottom:0;background:var(--card)}
.fechar{background:none;border:0;font-size:20px;color:var(--fraco);cursor:pointer;
        padding:2px 6px;border-radius:8px;line-height:1}
.fechar:hover{background:var(--chip);color:var(--texto)}
@media (max-width:560px){
  .fundo{align-items:flex-end;padding:0}
  .modal{max-width:none;border-radius:16px 16px 0 0;max-height:92vh}
  .modal .pe button{flex:1;justify-content:center}
}

.lupa{max-width:96vw;max-height:92vh;border-radius:10px;display:block;box-shadow:var(--sombra-alta)}

/* ---------------- avisos ---------------- */
.torradas{position:fixed;left:50%;transform:translateX(-50%);bottom:22px;z-index:90;
  display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none;
  width:calc(100% - 32px);max-width:420px}
.torrada{background:var(--texto);color:var(--bg);padding:11px 17px;border-radius:10px;
  font-size:13.5px;font-weight:600;box-shadow:var(--sombra-alta);
  animation:sobe .18s cubic-bezier(.2,.8,.3,1);text-align:center}
.torrada.ok{background:var(--verde);color:#fff}
.torrada.erro{background:var(--vermelho);color:#fff}

.aviso{padding:11px 14px;border-radius:10px;font-size:13.5px;margin:12px 0;
       border:1px solid var(--linha);background:var(--card)}
.aviso.erro{border-color:var(--vermelho);color:var(--vermelho);
            background:rgba(179,38,30,.06)}
.aviso.atencao{border-color:var(--ambar);color:var(--ambar);
               background:rgba(164,112,10,.07)}

/* ---------------- diversos ---------------- */
.spin{display:inline-block;width:14px;height:14px;border:2px solid var(--linha);
  border-top-color:var(--azul2);border-radius:50%;animation:gira .7s linear infinite;
  vertical-align:-2px}
@keyframes gira{to{transform:rotate(360deg)}}
.carregando{padding:50px;text-align:center;color:var(--fraco)}
.esconde{display:none !important}
code{background:var(--chip);padding:1px 5px;border-radius:5px;font-size:12.5px}
.mono{font-variant-numeric:tabular-nums}

/* botao flutuante no celular: "nova" sempre a um toque */
.fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:35;
  width:54px;height:54px;border-radius:50%;background:var(--azul);color:#fff;border:0;
  font-size:26px;box-shadow:var(--sombra-alta);display:none;place-items:center;padding:0}
@media (max-width:860px){.fab{display:grid}}
@media (prefers-color-scheme:dark){.fab{color:#12161c}}
