	/* --- BASE --- */

		:root {
			--bg-color: #0b1120;
			--text-color: #333;
			--primary: #007bff; 
			--accent: #86b817;
			--tertiary: #e67e22;
			--card-bg: #ffffff;
			--border: #e0e0e0;
			--app-version: "1.4.0";
		}

		body {
			font-family: Arial, Helvetica, sans-serif;
			margin: 0;
			padding: 40px 20px 40px 20px;
			display: flex;
			flex-direction: column;
			align-items: center;
			min-height: 100vh;
			box-sizing: border-box;
			background-color: #0b1120;
		}

		h2 {
			font-size: 25px;
			font-weight: bold;
			color: #444;
			margin: 0;
			padding: 0;
		}

		.container {
			width: 100%;
			max-width: 1000px;
			display: flex;
			flex-direction: column;
			align-items: center;
			gap: 30px;
			position: relative;
			margin-top: 70px;
			padding-top: 30px;
		}

		.show-version::after {
			content: var(--app-version);
		}

		.app-title-overlay {
			position: absolute;
			top: -92px;
			left: 0;
			z-index: 100;
		}

		.app-title-overlay a {
			display: flex;
			align-items: center;
			min-height: 92px;
			background: var(--bg-color);
			border-radius: 12px;
			color: #f8fafc;
			text-decoration: none;
			overflow: hidden;
			transition: opacity 0.2s ease;
		}

		.app-title-overlay a:hover {
			opacity: 0.9;
		}

		.logo-overlay,
		.about-logo {
			width: 92px;
			height: 92px;
			display: block;
			flex: 0 0 92px;
		}

		.app-title-copy {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			padding: 0 20px 0 4px;
			font-family: Verdana, Arial, sans-serif;
			line-height: 1.1;
		}

		.app-title-heading {
			display: grid;
			grid-template-columns: max-content max-content;
			align-items: baseline;
			column-gap: 8px;
		}

		.app-title-name {
			font-size: 50px;
			letter-spacing: -1px;
		}

		.app-title-name strong {
			color: #ffffff;
			font-weight: 700;
		}

		.app-title-name span {
			color: #e2e8f0;
			font-weight: 400;
		}

		.app-title-version {
			color: #cbd5e1;
			font-size: 12px;
			font-weight: 400;
		}

		.app-title-tagline {
			grid-column: 1;
			justify-self: end;
			margin-top: 4px;
			color: #cbd5e1;
			font-size: 18px;
			font-weight: 350;
		}

		.app-title-footer {
			position: static;
			top: auto;
			left: auto;
			z-index: auto;
			display: flex;
			justify-content: center;
			width: 100%;
			margin: 40px 0 0;
			opacity: 0.15;
			filter: grayscale(1);
		}

		.app-title-footer a {
			min-height: 46px;
			border-radius: 6px;
		}

		.app-title-footer .logo-overlay {
			width: 46px;
			height: 46px;
			flex-basis: 46px;
		}

		.app-title-footer .app-title-copy {
			padding: 0 10px 0 2px;
		}

		.app-title-footer .app-title-heading {
			column-gap: 4px;
		}

		.app-title-footer .app-title-name {
			font-size: 25px;
			letter-spacing: -0.5px;
		}

		.app-title-footer .app-title-version {
			font-size: 6px;
		}

		.app-title-footer .app-title-tagline {
			margin-top: 2px;
			font-size: 9px;
		}

		@media (max-width: 600px) {
			.container {
				padding-top: 12px;
			}

			.app-title-overlay {
				top: -92px;
			}

			.app-title-copy {
				padding-right: 16px;
			}

			.app-title-name {
				font-size: 50px;
			}

			.app-title-overlay:not(.app-title-footer) {
				grid-column: 1;
				justify-self: end;
				font-size: 10px;
			}

			.app-title-tagline {
				grid-column: 1;
				justify-self: end;
				margin-top: 4px;
				color: #cbd5e1;
				font-size: 18px;
				font-weight: 350;
			}
		}

		#toast {
			visibility: hidden;
			width: 100%;
			background-color: #000;
			color: #fff;
			text-align: center;
			border-radius: 0;
			padding: 16px;
			position: fixed;
			z-index: 10000;
			top: -100%; 
			left: 0;
			opacity: 0;
			font-size: 15px;
			box-shadow: 0 4px 15px rgba(0,0,0,0.5);
			cursor: pointer;
			box-sizing: border-box;
			transition: top 0.4s ease, opacity 0.4s ease, visibility 0.4s ease;
		}

		#toast.show {
			visibility: visible;
			opacity: 1;
			top: 0px;
		}

		.about-modal-overlay {
			position: fixed;
			top: 0;
			left: 0;
			width: 100%;
			height: 100%;
			background: rgba(0, 0, 0, 0.8);
			display: none;
			justify-content: center;
			align-items: center;
			z-index: 6000;
		}

		.about-modal {
			background: #fff;
			width: 100%;
			max-width: 500px;
			border-radius: 12px;
			box-shadow: 0 8px 30px rgba(0,0,0,0.15);
			padding: 24px;
			color: #333;
			box-sizing: border-box;
			animation: fadeInModal 0.2s ease-out;
			position: relative;
		}

		.about-modal::before {
			content: "";
			position: absolute;
			top: -50px;
			left: 0;
			width: 100%;
			height: 100%;
			background-image: url('../img/logo-base.svg');
			background-repeat: no-repeat;
			background-position: center;
			background-size: 180px;
			opacity: 0.08;
			pointer-events: none;
			z-index: 0;
		}

		.about-modal > * {
			position: relative;
			z-index: 1;
		}

		.about-modal .section {
			display: none !important;
		}

		.about-modal > div[style*="margin-top: 15px"] {
			display: none !important;
		}

		.about-copyright {
			color: #808080;
			width: 100%;
			text-align: left;
			margin-top: 3px;
			font-size: 10px;
		}

		#aboutCloseX:hover {
			color: #333 !important;
		}

		@keyframes fadeInModal {
			from {
				opacity: 0;
				transform: translateY(-10px);
			} to {
				opacity: 1;
			transform: translateY(0);
			}
		}

		.card {
			background: white;
			padding: 2.5rem;
			border-radius: 12px;
			box-shadow: 0 4px 15px rgba(0,0,0,0.1);
			position: relative;
			width: 100%;
			box-sizing: border-box;
			display: flex;
			flex-direction: column;
			align-items: center;
			cursor: grab;
		}

		.card::after {
			content: "drag-n-drop to reorder tools";
			position: absolute;
			bottom: -22px;
			right: 5px;
			font-size: 10px;
			color: #303541;
			pointer-events: none;
		}

		.card-reorder-controls {
			position: absolute;
			top: 50%;
			right: 16px;
			z-index: 1;
			display: flex;
			flex-direction: row;
			gap: 2px;
			transform: translateY(-50%);
		}

		.card-reorder-controls button {
			display: flex;
			align-items: center;
			justify-content: center;
			box-sizing: border-box;
			width: 25px;
			height: 25px;
			padding: 0;
			border: 1px solid #fff;
			border-radius: 6px;
			background: #fff;
			color: #666;
			font-family: Arial, sans-serif;
			font-size: 18px;
			line-height: 1;
			cursor: pointer;
			opacity: 0.4;
			appearance: none;
			-webkit-appearance: none;
		}

		.card:active {
			cursor: grabbing;
		}

		.card.dragging {
			opacity: 0.5;
			transform: scale(0.98);
			box-shadow: 0 8px 25px rgba(0,0,0,0.15);
		}

		.card-header-row {
			width: 100%;
			display: flex;
			align-items: center;
			justify-content: center;
			position: relative;
			margin-bottom: 20px;
		}

		.card-toggle-btn {
			position: absolute;
			right: -18px;
			background: none;
			border: none;
			font-family: Courier, monospace;
			font-size: 1.6rem;
			font-weight: bold;
			color: #888;
			cursor: pointer;
			width: 32px;
			height: 32px;
			display: flex;
			align-items: center;
			justify-content: center;
			border-radius: 5px;
			user-select: none;
			transition: background 0.2s, color 0.2s;
			padding: 0;
		}

		.card-toggle-btn:hover {
			background: #f0f2f5;
			color: #333;
		}

		.tool-grid {
			width: 100%;
		}

		.card.collapsed {
			padding-bottom: 2.5rem;
		}
	
		.card.collapsed .card-header-row {
			margin-bottom: 0;
		}

		.card.collapsed .card-header-row h2 {
			border-bottom: none !important;
			padding-bottom: 0 !important;
		}
	
		.card.collapsed .tool-grid {
			display: none !important;
		}
	
		.logo {
			width: 100%;
			text-align: center;
			margin-top: 10px;
			margin-bottom: 10px;
			opacity: 0.15;
		}
	
		.copyright {
			color: #303541;
			width: 100%;
			text-align: center;
			margin-top: 20px;
			line-height: 15px;
			font-size: 8px;
		}

	/* --- PROMPT --- */

		.prompt-select-container {
		    width: 100%;
		    max-width: 100%;
		    margin: 10px 0;
		}

		.prompt-select {
		    width: 100%;
		    padding: 15px 20px;
		    font-size: 16px;
		    font-weight: bold;
		    border: 2px solid var(--border);
		    border-radius: 8px;
		    background-color: #fafafa;
		    color: #444;
		    cursor: pointer;
		    outline: none;
		    transition: border-color 0.2s ease, box-shadow 0.2s ease;
		    -webkit-appearance: auto;
		    -moz-appearance: auto;
		    appearance: auto;
		}

		.prompt-select:focus {
		    border-color: var(--primary);
		    background-color: #ffffff;
		    box-shadow: 0 0 8px rgba(0, 100, 210, 0.15);
		}

		.prompt-btn {
			background-color: #0066ff;
			color: #ffffff;
			border: none;
			width: 100%;
			box-sizing: border-box;
			padding: 20px 30px;
			margin-bottom: 12px;
			font-size: 18px;
			font-weight: 600;
			border-radius: 8px;
			cursor: pointer;
			transition: background-color 0.2s ease, transform 0.1s ease;
			box-shadow: 0 4px 6px rgba(0, 102, 255, 0.2);
		}

		.prompt-btn:hover {
			background-color: #0052cc;
		}

		.prompt-btn:active {
			transform: translateY(2px);
		}

		.step-container {
			display: flex;
			flex-direction: column;
			gap: 20px;
			width: 100%;
			margin-top: 5px;
			margin-bottom: 10px;
		}

		.sourcing-advice-toggle {
			display: block;
			margin: 15px auto 0;
			padding: 0;
			border: 0;
			background: none;
			color: var(--primary);
			font-size: 14px;
			font-weight: bold;
			text-decoration: underline;
			cursor: pointer;
		}

		.step-row {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			gap: 5px;
			margin-bottom: 15px;
		}

		.step-row-three {
			margin-top: -40px;
		}

		@media (max-width: 600px) {
			.step-row-three {
				margin-top: 0px;
			}
		}
		
		.step-header-group {
			display: flex;
			flex-direction: column;
			align-items: flex-start;
			margin-bottom: 5px;
		}

		.step-header {
			display: flex;
			align-items: center;
			gap: 12px;
		}

		.step-title {
			font-size: 18px;
			font-weight: bold;
			color: #000000;
		}

		.step-number {
			width: 32px;
			height: 32px;
			min-width: 32px;
			border-radius: 50%;
			background-color: #f7f7f7;
			color: #0968f6;
			display: flex;
			align-items: center;
			justify-content: center;
			font-weight: bold;
			font-size: 14px;
		}

		.step-content {
			width: 100%;
		}

		.step-helper-text {
			font-size: 12px;
			line-height: 18px;
			color: #777;
			text-align: left;
			margin-top: 4px;
			margin-left: 44px;
			font-style: italic;
		}

		.csv-textarea {
			width: 100%;
			height: 120px;
			padding: 15px;
			border: 2px solid var(--border);
			border-radius: 8px;
			font-family: Courier, monospace;
			font-size: 13px;
			resize: vertical;
			box-sizing: border-box;
			background-color: #fafafa;
			margin-bottom: 10px;
			color: #333;
		}

		.csv-textarea:focus {
			border-color: var(--primary);
			outline: none;
			background-color: #ffffff;
			box-shadow: 0 0 8px rgba(0, 100, 210, 0.15);
		}

		.csv-controls {
			display: flex;
			justify-content: space-between;
			align-items: flex-start;
			width: 100%;
		}

		.csv-controls-right {
			display: flex;
			flex-direction: column;
			align-items: flex-end;
			gap: 11px;
		}

		.csv-buttons-group {
			display: flex;
			gap: 15px;
		}

		@media (max-width: 601px) {
			/* Safari can keep :hover applied after a touch; use :active for tap feedback instead. */
			.card-toggle-btn:hover {
				background: none;
				color: #888;
			}
			.card-toggle-btn:active {
				background: #f0f2f5;
				color: #333;
			}
			.card::after {
				display: block;
				content: "use arrows to reorder tools";
			}
			.card {
				cursor: default;
			}
			.card-reorder-controls button:active {
				opacity: 0.7;
			}
			#listing .step-content button {
				width: 100% !important;
			}
			#listing .csv-buttons-group {
				width: 100%;
				flex-direction: column;
			}
			#listing .step-content div[style*="width: 75%"] {
				width: 100% !important;
			}
			.csv-controls {
				flex-direction: column;
				align-items: stretch;
				gap: 20px;
			}
			.csv-controls-left, .csv-controls-right {
				width: 100%;
				align-items: stretch;
			}
			.csv-controls-left {
				align-items: center !important;
			}	
			.bulk-checkbox {
				justify-content: center;
				margin-top: 5px;
			}
		}

	/* --- SEARCH --- */

		.search-container {
			width: 100%;
			display: flex;
			justify-content: center;
			padding: 10px 0;
		}
	
		.ebay-search-input {
			width: 100%;
			max-width: 100%;
			font-size: 15px;
			padding: 14px 20px;
			border: 2px solid var(--border);
			border-radius: 8px;
			box-sizing: border-box;
			transition: border-color 0.2s ease, box-shadow 0.2s ease;
			background-color: #fafafa;
		}
	
		.ebay-search-input:focus {
			outline: none;
			border-color: var(--primary);
			background-color: #ffffff;
			box-shadow: 0 0 8px rgba(0, 100, 210, 0.15);
		}

		.ebay-search-helper-text {
			font-size: 12px;
			line-height: 18px;
			color: #777;
			text-align: left;
			margin-top: 4px;
			font-style: italic;
		}

	/* --- CALCULATOR --- */

		.calc-divider {
			border: 0;
			border-top: 1px solid var(--border);
			margin: 30px 0;
			width: 100%;
		}

		.calc-top-row {
			display: flex;
			flex-wrap: wrap;
			gap: 15px;
			margin-bottom: 20px;
			width: 100%;
			justify-content: space-between;
		}

		.tool-box {
			background: #fff;
			padding: 1.5rem;
			border-radius: 12px;
			border: 1px solid var(--border);
			text-align: center;
			flex: 1 1 0;
			min-width: 210px;
			box-sizing: border-box;
		}

		.tool-box h3 {
			border-bottom: 2px solid #eee;
			padding-bottom: 10px;
			margin-top: 0;
			margin-bottom: 15px;
			color: var(--text-color);
		}

		.label {
			display: block;
			font-size: 0.75rem;
			color: #888;
			text-transform: uppercase;
			margin: 15px 0 5px 0;
		}

		.row-layout {
			display: flex;
			gap: 5px;
			align-items: center;
			justify-content: center;
		}

		.row-layout input {
			flex: 2;
			min-width: 0;
			padding: 10px;
			border: 2px solid var(--border);
			border-radius: 6px;
			font-size: 1.1rem;
			outline: none;
			text-align: center;
		}

		.row-layout select {
			flex: 1;
			min-width: 70px;
			padding: 10px;
			border: 2px solid var(--border);
			border-radius: 6px;
			font-size: 1.1rem;
			cursor: pointer;
			outline: none;
		}

		.row-layout input:focus, .row-layout select:focus {
			border-color: var(--primary);
		}
	
		.green-output {
			background-color: #f0fff4;
			border: 2px solid #28a745;
			border-radius: 6px;
			color: #28a745;
			font-weight: bold;
			cursor: pointer;
			margin-top: 10px;
			padding: 10px;
			font-size: 1.5rem;
			width: 100%;
			box-sizing: border-box;
			text-align: center;
			outline: none;
		}

		.sourcing-calc-wrapper {
			width: 100%;
			box-sizing: border-box;
			margin-bottom: 20px;
		}

		.calc-grid {
			display: grid;
			gap: 15px;
			align-items: end;
		}

		.grid-3 { grid-template-columns: 1fr 1fr 1fr; }
		.grid-4 { grid-template-columns: 1fr 1fr; }

		@media (max-width: 600px) {
			.grid-3, .grid-4 { grid-template-columns: 1fr; }
			.calc-buttons button { width: 100%; }
		}

		.median-circle-wrapper {
			display: flex;
			align-items: center;
			justify-content: center;
			padding: 10px 0;
		}

		.median-circle {
			width: 80px;
			height: 80px;
			border-radius: 50%;
			background: #f8f9fa;
			border: 2px solid #ccc;
			display: flex;
			flex-direction: column;
			align-items: center;
			justify-content: center;
			box-shadow: 0 4px 6px rgba(0,0,0,0.1);
		}

		.median-circle .lbl {
			font-size: 10px;
			text-transform: uppercase;
			color: #888;
			font-weight: bold;
		}

		.median-circle .val {
			font-size: 14px;
			font-weight: bold;
			color: #333;
		}

		.input-group {
			display: flex;
			flex-direction: column;
		}

		.input-group label {
			font-weight: bold;
			margin-bottom: 5px;
			font-size: 0.9em;
			color: var(--text-color);
		}

		.input-group input {
			width: 100%;
			box-sizing: border-box;
			padding: 10px;
			font-size: 15px;
			border: 1px solid #ccc;
			border-radius: 4px;
			outline: none;
		}

		.input-group input:focus {
			border-color: var(--primary);
		}

		.full-width {
			grid-column: 1 / -1;
		}

		.calc-buttons {
			display: flex; 
			justify-content: center;
			width: 100%;
			margin-top: 10px;
		}

		.calc-buttons button {
			color: white;
			border: none;
			padding: 12px;
			font-size: 1.1em;
			border-radius: 4px;
			cursor: pointer;
			font-weight: bold;
			transition: opacity 0.2s;
			width: 75%;
		}

		.calc-buttons button:hover {
			opacity: 0.9;
		}

		.btn-primary, .btn-secondary, .btn-tertiary, .btn-clear, .btn-save, .btn-export {
			color: white;
			border: none;
			border-radius: 4px;
			cursor: pointer;
			font-weight: bold;
			transition: all 0.2s;
		}

		.btn-primary:hover, .btn-secondary:hover, .btn-tertiary:hover {
			opacity: 0.9;
		}

		.btn-primary { background-color: var(--primary); padding: 12px 20px; font-size: 16px; }
		.btn-secondary { background-color: var(--accent); padding: 12px 20px; font-size: 16px; }
		.btn-tertiary { background-color: var(--tertiary); padding: 12px 20px; font-size: 16px; }
		.btn-clear { background-color: #e9ecef; color: #333; padding: 12px 20px; font-size: 16px; }
		.btn-clear:hover { background-color: #dbdbdb; }
		.btn-save { background-color: #007bff; padding: 12px 20px; font-size: 16px; }
		.btn-save:hover { background-color: #0069d9; }
		.btn-export { background-color: #28a745; padding: 12px 20px; font-size: 16px; width: 75%; }
		.btn-export:hover { background-color: #218838; }

		.result-box {
			background-color: #eaf1fa;
			padding: 15px;
			border-radius: 4px;
			text-align: center;
			border: 1px solid #c2dcf6;
			display: none;
			margin-top: 15px;
		}

		.result-box.active {
			display: block;
		}

		.result-price {
			font-size: 2em;
			font-weight: bold;
			color: var(--primary);
			margin: 10px 0;
		}

		input[type="text"],input[type="number"],input[type="email"],input[type="password"],input[type="search"],input[type="tel"],input[type="url"],textarea,select {
			font-size: 16px; 
		}