/* Tavern — shared design system. Premium dark "mystical-tech" theme.
   Class names match those used across the embedded pages so a single sheet
   restyles landing / auth / cabinet / admin without touching their markup/JS. */
:root{
  --bg:#0a0c11; --bg2:#10131b;
  --card:rgba(22,25,34,.72); --card-solid:#161922;
  --line:rgba(255,255,255,.08); --line2:rgba(255,255,255,.14);
  --fg:#eef1f7; --mut:#99a1b5;
  --acc:#6b74ff; --acc2:#a374ff; --gold:#e8b96b;
  --ok:#41c98a; --danger:#ff5c61; --discord:#5865F2;
  --r:14px; --shadow:0 10px 30px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; color:var(--fg); min-height:100vh;
  font:15px/1.6 'Inter',-apple-system,Segoe UI,Roboto,sans-serif;
  background:
    radial-gradient(900px 500px at 12% -8%, rgba(107,116,255,.18), transparent 60%),
    radial-gradient(800px 500px at 100% 0%, rgba(163,116,255,.14), transparent 55%),
    var(--bg);
  background-attachment:fixed;
}
a{color:#9aa2ff;text-decoration:none}
a:hover{color:#b9bdff}
::selection{background:rgba(107,116,255,.35)}

/* ---- header ---- */
header{display:flex;align-items:center;gap:12px;padding:16px 24px;
  border-bottom:1px solid var(--line);position:sticky;top:0;z-index:10;
  backdrop-filter:blur(10px);background:rgba(10,12,17,.6)}
header .sp,.sp{flex:1}
.logo,header strong{font-weight:800;letter-spacing:.2px;font-size:18px}
.brandmark{background:linear-gradient(135deg,#8b92ff,#c39bff);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---- buttons ---- */
button,a.btn,.btn{font:inherit;font-weight:600;border:none;border-radius:11px;
  padding:11px 18px;cursor:pointer;text-decoration:none;display:inline-block;
  transition:transform .12s ease, box-shadow .12s ease, filter .12s ease, background .15s}
button:active,.btn:active{transform:translateY(1px)}
.primary{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff;
  box-shadow:0 6px 18px rgba(107,116,255,.35)}
.primary:hover{filter:brightness(1.08);box-shadow:0 8px 24px rgba(107,116,255,.5);transform:translateY(-1px)}
.ghost{background:rgba(255,255,255,.04);border:1px solid var(--line2);color:var(--fg)}
.ghost:hover{background:rgba(255,255,255,.09)}
.ok{background:linear-gradient(135deg,#36c486,#2ea372);color:#fff}
.ok:hover{filter:brightness(1.08);transform:translateY(-1px)}
.danger{background:linear-gradient(135deg,#ff5c61,#e0454a);color:#fff}
.danger:hover{filter:brightness(1.08)}
.discord{background:var(--discord);color:#fff}
.discord:hover{filter:brightness(1.1);transform:translateY(-1px)}
button:disabled{opacity:.45;cursor:default;filter:none;transform:none;box-shadow:none}

/* ---- cards ---- */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);
  padding:18px;margin-bottom:14px;box-shadow:var(--shadow);backdrop-filter:blur(8px)}
.wrap{max-width:780px;margin:0 auto;padding:26px 20px 70px}
h1{font-size:22px;margin:0 0 4px;letter-spacing:-.2px}
.sub{color:var(--mut);margin:0 0 22px}
.gname{font-weight:700;font-size:16px}
.tag{font-size:12px;color:var(--mut)}
.muted{color:var(--mut)}
.bound{color:var(--ok);font-weight:600}
.empty{color:var(--mut);text-align:center;padding:34px}
.err{color:#ffb3b5;font-size:13px;margin-top:8px}
.row{display:flex;gap:10px;align-items:center;margin-top:14px;flex-wrap:wrap}
.grow{display:flex;align-items:center;gap:12px}
.grow img{width:44px;height:44px;border-radius:12px;background:#2a2f3a;object-fit:cover}

/* ---- forms ---- */
label{display:block;font-size:13px;color:var(--mut);margin:12px 0 6px}
input,select{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line2);
  background:rgba(8,10,15,.7);color:var(--fg);font:inherit;transition:border .15s,box-shadow .15s}
input:focus,select:focus{outline:none;border-color:var(--acc);box-shadow:0 0 0 3px rgba(107,116,255,.18)}
select{min-width:200px;width:auto}
.hint{color:var(--mut);font-size:12px;margin-top:6px}

/* ---- auth card ---- */
.auth-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.auth{width:100%;max-width:410px}
.auth .logo{text-align:center;font-size:22px;margin-bottom:4px}
.auth .sub{text-align:center;margin-bottom:22px;font-size:14px}
.auth form button,.auth .btn{width:100%;text-align:center;margin-top:16px}
.auth .errbox{background:rgba(255,92,97,.12);color:#ffb9bb;border:1px solid rgba(255,92,97,.3);
  border-radius:10px;padding:10px;font-size:13px;margin-bottom:6px;display:none}
.sep{display:flex;align-items:center;gap:10px;color:var(--mut);font-size:12px;margin:18px 0 4px}
.sep::before,.sep::after{content:"";flex:1;height:1px;background:var(--line2)}
.alt{text-align:center;color:var(--mut);font-size:14px;margin-top:18px}

/* ---- pills / badges ---- */
.pill{display:inline-block;padding:7px 15px;border:1px solid var(--line2);border-radius:999px;
  color:var(--mut);font-size:13px;background:rgba(255,255,255,.03)}
.badge{font-size:11px;padding:2px 9px;border:1px solid var(--line2);border-radius:999px;color:var(--mut)}

/* ---- onboarding steps ---- */
.ob{display:flex;gap:12px;align-items:flex-start;margin:12px 0}
.ob .obn{flex:none;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.06);
  color:var(--mut);display:grid;place-items:center;font-weight:700;font-size:13px}
.ob .obn.act{background:linear-gradient(135deg,var(--acc),var(--acc2));color:#fff;box-shadow:0 4px 12px rgba(107,116,255,.4)}
.ob b{display:block} .ob span{color:var(--mut);font-size:13px}

/* ---- admin ---- */
.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:26px}
.stat{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:20px;box-shadow:var(--shadow)}
.stat .n{font-size:34px;font-weight:800;background:linear-gradient(135deg,#fff,#b9bdff);-webkit-background-clip:text;background-clip:text;color:transparent}
.stat .l{color:var(--mut);font-size:13px;margin-top:2px}
table{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);
  border-radius:var(--r);overflow:hidden;box-shadow:var(--shadow)}
th,td{padding:11px 13px;text-align:left;font-size:13px;border-bottom:1px solid var(--line)}
th{color:var(--mut);font-weight:600}
tr:last-child td{border-bottom:none}
tbody tr:hover{background:rgba(255,255,255,.025)}
.dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:6px}
.on{background:var(--ok);box-shadow:0 0 8px rgba(65,201,138,.6)} .off{background:#555}

/* ---- live monitor ---- */
#monitor{display:none}
#ticker{color:var(--mut);font-style:italic;min-height:20px;margin-bottom:8px}
#feed{max-height:300px;overflow-y:auto;font:13px/1.7 ui-monospace,Menlo,Consolas,monospace}
#feed .line{padding:3px 0;border-bottom:1px solid rgba(255,255,255,.04)}
#feed .t{color:#d3d8e4} #feed .d{color:#8be9a3} #feed .ts{color:#5b6270;margin-right:8px}

@media(max-width:760px){.stats{grid-template-columns:1fr}}
