:root{--rp-bg-primary:#fff;--rp-bg-secondary:#f8fafc;--rp-bg-tertiary:#f1f5f9;--rp-text-primary:#0f172a;--rp-text-secondary:#475569;--rp-text-muted:#64748b;--rp-border:#e2e8f0;--rp-border-light:#f1f5f9;--rp-brand:#3b82f6;--rp-brand-hover:#2563eb;--rp-brand-light:#eff6ff;--rp-success:#16a34a;--rp-success-light:#dcfce7;--rp-warning:#d97706;--rp-warning-light:#fef3c7;--rp-danger:#dc2626;--rp-danger-light:#fee2e2;--rp-purple:#4f46e5;--rp-purple-light:#e0e7ff;--rp-shadow:#0000000d;--rp-shadow-md:#0000001a}@media (prefers-color-scheme:dark){:root{--rp-bg-primary:#1e293b;--rp-bg-secondary:#0f172a;--rp-bg-tertiary:#334155;--rp-text-primary:#f1f5f9;--rp-text-secondary:#cbd5e1;--rp-text-muted:#94a3b8;--rp-border:#334155;--rp-border-light:#1e293b;--rp-brand:#60a5fa;--rp-brand-hover:#3b82f6;--rp-brand-light:#1e3a5f;--rp-success:#34d399;--rp-success-light:#064e3b;--rp-warning:#fbbf24;--rp-warning-light:#78350f;--rp-danger:#f87171;--rp-danger-light:#7f1d1d;--rp-purple:#a855f7;--rp-purple-light:#4c1d95;--rp-shadow:#0003;--rp-shadow-md:#0000004d}}.dark-mode{--rp-bg-primary:#1e293b;--rp-bg-secondary:#0f172a;--rp-bg-tertiary:#334155;--rp-text-primary:#f1f5f9;--rp-text-secondary:#cbd5e1;--rp-text-muted:#94a3b8;--rp-border:#334155;--rp-border-light:#1e293b;--rp-brand:#60a5fa;--rp-brand-hover:#3b82f6;--rp-brand-light:#1e3a5f;--rp-success:#34d399;--rp-success-light:#064e3b;--rp-warning:#fbbf24;--rp-warning-light:#78350f;--rp-danger:#f87171;--rp-danger-light:#7f1d1d;--rp-purple:#a855f7;--rp-purple-light:#4c1d95;--rp-shadow:#0003;--rp-shadow-md:#0000004d}.light-mode{--rp-bg-primary:#fff;--rp-bg-secondary:#f8fafc;--rp-bg-tertiary:#f1f5f9;--rp-text-primary:#0f172a;--rp-text-secondary:#475569;--rp-text-muted:#64748b;--rp-border:#e2e8f0;--rp-border-light:#f1f5f9;--rp-brand:#3b82f6;--rp-brand-hover:#2563eb;--rp-brand-light:#eff6ff;--rp-success:#16a34a;--rp-success-light:#dcfce7;--rp-warning:#d97706;--rp-warning-light:#fef3c7;--rp-danger:#dc2626;--rp-danger-light:#fee2e2;--rp-purple:#4f46e5;--rp-purple-light:#e0e7ff;--rp-shadow:#0000000d;--rp-shadow-md:#0000001a}.role-permissions-page{background:var(--rp-bg-secondary);min-height:100vh;padding:1.5rem}.page-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1rem;display:flex}.header-info h2{color:var(--rp-text-primary);align-items:center;gap:.5rem;margin:0 0 .25rem;font-size:1.5rem;font-weight:600;display:flex}.header-info p{color:var(--rp-text-muted);margin:0;font-size:.875rem}.loading-container{flex-direction:column;justify-content:center;align-items:center;gap:1rem;padding:3rem;display:flex}.spinner{border:3px solid var(--rp-border);border-top-color:var(--rp-brand);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.users-table-container{background:var(--rp-bg-primary);border:1px solid var(--rp-border);border-radius:16px;overflow-x:auto}.users-table{border-collapse:collapse;width:100%;font-size:.875rem}.users-table th{text-align:left;background:var(--rp-bg-secondary);border-bottom:2px solid var(--rp-border);color:var(--rp-text-muted);padding:1rem;font-weight:600}.users-table td{border-bottom:1px solid var(--rp-border);vertical-align:middle;color:var(--rp-text-secondary);padding:1rem}.users-table tr:last-child td{border-bottom:none}.users-table tr:hover{background:var(--rp-bg-tertiary)}.user-cell{width:20%}.user-info{align-items:center;gap:.75rem;display:flex}.user-icon-placeholder{background:var(--rp-bg-tertiary);width:36px;height:36px;color:var(--rp-text-muted);border-radius:50%;justify-content:center;align-items:center;display:flex}.user-name{color:var(--rp-text-primary);font-weight:500}.user-email{color:var(--rp-text-muted);font-size:.8rem}.permissions-cell .permission-summary{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.permissions-cell .permission-summary span{background:var(--rp-bg-tertiary);color:var(--rp-text-secondary);border-radius:12px;align-items:center;gap:.25rem;padding:.25rem .6rem;font-size:.7rem;display:inline-flex}.permissions-cell .permission-summary span svg{color:var(--rp-brand);font-size:.65rem}.total-badge{border-radius:12px;align-items:center;gap:.25rem;padding:.25rem .6rem;font-size:.7rem;font-weight:500;display:inline-flex;background:var(--rp-purple-light)!important;color:var(--rp-purple)!important}.role-badge{text-transform:capitalize;border-radius:20px;align-items:center;gap:.4rem;padding:.25rem .75rem;font-size:.75rem;font-weight:500;display:inline-flex}.role-badge.admin{background:var(--rp-warning-light);color:var(--rp-warning)}.role-badge.manager{background:var(--rp-brand-light);color:var(--rp-brand)}.role-badge.staff{background:var(--rp-purple-light);color:var(--rp-purple)}.role-badge.agent{background:var(--rp-success-light);color:var(--rp-success)}.role-badge.dispatcher{background:var(--rp-bg-tertiary);color:var(--rp-text-muted)}.btn-manage{background:var(--rp-brand);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.8rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-manage:hover{background:var(--rp-brand-hover);transform:translateY(-1px)}.empty{text-align:center;color:var(--rp-text-muted);padding:3rem!important}.modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;background:#00000080;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--rp-bg-primary);width:100%;max-width:750px;max-height:90vh;box-shadow:var(--rp-shadow-md);border-radius:16px;animation:.3s slideUp;overflow-y:auto}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.modal-header{border-bottom:1px solid var(--rp-border);background:var(--rp-bg-primary);z-index:10;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex;position:sticky;top:0}.modal-header h3{color:var(--rp-text-primary);align-items:center;gap:.5rem;margin:0;font-size:1.125rem;font-weight:600;display:flex}.modal-close{cursor:pointer;color:var(--rp-danger);background:0 0;border:none;justify-content:center;align-items:center;padding:0;font-size:1.25rem;transition:color .2s;display:flex}.modal-close:hover{color:var(--rp-danger);opacity:.8}.user-modal-content{flex-direction:column;gap:1.5rem;padding:1.5rem;display:flex}.user-section{background:var(--rp-bg-secondary);border:1px solid var(--rp-border);border-radius:12px;padding:1.25rem}.user-section h4{color:var(--rp-text-primary);align-items:center;gap:.5rem;margin:0 0 .5rem;font-size:1rem;font-weight:600;display:flex}.user-section h4 svg{color:var(--rp-brand)}.section-hint{color:var(--rp-text-muted);margin-bottom:1rem;font-size:.75rem}.form-group{flex-direction:column;gap:.5rem;margin-bottom:1rem;display:flex}.form-group label{color:var(--rp-text-primary);font-size:.875rem;font-weight:500}.permission-group{background:var(--rp-bg-primary);border:1px solid var(--rp-border);border-radius:12px;margin-bottom:1.25rem;padding:.75rem}.permission-group-header{border-bottom:1px solid var(--rp-border);align-items:center;gap:.5rem;margin-bottom:.75rem;padding-bottom:.5rem;display:flex}.permission-group-header svg{color:var(--rp-brand);font-size:1rem}.permission-group-header h4{color:var(--rp-text-primary);margin:0;font-size:.875rem;font-weight:600}.permission-buttons{flex-wrap:wrap;gap:.75rem;display:flex}.permission-btn{border:1px solid var(--rp-border);background:var(--rp-bg-primary);cursor:pointer;color:var(--rp-text-secondary);border-radius:8px;align-items:center;gap:.5rem;padding:.5rem .875rem;font-size:.8rem;font-weight:500;transition:all .2s;display:flex}.permission-btn:hover{border-color:var(--rp-brand);transform:translateY(-1px)}.permission-btn.active{background:var(--rp-brand);border-color:var(--rp-brand);color:#fff}.permission-btn.active .check-icon{color:#fff}.permission-btn .check-icon{color:var(--rp-success);font-size:.7rem}.permission-btn .ban-icon{color:var(--rp-text-muted);font-size:.7rem}.btn-secondary{background:var(--rp-bg-tertiary);color:var(--rp-text-secondary);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.5rem 1rem;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-secondary:hover{background:var(--rp-border)}.permission-summary-grid{grid-template-columns:repeat(4,1fr);justify-content:center;align-items:center;gap:1rem;display:flex}.btn-primary{background:var(--rp-brand);color:#fff;cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-primary:hover{background:var(--rp-brand-hover)}.full-width{justify-content:center;width:100%;margin-top:.5rem}.modal-actions{border-top:1px solid var(--rp-border);justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;display:flex}.btn-cancel{background:var(--rp-bg-tertiary);color:var(--rp-text-secondary);cursor:pointer;border:none;border-radius:8px;align-items:center;gap:.5rem;padding:.6rem 1.2rem;font-size:.875rem;font-weight:500;transition:all .2s;display:inline-flex}.btn-cancel:hover{background:var(--rp-border)}.modal::-webkit-scrollbar{width:8px}.modal::-webkit-scrollbar-track{background:var(--rp-bg-tertiary);border-radius:10px}.modal::-webkit-scrollbar-thumb{background:var(--rp-border);border-radius:10px}.modal::-webkit-scrollbar-thumb:hover{background:var(--rp-text-muted)}@media (max-width:1024px){.role-permissions-page{padding:1rem}}@media (max-width:768px){.page-header{flex-direction:column;align-items:flex-start}.users-table th:nth-child(4),.users-table td:nth-child(4){display:none}.modal{max-width:95%;margin:1rem}.user-modal-content,.user-section{padding:1rem}.permission-buttons{flex-direction:column}.permission-btn{justify-content:center;width:100%}.modal-actions{flex-direction:column}.btn-cancel{justify-content:center;width:100%}}@media (max-width:480px){.role-permissions-page{padding:.75rem}.header-info h2{font-size:1.25rem}.users-table th:nth-child(3),.users-table td:nth-child(3){display:none}.permissions-cell .permission-summary{flex-direction:column;gap:.25rem}.permissions-cell .permission-summary span{width:fit-content}.btn-manage{justify-content:center;width:100%}.modal-header{padding:1rem}.user-section h4{font-size:.9rem}}
