/* Plastik · tokens e componentes compartilhados do portal (representante + admin).
   Representante: representante-login.html, representante.html (rotas /novo-pedido
   e /tabela-precos), minhas-metas.html, meus-pedidos.html — cor por seção ajuda
   quem tem pouca familiaridade com telas a reconhecer onde está.
   Admin: portal-admin-login.html, portal-acessos.html, portal-pedidos.html,
   portal-relatorios.html, portal-campanhas.html, portal-produtos-fotos.html —
   time interno, navegação em barra fixa no topo (ver .pv-admin-nav abaixo). */

:root{
  --pv-blue:#1b3f96;
  --pv-blue-2:#2f5bc4;
  --pv-green:#0f8b5f;
  --pv-amber:#c76c1a;
  --pv-slate:#525d74;
  --pv-ink:#16213e;
  --pv-paper:#f4f7fb;
  --pv-surface:#ffffff;
  --pv-border:#dde4ee;
  --pv-muted:#64748b;
  --pv-radius-sm:10px;
  --pv-radius-md:16px;
  --pv-radius-pill:999px;
  --pv-shadow:0 10px 28px rgba(22,33,62,.08);
  --pv-nav-h:68px;
}

/* ===== Barra de navegação fixa embaixo ===== */
#pvNav{position:fixed;left:0;right:0;bottom:0;z-index:30000;background:var(--pv-surface);
  border-top:1px solid var(--pv-border);box-shadow:0 -6px 20px rgba(22,33,62,.08);
  padding-bottom:env(safe-area-inset-bottom)}
/* Some celular esconde a barra enquanto o teclado está aberto (digitando o pedido),
   em vez de deixá-la subir junto com o teclado e flutuar por cima dele. */
#pvNav.pv-hide{display:none}
#pvNav .pv-nav-row{display:flex;max-width:720px;margin:0 auto}
#pvNav a{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:3px;min-height:var(--pv-nav-h);text-decoration:none;color:#94a0b8;position:relative;
  font-size:11.5px;font-weight:700;letter-spacing:.01em}
#pvNav a svg{width:23px;height:23px;stroke:currentColor;fill:none;stroke-width:1.8}
#pvNav a::before{content:'';position:absolute;top:0;left:20%;right:20%;height:3px;border-radius:0 0 4px 4px;
  background:transparent;transition:background .15s ease}
#pvNav a[data-accent="blue"].active{color:var(--pv-blue)}
#pvNav a[data-accent="blue"].active::before{background:var(--pv-blue)}
#pvNav a[data-accent="green"].active{color:var(--pv-green)}
#pvNav a[data-accent="green"].active::before{background:var(--pv-green)}
#pvNav a[data-accent="amber"].active{color:var(--pv-amber)}
#pvNav a[data-accent="amber"].active::before{background:var(--pv-amber)}
#pvNav a[data-accent="slate"].active{color:var(--pv-slate)}
#pvNav a[data-accent="slate"].active::before{background:var(--pv-slate)}
#pvNav .pv-badge{position:absolute;top:2px;right:calc(50% - 20px);min-width:16px;height:16px;padding:0 4px;
  border-radius:999px;background:var(--pv-green);color:#fff;font-size:9.5px;font-weight:800;
  display:none;align-items:center;justify-content:center;line-height:1}
