/*
 * Isaac Academy 原型样式（T-SITE-03）。
 *
 * 色值取自 Isaac Sim 5.1.0 官方文档站的 CSS 变量（2026-09-30 读取）：
 *   https://docs.isaacsim.omniverse.nvidia.com/5.1.0/_static/styles/nvidia-sphinx-theme.css?v=df3ac72c
 * 只取色值、字号、尺寸等数值，没有复制该文件（其许可为 NVIDIA 专有）。
 * 逐项来源见本文件注释中的 [nv:…] 标记，对应上面文件里同名变量或选择器。
 * 该站 custom.css 只含 rubric 标题、表格与文字方向的工具类，没有配色，未取用。
 * admonition、代码块、表格斑马纹等未被覆盖的颜色，官方站用的是 pydata-sphinx-theme 0.16.1 的默认值；
 * 本站锁定同一版本，因此这些颜色自动一致，不在此重复定义。
 */

/* ---- 色板：浅色（官方站 html:not([data-theme]),html[data-theme=light]） ---- */
html:not([data-theme]),
html[data-theme="light"] {
  --nv-color-green: #76b900;                                  /* [nv:--nv-color-green] 品牌绿 */
  --nv-color-green-2: #004831;                                /* [nv:--nv-color-green-2] 深绿 */
  --pst-color-background: #fff;                               /* [nv:--pst-color-background] 页面背景 */
  --pst-color-on-background: #fff;                            /* [nv:--pst-color-on-background] 顶栏背景 */
  --pst-color-shadow: #ccc;                                   /* [nv:--pst-color-shadow] */
  --pst-color-heading: #000;                                  /* [nv:--pst-color-heading] 标题 */
  --pst-color-text-base: #1a1a1a;                             /* [nv:--pst-color-text-base] 正文 */
  --pst-color-text-muted: #666;                               /* [nv:--pst-color-text-muted] 次要文字 */
  --pst-color-surface: #f7f7f7;                               /* [nv:--pst-color-surface] 面板、代码块外框 */
  --pst-color-on-surface: #333;                               /* [nv:--pst-color-on-surface] 边框 */
  --pst-color-primary: var(--nv-color-green-2);               /* [nv:--pst-color-primary] 浅色下主色为深绿 */
  --pst-color-table-row-hover-bg: var(--nv-color-green);      /* [nv:--pst-color-table-row-hover-bg] */
  --pst-color-link: var(--pst-color-text-base);               /* [nv:--pst-color-link] 链接文字同正文色，靠绿色下划线区分 */
  --pst-color-link-hover: var(--pst-color-text-base);         /* [nv:--pst-color-link-hover] */
  --pst-color-inline-code: var(--pst-color-primary);          /* [nv:--pst-color-inline-code] */
  --pst-color-inline-code-links: var(--pst-color-primary);    /* [nv:--pst-color-inline-code-links] */
  --pst-color-secondary: var(--pst-color-primary);            /* [nv:--pst-color-secondary] */
  --pst-color-secondary-bg: var(--nv-color-green);            /* [nv:--pst-color-secondary-bg] */
  --pst-color-accent: var(--nv-color-green);                  /* [nv:--pst-color-accent] */
}

/* ---- 色板：深色（官方站 html[data-theme=dark]） ---- */
html[data-theme="dark"] {
  --nv-color-green: #76b900;                                  /* [nv:--nv-color-green] */
  --nv-color-green-2: #004831;                                /* [nv:--nv-color-green-2] */
  --pst-color-background: #111;                               /* [nv:--pst-color-background] */
  --pst-color-on-background: #000;                            /* [nv:--pst-color-on-background] 顶栏近黑 */
  --pst-color-shadow: #000;                                   /* [nv:--pst-color-shadow] */
  --pst-color-heading: #fff;                                  /* [nv:--pst-color-heading] */
  --pst-color-text-base: #eee;                                /* [nv:--pst-color-text-base] */
  --pst-color-text-muted: #999;                               /* [nv:--pst-color-text-muted] */
  --pst-color-surface: #1a1a1a;                               /* [nv:--pst-color-surface] */
  --pst-color-on-surface: #ddd;                               /* [nv:--pst-color-on-surface] */
  --pst-color-primary: var(--nv-color-green);                 /* [nv:--pst-color-primary] 深色下主色为品牌绿 */
  --pst-color-table-row-hover-bg: var(--nv-color-green-2);    /* [nv:--pst-color-table-row-hover-bg] */
  --pst-color-link: var(--pst-color-text-base);               /* [nv:--pst-color-link] */
  --pst-color-link-hover: var(--pst-color-text-base);         /* [nv:--pst-color-link-hover] */
  --pst-color-inline-code: var(--pst-color-primary);          /* [nv:--pst-color-inline-code] */
  --pst-color-inline-code-links: var(--pst-color-primary);    /* [nv:--pst-color-inline-code-links] */
  --pst-color-secondary: var(--pst-color-primary);            /* [nv:--pst-color-secondary] */
  --pst-color-secondary-bg: var(--nv-color-green-2);          /* [nv:--pst-color-secondary-bg] */
  --pst-color-accent: var(--nv-color-green);                  /* [nv:--pst-color-accent] */
}

