/* ============================================================
   base.css - Estilos base do app (usa as variaveis do tema.css)
   Contem: reset, tela de login, barra do topo, botoes, avisos.
   ============================================================ */
* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; }
body {
  font-family: var(--sans);
  background: var(--bg);
  color: var(--tinta);
  font-size: 14px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
button, input, select { font-family: inherit; font-size: inherit; }

/* ---------- Botoes ---------- */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  border: 1px solid var(--borda); background: var(--painel); color: var(--tinta);
  padding: 8px 14px; border-radius: var(--raio-sm); cursor: pointer;
  font-family: var(--mono); font-size: 12px; transition: .12s;
}
.btn:hover { border-color: var(--tinta3); }
.btn.primario { background: var(--vtv-laranja); border-color: var(--vtv-laranja); color: #fff; font-weight: 700; }
.btn.primario:hover { filter: brightness(1.05); }

/* ---------- Tela de login ---------- */
.tela-login {
  position: fixed; inset: 0; display: flex; align-items: center; justify-content: center;
  padding: 20px; background: var(--bg); z-index: 100;
}
.login-wrap { width: 440px; max-width: 94vw; display: flex; flex-direction: column; gap: 14px; }
.login-topo {
  background: var(--escuro); color: #F0F0E8; border: 1px solid #000;
  border-radius: var(--raio); padding: 18px 22px; text-align: center; position: relative; overflow: hidden;
}
.login-topo::after { content:''; position:absolute; left:0; right:0; bottom:0; height:3px; background: var(--vtv-laranja); }
.login-topo .t { font-family: var(--mono); font-weight: 700; font-size: 16px; letter-spacing: .5px; }
.login-topo .s { font-family: var(--mono); font-size: 9px; letter-spacing: 1.5px; color: #A8A89C; margin-top: 6px; }
.login-card {
  background: var(--painel); border: 1px solid var(--borda); border-radius: var(--raio);
  padding: 22px 22px 20px; box-shadow: var(--sombra);
}
.campo { margin-bottom: 12px; }
.campo label { display: block; font-family: var(--mono); font-size: 10px; letter-spacing: .5px; color: var(--tinta3); text-transform: uppercase; margin-bottom: 5px; }
.campo input {
  width: 100%; padding: 10px 12px; border: 1px solid var(--borda); border-radius: var(--raio-sm);
  background: var(--painel2); color: var(--tinta);
}
.campo input:focus { outline: none; border-color: var(--vtv-laranja); }
.login-links { display: flex; justify-content: center; margin-top: 10px; }
.login-links a { font-family: var(--mono); font-size: 11px; color: var(--tinta3); cursor: pointer; text-decoration: none; }
.login-links a:hover { color: var(--vtv-laranja); }
.login-msg { margin-top: 12px; font-family: var(--mono); font-size: 11px; min-height: 14px; text-align: center; }
.login-msg.err { color: var(--pend); }
.login-msg.info { color: var(--tinta2); }

/* ---------- App (pos-login) ---------- */
#app { display: none; min-height: 100%; }
.topo {
  display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
  background: var(--painel); border-bottom: 1px solid var(--borda); padding: 12px 18px;
}
.topo .marca { font-family: var(--mono); font-weight: 700; font-size: 15px; }
.topo .marca small { display: block; font-weight: 400; font-size: 9px; letter-spacing: 1px; color: var(--tinta3); }
.topo .cresce { flex: 1; }
.topo .usuario { font-family: var(--mono); font-size: 12px; background: var(--painel2); border: 1px solid var(--borda); border-radius: var(--raio-sm); padding: 6px 10px; }
.conteudo { padding: 24px 18px; max-width: 1100px; margin: 0 auto; }
.placeholder {
  border: 1px dashed var(--borda); border-radius: var(--raio); padding: 40px; text-align: center;
  color: var(--tinta3); font-family: var(--mono);
}
.placeholder .fase { display:inline-block; margin-top:10px; background: var(--vtv-laranja); color:#fff; font-size:11px; padding:4px 10px; border-radius:4px; }

/* faixinha de sincronizacao (offline) - aparece na Fase 3.5 */
.sync-bar { font-family: var(--mono); font-size: 11px; color: var(--tinta3); padding: 4px 18px; border-bottom: 1px solid var(--borda); }
.sync-bar .ponto { display:inline-block; width:7px; height:7px; border-radius:50%; background: var(--ok); margin-right:6px; vertical-align: middle; }

@media (max-width: 520px) {
  .login-wrap { width: 100%; }
  .topo { padding: 10px 12px; }
  .conteudo { padding: 16px 12px; }
}
