/* AI Model Recommender - Bootstrap + TeamAI overrides */

/* Prevent widget from ever making page wider than screen */
#aimr-recommender {
	display: block;
	width: 100%;
	max-width: 100%;
	min-width: 0;
	box-sizing: border-box;
	overflow-x: hidden;
}
#aimr-recommender *,
#aimr-recommender *::before,
#aimr-recommender *::after {
	box-sizing: border-box;
}

#aimr-recommender .aimr-main-row {
	display: flex !important;
	flex-direction: column !important;
	gap: 1.5rem;
	width: 100%;
	max-width: 100%;
}

#aimr-recommender .aimr-col-skills {
	order: 1;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

#aimr-recommender .aimr-col-results {
	order: 2;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}

/* Intro instruction: full width above the layout */
#aimr-recommender .aimr-form-intro {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box;
}

/* Categories list: full width everywhere */
#aimr-recommender .aimr-categories-list {
	width: 100% !important;
	max-width: 100% !important;
	min-width: 0;
	box-sizing: border-box;
}

/* Mobile ≤700px: categories list full width, then button full width, then results */
@media (max-width: 700px) {
	#aimr-recommender .aimr-form {
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: auto auto;
		gap: 0.75rem 0;
	}
	#aimr-recommender .aimr-categories-list {
		grid-column: 1;
		grid-row: 1;
		margin-bottom: 0;
	}
	#aimr-recommender .aimr-actions {
		grid-column: 1;
		grid-row: 2;
		margin-bottom: 0;
	}
	#aimr-recommender .aimr-actions .btn {
		width: 100%;
	}
}

/* Main row: single column at all screen sizes (skills then results, full width) */
#aimr-recommender .aimr-main-row {
	display: flex !important;
	flex-direction: column !important;
}
#aimr-recommender .aimr-col-skills,
#aimr-recommender .aimr-col-results {
	width: 100% !important;
	max-width: 100% !important;
}

.aimr-wrap .aimr-col-results {
	min-height: 200px;
	content-visibility: auto;
	contain-intrinsic-size: auto 200px;
}

/* Focus ring for results container (accessibility) */
.aimr-wrap .aimr-results:focus {
	outline: 2px solid var(--aimr-blue);
	outline-offset: 2px;
}

/* Prevent horizontal scroll and keep content from leaking */
#aimr-recommender.aimr-wrap {
	max-width: min(100%, 100vw);
	overflow-x: hidden;
	overflow-y: visible;
}

/* ========== Mobile optimization ========== */
@media (max-width: 767px) {
	#aimr-recommender {
		padding-left: max(1rem, env(safe-area-inset-left));
		padding-right: max(1rem, env(safe-area-inset-right));
	}
	#aimr-recommender .aimr-form-intro {
		font-size: 1rem;
		line-height: 1.5;
	}
	#aimr-recommender .aimr-col-results {
		min-height: 180px;
	}
	.aimr-wrap .aimr-category-card {
		width: 100% !important;
		max-width: 100% !important;
	}
	.aimr-wrap .aimr-comparison-section {
		margin-top: 1.5rem;
		padding-left: env(safe-area-inset-left);
		padding-right: env(safe-area-inset-right);
	}
	.aimr-wrap .aimr-comparison-block {
		padding: 1rem 0.75rem;
	}
	.aimr-wrap .aimr-comparison-table-wrap {
		margin-left: -0.25rem;
		margin-right: -0.25rem;
		padding: 0.25rem;
	}
}

/* Touch targets and prevent iOS zoom on inputs */
@media (max-width: 767px) {
	#aimr-recommender .form-check-input {
		min-width: 20px;
		min-height: 20px;
		margin-top: 0.15rem;
	}
	#aimr-recommender .form-check-label {
		min-height: 44px;
		display: flex !important;
		align-items: center;
		padding: 0.5rem 0;
	}
	#aimr-recommender .aimr-actions .btn {
		min-height: 48px;
		font-size: 1rem;
		padding: 0.75rem 1rem;
	}
}

