.modal-overlay{align-items:center;background:#00000080;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.modal{background:#fff;border-radius:12px;box-shadow:0 20px 40px #00000026;display:flex;flex-direction:column;max-height:90vh;overflow:hidden;width:100%}.modal-small{max-width:500px}.modal-medium{max-width:800px}.modal-large{max-width:1200px}.modal-fullscreen{height:95vh!important;max-height:95vh!important;max-width:95vw!important;width:95vw!important}.modal .modal-header{align-items:center;border-bottom:1px solid #e9ecef;display:flex;flex-shrink:0;justify-content:space-between;padding:1.5rem 2rem}.modal .modal-header h3{color:#2c3e50;font-size:1.25rem;margin:0}.modal .modal-close{align-items:center;background:none;border:none;border-radius:4px;color:#6c757d;cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;padding:0;transition:all .2s ease;width:32px}.modal .modal-close:hover{background:#f8f9fa;color:#495057}.modal .modal-body{flex:1 1;min-height:0;overflow-x:hidden;overflow-y:auto;padding:1.5rem 2rem}.modal .modal-actions{background:#f8f9fa;border-radius:0 0 12px 12px;border-top:1px solid #e9ecef;display:flex;flex-shrink:0;gap:1rem;justify-content:flex-end;padding:1.5rem 2rem}.modal__form-group{display:flex;flex-direction:column;gap:6px;margin-bottom:1.5rem}.modal__form-group label{align-items:center;color:#495057;display:flex;font-size:14px;font-weight:500;gap:6px}.modal__form-control{border:1px solid #ced4da;border-radius:4px;box-sizing:border-box;font-size:14px;padding:8px 12px;transition:border-color .2s ease;width:100%}.modal__form-control:focus{border-color:#2196f3;box-shadow:0 0 0 3px #2196f31a;outline:none}.modal__form-control--error{border-color:#dc3545}.modal__form-control--textarea{font-family:monospace;min-height:80px;resize:vertical}.modal__form-control--readonly{background-color:#f5f5f5;cursor:default}.modal__form-row{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));margin-bottom:16px}.modal__form-hint{color:#868e96;font-size:12px}.modal__tooltip{color:#6c757d;cursor:help;font-size:14px}.modal__loading{color:#6c757d;font-size:14px;padding:40px 20px;text-align:center}.modal__error-message{align-items:center;background:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;color:#721c24;display:flex;justify-content:space-between;margin-bottom:16px;padding:12px 16px}.modal__error-message p{font-size:14px;margin:0}.modal__empty-state{padding:40px 20px;text-align:center}.modal__empty-state p{color:#6c757d;font-size:14px;margin-bottom:20px}.modal__validation-error{color:#dc3545;font-size:12px;margin-top:4px}.modal__schedules-list{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.modal__schedule-item{align-items:center;background:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;display:flex;gap:16px;padding:16px;transition:all .2s ease}.modal__schedule-item:hover{background:#e9ecef;box-shadow:0 2px 4px #0000001a}.modal__schedule-toggle{flex-shrink:0}.modal__schedule-info{flex:1 1;min-width:0}.modal__schedule-type{color:#495057;font-size:14px;font-weight:600;margin-bottom:4px}.modal__schedule-description{color:#6c757d;font-size:13px;margin-bottom:4px}.modal__schedule-next-run{color:#868e96;font-size:12px}.modal__schedule-menu-btn{background:none;border:none;border-radius:4px;color:#6c757d;cursor:pointer;flex-shrink:0;font-size:20px;padding:4px 8px;transition:all .2s ease}.modal__schedule-menu-btn:hover{background:#dee2e6;color:#495057}.modal__toggle-switch{display:inline-block;height:26px;position:relative;width:48px}.modal__toggle-switch input{height:0;opacity:0;width:0}.modal__toggle-slider{background-color:#ccc;border-radius:26px;bottom:0;cursor:pointer;left:0;position:absolute;right:0;top:0;transition:.4s}.modal__toggle-slider:before{background-color:#fff;border-radius:50%;bottom:3px;content:"";height:20px;left:3px;position:absolute;transition:.4s;width:20px}.modal__toggle-switch input:checked+.modal__toggle-slider{background-color:#2196f3}.modal__toggle-switch input:checked+.modal__toggle-slider:before{transform:translateX(22px)}.modal__toggle-switch input:disabled+.modal__toggle-slider{cursor:not-allowed;opacity:.5}.modal__trigger-config{margin-top:20px}.modal__trigger-description{background:#f8f9fa;border-radius:4px;color:#6c757d;font-size:14px;margin-bottom:16px;padding:12px}.modal__cron-examples{background:#f8f9fa;border-radius:4px;margin-top:20px;padding:16px}.modal__cron-examples strong{color:#495057;display:block;margin-bottom:12px}.modal__cron-examples table{font-size:13px;width:100%}.modal__cron-examples tr{line-height:1.8}.modal__cron-examples td{color:#6c757d}.modal__cron-examples code{background:#fff;border:1px solid #dee2e6;border-radius:3px;color:#495057;font-family:Courier New,monospace;padding:2px 6px}.modal__queue-config{display:flex;flex-direction:column;gap:1rem}.modal__queue-config-header{display:flex;justify-content:flex-end}.modal__queue-config-table-wrapper{border:1px solid #ddd;border-radius:4px;max-height:calc(70vh - 250px);overflow-y:auto}.modal__queue-config-table{border-collapse:collapse;font-size:.9rem;min-width:1100px;width:100%}.modal__queue-config-table thead{background-color:#f5f5f5;position:-webkit-sticky;position:sticky;top:0;z-index:10}.modal__queue-config-table th{border-bottom:2px solid #ddd;font-weight:600;padding:.75rem .5rem;text-align:left;white-space:nowrap}.modal__queue-config-table td{border-bottom:1px solid #eee;padding:.5rem;vertical-align:middle}.modal__queue-config-table tbody tr:hover{background-color:#f9f9f9}.modal__queue-config-table tbody tr:last-child{border-bottom:none}.modal__queue-config-table tbody tr:last-child td{border-bottom:none;padding:1rem .5rem;text-align:right}.modal__queue-col-reorder{text-align:center;width:80px}.modal__queue-col-name{width:220px}.modal__queue-col-datatype{width:150px}.modal__queue-col-order{width:100px}.modal__queue-col-checkbox{text-align:center;width:100px}.modal__queue-col-method{width:180px}.modal__queue-col-param{width:150px}.modal__queue-col-actions{text-align:center;width:80px}.modal__reorder-buttons{align-items:center;display:flex;flex-direction:column;gap:2px}.modal__btn-icon{background:none;border:1px solid #ccc;border-radius:3px;color:#333;cursor:pointer;font-size:.75rem;line-height:1;padding:2px 6px;transition:all .2s}.modal__btn-icon--reorder{font-size:.66rem;padding:1px 6px!important}.modal__btn-icon:hover:not(:disabled){background-color:#007bff;border-color:#007bff;color:#fff}.modal__btn-icon:disabled{cursor:not-allowed;opacity:.3}.modal__queue-add-row{margin-left:auto;padding:.5rem 1rem}.modal__queue-config-table input[type=number],.modal__queue-config-table input[type=text],.modal__queue-config-table select{border:1px solid #ddd;border-radius:4px;font-size:.875rem;padding:.4rem;width:100%}.modal__queue-config-table input[type=checkbox]{cursor:pointer;height:18px;width:18px}.modal__queue-config-table input[type=number]:focus,.modal__queue-config-table input[type=text]:focus,.modal__queue-config-table select:focus{border-color:#007bff;box-shadow:0 0 0 2px #007bff1a;outline:none}.modal__queue-config-table select:disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.6}.modal__regex-validation-status{align-items:center;border-radius:4px;display:flex;font-size:1rem;font-weight:500;gap:.75rem;padding:1rem}.modal__regex-validation-status--pass{background-color:#d4edda;border:1px solid #c3e6cb;color:#155724}.modal__regex-validation-status--fail{background-color:#f8d7da;border:1px solid #f5c6cb;color:#721c24}.modal__regex-validation-icon{font-size:1.5rem;font-weight:700}.modal__regex-validation-text{flex:1 1}.modal__regex-highlight-container{background-color:#f5f5f5;border:1px solid #ddd;border-radius:4px;font-family:monospace;font-size:.9rem;min-height:120px;overflow-wrap:break-word;padding:.5rem;white-space:pre-wrap;width:100%;word-break:break-word}.modal__regex-highlight-match{background-color:#cce5ff;border-radius:2px;color:#004085;font-weight:500;padding:2px 0}.modal__form-control--validation-pass{background-color:#d4edda!important;border-color:#c3e6cb!important;color:#155724}.modal__form-control--validation-fail{background-color:#f8d7da!important;border-color:#f5c6cb!important;color:#721c24}@media (max-width:768px){.modal{margin:1rem;max-height:calc(100vh - 2rem);max-width:calc(100% - 2rem)}.modal .modal-actions,.modal .modal-body,.modal .modal-header{padding:1rem 1.25rem}.modal .modal-actions{flex-direction:column}.modal .modal-actions button{width:100%}}@media (max-width:480px){.modal{margin:.5rem;max-height:calc(100vh - 1rem);max-width:calc(100% - 1rem)}.modal .modal-actions,.modal .modal-body,.modal .modal-header{padding:1rem}}*{box-sizing:border-box;margin:0;padding:0}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:#f8f9fa;color:#2c2c2c;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif}.App,.layout{min-height:100vh}.layout{display:flex;flex-direction:column}.header{background-color:#fff;border-bottom:1px solid #e0e0e0;box-shadow:0 4px 20px #0000001a;color:#2c2c2c;left:0;padding:0;position:fixed;right:0;top:0;z-index:1000}.header-content{display:flex;justify-content:space-between}.header-left{align-items:center;display:flex;gap:1rem}.sidebar-toggle{background:none;border:none;border-radius:4px;color:#2c2c2c;cursor:pointer;font-size:1.2rem;padding:.5rem;transition:background-color .3s ease}.sidebar-toggle:hover{background-color:#0000000d}.logo{align-items:center;display:flex;margin:0}.logo-img{height:64px}.logo-img,.logo-login{object-fit:contain;width:auto}.logo-login{height:128px}.header-right{gap:1rem;padding-right:1rem}.header-right,.tenant-selector{align-items:center;display:flex}.tenant-selector{border-radius:4px}.tenant-dropdown{border:1px solid #ffffff4d;border-radius:4px;cursor:pointer;font-size:.9rem;padding:.3rem 1rem}.tenant-dropdown,.tenant-dropdown option{background:#2c2c2c;color:#fff}.tenant-dropdown:disabled{cursor:not-allowed;opacity:.6}.account-icon{font-size:1.5rem;margin-right:.5rem}.layout-body{display:flex;margin-top:70px}.layout-body,.sidebar{min-height:calc(100vh - 70px)}.sidebar{background-color:#171c24;border-right:1px solid #2c3e50;overflow-y:auto;transition:width .3s ease;width:280px}.sidebar.collapsed{width:60px}.sidebar-content{padding:1rem 0}.nav-section{margin-bottom:2rem}.nav-section-title{color:#ffffffb3;font-size:.8rem;font-weight:600;letter-spacing:.05em;margin-bottom:.5rem;padding:0 1rem;text-transform:uppercase}.sidebar.collapsed .nav-section-title{display:none}.admin-section{border-top:1px solid #ffffff1a;padding-top:1rem}.admin-title{color:#e74c3c}.nav-list{list-style:none;margin:0;padding:0}.nav-item{margin-bottom:.25rem}.nav-link{align-items:center;border-left:3px solid #0000;color:#fff;display:flex;font-weight:500;gap:.75rem;padding:.75rem 1rem;text-decoration:none;transition:all .3s ease}.nav-icon{flex-shrink:0;font-size:1.25rem}.nav-text{overflow:hidden;white-space:nowrap}.nav-link:hover{background-color:#ffffff1a;border-left-color:#039dff}.nav-link.active{background-color:#039dff;border-left-color:#1976d2}.admin-nav-link:hover{border-left-color:#ff3b2d}.admin-nav-link.active{background-color:#ff3b2d;border-left-color:#e53935;border-left-width:medium}.sidebar.collapsed .nav-link{gap:0;justify-content:center;padding:.75rem .5rem}.sidebar.collapsed .nav-text{display:none}.sidebar.collapsed .nav-icon{font-size:1.5rem}.main-content{background-color:#f8f9fa;flex:1 1;overflow-y:auto;padding:2rem}.page{background:#fff;border-radius:8px;box-shadow:0 2px 4px #0000001a;padding:2rem}.page h2{color:#2c3e50;font-size:2rem;font-weight:600;margin-bottom:1rem}.page-content{margin-top:1.5rem}.dashboard-cards{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:2rem}.card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1.5rem;transition:box-shadow .3s ease}.card:hover{box-shadow:0 4px 8px #0000001a}.card h3{color:#2c3e50;font-size:1.25rem;margin-bottom:.5rem}.btn{border:none;border-radius:4px;cursor:pointer;display:inline-block;font-weight:500;margin-right:.5rem;padding:.75rem 1.5rem;text-decoration:none;transition:background-color .3s ease}.btn-primary{background-color:#039dff;border:none;color:#fff;transition:all .3s ease}.btn-primary:hover{background-color:#1976d2;box-shadow:0 4px 15px #1e9bff4d;transform:translateY(-1px)}.btn-secondary{background-color:#9b9b9b;border:1px solid #9b9b9b;color:#fff;transition:all .3s ease}.btn-secondary:hover{background-color:grey;transform:translateY(-1px)}.job-controls{align-items:center;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin:1.5rem 0}.job-actions,.job-filters{display:flex;gap:.5rem}.job-filters{align-items:center}.job-filters label{color:#495057;font-weight:500}.status-filter{background-color:#fff;border:1px solid #ced4da;border-radius:4px;padding:.5rem}.data-table{background:#fff;border-collapse:collapse;border-radius:8px;box-shadow:0 2px 4px #0000001a;margin-top:1rem;overflow:hidden;width:100%}.data-table td,.data-table th{border-bottom:1px solid #e9ecef;padding:1rem;text-align:left}.data-table th{color:#495057;font-weight:600;position:-webkit-sticky;position:sticky;top:0}.data-table tbody tr:hover,.data-table th{background-color:#f8f9fa}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr.new-job-highlight{animation:highlightFade 3s ease-out}@keyframes highlightFade{0%{background-color:#039dff}to{background-color:initial}}.status-badge{border-radius:12px;font-size:.875rem;font-weight:500;padding:.25rem .5rem;text-transform:uppercase}.status-initiated{background-color:#e3f2fd;color:#1976d2}.status-running{background-color:#fff3e0;color:#f57c00}.status-completed{background-color:#e8f5e8;color:#2e7d32}.status-failed{background-color:#ffebee;color:#c62828}.status-queued{background-color:#ffebee;color:#1976d2}.status-aborted{background-color:#ffebee;color:#c62828}.btn-small{font-size:.875rem;padding:.375rem .75rem}.btn:disabled{cursor:not-allowed;opacity:.6}.loading{color:#6c757d;padding:2rem;text-align:center}.error-message{background-color:#ffebee;border-radius:8px;color:#721c24;margin:1rem 0;padding:1rem}.success-message{background-color:#d4edda;border:1px solid #c3e6cb;border-radius:8px;color:#155724;margin:1rem 0;padding:1rem}.validation-warning{background-color:#fff3cd;border:1px solid #ffc107;border-radius:4px;color:#856404;margin-bottom:16px;padding:8px 12px}.empty-state{padding:3rem}.jobs-table{margin-top:2rem}.automation-actions{margin:1.5rem 0}.automations-grid{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-top:2rem;padding:2rem}.queue-stats{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin:1.5rem 0}.stat-card{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1rem;text-align:center}.stat-card h4{color:#6c757d;font-size:.9rem;margin-bottom:.5rem;text-transform:uppercase}.stat-value{color:#2c3e50;font-size:2rem;font-weight:600}.queues-list{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;margin-top:2rem;padding:2rem}.settings-sections{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-top:2rem}.settings-section{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;padding:1.5rem;transition:all .3s ease}.settings-section.clickable{cursor:pointer}.settings-section.clickable:hover{background:#e9ecef;border-color:#039dff;box-shadow:0 4px 12px #039dff26;transform:translateY(-2px)}.settings-section h3{color:#2c3e50;font-size:1.25rem;margin-bottom:.5rem}.settings-section h3,.settings-section p{-webkit-user-select:none;user-select:none}@media (max-width:768px){.header-content{padding:.75rem 1rem}.header-right{gap:.5rem}.tenant-dropdown{font-size:.8rem;padding:.4rem .6rem}.sidebar{left:0;position:fixed;top:70px;width:60px;z-index:999}.sidebar .nav-section-title,.sidebar .nav-text{display:none}.sidebar .nav-link{gap:0;justify-content:center;padding:.75rem .5rem}.sidebar .nav-icon{font-size:1.5rem}.layout-body{margin-left:60px}.main-content{margin-left:0;padding:1rem}.dashboard-cards,.queue-stats,.settings-sections{grid-template-columns:1fr}.job-controls{align-items:stretch;flex-direction:column}.job-actions,.job-filters{justify-content:center}.data-table-container{overflow-x:auto}.data-table{min-width:800px}.data-table td,.data-table th{font-size:.875rem;padding:.5rem}}@media (max-width:1400px){.data-table td.jobs-hide-xl,.data-table th.jobs-hide-xl{display:none}}@media (max-width:1200px){.data-table td.jobs-hide-lg,.data-table th.jobs-hide-lg{display:none}}@media (max-width:992px){.data-table td.jobs-hide-md,.data-table th.jobs-hide-md{display:none}}@media (max-width:768px){.data-table td.jobs-hide-sm,.data-table th.jobs-hide-sm{display:none}}@media (max-width:1400px){.data-table td.automations-hide-xl,.data-table th.automations-hide-xl{display:none}}@media (max-width:1200px){.data-table td.automations-hide-lg,.data-table th.automations-hide-lg{display:none}}@media (max-width:992px){.data-table td.automations-hide-md,.data-table th.automations-hide-md{display:none}}@media (max-width:768px){.data-table td.automations-hide-sm,.data-table th.automations-hide-sm{display:none}.data-table{min-width:0;min-width:auto;table-layout:fixed;width:100%}.data-table td,.data-table th{word-wrap:break-word;overflow-wrap:break-word}.data-table td:first-child,.data-table th:first-child{width:60%}.data-table td:nth-child(2),.data-table th:nth-child(2){width:25%}.data-table td:nth-child(3),.data-table th:nth-child(3){text-align:center;width:15%}}.login-container{align-items:center;background:linear-gradient(45deg,#330bc2,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:2rem}.login-card{background:#fff;border-radius:16px;box-shadow:0 20px 40px #0000001a;max-width:400px;padding:3rem;text-align:center;width:100%}.login-header h1{color:#2c3e50;font-size:2rem;font-weight:600;margin-bottom:.5rem}.login-header p{color:#6c757d;font-size:1rem;margin-bottom:2rem}.login-form{text-align:left}.form-group{margin-bottom:1.5rem}.form-group label{color:#495057;display:block;font-weight:500;margin-bottom:.5rem}.form-group input{border:2px solid #e9ecef;border-radius:8px;box-sizing:border-box;font-size:1rem;padding:.875rem;transition:border-color .3s ease,box-shadow .3s ease;width:100%}.form-group input:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.form-group input:disabled{background-color:#f8f9fa;cursor:not-allowed}.input-with-button{display:flex;gap:8px}.input-with-button input{flex:1 1}.input-with-button .btn{flex-shrink:0;white-space:nowrap}.login-button{background:linear-gradient(135deg,#3498db,#2980b9);border:none;border-radius:8px;color:#fff;cursor:pointer;font-size:1rem;font-weight:600;margin-bottom:1rem;padding:1rem;transition:transform .2s ease,box-shadow .2s ease;width:100%}.login-button:hover:not(:disabled){box-shadow:0 10px 20px #3498db4d;transform:translateY(-2px)}.login-button:disabled{background:#95a5a6;box-shadow:none;cursor:not-allowed;transform:none}.login-footer{border-top:1px solid #e9ecef;margin-top:2rem;padding-top:1.5rem}.demo-credentials{background-color:#f8f9fa;border-left:4px solid #3498db;border-radius:8px;color:#6c757d;font-size:.875rem;margin:0;padding:1rem}.demo-credentials strong{color:#495057}.user-menu{position:relative}.user-account,.user-menu{align-items:center;display:flex}.user-account{background:#ffffff1a;border:1px solid #ffffff4d;border-radius:4px;cursor:pointer;gap:.5rem;transition:background-color .3s ease}.user-account:hover{background:#fff3}.user-info{font-size:.9rem;font-weight:500}.dropdown-arrow{color:#fff;margin-left:.25rem}.user-dropdown{background:#fff;border-radius:4px;box-shadow:0 4px 12px #00000026;margin-top:.5rem;min-width:120px;position:absolute;right:.5rem;top:100%;z-index:1001}.user-dropdown-item{border-bottom:1px solid #f8f9fa;color:#495057;cursor:pointer;font-size:.9rem;padding:.75rem 1rem;transition:background-color .3s ease}.user-dropdown-item:last-child{border-bottom:none}.user-dropdown-item:hover{background-color:#f8f9fa}.user-dropdown-divider{background-color:#dee2e6;height:1px;margin:.5rem 0}.app-loading{align-items:center;background-color:#f5f5f5;display:flex;justify-content:center;min-height:100vh}.loading-spinner{text-align:center}.loading-spinner p{color:#6c757d;font-size:1.1rem}@media (max-width:768px){.login-container{padding:1rem}.login-card{padding:2rem}.user-menu{position:static}.user-account{padding:.4rem .6rem}.user-info{font-size:.8rem}.user-dropdown{left:auto;position:fixed;right:1rem;top:70px;width:150px}}.admin-separator{border-left:1px solid #ffffff4d;margin-left:2rem;padding-left:2rem}.admin-label{color:#ffffffb3;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.admin-nav-link{background:#ffffff0d;border:1px solid #ffffff1a}.admin-nav-link:hover{background:#ffffff1a}.admin-nav-link.active{background:#ffa12c}.admin-header{align-items:center;border-bottom:2px solid #3498db;display:flex;justify-content:space-between;margin-bottom:2rem;padding-bottom:1rem}.admin-header h2{color:#2c3e50;margin:0}.admin-header p{color:#6c757d;font-size:.9rem;margin:.5rem 0 0}.admin-content{margin-top:1rem}.modal-form{padding:1.5rem 2rem}.modal-form .form-group{margin-bottom:1.5rem}.modal-form .form-group:last-of-type{margin-bottom:2rem}.modal-form textarea{border:2px solid #e9ecef;border-radius:8px;box-sizing:border-box;font-family:inherit;font-size:1rem;min-height:100px;padding:.875rem;resize:vertical;transition:border-color .3s ease,box-shadow .3s ease;width:100%}.modal-form textarea:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.action-buttons{display:flex;gap:.5rem}.btn-danger{background-color:#ff3b2d;border:none;color:#fff;transition:all .3s ease}.btn-danger:hover{background-color:#e53935;box-shadow:0 4px 15px #ff3b2d4d;transform:translateY(-1px)}.btn-warning{background-color:#ffc107;border:none;color:#212529;transition:all .3s ease}.btn-warning:hover{background-color:#ffca2c;box-shadow:0 4px 15px #ffc1074d;transform:translateY(-1px)}.role-badge{background-color:#3498db;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.tenants-grid{grid-gap:1.5rem;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));margin-top:1rem}.tenant-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 4px #0000001a;overflow:hidden;transition:box-shadow .3s ease,transform .3s ease}.tenant-card:hover{box-shadow:0 4px 12px #00000026;transform:translateY(-2px)}.tenant-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:1.5rem}.tenant-header h3{color:#2c3e50;font-size:1.25rem;margin:0}.tenant-id{background:#fff;border:1px solid #dee2e6;border-radius:4px;color:#6c757d;font-size:.75rem;padding:.25rem .5rem}.tenant-body{padding:1.5rem}.tenant-body p{color:#495057;line-height:1.5;margin:0}.tenant-actions{background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;gap:.5rem;justify-content:flex-end;padding:1rem 1.5rem}.environments-grid{display:flex;flex-direction:column;gap:1rem;margin-top:1rem}.environment-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 4px #0000001a;overflow:hidden;transition:box-shadow .3s ease;width:100%}.environment-card:hover{box-shadow:0 4px 12px #00000026}.environment-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #e9ecef;display:flex;justify-content:space-between;padding:1.5rem;transition:background-color .2s ease}.environment-header:hover{background:#e9ecef}.environment-header-left{align-items:center;display:flex;gap:.75rem}.toggle-icon{color:#6c757d;font-size:.75rem;transition:transform .2s ease;-webkit-user-select:none;user-select:none}.environment-header h3{color:#2c3e50;font-size:1.25rem;margin:0}.environment-id{background:#fff;border:1px solid #dee2e6;border-radius:4px;color:#6c757d;font-size:.75rem;padding:.25rem .5rem}.environment-body{padding:1.5rem}.environment-body .description{color:#495057;line-height:1.5;margin:0 0 1.5rem}.environment-actions{background:#f8f9fa;border-top:1px solid #e9ecef;display:flex;gap:.5rem;justify-content:flex-end;padding:1rem 1.5rem}.workers-section{margin-top:1rem}.workers-section h4{color:#495057;font-size:1rem;font-weight:600;margin-bottom:.75rem}.no-workers{color:#6c757d;font-size:.9rem;font-style:italic;margin:.5rem 0}.workers-table{background:#f8f9fa;border:1px solid #e9ecef;border-radius:8px;overflow:hidden}.workers-header{background:#e9ecef;color:#495057;font-size:.85rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase}.worker-row,.workers-header{grid-gap:.5rem;display:grid;gap:.5rem;grid-template-columns:1fr 1fr 1fr 1fr 140px;padding:.75rem 1rem}.worker-row{align-items:center;border-top:1px solid #e9ecef;transition:background-color .2s ease}.worker-row:first-of-type{border-top:none}.worker-row:hover{background-color:#fff}.worker-card{background:#fff}.worker-col-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.worker-col-actions,.worker-col-created,.worker-col-status{align-items:center;display:flex}.worker-col-actions{gap:.5rem;justify-content:flex-end}.worker-status-badge{border-radius:12px;display:inline-block;font-size:.75rem;font-weight:600;padding:.25rem .5rem;text-transform:uppercase}.status-online{background-color:#e8f5e8;color:#2e7d32}.status-offline{background-color:#f5f5f5;color:#757575}.status-busy{background-color:#fff3e0;color:#f57c00}.status-error{background-color:#ffebee;color:#c62828}.status-pending{background-color:#e3f2fd;color:#1976d2}.attach-key-container{align-items:center;display:flex;gap:.5rem}.attach-key-input{flex:1 1}.readonly-input{background-color:#f8f9fa;color:#495057;cursor:default}.instruction-text{background:#e8f4fd;border:1px solid #bee5eb;border-radius:8px;margin-top:1rem;padding:1rem}.instruction-text h4{color:#055160;font-size:1rem;margin:0 0 .75rem}.instruction-text ol{color:#055160;margin:0;padding-left:1.5rem}.instruction-text li{line-height:1.5;margin-bottom:.5rem}.instruction-text li:last-child{margin-bottom:0}.assignments-container{display:flex;flex-direction:column;gap:1.5rem}.user-assignment-card{background:#fff;border:1px solid #e9ecef;border-radius:12px;box-shadow:0 2px 4px #0000001a;overflow:hidden}.user-info{align-items:center;display:flex;gap:1rem;padding:.5rem}.user-info h3{color:#2c3e50;flex:1 1;margin:0}.user-email{color:#6c757d;font-size:.9rem}.user-role{background:#3498db;border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.tenant-assignments{padding:1.5rem}.tenant-assignments h4{color:#495057;font-size:1rem;margin:0 0 1rem}.tenant-list{display:flex;flex-wrap:wrap;gap:.75rem;margin-bottom:1rem}.tenant-assignment{align-items:center;background:#e8f4fd;border:1px solid #bee5eb;border-radius:8px;display:flex;gap:.5rem;padding:.5rem .75rem}.tenant-name{color:#055160;font-size:.9rem;font-weight:500}.no-assignments{color:#6c757d;font-style:italic;margin:1rem 0}.assignment-actions{border-top:1px solid #e9ecef;margin-top:1rem;padding-top:1rem}.tenant-select{background-color:#fff;border:2px solid #e9ecef;border-radius:8px;font-size:1rem;padding:.875rem;transition:border-color .3s ease,box-shadow .3s ease;width:100%}.tenant-select:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.info-message{background:#d1ecf1;border-left:4px solid #17a2b8;border-radius:8px;color:#0c5460;margin:1rem 0;padding:1rem}@media (max-width:768px){.admin-header{align-items:stretch;flex-direction:column;gap:1rem}.admin-separator{border-left:none;border-top:1px solid #ffffff4d;margin-left:0;margin-top:1rem;padding-left:0;padding-top:1rem}.modal{margin:1rem;max-width:calc(100% - 2rem)}.modal-actions{flex-direction:column}.environments-grid,.tenants-grid{grid-template-columns:1fr}.environment-header{flex-wrap:wrap;gap:.5rem}.environment-header-left{flex:1 1;min-width:200px}.worker-row,.workers-header{gap:.25rem;grid-template-columns:1fr}.worker-row span,.workers-header span{padding:.25rem 0}.worker-col-name:before{content:"Name: ";font-weight:600}.worker-col-status:before{content:"Status: ";font-weight:600}.worker-col-created:before{content:"Created: ";font-weight:600}.workers-header{display:none}.user-info{align-items:stretch;gap:.5rem}.tenant-list,.user-info{flex-direction:column}.tenant-assignment{justify-content:space-between}}.header-controls{align-items:center;display:flex;gap:1rem}.search-input{border:2px solid #e0e0e0;border-radius:8px;font-size:.9rem;min-width:200px;padding:.5rem .75rem;transition:all .3s ease}.search-input:focus{border-color:#039dff;box-shadow:0 0 0 3px #1e9bff1a;outline:none}.scope-badge{border-radius:12px;color:#fff;font-size:.75rem;font-weight:600;padding:.25rem .75rem;text-transform:uppercase}.scope-global{background-color:#039dff}.scope-tenant{background-color:#00e581}.scope-automation{background-color:#e220cc}.scope-package{background-color:#ff9f0a}.filter-select{background-color:#fff;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;font-size:.9rem;padding:.5rem .75rem;transition:all .3s ease}.filter-select:focus{border-color:#039dff;box-shadow:0 0 0 3px #1e9bff1a;outline:none}.three-dot-menu{align-items:center;background-color:#9b9b9b;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;font-size:1.2rem;height:32px;justify-content:center;padding:.25rem .5rem;transition:all .3s ease;width:32px}.three-dot-menu:hover{background-color:#04e5b1;transform:scale(1.1)}.context-menu{background:#fff;border:1px solid #e0e0e0;border-radius:8px;box-shadow:0 8px 32px #3030c226;min-width:120px;overflow:hidden;z-index:2000}.context-menu button{background:none;border:none;cursor:pointer;display:block;padding:.5rem 1rem;text-align:left;transition:background-color .2s;width:100%}.context-menu button:hover{background-color:#039dff;color:#fff}.context-menu button:first-child{border-radius:4px 4px 0 0}.context-menu button:last-child{border-radius:0 0 4px 4px}.parameter-badge{border-radius:4px;font-size:.8rem;font-weight:500;padding:.25rem .5rem}.parameter-badge.active{background-color:#04e5b1;color:#fff}.parameter-badge.inactive{background-color:#9b9b9b;color:#fff}.form-row{grid-gap:1rem;display:grid;gap:1rem;grid-template-columns:1fr 1fr;margin-bottom:1rem}.checkbox-group{align-items:center;display:flex}.checkbox-label{align-items:center;cursor:pointer;display:inline-flex;font-weight:500;gap:.5rem;vertical-align:middle}.checkbox-label input[type=checkbox]{cursor:pointer;flex-shrink:0;margin:0;padding:0;position:relative;top:0;vertical-align:middle}.checkbox-label span{display:inline-block;line-height:1.2;vertical-align:middle}.form-group textarea{font-family:inherit;min-height:80px;resize:vertical}.form-group input[type=checkbox]{width:30px}.artefacts-list{display:flex;flex-direction:column;gap:.75rem}.artefact-item{align-items:center;background-color:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;display:flex;padding:1rem;transition:background-color .2s,border-color .2s}.artefact-item:hover{background-color:#e9ecef;border-color:#dee2e6}.artefact-icon{flex-shrink:0;font-size:1.5rem;margin-right:.75rem}.artefact-name{color:#2c2c2c;flex:1 1;font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.artefact-actions{display:flex;gap:.5rem;margin-left:1rem}.btn-icon{align-items:center;background:none;border:1px solid #dee2e6;border-radius:4px;cursor:pointer;display:flex;font-size:1.25rem;justify-content:center;padding:.5rem .75rem;transition:all .2s}.btn-icon:hover{background-color:#fff;border-color:#06c;transform:translateY(-1px)}.btn-icon:active{transform:translateY(0)}@media (max-width:768px){.header-controls{align-items:stretch;flex-direction:column;gap:.5rem}.filter-select,.search-input{min-width:auto}.form-row{grid-template-columns:1fr}.artefact-item{flex-wrap:wrap}.artefact-name{flex-basis:100%;margin-bottom:.5rem}.artefact-actions{margin-left:auto}}.validation-error{color:#dc3545;display:block;font-size:.875rem;margin-top:.25rem}.input-error,.input-error:focus{border-color:#dc3545!important}.input-error:focus{box-shadow:0 0 0 3px #dc35451a!important}.multi-select-group{background-color:#f8f9fa;border:2px solid #e9ecef;border-radius:8px;display:flex;flex-direction:column;gap:.5rem;padding:.5rem}.multi-select-group .checkbox-label{margin:0;padding:.25rem}.multi-select-group .checkbox-label:hover{background-color:#3498db0d;border-radius:4px}.multi-select-checkbox-container{background-color:#f8f9fa;border:1px solid #ddd;border-radius:4px;display:flex;flex-wrap:wrap;gap:.5rem;max-height:120px;overflow-y:auto;padding:.5rem}.multi-select-checkbox-container .multi-select-item{background-color:#fff;border:1px solid #e0e0e0;border-radius:4px;font-size:.875rem;margin:0;padding:.25rem .5rem}.multi-select-checkbox-container .multi-select-item:hover{background-color:#3498db1a;border-color:#3498db}.modal-resizable{display:flex;flex-direction:column;height:700px;max-height:95vh;max-width:95vw;min-height:400px;min-width:600px;overflow:hidden;position:relative;resize:both;width:900px}.modal-resizable .modal-form{overflow-y:auto}.modal-resizable .form-group,.modal-resizable .form-group .rsw-editor,.modal-resizable .modal-form{display:flex;flex:1 1;flex-direction:column}.modal-resizable .form-group .rsw-editor{min-height:400px}.modal-resizable .form-group .rsw-ce{flex:1 1;overflow-y:auto}.modal-resizable:after{background:linear-gradient(135deg,#0000 50%,#ddd 0);bottom:0;content:"";cursor:nwse-resize;height:20px;pointer-events:none;position:absolute;right:0;width:20px}.email-field-container{align-items:flex-start;display:flex;gap:8px}.email-chips{align-items:center;background-color:#fff;background-color:var(--bg-color,#fff);border:1px solid #ddd;border:1px solid var(--border-color,#ddd);border-radius:4px;display:flex;flex:1 1;flex-wrap:wrap;gap:6px;min-height:42px;padding-left:6px}.email-contact{width:80px}.email-chip{align-items:center;background-color:#007bff;border-radius:4px;color:#fff;display:inline-flex;font-size:14px;gap:6px;padding:4px 8px}.email-chip span{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.email-chip-remove{align-items:center;background:none;border:none;color:#fff;cursor:pointer;display:flex;font-size:18px;height:16px;justify-content:center;line-height:1;margin:0;padding:0;width:16px}.email-chip-remove:hover{background-color:#fff3;border-radius:50%}.email-input{background-color:initial;border:none;border:none!important;border-radius:0!important;flex:1 1;font-size:14px;min-width:200px;outline:none;padding:0!important}.email-input:focus{outline:none}.contact-list{border:1px solid #ddd;border:1px solid var(--border-color,#ddd);border-radius:4px;margin-bottom:16px;max-height:400px;overflow-y:auto}.contact-item{border-bottom:1px solid #ddd;border-bottom:1px solid var(--border-color,#ddd);cursor:pointer;padding:12px 16px;transition:background-color .2s}.contact-item:last-child{border-bottom:none}.contact-item:hover{background-color:#f5f5f5}.contact-name{color:#333;color:var(--text-color,#333);font-size:14px;font-weight:600;margin-bottom:4px}.contact-email{color:#666;font-size:13px}.job-header{align-items:flex-start;border-bottom:1px solid #ddd;display:flex;justify-content:space-between;margin-bottom:20px;padding-bottom:15px}.job-info h3{margin:0 0 10px}.job-meta{align-items:center;display:flex;gap:10px}.connection-indicator{border-radius:4px;font-size:.9em;padding:4px 8px}.connection-indicator.connected{color:#28a745;font-weight:700}.connection-indicator.disconnected{color:#dc3545}.job-details{grid-gap:15px;background:#f8f9fa;border-radius:4px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));margin-bottom:30px;padding:15px}.detail-item{display:flex;flex-direction:column;gap:5px}.detail-item strong{color:#555;font-size:.9em}.logs-section{margin-top:20px}.logs-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:10px}.logs-header h4{margin:0}.logs-controls{align-items:center;display:flex;gap:10px}.autoscroll-checkbox{align-items:center;cursor:pointer;display:flex;font-size:.9em;gap:5px;-webkit-user-select:none;user-select:none}.autoscroll-checkbox input[type=checkbox]{cursor:pointer}.logs-container{background:#1e1e1e;border:1px solid #ddd;border-radius:4px;color:#d4d4d4;font-family:Courier New,Courier,monospace;font-size:.9em;height:500px;overflow-y:auto}.logs-empty{align-items:center;color:#888;display:flex;height:100%;justify-content:center}.logs-content{padding:10px}.log-entry{border-left:3px solid #0000;display:flex;gap:10px;margin-bottom:2px;padding:4px 8px}.log-entry:hover{background:#2d2d2d}.log-timestamp{color:#858585;white-space:nowrap}.log-level{font-weight:700;min-width:70px}.log-message{flex:1 1;word-break:break-word}.log-error{border-left-color:#f48771}.log-error .log-level{color:#f48771}.log-warning{border-left-color:#dcdcaa}.log-warning .log-level{color:#dcdcaa}.log-info{border-left-color:#4fc1ff}.log-info .log-level{color:#4fc1ff}.log-debug{border-left-color:#b5cea8}.log-debug .log-level{color:#b5cea8}.btn-small{font-size:.85em;padding:5px 10px}.btn-small:disabled{cursor:not-allowed;opacity:.5}.dashboard-error{background-color:#ffebee;border:1px solid #f5c6cb;border-radius:8px;color:#721c24;margin-bottom:20px;padding:1rem}.dashboard-charts-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(3,1fr);margin-top:20px}.chart-loading{color:#6c757d}.chart-error,.chart-loading{padding:50px;text-align:center}.chart-error{color:#ff4d4f}.chart-placeholder{align-items:center;color:#999;display:flex;font-size:1rem;height:100%;justify-content:center}.date-filter-group{display:flex;flex-direction:column;gap:5px}.date-filter-label{color:#333;font-size:.9rem;font-weight:500}@media (max-width:1024px){.dashboard-charts-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:768px){.dashboard-charts-grid{grid-template-columns:1fr}}.tenant-multi-select{min-width:250px;position:relative}.multi-select-trigger{align-items:center;background-color:#fff;border:1px solid #ddd;border-radius:4px;cursor:pointer;display:flex;justify-content:space-between;padding:.5rem 1rem;transition:border-color .2s;-webkit-user-select:none;user-select:none}.multi-select-trigger:hover:not(.disabled){border-color:#4a90e2}.multi-select-trigger.disabled{background-color:#f5f5f5;cursor:not-allowed;opacity:.6}.dropdown-arrow{color:#666;font-size:.8rem;margin-left:.5rem}.multi-select-dropdown{background-color:#fff;border:1px solid #ddd;border-radius:4px;box-shadow:0 4px 12px #00000026;display:flex;flex-direction:column;left:0;max-height:300px;position:absolute;right:0;top:calc(100% + 4px);z-index:1000}.multi-select-header{background-color:#f9f9f9;border-bottom:1px solid #eee;padding:.5rem}.select-all-btn{background-color:#4a90e2;border:none;border-radius:3px;color:#fff;cursor:pointer;font-size:.85rem;font-weight:500;padding:.4rem;transition:background-color .2s;width:100%}.select-all-btn:hover{background-color:#357abd}.multi-select-options{max-height:240px;overflow-y:auto}.multi-select-option{align-items:center;border-bottom:1px solid #f0f0f0;cursor:pointer;display:flex;padding:.6rem 1rem;transition:background-color .2s}.multi-select-option:hover{background-color:#f5f5f5}.multi-select-option:last-child{border-bottom:none}.multi-select-option input[type=checkbox]{cursor:pointer;height:16px;margin-right:.75rem;width:16px}.option-label{color:#333;flex:1 1;font-size:.9rem}.admin-reports-controls{align-items:flex-end;display:flex;flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem}.control-group{display:flex;flex-direction:column;gap:.3rem}.control-group label{color:#555;font-size:.85rem;font-weight:500}.rate-limit-warning{animation:slideIn .3s ease-out;position:fixed;right:20px;top:80px;z-index:1100}@keyframes slideIn{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.rate-limit-content{align-items:center;background-color:#fff3cd;border:1px solid #ffc107;border-radius:6px;box-shadow:0 4px 12px #00000026;display:flex;gap:.75rem;max-width:500px;min-width:350px;padding:.875rem 1.25rem}.warning-icon{flex-shrink:0;font-size:1.25rem}.warning-message{color:#856404;flex:1 1;font-size:.9rem;line-height:1.4}.dismiss-button{align-items:center;background:none;border:none;border-radius:50%;color:#856404;cursor:pointer;display:flex;flex-shrink:0;font-size:1.5rem;height:24px;justify-content:center;padding:0;transition:background-color .2s;width:24px}.dismiss-button:hover{background-color:#0000001a}.date-range-warning{animation:slideIn .3s ease-out;position:fixed;right:20px;top:140px;z-index:1100}.date-range-content{align-items:center;background-color:#ffe6e6;border:1px solid #dc3545;border-radius:6px;box-shadow:0 4px 12px #00000026;display:flex;gap:.75rem;max-width:500px;min-width:350px;padding:.875rem 1.25rem}.date-range-content .dismiss-button,.date-range-content .warning-message{color:#721c24}.page-header h1{margin:0 0 .5rem}.page-header .page-description{color:#666;font-size:.95rem;margin:0}.download-button{background-color:#007bff;border:none;border-radius:6px;box-shadow:0 2px 4px #0000001a;color:#fff;cursor:pointer;font-size:.95rem;font-weight:500;padding:.625rem 1.5rem;transition:background-color .2s,transform .1s;white-space:nowrap}.download-button:hover:not(:disabled){background-color:#0056b3;box-shadow:0 4px 8px #00000026;transform:translateY(-1px)}.download-button:active:not(:disabled){box-shadow:0 2px 4px #0000001a;transform:translateY(0)}.download-button:disabled{background-color:#ccc;cursor:not-allowed;opacity:.6}.dual-mode-editor{display:flex;flex-direction:column;gap:.5rem}.editor-mode-toggle{display:flex;gap:.5rem;margin-bottom:.5rem}.mode-toggle-btn{background-color:#fff;border:2px solid #e0e0e0;border-radius:6px;color:#2c2c2c;cursor:pointer;font-size:.875rem;font-weight:500;padding:.5rem 1rem;transition:all .2s ease}.mode-toggle-btn:hover{background-color:#f8f9fa;border-color:#3498db}.mode-toggle-btn.active{background-color:#3498db;border-color:#3498db;color:#fff}.mode-toggle-btn.active:hover{background-color:#2980b9;border-color:#2980b9}.html-editor{background-color:#f8f9fa;border:2px solid #e0e0e0;border-radius:6px;color:#2c2c2c;font-family:Courier New,Courier,monospace;font-size:.875rem;line-height:1.5;min-height:300px;padding:1rem;resize:vertical;transition:border-color .2s ease;width:100%}.html-editor:focus{background-color:#fff;border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.html-editor::placeholder{color:#999;font-style:italic}.editor-validation-error{align-items:center;background-color:#ffe6e6;border:1px solid #dc3545;border-radius:6px;color:#721c24;display:flex;font-size:.875rem;gap:.5rem;padding:.75rem 1rem}.editor-validation-error:before{content:"⚠";font-size:1.2rem}.editor-help-text{color:#666;font-size:.8rem;font-style:italic;margin-top:.25rem;padding-left:.25rem}.dual-mode-editor .rsw-editor{border:2px solid #e0e0e0;border-radius:6px;min-height:300px}.dual-mode-editor .rsw-editor:focus-within{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a}.pagination-container{align-items:center;background-color:#f8f9fa;border:1px solid #e0e0e0;border-radius:6px;display:flex;flex-wrap:wrap;gap:1rem;justify-content:space-between;margin-top:1.5rem;padding:1rem}.pagination-info{color:#666;font-size:.9rem;font-weight:500}.pagination-controls{align-items:center;display:flex;flex-wrap:wrap;gap:1.5rem}.page-size-selector{align-items:center;display:flex;gap:.5rem}.page-size-selector label{color:#666;font-size:.9rem;white-space:nowrap}.page-size-select{background-color:#fff;border:1px solid #ddd;border-radius:4px;color:#2c2c2c;cursor:pointer;font-size:.9rem;padding:.4rem .75rem;transition:all .2s ease}.page-size-select:hover{border-color:#3498db}.page-size-select:focus{border-color:#3498db;box-shadow:0 0 0 3px #3498db1a;outline:none}.page-navigation{align-items:center;display:flex;gap:.25rem}.btn-pagination{align-items:center;background-color:#fff;border:1px solid #ddd;border-radius:4px;color:#2c2c2c;cursor:pointer;display:inline-flex;font-size:.9rem;justify-content:center;min-width:40px;padding:.4rem .75rem;transition:all .2s ease}.btn-pagination:hover:not(:disabled){background-color:#f0f0f0;border-color:#3498db}.btn-pagination:disabled{background-color:#f8f9fa;cursor:not-allowed;opacity:.5}.btn-pagination.active{background-color:#3498db;border-color:#3498db;color:#fff;font-weight:600}.btn-pagination.active:hover{background-color:#2980b9;border-color:#2980b9}.page-ellipsis{color:#666;font-size:.9rem;padding:.4rem .5rem;-webkit-user-select:none;user-select:none}@media (max-width:768px){.pagination-container{align-items:stretch;flex-direction:column}.pagination-info{text-align:center}.pagination-controls{align-items:stretch;flex-direction:column}.page-navigation,.page-size-selector{justify-content:center}.page-navigation{flex-wrap:wrap}}.tabs{border-bottom:2px solid #e5e7eb;border-radius:8px 8px 0 0;display:flex;gap:0;margin-bottom:20px;overflow:hidden}.tab,.tabs{background-color:#fff}.tab{border:none;border-bottom:3px solid #0000;color:#6b7280;cursor:pointer;flex:0 0 auto;font-size:14px;font-weight:500;padding:12px 24px;position:relative;transition:all .2s ease}.tab:hover:not(:disabled){background-color:#f9fafb;color:#3b82f6}.tab.active{background-color:#eff6ff;border-bottom-color:#3b82f6;color:#3b82f6}.tab:disabled{color:#9ca3af;cursor:not-allowed;opacity:.5}.link-button{background:none;border:none;color:#3b82f6;cursor:pointer;font:inherit;padding:0;text-align:left;text-decoration:underline}.link-button:hover{color:#2563eb}.admin-header-actions{display:flex;gap:10px}.modal-footer-actions{display:flex;gap:10px;justify-content:flex-end}.permissions-category-title{color:#374151;margin-bottom:10px}.permissions-category-section{margin-bottom:30px}.category-row{background-color:#f3f4f6;font-weight:600}.category-row td{border-top:2px solid #d1d5db;color:#374151;padding:12px 16px!important}.role-permissions-header{margin-bottom:20px}.role-permissions-description{color:#6b7280;margin-top:5px}.permission-checkbox-cell{text-align:center;width:140px}.permission-checkbox-container{align-items:center;display:flex;gap:8px;justify-content:center}.permission-checkbox{cursor:pointer;height:18px;width:18px}.permission-status-text{font-weight:500}.permission-status-assigned{color:#10b981}.permission-status-unassigned{color:#ef4444}.tenant-assignment-modal{padding:.5rem 0}.assigned-tenants-list{display:flex;flex-direction:column;gap:.5rem}.assigned-tenant-item{align-items:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:6px;display:flex;justify-content:space-between;padding:.75rem 1rem}.assigned-tenant-item .tenant-name{color:#374151;font-weight:500}.btn-remove-tenant{background:none;border:none;color:#ef4444;cursor:pointer;font-size:1.25rem;font-weight:600;line-height:1;padding:.25rem .5rem;transition:color .15s ease}.btn-remove-tenant:hover:not(:disabled){color:#dc2626}.btn-remove-tenant:disabled{cursor:not-allowed;opacity:.5}.tenant-badge-cell{align-items:center;display:flex;gap:.5rem}.tenant-count-badge{align-items:center;background-color:#3b82f6;border-radius:9999px;color:#fff;display:inline-flex;font-size:.75rem;font-weight:600;height:1.5rem;justify-content:center;min-width:1.5rem;padding:0 .5rem}.btn-manage-tenants{background-color:#3b82f6;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.875rem;padding:.375rem .75rem;transition:background-color .15s ease}.btn-manage-tenants:hover{background-color:#2563eb}.alert{border:1px solid #0000;border-radius:4px;font-size:.875rem;margin-bottom:1rem;padding:12px 16px}.alert-info{background-color:#cff4fc;border-color:#b6effb;color:#055160}.alert-success{background-color:#d1e7dd;border-color:#badbcc;color:#0f5132}.alert-warning{background-color:#fff3cd;border-color:#ffecb5;color:#664d03}.alert-danger{background-color:#f8d7da;border-color:#f5c2c7;color:#842029}.config-import-table{table-layout:fixed;width:100%}.config-import-table .col-config-key{min-width:100px;width:15%}.config-import-table .col-scope{width:90px}.config-import-table .col-value{width:auto}.config-import-table .col-import{text-align:center;width:70px}.config-import-table td.col-value{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.config-existing-table{table-layout:fixed;width:100%}.config-existing-table .col-config-key{min-width:100px;width:15%}.config-existing-table .col-scope{width:90px}.config-existing-table .col-current-value,.config-existing-table .col-new-value{width:auto}.config-existing-table .col-overwrite{text-align:center;width:80px}.config-existing-table td.col-current-value,.config-existing-table td.col-new-value{max-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:700px){.config-existing-table .col-scope,.config-import-table .col-scope{display:none}.config-existing-table .col-config-key,.config-import-table .col-config-key{width:30%}}@media (max-width:500px){.config-existing-table .col-config-key,.config-import-table .col-config-key{width:35%}.config-existing-table .col-overwrite,.config-import-table .col-import{width:60px}}.oauth-divider{align-items:center;color:#6b7280;display:flex;font-size:14px;margin:20px 0}.oauth-divider:after,.oauth-divider:before{background-color:#e5e7eb;content:"";flex:1 1;height:1px}.oauth-divider span{padding:0 15px}.oauth-buttons{display:flex;flex-direction:column;gap:10px}.oauth-button{align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;cursor:pointer;display:flex;font-size:14px;font-weight:500;gap:12px;justify-content:center;padding:12px 16px;transition:all .2s ease}.oauth-button:hover:not(:disabled){background-color:#f9fafb;border-color:#d1d5db}.oauth-button:disabled{cursor:not-allowed;opacity:.6}.oauth-button.oauth-microsoft:hover:not(:disabled){border-color:#00a4ef}.oauth-button.oauth-google:hover:not(:disabled){border-color:#4285f4}.oauth-icon{height:20px;width:20px}.oauth-link-button{align-items:center;background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;color:#374151;cursor:pointer;display:inline-flex;font-size:14px;gap:8px;padding:8px 16px;transition:all .2s ease}.oauth-link-button:hover:not(:disabled){background-color:#f9fafb;border-color:#3b82f6}.auth-callback-error,.auth-callback-loading,.auth-callback-success{padding:40px 20px;text-align:center}.auth-callback-loading .spinner{animation:spin 1s linear infinite;border:4px solid #e5e7eb;border-radius:50%;border-top-color:#3b82f6;height:40px;margin:0 auto 20px;width:40px}@keyframes spin{to{transform:rotate(1turn)}}.success-message{background-color:#ecfdf5;border-radius:6px;color:#059669;padding:20px}.linked-identities{padding:10px 0}.linked-identities h3{margin-bottom:10px}.identity-list{margin:20px 0}.no-identities{color:#6b7280;font-style:italic}.identity-item{align-items:center;background-color:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;display:flex;gap:15px;margin-bottom:10px;padding:15px}.identity-icon{flex-shrink:0}.provider-icon{height:32px;width:32px}.provider-icon-placeholder{align-items:center;background-color:#6b7280;border-radius:50%;color:#fff;display:flex;font-size:16px;font-weight:700;height:32px;justify-content:center;width:32px}.identity-info{display:flex;flex:1 1;flex-direction:column;gap:2px}.identity-email{color:#6b7280;font-size:14px}.identity-last-used{color:#9ca3af;font-size:12px}.link-new-section{border-top:1px solid #e5e7eb;margin-top:20px;padding-top:20px}.link-new-section h4{margin-bottom:15px}.link-buttons{display:flex;flex-wrap:wrap;gap:10px}.mfa-enrollment{padding:10px 0}.mfa-enrollment h3{margin-bottom:10px}.mfa-enrollment-actions{display:flex;gap:10px;margin-top:20px}.qr-code-container{background-color:#fff;border-radius:8px;display:flex;justify-content:center;margin:20px 0;padding:20px}.qr-code{height:auto;max-width:200px}.manual-entry{background-color:#f9fafb;border-radius:6px;margin:20px 0;padding:15px}.secret-code{align-items:center;display:flex;gap:10px;margin-top:10px}.secret-code code{background-color:#fff;border:1px solid #e5e7eb;border-radius:4px;font-family:monospace;font-size:14px;padding:8px 12px;word-break:break-all}.backup-codes-section{background-color:#fef3c7;border:1px solid #fcd34d;border-radius:8px;margin:20px 0;max-width:500px;padding:20px}.backup-codes-section h4{color:#92400e;margin-bottom:10px}.backup-codes{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,1fr);margin:15px 0}.backup-code{background-color:#fff;border:1px solid #e5e7eb;border-radius:4px;font-family:monospace;font-size:13px;overflow-wrap:break-word;padding:8px 12px;text-align:center;word-break:break-all}.verify-section{border-top:1px solid #e5e7eb;margin-top:20px;padding-top:20px}.verify-section h4{margin-bottom:10px}.mfa-success{padding:30px;text-align:center}.mfa-success .success-icon{align-items:center;background-color:#d1fae5;border-radius:50%;color:#059669;display:flex;font-size:30px;height:60px;justify-content:center;margin:0 auto 20px;width:60px}.mfa-status-badge{align-items:center;border-radius:20px;display:inline-flex;font-size:14px;font-weight:500;gap:8px;margin-bottom:10px;padding:8px 16px}.mfa-status-badge.enabled{background-color:#d1fae5;color:#059669}.mfa-status-badge.disabled{background-color:#fef3c7;color:#d97706}.mfa-status-badge .status-icon{font-weight:700}.mfa-enrolled-date{color:#6b7280;font-size:14px;margin-top:5px}.mfa-backup-section{background-color:#f9fafb;border-radius:6px;margin-top:15px;padding:15px}.backup-codes-display{background-color:#fef3c7;border:1px solid #fcd34d;border-radius:8px;margin-top:15px;max-width:500px;padding:20px}.backup-codes-display h5{color:#92400e;margin-bottom:10px}.session-lock-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background-color:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.session-lock-dialog{background-color:#fff;border-radius:12px;box-shadow:0 20px 40px #0000004d;max-width:400px;padding:40px;text-align:center;width:90%}.session-lock-header{margin-bottom:30px}.session-lock-header .logo-login{height:auto;margin-bottom:15px;width:60px}.session-lock-header h2{color:#1f2937;margin-bottom:10px}.session-lock-header p{color:#6b7280;font-size:14px;margin:5px 0}.session-lock-form{text-align:left}.session-lock-form .form-group{margin-bottom:20px}.session-lock-actions{display:flex;flex-direction:column;gap:10px;margin-top:20px}.sessions-list{background-color:#f9fafb;border-radius:8px;margin-top:15px;padding:15px}.sessions-header{border-bottom:1px solid #e5e7eb;margin-bottom:15px;padding-bottom:10px}.session-item,.sessions-header{align-items:center;display:flex;justify-content:space-between}.session-item{background-color:#fff;border:1px solid #e5e7eb;border-radius:6px;margin-bottom:10px;padding:15px}.session-item.current{background-color:#eff6ff;border-color:#3b82f6}.session-item.locked{background-color:#fffbeb;border-color:#f59e0b}.session-info{display:flex;flex-direction:column;gap:4px}.session-ip{color:#6b7280;font-size:14px}.session-time{color:#9ca3af;font-size:12px}.current-badge{background-color:#3b82f6}.current-badge,.locked-badge{border-radius:10px;color:#fff;display:inline-block;font-size:11px;font-weight:500;margin-left:8px;padding:2px 8px}.locked-badge{background-color:#f59e0b}.settings-subsection{border-bottom:1px solid #e5e7eb;padding:20px 0}.settings-subsection:last-child{border-bottom:none}.settings-subsection h4{color:#374151;margin-bottom:10px}.settings-subsection p{color:#6b7280;font-size:14px;margin-bottom:15px}.provider-status-enabled{color:#059669;font-weight:500}.provider-status-disabled{color:#dc2626;font-weight:500}.provider-type-badge{background-color:#e5e7eb;border-radius:4px;color:#374151;display:inline-block;font-size:12px;padding:2px 8px;text-transform:uppercase}.config-table-container{margin-top:1.5rem}.config-table-wrapper{border:1px solid #ddd;border-radius:4px;margin-bottom:1rem;overflow-x:auto}.config-data-table{background:#fff;border-collapse:collapse;width:100%}.config-data-table thead{background-color:#f8f9fa;border-bottom:2px solid #dee2e6}.config-data-table th{color:#495057;font-weight:600;padding:12px;text-align:left;white-space:nowrap}.config-data-table td{border-bottom:1px solid #e9ecef;padding:8px 12px;vertical-align:middle}.config-data-table tbody tr:hover{background-color:#f8f9fa}.cell-input{border:1px solid #ced4da;border-radius:4px;box-sizing:border-box;font-size:.9rem;padding:6px 8px;width:100%}.cell-input:focus{border-color:#80bdff;box-shadow:0 0 0 .2rem #007bff40;outline:none}.cell-input[type=checkbox]{cursor:pointer;width:auto}.table-cell-error{background-color:#fff5f5}.table-cell-error .cell-input{border-color:#dc3545}.table-cell-error .cell-input:focus{border-color:#dc3545;box-shadow:0 0 0 .2rem #dc354540}.config-table-actions{display:flex;justify-content:flex-start;padding:1rem 0}.empty-state{background-color:#f8f9fa;border-radius:4px;color:#6c757d;margin-top:1rem;padding:3rem 2rem;text-align:center}.empty-state p{font-size:1rem;margin:0}.page-header{align-items:flex-start;display:flex;justify-content:space-between;margin-bottom:1.5rem}.page-header h2{color:#212529;font-size:1.75rem;margin:0 0 .5rem}.page-header p{color:#6c757d;font-size:.95rem;margin:0}.error-message{align-items:center;background-color:#f8d7da;border:1px solid #f5c6cb;border-radius:4px;display:flex;justify-content:space-between;margin-bottom:1rem;padding:.75rem 1rem}.error-message p{color:#721c24;font-size:.95rem;margin:0}
/*# sourceMappingURL=main.55232bfd.css.map*/