mirror of
https://github.com/KuJoe/kontrolvm.git
synced 2025-04-21 12:33:41 +00:00
767 lines
No EOL
12 KiB
CSS
767 lines
No EOL
12 KiB
CSS
* {
|
|
padding: 0;
|
|
margin: 0;
|
|
text-decoration: none;
|
|
list-style: none;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
body {
|
|
font-family: "Montserrat", sans-serif;
|
|
margin: 0;
|
|
background-color: #f4f4f7;
|
|
color: #333;
|
|
display: flex;
|
|
min-height: 100vh; /* Ensure the body takes at least the full viewport height */
|
|
flex-direction: column; /* Arrange content vertically */
|
|
}
|
|
|
|
.container {
|
|
min-width: 30%;
|
|
max-width: 1500px;
|
|
margin: 20px auto;
|
|
padding: 20px;
|
|
background-color: #fff;
|
|
box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
|
|
flex: 1;
|
|
}
|
|
|
|
h1 {
|
|
text-align: center;
|
|
margin-bottom: 30px;
|
|
}
|
|
|
|
.grid {
|
|
display: grid;
|
|
grid-template-columns: repeat(5, 1fr); /* 5 equal-width columns */
|
|
grid-gap: 20px;
|
|
}
|
|
|
|
.card {
|
|
background-color: #fff;
|
|
border-radius: 5px;
|
|
padding: 10px;
|
|
box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
|
|
text-align: center;
|
|
}
|
|
|
|
.card h2 {
|
|
margin-top: 0;
|
|
color: #333;
|
|
}
|
|
|
|
.card .value {
|
|
font-size: 2.5rem;
|
|
font-weight: bold;
|
|
margin-bottom: 10px;
|
|
color: #28a745;
|
|
}
|
|
|
|
.card .unit {
|
|
font-size: 0.8rem;
|
|
color: #777;
|
|
}
|
|
|
|
.table-container {
|
|
border-radius: 8px;
|
|
}
|
|
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
margin-top: 20px;
|
|
text-align: center;
|
|
}
|
|
|
|
th {
|
|
padding: 12px;
|
|
border: 1px solid #dee2e6;
|
|
white-space: nowrap;
|
|
background-color: #F0F0F5;
|
|
}
|
|
|
|
td {
|
|
padding: 12px;
|
|
border: 1px solid #dee2e6;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.tname {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.ticon {
|
|
display: none;
|
|
}
|
|
|
|
nav {
|
|
background: #0082e6;
|
|
height: 80px;
|
|
width: 100%;
|
|
}
|
|
|
|
label.logo {
|
|
color: white;
|
|
font-size: 25px;
|
|
line-height: 80px;
|
|
padding: 0 100px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
label.logo img {
|
|
height: 64px;
|
|
margin-top: 10px;
|
|
}
|
|
|
|
nav ul {
|
|
float: right;
|
|
margin-right: 20px;
|
|
}
|
|
|
|
nav ul li {
|
|
display: inline-block;
|
|
line-height: 80px;
|
|
margin: 0 5px;
|
|
}
|
|
|
|
nav ul li a {
|
|
color: white;
|
|
font-size: 17px;
|
|
padding: 7px 13px;
|
|
border-radius: 3px;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
nav ul li a.active, nav ul li a:hover {
|
|
background: #1b9bff;
|
|
transition: .5s;
|
|
}
|
|
|
|
.checkbtn {
|
|
font-size: 22px;
|
|
color: white;
|
|
float: right;
|
|
line-height: 80px;
|
|
margin-right: 30px;
|
|
cursor: pointer;
|
|
display: none;
|
|
}
|
|
|
|
#check {
|
|
display: none;
|
|
}
|
|
|
|
.theme-switch {
|
|
position: relative;
|
|
display: inline-block;
|
|
width: 30px;
|
|
height: 16px;
|
|
margin-bottom: 10px;
|
|
float: right;
|
|
}
|
|
|
|
.theme-switch input {
|
|
opacity: 0;
|
|
width: 0;
|
|
height: 0;
|
|
}
|
|
|
|
.slider {
|
|
position: absolute;
|
|
cursor: pointer;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background-color: #ccc;
|
|
-webkit-transition: .4s;
|
|
transition: .4s;
|
|
border-radius: 16px;
|
|
}
|
|
|
|
.slider:before {
|
|
position: absolute;
|
|
content: "";
|
|
height: 13px;
|
|
width: 13px;
|
|
left: 2px;
|
|
bottom: 2px;
|
|
background-color: white;
|
|
-webkit-transition: .4s;
|
|
transition: .4s;
|
|
border-radius: 50%;
|
|
}
|
|
|
|
input:checked + .slider {
|
|
background-color: #2196F3;
|
|
}
|
|
|
|
input:focus + .slider {
|
|
box-shadow: 0 0 1px #2196F3;
|
|
}
|
|
|
|
input:checked + .slider:before {
|
|
-webkit-transform: translateX(13px);
|
|
-ms-transform: translateX(13px);
|
|
transform: translateX(13px);
|
|
}
|
|
|
|
/* Rounded sliders */
|
|
.slider.round {
|
|
border-radius: 16px;
|
|
}
|
|
|
|
.slider.round:before {
|
|
border-radius: 50%;
|
|
}
|
|
|
|
.footer {
|
|
background-color: #fff;
|
|
color: #333;
|
|
padding: 10px 20px;
|
|
text-align: center;
|
|
font-size: 0.8rem;
|
|
width: 100%;
|
|
}
|
|
|
|
.footer .container {
|
|
display: flex;
|
|
flex-direction: row;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
}
|
|
|
|
.social-links {
|
|
list-style: none;
|
|
margin: 0;
|
|
padding: 0;
|
|
display: flex;
|
|
}
|
|
|
|
.social-links li {
|
|
margin: 0 5px;
|
|
}
|
|
|
|
.social-links a {
|
|
text-decoration: none;
|
|
color: #333;
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.social-links i {
|
|
margin-right: 5px;
|
|
}
|
|
|
|
form {
|
|
max-width: 1000px;
|
|
margin: 0 auto;
|
|
}
|
|
|
|
.form-group {
|
|
margin-bottom: 20px;
|
|
}
|
|
|
|
input[type="text"],
|
|
input[type="password"],
|
|
input[type="email"],
|
|
input[type="number"],
|
|
select {
|
|
width: 100%;
|
|
padding: 10px;
|
|
border: 1px solid #ced4da;
|
|
border-radius: 4px;
|
|
box-sizing: border-box;
|
|
}
|
|
|
|
/* Style the disabled input */
|
|
input[type="text"]:disabled {
|
|
background-color: #e9ecef;
|
|
opacity: 1;
|
|
}
|
|
|
|
/* Hide MFA options initially */
|
|
.mfa-options {
|
|
display: none;
|
|
}
|
|
|
|
.success-message {
|
|
color: #155724;
|
|
background-color: #d4edda;
|
|
border: 1px solid #c3e6cb;
|
|
padding: 10px;
|
|
margin-bottom: 15px;
|
|
border-radius: 4px;
|
|
text-align: center;
|
|
}
|
|
|
|
.error-message {
|
|
color: #dc3545;
|
|
background-color: #f8d7da;
|
|
border: 1px solid #f5c6cb;
|
|
padding: 10px;
|
|
margin-bottom: 15px;
|
|
border-radius: 4px;
|
|
text-align: center;
|
|
}
|
|
|
|
.stylish-button {
|
|
background-color: #007bff; /* Blue background color */
|
|
color: white;
|
|
padding: 12px 20px;
|
|
margin:5px;
|
|
border: none;
|
|
border-radius: 5px; /* Slightly rounded corners */
|
|
cursor: pointer;
|
|
font-size: 16px;
|
|
transition: all 0.3s ease; /* Smooth transition for hover effects */
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); /* Subtle shadow */
|
|
}
|
|
|
|
.stylish-button:hover {
|
|
background-color: #0069d9; /* Darker blue on hover */
|
|
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2); /* More pronounced shadow */
|
|
}
|
|
|
|
.stylish-button:active {
|
|
transform: translateY(1px); /* Slight downward shift on click */
|
|
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.1); /* Reduced shadow on click */
|
|
}
|
|
|
|
.modal {
|
|
display: none;
|
|
position: fixed;
|
|
z-index: 1;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow: auto;
|
|
background-color: rgba(0,0,0,0.4);
|
|
}
|
|
|
|
.modal-content {
|
|
background-color: #fefefe;
|
|
margin: 15% auto;
|
|
padding: 20px;
|
|
border: 1px solid #888;
|
|
max-width: 300px;
|
|
}
|
|
|
|
.close {
|
|
color: #aaa;
|
|
float: right;
|
|
font-size: 28px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.close:hover,
|
|
.close:focus {
|
|
color: black;
|
|
text-decoration: none;
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* Customize the label (the container) */
|
|
.checkbox-container {
|
|
display: block;
|
|
position: relative;
|
|
padding-left: 35px;
|
|
margin-bottom: 5px;
|
|
cursor: pointer;
|
|
font-size: 16px;
|
|
-webkit-user-select: none;
|
|
-moz-user-select: none;
|
|
-ms-user-select: none;
|
|
user-select: none;
|
|
text-align: center;
|
|
}
|
|
|
|
/* Hide the browser's default checkbox */
|
|
.checkbox-container input {
|
|
opacity: 0;
|
|
cursor: pointer;
|
|
height: 0;
|
|
width: 0;
|
|
}
|
|
|
|
/* Create a custom checkbox */
|
|
.checkmark {
|
|
position: absolute;
|
|
top: 0;
|
|
height: 25px;
|
|
width: 25px;
|
|
background-color: #eee;
|
|
border-radius: 5px; /* Add rounded corners */
|
|
transition: background-color 0.3s ease; /* Smooth transition for hover effect */
|
|
left: 50%; /* Position the checkmark in the horizontal center */
|
|
transform: translateX(-50%);
|
|
}
|
|
|
|
/* On mouse-over, add a grey background color */
|
|
.checkbox-container:hover input ~ .checkmark {
|
|
background-color: #ccc;
|
|
}
|
|
|
|
/* When the checkbox is checked, add a blue background */
|
|
.checkbox-container input:checked ~ .checkmark {
|
|
background-color: #2196F3;
|
|
}
|
|
|
|
/* Create the checkmark/indicator (hidden when not checked) */
|
|
.checkmark:after {
|
|
content: "";
|
|
position: absolute;
|
|
display: none;
|
|
}
|
|
|
|
/* Show the checkmark when checked */
|
|
.checkbox-container input:checked ~ .checkmark:after {
|
|
display: block;
|
|
}
|
|
|
|
/* Style the checkmark/indicator */
|
|
.checkbox-container .checkmark:after {
|
|
left: 9px;
|
|
top: 5px;
|
|
width: 5px;
|
|
height: 10px;
|
|
border: solid white;
|
|
border-width: 0 3px 3px 0;
|
|
-webkit-transform: rotate(45deg);
|
|
-ms-transform: rotate(45deg);
|
|
transform: rotate(45deg);
|
|
}
|
|
|
|
.submenu {
|
|
list-style: none;
|
|
padding: 10px 0; /* Adjust or remove top padding */
|
|
background-color: #f0f0f5;
|
|
border-bottom: 1px solid #e0e0e5; /* Add a bottom border for separation */
|
|
width: 100%;
|
|
position: relative; /* Or static */
|
|
text-align: center; /* Center the submenu items */
|
|
}
|
|
|
|
.submenu li {
|
|
display: inline-block;
|
|
margin: 0 10px; /* Adjust spacing between items */
|
|
}
|
|
|
|
.submenu a {
|
|
text-decoration: none;
|
|
color: #333;
|
|
font-weight: 500;
|
|
padding: 8px 12px;
|
|
border-radius: 3px;
|
|
transition: background-color 0.3s ease;
|
|
}
|
|
|
|
.submenu a.active {
|
|
font-weight: bold;
|
|
}
|
|
|
|
.submenu a:hover {
|
|
background-color: #e0e0e5;
|
|
}
|
|
|
|
.actionButtons {
|
|
width:100%;
|
|
margin:auto;
|
|
display:flex;
|
|
justify-content:center;
|
|
}
|
|
|
|
/* Tooltip container */
|
|
.tooltip {
|
|
position: relative;
|
|
display: inline-block;
|
|
border-bottom: 1px dotted black; /* If you want dots under the hoverable text */
|
|
}
|
|
|
|
/* Tooltip text */
|
|
.tooltip .tooltiptext {
|
|
visibility: hidden;
|
|
width: 120px;
|
|
background-color: black;
|
|
color: #fff;
|
|
text-align: center;
|
|
padding: 5px 0;
|
|
border-radius: 6px;
|
|
font-size: 14px;
|
|
|
|
/* Position the tooltip text - see examples below! */
|
|
position: absolute;
|
|
z-index: 1;
|
|
}
|
|
|
|
/* Show the tooltip text when you mouse over the tooltip container */
|
|
.tooltip:hover .tooltiptext {
|
|
visibility: visible;
|
|
}
|
|
|
|
.filter-table .quick {
|
|
margin-left: 0.5em;
|
|
font-size: 0.8em;
|
|
text-decoration: none;
|
|
}
|
|
|
|
.fitler-table .quick:hover {
|
|
text-decoration: underline;
|
|
}
|
|
|
|
.highlight-red {
|
|
background-color: red;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.highlight-yellow {
|
|
background-color: yellow;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.notice {
|
|
background-color: orange;
|
|
font-weight: bold;
|
|
}
|
|
|
|
input[type="text"]:read-only {
|
|
background-color: lightgrey;
|
|
}
|
|
|
|
button.btnaction{
|
|
color:#000;
|
|
float:left;
|
|
margin:10px;
|
|
width:80px;
|
|
line-height:40px;
|
|
font-size:20px;
|
|
font-weight:900;
|
|
letter-spacing:3px;
|
|
text-transform:inherit;
|
|
border:5px solid #000;
|
|
box-shadow:1px 1px 0, 2px 2px 0, 3px 3px 0, 4px 4px 0,5px 5px 0;
|
|
}
|
|
|
|
button.btnaction:active{
|
|
top:5px;
|
|
left:5px;
|
|
box-shadow:0 0 0 0;
|
|
}
|
|
|
|
/* Disk Management Styles */
|
|
.disk-management {
|
|
display: flex;
|
|
flex-wrap: wrap; /* Allow wrapping on smaller screens */
|
|
gap: 20px;
|
|
}
|
|
|
|
.disk-list,.add-disk {
|
|
flex: 1;
|
|
min-width: 300px; /* Ensure minimum width for each section */
|
|
background-color: #f8f9fa;
|
|
border: 1px solid #dee2e6;
|
|
border-radius: 5px;
|
|
padding: 20px;
|
|
}
|
|
|
|
.disk-list h3,.add-disk h3 {
|
|
margin-top: 0;
|
|
}
|
|
|
|
#disk-list-items {
|
|
list-style: none;
|
|
padding: 0;
|
|
}
|
|
|
|
/* Modal Styles */
|
|
.modal {
|
|
display: none;
|
|
position: fixed;
|
|
z-index: 1;
|
|
left: 0;
|
|
top: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
overflow: auto;
|
|
background-color: rgba(0, 0, 0, 0.4);
|
|
}
|
|
|
|
.modal-content {
|
|
background-color: #fefefe;
|
|
margin: 15% auto;
|
|
padding: 20px;
|
|
border: 1px solid #888;
|
|
width: 30%;
|
|
}
|
|
|
|
.close {
|
|
color: #aaa;
|
|
float: right;
|
|
font-size: 28px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
.close:hover,.close:focus {
|
|
color: black;
|
|
text-decoration: none;
|
|
cursor: pointer;
|
|
}
|
|
|
|
.pagination {
|
|
width: 100%;
|
|
margin-top: 20px;
|
|
text-align: center;
|
|
}
|
|
.pagination a {
|
|
padding: 5px 10px;
|
|
margin: 2px;
|
|
border: 1px solid #ddd;
|
|
text-decoration: none;
|
|
color: #333;
|
|
}
|
|
.pagination a.active {
|
|
background-color: #007bff;
|
|
color: white;
|
|
}
|
|
.admin-update-banner {
|
|
background-color: #ffeb3b; /* Yellow background for attention */
|
|
color: #333; /* Dark text for readability */
|
|
padding: 15px;
|
|
text-align: center;
|
|
font-weight: bold;
|
|
position: fixed; /* Fixed position to stay at the top */
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
z-index: 1000; /* Ensure it's on top of other elements */
|
|
box-shadow: 0 2px 4px rgba(0, 0, 0, 0.2); /* Subtle shadow */
|
|
display: flex; /* Use flexbox for layout */
|
|
justify-content: center; /* Center content horizontally */
|
|
align-items: center; /* Center content vertically */
|
|
}
|
|
.admin-update-banner a {
|
|
color: #007bff; /* Link color */
|
|
text-decoration: none;
|
|
margin-left: 10px; /* Space between text and link */
|
|
}
|
|
.admin-update-banner a:hover {
|
|
text-decoration: underline; /* Underline on hover */
|
|
}
|
|
.admin-update-banner .close-button {
|
|
margin-left: 20px;
|
|
cursor: pointer;
|
|
font-size: 1.2em;
|
|
color: #555;
|
|
}
|
|
.admin-update-banner .close-button:hover {
|
|
color: #333;
|
|
}
|
|
|
|
/* Responsive Styles */
|
|
@media (max-width: 1150px) {
|
|
.checkbtn {
|
|
display: block;
|
|
}
|
|
|
|
label.logo {
|
|
font-size: 22px;
|
|
}
|
|
|
|
nav ul {
|
|
position: fixed;
|
|
width: 100%;
|
|
height: 100vh;
|
|
background: #2c3e50;
|
|
top: 80px;
|
|
left: -100%;
|
|
text-align: center;
|
|
transition: all .5s;
|
|
}
|
|
|
|
nav ul li {
|
|
display: block;
|
|
margin: 50px 0;
|
|
line-height: 30px;
|
|
}
|
|
|
|
nav ul li a {
|
|
font-size: 20px;
|
|
}
|
|
|
|
a:hover, a.active {
|
|
background: none;
|
|
color: #0082e6;
|
|
}
|
|
|
|
#check:checked~ul {
|
|
left: 0;
|
|
}
|
|
|
|
section {
|
|
height: calc(100vh - 80px);
|
|
}
|
|
|
|
.grid {
|
|
width: 100%;
|
|
grid-template-columns: repeat(1, 1fr); /* 1 column on smaller screens */
|
|
}
|
|
|
|
body.dark-mode .grid {
|
|
width: 100%;
|
|
grid-template-columns: repeat(1, 1fr); /* 1 equal-width columns */
|
|
}
|
|
|
|
table {
|
|
width: 100%;
|
|
overflow-x: auto;
|
|
}
|
|
|
|
td {
|
|
display: block;
|
|
}
|
|
|
|
.tname {
|
|
background-color: #F0F0F5;
|
|
border: 2px solid #000;
|
|
width: 100%;
|
|
}
|
|
|
|
th {
|
|
display: none;
|
|
}
|
|
|
|
.ticon {
|
|
display: inline-block;
|
|
}
|
|
|
|
.footer .container {
|
|
flex-direction: column;
|
|
align-items: center;
|
|
}
|
|
|
|
.social-links {
|
|
margin-top: 10px;
|
|
flex-wrap: wrap;
|
|
display: flex;
|
|
justify-content: center;
|
|
width: 100%;
|
|
}
|
|
|
|
.social-links li {
|
|
margin: 5px;
|
|
}
|
|
|
|
.darkmode {
|
|
margin: 7px 0 0 -1px;
|
|
}
|
|
|
|
.submenu li {
|
|
display: block;
|
|
margin: 15px;
|
|
}
|
|
|
|
.actionButtons {
|
|
display: block;
|
|
}
|
|
} |