.admin-page{max-width:1400px;margin:0 auto;padding:2rem}@media (max-width: 768px){.admin-page{padding:1rem;max-width:100%}.admin-tabs{flex-wrap:wrap;gap:.5rem}.admin-tabs button{padding:.5rem 1rem;font-size:.875rem}.section-header{flex-direction:column;align-items:flex-start;gap:1rem}.section-header h2{font-size:1.5rem}.table-container{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (min-width: 769px) and (max-width: 1024px){.admin-page{padding:1.5rem;max-width:95%}}.admin-tabs{display:flex;gap:.5rem;margin-bottom:2rem;border-bottom:2px solid #e5e7eb}.admin-tabs button{padding:.75rem 1.5rem;background:none;border:none;border-bottom:3px solid transparent;font-size:1rem;font-weight:600;color:#6b7280;cursor:pointer;transition:all .2s;margin-bottom:-2px}.admin-tabs button:hover{color:#1e3a8a}.admin-tabs button.active{color:#1e3a8a;border-bottom-color:#1e3a8a}[data-theme=dark] .admin-tabs{border-bottom-color:#8b5cf64d}[data-theme=dark] .admin-tabs button{color:#9ca3af}[data-theme=dark] .admin-tabs button:hover{color:#a78bfa}[data-theme=dark] .admin-tabs button.active{color:#a78bfa;border-bottom-color:#a78bfa}[data-theme=black] .admin-tabs{border-bottom-color:#d4af374d}[data-theme=black] .admin-tabs button{color:#9ca3af}[data-theme=black] .admin-tabs button:hover{color:#d4af37}[data-theme=black] .admin-tabs button.active{color:#d4af37;border-bottom-color:#d4af37}.admin-section{background:white;padding:2rem;border-radius:12px;box-shadow:0 2px 8px #0000001a}[data-theme=dark] .admin-section{background:rgba(30,41,59,.9);border:1px solid rgba(139,92,246,.2);box-shadow:0 4px 16px #0000004d,0 0 0 1px #8b5cf61a,inset 0 1px #ffffff0d;backdrop-filter:blur(10px)}[data-theme=black] .admin-section{background:rgba(17,24,39,.95);border:1px solid rgba(212,175,55,.2);box-shadow:0 4px 16px #00000080,0 0 0 1px #d4af371a,inset 0 1px #ffffff0d;backdrop-filter:blur(10px)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.section-header h2{color:#1e3a8a;margin:0}[data-theme=dark] .section-header h2{color:#a78bfa}[data-theme=black] .section-header h2{color:#d4af37}.role-badge{padding:.25rem .75rem;border-radius:12px;font-size:.875rem;font-weight:600;text-transform:capitalize;display:inline-block}.role-admin{background-color:#fee2e2;color:#991b1b}.role-company_admin{background-color:#d1fae5;color:#065f46}.role-compliance_manager,.role-user{background-color:#dbeafe;color:#1e40af}.role-partner{background-color:#fef3c7;color:#92400e}[data-theme=dark] .role-admin{background:rgba(239,68,68,.2);color:#fca5a5;border:1px solid rgba(239,68,68,.3)}[data-theme=dark] .role-company_admin{background:rgba(16,185,129,.2);color:#6ee7b7;border:1px solid rgba(16,185,129,.3)}[data-theme=dark] .role-compliance_manager,[data-theme=dark] .role-user{background:rgba(59,130,246,.2);color:#93c5fd;border:1px solid rgba(59,130,246,.3)}[data-theme=dark] .role-partner{background:rgba(245,158,11,.2);color:#fde047;border:1px solid rgba(245,158,11,.3)}.modal-overlay{position:fixed!important;top:0!important;left:0!important;right:0!important;bottom:0!important;background:rgba(0,0,0,.7)!important;backdrop-filter:blur(12px)!important;display:flex!important;justify-content:center!important;align-items:center!important;z-index:99999!important;overflow:hidden!important;overscroll-behavior:contain;animation:overlay-appear .25s ease-out;isolation:isolate;contain:none!important}@keyframes overlay-appear{0%{opacity:0;backdrop-filter:blur(0px)}to{opacity:1;backdrop-filter:blur(12px)}}.modal-content{background:linear-gradient(135deg,rgba(255,255,255,.98) 0%,rgba(248,250,252,.95) 100%);backdrop-filter:blur(30px) saturate(180%);border:1px solid rgba(139,92,246,.25);border-radius:24px;padding:0;width:fit-content;min-width:600px!important;max-width:90vw;max-height:90vh;overflow:hidden;position:relative;box-shadow:0 25px 80px #00000026,0 10px 30px #8b5cf61a,inset 0 1px #ffffffe6;animation:modal-appear .3s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column}@media (max-width: 768px){.admin-page .modal-content{min-width:calc(100vw - 2rem)!important;max-width:calc(100vw - 2rem)!important;width:calc(100vw - 2rem)!important;margin:1rem!important;border-radius:12px!important}.admin-page .modal-header{padding:1.5rem 1.25rem 1rem!important}.admin-page .modal-header h2{font-size:1.5rem!important}.admin-page .modal-body{padding:1.25rem!important}.admin-page .modal-actions{padding:1rem 1.25rem!important;flex-wrap:wrap;gap:.75rem!important}.admin-page .modal-actions button{flex:1;min-width:calc(50% - .375rem)}}@media (min-width: 769px) and (max-width: 1024px){.admin-page .modal-content{min-width:500px!important;max-width:85vw!important}}@keyframes modal-appear{0%{opacity:0;transform:scale(.95) translateY(-20px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-content:before{content:"";position:absolute;top:0;left:0;right:0;height:2px;background:linear-gradient(90deg,transparent 0%,rgba(139,92,246,.6) 25%,rgba(99,102,241,.9) 50%,rgba(139,92,246,.6) 75%,transparent 100%);animation:shimmer-top 3s ease-in-out infinite}@keyframes shimmer-top{0%,to{transform:translate(-100%);opacity:.5}50%{transform:translate(100%);opacity:1}}.modal-header{padding:2rem 2rem 1.5rem;border-bottom:1px solid rgba(139,92,246,.15);position:relative;z-index:1}.modal-header h2{margin:0;font-size:1.75rem;font-weight:800;background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 50%,#3b82f6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.modal-body{padding:2rem;overflow-y:auto;flex:1;position:relative}.modal-actions{padding:1.5rem 2rem;border-top:1px solid rgba(139,92,246,.15);display:flex;justify-content:flex-end;gap:1rem;background:linear-gradient(to top,rgba(255,255,255,.5) 0%,transparent 100%);position:relative;z-index:1}.modal-close-btn{position:absolute;top:1.5rem;right:1.5rem;width:32px;height:32px;border:none;background:transparent;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.5rem;font-weight:300;color:#9ca3af;transition:all .2s ease;z-index:10;line-height:1;padding:0}.modal-close-btn:hover{color:#374151;transform:scale(1.1)}.modal-close-btn:active{transform:scale(.95)}[data-theme=dark] .modal-content{background:linear-gradient(135deg,rgba(15,23,42,.98) 0%,rgba(30,41,59,.95) 100%);border-color:#8b5cf659;box-shadow:0 25px 80px #0009,0 10px 30px #8b5cf633,inset 0 1px #ffffff1a}[data-theme=dark] .modal-content:before{background:linear-gradient(90deg,transparent 0%,rgba(139,92,246,.7) 25%,rgba(99,102,241,1) 50%,rgba(139,92,246,.7) 75%,transparent 100%)}[data-theme=dark] .modal-header{border-bottom-color:#8b5cf640}[data-theme=dark] .modal-header h2{background:linear-gradient(135deg,#a78bfa 0%,#818cf8 50%,#60a5fa 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=dark] .modal-actions{border-top-color:#8b5cf640;background:linear-gradient(to top,rgba(15,23,42,.5) 0%,transparent 100%)}[data-theme=dark] .modal-close-btn{background:transparent;color:#94a3b8}[data-theme=dark] .modal-close-btn:hover{background:transparent;color:#e2e8f0}[data-theme=black] .modal-content{background:linear-gradient(135deg,rgba(17,24,39,.98) 0%,rgba(31,41,55,.95) 100%);border-color:#d4af3759;box-shadow:0 25px 80px #000c,0 10px 30px #d4af3733,inset 0 1px #ffffff14}[data-theme=black] .modal-content:before{background:linear-gradient(90deg,transparent 0%,rgba(212,175,55,.7) 25%,rgba(255,215,0,1) 50%,rgba(212,175,55,.7) 75%,transparent 100%)}[data-theme=black] .modal-header{border-bottom-color:#d4af3740}[data-theme=black] .modal-header h2{background:linear-gradient(135deg,#d4af37 0%,#ffd700 50%,#fbbf24 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=black] .modal-actions{border-top-color:#d4af3740;background:linear-gradient(to top,rgba(17,24,39,.5) 0%,transparent 100%)}[data-theme=black] .modal-close-btn{background:transparent;color:#d4af37b3}[data-theme=black] .modal-close-btn:hover{background:transparent;color:#d4af37;text-shadow:0 0 8px rgba(212,175,55,.4)}.modal-body .form-group{margin-bottom:1.5rem}.modal-body .form-group label{display:block;margin-bottom:.5rem;color:#374151;font-weight:600;font-size:.875rem;letter-spacing:.01em}.modal-body .form-group input,.modal-body .form-group select,.modal-body .form-group textarea{width:100%;padding:.875rem 1rem;border:1.5px solid rgba(139,92,246,.3);border-radius:12px;font-size:.9375rem;font-family:inherit;backdrop-filter:blur(10px);transition:all .3s cubic-bezier(.4,0,.2,1);color:#1e293b;box-shadow:0 2px 8px #8b5cf614,inset 0 1px #fffc}.modal-body .form-group input:focus,.modal-body .form-group select:focus,.modal-body .form-group textarea:focus{outline:none;border-color:#8b5cf6;box-shadow:0 0 0 4px #8b5cf61a,0 4px 16px #8b5cf633,inset 0 1px #ffffffe6;transform:translateY(-1px)}.modal-body .form-group textarea{resize:vertical;min-height:100px}.password-toggle-container{display:flex;align-items:center;gap:1rem;flex-wrap:wrap;width:100%;min-width:0}.password-toggle-btn{padding:.625rem 1.25rem;border:1.5px solid rgba(139,92,246,.3);border-radius:8px;background:white;color:#6b7280;font-size:.875rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap;flex-shrink:0}.password-toggle-hint{color:#6b7280;font-size:.875rem;flex:1;min-width:0}.password-toggle-btn:hover{border-color:#8b5cf680;color:#8b5cf6;background:rgba(139,92,246,.05);transform:translateY(-1px);box-shadow:0 2px 8px #8b5cf626}.password-toggle-btn.active{background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);border-color:#8b5cf6;color:#fff;box-shadow:0 2px 12px #8b5cf64d}.password-toggle-btn.active:hover{background:linear-gradient(135deg,#7c3aed 0%,#5b21b6 100%);box-shadow:0 4px 16px #8b5cf666;transform:translateY(-2px)}.password-toggle-btn:active{transform:translateY(0)}[data-theme=dark] .password-toggle-btn{background:rgba(15,23,42,.6);border-color:#8b5cf666;color:#94a3b8}[data-theme=dark] .password-toggle-btn:hover{border-color:#8b5cf699;color:#a78bfa;background:rgba(139,92,246,.1)}[data-theme=dark] .password-toggle-btn.active{background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);border-color:#8b5cf6;color:#fff;box-shadow:0 2px 12px #8b5cf666}[data-theme=dark] .password-toggle-btn.active:hover{background:linear-gradient(135deg,#7c3aed 0%,#5b21b6 100%);box-shadow:0 4px 16px #8b5cf680}[data-theme=black] .password-toggle-btn{background:rgba(0,0,0,.6);border-color:#d4af3766;color:#a0a0a0}[data-theme=black] .password-toggle-btn:hover{border-color:#d4af3799;color:#d4af37;background:rgba(212,175,55,.1)}[data-theme=black] .password-toggle-btn.active{background:linear-gradient(135deg,#d4af37 0%,#b8941f 100%);border-color:#d4af37;color:#000;box-shadow:0 2px 12px #d4af3766}[data-theme=black] .password-toggle-btn.active:hover{background:linear-gradient(135deg,#b8941f 0%,#9a7a1a 100%);box-shadow:0 4px 16px #d4af3780}[data-theme=dark] .modal-body .form-group label{color:#e2e8f0}[data-theme=dark] .modal-body .form-group input,[data-theme=dark] .modal-body .form-group select,[data-theme=dark] .modal-body .form-group textarea{border-color:#8b5cf666;color:#e2e8f0;box-shadow:0 2px 8px #8b5cf626,inset 0 1px #ffffff0d}[data-theme=dark] .modal-body .form-group input:focus,[data-theme=dark] .modal-body .form-group select:focus,[data-theme=dark] .modal-body .form-group textarea:focus{border-color:#a78bfa;box-shadow:0 0 0 4px #8b5cf633,0 4px 16px #8b5cf64d,inset 0 1px #ffffff1a}[data-theme=black] .modal-body .form-group label{color:#e2e8f0}[data-theme=black] .modal-body .form-group input,[data-theme=black] .modal-body .form-group select,[data-theme=black] .modal-body .form-group textarea{border-color:#d4af3766;color:#e2e8f0;box-shadow:0 2px 8px #d4af3726,inset 0 1px #ffffff0d}[data-theme=black] .modal-body .form-group input:focus,[data-theme=black] .modal-body .form-group select:focus,[data-theme=black] .modal-body .form-group textarea:focus{border-color:#d4af37;box-shadow:0 0 0 4px #d4af3733,0 4px 16px #d4af374d,inset 0 1px #ffffff14}.modal-tabs{display:flex;gap:.5rem;margin-bottom:1.5rem;border-bottom:1px solid rgba(139,92,246,.15);padding-bottom:0}.modal-tab{padding:.75rem 1.5rem;background:none;border:none;border-bottom:2px solid transparent;font-size:.9375rem;font-weight:600;color:#6b7280;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);margin-bottom:-1px;position:relative}.modal-tab:hover{color:#8b5cf6;background:rgba(139,92,246,.05);border-radius:8px 8px 0 0}.modal-tab.active{color:#8b5cf6;border-bottom-color:#8b5cf6;background:rgba(139,92,246,.08);border-radius:8px 8px 0 0}[data-theme=dark] .modal-tabs{border-bottom-color:#8b5cf640}[data-theme=dark] .modal-tab{color:#9ca3af}[data-theme=dark] .modal-tab:hover{color:#a78bfa;background:rgba(139,92,246,.1)}[data-theme=dark] .modal-tab.active{color:#a78bfa;border-bottom-color:#a78bfa;background:rgba(139,92,246,.15)}[data-theme=black] .modal-tabs{border-bottom-color:#d4af3740}[data-theme=black] .modal-tab{color:#9ca3af}[data-theme=black] .modal-tab:hover{color:#d4af37;background:rgba(212,175,55,.1)}[data-theme=black] .modal-tab.active{color:#d4af37;border-bottom-color:#d4af37;background:rgba(212,175,55,.15)}.modal-body .form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.modal-body .form-row .form-group{margin-bottom:0}.modal-actions button{padding:.75rem 1.5rem;font-size:.9375rem;font-weight:600;border-radius:12px;border:none;cursor:pointer;transition:all .3s cubic-bezier(.4,0,.2,1);letter-spacing:.01em;position:relative;overflow:hidden}.modal-actions .btn-primary{background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 50%,#3b82f6 100%);background-size:200% 200%;color:#fff;box-shadow:0 4px 16px #8b5cf666,inset 0 1px #ffffff4d;animation:button-gradient 3s ease infinite}.modal-actions .btn-primary:before{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.3),transparent);transition:left .5s ease}.modal-actions .btn-primary:hover{transform:translateY(-2px);box-shadow:0 8px 24px #8b5cf680,inset 0 1px #fff6;background-position:100% 50%}.modal-actions .btn-primary:hover:before{left:100%}.modal-actions .btn-primary:active{transform:translateY(0)}.modal-actions .btn-secondary{background:rgba(107,114,128,.1);color:#64748b;border:1.5px solid rgba(107,114,128,.2);backdrop-filter:blur(10px)}.modal-actions .btn-secondary:hover{background:rgba(107,114,128,.2);border-color:#6b72804d;color:#475569;transform:translateY(-2px)}@keyframes button-gradient{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}[data-theme=dark] .modal-actions .btn-secondary{background:rgba(107,114,128,.2);border-color:#6b72804d;color:#9ca3af}[data-theme=dark] .modal-actions .btn-secondary:hover{background:rgba(107,114,128,.3);border-color:#6b728066;color:#d1d5db}[data-theme=black] .modal-actions .btn-primary{background:linear-gradient(135deg,#d4af37 0%,#ffd700 50%,#fbbf24 100%);box-shadow:0 4px 16px #d4af3766,inset 0 1px #ffffff4d}[data-theme=black] .modal-actions .btn-primary:hover{box-shadow:0 8px 24px #d4af3780,inset 0 1px #fff6}[data-theme=black] .modal-actions .btn-secondary{background:rgba(107,114,128,.2);border-color:#6b72804d;color:#9ca3af}[data-theme=black] .modal-actions .btn-secondary:hover{background:rgba(107,114,128,.3);border-color:#6b728066;color:#d1d5db}.section-header .btn-primary{padding:.5rem 1rem;font-size:.8125rem;font-weight:500;border-radius:8px;letter-spacing:.01em;transition:all .2s cubic-bezier(.4,0,.2,1)}.admin-page .table-container .btn-primary,.admin-page .table-container .btn-secondary,.admin-page .table-container .btn-edit,.admin-page .table-container .btn-delete{padding:.4375rem .875rem;font-size:.75rem;font-weight:500;border-radius:6px;letter-spacing:.01em;transition:all .2s cubic-bezier(.4,0,.2,1);min-height:auto;line-height:1.4}.admin-page .table-container .btn-primary{background:linear-gradient(135deg,#3b82f6 0%,#2563eb 100%);box-shadow:0 2px 6px #3b82f640}.admin-page .table-container .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb 0%,#1d4ed8 100%);box-shadow:0 4px 10px #3b82f659;transform:translateY(-1px)}.admin-page .table-container .btn-secondary{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1;box-shadow:0 1px 3px #00000014}.admin-page .table-container .btn-secondary:hover:not(:disabled){background:#e2e8f0;border-color:#94a3b8;box-shadow:0 2px 6px #0000001f;transform:translateY(-1px)}.admin-page .table-container .btn-edit{background:#dbeafe;color:#1e40af;border:1px solid #bfdbfe;box-shadow:0 1px 3px #1e40af26}.admin-page .table-container .btn-edit:hover:not(:disabled){background:#bfdbfe;color:#1e3a8a;box-shadow:0 2px 6px #1e40af33;transform:translateY(-1px)}.admin-page .table-container .btn-delete{background:#fee2e2;color:#dc2626;border:1px solid #fecaca;box-shadow:0 1px 3px #dc262626}.admin-page .table-container .btn-delete:hover:not(:disabled){background:#fecaca;color:#b91c1c;box-shadow:0 2px 6px #dc262633;transform:translateY(-1px)}.admin-page .modal-actions .btn-primary,.admin-page .modal-actions .btn-secondary{padding:.5rem 1rem;font-size:.8125rem;font-weight:500;border-radius:6px;letter-spacing:.01em}.admin-page .btn-delete[style*=Revoke],.admin-page button.btn-delete:has-text("Revoke"){padding:.375rem .75rem;font-size:.75rem}[data-theme=dark] .admin-page .table-container .btn-primary{background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);box-shadow:0 2px 6px #8b5cf64d}[data-theme=dark] .admin-page .table-container .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#7c3aed 0%,#5b21b6 100%);box-shadow:0 4px 10px #8b5cf666}[data-theme=dark] .admin-page .table-container .btn-secondary{background:rgba(107,114,128,.15);color:#cbd5e1;border:1px solid rgba(107,114,128,.3);box-shadow:0 1px 3px #0003}[data-theme=dark] .admin-page .table-container .btn-secondary:hover:not(:disabled){background:rgba(107,114,128,.25);border-color:#6b728066;box-shadow:0 2px 6px #0000004d}[data-theme=dark] .admin-page .table-container .btn-edit{background:rgba(139,92,246,.2);color:#c4b5fd;border:1px solid rgba(139,92,246,.3);box-shadow:0 1px 3px #8b5cf633}[data-theme=dark] .admin-page .table-container .btn-edit:hover:not(:disabled){background:rgba(139,92,246,.3);color:#e9d5ff;box-shadow:0 2px 6px #8b5cf64d}[data-theme=dark] .admin-page .table-container .btn-delete{background:rgba(239,68,68,.15);color:#f87171;border:1px solid rgba(239,68,68,.3);box-shadow:0 1px 3px #ef444433}[data-theme=dark] .admin-page .table-container .btn-delete:hover:not(:disabled){background:rgba(239,68,68,.25);color:#fca5a5;box-shadow:0 2px 6px #ef44444d}[data-theme=black] .admin-page .table-container .btn-primary{background:linear-gradient(135deg,#d4af37 0%,#ffd700 100%);color:#000;box-shadow:0 2px 6px #d4af374d}[data-theme=black] .admin-page .table-container .btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#ffd700 0%,#fbbf24 100%);box-shadow:0 4px 10px #d4af3766}[data-theme=black] .admin-page .table-container .btn-secondary{background:rgba(107,114,128,.15);color:#d4af37;border:1px solid rgba(212,175,55,.3);box-shadow:0 1px 3px #0000004d}[data-theme=black] .admin-page .table-container .btn-secondary:hover:not(:disabled){background:rgba(212,175,55,.2);border-color:#d4af3766;box-shadow:0 2px 6px #d4af374d}[data-theme=black] .admin-page .table-container .btn-edit{background:rgba(212,175,55,.15);color:#d4af37;border:1px solid rgba(212,175,55,.3);box-shadow:0 1px 3px #d4af3733}[data-theme=black] .admin-page .table-container .btn-edit:hover:not(:disabled){background:rgba(212,175,55,.25);color:gold;box-shadow:0 2px 6px #d4af374d}[data-theme=black] .admin-page .table-container .btn-delete{background:rgba(212,175,55,.15);color:gold;border:1px solid rgba(212,175,55,.3);box-shadow:0 1px 3px #d4af3733}[data-theme=black] .admin-page .table-container .btn-delete:hover:not(:disabled){background:rgba(212,175,55,.25);color:gold;box-shadow:0 2px 6px #d4af374d;text-shadow:0 0 6px rgba(255,215,0,.4)}.roles-module-container{background:rgba(255,255,255,.98);backdrop-filter:blur(20px);border:1px solid rgba(139,92,246,.15);border-radius:16px;padding:2rem;box-shadow:0 4px 24px #0000000f}.roles-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:2rem}.roles-title{font-size:2rem;font-weight:800;margin:0;background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 50%,#3b82f6 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;letter-spacing:-.02em}.roles-subtitle{margin:.5rem 0 0;color:#64748b;font-size:.9375rem;font-weight:500}.roles-add-btn{padding:.75rem 1.5rem;background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);color:#fff;border:none;border-radius:12px;font-size:.9375rem;font-weight:700;cursor:pointer;transition:all .3s ease;box-shadow:0 4px 16px #8b5cf64d;white-space:nowrap}.roles-add-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf666}.roles-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4rem 2rem;gap:1rem}.roles-loading-spinner{width:48px;height:48px;border:3px solid rgba(139,92,246,.2);border-top-color:#8b5cf6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.roles-loading-text{font-size:1.125rem;color:#6b7280;font-weight:500}.roles-filters{display:flex;gap:1rem;margin-bottom:2rem;padding:1.25rem;background:rgba(139,92,246,.05);border:1px solid rgba(139,92,246,.2);border-radius:12px;align-items:center}.roles-search-container{flex:1;position:relative}.roles-search-input{width:100%;padding:.75rem 1rem .75rem 2.75rem;border:1px solid rgba(139,92,246,.3);border-radius:10px;font-size:.875rem;background:rgba(255,255,255,.9);transition:all .3s ease;color:#1e293b}.roles-search-input:focus{outline:none;border-color:#8b5cf6;background:rgba(255,255,255,1);box-shadow:0 0 0 3px #8b5cf61a}.roles-search-icon{position:absolute;left:.875rem;top:50%;transform:translateY(-50%);font-size:1rem;opacity:.6;pointer-events:none}.roles-category-container{position:relative}.roles-category-select{padding:.75rem 2.5rem .75rem 1rem;border:1px solid rgba(139,92,246,.3);border-radius:10px;font-size:.875rem;background:rgba(255,255,255,.9);cursor:pointer;transition:all .3s ease;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%238b5cf6' d='M6 9L1 4h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center;color:#1e293b;min-width:180px}.roles-category-select:focus{outline:none;border-color:#8b5cf6;background-color:#fff;box-shadow:0 0 0 3px #8b5cf61a}.roles-table-wrapper{overflow-x:auto;border-radius:12px;background:rgba(255,255,255,.95);border:1px solid rgba(139,92,246,.2);box-shadow:0 4px 16px #00000014}.roles-table{width:100%;border-collapse:separate;border-spacing:0}.roles-table-header{background:rgba(139,92,246,.1);position:sticky;top:0;z-index:20}.roles-table-header-cell{padding:1.25rem;text-align:left;font-weight:700;color:#0f172a;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em;border-bottom:2px solid rgba(139,92,246,.3);position:sticky;left:0;z-index:25;min-width:280px;width:280px;background:rgba(139,92,246,.12);box-shadow:2px 0 8px #8b5cf61a}.roles-table-module-header{padding:1rem .75rem;text-align:center;font-weight:600;color:#1e293b;border-bottom:2px solid rgba(139,92,246,.3);font-size:.8125rem;white-space:nowrap;background:rgba(139,92,246,.08)}.roles-module-label{font-weight:600;color:#0f172a;margin-bottom:.25rem;font-size:.8125rem}.roles-module-category{font-size:.75rem;color:#8b5cf6;font-weight:500;margin-top:.25rem;text-transform:uppercase;letter-spacing:.05em}.roles-table-row{border-bottom:1px solid rgba(139,92,246,.1);transition:all .3s ease;background:rgba(255,255,255,.5)}.roles-table-row:hover{background:rgba(139,92,246,.05)}.roles-table-row:hover .roles-table-sticky-column{background:rgba(255,255,255,.98)}.roles-table-sticky-column{position:sticky;left:0;z-index:15;background:rgba(255,255,255,.98);border-right:2px solid rgba(139,92,246,.2);min-width:280px;width:280px;box-shadow:4px 0 12px #8b5cf61a}.roles-table-header-cell.roles-table-sticky-column{z-index:25;background:rgba(139,92,246,.12)}.roles-table-row:hover .roles-table-sticky-column{background:rgba(255,255,255,.98)}.roles-role-cell{padding:1.25rem}.roles-role-content{display:flex;flex-direction:column;gap:.75rem}.roles-role-header{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.roles-role-badge{font-size:.875rem;padding:.5rem 1rem;border-radius:12px;font-weight:700;text-transform:capitalize;box-shadow:0 2px 8px #0000001a;border:1px solid rgba(255,255,255,.3);transition:all .3s ease}.roles-role-badge:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.roles-unsaved-indicator{font-size:.75rem;color:#f59e0b;font-weight:600;display:flex;align-items:center;gap:.375rem;padding:.25rem .5rem;background:rgba(245,158,11,.1);border-radius:8px;border:1px solid rgba(245,158,11,.3)}.roles-pulse-dot{width:6px;height:6px;background:#f59e0b;border-radius:50%;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.5;transform:scale(1.2)}}.roles-role-description{font-size:.8125rem;color:#64748b;line-height:1.6}.roles-role-stats{font-size:.75rem;color:#9ca3af;display:flex;align-items:baseline;gap:.25rem}.roles-permission-count{font-weight:700;color:#8b5cf6;font-size:.875rem}.roles-permission-divider{color:#d1d5db}.roles-permission-total{color:#6b7280}.roles-permission-label{color:#9ca3af;margin-left:.25rem}.roles-action-buttons{display:flex;gap:.5rem;margin-top:.75rem}.roles-save-btn,.roles-reset-btn{padding:.5rem 1rem;font-size:.8125rem;font-weight:600;border-radius:10px;border:none;cursor:pointer;transition:all .3s ease;display:flex;align-items:center;gap:.5rem}.roles-save-btn{background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);color:#fff;box-shadow:0 4px 16px #8b5cf64d}.roles-save-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 6px 20px #8b5cf666}.roles-save-btn:disabled{opacity:.7;cursor:not-allowed}.roles-reset-btn{background:rgba(107,114,128,.1);color:#64748b;border:1px solid rgba(107,114,128,.2)}.roles-reset-btn:hover:not(:disabled){background:rgba(107,114,128,.2);transform:translateY(-2px)}.roles-btn-spinner{width:12px;height:12px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}.roles-permission-cell{padding:1.25rem .875rem;text-align:center;border-right:1px solid rgba(139,92,246,.1)}.roles-checkbox-container{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;padding:.625rem;border-radius:10px;transition:all .3s ease;width:100%}.roles-checkbox-container:hover{background:rgba(139,92,246,.1);transform:scale(1.05)}.roles-checkbox-input{position:absolute;opacity:0;cursor:pointer;width:0;height:0}.roles-checkbox-custom{width:24px;height:24px;border:2px solid rgba(139,92,246,.4);border-radius:8px;background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;transition:all .3s ease;box-shadow:0 2px 8px #8b5cf61a}.roles-checkbox-checked .roles-checkbox-custom{background:linear-gradient(135deg,#8b5cf6 0%,#6366f1 100%);border-color:#8b5cf6;box-shadow:0 0 0 4px #8b5cf633,0 4px 16px #8b5cf666}.roles-checkmark{color:#fff;font-size:16px;font-weight:700;z-index:1}.roles-empty-state{padding:4rem 2rem;text-align:center;color:#64748b}.roles-empty-icon{font-size:3rem;margin-bottom:1rem;opacity:.5}.roles-empty-text{font-size:1rem;font-weight:500}.roles-delete-role-btn{background:rgba(239,68,68,.1);border:1px solid rgba(239,68,68,.3);color:#ef4444;border-radius:6px;padding:.25rem .5rem;font-size:.875rem;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;justify-content:center}.roles-delete-role-btn:hover{background:rgba(239,68,68,.2);border-color:#ef444480;transform:scale(1.05)}.roles-permissions-list{max-height:300px;overflow-y:auto;background:rgba(139,92,246,.03);border:1px solid rgba(139,92,246,.2);border-radius:12px;padding:1.25rem}.roles-permission-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;border-radius:8px;transition:all .2s ease;margin-bottom:.375rem;cursor:pointer}.roles-permission-item:last-child{margin-bottom:0}.roles-permission-item:hover{background:rgba(139,92,246,.08)}.roles-permission-item input[type=checkbox]{width:20px;height:20px;cursor:pointer;accent-color:#8b5cf6}.roles-permission-label{font-size:.875rem;color:#1f2937;font-weight:500;flex:1}.roles-permission-category{font-size:.75rem;color:#8b5cf6;font-weight:500;opacity:.8;text-transform:uppercase;letter-spacing:.05em}[data-theme=dark] .roles-module-container{background:rgba(30,41,59,.95);border-color:#8b5cf64d;box-shadow:0 4px 24px #0000004d}[data-theme=dark] .roles-title{background:linear-gradient(135deg,#a78bfa 0%,#818cf8 50%,#60a5fa 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=dark] .roles-subtitle{color:#9ca3af}[data-theme=dark] .roles-filters{background:rgba(139,92,246,.15);border-color:#8b5cf64d}[data-theme=dark] .roles-search-input,[data-theme=dark] .roles-category-select{background:rgba(30,41,59,.8);border-color:#8b5cf666;color:#e2e8f0}[data-theme=dark] .roles-search-input:focus,[data-theme=dark] .roles-category-select:focus{background:rgba(30,41,59,1);border-color:#a78bfa}[data-theme=dark] .roles-table-wrapper{background:rgba(30,41,59,.95);border-color:#8b5cf64d}[data-theme=dark] .roles-table-header{background:rgba(139,92,246,.2)}[data-theme=dark] .roles-table-header-cell{color:#e2e8f0;border-bottom-color:#8b5cf666;background:rgba(139,92,246,.2)}[data-theme=dark] .roles-table-module-header{background:rgba(139,92,246,.15);border-bottom-color:#8b5cf666;color:#e2e8f0}[data-theme=dark] .roles-module-label{color:#e2e8f0}[data-theme=dark] .roles-module-category{color:#a78bfa}[data-theme=dark] .roles-table-row{background:rgba(30,41,59,.5);border-bottom-color:#8b5cf633}[data-theme=dark] .roles-table-row:hover{background:rgba(139,92,246,.15)}[data-theme=dark] .roles-table-row:hover .roles-table-sticky-column{background:rgba(30,41,59,.98)}[data-theme=dark] .roles-table-sticky-column{background:rgba(30,41,59,.98);border-right-color:#8b5cf64d}[data-theme=dark] .roles-table-header-cell.roles-table-sticky-column{background:rgba(139,92,246,.2)}[data-theme=dark] .roles-role-description{color:#9ca3af}[data-theme=dark] .roles-permission-cell{border-right-color:#8b5cf633}[data-theme=dark] .roles-checkbox-custom{background:rgba(30,41,59,.8);border-color:#8b5cf680}[data-theme=dark] .roles-empty-text{color:#9ca3af}[data-theme=dark] .roles-permissions-list{background:rgba(139,92,246,.08);border-color:#8b5cf64d}[data-theme=dark] .roles-permission-item:hover{background:rgba(139,92,246,.15)}[data-theme=dark] .roles-permission-label{color:#e2e8f0}[data-theme=dark] .roles-permission-category{color:#a78bfa}[data-theme=black] .roles-module-container{background:rgba(31,41,55,.95);border-color:#d4af374d;box-shadow:0 4px 24px #00000080}[data-theme=black] .roles-title{background:linear-gradient(135deg,#d4af37 0%,#ffd700 50%,#fbbf24 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}[data-theme=black] .roles-subtitle{color:#9ca3af}[data-theme=black] .roles-filters{background:rgba(212,175,55,.15);border-color:#d4af374d}[data-theme=black] .roles-search-input,[data-theme=black] .roles-category-select{background:rgba(31,41,55,.8);border-color:#d4af3766;color:#e2e8f0}[data-theme=black] .roles-search-input:focus,[data-theme=black] .roles-category-select:focus{background:rgba(31,41,55,1);border-color:#d4af37}[data-theme=black] .roles-table-wrapper{background:rgba(31,41,55,.95);border-color:#d4af374d}[data-theme=black] .roles-table-header{background:rgba(212,175,55,.2)}[data-theme=black] .roles-table-header-cell{color:#e2e8f0;border-bottom-color:#d4af3766;background:rgba(212,175,55,.2)}[data-theme=black] .roles-table-module-header{background:rgba(212,175,55,.15);border-bottom-color:#d4af3766;color:#e2e8f0}[data-theme=black] .roles-module-label{color:#e2e8f0}[data-theme=black] .roles-module-category{color:#d4af37}[data-theme=black] .roles-table-row{background:rgba(31,41,55,.5);border-bottom-color:#d4af3733}[data-theme=black] .roles-table-row:hover{background:rgba(212,175,55,.15)}[data-theme=black] .roles-table-row:hover .roles-table-sticky-column{background:rgba(31,41,55,.98)}[data-theme=black] .roles-table-sticky-column{background:rgba(31,41,55,.98);border-right-color:#d4af374d}[data-theme=black] .roles-table-header-cell.roles-table-sticky-column{background:rgba(212,175,55,.2)}[data-theme=black] .roles-role-description{color:#9ca3af}[data-theme=black] .roles-permission-cell{border-right-color:#d4af3733}[data-theme=black] .roles-checkbox-custom{background:rgba(31,41,55,.8);border-color:#d4af3780}[data-theme=black] .roles-checkbox-checked .roles-checkbox-custom{background:linear-gradient(135deg,#d4af37 0%,#ffd700 100%);border-color:#d4af37}[data-theme=black] .roles-empty-text{color:#9ca3af}[data-theme=black] .roles-permissions-list{background:rgba(212,175,55,.08);border-color:#d4af374d}[data-theme=black] .roles-permission-item:hover{background:rgba(212,175,55,.15)}[data-theme=black] .roles-permission-label{color:#e2e8f0}[data-theme=black] .roles-permission-category{color:#d4af37}.admin-page .table-container{background:rgba(255,255,255,.98);backdrop-filter:blur(20px);border:1px solid rgba(139,92,246,.15);border-radius:16px;overflow:hidden;box-shadow:0 4px 24px #00000014,0 2px 8px #8b5cf60d,inset 0 1px #ffffffe6;margin-top:1rem}.admin-page .table-container table{width:100%;border-collapse:separate;border-spacing:0}.admin-page .table-container thead{background:linear-gradient(135deg,rgba(139,92,246,.1) 0%,rgba(99,102,241,.08) 100%);position:sticky;top:0;z-index:10}.admin-page .table-container thead th{padding:1.125rem 1.25rem;text-align:left;font-weight:700;font-size:.8125rem;text-transform:uppercase;letter-spacing:.05em;color:#1e293b;border-bottom:2px solid rgba(139,92,246,.2);background:linear-gradient(135deg,rgba(139,92,246,.12) 0%,rgba(99,102,241,.1) 100%)}.admin-page .table-container tbody tr{border-bottom:1px solid rgba(139,92,246,.1);transition:all .25s cubic-bezier(.4,0,.2,1);background:rgba(255,255,255,.6)}.admin-page .table-container tbody tr:hover{background:linear-gradient(135deg,rgba(139,92,246,.08) 0%,rgba(99,102,241,.05) 100%);transform:translate(2px);box-shadow:0 2px 8px #8b5cf61a}.admin-page .table-container tbody td{padding:1rem 1.25rem;color:#475569;font-size:.9375rem;vertical-align:middle}.status-badge{display:inline-flex;align-items:center;padding:.375rem .75rem;border-radius:10px;font-size:.8125rem;font-weight:700;text-transform:capitalize;letter-spacing:.02em;border:1px solid;box-shadow:0 2px 6px #0000001a;transition:all .25s ease}.status-badge:hover{transform:translateY(-1px);box-shadow:0 4px 10px #00000026}.status-pending,.status-awaiting_approval{background:linear-gradient(135deg,rgba(245,158,11,.15) 0%,rgba(251,191,36,.1) 100%);color:#b45309;border-color:#f59e0b4d}.status-approved{background:linear-gradient(135deg,rgba(16,185,129,.15) 0%,rgba(34,197,94,.1) 100%);color:#047857;border-color:#10b9814d}.status-rejected{background:linear-gradient(135deg,rgba(239,68,68,.15) 0%,rgba(220,38,38,.1) 100%);color:#b91c1c;border-color:#ef44444d}.status-inactive{background:linear-gradient(135deg,rgba(107,114,128,.15) 0%,rgba(75,85,99,.1) 100%);color:#4b5563;border-color:#6b72804d}.empty-state{padding:4rem 2rem;text-align:center;color:#64748b;font-size:1rem;font-weight:500;background:rgba(139,92,246,.03);border:2px dashed rgba(139,92,246,.2);border-radius:16px;margin:2rem 0;position:relative}.empty-state:before{content:"\1f4ed";font-size:3rem;display:block;margin-bottom:1rem;opacity:.6}[data-theme=dark] .admin-page .table-container{background:rgba(30,41,59,.95);border-color:#8b5cf64d;box-shadow:0 4px 24px #0006,0 2px 8px #8b5cf626,inset 0 1px #ffffff0d}[data-theme=dark] .admin-page .table-container thead{background:linear-gradient(135deg,rgba(139,92,246,.2) 0%,rgba(99,102,241,.15) 100%)}[data-theme=dark] .admin-page .table-container thead th{color:#e2e8f0;border-bottom-color:#8b5cf64d;background:linear-gradient(135deg,rgba(139,92,246,.2) 0%,rgba(99,102,241,.15) 100%)}[data-theme=dark] .admin-page .table-container tbody tr{background:rgba(30,41,59,.5);border-bottom-color:#8b5cf626}[data-theme=dark] .admin-page .table-container tbody tr:hover{background:linear-gradient(135deg,rgba(139,92,246,.15) 0%,rgba(99,102,241,.1) 100%);box-shadow:0 2px 8px #8b5cf633}[data-theme=dark] .admin-page .table-container tbody td{color:#cbd5e1}[data-theme=dark] .status-pending,[data-theme=dark] .status-awaiting_approval{background:linear-gradient(135deg,rgba(245,158,11,.2) 0%,rgba(251,191,36,.15) 100%);color:#fde047;border-color:#f59e0b66}[data-theme=dark] .status-approved{background:linear-gradient(135deg,rgba(16,185,129,.2) 0%,rgba(34,197,94,.15) 100%);color:#6ee7b7;border-color:#10b98166}[data-theme=dark] .status-rejected{background:linear-gradient(135deg,rgba(239,68,68,.2) 0%,rgba(220,38,38,.15) 100%);color:#fca5a5;border-color:#ef444466}[data-theme=dark] .status-inactive{background:linear-gradient(135deg,rgba(107,114,128,.2) 0%,rgba(75,85,99,.15) 100%);color:#9ca3af;border-color:#6b728066}[data-theme=dark] .empty-state{background:rgba(139,92,246,.08);border-color:#8b5cf64d;color:#94a3b8}[data-theme=black] .admin-page .table-container{background:rgba(31,41,55,.95);border-color:#d4af374d;box-shadow:0 4px 24px #0009,0 2px 8px #d4af3726,inset 0 1px #ffffff0d}[data-theme=black] .admin-page .table-container thead{background:linear-gradient(135deg,rgba(212,175,55,.2) 0%,rgba(255,215,0,.15) 100%)}[data-theme=black] .admin-page .table-container thead th{color:#e2e8f0;border-bottom-color:#d4af374d;background:linear-gradient(135deg,rgba(212,175,55,.2) 0%,rgba(255,215,0,.15) 100%)}[data-theme=black] .admin-page .table-container tbody tr{background:rgba(31,41,55,.5);border-bottom-color:#d4af3726}[data-theme=black] .admin-page .table-container tbody tr:hover{background:linear-gradient(135deg,rgba(212,175,55,.15) 0%,rgba(255,215,0,.1) 100%);box-shadow:0 2px 8px #d4af3733}[data-theme=black] .admin-page .table-container tbody td{color:#cbd5e1}[data-theme=black] .status-pending,[data-theme=black] .status-awaiting_approval,[data-theme=black] .status-approved{background:linear-gradient(135deg,rgba(212,175,55,.25) 0%,rgba(255,215,0,.2) 100%);color:gold;border-color:#d4af3780;text-shadow:0 0 6px rgba(255,215,0,.3)}[data-theme=black] .status-rejected{background:linear-gradient(135deg,rgba(212,175,55,.15) 0%,rgba(255,215,0,.1) 100%);color:gold;border-color:#d4af3766;text-shadow:0 0 6px rgba(255,215,0,.2)}[data-theme=black] .status-inactive{background:linear-gradient(135deg,rgba(107,114,128,.2) 0%,rgba(75,85,99,.15) 100%);color:#9ca3af;border-color:#6b728066}[data-theme=black] .empty-state{background:rgba(212,175,55,.08);border-color:#d4af374d;color:#d4af37e6}
