@import url("https://cdn.jsdelivr.net/npm/bootstrap-icons@1.10.3/font/bootstrap-icons.css");

:root {
	--glass-bg: rgba(0, 0, 0, 0.7);
	--glass-border: rgba(16, 185, 129, 0.2);
	--glass-blur: blur(10px);
	--accent-blue: #10b981; /* Vibrant Emerald */
	--primary-dark: #000000; /* Pure Black */
	--secondary-dark: #0a0a0a; /* Deepest Slate */
	--text-main: #ffffff; /* High Contrast White */
	--text-muted: #94a3b8;
	--emerald-o25: rgba(16, 185, 129, 0.25);
	--emerald-o10: rgba(16, 185, 129, 0.10);
	--emerald-o5: rgba(16, 185, 129, 0.05);
}

/* Force dark background on Bootstrap utility classes */
.bg-body {
	background-color: var(--primary-dark) !important;
}

.bg-dark {
	background-color: transparent !important;
}

.table-striped > tbody > tr:nth-of-type(odd) > *,
.table-striped > tbody > tr:nth-of-type(even) > * {
	background-color: #000000 !important;
	color: #ffffff !important;
}

.table-info, .table-info > td, .table-info > th {
	background-color: #000000 !important;
	color: #ffffff !important;
	border-left: 3px solid var(--accent-blue) !important;
}

mark {
	background-color: rgba(16, 185, 129, 0.3) !important;
	color: #ffffff !important;
	padding: 0 4px;
	border-radius: 2px;
}

body {
	font-family: 'Inter', sans-serif;
	background-color: #000000 !important;
	color: var(--text-main);
	line-height: 1.5;
	overflow-x: hidden;
	width: 100%;
	height: 100%;
	min-height: calc(var(--vh, 1vh) * 100);
	padding-bottom: env(safe-area-inset-bottom);
	overscroll-behavior-y: none; /* Prevent rubber-banding if desired for native feel */
}

/* Base container adjustment for safe areas */
header, .container-fluid {
	padding-left: max(0.75rem, env(safe-area-inset-left));
	padding-right: max(0.75rem, env(safe-area-inset-right));
}


.hero-bg {
	background-color: #000000;
	border-bottom: 1px solid rgba(16, 185, 129, 0.2);
}

.container, .container-fluid, .row {
	background-color: transparent !important;
}

h1, h2, h3, h4, .navbar-brand {
	font-family: 'Outfit', sans-serif;
	font-weight: 700;
}

.badge-responsive {
	width: 70px;
}

@media screen and (max-width: 768px) {
	.text-responsive {
		font-size: 12px;
	}

	.badge-responsive {
		width: 40px;
	}
}


@media screen and (max-width: 768px) {
	#collapseFilters.collapsing {
		position: absolute !important;
		z-index: 20;
	}

	#collapseFilters.collapse.show {
		display: block;
		position: absolute;
		z-index: 20;
	}

	.navbar-collapse {
		max-height: none !important;
	}
}

#form-filters {
	max-width: 360px;
}

.img-flag {
	background-color: white;
	border: 1px solid #ddd;
	border-radius: 2px;
	padding: 3px;
	background-size: cover !important;
	max-width: auto;
	max-height: auto;
	height: 19px !important;
	width: 32px !important;
	-webkit-box-shadow: 0 2px 10px rgba(0, 0, 0, .5), 0 2px 3px rgba(0, 0, 0, .5);
	-moz-box-shadow: 0 2px 10px rgba(0, 0, 0, .5), 0 2px 3px rgba(0, 0, 0, .5);
	-o-box-shadow: 0 2px 10px rgba(0, 0, 0, .5), 0 2px 3px rgba(0, 0, 0, .5);
	box-shadow: 0 2px 10px rgba(0, 0, 0, .5), 0 2px 3px rgba(0, 0, 0, .5);
}

.glass-card {
	background: var(--glass-bg);
	backdrop-filter: var(--glass-blur);
	-webkit-backdrop-filter: var(--glass-blur);
	border: 1px solid var(--glass-border) !important;
	border-radius: 12px;
}

.ipcs {
	background: rgba(10, 10, 10, 0.4) !important;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
	border-radius: 8px !important;
	border: 1px solid var(--emerald-o25) !important;
	padding: 0.6rem 1rem !important; /* Made hero more compact */
	margin-bottom: 1rem !important;
}

