:root {
	--cyw-primary: #0c9fed;
	--cyw-navy: #032b4c;
	--cyw-gray: #424242;
}

body {
	font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	color: var(--cyw-gray);
}

.text-primary {
	color: var(--cyw-primary) !important;
}

.text-navy {
	color: var(--cyw-navy) !important;
}

.bg-primary {
	background-color: var(--cyw-primary) !important;
}

.bg-navy {
	background-color: var(--cyw-navy) !important;
}

.btn-primary {
	background-color: var(--cyw-primary);
	border-color: var(--cyw-primary);
}

	.btn-primary:hover {
		background-color: #0a8ad4;
		border-color: #0a8ad4;
	}

.btn-outline-primary {
	color: var(--cyw-primary);
	border-color: var(--cyw-primary);
}

	.btn-outline-primary:hover {
		background-color: var(--cyw-primary);
		border-color: var(--cyw-primary);
	}

.alert-error {
	background-color: #ffebee;
	border: 1px solid #ef9a9a;
	color: #c62828;
	padding: 1rem;
	border-radius: 0.5rem;
	margin-bottom: 1rem;
}

/* App Loading Screen - shown while Blazor initializes */
#app-loading {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, #032b4c 0%, #054a7a 50%, #0c9fed 100%);
	padding: 1rem;
}

	#app-loading .loading-card {
		background: white;
		border-radius: 1rem;
		box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
		padding: 2.5rem;
		width: 100%;
		max-width: 420px;
		text-align: center;
	}

	#app-loading .loading-logo {
		max-width: 280px;
		height: auto;
		margin-bottom: 1.5rem;
	}

	#app-loading .loading-text {
		color: #6c757d;
		font-size: 1rem;
		margin-bottom: 1rem;
	}

	#app-loading .loading-spinner {
		width: 40px;
		height: 40px;
		border: 3px solid #e9ecef;
		border-top-color: #0c9fed;
		border-radius: 50%;
		animation: spin 1s linear infinite;
		margin: 0 auto;
	}

@keyframes spin {
	to {
		transform: rotate(360deg);
	}
}

/* Fix for EditForm inside scrollable modals - the <form> element breaks
   Bootstrap's flex chain between .modal-content and .modal-body */
.modal-dialog-scrollable .modal-content > form {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	flex: 1;
	min-height: 0;
}

/* Password reveal toggle */
.password-input-wrapper {
	position: relative;
}

	.password-input-wrapper .form-control {
		padding-right: 3rem;
	}

.password-toggle-btn {
	position: absolute;
	right: 0.75rem;
	top: 50%;
	transform: translateY(-50%);
	background: none;
	border: none;
	color: #9e9e9e;
	cursor: pointer;
	padding: 0.25rem;
	line-height: 1;
}

	.password-toggle-btn:hover {
		color: var(--cyw-navy);
	}
