/* 記事ページ・コード閲覧ブロック専用CSSファイル */

/* ヘッダー部分の作成 */
/* ヘッダーの枠線・余白・横並び */
.code-viewer-header {
    padding: 12px 16px;
    border: 1px solid var(--line-black-color);
}
/* ボタンタグ(クリック領域全体・横幅100%・アイコンとテキスト横並びの指定) */
.code-viewer-toggle {
    display: flex;
    align-items: center;
    width: 100%;
    padding: 0;
    border: 0;
    background: none;
    font: inherit;
    color: inherit;
    text-align: left;
    cursor: pointer;
}
/* ファイル名(span) */
.code-viewer-filename {
    min-width: 0;
    overflow-wrap: anywhere;
    font-weight: 500;
}
/* ファイル名入力欄を幅一杯に指定 */
.code-viewer-filename-field, 
.code-viewer-filename-input{
    width: 100%;
    box-sizing: border-box;
}
.code-viewer-filename-input{
    padding: 4px 8px;
}
/* アイコンの配置 */
.code-viewer-toggle-icon {
    position: relative;
    display: block;
    flex-shrink: 0;
    width: 12px;
    height: 12px;
    margin-left: auto;
}
/* 2本の線の共通設定 */
.code-viewer-toggle-icon::before,
.code-viewer-toggle-icon::after {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 12px;
    height: 1px;
    background-color: #666;
    content: "";
    transition:
        transform 0.4s ease,
        opacity 0.4s ease;
}
/* 横線 */
.code-viewer-toggle-icon::before {
    transform: translate(-50%, -50%);
}
/* 縦線 */
.code-viewer-toggle-icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
}
/* 開いた状態：縦線を右回転させて横線に重ねる */
.code-viewer.is-open .code-viewer-toggle-icon::after {
    transform: translate(-50%, -50%) rotate(180deg);
    opacity: 1;
}
/* 開いた状態：横線を右に抜いて消す */
.code-viewer.is-open .code-viewer-toggle-icon::before {
    transform: translate(50%, -50%);
    opacity: 0;
}


/* コードビュー全体部分 */
/* 初期状態は高さ0 */
.code-viewer-content {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows 0.4s ease;
}
/* 開いた状態：中身の高さまで広げる */
.code-viewer.is-open .code-viewer-content {
    grid-template-rows: 1fr;
}
/* コード表示領域の高さを制御 */
.code-viewer-content-inner {
    min-height: 0;
    overflow: hidden;
}


/* ツールバー部分 */
/* 言語名とコピーボタン包括部分 */
.code-viewer-toolbar {
    display: flex;
    align-items: center;
    justify-content: end;
    padding: 24px 16px 16px;
    background: #1e1f1c;
    column-gap: 10px;
}
/* 言語種類名項目 */
.code-viewer-language{
    color: #F8F8F2;
    font-weight: 400;
    height: fit-content;
}
/* コピーアイコンとcopiedテキスト包括部分(buttonタグ) */
/* コピー用ボタンの基本設定 */
.code-viewer-copy {
    position: relative;
    padding: 6px;
    appearance: none;
    border: none;
    background: transparent;
    font: inherit;
    color: inherit;
    cursor: pointer;
    border: 1px solid rgb(160, 160, 160);
    border-radius: 50%;
}
/* copiedテキスト(span) → 通常時は非表示 */
.code-viewer-copy-message {
    position: absolute;
    bottom: calc(100% - 2px);
    right: calc(50% + 0px);
    transform: translateX(50%);
    display: none;
    white-space: nowrap;
    z-index: 10;
    background: transparent;
    padding: 8px 10px;
    font-size: 0.68em;
    font-weight: 400;
    line-height: 1;
    color: #F8F8F2;
}
/* コピーアイコンクリック時に表示 */
.code-viewer-copy-message.is-visible {
    display: block;
}
/* コピーアイコンの表示領域 */
.code-viewer-copy-icon {
    display: block;
    width: 16px;
    height: 16px;
    background-image: url("../images/icons/copy-light.svg");
    background-repeat: no-repeat;
    background-position: center;
    background-size: contain;
    opacity: 0.64;
}
/* コピー成功時：チェックアイコンに切り替え */
.code-viewer-copy.is-copied .code-viewer-copy-icon {
    background-image: url("../images/icons/check-white-light.svg");
    opacity: 1;
}
/* ホバーアクション */
.code-viewer-copy:hover{
    border: 1px solid rgb(190, 190, 190);
}
.code-viewer-copy:hover .code-viewer-copy-icon{
    opacity: 0.8;
}


/* コード表示部分の基本設定 */
.code-viewer-code {
    /* コード部分の高さ・スクロール設定 */
    max-height: 24lh;
    overflow-x: auto;
    white-space: pre;

    /* Monokai風の配色 */
    background-color: #272822;
    color: #F8F8F2;

    /* コード表示の見た目 */
    box-sizing: border-box;
    margin: 0;
    padding: 16px;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.9rem;
    line-height: 1.6;
}



/* エディター側のコード入力欄 */
/* エディター側の指定 */
.code-viewer-editor .code-viewer-header{
    padding: 0;
    border: none;
}
.code-viewer-editor-code textarea {
    min-height: 320px;
    background-color: #272822;
    color: #F8F8F2;
    font-family: Consolas, "Courier New", monospace;
    font-size: 0.9rem;
    line-height: 1.6;
}
/* 項目間の余白 */
.code-viewer-editor .code-viewer-filename-label,
.code-viewer-editor .code-viewer-label{
    margin: 8px 0 4px;
    font-size: 0.88em;
    font-weight: 600;
}