/* ==========================================
   CSS CUSTOM PROPERTIES (VARIABLES)
   ========================================== */
:root {
	--ptt-primary: #2b3990;
	--ptt-accent: #04aecd;
	--ptt-white: #fff;
	--ptt-black: #000;
	--ptt-gray: #e9ecef;
	--ptt-overlay: rgba(0, 0, 0, 0.6);
	--ptt-gradient: linear-gradient(135deg, var(--ptt-primary) 0%, var(--ptt-accent) 100%);
	--ptt-gradient-reverse: linear-gradient(135deg, var(--ptt-accent) 0%, var(--ptt-primary) 100%);
	--ptt-radius: 20px;
	--ptt-radius-pill: 50px;
	--ptt-transition: 0.3s ease;
	--ptt-transition-slow: 0.5s ease-out;
}

/* ==========================================
   BASE STYLES
   ========================================== */
.loading-spinner {
	display: none;
	text-align: center;
}

/* ==========================================
   TOGGLE SWITCH STYLES
   ========================================== */
.tool-toggle-wrapper {
	display: flex;
	justify-content: center;
	margin-bottom: 2rem;
}

.tool-toggle {
	display: inline-flex;
	position: relative;
	background: var(--ptt-gray);
	border-radius: var(--ptt-radius-pill);
	padding: 4px;
	border: 2px solid var(--ptt-accent);
}

.toggle-btn {
	position: relative;
	z-index: 2;
	flex: 1 1 50%;
	min-width: 180px;
	padding: 12px 24px;
	border: none;
	background: transparent;
	font-weight: 600;
	font-size: 1rem;
	color: var(--ptt-primary);
	cursor: pointer;
	transition: color var(--ptt-transition);
	font-family: balboa, sans-serif;
	text-transform: uppercase;
	text-align: center;
}

.toggle-btn:hover {
	color: var(--ptt-accent);
}

.toggle-btn.active {
	color: var(--ptt-white);
}

.toggle-slider {
	position: absolute;
	top: 4px;
	left: 4px;
	width: calc(50% - 4px);
	height: calc(100% - 8px);
	background: var(--ptt-gradient);
	border-radius: var(--ptt-radius-pill);
	transition: left var(--ptt-transition);
	z-index: 1;
}

/* 2-button toggle positions */
.toggle-slider.right {
	left: calc(50%);
}

/* 3-button toggle */
.tool-toggle.triple .toggle-slider {
	width: calc(33.333% - 4px);
}

.tool-toggle.triple .toggle-slider.center {
	left: calc(33.333% + 2px);
}

.tool-toggle.triple .toggle-slider.right {
	left: calc(66.666%);
}

/* 4-button toggle */
.tool-toggle.quadruple .toggle-slider {
	width: calc(25% - 4px);
}

.tool-toggle.quadruple .toggle-slider.pos-2 {
	left: calc(25% + 1px);
}

.tool-toggle.quadruple .toggle-slider.pos-3 {
	left: calc(50% + 2px);
}

.tool-toggle.quadruple .toggle-slider.pos-4 {
	left: calc(75% + 1px);
}

/* ==========================================
   TOOL SECTION VISIBILITY
   ========================================== */
.tool-section {
	display: none;
}

.tool-section.active {
	display: block;
}

/* ==========================================
   SHARED TOOL LAYOUT STYLES
   ========================================== */
#partner-transfer-tool,
#partner-transfer-tool-reverse,
#partner-transfer-tool-program {
	display: flex;
	gap: 1rem;
}

#partner-transfer-tool p,
#partner-transfer-tool-reverse p,
#partner-transfer-tool-program p {
	margin: 0;
}

/* Shared panel styles */
.choose-bank,
.choose-airline,
.choose-program-partner,
.airline-results,
.alliance-results,
.bank-results,
.program-results,
.program-bank-results {
	border: 2px solid var(--ptt-accent);
	border-radius: var(--ptt-radius);
	padding: 1rem;
	height: 600px;
	overflow: hidden;
}

