Files
2025-11-13 00:58:17 +01:00

1040 lines
19 KiB
CSS

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;
}
}