/* Recommendation cards on mobile */
@media (max-width: 767px) {
	#aimr-recommender .aimr-card-header {
		padding: 0.75rem 1rem !important;
	}
	#aimr-recommender .aimr-card .aimr-score-section {
		padding: 0.5rem 1rem !important;
	}
	#aimr-recommender .aimr-results-title {
		font-size: 1.25rem;
	}
}

/* TeamAI palette (overrides Bootstrap where used) */
.aimr-wrap {
	--aimr-blue: #1D9BF0;
	--aimr-blue-dark: #0C57AD;
	--aimr-blue-darker: #083A74;
	--aimr-yellow: #FFD12D;
	--aimr-yellow-hover: #FFC700;
	--aimr-success: #00a32a;
	--aimr-warning: #dba617;
}

/* Category trigger: horizontal row — icon, text, chevron in one line; full width */
.aimr-wrap .aimr-category-trigger {
	text-decoration: none;
	border: none;
	color: inherit;
	min-height: 44px;
	padding: 0.75rem 1rem;
	width: 100% !important;
	min-width: 0;
	box-sizing: border-box;
	display: flex !important;
	flex-direction: row !important;
	align-items: center;
	gap: 0.75rem;
	text-align: left;
	writing-mode: horizontal-tb !important;
}

/* Category name: always horizontal text, never stacked letter-by-letter */
.aimr-wrap .aimr-category-name {
	display: block !important;
	white-space: normal !important;
	word-break: normal !important;
	overflow-wrap: break-word;
	word-wrap: break-word;
	min-width: 10em !important;
	max-width: 100%;
	flex: 1 1 auto;
	writing-mode: horizontal-tb !important;
	text-orientation: mixed !important;
}

.aimr-wrap .aimr-category-trigger:hover {
	text-decoration: none;
	color: var(--aimr-blue-darker);
}

.aimr-wrap .aimr-category-trigger[aria-expanded="true"] {
	color: var(--aimr-blue-darker);
	background-color: rgba(29, 155, 240, 0.06) !important;
}

/* Category icon background */
.aimr-wrap .aimr-category-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;
	background: rgba(29, 155, 240, 0.12);
	color: var(--aimr-blue-darker);
}

.aimr-wrap .aimr-category-icon svg {
	width: 22px;
	height: 22px;
}

.aimr-wrap .aimr-category-trigger[aria-expanded="true"] .aimr-category-icon {
	background: rgba(29, 155, 240, 0.2);
	color: var(--aimr-blue);
}

/* Chevron */
.aimr-wrap .aimr-category-chevron {
	display: inline-block;
	width: 0;
	height: 0;
	border-left: 5px solid transparent;
	border-right: 5px solid transparent;
	border-top: 6px solid currentColor;
	transition: transform 0.2s ease;
}

.aimr-wrap .aimr-category-trigger[aria-expanded="true"] .aimr-category-chevron {
	transform: rotate(180deg);
}

/* Panel when hidden */
.aimr-wrap .aimr-category-panel[hidden] {
	display: none !important;
}

/* Primary button: TeamAI yellow */
.aimr-wrap .aimr-btn-primary {
	background-color: var(--aimr-yellow) !important;
	border-color: var(--aimr-yellow) !important;
	color: #222 !important;
}

.aimr-wrap .aimr-btn-primary:hover {
	background-color: var(--aimr-yellow-hover) !important;
	border-color: var(--aimr-yellow-hover) !important;
	color: #222 !important;
}

/* Form check: TeamAI blue accent */
.aimr-wrap .form-check-input:checked {
	background-color: var(--aimr-blue);
	border-color: var(--aimr-blue);
}

.aimr-wrap .aimr-category-label {
	color: var(--aimr-blue-darker) !important;
	white-space: normal;
	overflow-wrap: break-word;
	word-wrap: break-word;
}

