@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');
@import 'dark-theme.css';

:root 
{
	--bg-color: #ffffff;
	--text-color: #333;
	--heading-color: #666666;
	--button-bg: #000000;
	--button-text: #ffffff;
	--accordion-button:#000000;
	--accordion-bg:#ffffff;
	--button-hover-bg: #000000;
	--button-hover-text: #ffffff;
	--placeholder-text: #212529bf;
	--border-color: #dee2e6;

	--top-row: #f7f7f7;
	--controls-bg: #f8f9fa;
	--controls-shadow: rgba(0, 0, 0, 0.1);
	--control-label: #495057;
	--nav-item: #555;
	--tabs-hover: #f8f9fa;
	--accordion-border-color: #ddd;
	--breakdown-border: #eee;
	--table-th-bg: #fafafa;
	--bg-alert: #cff4fc;
	--bg-subtype: #f0f0f0;
	--bg-stuff: #e7f3ff;
	--text-stuff: #555;

	--login-layout-bg1: #667eea;
	--login-layout-bg2: #764ba2;
}


html.dark-mode 
{
	--bg-color: #121212;
	--text-color: #e0e0e0;
	--heading-color: #bbbbbb; 
	--button-bg: #e0e0e0;
	--button-text: #121212;
	--button-hover-bg: #ffffff;
	--button-hover-text: #222;
	--accordion-bg:#000000;
	--accordion-button:#ffffff;
	--placeholder-text: rgba(222, 218, 214, 0.749);
	--border-color: rgba(255,255,255,0.125);

	--top-row: rgb(8,8,8);
	--controls-bg: rgb(7,6,5);
	--controls-shadow: rgba(255, 255, 255, 0.1);
	--control-label: rgb(182, 175, 168);
	--nav-item: #aaa;
	--tabs-hover: rgb(7,6,5);
	--accordion-border-color: rgb(34,34,34);
	--breakdown-border: rgb(34,34,34);
	--table-th-bg: rgb(7,7,7);
	--bg-alert: rgb(48,11,3);
	--bg-subtype: rgb(15,15,15);
	--bg-stuff: rgb(24, 12, 0);
	--text-stuff: rgb(170, 170, 170);

	--login-layout-bg1: rgb(5, 39, 103);
	--login-layout-bg2:	#3a0647 ;
}

html, body {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

h1:focus {
	outline: none;
}

a, .btn-link {
	color: #0071c1;
}

.btn-primary {
	color: #fff;
	background-color: #1b6ec2;
	border-color: #1861ac;
}

.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus {
box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb;
}

.content {
	padding-top: 1.1rem;
}

.valid.modified:not([type=checkbox]) {
	outline: 1px solid #26b050;
}

.invalid {
	outline: 1px solid red;
}

.validation-message {
	color: red;
}

#blazor-error-ui {
	background: lightyellow;
	bottom: 0;
	box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2);
	display: none;
	left: 0;
	padding: 0.6rem 1.25rem 0.7rem 1.25rem;
	position: fixed;
	width: 100%;
	z-index: 1000;
}

	#blazor-error-ui .dismiss {
		cursor: pointer;
		position: absolute;
		right: 0.75rem;
		top: 0.5rem;
	}

.blazor-error-boundary {
	background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My4uMDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC4xNTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1TAINIDI1OS43ODYgODcuMwMDUgMjU5Ljc4NiA4OS43OTIxIDI1OS43ODYgOTIuMjgzNyAyNjEuMDQ5IDkzLjUyOTUgMjYzLjU3NiA5My41Mjk1IDI2Ni4xMTYgOTMuNTI5NSAyNjcuMzg3IDkyLjI4MzcgMjY3LjM4NyA4OS43OTIxIDI2Ny4zODcgODcuMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121;
	padding: 1rem 1rem 1rem 3.7rem;
	color: white;
}

	.blazor-error-boundary::after {
		content: "An error has occurred."
	}

/* Stats Page Styles */
.stats-container 
{
	max-width: 1200px;
	margin: 0 auto;
	padding: 20px;
}

.controls-panel 
{
	background: #f8f9fa;
	padding: 20px;
	border-radius: 8px;
	margin-bottom: 20px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	display: flex;
	align-items: center;
	gap: 60px;
	flex-wrap: wrap;
}

.control-group 
{
	display: flex;
	align-items: center;
	gap: 5px;
	/* margin-bottom: 15px; -- Replaced by gap on controls-panel */
	flex-wrap: wrap;
}

.control-group:last-child {
	margin-bottom: 0;
}

.control-label 
{
	font-weight: 600;
	min-width: 100px;
	color: #495057;
}

.control-input 
{
	padding: 8px 12px;
	border: 1px solid #ced4da;
	border-radius: 4px;
	font-size: 14px;
	min-width: 200px;
	background: white;
}

.custom-date-inputs 
{
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
}

.custom-range-container {
	flex-basis: 100%; /* Forces this container to a new line */
	display: flex;
	align-items: center;
	gap: 15px;
}

