:root{
  --primary:#e84a7f; --accent:#2f9e6e; --bg:#14101a; --ink:#f2eef5;
  --mute:#9aa0b0; --line:rgba(255,255,255,.10); --card:rgba(255,255,255,.04);
  --radius:16px; --font:'Inter',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--font); color:var(--ink); min-height:100vh;
  background:
    radial-gradient(1200px 600px at 80% -10%, color-mix(in srgb,var(--primary) 22%, transparent), transparent),
    radial-gradient(900px 500px at -10% 110%, color-mix(in srgb,var(--accent) 18%, transparent), transparent),
    var(--bg);
}
a{color:inherit;text-decoration:none}
.wrap{max-width:1100px;margin:0 auto;padding:28px 20px}
.center{min-height:100vh;display:grid;place-items:center;padding:24px}

/* ---- top brand bar ---- */
.brandbar{display:flex;align-items:center;gap:12px;padding:18px 24px;border-bottom:1px solid var(--line)}
.brandbar .logo{font-size:26px}
.brandbar .name{font-weight:800;letter-spacing:.3px}
.brandbar .spacer{flex:1}
.pill{font-size:11px;padding:4px 10px;border:1px solid var(--line);border-radius:999px;color:var(--mute)}

/* ---- landing hero ---- */
.hero{text-align:center;padding:54px 20px 22px}
.hero .mark{font-size:46px}
.hero h1{font-size:34px;margin:10px 0 6px;font-weight:800}
.hero p{color:var(--mute);margin:0;font-size:15px}

/* ---- banners grid ---- */
.banners{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:18px;margin-top:30px}
.banner{
  position:relative;border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 22px;min-height:170px;display:flex;flex-direction:column;justify-content:space-between;
  background:var(--card);overflow:hidden;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
  cursor:pointer;
}
.banner:hover{transform:translateY(-4px);border-color:var(--b-primary);box-shadow:0 18px 40px -22px var(--b-primary)}
.banner .glow{position:absolute;inset:0;opacity:.16;
  background:radial-gradient(420px 220px at 120% -20%, var(--b-primary), transparent)}
.banner .logo{font-size:34px}
.banner h3{margin:14px 0 4px;font-size:20px;font-weight:800}
.banner .tag{color:var(--mute);font-size:13px;margin:0}
.banner .enter{margin-top:16px;align-self:flex-start;font-size:13px;font-weight:700;
  color:var(--b-primary);display:inline-flex;align-items:center;gap:6px}

/* ---- cards / forms ---- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:22px}
.card.lg{width:min(420px,92vw)}
.label{font-size:12px;color:var(--mute);margin:14px 0 6px;font-weight:600}
input,textarea,select{
  width:100%;background:rgba(0,0,0,.25);border:1px solid var(--line);color:var(--ink);
  padding:11px 12px;border-radius:10px;font-size:14px;font-family:inherit;outline:none}
input:focus,textarea:focus{border-color:var(--primary)}
.btn{width:100%;margin-top:16px;background:var(--primary);color:#0a0a0a;border:none;
  padding:12px;border-radius:10px;font-weight:800;font-size:14px;cursor:pointer;transition:filter .15s}
.btn:hover{filter:brightness(1.08)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);font-weight:600}
.row{display:flex;gap:10px;align-items:center}
.muted{color:var(--mute);font-size:13px}
.err{color:#ff8a8a;font-size:13px;margin-top:10px;min-height:18px}
.ok{color:var(--accent);font-size:13px;margin-top:10px;min-height:18px}
.link{color:var(--primary);cursor:pointer;font-weight:600}
.back{color:var(--mute);font-size:13px;display:inline-block;margin-bottom:14px;cursor:pointer}

/* ---- dashboard ---- */
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:18px}
.section h2{font-size:16px;margin:0 0 12px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{font-size:12px;padding:6px 10px;border:1px solid var(--line);border-radius:999px;cursor:pointer}
.chip.active{background:var(--primary);color:#0a0a0a;border-color:var(--primary);font-weight:700}
.list{display:flex;flex-direction:column;gap:8px;margin-top:6px}
.item{border:1px solid var(--line);border-radius:10px;padding:10px 12px;font-size:14px;display:flex;justify-content:space-between;gap:10px}
.empty{color:var(--mute);font-size:13px;padding:8px 0}
@media(max-width:760px){.grid2{grid-template-columns:1fr}}
