/* =============================================
   Icarus Security Hub — Docs Custom Styling
   Emerald Green Accent | Premium Typography
   ============================================= */

/* ---- Docs-specific CSS variable overrides ---- */
.docs-content,
.main-content,
.page-content {
  /* Inherit emerald accent from global theme vars */
  --prism-accent: var(--accent-color, #059669);
}

/* Softer light-mode docs surfaces (less stark white) */
:root {
  --docs-sidebar-bg: #f1f5f9;
  --docs-surface-bg: #f4f7fa;
}

[data-dark-mode],
html[data-dark-mode] {
  --docs-sidebar-bg: var(--sidebar-bg, #1f2633);
  --docs-surface-bg: var(--body-bg);
}

.page-content.bg-transparent {
  background-color: var(--docs-surface-bg) !important;
}

.sidebar-wrapper,
.sidebar-wrapper .sidebar-content,
.sidebar-wrapper .sidebar-brand {
  background-color: var(--docs-sidebar-bg) !important;
}

/* ---- Sidebar ---- */
.sidebar-wrapper {
  border-right: 1px solid var(--border-color) !important;
}

.sidebar-wrapper .simplebar-content-wrapper {
  scrollbar-width: thin;
  scrollbar-color: var(--accent-color) transparent;
}

/* Sidebar links active state — emerald green (LotusDocs uses li.current) */
.sidebar-wrapper .sidebar-menu li.current>a,
.sidebar-wrapper .sidebar-menu li.current>.sidebar-nested-link,
.sidebar-wrapper a.sidebar-root-link.active,
.sidebar-wrapper a.sidebar-nested-link.active {
  color: var(--accent-color) !important;
  background: var(--accent-dim) !important;
  border-right: 3px solid var(--accent-color) !important;
  border-left: none !important;
  font-weight: 600;
}

.sidebar-wrapper .sidebar-menu li.current>button,
.sidebar-wrapper .sidebar-dropdown.current>button {
  color: var(--accent-color) !important;
  background: var(--accent-dim) !important;
}

.sidebar-wrapper .sidebar-dropdown.current>button:after {
  border-color: var(--accent-color) !important;
}

.sidebar-wrapper a.sidebar-root-link:hover,
.sidebar-wrapper a.sidebar-nested-link:hover,
.sidebar-wrapper .sidebar-menu li>a:hover {
  color: var(--accent-color) !important;
  background: var(--accent-dim) !important;
}

/* Sidebar section icons */
.sidebar-wrapper i.material-icons {
  color: var(--accent-color);
  opacity: 0.85;
}

/* ---- Top Header ---- */
.top-header {
  border-bottom: 1px solid var(--border-color) !important;
}

/* Site brand in docs (logo + title linking to main site) */
.site-brand-link {
  display: inline-flex;
  align-items: center;
  gap: 0.6rem;
  text-decoration: none !important;
  color: var(--heading-color) !important;
  min-width: 0;
}

.site-brand-text {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.78rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  line-height: 1.2;
  white-space: nowrap;
}

.site-brand-link:hover .site-brand-text {
  color: var(--accent-color) !important;
}

.site-brand-logo {
  display: inline-flex;
  align-items: center;
  flex-shrink: 0;
}

.site-brand-logo svg {
  height: 22px !important;
  width: auto !important;
  max-width: 120px;
  display: block;
}

.site-brand-link--sidebar .site-brand-logo--full {
  display: none;
}

.site-brand-link--header .site-brand-logo--full {
  display: none;
}

@media (min-width: 768px) {
  .site-brand-link--header .site-brand-logo--mark {
    display: none;
  }

  .site-brand-link--header .site-brand-logo--full {
    display: inline-flex;
  }
}

.sidebar-brand .site-brand-link {
  flex-grow: 1;
  overflow: hidden;
}

/* Main-site links in docs sidebar footer */
.docs-site-nav {
  border-top: 1px solid var(--border-color);
  padding: 0.75rem 0.5rem 1.5rem !important;
}

.docs-site-nav-link {
  display: flex;
  align-items: center;
  padding: 0.5rem 0.85rem;
  margin: 0.15rem 0;
  border-radius: 8px;
  color: var(--text-muted) !important;
  text-decoration: none !important;
  font-size: 0.875rem;
  font-weight: 500;
  transition: all 0.15s ease;
}

.docs-site-nav-link:hover {
  color: var(--accent-color) !important;
  background: var(--accent-dim) !important;
}

.docs-site-nav-link .material-icons {
  font-size: 18px;
  opacity: 0.85;
}

.sidebar-wrapper .sidebar-brand>a svg,
.top-header .logo-icon svg {
  height: 26px !important;
  width: auto !important;
  max-width: 160px;
  display: block;
}

.top-header .logo-icon .small svg {
  height: 22px !important;
}

.sidebar-wrapper .sidebar-brand>a svg,
.top-header .logo-icon svg {
  height: 26px !important;
  width: auto !important;
  max-width: 160px;
  display: block;
}

.top-header .logo-icon .small svg {
  height: 22px !important;
}

/* ---- Main Content Typography ---- */
.docs-content .main-content {
  font-family: 'Inter', 'Segoe UI', system-ui, -apple-system, sans-serif;
  font-size: 0.97rem;
  line-height: 1.75;
  color: var(--body-color);
}

/* Headings with emerald left accent bar */
.docs-content .main-content h1,
.docs-content .main-content h2 {
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--heading-color) !important;
}

.docs-content .main-content h2 {
  position: relative;
  padding-left: 1rem;
  margin-top: 2.5rem;
  border-left: 3px solid var(--accent-color);
  font-size: 1.4rem;
}

.docs-content .main-content h3 {
  font-weight: 600;
  color: var(--heading-color) !important;
  font-size: 1.1rem;
  margin-top: 1.75rem;
}

.docs-content .main-content h4 {
  font-weight: 600;
  color: var(--accent-color) !important;
  font-size: 0.95rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

/* Content title (page h1) */
.docs-content h1.content-title {
  font-size: 1.9rem !important;
  font-weight: 700 !important;
  letter-spacing: -0.02em;
  color: var(--heading-color) !important;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--accent-color);
  margin-bottom: 1.5rem !important;
}

/* ---- Links in docs ---- */
.docs-content .main-content a {
  color: var(--accent-color) !important;
  text-decoration: underline;
  text-decoration-color: var(--accent-glow);
  text-underline-offset: 3px;
  transition: color 0.15s ease, text-decoration-color 0.15s ease;
}

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

/* ---- Inline code — emerald style ---- */
.docs-content .main-content :not(pre)>code {
  font-family: 'JetBrains Mono', 'Fira Code', 'Cascadia Code', monospace;
  font-size: 0.82em;
  font-weight: 500;
  background: var(--accent-dim) !important;
  color: var(--accent-color) !important;
  border: 1px solid var(--accent-glow) !important;
  padding: 2px 7px;
  border-radius: 5px;
  letter-spacing: 0.01em;
}

/* ---- Code blocks (Prism) ---- */
.docs-content div.code-toolbar {
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid var(--border-color);
  margin: 1.5rem 0;
}

/* Prism copy button color enhancements — use emerald for copy and green for success */
[data-copy-state="copy"] span:empty::before {
  background-color: var(--accent-color, #059669) !important;
}

[data-copy-state="copy"] span:empty:hover::before {
  background-color: var(--accent-hover, #34d399) !important;
}

[data-copy-state="copy-success"] span:empty::before {
  background-color: #34d399 !important;
}

/* ---- Blockquotes / Callouts ---- */
.docs-content .main-content blockquote {
  border-left: 4px solid var(--accent-color) !important;
  background: var(--accent-dim) !important;
  border-radius: 0 8px 8px 0;
  padding: 1rem 1.25rem;
  margin: 1.5rem 0;
  color: var(--body-color);
}

.docs-content .main-content blockquote p {
  margin: 0;
  color: var(--body-color);
}

/* ---- Tables ---- */
.docs-content .main-content table {
  width: 100%;
  border-collapse: collapse;
  border-radius: 8px;
  overflow: hidden;
  margin: 1.5rem 0;
  border: 1px solid var(--border-color);
}

.docs-content .main-content table thead {
  background: var(--accent-dim);
}

.docs-content .main-content table thead th {
  color: var(--accent-color) !important;
  font-weight: 600;
  font-size: 0.8rem;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  padding: 0.75rem 1rem;
  border-bottom: 2px solid var(--accent-glow);
}

.docs-content .main-content table tbody tr:hover {
  background: var(--accent-dim);
}

.docs-content .main-content table td {
  padding: 0.65rem 1rem;
  border-bottom: 1px solid var(--border-color);
  color: var(--body-color);
  font-size: 0.9rem;
}

/* ---- Horizontal Rules ---- */
.docs-content .main-content hr {
  border: none;
  border-top: 1px solid var(--border-color);
  margin: 2.5rem 0;
  opacity: 0.6;
}

/* ---- Lists ---- */
.docs-content .main-content ul li::marker {
  color: var(--accent-color);
}

.docs-content .main-content ol li::marker {
  color: var(--accent-color);
  font-weight: 600;
  font-size: 0.9em;
}

/* ---- Badges / labels in docs ---- */
.docs-content .badge {
  font-family: 'JetBrains Mono', monospace;
  font-size: 0.72rem;
}

/* ---- TOC ---- */
.docs-toc .toc-nav a {
  color: var(--text-muted) !important;
  font-size: 0.83rem;
  transition: color 0.15s ease;
}

.docs-toc .toc-nav a:hover,
.docs-toc .toc-nav a.active {
  color: var(--accent-color) !important;
}

/* ---- Breadcrumbs ---- */
.breadcrumb-item a {
  color: var(--accent-color) !important;
}

/* ---- Doc Nav (prev/next) ---- */
.doc-nav-link {
  border: 1px solid var(--border-color) !important;
  border-radius: 10px !important;
  transition: all 0.2s ease !important;
}

.doc-nav-link:hover {
  border-color: var(--accent-color) !important;
  background: var(--accent-dim) !important;
}

.doc-nav-link .nav-title {
  color: var(--accent-color) !important;
}

/* ---- Alert shortcodes (LotusDocs) ---- */
.docs-content .alert {
  border-radius: 8px;
}

.docs-content .alert-primary,
.docs-content .alert-info {
  background: var(--accent-dim) !important;
  border-color: var(--accent-glow) !important;
  color: var(--body-color) !important;
}

.docs-content .alert-primary .alert-heading,
.docs-content .alert-info .alert-heading {
  color: var(--accent-color) !important;
  font-weight: 700;
}

/* ---- Search box (FlexSearchCollapse) ---- */
.docs-search-toggle,
.search-input,
.flexsearch-container .form-control#flexsearch {
  border-radius: 8px !important;
}

.flexsearch-container {
  background-color: var(--docs-sidebar-bg) !important;
}

.flexsearch-container .form-control#flexsearch {
  border: 2px solid var(--accent-color) !important;
  background-color: var(--card-bg) !important;
  color: var(--body-color) !important;
}

.flexsearch-container .form-control#flexsearch:focus {
  border-color: var(--accent-color) !important;
  box-shadow: 0 0 0 3px var(--accent-dim) !important;
}

