/**
 * sbom.guru - Dark Code Syntax Highlighting & Code Block Controls
 *
 * Designed for cybersecurity intelligence: JSON SBOMs, YAML advisories,
 * Bash commands, Python, Go, Rust, and Dockerfiles.
 */

/* Standard WordPress Code Blocks and Pre tags */
pre.wp-block-code,
pre.sbom-code-block,
.wp-block-code pre,
pre code {
  font-family: var(--font-mono);
  font-size: 0.875rem;
  line-height: 1.65;
  tab-size: 2;
}

pre.wp-block-code,
pre.sbom-code-block,
div.wp-block-code {
  position: relative;
  background-color: var(--color-navy);
  color: #E2E8F0;
  border: 1px solid var(--color-border-dark);
  border-radius: var(--radius-md);
  padding: 20px 24px;
  margin: 24px 0;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  box-shadow: var(--shadow-sm);
}

/* Code element inside pre */
pre.wp-block-code code,
pre.sbom-code-block code {
  background: transparent !important;
  color: inherit !important;
  padding: 0 !important;
  border: none !important;
  font-size: inherit;
  display: block;
}

/* Inline code tags */
:not(pre) > code {
  font-family: var(--font-mono);
  font-size: 0.85em;
  background-color: #EEF4FA;
  color: #0F3766;
  padding: 2px 6px;
  border-radius: var(--radius-sm);
  border: 1px solid #D0E0F0;
  word-break: break-word;
}

/* Copy to Clipboard Button */
.code-copy-btn {
  position: absolute;
  top: 10px;
  right: 12px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.18);
  color: #CBD5E1;
  padding: 4px 10px;
  border-radius: var(--radius-sm);
  font-family: var(--font-sans);
  font-size: 0.75rem;
  font-weight: 600;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  gap: 5px;
  transition: all 0.15s ease;
  z-index: 5;
  backdrop-filter: blur(4px);
}

.code-copy-btn:hover {
  background: rgba(255, 255, 255, 0.2);
  color: #FFFFFF;
  border-color: rgba(255, 255, 255, 0.35);
}

.code-copy-btn.copied {
  background: #16865C;
  color: #FFFFFF;
  border-color: #16865C;
}

/* Syntax Token Colors (Prism / Enlighter / Gutenberg classes fallback) */
.token.comment,
.token.prolog,
.token.doctype,
.token.cdata,
.comment {
  color: #64748B;
  font-style: italic;
}

.token.punctuation,
.punctuation {
  color: #94A3B8;
}

.token.property,
.token.tag,
.token.boolean,
.token.number,
.token.constant,
.token.symbol,
.token.deleted,
.boolean,
.number {
  color: #F87171; /* High red / orange for alerts & numbers */
}

.token.selector,
.token.attr-name,
.token.string,
.token.char,
.token.builtin,
.token.inserted,
.string {
  color: #34D399; /* Green for strings */
}

.token.operator,
.token.entity,
.token.url,
.token.variable,
.operator,
.variable {
  color: #38BDF8; /* Cyan */
}

.token.atrule,
.token.attr-value,
.token.keyword,
.keyword {
  color: #818CF8; /* Indigo/Purple for keywords */
  font-weight: 600;
}

.token.function,
.token.class-name,
.function {
  color: #FBBF24; /* Amber for function names */
}

.token.regex,
.token.important {
  color: #FB923C;
}

/* Custom Sleek Scrollbar for Code Blocks */
pre.wp-block-code::-webkit-scrollbar,
pre.sbom-code-block::-webkit-scrollbar {
  height: 6px;
}

pre.wp-block-code::-webkit-scrollbar-track,
pre.sbom-code-block::-webkit-scrollbar-track {
  background: #0B1F36;
  border-radius: 3px;
}

pre.wp-block-code::-webkit-scrollbar-thumb,
pre.sbom-code-block::-webkit-scrollbar-thumb {
  background: #233D60;
  border-radius: 3px;
}

pre.wp-block-code::-webkit-scrollbar-thumb:hover,
pre.sbom-code-block::-webkit-scrollbar-thumb:hover {
  background: #365C8E;
}
