body {
	font-family: "Twemoji Country Flags", "Helvetica", "Comic Sans", sans-serif;
}

@media (min-width: 992px) {
	.modal-lg,
	.modal-xl {
		max-width: 900px;
	}

	#firstloginwizard_modal_content {
		overflow-y: visible;
	}
}

@media (max-width: 991px) {

	#firstloginwizard_modal_content {
		overflow-y: auto;
	}

	.h-lg-25 {
		height: 25% !important;
	}

	.h-lg-50 {
		height: 50% !important;
	}

	.h-lg-75 {
		height: 75% !important;
	}

	.h-lg-100 {
		height: 100% !important;
	}

	.h-lg-auto {
		height: auto !important;
	}

	.w-lg-25 {
		width: 25% !important;
	}

	.w-lg-50 {
		width: 50% !important;
	}

	.w-lg-75 {
		width: 75% !important;
	}

	.w-lg-100 {
		width: 100% !important;
	}

	.w-lg-auto {
		width: auto !important;
	}

}
/* ============  HEADER MENU ============ */
/* Adapted from https://bootstrap-menu.com/detail-multilevel.html  */
/* ============ desktop view ============ */
@media all and (min-width: 992px) {

	.navbar-nav-left .dropdown-menu > li > a:hover:after {
		transform: rotate(-90deg);
	}

	.navbar-nav-right .dropdown-menu > li > a:hover:after {
		transform: rotate(90deg);
	}

	.header-dropdown li {
		position: relative;
	}

	.nav-item .submenu {
		display: none;
		position: absolute;
		left: 100%;
		top: -7px;
	}

	.nav-item .submenu-left {
		right: 100%;
		left: auto;
	}

	.header-dropdown > li:hover > .submenu {
		display: block;
	}

	.dropdown:hover > .header-dropdown {
		display: block;
	}
	
	.dropdown > .header-dropdown {
		display: none;
	}

	.navbar-nav-left {
		flex-grow: 1;
	}

	.navbar-nav-right {
		float: right;
	}

	.dropdown-menu-right {
		right: 0 !important;
		left: auto !important;
	 }
}
/* ============ desktop view .end// ============ */

/* ============ small devices ============ */
@media (max-width: 991px) {

	.header-dropdown {
		margin-left: 0.7rem;
		margin-right: 0.7rem;
		margin-bottom: 0.5rem;
	}

	.header-dropdown li {
		position: relative;
	}

	.nav-item .submenu {
		display: none;
		position: absolute;
		left: 30%;
		top: -7px;
	}

}
/* ============ small devices .end// ============ */

.modal-header {
	display: initial;
}

.dropdown-menu {
	z-index: 2000 !important;
	position: absolute !important;
}

[hidden] {
	display: none !important;
}

a {
	text-decoration: none !important;
}

.main-nav .container {
	margin-top: 0px !important;
}

#nav-container {
	margin-top: 0;
	position: sticky;
	top: 0;
}

thead > tr > td {
	position: sticky;
	top: 45px;
}

.headerLogo {
	width: 50px;
	height: 50px;
}

.mainLogo {
	width: 300px;
	height: 300px;
}

.navbar {
	--bs-navbar-padding-y: 0.25rem;
}

.dashboard {
	padding-top: none;
}

.statistics {
	padding-top: 15px;
}

.statistics_custom {
	padding-top: 15px;
}

.notes {
	padding-top: 15px;
}

.eqsl {
	padding-top: 15px;
}

.publicsearch {
	padding-top: 15px;
	max-width: 540px;
}

.search {
	padding-top: 15px;
}

.logbook {
	padding-top: 15px;
}

.adif {
	padding-top: 15px;
}

.adif .alert p {
	margin-bottom: 0rem;
}

.api .alert p {
	margin-bottom: 0rem;
}

.qso_panel {
	padding-top: 25px;
}

.qso_panel .iota_ref {
	text-transform: uppercase;
}

.qso_panel #sota_ref-selectized {
	text-transform: uppercase;
}

.qso_panel #wwff_ref-selectized {
	text-transform: uppercase;
}

.qso_panel #pota_ref-selectized {
	text-transform: uppercase;
}

.qso_panel #darc_dok-selectized {
	text-transform: uppercase;
}

.card-body #sota_ref_edit-selectized {
	text-transform: uppercase;
}

.card-body #wwff_ref_edit-selectized {
	text-transform: uppercase;
}

.card-body #pota_ref_edit-selectized {
	text-transform: uppercase;
}

.card-body #darc_dok_edit-selectized {
	text-transform: uppercase;
}

#share_modal {
	display: grid;
	grid-template-columns: auto;
}

#oqrssearch:valid {
	text-transform: uppercase;
}

.confirmedGrid {
	border-color: green;
}

.workedGrid {
	border-color: yellow;
}

.newGrid {
	border-color: red;
}

#country {
	border: none;
}

TD.eqsl {
	width: 33px;
	white-space: nowrap;
}

.eqsl-green {
	color: #00a000 !important;
	font-size: 1.1em;
}

.eqsl-red {
	color: #f00 !important;
	font-size: 1.1em;
}

.eqsl-yellow {
	color: #d39e00 !important;
	font-size: 1.1em;
}

.eqsl-grey {
	color: #dddddd !important;
	font-size: 1.1em;
}

TD.qsl {
	width: 33px;
	white-space: nowrap;
}

