/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
  !*** css ./node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[2]!./node_modules/.pnpm/next@15.5.12_@playwright+test@1.58.2_react-dom@19.2.4_react@19.2.4__react@19.2.4/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[14].oneOf[10].use[3]!./src/app/globals.css ***!
  \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

.spin-animation {
  animation: spin 1s linear infinite;
}

:root {
  --font-sans: "Pretendard", -apple-system, system-ui, sans-serif;
  --font-mono: "JetBrains Mono", "Fira Code", ui-monospace, monospace;

  --color-purple: hsl(243 83% 65%);
  --color-purple-bg: hsl(243 83% 95%);
  --color-pink: hsl(330 81% 60%);
  --color-pink-bg: hsl(330 81% 95%);
  --color-yellow: hsl(48 96% 53%);
  --color-yellow-bg: hsl(48 96% 95%);
  --color-orange: hsl(27 95% 56%);
  --color-orange-bg: hsl(27 95% 95%);
  --color-teal: hsl(168 76% 42%);
  --color-teal-bg: hsl(168 76% 95%);
  --color-blue: hsl(210 100% 50%);
  --color-blue-bg: hsl(210 100% 95%);
  --color-slate: hsl(215 27% 17%);
  --color-slate-bg: hsl(215 27% 92%);
  --color-lavender: hsl(263 100% 74%);
  --color-lavender-bg: hsl(263 100% 95%);
  --color-mauve: hsl(249 6% 58%);
  --color-mauve-bg: hsl(249 6% 94%);

  --sidebar-width: 240px;
  --header-height: 56px;
  --content-max-width: 1200px;
  --overlay-bg: hsl(0 0% 0% / 0.5);
  --overlay-blur: blur(2px);
  --scrollbar-width: 0.75em;
  --scrollbar-thumb: hsl(0 0% 0% / 0.15);
  --scrollbar-thumb-hover: hsl(0 0% 0% / 0.25);
  --scrollbar-track: transparent;
}

[data-theme="dark"] {
  --color-purple-bg: hsl(243 40% 18%);
  --color-pink-bg: hsl(330 40% 18%);
  --color-yellow-bg: hsl(48 40% 16%);
  --color-orange-bg: hsl(27 40% 16%);
  --color-teal-bg: hsl(168 40% 14%);
  --color-blue-bg: hsl(210 40% 16%);
  --color-slate-bg: hsl(215 20% 22%);
  --color-lavender-bg: hsl(263 40% 18%);
  --color-mauve-bg: hsl(249 10% 22%);
  --overlay-bg: hsl(0 0% 0% / 0.65);
  --scrollbar-thumb: hsl(0 0% 100% / 0.15);
  --scrollbar-thumb-hover: hsl(0 0% 100% / 0.25);
}

html,
body {
  height: 100%;
  min-height: 100dvh;
  max-height: 100dvh;
  margin: 0;
  overscroll-behavior: none;
  font-family: var(--font-sans);
}

* {
  scrollbar-width: thin;
  scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
}

*::-webkit-scrollbar {
  width: var(--scrollbar-width);
  height: var(--scrollbar-width);
}
*::-webkit-scrollbar-thumb {
  background: var(--scrollbar-thumb);
  border-radius: 999px;
}
*::-webkit-scrollbar-thumb:hover {
  background: var(--scrollbar-thumb-hover);
}
*::-webkit-scrollbar-track {
  background: var(--scrollbar-track);
}

@media (max-width: 575px) {
  * {
    scrollbar-width: none;
  }
  *::-webkit-scrollbar {
    display: none;
  }
}

/* Skeleton shimmer animation */
@keyframes skeleton-shimmer {
  0% { background-position: -200% 0; }
  100% { background-position: 200% 0; }
}

/* Shiki code block theming */
.shiki {
  margin: 0;
  padding: 12px;
}
.shiki code {
  font-family: var(--font-mono);
}

/* Typing indicator animation */
@keyframes typing-bounce {
  0%, 80%, 100% { transform: translateY(0); opacity: 0.4; }
  40% { transform: translateY(-4px); opacity: 1; }
}
.typing-dot {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: currentColor;
  display: inline-block;
  animation: typing-bounce 1.2s infinite;
}

/* Chat bubble hover action bar */
.chat-bubble-root:hover .chat-action-bar {
  opacity: 1 !important;
}

.cmd-palette-item:hover {
  background: var(--ant-color-bg-text-hover, rgba(0, 0, 0, 0.06));
}

/* Mobile responsive — hide sidebar on small screens */
@media (max-width: 575px) {
  .ant-layout-sider {
    display: none !important;
  }
}

:where(.lobe-flex) {
  /* Define defaults on the element itself to avoid CSS variable inheritance leaking to nested Flex */
  --lobe-flex: 0 1 auto;
  --lobe-flex-direction: column;
  --lobe-flex-wrap: nowrap;
  --lobe-flex-justify: flex-start;
  --lobe-flex-align: stretch;
  --lobe-flex-width: auto;
  --lobe-flex-height: auto;
  --lobe-flex-padding: 0;
  /* Keep padding-inline/block aligned with padding by default, and prevent inheriting from parent */
  --lobe-flex-padding-inline: var(--lobe-flex-padding);
  --lobe-flex-padding-block: var(--lobe-flex-padding);
  --lobe-flex-gap: 0;

  display: flex;

  flex: var(--lobe-flex);
  flex-direction: var(--lobe-flex-direction);
  flex-wrap: var(--lobe-flex-wrap);
  justify-content: var(--lobe-flex-justify);
  align-items: var(--lobe-flex-align);

  width: var(--lobe-flex-width);
  height: var(--lobe-flex-height);

  padding: var(--lobe-flex-padding);
  padding-inline: var(--lobe-flex-padding-inline);
  padding-block: var(--lobe-flex-padding-block);

  gap: var(--lobe-flex-gap);
}

.lobe-flex-hidden {
  display: none;
}