.navbar {
	background: rgba(0, 0, 0, 0.7) !important;
	backdrop-filter: blur(12px) saturate(180%);
	-webkit-backdrop-filter: blur(12px) saturate(180%);
	border-bottom: 1px solid rgba(16, 185, 129, 0.2) !important;
	padding: 0.25rem 1rem !important;
	padding-top: max(0.25rem, env(safe-area-inset-top)) !important;
	transition: all 0.3s ease;

}

.navbar-nav .nav-link {
	color: #e2e8f0 !important;
	padding: 0.4rem 0.9rem !important;
	margin: 0.1rem 0.2rem !important;
	border-radius: 6px !important;
	background: rgba(255, 255, 255, 0.05) !important;
	border: 1px solid rgba(255, 255, 255, 0.1) !important;
	transition: all 0.2s cubic-bezier(0.4, 0, 0.2, 1) !important;
	font-weight: 500 !important;
	font-size: 0.85rem !important;
}

.navbar-nav .nav-link:hover {
	background: rgba(16, 185, 129, 0.1) !important;
	border-color: rgba(16, 185, 129, 0.4) !important;
	color: #fff !important;
}

.navbar-nav .nav-link.active {
	background: rgba(16, 185, 129, 0.2) !important;
	border-color: var(--accent-blue) !important;
	color: #fff !important;
}

header {
	background: rgba(0, 0, 0, 0.5) !important;
	position: sticky;
	top: 0;
	z-index: 1030;
}

#collapseFilters {
	background: var(--secondary-dark) !important;
	border: 1px solid var(--glass-border);
	border-radius: 12px !important;
	padding: 1.5rem !important;
	box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.3);
}

/* Tactical Clock & Hero Section Enhancements */
.tactical-clock-bg-navbar {
	background: rgba(16, 185, 129, 0.05) !important;
	border: 1px solid var(--emerald-o25) !important;
	box-shadow: inset 0 0 10px rgba(16, 185, 129, 0.03);
}

.hero-clock-container {
	min-width: 160px;
	background: rgba(0, 0, 0, 0.45) !important;
	border: 1px solid var(--emerald-o25) !important;
	box-shadow: 0 8px 32px 0 rgba(16, 185, 129, 0.1);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

.clock-large {
	font-size: 2rem; /* Slighly smaller for compactness */
	font-weight: 900;
	color: #fff;
	text-shadow: 0 0 15px rgba(16, 185, 129, 0.4);
	letter-spacing: -0.01em;
	line-height: 1;
	font-variant-numeric: tabular-nums;
}


.clock-medium {
	font-size: 1.1rem;
	font-weight: 700;
	letter-spacing: 0.05em;
	line-height: 1;
}

.hover-glow:hover {
	text-shadow: 0 0 8px var(--emerald);
	color: #fff !important;
}

.border-emerald-o10 {
	border: 1px solid var(--emerald-o10) !important;
}

.border-emerald-o25 {
	border: 1px solid var(--emerald-o25) !important;
}

.extra-small {
	font-size: 0.65rem;
	letter-spacing: 0.03em;
}

.footer-version {
	display: flex;
	align-items: center;
	gap: 0.5rem;
}

.footer-copyright a {
	color: var(--emerald);
	text-decoration: none;
	font-weight: 600;
}

.footer-copyright a:hover {
	text-decoration: underline;
}
.rss-container {
	height: 34px;
	overflow: hidden;
	position: relative;
	display: flex;
	align-items: center;
	background: rgba(16, 185, 129, 0.03);
	border-radius: 4px;
}

.rss-scroller {
	display: inline-block;
	white-space: nowrap;
	padding-left: 100%;
	animation: marquee 60s linear infinite;
	font-size: 0.85rem;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--emerald);
}

@keyframes marquee {
	0% { transform: translateX(0); }
	100% { transform: translateX(-100%); }
}

.rss-scroller:hover {
	animation-play-state: paused;
}

.table {
	background: transparent;
	color: var(--text-main) !important;
	border-collapse: separate;
	border-spacing: 0 2px; /* Tight tactical spacing */
}

/* Tactical Clock */
.tactical-clock-bg {
	background: rgba(16, 185, 129, 0.05) !important;
	border: 1px solid var(--emerald-o25) !important;
	box-shadow: inset 0 0 10px rgba(16, 185, 129, 0.05);
}

.mono {
	font-family: 'JetBrains Mono', 'Roboto Mono', monospace;
	letter-spacing: 0.05em;
}

