html, body { font-family: sans-serif; font-size: 14px; padding: 5px 10px; } .badge { padding: 0.50rem 1.00rem; white-space: normal !important; } span.badge { margin-bottom: 8px; } .fade:not(.show) { display: none; } #loading { position: fixed; color: #65686a; display: none; z-index: 1000000; } #loading-spinner { position: fixed; overflow: visible; margin: auto; top: 0; left: 0; bottom: 0; right: 0; } #loading:before { content: ''; display: block; position: fixed; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.3); } a { cursor: pointer; } img { border-style: none; /* margin-bottom: 10px; */ vertical-align: middle; } img .flag { border: 1px solid #ddd; } .information { left: 0; right: 0; bottom: 0; color: #343a40; position: absolute; } .form-label { color: #868888; margin-bottom: 0px; word-break: break-all; } .border { display: flex; min-height: 125px; position: relative; align-items: center; justify-content: center; } .mb-3, .my-3 { margin-bottom: 1rem!important; } .without-mb { margin-bottom: 0rem!important; } .p-2 { padding: .5rem!important; } i.fa-play.start { color: #06d79c; font-size: 25px; } i.fa-stop.stop { color: #656373; font-size: 25px; } i.fa-sync.reboot { color: #398bf7; font-size: 25px; } .vnc { height: 25px; } .dashboard-title { color: #3d3d3d; font-size: 22px; } .dashboard-value { color: #586271 !important; } .usage-details { border: 1px solid #e7e4e4; transition: all ease-in .2s; } .usage-details:hover { border: 1px solid transparent; box-shadow: 1px 1px 8px 6px #e5e3e3bf; } .overview-label { color: #99abb4; } .progress.disk-bar { height: 14px; margin-top: 25px; margin-bottom: 20px; border-radius: 6px; -webkit-box-shadow: none; box-shadow: none; } .used_disk_percent { color: #1e88e5; font-size: 20px; } .dashboard-tab .nav-tabs { border-bottom: 1px solid #dfd8d8; margin: 0; } .dashboard-tab .nav-tabs .nav-item { border-bottom: 1px solid #dfd8d8; } .dashboard-tab .nav-tabs li a { position: relative; padding: 5px; margin-right: 10px; color: #374045 !important; border: none; border-radius: 0; background: transparent; transition: all 0.3s ease 0s; z-index: 2; } .dashboard-tab .nav-tabs li a:before { content: ""; width: 100%; height: 4px; border-radius: 2px; position: absolute; bottom: 0; left: 0; } .dashboard-tab .nav-tabs li a:after { content: ""; width: 0; height: 4px; background: linear-gradient(to right, #396afc, #2948ff); border-bottom: 1px solid #727cb6; border-radius: 2px; position: absolute; bottom: -2px; left: 0; transition: all .4s ease 0s; z-index: 1; } .dashboard-tab .nav-tabs li a.active:after { width: 100%; opacity: 1; } .vertical-tabs .nav-link { color: #515a68; padding: 7px 5px; margin-bottom: 10px; transition: all ease-in 0.2s; text-align: left!important; } .vertical-tabs .nav-link.active { border-radius: 0px; color: #2948ff; } .v-tabs-container { border-right: 1px solid #dfd8d8; } .nav-pills .nav-link.active { background-color: unset; } .custom-control-input:checked~.custom-control-label::before { color: #fff; border-color: #007bff; background-color: #007bff; } .info-text { color: #398bf7; cursor: pointer; } #graphs-tab .nav-link, #sub-tasks-and-logs .nav-link { color: #576170; transition: all 0.4s linear; } #graphs-tab .nav-link.active, #sub-tasks-and-logs .nav-link.active { border-radius: 0px; color: #ffffff; background: linear-gradient(to right, #396afc, #2948ff); } .prev-mnth.green_but, .next-mnth.green_but { padding: 4px 10px; } .graphs img { width: 100%; } .submit-btn { background-color: #398bf7; border: none; border-radius: 4px; color: #ffffff; font-weight: 500; padding: 7px 12px; transition: 0.2s ease-in; } .cancel-btn { background-color: #5a6268; border: none; border-radius: 4px; color: #ffffff; font-weight: 500; padding: 7px 12px; transition: 0.2s ease-in; } .danger-btn { background-color: #dc3545; border: none; border-radius: 4px; color: #ffffff; font-weight: 500; padding: 7px 12px; transition: 0.2s ease-in; } .submit-btn:hover { color: #ffffff !important; box-shadow: 0 14px 26px -12px #1769ff6b, 0 4px 23px 0 #0000001f, 0 8px 10px -5px #1769ff33; } .cancel-btn:hover { color: #ffffff !important; box-shadow: 0 14px 26px -12px #000000, 0 4px 23px 0 #0000001f, 0 8px 10px -5px #07183533; } .modal-title { font-weight: 400; color: #455a64; } .modal-title i.success { font-size: 40px; color: #06d79c; vertical-align: middle; } .modal-title i.warning { font-size: 40px; color: orange; vertical-align: middle; } .modal-title i.error { font-size: 40px; color: #ef5350; vertical-align: middle; } .modal-body { color: #868888; font-weight: 500; line-height: 30px; margin-bottom: 0px; } .modal-body p { margin-bottom: 0px; } .link-btn { background-color: #398bf7; border: none; border-radius: 4px; text-decoration: none !important; color: #ffffff !important; font-size: 14px; padding: 7px 12px; transition: 0.2s ease-in; } .link-btn:hover { text-decoration: none; color: #ffffff; box-shadow: 0 14px 26px -12px rgba(23, 105, 255, 0.42), 0 4px 23px 0 rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(23, 105, 255, 0.2); } .v-tab-heading { color: #515557; font-size: 18px; } .distro_img { width: 64px; height: 64px; } .distro_name.media-heading { color: #3d3d3d; font-size: 22px; } .float-left { float: left!important; } .media { display: -ms-flexbox; display: flex; -ms-flex-align: start; align-items: flex-start; } .version { color: #586271; font-size: 12px; } .info-icon { background-color: #007bff; color: #fff; padding: 4px 12px; border: none; border-radius: 4px; } .info-icon:hover, .info-icon:focus { border: none; box-shadow: 0 14px 26px -12px rgba(23, 105, 255, 0.42), 0 4px 23px 0 rgba(0, 0, 0, 0.12), 0 8px 10px -5px rgba(23, 105, 255, 0.2); } .info-icon i { font-size: 12px; } .os_badge { border: 1px solid #ccc; cursor: pointer; transition: height 0.5s; border-radius: 3px; position: relative; } #os_list .dropdown-menu { max-height: 200px; overflow-y: auto; } .os_badge_list a { color: #576170; text-decoration: none; outline: none; display: block; padding: 8px; background-color: #fff; } .os_badge_list a:hover { color: #2f3235; background-color: #f9f6f6; } .os_badge_list .SelectedOS { color: #ffffff; background-color: #2196F3; } .os_badge.selected .version, .os_badge.selected .distro_name.media-heading, .os_badge.selected i { color: #ffffff; } .os_badge.selected { color: #fff; background-color: #06d79c; } .os_badge i { position: absolute; top: 26px; right: 16px; color: #aaa; } .os_badge .media-left { padding: 8px; } .os_badge .media-body { padding: 8px; vertical-align: middle; text-align: left!important; } .os_badge .version { color: #888; } .os_badge.expanded { position: relative; z-index: 999; } .os_badge .dropdown-toggle::after { content: none; } .tab-content>.tab-pane { display: none; } .tab-content>.active { display: block; } .head { margin-bottom: 10px; } .head>img { width: 32px; } .restore-icon { font-size: 17px; } .create { color: #06d79c; } .delete { color: #ff0000; } .table.dataTable.no-footer { border-bottom: 1px solid #5d5b63 !important; } table.tablesorter { box-shadow: 0 2px 12px -3px rgba(0, 0, 0, 0.5); } table.dataTable { clear: both; margin-top: 6px !important; margin-bottom: 6px !important; max-width: none !important; border-collapse: separate !important; border-spacing: 0; } #firewallTable th, #backupTable th { color: #ffffff; background-color: #36304a !important; border: unset !important; font-weight: unset !important; position: sticky !important; top: -1px; z-index: 99; } .fa-1x { font-size: 20px !important; } .grey-txt { color: #666; } .showPassword { text-decoration: none; } .scrtabs-tab-scroll-arrow { top: calc(50% - 10px); color: #396afc; height: 20px; border: none; position: relative; padding-top: 0px; padding-left: 0px; } select, textarea, input[type=text], input[type=textbox], input[type=password] { background: #fff; font-size: 12px; color: #455a64; border: 1px #CCCCCC solid; transition: background 0.3s linear; -webkit-transition: background 0.3s linear; outline: none; } select, textarea, input[type=text], input[type=number], input[type=textbox], input[type=password] { box-shadow: 0 2px 2px 0 #a9a9a924, 0 3px 1px -2px #a9a9a933, 0 1px 5px 0 #a9a9a91f; } .form-control { height: 35px; font-size: 14px !important; min-height: 40px; margin-bottom: 8px; color: #67757c; display: inline-block; border-radius: 4px; } .input-group-text { height: 35px; font-size: 14px !important; min-height: 40px; margin-bottom: 8px; } .ml-auto, .mx-auto { margin-left: auto !important; margin-right: auto !important; } .mr-2, .mx-2 { margin-right: .5rem!important; } @media all and (max-width: 576px) { .left-side-tabs { border-bottom: 1px solid #dfd8d8; } .vertical-tabs .nav-link { padding: 7px 10px; } .left-side-tabs .nav-link.active { color: #ffffff; background:linear-gradient(to right, #396afc, #2948ff); } .vertical-tab-content form select, .vertical-tab-content form input[type=text], .vertical-tab-content form input[type=textbox], .vertical-tab-content form input[type=password] { width:100%; } } /* ============================================ Enhanced Modern Styling ============================================ */ /* Card Styling */ .card { border-radius: 12px !important; border: 1px solid #e3e6f0 !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05); transition: all 0.3s ease; } .card:hover { box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1); } .card-header { border-radius: 12px 12px 0 0 !important; background-color: #f8f9fa !important; border-bottom: 1px solid #e3e6f0 !important; padding: 12px 20px !important; } .card-body { padding: 20px !important; } /* Enhanced Button Styles */ .btn { border-radius: 12px !important; font-weight: 500; transition: all 0.3s ease; padding: 10px 20px; } .btn-success { background: linear-gradient(135deg, #28a745 0%, #20c997 100%) !important; border: none !important; box-shadow: 0 2px 8px rgba(40, 167, 69, 0.3); } .btn-success:hover { background: linear-gradient(135deg, #218838 0%, #1aa179 100%) !important; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(40, 167, 69, 0.4); } .btn-primary { background: linear-gradient(135deg, #3c7fb4 0%, #2d5a87 100%) !important; border: none !important; box-shadow: 0 2px 8px rgba(60, 127, 180, 0.3); } .btn-primary:hover { background: linear-gradient(135deg, #2d5a87 0%, #1e3a57 100%) !important; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(60, 127, 180, 0.4); } .btn-danger { background: linear-gradient(135deg, #dc3545 0%, #c82333 100%) !important; border: none !important; box-shadow: 0 2px 8px rgba(220, 53, 69, 0.3); } .btn-danger:hover { background: linear-gradient(135deg, #c82333 0%, #bd2130 100%) !important; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(220, 53, 69, 0.4); } .btn-lg { padding: 12px 32px !important; font-size: 16px !important; } /* Improved submit-btn to match Hetzner style */ .submit-btn { background: linear-gradient(135deg, #3c7fb4 0%, #2d5a87 100%) !important; border: none !important; border-radius: 12px !important; color: #ffffff !important; font-weight: 600 !important; padding: 10px 20px !important; transition: all 0.3s ease !important; box-shadow: 0 2px 8px rgba(60, 127, 180, 0.3); } .submit-btn:hover { background: linear-gradient(135deg, #2d5a87 0%, #1e3a57 100%) !important; color: #ffffff !important; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(60, 127, 180, 0.4) !important; } /* Table Styling */ .table { border-collapse: separate; border-spacing: 0; } .table thead th { border-bottom: 2px solid #dee2e6 !important; color: #495057; font-weight: 600; text-transform: uppercase; font-size: 0.85rem; letter-spacing: 0.5px; } .table-hover tbody tr { transition: all 0.2s ease; } .table-hover tbody tr:hover { background-color: #f8f9fa; transform: scale(1.01); } .thead-light th { background-color: #f8f9fa !important; } /* Form Control Improvements */ .form-control { border-radius: 8px !important; border: 1px solid #ced4da !important; transition: all 0.2s ease; padding: 8px 12px; } .form-control:focus { border-color: #3c7fb4 !important; box-shadow: 0 0 0 0.2rem rgba(60, 127, 180, 0.25) !important; } /* Alert Styling */ .alert { border-radius: 12px !important; border: none !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); } .alert-info { background: linear-gradient(135deg, #e7f3ff 0%, #d4e9ff 100%); color: #004085; } .alert-warning { background: linear-gradient(135deg, #fff3cd 0%, #ffe5a1 100%); color: #856404; } .alert-success { background: linear-gradient(135deg, #d4edda 0%, #c3e6cb 100%); color: #155724; } /* Firewall Specific Styles */ #firewall .card.border-primary { border: 2px solid #3c7fb4 !important; box-shadow: 0 4px 16px rgba(60, 127, 180, 0.15); } #firewall .card-header.bg-light { background: linear-gradient(135deg, #f8f9fa 0%, #e9ecef 100%) !important; } #firewall .card-header h6 { margin: 0; color: #2c3e50; font-weight: 600; } /* Delete Icon Styling */ .fa-trash { transition: all 0.2s ease; cursor: pointer; } .fa-trash:hover { transform: scale(1.2); color: #dc3545 !important; } /* Loading Spinner */ .fa-spinner { animation: spin 1s linear infinite; } @keyframes spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } /* Smooth transitions for tab content */ .tab-pane { animation: fadeIn 0.3s ease-in; } @keyframes fadeIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: translateY(0); } } /* Nav tabs enhancement */ .nav-tabs .nav-link { border-radius: 12px 12px 0 0 !important; transition: all 0.2s ease; } .nav-tabs .nav-link:hover { background-color: #f8f9fa; } .nav-tabs .nav-link.active { background-color: #e9ecef !important; font-weight: 600; } /* Icon improvements */ .fa, .fas, .far { vertical-align: middle; } /* Small label styling */ label.small { font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px; } /* Text center improvements */ .text-center { text-align: center; } /* Resource Box Styling */ .resource-box { padding: 20px 10px; transition: all 0.3s ease; } .resource-box:hover { transform: translateY(-5px); } .resource-box h3 { color: #2c3e50; font-weight: 600; } .resource-box .text-primary { color: #3c7fb4 !important; } .resource-box .text-success { color: #28a745 !important; } .resource-box .text-warning { color: #ffc107 !important; } .resource-box .text-info { color: #17a2b8 !important; } /* Card Header Enhancement */ .card-header.bg-primary { background: linear-gradient(135deg, #3c7fb4 0%, #2d5a87 100%) !important; } .card-header h5 { margin: 0; font-weight: 600; } /* Table Enhancements */ .table-borderless td { padding: 8px 12px; vertical-align: middle; } .table-borderless code { background-color: #f8f9fa; padding: 4px 8px; border-radius: 4px; font-size: 12px; color: #e83e8c; } /* Usage Details Box Enhancement */ .usage-details { border-radius: 12px !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08); transition: all 0.3s ease; } .usage-details:hover { box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12); transform: translateY(-2px); } /* VPS Control Button Styles - Hetzner Style */ .vps-control-btn { display: inline-flex !important; align-items: center !important; justify-content: center !important; padding: 12px 24px !important; border-radius: 25px !important; margin: 8px 4px !important; transition: all 0.3s ease !important; text-decoration: none !important; color: white !important; font-size: 0.95rem !important; font-weight: 600 !important; min-height: 48px !important; box-shadow: 0 3px 8px rgba(0,0,0,0.15) !important; border: none !important; position: relative !important; overflow: hidden !important; } .vps-control-btn:hover { transform: translateY(-3px) !important; box-shadow: 0 6px 16px rgba(0,0,0,0.2) !important; text-decoration: none !important; color: white !important; } .vps-control-btn:active { transform: translateY(-1px) !important; box-shadow: 0 3px 8px rgba(0,0,0,0.15) !important; } .vps-control-btn.start-btn { background: linear-gradient(45deg, #28a745, #34ce57) !important; color: white !important; } .vps-control-btn.start-btn:hover { background: linear-gradient(45deg, #218838, #28a745) !important; color: white !important; } .vps-control-btn.stop-btn { background: linear-gradient(45deg, #dc3545, #ff4757) !important; color: white !important; } .vps-control-btn.stop-btn:hover { background: linear-gradient(45deg, #c82333, #dc3545) !important; color: white !important; } .vps-control-btn.restart-btn { background: linear-gradient(45deg, #fd7e14, #ff9f43) !important; color: white !important; } .vps-control-btn.restart-btn:hover { background: linear-gradient(45deg, #e65100, #fd7e14) !important; color: white !important; } .vps-control-btn.vnc-btn { background: linear-gradient(45deg, #6f42c1, #8854d0) !important; color: white !important; } .vps-control-btn.vnc-btn:hover { background: linear-gradient(45deg, #5a32a3, #6f42c1) !important; color: white !important; } .vps-control-btn.vnc-btn img { width: 20px !important; height: 20px !important; margin-right: 8px !important; filter: brightness(0) invert(1); } .vps-control-btn i { margin-right: 8px !important; font-size: 1.1rem !important; } /* Mobile Responsive - Stack VPS Control Buttons Vertically */ @media (max-width: 767px) { .vps-control-btn { display: block !important; width: 100% !important; margin: 8px 0 !important; text-align: center !important; } } /* Responsive padding */ @media (max-width: 768px) { .card-body { padding: 15px !important; } .btn-lg { padding: 10px 24px !important; font-size: 14px !important; } .resource-box { padding: 15px 5px; } }