#pvNav .pv-badge.show{display:flex}
.pv-nav-spacer{height:calc(var(--pv-nav-h) + env(safe-area-inset-bottom))}
@media print{#pvNav,.pv-nav-spacer{display:none!important}}

/* ===== Cabeçalho leve compartilhado (login e páginas simples) ===== */
.pv-top{background:var(--pv-surface);border-bottom:1px solid var(--pv-border);color:var(--pv-ink);
  padding:12px 18px;display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:20000}
.pv-top img{height:30px}
.pv-top b{font-size:16px;font-weight:800;letter-spacing:-.01em;color:var(--pv-blue)}
.pv-top .pv-spacer{flex:1}
.pv-top .pv-pill{color:var(--pv-muted);font-size:12px;font-weight:600}

/* ===== Componentes de conteúdo reutilizáveis ===== */
.pv-page{background:var(--pv-paper);min-height:100vh}
.pv-wrap{max-width:720px;margin:0 auto;padding:18px 16px 24px}
.pv-hero{background:linear-gradient(135deg,var(--pv-blue),var(--pv-blue-2));color:#fff;
  border-radius:var(--pv-radius-md);padding:20px;margin-bottom:16px}
.pv-hero h1{margin:2px 0 4px;font-size:21px;font-weight:800;letter-spacing:-.01em}
.pv-hero p{margin:0;font-size:13px;color:#dbe6ff;line-height:1.4}
.pv-card{background:var(--pv-surface);border:1px solid var(--pv-border);border-radius:var(--pv-radius-md);
  padding:18px;margin-bottom:14px}
.pv-card h2{margin:0 0 10px;font-size:16px;font-weight:800;color:var(--pv-ink)}
.pv-muted{color:var(--pv-muted);font-size:12.5px;line-height:1.4}
.pv-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;
  padding:0 18px;border-radius:var(--pv-radius-sm);font-size:15px;font-weight:700;border:1px solid var(--pv-border);
  background:var(--pv-surface);color:var(--pv-ink);text-decoration:none;cursor:pointer}
.pv-btn-primary{background:linear-gradient(135deg,var(--pv-blue),var(--pv-blue-2));color:#fff;border-color:transparent;
  box-shadow:0 6px 16px rgba(27,63,150,.25)}
.pv-btn-ghost{background:transparent;border-color:rgba(255,255,255,.4);color:#fff}
.pv-field label{display:block;font-size:12.5px;font-weight:700;color:var(--pv-muted);margin-bottom:6px}
.pv-field input{width:100%;min-height:48px;border:1px solid var(--pv-border);border-radius:var(--pv-radius-sm);
  padding:0 13px;font-size:16px;color:var(--pv-ink);background:var(--pv-surface)}
.pv-field input:focus{outline:2px solid var(--pv-blue);outline-offset:1px}
.pv-step{display:flex;align-items:center;gap:10px;margin:0 0 10px}
.pv-step .pv-step-n{width:26px;height:26px;border-radius:50%;background:var(--pv-blue);color:#fff;
  font-size:13px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.pv-step h2{margin:0;font-size:16px;font-weight:800;color:var(--pv-ink)}

/* ===== Ajustes no representante.html existente (fase 1 da repaginação) ===== */
/* A navegação e a troca de aba interna (Tabela de preços / Novo pedido) viram
   a barra fixa embaixo (#pvNav); a marcação antiga fica só como mecanismo
   interno (showTab), sem exibir sua própria barra. */
.tabs{display:none!important}
/* Evita que o botão flutuante de carrinho fique embaixo da nova barra fixa. */
body .plastik-floating-cart{bottom:calc(var(--pv-nav-h) + 14px + env(safe-area-inset-bottom))!important}

/* ===== Fase 2: barra de navegação fixa no topo, telas administrativas ===== */
#pvAdminNav{position:sticky;top:0;z-index:20000;background:var(--pv-surface);
  border-bottom:1px solid var(--pv-border);box-shadow:0 2px 10px rgba(22,33,62,.05)}
#pvAdminNav .pv-admin-inner{max-width:1240px;margin:0 auto;padding:12px 18px;
  display:flex;align-items:center;gap:16px;flex-wrap:wrap}
#pvAdminNav img{height:28px}
#pvAdminNav .pv-admin-title{font-size:15px;font-weight:800;color:var(--pv-ink);white-space:nowrap}
#pvAdminNav .pv-admin-links{display:flex;gap:8px;flex-wrap:wrap;flex:1}
#pvAdminNav a{text-decoration:none;border:1px solid var(--pv-border);color:var(--pv-ink);
  background:var(--pv-surface);border-radius:var(--pv-radius-sm);padding:9px 13px;
  font-size:13px;font-weight:700;white-space:nowrap}
#pvAdminNav a.active{background:var(--pv-blue);color:#fff;border-color:var(--pv-blue)}
#pvAdminNav .pv-admin-logout{border:1px solid var(--pv-border);background:var(--pv-paper);
  color:var(--pv-ink);border-radius:var(--pv-radius-sm);padding:9px 13px;font-size:13px;
  font-weight:700;cursor:pointer}
@media(max-width:760px){#pvAdminNav .pv-admin-inner{padding:10px 12px}#pvAdminNav a,
  #pvAdminNav .pv-admin-logout{padding:8px 10px;font-size:12px}}
.pv-admin-page{background:var(--pv-paper);min-height:100vh}
.pv-admin-banner{border:1px solid var(--pv-border);background:var(--pv-surface);color:var(--pv-ink);
  border-radius:var(--pv-radius-md);padding:12px 16px;margin:16px auto 0;max-width:1240px;font-size:13px}
.pv-admin-banner.warn{background:#fff7ed;border-color:#f2c58d;color:#9a3412}
@media print{#pvAdminNav{display:none!important}}
