/* Focal bundled Prism-compatible fallback contract 1.0. */
:root,
[data-prism-theme="focal-fallback-dark"] {
	--op-color-background: var(--background);
	--op-color-surface: var(--panel);
	--op-color-surface-raised: var(--panel-strong);
	--op-color-text-primary: var(--text);
	--op-color-text-secondary: var(--muted);
	--op-color-border: var(--line);
	--op-color-accent: var(--accent);
	--op-color-danger: var(--danger);
}
[data-prism-theme="focal-fallback-light"] {
	color-scheme: light;
}
/* Consume published Prism tokens through the shared Trace-era application
   variables. This keeps existing Focal UI rules visually aligned with every
   other OmniGenesis consumer without requiring app-specific Prism CSS. */
body[data-prism-fallback="false"] {
  --bg: var(--op-color-background);
  --panel: var(--op-color-surface);
  --panel-2: var(--op-color-surface-raised);
  --line: var(--op-color-border);
  --text: var(--op-color-text-primary);
  --muted: var(--op-color-text-secondary);
  --accent: var(--op-color-accent);
  --accent-strong: var(--op-color-accent);
  --accent-ink: var(--op-color-accent-contrast);
  --danger: var(--op-color-danger);
  --warning: var(--op-color-warning, var(--op-color-accent));
  --success: var(--op-color-success, var(--op-color-accent));
  --glow: var(--op-color-glow, color-mix(in srgb, var(--op-color-accent) 18%, var(--op-color-background)));
  --card-surface-shift: var(--op-color-surface-raised);
  --button-hover-contrast: var(--op-color-surface);
}
body[data-prism-fallback="false"][data-prism-mode="light"] { color-scheme: light; }
body[data-prism-fallback="false"][data-prism-mode="dark"] { color-scheme: dark; }
.op-shell {
	min-height: 100vh;
}
.op-page {
	min-width: 0;
}
.op-card {
	color: var(--op-color-text-primary);
	background: var(--op-color-surface);
}
.op-field {
	display: grid;
	gap: 0.75rem;
}
.op-field__help {
	color: var(--op-color-text-secondary);
}
.op-input,
.op-select {
	width: 100%;
}