.choose-bank .inner,
.choose-airline .inner,
.choose-program-partner .inner {
	overflow-y: auto;
	height: calc(100% - 50px); /* Account for column-heading */
}

.airline-results .inner,
.alliance-results .inner,
.bank-results .inner,
.program-results .inner,
.program-bank-results .inner {
	overflow-y: auto;
	height: 100%;
}

/* Column heading (for first columns) */
.column-heading {
	font-weight: 600;
	padding: 12px 1rem;
	color: var(--ptt-primary);
	text-align: center;
	margin-bottom: 12px;
	font-family: balboa, sans-serif;
	text-transform: uppercase;
	font-size: 1.25rem;
	background: linear-gradient(180deg, rgba(4, 174, 205, 0.1) 0%, rgba(4, 174, 205, 0.2) 100%);
	border-bottom: 2px solid var(--ptt-accent);
	border-radius: 10px 10px 0 0;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.04);
}

/* Results header */
.results-header {
	display: flex;
	justify-content: space-between;
	font-weight: 600;
	padding: 12px 1rem;
	color: var(--ptt-primary);
	text-align: center;
	margin-bottom: 12px;
	font-family: balboa, sans-serif;
	text-transform: uppercase;
	font-size: 1.25rem;
	background-color: var(--ptt-white);
	background-image: linear-gradient(180deg, rgba(4, 174, 205, 0.1) 0%, rgba(4, 174, 205, 0.2) 100%);
	border-bottom: 2px solid var(--ptt-accent);
	border-radius: 10px 10px 0 0;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	/* Sticky positioning */
	position: sticky;
	top: 0;
	z-index: 10;
}

.results-header p {
	width: 33%;
}

/* 2-column header for alliance results */
.alliance-results .results-header p {
	width: 50%;
}

/* ==========================================
   BY BANK TOOL - 2 Column Layout
   ========================================== */
.choose-bank {
	width: 40%;
}

.airline-results {
	width: 60%;
}

/* ==========================================
   BY PARTNER TOOL - 3 Column Layout
   ========================================== */
.choose-airline {
	width: 33.333%;
}

.alliance-results {
	width: 33.333%;
}

.bank-results {
	width: 33.333%;
}

/* ==========================================
   BY PROGRAM TOOL - 3 Column Layout
   ========================================== */
.choose-program-partner {
	width: 33.333%;
}

.program-results {
	width: 33.333%;
}

.program-bank-results {
	width: 33.333%;
}

/* ==========================================
   SELECTABLE ITEM STYLES (Shared)
   ========================================== */

/* Simple card items (bank selector, airline selector, program partner selector) */
.bank-item,
.airline-item-reverse,
.program-partner-item {
	border: 2px solid var(--ptt-accent);
	border-radius: var(--ptt-radius);
	padding: 1rem;
	text-align: center;
	font-weight: 800;
	margin-bottom: 1rem;
	cursor: pointer;
	transition: background var(--ptt-transition-slow), color var(--ptt-transition-slow), filter var(--ptt-transition);
	background: var(--ptt-white);
	color: var(--ptt-primary);
}

.bank-item.selected,
.airline-item-reverse.selected,
.program-partner-item.selected {
	color: var(--ptt-white);
	background: linear-gradient(4deg, var(--ptt-primary) 0%, var(--ptt-accent) 100%);
}

/* Hover states for all selectable items */
.bank-item:not(.selected):hover,
.airline-item-reverse:not(.selected):hover,
.program-partner-item:not(.selected):hover,
.airline-item:not(.selected):hover,
.alliance-airline-item:not(.selected):hover,
.bank-item-alliance:not(.selected):hover,
.same-program-item:not(.selected):hover,
.bank-item-program:not(.selected):hover {
	filter: drop-shadow(0px 0px 3px var(--ptt-accent));
	background: linear-gradient(4deg, rgba(43, 57, 144, 0.18) 0%, rgba(4, 174, 205, 0.18) 100%);
}

.bank-item:last-of-type,
.airline-item-reverse:last-of-type,
.program-partner-item:last-of-type {
	margin-bottom: 0;
}

