@import url('https://fonts.googleapis.com/css2?family=Fira+Code&family=Orbitron:wght@500;700;900&family=Poppins:wght@300;400;500;600&family=Rajdhani:wght@500;600;700&display=swap');

/* APPLY STYLING AND THEME VARIABLES GLOBALLY & ON ACTIVE THEMES */
:root, .dark, .theme-gray, .theme-slate, .theme-zinc {
	font-family: 'Poppins', sans-serif;

	/* DRACULA & CYBERPUNK COLOR SYSTEM */
	--dracula-background: #181923;
	--dracula-background-dark: #0f1015;
	--dracula-foreground: #2d3142;
	--dracula-text: #f8f8f2;
	--dracula-slate: #6272a4;
	--dracula-cyan: #8be9fd;
	--dracula-green: #50fa7b;
	--dracula-orange: #ffb86c;
	--dracula-pink: #ff79c6;
	--dracula-purple: #bd93f9;
	--dracula-red: #ff5555;
	--dracula-yellow: #f1fa8c;

	/* Theme preset colors (RGB values for Tailwind transparency support) */
	--color-50: 249 250 251;
	--color-100: 243 244 246;
	--color-200: 248 248 242; /* Text Color */
	--color-300: 209 213 219;
	--color-400: 156 163 175;
	--color-500: 107 114 128;
	--color-600: 75 85 99;
	--color-700: 45 49 66;
	--color-800: 24 25 35; /* Main container background */
	--color-900: 15 16 21; /* Core background */
	--color-logo-start: 189 147 249;
	--color-logo-stop: 139 233 253;

	--standard-bg: rgba(45, 49, 66, 0.45);

	/* INFO WIDGET COLORS */
	--info-widgets: var(--dracula-cyan);
	--resource-bar-bg: rgba(98, 114, 164, 0.2);
	--resource-bar-fg: var(--dracula-cyan);

	--widget-border: rgba(139, 233, 253, 0.2);

	/* SERVICES COLORS */
	--service-group: var(--dracula-purple);
	--service-name: var(--dracula-text);
	--service-description: #a9b1d6;

	--service-block-bg: rgba(15, 16, 21, 0.7);
	--service-block-text: var(--dracula-pink);

	/* BOOKMARKS COLORS */
	--bookmark-group: var(--dracula-purple);
	--bookmark-icon-bg: rgba(189, 147, 249, 0.15);
	--bookmark-icon: var(--dracula-purple);
	--bookmark-name: var(--dracula-text);

	/* ALL CARD COLORS (GLASSMORPHISM DEFAULT) */
	--card-color: rgba(30, 32, 48, 0.55);
	--card-color-hover: rgba(40, 44, 68, 0.8);

	/* FOOTER COLORS */
	--footer-items: var(--dracula-purple);
	--scrollbar-fg: var(--dracula-purple);
	--scrollbar-bg: var(--dracula-background-dark);
}

/* ==========================================
 *        FUTURISTIC SCIFI HUD OVERLAY 
 * ========================================== */
body {
	background-color: #0c0d12 !important;
	position: relative;
	overflow-x: hidden;
}

body::before {
	content: "";
	position: fixed;
	top: 0; left: 0; right: 0; bottom: 0;
	background: 
		linear-gradient(rgba(12, 13, 18, 0.75), rgba(12, 13, 18, 0.85)),
		linear-gradient(90deg, rgba(139, 233, 253, 0.02) 1px, transparent 1px),
		linear-gradient(rgba(139, 233, 253, 0.02) 1px, transparent 1px);
	background-size: 100% 100%, 50px 50px, 50px 50px;
	pointer-events: none;
	z-index: -1;
	animation: gridPan 120s linear infinite;
}

/* Add a neon scanline effect */
body::after {
	content: "";
	position: fixed;
	top: 0; left: 0; width: 100%; height: 100%;
	background: linear-gradient(rgba(18, 16, 16, 0) 50%, rgba(0, 0, 0, 0.25) 50%), linear-gradient(90deg, rgba(255, 0, 0, 0.06), rgba(0, 255, 0, 0.02), rgba(0, 0, 255, 0.06));
	background-size: 100% 4px, 6px 100%;
	pointer-events: none;
	z-index: 9999;
	opacity: 0.15;
}

