:root{--brand: #b3121f;--brand-bright: #e0293a;--brand-dark: #7a0d17;--bg: #0b0b0c;--bg-elevated: #17171a;--bg-input: #101012;--border: #2a2a2e;--text: #f2f0ef;--text-muted: #9a9a9e;--danger: #e0293a;--success: #2ecc71;--warning: #f1c40f}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}a{color:inherit;text-decoration:none}.main{max-width:1200px;margin:0 auto;padding:2rem 1.5rem}.nav{display:flex;align-items:center;gap:2rem;padding:.85rem 1.5rem;background:linear-gradient(180deg,var(--bg-elevated),#121214);border-bottom:1px solid var(--border);box-shadow:0 2px 12px #00000059}.nav-brand{display:flex;align-items:center;gap:.6rem;font-weight:700;font-size:1.05rem;letter-spacing:.02em}.nav-logo{width:30px;height:30px;object-fit:contain}.nav-links{display:flex;gap:1.4rem;flex:1}.nav-links a{color:var(--text-muted);font-weight:500;font-size:.92rem;transition:color .15s ease}.nav-links a:hover{color:var(--brand-bright)}.nav-user{display:flex;align-items:center;gap:.6rem;color:var(--text-muted);font-size:.9rem}.nav-avatar{width:28px;height:28px;border-radius:50%}.nav-logout{color:var(--danger)!important}.login-page{position:relative;display:flex;align-items:center;justify-content:center;min-height:100vh;overflow:hidden}.login-banner{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;opacity:.35;filter:saturate(1.1);-webkit-mask-image:linear-gradient(to bottom,black 40%,transparent 95%);mask-image:linear-gradient(to bottom,black 40%,transparent 95%)}.login-card{position:relative;z-index:1;text-align:center;background:#111114d9;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);padding:3rem 3.5rem;border-radius:14px;border:1px solid var(--border);box-shadow:0 0 60px #b3121f26}.login-logo{width:84px;height:84px;object-fit:contain;margin-bottom:.75rem}.login-card h1{margin:0 0 .5rem;letter-spacing:.02em}.login-card p{color:var(--text-muted);margin-bottom:1.75rem}.btn{display:inline-block;padding:.6rem 1.2rem;border-radius:8px;border:none;font-weight:600;cursor:pointer;font-size:.95rem;transition:background .15s ease,transform .1s ease}.btn:active{transform:scale(.97)}.btn-primary{background:var(--brand);color:#fff}.btn-primary:hover{background:var(--brand-bright)}.btn-primary:disabled{opacity:.55;cursor:not-allowed}.btn-discord{background:var(--brand);color:#fff;padding:.75rem 1.6rem;box-shadow:0 4px 20px #b3121f59}.btn-discord:hover{background:var(--brand-bright)}.btn-small{padding:.32rem .75rem;font-size:.8rem;background:var(--border);color:var(--text)}.btn-small:hover{background:#3a3a3f}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover{background:#ff3d4f}.card{background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:1.3rem 1.6rem;margin-bottom:1.25rem;transition:border-color .15s ease}.card h3{margin-top:0}.server-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem;margin-top:1.5rem}.server-card{display:flex;flex-direction:column;align-items:center;gap:.6rem;background:var(--bg-elevated);border:1px solid var(--border);border-radius:12px;padding:1.6rem 1rem;text-align:center;font-weight:600;transition:border-color .15s ease,transform .15s ease}.server-card:hover{border-color:var(--brand);transform:translateY(-2px)}.server-icon{width:56px;height:56px;border-radius:50%;object-fit:cover}.server-icon-fallback{display:flex;align-items:center;justify-content:center;background:var(--brand);font-size:1.4rem}.server-search{width:100%;max-width:360px;margin:1rem 0 1.25rem;padding:.55rem .8rem}.server-table-wrap{overflow-x:auto}.server-table td{vertical-align:middle}.server-row-icon{width:32px;height:32px;border-radius:50%;object-fit:cover;font-size:.9rem}.tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--border);margin-bottom:1.5rem;flex-wrap:wrap}.tab{padding:.7rem 1.1rem;color:var(--text-muted);font-weight:600;border-bottom:2px solid transparent;transition:color .15s ease,border-color .15s ease}.tab:hover{color:var(--text)}.tab-active{color:var(--text);border-bottom-color:var(--brand)}.field-row{display:flex;align-items:center;justify-content:space-between;padding:.65rem 0;border-bottom:1px solid var(--border);gap:1rem}.field-row:last-of-type{border-bottom:none}.field-row label{color:var(--text-muted);font-size:.92rem}input,select{background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.45rem .6rem;font-size:.9rem}input:focus,select:focus{outline:none;border-color:var(--brand)}.input-sm{width:65px}.toggle{width:42px;height:24px;border-radius:12px;background:var(--border);border:none;position:relative;cursor:pointer;padding:0}.toggle-on{background:var(--brand)}.toggle-knob{position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:left .15s ease}.toggle-on .toggle-knob{left:21px}.module-table{width:100%;border-collapse:collapse;font-size:.88rem}.module-table th,.module-table td{padding:.55rem .65rem;text-align:left;border-bottom:1px solid var(--border)}.module-table th{color:var(--text-muted);font-weight:600}.module-table tbody tr:hover{background:#ffffff05}.row-actions{display:flex;gap:.4rem}code{background:#ffffff0f;padding:.1rem .35rem;border-radius:4px;font-size:.85em}.whitelist-form,.blacklist-form{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center}.whitelist-form input,.blacklist-form input{flex:1;min-width:140px}.loading,.empty-state{text-align:center;color:var(--text-muted);padding:3rem 1rem}.error-banner{background:#e0293a1f;border:1px solid var(--danger);color:#ff8b8f;padding:.6rem .9rem;border-radius:6px;margin-bottom:1rem}.success-banner{background:#2ecc711f;border:1px solid var(--success);color:#7bf0a8;padding:.6rem .9rem;border-radius:6px;margin-bottom:1rem}.muted{color:var(--text-muted)}.beast-status{text-align:center}.beast-status.beast-active{border-color:var(--danger);background:#e0293a14}.role-details{border:1px solid var(--border);border-radius:8px;padding:.7rem 1rem;margin-bottom:.7rem;background:#ffffff04}.role-details summary{cursor:pointer;display:flex;align-items:center;gap:.6rem;font-weight:600}.role-badge{padding:.15rem .6rem;border-radius:6px;font-size:.82rem;color:#fff}.permission-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:.4rem 1rem;margin:.85rem 0}.permission-item{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:var(--text-muted)}