.qsl-green {
	color: #00a000 !important;
	font-size: 1.1em;
}

.qsl-red {
	color: #f00 !important;
	font-size: 1.1em;
}

.qsl-yellow {
	color: #d39e00 !important;
	font-size: 1.1em;
}

.qsl-grey {
	color: #dddddd !important;
	font-size: 1.1em;
}

TD.clublog {
	width: 33px;
	white-space: nowrap;
}

.clublog-green {
	color: #00a000 !important;
	font-size: 1.1em;
}

.clublog-yellow {
	color: #d39e00 !important;
	font-size: 1.1em;
}

.clublog-red {
	color: #f00 !important;
	font-size: 1.1em;
}

.clublog-grey {
	color: #dddddd !important;
	font-size: 1.1em;
}

TD.dcl {
	width: 33px;
	white-space: nowrap;
}

.dcl-green {
	color: #00a000 !important;
	font-size: 1.1em;
}

.dcl-yellow {
	color: #d39e00 !important;
	font-size: 1.1em;
}

.dcl-red {
	color: #f00 !important;
	font-size: 1.1em;
}

TD.qrz {
	width: 33px;
	white-space: nowrap;
}

.qrz-green {
	color: #00a000 !important;
	font-size: 1.1em;
}

.qrz-red {
	color: #f00 !important;
	font-size: 1.1em;
}

.qrz-yellow {
	color: #d39e00 !important;
	font-size: 1.1em;
}

.qrz-grey {
	color: #dddddd !important;
	font-size: 1.1em;
}

TD.lotw {
	width: 33px;
	white-space: nowrap;
}

.lotw-green {
	color: #00a000 !important;
	font-size: 1.1em;
}

.lotw-red {
	color: #f00 !important;
	font-size: 1.1em;
}

.lotw-grey {
	color: #dddddd !important;
	font-size: 1.1em;
}

.lotw-yellow {
	color: #d39e00 !important;
	font-size: 1.1em;
}

.qso-edit-box {
	padding: 10px;
}

.previous-qsos .card-title {
	margin-bottom: 0px;
}

.qso-map .card-title {
	margin-bottom: 0px;
}

.qso-map {
	margin-bottom: 10px;
}

.callsign-suggest {
	margin-bottom: 10px;
}

.callsign-suggest .card-title {
	margin-bottom: 0px;
}

#search_box #callsign {
	text-transform: uppercase;
}

#nav-bar-search-input {
    text-transform: uppercase;
}

#nav-bar-search-input::placeholder {
    text-transform: none;
}

.settings {
	padding-top: 15px;
}

.settings-nav {
	margin-bottom: 15px;
	list-style: none;
	background-color: #fff;
	border: 1px solid #d1d5da;
	border-radius: 3px;
}

.settings-nav .nav-link {
	list-style: none;
	background-color: #fff;
	border: 1px solid #d1d5da;
}

.settings-nav .nav-link:hover {
	background-color: #e1e4e8;
}

/* QSL Card Management CSS */

.qsl_management {
	padding-top: 15px;
}

/*
*
*
*/
.qso-map-new .card-header {
	background: #0f2027;
	/* fallback for old browsers */
	background: -webkit-linear-gradient(to right, #2c5364, #203a43, #0f2027);
	/* Chrome 10-25, Safari 5.1-6 */
	background: linear-gradient(to right, #2c5364, #203a43, #0f2027);
	/* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
	color: #ffffff;
}

/* Round bottom corners of callsign notes header when collapsed */
.callsign-notes .card-header {
	border-radius: 0.25rem;
}

.callsign-notes .card-header[aria-expanded="true"] {
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}

#myTab .nav-link {
	padding: 8px !important;
}

#map {
	z-index: 1;
}

#qsomap {
	z-index: 1;
	border-radius: 0.25rem;
	overflow: hidden;
}

.qso-map {
	border-radius: 0.25rem;
	overflow: hidden;
}

#create_station_profile .row {
	margin-bottom: 10px;
}

/*
*   Debug CSS
*/

.card {
	margin-bottom: 10px;
}

.modal-backdrop {
	z-index: 1000 !important;
}

.was-map-dialog .modal-dialog {
	width: 100%;
}

@media (min-width: 576px) {
	.was-map-dialog .modal-dialog {
		max-width: 73% !important;
	}
}

/*
 * Timepicker alignment
 */
.exportdatepicker {
	padding-right: 0;
	padding-left: 0;
}

.modal-body {
	max-height: calc(100vh - 200px);
	overflow-y: auto;
}

/* Station Logbooks Styles */

div#station_logbooks_table_length {
	padding-top: 12px;
	padding-left: 12px;
	padding-bottom: 0px;
}

div#station_logbooks_table_filter {
	padding-top: 12px;
	padding-right: 12px;
	padding-bottom: 0px;
}

div#station_logbooks_table_info {
	padding-left: 12px;
}

div#station_logbooks_table_paginate {
	padding-right: 12px;
	padding-bottom: 12px;
}

div#station_logbooks_linked_table_length {
	padding-top: 12px;
	padding-left: 12px;
	padding-bottom: 0px;
}

div#station_logbooks_linked_table_filter {
	padding-top: 12px;
	padding-left: 12px;
	padding-bottom: 0px;
}

div#station_logbooks_linked_table_info {
	padding-left: 12px;
}

div#station_logbooks_linked_table_paginate {
	padding-right: 12px;
	padding-bottom: 12px;
}