/* Row-style items (airline results, alliance results, bank results, program results) */
.airline-item,
.alliance-airline-item,
.bank-item-alliance,
.same-program-item,
.bank-item-program {
	color: var(--ptt-black);
	background-color: var(--ptt-white);
	border: 2px solid var(--ptt-accent);
	border-radius: var(--ptt-radius);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding: 1rem;
	margin-bottom: 10px;
	text-align: center;
	justify-content: space-between;
	cursor: pointer;
	transition: all var(--ptt-transition-slow);
}

.airline-item.selected,
.alliance-airline-item.selected,
.bank-item-alliance.selected,
.same-program-item.selected,
.bank-item-program.selected {
	background: linear-gradient(4deg, var(--ptt-accent) 0%, var(--ptt-primary) 100%);
	color: var(--ptt-white);
}

.airline-item:not(.selected):hover,
.alliance-airline-item:not(.selected):hover,
.same-program-item:not(.selected):hover {
	border-color: var(--ptt-primary);
}

/* Partner info layout within items */
.airline-item .partner,
.alliance-airline-item .partner,
.bank-item-alliance .partner,
.same-program-item .partner,
.bank-item-program .partner {
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* Item images */
.airline-item .partner img,
.alliance-airline-item .partner img,
.bank-item-alliance .partner img,
.same-program-item .partner img,
.bank-item-program .partner img {
	max-height: 70px;
	height: auto;
	max-width: 100%;
	width: auto;
	object-fit: contain;
	margin-inline: auto;
}

.airline-item-reverse img,
.program-partner-item img {
	max-height: 50px;
	height: auto;
	max-width: 100%;
	width: auto;
	object-fit: contain;
	margin-bottom: 0.5rem;
}

/* Column widths - 3 column layout */
.airline-item .partner,
.airline-item .transfer,
.airline-item .alliance,
.bank-item-alliance .partner,
.bank-item-alliance .transfer,
.bank-item-alliance .status {
	width: 33%;
}

/* Column widths - 2 column layout */
.alliance-airline-item .partner,
.alliance-airline-item .alliance,
.same-program-item .partner,
.same-program-item .program {
	width: 50%;
}

/* Column widths - 3 column layout (program bank results) */
.bank-item-program .partner,
.bank-item-program .transfer,
.bank-item-program .status {
	width: 33%;
}

/* Transfer rate column divider */
.airline-item .transfer,
.bank-item-alliance .transfer,
.bank-item-program .transfer {
	border-left: 1px solid var(--ptt-accent);
	border-right: 1px solid var(--ptt-accent);
}

.airline-item-reverse,
.program-partner-item {
	display: flex;
	flex-direction: column;
	align-items: center;
}

/* ==========================================
   CALCULATE NOW BUTTON (Last column items)
   ========================================== */
.calculate-cta {
	width: 100%;
	text-align: center;
	margin-top: 0.75rem;
	padding-top: 0.75rem;
	border-top: 1px solid rgba(4, 174, 205, 0.3);
}

.calculate-btn {
	display: inline-block;
	background: var(--ptt-gradient);
	color: var(--ptt-white);
	padding: 0.5rem 1.5rem;
	border-radius: var(--ptt-radius-pill);
	font-size: 0.85rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.5px;
	transition: transform var(--ptt-transition), box-shadow var(--ptt-transition);
}

.airline-item:hover .calculate-btn,
.bank-item-alliance:hover .calculate-btn,
.bank-item-program:hover .calculate-btn {
	transform: translateY(-2px);
	box-shadow: 0 4px 12px rgba(4, 174, 205, 0.4);
}

/* Selected state - invert button colors */
.airline-item.selected .calculate-cta,
.bank-item-alliance.selected .calculate-cta,
.bank-item-program.selected .calculate-cta {
	border-top-color: rgba(255, 255, 255, 0.3);
}

.airline-item.selected .calculate-btn,
.bank-item-alliance.selected .calculate-btn,
.bank-item-program.selected .calculate-btn {
	background: var(--ptt-white);
	color: var(--ptt-primary);
}

/* ==========================================
   TOOL HEADING (Selection Summary Bar)
   ========================================== */
.tool-heading {
	padding: 2rem;
	margin-bottom: 2rem;
	background-color: var(--ptt-primary);
	border-radius: var(--ptt-radius);
}

.tool-heading * {
	color: var(--ptt-white);
}

.tool-heading h2 {
	margin: 0;
	text-align: center;
}

.selection {
	margin: 0;
	line-height: 1rem;
	font-weight: 100;
	font-size: 15px;
	text-wrap: balance;
}

.selection.bank {
	height: 35px;
}

.tool-heading .divider {
	outline: 1px solid var(--ptt-accent);
}

/* ==========================================
   MODAL STYLES
   ========================================== */
.ptt-modal-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--ptt-overlay);
	align-items: center;
	justify-content: center;
	z-index: 9999;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--ptt-transition), visibility var(--ptt-transition);
	display: none;
}

