/* ===========================
   Custom Styles for JustRaincoat Notebook
   =========================== */

/* ========== CSS Color Variables (for tailwind-typography context) ========== */
/* These are normally defined in .light .markdown-body / .dark .markdown-body,
   but articles may use tailwind-typography class. Defining them globally
   under .light / .dark ensures they work in both contexts. */
.light {
  --color-prettylights-syntax-comment: #6e7781;
  --color-prettylights-syntax-constant: #0550ae;
  --color-prettylights-syntax-entity: #6639ba;
  --color-prettylights-syntax-storage-modifier-import: #24292f;
  --color-prettylights-syntax-entity-tag: #116329;
  --color-prettylights-syntax-keyword: #cf222e;
  --color-prettylights-syntax-string: #0a3069;
  --color-prettylights-syntax-variable: #953800;
  --color-prettylights-syntax-brackethighlighter-unmatched: #82071e;
  --color-prettylights-syntax-invalid-illegal-text: #f6f8fa;
  --color-prettylights-syntax-invalid-illegal-bg: #82071e;
  --color-prettylights-syntax-carriage-return-text: #f6f8fa;
  --color-prettylights-syntax-carriage-return-bg: #cf222e;
  --color-prettylights-syntax-string-regexp: #116329;
  --color-prettylights-syntax-markup-list: #3b2300;
  --color-prettylights-syntax-markup-heading: #0550ae;
  --color-prettylights-syntax-markup-italic: #24292f;
  --color-prettylights-syntax-markup-bold: #24292f;
  --color-prettylights-syntax-markup-deleted-text: #82071e;
  --color-prettylights-syntax-markup-deleted-bg: #ffebe9;
  --color-prettylights-syntax-markup-inserted-text: #116329;
  --color-prettylights-syntax-markup-inserted-bg: #dafbe1;
  --color-prettylights-syntax-markup-changed-text: #953800;
  --color-prettylights-syntax-markup-changed-bg: #ffd8b5;
  --color-prettylights-syntax-markup-ignored-text: #eaeef2;
  --color-prettylights-syntax-markup-ignored-bg: #0550ae;
  --color-prettylights-syntax-meta-diff-range: #8250df;
  --color-prettylights-syntax-brackethighlighter-angle: #57606a;
  --color-prettylights-syntax-sublimelinter-gutter-mark: #8c959f;
  --color-prettylights-syntax-constant-other-reference-link: #0a3069;
  --color-fg-default: #1f2328;
  --color-fg-muted: #656d76;
  --color-fg-subtle: #6e7781;
  --color-canvas-default: #ffffff;
  --color-canvas-subtle: #f6f8fa;
  --color-border-default: #d0d7de;
  --color-border-muted: hsla(210, 18%, 87%, 1);
  --color-neutral-muted: rgba(175, 184, 193, 0.2);
  --color-accent-fg: #0969da;
  --color-accent-emphasis: #0969da;
  --color-attention-fg: #9a6700;
  --color-attention-subtle: #fff8c5;
  --color-danger-fg: #d1242f;
  --color-done-fg: #8250df;
}