/* ---- 字号与尺寸（官方站 html{…}） ---- */
html {
  --pst-font-size-h1: 2.25rem;                                /* [nv:--pst-font-size-h1] */
  --pst-font-size-h2: 1.75rem;                                /* [nv:--pst-font-size-h2] */
  --pst-font-size-h3: 1.5rem;                                 /* [nv:--pst-font-size-h3] */
  --pst-font-size-h4: 1.25rem;                                /* [nv:--pst-font-size-h4] */
  --pst-font-size-h5: 1.125rem;                               /* [nv:--pst-font-size-h5] */
  --pst-font-size-h6: 1rem;                                   /* [nv:--pst-font-size-h6] */
  --pst-font-weight-heading: 700;                             /* [nv:--pst-font-weight-heading] */
  --pst-header-height: 3rem;                                  /* [nv:--pst-header-height] */
  /* 字体：官方站为 NVIDIA,Arial,Helvetica,Sans-Serif 与 RobotoMono,SFMono-Regular,…（实测）。
     NVIDIA Sans 为专有字体不能用，改用 Inter；中文 Noto Sans SC；其后保留官方站的后备字体。
     Roboto Mono 使用 Google Fonts 的开源版本（Apache-2.0），不是 NVIDIA 托管的文件。 */
  --pst-font-family-base: "Inter", "Noto Sans SC", Arial, Helvetica, sans-serif;
  --pst-font-family-heading: var(--pst-font-family-base);
  --pst-font-family-monospace: "Roboto Mono", "Noto Sans SC", SFMono-Regular, Menlo, Monaco, Consolas,
    "Liberation Mono", "Courier New", Courier, monospace;
  overflow-y: scroll;                                         /* [nv:html overflow-y] */
}

/* ---- 结构细节（对应官方站同名选择器） ---- */
.bd-article h1, .bd-article h2, .bd-article h3,
.bd-article h4, .bd-article h5, .bd-article h6 {
  color: var(--pst-color-heading);                            /* [nv:.bd-article h1…h6] */
  word-wrap: break-word;
}
.bd-article a { text-decoration-color: var(--nv-color-green); } /* [nv:.bd-article a] 绿色下划线 */
.bd-article a.headerlink { color: var(--pst-color-primary); }   /* [nv:.bd-article a.headerlink] */
.navbar-brand { font-weight: 700; padding: 0; }                  /* [nv:.navbar-brand] */
.bd-sidebar-primary { flex-basis: 20%; min-width: var(--pst-sidebar-secondary); }   /* [nv:.bd-sidebar-primary] */
.bd-sidebar-secondary { flex-basis: 25%; min-width: var(--pst-sidebar-secondary); } /* [nv:.bd-sidebar-secondary] */
.bd-sidebar .nav-item__separator { display: none; }              /* [nv:.bd-sidebar .nav-item__separator] */
.toc-entry a.nav-link.active,
nav.bd-links .current > a {
  box-shadow: inset max(3px, .1875rem, .12em) 0 0 var(--nv-color-green); /* [nv:当前项左侧绿条] */
}
.bd-footer { color: var(--pst-color-text-muted); font-size: var(--pst-sidebar-font-size-mobile); } /* [nv:.bd-footer] 实测 14.4px */
@media (min-width: 960px) { .bd-footer { font-size: var(--pst-sidebar-font-size); } }
.caption-number:after { content: "："; margin-left: -.25rem; }    /* [nv:.caption-number:after]，改用中文冒号 */

