:root{
  --ink:#0f172a; --muted:#64748b; --bg:#fafafa;
  --violet:#7c3aed; --violet-deep:#5b21b6; --indigo:#4f46e5; --accent:#10b981;
  --line:rgba(15,23,42,.10);
  --radius:16px; --radius-in:12px; --ring:rgba(124,58,237,.16);
  --font:'Plus Jakarta Sans',ui-sans-serif,system-ui,-apple-system,'Segoe UI',Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:var(--font);color:var(--ink);background:var(--bg);min-height:100dvh}
a{color:inherit}

/* ---- composants ---- */
.eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--violet)}
label{display:block;font-weight:600;font-size:13px;margin:0 0 7px;color:var(--ink)}
.field{margin-top:16px}
input{width:100%;padding:13px 15px;border:1px solid var(--line);border-radius:var(--radius-in);
      font-family:inherit;font-size:15px;background:#fff;color:var(--ink);outline:none;transition:border-color .12s,box-shadow .12s}
input::placeholder{color:#94a3b8}
input:focus{border-color:var(--violet);box-shadow:0 0 0 4px var(--ring)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;
     padding:14px 20px;border:0;border-radius:var(--radius);cursor:pointer;
     font-family:inherit;font-weight:700;font-size:15.5px;color:#fff;
     background:linear-gradient(135deg,var(--violet),var(--violet-deep));
     box-shadow:0 12px 26px -8px rgba(91,33,182,.55);transition:transform .12s,box-shadow .12s,opacity .12s}
.btn:hover{transform:translateY(-1px);box-shadow:0 16px 32px -8px rgba(91,33,182,.65)}
.btn:disabled{opacity:.6;cursor:default;transform:none}
.btn.ghost{background:#fff;color:var(--violet);border:1px solid var(--line);box-shadow:none}
.btn.ghost:hover{background:#faf7ff;transform:none;box-shadow:none}
.msg{margin-top:14px;font-size:13.5px;font-weight:600;min-height:18px}
.msg.err{color:#dc2626}.msg.ok{color:#047857}
.secure{display:inline-flex;align-items:center;gap:6px;margin-top:16px;color:var(--muted);font-size:12.5px}
.status{display:inline-flex;align-items:center;gap:7px;padding:6px 13px;border-radius:999px;
        font-size:13px;font-weight:600;color:#047857;background:rgba(16,185,129,.12)}
.status .live{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px rgba(16,185,129,.25)}
.pill{display:inline-block;padding:5px 11px;border-radius:999px;font-size:12px;font-weight:700;color:var(--violet);background:rgba(124,58,237,.12)}

/* ---- shell centré (espace admin) ---- */
.shell{min-height:100dvh;display:flex;align-items:center;justify-content:center;
       padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));
       background:
         radial-gradient(60vw 60vw at 12% -10%, rgba(124,58,237,.12), transparent 60%),
         radial-gradient(50vw 50vw at 100% 110%, rgba(16,185,129,.10), transparent 55%), var(--bg)}
.card{width:100%;max-width:760px;background:rgba(255,255,255,.78);backdrop-filter:blur(14px);
      border:1px solid rgba(255,255,255,.6);border-radius:22px;box-shadow:0 24px 60px -12px rgba(79,70,229,.26);
      padding:clamp(26px,5vw,40px)}
.row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
