/* ========================================
   PenLocal-AI Documentation Theme
   Matching website-penlocal color scheme
   ======================================== */

:root {
  /* PenLocal Color Palette */
  --penlocal-bg-primary: #0a0a0f;
  --penlocal-bg-secondary: #12121a;
  --penlocal-bg-card: #16161f;
  --penlocal-text-primary: #ffffff;
  --penlocal-text-secondary: #a1a1aa;
  --penlocal-text-muted: #71717a;

  /* Accent colors */
  --penlocal-accent-primary: #ff6b6b;
  --penlocal-accent-green: #22c55e;
  --penlocal-accent-cyan: #06b6d4;
  --penlocal-accent-purple: #a855f7;
  --penlocal-accent-orange: #f97316;
  --penlocal-accent-red: #ef4444;

  /* Borders */
  --penlocal-border-color: rgba(255, 255, 255, 0.08);
  --penlocal-border-hover: rgba(255, 255, 255, 0.15);
}

/* Custom color scheme for MkDocs Material */
[data-md-color-scheme="penlocal"] {
  /* Primary colors */
  --md-primary-fg-color: var(--penlocal-accent-primary);
  --md-primary-fg-color--light: #ff8a8a;
  --md-primary-fg-color--dark: #ff5252;
  --md-primary-bg-color: var(--penlocal-bg-primary);
  --md-primary-bg-color--light: var(--penlocal-bg-secondary);

  /* Accent colors */
  --md-accent-fg-color: var(--penlocal-accent-primary);
  --md-accent-fg-color--transparent: rgba(255, 107, 107, 0.1);
  --md-accent-bg-color: var(--penlocal-accent-primary);
  --md-accent-bg-color--light: rgba(255, 107, 107, 0.1);

  /* Default colors - dark theme */
  --md-default-fg-color: var(--penlocal-text-primary);
  --md-default-fg-color--light: var(--penlocal-text-secondary);
  --md-default-fg-color--lighter: var(--penlocal-text-muted);
  --md-default-fg-color--lightest: var(--penlocal-border-color);
  --md-default-bg-color: var(--penlocal-bg-primary);
  --md-default-bg-color--light: var(--penlocal-bg-secondary);
  --md-default-bg-color--lighter: var(--penlocal-bg-card);
  --md-default-bg-color--lightest: var(--penlocal-bg-card);

  /* Code blocks */
  --md-code-fg-color: var(--penlocal-text-primary);
  --md-code-bg-color: var(--penlocal-bg-card);
  --md-code-hl-color: rgba(255, 107, 107, 0.15);
  --md-code-hl-number-color: var(--penlocal-accent-orange);
  --md-code-hl-special-color: var(--penlocal-accent-purple);
  --md-code-hl-function-color: var(--penlocal-accent-cyan);
  --md-code-hl-constant-color: var(--penlocal-accent-orange);
  --md-code-hl-keyword-color: var(--penlocal-accent-primary);
  --md-code-hl-string-color: var(--penlocal-accent-green);
  --md-code-hl-name-color: var(--penlocal-text-primary);
  --md-code-hl-operator-color: var(--penlocal-accent-primary);
  --md-code-hl-punctuation-color: var(--penlocal-text-secondary);
  --md-code-hl-comment-color: var(--penlocal-text-muted);
  --md-code-hl-generic-color: var(--penlocal-text-secondary);
  --md-code-hl-variable-color: var(--penlocal-text-primary);

  /* Typeset colors */
  --md-typeset-color: var(--penlocal-text-primary);
  --md-typeset-a-color: var(--penlocal-accent-primary);

  /* Table colors */
  --md-typeset-table-color: var(--penlocal-border-color);

  /* Footer */
  --md-footer-fg-color: var(--penlocal-text-secondary);
  --md-footer-fg-color--light: var(--penlocal-text-muted);
  --md-footer-fg-color--lighter: var(--penlocal-text-muted);
  --md-footer-bg-color: var(--penlocal-bg-secondary);
  --md-footer-bg-color--dark: var(--penlocal-bg-primary);
}

