2548 lines
54 KiB
CSS
2548 lines
54 KiB
CSS
/* ===== CSS VARIABLES - TERMINAL EDITION ===== */
|
|
:root {
|
|
/* Terminal Dark Backgrounds */
|
|
--bg-primary: #0a0a0a;
|
|
--bg-secondary: #1a1a1a;
|
|
--bg-tertiary: #2a2a2a;
|
|
|
|
/* Terminal Colors */
|
|
--terminal-green: #00ff41;
|
|
--terminal-amber: #ffb000;
|
|
--terminal-cyan: #00ffff;
|
|
--text-primary: #00ff41;
|
|
--text-secondary: #00cc33;
|
|
--text-muted: #008822;
|
|
|
|
/* Border & UI */
|
|
--border-color: #00ff41;
|
|
--shadow: none;
|
|
--hover-bg: rgba(0, 255, 65, 0.1);
|
|
--border-radius: 0;
|
|
|
|
/* Priority Colors (Keep existing) */
|
|
--priority-1: #ff4d4d;
|
|
--priority-2: #ffa726;
|
|
--priority-3: #42a5f5;
|
|
--priority-4: #66bb6a;
|
|
--priority-5: #9e9e9e;
|
|
|
|
/* Status Colors (Keep existing) */
|
|
--status-open: #28a745;
|
|
--status-in-progress: #ffc107;
|
|
--status-closed: #dc3545;
|
|
|
|
/* Terminal Font Stack */
|
|
--font-mono: 'Courier New', 'Consolas', 'Monaco', 'Menlo', monospace;
|
|
|
|
/* Glow Effects - Enhanced for stronger phosphor effect */
|
|
--glow-green: 0 0 5px #00ff41, 0 0 10px #00ff41, 0 0 15px #00ff41;
|
|
--glow-green-intense: 0 0 8px #00ff41, 0 0 16px #00ff41, 0 0 24px #00ff41, 0 0 32px rgba(0, 255, 65, 0.5);
|
|
--glow-red: 0 0 5px #ff4d4d, 0 0 10px #ff4d4d, 0 0 15px #ff4d4d;
|
|
--glow-blue: 0 0 5px #42a5f5, 0 0 10px #42a5f5, 0 0 15px #42a5f5;
|
|
--glow-amber: 0 0 5px #ffb000, 0 0 10px #ffb000, 0 0 15px #ffb000;
|
|
--glow-amber-intense: 0 0 8px #ffb000, 0 0 16px #ffb000, 0 0 24px #ffb000;
|
|
--glow-priority-1: 0 0 5px #ff4d4d, 0 0 10px #ff4d4d, 0 0 15px #ff4d4d;
|
|
--glow-priority-2: 0 0 5px #ffa726, 0 0 10px #ffa726, 0 0 15px #ffa726;
|
|
--glow-priority-3: 0 0 5px #42a5f5, 0 0 10px #42a5f5, 0 0 15px #42a5f5;
|
|
--glow-priority-4: 0 0 5px #66bb6a, 0 0 10px #66bb6a, 0 0 15px #66bb6a;
|
|
--glow-priority-5: 0 0 5px #9e9e9e, 0 0 10px #9e9e9e, 0 0 15px #9e9e9e;
|
|
|
|
/* Spacing */
|
|
--spacing-xs: 0.5rem;
|
|
--spacing-sm: 1rem;
|
|
--spacing-md: 1.5rem;
|
|
--spacing-lg: 2rem;
|
|
|
|
/* Transitions */
|
|
--transition-default: all 0.3s ease;
|
|
}
|
|
|
|
/* Dark theme (now same as light for terminal aesthetic) */
|
|
[data-theme="dark"] {
|
|
--bg-primary: #0a0a0a;
|
|
--bg-secondary: #1a1a1a;
|
|
--bg-tertiary: #2a2a2a;
|
|
--text-primary: #00ff41;
|
|
--text-secondary: #00cc33;
|
|
--border-color: #00ff41;
|
|
--shadow: none;
|
|
--hover-bg: rgba(0, 255, 65, 0.1);
|
|
}
|
|
|
|
/* ===== BASE ELEMENTS - TERMINAL STYLE ===== */
|
|
body {
|
|
font-family: var(--font-mono);
|
|
margin: 0;
|
|
padding: var(--spacing-md);
|
|
background-color: var(--bg-primary);
|
|
color: var(--text-primary);
|
|
transition: var(--transition-default);
|
|
position: relative;
|
|
}
|
|
|
|
/* CRT Scanline Effect - Subtle retro terminal look */
|
|
body::before {
|
|
content: '';
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: repeating-linear-gradient(
|
|
0deg,
|
|
rgba(0, 0, 0, 0.15),
|
|
rgba(0, 0, 0, 0.15) 1px,
|
|
transparent 1px,
|
|
transparent 2px
|
|
);
|
|
pointer-events: none;
|
|
z-index: 9999;
|
|
animation: scanline 8s linear infinite;
|
|
}
|
|
|
|
@keyframes scanline {
|
|
0% {
|
|
transform: translateY(0);
|
|
}
|
|
100% {
|
|
transform: translateY(4px);
|
|
}
|
|
}
|
|
|
|
/* Screen Flicker Effect */
|
|
@keyframes flicker {
|
|
0% { opacity: 1; }
|
|
10% { opacity: 0.95; }
|
|
20% { opacity: 1; }
|
|
30% { opacity: 0.97; }
|
|
40% { opacity: 1; }
|
|
}
|
|
|
|
@keyframes glitch {
|
|
0% { transform: translate(0); }
|
|
20% { transform: translate(-2px, 2px); }
|
|
40% { transform: translate(-2px, -2px); }
|
|
60% { transform: translate(2px, 2px); }
|
|
80% { transform: translate(2px, -2px); }
|
|
100% { transform: translate(0); }
|
|
}
|
|
|
|
.ascii-frame-outer:hover {
|
|
animation: flicker 0.15s ease-in-out 1;
|
|
}
|
|
|
|
/* Random screen glitch every 30 seconds */
|
|
body {
|
|
animation: flicker 0.2s ease-in-out 30s infinite;
|
|
}
|
|
|
|
/* Subtle data stream effect in corner */
|
|
body::after {
|
|
content: '10101010';
|
|
position: fixed;
|
|
bottom: 10px;
|
|
right: 10px;
|
|
font-family: var(--font-mono);
|
|
font-size: 0.6rem;
|
|
color: var(--terminal-green);
|
|
opacity: 0.1;
|
|
pointer-events: none;
|
|
letter-spacing: 2px;
|
|
animation: data-stream 3s linear infinite;
|
|
}
|
|
|
|
@keyframes data-stream {
|
|
0% { content: '10101010'; opacity: 0.1; }
|
|
25% { content: '01010101'; opacity: 0.15; }
|
|
50% { content: '11001100'; opacity: 0.1; }
|
|
75% { content: '00110011'; opacity: 0.15; }
|
|
100% { content: '10101010'; opacity: 0.1; }
|
|
}
|
|
|
|
body.menu-open {
|
|
padding-left: 260px;
|
|
}
|
|
|
|
h1 {
|
|
color: var(--text-primary);
|
|
margin: 0;
|
|
}
|
|
|
|
/* ===== USER HEADER - TERMINAL STYLE ===== */
|
|
.user-header {
|
|
background: var(--bg-secondary);
|
|
padding: 0.5rem 1rem;
|
|
color: var(--terminal-green);
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
border-bottom: 2px solid var(--terminal-green);
|
|
box-shadow: 0 2px 20px rgba(0, 255, 65, 0.2);
|
|
box-sizing: border-box;
|
|
font-family: var(--font-mono);
|
|
position: relative;
|
|
}
|
|
|
|
.user-header::after {
|
|
content: '';
|
|
position: absolute;
|
|
bottom: 0;
|
|
left: 0;
|
|
right: 0;
|
|
height: 2px;
|
|
background: linear-gradient(90deg,
|
|
transparent 0%,
|
|
var(--terminal-green) 20%,
|
|
var(--terminal-green) 80%,
|
|
transparent 100%);
|
|
box-shadow: var(--glow-green);
|
|
}
|
|
|
|
.user-header-left,
|
|
.user-header-right {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 0.75rem;
|
|
flex-shrink: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
.app-title {
|
|
font-weight: bold;
|
|
font-size: 1rem;
|
|
color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber-intense);
|
|
white-space: nowrap;
|
|
animation: subtle-pulse 3s ease-in-out infinite;
|
|
}
|
|
|
|
.app-title::before {
|
|
content: '>> ';
|
|
color: var(--terminal-green);
|
|
text-shadow: var(--glow-green);
|
|
}
|
|
|
|
.back-link {
|
|
color: var(--terminal-green);
|
|
text-decoration: none;
|
|
font-weight: bold;
|
|
font-size: 1rem;
|
|
white-space: nowrap;
|
|
text-shadow: var(--glow-green);
|
|
}
|
|
|
|
.back-link:hover {
|
|
color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber);
|
|
}
|
|
|
|
.user-name {
|
|
color: var(--terminal-green);
|
|
font-size: 0.9rem;
|
|
white-space: nowrap;
|
|
overflow: hidden;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
.admin-badge {
|
|
background: transparent;
|
|
color: var(--priority-1);
|
|
padding: 0.2rem 0.5rem;
|
|
border: 2px solid var(--priority-1);
|
|
border-radius: 0; /* Terminal aesthetic - no rounded corners */
|
|
font-size: 0.75rem;
|
|
font-weight: bold;
|
|
white-space: nowrap;
|
|
text-shadow: var(--glow-priority-1);
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.admin-badge::before {
|
|
content: '[';
|
|
margin-right: 3px;
|
|
}
|
|
|
|
.admin-badge::after {
|
|
content: ']';
|
|
margin-left: 3px;
|
|
}
|
|
|
|
/* Responsive design for smaller screens */
|
|
@media (max-width: 768px) {
|
|
.user-header {
|
|
padding: 0.5rem 0.75rem;
|
|
margin-left: 0; /* Remove margin on mobile */
|
|
}
|
|
|
|
.app-title,
|
|
.back-link {
|
|
font-size: 0.9rem;
|
|
}
|
|
|
|
.user-name {
|
|
font-size: 0.85rem;
|
|
}
|
|
}
|
|
|
|
/* ===== ASCII BORDER SYSTEM ===== */
|
|
.ascii-box {
|
|
position: relative;
|
|
border: 2px solid var(--terminal-green);
|
|
border-radius: 0;
|
|
padding: 1rem;
|
|
background: var(--bg-secondary);
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.ascii-box-heavy {
|
|
border: 3px double var(--terminal-green);
|
|
}
|
|
|
|
.ascii-title {
|
|
position: relative;
|
|
padding: 0.5rem 1rem;
|
|
background: var(--bg-primary);
|
|
border-bottom: 2px solid var(--terminal-green);
|
|
font-family: var(--font-mono);
|
|
font-weight: bold;
|
|
color: var(--terminal-green);
|
|
text-shadow: var(--glow-green);
|
|
}
|
|
|
|
.ascii-title::before {
|
|
content: '═══ ';
|
|
}
|
|
|
|
.ascii-title::after {
|
|
content: ' ═══';
|
|
}
|
|
|
|
/* Priority-specific border colors */
|
|
.ascii-box[data-priority="1"] { border-color: var(--priority-1); }
|
|
.ascii-box[data-priority="2"] { border-color: var(--priority-2); }
|
|
.ascii-box[data-priority="3"] { border-color: var(--priority-3); }
|
|
.ascii-box[data-priority="4"] { border-color: var(--priority-4); }
|
|
.ascii-box[data-priority="5"] { border-color: var(--priority-5); }
|
|
|
|
/* ===== NESTED ASCII FRAME SYSTEM ===== */
|
|
|
|
/* Main outer container - Heavy double border */
|
|
.ascii-frame-outer {
|
|
position: relative;
|
|
border: 3px double var(--terminal-green);
|
|
padding: 0;
|
|
background: var(--bg-primary);
|
|
margin-bottom: 2rem;
|
|
}
|
|
|
|
.ascii-frame-outer::before {
|
|
content: '╔';
|
|
position: absolute;
|
|
top: -3px;
|
|
left: -3px;
|
|
font-size: 1.5rem;
|
|
color: var(--terminal-green);
|
|
line-height: 1;
|
|
z-index: 10;
|
|
}
|
|
|
|
.ascii-frame-outer::after {
|
|
content: '╗';
|
|
position: absolute;
|
|
top: -3px;
|
|
right: -3px;
|
|
font-size: 1.5rem;
|
|
color: var(--terminal-green);
|
|
line-height: 1;
|
|
z-index: 10;
|
|
}
|
|
|
|
/* Bottom corners as separate elements with enhanced glow */
|
|
.bottom-left-corner,
|
|
.bottom-right-corner {
|
|
position: absolute;
|
|
bottom: -3px;
|
|
font-size: 1.5rem;
|
|
color: var(--terminal-green);
|
|
text-shadow: var(--glow-green);
|
|
line-height: 1;
|
|
z-index: 10;
|
|
animation: corner-pulse 4s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes corner-pulse {
|
|
0%, 100% { text-shadow: var(--glow-green); }
|
|
50% { text-shadow: var(--glow-green-intense); }
|
|
}
|
|
|
|
.bottom-left-corner {
|
|
left: -3px;
|
|
}
|
|
|
|
.bottom-right-corner {
|
|
right: -3px;
|
|
}
|
|
|
|
/* Inner section frame - Single border */
|
|
.ascii-frame-inner {
|
|
position: relative;
|
|
border: 2px solid var(--terminal-green);
|
|
padding: 1rem;
|
|
background: var(--bg-secondary);
|
|
margin: 1rem;
|
|
}
|
|
|
|
.ascii-frame-inner::before {
|
|
content: '┌';
|
|
position: absolute;
|
|
top: -2px;
|
|
left: -2px;
|
|
font-size: 1.2rem;
|
|
color: var(--terminal-green);
|
|
line-height: 1;
|
|
}
|
|
|
|
.ascii-frame-inner::after {
|
|
content: '┐';
|
|
position: absolute;
|
|
top: -2px;
|
|
right: -2px;
|
|
font-size: 1.2rem;
|
|
color: var(--terminal-green);
|
|
line-height: 1;
|
|
}
|
|
|
|
/* Section headers with ASCII decoration */
|
|
.ascii-section-header {
|
|
position: relative;
|
|
padding: 0.75rem 1.5rem;
|
|
background: var(--bg-primary);
|
|
border-bottom: 2px solid var(--terminal-green);
|
|
font-family: var(--font-mono);
|
|
font-weight: bold;
|
|
color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber-intense);
|
|
text-transform: uppercase;
|
|
letter-spacing: 0.1em;
|
|
animation: subtle-pulse 3s ease-in-out infinite;
|
|
}
|
|
|
|
@keyframes subtle-pulse {
|
|
0%, 100% { text-shadow: var(--glow-amber); }
|
|
50% { text-shadow: var(--glow-amber-intense); }
|
|
}
|
|
|
|
.ascii-section-header::before {
|
|
content: '╠═══ ';
|
|
color: var(--terminal-green);
|
|
margin-right: 0.5rem;
|
|
}
|
|
|
|
.ascii-section-header::after {
|
|
content: ' ═══╣';
|
|
color: var(--terminal-green);
|
|
margin-left: 0.5rem;
|
|
}
|
|
|
|
/* Subsection headers for nested areas */
|
|
.ascii-subsection-header {
|
|
position: relative;
|
|
padding: 0.5rem 1rem;
|
|
background: var(--bg-secondary);
|
|
border-bottom: 1px solid var(--terminal-green);
|
|
font-family: var(--font-mono);
|
|
font-weight: bold;
|
|
color: var(--terminal-green);
|
|
text-transform: uppercase;
|
|
font-size: 0.9em;
|
|
}
|
|
|
|
.ascii-subsection-header::before {
|
|
content: '├─── ';
|
|
color: var(--terminal-green);
|
|
}
|
|
|
|
.ascii-subsection-header::after {
|
|
content: ' ───┤';
|
|
color: var(--terminal-green);
|
|
}
|
|
|
|
/* Section dividers */
|
|
.ascii-divider {
|
|
height: 2px;
|
|
background: linear-gradient(90deg,
|
|
var(--terminal-green) 0%,
|
|
var(--terminal-green) 48%,
|
|
transparent 48%,
|
|
transparent 52%,
|
|
var(--terminal-green) 52%,
|
|
var(--terminal-green) 100%);
|
|
margin: 1.5rem 0;
|
|
position: relative;
|
|
}
|
|
|
|
.ascii-divider::before {
|
|
content: '╞═══';
|
|
position: absolute;
|
|
left: -2px;
|
|
top: -11px;
|
|
color: var(--terminal-green);
|
|
font-size: 1.2rem;
|
|
text-shadow: var(--glow-green);
|
|
letter-spacing: -2px;
|
|
}
|
|
|
|
.ascii-divider::after {
|
|
content: '═══╡';
|
|
position: absolute;
|
|
right: -2px;
|
|
top: -11px;
|
|
color: var(--terminal-green);
|
|
font-size: 1.2rem;
|
|
text-shadow: var(--glow-green);
|
|
letter-spacing: -2px;
|
|
}
|
|
|
|
/* Content wrapper inside frames */
|
|
.ascii-content {
|
|
padding: 1rem;
|
|
background: var(--bg-secondary);
|
|
}
|
|
|
|
/* Priority-based color variants for outer frames */
|
|
.ascii-frame-outer[data-priority="1"],
|
|
.ascii-frame-outer[data-priority="1"]::before,
|
|
.ascii-frame-outer[data-priority="1"]::after {
|
|
border-color: var(--priority-1);
|
|
color: var(--priority-1);
|
|
}
|
|
|
|
.ascii-frame-outer[data-priority="1"] .bottom-left-corner,
|
|
.ascii-frame-outer[data-priority="1"] .bottom-right-corner {
|
|
color: var(--priority-1);
|
|
}
|
|
|
|
.ascii-frame-outer[data-priority="2"],
|
|
.ascii-frame-outer[data-priority="2"]::before,
|
|
.ascii-frame-outer[data-priority="2"]::after {
|
|
border-color: var(--priority-2);
|
|
color: var(--priority-2);
|
|
}
|
|
|
|
.ascii-frame-outer[data-priority="2"] .bottom-left-corner,
|
|
.ascii-frame-outer[data-priority="2"] .bottom-right-corner {
|
|
color: var(--priority-2);
|
|
}
|
|
|
|
.ascii-frame-outer[data-priority="3"],
|
|
.ascii-frame-outer[data-priority="3"]::before,
|
|
.ascii-frame-outer[data-priority="3"]::after {
|
|
border-color: var(--priority-3);
|
|
color: var(--priority-3);
|
|
}
|
|
|
|
.ascii-frame-outer[data-priority="3"] .bottom-left-corner,
|
|
.ascii-frame-outer[data-priority="3"] .bottom-right-corner {
|
|
color: var(--priority-3);
|
|
}
|
|
|
|
.ascii-frame-outer[data-priority="4"],
|
|
.ascii-frame-outer[data-priority="4"]::before,
|
|
.ascii-frame-outer[data-priority="4"]::after {
|
|
border-color: var(--priority-4);
|
|
color: var(--priority-4);
|
|
}
|
|
|
|
.ascii-frame-outer[data-priority="4"] .bottom-left-corner,
|
|
.ascii-frame-outer[data-priority="4"] .bottom-right-corner {
|
|
color: var(--priority-4);
|
|
}
|
|
|
|
.ascii-frame-outer[data-priority="5"],
|
|
.ascii-frame-outer[data-priority="5"]::before,
|
|
.ascii-frame-outer[data-priority="5"]::after {
|
|
border-color: var(--priority-5);
|
|
color: var(--priority-5);
|
|
}
|
|
|
|
.ascii-frame-outer[data-priority="5"] .bottom-left-corner,
|
|
.ascii-frame-outer[data-priority="5"] .bottom-right-corner {
|
|
color: var(--priority-5);
|
|
}
|
|
|
|
/* ===== TERMINAL PROMPT STYLES ===== */
|
|
.terminal-prompt::before {
|
|
content: '> ';
|
|
color: var(--terminal-green);
|
|
font-weight: bold;
|
|
}
|
|
|
|
.terminal-command::before {
|
|
content: '$ ';
|
|
color: var(--terminal-amber);
|
|
font-weight: bold;
|
|
}
|
|
|
|
.terminal-checkbox-checked::before {
|
|
content: '[✓] ';
|
|
color: var(--terminal-green);
|
|
}
|
|
|
|
.terminal-checkbox-unchecked::before {
|
|
content: '[ ] ';
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.terminal-status-active::before {
|
|
content: '[●] ';
|
|
color: var(--status-open);
|
|
}
|
|
|
|
.terminal-status-inactive::before {
|
|
content: '[○] ';
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
/* ===== TEXT GLOW EFFECTS ===== */
|
|
.glow-text {
|
|
text-shadow: var(--glow-green);
|
|
}
|
|
|
|
.glow-priority-1 { text-shadow: var(--glow-priority-1); }
|
|
.glow-priority-2 { text-shadow: var(--glow-priority-2); }
|
|
.glow-priority-3 { text-shadow: var(--glow-priority-3); }
|
|
.glow-priority-4 { text-shadow: var(--glow-priority-4); }
|
|
.glow-priority-5 { text-shadow: var(--glow-priority-5); }
|
|
|
|
.glow-status-open {
|
|
text-shadow: 0 0 5px var(--status-open), 0 0 10px var(--status-open);
|
|
}
|
|
|
|
.glow-status-progress {
|
|
text-shadow: 0 0 5px var(--status-in-progress), 0 0 10px var(--status-in-progress);
|
|
}
|
|
|
|
.glow-status-closed {
|
|
text-shadow: 0 0 5px var(--status-closed), 0 0 10px var(--status-closed);
|
|
}
|
|
|
|
@keyframes pulse-glow {
|
|
0%, 100% {
|
|
text-shadow: 0 0 5px currentColor, 0 0 10px currentColor;
|
|
}
|
|
50% {
|
|
text-shadow: 0 0 10px currentColor, 0 0 20px currentColor, 0 0 30px currentColor;
|
|
}
|
|
}
|
|
|
|
.pulse-glow {
|
|
animation: pulse-glow 2s ease-in-out infinite;
|
|
}
|
|
|
|
/* ===== TYPEWRITER ANIMATION ===== */
|
|
@keyframes typewriter {
|
|
from { width: 0; }
|
|
to { width: 100%; }
|
|
}
|
|
|
|
@keyframes blink-caret {
|
|
from, to { border-color: transparent; }
|
|
50% { border-color: var(--terminal-green); }
|
|
}
|
|
|
|
.typewriter {
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
border-right: 3px solid var(--terminal-green);
|
|
animation:
|
|
typewriter 2s steps(40, end),
|
|
blink-caret 0.75s step-end infinite;
|
|
}
|
|
|
|
.typewriter-slow { animation-duration: 4s; }
|
|
.typewriter-fast { animation-duration: 1s; }
|
|
|
|
.typewriter-multi-line {
|
|
overflow: hidden;
|
|
animation: reveal-lines 3s steps(20, end) forwards;
|
|
}
|
|
|
|
@keyframes reveal-lines {
|
|
from { max-height: 0; }
|
|
to { max-height: 500px; }
|
|
}
|
|
|
|
/* ===== LOADING STATES ===== */
|
|
.loading-terminal {
|
|
display: inline-block;
|
|
font-family: var(--font-mono);
|
|
color: var(--terminal-green);
|
|
}
|
|
|
|
.loading-terminal::after {
|
|
content: '...';
|
|
animation: loading-dots 1.5s steps(4, end) infinite;
|
|
}
|
|
|
|
@keyframes loading-dots {
|
|
0%, 20% { content: '.'; }
|
|
40% { content: '..'; }
|
|
60%, 100% { content: '...'; }
|
|
}
|
|
|
|
.spinner-terminal {
|
|
display: inline-block;
|
|
font-family: var(--font-mono);
|
|
color: var(--terminal-green);
|
|
}
|
|
|
|
.spinner-terminal::before { content: '['; }
|
|
.spinner-terminal::after {
|
|
content: ']';
|
|
animation: spinner-rotate 1s linear infinite;
|
|
}
|
|
|
|
@keyframes spinner-rotate {
|
|
0% { content: '|]'; }
|
|
25% { content: '/]'; }
|
|
50% { content: '─]'; }
|
|
75% { content: '\\]'; }
|
|
100% { content: '|]'; }
|
|
}
|
|
|
|
/* ===== MESSAGE STYLES ===== */
|
|
.error-message {
|
|
padding: 15px 20px;
|
|
background: rgba(255, 77, 77, 0.1);
|
|
border: 2px solid var(--priority-1);
|
|
border-radius: 0;
|
|
font-family: var(--font-mono);
|
|
color: var(--priority-1);
|
|
margin: 20px 0;
|
|
}
|
|
|
|
.error-message::before {
|
|
content: '[!] ERROR: ';
|
|
font-weight: bold;
|
|
}
|
|
|
|
.success-message {
|
|
padding: 15px 20px;
|
|
background: rgba(40, 167, 69, 0.1);
|
|
border: 2px solid var(--status-open);
|
|
border-radius: 0;
|
|
font-family: var(--font-mono);
|
|
color: var(--status-open);
|
|
margin: 20px 0;
|
|
}
|
|
|
|
.success-message::before {
|
|
content: '[✓] SUCCESS: ';
|
|
font-weight: bold;
|
|
}
|
|
|
|
.info-message {
|
|
padding: 15px 20px;
|
|
background: rgba(66, 165, 245, 0.1);
|
|
border: 2px solid var(--priority-3);
|
|
border-radius: 0;
|
|
font-family: var(--font-mono);
|
|
color: var(--priority-3);
|
|
margin: 20px 0;
|
|
}
|
|
|
|
.info-message::before {
|
|
content: '[i] INFO: ';
|
|
font-weight: bold;
|
|
}
|
|
|
|
/* ===== EMPTY STATES ===== */
|
|
.empty-state {
|
|
text-align: center;
|
|
padding: 60px 20px;
|
|
font-family: var(--font-mono);
|
|
color: var(--terminal-green);
|
|
}
|
|
|
|
.empty-state::before {
|
|
content: '\A╔════════════════════════════╗\A║ ║\A║ NO DATA FOUND ║\A║ ║\A╚════════════════════════════╝\A';
|
|
white-space: pre;
|
|
display: block;
|
|
font-size: 0.9rem;
|
|
line-height: 1.2;
|
|
margin-bottom: 20px;
|
|
opacity: 0.7;
|
|
}
|
|
|
|
/* ===== LAYOUT COMPONENTS ===== */
|
|
.dashboard-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: var(--spacing-md);
|
|
margin-left: 3.75rem;
|
|
}
|
|
|
|
.table-controls {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin-bottom: 15px;
|
|
padding: 10px;
|
|
background: var(--bg-secondary);
|
|
border-radius: 0;
|
|
box-shadow: var(--shadow);
|
|
}
|
|
|
|
.ticket-count {
|
|
font-weight: 500;
|
|
color: var(--text-secondary);
|
|
}
|
|
|
|
.table-actions {
|
|
display: flex;
|
|
gap: 15px;
|
|
align-items: center;
|
|
}
|
|
|
|
/* ===== BUTTON STYLES - TERMINAL EDITION ===== */
|
|
.btn,
|
|
.btn-base,
|
|
button {
|
|
font-family: var(--font-mono);
|
|
background: transparent;
|
|
color: var(--terminal-green);
|
|
border: 2px solid var(--terminal-green);
|
|
border-radius: 0;
|
|
padding: 10px 20px;
|
|
cursor: pointer;
|
|
text-transform: uppercase;
|
|
font-weight: bold;
|
|
position: relative;
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
.btn::before,
|
|
.btn-base::before,
|
|
button::before {
|
|
content: '[ ';
|
|
}
|
|
|
|
.btn::after,
|
|
.btn-base::after,
|
|
button::after {
|
|
content: ' ]';
|
|
}
|
|
|
|
.btn:hover,
|
|
.btn-base:hover,
|
|
button:hover {
|
|
background: rgba(0, 255, 65, 0.15);
|
|
color: var(--terminal-amber);
|
|
border-color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber-intense);
|
|
box-shadow: var(--glow-amber-intense);
|
|
transform: translateY(-2px);
|
|
animation: pulse-glow 1.5s ease-in-out infinite;
|
|
}
|
|
|
|
.btn:active,
|
|
.btn-base:active,
|
|
button:active {
|
|
transform: translateY(0);
|
|
box-shadow: var(--glow-green-intense);
|
|
}
|
|
|
|
@keyframes pulse-glow {
|
|
0%, 100% { box-shadow: 0 0 8px currentColor, 0 0 16px currentColor; }
|
|
50% { box-shadow: 0 0 12px currentColor, 0 0 24px currentColor, 0 0 32px currentColor; }
|
|
}
|
|
|
|
/* Terminal prompt for primary action buttons */
|
|
.btn.create-ticket::before,
|
|
.btn.primary::before {
|
|
content: '> ';
|
|
margin-right: 4px;
|
|
}
|
|
|
|
.btn.create-ticket::after,
|
|
.btn.primary::after {
|
|
content: '';
|
|
}
|
|
|
|
.btn-primary,
|
|
.create-ticket {
|
|
background: transparent;
|
|
color: var(--terminal-amber);
|
|
border: 2px solid var(--terminal-amber);
|
|
padding: 0.625rem 1.25rem;
|
|
border-radius: 0;
|
|
cursor: pointer;
|
|
font-weight: bold;
|
|
font-family: var(--font-mono);
|
|
text-transform: uppercase;
|
|
transition: all 0.3s ease;
|
|
margin-right: 3.75rem;
|
|
text-shadow: var(--glow-amber);
|
|
}
|
|
|
|
.btn-primary::before,
|
|
.create-ticket::before {
|
|
content: '[ ';
|
|
}
|
|
|
|
.btn-primary::after,
|
|
.create-ticket::after {
|
|
content: ' ]';
|
|
}
|
|
|
|
.btn-primary:hover,
|
|
.create-ticket:hover {
|
|
background: rgba(255, 176, 0, 0.1);
|
|
color: var(--terminal-green);
|
|
border-color: var(--terminal-green);
|
|
text-shadow: var(--glow-green);
|
|
transform: translateY(-2px);
|
|
}
|
|
|
|
/* ===== TABLE STYLES - TERMINAL EDITION ===== */
|
|
table {
|
|
width: 100%;
|
|
border-collapse: collapse;
|
|
background: var(--bg-secondary);
|
|
border: 2px solid var(--terminal-green);
|
|
border-radius: 0;
|
|
box-shadow: none;
|
|
font-family: var(--font-mono);
|
|
position: relative;
|
|
}
|
|
|
|
/* ASCII corner decorations with glow */
|
|
table::before {
|
|
content: '┌';
|
|
position: absolute;
|
|
top: -2px;
|
|
left: -2px;
|
|
font-size: 1.2rem;
|
|
color: var(--terminal-green);
|
|
text-shadow: var(--glow-green);
|
|
line-height: 1;
|
|
z-index: 10;
|
|
}
|
|
|
|
table::after {
|
|
content: '┐';
|
|
position: absolute;
|
|
top: -2px;
|
|
right: -2px;
|
|
font-size: 1.2rem;
|
|
color: var(--terminal-green);
|
|
text-shadow: var(--glow-green);
|
|
line-height: 1;
|
|
z-index: 10;
|
|
}
|
|
|
|
th, td {
|
|
padding: 12px 16px;
|
|
text-align: left;
|
|
border: 1px solid var(--terminal-green);
|
|
color: var(--terminal-green);
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
th {
|
|
background-color: var(--bg-primary);
|
|
font-weight: bold;
|
|
text-transform: uppercase;
|
|
font-size: 0.85em;
|
|
letter-spacing: 0.1em;
|
|
position: relative;
|
|
cursor: pointer;
|
|
color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber);
|
|
transition: all 0.3s ease;
|
|
}
|
|
|
|
th:hover {
|
|
text-shadow: var(--glow-amber-intense);
|
|
background-color: rgba(255, 176, 0, 0.05);
|
|
}
|
|
|
|
/* Add terminal prompt to headers */
|
|
th::before {
|
|
content: '> ';
|
|
color: var(--terminal-green);
|
|
margin-right: 4px;
|
|
}
|
|
|
|
tr:hover {
|
|
background-color: rgba(0, 255, 65, 0.08);
|
|
box-shadow: inset 0 0 20px rgba(0, 255, 65, 0.1);
|
|
}
|
|
|
|
tbody tr td:first-child {
|
|
border-left: 6px solid;
|
|
}
|
|
|
|
/* Priority row colors */
|
|
tbody tr.priority-1 td:first-child { border-left-color: var(--priority-1); }
|
|
tbody tr.priority-2 td:first-child { border-left-color: var(--priority-2); }
|
|
tbody tr.priority-3 td:first-child { border-left-color: var(--priority-3); }
|
|
tbody tr.priority-4 td:first-child { border-left-color: var(--priority-4); }
|
|
tbody tr.priority-5 td:first-child { border-left-color: var(--priority-5); }
|
|
|
|
/* Priority number styling - TERMINAL STYLE */
|
|
td:nth-child(2) {
|
|
text-align: center;
|
|
}
|
|
|
|
td:nth-child(2) span {
|
|
font-weight: bold;
|
|
font-family: var(--font-mono);
|
|
padding: 4px 8px;
|
|
border-radius: 0;
|
|
display: inline-block;
|
|
background: transparent;
|
|
}
|
|
|
|
/* Add brackets to priority badges */
|
|
td:nth-child(2) span::before {
|
|
content: '[';
|
|
color: var(--terminal-green);
|
|
margin-right: 2px;
|
|
}
|
|
|
|
td:nth-child(2) span::after {
|
|
content: ']';
|
|
color: var(--terminal-green);
|
|
margin-left: 2px;
|
|
}
|
|
|
|
.priority-1 td:nth-child(2) {
|
|
color: var(--priority-1);
|
|
text-shadow: var(--glow-priority-1);
|
|
font-weight: bold;
|
|
}
|
|
|
|
.priority-1 td:nth-child(2)::after {
|
|
content: ' ▲▲';
|
|
font-size: 0.7em;
|
|
}
|
|
|
|
.priority-2 td:nth-child(2) {
|
|
color: var(--priority-2);
|
|
text-shadow: var(--glow-priority-2);
|
|
font-weight: bold;
|
|
}
|
|
|
|
.priority-2 td:nth-child(2)::after {
|
|
content: ' ▲';
|
|
font-size: 0.7em;
|
|
}
|
|
|
|
.priority-3 td:nth-child(2) {
|
|
color: var(--priority-3);
|
|
text-shadow: var(--glow-priority-3);
|
|
}
|
|
|
|
.priority-3 td:nth-child(2)::after {
|
|
content: ' ●';
|
|
font-size: 0.7em;
|
|
}
|
|
|
|
.priority-4 td:nth-child(2) {
|
|
color: var(--priority-4);
|
|
text-shadow: var(--glow-priority-4);
|
|
}
|
|
|
|
.priority-4 td:nth-child(2)::after {
|
|
content: ' ▼';
|
|
font-size: 0.7em;
|
|
}
|
|
|
|
.priority-5 td:nth-child(2) {
|
|
color: var(--priority-5);
|
|
text-shadow: var(--glow-priority-5);
|
|
}
|
|
|
|
.priority-5 td:nth-child(2)::after {
|
|
content: ' ▼▼';
|
|
font-size: 0.7em;
|
|
}
|
|
|
|
/* ===== STATUS STYLES - TERMINAL EDITION ===== */
|
|
.status-Open {
|
|
background-color: transparent !important;
|
|
color: var(--status-open) !important;
|
|
padding: 4px 12px;
|
|
border-radius: 0 !important;
|
|
border: 2px solid var(--status-open) !important;
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
font-family: var(--font-mono);
|
|
text-shadow: 0 0 5px var(--status-open), 0 0 10px var(--status-open);
|
|
}
|
|
|
|
.status-Open::before {
|
|
content: '[●';
|
|
margin-right: 4px;
|
|
}
|
|
|
|
.status-Open::after {
|
|
content: ']';
|
|
margin-left: 4px;
|
|
}
|
|
|
|
.status-In-Progress {
|
|
background-color: transparent !important;
|
|
color: var(--status-in-progress) !important;
|
|
padding: 4px 12px;
|
|
border-radius: 0 !important;
|
|
border: 2px solid var(--status-in-progress) !important;
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
min-width: 140px;
|
|
white-space: nowrap;
|
|
display: inline-block;
|
|
font-family: var(--font-mono);
|
|
text-shadow: 0 0 5px var(--status-in-progress), 0 0 10px var(--status-in-progress);
|
|
}
|
|
|
|
.status-In-Progress::before {
|
|
content: '[◐';
|
|
margin-right: 4px;
|
|
animation: spin-status 2s linear infinite;
|
|
}
|
|
|
|
@keyframes spin-status {
|
|
0% { content: '[◐'; }
|
|
25% { content: '[◓'; }
|
|
50% { content: '[◑'; }
|
|
75% { content: '[◒'; }
|
|
100% { content: '[◐'; }
|
|
}
|
|
|
|
.status-In-Progress::after {
|
|
content: ']';
|
|
margin-left: 4px;
|
|
}
|
|
|
|
.status-Closed {
|
|
background-color: transparent !important;
|
|
color: var(--status-closed) !important;
|
|
padding: 4px 12px;
|
|
border-radius: 0 !important;
|
|
border: 2px solid var(--status-closed) !important;
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
font-family: var(--font-mono);
|
|
text-shadow: 0 0 5px var(--status-closed), 0 0 10px var(--status-closed);
|
|
}
|
|
|
|
.status-Closed::before {
|
|
content: '[✓';
|
|
margin-right: 4px;
|
|
}
|
|
|
|
.status-Closed::after {
|
|
content: ']';
|
|
margin-left: 4px;
|
|
}
|
|
|
|
.status-Resolved {
|
|
background-color: transparent !important;
|
|
color: var(--status-open) !important;
|
|
padding: 4px 12px;
|
|
border-radius: 0 !important;
|
|
border: 2px solid var(--status-open) !important;
|
|
font-size: 0.875rem;
|
|
font-weight: 500;
|
|
font-family: var(--font-mono);
|
|
text-shadow: 0 0 5px var(--status-open), 0 0 10px var(--status-open);
|
|
}
|
|
|
|
.status-Resolved::before {
|
|
content: '[✓';
|
|
margin-right: 4px;
|
|
}
|
|
|
|
.status-Resolved::after {
|
|
content: ']';
|
|
margin-left: 4px;
|
|
}
|
|
|
|
/* ===== SEARCH AND FILTER STYLES - TERMINAL EDITION ===== */
|
|
.search-box,
|
|
input[type="text"],
|
|
input[type="search"],
|
|
textarea,
|
|
select {
|
|
font-family: var(--font-mono);
|
|
background: var(--bg-primary);
|
|
color: var(--terminal-green);
|
|
border: 2px solid var(--terminal-green);
|
|
border-radius: 0;
|
|
padding: 8px 12px;
|
|
transition: all 0.3s ease;
|
|
box-shadow: inset 0 0 10px rgba(0, 0, 0, 0.5);
|
|
}
|
|
|
|
.search-box:focus,
|
|
input[type="text"]:focus,
|
|
input[type="search"]:focus,
|
|
textarea:focus,
|
|
select:focus {
|
|
outline: none;
|
|
border-color: var(--terminal-amber);
|
|
box-shadow: var(--glow-amber), inset 0 0 10px rgba(0, 0, 0, 0.5);
|
|
background: rgba(0, 255, 65, 0.05);
|
|
}
|
|
|
|
.search-box {
|
|
margin-left: 1.25rem;
|
|
width: 40%;
|
|
}
|
|
|
|
input:focus,
|
|
textarea:focus,
|
|
select:focus,
|
|
.search-box:focus {
|
|
outline: none;
|
|
border-color: var(--terminal-amber);
|
|
box-shadow: 0 0 10px rgba(255, 176, 0, 0.3);
|
|
text-shadow: var(--glow-green);
|
|
}
|
|
|
|
.search-container {
|
|
margin: 20px 0;
|
|
padding: 0 20px;
|
|
}
|
|
|
|
.search-form {
|
|
display: flex;
|
|
gap: 10px;
|
|
align-items: center;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
/* Terminal prompt before search box */
|
|
.search-form::before {
|
|
content: '$ SEARCH';
|
|
font-family: var(--font-mono);
|
|
color: var(--terminal-amber);
|
|
font-weight: bold;
|
|
text-shadow: var(--glow-amber);
|
|
}
|
|
|
|
/* Checkbox styling */
|
|
input[type="checkbox"] {
|
|
appearance: none;
|
|
width: 18px;
|
|
height: 18px;
|
|
border: 2px solid var(--terminal-green);
|
|
background: var(--bg-primary);
|
|
position: relative;
|
|
cursor: pointer;
|
|
border-radius: 0;
|
|
}
|
|
|
|
input[type="checkbox"]:checked::before {
|
|
content: '✓';
|
|
position: absolute;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
color: var(--terminal-green);
|
|
font-size: 14px;
|
|
font-weight: bold;
|
|
}
|
|
|
|
input[type="checkbox"]:checked {
|
|
background: rgba(0, 255, 65, 0.1);
|
|
}
|
|
|
|
.search-box:focus {
|
|
outline: none;
|
|
border-color: #007cba;
|
|
}
|
|
|
|
.search-btn {
|
|
padding: 10px 20px;
|
|
background-color: #007cba;
|
|
color: white;
|
|
border: none;
|
|
border-radius: 0;
|
|
cursor: pointer;
|
|
font-size: 16px;
|
|
transition: background-color 0.3s;
|
|
}
|
|
|
|
.search-btn:hover {
|
|
background-color: #005a87;
|
|
}
|
|
|
|
.clear-search-btn {
|
|
padding: 10px 15px;
|
|
background-color: #6c757d;
|
|
color: white;
|
|
text-decoration: none;
|
|
border-radius: 0;
|
|
font-size: 14px;
|
|
transition: background-color 0.3s;
|
|
}
|
|
|
|
.clear-search-btn:hover {
|
|
background-color: #545b62;
|
|
}
|
|
|
|
/* Show search results info */
|
|
.search-results-info {
|
|
margin: 10px 0;
|
|
padding: 10px;
|
|
background-color: #e7f3ff;
|
|
border-left: 4px solid #007cba;
|
|
border-radius: 0;
|
|
}
|
|
|
|
/* Status Filter Dropdown */
|
|
.status-filter-container {
|
|
position: relative;
|
|
display: inline-block;
|
|
margin-right: 15px;
|
|
}
|
|
|
|
.status-dropdown {
|
|
position: relative;
|
|
display: inline-block;
|
|
}
|
|
|
|
.dropdown-header {
|
|
padding: 8px 15px;
|
|
background: var(--bg-secondary);
|
|
border: 1px solid var(--border-color);
|
|
border-radius: 0;
|
|
cursor: pointer;
|
|
min-width: 120px;
|
|
}
|
|
|
|
.dropdown-content {
|
|
display: none;
|
|
position: absolute;
|
|
top: 100%;
|
|
left: 0;
|
|
background: var(--bg-secondary);
|
|
min-width: 160px;
|
|
box-shadow: var(--shadow);
|
|
border-radius: 0;
|
|
padding: 10px;
|
|
z-index: 100;
|
|
border: 1px solid var(--border-color);
|
|
}
|
|
|
|
.status-dropdown.active .dropdown-content {
|
|
display: block;
|
|
}
|
|
|
|
.dropdown-content label {
|
|
display: block;
|
|
padding: 8px;
|
|
cursor: pointer;
|
|
transition: background 0.2s;
|
|
}
|
|
|
|
.dropdown-content label:hover {
|
|
background: var(--hover-bg);
|
|
}
|
|
|
|
.dropdown-content .save-filter {
|
|
margin-top: 10px;
|
|
width: 100%;
|
|
padding: 8px;
|
|
background: #3b82f6;
|
|
color: white;
|
|
border: none;
|
|
border-radius: 0;
|
|
cursor: pointer;
|
|
}
|
|
|
|
/* ===== COLLAPSIBLE ASCII BANNER ===== */
|
|
.ascii-banner-wrapper {
|
|
max-width: 100%;
|
|
margin: 0 1rem 1rem 1rem;
|
|
border: 2px solid var(--terminal-green);
|
|
background: var(--bg-secondary);
|
|
}
|
|
|
|
.ascii-banner-wrapper.collapsed .banner-content {
|
|
display: none;
|
|
}
|
|
|
|
.banner-toggle {
|
|
width: 100%;
|
|
background: var(--bg-secondary);
|
|
border: none;
|
|
color: var(--terminal-amber);
|
|
padding: 0.5rem 1rem;
|
|
cursor: pointer;
|
|
font-family: var(--font-mono);
|
|
text-align: left;
|
|
font-size: 0.9rem;
|
|
text-shadow: var(--glow-amber);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.banner-toggle:hover {
|
|
background: var(--hover-bg);
|
|
box-shadow: inset 0 0 20px rgba(255, 176, 0, 0.2);
|
|
}
|
|
|
|
.toggle-icon {
|
|
display: inline-block;
|
|
width: 1rem;
|
|
text-align: center;
|
|
color: var(--terminal-green);
|
|
transition: transform 0.3s ease;
|
|
}
|
|
|
|
.banner-content {
|
|
padding: 1rem;
|
|
text-align: center;
|
|
}
|
|
|
|
/* ===== CONDENSED TOOLBAR ===== */
|
|
.dashboard-toolbar {
|
|
display: flex;
|
|
flex-wrap: wrap;
|
|
gap: 1rem;
|
|
align-items: center;
|
|
justify-content: space-between;
|
|
padding: 1rem;
|
|
background: var(--bg-secondary);
|
|
border: 2px solid var(--terminal-green);
|
|
margin-bottom: 1rem;
|
|
box-shadow: var(--glow-green);
|
|
}
|
|
|
|
.toolbar-left {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
flex: 1;
|
|
min-width: 300px;
|
|
}
|
|
|
|
.dashboard-title {
|
|
font-family: var(--font-mono);
|
|
color: var(--terminal-green);
|
|
text-shadow: var(--glow-green);
|
|
font-size: 1.5rem;
|
|
margin: 0;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.toolbar-search {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
flex: 1;
|
|
}
|
|
|
|
.toolbar-center {
|
|
display: flex;
|
|
align-items: center;
|
|
gap: 1rem;
|
|
}
|
|
|
|
.toolbar-right {
|
|
display: flex;
|
|
align-items: center;
|
|
}
|
|
|
|
.ticket-count {
|
|
font-family: var(--font-mono);
|
|
color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber);
|
|
font-size: 0.9rem;
|
|
white-space: nowrap;
|
|
}
|
|
|
|
.clear-search-btn {
|
|
background: var(--bg-primary);
|
|
color: var(--priority-1);
|
|
border: 2px solid var(--priority-1);
|
|
padding: 0.5rem 0.75rem;
|
|
font-family: var(--font-mono);
|
|
text-decoration: none;
|
|
cursor: pointer;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.clear-search-btn:hover {
|
|
background: var(--priority-1);
|
|
color: var(--bg-primary);
|
|
box-shadow: var(--glow-red);
|
|
}
|
|
|
|
.search-results-info {
|
|
background: var(--bg-secondary);
|
|
border: 2px solid var(--terminal-amber);
|
|
padding: 0.75rem 1rem;
|
|
margin-bottom: 1rem;
|
|
font-family: var(--font-mono);
|
|
color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber);
|
|
}
|
|
|
|
/* Inline Bulk Actions */
|
|
.bulk-actions-inline {
|
|
padding: 0.75rem 1rem;
|
|
background: var(--bg-primary);
|
|
border: 2px solid var(--terminal-amber);
|
|
border-radius: 0;
|
|
margin-bottom: 1rem;
|
|
display: flex;
|
|
gap: 1rem;
|
|
align-items: center;
|
|
font-family: var(--font-mono);
|
|
color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber);
|
|
box-shadow: inset 0 0 20px rgba(255, 176, 0, 0.2);
|
|
}
|
|
|
|
.bulk-actions-inline .btn {
|
|
padding: 0.4rem 0.8rem;
|
|
font-size: 0.85rem;
|
|
}
|
|
|
|
/* Mobile: Stack toolbar items */
|
|
@media (max-width: 1024px) {
|
|
.dashboard-toolbar {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.toolbar-left,
|
|
.toolbar-center,
|
|
.toolbar-right {
|
|
width: 100%;
|
|
justify-content: space-between;
|
|
}
|
|
|
|
.toolbar-search {
|
|
min-width: 100%;
|
|
}
|
|
|
|
.dashboard-title {
|
|
font-size: 1.2rem;
|
|
}
|
|
}
|
|
|
|
@media (max-width: 768px) {
|
|
.toolbar-left {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.dashboard-title {
|
|
text-align: center;
|
|
}
|
|
}
|
|
|
|
/* ===== DASHBOARD SIDEBAR LAYOUT ===== */
|
|
.dashboard-layout {
|
|
display: flex;
|
|
gap: 1.5rem;
|
|
max-width: 100%;
|
|
margin: 0 auto;
|
|
padding: 0 1rem;
|
|
}
|
|
|
|
.dashboard-sidebar {
|
|
width: 250px;
|
|
flex-shrink: 0;
|
|
position: sticky;
|
|
top: 1rem;
|
|
max-height: calc(100vh - 2rem);
|
|
overflow-y: auto;
|
|
}
|
|
|
|
.dashboard-sidebar .ascii-frame-inner {
|
|
background: var(--bg-secondary);
|
|
padding: 1rem;
|
|
border: 2px solid var(--terminal-green);
|
|
box-shadow: var(--glow-green);
|
|
position: relative;
|
|
overflow: hidden;
|
|
}
|
|
|
|
.dashboard-sidebar .ascii-frame-inner::before {
|
|
content: '│';
|
|
position: absolute;
|
|
left: 5px;
|
|
top: 0;
|
|
height: 100%;
|
|
color: var(--terminal-green);
|
|
opacity: 0.3;
|
|
font-size: 1.5rem;
|
|
line-height: 1.2;
|
|
pointer-events: none;
|
|
}
|
|
|
|
.dashboard-sidebar .ascii-subsection-header {
|
|
color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber-intense);
|
|
font-family: var(--font-mono);
|
|
font-size: 1.1rem;
|
|
text-transform: uppercase;
|
|
margin-bottom: 1rem;
|
|
padding-bottom: 0.5rem;
|
|
border-bottom: 2px solid var(--terminal-green);
|
|
position: relative;
|
|
}
|
|
|
|
.dashboard-sidebar .ascii-subsection-header::before {
|
|
content: '╔═══ ';
|
|
color: var(--terminal-green);
|
|
text-shadow: var(--glow-green);
|
|
}
|
|
|
|
.dashboard-sidebar .ascii-subsection-header::after {
|
|
content: ' ═══╗';
|
|
color: var(--terminal-green);
|
|
text-shadow: var(--glow-green);
|
|
}
|
|
|
|
.filter-group {
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
|
|
.filter-group h4 {
|
|
color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber);
|
|
margin: 0 0 0.5rem 0;
|
|
font-size: 0.9rem;
|
|
text-transform: uppercase;
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.filter-group label {
|
|
display: block;
|
|
margin: 0.4rem 0;
|
|
color: var(--terminal-green);
|
|
cursor: pointer;
|
|
font-size: 0.85rem;
|
|
font-family: var(--font-mono);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.filter-group label:hover {
|
|
color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber);
|
|
padding-left: 4px;
|
|
}
|
|
|
|
.filter-group input[type="checkbox"] {
|
|
margin-right: 0.5rem;
|
|
cursor: pointer;
|
|
accent-color: var(--terminal-green);
|
|
width: 16px;
|
|
height: 16px;
|
|
border: 2px solid var(--terminal-green);
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.filter-group input[type="checkbox"]:checked {
|
|
box-shadow: var(--glow-green);
|
|
}
|
|
|
|
.filter-group input[type="checkbox"]:hover {
|
|
filter: brightness(1.3);
|
|
}
|
|
|
|
.dashboard-sidebar .btn {
|
|
width: 100%;
|
|
margin-top: 0.5rem;
|
|
padding: 0.5rem;
|
|
background: var(--bg-primary);
|
|
color: var(--terminal-green);
|
|
border: 2px solid var(--terminal-green);
|
|
font-family: var(--font-mono);
|
|
cursor: pointer;
|
|
transition: all 0.2s ease;
|
|
}
|
|
|
|
.dashboard-sidebar .btn:hover {
|
|
background: var(--terminal-green);
|
|
color: var(--bg-primary);
|
|
box-shadow: var(--glow-green);
|
|
}
|
|
|
|
.dashboard-sidebar .btn-secondary {
|
|
background: transparent;
|
|
color: var(--terminal-amber);
|
|
border-color: var(--terminal-amber);
|
|
}
|
|
|
|
.dashboard-sidebar .btn-secondary:hover {
|
|
background: var(--terminal-amber);
|
|
color: var(--bg-primary);
|
|
box-shadow: var(--glow-amber);
|
|
}
|
|
|
|
.dashboard-main {
|
|
flex: 1;
|
|
min-width: 0;
|
|
}
|
|
|
|
/* Mobile: Stack sidebar above content */
|
|
@media (max-width: 768px) {
|
|
.dashboard-layout {
|
|
flex-direction: column;
|
|
padding: 0 0.5rem;
|
|
}
|
|
|
|
.dashboard-sidebar {
|
|
width: 100%;
|
|
position: static;
|
|
max-height: none;
|
|
margin-bottom: 1rem;
|
|
}
|
|
}
|
|
|
|
/* ===== BOOT SEQUENCE ===== */
|
|
.boot-overlay {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: var(--bg-primary);
|
|
z-index: 99999;
|
|
display: flex;
|
|
align-items: center;
|
|
justify-content: center;
|
|
transition: opacity 0.5s;
|
|
}
|
|
|
|
#boot-text {
|
|
font-family: var(--font-mono);
|
|
color: var(--terminal-green);
|
|
text-shadow: var(--glow-green);
|
|
font-size: 0.95rem;
|
|
line-height: 1.6;
|
|
white-space: pre;
|
|
padding: 2rem;
|
|
}
|
|
|
|
/* ===== ASCII LOADING SPINNER ===== */
|
|
.loading-spinner {
|
|
position: fixed;
|
|
top: 50%;
|
|
left: 50%;
|
|
transform: translate(-50%, -50%);
|
|
z-index: 10000;
|
|
background: var(--bg-primary);
|
|
border: 3px solid var(--terminal-green);
|
|
padding: 2rem;
|
|
box-shadow: 0 0 30px rgba(0, 255, 65, 0.5);
|
|
font-family: var(--font-mono);
|
|
color: var(--terminal-green);
|
|
font-size: 1.5rem;
|
|
text-shadow: var(--glow-green);
|
|
display: none;
|
|
}
|
|
|
|
.loading-spinner.active {
|
|
display: block;
|
|
}
|
|
|
|
.spinner-text {
|
|
text-align: center;
|
|
}
|
|
|
|
.spinner-frames {
|
|
animation: spin-frames 0.8s steps(8) infinite;
|
|
}
|
|
|
|
@keyframes spin-frames {
|
|
0% { content: '|'; }
|
|
12.5% { content: '/'; }
|
|
25% { content: '—'; }
|
|
37.5% { content: '\\'; }
|
|
50% { content: '|'; }
|
|
62.5% { content: '/'; }
|
|
75% { content: '—'; }
|
|
87.5% { content: '\\'; }
|
|
}
|
|
|
|
.spinner-frames::before {
|
|
content: '|';
|
|
display: inline-block;
|
|
animation: spin-frames 0.8s steps(8) infinite;
|
|
}
|
|
|
|
/* ===== UTILITY STYLES ===== */
|
|
.ticket-link {
|
|
font-family: 'Courier New', monospace;
|
|
font-weight: bold;
|
|
color: var(--text-primary) !important;
|
|
text-decoration: none;
|
|
background: var(--hover-bg);
|
|
padding: 4px 8px;
|
|
border-radius: 0;
|
|
display: inline-block;
|
|
border: 1px solid transparent;
|
|
transition: all 0.3s ease;
|
|
text-shadow: var(--glow-green);
|
|
}
|
|
|
|
.ticket-link::before {
|
|
content: '#';
|
|
color: var(--terminal-amber);
|
|
margin-right: 2px;
|
|
}
|
|
|
|
.ticket-link:hover {
|
|
background: rgba(0, 255, 65, 0.2);
|
|
border-color: var(--terminal-green);
|
|
text-shadow: var(--glow-green-intense);
|
|
transform: translateX(2px);
|
|
}
|
|
|
|
/* ===== PAGINATION STYLES ===== */
|
|
.pagination {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
align-items: center;
|
|
}
|
|
|
|
.pagination button {
|
|
padding: 0.5rem 0.75rem;
|
|
border: 2px solid var(--terminal-green);
|
|
background: var(--bg-secondary);
|
|
color: var(--terminal-green);
|
|
border-radius: 0;
|
|
cursor: pointer;
|
|
transition: all 0.3s ease;
|
|
font-family: var(--font-mono);
|
|
text-shadow: var(--glow-green);
|
|
}
|
|
|
|
.pagination button:hover {
|
|
background: rgba(0, 255, 65, 0.15);
|
|
box-shadow: var(--glow-green);
|
|
transform: translateY(-1px);
|
|
}
|
|
|
|
.pagination button.active {
|
|
background: var(--terminal-green);
|
|
color: var(--bg-primary);
|
|
border-color: var(--terminal-green);
|
|
box-shadow: var(--glow-green-intense);
|
|
font-weight: bold;
|
|
}
|
|
|
|
/* ===== SORTING STYLES ===== */
|
|
th::after {
|
|
content: '';
|
|
position: absolute;
|
|
right: 8px;
|
|
top: 50%;
|
|
transform: translateY(-50%);
|
|
width: 0;
|
|
height: 0;
|
|
border-left: 5px solid transparent;
|
|
border-right: 5px solid transparent;
|
|
opacity: 0.5;
|
|
}
|
|
|
|
th.sort-asc::after {
|
|
border-bottom: 7px solid var(--text-primary);
|
|
opacity: 1;
|
|
}
|
|
|
|
th.sort-desc::after {
|
|
border-top: 7px solid var(--text-primary);
|
|
opacity: 1;
|
|
}
|
|
|
|
/* ===== SETTINGS MODAL STYLES - TERMINAL EDITION ===== */
|
|
.settings-modal-backdrop {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
width: 100%;
|
|
height: 100%;
|
|
background: rgba(0, 0, 0, 0.85);
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
z-index: 1000;
|
|
}
|
|
|
|
.settings-modal {
|
|
background: var(--bg-primary);
|
|
border: 3px double var(--terminal-green);
|
|
border-radius: 0;
|
|
width: 500px;
|
|
max-width: 90%;
|
|
box-shadow: 0 0 30px rgba(0, 255, 65, 0.3);
|
|
padding: 0;
|
|
position: relative;
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
/* ASCII corners for modal */
|
|
.settings-modal::before {
|
|
content: '╔';
|
|
position: absolute;
|
|
top: -3px;
|
|
left: -3px;
|
|
font-size: 1.5rem;
|
|
color: var(--terminal-green);
|
|
line-height: 1;
|
|
}
|
|
|
|
.settings-modal::after {
|
|
content: '╗';
|
|
position: absolute;
|
|
top: -3px;
|
|
right: -3px;
|
|
font-size: 1.5rem;
|
|
color: var(--terminal-green);
|
|
line-height: 1;
|
|
}
|
|
|
|
.settings-modal-header {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
border-bottom: 2px solid var(--terminal-green);
|
|
padding: 15px 20px;
|
|
margin: 0;
|
|
background: var(--bg-secondary);
|
|
}
|
|
|
|
.settings-modal-header h2 {
|
|
margin: 0;
|
|
color: var(--terminal-amber);
|
|
text-shadow: var(--glow-amber);
|
|
font-family: var(--font-mono);
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.settings-modal-header h2::before {
|
|
content: '═══ ';
|
|
color: var(--terminal-green);
|
|
}
|
|
|
|
.settings-modal-header h2::after {
|
|
content: ' ═══';
|
|
color: var(--terminal-green);
|
|
}
|
|
|
|
.close-modal {
|
|
background: none;
|
|
border: none;
|
|
font-size: 24px;
|
|
cursor: pointer;
|
|
color: var(--terminal-green);
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.close-modal::before {
|
|
content: '[';
|
|
}
|
|
|
|
.close-modal::after {
|
|
content: ']';
|
|
}
|
|
|
|
.close-modal:hover {
|
|
color: var(--priority-1);
|
|
text-shadow: var(--glow-red);
|
|
}
|
|
|
|
.setting-group {
|
|
margin-bottom: 15px;
|
|
padding: 0 20px;
|
|
}
|
|
|
|
.setting-group label {
|
|
display: block;
|
|
margin-bottom: 8px;
|
|
color: var(--terminal-green);
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.setting-group label::before {
|
|
content: '> ';
|
|
color: var(--terminal-amber);
|
|
}
|
|
|
|
.setting-group select {
|
|
width: 100%;
|
|
padding: 10px;
|
|
border: 2px solid var(--terminal-green);
|
|
border-radius: 0;
|
|
background: var(--bg-primary);
|
|
color: var(--terminal-green);
|
|
font-family: var(--font-mono);
|
|
}
|
|
|
|
.settings-modal-footer {
|
|
display: flex;
|
|
justify-content: flex-end;
|
|
gap: 10px;
|
|
border-top: 2px solid var(--terminal-green);
|
|
padding: 15px 20px;
|
|
background: var(--bg-secondary);
|
|
}
|
|
|
|
.save-settings, .cancel-settings {
|
|
padding: 10px 20px;
|
|
border-radius: 0;
|
|
border: 2px solid var(--terminal-green);
|
|
background: transparent;
|
|
color: var(--terminal-green);
|
|
cursor: pointer;
|
|
transition: all 0.3s ease;
|
|
font-family: var(--font-mono);
|
|
font-weight: bold;
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.save-settings::before,
|
|
.cancel-settings::before {
|
|
content: '[ ';
|
|
}
|
|
|
|
.save-settings::after,
|
|
.cancel-settings::after {
|
|
content: ' ]';
|
|
}
|
|
|
|
.save-settings {
|
|
color: var(--terminal-amber);
|
|
border-color: var(--terminal-amber);
|
|
}
|
|
|
|
.save-settings:hover,
|
|
.cancel-settings:hover {
|
|
background: rgba(0, 255, 65, 0.1);
|
|
text-shadow: var(--glow-green);
|
|
}
|
|
|
|
.save-settings {
|
|
background: #3b82f6;
|
|
color: white;
|
|
}
|
|
|
|
.cancel-settings {
|
|
background: var(--hover-bg);
|
|
color: var(--text-primary);
|
|
}
|
|
/* Bulk Actions Styles (Admin only) */
|
|
.bulk-actions-toolbar {
|
|
display: none;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
padding: 1rem;
|
|
background: var(--toolbar-bg, #1a202c);
|
|
border: 1px solid var(--toolbar-border, #ffc107);
|
|
border-radius: 0;
|
|
margin: 1rem 0;
|
|
}
|
|
|
|
.bulk-actions-info {
|
|
font-weight: bold;
|
|
color: var(--text-primary, #333);
|
|
}
|
|
|
|
.bulk-actions-buttons {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
flex-wrap: wrap;
|
|
}
|
|
|
|
.btn-bulk {
|
|
padding: 0.5rem 1rem;
|
|
background: var(--btn-bulk-bg, #007bff);
|
|
color: white;
|
|
border: none;
|
|
border-radius: 0;
|
|
cursor: pointer;
|
|
font-size: 0.9rem;
|
|
transition: background 0.2s ease;
|
|
}
|
|
|
|
.btn-bulk:hover {
|
|
background: var(--btn-bulk-hover, #0056b3);
|
|
}
|
|
|
|
.btn-secondary {
|
|
padding: 0.5rem 1rem;
|
|
background: var(--btn-secondary-bg, #6c757d);
|
|
color: white;
|
|
border: none;
|
|
border-radius: 0;
|
|
cursor: pointer;
|
|
font-size: 0.9rem;
|
|
transition: background 0.2s ease;
|
|
}
|
|
|
|
.btn-secondary:hover {
|
|
background: var(--btn-secondary-hover, #5a6268);
|
|
}
|
|
|
|
/* Dark mode bulk actions */
|
|
body.dark-mode .bulk-actions-toolbar {
|
|
--toolbar-bg: #2d3748;
|
|
--toolbar-border: #ffc107;
|
|
--text-primary: #f8f9fa;
|
|
background: #2d3748 !important;
|
|
}
|
|
|
|
body.dark-mode .bulk-actions-info {
|
|
color: #ffc107;
|
|
font-weight: bold;
|
|
}
|
|
|
|
body.dark-mode .btn-bulk {
|
|
--btn-bulk-bg: #0d6efd;
|
|
--btn-bulk-hover: #0b5ed7;
|
|
}
|
|
|
|
body.dark-mode .btn-secondary {
|
|
--btn-secondary-bg: #495057;
|
|
--btn-secondary-hover: #343a40;
|
|
}
|
|
|
|
/* Modal styles */
|
|
.modal-overlay {
|
|
position: fixed;
|
|
top: 0;
|
|
left: 0;
|
|
right: 0;
|
|
bottom: 0;
|
|
background: rgba(0, 0, 0, 0.5);
|
|
display: flex;
|
|
justify-content: center;
|
|
align-items: center;
|
|
z-index: 10000;
|
|
}
|
|
|
|
.modal-content {
|
|
background: var(--bg-primary, white);
|
|
padding: 2rem;
|
|
border-radius: 0;
|
|
min-width: 300px;
|
|
max-width: 500px;
|
|
box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
|
|
}
|
|
|
|
.modal-content h3 {
|
|
margin-top: 0;
|
|
margin-bottom: 1rem;
|
|
color: var(--text-primary, #333);
|
|
}
|
|
|
|
.modal-body {
|
|
margin-bottom: 1.5rem;
|
|
}
|
|
|
|
.modal-body label {
|
|
display: block;
|
|
margin-bottom: 0.5rem;
|
|
font-weight: 500;
|
|
color: var(--text-primary, #333);
|
|
}
|
|
|
|
.modal-body select {
|
|
width: 100%;
|
|
padding: 0.5rem;
|
|
border: 1px solid var(--border-color, #ddd);
|
|
border-radius: 0;
|
|
background: var(--bg-secondary, #f8f9fa);
|
|
color: var(--text-primary, #333);
|
|
}
|
|
|
|
.modal-footer {
|
|
display: flex;
|
|
gap: 0.5rem;
|
|
justify-content: flex-end;
|
|
}
|
|
|
|
/* Dark mode modal */
|
|
body.dark-mode .modal-content {
|
|
--bg-primary: #2d3748;
|
|
--bg-secondary: #1a202c;
|
|
--text-primary: #f7fafc;
|
|
--border-color: #4a5568;
|
|
}
|
|
|
|
body.dark-mode .modal-body select {
|
|
background: #1a202c;
|
|
color: #f7fafc;
|
|
border-color: #4a5568;
|
|
}
|
|
|
|
/* Checkbox styling in table */
|
|
.ticket-checkbox {
|
|
cursor: pointer;
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
#selectAllCheckbox {
|
|
cursor: pointer;
|
|
width: 18px;
|
|
height: 18px;
|
|
}
|
|
|
|
/* Responsive bulk actions */
|
|
@media (max-width: 768px) {
|
|
.bulk-actions-toolbar {
|
|
flex-direction: column;
|
|
align-items: stretch;
|
|
}
|
|
|
|
.bulk-actions-info {
|
|
text-align: center;
|
|
margin-bottom: 0.5rem;
|
|
}
|
|
|
|
.bulk-actions-buttons {
|
|
justify-content: center;
|
|
}
|
|
}
|
|
|
|
/* Comprehensive Dark Mode Fix - Dashboard */
|
|
body.dark-mode {
|
|
background: #1a202c !important;
|
|
color: #e2e8f0 !important;
|
|
}
|
|
|
|
body.dark-mode .dashboard-container,
|
|
body.dark-mode .dashboard-content {
|
|
background: #1a202c !important;
|
|
color: #e2e8f0 !important;
|
|
}
|
|
|
|
/* Ensure table has dark background */
|
|
body.dark-mode table {
|
|
background: #2d3748 !important;
|
|
}
|
|
|
|
body.dark-mode table thead {
|
|
background: #1a202c !important;
|
|
}
|
|
|
|
body.dark-mode table tbody tr {
|
|
background: #2d3748 !important;
|
|
}
|
|
|
|
body.dark-mode table tbody tr:hover {
|
|
background: #374151 !important;
|
|
}
|
|
|
|
body.dark-mode table td,
|
|
body.dark-mode table th {
|
|
color: #e2e8f0 !important;
|
|
border-color: #4a5568 !important;
|
|
}
|
|
|
|
/* Fix search box */
|
|
body.dark-mode .search-box,
|
|
body.dark-mode input[type="search"],
|
|
body.dark-mode input[type="text"] {
|
|
background: #2d3748 !important;
|
|
color: #e2e8f0 !important;
|
|
border-color: #4a5568 !important;
|
|
}
|
|
|
|
/* Fix any white backgrounds in modals */
|
|
body.dark-mode .modal-content {
|
|
background: #2d3748 !important;
|
|
color: #e2e8f0 !important;
|
|
}
|
|
|
|
/* Fix dropdown menus */
|
|
body.dark-mode select option {
|
|
background: #2d3748 !important;
|
|
color: #e2e8f0 !important;
|
|
}
|
|
|
|
/* ===== RESPONSIVE DESIGN - TERMINAL EDITION ===== */
|
|
|
|
/* Tablet and smaller */
|
|
@media (max-width: 1024px) {
|
|
/* Smaller ASCII banner */
|
|
.ascii-banner {
|
|
font-size: 0.6rem !important;
|
|
}
|
|
|
|
/* Reduce table padding */
|
|
th, td {
|
|
padding: 8px 12px;
|
|
}
|
|
|
|
/* Stack bulk actions */
|
|
.bulk-actions-buttons {
|
|
flex-direction: column;
|
|
}
|
|
|
|
/* Simplify ASCII corners - use single-line chars */
|
|
.ascii-frame-outer::before {
|
|
content: '┌';
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.ascii-frame-outer::after {
|
|
content: '┐';
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.bottom-left-corner {
|
|
content: '└';
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
.bottom-right-corner {
|
|
content: '┘';
|
|
font-size: 1.2rem;
|
|
}
|
|
|
|
/* Simplify section headers */
|
|
.ascii-section-header::before {
|
|
content: '├─ ';
|
|
}
|
|
|
|
.ascii-section-header::after {
|
|
content: ' ─┤';
|
|
}
|
|
|
|
/* Simplify dividers */
|
|
.ascii-divider::before {
|
|
content: '├';
|
|
}
|
|
|
|
.ascii-divider::after {
|
|
content: '┤';
|
|
}
|
|
}
|
|
|
|
/* Mobile */
|
|
@media (max-width: 768px) {
|
|
/* Use compact ASCII banner */
|
|
.ascii-banner {
|
|
font-size: 0.5rem !important;
|
|
}
|
|
|
|
/* Remove all ASCII corners for mobile */
|
|
.ascii-frame-outer::before,
|
|
.ascii-frame-outer::after,
|
|
.bottom-left-corner,
|
|
.bottom-right-corner {
|
|
display: none !important;
|
|
}
|
|
|
|
/* Simplify inner frames - remove corners */
|
|
.ascii-frame-inner::before,
|
|
.ascii-frame-inner::after {
|
|
display: none !important;
|
|
}
|
|
|
|
/* Keep section headers but simplify */
|
|
.ascii-section-header::before {
|
|
content: '> ';
|
|
}
|
|
|
|
.ascii-section-header::after {
|
|
content: '';
|
|
}
|
|
|
|
.ascii-section-header {
|
|
font-size: 0.9rem;
|
|
padding: 0.5rem 1rem;
|
|
}
|
|
|
|
/* Simplify subsection headers */
|
|
.ascii-subsection-header::before {
|
|
content: '• ';
|
|
}
|
|
|
|
.ascii-subsection-header::after {
|
|
content: '';
|
|
}
|
|
|
|
/* Remove dividers on mobile */
|
|
.ascii-divider {
|
|
display: none;
|
|
}
|
|
|
|
/* Reduce padding in ascii-content */
|
|
.ascii-content {
|
|
padding: 0.5rem;
|
|
}
|
|
|
|
.ascii-frame-inner {
|
|
padding: 0.5rem;
|
|
margin: 0.5rem;
|
|
border-width: 1px;
|
|
}
|
|
|
|
/* Hide decorative ASCII corners on small screens (legacy) */
|
|
table::before,
|
|
table::after,
|
|
.ticket-container::before,
|
|
.ticket-container::after,
|
|
.settings-modal::before,
|
|
.settings-modal::after {
|
|
display: none;
|
|
}
|
|
|
|
/* Simplify borders */
|
|
.ticket-header::before {
|
|
display: none;
|
|
}
|
|
|
|
/* Full-width hamburger menu */
|
|
.hamburger-content {
|
|
width: 100%;
|
|
left: -100%;
|
|
}
|
|
|
|
.hamburger-content.open {
|
|
left: 0;
|
|
}
|
|
|
|
/* Reduce padding everywhere */
|
|
.ascii-box,
|
|
.terminal-form-group,
|
|
.comment,
|
|
.timeline-content {
|
|
padding: 10px;
|
|
}
|
|
|
|
/* Smaller glow effects */
|
|
.glow-text,
|
|
[class*="glow-"] {
|
|
text-shadow: 0 0 3px currentColor;
|
|
}
|
|
|
|
/* Stack buttons vertically */
|
|
.btn,
|
|
button {
|
|
width: 100%;
|
|
margin: 5px 0;
|
|
}
|
|
|
|
/* Reduce font size slightly */
|
|
body {
|
|
font-size: 14px;
|
|
}
|
|
|
|
/* Smaller table text */
|
|
th, td {
|
|
font-size: 0.85rem;
|
|
padding: 6px 8px;
|
|
}
|
|
|
|
/* Hide some table columns on mobile */
|
|
th:nth-child(n+6),
|
|
td:nth-child(n+6) {
|
|
display: none;
|
|
}
|
|
}
|
|
|
|
/* Very small mobile */
|
|
@media (max-width: 480px) {
|
|
/* Minimal ASCII banner */
|
|
.ascii-banner {
|
|
font-size: 0.4rem !important;
|
|
}
|
|
|
|
/* Remove all pseudo-element decorations except essential ones */
|
|
*::before,
|
|
*::after {
|
|
content: none !important;
|
|
}
|
|
|
|
/* Collapse nested frames - minimal borders */
|
|
.ascii-frame-outer,
|
|
.ascii-frame-inner {
|
|
border-width: 1px;
|
|
padding: 0.25rem;
|
|
margin: 0.25rem;
|
|
}
|
|
|
|
/* Section headers without decorations */
|
|
.ascii-section-header,
|
|
.ascii-subsection-header {
|
|
font-size: 0.85rem;
|
|
padding: 0.4rem 0.5rem;
|
|
text-transform: none;
|
|
letter-spacing: normal;
|
|
}
|
|
|
|
/* Minimal content padding */
|
|
.ascii-content {
|
|
padding: 0.25rem;
|
|
}
|
|
|
|
/* Re-enable essential pseudo-elements */
|
|
.search-form::before {
|
|
content: '$ ' !important;
|
|
}
|
|
|
|
/* Simplify modals */
|
|
.settings-modal,
|
|
.modal-content {
|
|
width: 95%;
|
|
max-width: 95%;
|
|
}
|
|
|
|
/* Reduce ticket container size */
|
|
.ticket-container {
|
|
width: 95%;
|
|
min-width: unset;
|
|
margin: 20px auto;
|
|
}
|
|
|
|
/* Stack tabs vertically */
|
|
.ticket-tabs {
|
|
flex-direction: column;
|
|
}
|
|
|
|
.tab-btn {
|
|
width: 100%;
|
|
margin-bottom: 5px;
|
|
}
|
|
}
|
|
|
|
/* Print styles - terminal aesthetic */
|
|
@media print {
|
|
body {
|
|
background: white;
|
|
color: black;
|
|
}
|
|
|
|
.ascii-banner,
|
|
.theme-toggle,
|
|
.hamburger-menu,
|
|
.bulk-actions-toolbar {
|
|
display: none;
|
|
}
|
|
|
|
table,
|
|
.ticket-container {
|
|
border-color: black;
|
|
}
|
|
|
|
/* Remove glows for print */
|
|
* {
|
|
text-shadow: none !important;
|
|
box-shadow: none !important;
|
|
}
|
|
}
|