.date-input 
{
	padding: 6px 10px;
	border: 1px solid #ced4da;
	border-radius: 4px;
	font-size: 14px;
	background: white;
}

.radio-group 
{
	display: flex;
	gap: 15px;
	align-items: center;
}

.radio-option 
{
	display: flex;
	align-items: center;
	gap: 5px;
}

.radio-option input[type="radio"] {
	margin: 0;
}

.btn 
{
	padding: 8px 16px;
	border: none;
	border-radius: 4px;
	cursor: pointer;
	font-size: 14px;
	transition: background-color 0.2s;
}

.btn-primary 
{
	background-color: #007bff;
	color: white;
}

.btn-primary:hover {
	background-color: #0056b3;
}

.chart-container 
{
	background: white;
	padding: 20px;
	border-radius: 8px;
	box-shadow: 0 2px 4px rgba(0,0,0,0.1);
	margin-bottom: 20px;
}

.chart-wrapper 
{
	min-height: 400px;
	width: 100%;
}

.tabs 
{
	display: flex;
	border-bottom: 2px solid #dee2e6;
	margin-bottom: 20px;
}

.tab 
{
	padding: 12px 24px;
	background: none;
	border: none;
	cursor: pointer;
	font-size: 16px;
	color: #6c757d;
	transition: all 0.2s;
}

.tab.active 
{
	color: #007bff;
	border-bottom: 2px solid #007bff;
	margin-bottom: -2px;
}

.tab:hover 
{
	color: #0056b3;
	background-color: #f8f9fa;
}

.loading 
{
	text-align: center;
	padding: 40px;
	color: #6c757d;
	font-style: italic;
}

.error 
{
	color: #dc3545;
	background-color: #f8d7da;
	padding: 12px;
	border-radius: 4px;
	border: 1px solid #f5c6cb;
	margin-bottom: 20px;
}

.stats-summary 
{
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
	gap: 15px;
	margin-bottom: 20px;
}