/* Result cards: rank badge dark blue */
.aimr-wrap .aimr-rank.badge {
	background-color: var(--aimr-blue-darker) !important;
}

/* Confidence badges */
.aimr-wrap .aimr-confidence-high.badge {
	background-color: var(--aimr-success) !important;
}

.aimr-wrap .aimr-confidence-medium.badge {
	background-color: var(--aimr-warning);
	color: #222;
}

.aimr-wrap .aimr-confidence-low.badge {
	background-color: #e9ecef;
	color: #495057;
}

/* Recommendation card: model name opens body (native <details>) */
.aimr-wrap .aimr-card-details {
	display: block;
}
.aimr-wrap .aimr-card-details summary.aimr-card-title-trigger {
	list-style: none;
	cursor: pointer;
	color: inherit;
}
.aimr-wrap .aimr-card-details summary.aimr-card-title-trigger::-webkit-details-marker {
	display: none;
}
.aimr-wrap .aimr-card-details summary.aimr-card-title-trigger:hover {
	color: var(--aimr-blue-darker);
}
.aimr-wrap .aimr-card-chevron {
	display: inline-block;
	width: 0;
	height: 0;
	border-left: 4px solid transparent;
	border-right: 4px solid transparent;
	border-top: 5px solid currentColor;
	transition: transform 0.2s ease;
	vertical-align: middle;
}
.aimr-wrap .aimr-card-details[open] .aimr-card-chevron {
	transform: rotate(180deg);
}
.aimr-wrap .aimr-card-body {
	display: block;
}

/* Score bar: TeamAI blue gradient */
.aimr-wrap .aimr-score-bar-wrap {
	height: 26px;
	background: #e9ecef;
	border-radius: 6px;
	overflow: hidden;
	position: relative;
}

.aimr-wrap .aimr-score-bar {
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	background: linear-gradient(90deg, var(--aimr-blue), var(--aimr-blue-dark));
	border-radius: 6px;
	transition: width 0.35s ease;
}

.aimr-wrap .aimr-score-text {
	position: absolute;
	right: 10px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 0.875rem;
	font-weight: 600;
	color: #212529;
	text-shadow: 0 0 2px #fff;
}

/* Cost / pricing pills and badge */
.aimr-wrap .aimr-pricing-label {
	font-weight: 600;
	color: inherit;
}
.aimr-wrap .aimr-pricing-badge.badge {
	font-weight: 600;
}
.aimr-wrap .aimr-header-pricing-wrap {
	display: inline-flex;
	align-items: center;
	gap: 0.35rem;
}
.aimr-wrap .aimr-header-pricing-label {
	font-size: 0.75rem;
	font-weight: 600;
	text-transform: uppercase;
	color: #6c757d;
}
.aimr-wrap .aimr-cost-low {
	background: #d1e7dd;
	color: var(--aimr-success);
}

.aimr-wrap .aimr-cost-medium {
	background: #fff3cd;
	color: #856404;
}

.aimr-wrap .aimr-cost-high {
	background: #f8d7da;
	color: #842029;
}

