/* Code Block Styling - External CSS for reuse across pages */

/* Custom header for code blocks */
.code-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0.5em 1em 0.2em 1em;
  background: #23272e;
  border-radius: 8px 8px 0 0;
  border-bottom: none;
  margin-bottom: 0;
}

.code-label {
  color: #7ecfff;
  font-size: 0.92em;
  font-family: 'Jost', 'Roboto', Arial, sans-serif;
  letter-spacing: 0.04em;
  font-weight: 500;
}

.copy-btn {
  background: #444b57;
  color: #fff;
  border: none;
  border-radius: 4px;
  padding: 0.3em 0.9em;
  font-size: 0.97em;
  cursor: pointer;
  transition: background 0.2s;
}

.copy-btn:active, .copy-btn.copied {
  background: #2ecc40;
  color: #fff;
}

.code-container {
  position: relative;
  margin: 0 0 2em 0;
}

/* Ensure no gap between header and code block */
.code-container pre {
  margin: 0 !important;
  border-radius: 0 0 8px 8px !important;
  border-top: none !important;
  background: #1e1e1e !important;
  color: #d4d4d4 !important;
  padding: 1em !important;
  font-family: 'Fira Mono', 'Consolas', 'Menlo', monospace !important;
  font-size: 0.93em !important;
  line-height: 1.4 !important;
  overflow-x: auto !important;
  white-space: pre !important;
  word-wrap: normal !important;
}

/* Override Prism.js default styles to match our theme */
.code-container pre[class*="language-"] {
  background: #1e1e1e !important;
  color: #d4d4d4 !important;
  border: none !important;
  box-shadow: none !important;
  text-shadow: none !important;
  margin: 0 !important;
  padding: 1em !important;
  font-family: 'Fira Mono', 'Consolas', 'Menlo', monospace !important;
  font-size: 0.93em !important;
  line-height: 1.4 !important;
  overflow-x: auto !important;
  white-space: pre !important;
  word-wrap: normal !important;
}

.code-container code[class*="language-"] {
  background: transparent !important;
  color: inherit !important;
  text-shadow: none !important;
  font-family: 'Fira Mono', 'Consolas', 'Menlo', monospace !important;
  font-size: 0.93em !important;
  line-height: 1.4 !important;
}

/* Custom syntax highlighting colors - More Vibrant! */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata {
  color: #00ff88 !important; /* Bright green */
}

.token.punctuation {
  color: #ffffff !important; /* Pure white */
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted {
  color: #00d4ff !important; /* Bright cyan */
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted {
  color: #ff6b6b !important; /* Bright coral */
}

.token.operator,
.token.entity,
.token.url,
.language-css .token.string,
.style .token.string {
  color: #ffffff !important; /* Pure white */
}

.token.atrule,
.token.attr-value,
.token.keyword {
  color: #ff69b4 !important; /* Hot pink */
}

.token.function {
  color: #ffff00 !important; /* Bright yellow */
}

.token.regex,
.token.important,
.token.variable {
  color: #ff8c00 !important; /* Dark orange */
}

.token.important,
.token.bold {
  font-weight: bold !important;
}

.token.italic {
  font-style: italic !important;
}

.token.entity {
  cursor: help !important;
}

/* Light mode support */
body:not(.dark-mode) .code-header {
  background: #f6f8fa;
  border: 1px solid #e1e4e8;
  border-bottom: none;
}

body:not(.dark-mode) .code-label {
  color: #0366d6;
}

body:not(.dark-mode) .copy-btn {
  background: #586069;
  color: #fff;
}

body:not(.dark-mode) .copy-btn:active,
body:not(.dark-mode) .copy-btn.copied {
  background: #28a745;
}

body:not(.dark-mode) .code-container pre[class*="language-"] {
  background: #f6f8fa !important;
  color: #24292e !important;
  border: 1px solid #e1e4e8 !important;
  border-top: none !important;
}

body:not(.dark-mode) .code-container pre {
  background: #f6f8fa !important;
  color: #24292e !important;
  border: 1px solid #e1e4e8 !important;
  border-top: none !important;
}

/* Light mode syntax highlighting - More Vibrant! */
body:not(.dark-mode) .token.comment,
body:not(.dark-mode) .token.prolog,
body:not(.dark-mode) .token.doctype,
body:not(.dark-mode) .token.cdata {
  color: #00a854 !important; /* Bright green */
}

body:not(.dark-mode) .token.punctuation {
  color: #000000 !important; /* Pure black */
}

body:not(.dark-mode) .token.property,
body:not(.dark-mode) .token.tag,
body:not(.dark-mode) .token.boolean,
body:not(.dark-mode) .token.number,
body:not(.dark-mode) .token.constant,
body:not(.dark-mode) .token.symbol,
body:not(.dark-mode) .token.deleted {
  color: #0099cc !important; /* Bright blue */
}

body:not(.dark-mode) .token.selector,
body:not(.dark-mode) .token.attr-name,
body:not(.dark-mode) .token.string,
body:not(.dark-mode) .token.char,
body:not(.dark-mode) .token.builtin,
body:not(.dark-mode) .token.inserted {
  color: #cc0000 !important; /* Bright red */
}

body:not(.dark-mode) .token.operator,
body:not(.dark-mode) .token.entity,
body:not(.dark-mode) .token.url,
body:not(.dark-mode) .language-css .token.string,
body:not(.dark-mode) .style .token.string {
  color: #000000 !important; /* Pure black */
}

body:not(.dark-mode) .token.atrule,
body:not(.dark-mode) .token.attr-value,
body:not(.dark-mode) .token.keyword {
  color: #cc0066 !important; /* Bright magenta */
}

body:not(.dark-mode) .token.function {
  color: #996600 !important; /* Bright brown */
}

body:not(.dark-mode) .token.regex,
body:not(.dark-mode) .token.important,
body:not(.dark-mode) .token.variable {
  color: #ff6600 !important; /* Bright orange */
}

/* Dark mode support for dropdowns */
body.dark-mode details {
  border-color: #444b57 !important;
}

body.dark-mode details summary {
  background: #23272e !important;
  color: #c9d1d9 !important;
  border-bottom-color: #444b57 !important;
}

body.dark-mode details > div {
  background: #1e1e1e !important;
}

body.dark-mode details p {
  color: #8b949e !important;
}

/* Responsive adjustments */
@media (max-width: 600px) {
  .code-header {
    padding: 0.4em 0.8em 0.15em 0.8em;
  }
  
  .code-label {
    font-size: 0.88em;
  }
  
  .copy-btn {
    padding: 0.25em 0.7em;
    font-size: 0.9em;
  }
}