.ptt-modal-overlay.active {
	opacity: 1;
	visibility: visible;
	display: flex;
}

.ptt-modal {
	background: var(--ptt-white);
	border-radius: var(--ptt-radius);
	width: 90%;
	max-width: 600px;
	max-height: 90vh;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transform: scale(0.9) translateY(20px);
	transition: transform var(--ptt-transition);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
}

.ptt-modal-overlay.active .ptt-modal {
	transform: scale(1) translateY(0);
}

.ptt-modal-close {
	position: absolute;
	top: 0.25rem;
	right: 0rem;
	background: none;
	border: none;
	font-size: 3rem;
	color: var(--ptt-white);
	cursor: pointer;
	line-height: 1;
	padding: 0;
	width: 40px;
	height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background var(--ptt-transition);
	z-index: 5;
}

.ptt-modal-close:hover {
	background: rgba(255, 255, 255, 0.2);
}

.ptt-modal-header {
	background: var(--ptt-gradient);
	padding: 2rem;
	text-align: center;
	position: relative;
}

.ptt-modal-title {
	color: var(--ptt-white);
	margin: 0;
	font-size: 1.5rem;
	padding-right: 2rem;
}

.ptt-modal-subtitle {
	color: var(--ptt-white);
	margin: 0.5rem 0 0;
	opacity: 0.9;
}

.ptt-modal-body {
	padding: 2rem;
	overflow-y: auto;
	flex: 1;
}

.ptt-modal-points {
	margin-bottom: 1.5rem;
	text-align: center;
}

.ptt-modal-points label {
	display: block;
	font-weight: 600;
	color: var(--ptt-primary);
	margin-bottom: 0.5rem;
	font-size: 1.1rem;
}

.ptt-modal-points input {
	width: 100%;
	max-width: 250px;
	padding: 0.75rem 1rem;
	border: 2px solid var(--ptt-accent);
	border-radius: var(--ptt-radius);
	font-size: 1.25rem;
	text-align: center;
}

.ptt-modal-points input:focus {
	outline: none;
	border-color: var(--ptt-primary);
	box-shadow: 0 0 0 3px rgba(4, 174, 205, 0.2);
}

.ptt-modal-results {
	border: 2px solid var(--ptt-gray);
	border-radius: var(--ptt-radius);
	padding: 1rem;
	max-height: 300px;
	overflow-y: auto;
}

/* Selected airline highlight in modal */
.ptt-modal-results .selected-airline-result {
	background: var(--ptt-gradient);
	border-radius: var(--ptt-radius);
	padding: 1.5rem;
	text-align: center;
	margin-bottom: 1.5rem;
	color: var(--ptt-white);
}

.ptt-modal-results .selected-airline-label {
	font-size: 0.8rem;
	text-transform: uppercase;
	letter-spacing: 1px;
	opacity: 0.8;
	margin-bottom: 0.25rem;
}

.ptt-modal-results .selected-airline-name {
	font-size: 1.4rem;
	font-weight: 700;
	margin-bottom: 0.75rem;
}

