/* PMCP-specific syntax highlighting */

/* Enhanced Rust syntax highlighting */
.hljs-rust {
    background: var(--pmcp-bg-code);
    color: var(--pmcp-text);
}

.hljs-rust .hljs-keyword {
    color: #8959A8;
    font-weight: bold;
}

.hljs-rust .hljs-type {
    color: #4271AE;
}

.hljs-rust .hljs-function .hljs-title {
    color: #4271AE;
    font-weight: bold;
}

.hljs-rust .hljs-string {
    color: #718C00;
}

.hljs-rust .hljs-comment {
    color: #8E908C;
    font-style: italic;
}

.hljs-rust .hljs-number {
    color: #F5871F;
}

.hljs-rust .hljs-built_in {
    color: #C82829;
}

.hljs-rust .hljs-attribute {
    color: #F5871F;
}

.hljs-rust .hljs-macro {
    color: #8959A8;
}

/* PMCP-specific tokens */
.hljs-rust .pmcp-server,
.hljs-rust .pmcp-client {
    color: var(--pmcp-primary);
    font-weight: bold;
}

.hljs-rust .pmcp-tool {
    color: var(--pmcp-success);
    font-weight: bold;
}

.hljs-rust .pmcp-error {
    color: var(--pmcp-error);
    font-weight: bold;
}

.hljs-rust .pmcp-transport {
    color: var(--pmcp-secondary);
    font-weight: bold;
}

/* JSON highlighting for MCP protocol messages */
.hljs-json .pmcp-method {
    color: var(--pmcp-primary);
    font-weight: bold;
}

.hljs-json .pmcp-params {
    color: var(--pmcp-success);
}

.hljs-json .pmcp-result {
    color: var(--pmcp-secondary);
}

.hljs-json .pmcp-error-code {
    color: var(--pmcp-error);
    font-weight: bold;
}

/* Protocol-specific highlighting */
.protocol-message {
    border-left: 4px solid var(--pmcp-primary);
    padding: 16px;
    margin: 16px 0;
    background-color: rgba(30, 136, 229, 0.05);
}

.protocol-request {
    border-left-color: var(--pmcp-success);
    background-color: rgba(76, 175, 80, 0.05);
}

.protocol-response {
    border-left-color: var(--pmcp-secondary);
    background-color: rgba(255, 111, 0, 0.05);
}

.protocol-error {
    border-left-color: var(--pmcp-error);
    background-color: rgba(244, 67, 54, 0.05);
}

/* Toyota Way quality annotations */
.quality-annotation {
    position: relative;
    background-color: rgba(76, 175, 80, 0.1);
    padding: 2px 4px;
    border-radius: 2px;
}

.quality-annotation::after {
    content: "✅";
    position: absolute;
    top: -8px;
    right: -8px;
    font-size: 0.8em;
}

.quality-annotation.warning::after {
    content: "⚠️";
}

.quality-annotation.error::after {
    content: "❌";
}

/* Dark theme adjustments */
.ayu .hljs-rust {
    background: var(--pmcp-bg-code-dark);
    color: var(--pmcp-text-dark);
}

.ayu .hljs-rust .hljs-keyword {
    color: #D73A49;
}

.ayu .hljs-rust .hljs-type {
    color: #6F42C1;
}

.ayu .hljs-rust .hljs-string {
    color: #28A745;
}

.ayu .hljs-rust .hljs-comment {
    color: var(--pmcp-text-muted-dark);
}

.ayu .hljs-rust .hljs-number {
    color: #E36209;
}

.ayu .protocol-message {
    background-color: rgba(30, 136, 229, 0.15);
}

.ayu .protocol-request {
    background-color: rgba(76, 175, 80, 0.15);
}

.ayu .protocol-response {
    background-color: rgba(255, 111, 0, 0.15);
}

.ayu .protocol-error {
    background-color: rgba(244, 67, 54, 0.15);
}