/* ============================================================
   carrypact · auth UI (gate overlay, topbar, login, admin)
   Paleta alinhada ao CaryPact (dark + roxo/azul)
   ============================================================ */
:root{
  --a-bg:#0a0710; --a-panel:#150e22; --a-line:rgba(255,255,255,.09);
  --a-ink:#EDE9F5; --a-mut:#9C93B0; --a-acc:#8B5CF6; --a-acc2:#22D3EE;
  --a-ok:#34D399; --a-warn:#FBBF24; --a-bad:#F87171;
  --a-grad:linear-gradient(135deg,#8B5CF6,#6366F1 55%,#22D3EE);
  --a-sans:'Inter',system-ui,-apple-system,'Segoe UI',Roboto,sans-serif;
}

/* ---------- gate overlay ---------- */
#authGate{position:fixed;inset:0;z-index:99999;display:flex;align-items:center;justify-content:center;
  background:radial-gradient(ellipse at 50% 30%,#1a1030,#0a0710 75%);font-family:var(--a-sans);color:var(--a-ink)}
#authGate .ag-box{text-align:center;max-width:400px;padding:40px}
#authGate .ag-spin{width:38px;height:38px;margin:0 auto 22px;border-radius:50%;
  border:3px solid rgba(139,92,246,.25);border-top-color:var(--a-acc);animation:agspin .8s linear infinite}
@keyframes agspin{to{transform:rotate(360deg)}}
#authGate .ag-msg{font-size:1rem;line-height:1.6;color:var(--a-mut)}
#authGate .ag-msg b{color:var(--a-ink);font-size:1.25rem;font-weight:700}
#authGate .ag-actions{margin-top:26px;justify-content:center;gap:12px;flex-wrap:wrap}
#authGate .ag-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;background:var(--a-grad);color:#0a0710;border:none;
  padding:13px 26px;border-radius:10px;font-family:var(--a-sans);font-weight:700;font-size:.9rem;cursor:pointer;letter-spacing:.02em;text-decoration:none}
#authGate .ag-btn.ag-wa{background:#25D366;color:#04120F;box-shadow:0 10px 26px rgba(37,211,102,.3)}
#authGate .ag-btn.ag-wa:hover{transform:translateY(-2px)}
#authGate .ag-btn.ag-ghost{background:transparent;border:1px solid var(--a-line);color:var(--a-mut);font-weight:600}
#authGate .ag-btn.ag-ghost:hover{color:var(--a-bad);border-color:var(--a-bad)}

