/* admin.css - Glassmorphism + Gradient Design (Admin) */ /* NOTE: admin.html also loads user.css for shared base styles */ /* ===== STATS CARDS ===== */ .admin-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; background: var(--glass-bg); backdrop-filter: blur(var(--card-blur)); -webkit-backdrop-filter: blur(var(--card-blur)); border: 1px solid var(--glass-border); padding: var(--card-padding); border-radius: var(--border-radius-lg); margin-bottom: 30px; box-shadow: var(--glass-shadow); } .stat-card { text-align: center; padding: 12px; background: rgba(30, 30, 30, 0.3); border-radius: var(--border-radius); border: 1px solid rgba(148, 163, 184, 0.06); transition: all var(--transition-speed); } .stat-card:hover { border-color: rgba(99, 102, 241, 0.2); background: rgba(99, 102, 241, 0.05); } .stat-value { font-size: 2.4rem; color: var(--primary-color); font-weight: 800; line-height: 1.2; } font-weight: 800; line-height: 1.2; } .stat-label { font-size: 0.9rem; color: var(--neutral-medium); margin-top: 4px; } /* ===== FILTERS ===== */ .admin-filters { display: flex; flex-wrap: wrap; gap: 12px; } .admin-filters input, .admin-filters select { padding: var(--input-padding); background: rgba(30, 30, 30, 0.5); backdrop-filter: blur(8px); border: 1px solid var(--glass-border); color: var(--text-color); border-radius: var(--border-radius); font-size: 0.95rem; font-family: var(--font-family); transition: border-color var(--transition-speed), box-shadow var(--transition-speed); } .admin-filters input:focus, .admin-filters select:focus { outline: none; border-color: var(--primary-color); box-shadow: 0 0 0 3px var(--primary-glow); } /* ===== TICKET TABLE ===== */ .admin-tickets-list { background: var(--glass-bg); backdrop-filter: blur(var(--card-blur)); -webkit-backdrop-filter: blur(var(--card-blur)); border: 1px solid var(--glass-border); padding: var(--card-padding); border-radius: var(--border-radius-lg); overflow-x: auto; } table { width: 100%; border-collapse: collapse; font-size: 0.95rem; } table th, table td { padding: 12px 15px; text-align: left; border-bottom: 1px solid rgba(148, 163, 184, 0.08); color: var(--text-color); } table th { background: rgba(30, 30, 30, 0.4); color: var(--neutral-medium); font-weight: 600; text-transform: uppercase; font-size: 0.8rem; letter-spacing: 0.5px; } table tr { transition: background var(--transition-speed); } table tbody tr:hover { background: rgba(99, 102, 241, 0.05); } .empty-table { text-align: center; color: var(--neutral-light); padding: 30px !important; } /* ===== TABLE BUTTONS ===== */ .table-actions { display: flex; gap: 8px; justify-content: center; } .table-btn { padding: 7px 12px; border-radius: var(--border-radius); color: white; font-size: 0.85rem; display: flex; align-items: center; gap: 5px; cursor: pointer; border: none; transition: all var(--transition-speed); } .table-btn.view-btn { background: var(--primary-color); } .table-btn.view-btn:hover { transform: translateY(-1px); } .table-btn.delete-btn { background: #ef4444; } .table-btn.delete-btn:hover { transform: translateY(-1px); } /* ===== BADGES ===== */ .status-badge, .priority-badge { padding: 4px 12px; border-radius: 9999px; font-size: 0.82rem; font-weight: 600; white-space: nowrap; } .status-Open { background: rgba(99,102,241,0.15); color: #818cf8; } .status-In-Progress { background: rgba(245,158,11,0.15); color: #fbbf24; } .status-On-Hold { background: rgba(100,116,139,0.2); color: #94a3b8; } .status-Closed { background: rgba(34,197,94,0.15); color: #4ade80; } .priority-Low { background: rgba(6,182,212,0.15); color: #22d3ee; } .priority-Medium { background: rgba(99,102,241,0.15); color: #818cf8; } .priority-High { background: rgba(245,158,11,0.15); color: #fbbf24; } .priority-Urgent { background: rgba(239,68,68,0.15); color: #f87171; } /* ===== CLOSED TICKETS ===== */ .closed-tickets-section { margin: 30px 30px 0; position: relative; z-index: 1; } /* ===== 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; } .closed-tickets-section { margin: 20px 16px 0; } } @media (max-width: 480px) { .header h1 { font-size: 1.3rem; } .stat-value { font-size: 1.8rem; } .admin-stats { grid-template-columns: repeat(2, 1fr); } .btn-primary { width: 100%; } table { font-size: 0.85rem; } table th, table td { padding: 8px 10px; } }