:root { --bg:#030116; --card:#0b0a26; --ink:#e8e6ff; --muted:#a8a4d6; --line:#241f52; --accent:#8b5cf6; --accent2:#38bdf8; --accent-ink:#ffffff; --danger:#f2766d; --ok:#5fd18a; color-scheme: dark; }
* { box-sizing: border-box; }
body { margin:0; background:var(--bg) radial-gradient(60rem 30rem at 50% -8rem, rgba(99,70,255,.22), transparent 70%) no-repeat; color:var(--ink); font:15px/1.45 system-ui, -apple-system, Segoe UI, Roboto, sans-serif; }
a { color:#a5b4fc; }
header .brand { display:flex; align-items:center; gap:10px; cursor:pointer; flex:1; }
header .brand img { width:34px; height:34px; border-radius:10px; }
header { display:flex; align-items:center; gap:12px; padding:12px 16px; border-bottom:1px solid var(--line); background:var(--card); position:sticky; top:0; z-index:5; }
header h1 { font-size:17px; margin:0; letter-spacing:.02em; }
header > img { width:28px; height:28px; border-radius:50%; }
main { padding:16px; max-width:1200px; margin:0 auto; }
button, .btn { text-decoration:none; display:inline-block; font:inherit; border:1px solid var(--line); background:var(--card); color:var(--ink); padding:7px 12px; border-radius:8px; cursor:pointer; }
button.primary { background:linear-gradient(135deg,var(--accent),#6d5ae6 60%,var(--accent2)); color:var(--accent-ink); border-color:var(--accent); }
button.danger { color:var(--danger); border-color:var(--danger); }
button:disabled { opacity:.5; cursor:default; }
input, select, textarea { font:inherit; color:var(--ink); background:var(--bg); border:1px solid var(--line); border-radius:8px; padding:7px 9px; width:100%; }
textarea { min-height:80px; resize:vertical; }
label { display:block; font-size:13px; color:var(--muted); margin:10px 0 3px; }
.center { max-width:520px; margin:48px auto; text-align:center; }
.guilds { display:grid; grid-template-columns:repeat(auto-fill,minmax(220px,1fr)); gap:12px; margin-top:16px; }
.guild { display:flex; align-items:center; gap:10px; padding:12px; border:1px solid var(--line); background:var(--card); border-radius:12px; cursor:pointer; text-align:left; }
.guild img, .guild .ph { width:40px; height:40px; border-radius:50%; background:var(--line); flex:none; }
.layout { display:grid; grid-template-columns:230px 1fr; gap:16px; }
@media (max-width: 760px) { .layout { grid-template-columns:1fr; } }
.panel { background:var(--card); border:1px solid var(--line); border-radius:12px; padding:12px; }
.side button.item { display:block; width:100%; text-align:left; margin-bottom:6px; }
.side button.item.on { border-color:var(--accent); background:color-mix(in srgb, var(--accent) 14%, var(--card)); }
.bar { height:8px; background:var(--line); border-radius:6px; overflow:hidden; margin:4px 0 8px; }
.bar > i { display:block; height:100%; background:linear-gradient(90deg,var(--accent),var(--accent2)); }
.drop { border:2px dashed var(--line); border-radius:12px; padding:16px; text-align:center; color:var(--muted); margin-bottom:12px; }
.drop.over { border-color:var(--accent); color:var(--ink); }
.row { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.row > * { flex:1 1 140px; }
.grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr)); gap:12px; }
.card { position:relative; border:2px solid var(--line); border-radius:12px; background:var(--card); padding:6px; cursor:pointer; }
.card.drag { opacity:.4; }
.card .img { aspect-ratio:5/7; display:flex; align-items:center; justify-content:center; background:var(--bg); border-radius:8px; overflow:hidden; }
.card img { max-width:100%; max-height:100%; display:block; }
.card .name { font-weight:600; margin-top:6px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tag { display:inline-block; font-size:12px; padding:1px 7px; border-radius:99px; border:1px solid var(--line); color:var(--muted); }
.card.hidden { opacity:.55; }
.r-common { border-color:#9aa0a6; } .r-rare { border-color:#3b82f6; } .r-epic { border-color:#9333ea; } .r-legendary { border-color:#f59e0b; }
.editor { position:fixed; inset:0; background:rgba(0,0,0,.5); display:flex; align-items:flex-start; justify-content:center; padding:20px; overflow:auto; z-index:10; }
.editor .box { background:var(--card); border-radius:14px; padding:16px; width:min(760px,100%); display:grid; grid-template-columns:240px 1fr; gap:16px; }
@media (max-width: 640px) { .editor .box { grid-template-columns:1fr; } }
.preview { border:3px solid var(--line); border-radius:12px; padding:8px; background:var(--bg); }
.preview img { width:100%; display:block; border-radius:8px; }
.msg { padding:8px 12px; border-radius:8px; margin:8px 0; background:color-mix(in srgb, var(--accent) 12%, var(--card)); }
.msg.err { background:color-mix(in srgb, var(--danger) 14%, var(--card)); color:var(--danger); }
.muted { color:var(--muted); font-size:13px; }
.log td { padding:2px 8px 2px 0; font-size:13px; }

.tabs { display:flex; gap:6px; margin:0 0 14px; flex-wrap:wrap; }
.tabs button.on { border-color:var(--accent); background:color-mix(in srgb, var(--accent) 22%, var(--card)); }
.odds td { padding:2px 10px 2px 0; font-size:13px; }
