@import "tailwindcss";
@import "tw-animate-css";

@custom-variant dark (&:is(.dark *));

@theme inline {
  --color-background: var(--background);
  --color-foreground: var(--foreground);
  --font-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
  --font-mono: ui-monospace, SFMono-Regular, "SF Mono", Monaco, Menlo, monospace;
  --color-sidebar-ring: var(--sidebar-ring);
  --color-sidebar-border: var(--sidebar-border);
  --color-sidebar-accent-foreground: var(--sidebar-accent-foreground);
  --color-sidebar-accent: var(--sidebar-accent);
  --color-sidebar-primary-foreground: var(--sidebar-primary-foreground);
  --color-sidebar-primary: var(--sidebar-primary);
  --color-sidebar-foreground: var(--sidebar-foreground);
  --color-sidebar: var(--sidebar);
  --color-chart-5: var(--chart-5);
  --color-chart-4: var(--chart-4);
  --color-chart-3: var(--chart-3);
  --color-chart-2: var(--chart-2);
  --color-chart-1: var(--chart-1);
  --color-ring: var(--ring);
  --color-input: var(--input);
  --color-border: var(--border);
  --color-destructive: var(--destructive);
  --color-accent-foreground: var(--accent-foreground);
  --color-accent: var(--accent);
  --color-muted-foreground: var(--muted-foreground);
  --color-muted: var(--muted);
  --color-secondary-foreground: var(--secondary-foreground);
  --color-secondary: var(--secondary);
  --color-primary-foreground: var(--primary-foreground);
  --color-primary: var(--primary);
  --color-popover-foreground: var(--popover-foreground);
  --color-popover: var(--popover);
  --color-card-foreground: var(--card-foreground);
  --color-card: var(--card);
  --radius-sm: calc(var(--radius) - 4px);
  --radius-md: calc(var(--radius) - 2px);
  --radius-lg: var(--radius);
  --radius-xl: calc(var(--radius) + 4px);
}

:root {
  --radius: 0.625rem;
  --background: oklch(1 0 0);
  --foreground: oklch(0.1 0 0); /* 更深的字体颜色 */
  --card: oklch(1 0 0);
  --card-foreground: oklch(0.1 0 0); /* 更深的卡片前景色 */
  --popover: oklch(1 0 0);
  --popover-foreground: oklch(0.1 0 0); /* 更深的弹出框前景色 */
  --primary: oklch(0.205 0 0);
  --primary-foreground: oklch(0.985 0 0);
  --secondary: oklch(0.97 0 0);
  --secondary-foreground: oklch(0.1 0 0); /* 更深的次要前景色 */
  --muted: oklch(0.97 0 0);
  --muted-foreground: oklch(0.4 0 0); /* 更深的次要文字颜色 */
  --accent: oklch(0.97 0 0);
  --accent-foreground: oklch(0.1 0 0); /* 更深的强调前景色 */
  --destructive: oklch(0.577 0.245 27.325);
  --border: oklch(0.922 0 0);
  --input: oklch(0.922 0 0);
  --ring: oklch(0.708 0 0);
  --chart-1: oklch(0.646 0.222 41.116);
  --chart-2: oklch(0.6 0.118 184.704);
  --chart-3: oklch(0.398 0.07 227.392);
  --chart-4: oklch(0.828 0.189 84.429);
  --chart-5: oklch(0.769 0.188 70.08);
  --sidebar: oklch(0.985 0 0);
  --sidebar-foreground: oklch(0.1 0 0); /* 更深的侧边栏前景色 */
  --sidebar-primary: oklch(0.205 0 0);
  --sidebar-primary-foreground: oklch(0.985 0 0);
  --sidebar-accent: oklch(0.97 0 0);
  --sidebar-accent-foreground: oklch(0.1 0 0); /* 更深的侧边栏强调前景色 */
  --sidebar-border: oklch(0.922 0 0);
  --sidebar-ring: oklch(0.708 0 0);
  
  /* 自定义背景图相关变量 */
  --bg-image: none;
  --bg-opacity: 1;
}

