/**
 * AIMake 文档样式
 * 参考: Stripe Docs, Vercel Docs, Tailwind CSS Docs, Linear Docs
 * 特点: 极简设计、暗色主题支持、优秀的代码展示
 */

/* ==================== CSS 变量 ==================== */
:root {
  --font-sans: 'Inter', system-ui, -apple-system, blinkmacsystemfont, sans-serif;
  --font-mono: 'JetBrains Mono', 'SF Mono', monaco, 'Cascadia Code', consolas, monospace;

  /* 浅色主题 */
  --bg-primary: #fff;
  --bg-secondary: #f9fafb;
  --bg-tertiary: #f3f4f6;
  --bg-code: #1e293b;
  --text-primary: #111827;
  --text-secondary: #4b5563;
  --text-tertiary: #9ca3af;
  --border-color: #e5e7eb;
  --accent-color: #0ea5e9;
  --accent-hover: #0284c7;
}

.dark {
  --bg-primary: #0a0a0a;
  --bg-secondary: #111;
  --bg-tertiary: #1a1a1a;
  --bg-code: #0d1117;
  --text-primary: #f9fafb;
  --text-secondary: #d1d5db;
  --text-tertiary: #6b7280;
  --border-color: #27272a;
  --accent-color: #38bdf8;
  --accent-hover: #0ea5e9;
}

/* ==================== 基础样式 ==================== */
* {
  scrollbar-width: thin;
  scrollbar-color: var(--text-tertiary) transparent;
}

*::-webkit-scrollbar {
  width: 6px;
  height: 6px;
}

*::-webkit-scrollbar-track {
  background: transparent;
}

*::-webkit-scrollbar-thumb {
  background: var(--text-tertiary);
  border-radius: 3px;
}

*::-webkit-scrollbar-thumb:hover {
  background: var(--text-secondary);
}

/* ==================== 侧边栏导航 ==================== */
.nav-section {
  margin-bottom: 1.5rem;
}

.nav-section-title {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 0.75rem;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--text-tertiary);
  cursor: pointer;
  border-radius: 0.5rem;
  transition: all 0.2s;
}

.nav-section-title:hover {
  background: var(--bg-tertiary);
  color: var(--text-secondary);
}

.nav-section-title svg {
  width: 1rem;
  height: 1rem;
  transition: transform 0.2s;
}

.nav-section.collapsed .nav-section-title svg {
  transform: rotate(-90deg);
}

.nav-section.collapsed .nav-section-items {
  display: none;
}

.nav-section-items {
  margin-top: 0.25rem;
}

.nav-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 0.75rem;
  margin: 0.125rem 0;
  font-size: 0.875rem;
  color: var(--text-secondary);
  border-radius: 0.5rem;
  text-decoration: none;
  transition: all 0.15s;
}

.nav-item:hover {
  background: var(--bg-tertiary);
  color: var(--text-primary);
}

.nav-item.active {
  background: rgb(14 165 233 / 10%);
  color: var(--accent-color);
  font-weight: 500;
}

.nav-item-icon {
  font-size: 1rem;
  opacity: 0.8;
}

.nav-item-badge {
  margin-left: auto;
  padding: 0.125rem 0.375rem;
  font-size: 0.625rem;
  font-weight: 600;
  text-transform: uppercase;
  background: rgb(139 92 246 / 10%);
  color: #8b5cf6;
  border-radius: 9999px;
}

.dark .nav-item-badge {
  background: rgb(139 92 246 / 20%);
}

/* ==================== 文档内容样式 ==================== */
.docs-content {
  font-family: var(--font-sans);
  font-size: 1rem;
  line-height: 1.75;
  color: var(--text-primary);
}

/* 标题 */
.docs-content h1 {
  font-size: 2.25rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  margin-bottom: 1rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--border-color);
}

.docs-content h2 {
  font-size: 1.5rem;
  font-weight: 600;
  letter-spacing: -0.025em;
  margin-top: 3rem;
  margin-bottom: 1rem;
  padding-bottom: 0.5rem;
  border-bottom: 1px solid var(--border-color);
}

.docs-content h3 {
  font-size: 1.25rem;
  font-weight: 600;
  margin-top: 2rem;
  margin-bottom: 0.75rem;
}

.docs-content h4 {
  font-size: 1.125rem;
  font-weight: 600;
  margin-top: 1.5rem;
  margin-bottom: 0.5rem;
}

/* 标题锚点 */
.docs-content h1,
.docs-content h2,
.docs-content h3,
.docs-content h4 {
  position: relative;
  scroll-margin-top: 5rem;
}

.docs-content h2:hover .heading-anchor,
.docs-content h3:hover .heading-anchor,
.docs-content h4:hover .heading-anchor {
  opacity: 1;
}

.heading-anchor {
  position: absolute;
  left: -1.5rem;
  top: 50%;
  transform: translateY(-50%);
  color: var(--text-tertiary);
  text-decoration: none;
  opacity: 0;
  transition: opacity 0.2s;
}

.heading-anchor:hover {
  color: var(--accent-color);
}