.dark {
  --color-prettylights-syntax-comment: #8b949e;
  --color-prettylights-syntax-constant: #79c0ff;
  --color-prettylights-syntax-entity: #d2a8ff;
  --color-prettylights-syntax-storage-modifier-import: #c9d1d9;
  --color-prettylights-syntax-entity-tag: #7ee787;
  --color-prettylights-syntax-keyword: #ff7b72;
  --color-prettylights-syntax-string: #a5d6ff;
  --color-prettylights-syntax-variable: #ffa657;
  --color-prettylights-syntax-brackethighlighter-unmatched: #f85149;
  --color-prettylights-syntax-invalid-illegal-text: #f0f6fc;
  --color-prettylights-syntax-invalid-illegal-bg: #8e1519;
  --color-prettylights-syntax-carriage-return-text: #f0f6fc;
  --color-prettylights-syntax-carriage-return-bg: #b62324;
  --color-prettylights-syntax-string-regexp: #7ee787;
  --color-prettylights-syntax-markup-list: #f2cc60;
  --color-prettylights-syntax-markup-heading: #1f6feb;
  --color-prettylights-syntax-markup-italic: #c9d1d9;
  --color-prettylights-syntax-markup-bold: #c9d1d9;
  --color-prettylights-syntax-markup-deleted-text: #ffdcd7;
  --color-prettylights-syntax-markup-deleted-bg: #67060c;
  --color-prettylights-syntax-markup-inserted-text: #aff5b4;
  --color-prettylights-syntax-markup-inserted-bg: #033a16;
  --color-prettylights-syntax-markup-changed-text: #ffdfb6;
  --color-prettylights-syntax-markup-changed-bg: #5a1e02;
  --color-prettylights-syntax-markup-ignored-text: #c9d1d9;
  --color-prettylights-syntax-markup-ignored-bg: #1158c7;
  --color-prettylights-syntax-meta-diff-range: #d2a8ff;
  --color-prettylights-syntax-brackethighlighter-angle: #8b949e;
  --color-prettylights-syntax-sublimelinter-gutter-mark: #484f58;
  --color-prettylights-syntax-constant-other-reference-link: #a5d6ff;
  --color-fg-default: #e6edf3;
  --color-fg-muted: #7d8590;
  --color-fg-subtle: #6e7681;
  --color-canvas-default: #0d1117;
  --color-canvas-subtle: #161b22;
  --color-border-default: #30363d;
  --color-border-muted: #21262d;
  --color-neutral-muted: rgba(110, 118, 129, 0.4);
  --color-accent-fg: #2f81f7;
  --color-accent-emphasis: #1f6feb;
  --color-attention-fg: #d29922;
  --color-attention-subtle: rgba(187, 128, 9, 0.15);
  --color-danger-fg: #f85149;
  --color-done-fg: #a371f7;
}

/* ========== Search Overlay ========== */
#search-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: 10vh;
  visibility: hidden;
  opacity: 0;
  transition: opacity 0.25s ease, visibility 0.25s ease;
}
#search-overlay.open {
  visibility: visible;
  opacity: 1;
}

.search-backdrop {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  backdrop-filter: blur(4px);
}

.search-panel {
  position: relative;
  width: 100%;
  max-width: 640px;
  max-height: 70vh;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
  overflow: hidden;
  transform: translateY(-20px) scale(0.95);
  transition: transform 0.25s ease;
}
#search-overlay.open .search-panel {
  transform: translateY(0) scale(1);
}
.dark .search-panel {
  background: #1e293b;
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}

.search-header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 16px 20px;
  border-bottom: 1px solid #e2e8f0;
}
.dark .search-header {
  border-bottom-color: #334155;
}

.search-header-icon {
  font-size: 20px;
  color: #94a3b8;
  flex-shrink: 0;
}

.search-input {
  flex: 1;
  border: none;
  outline: none;
  font-size: 16px;
  background: transparent;
  color: #1e293b;
}
.dark .search-input {
  color: #f1f5f9;
}
.search-input::placeholder {
  color: #94a3b8;
}

.search-close-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  border-radius: 8px;
  background: transparent;
  color: #64748b;
  cursor: pointer;
  transition: background 0.15s;
  font-size: 20px;
}
.search-close-btn:hover {
  background: #f1f5f9;
}
.dark .search-close-btn {
  color: #94a3b8;
}
.dark .search-close-btn:hover {
  background: #334155;
}

.search-body {
  flex: 1;
  overflow-y: auto;
  min-height: 200px;
  max-height: 50vh;
}

.search-hint,
.search-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 48px 20px;
  color: #94a3b8;
  font-size: 14px;
}

.search-hint-icon,
.search-empty-icon {
  font-size: 40px;
  opacity: 0.4;
}

.search-results {
  padding: 8px 0;
}

.search-result-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 20px;
  text-decoration: none;
  transition: background 0.15s;
  border-left: 3px solid transparent;
}
.search-result-item:hover,
.search-result-item.selected {
  background: #f1f5f9;
  border-left-color: #3b82f6;
}
.dark .search-result-item:hover,
.dark .search-result-item.selected {
  background: #1e293b;
  border-left-color: #60a5fa;
}