/* ---- 本站自加 ---- */
.academy-toc-title {              /* 实测官方站 "Table of Contents"：19.2px / 600 */
  font-size: 1.2rem;
  font-weight: 600;
  color: var(--pst-color-text-base);  /* 实测官方站为正文色 #1a1a1a，不是标题色 */
  margin: 0 0 .5rem;
}
nav.bd-links p.caption {             /* 章节分组名；实测官方站为 600、正文色 */
  font-weight: 600;
  color: var(--pst-color-text-base);
  text-transform: none;
}
.academy-footer { margin: 0; }
/* 搜索：官方站为 34×34 的图标按钮（[nv:.search-button-field span{display:none}]），文字与快捷键提示隐藏 */
.search-button-field span { display: none; }
/* 顶栏：站名靠左，搜索框与深浅色切换靠右（官方站布局） */
.bd-header .navbar-header-items__end { margin-left: auto; justify-content: flex-end; }
.bd-content .mermaid { text-align: center; }

/* Mermaid：sphinxcontrib-mermaid 注入的样式把 SVG 拉伸到 100% 宽（max-width: 100% !important），
   小图会被放大、超出一屏。js/mermaid-size.js 在每次渲染后按 viewBox 宽度设置 max-width，
   让图按原始尺寸显示（不超过正文宽度），与 MkDocs 站的观感一致。 */
.bd-content pre.mermaid { background: transparent; border: none; }
.bd-content pre.mermaid > svg { height: auto; display: block; margin: 0 auto; }

/* ======================= T-SITE-05 ======================= */

/* ---- 0. 宽度：对齐参考站（isaac.kiloong.com/zh，实测 2560 / 1920 / 1440） ----
   pydata 默认 .bd-page-width 为 88rem、正文容器约 60em 上限，会把正文锁窄。 */
.bd-page-width { max-width: 100rem; }                          /* 参考站 1600px */
.bd-main .bd-content .bd-article-container { max-width: none; } /* 参考站无上限 */
.bd-sidebar-secondary { flex: 0 0 15rem; width: 15rem; min-width: 15rem; } /* 参考站 240px（覆盖前面 min-width: var(--pst-sidebar-secondary)） */

/* ---- 2. 顶栏身份 ---- */
.navbar-brand img.logo__image { height: 28px; width: auto; }   /* 参考站 logo 图 48px 含留白，可见图形约 22px；自制方形标识取 28px */
.navbar-brand .logo__title { font-size: 20px; font-weight: 700; } /* 实测参考站标题 20px / 700 */
.bd-header .navbar-header-items__start { flex-wrap: nowrap; align-items: center; }
.bd-header .navbar-header-items__start .navbar-item { display: flex; align-items: center; flex-shrink: 0; }
.bd-header .navbar-brand { margin-right: 1rem !important; }
.bd-header .navbar-brand .logo__title { white-space: nowrap; }
.academy-subtitle {
  font-size: 14px;                                             /* 实测参考站版本号 14px / 400 */
  font-weight: 400;
  color: var(--pst-color-text-muted);
  margin-left: 0;
  white-space: nowrap;
  align-self: center;
}
@media (max-width: 960px) { .academy-subtitle { display: none; } }
.bd-header-announcement {
  background-color: var(--pst-color-surface);
  color: var(--pst-color-text-base);
  font-size: .875rem;
  min-height: 2.25rem;
}
.bd-header-announcement::after { background-color: transparent; }

/* ---- 3. 页首引导块：学习目标 / 前置知识（MyST 仍用 admonition，只改样式） ----
   参考站 .isaacsim-section-lead：0.98rem、行高 1.7、正文次要色；这里加左侧细绿线与小号灰色标题。 */
.bd-article div.admonition.lead-goals,
.bd-article div.admonition.lead-prereq {
  background: transparent !important;
  box-shadow: none !important;
  border: none !important;
  border-left: 2px solid var(--nv-color-green) !important;
  border-radius: 0 !important;
  overflow: visible;
  padding: .1rem 0 .1rem 1rem;
  margin: 0 0 0 0;
  max-width: 760px;
  color: var(--pst-color-text-muted);
  font-size: .98rem;
  line-height: 1.7;
}
.bd-article .admonition.lead-goals { margin-top: .5rem; padding-bottom: .4rem; }
.bd-article .admonition.lead-prereq { margin-bottom: 1.6rem; padding-top: 0; }
.bd-article .admonition.lead-goals > .admonition-title,
.bd-article .admonition.lead-prereq > .admonition-title {
  background: transparent;
  color: var(--pst-color-text-muted);
  font-size: .8rem;
  font-weight: 600;
  letter-spacing: .04em;
  padding: 0;
  margin: 0 0 .2rem 0;
}
.bd-article .admonition.lead-goals > .admonition-title::after,
.bd-article .admonition.lead-prereq > .admonition-title::after { display: none; }
.bd-article .admonition.lead-goals > .admonition-title::before,
.bd-article .admonition.lead-prereq > .admonition-title::before { display: none; }
.bd-article .admonition.lead-goals p,
.bd-article .admonition.lead-goals ul { margin-bottom: .2rem; }
/* "前置知识"压成一行：标题与列表同行，列表项以顿号相连 */
.bd-article .admonition.lead-prereq { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 .5rem; }
.bd-article .admonition.lead-prereq > .admonition-title { margin: 0; }
.bd-article .admonition.lead-prereq > .admonition-title::after { content: "："; display: inline; position: static; background: none; width: auto; height: auto; }
.bd-article .admonition.lead-prereq ul { display: inline; padding: 0; margin: 0; list-style: none; }
.bd-article .admonition.lead-prereq li { display: inline; }
.bd-article .admonition.lead-prereq li + li::before { content: "、"; }

