/**
 * Student Academic Calculators - Global Tokens & Design Variables
 * Scoped strictly to prevent bleed into WordPress core, themes, or page builders.
 */

:root {
	--sac-font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
	--sac-font-mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Monaco, Consolas, monospace;
}

.sac-calculator-wrapper {
	/* Palette tokens - inheriting theme defaults where available */
	--sac-primary: var(--accent, var(--wp--preset--color--primary, #2563eb));
	--sac-primary-hover: #1d4ed8;
	--sac-primary-contrast: #ffffff;
	--sac-secondary: #f1f5f9;
	--sac-secondary-hover: #e2e8f0;
	--sac-secondary-contrast: #1e293b;
	--sac-accent-danger: #dc2626;
	--sac-accent-danger-hover: #b91c1c;
	--sac-accent-danger-bg: #fef2f2;
	--sac-accent-success: #16a34a;
	--sac-accent-success-bg: #f0fdf4;
	--sac-accent-warning: #d97706;
	--sac-accent-warning-bg: #fffbeb;

	/* Surface & Line tokens */
	--sac-surface: #ffffff;
	--sac-surface-subtle: #f8fafc;
	--sac-border: #cbd5e1;
	--sac-border-focus: var(--sac-primary);
	--sac-outline-focus: rgba(37, 99, 235, 0.35);

	/* Text tokens */
	--sac-text: var(--text-color, #0f172a);
	--sac-text-muted: #64748b;
	--sac-text-inverse: #ffffff;

	/* Geometry & Transitions */
	--sac-radius-sm: 4px;
	--sac-radius: 8px;
	--sac-radius-lg: 12px;
	--sac-shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
	--sac-shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1);
	--sac-transition: 150ms cubic-bezier(0.4, 0, 0.2, 1);
	--sac-touch-target: 44px;

	/* Typography Scale */
	--sac-font-size-xs: 0.75rem;   /* 12px */
	--sac-font-size-sm: 0.875rem;  /* 14px */
	--sac-font-size-base: 1rem;    /* 16px */
	--sac-font-size-lg: 1.125rem;  /* 18px */
	--sac-font-size-xl: 1.25rem;   /* 20px */
	--sac-font-size-2xl: 1.5rem;   /* 24px */
	--sac-font-size-3xl: 2rem;     /* 32px */
	--sac-line-height-tight: 1.25;
	--sac-line-height-normal: 1.5;
}

/* Scoped Reset - Box model normalization only inside our wrappers */
.sac-calculator-wrapper,
.sac-calculator-wrapper *,
.sac-calculator-wrapper *::before,
.sac-calculator-wrapper *::after {
	box-sizing: border-box;
}

.sac-calculator-wrapper {
	font-family: inherit;
	color: var(--sac-text);
	background-color: var(--sac-surface);
	line-height: var(--sac-line-height-normal);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/* Screen reader only utility class */
.sac-sr-only {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	padding: 0 !important;
	margin: -1px !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	white-space: nowrap !important;
	border: 0 !important;
}

/* Respect user's motion preferences */
@media (prefers-reduced-motion: reduce) {
	.sac-calculator-wrapper,
	.sac-calculator-wrapper * {
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
		scroll-behavior: auto !important;
	}
}