/* qrz.com profile picture Styles */

.card-title {
	margin-bottom: 0px;
}

.callsign-image {
	margin-bottom: 10px;
}

.callsign-image-content {
	display: block;
	max-height: 300px;
	max-width: 75%;
	text-align: center;
}

.callsign-image-pic {
	max-height: 250px;
	max-width: 100%;
	border: 1px solid var(--bs-card-cap-bg);
	border-radius: 0.375rem;
	display: block;
}

#mapactivators {
	height: calc(100vh - 380px) !important;
	max-height: 900px !important;
}

.copy-icon {
	display: block;
	cursor: pointer;
	padding-left: 0.5em;
}

.flash-copy {
	animation-name: flash;
	animation-timing-function: ease-out;
	animation-duration: 1s;
}

@keyframes flash {
	0% {
		background: #28a745;
	}

	100% {
		background: transparent;
	}
}

.api-url {
	font-family: Monospace;
}

.api-key {
	font-family: Monospace;
}

.qso_panel .dxccsummary {
	margin-bottom: 10px;
}

.qso_panel .dxccsummaryheader {
	cursor: pointer;
}

.table-striped tbody > tr.activeRow {
	background-color: #5cb85c !important;
	--bs-table-bg: none;
}

.border-top {
	--bs-border-color: #dee2e6;
}

.activeRow a {
	color: #fff;
}

.w-qsl {
	max-height: calc(100vh - 270px);
	overflow-y: auto;
}

#lotw_manual_results {
	padding-top: 10px;
}

.lotw_info_yellow {
	background-image: linear-gradient(to bottom, #3fb618, yellow);
}

.lotw_info_orange {
	background-image: linear-gradient(to bottom, #3fb618, orange);
}

.lotw_info_red {
	background-image: linear-gradient(to bottom, #3fb618, red);
}

.highcharts-strong {
	font-weight: bold;
}

.highcharts-figure,
.highcharts-data-table table {
	min-width: 320px;
	max-width: 100%;
	margin: 1em auto;
	max-height: calc(100vh - 200px) !important;
	overflow-y: auto;
}

.highcharts-data-table table {
	font-family: Verdana, sans-serif;
	border-collapse: collapse;
	border: 1px solid #ebebeb;
	margin: 10px auto;
	text-align: center;
	width: 100%;
	max-width: 500px;
}

.highcharts-data-table caption {
	padding: 1em 0;
	font-size: 1.2em;
	color: #555;
}

.highcharts-data-table th {
	font-weight: 600;
	padding: 0.5em;
}

.highcharts-data-table td,
.highcharts-data-table th,
.highcharts-data-table caption {
	padding: 0.5em;
}

.highcharts-data-table thead tr,
.highcharts-data-table tr:nth-child(even) {
	background: #f8f8f8;
}

.highcharts-data-table tr:hover {
	background: #f1f7ff;
}

#radio_cat_state {
	margin-bottom: 10px;
}

.previous-qsos table {
	margin-bottom: 0px;
}

.lotw-cert-list table {
	margin-bottom: 0px;
}

.qso_panel a i.fa.fa-star:hover {
	color: #ffd700 !important;
}

#dx,
#state,
#gridsquare,
#sota,
#wwff,
#dok,
#pota {
	text-transform: uppercase;
}

#dx::placeholder,
#state::placeholder,
#gridsquare::placeholder,
#sota::placeholder,
#wwff::placeholder,
#pota::placeholder {
    text-transform: none;
}

#awardInfoButton {
	display: flex;
	align-items: center;
}

#awardInfoButton h2 {
	margin-right: 30px;
}

#simpleFleInfo {
	display: flex;
	align-items: center;
}

#simpleFleInfo h2 {
	margin-right: 30px;
}

@media (min-width: 768px) {

	.sfletable.table {
		width: 100%;
	}

	.sfletable.table thead,
	.sfletable.table tbody tr {
		display: block;
		width: 100%;
		table-layout: fixed;
		display: inline-table;
	}

	.sfletable.table tbody {
		width: 95%;
		overflow-y: scroll;
		position: absolute;
	}

	.simplefle {
		--bs-card-bg: none;
	}

	#sfle_textarea {
		width: 100%;
		box-sizing: border-box;
	}
}

@media (max-width: 767px) {

	.sfletable.table {
		overflow-x: auto;
		font-size: 0.8em;
	}

	#refs_hint {
		font-size: 0.8em;
	}
}

.red {
	color: var(--red);
}

.green {
	color: var(--green);
}

.blue {
	color: var(--indigo);
}

.gray {
	color: var(--gray);
}

.orange {
	color: var(--orange);
}

.qso_eqsl_qslmsg_update {
	cursor: pointer;
	margin-left: 10px;
}

.icon_selectBox {
	position: relative;
}

.icon_selectBox_data {
	display: none;
	position: absolute;
	z-index: 50;
	left: initial;
	border: 1px solid var(--bs-border-color);
	padding: 5px;
	top: initial;
	background-color: var(--bs-card-bg);
	color: var(--bs-body-color);
}

.icon_selectBox_data label {
	display: block;
	margin-bottom: 0px !important;
	text-align: center;
	cursor: pointer;
}

.icon_selectBox_data label:hover {
	background-color: var(--bs-primary);
}

.inputError {
	border: 2px solid rgb(217, 83, 79);
}

