Files
Ticketsystem/public/admin.css
T
2025-11-15 13:48:37 +01:00

257 lines
5.6 KiB
CSS

/* admin.css - Dark Mode Only */
/* ===== GLOBAL STYLES & VARIABLES ===== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
:root {
--primary-color: #4A90E2;
--primary-hover-color: #357ABD;
--secondary-color: #50E3C2;
--accent-color: #F5A623;
--success-color: #7ED321;
--danger-color: #D0021B;
--neutral-dark: #f0f0f0;
--neutral-medium: #cccccc;
--neutral-light: #999999;
--bg-color: #121212;
--card-bg-color: #1e1e1e;
--border-color: #2a2a2a;
--shadow-color: rgba(0, 0, 0, 0.5);
--text-color: #f5f5f5;
--link-color: var(--primary-color);
--font-family: 'Inter', sans-serif;
--border-radius: 8px;
--card-padding: 25px;
--input-padding: 12px 15px;
--transition-speed: 0.2s ease-in-out;
}
* {
box-sizing: border-box;
margin: 0;
padding: 0;
}
body {
font-family: var(--font-family);
background-color: var(--bg-color);
color: var(--text-color);
font-size: 16px;
line-height: 1.6;
}
a {
color: var(--link-color);
text-decoration: none;
transition: color var(--transition-speed);
}
a:hover {
color: var(--primary-hover-color);
text-decoration: underline;
}
/* ===== UTILITY CLASSES ===== */
.container {
max-width: 1400px;
margin: auto;
padding: 20px 30px;
}
/* ===== HEADER ===== */
.header {
background: var(--card-bg-color);
padding: 20px var(--card-padding);
border-radius: var(--border-radius);
box-shadow: 0 2px 10px var(--shadow-color);
margin-bottom: 30px;
display: flex;
justify-content: space-between;
align-items: center;
gap: 20px;
}
.header h1 {
color: var(--primary-color);
font-size: 1.7rem;
font-weight: 700;
display: flex;
align-items: center;
}
.header h1 i {
margin-right: 12px;
}
/* ===== SECTION HEADER ===== */
.section-header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 25px;
flex-wrap: wrap;
gap: 15px;
}
.section-header h2 {
color: var(--neutral-dark);
font-size: 1.6rem;
font-weight: 700;
}
.section-header h2 i {
margin-right: 10px;
color: var(--primary-color);
}
/* ===== STATS CARDS ===== */
.admin-stats {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
gap: 20px;
background: var(--card-bg-color);
padding: var(--card-padding);
border-radius: var(--border-radius);
margin-bottom: 30px;
box-shadow: 0 4px 15px var(--shadow-color);
}
.stat-card {
text-align: center;
}
.stat-value {
font-size: 2.5rem;
color: var(--primary-color);
font-weight: bold;
}
.stat-label {
font-size: 1rem;
color: var(--neutral-medium);
}
/* ===== FILTERS ===== */
.admin-filters {
display: flex;
flex-wrap: wrap;
gap: 15px;
}
.admin-filters input,
.admin-filters select {
padding: var(--input-padding);
background: #1c1c1c;
border: 1px solid var(--border-color);
color: var(--text-color);
border-radius: var(--border-radius);
font-size: 0.95rem;
}
/* ===== TICKET TABLE STYLES (OPEN + CLOSED) ===== */
.admin-tickets-list {
background: var(--card-bg-color);
padding: var(--card-padding);
border-radius: var(--border-radius);
}
table {
width: 100%;
border-collapse: collapse;
font-size: 0.95rem;
}
table th,
table td {
padding: 12px 15px;
text-align: left;
border-bottom: 1px solid var(--border-color);
color: var(--text-color);
}
table th {
background: #1a1a1a;
color: var(--neutral-medium);
font-weight: 600;
text-transform: uppercase;
font-size: 0.8rem;
}
/* ===== TABLE ACTION BUTTONS ===== */
.table-actions {
display: flex;
gap: 8px;
justify-content: center;
}
.table-btn {
padding: 6px 10px;
border-radius: var(--border-radius);
color: white;
font-size: 0.85rem;
display: flex;
align-items: center;
gap: 5px;
cursor: pointer;
}
.view-btn {
background-color: var(--primary-color);
}
.view-btn:hover {
background-color: var(--primary-hover-color);
}
.delete-btn {
background-color: var(--danger-color);
}
.delete-btn:hover {
background-color: #a60014;
}
/* ===== BADGES ===== */
.status-Open { background-color: rgba(74, 144, 226, 0.15); color: #4A90E2; }
.status-In-Progress { background-color: rgba(245, 166, 35, 0.15); color: #F5A623; }
.status-On-Hold { background-color: rgba(155, 155, 155, 0.15); color: #9B9B9B; }
.status-Closed { background-color: rgba(126, 211, 33, 0.15); color: #7ED321; }
.priority-Low { background-color: rgba(80, 227, 194, 0.2); color: #50E3C2; }
.priority-Medium { background-color: rgba(74, 144, 226, 0.2); color: #4A90E2; }
.priority-High { background-color: rgba(245, 166, 35, 0.2); color: #F5A623; }
.priority-Urgent { background-color: rgba(208, 2, 27, 0.15); color: #D0021B; }
.status-badge,
.priority-badge {
padding: 0.25em 0.6em;
border-radius: 9999px;
}
/* ===== CLOSED TICKETS SECTION ===== */
.closed-tickets-section {
margin-top: 30px;
}
.closed-tickets-section .section-header h2 {
color: var(--success-color);
}
/* ===== RESPONSIVE ===== */
@media (max-width: 768px) {
.container {
padding: 15px 20px;
}
.header {
flex-direction: column;
align-items: flex-start;
}
.section-header {
flex-direction: column;
align-items: flex-start;
gap: 10px;
}
}
@media (max-width: 480px) {
.header h1 {
font-size: 1.3rem;
}
.stat-value {
font-size: 2rem;
}
.btn-primary,
.btn-small {
width: 100%;
}
table {
font-size: 0.85rem;
}
table th,
table td {
padding: 8px 10px;
}
}