
:root{
  --jf-bg:#070b14;
  --jf-surface:#0f1726;
  --jf-surface-2:#151f33;
  --jf-border:#26334b;
  --jf-text:#f7f9ff;
  --jf-muted:#a8b2c7;
  --jf-accent:#7c5cff;
  --jf-accent-2:#4f8cff;
  --jf-success:#2bd49f;
  --jf-warning:#f4bf58;
  --jf-danger:#ff6b7d;
}
body.auth-locked{overflow:hidden}
body.auth-locked .app{visibility:hidden}
.auth-gate{
  position:fixed;inset:0;z-index:9999;display:grid;place-items:center;padding:20px;
  background:
    radial-gradient(circle at 15% 10%,rgba(124,92,255,.24),transparent 32%),
    radial-gradient(circle at 85% 90%,rgba(79,140,255,.18),transparent 32%),
    linear-gradient(145deg,#060912,#0b1120 60%,#10182a);
  color:var(--jf-text)
}
.auth-gate[hidden]{display:none}
.auth-shell{width:min(980px,100%);display:grid;grid-template-columns:1.05fr .95fr;border:1px solid rgba(255,255,255,.09);border-radius:30px;overflow:hidden;background:rgba(11,17,31,.94);box-shadow:0 34px 90px rgba(0,0,0,.42)}
.auth-brand{padding:42px;display:flex;flex-direction:column;justify-content:space-between;min-height:600px;background:
  radial-gradient(circle at 75% 15%,rgba(255,255,255,.16),transparent 24%),
  linear-gradient(145deg,#4f34d8,#6f52ff 52%,#246fd8)}
.auth-logo{display:flex;align-items:center;gap:14px}
.auth-logo-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:18px;background:#fff;color:#4f34d8;font-weight:1000;font-size:20px;box-shadow:0 16px 35px rgba(0,0,0,.18)}
.auth-brand h1{margin:26px 0 10px;font-size:clamp(42px,6vw,72px);line-height:.94;letter-spacing:-.055em}
.auth-brand p{max-width:430px;margin:0;color:rgba(255,255,255,.82);font-size:17px;line-height:1.6}
.auth-benefits{display:grid;gap:12px;margin-top:32px}
.auth-benefit{display:flex;align-items:center;gap:10px;padding:13px 15px;border:1px solid rgba(255,255,255,.15);border-radius:16px;background:rgba(255,255,255,.09)}
.auth-benefit b{display:grid;place-items:center;width:27px;height:27px;border-radius:9px;background:rgba(255,255,255,.15)}
.auth-card{padding:38px;background:var(--jf-surface)}
.auth-tabs{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding:6px;border:1px solid var(--jf-border);border-radius:16px;background:#0a111f}
.auth-tab{border:0;border-radius:11px;padding:11px 10px;font-weight:900;color:var(--jf-muted);background:transparent}
.auth-tab.active{color:#fff;background:linear-gradient(135deg,var(--jf-accent),var(--jf-accent-2))}
.auth-panel{display:none;padding-top:24px}
.auth-panel.active{display:block}
.auth-panel h2{margin:0 0 7px;font-size:25px}
.auth-panel>p{margin:0 0 22px;color:var(--jf-muted);line-height:1.55}
.jf-field{display:grid;gap:7px;margin-bottom:13px}
.jf-field label{font-size:12px;font-weight:850;color:var(--jf-muted)}
.jf-input,.jf-select,.jf-textarea{
  width:100%;min-height:47px;padding:11px 13px;border:1px solid var(--jf-border);border-radius:14px;
  outline:none;color:var(--jf-text);background:#0a111f
}
.jf-input:focus,.jf-select:focus,.jf-textarea:focus{border-color:var(--jf-accent);box-shadow:0 0 0 4px rgba(124,92,255,.15)}
.jf-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.jf-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:46px;padding:11px 16px;border:0;border-radius:14px;
  font-weight:900;cursor:pointer
}
.jf-btn-primary{color:#fff;background:linear-gradient(135deg,var(--jf-accent),var(--jf-accent-2));box-shadow:0 12px 25px rgba(77,61,211,.28)}
.jf-btn-secondary{color:var(--jf-text);border:1px solid var(--jf-border);background:#121b2d}
.jf-btn-danger{color:#fff;background:var(--jf-danger)}
.jf-btn-success{color:#061b14;background:var(--jf-success)}
.jf-btn-block{width:100%}
.jf-actions{display:grid;gap:9px;margin-top:18px}
.jf-help{margin-top:14px;color:var(--jf-muted);font-size:12px;line-height:1.55}
.jf-message{display:none;margin:13px 0;padding:12px 14px;border-radius:13px;font-size:13px;line-height:1.5}
.jf-message.show{display:block}
.jf-message.error{color:#ffdbe0;background:rgba(255,107,125,.13);border:1px solid rgba(255,107,125,.24)}
.jf-message.success{color:#caffef;background:rgba(43,212,159,.12);border:1px solid rgba(43,212,159,.23)}
.jf-message.info{color:#dbe8ff;background:rgba(79,140,255,.12);border:1px solid rgba(79,140,255,.24)}
.jf-demo-note{margin-top:18px;padding-top:16px;border-top:1px solid var(--jf-border)}
.jf-demo-note strong{display:block;margin-bottom:5px}
.plan-banner{
  display:none;position:sticky;top:89px;z-index:29;align-items:center;justify-content:space-between;gap:12px;
  margin:12px 0;padding:11px 14px;border:1px solid rgba(124,92,255,.22);border-radius:15px;color:#e7e1ff;background:rgba(80,55,170,.93);backdrop-filter:blur(12px)
}
.plan-banner.show{display:flex}
.plan-banner small{color:rgba(255,255,255,.78)}
.plan-banner .jf-btn{min-height:36px;padding:7px 11px;font-size:12px}
.account-menu{
  position:fixed;right:18px;top:84px;z-index:1000;display:none;width:min(330px,calc(100% - 36px));
  padding:16px;border:1px solid var(--jf-border);border-radius:18px;background:var(--jf-surface);color:var(--jf-text);box-shadow:0 24px 65px rgba(0,0,0,.38)
}
.account-menu.open{display:block}
.account-menu h3{margin:0;font-size:17px}
.account-menu p{margin:5px 0 14px;color:var(--jf-muted);font-size:12px}
.account-menu-grid{display:grid;gap:8px}
.account-menu .jf-btn{justify-content:flex-start}
.summary-grid .card[data-go-tab],.hero[data-go-tab]{cursor:pointer;transition:transform .18s,border-color .18s,box-shadow .18s}
.summary-grid .card[data-go-tab]:hover,.hero[data-go-tab]:hover{transform:translateY(-3px);border-color:rgba(109,40,217,.35);box-shadow:0 22px 50px rgba(67,35,110,.16)}
.locked-feature{position:relative;opacity:.58}
.locked-feature:after{content:"Premium";position:absolute;right:8px;top:7px;padding:3px 7px;border-radius:999px;color:#fff;background:#7c5cff;font-size:9px;font-weight:900}
.admin-only{display:none!important}
body.is-admin .admin-only{display:inline-flex!important}
.admin-panel-dark{color:var(--jf-text);background:var(--jf-surface)!important;border-color:var(--jf-border)!important}
.admin-panel-dark .table-wrap{border-color:var(--jf-border);background:#0a111f}
.admin-panel-dark table{min-width:1080px}
.admin-panel-dark th{color:var(--jf-muted);background:#0c1423;border-color:var(--jf-border)}
.admin-panel-dark td{color:var(--jf-text);border-color:var(--jf-border)}
.admin-panel-dark tbody tr:hover{background:#121b2d}
.admin-toolbar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.admin-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:11px;margin-bottom:15px}
.admin-stat{padding:15px;border:1px solid var(--jf-border);border-radius:16px;background:#0a111f}
.admin-stat span{display:block;color:var(--jf-muted);font-size:11px;text-transform:uppercase;font-weight:900}
.admin-stat strong{display:block;margin-top:7px;font-size:24px}
.admin-action-row{display:flex;flex-wrap:wrap;gap:5px}
.admin-action-row button{min-height:31px;padding:6px 8px;border:1px solid var(--jf-border);border-radius:9px;color:var(--jf-text);background:#121b2d;font-size:11px;font-weight:800}
.admin-action-row button:hover{border-color:var(--jf-accent)}
.jf-modal{
  position:fixed;inset:0;z-index:10000;display:none;place-items:center;padding:18px;background:rgba(3,6,12,.76);backdrop-filter:blur(8px)
}
.jf-modal.open{display:grid}
.jf-modal-card{width:min(560px,100%);max-height:90vh;overflow:auto;padding:24px;border:1px solid var(--jf-border);border-radius:24px;color:var(--jf-text);background:var(--jf-surface);box-shadow:0 30px 90px rgba(0,0,0,.45)}
.jf-modal-card h2{margin:0 0 8px}
.jf-modal-card>p{margin:0 0 18px;color:var(--jf-muted);line-height:1.55}
.jf-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.jf-plan-card{padding:15px;border:1px solid var(--jf-border);border-radius:16px;background:#0a111f}
.jf-plan-card strong{display:block;font-size:17px}
.jf-plan-card small{display:block;margin-top:7px;color:var(--jf-muted);line-height:1.45}
.sync-pill{display:inline-flex;align-items:center;gap:6px}
.sync-dot{width:8px;height:8px;border-radius:50%;background:#f4bf58}
.sync-pill.synced .sync-dot{background:#2bd49f}
.sync-pill.error .sync-dot{background:#ff6b7d}
@media(max-width:800px){
  .auth-shell{grid-template-columns:1fr}
  .auth-brand{display:none}
  .auth-card{padding:25px}
  .jf-grid-2,.jf-plan-grid{grid-template-columns:1fr}
  .admin-stat-grid{grid-template-columns:1fr 1fr}
  .plan-banner{top:80px;align-items:flex-start}
}


/* V2 — catálogo comercial e preços editáveis */
.jf-plan-card.featured{border-color:rgba(124,92,255,.7);background:linear-gradient(180deg,rgba(124,92,255,.10),#0a111f)}
.jf-plan-tag{display:inline-flex;margin-bottom:9px;padding:4px 8px;border-radius:999px;color:#dcd5ff;background:rgba(124,92,255,.16);font-size:9px;font-weight:950;text-transform:uppercase;letter-spacing:.05em}
.jf-plan-price{margin-top:9px;color:var(--jf-text);font-size:20px;font-weight:950}
.jf-plan-price small{display:inline;color:var(--jf-muted);font-size:11px;font-weight:700}
.jf-plan-alt{margin-top:5px;color:#dce4f5;font-size:12px;font-weight:800}
.jf-plan-promo{margin-top:7px;padding:7px 9px;border-radius:10px;color:#071a13;background:var(--jf-success);font-size:11px;font-weight:950}
#adminSalesMessage{min-height:92px;resize:vertical}
.account-menu a.jf-btn{text-decoration:none}


/* V5 — cadastro manual e atendimento via WhatsApp */
.admin-create-client-panel {
  margin-bottom: 16px;
  border-color: rgba(92, 132, 255, .45);
}
.admin-password-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
}
.admin-password-row .btn {
  min-width: 76px;
}
#requestWhatsappBtn {
  border-color: rgba(39, 199, 142, .55);
}
@media (max-width: 640px) {
  .admin-password-row {
    grid-template-columns: 1fr;
  }
  .admin-password-row .btn {
    width: 100%;
  }
}


/* V6 — confirmação visual e cadastro direto */
.admin-v6-heading{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  margin-bottom:16px;
  padding:18px;
  border:1px solid rgba(79,140,255,.42);
  border-radius:20px;
  color:var(--jf-text);
  background:linear-gradient(135deg,rgba(124,92,255,.13),rgba(79,140,255,.08));
}
.admin-v6-heading h2{margin:7px 0 5px}
.admin-v6-heading p{margin:0;color:var(--jf-muted)}
.admin-v6-version{
  display:inline-flex;
  padding:5px 9px;
  border-radius:999px;
  color:#dcd5ff;
  background:rgba(124,92,255,.18);
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
}
#requestWhatsappSuccessLink[hidden]{display:none!important}
@media(max-width:640px){
  .admin-v6-heading{align-items:stretch;flex-direction:column}
  .admin-v6-heading .btn{width:100%}
}


/* V8 — botão de mostrar e ocultar senha */
.password-input-wrap{
  position:relative;
  display:flex;
  width:100%;
  align-items:center;
}
.password-input-wrap > input{
  width:100%;
  padding-right:48px !important;
}
.password-toggle{
  position:absolute;
  top:50%;
  right:7px;
  width:38px;
  height:38px;
  transform:translateY(-50%);
  display:grid;
  place-items:center;
  border:0;
  border-radius:10px;
  color:var(--jf-muted,#aeb8ca);
  background:transparent;
  cursor:pointer;
  touch-action:manipulation;
}
.password-toggle:hover,
.password-toggle:focus-visible{
  color:var(--jf-text,#ffffff);
  background:rgba(124,92,255,.13);
  outline:none;
}
.password-toggle svg{
  width:21px;
  height:21px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.9;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.password-eye-closed{display:none}
.password-toggle[aria-pressed="true"] .password-eye-open{display:none}
.password-toggle[aria-pressed="true"] .password-eye-closed{display:block}
.admin-password-row .password-input-wrap{
  min-width:0;
}
@media(max-width:640px){
  .password-toggle{
    width:42px;
    height:42px;
    right:4px;
  }
  .password-input-wrap > input{
    padding-right:52px !important;
  }
}