.text-emerald {
	color: #10b981 !important;
}

.border-emerald-o25 {
	border-color: var(--emerald-o25) !important;
}

.table thead th {
	border: none;
	background: #000000;
	color: var(--accent-blue);
	font-size: 0.75rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	padding: 0.8rem;
	border-bottom: 2px solid var(--accent-blue) !important;
}

.table tbody tr {
	background-color: #000000 !important;
	border-bottom: 1px solid rgba(255, 255, 255, 0.05) !important;
	color: #fff !important;
	transition: all 1s ease;
}

.table tbody tr:hover, .table tbody tr:hover > td {
	background-color: #0a0a0a !important;
	color: #ffffff !important;
}

footer {
	background-color: #000000 !important;
	color: var(--text-muted) !important;
	border-top: 1px solid var(--accent-blue);
	padding: 2rem 0;
	margin-top: 3rem;
}

.footer-copyright {
	background-color: #000000 !important;
	color: var(--text-muted) !important;
}

.footer-copyright a {
	color: var(--accent-blue) !important;
	font-weight: bold;
	text-decoration: none;
}

.footer-copyright a:hover {
	text-decoration: underline;
}

footer strong {
	color: var(--accent-blue);
}

.freq-badge {
	background: var(--accent-blue);
	color: #000000 !important;
	font-weight: 800;
	padding: 2px 10px;
	border-radius: 2px;
	font-family: 'Inter', monospace;
	font-size: 0.85rem;
}

.callsign-text {
	color: #ffffff !important; /* Pure White Callsigns for visibility */
	font-weight: 700;
	text-decoration: none;
}

.callsign-text:hover {
	color: var(--accent-blue) !important;
	text-decoration: underline;
}

.utc-time {
	font-family: 'Inter', monospace;
	font-weight: 800;
	color: #ffffff !important;
	font-size: 0.95rem;
}

.utc-date {
	font-size: 0.7rem;
	color: var(--text-muted);
}

.search-icon {
	color: var(--accent-blue);
	opacity: 0.5;
	transition: all 0.2s;
	margin-right: 5px;
}

tr:hover .search-icon {
	opacity: 1;
	transform: scale(1.1);
}

#spotsTable {
	margin-top: 20px;
}

.table td {
	border: none !important;
	vertical-align: middle;
	padding: 0.5rem 0.75rem !important;
	background-color: transparent !important; /* Force cell transparency to show TR background */
}

.badge-responsive {
	background-color: var(--accent-blue) !important;
	color: white !important;
	font-weight: 600;
	border-radius: 6px;
	padding: 0.5em 0.75em;
}

.copyleft {
	display: inline-block;
	transform: rotate(180deg);
}

span.search-callsign {
	background: url(/static/images/search-callsign.svg) no-repeat top left;
	background-size: contain;
	cursor: pointer;
	display: inline-block;
	height: 16px;
	width: 20px;
}

#input-group-callsign {
	margin-right: 1rem;
	margin-bottom: 0.5rem;
}

#collapseFilters {
	margin-top: 10px;
	background-color: var(--secondary-dark) !important;
}

#spotsTable {
	margin-top: 10px;
}

#band {
	margin-top: 5px;
}

/* Chart & stats */

#dashboard {
	padding: 10px;
	gap: 10px;
}

#telnet-thead {
	position: sticky;
	top: 0
}

#chart-band_activity {
	width: 100%;
	height: 400px;
}

.spider_chart {
	width: 600px;
	height: 480px;
}

#silo-propagation-img {
	width: 95%;
	height: auto; 
}

#btn-back-to-top {
	position: fixed;
	bottom: 20px;
	right: 20px;
	display: none;
	opacity: 0.7;
 }


 /* propagation */
.icon {  
	float: right;
	font-size:500%;
	position: absolute;
	top:0rem;
	right:-0.3rem;
	opacity: .16;
  }
  
.grey-dark {
	background: #495057;
	color: #efefef;
}

.no-good2  {
	background: linear-gradient(180deg, rgba(207,82,82,1) 0%, rgba(121,9,9,1) 80%);
	color: #fff;
}

.no-good {
	background: #a83b3b;
	color: #fff;
}

.good {
	background: #1f7205;
	color: #fff;
}

.medium {
	background: #ffc241;
	color:#495057;
}

