/* =============================================================================
   Domus Digitalis Documentation Hub - Custom Theme
   Premium Dark Theme with Purple/Indigo Accent (Hub Identity)
   ============================================================================= */

:root {
  --color-brand-1: #6366f1;
  --color-brand-2: #8b5cf6;
  --color-brand-3: #a78bfa;
  --bg-primary: #1a1a1a;
  --bg-secondary: #252525;
  --bg-tertiary: #2d2d2d;
  --text-primary: #e0e0e0;
  --text-secondary: #b0b0b0;
  --accent-primary: #6366f1;
  --accent-secondary: #8b5cf6;
  --accent-success: #50fa7b;
}

body { background: var(--bg-primary); color: var(--text-primary); }
.nav-panel-menu, .nav-panel { background: var(--bg-secondary) !important; border-right: 1px solid #333; }
.nav-panel-menu a, .nav-menu a, .nav-list a, .nav-link, a.nav-link { color: var(--text-secondary) !important; transition: color 0.2s ease; }
.nav-panel-menu a:hover, .nav-menu a:hover, .nav-list a:hover, .nav-panel-menu a.is-current-page, .nav-item.is-current-page > a { color: var(--accent-primary) !important; }
.nav-panel-explore, .nav-panel-explore .context { background: var(--bg-tertiary) !important; }
.nav-panel-explore .context .title, .nav-panel-explore .context .version { color: var(--text-primary) !important; }

/* Component selector dropdown - HIGH CONTRAST */
.nav-panel-explore .components {
  background: #1a1a1a !important;
  border: 2px solid #6366f1 !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.6) !important;
}
.nav-panel-explore .component {
  background: #1a1a1a !important;
  padding: 0.75em 1em !important;
  border-bottom: 1px solid #333 !important;
}
.nav-panel-explore .component:last-child { border-bottom: none !important; }
.nav-panel-explore .component .title {
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 1em !important;
  display: block !important;
  margin-bottom: 0.3em !important;
  line-height: 1.3 !important;
}
.nav-panel-explore .component .versions {
  display: block !important;
  margin-top: 0.25em !important;
}
.nav-panel-explore .component .version {
  color: #a78bfa !important;
  font-weight: 600 !important;
  background: rgba(167, 139, 250, 0.15) !important;
  padding: 0.2em 0.5em !important;
  border-radius: 4px !important;
  font-size: 0.85em !important;
  display: inline-block !important;
}
.nav-panel-explore .component:hover {
  background: #2d2d2d !important;
  border-left: 3px solid #6366f1 !important;
}
.nav-panel-explore .component.is-current {
  background: #252540 !important;
  border-left: 3px solid #6366f1 !important;
}
.nav-panel-explore .component.is-current .title {
  color: #a78bfa !important;
}
.nav-panel-explore .versions {
  background: #1a1a1a !important;
}
.nav-panel-explore .version a {
  color: #e0e0e0 !important;
  font-weight: 500 !important;
}
.nav-panel-explore .version a:hover {
  color: #a78bfa !important;
}
.nav-panel-explore .version.is-current a {
  color: #a78bfa !important;
  font-weight: 700 !important;
}

/* Component selector button (bottom left) */
.nav-panel-explore .context {
  background: linear-gradient(135deg, #252525 0%, #1a1a1a 100%) !important;
  border: 1px solid #444 !important;
  border-radius: 6px !important;
  padding: 0.75em 1em !important;
}
.nav-panel-explore .context:hover {
  border-color: #6366f1 !important;
  background: linear-gradient(135deg, #2d2d2d 0%, #252525 100%) !important;
}
.nav-panel-explore .context .title {
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 1em !important;
}
.nav-panel-explore .context .version {
  color: #a78bfa !important;
  font-weight: 600 !important;
}

.navbar, .toolbar { background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-primary) 100%) !important; border-bottom: 2px solid var(--accent-primary) !important; box-shadow: 0 2px 10px rgba(0, 0, 0, 0.3); }
.navbar a, .toolbar a { color: var(--text-primary) !important; }
.navbar .home-link, .toolbar .home-link { color: var(--accent-primary) !important; font-weight: 600; }

.doc, .article, .content { background: var(--bg-primary) !important; color: var(--text-primary) !important; }
.doc h1 { color: var(--accent-primary) !important; border-bottom: 2px solid var(--accent-primary); padding-bottom: 0.5em; }
.doc h2, .doc h3, .doc h4, .doc h5, .doc h6 { color: var(--accent-secondary) !important; }
.doc a { color: var(--accent-primary) !important; }
.doc a:hover { color: var(--accent-secondary) !important; }

/* Code blocks */
.doc pre, .listingblock pre, pre.highlight { background: linear-gradient(135deg, #11111b 0%, #181825 100%) !important; border: 2px solid var(--accent-primary) !important; border-radius: 10px !important; padding: 1.2em 1.4em !important; box-shadow: 0 8px 24px rgba(99, 102, 241, 0.15), 0 4px 8px rgba(0, 0, 0, 0.4) !important; font-family: 'JetBrains Mono', 'Fira Code', monospace !important; font-size: 0.9em !important; line-height: 1.6 !important; }
.doc pre code, pre.highlight code { color: #cdd6f4 !important; background: transparent !important; }

/* Syntax highlighting */
.hljs-keyword, .hljs-selector-tag, .hljs-built_in { color: #cba6f7 !important; font-weight: 600; }
.hljs-name, .hljs-tag { color: #89b4fa !important; font-weight: 600; }
.hljs-string, .hljs-attr { color: #a6e3a1 !important; }
.hljs-number, .hljs-literal { color: #fab387 !important; }
.hljs-comment, .hljs-quote { color: #6c7086 !important; font-style: italic; }
.hljs-title, .hljs-section { color: #89b4fa !important; font-weight: 600; }
.hljs-variable, .hljs-template-variable { color: #f5c2e7 !important; }
.hljs-type, .hljs-class .hljs-title { color: #f9e2af !important; }
.hljs-function { color: #89b4fa !important; }

/* Inline code */
.doc code:not([class]), .doc p code, .doc li code, .doc td code { background: linear-gradient(135deg, #1a1a2e 0%, #16213e 100%) !important; color: #a78bfa !important; padding: 0.25em 0.6em !important; border-radius: 5px !important; font-size: 0.9em !important; font-weight: 600 !important; border: 1px solid var(--accent-primary) !important; text-shadow: 0 0 8px rgba(167, 139, 250, 0.5) !important; box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3) !important; font-family: 'JetBrains Mono', monospace !important; }

/* Admonition blocks */
.admonitionblock { border-radius: 8px; margin: 1.5em 0; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); }
.admonitionblock td.content { color: #e0e0e0 !important; padding: 1em !important; }
.admonitionblock.note { background: linear-gradient(135deg, #1a3a5c 0%, #0d2137 100%) !important; border: 1px solid #2a5a8c; border-left: 5px solid #4a9eff !important; }
.admonitionblock.tip { background: linear-gradient(135deg, #1a3a2a 0%, #0d2117 100%) !important; border: 1px solid #2a6a4a; border-left: 5px solid #4caf50 !important; }
.admonitionblock.warning { background: linear-gradient(135deg, #5c3a1a 0%, #372a0d 100%) !important; border: 1px solid #6a5a3a; border-left: 5px solid #ffb347 !important; }
.admonitionblock.caution { background: linear-gradient(135deg, #5c2a1a 0%, #37170d 100%) !important; border: 1px solid #6a3a2a; border-left: 5px solid #ff6b6b !important; }
.admonitionblock.important { background: linear-gradient(135deg, #4a1a1a 0%, #2d0d0d 100%) !important; border: 1px solid #6a2a2a; border-left: 5px solid #ff5252 !important; }

/* Tables */
.doc table { background: var(--bg-secondary) !important; border: 1px solid #444 !important; }
.doc table th { background: var(--bg-tertiary) !important; color: var(--accent-primary) !important; border: 1px solid #444 !important; }
.doc table td { border: 1px solid #444 !important; color: var(--text-primary) !important; }
.doc table tr:nth-child(even) { background: rgba(255, 255, 255, 0.02) !important; }

/* Footer */
.footer { background: linear-gradient(135deg, var(--bg-secondary) 0%, var(--bg-primary) 100%) !important; border-top: 2px solid var(--accent-primary) !important; color: var(--text-secondary) !important; }
.footer a { color: var(--accent-primary) !important; }

/* Page versions & breadcrumbs */
.page-versions .version { background: var(--bg-tertiary) !important; color: var(--accent-secondary) !important; border: 1px solid var(--accent-primary) !important; }
.breadcrumbs { background: var(--bg-secondary) !important; }
.breadcrumbs a { color: var(--text-secondary) !important; }
.breadcrumbs a:hover { color: var(--accent-primary) !important; }

/* Scrollbar */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--bg-secondary); }
::-webkit-scrollbar-thumb { background: #444; border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent-primary); }

/* =============================================================================
   Search - Input & Results Dropdown
   ============================================================================= */

/* Search input field */
#search-input,
.search-input {
  background: var(--bg-tertiary) !important;
  color: var(--text-primary) !important;
  border: 2px solid #444 !important;
  border-radius: 6px !important;
  padding: 0.5em 1em !important;
  font-size: 0.95em !important;
  width: 220px !important;
  transition: all 0.2s ease !important;
}
#search-input:focus,
.search-input:focus {
  border-color: var(--accent-primary) !important;
  box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.25) !important;
  outline: none !important;
  width: 280px !important;
}
#search-input::placeholder {
  color: var(--text-secondary) !important;
  opacity: 0.7 !important;
}

/* Search results dropdown container */
.search-result-dropdown-menu,
#search-results,
.search-results {
  background: #1a1a1a !important;
  border: 2px solid var(--accent-primary) !important;
  border-radius: 8px !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.7), 0 0 0 1px rgba(99, 102, 241, 0.3) !important;
  max-height: 70vh !important;
  overflow-y: auto !important;
  margin-top: 8px !important;
  z-index: 9999 !important;
  position: absolute !important;
  min-width: 400px !important;
  max-width: 600px !important;
}

/* Individual search result item */
.search-result,
.search-result-item,
#search-results .result,
.search-results .result {
  padding: 1em 1.25em !important;
  border-bottom: 1px solid #333 !important;
  cursor: pointer !important;
  transition: all 0.15s ease !important;
  background: #1a1a1a !important;
}
.search-result:last-child,
.search-result-item:last-child,
#search-results .result:last-child {
  border-bottom: none !important;
}
.search-result:hover,
.search-result-item:hover,
#search-results .result:hover,
.search-results .result:hover,
.search-result.is-active,
.search-result-item.is-active {
  background: linear-gradient(135deg, #252540 0%, #1a1a2e 100%) !important;
  border-left: 4px solid var(--accent-primary) !important;
  padding-left: calc(1.25em - 4px) !important;
}

/* Search result title/document name */
.search-result-title,
.search-result-item .title,
#search-results .result .title,
.search-result a,
.search-result-item a {
  color: #ffffff !important;
  font-weight: 700 !important;
  font-size: 1.05em !important;
  display: block !important;
  margin-bottom: 0.4em !important;
  text-decoration: none !important;
}
.search-result:hover .search-result-title,
.search-result-item:hover .title,
.search-result:hover a {
  color: var(--accent-primary) !important;
}

/* Search result snippet/preview text */
.search-result-text,
.search-result-item .text,
.search-result-item .body,
#search-results .result .text,
.search-result p,
.search-result-item p {
  color: #b0b0b0 !important;
  font-size: 0.9em !important;
  line-height: 1.5 !important;
  margin: 0 !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* Highlighted/matched text in results */
.search-result-highlight,
.search-result mark,
.search-result-item mark,
#search-results mark,
.search-results mark,
.search-result em,
.search-result-item em {
  background: linear-gradient(135deg, rgba(99, 102, 241, 0.4) 0%, rgba(139, 92, 246, 0.4) 100%) !important;
  color: #ffffff !important;
  font-weight: 700 !important;
  font-style: normal !important;
  padding: 0.1em 0.3em !important;
  border-radius: 3px !important;
  border-bottom: 2px solid var(--accent-primary) !important;
}

/* Search result component/path indicator */
.search-result-component,
.search-result-item .component,
#search-results .result .component {
  color: var(--accent-secondary) !important;
  font-size: 0.8em !important;
  font-weight: 600 !important;
  opacity: 0.9 !important;
  margin-top: 0.4em !important;
  display: inline-block !important;
  background: rgba(139, 92, 246, 0.15) !important;
  padding: 0.2em 0.6em !important;
  border-radius: 4px !important;
}

/* No results message */
.search-no-results,
#search-results .no-results,
.search-results:empty::after {
  color: var(--text-secondary) !important;
  padding: 1.5em !important;
  text-align: center !important;
  font-style: italic !important;
}

/* Loading state */
.search-loading {
  color: var(--text-secondary) !important;
  padding: 1.5em !important;
  text-align: center !important;
}

/* Light theme search overrides */
[data-theme="light"] #search-input,
[data-theme="light"] .search-input {
  background: #ffffff !important;
  border-color: #ddd !important;
  color: #1a1a1a !important;
}
[data-theme="light"] .search-result-dropdown-menu,
[data-theme="light"] #search-results,
[data-theme="light"] .search-results {
  background: #ffffff !important;
  border-color: #5b21b6 !important;
  box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2) !important;
}
[data-theme="light"] .search-result,
[data-theme="light"] .search-result-item,
[data-theme="light"] #search-results .result {
  background: #ffffff !important;
  border-bottom-color: #eee !important;
}
[data-theme="light"] .search-result:hover,
[data-theme="light"] .search-result-item:hover {
  background: #f5f0ff !important;
}
[data-theme="light"] .search-result-title,
[data-theme="light"] .search-result a {
  color: #1a1a1a !important;
}
[data-theme="light"] .search-result-text,
[data-theme="light"] .search-result p {
  color: #666 !important;
}
[data-theme="light"] .search-result mark,
[data-theme="light"] .search-result em {
  background: rgba(91, 33, 182, 0.2) !important;
  color: #5b21b6 !important;
}

/* Catppuccin theme search overrides */
[data-theme="catppuccin"] .search-result-dropdown-menu,
[data-theme="catppuccin"] #search-results,
[data-theme="catppuccin"] .search-results {
  background: #1e1e2e !important;
  border-color: #cba6f7 !important;
}
[data-theme="catppuccin"] .search-result,
[data-theme="catppuccin"] .search-result-item {
  background: #1e1e2e !important;
  border-bottom-color: #313244 !important;
}
[data-theme="catppuccin"] .search-result:hover,
[data-theme="catppuccin"] .search-result-item:hover {
  background: #313244 !important;
}
[data-theme="catppuccin"] .search-result mark,
[data-theme="catppuccin"] .search-result em {
  background: rgba(203, 166, 247, 0.3) !important;
  color: #f5c2e7 !important;
}

/* TOC Sidebar - ensure proper positioning */
.toc { position: sticky; top: 80px; }
.toc.sidebar { background: var(--bg-secondary) !important; border-left: 1px solid #333; padding: 1em; }
.toc .toc-menu a { color: var(--text-secondary) !important; }
.toc .toc-menu a:hover, .toc .toc-menu a.is-active { color: var(--accent-primary) !important; }

/* =============================================================================
   Catppuccin Theme
   ============================================================================= */
[data-theme="catppuccin"] { --bg-primary: #1e1e2e; --bg-secondary: #181825; --bg-tertiary: #313244; --text-primary: #cdd6f4; --text-secondary: #a6adc8; --accent-primary: #cba6f7; --accent-secondary: #f5c2e7; }
[data-theme="catppuccin"] body { background: #1e1e2e; color: #cdd6f4; }
[data-theme="catppuccin"] .nav-panel, [data-theme="catppuccin"] .nav-panel-menu { background: #181825 !important; }
[data-theme="catppuccin"] .navbar, [data-theme="catppuccin"] .toolbar { background: linear-gradient(135deg, #181825, #1e1e2e) !important; border-bottom-color: #cba6f7 !important; }
[data-theme="catppuccin"] .doc, [data-theme="catppuccin"] .article { background: #1e1e2e !important; }
[data-theme="catppuccin"] .doc h1, [data-theme="catppuccin"] .doc h2, [data-theme="catppuccin"] .doc h3 { color: #cba6f7 !important; }
[data-theme="catppuccin"] .doc pre { border-color: #cba6f7 !important; }
[data-theme="catppuccin"] .footer { background: linear-gradient(135deg, #181825, #1e1e2e) !important; border-top-color: #cba6f7 !important; }
[data-theme="catppuccin"] .doc code:not([class]) { color: #f5c2e7 !important; border-color: #cba6f7 !important; }

/* =============================================================================
   Light Theme
   ============================================================================= */
[data-theme="light"] { --bg-primary: #ffffff; --bg-secondary: #f5f5f5; --bg-tertiary: #e8e8e8; --text-primary: #1a1a1a; --text-secondary: #4a4a4a; --accent-primary: #5b21b6; --accent-secondary: #7c3aed; }
[data-theme="light"] body { background: #ffffff; color: #1a1a1a; }
[data-theme="light"] .nav-panel, [data-theme="light"] .nav-panel-menu { background: #f5f5f5 !important; }
[data-theme="light"] .nav-panel-menu a, [data-theme="light"] .nav-list a { color: #4a4a4a !important; }
[data-theme="light"] .nav-panel-menu a:hover, [data-theme="light"] .nav-item.is-current-page > a { color: #5b21b6 !important; }
[data-theme="light"] .navbar, [data-theme="light"] .toolbar { background: linear-gradient(135deg, #f5f5f5, #ffffff) !important; border-bottom-color: #5b21b6 !important; }
[data-theme="light"] .doc, [data-theme="light"] .article { background: #ffffff !important; color: #1a1a1a !important; }
[data-theme="light"] .doc h1, [data-theme="light"] .doc h2, [data-theme="light"] .doc h3 { color: #5b21b6 !important; }
[data-theme="light"] .doc a { color: #5b21b6 !important; }
[data-theme="light"] .doc pre { background: #1e1e1e !important; border-color: #5b21b6 !important; }
[data-theme="light"] .doc table { background: #f5f5f5 !important; }
[data-theme="light"] .doc table th { background: #e8e8e8 !important; color: #5b21b6 !important; }
[data-theme="light"] .doc table td { color: #1a1a1a !important; border-color: #ddd !important; }
[data-theme="light"] .footer { background: linear-gradient(135deg, #f5f5f5, #ffffff) !important; border-top-color: #5b21b6 !important; }
[data-theme="light"] .admonitionblock td.content { color: #1a1a1a !important; }
[data-theme="light"] .doc code:not([class]) { background: #f0f0f0 !important; color: #5b21b6 !important; border-color: #5b21b6 !important; text-shadow: none !important; }
[data-theme="light"] .toc.sidebar { background: #f5f5f5 !important; }

/* Navbar dropdowns */
.navbar-dropdown {
  background: var(--bg-secondary) !important;
  border: 1px solid #444 !important;
  border-radius: 6px !important;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4) !important;
  padding: 0.5em 0 !important;
}
.navbar-dropdown a.navbar-item {
  color: var(--text-primary) !important;
  padding: 0.5em 1.5em !important;
}
.navbar-dropdown a.navbar-item:hover {
  background: var(--bg-tertiary) !important;
  color: var(--accent-primary) !important;
}
.navbar-link::after {
  border-color: var(--accent-primary) !important;
}
.navbar-item.has-dropdown:hover .navbar-link {
  color: var(--accent-primary) !important;
}

/* Light theme dropdowns */
[data-theme="light"] .navbar-dropdown {
  background: #ffffff !important;
  border-color: #ddd !important;
}
[data-theme="light"] .navbar-dropdown a.navbar-item {
  color: #1a1a1a !important;
}
[data-theme="light"] .navbar-dropdown a.navbar-item:hover {
  background: #f5f5f5 !important;
  color: #5b21b6 !important;
}

/* Catppuccin theme dropdowns */
[data-theme="catppuccin"] .navbar-dropdown {
  background: #181825 !important;
  border-color: #313244 !important;
}
[data-theme="catppuccin"] .navbar-dropdown a.navbar-item {
  color: #cdd6f4 !important;
}
[data-theme="catppuccin"] .navbar-dropdown a.navbar-item:hover {
  background: #313244 !important;
  color: #cba6f7 !important;
}

/* Hide document-level TOC (Antora handles TOC in sidebar) */
article.doc > div#toc { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; margin: 0 !important; padding: 0 !important; }
article.doc > div.toc { display: none !important; visibility: hidden !important; }
#toctitle { display: none !important; }
.doc > #toc { display: none !important; }

/* Utility classes */
.listingblock .content .source-toolbox { display: none !important; }
.listingblock .content pre { padding-top: 2.5rem !important; }

/* Print-friendly adjustments */
@media print {
  .navbar, .nav-container, .toolbar { display: none; }
  .doc { max-width: 100%; }
}
