/**
 * Editor Content Styles (editor-content.css)
 *
 * Summernote 에디터로 작성된 HTML 콘텐츠의 공통 스타일
 * 관리자포탈/개발자포탈 양쪽에서 동일하게 사용
 *
 * 사용법:
 * - 관리자포탈: Summernote .note-editable에 .editor-content 클래스 추가
 * - 개발자포탈: 콘텐츠 wrapper에 .editor-content 클래스 추가
 *
 * @version 1.0.0
 * @date 2025-12-30
 */

/* ==========================================================================
   CSS Reset + 기본 설정
   ========================================================================== */

.editor-content {
    all: revert;
    font-family: 'Noto Sans KR', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 1.8 !important;
    color: #1A1A2E !important;
    word-wrap: break-word;
    text-align: left !important;
}

/* ==========================================================================
   헤딩 (Headings)
   ========================================================================== */

.editor-content h1 {
    font-size: 20px !important;
    font-weight: 700 !important;
    margin: 32px 0 16px !important;
    line-height: 1.4 !important;
    color: #1A1A2E !important;
}

.editor-content h1:first-child {
    margin-top: 0 !important;
}

.editor-content h2 {
    font-size: 18px !important;
    font-weight: 700 !important;
    margin: 24px 0 8px !important;
    line-height: 1.4 !important;
    color: #1A1A2E !important;
}

.editor-content h3 {
    font-size: 16px !important;
    font-weight: 600 !important;
    margin: 16px 0 8px !important;
    line-height: 1.4 !important;
    color: #1A1A2E !important;
}

.editor-content h4,
.editor-content h5,
.editor-content h6 {
    font-size: 16px !important;
    font-weight: 600 !important;
    margin: 16px 0 8px !important;
    line-height: 1.4 !important;
    color: #1A1A2E !important;
}

/* ==========================================================================
   단락 (Paragraphs)
   ========================================================================== */

.editor-content p {
    margin-bottom: 16px !important;
    line-height: 1.8 !important;
    font-size: 16px !important;
}

.editor-content p:last-child {
    margin-bottom: 0 !important;
}

/* ==========================================================================
   리스트 (Lists) - 글로벌 reset 대응
   ========================================================================== */

.editor-content ul {
    list-style-type: disc !important;
    padding-left: 32px !important;
    margin: 16px 0 !important;
}

.editor-content ol {
    list-style-type: decimal !important;
    padding-left: 32px !important;
    margin: 16px 0 !important;
}

.editor-content li {
    margin-bottom: 8px !important;
    line-height: 1.8 !important;
    font-size: 16px !important;
}

.editor-content li:last-child {
    margin-bottom: 0 !important;
}

/* 중첩 리스트 */
.editor-content ul ul {
    list-style-type: circle !important;
    margin: 8px 0 !important;
}

.editor-content ul ul ul {
    list-style-type: square !important;
}

.editor-content ol ol {
    list-style-type: lower-alpha !important;
    margin: 8px 0 !important;
}

.editor-content ol ol ol {
    list-style-type: lower-roman !important;
}

/* ==========================================================================
   테이블 (Tables)
   ========================================================================== */

.editor-content table {
    width: 100% !important;
    border-collapse: collapse !important;
    margin: 24px 0 !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 8px !important;
    overflow: hidden !important;
    font-size: 14px !important;
}

.editor-content th,
.editor-content td {
    border: 1px solid #E2E8F0 !important;
    padding: 8px 16px !important;
    text-align: left !important;
    vertical-align: top !important;
}

.editor-content th {
    background: #EFF6FF !important;
    font-weight: 600 !important;
    color: #1A1A2E !important;
}

.editor-content tr:hover {
    background: #F8FAFC !important;
}

/* ==========================================================================
   링크 (Links)
   ========================================================================== */

.editor-content a {
    color: #0049b4 !important;
    text-decoration: underline !important;
    transition: color 0.3s ease !important;
}

.editor-content a:hover {
    color: #003080 !important;
}

/* ==========================================================================
   인용문 (Blockquote)
   ========================================================================== */

