/* Global typography */
body { font-family: 'Inter', system-ui, -apple-system, 'Segoe UI', Arial, sans-serif; }

/* (Removed home-specific rotator styles; now embedded inline in home view) */

/* Minimal custom styles: flash messages */
#flash-stack .alert { min-width: 260px; }
#flash-stack .flash-close { cursor: pointer; }

/* Bootstrap palette overrides and additional utilities */
:root {
	--bs-blue: #007ac3;
	--bs-indigo: #6610f2;
	--bs-purple: #6f42c1;
	--bs-pink: #d63384;
	--bs-red: #d71e29;
	--bs-orange: #fd7e14;
	--bs-yellow: #ffc107;
	--bs-green: #198754;
	--bs-teal: #20c997;
	--bs-cyan: #21b6f7;
	--bs-primary: var(--bs-blue);
	--bs-primary-rgb: 0, 122, 195;
	--bs-primary-text-emphasis: #0b3954;
	--bs-primary-bg-subtle: #d8ecfb;
	--bs-primary-border-subtle: #9dd0f3;
	--bs-link-color: var(--bs-primary);
	--bs-link-hover-color: #00588a;
	--bs-link-color-rgb: var(--bs-primary-rgb);
	--bs-link-hover-color-rgb: 0, 88, 138;
	--bs-focus-ring-color: rgba(var(--bs-primary-rgb), 0.25);
	--bs-extra-light-bg: #f9fafb;
	--bs-secondary: #005d8f;
	--bs-secondary-rgb: 0, 93, 143;
	--bs-success: var(--bs-primary);
	--bs-success-rgb: var(--bs-primary-rgb);
	--bs-info: var(--bs-primary);
	--bs-info-rgb: var(--bs-primary-rgb);
}

.btn-primary {
	--bs-btn-color: #fff;
	--bs-btn-bg: var(--bs-primary);
	--bs-btn-border-color: var(--bs-primary);
	--bs-btn-hover-bg: #005d8f;
	--bs-btn-hover-border-color: #005682;
	--bs-btn-active-bg: #004e73;
	--bs-btn-active-border-color: #004666;
	--bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
}

.btn-secondary {
	--bs-btn-color: #fff;
	--bs-btn-bg: var(--bs-secondary);
	--bs-btn-border-color: var(--bs-secondary);
	--bs-btn-hover-bg: #004666;
	--bs-btn-hover-border-color: #00405a;
	--bs-btn-active-bg: #003d53;
	--bs-btn-active-border-color: #00354a;
	--bs-btn-focus-shadow-rgb: var(--bs-secondary-rgb);
}

.btn-outline-primary {
	--bs-btn-color: var(--bs-primary);
	--bs-btn-border-color: var(--bs-primary);
	--bs-btn-hover-color: #fff;
	--bs-btn-hover-bg: #005d8f;
	--bs-btn-hover-border-color: #005682;
	--bs-btn-focus-shadow-rgb: var(--bs-primary-rgb);
	--bs-btn-active-color: #fff;
	--bs-btn-active-bg: #004e73;
	--bs-btn-active-border-color: #004666;
	--bs-btn-disabled-color: var(--bs-primary);
	--bs-btn-disabled-bg: transparent;
	--bs-btn-disabled-border-color: var(--bs-primary);
	--bs-gradient: none;
}

.btn-xs {
	padding: 0.2rem 0.6rem;
	font-size: 0.75rem;
	line-height: 1.1;
	border-radius: 0.3rem;
}

.bg-extra-light { background-color: var(--bs-extra-light-bg) !important; }

#search_results .member-item.active {
	background-color: var(--bs-primary-bg-subtle);
	border-color: var(--bs-primary-border-subtle);
	color: var(--bs-primary-text-emphasis);
}

#search_results .member-item.active small {
	color: var(--bs-primary-text-emphasis);
}

.messages-page .messages-column-left {
	border-right: 1px solid var(--bs-border-color);
	border-left: 1px solid var(--bs-border-color);
	border-bottom: 1px solid var(--bs-border-color);
}

.messages-page .messages-column-right {
	border-right: 1px solid var(--bs-border-color);
}

.messages-page #messages_layout {
	min-height: 0;
}

.messages-page .messages-column-left,
.messages-page .messages-column-right {
	display: flex;
	flex-direction: column;
	height: 100%;
	max-height: 100%;
	min-height: 0;
}

.messages-page .messages-column-left {
	overflow: hidden;
}

#conversation_list .conversation-item {
	position: relative;
}

#conversation_list .conversation-wrapper {
	align-items: flex-start;
}

#conversation_list .conversation-info {
	min-width: 0;
	padding-right: 4rem;
}

/* Ensure links are primary color */
a {
	color: var(--bs-primary);
}

/* Prevent default Bootstrap blue interaction colors. */
a,
button,
.btn,
.nav-link,
.dropdown-item,
.form-check-input {
	-webkit-tap-highlight-color: rgba(var(--bs-primary-rgb), 0.16);
}

/* Custom accent color for form inputs like checkboxes and switches */
.form-check-input {
	accent-color: var(--bs-primary);
}

.form-check-input:checked {
	background-color: var(--bs-primary);
	border-color: var(--bs-primary);
}

.form-check-input:focus,
.form-control:focus,
.form-select:focus,
.page-link:focus,
.navbar-toggler:focus {
	border-color: var(--bs-primary-border-subtle);
	box-shadow: 0 0 0 0.25rem rgba(var(--bs-primary-rgb), 0.25);
}