@keyframes gridPan {
	from { background-position: 0 0, 0 0, 0 0; }
	to { background-position: 0 0, 1000px 1000px, 1000px 1000px; }
}

/* ==========================================
 *          TYPOGRAPHY & TITLE STYLES 
 * ========================================== */
.service-group-name, .bookmark-group-name, #widgets-title {
	font-family: 'Orbitron', sans-serif !important;
	font-weight: 700 !important;
	letter-spacing: 0.15em !important;
	text-transform: uppercase !important;
	text-shadow: 0 0 10px rgba(189, 147, 249, 0.6) !important;
	color: var(--dracula-purple) !important;
}

.service-name {
	font-family: 'Rajdhani', sans-serif !important;
	font-weight: 700 !important;
	font-size: 1.15rem !important;
	letter-spacing: 0.03em !important;
	color: var(--dracula-text) !important;
}

.service-description {
	font-family: 'Poppins', sans-serif !important;
	font-size: 0.8rem !important;
	color: #a9b1d6 !important;
}

/* ==========================================
 *        GLASSMORPHISM CARDS & ANIMATIONS 
 * ========================================== */
.service-card, li.bookmark > a, #information-widgets, #dracula-calendar {
	background: var(--card-color) !important;
	backdrop-filter: blur(14px) !important;
	-webkit-backdrop-filter: blur(14px) !important;
	border: 1px solid rgba(255, 255, 255, 0.06) !important;
	box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4) !important;
	transition: all 0.4s cubic-bezier(0.165, 0.84, 0.44, 1) !important;
	position: relative;
	overflow: hidden;
}

/* Hover base styling */
.service-card:hover, li.bookmark > a:hover {
	transform: translateY(-4px) scale(1.02);
	background: var(--card-color-hover) !important;
	border-color: rgba(139, 233, 253, 0.4) !important;
	box-shadow: 0 12px 40px 0 rgba(0, 0, 0, 0.6), 0 0 15px rgba(139, 233, 253, 0.2) !important;
}

/* Subtle corner tech border lines for hover */
.service-card::after {
	content: "";
	position: absolute;
	top: 0; left: 0; width: 4px; height: 4px;
	border-top: 2px solid transparent;
	border-left: 2px solid transparent;
	transition: all 0.3s;
}

.service-card:hover::after {
	border-top-color: var(--dracula-cyan);
	border-left-color: var(--dracula-cyan);
	width: 15px; height: 15px;
}

/* Service Images */
.service img {
	border-radius: 20%;
	border: 1px solid rgba(255, 255, 255, 0.1);
	padding: 2px;
	background: rgba(0, 0, 0, 0.2);
	transition: all 0.4s;
}

.service-card:hover img {
	transform: rotate(5deg) scale(1.05);
	border-color: rgba(139, 233, 253, 0.4);
}

/* ==========================================
 *        PULSING STATUS / ONLINE DOTS
 * ========================================== */
.bg-green-500, .bg-emerald-500, .text-green-500, .text-emerald-500 {
	position: relative;
	background-color: var(--dracula-green) !important;
	box-shadow: 0 0 10px var(--dracula-green) !important;
}

/* Create glowing animation rings */
.bg-green-500::after, .bg-emerald-500::after {
	content: "";
	position: absolute;
	top: -2px; left: -2px; right: -2px; bottom: -2px;
	border-radius: 50%;
	border: 1.5px solid var(--dracula-green);
	animation: statusPulse 2s infinite ease-out;
	opacity: 0;
	pointer-events: none;
}

@keyframes statusPulse {
	0% { transform: scale(1); opacity: 0.8; }
	100% { transform: scale(2.4); opacity: 0; }
}

.bg-red-500, .text-red-500 {
	position: relative;
	background-color: var(--dracula-red) !important;
	box-shadow: 0 0 10px var(--dracula-red) !important;
}

.bg-red-500::after {
	content: "";
	position: absolute;
	top: -2px; left: -2px; right: -2px; bottom: -2px;
	border-radius: 50%;
	border: 1.5px solid var(--dracula-red);
	animation: statusPulse 2s infinite ease-out;
	opacity: 0;
	pointer-events: none;
}

/* ==========================================
 *          WIDGET & SCROLLBAR CUSTOMS 
 * ========================================== */