/* Comparison chart – clean modern UI */
.aimr-wrap .aimr-comparison-section {
	width: 100%;
	max-width: 100%;
	min-width: 0;
	margin-top: 2.5rem;
	overflow-x: hidden;
}
.aimr-wrap .aimr-comparison-block {
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 4px 24px rgba(8, 58, 116, 0.06), 0 1px 3px rgba(0, 0, 0, 0.04);
	border: 1px solid rgba(29, 155, 240, 0.12);
	padding: 1.75rem 1.5rem;
	overflow: hidden;
}
.aimr-wrap .aimr-comparison-title {
	font-size: 1.25rem;
	font-weight: 700;
	color: var(--aimr-blue-darker);
	letter-spacing: -0.02em;
	margin: 0 0 0.5rem 0;
}
.aimr-wrap .aimr-comparison-intro {
	font-size: 0.875rem;
	color: #64748b;
	line-height: 1.55;
	max-width: 36rem;
	margin: 0 0 1.5rem 0;
}
.aimr-wrap .aimr-comparison-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
	min-width: 0;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background: #f1f5f9;
	padding: 0.5rem;
}
.aimr-wrap .aimr-comparison-table {
	display: table;
	table-layout: auto;
	width: 100%;
	font-size: 0.8125rem;
	margin: 0;
	border-collapse: separate;
	border-spacing: 1.25rem 0.65rem;
}
.aimr-wrap .aimr-comparison-table thead {
	display: table-header-group;
}
.aimr-wrap .aimr-comparison-table tbody {
	display: table-row-group;
}
.aimr-wrap .aimr-comparison-table tr {
	display: table-row;
}
.aimr-wrap .aimr-comparison-table th,
.aimr-wrap .aimr-comparison-table td {
	display: table-cell;
	box-sizing: border-box;
	border: 1px solid #cbd5e1;
	vertical-align: middle;
}
/* Header: #1C98ED */
.aimr-wrap .aimr-comparison-table thead th {
	background: #1C98ED;
	color: #fff;
	font-weight: 600;
	font-size: 0.8125rem;
	padding: 0.9rem 1.75rem;
	text-align: center;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.aimr-wrap .aimr-comparison-table thead th.aimr-comp-header-capability {
	text-align: left;
	padding-left: 1.5rem;
	width: 16rem;
	min-width: 16rem;
}
.aimr-wrap .aimr-comparison-table thead th.aimr-comp-header-model {
	min-width: max-content;
	padding-left: 10px;
	padding-right: 10px;
	white-space: nowrap;
	overflow: visible;
	text-overflow: clip;
}
/* Capability column: icon + label, light bg */
.aimr-wrap .aimr-comparison-table .aimr-comp-criterion {
	background: #f8fafc;
	font-weight: 600;
	color: #334155;
	padding: 0.75rem 1.5rem;
	width: 16rem;
	min-width: 16rem;
}
.aimr-wrap .aimr-comp-criterion-inner {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
}
.aimr-wrap .aimr-comp-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: #64748b;
}
.aimr-wrap .aimr-comp-icon svg {
	display: block;
}
.aimr-wrap .aimr-comp-label {
	white-space: nowrap;
}
.aimr-wrap .aimr-comparison-table .aimr-comp-pricing-row .aimr-comp-criterion {
	background: #f1f5f9;
	font-weight: 700;
	color: #0f172a;
}
.aimr-wrap .aimr-comparison-table tbody tr:hover .aimr-comp-criterion {
	background: #f1f5f9;
}
.aimr-wrap .aimr-comparison-table tbody tr.aimr-comp-pricing-row:hover .aimr-comp-criterion {
	background: #e2e8f0;
}
/* Data cells: white, centered; model columns = text width + 10px each side */
.aimr-wrap .aimr-comparison-table td.aimr-comp-cell {
	text-align: center;
	padding: 0.75rem 10px;
	background: #fff;
}
/* Pill badges: match recommendation cards palette (Fit/Pricing row) */
.aimr-wrap .aimr-comp-badge {
	display: inline-block;
	padding: 0.35rem 0.65rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.01em;
	white-space: nowrap;
	border: none;
}
.aimr-wrap .aimr-comp-badge.aimr-comp-good {
	background-color: var(--aimr-success);
	color: #fff;
}
.aimr-wrap .aimr-comp-badge.aimr-comp-none {
	background: #e9ecef;
	color: #495057;
}
.aimr-wrap .aimr-comp-pill {
	display: inline-block;
	padding: 0.35rem 0.65rem;
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 600;
	border: none;
	white-space: nowrap;
}
.aimr-wrap .aimr-comp-pill.aimr-comp-cost.aimr-cost-low {
	background: #d1e7dd;
	color: var(--aimr-success);
}
.aimr-wrap .aimr-comp-pill.aimr-comp-cost.aimr-cost-medium {
	background: #fff3cd;
	color: #856404;
}
.aimr-wrap .aimr-comp-pill.aimr-comp-cost.aimr-cost-high {
	background: #f8d7da;
	color: #842029;
}
.aimr-wrap .aimr-comparison-table .aimr-comp-cell .aimr-cost {
	border: none;
}
@media (max-width: 767px) {
	.aimr-wrap .aimr-comparison-block {
		padding: 1.25rem 1rem;
	}
	.aimr-wrap .aimr-comparison-table .aimr-comp-header-model {
		min-width: 6rem;
		font-size: 0.75rem;
		padding: 0.65rem 0.5rem;
	}
	.aimr-wrap .aimr-comparison-table .aimr-comp-header-capability,
	.aimr-wrap .aimr-comparison-table .aimr-comp-criterion {
		width: auto;
		min-width: 0;
		max-width: 10rem;
	}
	.aimr-wrap .aimr-comp-label {
		white-space: normal;
		overflow-wrap: break-word;
	}
}

