/* ===================================
   ChatGPT風 コードハイライト (Shiki専用)
   完全新設計版
   =================================== */

/* 最優先でShikiコードブロックのスタイルを設定 */
pre.shiki,
pre.shiki code,
.message-content pre.shiki,
.message-content pre.shiki code,
.chat-container pre.shiki,
.chat-container pre.shiki code,
.ai-message pre.shiki,
.ai-message pre.shiki code,
.user-message pre.shiki,
.user-message pre.shiki code {
    /* ChatGPT風の薄いグレー背景 */
    background-color: #f6f6f6 !important;
    background: #f6f6f6 !important;
}

/* ダークモード */
@media (prefers-color-scheme: dark) {
    pre.shiki,
    pre.shiki code,
    .message-content pre.shiki,
    .message-content pre.shiki code,
    .chat-container pre.shiki,
    .chat-container pre.shiki code,
    .ai-message pre.shiki,
    .ai-message pre.shiki code,
    .user-message pre.shiki,
    .user-message pre.shiki code {
        background-color: #2f2f2f !important;
        background: #2f2f2f !important;
    }
}

/* 手動トグルで data-theme 属性を使っているケースに対応 */
pre.shiki[data-theme*="dark"],
.shiki[data-theme*="dark"],
pre.shiki[data-theme="github-dark"] {
    background-color: #2f2f2f !important;
    background: #2f2f2f !important;
    color: #e5e5e5 !important;
}

pre.shiki[data-theme*="light"],
.shiki[data-theme*="light"],
pre.shiki[data-theme="github-light"] {
    background-color: #f6f6f6 !important;
    background: #f6f6f6 !important;
    color: #1f2937 !important;
}

/* Shiki pre要素のスタイル　コードブロック */
pre.shiki {
    font-family: 'SF Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
    font-size: 14px !important;
    line-height: 1.6 !important;
    margin: 16px 0 !important;
    padding: 18px 24px !important;
    border-radius: 16px !important;
    overflow-x: auto !important;
    position: relative !important;
    color: #1f2937 !important;
}

@media (prefers-color-scheme: dark) {
    pre.shiki {
        background-color: #2f2f2f !important;
        background: #2f2f2f !important;
        border-color: #444 !important;
        box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3) !important;
        color: #e5e5e5 !important;
    }
}

/* Shiki code要素のスタイル コードブロック*/
pre.shiki code {
    font-family: 'SF Mono', 'Consolas', 'Monaco', 'Courier New', monospace !important;
    font-size: 14px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: none !important;
    line-height: 1.6 !important;
    display: block !important;
}

/* Shiki span要素も背景透明化 */
pre.shiki code span,
pre.shiki span {
    background: transparent !important;
    background-color: transparent !important;
}

/* インラインコード (chatgpt-markdown-enhancements.cssから移行) */
code:not(pre code),
.message-content code:not(pre code),
.chatgpt-inline-code {
    background-color: #ededed !important;
    background: #ededed !important;
    color: #2d3748 !important;
    padding: 2px 6px !important;
    margin: 0 2px !important;
    border-radius: 4px !important;
    font-size: 0.9em !important;
    font-family: 'SFMono-Regular', 'Consolas', 'Liberation Mono', 'Menlo', monospace !important;
    border: none !important;
}

@media (prefers-color-scheme: dark) {
    code:not(pre code),
    .message-content code:not(pre code),
    .chatgpt-inline-code {
        background-color: #3a3a3a !important;
        background: #3a3a3a !important;
        color: #e5e5e5 !important;
    }
}

/* スクロールバー */
pre.shiki::-webkit-scrollbar {
    height: 8px;
}

pre.shiki::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.05);
    border-radius: 999px;
}

pre.shiki::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 999px;
}

pre.shiki::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 0, 0, 0.3);
}

@media (prefers-color-scheme: dark) {
    pre.shiki::-webkit-scrollbar-track {
        background: rgba(255, 255, 255, 0.05);
    }

    pre.shiki::-webkit-scrollbar-thumb {
        background: rgba(255, 255, 255, 0.2);
    }

    pre.shiki::-webkit-scrollbar-thumb:hover {
        background: rgba(255, 255, 255, 0.3);
    }
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    pre.shiki {
        font-size: 12px !important;
        padding: 16px !important;
    }
    
    pre.shiki code {
        font-size: 12px !important;
    }

    code:not(pre code),
    .message-content code:not(pre code) {
        font-size: 12px !important;
    }
}
