:root{--bg-canvas:#090d16;--bg-surface:#101726;--bg-surface-elevated:#162035;--bg-surface-hover:#1c2842;--bg-surface-active:#223150;--glass-bg:#101726bf;--glass-bg-elevated:#162035d9;--glass-border:#ffffff14;--glass-border-hover:#ffffff26;--glass-border-active:#3b82f666;--border-subtle:#1e293b;--border-default:#2d3748;--border-focus:#3b82f6;--primary:#3b82f6;--primary-hover:#2563eb;--primary-active:#1d4ed8;--primary-subtle:#3b82f61f;--primary-glow:#3b82f640;--primary-text:#60a5fa;--success:#10b981;--success-hover:#059669;--success-subtle:#10b9811f;--success-border:#10b9814d;--success-text:#34d399;--warning:#f59e0b;--warning-hover:#d97706;--warning-subtle:#f59e0b1f;--warning-border:#f59e0b4d;--warning-text:#fbbf24;--danger:#f43f5e;--danger-hover:#e11d48;--danger-subtle:#f43f5e1f;--danger-border:#f43f5e4d;--danger-text:#fb7185;--purple:#8b5cf6;--purple-subtle:#8b5cf61f;--purple-border:#8b5cf64d;--purple-text:#a78bfa;--cyan:#06b6d4;--cyan-subtle:#06b6d41f;--cyan-border:#06b6d44d;--cyan-text:#22d3ee;--text-main:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#94a3b8;--text-dim:#64748b;--font-sans:"Prompt", "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, Menlo, Monaco, Consolas, monospace;--radius-xs:4px;--radius-sm:6px;--radius-md:10px;--radius-lg:14px;--radius-xl:20px;--radius-full:9999px;--shadow-sm:0 1px 2px 0 #00000040;--shadow-md:0 4px 12px -2px #00000059;--shadow-lg:0 10px 25px -3px #00000073;--shadow-glow:0 0 20px #3b82f633;--transition-fast:.15s cubic-bezier(.4, 0, .2, 1);--transition-normal:.25s cubic-bezier(.4, 0, .2, 1)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-size:15px;line-height:1.6}body{font-family:var(--font-sans);background-color:var(--bg-canvas);color:var(--text-main);text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden}#root{flex-direction:column;width:100%;min-height:100vh;display:flex}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-canvas)}::-webkit-scrollbar-thumb{border-radius:var(--radius-full);background:#243048}::-webkit-scrollbar-thumb:hover{background:#334366}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}h1,h2,h3,h4,h5,h6{font-family:var(--font-sans);color:var(--text-main);font-weight:600;line-height:1.3}p{color:var(--text-secondary)}a{color:var(--primary-text);transition:color var(--transition-fast);text-decoration:none}a:hover{color:var(--text-main)}code,pre{font-family:var(--font-mono)}.app-root{background-color:var(--bg-canvas);background-image:radial-gradient(at 10% 10%,#3b82f60d 0,#0000 50%),radial-gradient(at 90% 90%,#8b5cf60a 0,#0000 50%);flex-direction:column;width:100%;min-height:100vh;display:flex}.main-viewport{flex-direction:column;flex:1;gap:24px;width:100%;max-width:1280px;margin:0 auto;padding:28px 24px 48px;display:flex}@media (width<=768px){.main-viewport{gap:16px;padding:16px 14px 32px}}.top-navbar{background:var(--glass-bg);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--glass-border);z-index:100;width:100%;height:68px;transition:all var(--transition-normal);justify-content:space-between;align-items:center;padding:0 28px;display:flex;position:sticky;top:0}@media (width<=768px){.top-navbar{height:62px;padding:0 16px}}.navbar-left{align-items:center;gap:28px;display:flex}.nav-brand-logo{color:var(--text-main);letter-spacing:-.3px;transition:transform var(--transition-fast);align-items:center;gap:10px;font-size:17px;font-weight:700;text-decoration:none;display:flex}.nav-brand-logo:hover{transform:translateY(-1px)}.nav-brand-icon-box{border-radius:var(--radius-md);color:#fff;background:linear-gradient(135deg,#3b82f6 0%,#8b5cf6 100%);justify-content:center;align-items:center;width:36px;height:36px;display:flex;box-shadow:0 0 16px #3b82f659}.nav-brand-text{flex-direction:column;display:flex}.nav-brand-title{background:linear-gradient(90deg,#fff,#93c5fd);-webkit-text-fill-color:transparent;-webkit-background-clip:text;font-size:16px;font-weight:700;line-height:1.1}.nav-brand-subtitle{color:var(--text-muted);letter-spacing:.5px;text-transform:uppercase;font-size:10px;font-weight:500}.nav-links-group{align-items:center;gap:4px;display:flex}.nav-link-btn{border-radius:var(--radius-md);color:var(--text-muted);transition:all var(--transition-fast);border:1px solid #0000;align-items:center;gap:8px;padding:8px 14px;font-size:13.5px;font-weight:500;text-decoration:none;display:inline-flex}.nav-link-btn:hover{color:var(--text-main);background-color:var(--bg-surface-hover);border-color:var(--glass-border)}.nav-link-btn.active{color:var(--primary-text);background-color:var(--primary-subtle);border-color:var(--primary-glow);font-weight:600}.navbar-right{align-items:center;gap:12px;display:flex}.dropdown-container{position:relative}.user-btn{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-main);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:10px;padding:6px 14px 6px 8px;font-size:13.5px;font-weight:500;display:flex}.user-btn:hover,.user-btn.active{background:var(--bg-surface-hover);border-color:var(--primary);box-shadow:0 0 12px var(--primary-subtle)}.navbar-avatar-mini{border-radius:var(--radius-full);object-fit:cover;border:1.5px solid var(--primary);width:28px;height:28px}.navbar-avatar-placeholder{border-radius:var(--radius-full);width:28px;height:28px;color:var(--primary-text);border:1.5px solid var(--primary);background:linear-gradient(135deg,#1e293b 0%,#334155 100%);justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.dropdown-menu{background:var(--bg-surface-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg), 0 0 24px #00000080;z-index:200;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);transform-origin:100% 0;min-width:280px;padding:8px;animation:.18s cubic-bezier(.16,1,.3,1) dropdownPop;position:absolute;top:calc(100% + 10px);right:0}@keyframes dropdownPop{0%{opacity:0;transform:scale(.95)translateY(-6px)}to{opacity:1;transform:scale(1)translateY(0)}}.dropdown-user-header{background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--glass-border);align-items:center;gap:12px;margin-bottom:6px;padding:12px 14px;display:flex}.dropdown-avatar-thumb{border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--primary);flex-shrink:0;width:44px;height:44px}.dropdown-username{color:var(--text-main);font-size:14px;font-weight:600}.dropdown-email{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;max-width:170px;font-size:12px;overflow:hidden}.dropdown-pending-email{background:var(--warning-subtle);border:1px dashed var(--warning-border);border-radius:var(--radius-sm);color:var(--warning-text);margin:6px 0;padding:8px 10px;font-size:11.5px;line-height:1.4}.dropdown-divider{background-color:var(--border-subtle);height:1px;margin:6px 0}.dropdown-section-title{color:var(--text-dim);text-transform:uppercase;letter-spacing:.6px;padding:6px 12px 2px;font-size:10.5px;font-weight:700}.dropdown-item{width:100%;color:var(--text-secondary);border-radius:var(--radius-sm);text-align:left;cursor:pointer;transition:all var(--transition-fast);background:0 0;border:none;align-items:center;gap:10px;padding:9px 12px;font-size:13px;font-weight:500;text-decoration:none;display:flex}.dropdown-item:hover{background-color:var(--bg-surface-hover);color:var(--text-main)}.dropdown-item.active{background-color:var(--primary-subtle);color:var(--primary-text);font-weight:600}.dropdown-item.danger:hover{background-color:var(--danger-subtle);color:var(--danger-text)}.content-card{background:var(--glass-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);-webkit-backdrop-filter:blur(12px);transition:border-color var(--transition-normal);padding:24px 28px}.content-card:hover{border-color:var(--glass-border-hover)}.content-card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:20px;display:flex}.content-card-title{color:var(--text-main);align-items:center;gap:10px;font-size:18px;font-weight:600;display:flex}.sub-text{color:var(--text-muted);margin-top:4px;font-size:13px}.btn-primary{color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border:1px solid #ffffff26;justify-content:center;align-items:center;gap:8px;padding:9px 18px;font-size:13.5px;font-weight:600;text-decoration:none;display:inline-flex;box-shadow:0 2px 8px #3b82f64d}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#60a5fa 0%,#3b82f6 100%);transform:translateY(-1px);box-shadow:0 4px 14px #3b82f673}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.btn-secondary{background:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:500;text-decoration:none;display:inline-flex}.btn-secondary:hover:not(:disabled){background:var(--bg-surface-hover);color:var(--text-main);border-color:var(--glass-border-hover);transform:translateY(-1px)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.btn-logout,.btn-danger{color:#fff;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:linear-gradient(135deg,#f43f5e 0%,#e11d48 100%);border:1px solid #ffffff26;justify-content:center;align-items:center;gap:8px;padding:8px 16px;font-size:13px;font-weight:600;display:inline-flex;box-shadow:0 2px 8px #f43f5e4d}.btn-logout:hover:not(:disabled),.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,#fb7185 0%,#f43f5e 100%);transform:translateY(-1px);box-shadow:0 4px 14px #f43f5e73}.btn-logout:disabled,.btn-danger:disabled{opacity:.5;cursor:not-allowed}.btn-table-action{border-radius:var(--radius-sm);cursor:pointer;transition:all var(--transition-fast);border:1px solid #0000;justify-content:center;align-items:center;gap:6px;padding:6px 10px;font-size:12px;font-weight:600;display:inline-flex}.btn-action-key{color:var(--primary-text);background:#3b82f61f;border-color:#3b82f64d}.btn-action-key:hover:not(:disabled){background:var(--primary);color:#fff;transform:translateY(-1px);box-shadow:0 0 10px #3b82f666}.btn-ban{background:var(--warning-subtle);color:var(--warning-text);border-color:var(--warning-border)}.btn-ban:hover:not(:disabled){background:var(--warning);color:#090d16;transform:translateY(-1px);box-shadow:0 0 10px #f59e0b66}.btn-unban{background:var(--success-subtle);color:var(--success-text);border-color:var(--success-border)}.btn-unban:hover:not(:disabled){background:var(--success);color:#fff;transform:translateY(-1px);box-shadow:0 0 10px #10b98166}.btn-delete,.btn-delete-role{background:var(--danger-subtle);color:var(--danger-text);border-color:var(--danger-border)}.btn-delete:hover:not(:disabled),.btn-delete-role:hover:not(:disabled){background:var(--danger);color:#fff;transform:translateY(-1px);box-shadow:0 0 10px #f43f5e66}.btn-secondary-danger{color:var(--danger-text);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);background:#f43f5e14;border:1px solid #f43f5e47;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:500;display:inline-flex}.btn-secondary-danger:hover:not(:disabled){background:var(--danger);color:#fff;border-color:var(--danger);transform:translateY(-1px);box-shadow:0 2px 10px #f43f5e59}.btn-clear-filter{color:var(--danger-text);border-radius:var(--radius-full);cursor:pointer;transition:all var(--transition-fast);background:#f43f5e1a;border:1px solid #f43f5e40;align-items:center;gap:5px;padding:3px 10px;font-size:12px;font-weight:500;display:inline-flex}.btn-clear-filter:hover{background:var(--danger);color:#fff;border-color:var(--danger);transform:translateY(-1px)}.modal-close-btn{border-radius:var(--radius-sm);border:1px solid var(--border-subtle);width:32px;height:32px;color:var(--text-muted);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0d;justify-content:center;align-items:center;display:flex}.modal-close-btn:hover{color:var(--danger-text);background:#f43f5e26;border-color:#f43f5e66;transform:scale(1.05)}.btn-sm{border-radius:var(--radius-sm);padding:5px 12px;font-size:12px}.btn-xs{border-radius:var(--radius-xs);padding:3px 8px;font-size:11px}.btn-table-action:disabled{opacity:.4;cursor:not-allowed}.auth-form{flex-direction:column;gap:16px;display:flex}.input-group{text-align:left;flex-direction:column;gap:6px;display:flex}.input-group label{color:var(--text-secondary);font-size:13px;font-weight:500}.input-icon-wrapper{align-items:center;width:100%;display:flex;position:relative}.input-icon-left{color:var(--text-muted);pointer-events:none;z-index:2;justify-content:center;align-items:center;display:flex;position:absolute;left:12px}.input-icon-right-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);transition:color var(--transition-fast);z-index:2;background:0 0;border:none;justify-content:center;align-items:center;padding:6px;display:flex;position:absolute;right:8px}.input-icon-right-btn:hover{color:var(--text-main)}.custom-input,.input-group input,.control-group input,.table-controls input,.search-box input,textarea.custom-input{background-color:var(--bg-canvas);border:1.5px solid var(--border-default);border-radius:var(--radius-md);width:100%;color:var(--text-main);font-family:var(--font-sans);height:40px;transition:all var(--transition-fast);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;outline:none;padding:9px 14px;font-size:13.5px}textarea.custom-input{resize:vertical;height:auto;min-height:75px;padding:10px 14px;line-height:1.5}.custom-input::placeholder,.input-group input::placeholder,.control-group input::placeholder,.table-controls input::placeholder,.search-box input::placeholder,textarea.custom-input::placeholder{color:#94a3b88c;font-size:13px}.custom-input:hover:not(:disabled),.input-group input:hover:not(:disabled),.control-group input:hover:not(:disabled),.table-controls input:hover:not(:disabled),.search-box input:hover:not(:disabled),textarea.custom-input:hover:not(:disabled){border-color:#ffffff38}.custom-input:focus,.input-group input:focus,.control-group input:focus,.table-controls input:focus,.search-box input:focus,textarea.custom-input:focus{border-color:var(--primary);background-color:var(--bg-surface-elevated);box-shadow:0 0 0 3px #3b82f640}.custom-input:disabled,.input-group input:disabled,.control-group input:disabled,.table-controls input:disabled,.search-box input:disabled,textarea.custom-input:disabled{opacity:.55;cursor:not-allowed;background-color:#0f172a99;border-color:#ffffff0f}input[type=date]::-webkit-calendar-picker-indicator{filter:invert(.85)brightness(1.2);cursor:pointer;opacity:.75;transition:opacity var(--transition-fast)}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:1}input[type=range]{appearance:none;background:var(--bg-canvas);border:1px solid var(--border-default);border-radius:9999px;outline:none;width:100%;height:6px}input[type=range]::-webkit-slider-thumb{appearance:none;background:var(--primary);cursor:pointer;border:2px solid #fff;border-radius:50%;width:18px;height:18px;transition:transform .15s;box-shadow:0 0 10px #3b82f699}input[type=range]::-webkit-slider-thumb:hover{transform:scale(1.2)}.custom-input.with-left-icon,.input-group input.with-left-icon,.control-group input.with-left-icon,.table-controls input.with-left-icon,.search-box input.with-left-icon{padding-left:38px}.custom-input.with-right-btn,.input-group input.with-right-btn,.control-group input.with-right-btn,.table-controls input.with-right-btn,.search-box input.with-right-btn{padding-right:38px}.custom-select,.table-controls select,.control-group select{background-color:var(--bg-canvas);border:1.5px solid var(--border-default);color:var(--text-main);border-radius:var(--radius-md);font-family:var(--font-sans);cursor:pointer;height:40px;transition:all var(--transition-fast);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;outline:none;padding:8px 14px;font-size:13px}.custom-select:hover:not(:disabled),.table-controls select:hover:not(:disabled),.control-group select:hover:not(:disabled){border-color:#ffffff38}.custom-select:focus,.table-controls select:focus,.control-group select:focus{border-color:var(--primary);background-color:var(--bg-surface-elevated);box-shadow:0 0 0 3px #3b82f640}.custom-select option,select option{color:#f8fafc;background-color:#0f172a;padding:8px 12px}.submit-btn{color:#fff;border-radius:var(--radius-md);cursor:pointer;width:100%;transition:all var(--transition-fast);background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);border:1px solid #ffffff26;justify-content:center;align-items:center;gap:8px;margin-top:8px;padding:12px;font-size:14.5px;font-weight:600;display:flex;box-shadow:0 4px 14px #3b82f659}.submit-btn:hover:not(:disabled){background:linear-gradient(135deg,#60a5fa 0%,#3b82f6 100%);transform:translateY(-1px);box-shadow:0 6px 18px #3b82f680}.submit-btn:disabled{opacity:.6;cursor:not-allowed;box-shadow:none;transform:none}.auth-wrapper{background-color:var(--bg-canvas);background-image:radial-gradient(circle at 50% 20%,#3b82f61f 0%,#0000 60%),radial-gradient(circle at 80% 80%,#8b5cf614 0%,#0000 50%);justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.auth-card{background:var(--glass-bg-elevated);border:1px solid var(--border-default);border-radius:var(--radius-xl);width:100%;max-width:440px;box-shadow:var(--shadow-lg), 0 0 40px #0009;-webkit-backdrop-filter:blur(24px);padding:36px 32px;animation:.3s ease-out authCardFade}@keyframes authCardFade{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.auth-brand-header{text-align:center;flex-direction:column;align-items:center;margin-bottom:24px;display:flex}.auth-tabs{background-color:var(--bg-canvas);border-radius:var(--radius-md);border:1px solid var(--border-subtle);margin-bottom:24px;padding:4px;display:flex;position:relative}.tab-btn{color:var(--text-muted);border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;transition:all var(--transition-fast);background:0 0;border:none;flex:1;justify-content:center;align-items:center;gap:4px;padding:9px 4px;font-size:13px;font-weight:600;display:flex}.tab-btn:hover{color:var(--text-main)}.tab-btn.active{background-color:var(--bg-surface-elevated);color:var(--primary-text);box-shadow:var(--shadow-sm)}.auth-header{text-align:center;margin-bottom:20px}.auth-header h2{margin:0 0 6px;font-size:22px;font-weight:700}.status-badge{border-radius:var(--radius-md);align-items:center;gap:10px;margin-bottom:16px;padding:10px 16px;font-size:13px;line-height:1.4;display:flex}.badge-success{background-color:var(--success-subtle);border:1px solid var(--success-border);color:var(--success-text)}.badge-error,.error-badge{background-color:var(--danger-subtle);border:1px solid var(--danger-border);color:var(--danger-text);border-radius:var(--radius-md);align-items:center;gap:10px;margin-bottom:16px;padding:10px 16px;font-size:13px;display:flex}.badge-warning{background-color:var(--warning-subtle);border:1px solid var(--warning-border);color:var(--warning-text)}.role-pill{border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:700;display:inline-flex}.role-pill.role-admin{background:var(--purple-subtle);border:1px solid var(--purple-border);color:var(--purple-text)}.role-pill.role-user{background:var(--primary-subtle);border:1px solid var(--primary-glow);color:var(--primary-text)}.role-pill:not(.role-admin):not(.role-user){background:var(--cyan-subtle);border:1px solid var(--cyan-border);color:var(--cyan-text)}.status-pill{border-radius:var(--radius-full);align-items:center;gap:6px;padding:3px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.pill-active{background:var(--success-subtle);color:var(--success-text);border:1px solid var(--success-border)}.pill-banned{background:var(--danger-subtle);color:var(--danger-text);border:1px solid var(--danger-border)}.pulse-dot{background-color:currentColor;border-radius:50%;width:7px;height:7px;box-shadow:0 0 8px}.user-identity-text{font-family:var(--font-mono);color:var(--primary-text);font-size:13px;font-weight:600}.table-responsive{border-radius:var(--radius-md);border:1px solid var(--border-subtle);background:var(--bg-surface);margin-top:12px;overflow-x:auto}.logs-table{border-collapse:collapse;text-align:left;width:100%;font-size:13.5px}.logs-table th{background-color:var(--bg-surface-elevated);color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border-default);white-space:nowrap;padding:12px 16px;font-size:12px;font-weight:600}.logs-table td{border-bottom:1px solid var(--border-subtle);color:var(--text-secondary);padding:13px 16px}.logs-table tr:last-child td{border-bottom:none}.logs-table tbody tr{transition:background-color var(--transition-fast)}.logs-table tbody tr:hover{background-color:var(--bg-surface-hover)}.log-user-tag{background-color:var(--bg-surface-elevated);color:var(--primary-text);border-radius:var(--radius-xs);font-family:var(--font-mono);border:1px solid var(--border-subtle);padding:3px 8px;font-size:12px;font-weight:500}.log-action-badge{border-radius:var(--radius-sm);letter-spacing:.2px;background-color:var(--bg-surface-elevated);color:var(--text-secondary);border:1px solid var(--border-default);white-space:nowrap;align-items:center;gap:6px;padding:4px 10px;font-size:11.5px;font-weight:600;display:inline-flex}.badge-variant-success,.action-login,.action-create-role,.action-admin-create-user,.action-unban-user{background-color:var(--success-subtle);color:var(--success-text);border:1px solid var(--success-border)}.badge-variant-danger,.action-logout,.action-delete-role,.action-delete-user,.action-ban-user,.action-logs-cleanup{background-color:var(--danger-subtle);color:var(--danger-text);border:1px solid var(--danger-border)}.badge-variant-primary,.action-register,.action-create-user{background-color:var(--primary-subtle);color:var(--primary-text);border:1px solid var(--primary-glow)}.badge-variant-warning,.action-update-profile,.action-update-avatar{background-color:var(--warning-subtle);color:var(--warning-text);border:1px solid var(--warning-border)}.badge-variant-purple,.action-change-user-role,.action-admin-reset-password,.action-forgot-password,.action-update-role-permissions{background-color:var(--purple-subtle);color:var(--purple-text);border:1px solid var(--purple-border)}.badge-variant-cyan,.action-update-site-settings,.action-reset-site-settings{background-color:var(--cyan-subtle);color:var(--cyan-text);border:1px solid var(--cyan-border)}.badge-variant-neutral{background-color:var(--bg-surface-elevated);color:var(--text-muted);border:1px solid var(--border-subtle)}.table-controls{background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle);flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:16px;padding:16px;display:flex}.control-group{flex-direction:column;gap:6px;display:flex}.control-group label{color:var(--text-muted);align-items:center;gap:5px;font-size:12px;font-weight:600;display:flex}.search-box{flex:1;min-width:260px}.chips-bar{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:14px;display:flex}.chip-item{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-full);color:var(--text-secondary);align-items:center;gap:6px;padding:4px 12px;font-size:12.5px;display:inline-flex}.chip-item strong{color:var(--primary-text)}.welcome-banner{border:1px solid var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);background:linear-gradient(135deg,#162035e6 0%,#101726e6 100%);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px;padding:24px 28px;display:flex;position:relative;overflow:hidden}.welcome-banner:before{content:"";pointer-events:none;background:radial-gradient(circle,#3b82f626 0%,#0000 70%);width:200px;height:200px;position:absolute;top:-50px;right:-50px}.banner-avatar{border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--primary);width:58px;height:58px;box-shadow:0 0 16px #3b82f659}.banner-avatar-placeholder{border-radius:var(--radius-full);width:58px;height:58px;color:var(--primary-text);border:2px solid var(--primary);background:linear-gradient(135deg,#1e293b 0%,#334155 100%);justify-content:center;align-items:center;font-size:22px;font-weight:700;display:flex;box-shadow:0 0 16px #3b82f640}.stat-grid{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;display:grid}.stat-card{background:var(--glass-bg);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:all var(--transition-normal);align-items:center;gap:16px;padding:20px 22px;display:flex;position:relative;overflow:hidden}.stat-card:hover{border-color:var(--glass-border-hover);box-shadow:var(--shadow-md);transform:translateY(-2px)}.stat-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.stat-blue{background:var(--primary-subtle);color:var(--primary-text);border:1px solid var(--primary-glow)}.stat-red{background:var(--danger-subtle);color:var(--danger-text);border:1px solid var(--danger-border)}.stat-green{background:var(--success-subtle);color:var(--success-text);border:1px solid var(--success-border)}.stat-purple{background:var(--purple-subtle);color:var(--purple-text);border:1px solid var(--purple-border)}.stat-info{flex-direction:column;display:flex}.stat-label{color:var(--text-muted);font-size:13px;font-weight:500}.stat-value{color:var(--text-main);margin-top:2px;font-size:26px;font-weight:700;line-height:1.2}.quick-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-top:14px;display:grid}.quick-action-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:all var(--transition-fast);align-items:center;gap:14px;padding:16px;text-decoration:none;display:flex}.quick-action-card:hover{background:var(--bg-surface-hover);border-color:var(--primary);transform:translateY(-2px)}.quick-action-icon{border-radius:var(--radius-md);background:var(--primary-subtle);width:40px;height:40px;color:var(--primary-text);flex-shrink:0;justify-content:center;align-items:center;display:flex}.quick-action-title{color:var(--text-main);font-size:14px;font-weight:600}.quick-action-desc{color:var(--text-muted);margin-top:2px;font-size:12px}.modal-overlay{-webkit-backdrop-filter:blur(6px);z-index:1000;background-color:#000000c7;justify-content:center;align-items:center;width:100vw;height:100vh;padding:16px;animation:.2s ease-out modalFadeIn;display:flex;position:fixed;top:0;left:0}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:var(--bg-surface-elevated);border:1px solid var(--border-default);border-radius:var(--radius-lg);width:100%;max-width:480px;padding:26px 28px;animation:.22s cubic-bezier(.16,1,.3,1) modalPopUp;box-shadow:0 20px 45px #0009}@keyframes modalPopUp{0%{transform:scale(.94)translateY(10px)}to{transform:scale(1)translateY(0)}}.modal-danger{border-color:var(--danger-border)}.modal-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.modal-title{color:var(--text-main);align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.pagination-bar{border-top:1px solid var(--border-subtle);justify-content:center;align-items:center;gap:16px;margin-top:20px;padding-top:16px;display:flex}.btn-pagination{background-color:var(--bg-surface);border:1px solid var(--border-default);color:var(--text-secondary);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);align-items:center;gap:6px;padding:7px 16px;font-size:13px;font-weight:500;display:inline-flex}.btn-pagination:hover:not(:disabled){background-color:var(--bg-surface-hover);color:var(--primary-text);border-color:var(--primary)}.btn-pagination:disabled{opacity:.4;cursor:not-allowed}.pagination-info{color:var(--text-muted);font-size:13px}.pagination-info strong{color:var(--text-main)}.avatar-upload-section{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);align-items:center;gap:24px;margin-top:16px;padding:16px;display:flex}.avatar-preview-box{flex-shrink:0;width:84px;height:84px;position:relative}.avatar-img-large{border-radius:var(--radius-full);object-fit:cover;border:2px solid var(--primary);width:84px;height:84px;box-shadow:0 0 16px #3b82f64d}.avatar-placeholder-large{border-radius:var(--radius-full);width:84px;height:84px;color:var(--primary-text);border:2px solid var(--primary);background:linear-gradient(135deg,#1e293b 0%,#334155 100%);justify-content:center;align-items:center;font-size:32px;font-weight:700;display:flex}.matrix-wrapper{border-radius:var(--radius-md);border:1px solid var(--border-default);background:var(--bg-surface);max-height:600px;position:relative;overflow:auto}.matrix-table{border-collapse:separate;border-spacing:0;width:100%;font-size:13.5px}.matrix-table thead th{z-index:20;color:var(--text-main);border-bottom:2px solid var(--border-default);white-space:nowrap;background:#151e2e;padding:12px 16px;font-weight:600;position:sticky;top:0}.matrix-table .matrix-sticky-left{z-index:10;border-right:1.5px solid var(--border-default);background:#0d1522;min-width:280px;max-width:340px;position:sticky;left:0;box-shadow:4px 0 10px #00000059}.matrix-table .matrix-sticky-corner{z-index:30;border-right:1.5px solid var(--border-default);border-bottom:2px solid var(--border-default);background:#151e2e;min-width:280px;position:sticky;top:0;left:0;box-shadow:4px 0 10px #00000059}.matrix-table tbody tr:hover td{background-color:#3b82f60a}.matrix-table tbody tr:hover .matrix-sticky-left{background-color:#131c2d}.matrix-table td{border-bottom:1px solid var(--border-subtle);vertical-align:middle;background:var(--bg-surface);padding:12px 14px}.matrix-category-row{background:linear-gradient(90deg,#1e293be6 0%,#0f172a99 100%)!important}.matrix-category-cell{letter-spacing:.3px;border-top:1px solid var(--border-default)!important;border-bottom:1px solid var(--border-default)!important;padding:10px 16px!important;font-size:13px!important;font-weight:700!important}.matrix-checkbox{width:20px;height:20px;accent-color:var(--primary);cursor:pointer;border-radius:4px;transition:transform .15s}.matrix-checkbox:hover{transform:scale(1.15)}.matrix-role-header-box{flex-direction:column;align-items:center;gap:6px;display:flex}.matrix-role-quick-btn{border:1px solid var(--border-subtle);color:var(--text-muted);border-radius:var(--radius-xs);cursor:pointer;transition:all var(--transition-fast);background:#ffffff0f;padding:2px 7px;font-size:10px}.matrix-role-quick-btn:hover{background:var(--primary);color:#fff;border-color:var(--primary)}.matrix-role-quick-btn.btn-clear:hover{background:var(--danger);border-color:var(--danger)}.spin-loader{animation:1s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.toast-container{z-index:99999;pointer-events:none;flex-direction:column;gap:10px;width:calc(100vw - 48px);max-width:420px;display:flex;position:fixed;top:24px;right:24px}.toast-item{border-radius:var(--radius-md);-webkit-backdrop-filter:blur(16px);pointer-events:auto;color:var(--text-main);border:1px solid #0000;align-items:center;gap:12px;padding:12px 16px;font-size:13.5px;animation:.25s cubic-bezier(.16,1,.3,1) toastSlideIn;display:flex;box-shadow:0 10px 30px #00000080,0 0 15px #0000004d}@keyframes toastSlideIn{0%{opacity:0;transform:translate(40px)scale(.95)}to{opacity:1;transform:translate(0)scale(1)}}.toast-item.toast-success{color:#ecfdf5;background:#10b98126;border-color:#10b98166}.toast-item.toast-success .toast-icon{color:#34d399}.toast-item.toast-error{color:#fff1f2;background:#f43f5e26;border-color:#f43f5e66}.toast-item.toast-error .toast-icon{color:#fb7185}.toast-item.toast-warning{color:#fffbeb;background:#f59e0b26;border-color:#f59e0b66}.toast-item.toast-warning .toast-icon{color:#fbbf24}.toast-item.toast-info{color:#eff6ff;background:#3b82f626;border-color:#3b82f666}.toast-item.toast-info .toast-icon{color:#60a5fa}.toast-icon{flex-shrink:0;justify-content:center;align-items:center;display:flex}.toast-content{flex:1;line-height:1.4}.toast-close-btn{color:var(--text-muted);cursor:pointer;border-radius:var(--radius-xs);transition:color var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;padding:4px;display:flex}.toast-close-btn:hover{color:var(--text-main)}