.dropdown-menu {
	--bs-dropdown-link-active-bg: var(--bs-primary-bg-subtle);
	--bs-dropdown-link-active-color: var(--bs-primary-text-emphasis);
	--bs-dropdown-link-hover-bg: rgba(var(--bs-primary-rgb), 0.08);
	--bs-dropdown-link-hover-color: var(--bs-body-color);
}

.page-link {
	color: var(--bs-primary);
}

.page-link:hover {
	color: #00588a;
	background-color: var(--bs-primary-bg-subtle);
	border-color: var(--bs-primary-border-subtle);
}

.page-item.active .page-link {
	background-color: var(--bs-primary);
	border-color: var(--bs-primary);
}

#conversation_list .conversation-title {
	min-width: 0;
	gap: 0.5rem;
}

#conversation_list .conversation-name {
	min-width: 0;
	flex: 1 1 auto;
}

#conversation_list .conversation-meta {
	position: absolute;
	right: 1rem;
	top: 0.65rem;
	display: flex;
	align-items: center;
	gap: 0.35rem;
}

#conversation_list .conversation-time {
	flex: 0 0 auto;
	white-space: nowrap;
}

#conversation_list .conversation-preview {
	max-width: 100%;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	display: block;
}

#conversation_list .conversation-unread {
	font-size: 0.65rem;
}

#conversation_list {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
}

.messages-page .messages-column-right {
	overflow: hidden;
}

#conversation_messages {
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overflow-x: hidden;
	display: block;
}

#message_input_area {
	flex-shrink: 0;
}

.message-text {
	white-space: pre-wrap;
	overflow-wrap: anywhere;
}

.message-meta {
	font-size: 0.75rem;
}

.message-meta-outgoing {
	justify-content: flex-end;
	color: rgba(255, 255, 255, 0.75);
}

.message-meta-incoming {
	color: var(--bs-secondary-color);
}

.message-read-indicator {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1;
	width: 0.55rem;
	height: 0.55rem;
}

.message-read-indicator.is-read {
	color: #9ddff9;
}

.message-read-dot {
	display: block;
	width: 0.4rem;
	height: 0.4rem;
	border-radius: 50%;
	background-color: currentColor;
}

.message-send-button {
	--bs-btn-disabled-color: #fff;
	--bs-btn-disabled-bg: var(--bs-primary);
	--bs-btn-disabled-border-color: var(--bs-primary);
	width: 2.25rem;
	height: 2.25rem;
	line-height: 1;
}

/* Emoji toggle button: match send button size and show a grey monochrome icon */
.message-emoji-button {
	width: 2.25rem;
	height: 2.25rem;
	line-height: 1;
	padding: 0;
}

.message-emoji-button .message-emoji-icon {
	width: 1rem;
	height: 1rem;
	display: block;
	color: #6c757d;
}

.message-send-button.is-loading {
	opacity: 1;
}

.message-send-button .message-send-icon {
	width: 1rem;
	height: 1rem;
	display: block;
	color: inherit;
}

.message-send-button .message-send-spinner {
	color: #fff;
}

.tooltip.message-read-tooltip .tooltip-inner {
	max-width: none;
	white-space: nowrap;
	font-size: 0.7rem;
	line-height: 1.1;
	padding: 0.2rem 0.4rem;
}

@media (max-width: 991.98px) {
	.messages-page #messages_layout.mobile-conversation-open .messages-column-left {
		display: none !important;
	}

	.messages-page #messages_layout.mobile-conversation-open .messages-column-right {
		flex: 0 0 100%;
		width: 100%;
		max-width: 100%;
	}

	.messages-page #messages_layout {
		height: auto;
		max-height: none;
	}

	#empty_state.mobile-conversation-summary-hidden {
		display: none !important;
	}

	.messages-page .messages-column-left,
	.messages-page .messages-column-right {
		height: auto;
		max-height: none;
	}

	.messages-page #messages_layout.mobile-conversation-open .messages-column-right {
		height: 100%;
	}

	.messages-page #messages_layout.mobile-conversation-open #message_input_area {
		margin-top: auto;
	}

	.messages-page .messages-column-left {
		border-left: 0;
		border-right: 0;
	}

	.messages-page .messages-column-right {
		border-right: 0;
	}
}

@media (min-width: 992px) {
	.messages-page #messages_layout {
		min-height: calc(100vh - 160px);
		height: calc(100vh - 160px);
		max-height: calc(100vh - 160px);
	}

	.messages-page .messages-column-left {
		border-bottom: 0;
	}
}

.hover-shadow { transition: box-shadow 0.3s ease-in-out; }
.hover-shadow:hover { box-shadow: 0 .5rem 1rem rgba(0,0,0,.15)!important; }

/* Custom active state for nav-links to match primary theme */
.nav-link:active,
.nav-link:focus,
.nav-link:focus-visible,
.navbar-nav .nav-link.show {
	background-color: var(--bs-primary-bg-subtle);
	color: var(--bs-primary-text-emphasis);
}

/* Custom active state for dropdown items */
.dropdown-item:active,
.dropdown-item.active,
.dropdown-item:focus,
.dropdown-item:focus-visible {
	background-color: var(--bs-primary-bg-subtle);
	color: var(--bs-primary-text-emphasis);
}