/* ---------- topbar (apresentação) — canto inferior-direito, não colide com a nav ---------- */
#ccTopbar{position:fixed;bottom:18px;right:18px;left:auto;top:auto;z-index:9997;pointer-events:none}
#ccTopbar .cc-tb-in{display:flex;align-items:center;justify-content:flex-end;gap:8px;padding:0;pointer-events:none}
#ccTopbar .cc-pill,#ccTopbar .cc-tb-link,#ccTopbar .cc-tb-out{pointer-events:auto;box-shadow:0 6px 20px rgba(0,0,0,.35)}
@media(max-width:600px){#ccTopbar{bottom:12px;right:12px}}
.cc-pill{font-family:var(--a-sans);font-size:.72rem;font-weight:600;letter-spacing:.04em;color:var(--a-ink);
  padding:6px 13px;border-radius:999px;border:1px solid var(--a-line);background:rgba(20,14,34,.75);backdrop-filter:blur(8px)}
.cc-pill.admin{background:var(--a-grad);color:#0a0710;border:none}
.cc-tb-link{font-family:var(--a-sans);font-size:.72rem;font-weight:600;color:var(--a-ink);text-decoration:none;
  padding:6px 13px;border-radius:999px;border:1px solid var(--a-line);background:rgba(20,14,34,.75);backdrop-filter:blur(8px);transition:.2s}
.cc-tb-link:hover{border-color:var(--a-acc)}
.cc-tb-out{font-family:var(--a-sans);font-size:.72rem;font-weight:600;color:var(--a-mut);cursor:pointer;
  padding:6px 13px;border-radius:999px;border:1px solid var(--a-line);background:rgba(20,14,34,.75);backdrop-filter:blur(8px);transition:.2s}
.cc-tb-out:hover{color:var(--a-bad);border-color:var(--a-bad)}

/* ---------- login + admin shared page ---------- */
.auth-page{min-height:100vh;margin:0;font-family:var(--a-sans);color:var(--a-ink);
  background:radial-gradient(ellipse at 50% -10%,#1e1440,#0a0710 70%);
  display:flex;align-items:center;justify-content:center;padding:24px}
.auth-card{width:min(400px,94vw);background:linear-gradient(180deg,rgba(255,255,255,.045),rgba(255,255,255,.01));
  border:1px solid var(--a-line);border-radius:20px;padding:40px 34px;box-shadow:0 30px 80px rgba(0,0,0,.5)}
.auth-logo{width:150px;display:block;margin:0 auto 8px}
.auth-h{text-align:center;font-size:.78rem;letter-spacing:.28em;text-transform:uppercase;color:var(--a-mut);margin:14px 0 26px}
.auth-field{margin-bottom:16px}
.auth-field label{display:block;font-size:.74rem;letter-spacing:.06em;text-transform:uppercase;color:var(--a-mut);margin-bottom:7px}
.auth-input{width:100%;background:rgba(0,0,0,.25);border:1px solid var(--a-line);border-radius:11px;
  padding:13px 15px;color:var(--a-ink);font-size:1rem;font-family:var(--a-sans);outline:none;transition:border-color .2s}
.auth-input:focus{border-color:var(--a-acc)}
.auth-btn{width:100%;background:var(--a-grad);color:#0a0710;border:none;border-radius:11px;padding:14px;
  font-family:var(--a-sans);font-weight:700;font-size:.95rem;cursor:pointer;letter-spacing:.02em;margin-top:8px;transition:transform .2s,box-shadow .2s}
.auth-btn:hover{transform:translateY(-2px);box-shadow:0 12px 30px rgba(139,92,246,.35)}
.auth-btn:disabled{opacity:.6;cursor:default;transform:none;box-shadow:none}
.auth-err{min-height:1.2em;margin-top:14px;text-align:center;font-size:.85rem;color:var(--a-bad)}
.auth-ok{color:var(--a-ok)}
.auth-err .wa-cta{display:inline-flex;align-items:center;gap:8px;margin-top:14px;padding:11px 20px;border-radius:10px;background:#25D366;color:#04120F;font-weight:700;text-decoration:none;font-size:.85rem;transition:transform .2s}
.auth-err .wa-cta:hover{transform:translateY(-2px)}
.auth-foot{text-align:center;margin-top:22px;font-size:.76rem;color:var(--a-mut)}

/* ---------- admin panel ---------- */
.admin-wrap{max-width:1080px;margin:0 auto;padding:clamp(20px,4vw,44px)}
.admin-top{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:8px}
.admin-top h1{font-size:clamp(1.4rem,3vw,2rem);font-weight:800;letter-spacing:-.02em}
.admin-top .sub{color:var(--a-mut);font-size:.9rem;margin-bottom:26px}
.admin-actions{display:flex;gap:10px}
.admin-mini{font-family:var(--a-sans);font-size:.78rem;font-weight:600;color:var(--a-ink);cursor:pointer;text-decoration:none;
  padding:9px 16px;border-radius:10px;border:1px solid var(--a-line);background:rgba(255,255,255,.03);transition:.2s;display:inline-flex;align-items:center;gap:7px}
.admin-mini:hover{border-color:var(--a-acc)}
.admin-mini.danger:hover{border-color:var(--a-bad);color:var(--a-bad)}
.admin-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px;align-items:start}
@media(max-width:820px){.admin-grid{grid-template-columns:1fr}}
.admin-panel{background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.01));border:1px solid var(--a-line);border-radius:18px;padding:26px}
.admin-panel h2{font-size:1.1rem;font-weight:700;margin-bottom:18px}
.u-list{display:flex;flex-direction:column;gap:10px;max-height:60vh;overflow:auto}
.u-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--a-line);border-radius:13px;background:rgba(0,0,0,.18)}
.u-item .u-main{flex:1;min-width:0}
.u-item .u-email{font-weight:600;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.u-item .u-meta{font-size:.76rem;color:var(--a-mut);margin-top:3px}
.u-badge{font-size:.66rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:3px 9px;border-radius:999px}
.u-badge.ok{color:#0a0710;background:var(--a-ok)}
.u-badge.exp{color:#0a0710;background:var(--a-warn)}
.u-badge.off{color:#fff;background:var(--a-bad)}
.u-badge.adm{color:#0a0710;background:var(--a-grad)}
.u-btns{display:flex;gap:6px}
.u-btns button{font-family:var(--a-sans);font-size:.72rem;font-weight:600;cursor:pointer;padding:7px 11px;border-radius:8px;
  border:1px solid var(--a-line);background:rgba(255,255,255,.03);color:var(--a-ink);transition:.2s}
.u-btns .renew:hover{border-color:var(--a-ok);color:var(--a-ok)}
.u-btns .off:hover{border-color:var(--a-warn);color:var(--a-warn)}
.u-btns .del:hover{border-color:var(--a-bad);color:var(--a-bad)}
.admin-note{font-size:.82rem;color:var(--a-mut);margin-top:14px;line-height:1.6}
.admin-note b{color:var(--a-ink)}
