:root{--bg: #0f172a;--panel: #1e293b;--panel2: #273449;--line: #334155;--text: #e2e8f0;--muted: #94a3b8;--accent: #6366f1;--accent2: #4f46e5;--pos: #22c55e;--neg: #f87171;--err: #fca5a5}*{box-sizing:border-box}html{font-size:clamp(15px,.3vw + 14.2px,17px)}body{margin:0;background:var(--bg);color:var(--text);line-height:1.6;font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}h1{font-size:clamp(1.4rem,2.2vw,1.8rem);margin:0 0 1rem}h2{font-size:clamp(1.05rem,1.4vw,1.25rem);margin:0 0 .75rem}.muted{color:var(--muted)}.small{font-size:.8rem}.r{text-align:right}.pos{color:var(--pos)}.neg{color:var(--neg)}.center{min-height:100vh;display:grid;place-items:center;padding:1rem}.app{max-width:1120px;margin:0 auto;padding:0 1.25rem 3rem}main{padding-top:1.75rem}.nav{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;padding:.9rem 0;border-bottom:1px solid var(--line)}.brand{font-weight:700}.nav nav{display:flex;gap:.25rem}.nav .who{margin-left:auto;color:var(--muted);font-size:.9rem}.tab{background:none;border:none;color:var(--muted);cursor:pointer;padding:.4rem .7rem;border-radius:8px;font:inherit;text-decoration:none}.tab:hover{color:var(--text);background:var(--panel)}.tab.active{color:#fff;background:var(--accent)}.tabs{display:flex;gap:.25rem;margin-bottom:1rem}.card{background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:clamp(1.1rem,2vw,1.6rem)}.grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1rem,1.6vw,1.5rem)}.wide{grid-column:1 / -1}.balance .big{font-size:clamp(2.6rem,6vw,3.6rem);font-weight:700;margin-top:.2rem}input,select{background:var(--panel2);border:1px solid var(--line);color:var(--text);padding:.55rem .65rem;border-radius:8px;font:inherit}input:focus,select:focus{outline:2px solid var(--accent)}input.sm{width:6rem}input[type=color]{padding:2px;width:3rem;height:2.2rem}.row{display:flex;gap:.5rem;align-items:center}.row.wrap,form .perms{flex-wrap:wrap}form{display:flex;flex-direction:column;gap:.6rem}form.row{flex-direction:row}button.primary{background:var(--accent);color:#fff;border:none;cursor:pointer;padding:.55rem .9rem;border-radius:8px;font:inherit;font-weight:600}button.primary:hover{background:var(--accent2)}button.primary:disabled{opacity:.5;cursor:not-allowed}button.link{background:none;border:none;color:var(--accent);cursor:pointer;font:inherit;padding:0 0 0 .5rem;text-decoration:underline}.auth{width:min(360px,92vw);text-align:center}.auth input{width:100%}.error{color:var(--err)}.notice{color:var(--accent)}.card.error{border-color:var(--neg)}table{width:100%;border-collapse:collapse;font-size:.9rem}th,td{padding:.5rem .4rem;border-bottom:1px solid var(--line);text-align:left}th{color:var(--muted);font-weight:600}.role{border-bottom:1px solid var(--line);padding:.8rem 0}.role:last-child{border-bottom:none}.role-head{margin-bottom:.5rem}.perms{display:flex;flex-wrap:wrap;gap:.6rem;margin-bottom:.6rem}.perms label{display:flex;align-items:center;gap:.3rem;background:var(--panel2);padding:.3rem .55rem;border-radius:6px;font-size:.85rem}.spin-page{text-align:center}.wheel-svg{width:clamp(18rem,80vmin,40rem);height:auto;display:block;margin:1rem auto}.spin-hub{cursor:pointer;transform-box:fill-box;transform-origin:center;transition:transform .1s ease}.spin-hub:hover:not(.disabled){transform:scale(1.04)}.spin-hub:active:not(.disabled){transform:scale(.96)}.spin-hub.disabled{cursor:default;opacity:.7}.spin-status{margin:.25rem 0 .75rem;font-weight:600}.result{max-width:420px;margin:1rem auto 0}.result.win{border-color:var(--pos)}.result.lose{border-color:var(--line)}@media (max-width: 640px){.grid{grid-template-columns:1fr}.nav .who{width:100%;margin:0}}