.editor-content blockquote {
    border-left: 4px solid #0049b4 !important;
    padding: 16px 24px !important;
    margin: 24px 0 !important;
    background: #F8FAFC !important;
    font-style: italic !important;
    color: #64748B !important;
    border-radius: 0 8px 8px 0 !important;
}

.editor-content blockquote p {
    margin-bottom: 0 !important;
}

/* ==========================================================================
   이미지 (Images)
   ========================================================================== */

.editor-content img {
    max-width: 100% !important;
    height: auto !important;
    border-radius: 8px !important;
    margin-top: 16px !important;
    margin-bottom: 16px !important;
    /* margin-left, margin-right는 인라인 스타일로 정렬 제어 */
}

/* ==========================================================================
   코드 (Code)
   ========================================================================== */

.editor-content code {
    background: #F8FAFC !important;
    padding: 2px 6px !important;
    border-radius: 4px !important;
    font-family: 'Fira Code', 'Courier New', monospace !important;
    font-size: 0.9em !important;
    color: #0049b4 !important;
}

.editor-content pre {
    background: #F8FAFC !important;
    border: 1px solid #E2E8F0 !important;
    border-radius: 8px !important;
    padding: 16px !important;
    overflow-x: auto !important;
    margin: 16px 0 !important;
}

.editor-content pre code {
    background: transparent !important;
    padding: 0 !important;
    color: #1A1A2E !important;
}

/* ==========================================================================
   구분선 (Horizontal Rule)
   ========================================================================== */

.editor-content hr {
    border: none !important;
    border-top: 1px solid #E2E8F0 !important;
    margin: 32px 0 !important;
}

/* ==========================================================================
   텍스트 강조 (Text Emphasis)
   ========================================================================== */

.editor-content strong,
.editor-content b {
    font-weight: 700 !important;
}

.editor-content em,
.editor-content i {
    font-style: italic !important;
}

.editor-content u {
    text-decoration: underline !important;
}

.editor-content s,
.editor-content strike,
.editor-content del {
    text-decoration: line-through !important;
}

.editor-content mark {
    background-color: #FEF3C7 !important;
    padding: 0 2px !important;
}

.editor-content sub {
    vertical-align: sub !important;
    font-size: 0.8em !important;
}

.editor-content sup {
    vertical-align: super !important;
    font-size: 0.8em !important;
}

/* ==========================================================================
   반응형 (Responsive)
   ========================================================================== */

@media (max-width: 768px) {
    .editor-content {
        font-size: 14px !important;
    }

    .editor-content h1 {
        font-size: 18px !important;
    }

    .editor-content h2 {
        font-size: 16px !important;
    }

    .editor-content h3,
    .editor-content h4,
    .editor-content h5,
    .editor-content h6 {
        font-size: 14px !important;
    }

    .editor-content p,
    .editor-content li {
        font-size: 14px !important;
    }

    .editor-content table {
        font-size: 12px !important;
    }

    .editor-content th,
    .editor-content td {
        padding: 4px 8px !important;
    }

    .editor-content ul,
    .editor-content ol {
        padding-left: 24px !important;
    }

    .editor-content blockquote {
        padding: 8px 16px !important;
    }

    .editor-content pre {
        padding: 8px !important;
    }
}

/* ==========================================================================
   Summernote 이미지 업로드 UI
   ========================================================================== */

/* 이미지 업로드 로딩 인디케이터 */
.image-upload-loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(0, 73, 180, 0.9);
    color: #fff;
    padding: 12px 24px;
    border-radius: 8px;
    font-size: 14px;
    z-index: 1000;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    animation: pulse 1.5s infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

/* 이미지 다이얼로그 업로드 안내 */
.image-upload-guide {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 12px 16px;
    background: #EFF6FF;
    border: 1px solid #BFDBFE;
    border-radius: 8px;
    margin-bottom: 16px;
    font-size: 13px;
    color: #1E40AF;
}

.image-upload-guide .material-icons {
    font-size: 18px;
    color: #3B82F6;
}

.image-upload-guide strong {
    font-weight: 600;
}
