@import url("https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500;700&family=Inter:wght@400;500;600;700&display=swap");:root{--bg:#0b0e14;--panel:#131822;--panel-raised:#171d29;--border:#1f2733;--text:#e8eaed;--text-muted:#8b93a1;--accent-red:#ff4b3e;--accent-cyan:#5ec8d8;--accent-amber:#ffb84d;--font-display:"JetBrains Mono",ui-monospace,monospace;--font-body:"Inter",system-ui,sans-serif;--radius:10px}*{box-sizing:border-box}body,html{padding:0;margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body)}body{background:radial-gradient(900px 480px at 15% -10%,rgba(94,200,216,.07),transparent 60%),radial-gradient(700px 420px at 100% 0,rgba(255,138,61,.05),transparent 55%),var(--bg);background-attachment:fixed}a{color:inherit;text-decoration:none}button,input,select,textarea{font-family:var(--font-body);color:var(--text)}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid var(--accent-cyan);outline-offset:2px}@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important}}.app{min-height:100vh;display:flex;flex-direction:column}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:20;justify-content:space-between;gap:24px;padding:0 24px;height:64px;background:rgba(19,24,34,.85);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--border)}.brand-lockup,.topbar{display:flex;align-items:center}.brand-lockup{gap:10px;flex-shrink:0}.brand-lockup .name{font-family:var(--font-display);font-weight:700;font-size:13px;letter-spacing:.08em;color:var(--text);text-transform:uppercase;white-space:nowrap}.brand-lockup .name span{color:var(--text-muted);font-weight:400}.brand-logo{height:42px;width:42px;object-fit:contain;flex-shrink:0}.signal-pulse{display:inline-flex;align-items:flex-end;gap:2px;height:14px}.signal-pulse .bar{width:3px;border-radius:1px;background:var(--accent-cyan);animation:pulse-bar 1.6s ease-in-out infinite;transform-origin:bottom}.signal-pulse .bar:first-child{height:30%;animation-delay:0s}.signal-pulse .bar:nth-child(2){height:55%;animation-delay:.12s}.signal-pulse .bar:nth-child(3){height:100%;animation-delay:.24s}.signal-pulse .bar:nth-child(4){height:70%;animation-delay:.36s}.signal-pulse .bar:nth-child(5){height:45%;animation-delay:.48s}@keyframes pulse-bar{0%,to{opacity:.35;transform:scaleY(.55)}50%{opacity:1;transform:scaleY(1)}}.nav-groups{display:flex;align-items:center;gap:18px;flex:1 1;overflow-x:auto;scrollbar-width:none}.nav-groups::-webkit-scrollbar{display:none}.nav-group{display:flex;align-items:center;gap:2px}.nav-divider{width:1px;height:20px;background:var(--border);flex-shrink:0}.nav-groups a{padding:8px 10px;border-radius:6px;font-size:13px;font-weight:500;color:var(--text-muted);white-space:nowrap;border-bottom:2px solid transparent;transition:color .15s ease,background .15s ease}.nav-groups a:hover{color:var(--text);background:var(--panel-raised)}.nav-groups a.active{color:var(--accent-cyan);border-bottom-color:var(--accent-cyan)}.user-chip{display:flex;align-items:center;gap:10px;flex-shrink:0;padding:6px 8px 6px 6px;border-radius:8px;border:1px solid var(--border);background:var(--panel-raised)}.user-chip .avatar-sm{width:26px;height:26px;border-radius:5px;object-fit:cover;background:var(--panel)}.user-chip .meta{display:flex;flex-direction:column;line-height:1.2}.user-chip .meta strong{font-size:12.5px}.user-chip .meta span{font-size:11px;color:var(--text-muted);font-family:var(--font-display)}.user-chip .signout{font-size:11px;color:var(--text-muted);margin-left:4px;padding-left:8px;border-left:1px solid var(--border)}.user-chip .signout:hover{color:var(--accent-red)}.menu-toggle{display:none;background:var(--panel-raised);border:1px solid var(--border);border-radius:6px;padding:8px 10px;color:var(--text)}@media (max-width:900px){.nav-groups{display:none}.menu-toggle{display:inline-flex}.nav-groups.open{display:flex;position:fixed;top:64px;left:0;right:0;background:var(--panel);border-bottom:1px solid var(--border);padding:12px;gap:4px;max-height:calc(100vh - 64px);overflow-y:auto}.nav-groups.open,.nav-groups.open .nav-group{flex-direction:column;align-items:stretch}.nav-groups.open .nav-divider{display:none}.nav-groups.open a{padding:12px}}.main{flex:1 1;padding:32px 24px 64px;max-width:1100px;width:100%;margin:0 auto}.page-title{font-family:var(--font-display);font-size:21px;margin:0 0 4px;letter-spacing:-.01em}.page-subtitle{color:var(--text-muted);font-size:14px;margin:0 0 28px}.panel{background:linear-gradient(180deg,var(--panel) 0,rgba(19,24,34,.7) 100%);border:1px solid var(--border);border-radius:var(--radius);padding:20px;box-shadow:inset 0 1px 0 hsla(0,0%,100%,.02),0 8px 24px rgba(0,0,0,.18)}.case-id{font-family:var(--font-display);color:var(--text-muted);font-size:12px}.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));grid-gap:14px;gap:14px;margin-bottom:24px}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:16px 18px}.stat-card .value{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--text)}.stat-card .label{font-size:12px;color:var(--text-muted);margin-top:4px}.signal-bars{display:inline-flex;align-items:flex-end;gap:2px;height:16px}.signal-bars .bar{width:3px;background:var(--border);border-radius:1px}.signal-bars .bar:first-child{height:30%}.signal-bars .bar:nth-child(2){height:50%}.signal-bars .bar:nth-child(3){height:70%}.signal-bars .bar:nth-child(4){height:85%}.signal-bars .bar:nth-child(5){height:100%}.signal-bars .bar.lit{background:var(--rank-color,var(--accent-cyan))}.roster-row{display:grid;grid-template-columns:40px 1fr auto;align-items:center;grid-gap:12px;gap:12px;padding:12px 8px;border-bottom:1px solid var(--border);border-radius:6px;transition:background .12s ease}.roster-row:hover{background:var(--panel-raised)}.roster-row:last-child{border-bottom:none}.avatar{width:36px;height:36px;border-radius:6px;background:var(--panel-raised);object-fit:cover}.rank-name{font-family:var(--font-display);font-size:12px;color:var(--text-muted)}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;color:var(--text-muted);font-weight:500;font-size:12px;text-transform:uppercase;letter-spacing:.05em;padding:8px}td,th{border-bottom:1px solid var(--border)}td{padding:10px 8px;vertical-align:top}tbody tr{transition:background .12s ease}tbody tr:hover{background:var(--panel-raised)}.badge{display:inline-block;font-family:var(--font-display);font-size:11px;padding:3px 8px;border-radius:4px;text-transform:uppercase;letter-spacing:.03em}.badge.warning{background:rgba(255,184,77,.15);color:var(--accent-amber)}.badge.kick{background:rgba(139,147,161,.15);color:var(--text-muted)}.badge.suspension,.badge.temp_ban,.badge.written_warning{background:rgba(255,75,62,.12);color:var(--accent-red)}.badge.demotion,.badge.permanent_ban,.badge.termination{background:rgba(255,75,62,.22);color:var(--accent-red)}.badge.active,.badge.verbal_warning{background:rgba(94,200,216,.15);color:var(--accent-cyan)}.badge.expired{background:rgba(139,147,161,.15);color:var(--text-muted)}.badge.revoked{background:rgba(139,147,161,.1);color:var(--text-muted);text-decoration:line-through}.btn{font-family:var(--font-body);font-weight:600;font-size:14px;padding:10px 16px;border-radius:6px;border:1px solid var(--border);background:var(--panel-raised);transition:border-color .15s ease,transform .1s ease}.btn:hover{border-color:var(--accent-cyan)}.btn:active{transform:scale(.98)}.btn.primary{background:var(--accent-cyan);border-color:var(--accent-cyan);color:#06121a}.btn.primary:hover{border-color:var(--accent-cyan);filter:brightness(1.08)}.btn.danger{background:var(--accent-red);border-color:var(--accent-red);color:#1a0605}.btn.danger:hover{filter:brightness(1.08)}.form-grid{display:grid;grid-gap:14px;gap:14px;max-width:480px}.form-grid label{font-size:13px;color:var(--text-muted);display:flex;flex-direction:column;gap:6px}.form-grid input,.form-grid select,.form-grid textarea{background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:10px 12px;font-size:14px}.form-grid input:focus,.form-grid select:focus,.form-grid textarea:focus{border-color:var(--accent-cyan)}.empty-state{color:var(--text-muted);font-size:14px;padding:32px 8px;text-align:center}.error-banner{background:rgba(255,75,62,.12);border:1px solid var(--accent-red);color:var(--accent-red);padding:12px 16px;border-radius:6px;font-size:14px;margin-bottom:16px}