table.dataTable thead th,
table.dataTable thead td,
table.dataTable tfoot th,
table.dataTable tfoot td {
	text-align: center !important;
}

.table-responsive .dropdown-menu.notdisplay {
	padding: 0px !important;
	border: 0px !important;
}

#partial_view .table-responsive {
	overflow-x: unset;
}

label {
	margin-bottom: 0.25rem;
}

.btn-pwd-showhide,
.btn-pwd-showhide:hover,
.btn-included-on-field,
.btn-included-on-field:hover {
	border: 1px solid var(--cl-border-btn-pwd);
	cursor: pointer;
}

.dxccsummaryheader:after {
	content: "\02795"; /* Unicode character for "plus" sign (+) */
	float: right;
	margin-left: 5px;
	color: #000000;
	background-image: linear-gradient(
		to right,
		white 0,
		white 12ch,
		black 12ch,
		black 100%
	);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	-webkit-text-fill-color: transparent;
}

.dxccsummaryheaderopened:after {
	content: "\2796"; /* Unicode character for "minus" sign (-) */
}

.coordinates {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
	display: grid;
	grid-template-columns: repeat(auto-fill, 200px);
	justify-content: center;
	gap: 0 1rem;
}

.coord-pair {
	white-space: nowrap;
}

.coord-pair .text-success {
	display: inline-block;
	width: 120px;
}

.cohidden {
    display:none;
}

@media (min-width: 1920px) {
	.coordinates {
		display: flex;
		gap: 0 1rem;
	}
	#latDeg, #lngDeg {
		width: 170px;
	}
	#locator, #distance, #bearing, #ituzonedisplay, #cqzonedisplay{
		width: 120px;
	}
}

.hamsatBgLin {
	background-color: rgb(224 242 254) !important;
	--bs-badge-color: rgb(2 132 199) !important;
}

.hamsatBgData {
	background-color: rgb(250 232 255) !important;
	--bs-badge-color: rgb(192 38 211) !important;
}

.hamsatBgFm {
	background-color: rgb(254 243 199) !important;
	--bs-badge-color: rgb(217 119 6) !important;
}

.spw-buttons {
	--bs-btn-padding-x: 0.3rem;
	--bs-btn-padding-y: 0.6rem;
	display: none;
}

.quickswitcher.disabled {
    --bs-dropdown-link-disabled-color: initial !important;
}

#station_logbooks_table tbody td, #station_locations_table tbody td, #user_contests_table tbody td {
	text-align: center; 
	vertical-align: middle;
}

.table .editRow {
	--bs-table-bg: none !important;
	--bs-table-accent-bg: none !important;
}

/* Used in maps */
.legend {
	padding: 6px 8px;
	font: 14px Arial, Helvetica, sans-serif;
	line-height: 24px;
	color: rgb(255, 255, 255) !important;	
	border-color: #fff;
	border-width: 1px;
	border-style: solid;
	border-radius: 10px;
	background-color: rgb(52, 55, 56) !important;
}
.legend h4 {
	text-align: center;
	font-size: 16px;
	margin: 2px 12px 8px;
	color: rgb(255, 255, 255) !important;
}
.legend span {
	position: relative;
	bottom: 3px;
}
.legend i {
	width: 18px;
	height: 18px;
	float: left;
	margin: 0 8px 0 0;
}

.info.leaflet-control {
    padding: 6px 8px;
    font: 14px/16px Arial, Helvetica, sans-serif;
    box-shadow: 0 0 15px rgba(0,0,0,0.2);
    border-radius: 5px;
	background-color: rgb(52, 55, 56) !important;
	color: rgb(255, 255, 255) !important;
	border-color: #fff;
	border-width: 1px;
	border-style: solid;
}
.info h4 {
    margin: 0 0 5px;
    color: rgb(255, 255, 255) !important;
}

.leaflet-popup-content-wrapper {
	background-color: rgb(52, 55, 56) !important;
	color: rgb(255, 255, 255) !important;
	border-color: #fff;
	border-width: 1px;
	border-style: solid;
}

.leaflet-popup-close-button {
	color: rgb(255, 255, 255) !important;
}

.leaflet-popup-tip {
	background-color: rgb(52, 55, 56) !important;
	border-color: #fff;
	border-width: 1px;
	border-style: solid;
}

.lba-label {
    background-color: rgb(52, 55, 56) !important;
    color: rgb(255, 255, 255) !important;
    border: 1px solid #fff; /* White border */
    padding: 5px 8px;
    border-radius: 5px;
}

/* Modify the tooltip's arrow (triangle) */
.lba-label::before {
    border-bottom-color: rgb(52, 55, 56) !important; /* Triangle color (matches background) */
    border-width: 6px; /* Keep same size */
}

/* Create a white border effect around the triangle */
.lba-label::after {
    content: "";
    position: absolute;
    border-style: solid;
    border-width: 0 8px 8px 8px; /* triangle pointing down */
    border-color: transparent transparent white transparent; /* white bottom border */
    top: -8px; /* place above the tooltip */
    left: 50%;
    transform: translateX(-50%);
    z-index: -1; /* optional: to place it behind */
}


.satellite-label {
    background-color: rgb(52, 55, 56) !important;
    color: rgb(255, 255, 255) !important;
    border: 1px solid #fff; /* White border */
    padding: 5px 8px;
    border-radius: 5px;
}

