.access-control-page{background:linear-gradient(#f8fafc 0%,#f1f5f9 100%);flex-direction:column;width:100%;height:100vh;margin:0;padding:0;display:flex;overflow:hidden}.access-header{background:linear-gradient(135deg,#1e293b 0%,#334155 100%);border-bottom:3px solid #0ea5e9;flex-wrap:wrap;flex-shrink:0;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem 6rem 1.5rem 2rem;animation:.5s ease-in fadeIn;display:flex;box-shadow:0 2px 8px #0000001a}.access-header-content{align-items:center;gap:1rem;display:flex}.access-header-icon{background:linear-gradient(135deg,#0ea5e9 0%,#0284c7 100%);border-radius:.375rem;justify-content:center;align-items:center;padding:.875rem;display:flex}.access-header-icon svg{color:#fff;width:1.5rem;height:1.5rem}.access-header h1{color:#fff;letter-spacing:-.025em;margin:0;font-size:1.875rem;font-weight:700}.subtitle{color:#cbd5e1;margin:.25rem 0 0;font-size:.875rem;font-weight:400}.access-content{flex:1;padding:2rem;overflow-y:auto}.access-empty{text-align:center;background:#fff;border:2px dashed #e5e7eb;border-radius:16px;max-width:500px;margin:4rem auto;padding:3rem 2rem}.access-empty svg{margin-bottom:1.5rem}.access-empty h3{color:#1a1a1a;margin:0 0 .5rem;font-size:1.25rem}.access-empty p{color:#6b7280;margin:0;font-size:.9375rem}.roles-grid{grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1.5rem;display:grid}.role-card{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;padding:1.5rem;transition:all .2s;box-shadow:0 1px 3px #0000001a}.role-card:hover{border-color:#0ea5e9;transform:translateY(-2px);box-shadow:0 4px 8px #00000026}.role-card-header{justify-content:space-between;align-items:flex-start;margin-bottom:1rem;display:flex}.role-card-title{flex:1;align-items:center;gap:.75rem;display:flex}.role-card-title h3{color:#1e293b;margin:0;font-size:1.125rem;font-weight:600}.role-system-badge{color:#fff;background:linear-gradient(135deg,#6366f1 0%,#8b5cf6 100%);border-radius:.375rem;padding:.25rem .625rem;font-size:.75rem;font-weight:600}.role-delete-btn{color:#ef4444;cursor:pointer;background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;transition:all .2s;display:flex}.role-delete-btn:hover{background:#fee2e2}.role-delete-btn svg{width:1.25rem;height:1.25rem}.role-description{color:#64748b;margin:0 0 1rem;font-size:.875rem;line-height:1.5}.role-permissions-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#0ea5e9 0%,#0284c7 100%);border:none;border-radius:.75rem;justify-content:center;align-items:center;gap:.5rem;width:100%;padding:.75rem;font-weight:600;transition:all .3s;display:flex}.role-permissions-btn:hover{transform:translateY(-1px);box-shadow:0 4px 8px #0ea5e94d}.role-permissions-btn svg{width:1.125rem;height:1.125rem}.access-modal-overlay{z-index:1000;background:#0009;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.access-modal{background:#fff;border-radius:.75rem;width:90%;max-width:500px;max-height:90vh;animation:.3s slideUp;overflow-y:auto;box-shadow:0 20px 25px -5px #0000001a}.permissions-modal{max-width:800px}.access-modal-header{border-bottom:1px solid #e5e7eb;justify-content:space-between;align-items:center;padding:1.5rem;display:flex}.access-modal-header h2{color:#1e293b;margin:0;font-size:1.25rem;font-weight:700}.access-modal-close{color:#64748b;cursor:pointer;background:0 0;border:none;border-radius:.375rem;justify-content:center;align-items:center;width:2rem;height:2rem;padding:0;transition:all .2s;display:flex}.access-modal-close:hover{color:#1e293b;background:#f1f5f9}.access-modal-close svg{width:1.25rem;height:1.25rem}.access-modal-form{padding:1.5rem}.form-group{margin-bottom:1.25rem}.form-group label{color:#1e293b;margin-bottom:.5rem;font-size:.875rem;font-weight:600;display:block}.form-group input,.form-group textarea{border:1px solid #e5e7eb;border-radius:.375rem;width:100%;padding:.75rem;font-size:.9375rem;transition:all .2s}.form-group input:focus,.form-group textarea:focus{border-color:#0ea5e9;outline:none;box-shadow:0 0 0 3px #0ea5e91a}.form-group textarea{resize:vertical;font-family:inherit}.access-modal-actions{border-top:1px solid #e5e7eb;justify-content:flex-end;gap:.75rem;padding:1.5rem;display:flex}.btn-secondary,.btn-primary{cursor:pointer;border:none;border-radius:.75rem;padding:.75rem 1.5rem;font-weight:600;transition:all .3s}.btn-secondary{color:#374151;background:#f3f4f6}.btn-secondary:hover{background:#e5e7eb}.btn-primary{color:#fff;background:linear-gradient(135deg,#0ea5e9 0%,#0284c7 100%)}.btn-primary:hover{transform:translateY(-1px);box-shadow:0 4px 12px #0ea5e94d}.permissions-table{padding:1.5rem;overflow-x:auto}.permissions-table table{border-collapse:collapse;width:100%}.permissions-table thead{background:#f8fafc}.permissions-table th{text-align:left;color:#475569;border-bottom:2px solid #e5e7eb;padding:.75rem 1rem;font-size:.875rem;font-weight:600}.permissions-table th:not(:first-child){text-align:center;width:100px}.permissions-table td{border-bottom:1px solid #e5e7eb;padding:1rem}.permissions-table td.module-name{color:#1e293b;font-weight:500}.permissions-table td:not(.module-name){text-align:center}.permissions-table input[type=checkbox]{cursor:pointer;accent-color:#0ea5e9;width:1.125rem;height:1.125rem}.permissions-table tbody tr:hover{background:#f8fafc}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.create-permissions-section{border-top:1px solid #e5e7eb;margin-top:.5rem;padding-top:1rem}.create-permissions-title{color:#1e293b;margin:0 0 .25rem;font-size:1rem;font-weight:600}.create-permissions-description{color:#64748b;margin:0 0 1rem;font-size:.8125rem}.create-permissions-section .permissions-table{padding:0}
