/*
 * CKEditor 5 (v45) 본문 렌더링 스타일 — 프론트 상세 뷰용 발췌.
 *
 * WiseBack 관리자 에디터가 CKEditor 5 로 전환되면서 저장 HTML 에 figure.table /
 * figure.image / img.image_resized / .image-style-* / blockquote 마크업이 들어온다.
 * 프론트에서 이 마크업이 관리자 미리보기와 동일하게 보이도록 CKEditor 공식
 * content-styles 중 표·이미지 정렬·blockquote·문단 마진 규칙만 .ck-content 스코프로 발췌한다.
 */

:root {
    --ck-image-style-spacing: 1.5em;
    --ck-inline-image-style-spacing: calc(var(--ck-image-style-spacing) / 2);
    --ck-color-selector-caption-background: hsl(0, 0%, 97%);
    --ck-color-selector-caption-text: hsl(0, 0%, 20%);
}

/* 문단: 기존 <br> 기반 본문의 좁은 줄간격을 상쇄하기 위한 마진 */
.ck-content p {
    margin-top: 0;
    margin-bottom: 0.3em;
}

/* ── 표 ───────────────────────────────────────────── */
.ck-content .table {
    margin: 0.9em auto;
    display: table;
}

.ck-content .table table {
    border-collapse: collapse;
    border-spacing: 0;
    width: 100%;
    height: 100%;
    border: 1px double hsl(0, 0%, 70%);
    /* board.css 반응형 규칙(.board_view tbody tr td{display:block} 등)이 셀을 세로로
       쌓는 것을 막기 위해 표 요소의 display 를 명시한다 (specificity 로 상쇄) */
    display: table;
}

.ck-content .table table tbody {
    display: table-row-group;
}

.ck-content .table table tr {
    display: table-row;
}

.ck-content .table table td,
.ck-content .table table th {
    display: table-cell;
    min-width: 2em;
    padding: 0.4em;
    border: 1px solid hsl(0, 0%, 75%);
}

.ck-content .table table th {
    font-weight: bold;
    background: hsla(0, 0%, 0%, 0.05);
}

.ck-content[dir="ltr"] .table th {
    text-align: left;
}

.ck-content[dir="rtl"] .table th {
    text-align: right;
}

.ck-content .table > figcaption {
    display: table-caption;
    caption-side: top;
    word-break: break-word;
    text-align: center;
    color: var(--ck-color-selector-caption-text);
    background-color: var(--ck-color-selector-caption-background);
    padding: 0.6em;
    font-size: 0.75em;
    outline-offset: -1px;
}

/* ── 이미지 ───────────────────────────────────────── */
.ck-content .image {
    display: table;
    clear: both;
    text-align: center;
    margin: 0.9em auto;
    min-width: 50px;
}

.ck-content .image img {
    display: block;
    margin: 0 auto;
    max-width: 100%;
    min-width: 100%;
    height: auto;
}

.ck-content .image-inline {
    display: inline-flex;
    max-width: 100%;
    align-items: flex-start;
}

.ck-content .image-inline picture {
    display: flex;
}

.ck-content .image-inline picture,
.ck-content .image-inline img {
    flex-grow: 1;
    flex-shrink: 1;
    max-width: 100%;
}

/* 크기 조정된 이미지 (25/50/75%) */
.ck-content .image.image_resized {
    max-width: 100%;
    display: block;
    box-sizing: border-box;
}

.ck-content .image.image_resized img {
    width: 100%;
}

.ck-content .image.image_resized > figcaption {
    display: block;
}

.ck-content img.image_resized {
    height: auto;
}

/* 이미지 캡션 */
.ck-content .image > figcaption {
    display: table-caption;
    caption-side: bottom;
    word-break: break-word;
    color: var(--ck-color-selector-caption-text);
    background-color: var(--ck-color-selector-caption-background);
    padding: 0.6em;
    font-size: 0.75em;
    outline-offset: -1px;
}

/* ── 이미지 정렬 스타일 (.image-style-*) ──────────── */
.ck-content .image-style-block-align-left,
.ck-content .image-style-block-align-right {
    max-width: calc(100% - var(--ck-image-style-spacing));
}

.ck-content .image-style-align-left,
.ck-content .image-style-align-right {
    clear: none;
}

.ck-content .image-style-side {
    float: right;
    margin-left: var(--ck-image-style-spacing);
    max-width: 50%;
}

.ck-content .image-style-align-left {
    float: left;
    margin-right: var(--ck-image-style-spacing);
}

.ck-content .image-style-align-center {
    margin-left: auto;
    margin-right: auto;
}

.ck-content .image-style-align-right {
    float: right;
    margin-left: var(--ck-image-style-spacing);
}

.ck-content .image-style-block-align-right {
    margin-right: 0;
    margin-left: auto;
}

.ck-content .image-style-block-align-left {
    margin-left: 0;
    margin-right: auto;
}

.ck-content p + .image-style-align-left,
.ck-content p + .image-style-align-right,
.ck-content p + .image-style-side {
    margin-top: 0;
}

.ck-content .image-inline.image-style-align-left,
.ck-content .image-inline.image-style-align-right {
    margin-top: var(--ck-inline-image-style-spacing);
    margin-bottom: var(--ck-inline-image-style-spacing);
}

.ck-content .image-inline.image-style-align-left {
    margin-right: var(--ck-inline-image-style-spacing);
}

.ck-content .image-inline.image-style-align-right {
    margin-left: var(--ck-inline-image-style-spacing);
}

/* ── 인용구 ───────────────────────────────────────── */
.ck-content blockquote {
    overflow: hidden;
    padding-right: 1.5em;
    padding-left: 1.5em;
    margin-left: 0;
    margin-right: 0;
    font-style: italic;
    border-left: solid 5px hsl(0, 0%, 80%);
}

.ck-content[dir="rtl"] blockquote {
    border-left: 0;
    border-right: solid 5px hsl(0, 0%, 80%);
}
