/*
 * A Central por fora.
 *
 * Mesma paleta do painel dentro do Premiere (extensao/comum/style.css): quem
 * compra vê a mesma cara no site e no plugin. Marca é reconhecimento, e cor
 * diferente no site faria a pessoa duvidar se está no lugar certo.
 */

:root {
  --bg:          #1c1c1c;
  --painel:      #262626;
  --painel-alt:  #222;
  --cartao:      #2f2f2f;
  --cartao-h:    #3a3a3a;
  --entrada:     #191919;
  --borda:       #3a3a3a;
  --borda-suave: #2f2f2f;

  --texto:       #e8e8e8;
  --fraco:       #9a9a9a;
  --tenue:       #6e6e6e;

  --acento:      #ff7a00;
  --acento-h:    #ff9530;
  --acento-fraco: rgba(255, 122, 0, .13);
  --acento-borda: rgba(255, 122, 0, .55);

  --ok:     #4caf50;
  --erro:   #f4665c;
  --alerta: #d9a441;

  --raio: 6px;
  --raio-sm: 4px;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  background: var(--bg);
  color: var(--texto);
  font: 15px/1.55 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
}

a { color: var(--acento-h); text-decoration: none; }
a:hover { text-decoration: underline; }

/* --- estrutura ---------------------------------------------------------- */
header.topo {
  background: var(--painel-alt);
  border-bottom: 1px solid var(--borda);
  padding: 14px 20px;
  display: flex; align-items: center; gap: 14px;
  position: sticky; top: 0; z-index: 5;
}
header.topo .marca { font-weight: 700; letter-spacing: .2px; }
header.topo .marca span { color: var(--acento); }
header.topo .fita {
  font-size: 12px; color: var(--fraco); border-left: 1px solid var(--borda);
  padding-left: 14px;
}
header.topo .direita { margin-left: auto; display: flex; align-items: center; gap: 10px; }

main { max-width: 1000px; margin: 0 auto; padding: 22px 20px 60px; }
main.largo { max-width: 1240px; }

section.bloco {
  background: var(--painel);
  border: 1px solid var(--borda-suave);
  border-radius: var(--raio);
  padding: 18px 20px;
  margin-bottom: 18px;
}
section.bloco > h2 {
  margin: 0 0 4px; font-size: 15px; letter-spacing: .3px;
  text-transform: uppercase; color: var(--fraco); font-weight: 600;
}
section.bloco > h2 + p.dica { margin: 0 0 16px; }
p.dica { color: var(--tenue); font-size: 13px; margin: 0 0 14px; }

.linha { display: flex; gap: 12px; flex-wrap: wrap; align-items: center; }
/* Largura em CLASSE e não em atributo style: a CSP desta página é `style-src
   'self'` sem unsafe-inline, e atributo style é bloqueado junto com o resto —
   o layout sumia em silêncio. */
.cresce { flex: 1 1 200px; min-width: 180px; }
.estreito { flex: 0 0 110px; }
input.curto { width: 90px; }
.espaco { margin-top: 16px; }