/* ========================================
   Global Styles
   ======================================== */

/* Smooth scrolling */
html {
  scroll-behavior: smooth;
}

/* Body background */
[data-md-color-scheme="penlocal"] body {
  background-color: var(--penlocal-bg-primary);
}

/* Font smoothing */
body {
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}

/* ========================================
   Header / Navigation
   ======================================== */

[data-md-color-scheme="penlocal"] .md-header {
  background: rgba(10, 10, 15, 0.85);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid var(--penlocal-border-color);
}

[data-md-color-scheme="penlocal"] .md-header__title {
  color: var(--penlocal-text-primary);
}

[data-md-color-scheme="penlocal"] .md-header__button {
  color: var(--penlocal-text-secondary);
}

[data-md-color-scheme="penlocal"] .md-header__button:hover {
  color: var(--penlocal-text-primary);
}

/* ========================================
   Navigation Sidebar
   ======================================== */

[data-md-color-scheme="penlocal"] .md-nav__link {
  color: var(--penlocal-text-secondary);
}

[data-md-color-scheme="penlocal"] .md-nav__link:hover {
  color: var(--penlocal-text-primary);
}

[data-md-color-scheme="penlocal"] .md-nav__item--active > .md-nav__link {
  color: var(--penlocal-accent-primary);
  font-weight: 600;
}

[data-md-color-scheme="penlocal"] .md-nav__link--active {
  color: var(--penlocal-accent-primary);
}

/* Tabs */
[data-md-color-scheme="penlocal"] .md-tabs {
  background: var(--penlocal-bg-secondary);
  border-bottom: 1px solid var(--penlocal-border-color);
}

[data-md-color-scheme="penlocal"] .md-tabs__link {
  color: var(--penlocal-text-secondary);
}

[data-md-color-scheme="penlocal"] .md-tabs__link:hover {
  color: var(--penlocal-text-primary);
}

[data-md-color-scheme="penlocal"] .md-tabs__link--active {
  color: var(--penlocal-accent-primary);
}

/* ========================================
   Content Area
   ======================================== */

[data-md-color-scheme="penlocal"] .md-content {
  background: var(--penlocal-bg-primary);
}

[data-md-color-scheme="penlocal"] .md-sidebar {
  background: var(--penlocal-bg-primary);
}

/* ========================================
   Typography
   ======================================== */

[data-md-color-scheme="penlocal"] .md-typeset h1 {
  color: var(--penlocal-text-primary);
  font-weight: 700;
  letter-spacing: -0.02em;
}

[data-md-color-scheme="penlocal"] .md-typeset h2 {
  color: var(--penlocal-text-primary);
  font-weight: 600;
  border-bottom: 1px solid var(--penlocal-border-color);
  padding-bottom: 0.5rem;
}

[data-md-color-scheme="penlocal"] .md-typeset h3,
[data-md-color-scheme="penlocal"] .md-typeset h4,
[data-md-color-scheme="penlocal"] .md-typeset h5,
[data-md-color-scheme="penlocal"] .md-typeset h6 {
  color: var(--penlocal-text-primary);
  font-weight: 600;
}

[data-md-color-scheme="penlocal"] .md-typeset p {
  color: var(--penlocal-text-secondary);
}

[data-md-color-scheme="penlocal"] .md-typeset a {
  color: var(--penlocal-accent-primary);
}

[data-md-color-scheme="penlocal"] .md-typeset a:hover {
  color: #ff8a8a;
  text-decoration: underline;
}

/* Strong/Bold text */
[data-md-color-scheme="penlocal"] .md-typeset strong {
  color: var(--penlocal-text-primary);
}

/* ========================================
   Code Blocks
   ======================================== */

[data-md-color-scheme="penlocal"] .md-typeset code {
  background: var(--penlocal-bg-card);
  color: var(--penlocal-accent-primary);
  border-radius: 4px;
  padding: 0.2rem 0.4rem;
}

[data-md-color-scheme="penlocal"] .md-typeset pre {
  background: var(--penlocal-bg-card);
  border: 1px solid var(--penlocal-border-color);
  border-radius: 8px;
}