/* Modify the tooltip's arrow (triangle) */
.satellite-label::before {
    border-top-color: rgb(52, 55, 56) !important; /* Triangle color (matches background) */
    border-width: 6px; /* Keep same size */
}

/* Create a white border effect around the triangle */
.satellite-label::after {
    content: "";
    position: absolute;
    border-style: solid;
    border-width: 8px; /* Slightly larger than ::before */
    border-color: white transparent transparent transparent; /* White top border */
    bottom: -16px; /* Match ::before position */
    left: 50%;
    transform: translateX(-50%);
	z-index: -1;
}


.blank-row {
	height: 20px !important;
}

.uppercase {
	text-transform: uppercase;
}

.tables-container {
    display: flex;
    flex-wrap: wrap;
    gap: 10px; /* Optional: add some space between tables */
    justify-content: center;
    overflow-x: auto; /* Enable horizontal scrolling if needed */
	max-width: 100%; /* Ensure the container doesn't exceed the viewport width */
    padding: 10px; /* Optional: add some padding */
    box-sizing: border-box;
}

.table-wrapper {
    flex: 1 1 400px; /* Adjust the base width of tables */
    box-sizing: border-box;
}

.multiselect-container.dropdown-menu {
    --bs-dropdown-padding-y: 0;
}

.btn-group .multiselect-container .multiselect-option input[type="radio"] {
    display: none;
}

@media screen and (max-width:991px){ 
	.multiselect-container button.dropdown-item {
	  pointer-events:none;
	}
	.multiselect-container span.form-check input {
	  pointer-events: all;
	}
	.multiselect-container span.form-check label  {
	  pointer-events: none;
	}
	.btn-group .multiselect-container .multiselect-option input[type="radio"] {
		display: block !important;
	}
}