.kpi-card {
	overflow: hidden;
	position: relative;
	box-shadow: 1px 1px 3px rgba(0,0,0,0.75);
	display: inline-block;
	padding: 1em;
	border-radius: 0;
	font-family: sans-serif;  
	width: 170px;
	height: 170px;
	min-height: 80px;
	min-width: 80px;
	margin-left: 0.5em;
	margin-top: 0.5em;
}

.card-value {
	display: block;
	font-size: 180%;  
	font-weight: bolder;
}

.card-text {
	display:block;
	font-size: 100%;
	padding-left: 0.2em;
}


@media only screen and (max-width: 768px) {
	.kpi-card {
		width: 120px!important;
		height: 120px!important;
	}

	.card-value {
		display: block;
		font-size: 150%;  
		font-weight: bolder;
	}

	.card-text {
		display:block;
		font-size: 80%;
		padding-left: 0.2em;
	}
  }


#propagation-wrapper {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
}

#card-container {
	width: 80%;
	display: flex;
	flex-wrap: wrap;
}

#muf-container {
	margin: auto;
}

#solar-data-updated-txt {
	font-size: 14px; 
}


.form-check-input:checked {
	background-color: var(--accent-blue) !important;
	border-color: var(--accent-blue) !important;
}

.form-check-input {
	background-color: #1a1a1a;
	border-color: rgba(16, 185, 129, 0.3);
}

.form-check-input:focus {
	border-color: var(--accent-blue);
	outline: 0;
	box-shadow: 0 0 0 0.25rem rgba(16, 185, 129, 0.25);
}

.ts-wrapper.multi .ts-control .item {
	background: #15539e;
	color: #fff;
	border-radius: 3px;
}

.spot-new td {
	border-left: none !important;
	background-color: rgba(16, 185, 129, 0.1) !important;
	border-bottom: 1px solid rgba(16, 185, 129, 0.2) !important;
	animation: spot-slide-in 0.6s ease-out forwards;
}

@keyframes spot-slide-in {
	0% {
		transform: translateY(-20px);
		opacity: 0;
		background-color: rgba(16, 185, 129, 0.4) !important;
	}
	100% {
		transform: translateY(0);
		opacity: 1;
		background-color: rgba(16, 185, 129, 0.1) !important;
	}
}

.spot-new td:first-child {
	border-left: 4px solid var(--accent-blue) !important;
}

.spot-new .callsign-text {
	color: var(--accent-blue) !important;
}

/* Toast Notifications */
.custom-toast {
	background-color: rgba(10, 10, 10, 0.9) !important;
	backdrop-filter: blur(10px);
	border: 1px solid var(--accent-blue) !important;
	color: #ffffff !important;
	min-width: 280px;
	border-radius: 8px;
	margin-bottom: 10px;
	animation: slideIn 0.3s ease-out;
}

.custom-toast-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 10px 15px;
	border-bottom: 1px solid rgba(16, 185, 129, 0.2);
}

.custom-toast-body {
	padding: 12px 15px;
	font-size: 0.9rem;
}

@keyframes slideIn {
	from { transform: translateX(100%); opacity: 0; }
	to { transform: translateX(0); opacity: 1; }
}

@keyframes fadeOut {
	from { opacity: 1; }
	to { opacity: 0; }
}

.toast-fade-out {
	animation: fadeOut 0.5s forwards;
}

/* Mobile Responsive Clock */
@media screen and (max-width: 768px) {
	.clock-large {
		font-size: 1.5rem;
	}
	
	.clock-medium {
		font-size: 0.9rem;
	}
	
	.hero-clock-container {
		min-width: 130px;
		padding: 0.4rem 0.75rem !important;
	}

	.clock-large {
		font-size: 1.35rem;
	}

	.clock-medium {
		font-size: 0.8rem;
	}

	/* Compact navbar for mobile */
	.navbar-brand {
		font-size: 1rem;
	}

	.navbar-toggler {
		padding: 0.25rem 0.5rem;
		font-size: 0.9rem;
	}
}

/* Native App Feel - Active states */
.btn:active, .nav-link:active, .table tbody tr:active {
	opacity: 0.7;
	transform: scale(0.98);
	transition: transform 0.1s ease;
}

/* Scrollbar styling for a cleaner look */
::-webkit-scrollbar {
	width: 6px;
}
::-webkit-scrollbar-track {
	background: #000;
}
::-webkit-scrollbar-thumb {
	background: #333;
	border-radius: 10px;
}
::-webkit-scrollbar-thumb:hover {
	background: var(--accent-blue);
}