/* 段落 */
.docs-content p {
  margin: 1rem 0;
}

/* 链接 */
.docs-content a {
  color: var(--accent-color);
  text-decoration: none;
  transition: color 0.15s;
}

.docs-content a:hover {
  color: var(--accent-hover);
  text-decoration: underline;
}

/* 强调 */
.docs-content strong {
  font-weight: 600;
  color: var(--text-primary);
}

.docs-content em {
  font-style: italic;
}

/* 列表 */
.docs-content ul,
.docs-content ol {
  margin: 1rem 0;
  padding-left: 1.5rem;
}

.docs-content li {
  margin: 0.5rem 0;
}

.docs-content ul li {
  list-style-type: disc;
}

.docs-content ol li {
  list-style-type: decimal;
}

.docs-content li::marker {
  color: var(--text-tertiary);
}

/* 引用块 */
.docs-content blockquote {
  margin: 1.5rem 0;
  padding: 1rem 1.5rem;
  background: var(--bg-secondary);
  border-left: 4px solid var(--accent-color);
  border-radius: 0 0.5rem 0.5rem 0;
  color: var(--text-secondary);
}

.docs-content blockquote p {
  margin: 0;
}

/* 行内代码 */
.docs-content code:not(pre code) {
  padding: 0.2rem 0.4rem;
  font-family: var(--font-mono);
  font-size: 0.875em;
  background: var(--bg-tertiary);
  border-radius: 0.375rem;
  color: #ec4899;
}

.dark .docs-content code:not(pre code) {
  background: rgb(255 255 255 / 10%);
  color: #f472b6;
}

/* 代码块容器 */
.code-block-wrapper {
  position: relative;
  margin: 1.5rem 0;
  background: #1e293b;
  border-radius: 0.75rem;
  overflow: hidden;
  border: 1px solid #334155;
}

.dark .code-block-wrapper {
  background: #0d1117;
  border-color: #30363d;
}

/* 代码块 */
.docs-content pre {
  position: relative;
  margin: 0;
  padding: 0;
  background: transparent;
  border-radius: 0;
  overflow: hidden;
  border: none;
}

/* 没有被包装的独立 pre（无语言标识的代码块） */
.docs-content > pre:not(.code-block-wrapper pre) {
  margin: 1.5rem 0;
  background: #1e293b;
  border-radius: 0.75rem;
  border: 1px solid #334155;
}

.dark .docs-content > pre:not(.code-block-wrapper pre) {
  background: #0d1117;
  border-color: #30363d;
}

.docs-content pre code {
  display: block;
  padding: 1.25rem 1.5rem;
  font-family: var(--font-mono);
  font-size: 0.875rem;
  line-height: 1.7;
  overflow-x: auto;
  color: #e2e8f0;
  background: transparent;
}

/* 代码块标题 */
.code-block-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5rem 1rem;
  background: rgb(0 0 0 / 30%);
  border-bottom: 1px solid rgb(255 255 255 / 10%);
  font-family: var(--font-mono);
  font-size: 0.75rem;
  color: #94a3b8;
}

.code-block-lang {
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.code-copy-btn {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  padding: 0.25rem 0.5rem;
  background: rgb(255 255 255 / 10%);
  border: none;
  border-radius: 0.375rem;
  color: #94a3b8;
  cursor: pointer;
  transition: all 0.15s;
}

.code-copy-btn:hover {
  background: rgb(255 255 255 / 20%);
  color: #fff;
}

.code-copy-btn.copied {
  background: rgb(34 197 94 / 20%);
  color: #22c55e;
}

/* 表格 */
.docs-content table {
  width: 100%;
  margin: 1.5rem 0;
  border-collapse: collapse;
  font-size: 0.875rem;
}

.docs-content thead {
  background: var(--bg-secondary);
}

.docs-content th {
  padding: 0.75rem 1rem;
  text-align: left;
  font-weight: 600;
  color: var(--text-primary);
  border: 1px solid var(--border-color);
}

.docs-content td {
  padding: 0.75rem 1rem;
  border: 1px solid var(--border-color);
  color: var(--text-secondary);
}

.docs-content tbody tr:hover {
  background: var(--bg-secondary);
}

/* 响应式表格 */
.table-wrapper {
  overflow-x: auto;
  margin: 1.5rem 0;
  border-radius: 0.75rem;
  border: 1px solid var(--border-color);
}

.table-wrapper table {
  margin: 0;
}

.table-wrapper th:first-child,
.table-wrapper td:first-child {
  border-left: none;
}

.table-wrapper th:last-child,
.table-wrapper td:last-child {
  border-right: none;
}

.table-wrapper thead tr:first-child th {
  border-top: none;
}

.table-wrapper tbody tr:last-child td {
  border-bottom: none;
}

/* 水平线 */
.docs-content hr {
  margin: 3rem 0;
  border: none;
  border-top: 1px solid var(--border-color);
}

/* 图片 */
.docs-content img {
  max-width: 100%;
  height: auto;
  margin: 1.5rem 0;
  border-radius: 0.75rem;
  box-shadow:
    0 4px 6px -1px rgb(0 0 0 / 10%),
    0 2px 4px -1px rgb(0 0 0 / 6%);
}

/* ==================== 提示框 ==================== */
.callout {
  margin: 1.5rem 0;
  padding: 1rem 1.25rem;
  border-radius: 0.75rem;
  border-left: 4px solid;
}

.callout-info {
  background: rgb(14 165 233 / 10%);
  border-color: #0ea5e9;
}

.callout-warning {
  background: rgb(245 158 11 / 10%);
  border-color: #f59e0b;
}

.callout-error {
  background: rgb(239 68 68 / 10%);
  border-color: #ef4444;
}

.callout-success {
  background: rgb(34 197 94 / 10%);
  border-color: #22c55e;
}

.callout-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-weight: 600;
  margin-bottom: 0.5rem;
}