.flexsearch-button-cmd-key,
.flexsearch-button-key {
  background-color: var(--accent-color) !important;
  color: #fff !important;
}

#flexsearch-button .flexsearch-button-cmd-key,
#flexsearch-button .flexsearch-button-key {
  background-color: var(--accent-color) !important;
}

#suggestions {
  background-color: var(--card-bg) !important;
  border: 1px solid var(--border-color) !important;
}

#suggestions a:hover,
#suggestions a:focus {
  background-color: var(--accent-dim) !important;
}

#suggestions .suggestion__title {
  color: var(--accent-color) !important;
}

.search-input:focus {
  border-color: var(--accent-color) !important;
  box-shadow: 0 0 0 3px var(--accent-dim) !important;
}

/* Mobile TOC button — emerald theme */
.docs-toc-mobile .dropdown-toggle:hover,
.docs-toc-mobile a:hover {
  color: var(--accent-color) !important;
}

.docs-toc-mobile .dropdown-toggle:focus {
  border-color: var(--accent-color) !important;
  box-shadow: 0 0 0 2px var(--accent-dim) !important;
}

/* Mobile: TOC should scroll with content, not stick over body */
@media (max-width: 1199.98px) {
  .docs-toc-mobile {
    position: static !important;
    top: auto !important;
    z-index: auto !important;
    margin-bottom: 0.75rem;
  }
}