.search-result-icon {
  flex-shrink: 0;
  font-size: 20px;
  color: #64748b;
}
.dark .search-result-icon {
  color: #94a3b8;
}

.search-result-content {
  flex: 1;
  min-width: 0;
}

.search-result-title {
  font-size: 15px;
  font-weight: 500;
  color: #1e293b;
  line-height: 1.4;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.dark .search-result-title {
  color: #f1f5f9;
}

.search-result-meta {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-top: 2px;
  font-size: 12px;
  color: #94a3b8;
}

.search-highlight {
  background: #fef08a;
  color: #1e293b;
  padding: 0 2px;
  border-radius: 2px;
}
.dark .search-highlight {
  background: #854d0e;
  color: #fef08a;
}

.search-footer {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  padding: 10px 20px;
  border-top: 1px solid #e2e8f0;
  background: #f8fafc;
}
.dark .search-footer {
  border-top-color: #334155;
  background: #0f172a;
}

.search-footer-text {
  font-size: 12px;
  color: #94a3b8;
}
.search-footer-text kbd {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 4px;
  margin: 0 2px;
  font-size: 11px;
  font-family: inherit;
  border: 1px solid #cbd5e1;
  border-radius: 4px;
  background: #fff;
  color: #64748b;
}
.dark .search-footer-text kbd {
  border-color: #475569;
  background: #1e293b;
  color: #94a3b8;
}

/* ========== Header Navigation Links ========== */
.nav-link {
  position: relative;
  font-size: 0.875rem;
  font-weight: 500;
  color: #64748b;
  text-decoration: none;
  transition: color 0.15s;
  padding: 4px 0;
}
.nav-link:hover {
  color: #2563eb;
}
.dark .nav-link {
  color: #cbd5e1;
}
.dark .nav-link:hover {
  color: #60a5fa;
}

.nav-link.active {
  color: #2563eb;
}
.dark .nav-link.active {
  color: #60a5fa;
}

/* ========== Homepage Catalog/Directory ========== */
.catalog-container {
  margin-top: 0;
}

.catalog-section {
  margin-bottom: 28px;
}

.catalog-section-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 16px;
  border-radius: 12px;
  margin-bottom: 8px;
  background: #fff;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  cursor: pointer;
  transition: all 0.2s;
  border: 1px solid transparent;
}
.catalog-section-header:hover {
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
  border-color: #e2e8f0;
}
.dark .catalog-section-header {
  background: #1e293b;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
}
.dark .catalog-section-header:hover {
  border-color: #334155;
}

.catalog-section-icon {
  font-size: 22px;
  color: #3b82f6;
  flex-shrink: 0;
}

.catalog-section-title {
  font-size: 16px;
  font-weight: 600;
  color: #1e293b;
  flex: 1;
}
.dark .catalog-section-title {
  color: #f1f5f9;
}

.catalog-section-count {
  font-size: 12px;
  color: #94a3b8;
  background: #f1f5f9;
  padding: 2px 10px;
  border-radius: 12px;
  font-weight: 500;
}
.dark .catalog-section-count {
  background: #334155;
  color: #94a3b8;
}

.catalog-post-list {
  margin-left: 0;
  padding-left: 0;
  list-style: none;
}

.catalog-post-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px 8px 28px;
  border-radius: 8px;
  transition: background 0.15s;
}
.catalog-post-item:hover {
  background: #f1f5f9;
}
.dark .catalog-post-item:hover {
  background: #1e293b;
}

.catalog-post-bullet {
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: #94a3b8;
  flex-shrink: 0;
}
.dark .catalog-post-bullet {
  background: #475569;
}

.catalog-post-link {
  flex: 1;
  font-size: 14px;
  color: #334155;
  text-decoration: none;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  transition: color 0.15s;
}
.catalog-post-link:hover {
  color: #2563eb;
}
.dark .catalog-post-link {
  color: #cbd5e1;
}
.dark .catalog-post-link:hover {
  color: #60a5fa;
}

.catalog-post-date {
  font-size: 12px;
  color: #94a3b8;
  flex-shrink: 0;
}