.callout-content p:last-child {
  margin-bottom: 0;
}

/* ==================== 目录（TOC） ==================== */
#toc-list a {
  display: block;
  padding: 0.375rem 0.75rem;
  color: var(--text-secondary);
  text-decoration: none;
  border-left: 2px solid transparent;
  transition: all 0.15s;
}

#toc-list a:hover {
  color: var(--text-primary);
  border-left-color: var(--border-color);
}

#toc-list a.active {
  color: var(--accent-color);
  border-left-color: var(--accent-color);
  font-weight: 500;
}

#toc-list a.toc-h3 {
  padding-left: 1.5rem;
  font-size: 0.8125rem;
}

#toc-list a.toc-h4 {
  padding-left: 2.25rem;
  font-size: 0.75rem;
}

/* ==================== 文档导航 ==================== */
.doc-nav-link {
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 1rem 1.25rem;
  background: var(--bg-secondary);
  border: 1px solid var(--border-color);
  border-radius: 0.75rem;
  text-decoration: none;
  transition: all 0.2s;
}

.doc-nav-link:hover {
  background: var(--bg-tertiary);
  border-color: var(--accent-color);
}

.doc-nav-link .label {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.doc-nav-link .title {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--text-primary);
}

/* ==================== 搜索结果 ==================== */
.search-result-item {
  display: block;
  padding: 0.75rem 1rem;
  border-bottom: 1px solid var(--border-color);
  text-decoration: none;
  transition: background 0.15s;
}

.search-result-item:hover,
.search-result-item.selected {
  background: var(--bg-secondary);
}

.search-result-item:last-child {
  border-bottom: none;
}

.search-result-title {
  font-weight: 500;
  color: var(--text-primary);
}

.search-result-path {
  font-size: 0.75rem;
  color: var(--text-tertiary);
  margin-top: 0.25rem;
}

.search-result-highlight {
  background: rgb(14 165 233 / 20%);
  color: var(--accent-color);
  padding: 0.125rem 0.25rem;
  border-radius: 0.25rem;
}

/* ==================== Prism.js 主题覆盖 ==================== */
code[class*='language-'],
pre[class*='language-'] {
  font-family: var(--font-mono);
  font-size: 0.875rem;
  line-height: 1.7;
  color: #e2e8f0;
  background: none;
  text-shadow: none;
}

/* Token 颜色 */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
  color: #64748b;
}

.token.punctuation {
  color: #94a3b8;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
  color: #f472b6;
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
  color: #a3e635;
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
  color: #fbbf24;
}

.token.atrule,
.token.attr-value,
.token.keyword {
  color: #38bdf8;
}

.token.function,
.token.class-name {
  color: #c084fc;
}

.token.regex,
.token.important,
.token.variable {
  color: #fb923c;
}

/* ==================== 响应式设计 ==================== */
@media (width <= 1280px) {
  #toc-sidebar {
    display: none;
  }
}

@media (width <= 1024px) {
  .docs-content {
    font-size: 0.9375rem;
  }

  .docs-content h1 {
    font-size: 1.875rem;
  }

  .docs-content h2 {
    font-size: 1.375rem;
  }

  .docs-content h3 {
    font-size: 1.125rem;
  }
}

@media (width <= 640px) {
  .docs-content pre code {
    padding: 1rem;
    font-size: 0.8125rem;
  }

  .docs-content table {
    font-size: 0.8125rem;
  }

  .docs-content th,
  .docs-content td {
    padding: 0.5rem 0.75rem;
  }
}

/* ==================== 动画 ==================== */
@keyframes fadeIn {
  from {
    opacity: 0;
    transform: translateY(10px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.docs-content {
  animation: fadeIn 0.3s ease-out;
}

/* ==================== 打印样式 ==================== */
@media print {
  header,
  #sidebar,
  #toc-sidebar,
  #back-to-top,
  #doc-pagination,
  .feedback-btn {
    display: none !important;
  }

  main {
    margin-left: 0 !important;
  }

  .docs-content {
    max-width: 100% !important;
  }

  .docs-content pre {
    white-space: pre-wrap;
    word-break: break-all;
  }
}