[data-md-color-scheme="penlocal"] .md-typeset pre code {
  background: transparent;
  color: var(--penlocal-text-primary);
}

[data-md-color-scheme="penlocal"] .highlight {
  background: var(--penlocal-bg-card);
  border-radius: 8px;
}

/* Copy button */
[data-md-color-scheme="penlocal"] .md-clipboard {
  color: var(--penlocal-text-muted);
}

[data-md-color-scheme="penlocal"] .md-clipboard:hover {
  color: var(--penlocal-accent-primary);
}

/* ========================================
   Tables
   ======================================== */

[data-md-color-scheme="penlocal"] .md-typeset table:not([class]) {
  border: 1px solid var(--penlocal-border-color);
  border-radius: 8px;
  overflow: hidden;
}

[data-md-color-scheme="penlocal"] .md-typeset table:not([class]) th {
  background: var(--penlocal-bg-card);
  color: var(--penlocal-text-primary);
  font-weight: 600;
  border-bottom: 1px solid var(--penlocal-border-color);
}

[data-md-color-scheme="penlocal"] .md-typeset table:not([class]) td {
  color: var(--penlocal-text-secondary);
  border-bottom: 1px solid var(--penlocal-border-color);
}

[data-md-color-scheme="penlocal"] .md-typeset table:not([class]) tr:last-child td {
  border-bottom: none;
}

[data-md-color-scheme="penlocal"] .md-typeset table:not([class]) tr:hover td {
  background: rgba(255, 255, 255, 0.02);
}

/* Table code */
[data-md-color-scheme="penlocal"] .md-typeset table code {
  background: var(--penlocal-bg-secondary);
  font-size: 0.85em;
}

/* ========================================
   Admonitions
   ======================================== */

[data-md-color-scheme="penlocal"] .md-typeset .admonition {
  background: var(--penlocal-bg-card);
  border: 1px solid var(--penlocal-border-color);
  border-radius: 8px;
  border-left: 4px solid;
}

[data-md-color-scheme="penlocal"] .md-typeset .admonition-title {
  background: rgba(255, 255, 255, 0.03);
  color: var(--penlocal-text-primary);
}

[data-md-color-scheme="penlocal"] .md-typeset .admonition.note {
  border-left-color: var(--penlocal-accent-cyan);
}

[data-md-color-scheme="penlocal"] .md-typeset .admonition.tip {
  border-left-color: var(--penlocal-accent-green);
}

[data-md-color-scheme="penlocal"] .md-typeset .admonition.warning {
  border-left-color: var(--penlocal-accent-orange);
}

[data-md-color-scheme="penlocal"] .md-typeset .admonition.danger {
  border-left-color: var(--penlocal-accent-red);
}

[data-md-color-scheme="penlocal"] .md-typeset .admonition.info {
  border-left-color: var(--penlocal-accent-purple);
}

/* ========================================
   Mermaid Diagrams
   ======================================== */

[data-md-color-scheme="penlocal"] .mermaid {
  background: var(--penlocal-bg-card);
  padding: 1.5rem;
  border-radius: 8px;
  border: 1px solid var(--penlocal-border-color);
  margin: 1rem 0;
}

/* Mermaid text colors */
[data-md-color-scheme="penlocal"] .mermaid .nodeLabel {
  color: var(--penlocal-text-primary);
}

[data-md-color-scheme="penlocal"] .mermaid .edgeLabel {
  color: var(--penlocal-text-secondary);
  background: var(--penlocal-bg-card);
}

/* ========================================
   Search
   ======================================== */

[data-md-color-scheme="penlocal"] .md-search__input {
  background: var(--penlocal-bg-card);
  color: var(--penlocal-text-primary);
  border: 1px solid var(--penlocal-border-color);
}

[data-md-color-scheme="penlocal"] .md-search__input::placeholder {
  color: var(--penlocal-text-muted);
}

[data-md-color-scheme="penlocal"] .md-search-result {
  background: var(--penlocal-bg-secondary);
}

[data-md-color-scheme="penlocal"] .md-search-result__link:hover {
  background: var(--penlocal-bg-card);
}