.dark {
  --background: oklch(0.145 0 0);
  --foreground: oklch(0.99 0 0); /* 更亮的字体颜色 */
  --card: oklch(0.205 0 0);
  --card-foreground: oklch(0.99 0 0); /* 更亮的卡片前景色 */
  --popover: oklch(0.205 0 0);
  --popover-foreground: oklch(0.99 0 0); /* 更亮的弹出框前景色 */
  --primary: oklch(0.922 0 0);
  --primary-foreground: oklch(0.205 0 0);
  --secondary: oklch(0.269 0 0);
  --secondary-foreground: oklch(0.99 0 0); /* 更亮的次要前景色 */
  --muted: oklch(0.269 0 0);
  --muted-foreground: oklch(0.8 0 0); /* 更亮的次要文字颜色 */
  --accent: oklch(0.269 0 0);
  --accent-foreground: oklch(0.99 0 0); /* 更亮的强调前景色 */
  --destructive: oklch(0.704 0.191 22.216);
  --border: oklch(1 0 0 / 10%);
  --input: oklch(1 0 0 / 15%);
  --ring: oklch(0.556 0 0);
  --chart-1: oklch(0.488 0.243 264.376);
  --chart-2: oklch(0.696 0.17 162.48);
  --chart-3: oklch(0.769 0.188 70.08);
  --chart-4: oklch(0.627 0.265 303.9);
  --chart-5: oklch(0.645 0.246 16.439);
  --sidebar: oklch(0.205 0 0);
  --sidebar-foreground: oklch(0.99 0 0); /* 更亮的侧边栏前景色 */
  --sidebar-primary: oklch(0.488 0.243 264.376);
  --sidebar-primary-foreground: oklch(0.99 0 0); /* 更亮的侧边栏主要前景色 */
  --sidebar-accent: oklch(0.269 0 0);
  --sidebar-accent-foreground: oklch(0.99 0 0); /* 更亮的侧边栏强调前景色 */
  --sidebar-border: oklch(1 0 0 / 10%);
  --sidebar-ring: oklch(0.556 0 0);
}

