.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background-color:rgba(0,0,0,.65);display:flex;justify-content:center;align-items:center;z-index:1000;padding:20px;overflow-y:auto;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}.modal-container{background:#fff;border-radius:16px;width:100%;max-width:900px;max-height:85vh;margin:auto;box-shadow:0 25px 50px -12px rgba(0,0,0,.25);display:flex;flex-direction:column;overflow:hidden;animation:modal-appear .3s ease-out forwards}@keyframes modal-appear{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:24px 28px;border-bottom:1px solid #e5e7eb;background:#f9fafb;border-radius:16px 16px 0 0}.modal-header h2{margin:0;color:#111827;font-size:22px;font-weight:600;letter-spacing:-.01em}.close-btn{background:none;border:none;font-size:28px;color:#6b7280;cursor:pointer;padding:0;width:36px;height:36px;display:flex;align-items:center;justify-content:center;border-radius:8px;transition:all .2s ease}.close-btn:hover{background-color:#f3f4f6;color:#111827}.close-btn:focus{outline:none;box-shadow:0 0 0 2px rgba(59,130,246,.5)}.modal-content{padding:28px;overflow-y:auto;flex:1 1;min-height:0}.form-section{margin-bottom:28px;padding-bottom:28px;border-bottom:1px solid #e5e7eb}.input-group{margin-bottom:20px}.input-group label{display:block;margin-bottom:8px;font-weight:500;color:#374151;font-size:14px}.input-group input,.input-group select{width:100%;border:1px solid #d1d5db;border-radius:8px;font-size:15px;color:#111827;transition:all .2s ease;box-sizing:border-box;background-color:#fff}.input-group input:hover,.input-group select:hover{border-color:#9ca3af}.input-group input:focus,.input-group select:focus{outline:none;border-color:#e64a19;box-shadow:0 0 0 3px rgba(59,130,246,.1)}.input-group input::placeholder{color:#9ca3af}.permission-toggle{margin:24px 0 8px;padding:16px 20px;background:#f0f9ff;border:1px solid #bae6fd;border-radius:10px;transition:all .2s ease}.permission-toggle:hover{background:#e0f2fe;border-color:#7dd3fc}.toggle-label{display:flex;align-items:center;cursor:pointer;font-weight:500;color:#0369a1;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toggle-label input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:20px;height:20px;border:2px solid #0ea5e9;border-radius:4px;margin-right:12px;position:relative;cursor:pointer;background:#fff;transition:all .2s ease}.toggle-label input[type=checkbox]:checked{background:#0ea5e9;border-color:#0ea5e9}.toggle-label input[type=checkbox]:checked:after{content:"";position:absolute;width:5px;height:10px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);top:2px;left:6px}.toggle-label input[type=checkbox]:focus{outline:none;box-shadow:0 0 0 3px rgba(14,165,233,.3)}.toggle-text{font-size:15px}.permissions-section{margin-top:28px}.permissions-section h3{margin:24px 0 16px;color:#111827;font-size:18px;font-weight:600;letter-spacing:-.01em}.permissions-table-container{overflow-x:auto;margin-bottom:24px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.05)}.permissions-table{min-width:600px;width:100%;border-collapse:collapse}.table-header{display:flex;background:#f8fafc;border-bottom:2px solid #e5e7eb;position:-webkit-sticky;position:sticky;top:0;z-index:1}.header-cell{flex:1 1;min-width:80px;padding:14px 8px;font-weight:600;color:#374151;text-align:center;font-size:13px;text-transform:uppercase;letter-spacing:.05em;border-right:1px solid #e5e7eb;-webkit-user-select:none;-moz-user-select:none;user-select:none}.header-cell:first-child{flex:2 1;min-width:150px;text-align:left;padding-left:20px}.header-cell:last-child{border-right:none}.table-row{display:flex;border-bottom:1px solid #e5e7eb;transition:background-color .15s ease}.table-row:hover{background-color:#f8fafc}.table-row:last-child{border-bottom:none}.row-label{flex:2 1;min-width:150px;padding:14px 20px;font-weight:500;color:#374151;font-size:14px}.permission-cell,.row-label{display:flex;align-items:center;border-right:1px solid #e5e7eb}.permission-cell{flex:1 1;min-width:80px;padding:14px 8px;justify-content:center}.permission-cell:last-child{border-right:none}.permission-cell input[type=checkbox]{-moz-appearance:none;appearance:none;-webkit-appearance:none;width:18px;height:18px;border:2px solid #d1d5db;border-radius:4px;cursor:pointer;transition:all .2s ease;background:#fff;position:relative}.permission-cell input[type=checkbox]:checked{background:#e64a19;border-color:#e64a19}.permission-cell input[type=checkbox]:checked:after{content:"";position:absolute;width:5px;height:9px;border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg);top:2px;left:5px}.permission-cell input[type=checkbox]:hover{border-color:#9ca3af}.permission-cell input[type=checkbox]:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.3)}.permission-cell input[type=checkbox]:disabled{opacity:.6;cursor:not-allowed;background-color:#f3f4f6}.permission-cell input[type=checkbox]:disabled:checked{background-color:#93c5fd}.app-permissions .table-row{background-color:#fffbeb}.app-permissions .table-row:hover{background-color:#fef3c7}.app-permissions .permission-cell input[type=checkbox]:checked{background:#f59e0b;border-color:#f59e0b}.app-permissions .permission-cell input[type=checkbox]:focus{box-shadow:0 0 0 3px rgba(245,158,11,.3)}.form-actions{display:flex;justify-content:flex-end;gap:16px;margin-top:28px;padding-top:24px;border-top:1px solid #e5e7eb}.btn-primary,.btn-secondary{padding:12px 24px;border-radius:8px;font-weight:500;font-size:15px;cursor:pointer;transition:all .2s ease;border:none;min-width:120px;display:flex;align-items:center;justify-content:center}.btn-secondary{background:#f3f4f6;color:#374151;border:1px solid #d1d5db}.btn-secondary:hover{background:#e5e7eb;color:#111827}.btn-secondary:focus{outline:none;box-shadow:0 0 0 3px rgba(156,163,175,.3)}.btn-primary{background:#e64a19;color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.05)}.btn-primary:hover{background:#2563eb;box-shadow:0 3px 10px rgba(37,99,235,.2)}.btn-primary:focus{outline:none;box-shadow:0 0 0 3px rgba(59,130,246,.3)}.btn-primary:active{background:#1d4ed8}@media (max-width:768px){.modal-overlay{padding:10px;align-items:flex-start}.modal-container{max-width:100%;max-height:95vh;margin:10px 0;border-radius:12px}.modal-header{padding:18px 22px}.modal-header h2{font-size:18px}.modal-content{padding:20px}.permissions-table.app-permissions{min-width:420px}.permissions-table:not(.app-permissions){min-width:650px}.header-cell,.permission-cell{padding:12px 6px;font-size:12px}.header-cell:first-child,.row-label{min-width:120px}.row-label{font-size:13px;padding:12px 16px}.form-actions{flex-direction:column-reverse;gap:10px}.btn-primary,.btn-secondary{width:100%;padding:14px 20px}}@media (max-width:480px){.modal-overlay{padding:0;z-index:99999}.modal-container{border-radius:0;max-height:100vh;height:100vh}.modal-header{padding:16px;border-radius:0}.modal-content{padding:16px}.permissions-table.app-permissions{min-width:360px}.permissions-table:not(.app-permissions){min-width:520px}.header-cell,.permission-cell{padding:10px 4px;font-size:11px}.header-cell:first-child,.row-label{min-width:100px}.row-label{font-size:12px;padding:10px 12px}}.modal-content::-webkit-scrollbar,.permissions-table-container::-webkit-scrollbar{height:8px;width:8px}.modal-content::-webkit-scrollbar-track,.permissions-table-container::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}.modal-content::-webkit-scrollbar-thumb,.permissions-table-container::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}.modal-content::-webkit-scrollbar-thumb:hover,.permissions-table-container::-webkit-scrollbar-thumb:hover{background:#94a3b8}.loading-spinner{display:inline-block;width:20px;height:20px;border-radius:50%;border:2px solid hsla(0,0%,100%,.3);border-top-color:#fff;animation:spin .8s linear infinite;margin-right:8px}@keyframes spin{to{transform:rotate(1turn)}}.btn-primary.loading{pointer-events:none;display:flex;align-items:center;justify-content:center}.btn-primary:disabled{opacity:.65;cursor:not-allowed;background:#60a5fa}:focus-visible{outline:2px solid #e64a19;outline-offset:2px}@media (prefers-contrast:high){.modal-container{border:2px solid #000}.header-cell,.permission-cell,.row-label,.table-header,.table-row{border-color:#000}.permission-cell input[type=checkbox],.toggle-label input[type=checkbox]{border-width:2px}.btn-primary,.btn-secondary{border:2px solid #000}}