.stats-card 
{
	background: linear-gradient(135deg, #ffcb66 0%, #e89b00 100%);
	color: white;
	padding: 20px;
	border-radius: 8px;
	text-align: center;
	position: relative;
}

.stats-card.trial-conversion {
     /* make room for the sub-text without growing the grid row */
}

.trial-conversion-detail 
{
    position: absolute;
    bottom: 5px;
    left: 0;
    right: 0;
    font-size: 0.7rem;
    opacity: 0.85;
    text-align: center;
    color: black;
    /* padding: 0 8px; */
}
.stats-card.new {

	background: linear-gradient(135deg, #43e97b 0%, #38f9d7 100%);
}

.stats-card.updated {
	background: linear-gradient(135deg, #ffcb66 0%, #e89b00 100%);
}

.stats-card.expired {
	background: linear-gradient(135deg, #FF9AA2 0%, #FF4560 100%);
}

.stats-card h4 
{
	margin: 0 0 10px 0;
	font-size: 14px;
	opacity: 0.9;
	text-transform: uppercase;
	letter-spacing: 1px;
	color: black;
}

.stats-card .number 
{
	font-size: 28px;
	font-weight: bold;
	margin: 0;
	color: black;
}

.apexcharts-legend-group-vertical {
	flex-direction: row !important;
}

/* --- Styles for the Revenue Breakdown List --- */
.revenue-breakdown-list 
{
	margin-top: 2rem;
	padding: 1rem;
	background-color: #f9f9f9;
	border: 1px solid #ddd;
	border-radius: 4px;
}

.revenue-breakdown-list h4 
{
	margin-top: 0;
	border-bottom: 2px solid #eee;
	padding-bottom: 0.5rem;
}

.breakdown-period {
	margin-bottom: 1.5rem;
}

.breakdown-period h5 
{
	font-weight: 600;
	margin-bottom: 0.5rem;
}

.breakdown-period ul 
{
	list-style: none;
	padding-left: 20px; /* Indents the country list */
	margin: 0;
}

.breakdown-period li 
{
	display: flex;
	justify-content: space-between;
	padding: 12px 18px;
	border-bottom: 1px solid #eee;
	color: #555;
}

.breakdown-period li:last-child {
	border-bottom: none;
}

/* --- Styles for Accordion in Revenue Breakdown --- */
.breakdown-period {
	margin-bottom: 2px; /* Small gap between accordions */
}

.accordion-header 
{
	background-color: white;
	color: #333;
	cursor: pointer;
	padding: 12px 18px;
	width: 100%;
	border: 1px solid #ddd;
	text-align: left;
	outline: none;
	font-size: 1rem;
	font-weight: 600;
	transition: background-color 0.2s;
	display: flex;
	align-items: center;
	position: relative;
	border-radius: 3px;
}

.accordion-header:hover {
	background-color: #f8f8f8;
}

/* Add +/- icon */
.accordion-header::after 
{
	content: '\002B'; /* Plus sign */
	font-weight: bold;
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.2em;
}

.accordion-header.active::after 
{
	content: "\2212"; /* Minus sign */
}

.accordion-header.active 
{
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
}

.accordion-content 
{
	list-style: none;
	padding: 10px 20px;
	margin: 0;
	background-color: white;
	border: 1px solid #ddd;
	border-top: none;
	border-bottom-left-radius: 3px;
	border-bottom-right-radius: 3px;
}

/* --- Styles for the Country Breakdown List --- */
.country-breakdown-list 
{
	margin-top: 2rem;
	padding: 1rem;
	background-color: #f9f9f9;
	border: 1px solid #ddd;
	border-radius: 4px;
}

.country-breakdown-list h4 
{
	margin-top: 0;
	border-bottom: 2px solid #eee;
	padding-bottom: 0.5rem;
}

.country-breakdown-list ul 
{
	list-style: none;
	padding-left: 0;
	margin: 0;
}

.country-breakdown-list li 
{
	display: flex;
	justify-content: space-between;
	padding: 12px 18px;
	border-bottom: 1px solid #eee;
	color: #555;
}

.country-breakdown-list li:last-child 
{
	border-bottom: none;
}

.accordion-main-header 
{
	background-color: #f8f9fa;
	color: #495057;
	cursor: pointer;
	padding: 12px 18px;
	width: 100%;
	border: 1px solid #ddd;
	text-align: left;
	outline: none;
	font-size: 1.1rem;
	font-weight: 600;
	transition: background-color 0.2s;
	position: relative;
	border-radius: 4px;
	margin-bottom: 0;
}

.accordion-main-header:hover {
	background-color: #e9ecef;
}

/* Add +/- icon */
.accordion-main-header::after 
{
	content: '\002B'; /* Plus sign */
	font-weight: bold;
	position: absolute;
	right: 18px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.2em;
}

.accordion-main-header.active::after {
	content: "\2212"; /* Minus sign */
}

.accordion-main-header.active 
{
	border-bottom-left-radius: 0;
	border-bottom-right-radius: 0;
	border-bottom: none;
}

/* Adjust the list containers for the new structure */
.country-breakdown-list, .revenue-breakdown-list 
{
	margin-top: 1rem;
	background-color: transparent;
	border: none;
	padding: 0;
}

.country-breakdown-list ul, .revenue-breakdown-list .breakdown-period 
{
	border: 1px solid #ddd;
	border-top: none;
	border-bottom-left-radius: 4px;
	border-bottom-right-radius: 4px;
	padding: 10px 0 10px;
	background-color: #f9f9f9;
}

.revenue-breakdown-list .breakdown-period 
{
	padding: 0;
	border: none;
	background: transparent;
	border-radius: 0;
}


.country-breakdown-list li .value-group,
.breakdown-period li .value-group 
{
	display: flex;
	justify-content: flex-end;
	gap: 1rem;
	align-items: center;
	min-width: 150px;
	text-align: right;
}

.country-breakdown-list li .percentage,
.breakdown-period li .percentage 
{
	min-width: 50px;
	color: #6c757d;
}



/* --- New Styles for Nested Accordions within Lists --- */

/* Target list items that will contain a nested accordion */
.accordion-content > li.has-nested-accordion {
	padding: 10px 0 0 0; /* Add top spacing, remove other padding */
	border-top: 1px solid var(--breakdown-border);
	border-bottom: none;
}

/* First item with a nested accordion shouldn't have a top border */
.accordion-content > li.has-nested-accordion:first-child {
	border-top: none;
	padding-top: 0;
}

/* Ensure non-clickable items have no hover effect */
.breakdown-item.no-hover:hover {
	background-color: transparent;
}
.breakdown-item.no-hover {
	border-bottom: 1px solid var(--breakdown-border);
}

.country-breakdown-list ul .accordion-header 
{
	font-weight: 400;
	justify-content: space-between;
}

.country-breakdown-list ul .accordion-header::after {
	content: none;
}

.revenue-breakdown-list .breakdown-period .accordion-content .accordion-header 
{
	font-weight: 400;
	justify-content: space-between;
}

.revenue-breakdown-list .breakdown-period .accordion-content .accordion-header::after {
	content: none;
}

.percentage {
	
	color: #6c757d !important
}

/* .country-breakdown-list ul .accordion-header {
	padding: 10px 0 !important
} */

.country-breakdown-list button .value-group, .breakdown-period li .value-group 
{
	display: flex;
	justify-content: flex-end;
	gap: 1rem;
	align-items: center;
	min-width: 150px;
	text-align: right;
}

.revenue-breakdown-list .breakdown-period ul {
padding: 10px 0 10px !important
}

.country-breakdown-list ul .accordion-content li 
{
	padding: 12px 18px 12px 40px !important;
}

.revenue-breakdown-list ul .accordion-content li 
{
	padding: 12px 18px 12px 40px !important;
}

.breakdown-period ul .accordion-header .value-group 
{
	display: flex;
	justify-content: flex-end;
	gap: 1rem;
	align-items: center;
	min-width: 150px;
	text-align: right;
}

.stats-card.trials {
    background: linear-gradient(135deg, #007bff 0%, #e89b00 100%);
    color: white;
}