.toc { background-color: #ffffff; border-radius: 12px; margin-bottom: 40px; border: 1px solid #e0e0e6; overflow: hidden; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04); }
.toc .toc-toggle { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px; cursor: pointer; user-select: none; transition: background-color 0.2s; }
.toc .toc-toggle:hover { background-color: #f8f8fc; }
.toc .toc-title { font-size: 16px; font-weight: 700; color: #1a1a2e; margin: 0; }
.toc .toc-arrow { font-size: 12px; color: #1F25DB; transition: transform 0.3s; }
.toc.open .toc-arrow { transform: rotate(180deg); }
.toc .toc-list { list-style: none; margin: 0; padding: 0 20px; display: none; }
.toc.open .toc-list { display: block; padding: 0 20px 16px 20px; }
.toc .toc-list li { margin-bottom: 4px; break-inside: avoid; }
.toc .toc-list a { font-size: 14px; color: #1F84DB; display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-radius: 6px; transition: all 0.2s; }
.toc .toc-list a:hover { color: #1F25DB; background-color: #f0f0ff; text-decoration: none; }
.toc .toc-list .toc-icon { color: #1F25DB; font-size: 8px; flex-shrink: 0; }
@media (min-width: 768px) {
  .toc .toc-toggle { padding: 18px 28px; }
  .toc.open .toc-list { padding: 0 28px 20px 28px; columns: 2; column-gap: 24px; }
}