/* Partner display in modal - ensure loyalty is on its own line */
.ptt-modal-results .selected-airline-name .partner-display {
	display: flex;
	flex-direction: column;
	align-items: center;
}

.ptt-modal-results .selected-airline-name .partner-display .partner-primary {
	font-size: 1.2rem;
}

.ptt-modal-results .selected-airline-name .partner-display .partner-loyalty {
	font-size: 0.9rem;
	margin-top: 0.25rem;
	opacity: 0.9;
}

.ptt-modal-results .selected-airline-points {
	font-size: 1.1rem;
}

.ptt-modal-results .selected-airline-points .selected-amount {
	font-size: 1.5rem;
	font-weight: 700;
	margin: 0 0.25rem;
}

/* Alliance comparison section */
.ptt-modal-results .alliance-comparison {
	border: 2px solid var(--ptt-gray);
	border-radius: var(--ptt-radius);
	overflow: hidden;
}

.ptt-modal-results .comparison-label {
	background: var(--ptt-gray);
	padding: 0.75rem 1rem;
	font-weight: 600;
	color: var(--ptt-primary);
	font-size: 0.9rem;
}

.ptt-modal-results .comparison-list {
	max-height: 200px;
	overflow-y: auto;
	padding: 0.5rem 1rem;
}

/* Alliance posts in comparison list */
.ptt-modal-results .same-alliance-posts {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--ptt-gray);
}

.ptt-modal-results .same-alliance-posts:last-child {
	border-bottom: none;
}

.ptt-modal-results .same-alliance-posts .airline-name {
	font-weight: 600;
	flex: 1;
	min-width: 0;
}

.ptt-modal-results .same-alliance-posts .airline-loyalty {
	width: 100%;
	order: 3;
	font-size: 0.8rem;
	color: var(--ptt-accent);
	font-style: italic;
	margin-top: 0.15rem;
}

.ptt-modal-results .same-alliance-posts .transfer-amount {
	font-weight: 600;
	color: var(--ptt-accent);
	min-width: 80px;
	text-align: right;
}

.ptt-modal-results .no-others {
	padding: 1rem;
	text-align: center;
	color: #666;
	font-style: italic;
}

/* Transfer calculation in modal */
.ptt-modal-results .transfer-rate-display {
	text-align: center;
}

.ptt-modal-results .transfer-rate-display > div {
	margin-bottom: 0.75rem;
}

.ptt-modal-results .transfer-rate-display p {
	margin: 0;
	font-size: 1.1rem;
}

/* Modal transfer-to section - name and loyalty on separate lines */
.ptt-modal-results .modal-transfer-to {
	margin-bottom: 1rem;
	text-align: center;
}

.ptt-modal-results .modal-transfer-to p {
	margin: 0;
}

.ptt-modal-results .modal-partner-name {
	margin-top: 0.25rem;
}

.ptt-modal-results .modal-partner-name strong {
	font-size: 1.2rem;
	color: var(--ptt-primary);
}

.ptt-modal-results .modal-partner-loyalty {
	font-size: 0.9rem;
	margin-top: 0.25rem;
	color: var(--ptt-accent);
	font-style: italic;
}

.ptt-modal-results .transfer-rate-display strong {
	color: var(--ptt-accent);
}

.ptt-modal-footer {
	padding: 1.5rem 2rem;
	background: var(--ptt-gray);
	text-align: center;
}

.ptt-transfer-btn {
	display: inline-block;
	background: var(--ptt-primary);
	color: var(--ptt-white);
	padding: 1rem 3rem;
	border-radius: var(--ptt-radius-pill);
	font-weight: 600;
	font-size: 1.1rem;
	text-decoration: none;
	transition: background var(--ptt-transition), transform var(--ptt-transition);
}

#page .ptt-transfer-btn:hover {
	background: var(--ptt-accent);
	color: var(--ptt-white);
	text-decoration: none;
	transform: translateY(-2px);
}

