/* Global app styles */
:root {
  /****************** 
   Basics
   ******************/
  overflow-wrap: break-word;
  text-size-adjust: none;
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
:root,
:root *,
:root ::before,
:root ::after {
  box-sizing: border-box;
}
/*
 * Streamdown markdown rendering.
 * Tailwind is intentionally not configured in this Mantine app, so Streamdown's
 * utility classes never resolve. We style its output here instead, via the
 * stable `data-streamdown` attribute hooks, using Mantine theme variables so it
 * tracks light/dark automatically. Scoped to `.chat-markdown-content`.
 */
.chat-markdown-content {
	color: var(--mantine-color-text);
	font-size: var(--mantine-font-size-sm);
	line-height: 1.6;
	overflow-wrap: anywhere;
}
.chat-markdown-content > *:first-child,
.chat-markdown-content > * > *:first-child {
	margin-top: 0;
}
.chat-markdown-content > *:last-child,
.chat-markdown-content > * > *:last-child {
	margin-bottom: 0;
}
.chat-markdown-content p {
	margin: 0 0 var(--mantine-spacing-sm);
}
.chat-markdown-content [data-streamdown^="heading-"] {
	font-weight: 600;
	line-height: 1.3;
	margin: var(--mantine-spacing-md) 0 var(--mantine-spacing-xs);
}
.chat-markdown-content [data-streamdown="heading-1"] {
	font-size: var(--mantine-h2-font-size);
}
.chat-markdown-content [data-streamdown="heading-2"] {
	font-size: var(--mantine-h3-font-size);
}
.chat-markdown-content [data-streamdown="heading-3"] {
	font-size: var(--mantine-h4-font-size);
}
.chat-markdown-content [data-streamdown="heading-4"] {
	font-size: var(--mantine-h5-font-size);
}
.chat-markdown-content [data-streamdown="heading-5"] {
	font-size: var(--mantine-h6-font-size);
}
.chat-markdown-content [data-streamdown="heading-6"] {
	font-size: var(--mantine-h6-font-size);
	color: var(--mantine-color-dimmed);
}
.chat-markdown-content [data-streamdown="unordered-list"],
.chat-markdown-content [data-streamdown="ordered-list"] {
	margin: 0 0 var(--mantine-spacing-sm);
	padding-left: var(--mantine-spacing-lg);
}
.chat-markdown-content [data-streamdown="unordered-list"] {
	list-style: disc;
}
.chat-markdown-content [data-streamdown="ordered-list"] {
	list-style: decimal;
}
.chat-markdown-content [data-streamdown="list-item"] {
	margin: var(--mantine-spacing-xs) 0;
}
.chat-markdown-content [data-streamdown="list-item"] > p {
	display: inline;
	margin: 0;
}
.chat-markdown-content [data-streamdown="link"] {
	color: var(--mantine-color-anchor);
	text-decoration: underline;
	font-weight: 500;
}
.chat-markdown-content [data-streamdown="strong"],
.chat-markdown-content strong {
	font-weight: 600;
}
.chat-markdown-content [data-streamdown="blockquote"] {
	margin: var(--mantine-spacing-md) 0;
	padding-left: var(--mantine-spacing-md);
	border-left: 3px solid var(--mantine-color-default-border);
	color: var(--mantine-color-dimmed);
	font-style: italic;
}
.chat-markdown-content [data-streamdown="horizontal-rule"] {
	margin: var(--mantine-spacing-lg) 0;
	border: none;
	border-top: 1px solid var(--mantine-color-default-border);
}
.chat-markdown-content [data-streamdown="inline-code"] {
	padding: 0.1em 0.35em;
	border-radius: var(--mantine-radius-sm);
	background: var(--mantine-color-default-hover);
	font-family: var(--mantine-font-family-monospace);
	font-size: 0.85em;
}
.chat-markdown-content pre {
	margin: var(--mantine-spacing-sm) 0;
	padding: var(--mantine-spacing-sm) var(--mantine-spacing-md);
	border-radius: var(--mantine-radius-sm);
	background: var(--mantine-color-default-hover);
	overflow-x: auto;
	font-size: var(--mantine-font-size-xs);
}
.chat-markdown-content pre code {
	padding: 0;
	background: transparent;
	font-family: var(--mantine-font-family-monospace);
}
.chat-markdown-content [data-streamdown="table-wrapper"] {
	margin: var(--mantine-spacing-md) 0;
	overflow-x: auto;
}
.chat-markdown-content [data-streamdown="table"] {
	width: 100%;
	border-collapse: collapse;
	font-size: var(--mantine-font-size-xs);
}
.chat-markdown-content [data-streamdown="table-header-cell"],
.chat-markdown-content [data-streamdown="table-cell"] {
	padding: var(--mantine-spacing-xs) var(--mantine-spacing-sm);
	border: 1px solid var(--mantine-color-default-border);
	text-align: left;
}
.chat-markdown-content [data-streamdown="table-header-cell"] {
	font-weight: 600;
	background: var(--mantine-color-default-hover);
}
.chat-markdown-content [data-streamdown="image"] {
	max-width: 100%;
	border-radius: var(--mantine-radius-sm);
}
body {
	margin: 0;
	font-family:
		-apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", "Ubuntu",
		"Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", sans-serif;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	background-color: var(--mantine-color-body);
	color: var(--mantine-color-text);
}
code {
	font-family:
		source-code-pro, Menlo, Monaco, Consolas, "Courier New", monospace;
}
html,
body {
	height: 100%;
}
/* Fix Mantine ActionIcon disabled state in dark mode — removes opaque black background */
[data-mantine-color-scheme="dark"] .flo-toolbar-icon[data-disabled] {
	background-color: transparent;
}