/* ========== Dark Mode Fixes ========== */
/* Ensure all text elements have proper dark mode colors */
.dark .text-gray-900 {
  color: #f1f5f9 !important;
}
.dark .text-gray-800 {
  color: #e2e8f0 !important;
}
.dark .text-gray-700 {
  color: #cbd5e1 !important;
}
.dark .text-gray-600 {
  color: #94a3b8 !important;
}
.dark .text-gray-500 {
  color: #64748b !important;
}

/* ========== Syntax Highlighting (Prism.js tokens → GitHub colors) ========== */
/* ========== Syntax Highlighting (Prism.js tokens → GitHub colors) ========== */
.markdown-body pre code .token.comment,
.tailwind-typography pre code .token.comment,
.markdown-body pre code .token.prolog,
.tailwind-typography pre code .token.prolog,
.markdown-body pre code .token.doctype,
.tailwind-typography pre code .token.doctype,
.markdown-body pre code .token.cdata,
.tailwind-typography pre code .token.cdata {
  color: var(--color-prettylights-syntax-comment);
}
.markdown-body pre code .token.punctuation,
.tailwind-typography pre code .token.punctuation {
  color: var(--color-prettylights-syntax-comment);
}
.markdown-body pre code .token.property,
.tailwind-typography pre code .token.property,
.markdown-body pre code .token.tag,
.tailwind-typography pre code .token.tag,
.markdown-body pre code .token.boolean,
.tailwind-typography pre code .token.boolean,
.markdown-body pre code .token.number,
.tailwind-typography pre code .token.number,
.markdown-body pre code .token.constant,
.tailwind-typography pre code .token.constant,
.markdown-body pre code .token.symbol,
.tailwind-typography pre code .token.symbol,
.markdown-body pre code .token.deleted,
.tailwind-typography pre code .token.deleted {
  color: var(--color-prettylights-syntax-constant);
}
.markdown-body pre code .token.selector,
.tailwind-typography pre code .token.selector,
.markdown-body pre code .token.attr-name,
.tailwind-typography pre code .token.attr-name,
.markdown-body pre code .token.char,
.tailwind-typography pre code .token.char,
.markdown-body pre code .token.builtin,
.tailwind-typography pre code .token.builtin,
.markdown-body pre code .token.inserted,
.tailwind-typography pre code .token.inserted {
  color: var(--color-prettylights-syntax-entity-tag);
}
.markdown-body pre code .token.string,
.tailwind-typography pre code .token.string,
.markdown-body pre code .token.attr-value,
.tailwind-typography pre code .token.attr-value {
  color: var(--color-prettylights-syntax-string);
}
.markdown-body pre code .token.operator,
.tailwind-typography pre code .token.operator,
.markdown-body pre code .token.entity,
.tailwind-typography pre code .token.entity,
.markdown-body pre code .token.url,
.tailwind-typography pre code .token.url {
  color: var(--color-prettylights-syntax-storage-modifier-import);
}
.markdown-body pre code .token.keyword,
.tailwind-typography pre code .token.keyword {
  color: var(--color-prettylights-syntax-keyword);
}
.markdown-body pre code .token.atrule,
.tailwind-typography pre code .token.atrule,
.markdown-body pre code .token.important,
.tailwind-typography pre code .token.important {
  color: var(--color-prettylights-syntax-keyword);
}
.markdown-body pre code .token.function,
.tailwind-typography pre code .token.function,
.markdown-body pre code .token.class-name,
.tailwind-typography pre code .token.class-name {
  color: var(--color-prettylights-syntax-entity);
}
.markdown-body pre code .token.regex,
.tailwind-typography pre code .token.regex {
  color: var(--color-prettylights-syntax-string-regexp);
}
.markdown-body pre code .token.variable,
.tailwind-typography pre code .token.variable {
  color: var(--color-prettylights-syntax-variable);
}
.markdown-body pre code .token.parameter,
.tailwind-typography pre code .token.parameter {
  color: var(--color-prettylights-syntax-variable);
}
.markdown-body pre code .token.namespace,
.tailwind-typography pre code .token.namespace {
  color: var(--color-prettylights-syntax-variable);
}
.markdown-body pre code .token.maybe-class-name,
.tailwind-typography pre code .token.maybe-class-name {
  color: var(--color-prettylights-syntax-entity);
}
.markdown-body pre code .token.interpolation,
.tailwind-typography pre code .token.interpolation {
  color: var(--color-prettylights-syntax-variable);
}
.markdown-body pre code .token.bold,
.tailwind-typography pre code .token.bold {
  font-weight: bold;
}
.markdown-body pre code .token.italic,
.tailwind-typography pre code .token.italic {
  font-style: italic;
}