/* ---- 5. Mermaid：白底细灰边圆角节点、正文字体、品牌绿强调；深浅色都跟随主题变量 ---- */
.bd-content pre.mermaid svg { font-family: var(--pst-font-family-base) !important; }
.bd-content pre.mermaid svg .node rect,
.bd-content pre.mermaid svg .node polygon,
.bd-content pre.mermaid svg .node circle,
.bd-content pre.mermaid svg .actor,
.bd-content pre.mermaid svg rect.actor {
  fill: var(--pst-color-background) !important;
  stroke: var(--pst-color-border) !important;
  stroke-width: 1px !important;
}
.bd-content pre.mermaid svg .node rect { rx: 6px; ry: 6px; }
.bd-content pre.mermaid svg .cluster rect {
  fill: var(--pst-color-surface) !important;
  stroke: var(--pst-color-border) !important;
  rx: 8px; ry: 8px;
}
.bd-content pre.mermaid svg .nodeLabel,
.bd-content pre.mermaid svg .cluster-label,
.bd-content pre.mermaid svg .cluster-label span,
.bd-content pre.mermaid svg .edgeLabel,
.bd-content pre.mermaid svg text.actor,
.bd-content pre.mermaid svg .messageText,
.bd-content pre.mermaid svg .loopText,
.bd-content pre.mermaid svg .labelText,
.bd-content pre.mermaid svg .noteText {
  color: var(--pst-color-text-base) !important;
  fill: var(--pst-color-text-base) !important;
}
.bd-content pre.mermaid svg .edgeLabel,
.bd-content pre.mermaid svg .edgeLabel rect,
.bd-content pre.mermaid svg .labelBkg { background-color: var(--pst-color-background) !important; fill: var(--pst-color-background) !important; }
.bd-content pre.mermaid svg .flowchart-link,
.bd-content pre.mermaid svg .messageLine0,
.bd-content pre.mermaid svg .messageLine1,
.bd-content pre.mermaid svg .actor-line { stroke: var(--pst-color-text-muted) !important; stroke-width: 1px !important; }
.bd-content pre.mermaid svg marker path,
.bd-content pre.mermaid svg .arrowheadPath,
.bd-content pre.mermaid svg #arrowhead path { fill: var(--pst-color-text-muted) !important; stroke: var(--pst-color-text-muted) !important; }
.bd-content pre.mermaid svg .loopLine { stroke: var(--nv-color-green) !important; }
.bd-content pre.mermaid svg .note { fill: var(--pst-color-surface) !important; stroke: var(--nv-color-green) !important; }
/* 图内用 classDef user 标出的"用户代码"节点：保留自定义描边颜色（橙色） */
.bd-content pre.mermaid svg .node.user rect { stroke: #f57c00 !important; stroke-width: 3px !important; }
.bd-content pre.mermaid svg .edgeLabel p,
.bd-content pre.mermaid svg .edgeLabel span,
.bd-content pre.mermaid svg .edgeLabel div { background-color: transparent !important; }

/* ---- 公告条关闭按钮（T-SITE-06） ---- */
.academy-announcement-close {
  position: absolute;
  right: 1rem;
  top: 50%;
  transform: translateY(-50%);
  border: none;
  background: transparent;
  color: var(--pst-color-text-muted);
  font-size: 1.25rem;
  line-height: 1;
  padding: .25rem .5rem;
  cursor: pointer;
}
.academy-announcement-close:hover { color: var(--pst-color-text-base); }