/* Mobile: collapsed search panel stays in header flow, not overlaying content */
@media (max-width: 767.98px) {
  #FlexSearchCollapse.collapse.show {
    position: relative;
    z-index: 1;
  }

  #FlexSearchCollapse #suggestions {
    max-height: 50vh;
  }
}

/* ---- Chroma code highlighting (fallback if Prism disabled) ---- */
.docs-content .main-content .chroma {
  border-radius: 10px;
  border: 1px solid var(--border-color);
  margin: 1.5rem 0;
  font-size: 0.82rem;
}

/* --- Sidebar Layout & Footer Fix --- */
.sidebar-wrapper {
    display: flex !important;
    flex-direction: column !important;
    height: 100vh !important;
    overflow: hidden !important;
}
.sidebar-wrapper .sidebar-content {
    flex: 1 !important;
    min-height: 0 !important;
    overflow-y: scroll !important;          /* ← Always visible, no delay */
    scrollbar-width: thin;                  /* Firefox */
    scrollbar-color: var(--accent-color, #059669) transparent;
}
.sidebar-wrapper .sidebar-footer {
    flex-shrink: 0 !important;
    margin-bottom: 0 !important;
    padding-bottom: 10rem !important;       /* ← Your requirement */
}

/* --- Disable SimpleBar (so native scrollbar CSS works) --- */
.sidebar-wrapper .simplebar-track,
.sidebar-wrapper .simplebar-scrollbar,
.sidebar-wrapper .simplebar-mask,
.sidebar-wrapper .simplebar-offset,
.sidebar-wrapper .simplebar-content-wrapper {
    all: unset !important;
    display: block !important;
    overflow: visible !important;
    position: static !important;
}
.sidebar-wrapper .sidebar-content > .simplebar-content {
    display: contents !important;
}

/* --- Native Scrollbar Styling (Always-Visible Emerald) --- */
.sidebar-wrapper .sidebar-content::-webkit-scrollbar {
    width: 8px;
    background: transparent;
}
.sidebar-wrapper .sidebar-content::-webkit-scrollbar-track {
    background: transparent;
    border-radius: 10px;
}
.sidebar-wrapper .sidebar-content::-webkit-scrollbar-thumb {
    background-color: var(--accent-color, #059669);
    border-radius: 10px;
    border: 2px solid transparent;
    background-clip: content-box;
    transition: background-color 0.2s ease;
}
.sidebar-wrapper .sidebar-content::-webkit-scrollbar-thumb:hover {
    background-color: var(--accent-hover, #34d399);
}
@media (max-width: 767.98px) {
  #FlexSearchCollapse.collapse.show {
    position: relative;
    z-index: 1;
  }

  #FlexSearchCollapse #suggestions {
    max-height: 50vh;
  }
}
/* ---- Chroma code highlighting (fallback if Prism disabled) ---- */
.docs-content .main-content .chroma {
  border-radius: 10px;
  border: 1px solid var(--border-color);
  margin: 1.5rem 0;
  font-size: 0.82rem;
}

/* --- Sidebar Footer Overflow Fix --- */
.sidebar-wrapper {
  display: flex !important;
  flex-direction: column !important;
  height: 100vh !important;
  overflow: scroll !important;
}

.sidebar-wrapper .sidebar-content {
  flex: 1 !important;
  overflow-y: auto !important;
  min-height: 0 !important;
}

.sidebar-wrapper .sidebar-footer {
  position: static !important;   /* از absolute خارجش کن، برگردون به فلوی فلکس */
  height: auto !important;       /* ارتفاع فیکس ۶۰px رو بردار */
  flex-shrink: 0 !important;
  padding-bottom: 0rem !important;
}