/* ========== Inline Code Rendering ========== */
.markdown-body :not(pre)>code,
.tailwind-typography :not(pre)>code {
  background-color: rgba(175, 184, 193, 0.2);
  color: #1f2328;
  padding: 0.2em 0.4em;
  font-size: 85%;
  border-radius: 6px;
  font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, Liberation Mono, monospace;
  border: 1px solid rgba(175, 184, 193, 0.3);
  word-break: break-word;
}

.markdown-body code,
.tailwind-typography code {
  /* Override Tailwind preflight: code { border: 1px solid #fbf6f6; background-color: #afb8c133; } */
  border: none;
  background: none;
}

.dark .markdown-body :not(pre)>code,
.dark .tailwind-typography :not(pre)>code {
  background-color: rgba(110, 118, 129, 0.25);
  color: #e6edf3;
  border-color: rgba(110, 118, 129, 0.35);
}

/* Strip Tailwind Typography backtick pseudo-elements from inline code */
.markdown-body :not(pre) > code::before,
.markdown-body :not(pre) > code::after,
.tailwind-typography :not(pre) > code::before,
.tailwind-typography :not(pre) > code::after {
  content: none !important;
}

/* ========== Code Block Improvements ========== */
.markdown-body pre,
.tailwind-typography pre {
  background-color: var(--color-canvas-subtle);
  border: 1px solid var(--color-border-default);
  border-radius: 8px;
  padding: 16px !important;
  overflow-x: auto;
}

.dark .markdown-body pre,
.dark .tailwind-typography pre {
  background-color: #151b23 !important;
  border-color: #30363d;
}

.markdown-body pre code,
.tailwind-typography pre code {
  background: transparent !important;
  border: none !important;
  padding: 0;
  font-size: 13px;
  line-height: 1.6;
  color: var(--color-fg-default);
}

/* Dark mode: ensure pre code text is light against dark background */
.dark .markdown-body pre code,
.dark .tailwind-typography pre code {
  color: #e6edf3;
}

/* ========== Sidebar text visibility ========== */
/* Fix sidebar text visibility in dark mode */
.dark .sidebar-widget h2,
.dark .toc-container h2 {
  color: #f1f5f9 !important;
}

/* Post/article content typography dark mode */
/* Tailwind typography style content */
.dark .tailwind-typography,
.dark .tailwind-typography p,
.dark .tailwind-typography li,
.dark .tailwind-typography ul,
.dark .tailwind-typography ol,
.dark .tailwind-typography blockquote,
.dark .tailwind-typography pre,
.dark .tailwind-typography code,
.dark .tailwind-typography table,
.dark .tailwind-typography th,
.dark .tailwind-typography td {
  color: #e2e8f0;
}

.dark .tailwind-typography h1,
.dark .tailwind-typography h2,
.dark .tailwind-typography h3,
.dark .tailwind-typography h4,
.dark .tailwind-typography h5,
.dark .tailwind-typography h6 {
  color: #f1f5f9;
}

.dark .tailwind-typography a {
  color: #60a5fa;
}
.dark .tailwind-typography a:hover {
  color: #93bbfd;
}

.dark .tailwind-typography blockquote {
  border-left-color: #475569;
  color: #94a3b8;
}

/* ========== MPE Admonition Styling (MkDocs Material compatible) ========== */
/* MPE !!! admonitions are converted to <div class="admonition type"> HTML blocks.
   Styles match MkDocs Material's admonition appearance. */

.markdown-body .admonition,
.tailwind-typography .admonition {
  margin: 1em 0;
  padding: 0.75em 1em;
  border-left: 4px solid;
  border-radius: 6px;
  background: var(--md-admonition-bg, rgba(68, 138, 255, 0.1));
  color: var(--color-fg-default);
  font-size: 0.9em;
  line-height: 1.6;
}

