@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700;800&display=swap";:root{--bg-base:#060c18;--bg-sidebar:#0d1424;--bg-card:#111827b3;--bg-glass:#ffffff0a;--bg-glass-hover:#ffffff12;--border-subtle:#ffffff0f;--border-accent:#6366f159;--text-primary:#f1f5f9;--text-secondary:#94a3b8;--text-muted:#64748b;--accent:#6366f1;--accent-light:#818cf8;--accent-purple:#a855f7;--accent-emerald:#10b981;--accent-amber:#f59e0b;--accent-rose:#f43f5e;--accent-blue:#3b82f6;--gradient-primary:linear-gradient(135deg, #6366f1, #8b5cf6);--shadow-md:0 4px 12px #0006;--shadow-glow:0 0 20px #6366f126;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-full:9999px;--font:"Inter", -apple-system, BlinkMacSystemFont, sans-serif;--transition:.2s cubic-bezier(.4, 0, .2, 1);--sidebar-width:240px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;font-size:16px}body{font-family:var(--font);background:var(--bg-base);color:var(--text-primary);min-height:100vh;line-height:1.6}body:before{content:"";pointer-events:none;z-index:0;background:radial-gradient(at 15% 20%,#6366f112 0%,#0000 50%),radial-gradient(at 85% 80%,#8b5cf60d 0%,#0000 50%);position:fixed;inset:0}#root{min-height:100vh}.admin-layout{z-index:1;min-height:100vh;display:flex;position:relative}.sidebar{width:var(--sidebar-width);background:var(--bg-sidebar);border-right:1px solid var(--border-subtle);z-index:50;flex-direction:column;height:100vh;padding:20px 0;display:flex;position:fixed;top:0;left:0}.sidebar-logo{border-bottom:1px solid var(--border-subtle);align-items:center;gap:10px;margin-bottom:12px;padding:0 20px 24px;display:flex}.sidebar-logo-title{color:var(--text-primary);font-size:.9375rem;font-weight:700}.sidebar-logo-sub{color:var(--text-muted);text-transform:uppercase;letter-spacing:.08em;font-size:.7rem}.sidebar-nav{flex-direction:column;flex:1;gap:4px;padding:0 12px;display:flex}.nav-item{border-radius:var(--radius-sm);color:var(--text-secondary);font-family:var(--font);cursor:pointer;transition:all var(--transition);text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:10px 12px;font-size:.875rem;font-weight:500;display:flex}.nav-item:hover{background:var(--bg-glass);color:var(--text-primary)}.nav-item.active{color:var(--accent-light);background:#6366f126;border:1px solid #6366f133}.sidebar-footer{border-top:1px solid var(--border-subtle);flex-direction:column;gap:12px;margin-top:12px;padding:16px 20px 0;display:flex}.user-info{align-items:center;gap:10px;display:flex}.user-avatar{background:var(--gradient-primary);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.875rem;font-weight:700;display:flex}.user-name{color:var(--text-primary);font-size:.875rem;font-weight:600}.user-role{color:var(--accent-light);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.btn-link{color:var(--text-secondary);font-family:var(--font);cursor:pointer;text-align:left;transition:color var(--transition);background:0 0;border:none;padding:4px 0;font-size:.8125rem;text-decoration:none}.btn-link:hover{color:var(--text-primary)}.btn-link.danger{color:var(--accent-rose)}.btn-link.danger:hover{color:#ff6b8a}.admin-content{margin-left:var(--sidebar-width);flex:1;min-height:100vh;padding:28px 32px}.topbar{justify-content:space-between;align-items:center;margin-bottom:28px;display:flex}.topbar-title-group{align-items:center;gap:12px;min-width:0;display:flex}.topbar-title{letter-spacing:-.01em;font-size:1.375rem;font-weight:700}.btn-menu-mobile{background:var(--bg-glass);border:1px solid var(--border-subtle);color:var(--text-primary);border-radius:var(--radius-sm);cursor:pointer;width:36px;height:36px;transition:all var(--transition);flex-shrink:0;font-size:1.1rem;line-height:1;display:none}.btn-menu-mobile:hover{background:var(--bg-glass-hover);border-color:var(--border-accent)}.btn-refresh{background:var(--bg-glass);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:var(--radius-sm);font-family:var(--font);cursor:pointer;transition:all var(--transition);padding:8px 16px;font-size:.8125rem}.btn-refresh:hover{background:var(--bg-glass-hover);border-color:var(--border-accent);color:var(--text-primary)}.tab-content{flex-direction:column;gap:24px;display:flex}.glass-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);transition:border-color var(--transition)}.glass-card:hover{border-color:var(--border-accent)}.section-card{padding:24px}.section-title{color:var(--text-primary);margin-bottom:16px;font-size:1rem;font-weight:600}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;display:grid}.stat-card{padding:20px 24px}.stat-title{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;font-size:.75rem;font-weight:500}.stat-value{letter-spacing:-.03em;font-size:2rem;font-weight:800}.device-list{flex-direction:column;gap:8px;max-height:280px;display:flex;overflow-y:auto}.device-item{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);transition:background var(--transition);background:#ffffff08;align-items:center;gap:12px;padding:10px 14px;display:flex}.device-item:hover{background:var(--bg-glass-hover)}.device-serial{color:var(--accent-light);flex:1;font-family:JetBrains Mono,monospace;font-size:.875rem;font-weight:600}.device-meta,.device-date{color:var(--text-muted);font-size:.75rem}.data-table{border-collapse:collapse;width:100%;font-size:.875rem}.data-table th{text-align:left;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);border-bottom:1px solid var(--border-subtle);padding:10px 14px;font-size:.7rem;font-weight:600}.data-table td{vertical-align:middle;border-bottom:1px solid #ffffff08;padding:12px 14px}.data-table tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:#ffffff05}.row-banned{background:#f871710d!important}.inline-select{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);color:var(--text-primary);font-family:var(--font);cursor:pointer;background:#ffffff0f;padding:4px 8px;font-size:.8125rem}.inline-select:focus{border-color:var(--accent);outline:none}.inline-select:disabled{opacity:.4;cursor:not-allowed}.styled-select{display:inline-block;position:relative}.styled-select-trigger{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);min-width:130px;color:var(--text-primary);font-family:var(--font);cursor:pointer;transition:background var(--transition), border-color var(--transition);background:#ffffff0f;justify-content:space-between;align-items:center;gap:10px;padding:4px 8px;font-size:.8125rem;display:flex}.styled-select-trigger:hover:not(:disabled){background:var(--bg-glass-hover)}.styled-select-trigger:focus-visible{border-color:var(--accent);outline:none}.styled-select-trigger:disabled{opacity:.4;cursor:not-allowed}.styled-select-caret{color:var(--text-muted);font-size:.65rem;line-height:1}.styled-select-menu{z-index:100;background:var(--bg-sidebar);border:1px solid var(--border-subtle);border-radius:var(--radius-md);min-width:100%;max-height:240px;box-shadow:var(--shadow-md);padding:4px;list-style:none;position:absolute;top:calc(100% + 4px);left:0;overflow-y:auto}.styled-select-option{border-radius:var(--radius-sm);color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:background var(--transition);padding:7px 10px;font-size:.8125rem}.styled-select-option:hover{background:var(--bg-glass-hover)}.styled-select-option.is-selected{color:var(--accent-light);background:#6366f12e;font-weight:600}.badge{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.04em;padding:2px 8px;font-size:.7rem;font-weight:600;display:inline-block}.badge-ok{color:#6ee7b7;background:#10b9811a}.badge-danger{color:#fda4af;background:#f43f5e26}.action-btns{gap:6px;display:flex}.action-btn{border-radius:var(--radius-sm);font-family:var(--font);cursor:pointer;transition:all var(--transition);border:none;padding:4px 10px;font-size:.75rem;font-weight:600}.action-btn:disabled{opacity:.35;cursor:not-allowed}.action-btn.ban{color:#fda4af;background:#f43f5e26}.action-btn.ban:hover:not(:disabled){background:#f43f5e4d}.action-btn.unban{color:#6ee7b7;background:#10b98126}.action-btn.unban:hover:not(:disabled){background:#10b9814d}.action-btn.reset-pass{color:var(--accent-light);background:#6366f126}.action-btn.reset-pass:hover{background:#6366f14d}.action-tag{border-radius:var(--radius-full);letter-spacing:.04em;color:var(--accent-light);background:#6366f11f;padding:2px 8px;font-size:.7rem;font-weight:700;display:inline-block}.action-tag.action-banned{color:#fda4af;background:#f43f5e26}.action-tag.action-unbanned{color:#6ee7b7;background:#10b98126}.action-tag.action-role_changed{color:#fcd34d;background:#f59e0b26}.action-tag.action-status_changed{color:#93c5fd;background:#3b82f626}.action-tag.action-password_reset{color:#d8b4fe;background:#a855f726}.login-container{z-index:1;justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex;position:relative}.login-card{background:var(--bg-glass);-webkit-backdrop-filter:blur(20px);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);width:100%;max-width:440px;box-shadow:var(--shadow-md), var(--shadow-glow);opacity:0;padding:40px;animation:.5s cubic-bezier(.16,1,.3,1) forwards card-appear;transform:translateY(16px)}@keyframes card-appear{to{opacity:1;transform:translateY(0)}}.login-logo{align-items:center;gap:12px;margin-bottom:28px;display:flex}.login-logo-title{color:var(--text-primary);font-size:1rem;font-weight:700}.login-logo-sub{text-transform:uppercase;letter-spacing:.1em;color:var(--accent-light);font-size:.7rem;font-weight:600}.login-card h1{background:var(--gradient-primary);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin-bottom:6px;font-size:1.5rem;font-weight:700}.login-subtitle{color:var(--text-secondary);margin-bottom:28px;font-size:.875rem}.login-footer{text-align:center;color:var(--text-muted);justify-content:center;align-items:center;gap:6px;margin-top:24px;font-size:.75rem;display:flex}.form-group{margin-bottom:18px}.form-group label{color:var(--text-secondary);margin-bottom:6px;font-size:.8125rem;font-weight:500;display:block}.form-input{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);width:100%;color:var(--text-primary);font-family:var(--font);transition:all var(--transition);background:#ffffff0a;outline:none;padding:11px 14px;font-size:.9375rem;display:block}.form-input::placeholder{color:var(--text-muted)}.form-input:focus{border-color:var(--accent);background:#ffffff0f;box-shadow:0 0 0 3px #6366f126}.btn{border-radius:var(--radius-sm);font-family:var(--font);cursor:pointer;transition:all var(--transition);border:none;justify-content:center;align-items:center;gap:8px;padding:11px 24px;font-size:.9375rem;font-weight:600;display:inline-flex}.btn-primary{background:var(--gradient-primary);color:#fff;width:100%;margin-top:4px;box-shadow:0 4px 14px #6366f14d}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 20px #6366f173}.btn-primary:active{transform:translateY(0)}.btn-primary:disabled{opacity:.6;cursor:not-allowed;transform:none}.alert{border-radius:var(--radius-sm);margin-bottom:18px;padding:11px 14px;font-size:.8125rem;animation:.3s alert-in}.alert-error{color:#fda4af;background:#f43f5e1a;border:1px solid #f43f5e33}@keyframes alert-in{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.loading-state{min-height:300px;color:var(--text-secondary);flex-direction:column;justify-content:center;align-items:center;gap:16px;display:flex}.spinner{border:2px solid #ffffff26;border-top-color:var(--accent-light);border-radius:50%;width:22px;height:22px;animation:.65s linear infinite spin;display:inline-block}.spinner.large{border-width:3px;width:40px;height:40px}@keyframes spin{to{transform:rotate(360deg)}}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#ffffff1a;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#fff3}@media (width<=768px){.btn-menu-mobile{justify-content:center;align-items:center;display:inline-flex}.sidebar{transition:transform var(--transition);box-shadow:var(--shadow-md);transform:translate(-100%)}.sidebar.mobile-open{transform:translate(0)}.sidebar-backdrop{z-index:49;background:#00000080;position:fixed;inset:0}.admin-content{margin-left:0;padding:16px}.stats-grid{grid-template-columns:1fr 1fr}}.audit-filter-grid{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));align-items:end;gap:12px 16px;display:grid}.audit-filter{flex-direction:column;gap:4px;min-width:0;display:flex}.audit-filter-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;font-size:.75rem}.audit-filter input.form-input,.audit-filter select.inline-select{width:100%}.audit-filter-actions{flex-direction:row;align-items:center;gap:8px}.audit-pagination{background:var(--bg-glass);border:1px solid var(--border-subtle);color:var(--text-secondary);border-radius:10px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-top:16px;padding:12px 16px;font-size:.875rem;display:flex}.audit-pagination-controls{align-items:center;gap:12px;display:flex}.audit-pagination-page{color:var(--text-primary);font-variant-numeric:tabular-nums;text-align:center;min-width:6rem}.audit-pagination .btn-link:disabled{opacity:.4;cursor:not-allowed}.audit-details{min-width:18rem;max-width:32rem}.audit-details-toggle{border:1px dashed var(--border-subtle);width:100%;color:var(--text-secondary);cursor:pointer;text-align:left;background:0 0;border-radius:6px;justify-content:space-between;align-items:center;gap:8px;padding:4px 8px;font-size:.8rem;transition:background .15s,border-color .15s;display:flex}.audit-details-toggle:hover{background:var(--bg-glass-hover);border-color:var(--border-accent);color:var(--text-primary)}.audit-details-summary{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;overflow:hidden}.audit-details-caret{color:var(--text-muted);flex-shrink:0;font-size:.7rem}.audit-details-json{border:1px solid var(--border-subtle);color:var(--text-primary);white-space:pre;background:#00000059;border-radius:6px;max-height:240px;margin:6px 0 0;padding:10px 12px;font-family:ui-monospace,SF Mono,Menlo,Consolas,monospace;font-size:.75rem;line-height:1.4;overflow:auto}