/* --- botões ------------------------------------------------------------- */
button, .botao {
  font: inherit; font-size: 14px;
  background: var(--cartao); color: var(--texto);
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  padding: 8px 14px; cursor: pointer;
  transition: background .12s ease, border-color .12s ease;
}
button:hover, .botao:hover { background: var(--cartao-h); text-decoration: none; }
button:disabled { opacity: .45; cursor: default; }
button.forte {
  background: var(--acento); border-color: var(--acento);
  color: #191100; font-weight: 600;
}
button.forte:hover { background: var(--acento-h); border-color: var(--acento-h); }
button.risco { border-color: rgba(244, 102, 92, .5); color: #ffb4ae; }
button.risco:hover { background: #3d2222; }
button.miudo { padding: 5px 10px; font-size: 13px; }

/* --- campos ------------------------------------------------------------- */
label.campo { display: block; margin-bottom: 12px; }
label.campo > span { display: block; font-size: 12px; color: var(--fraco); margin-bottom: 5px; }

input[type=text], input[type=email], input[type=password], input[type=number], input[type=date], select, textarea {
  font: inherit; font-size: 14px;
  width: 100%;
  background: var(--entrada); color: var(--texto);
  border: 1px solid var(--borda);
  border-radius: var(--raio-sm);
  padding: 9px 11px;
}
input:focus, select:focus, textarea:focus {
  outline: none; border-color: var(--acento-borda);
  box-shadow: 0 0 0 2px var(--acento-fraco);
}
textarea { resize: vertical; min-height: 64px; }

/* o olho da senha */
.senha-caixa { position: relative; }
.senha-caixa input { padding-right: 42px; }
.senha-caixa button.olho {
  position: absolute; right: 4px; top: 4px; bottom: 4px;
  width: 34px; padding: 0; background: none; border: none; color: var(--fraco);
  font-size: 15px; line-height: 1;
}
.senha-caixa button.olho:hover { color: var(--texto); background: none; }

/* --- selos e avisos ----------------------------------------------------- */
.selo {
  display: inline-block; font-size: 12px; font-weight: 600;
  padding: 3px 9px; border-radius: 20px;
  border: 1px solid var(--borda); color: var(--fraco);
}
.selo.ok    { color: #b8e6bd; border-color: rgba(76, 175, 80, .5); background: rgba(76, 175, 80, .12); }
.selo.ruim  { color: #ffb4ae; border-color: rgba(244, 102, 92, .5); background: rgba(244, 102, 92, .12); }
.selo.atencao { color: #f0d9a3; border-color: rgba(217, 164, 65, .5); background: rgba(217, 164, 65, .12); }

.aviso {
  border-radius: var(--raio-sm); padding: 10px 13px; font-size: 14px;
  border: 1px solid var(--borda); background: var(--painel-alt); margin-bottom: 14px;
}
.aviso.erro { border-color: rgba(244, 102, 92, .5); background: #3d2222; color: #ffd6d2; }
.aviso.bom  { border-color: rgba(76, 175, 80, .45); background: #06231f; color: #cfeccf; }
.aviso.atencao { border-color: rgba(217, 164, 65, .5); background: #2d2517; color: #f2e3c4; }
.aviso[hidden] { display: none; }

/* --- tabelas ------------------------------------------------------------ */
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th {
  text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .4px;
  color: var(--tenue); font-weight: 600; padding: 8px 10px; border-bottom: 1px solid var(--borda);
}
td { padding: 9px 10px; border-bottom: 1px solid var(--borda-suave); vertical-align: middle; }
tr.clicavel { cursor: pointer; }
tr.clicavel:hover td { background: var(--painel-alt); }
tr.escolhida td { background: var(--acento-fraco); }
.rolagem { overflow-x: auto; }
td.numero, th.numero { text-align: right; font-variant-numeric: tabular-nums; }

/* --- números do resumo -------------------------------------------------- */
.numeros { display: grid; grid-template-columns: repeat(auto-fit, minmax(132px, 1fr)); gap: 10px; }
.numeros .caixa {
  background: var(--cartao); border: 1px solid var(--borda-suave);
  border-radius: var(--raio-sm); padding: 12px 14px;
}
.numeros .caixa b { display: block; font-size: 23px; font-weight: 700; line-height: 1.2; }
.numeros .caixa span { font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: var(--tenue); }
.numeros .caixa.dinheiro b { font-size: 19px; white-space: nowrap; }
.numeros .caixa.destaque b { color: var(--acento); }
.numeros .caixa.perigo b { color: var(--erro); }

/* --- cartões de produto ------------------------------------------------- */
.produtos { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; }
.produto {
  background: var(--cartao); border: 1px solid var(--borda-suave);
  border-radius: var(--raio); padding: 15px 16px;
  display: flex; flex-direction: column; gap: 9px;
}
.produto h3 { margin: 0; font-size: 15px; }
.produto .resumo { color: var(--fraco); font-size: 13px; margin: 0; flex: 1; }
.produto .pe { display: flex; align-items: center; gap: 10px; margin-top: 2px; }
.produto .versao { font-size: 12px; color: var(--tenue); font-variant-numeric: tabular-nums; }
.produto .notas { font-size: 12px; color: var(--tenue); border-top: 1px solid var(--borda-suave); padding-top: 8px; }

/* --- máquinas ----------------------------------------------------------- */
.maquina {
  display: flex; gap: 12px; align-items: flex-start;
  padding: 12px 0; border-bottom: 1px solid var(--borda-suave);
}
.maquina:last-child { border-bottom: none; }
.maquina .corpo { flex: 1; min-width: 0; }
.maquina .nome { font-weight: 600; }
.maquina .detalhe { font-size: 12.5px; color: var(--fraco); }
.maquina .tempo { font-size: 12px; color: var(--tenue); }
.maquina .aqui { color: var(--acento); font-size: 12px; font-weight: 600; }

/* --- entrada (login) ---------------------------------------------------- */
.entrada { max-width: 380px; margin: 8vh auto 0; }
.entrada h1 { font-size: 20px; margin: 0 0 4px; }
.entrada .sub { color: var(--fraco); font-size: 13.5px; margin: 0 0 22px; }
.entrada .pe { margin-top: 16px; font-size: 13px; color: var(--tenue); text-align: center; }

.carregando { color: var(--tenue); font-size: 13px; padding: 8px 0; }
code.link {
  display: block; background: var(--entrada); border: 1px solid var(--borda);
  border-radius: var(--raio-sm); padding: 9px 11px; font-size: 12.5px;
  word-break: break-all; margin: 8px 0; color: #cfe3ff;
}
.oculto { display: none !important; }