.markdown-body .admonition > *:first-child,
.tailwind-typography .admonition > *:first-child {
  margin-top: 0;
}

.markdown-body .admonition > *:last-child,
.tailwind-typography .admonition > *:last-child {
  margin-bottom: 0;
}

/* Admonition title */
.markdown-body .admonition-title,
.tailwind-typography .admonition-title {
  margin: 0 0 0.4em 0 !important;
  padding: 0;
  font-weight: 700;
  font-size: 0.95em;
  line-height: 1.4;
}

/* ── Type-specific colors (matching MkDocs Material) ── */

/* note — blue */
.markdown-body .admonition.note,
.tailwind-typography .admonition.note {
  border-left-color: #448aff;
  background: rgba(68, 138, 255, 0.1);
}
.markdown-body .admonition.note .admonition-title,
.tailwind-typography .admonition.note .admonition-title {
  color: #448aff;
}

/* info — teal/cyan */
.markdown-body .admonition.info,
.tailwind-typography .admonition.info {
  border-left-color: #00b8d4;
  background: rgba(0, 184, 212, 0.1);
}
.markdown-body .admonition.info .admonition-title,
.tailwind-typography .admonition.info .admonition-title {
  color: #00b8d4;
}

/* tip / hint / important — green */
.markdown-body .admonition.tip,
.markdown-body .admonition.hint,
.markdown-body .admonition.important,
.tailwind-typography .admonition.tip,
.tailwind-typography .admonition.hint,
.tailwind-typography .admonition.important {
  border-left-color: #00bfa5;
  background: rgba(0, 191, 165, 0.1);
}
.markdown-body .admonition.tip .admonition-title,
.markdown-body .admonition.hint .admonition-title,
.markdown-body .admonition.important .admonition-title,
.tailwind-typography .admonition.tip .admonition-title,
.tailwind-typography .admonition.hint .admonition-title,
.tailwind-typography .admonition.important .admonition-title {
  color: #00bfa5;
}

/* success / check / done — green */
.markdown-body .admonition.success,
.markdown-body .admonition.check,
.markdown-body .admonition.done,
.tailwind-typography .admonition.success,
.tailwind-typography .admonition.check,
.tailwind-typography .admonition.done {
  border-left-color: #00c853;
  background: rgba(0, 200, 83, 0.1);
}
.markdown-body .admonition.success .admonition-title,
.markdown-body .admonition.check .admonition-title,
.markdown-body .admonition.done .admonition-title,
.tailwind-typography .admonition.success .admonition-title,
.tailwind-typography .admonition.check .admonition-title,
.tailwind-typography .admonition.done .admonition-title {
  color: #00c853;
}

/* question / help / faq — teal */
.markdown-body .admonition.question,
.markdown-body .admonition.help,
.markdown-body .admonition.faq,
.tailwind-typography .admonition.question,
.tailwind-typography .admonition.help,
.tailwind-typography .admonition.faq {
  border-left-color: #64dd17;
  background: rgba(100, 221, 23, 0.1);
}
.markdown-body .admonition.question .admonition-title,
.markdown-body .admonition.help .admonition-title,
.markdown-body .admonition.faq .admonition-title,
.tailwind-typography .admonition.question .admonition-title,
.tailwind-typography .admonition.help .admonition-title,
.tailwind-typography .admonition.faq .admonition-title {
  color: #64dd17;
}

/* warning / caution / attention — orange */
.markdown-body .admonition.warning,
.markdown-body .admonition.caution,
.markdown-body .admonition.attention,
.tailwind-typography .admonition.warning,
.tailwind-typography .admonition.caution,
.tailwind-typography .admonition.attention {
  border-left-color: #ff9100;
  background: rgba(255, 145, 0, 0.1);
}
.markdown-body .admonition.warning .admonition-title,
.markdown-body .admonition.caution .admonition-title,
.markdown-body .admonition.attention .admonition-title,
.tailwind-typography .admonition.warning .admonition-title,
.tailwind-typography .admonition.caution .admonition-title,
.tailwind-typography .admonition.attention .admonition-title {
  color: #ff9100;
}

