eve-indy-job-tracker/assets/styles.css

378 lines
6.9 KiB
CSS
Executable file

/* Base styles */
body {
font-family: Arial, sans-serif;
background: #1b1b1b;
color: #d4d4d4;
margin: 0;
padding: 0;
}
/* Loader spinner for dashboard and tables */
.loader {
border: 4px solid #333 !important;
border-top: 4px solid #00ffcc !important;
border-radius: 50% !important;
width: 20px !important;
height: 20px !important;
animation: spin 1s linear infinite !important;
display: inline-block !important;
margin-left: 10px !important;
vertical-align: middle !important;
}
@keyframes spin {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
footer {
text-align: center;
margin-top: 20px;
padding: 10px 0;
font-size: 0.9em;
color: #888;
}
footer .fa,
footer .fab,
footer .fas {
margin: 0 10px;
color: #00aaff;
transition:
color 0.3s ease,
transform 0.3s ease;
}
footer .fa:hover,
footer .fab:hover,
footer .fas:hover {
color: #00ccff;
transform: scale(1.2);
}
a {
color: #00aaff;
text-decoration: none;
}
a:hover {
color: #00ccff;
}
.container {
max-width: 1200px;
margin: 0 auto;
padding: 20px;
}
button {
background-color: #333;
color: #fff;
padding: 10px 20px;
border: none;
cursor: pointer;
margin: 5px;
border-radius: 5px;
transition:
background-color 0.2s ease,
box-shadow 0.2s ease;
}
.dashboard-toggle button {
background-color: #333;
color: #fff;
padding: 10px 20px;
border: none;
cursor: pointer;
margin: 5px;
border-radius: 5px;
transition:
background-color 0.2s ease,
box-shadow 0.2s ease;
}
.dashboard-toggle button.active {
background-color: #00ffcc;
color: #000;
}
button:hover {
background-color: #444;
box-shadow: 0 0 8px rgba(0, 255, 255, 0.1);
}
/* Job cards */
.job {
background: #222;
margin: 10px;
padding: 10px;
border-radius: 8px;
}
.job-header {
font-weight: bold;
}
.job-details {
font-size: 0.9em;
color: #aaa;
}
/* Dashboard Table */
#jobsTable {
width: 100%;
border-collapse: collapse;
margin-top: 20px;
table-layout: auto; /* Let columns adjust based on content */
}
#jobsTable th,
#jobsTable td,
.jobsTable th,
.jobsTable td {
padding: 10px;
text-align: left;
border-bottom: 1px solid #333;
white-space: nowrap; /* Prevent text wrapping */
overflow: hidden; /* Ensure text stays within the cell */
text-overflow: ellipsis; /* Shorten overflow text with "..." */
min-width: 100px; /* Ensure minimum width for columns */
}
#jobsTable th,
.jobsTable th {
background-color: #2a2a2a;
color: #00ffcc;
cursor: pointer;
position: sticky;
top: 0;
z-index: 1;
}
#jobsTable tr:nth-child(even),
.jobsTable tr:nth-child(even) {
background-color: #1e1e1e;
}
#jobsTable tr:hover,
.jobsTable tr:hover {
background-color: #2c2c2c;
}
/* Top Button Row */
.buttons {
display: flex;
flex-wrap: wrap;
gap: 10px;
margin-bottom: 20px;
position: relative;
}
/* Import Form Styling */
.import-form {
display: flex;
flex-direction: column;
align-items: center;
margin-top: 10px;
}
.import-form input[type="file"] {
margin-bottom: 10px;
padding: 8px;
background-color: #333;
color: #ddd;
border: 1px solid #444;
border-radius: 5px;
}
.import-form button {
background-color: #00ff9d;
color: #000;
padding: 10px 20px;
border: none;
border-radius: 5px;
font-weight: bold;
transition: background-color 0.2s ease;
}
.import-form button:hover {
background-color: #00b379;
}
/* Section Block Styles (Login/Import panels) */
.section {
max-width: 500px;
margin: 2em auto;
padding: 2em;
border: 1px solid #2a2a2a;
border-radius: 10px;
background: linear-gradient(145deg, #1e1e1e, #2a2a2a);
box-shadow:
0 0 20px rgba(0, 255, 200, 0.08),
0 0 40px rgba(0, 150, 255, 0.05);
transition:
background 0.3s ease,
box-shadow 0.3s ease;
}
.section:hover {
background: linear-gradient(145deg, #222, #333);
box-shadow: 0 0 25px rgba(0, 200, 255, 0.15);
}
/* Divider Styling */
.divider {
margin: 3em auto;
text-align: center;
position: relative;
}
.divider::before,
.divider::after {
content: "";
display: inline-block;
width: 30%;
height: 1px;
background: #444;
vertical-align: middle;
margin: 0 1em;
}
.divider span {
color: #888;
font-size: 0.8em;
text-transform: uppercase;
letter-spacing: 1px;
}
/* Button flash animation */
@keyframes flashButton {
0%,
100% {
background-color: #333;
}
50% {
background-color: #00ffcc;
color: #000;
}
}
.export-flash {
animation: flashButton 0.8s ease-in-out 3;
}
/* Responsive tweaks */
.no-jobs-message {
color: #d4d4d4;
background-color: #222;
border-left: 3px solid #00ffcc;
padding: 10px;
margin: 20px 0;
font-style: italic;
text-align: center;
}
@media (max-width: 768px) {
.buttons {
flex-direction: column;
align-items: flex-start;
}
#jobsTable th,
#jobsTable td {
font-size: 0.9em;
}
}
th.sorted-asc::after {
content: " ▲";
}
th.sorted-desc::after {
content: " ▼";
}
.soon {
background-color: #1e2b38 !important; /* Darker blue-gray for dark theme */
color: #00ffcc !important; /* Make text pop */
font-weight: bold !important;
border-left: 2px solid #00ffcc !important; /* Accent highlight */
}
.character-list {
margin-top: 20px;
}
.character-list ul {
list-style-type: none;
padding: 0;
}
.character-list li {
font-size: 1.1em;
margin: 5px 0;
}
/* Stats Table Styles */
.jobsTable {
width: 100%;
margin-top: 20px;
border-collapse: collapse;
}
.jobsTable th,
.jobsTable td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid #444;
}
.jobsTable th {
background-color: #2a2a2a;
color: #00ffcc;
cursor: pointer;
position: relative;
}
.jobsTable th.sorted-asc::after {
content: " ▲";
}
.jobsTable th.sorted-desc::after {
content: " ▼";
}
.jobsTable tr:nth-child(even) {
background-color: #1e1e1e;
}
.jobsTable tr:hover {
background-color: #2c2c2c;
}
/* Responsive tables */
@media (max-width: 768px) {
.jobsTable,
.jobsTable thead,
.jobsTable tbody,
.jobsTable th,
.jobsTable td,
.jobsTable tr {
display: block;
}
.jobsTable thead tr {
position: absolute;
top: -9999px;
left: -9999px;
}
.jobsTable tr {
border: 1px solid #444;
margin-bottom: 1em;
}
.jobsTable td {
border: none;
position: relative;
padding-left: 50%;
}
.jobsTable td:before {
position: absolute;
left: 6px;
width: 45%;
white-space: nowrap;
font-weight: bold;
}
}