@layer base {
  * {
    @apply border-border outline-ring/50;
  }
  body {
    @apply bg-background text-foreground;
    background-image: var(--bg-image, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    min-height: 100vh;
    background-color: var(--background);
  }
  
  /* 统一背景，移除各组件之间的分界线 */
  .card, .sidebar, .main-content {
    background-color: rgba(from var(--background) r g b / var(--bg-opacity, 1));
    border: none;
    box-shadow: none;
  }
  
  /* 确保卡片、侧边栏和主内容区域的文字使用正确的颜色变量 */
  .card, .sidebar, .main-content {
    color: var(--foreground);
  }
  
  /* 为整个页面添加遮罩层 */
  body::before {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(from var(--background) r g b / var(--bg-opacity, 0.7));
    z-index: -1;
    pointer-events: none;
  }
  
  body::after {
    content: "";
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-image: var(--bg-image, none);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
    opacity: calc(1 - var(--bg-opacity, 0.7));
    z-index: -2;
    pointer-events: none;
  }
  
  /* 确保所有元素都有透明背景 */
  .bg-card, .bg-background {
    background-color: rgba(from var(--background) r g b / var(--bg-opacity, 1)) !important;
  }

  /* 侧边栏使用与主界面相同的背景色和透明度 */
  .bg-sidebar {
    background-color: rgba(from var(--background) r g b / var(--bg-opacity, 1)) !important;
  }
  
  /* 特殊处理编辑器和预览区域 */
  .markdown-editor, .markdown-preview {
    background-color: rgba(255, 255, 255, 0.95);
    border-radius: 0.5rem;
  }
  
  .dark .markdown-editor, .dark .markdown-preview {
    background-color: rgba(20, 20, 20, 0.95);
  }
  
  /* 确保编辑器和预览区域的文字清晰可见 */
  .markdown-editor *, .markdown-preview * {
    opacity: 1 !important;
  }

  /* 按钮悬停和点击效果 */
  [data-slot="button"] {
    transition: all 0.2s ease-in-out;
    transform: translateZ(0);
  }

  /* 按钮悬停效果 - 添加轻微放大和阴影 */
  [data-slot="button"]:not(:disabled):hover {
    transform: translateY(-1px) scale(1.02);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
  }

  /* 按钮点击效果 - 添加按下效果 */
  [data-slot="button"]:not(:disabled):active {
    transform: translateY(1px) scale(0.98);
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
    transition: all 0.1s ease;
  }

  /* 为不同类型的按钮添加特定效果 */
  [data-slot="button"][variant="default"]:not(:disabled):hover {
    box-shadow: 0 4px 12px rgba(var(--color-primary-rgb), 0.25);
  }

  [data-slot="button"][variant="destructive"]:not(:disabled):hover {
    box-shadow: 0 4px 12px rgba(var(--color-destructive-rgb), 0.25);
  }

  [data-slot="button"][variant="outline"]:not(:disabled):hover {
    border-color: var(--color-accent);
  }

  [data-slot="button"][variant="secondary"]:not(:disabled):hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.06);
  }

  /* 暗色模式下的效果 */
  .dark [data-slot="button"]:not(:disabled):hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.25);
  }

  .dark [data-slot="button"][variant="default"]:not(:disabled):hover {
    box-shadow: 0 4px 12px rgba(var(--color-primary-rgb), 0.3);
  }

  .dark [data-slot="button"][variant="destructive"]:not(:disabled):hover {
    box-shadow: 0 4px 12px rgba(var(--color-destructive-rgb), 0.3);
  }

  /* 为小按钮减小效果强度 */
  [data-slot="button"][size="sm"]:not(:disabled):hover {
    transform: translateY(-0.5px) scale(1.01);
  }

  [data-slot="button"][size="sm"]:not(:disabled):active {
    transform: translateY(0.5px) scale(0.99);
  }

  /* 为图标按钮调整效果 */
  [data-slot="button"][size="icon"]:not(:disabled):hover {
    transform: scale(1.1);
  }

  [data-slot="button"][size="icon"]:not(:disabled):active {
    transform: scale(0.95);
  }

  /* 自定义标题栏拖拽区域样式 */
  .drag-region {
    -webkit-app-region: drag;
  }

  .no-drag {
    -webkit-app-region: no-drag;
  }

  /* 隐藏滚动条但仍保持滚动功能 */
  ::-webkit-scrollbar {
    width: 0px;
    height: 0px;
    display: none;
  }

  /* 确保所有可滚动元素都隐藏滚动条 */
  * {
    scrollbar-width: none; /* Firefox */
    -ms-overflow-style: none; /* IE and Edge */
  }

  /* 隐藏滚动条但仍保持滚动功能 - Webkit浏览器 */
  ::-webkit-scrollbar-track {
    background: transparent;
  }

  ::-webkit-scrollbar-thumb {
    background: transparent;
  }
}

/* React Contexify 自定义样式 */
.react-contexify {
  background-color: hsl(var(--popover));
  border: 1px solid hsl(var(--border));
  border-radius: var(--radius);
  box-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
  min-width: 14rem;
  padding: 0.25rem;
  z-index: 9999;
}

.react-contexify__item {
  color: hsl(var(--popover-foreground));
  padding: 0.375rem 0.5rem;
  border-radius: calc(var(--radius) - 2px);
  font-size: 0.875rem;
  cursor: pointer;
  outline: none;
  transition: all 0.15s ease;
}

.react-contexify__item:not(.react-contexify__item--disabled):hover {
  background-color: hsl(var(--accent));
  color: hsl(var(--accent-foreground));
}

.react-contexify__item:focus {
  background-color: hsl(var(--accent));
  color: hsl(var(--accent-foreground));
}

.react-contexify__item--disabled {
  color: hsl(var(--muted-foreground));
  cursor: not-allowed;
  opacity: 0.5;
}

.react-contexify__separator {
  height: 1px;
  background-color: hsl(var(--border));
  margin: 0.25rem 0;
}

.react-contexify__submenu {
  position: relative;
}

.react-contexify__submenu-arrow {
  margin-left: auto;
  padding-left: 0.5rem;
}

.react-contexify__submenu > .react-contexify {
  left: 100%;
  top: 0;
  margin-left: 0.25rem;
}