/* Code generated by internal/tokengen from docs/school-app/design-tokens.json. DO NOT EDIT. */
/* Source values are the single truth; change the JSON and re-run `make tokens`. */

:root {
	/* colour — light (color.light) */
	--color-background: #F7F7F5;
	--color-surface: #FFFFFF;
	--color-surface-alt: #EFEFEC;
	--color-surface-sunken: #E7E7E3;
	--color-text: #16181A;
	--color-muted: #5A6066;
	--color-border: #D6D8D6;
	--color-border-strong: #B9BCB9;
	--color-accent: #2452A0;
	--color-accent-soft: #E4EBF8;
	--color-on-accent: #FFFFFF;
	--color-positive: #1B7A3E;
	--color-positive-soft: #E3F3E7;
	--color-negative: #B3261E;
	--color-negative-soft: #FBE7E5;
	--color-warning: #8A5A00;
	--color-warning-soft: #FBF0D9;
	--color-info: #1C5F8A;
	--color-info-soft: #E3EEF5;
	--color-scrim: #00000066;
	--color-focus-ring: #2452A0;

	/* space — dp = px at 1x; no values outside the scale */
	--space-xs: 4px;
	--space-sm: 8px;
	--space-md: 12px;
	--space-lg: 16px;
	--space-xl: 24px;
	--space-xxl: 32px;

	/* radius */
	--radius-sm: 8px;
	--radius-md: 12px;
	--radius-lg: 16px;
	--radius-pill: 999px;

	/* type — family.ui is "system sans (Roboto / Inter)", family.pdf is "Liberation Sans" */
	--font-ui: Roboto, Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
	--font-mono: ui-monospace, "Roboto Mono", "SF Mono", Menlo, monospace;
	--font-size-caption: 12px;
	--font-size-body-sm: 14px;
	--font-size-body: 16px;
	--font-size-title: 20px;
	--font-size-heading: 24px;
	--font-size-display: 32px;
	--weight-regular: 400;
	--weight-medium: 500;
	--weight-semibold: 600;
	--line-height-caption: 1.35;
	--line-height-body: 1.45;
	--line-height-title: 1.25;
	--line-height-display: 1.15;

	/* motion */
	--duration-instant: 80ms;
	--duration-fast: 120ms;
	--duration-base: 200ms;
	--duration-slow: 320ms;
	--duration-snackbar: 4000ms;
	--ease-standard: cubic-bezier(0.2, 0, 0, 1);
	--ease-enter: cubic-bezier(0, 0, 0.2, 1);
	--ease-exit: cubic-bezier(0.4, 0, 1, 1);

	/* elevation */
	--elevation-0: none; /* flat lists, tables */
	--elevation-1: 0 1px 2px rgba(0,0,0,0.08); /* cards */
	--elevation-2: 0 2px 8px rgba(0,0,0,0.10); /* bottom bar, app bar */
	--elevation-3: 0 6px 20px rgba(0,0,0,0.16); /* FAB, floating +1, dragged card */
	--elevation-4: 0 12px 32px rgba(0,0,0,0.22); /* bottom sheet, dialog */

	/* accessibility */
	--a11y-min-target: 48px;
	--a11y-min-target-tablet: 56px;
	--a11y-participation-button: 56px;
	--a11y-font-scale-max: 2;
	--focus-ring-width: 2px;

	/* layout — media queries cannot read these, keep app.css in sync */
	--breakpoint-phone-max: 600px;
	--breakpoint-web-column: 1200px;
}

/* dark palette follows the system unless the page pins data-theme */
@media (prefers-color-scheme: dark) {
	:root:not([data-theme="light"]) {
	/* colour — dark (color.dark) */
	--color-background: #101214;
	--color-surface: #181B1E;
	--color-surface-alt: #212528;
	--color-surface-sunken: #0B0D0E;
	--color-text: #F2F4F3;
	--color-muted: #A7AEB2;
	--color-border: #333A3F;
	--color-border-strong: #4A5258;
	--color-accent: #8AB0FF;
	--color-accent-soft: #1B2740;
	--color-on-accent: #0F1B2E;
	--color-positive: #58C97C;
	--color-positive-soft: #152A1D;
	--color-negative: #FF8A80;
	--color-negative-soft: #33191A;
	--color-warning: #F0C05A;
	--color-warning-soft: #2E2513;
	--color-info: #6FB6DF;
	--color-info-soft: #132430;
	--color-scrim: #000000B3;
	--color-focus-ring: #8AB0FF;
	}
}

:root[data-theme="dark"] {
	/* colour — dark (color.dark) */
	--color-background: #101214;
	--color-surface: #181B1E;
	--color-surface-alt: #212528;
	--color-surface-sunken: #0B0D0E;
	--color-text: #F2F4F3;
	--color-muted: #A7AEB2;
	--color-border: #333A3F;
	--color-border-strong: #4A5258;
	--color-accent: #8AB0FF;
	--color-accent-soft: #1B2740;
	--color-on-accent: #0F1B2E;
	--color-positive: #58C97C;
	--color-positive-soft: #152A1D;
	--color-negative: #FF8A80;
	--color-negative-soft: #33191A;
	--color-warning: #F0C05A;
	--color-warning-soft: #2E2513;
	--color-info: #6FB6DF;
	--color-info-soft: #132430;
	--color-scrim: #000000B3;
	--color-focus-ring: #8AB0FF;
}