/* failure / fail / missing — red */
.markdown-body .admonition.failure,
.markdown-body .admonition.fail,
.markdown-body .admonition.missing,
.tailwind-typography .admonition.failure,
.tailwind-typography .admonition.fail,
.tailwind-typography .admonition.missing {
  border-left-color: #ff5252;
  background: rgba(255, 82, 82, 0.1);
}
.markdown-body .admonition.failure .admonition-title,
.markdown-body .admonition.fail .admonition-title,
.markdown-body .admonition.missing .admonition-title,
.tailwind-typography .admonition.failure .admonition-title,
.tailwind-typography .admonition.fail .admonition-title,
.tailwind-typography .admonition.missing .admonition-title {
  color: #ff5252;
}

/* danger / error — red */
.markdown-body .admonition.danger,
.markdown-body .admonition.error,
.tailwind-typography .admonition.danger,
.tailwind-typography .admonition.error {
  border-left-color: #ff1744;
  background: rgba(255, 23, 68, 0.1);
}
.markdown-body .admonition.danger .admonition-title,
.markdown-body .admonition.error .admonition-title,
.tailwind-typography .admonition.danger .admonition-title,
.tailwind-typography .admonition.error .admonition-title {
  color: #ff1744;
}

/* bug — red */
.markdown-body .admonition.bug,
.tailwind-typography .admonition.bug {
  border-left-color: #f50057;
  background: rgba(245, 0, 87, 0.1);
}
.markdown-body .admonition.bug .admonition-title,
.tailwind-typography .admonition.bug .admonition-title {
  color: #f50057;
}

/* example — purple */
.markdown-body .admonition.example,
.tailwind-typography .admonition.example {
  border-left-color: #7c4dff;
  background: rgba(124, 77, 255, 0.1);
}
.markdown-body .admonition.example .admonition-title,
.tailwind-typography .admonition.example .admonition-title {
  color: #7c4dff;
}

/* quote / cite — gray */
.markdown-body .admonition.quote,
.markdown-body .admonition.cite,
.tailwind-typography .admonition.quote,
.tailwind-typography .admonition.cite {
  border-left-color: #9e9e9e;
  background: rgba(158, 158, 158, 0.1);
}
.markdown-body .admonition.quote .admonition-title,
.markdown-body .admonition.cite .admonition-title,
.tailwind-typography .admonition.quote .admonition-title,
.tailwind-typography .admonition.cite .admonition-title {
  color: #9e9e9e;
}

/* abstract / summary / tldr — blue-gray */
.markdown-body .admonition.abstract,
.markdown-body .admonition.summary,
.markdown-body .admonition.tldr,
.tailwind-typography .admonition.abstract,
.tailwind-typography .admonition.summary,
.tailwind-typography .admonition.tldr {
  border-left-color: #00b0ff;
  background: rgba(0, 176, 255, 0.1);
}
.markdown-body .admonition.abstract .admonition-title,
.markdown-body .admonition.summary .admonition-title,
.markdown-body .admonition.tldr .admonition-title,
.tailwind-typography .admonition.abstract .admonition-title,
.tailwind-typography .admonition.summary .admonition-title,
.tailwind-typography .admonition.tldr .admonition-title {
  color: #00b0ff;
}

/* ── Dark mode ── */
.dark .markdown-body .admonition,
.dark .tailwind-typography .admonition {
  color: #e2e8f0;
}