/* Hide loading message when results are shown (JS adds .aimr-loading-hidden) */
#aimr-recommender #aimr-loading.aimr-loading-hidden,
#aimr-recommender #aimr-loading[hidden] {
	display: none !important;
	visibility: hidden !important;
}

.aimr-wrap .aimr-spinner {
	display: inline-block;
	width: 22px;
	height: 22px;
	border: 2px solid #e9ecef;
	border-top-color: var(--aimr-blue);
	border-radius: 50%;
	animation: aimr-spin 0.65s linear infinite;
}

@keyframes aimr-spin {
	to { transform: rotate(360deg); }
}

/* Left column: stacked category cards; allow shrinking on narrow viewports */
.aimr-wrap .aimr-categories-list {
	display: flex;
	flex-direction: column;
}
.aimr-wrap .aimr-category-card {
	min-width: 0;
	width: 100%;
}

/* <1500px: list height auto so fixed height only applies at 1500+ */
@media (max-width: 1499.98px) {
	#aimr-recommender .aimr-categories-list {
		height: auto !important;
	}
}

/* ≥1500px: category card fixed width 688px, list height 520px (override inline/theme) */
@media (min-width: 1500px) {
	#aimr-recommender .aimr-categories-list,
	#aimr-recommender .aimr-categories-list.mb-4 {
		align-items: flex-start;
		width: 688px !important;
		max-width: 688px !important;
		height: 520px !important;
	}
	#aimr-recommender .aimr-category-col {
		width: 688px !important;
		max-width: 688px !important;
		flex: 0 0 688px;
		box-sizing: border-box;
	}
	#aimr-recommender .aimr-category-col .card.aimr-category-card {
		width: 688px !important;
		max-width: 688px !important;
		flex: 0 0 688px;
		box-sizing: border-box;
	}
}

/* Prevent card body from forcing narrow width on the trigger */
.aimr-wrap .aimr-category-card .card-body.aimr-category-trigger {
	flex-direction: row !important;
	width: 100% !important;
}

/* Responsive: compact category cards on small screens, keep touch targets */
@media (max-width: 576px) {
	.aimr-wrap .aimr-category-trigger {
		font-size: 0.875rem !important;
		min-height: 44px;
	}
	.aimr-wrap .aimr-category-icon {
		width: 36px;
		height: 36px;
	}
	.aimr-wrap .aimr-category-icon svg {
		width: 20px;
		height: 20px;
	}
	.aimr-wrap .aimr-actions .btn {
		min-height: 48px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.aimr-wrap .aimr-category-chevron,
	.aimr-wrap .aimr-score-bar {
		transition: none;
	}
	.aimr-wrap .aimr-spinner {
		animation: none;
	}
}