/* ==========================================
   SHOW ALL TABLE STYLES
   ========================================== */
.show-all-table-wrapper {
	border: 2px solid var(--ptt-accent);
	border-radius: var(--ptt-radius);
	padding: 1rem;
	background: var(--ptt-white);
}

.show-all-table-wrapper .loading-spinner {
	text-align: center;
	padding: 2rem;
}

.show-all-table-container {
	overflow: auto;
	max-height: 70vh;
	position: relative;
}

.show-all-table {
	width: 100%;
	border-collapse: collapse;
	table-layout: fixed;
}

.show-all-table th,
.show-all-table td {
	padding: 1.2rem;
	text-align: center;
	border: 1px solid var(--ptt-gray);
	vertical-align: middle;
	font-size: 1rem;
}

.show-all-table tr {

}

/* Partner column - slightly wider than bank columns */
.show-all-table th:first-child,
.show-all-table td:first-child {
	width: 140px;
}

/* Bank columns - equal width */
.show-all-table th:not(:first-child),
.show-all-table td:not(:first-child) {
	width: 110px;
	min-width: 110px;
}

.show-all-table thead th {
	background: var(--ptt-gradient);
	color: var(--ptt-white);
	font-family: balboa, sans-serif;
	text-transform: uppercase;
	font-size: 1rem;
	font-weight: 500;
	position: sticky;
	top: 0;
	z-index: 20;
	padding: 0.75rem 0.5rem;
}

/* Corner cell (Partner header) - highest z-index, sticky both ways */
.show-all-table thead th:first-child {
	position: sticky;
	left: 0;
	top: 0;
	z-index: 30;
	box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.1);
}

/* First column cells - sticky left, content slides under */
.show-all-table tbody td:first-child {
	background: var(--ptt-white);
	position: sticky;
	left: 0;
	z-index: 10;
	font-weight: 600;
	box-shadow: 2px 0 4px rgba(0, 0, 0, 0.1);
}

/* Partner cell - stacked layout */
.show-all-table .partner-cell {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 0.5rem;
	text-align: center;
}

.show-all-table .partner-cell img {
	max-width: 100%;
	max-height: 100px;
	height: auto;
	object-fit: contain;
}

.show-all-table .partner-cell span {
	font-size: 1rem;
	line-height: 1.2;
}

.show-all-table tbody tr:nth-child(even) {
	background-color: rgba(233, 236, 239, 0.5);
}

/* Solid background for sticky first column on even rows */
.show-all-table tbody tr:nth-child(even) td:first-child {
	background-color: #f4f5f7;
}

.show-all-table tbody tr:hover {
	background-color: rgba(4, 174, 205, 0.1);
}

/* Solid background for sticky first column on hover */
.show-all-table tbody tr:hover td:first-child {
	background-color: #e8f7fa;
}

.show-all-table .rate-cell {
	font-size: 0.9rem;
}

.show-all-table .rate-cell .no-transfer {
	color: #999;
	font-style: italic;
}

/* ==========================================
   RESPONSIVE ADJUSTMENTS
   ========================================== */
@media (max-width: 991px) {
	#partner-transfer-tool,
	#partner-transfer-tool-reverse,
	#partner-transfer-tool-program {
		flex-direction: column;
	}

	.choose-bank,
	.choose-airline,
	.choose-program-partner,
	.airline-results,
	.alliance-results,
	.bank-results,
	.program-results,
	.program-bank-results {
		width: 100% !important;
		height: auto;
		max-height: 400px;
		overflow-y: scroll;
	}

	.tool-heading .row {
		flex-direction: column;
		gap: 1rem;
	}

	.tool-heading .divider {
		display: none;
	}

	.tool-heading [class*="col-"] {
		width: 100%;
		max-width: 100%;
	}
}