/* ============  Glanceyear ============ */
.glanceyear-container {
	border: 1px solid #D8D8D8;
	border-radius: 5px;
	max-width: 683px;
}
.glanceyear-header {
	position: relative;
	background-color: #F5F5F5;
	border-bottom: 1px solid #D8D8D8;
	border-radius: 5px 5px 0 0;
	color: #000;
	font-size: 15px;
	font-weight: bold;
	margin: 0;
	padding: 7px 10px;
}
.glanceyear-quantity {
	position: absolute;
	right: 10px;
	top: 10px;
	color:#aaa;
	font-size: 10px;
}
.glanceyear-content { padding: 10px; }
.glanceyear-text {
	color: #aaa;
	font-size: 12px;
	font-weight: normal;
	margin: 0 0;
	padding: 0;
}
.glanceyear-summary { color: #aaa; font-size: 12px; margin: 0 10px 10px; }

.glanceyear-legend {
	color: #aaa;
	float: right;
	font-size: 12px;
	text-align: middle;
	text-wrap: none;
}
.glanceyear-legend span { display: inline-block; height: 10px; width: 10px; }

svg rect.day { fill: #eee; shape-rendering: crispedges; }
svg rect.day:hover { stroke: #aaa; stroke-width: 1px; }
svg rect.day[data-col] { fill: #3d9692; }
svg rect.day[data-col='1'] { fill: #c3dbda; }
svg rect.day[data-col='3'] { fill: #5caeaa; }
svg rect.day[data-col='6'] { fill: #277672; }
svg rect.day[data-col='12'] { fill: #176662; }
svg rect.day[data-col='24'] { fill: #075652; }
svg rect.day[data-col='48'] { fill: #004642; }

svg text { fill: #CCC; font-size: 9px; }
svg text.month { fill: #AAA; }

.svg-tag {
	background-color: rgba(0,0,0,0.8);
	border-radius: 3px;
	color: #eee;
	font-size: 12px;
	line-height: 15px;
	padding: 5px 15px;
	position: absolute;
	text-align: center;
}
.svg-tag:after {
	border-color: rgba(0,0,0,0.8) transparent transparent transparent;
	border-style: solid;
	border-width: 5px 5px 0 5px;
	bottom: -5px;
	content: "";
	height: 0;
	left: 50%;
	margin-left: -5px;
	position: absolute;
	width: 0;
}

.glanceyear-legend-1 {
	background-color: #eee;	
}
.glanceyear-legend-2 {
	background-color: #c3dbda;	
}
.glanceyear-legend-3 {
	background-color: #5caeaa;	
}
.glanceyear-legend-4 {
	background-color: #277672;	
}

.leaflet-popup-content {
    font-family: "Twemoji Country Flags", sans-serif;
	min-width: 260px; /* Minimum width to ensure readability */
}

.big-flag {
	float: left;
    font-size: 3em;
    line-height: 1;
	white-space: no-wrap;
	display: flex;
    align-items: center; /* Vertically aligns the flag and callsign */
    gap: 0.5em; /* Adds space between the flag and callsign */
}

.htmx-indicator {
   opacity: 0;
   animation: blinker 2s linear infinite;
}

.htmx-request.htmx-indicator {
   opacity: 1;
}

@keyframes blinker {
   50% {
      opacity: 0;
   }
}

.spacingcell {
   background-color: transparent !important;
   --bs-table-accent-bg: transparent !important;
   border-top-style: none !important;
   border-bottom-style: none !important;
   border-right-style: none !important;
   --dt-row-hover: transparent !important;
   --dt-row-stripe: transparent !important;
}

/* Target the bootstrap-multiselect button */
.btn.dropdown-toggle.multiselect {
  position: relative;
  padding-right: 30px; /* room for arrow */
}

.qsl-gallery .waterfall-grid {
		column-count: 4;
		column-gap: 20px;
	}

	.qsl-gallery .waterfall-item {
		break-inside: avoid;
		margin-bottom: 20px;
		display: inline-block;
		width: 100%;
	}

	@media (max-width: 767px) {
		.qsl-gallery .waterfall-grid {
			column-count: 1;
		}
	}

	@media (min-width: 768px) and (max-width: 991px) {
		.qsl-gallery .waterfall-grid {
			column-count: 2;
		}
	}

	@media (min-width: 992px) and (max-width: 1199px) {
		.qsl-gallery .waterfall-grid {
			column-count: 3;
		}
	}

	.qsl-gallery .card-img-container {
		overflow: hidden;
		display: flex;
		align-items: center;
		justify-content: center;
		background-color: #f8f9fa;
	}

	.qsl-gallery .qsl-card-img {
		object-fit: contain;
		width: 100%;
		cursor: pointer;
		transition: transform 0.2s ease;
	}

	.qsl-gallery .qsl-card-img:hover {
		transform: scale(1.03);
	}

	.qsl-gallery .card:hover {
		box-shadow: 0 4px 8px rgba(0,0,0,0.1);
	}

	.qsl-gallery .card {
		display: flex;
		flex-direction: column;
		transition: box-shadow 0.3s ease;
	}

	.qsl-gallery .card-body {
		flex-grow: 1;
		display: flex;
		flex-direction: column;
	}

	.legendClose {
		float: right;
	}


/* Ensure tooltip appears above everything */
.tooltip {
    z-index: 9999 !important;
}

.qso_icons {
	user-select: none;
}

.heatmap-grid { 
	display: grid; 
	grid-template-columns: repeat(24, minmax(0, 1fr)); 
	gap: 2px; 
	max-width: 100%; 
}
.heatmap-header {
	text-align: center;
	padding: 6px 4px;
}
.heatmap-row-label {
	font-weight: 600;
	padding: 8px 4px;
	text-align: left;
	font-size: 0.85rem;
}
.heatmap-cell {
	text-align: center;
	padding: 8px 4px;
	border-radius: 3px;
	border: 1px solid #d1d5da;
	cursor: default;
	color: #000;
}
.legend-item { display: inline-flex; align-items: center; gap: 4px; font-size: 0.8rem;}
.legend-swatch { width: 16px; height: 16px; border: 1px solid #d1d5da; border-radius: 3px; display: inline-block; }

.my-div-icon {
	white-space: nowrap;
	background: transparent !important;
	border: none !important;
}

#gridsquare_map {
	height: calc(100vh - 350px) !important; 
}

.lbatable thead tr th:nth-child(1),
.lbatable tbody tr td:nth-child(1) {
	padding-left: 10px !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
}

/* ===================================================================
   QSL Postcard Designer
   =================================================================== */

/* --- Toolbar --- */
.qsl-toolbar .qsl-tb-group {
	display: flex;
	flex-direction: column;
}

.qsl-tb-label {
	font-size: .68rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	opacity: .65;
	margin-bottom: .25rem;
}

/* --- Three-pane editor grid --- */
.qsl-editor {
	display: grid;
	grid-template-columns: 240px minmax(0, 1fr) 280px;
	gap: 1rem;
	align-items: start;
}

@media (max-width: 1199.98px) {
	.qsl-editor {
		grid-template-columns: 1fr;
	}
}

.qsl-pane {
	margin-bottom: 0;
}

/* Right column stack (template options + properties) */
.qsl-right-stack {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

/* --- Palette (left) --- */
.qsl-palette .card-body {
	max-height: 78vh;
	overflow-y: auto;
}

.qsl-cat {
	margin-bottom: .35rem;
}

.qsl-cat > summary {
	cursor: pointer;
	font-weight: 600;
	font-size: .85rem;
	padding: .3rem .4rem;
	border-radius: 6px;
	user-select: none;
}

.qsl-cat > summary:hover {
    color: var(--bs-primary-text-emphasis);
    background: var(--bs-primary-bg-subtle);
}


.qsl-cat-body {
	padding: .35rem 0 .15rem .25rem;
}

.qsl_designer_field {
	cursor: grab;
	user-select: none;
	padding: 5px 8px;
	margin-bottom: 5px;
	border: 1px solid var(--bs-border-color);
	border-radius: 6px;
	background: var(--bs-body-bg);
	color: var(--bs-body-color);
	font-family: monospace;
	font-size: .8rem;
	transition: background .12s, border-color .12s;
}

.qsl_designer_field:hover {
	color: var(--bs-emphasis-color);
    background: var(--bs-primary-bg-subtle);
}

.qsl_designer_field:active {
	cursor: grabbing;
}

/* WYSIWYG ghost rows for "repeats per QSO" fields (non-interactive clones) */
.qsl_designer_ghost {
	opacity: .35;
	pointer-events: none;
}

/* --- Properties (right) --- */
.qsl-props .card-body {
	max-height: 78vh;
	overflow-y: auto;
}

/* --- Canvas (center) --- */
.qsl-canvas .card-body {
	background: var(--bs-tertiary-bg, #eef0f2);
}

#stageScroll {
	overflow: auto;
	max-height: 80vh;
	padding: 14px;
}

#stageZoom {
	width: 940px;
	height: 640px;
}

#rulerWrap {
	position: relative;
	width: 940px;
	height: 640px;
}

#rulerTop,
#rulerLeft {
	position: absolute;
	background: #e9ecef;
	background: light-dark(#e9ecef, #343a40);
	border: 1px solid #dee2e6;
	border-color: light-dark(#dee2e6, #495057);
	color: #212529;
	color: light-dark(#212529, #e9ecef);
	font-weight: 600;
}

#rulerTop {
	left: 40px;
	top: 0;
	width: 900px;
	height: 40px;
}

#rulerLeft {
	left: 0;
	top: 40px;
	width: 40px;
	height: 600px;
}

#stage {
	position: absolute;
	left: 40px;
	top: 40px;
	width: 900px;
	height: 600px;
	border: 1px solid var(--bs-border-color);
	overflow: hidden;
	background-repeat: no-repeat;
	background-position: center;
	background-image:
		linear-gradient(to right, rgba(0, 0, 0, .06) 1px, transparent 1px),
		linear-gradient(to bottom, rgba(0, 0, 0, .06) 1px, transparent 1px);
	background-size: 37.5px 37.5px;
	background-color: #ffffff;
	box-shadow: 0 2px 14px rgba(0, 0, 0, .2);
}

/* Ruler tick marks */
.ruler-tick-top {
	position: absolute;
	bottom: 0;
	width: 1px;
	background: #495057;
	background: light-dark(#495057, #adb5bd);
}

.ruler-tick-top.major {
	height: 18px;
}

.ruler-tick-top.minor {
	height: 9px;
	opacity: .55;
}

.ruler-tick-left {
	position: absolute;
	right: 0;
	height: 1px;
	background: #495057;
	background: light-dark(#495057, #adb5bd);
}

.ruler-tick-left.major {
	width: 18px;
}

.ruler-tick-left.minor {
	width: 9px;
	opacity: .55;
}

/* Ruler labels */
.ruler-label-top {
	position: absolute;
	top: 3px;
	font-size: 10px;
	line-height: 1;
	color: #212529;
	color: light-dark(#212529, #e9ecef);
	background: transparent;
}

.ruler-label-left {
	position: absolute;
	right: 18px;
	font-size: 10px;
	line-height: 1;
	color: #212529;
	color: light-dark(#212529, #e9ecef);
	background: transparent;
}

/* --- Placed elements (sit on the white postcard) --- */
.qsl_designer_placed {
	position: absolute;
	padding: 2px 5px;
	border: 1px solid rgba(13, 110, 253, .5);
	border-radius: 4px;
	background: rgba(255, 255, 255, .92);
	color: #111111;
	font-weight: 600;
	line-height: 1.25;
	box-shadow: 0 1px 4px rgba(0, 0, 0, .15);
	cursor: move;
	white-space: nowrap;
}

.qsl_designer_placed:hover {
	border-color: var(--bs-primary);
}

.qsl_designer_placed.selected {
	border: 1px solid #ff7a00;
	box-shadow: 0 0 0 2px rgba(255, 122, 0, .35);
	z-index: 50;
}

/* --- Snapping guides --- */
.qsl-guide {
	position: absolute;
	pointer-events: none;
	z-index: 60;
}

.qsl-guide-v {
	top: 0;
	width: 0;
	height: 600px;
	border-left: 1px dashed #ff3b8b;
}

.qsl-guide-h {
	left: 0;
	width: 900px;
	height: 0;
	border-top: 1px dashed #ff3b8b;
}

/* --- Marquee (rubber-band) selection --- */
.qsl-marquee {
	position: absolute;
	pointer-events: none;
	z-index: 70;
	border: 1px solid var(--bs-primary, #0d6efd);
	background: rgba(13, 110, 253, .12);
}

/* --- Context menu --- */
.qsl-ctx-menu {
	position: fixed;
	z-index: 2000;
	min-width: 184px;
	padding: 4px;
	background: var(--bs-body-bg);
	border: 1px solid var(--bs-border-color);
	border-radius: 8px;
	box-shadow: 0 6px 24px rgba(0, 0, 0, .25);
}

.qsl-ctx-item {
	display: flex;
	align-items: center;
	width: 100%;
	padding: 6px 10px;
	border: 0;
	border-radius: 5px;
	background: transparent;
	color: var(--bs-body-color);
	font-size: .85rem;
	text-align: left;
}

.qsl-ctx-item:hover {
	background: rgba(127, 127, 127, .15);
	background: color-mix(in srgb, var(--bs-body-color) 50%, transparent);
}

.qsl-ctx-item.text-danger:hover {
	background: rgba(220, 53, 69, .15);
	background: color-mix(in srgb, var(--bs-danger) 50%, transparent);
}

.qsl-ctx-sep {
	height: 1px;
	margin: 4px 6px;
	background: var(--bs-border-color);
}

/* Context submenu (align & distribute) */
.qsl-ctx-sub {
	position: relative;
}

.qsl-ctx-submenu {
	position: absolute;
	left: 100%;
	top: -5px;
	display: none;
	min-width: 232px;
	margin-left: 2px;
	padding: 4px;
	background: var(--bs-body-bg);
	border: 1px solid var(--bs-border-color);
	border-radius: 8px;
	box-shadow: 0 6px 24px rgba(0, 0, 0, .25);
}

.qsl-ctx-sub:hover > .qsl-ctx-submenu {
	display: block;
}

/* ============================================================
   Custom map tile styles (user-selectable; override active theme)
   Body class = user_options map_custom.tile.style (see custom_map_style_helper).
   map-follow = no override (active theme overrides.css wins).
   Higher specificity (body.<slug>) beats the theme's bare .leaflet-tile.
   ============================================================ */

/* Follow active theme -- intentionally empty; theme overrides.css wins */
body.map-follow .leaflet-tile,
body.map-follow path.grid-rectangle,
body.map-follow span.grid-text > font,
body.map-follow span.grid-text-unworked > font,
body.map-follow span.grid-text-worked > font {}

/* --- Light looks: cosmo / default (+ _wide) -- no tile filter --- */
body.map-cosmo .leaflet-tile,
body.map-cosmo_wide .leaflet-tile,
body.map-default .leaflet-tile,
body.map-default_wide .leaflet-tile { filter: none !important; }

body.map-cosmo path.grid-rectangle,
body.map-cosmo_wide path.grid-rectangle,
body.map-default path.grid-rectangle,
body.map-default_wide path.grid-rectangle { stroke: rgba(97, 97, 97, 1); }

body.map-cosmo span.grid-text > font,
body.map-cosmo_wide span.grid-text > font,
body.map-default span.grid-text > font,
body.map-default_wide span.grid-text > font,
body.map-cosmo span.grid-text-unworked > font,
body.map-cosmo_wide span.grid-text-unworked > font,
body.map-default span.grid-text-unworked > font,
body.map-default_wide span.grid-text-unworked > font { color: rgb(97, 97, 97) !important; font-weight: 400 !important; }

body.map-cosmo span.grid-text-worked > font,
body.map-cosmo_wide span.grid-text-worked > font,
body.map-default span.grid-text-worked > font,
body.map-default_wide span.grid-text-worked > font { color: rgb(255, 255, 255) !important; font-weight: 400 !important; }

/* --- Dark looks: shared grid-text (identical across cyborg/darkly/superhero) --- */
body.map-cyborg path.grid-rectangle,
body.map-cyborg_wide path.grid-rectangle,
body.map-darkly path.grid-rectangle,
body.map-darkly_wide path.grid-rectangle,
body.map-superhero path.grid-rectangle,
body.map-superhero_wide path.grid-rectangle { stroke: rgba(200, 200, 200, 0.5); }

body.map-cyborg span.grid-text > font,
body.map-cyborg_wide span.grid-text > font,
body.map-darkly span.grid-text > font,
body.map-darkly_wide span.grid-text > font,
body.map-superhero span.grid-text > font,
body.map-superhero_wide span.grid-text > font,
body.map-cyborg span.grid-text-worked > font,
body.map-cyborg_wide span.grid-text-worked > font,
body.map-darkly span.grid-text-worked > font,
body.map-darkly_wide span.grid-text-worked > font,
body.map-superhero span.grid-text-worked > font,
body.map-superhero_wide span.grid-text-worked > font { color: rgba(255, 255, 255, 1) !important; font-weight: 400 !important; }

body.map-cyborg span.grid-text-unworked > font,
body.map-cyborg_wide span.grid-text-unworked > font,
body.map-darkly span.grid-text-unworked > font,
body.map-darkly_wide span.grid-text-unworked > font,
body.map-superhero span.grid-text-unworked > font,
body.map-superhero_wide span.grid-text-unworked > font { color: rgba(255, 255, 255, .4) !important; font-weight: 400 !important; }

/* Dark tile filters -- the only difference between dark looks */
body.map-cyborg .leaflet-tile,
body.map-cyborg_wide .leaflet-tile { filter: invert() hue-rotate(180deg) grayscale(0.8) !important; }

body.map-darkly .leaflet-tile,
body.map-darkly_wide .leaflet-tile { filter: invert() hue-rotate(180deg) grayscale(0.8) brightness(1.2) !important; }

body.map-superhero .leaflet-tile,
body.map-superhero_wide .leaflet-tile { filter: invert() hue-rotate(180deg) sepia(100%) hue-rotate(180deg) !important; }

/* --- Synthetic (non-theme) looks --- */
body.map-gray .leaflet-tile { filter: contrast(1.3) grayscale(0.8) !important; }
body.map-gray path.grid-rectangle { stroke: rgba(0, 0, 0, 0.09); }
body.map-gray span.grid-text > font { color: rgba(0, 0, 0, 0.09) !important; font-weight: 400 !important; }
body.map-gray span.grid-text-unworked > font { color: rgba(0, 0, 0, .4) !important; font-weight: 400 !important; }
body.map-gray span.grid-text-worked > font { color: rgba(0, 0, 0, 1) !important; font-weight: 400 !important; }

body.map-high-contrast .leaflet-tile { filter: saturate(2.2) grayscale(0.8) contrast(1.2) !important; }
body.map-high-contrast path.grid-rectangle { stroke: rgba(0, 0, 0, 0.2); }
body.map-high-contrast span.grid-text > font { color: rgba(0, 0, 0, 0.4) !important; font-weight: 400 !important; }
body.map-high-contrast span.grid-text-unworked > font { color: rgba(0, 0, 0, 0.2) !important; font-weight: 400 !important; }
body.map-high-contrast span.grid-text-worked > font { color: rgba(0, 0, 0, 0.4) !important; font-weight: 400 !important; }