/**
 * EcomCalc Tools — calculators.css
 *
 * Baseline styling for the calculator panel and tools directory grid,
 * using the SAME class names as the EcomCalc theme's design system so
 * the two visually match when that theme is active. Every color/spacing
 * value has a fallback (the `, #hex` part of each var()) so calculators
 * still look clean and usable if a site owner switches to a different
 * WordPress theme — calculator functionality must not depend on the
 * EcomCalc theme being active.
 */

.ecomcalc-calculator,
.ecomcalc-tools-directory {
	--ec-primary: var( --color-primary, #1c4e66 );
	--ec-primary-dark: var( --color-primary-dark, #133648 );
	--ec-primary-tint: var( --color-primary-tint, #eaf1f4 );
	--ec-success: var( --color-success, #1e8e4f );
	--ec-success-tint: var( --color-success-tint, #e9f7ef );
	--ec-danger: var( --color-danger, #d6483f );
	--ec-danger-tint: var( --color-danger-tint, #fcebea );
	--ec-warning: var( --color-warning, #e08a2e );
	--ec-warning-tint: var( --color-warning-tint, #fdf1e3 );
	--ec-text: var( --color-text, #16212c );
	--ec-muted: var( --color-muted, #5c6b78 );
	--ec-border: var( --color-border, #e3e8ed );
	--ec-border-strong: var( --color-border-strong, #cfd8e0 );
	--ec-surface: var( --color-surface, #f6f8fa );
	--ec-radius-md: var( --radius-md, 14px );
	--ec-radius-lg: var( --radius-lg, 20px );
	font-family: var( --font-body, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif );
	color: var( --ec-text );
}

/* ---- Calculator panel ---- */
.calc-panel {
	background: #fff;
	border: 1px solid var( --ec-border );
	border-radius: var( --ec-radius-lg );
	box-shadow: 0 8px 24px rgba( 22, 33, 44, 0.07 );
	display: grid;
	grid-template-columns: 1fr 1fr;
	overflow: hidden;
}
.calc-inputs,
.calc-results {
	padding: 32px;
}
.calc-inputs {
	border-right: 1px solid var( --ec-border );
}
.calc-label {
	font-size: 13px;
	font-weight: 600;
	color: var( --ec-muted );
	margin-bottom: 20px;
	letter-spacing: 0.02em;
}
.calc-field {
	margin-bottom: 16px;
}
.calc-field label {
	font-size: 13px;
	font-weight: 500;
	color: var( --ec-muted );
	display: block;
	margin-bottom: 6px;
}
.calc-field .hint {
	font-size: 12px;
	color: var( --ec-muted );
	opacity: 0.8;
	margin-top: 5px;
	display: block;
}
.input-shell {
	display: flex;
	align-items: center;
	border: 1px solid var( --ec-border-strong );
	border-radius: 9px;
	padding: 0 14px;
	background: var( --ec-surface );
	gap: 6px;
	transition: border-color 0.12s ease;
}
.input-shell:focus-within {
	border-color: var( --ec-primary );
	background: #fff;
}
.input-shell .cur {
	color: var( --ec-muted );
	font-weight: 500;
	font-size: 14px;
	flex-shrink: 0;
}
.input-shell input,
.input-shell select {
	border: none;
	background: transparent;
	outline: none;
	width: 100%;
	padding: 11px 0;
	font-size: 15px;
	font-weight: 600;
	color: var( --ec-text );
}
.field-error {
	color: var( --ec-danger );
	font-size: 12px;
	margin-top: 5px;
	display: none;
}
.calc-field.has-error .input-shell {
	border-color: var( --ec-danger );
}
.calc-field.has-error .field-error {
	display: block;
}
.calc-actions {
	display: flex;
	gap: 12px;
	margin-top: 8px;
}

.result-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	margin-bottom: 18px;
}
.result-box {
	background: var( --ec-surface );
	border-radius: 10px;
	padding: 16px 18px;
}
.result-box .k {
	font-size: 12.5px;
	color: var( --ec-muted );
	margin-bottom: 6px;
}
.result-box .v {
	font-size: 20px;
	font-family: var( --font-display, inherit );
	font-weight: 700;
	transition: color 0.12s ease;
}
.result-box.accent .v {
	color: var( --ec-primary );
}
.result-box.profit .v {
	color: var( --ec-success );
}
.result-box.loss .v {
	color: var( --ec-danger );
}
.result-status {
	display: flex;
	align-items: center;
	gap: 10px;
	border-radius: 10px;
	padding: 14px 18px;
	font-size: 14.5px;
	font-weight: 600;
	background: var( --ec-success-tint );
	color: var( --ec-success );
}
.result-status.is-loss {
	background: var( --ec-danger-tint );
	color: var( --ec-danger );
}
.result-status.is-warning {
	background: var( --ec-warning-tint );
	color: var( --ec-warning );
}
.result-status .dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: currentColor;
	flex-shrink: 0;
}
.result-value-flash {
	animation: ecomcalcFlash 0.4s ease;
}
@keyframes ecomcalcFlash {
	0% {
		opacity: 0.4;
	}
	100% {
		opacity: 1;
	}
}

@media ( max-width: 720px ) {
	.calc-panel {
		grid-template-columns: 1fr;
	}
	.calc-inputs {
		border-right: none;
		border-bottom: 1px solid var( --ec-border );
	}
	.calc-inputs,
	.calc-results {
		padding: 22px 18px;
	}
}
@media ( max-width: 420px ) {
	.result-grid {
		grid-template-columns: 1fr;
	}
	.calc-actions {
		flex-direction: column;
	}
}

/* ---- Tools directory (search/filter/grid) ---- */
.tools-directory-bar {
	scroll-margin-top: 96px; /* clears the ~72px sticky site header with a little breathing room */
	display: flex;
	gap: 14px;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	background: var( --ec-surface );
	border: 1px solid var( --ec-border );
	border-radius: var( --ec-radius-md );
	padding: 16px 18px;
	margin-bottom: 28px;
}
.tools-search {
	display: flex;
	align-items: center;
	gap: 10px;
	flex: 1;
	min-width: 220px;
	background: #fff;
	border: 1px solid var( --ec-border-strong );
	border-radius: 9px;
	padding: 10px 14px;
}
.tools-search svg {
	color: var( --ec-muted );
	flex-shrink: 0;
}
.tools-search input {
	border: none;
	outline: none;
	width: 100%;
	font-size: 14.5px;
	background: transparent;
	color: var( --ec-text );
}
.tools-filters {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}
.filter-chip {
	font-size: 13.5px;
	font-weight: 600;
	padding: 8px 16px;
	border-radius: 100px;
	border: 1px solid var( --ec-border-strong );
	color: var( --ec-muted );
	background: #fff;
	cursor: pointer;
	transition: all 0.12s ease;
}
.filter-chip:hover {
	border-color: var( --ec-primary );
	color: var( --ec-primary );
}
.filter-chip.is-active {
	background: var( --ec-primary );
	border-color: var( --ec-primary );
	color: #fff;
}
.tools-empty {
	display: none;
	text-align: center;
	padding: 48px 20px;
	color: var( --ec-muted );
}
.tools-empty.is-visible {
	display: block;
}

.tools-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 20px;
}
@media ( max-width: 900px ) {
	.tools-grid {
		grid-template-columns: repeat( 2, 1fr );
	}
	.tools-directory-bar {
		flex-direction: column;
		align-items: stretch;
	}
}
@media ( max-width: 560px ) {
	.tools-grid {
		grid-template-columns: 1fr;
	}
}
.tool-card[hidden] {
	display: none;
}
.tool-card {
	background: #fff;
	border: 1px solid var( --ec-border );
	border-radius: var( --ec-radius-md );
	padding: 22px 20px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}
.tool-card:hover {
	border-color: var( --ec-border-strong );
	box-shadow: 0 8px 24px rgba( 22, 33, 44, 0.07 );
	transform: translateY( -2px );
}
.tool-card .tool-card-link {
	display: flex;
	flex-direction: column;
	gap: 12px;
	color: inherit;
	text-decoration: none;
}
.tool-card .tool-icon {
	width: 40px;
	height: 40px;
	border-radius: 10px;
	background: var( --ec-primary-tint );
	color: var( --ec-primary );
	display: flex;
	align-items: center;
	justify-content: center;
}
.tool-card h3 {
	font-size: 16.5px;
	font-weight: 600;
	margin: 0;
}
.tool-card p {
	font-size: 13.5px;
	color: var( --ec-muted );
	line-height: 1.5;
	margin: 0;
}
.tool-card .tool-card-cat {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.03em;
	color: var( --ec-primary );
}
.tool-card .tool-cta {
	margin-top: auto;
	display: flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	font-weight: 600;
	color: var( --ec-primary );
}
.tool-card.flagship {
	background: linear-gradient( 180deg, var( --ec-primary-dark ) 0%, var( --ec-primary ) 100% );
	border: none;
	color: #fff;
}
.tool-card.flagship .tool-icon {
	background: rgba( 255, 255, 255, 0.16 );
	color: #fff;
}
.tool-card.flagship p {
	color: rgba( 255, 255, 255, 0.8 );
}
.tool-card.flagship .tool-cta {
	color: #fff;
}
.flagship-badge {
	align-self: flex-start;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.03em;
	background: rgba( 255, 255, 255, 0.18 );
	color: #fff;
	padding: 4px 10px;
	border-radius: 100px;
}

/* ---- Explainer / FAQ / related (single tool page) ---- */
.calc-explainer {
	padding: 40px 0 0;
	max-width: 760px;
}
.calc-explainer h2 {
	font-size: 22px;
	margin: 0 0 14px;
}
.calc-explainer h3 {
	font-size: 17px;
	margin: 22px 0 10px;
}
.calc-explainer p,
.calc-explainer li {
	font-size: 15px;
	color: var( --ec-muted );
	line-height: 1.7;
}
.calc-explainer ul {
	padding-left: 20px;
}
.calc-formula {
	background: var( --ec-surface );
	border: 1px solid var( --ec-border );
	border-radius: 10px;
	padding: 14px 18px;
	font-size: 14px;
	color: var( --ec-text );
	font-weight: 600;
	margin: 14px 0;
}
.faq-item {
	border-bottom: 1px solid var( --ec-border );
	padding: 16px 0;
}
.faq-item h3 {
	font-size: 15.5px;
	margin: 0 0 8px;
}
.faq-item p {
	font-size: 14px;
	color: var( --ec-muted );
	margin: 0;
}
.related-tools {
	padding: 48px 0;
	max-width: 900px;
}
.related-tools h2 {
	font-size: 20px;
	margin: 0 0 18px;
}
.related-grid {
	display: grid;
	grid-template-columns: repeat( 3, 1fr );
	gap: 16px;
}
@media ( max-width: 700px ) {
	.related-grid {
		grid-template-columns: 1fr;
	}
}