#information-widgets {
	border-color: var(--widget-border) !important;
	margin-bottom: 2rem;
}

#information-widgets * {
	font-family: 'Rajdhani', sans-serif !important;
	font-weight: 600;
	color: var(--info-widgets) !important;
}

.resource-usage {
	background-color: var(--resource-bar-bg) !important;
	border: 1px solid rgba(255, 255, 255, 0.05);
	border-radius: 4px;
	height: 8px !important;
	overflow: hidden;
}

.resource-usage > div {
	background: linear-gradient(90deg, var(--dracula-cyan), var(--dracula-purple)) !important;
	box-shadow: 0 0 8px rgba(139, 233, 253, 0.6);
	height: 100%;
}

.service-block {
	background: var(--service-block-bg) !important;
	border-radius: 6px;
	border: 1px solid rgba(255, 255, 255, 0.05) !important;
}

.service-block .uppercase {
	color: var(--service-block-text) !important;
	font-family: 'Orbitron', sans-serif;
	font-size: 0.7rem;
	letter-spacing: 0.08em;
}

.service-block .font-thin {
	color: var(--dracula-text) !important;
	font-family: 'Fira Code', monospace;
}

/* Bookmarks styling */
.bookmark-icon {
	background-color: var(--bookmark-icon-bg) !important;
	border: 1px solid rgba(189, 147, 249, 0.2);
}

.bookmark-icon > div > div {
	background: var(--bookmark-icon) !important;
}

.bookmark-name {
	font-family: 'Poppins', sans-serif !important;
	font-weight: 500;
}

/* Calendar widget tweaks */
#dracula-calendar .flex.justify-between.flex-wrap span {
	color: var(--dracula-purple) !important;
	font-family: 'Rajdhani', sans-serif;
	font-weight: 700;
}

#footer svg {
	color: var(--footer-items) !important;
	filter: drop-shadow(0 0 5px rgba(189, 147, 249, 0.5));
}

* {
	--scrollbar-thumb: var(--scrollbar-fg);
	--scrollbar-track: var(--scrollbar-bg);
}

/* Custom styling for the search input widget */
#search-input, .search-container input {
    background: rgba(15, 23, 42, 0.6) !important;
    border: 1px solid rgba(56, 189, 248, 0.3) !important;
    color: #e2e8f0 !important;
    font-family: 'Courier New', Courier, monospace !important;
    border-radius: 8px !important;
    backdrop-filter: blur(8px) !important;
}

#search-input:focus, .search-container input:focus {
    border-color: rgba(56, 189, 248, 0.8) !important;
    box-shadow: 0 0 15px rgba(56, 189, 248, 0.4) !important;
    outline: none !important;
}

/* ==========================================
 *        CUSTOM COLOR INTEGRATION BY ID 
 * ========================================== */
/* Setup distinct neon glow values on hover for individual service IDs */

#blue:hover .service-card { border-color: #6272a4 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(98, 114, 164, 0.45) !important; }
#yellow:hover .service-card { border-color: #f1fa8c !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(241, 250, 140, 0.45) !important; }
#red:hover .service-card { border-color: #ff5555 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 85, 85, 0.45) !important; }
#cyan:hover .service-card { border-color: #8be9fd !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(139, 233, 253, 0.45) !important; }
#purple:hover .service-card { border-color: #bd93f9 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(189, 147, 249, 0.45) !important; }
#white:hover .service-card { border-color: #f8f8f2 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(248, 248, 242, 0.45) !important; }
#gold:hover .service-card { border-color: #ffd700 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 215, 0, 0.45) !important; }
#green:hover .service-card { border-color: #50fa7b !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(80, 250, 123, 0.45) !important; }
#lime:hover .service-card { border-color: #a3e635 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(163, 230, 53, 0.45) !important; }
#cobalt:hover .service-card { border-color: #3b82f6 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(59, 130, 246, 0.45) !important; }
#gray:hover .service-card { border-color: #9ca3af !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(156, 163, 175, 0.45) !important; }
#crimson:hover .service-card { border-color: #dc143c !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(220, 20, 60, 0.45) !important; }
#lavender:hover .service-card { border-color: #e6e6fa !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(230, 230, 250, 0.45) !important; }
#teal:hover .service-card { border-color: #008080 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 128, 128, 0.45) !important; }
#violet:hover .service-card { border-color: #7c3aed !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(124, 58, 237, 0.45) !important; }
#aqua:hover .service-card { border-color: #00ffff !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 255, 255, 0.45) !important; }
#navy:hover .service-card { border-color: #000080 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 0, 128, 0.45) !important; }
#beige:hover .service-card { border-color: #f5f5dc !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(245, 245, 220, 0.45) !important; }
#slate:hover .service-card { border-color: #708090 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(112, 128, 144, 0.45) !important; }
#burgundy:hover .service-card { border-color: #800020 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(128, 0, 32, 0.45) !important; }
#emerald:hover .service-card { border-color: #50c878 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(80, 200, 120, 0.45) !important; }
#salmon:hover .service-card { border-color: #fa8072 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(250, 128, 114, 0.45) !important; }
#jade:hover .service-card { border-color: #00a86b !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 168, 107, 0.45) !important; }
#indigo:hover .service-card { border-color: #4b0082 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(75, 0, 130, 0.45) !important; }
#charcoal:hover .service-card { border-color: #36454f !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(54, 69, 79, 0.45) !important; }
#cerulean:hover .service-card { border-color: #007ba7 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(0, 123, 167, 0.45) !important; }
#rose:hover .service-card { border-color: #ff007f !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 0, 127, 0.45) !important; }
#coral:hover .service-card { border-color: #ff7f50 !important; box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.4), 0 0 20px rgba(255, 127, 80, 0.45) !important; }

