/**
 * FT Design System — Neutral Premium v1
 * FT Core Tokens v1 — central visual foundation.
 *
 * Rules:
 * - primitives are immutable defaults;
 * - semantic tokens are consumed by UI/components;
 * - themes/personalization override semantic tokens, never delete primitives;
 * - compatibility aliases remain during progressive migration.
 */
:root {
	/* =========================================================
	 * 1. Primitive palette — official FT library
	 * ======================================================= */
	--ft-base-black: #000000;
	--ft-base-white: #ffffff;
	--ft-base-neutral-950: #21201d;
	--ft-base-neutral-900: #1b1b1b;
	--ft-base-neutral-700: #464646;
	--ft-base-neutral-500: #808080;
	--ft-base-neutral-100: #eff1f5;
	--ft-base-orange-dark: #f56217;
	--ft-base-orange: #ff935c;
	--ft-base-orange-soft: #ffe5d8;
	--ft-base-blue-dark: #0078d7;
	--ft-base-blue: #5271ff;
	--ft-base-blue-soft: #e5f3ff;
	--ft-base-green-dark: #1daa61;
	--ft-base-green: #25d366;
	--ft-base-green-soft: #eff9f1;
	--ft-base-purple-dark: #331c74;
	--ft-base-purple: #8c52ff;
	--ft-base-purple-soft: #f1efff;
	--ft-base-red-dark: #ff0000;
	--ft-base-red: #ff0000;
	--ft-base-red-soft: #ffdbdb;
	--ft-base-yellow: #febd18;
	--ft-base-ft-yellow: #ffa300;
	--ft-base-ft-beige: #f7f4ee;

	/* Data-intelligence palette — Geo / SEO / Live layers. */
	--ft-data-info: #1687f8;
	--ft-data-positive: #16b978;
	--ft-data-attention: #ff8a1f;
	--ft-data-intelligence: #7457d9;
	--ft-data-critical: #ef3340;

	/* =========================================================
	 * 2. Semantic identity — Neutral Premium default
	 * ======================================================= */
	--ft-color-primary: var(--ft-base-black);
	--ft-color-on-primary: var(--ft-base-white);
	--ft-color-accent: var(--ft-base-ft-yellow);
	--ft-color-accent-soft: #ffde95;
	--ft-color-background: var(--ft-base-ft-beige);
	--ft-color-surface: var(--ft-base-white);
	--ft-color-surface-subtle: var(--ft-base-neutral-100);
	--ft-color-surface-warm: #fef8ee;

	/* Text */
	--ft-color-text-primary: var(--ft-base-neutral-900);
	--ft-color-text-secondary: var(--ft-base-neutral-700);
	--ft-color-text-muted: var(--ft-base-neutral-500);
	--ft-color-text-inverse: var(--ft-base-white);

	/* Borders / focus */
	--ft-color-border: #d9d4ca;
	--ft-color-border-strong: #b8b5ae;
	--ft-color-border-focus: var(--ft-color-accent);
	--ft-color-focus: var(--ft-color-accent);
	--ft-focus-width: 2px;
	--ft-focus-offset: 2px;

	/* Functional states — core UI */
	--ft-color-info: var(--ft-base-blue-dark);
	--ft-color-info-soft: var(--ft-base-blue-soft);
	--ft-color-success: var(--ft-base-green-dark);
	--ft-color-success-soft: var(--ft-base-green-soft);
	--ft-color-warning: var(--ft-base-orange-dark);
	--ft-color-warning-soft: var(--ft-base-orange-soft);
	--ft-color-intelligence: var(--ft-base-purple-dark);
	--ft-color-intelligence-soft: var(--ft-base-purple-soft);
	--ft-color-danger: var(--ft-base-red);
	--ft-color-danger-soft: var(--ft-base-red-soft);

	/* Global interactive controls — FT UI Controls Buttons v2.
	 * Independent from Theme Engine Cor 1: personalization must not destroy
	 * the canonical button interaction language.
	 */
	--ft-control-action: var(--ft-base-purple-dark);
	--ft-control-action-on: var(--ft-base-white);
	--ft-control-action-soft: var(--ft-base-purple-soft);
	--ft-control-disabled-bg: var(--ft-base-neutral-100);
	--ft-control-disabled-border: var(--ft-base-neutral-500);
	--ft-control-disabled-text: var(--ft-base-neutral-500);

	/* Semantic data states — maps, SEO intelligence, analytics. */
	--ft-color-data-info: var(--ft-data-info);
	--ft-color-data-positive: var(--ft-data-positive);
	--ft-color-data-attention: var(--ft-data-attention);
	--ft-color-data-intelligence: var(--ft-data-intelligence);
	--ft-color-data-critical: var(--ft-data-critical);

	/* =========================================================
	 * 3. Typography
	 * ======================================================= */
	--ft-font-family-base: "Source Sans Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
	--ft-font-size-xs: 12px;
	--ft-font-size-sm: 13px;
	--ft-font-size-body: 14px;
	--ft-font-size-md: 16px;
	--ft-font-size-lg: 20px;
	--ft-font-size-xl: 26px;
	--ft-font-size-2xl: 28px;
	--ft-font-size-value: 32px;
	--ft-font-weight-regular: 400;
	--ft-font-weight-medium: 500;
	--ft-font-weight-semibold: 600;
	--ft-font-weight-bold: 700;
	--ft-line-height-tight: 1.25;
	--ft-line-height-normal: 1.5;
	--ft-line-height-relaxed: 1.7;

	/* =========================================================
	 * 4. Spacing — official 4px scale
	 * ======================================================= */
	--ft-space-1: 4px;
	--ft-space-2: 8px;
	--ft-space-3: 12px;
	--ft-space-4: 16px;
	--ft-space-5: 20px;
	--ft-space-6: 24px;
	--ft-space-8: 32px;
	--ft-space-10: 40px;
	--ft-space-12: 48px;
	--ft-space-16: 64px;

	/* Radius */
	--ft-radius-sm: 6px;
	--ft-radius-default: 8px;
	--ft-radius-md: 12px;
	--ft-radius-lg: 16px;
	--ft-radius-pill: 999px;

	/* Border */
	--ft-border-width-default: 1px;

	/* Icon sizing */
	--ft-icon-size-sm: 16px;
	--ft-icon-size-md: 20px;
	--ft-icon-size-lg: 24px;

	/* Controls */
	--ft-control-height-sm: 32px;
	--ft-control-height-default: 40px;
	--ft-control-height-lg: 48px;
	--ft-control-padding-inline: 16px;
	--ft-control-icon-gap: 8px;

	/* Buttons — FT UI Controls global contract */
	--ft-button-bg: var(--ft-color-surface);
	--ft-button-border: var(--ft-color-primary);
	--ft-button-text: var(--ft-color-primary);
	--ft-button-hover-bg: var(--ft-color-primary);
	--ft-button-hover-border: var(--ft-color-primary);
	--ft-button-hover-text: var(--ft-color-on-primary);
	--ft-button-active-bg: var(--ft-color-primary);
	--ft-button-active-border: var(--ft-color-primary);
	--ft-button-active-text: var(--ft-color-on-primary);
	--ft-button-disabled-bg: var(--ft-base-neutral-100);
	--ft-button-disabled-border: var(--ft-base-neutral-100);
	--ft-button-disabled-text: var(--ft-base-neutral-500);


	/* Cards — FT Cards global contract */
	--ft-card-bg: var(--ft-color-surface);
	--ft-card-border: var(--ft-color-border);
	--ft-card-border-width: var(--ft-border-width-default);
	--ft-card-radius: var(--ft-radius-md);
	--ft-card-padding: var(--ft-space-5);
	--ft-card-gap: var(--ft-space-3);
	--ft-card-shadow: var(--ft-shadow-card);
	--ft-card-shadow-hover: var(--ft-shadow-elevated);
	--ft-card-title-color: var(--ft-color-text-primary);
	--ft-card-description-color: var(--ft-color-text-secondary);
	--ft-card-meta-color: var(--ft-color-text-muted);
	--ft-card-link-color: var(--ft-color-primary);
	--ft-card-link-hover-color: var(--ft-color-primary);
	--ft-card-hover-border: var(--ft-color-border-strong);
	--ft-card-transition: var(--ft-motion-default);

	/* Specialized cards — SOL / Opportunity */
	--ft-card-sol-accent: var(--ft-color-info);
	--ft-card-sol-accent-soft: var(--ft-color-info-soft);
	--ft-card-opportunity-accent: var(--ft-color-warning);
	--ft-card-opportunity-accent-soft: var(--ft-color-warning-soft);
	--ft-card-specialized-strip-width: 4px;

	/* Specialized cards — Wallet / FT Packages */
	--ft-card-wallet-accent: var(--ft-color-success);
	--ft-card-wallet-accent-soft: var(--ft-color-success-soft);
	--ft-card-package-accent: var(--ft-color-accent);
	--ft-card-package-accent-soft: var(--ft-color-accent-soft);
	--ft-card-package-recommended-border-width: 2px;

	/* Specialized cards — Dashboard / Finance / Status */
	--ft-card-dashboard-accent: var(--ft-color-primary);
	--ft-card-dashboard-accent-soft: var(--ft-color-surface-subtle);
	--ft-card-finance-accent: var(--ft-color-primary);
	--ft-card-finance-positive: var(--ft-color-success);
	--ft-card-finance-negative: var(--ft-color-danger);
	--ft-card-status-neutral: var(--ft-color-text-muted);

	/* Elevation */
	--ft-shadow-subtle: 0 1px 2px rgba(27, 27, 27, 0.06);
	--ft-shadow-card: 0 4px 16px rgba(27, 27, 27, 0.08);
	--ft-shadow-elevated: 0 12px 36px rgba(27, 27, 27, 0.14);
	--ft-shadow-sm: var(--ft-shadow-subtle);
	--ft-shadow-md: var(--ft-shadow-card);
	--ft-shadow-overlay: var(--ft-shadow-elevated);

	/* Motion */
	--ft-motion-fast: 150ms;
	--ft-motion-default: 180ms;
	--ft-motion-slow: 200ms;
	--ft-ease-standard: ease;

	/* Layer order */
	--ft-z-base: 1;
	--ft-z-sticky: 100;
	--ft-z-dropdown: 200;
	--ft-z-popover: 300;
	--ft-z-drawer: 400;
	--ft-z-modal: 500;
	--ft-z-toast: 600;

	/* =========================================================
	 * 5. Compatibility aliases — progressive migration only
	 * ======================================================= */
	--ft-primary: var(--ft-color-accent);
	--ft-primary-soft: var(--ft-color-accent-soft);
	--ft-dark: var(--ft-color-text-primary);
	--ft-black: var(--ft-base-black);
	--ft-white: var(--ft-color-surface);
	--ft-success: var(--ft-color-success);
	--ft-warning: var(--ft-color-warning);
	--ft-error: var(--ft-color-danger);
}

/* FT UI Controls v1 — Tabs / Filters / Dropdown / Select */
:root {
	--ft-control-bg: var(--ft-color-surface);
	--ft-control-border: var(--ft-color-border);
	--ft-control-text: var(--ft-color-text-primary);
	--ft-control-hover-bg: var(--ft-color-surface-subtle);
	--ft-control-hover-border: var(--ft-color-primary);
	--ft-control-active-bg: var(--ft-color-primary);
	--ft-control-active-border: var(--ft-color-primary);
	--ft-control-active-text: var(--ft-color-on-primary);
	--ft-control-disabled-bg: var(--ft-base-neutral-100);
	--ft-control-disabled-border: var(--ft-base-neutral-100);
	--ft-control-disabled-text: var(--ft-base-neutral-500);
	--ft-dropdown-bg: var(--ft-color-surface);
	--ft-dropdown-border: var(--ft-color-border);
	--ft-dropdown-option-hover-bg: var(--ft-color-surface-subtle);
	--ft-dropdown-option-selected-bg: var(--ft-color-accent-soft);
	--ft-dropdown-option-selected-text: var(--ft-color-text-primary);
}