[data-md-color-scheme="penlocal"] .md-search-result__title {
  color: var(--penlocal-text-primary);
}

[data-md-color-scheme="penlocal"] .md-search-result__teaser {
  color: var(--penlocal-text-muted);
}

[data-md-color-scheme="penlocal"] .md-search-result mark {
  background: rgba(255, 107, 107, 0.3);
  color: var(--penlocal-text-primary);
}

/* ========================================
   Footer
   ======================================== */

[data-md-color-scheme="penlocal"] .md-footer {
  background: var(--penlocal-bg-secondary);
  border-top: 1px solid var(--penlocal-border-color);
}

[data-md-color-scheme="penlocal"] .md-footer-meta {
  background: var(--penlocal-bg-primary);
}

/* ========================================
   Swagger UI Integration
   ======================================== */

[data-md-color-scheme="penlocal"] swagger-ui {
  display: block;
  min-height: 400px;
  background: var(--penlocal-bg-card);
  border-radius: 8px;
  border: 1px solid var(--penlocal-border-color);
  padding: 1rem;
  margin: 1rem 0;
}

/* ========================================
   Buttons
   ======================================== */

[data-md-color-scheme="penlocal"] .md-typeset .md-button {
  background: var(--penlocal-accent-primary);
  color: white;
  border-radius: 6px;
  font-weight: 600;
  transition: all 0.2s ease;
}

[data-md-color-scheme="penlocal"] .md-typeset .md-button:hover {
  background: #ff5252;
  transform: translateY(-2px);
  box-shadow: 0 10px 40px rgba(255, 107, 107, 0.3);
}

[data-md-color-scheme="penlocal"] .md-typeset .md-button--primary {
  background: var(--penlocal-accent-primary);
}

/* ========================================
   Content Tabs
   ======================================== */

[data-md-color-scheme="penlocal"] .md-typeset .tabbed-labels > label {
  color: var(--penlocal-text-secondary);
  border-bottom: 2px solid transparent;
}

[data-md-color-scheme="penlocal"] .md-typeset .tabbed-labels > label:hover {
  color: var(--penlocal-text-primary);
}

[data-md-color-scheme="penlocal"] .md-typeset .tabbed-labels > label.tabbed-label--active {
  color: var(--penlocal-accent-primary);
  border-bottom-color: var(--penlocal-accent-primary);
}

[data-md-color-scheme="penlocal"] .md-typeset .tabbed-content {
  border: 1px solid var(--penlocal-border-color);
  border-top: none;
  border-radius: 0 0 8px 8px;
}

/* ========================================
   Lists
   ======================================== */

[data-md-color-scheme="penlocal"] .md-typeset ul li::marker {
  color: var(--penlocal-accent-primary);
}

[data-md-color-scheme="penlocal"] .md-typeset ol li::marker {
  color: var(--penlocal-accent-primary);
}

/* ========================================
   Scrollbar
   ======================================== */

[data-md-color-scheme="penlocal"] ::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

[data-md-color-scheme="penlocal"] ::-webkit-scrollbar-track {
  background: var(--penlocal-bg-secondary);
}

[data-md-color-scheme="penlocal"] ::-webkit-scrollbar-thumb {
  background: var(--penlocal-border-hover);
  border-radius: 4px;
}

[data-md-color-scheme="penlocal"] ::-webkit-scrollbar-thumb:hover {
  background: var(--penlocal-text-muted);
}

/* ========================================
   Selection
   ======================================== */

[data-md-color-scheme="penlocal"] ::selection {
  background: rgba(255, 107, 107, 0.3);
  color: var(--penlocal-text-primary);
}

/* ========================================
   Responsive
   ======================================== */

@media screen and (max-width: 76.25em) {
  [data-md-color-scheme="penlocal"] .mermaid {
    padding: 1rem;
    font-size: 0.9em;
  }
}

/* ========================================
   Print Styles
   ======================================== */

@media print {
  .mermaid {
    page-break-inside: avoid;
  }

  table {
    page-break-inside: avoid;
  }
}
