@import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
@import "tailwindcss";

@theme {
	--font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif;

	--color-background: #fafafa;
	--color-foreground: #0f172a;
	--color-card: #ffffff;
	--color-card-foreground: #0f172a;
	--color-popover: #ffffff;
	--color-popover-foreground: #0f172a;
	--color-primary: #4f8cff;
	--color-primary-foreground: #ffffff;
	--color-secondary: #f1f5f9;
	--color-secondary-foreground: #0f172a;
	--color-muted: #f1f5f9;
	--color-muted-foreground: #64748b;
	--color-accent: #f1f5f9;
	--color-accent-foreground: #0f172a;
	--color-destructive: #ef4444;
	--color-destructive-foreground: #ffffff;
	--color-border: #e2e8f0;
	--color-input: #e2e8f0;
	--color-ring: #4f8cff;
	/* Status semantic cues — single source of truth for Badges.
	   chart-1=info/brand, chart-2=success, chart-3=warning,
	   chart-4=destructive, chart-5=neutral-accent. */
	--color-chart-1: #4f8cff;
	--color-chart-2: #22c55e;
	--color-chart-3: #f59e0b;
	--color-chart-4: #ef4444;
	--color-chart-5: #8b5cf6;
	--radius: 0.625rem;
	--color-sidebar-background: #fafafa;
	--color-sidebar-foreground: #0f172a;
	--color-sidebar-primary: #4f8cff;
	--color-sidebar-primary-foreground: #ffffff;
	--color-sidebar-accent: #f1f5f9;
	--color-sidebar-accent-foreground: #0f172a;
	--color-sidebar-border: #e2e8f0;
	--color-sidebar-ring: #4f8cff;
}

.dark {
	--color-background: #0f172a;
	--color-foreground: #f8fafc;
	--color-card: #1e293b;
	--color-card-foreground: #f8fafc;
	--color-popover: #1e293b;
	--color-popover-foreground: #f8fafc;
	--color-primary: #4f8cff;
	--color-primary-foreground: #ffffff;
	--color-secondary: #1e293b;
	--color-secondary-foreground: #f8fafc;
	--color-muted: #334155;
	--color-muted-foreground: #94a3b8;
	--color-accent: #334155;
	--color-accent-foreground: #f8fafc;
	--color-destructive: #ef4444;
	--color-destructive-foreground: #ffffff;
	--color-border: #334155;
	--color-input: #334155;
	--color-ring: #4f8cff;
	/* Status semantic cues — single source of truth for Badges.
	   chart-1=info/brand, chart-2=success, chart-3=warning,
	   chart-4=destructive, chart-5=neutral-accent. */
	--color-chart-1: #4f8cff;
	--color-chart-2: #22c55e;
	--color-chart-3: #f59e0b;
	--color-chart-4: #ef4444;
	--color-chart-5: #8b5cf6;
	--color-sidebar-background: #0f172a;
	--color-sidebar-foreground: #f8fafc;
	--color-sidebar-primary: #4f8cff;
	--color-sidebar-primary-foreground: #ffffff;
	--color-sidebar-accent: #334155;
	--color-sidebar-accent-foreground: #f8fafc;
	--color-sidebar-border: #334155;
	--color-sidebar-ring: #4f8cff;
}

@layer base {
	body {
		background-color: var(--color-background);
		color: var(--color-foreground);
		font-family: var(--font-sans);
	}
}

html,
body,
#root {
	margin: 0;
	width: 100%;
	min-height: 100%;
	overflow-x: hidden;
}

* {
	box-sizing: border-box;
}

/*
 * Mobile touch-target utility (spec R6.1).
 *
 * Applies a 44x44px minimum hit area to interactive elements ONLY below the
 * `md:` (768px) breakpoint, satisfying WCAG 2.5.5 / Apple HIG on touch devices.
 * At md+ the class is inert so desktop sizing is not regressed. Pages sprinkle
 * this on icon buttons, checkboxes, switches, and row taps. See OpenSpec
 * change `mobile-responsive-parity`, design §`mobile-touch-target`.
 */
@media (max-width: 767px) {
	.mobile-touch-target {
		min-height: 44px;
		min-width: 44px;
	}
}