/* Keep active indicators styled cleanly inside the cards */
#blue:hover .service-card::after { border-top-color: #6272a4; border-left-color: #6272a4; }
#yellow:hover .service-card::after { border-top-color: #f1fa8c; border-left-color: #f1fa8c; }
#red:hover .service-card::after { border-top-color: #ff5555; border-left-color: #ff5555; }
#cyan:hover .service-card::after { border-top-color: #8be9fd; border-left-color: #8be9fd; }
#purple:hover .service-card::after { border-top-color: #bd93f9; border-left-color: #bd93f9; }
#white:hover .service-card::after { border-top-color: #f8f8f2; border-left-color: #f8f8f2; }
#gold:hover .service-card::after { border-top-color: #ffd700; border-left-color: #ffd700; }
#green:hover .service-card::after { border-top-color: #50fa7b; border-left-color: #50fa7b; }
#lime:hover .service-card::after { border-top-color: #a3e635; border-left-color: #a3e635; }
#cobalt:hover .service-card::after { border-top-color: #3b82f6; border-left-color: #3b82f6; }
#gray:hover .service-card::after { border-top-color: #9ca3af; border-left-color: #9ca3af; }
#crimson:hover .service-card::after { border-top-color: #dc143c; border-left-color: #dc143c; }
#lavender:hover .service-card::after { border-top-color: #e6e6fa; border-left-color: #e6e6fa; }
#teal:hover .service-card::after { border-top-color: #008080; border-left-color: #008080; }
#violet:hover .service-card::after { border-top-color: #7c3aed; border-left-color: #7c3aed; }
#aqua:hover .service-card::after { border-top-color: #00ffff; border-left-color: #00ffff; }
#navy:hover .service-card::after { border-top-color: #000080; border-left-color: #000080; }
#beige:hover .service-card::after { border-top-color: #f5f5dc; border-left-color: #f5f5dc; }
#slate:hover .service-card::after { border-top-color: #708090; border-left-color: #708090; }
#burgundy:hover .service-card::after { border-top-color: #800020; border-left-color: #800020; }
#emerald:hover .service-card::after { border-top-color: #50c878; border-left-color: #50c878; }
#salmon:hover .service-card::after { border-top-color: #fa8072; border-left-color: #fa8072; }
#jade:hover .service-card::after { border-top-color: #00a86b; border-left-color: #00a86b; }
#indigo:hover .service-card::after { border-top-color: #4b0082; border-left-color: #4b0082; }
#charcoal:hover .service-card::after { border-top-color: #36454f; border-left-color: #36454f; }
#cerulean:hover .service-card::after { border-top-color: #007ba7; border-left-color: #007ba7; }
#rose:hover .service-card::after { border-top-color: #ff007f; border-left-color: #ff007f; }
#coral:hover .service-card::after { border-top-color: #ff7f50; border-left-color: #ff7f50; }