.dark .markdown-body .admonition.note,
.dark .tailwind-typography .admonition.note {
  background: rgba(68, 138, 255, 0.12);
}
.dark .markdown-body .admonition.info,
.dark .tailwind-typography .admonition.info {
  background: rgba(0, 184, 212, 0.12);
}
.dark .markdown-body .admonition.tip,
.dark .markdown-body .admonition.hint,
.dark .markdown-body .admonition.important,
.dark .tailwind-typography .admonition.tip,
.dark .tailwind-typography .admonition.hint,
.dark .tailwind-typography .admonition.important {
  background: rgba(0, 191, 165, 0.12);
}
.dark .markdown-body .admonition.success,
.dark .markdown-body .admonition.check,
.dark .markdown-body .admonition.done,
.dark .tailwind-typography .admonition.success,
.dark .tailwind-typography .admonition.check,
.dark .tailwind-typography .admonition.done {
  background: rgba(0, 200, 83, 0.12);
}
.dark .markdown-body .admonition.warning,
.dark .markdown-body .admonition.caution,
.dark .markdown-body .admonition.attention,
.dark .tailwind-typography .admonition.warning,
.dark .tailwind-typography .admonition.caution,
.dark .tailwind-typography .admonition.attention {
  background: rgba(255, 145, 0, 0.12);
}
.dark .markdown-body .admonition.danger,
.dark .markdown-body .admonition.error,
.dark .markdown-body .admonition.failure,
.dark .markdown-body .admonition.fail,
.dark .markdown-body .admonition.missing,
.dark .tailwind-typography .admonition.danger,
.dark .tailwind-typography .admonition.error,
.dark .tailwind-typography .admonition.failure,
.dark .tailwind-typography .admonition.fail,
.dark .tailwind-typography .admonition.missing {
  background: rgba(255, 82, 82, 0.12);
}
.dark .markdown-body .admonition.bug,
.dark .tailwind-typography .admonition.bug {
  background: rgba(245, 0, 87, 0.12);
}
.dark .markdown-body .admonition.example,
.dark .tailwind-typography .admonition.example {
  background: rgba(124, 77, 255, 0.12);
}
.dark .markdown-body .admonition.quote,
.dark .markdown-body .admonition.cite,
.dark .tailwind-typography .admonition.quote,
.dark .tailwind-typography .admonition.cite {
  background: rgba(158, 158, 158, 0.12);
}
.dark .markdown-body .admonition.abstract,
.dark .markdown-body .admonition.summary,
.dark .markdown-body .admonition.tldr,
.dark .tailwind-typography .admonition.abstract,
.dark .tailwind-typography .admonition.summary,
.dark .tailwind-typography .admonition.tldr {
  background: rgba(0, 176, 255, 0.12);
}

.dark .tailwind-typography code {
  background-color: #1e293b;
  color: #e2e8f0;
}

.dark .tailwind-typography pre {
  background-color: #0f172a;
  border: 1px solid #1e293b;
}

.dark .tailwind-typography table th,
.dark .tailwind-typography table td {
  border-color: #334155;
}

.dark .tailwind-typography table tr:nth-child(even) {
  background-color: #1e293b;
}

.dark .tailwind-typography hr {
  border-color: #334155;
}

/* GitHub markdown style content */
.dark .markdown-body {
  color: #e2e8f0;
}

/* Fix article page specific text */
.dark .article-title {
  color: #f1f5f9;
}

.dark .article-meta {
  color: #94a3b8;
}

/* Fix footer text */
.dark .footer-text,
.dark .footer-text a {
  color: #94a3b8;
}

/* Fix empty state text */
.dark .empty-state-text {
  color: #94a3b8;
}

/* Fix category/tag filter text */
.dark .filter-label {
  color: #f1f5f9;
}

/* Fix button text colors */
.dark .btn-text-secondary {
  color: #cbd5e1;
}

/* Fix pagination text */
.dark .pagination-text {
  color: #94a3b8;
}

/* Fix hero section subtitle */
.dark .hero-subtitle {
  color: #e2e8f0;
}

/* Show scrollbar in dark mode for search panel */
.search-body::-webkit-scrollbar {
  width: 6px;
}
.search-body::-webkit-scrollbar-track {
  background: transparent;
}
.search-body::-webkit-scrollbar-thumb {
  background: #cbd5e1;
  border-radius: 3px;
}
.dark .search-body::-webkit-scrollbar-thumb {
  background: #475569;
}

/* ========== Responsive adjustments ========== */
@media (max-width: 640px) {
  #search-overlay {
    padding-top: 0;
    align-items: stretch;
  }
  .search-panel {
    max-width: 100%;
    max-height: 100vh;
    border-radius: 0;
  }
  .search-body {
    max-height: calc(100vh - 120px);
  }
}
