body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}*{box-sizing:border-box;margin:0;padding:0}body{background:linear-gradient(135deg,#667eea,#764ba2);color:#333;font-family:Segoe UI,Tahoma,Geneva,Verdana,sans-serif}.App,body{min-height:100vh}.btn{align-items:center;border-radius:8px;display:inline-flex;font-weight:500;gap:8px;padding:12px 24px}.btn-primary:hover{transform:translateY(-2px)}.btn-success{background:#27ae60;color:#fff}.btn-success:hover{background:#229954;transform:translateY(-2px)}.btn-warning{background:#f39c12;color:#fff}.btn-warning:hover{background:#e67e22}.btn-danger:hover,.btn-warning:hover{transform:translateY(-2px)}.card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:15px;box-shadow:0 8px 32px #0000001a;padding:25px;transition:all .3s ease}.card:hover{box-shadow:0 15px 40px #00000026;transform:translateY(-5px)}.form-label{color:#2c3e50;display:block;font-weight:500;margin-bottom:8px}.form-input{border:2px solid #ecf0f1;border-radius:8px;font-size:16px;padding:12px;transition:border-color .3s ease;width:100%}.form-input:focus{border-color:#3498db;outline:none}.loading{align-items:center;display:flex;height:200px;justify-content:center}.spinner{animation:spin 1s linear infinite;border:4px solid #f3f3f3;border-radius:50%;border-top-color:#3498db;height:40px;width:40px}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:768px){.card{padding:20px}.btn{font-size:13px;padding:10px 20px}}.layout{display:flex;min-height:100vh}.sidebar{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-right:1px solid #ecf0f1;display:flex;flex-direction:column;transition:all .3s ease;width:280px;z-index:1000}.sidebar-header{align-items:center;border-bottom:1px solid #ecf0f1;display:flex;justify-content:space-between;padding:20px}.sidebar-header h2{color:#2c3e50;font-size:1.5rem;font-weight:600;margin:0}.sidebar-toggle{background:none;border:none;color:#7f8c8d;cursor:pointer;display:none;font-size:1.2rem}.sidebar-nav{flex:1 1;padding:20px 0}.nav-item{align-items:center;border-left:3px solid #0000;color:#2c3e50;display:flex;padding:15px 20px;text-decoration:none;transition:all .3s ease}.nav-item:hover{background:#f8f9fa;color:#3498db}.nav-item.active{background:#e3f2fd;border-left-color:#3498db;color:#3498db}.nav-icon{font-size:1.2rem;margin-right:12px;text-align:center;width:24px}.nav-text{font-weight:500}.language-selector{border-bottom:1px solid #ecf0f1;border-top:1px solid #ecf0f1;padding:20px}.language-selector h4{color:#2c3e50;font-size:.9rem;font-weight:600;letter-spacing:.5px;margin:0 0 15px;text-transform:uppercase}.language-options{display:flex;flex-direction:column;gap:8px}.language-btn{align-items:center;background:none;border:1px solid #ecf0f1;border-radius:6px;color:#2c3e50;cursor:pointer;display:flex;font-size:.9rem;padding:10px 15px;transition:all .3s ease}.language-btn:hover{background:#f8f9fa;border-color:#3498db}.language-btn.active{background:#e3f2fd;border-color:#3498db;color:#3498db}.language-btn .flag{font-size:1.1rem;margin-right:8px}.language-btn .lang-name{font-weight:500}.sidebar-footer{border-top:1px solid #ecf0f1;padding:20px}.logout-btn{align-items:center;background:none;border:none;border-radius:8px;color:#e74c3c;cursor:pointer;display:flex;padding:15px 20px;transition:all .3s ease;width:100%}.logout-btn:hover{background:#fdf2f2}.main-content{background:#f8f9fa;display:flex;flex:1 1;flex-direction:column}.header{background:#fff;border-bottom:1px solid #ecf0f1;box-shadow:0 2px 4px #0000001a;justify-content:space-between;padding:20px}.header,.header-left{align-items:center;display:flex}.header-left{gap:20px}.menu-toggle{background:none;border:none;border-radius:4px;color:#7f8c8d;cursor:pointer;display:none;font-size:1.5rem;padding:5px;transition:all .3s ease}.menu-toggle:hover{background:#f8f9fa;color:#2c3e50}.header h1{color:#2c3e50;font-size:1.8rem;font-weight:600;margin:0}.header-right{gap:20px}.header-right,.user-info{align-items:center;display:flex}.user-info{color:#2c3e50;font-weight:500;gap:15px}.current-language{align-items:center;background:#f8f9fa;border-radius:4px;color:#7f8c8d;display:flex;font-size:.9rem;gap:5px;padding:5px 10px}.content{flex:1 1;overflow-y:auto;padding:30px}@media (max-width:768px){.sidebar{height:100vh;left:-280px;position:fixed;top:0;z-index:1001}.sidebar.open{left:0}.menu-toggle,.sidebar-toggle{display:block}.header{padding:15px 20px}.header h1{font-size:1.5rem}.content{padding:20px}.sidebar-overlay{background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:1000}}@media (max-width:480px){.header{align-items:flex-start;flex-direction:column;gap:15px}.header h1{font-size:1.3rem}.content{padding:15px}}.login-container{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);display:flex;justify-content:center;min-height:100vh;padding:20px}.login-card{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:20px;box-shadow:0 20px 60px #0003;max-width:400px;padding:40px;text-align:center;width:100%}.login-header{margin-bottom:30px}.login-header h1{color:#2c3e50;font-size:2rem;font-weight:600;margin-bottom:10px}.login-header p{color:#7f8c8d;font-size:1rem}.login-form{text-align:left}.error-message{background:#f8d7da;border-radius:8px;color:#721c24;font-size:14px;margin-bottom:20px;padding:12px}.login-btn{font-size:16px;font-weight:600;margin-top:20px;padding:14px;width:100%}.spinner-small{animation:spin 1s linear infinite;border:2px solid #fff;border-radius:50%;border-top-color:#0000;height:16px;margin-right:8px;width:16px}.login-footer{border-top:1px solid #ecf0f1;margin-top:30px;padding-top:20px}.login-footer p{color:#7f8c8d;font-size:14px}@media (max-width:480px){.login-card{padding:30px 20px}.login-header h1{font-size:1.5rem}}.dashboard{margin:0 auto;max-width:1400px;padding:20px}.dashboard h1{color:#333;font-size:2.5em;margin-bottom:30px;text-align:center}.dashboard-section{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;margin-bottom:40px;padding:20px}.dashboard-section h2{border-bottom:2px solid #3498db;color:#2c3e50;font-size:1.5em;margin-bottom:20px;padding-bottom:10px}.system-info-grid{grid-gap:20px;display:grid;gap:20px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.info-card{background:linear-gradient(135deg,#667eea,#764ba2);border-radius:10px;box-shadow:0 4px 15px #0000001a;color:#fff;padding:20px;text-align:center;transition:transform .3s ease}.info-card:hover{transform:translateY(-5px)}.info-card h3{font-size:1.1em;margin:0 0 10px;opacity:.9}.info-card p{font-size:2em;font-weight:700;margin:0}.table-container{border-radius:8px;box-shadow:0 2px 8px #0000001a;overflow-x:auto}.data-table{background:#fff}.log-row{transition:background-color .3s ease}.log-row:hover{background-color:#f8f9fa!important}.log-level{border-radius:4px;font-size:11px;font-weight:600;padding:2px 6px;text-transform:uppercase}.log-info{background-color:#d1ecf1;color:#0c5460}.log-warn{background-color:#fff3cd;color:#856404}.log-error{background-color:#f8d7da;color:#721c24}.log-debug{background-color:#e2e3e5;color:#383d41}.settings-grid{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.setting-item{background:#f8f9fa;border-left:4px solid #3498db;border-radius:8px;padding:15px}.setting-item strong{color:#2c3e50;display:block;margin-bottom:5px}@media (max-width:768px){.dashboard{padding:10px}.dashboard h1{font-size:2em}.system-info-grid{gap:15px;grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.info-card{padding:15px}.info-card p{font-size:1.5em}.data-table{font-size:12px}.data-table td,.data-table th{padding:8px 4px}.settings-grid{grid-template-columns:1fr}}@media (max-width:480px){.dashboard-section{padding:15px}.system-info-grid{grid-template-columns:1fr}.info-card p{font-size:1.8em}}.system-settings{margin:0 auto;max-width:800px}.settings-form{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fffffff2;border-radius:15px;box-shadow:0 8px 32px #0000001a;padding:30px}.form-actions{text-align:center}.tenant-management{margin:0 auto;max-width:1400px;padding:20px}.tenant-management .header{align-items:center;background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;display:flex;justify-content:space-between;margin-bottom:30px;padding:20px}.tenant-management h1{color:#333;font-size:2em;margin:0}.btn{border:none;border-radius:5px;cursor:pointer;display:inline-block;font-size:14px;font-weight:600;padding:10px 20px;text-decoration:none;transition:all .3s ease}.btn-primary{background:#3498db;color:#fff}.btn-primary:hover{background:#2980b9}.btn-secondary{background:#95a5a6;color:#fff}.btn-secondary:hover{background:#7f8c8d}.btn-danger{background:#e74c3c;color:#fff}.btn-danger:hover{background:#c0392b}.btn-small{font-size:12px;padding:5px 10px}.tenants-list{background:#fff;border-radius:10px;box-shadow:0 2px 10px #0000001a;overflow-x:auto;padding:20px}.data-table{border-collapse:collapse;font-size:14px;width:100%}.data-table th{background:#34495e;color:#fff;font-weight:600;padding:12px 8px;position:-webkit-sticky;position:sticky;text-align:left;top:0;z-index:10}.data-table td{border-bottom:1px solid #ecf0f1;padding:12px 8px}.data-table tr:hover,.data-table tr:nth-child(2n){background-color:#f8f9fa}.status-badge{border-radius:12px;font-size:12px;font-weight:600;padding:4px 8px;text-transform:uppercase}.status-green{background-color:#d4edda;color:#155724}.status-red{background-color:#f8d7da;color:#721c24}.status-orange{background-color:#fff3cd;color:#856404}.status-gray{background-color:#e2e3e5;color:#383d41}.actions{display:flex;gap:5px}.modal{align-items:center;background:#00000080;display:flex;height:100%;justify-content:center;left:0;position:fixed;top:0;width:100%;z-index:1000}.modal-content{background:#fff;border-radius:10px;box-shadow:0 4px 20px #0000004d;max-height:90vh;max-width:600px;overflow-y:auto;padding:0;width:90%}.modal-header{align-items:center;background:#f8f9fa;border-bottom:1px solid #ecf0f1;border-radius:10px 10px 0 0;display:flex;justify-content:space-between;padding:20px}.modal-header h2{color:#333;font-size:1.5em;margin:0}.close-btn{align-items:center;background:none;border:none;border-radius:50%;color:#666;cursor:pointer;display:flex;font-size:24px;height:30px;justify-content:center;padding:0;transition:background-color .3s ease;width:30px}.close-btn:hover{background-color:#e9ecef;color:#333}form{padding:20px}.form-group{margin-bottom:20px}.form-group label{color:#333;display:block;font-weight:600;margin-bottom:5px}.form-group input,.form-group select,.form-group textarea{border:1px solid #ddd;border-radius:5px;font-size:14px;padding:10px;transition:border-color .3s ease;width:100%}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.form-group textarea{min-height:80px;resize:vertical}.form-actions{border-top:1px solid #ecf0f1;display:flex;gap:10px;justify-content:flex-end;margin-top:30px;padding-top:20px}.loading{color:#666;font-size:18px}.error,.loading{padding:50px;text-align:center}.error{color:#e74c3c;font-size:16px}.error button{background:#3498db;border:none;border-radius:5px;color:#fff;cursor:pointer;font-size:14px;margin-top:20px;padding:10px 20px}.error button:hover{background:#2980b9}@media (max-width:768px){.tenant-management{padding:10px}.tenant-management .header{flex-direction:column;gap:15px;text-align:center}.tenant-management h1{font-size:1.5em}.data-table{font-size:12px}.data-table td,.data-table th{padding:8px 4px}.actions{flex-direction:column;gap:2px}.btn-small{font-size:11px;padding:3px 6px}.modal-content{margin:10px;width:95%}.form-actions{flex-direction:column}}@media (max-width:480px){.modal-header,.tenant-management .header,.tenants-list,form{padding:15px}}.checkbox-group{background-color:#f9f9f9;border:1px solid #ddd;flex-direction:column;max-height:200px;overflow-y:auto;padding:10px}.checkbox-group,.checkbox-item{border-radius:4px;display:flex;gap:10px}.checkbox-item{align-items:flex-start;cursor:pointer;padding:8px;transition:background-color .2s}.checkbox-item:hover{background-color:#e9ecef}.checkbox-item input[type=checkbox]{cursor:pointer;margin-top:2px}.checkbox-label{display:flex;flex:1 1;flex-direction:column;gap:2px}.checkbox-label strong{color:#333;font-weight:600}.checkbox-label small{color:#666;font-size:12px;line-height:1.3}.checkbox-item input[type=checkbox]:checked+.checkbox-label strong{color:#3498db}.selection-summary{color:#7f8c8d;font-size:.9em;font-weight:400;margin-left:10px}.selection-controls{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:15px}.selection-controls .btn{margin:0}.checkbox-item.selected{background-color:#e8f4fd;border:2px solid #3498db;border-radius:8px;margin-bottom:8px;padding:8px}.checkbox-item.selected .checkbox-label strong{color:#2980b9}.selected-items{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:5px;color:#495057;font-size:.9em;margin-top:15px;padding:10px}.selected-items strong{color:#2980b9}.domain-management,.port-management{background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:8px;display:flex;flex-direction:column;gap:15px;margin-top:10px;padding:15px}.domain-item,.port-item{align-items:center;display:flex;gap:10px}.domain-item label,.port-item label{color:#495057;font-weight:600;min-width:150px}.domain-item input,.port-item input{border:1px solid #ced4da;border-radius:4px;flex:1 1;font-size:14px;padding:8px 12px}.domain-item input:focus,.port-item input:focus{border-color:#3498db;box-shadow:0 0 0 2px #3498db33;outline:none}.port-item input[type=number]{flex:none;width:120px}.domain-info,.port-info{background-color:#e8f4fd;border:1px solid #b3d9ff;border-radius:6px;color:#2980b9;font-size:12px;margin-top:5px;padding:10px}.domain-info strong,.port-info strong{color:#1f5f8b}
/*# sourceMappingURL=main.75ea398e.css.map*/