@media (max-width: 800px) {
	/* Toggle buttons - 4 buttons need smaller sizing */
	.toggle-btn {
		min-width: 80px;
		padding: 8px 10px;
		font-size: 0.8rem;
	}

	/* Tool heading */
	.tool-heading {
		padding: 1rem;
		margin-bottom: 1rem;
	}

	.tool-heading h2.h3 {
		font-size: 1.1rem;
	}

	.tool-heading h2.h6 {
		font-size: 0.9rem;
	}

	/* Column panels */
	.choose-bank,
	.choose-airline,
	.choose-program-partner,
	.airline-results,
	.alliance-results,
	.bank-results,
	.program-results,
	.program-bank-results {
		padding: 0.5rem;
	}

	.column-heading {
		padding: 8px 0.5rem;
		font-size: 1rem;
	}

	.results-header {
		padding: 8px 0.5rem;
		font-size: 1rem;
	}

	/* Selectable items */
	.bank-item,
	.airline-item-reverse,
	.program-partner-item {
		padding: 0.75rem;
		margin-bottom: 0.5rem;
	}

	.airline-item,
	.alliance-airline-item,
	.bank-item-alliance,
	.same-program-item,
	.bank-item-program {
		padding: 0.5rem;
		margin-bottom: 0.5rem;
	}

	.airline-item .partner img,
	.alliance-airline-item .partner img,
	.bank-item-alliance .partner img,
	.same-program-item .partner img,
	.bank-item-program .partner img {
		max-height: 50px;
	}

	.airline-item-reverse img,
	.program-partner-item img {
		max-height: 40px;
	}

	/* Calculate button */
	.calculate-cta {
		margin-top: 0.5rem;
		padding-top: 0.5rem;
	}

	.calculate-btn {
		padding: 0.4rem 1rem;
		font-size: 0.75rem;
	}

	/* Show All table */
	.show-all-table-wrapper {
		padding: 0.5rem;
	}

	.show-all-table th,
	.show-all-table td {
		padding: 0.35rem;
		font-size: 0.85rem;
	}

	.show-all-table thead th {
		padding: 0.5rem 0.35rem;
		font-size: 0.85rem;
	}

	.show-all-table th:first-child,
	.show-all-table td:first-child {
		width: 100px;
	}

	.show-all-table th:not(:first-child),
	.show-all-table td:not(:first-child) {
		width: 90px;
		min-width: 90px;
	}

	.show-all-table .partner-cell {
		gap: 0.25rem;
	}

	.show-all-table .partner-cell img {
		max-height: 60px;
	}

	.show-all-table .partner-cell span {
		font-size: 0.8rem;
	}

	.show-all-table .rate-cell {
		font-size: 0.8rem;
	}

	/* Modal */
	.ptt-modal-header {
		padding: 1.25rem;
	}

	.ptt-modal-body {
		padding: 1rem;
	}

	.ptt-modal-results {
		padding: 0.75rem;
	}

	.ptt-modal-footer {
		padding: 1rem;
	}

	.ptt-transfer-btn {
		padding: 0.75rem 2rem;
		font-size: 1rem;
	}
}

@media (max-width: 576px) {
	.toggle-btn {
		min-width: 60px;
		padding: 6px 6px;
		font-size: 0.65rem;
	}

	.ptt-modal {
		width: 95%;
		max-height: 95vh;
	}

	.ptt-modal-header,
	.ptt-modal-body,
	.ptt-modal-footer {
		padding: 0.75rem;
	}
}

/* ==========================================
   PARTNER DISPLAY STYLES
   ========================================== */
.partner-display {
	display: flex;
	flex-direction: column;
	line-height: 1.3;
}

.partner-display .partner-primary {
	font-weight: 600;
}

.partner-display .partner-secondary {
	font-size: 0.8em;
	opacity: 0.85;
}

.partner-display .partner-loyalty {
	font-size: 0.75em;
	opacity: 0.75;
	font-style: italic;
}

/* Partner display in selection header */
.selection .partner-display {
	display: inline-flex;
	align-items: center;
	text-align: center;
}

.selection .partner-display .partner-primary {
	font-weight: 600;
}

.selection .partner-display .partner-loyalty {
	font-size: 0.85em;
	opacity: 0.9;
	margin-top: 0.25rem;
}
